@ozdao/martyrs 0.2.482 → 0.2.484

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/{Media-JBERcJWj.js → Media-2NvSR0vE.js} +1 -1
  2. package/dist/{Media-p7Q8ZAQM.cjs → Media-EYG9WPI4.cjs} +1 -1
  3. package/dist/_virtual/_commonjsHelpers.cjs +2 -0
  4. package/dist/_virtual/_commonjsHelpers.cjs.map +1 -1
  5. package/dist/_virtual/_commonjsHelpers.js +2 -0
  6. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  7. package/dist/_virtual/index2.cjs +8 -0
  8. package/dist/_virtual/index2.cjs.map +1 -0
  9. package/dist/_virtual/index2.js +8 -0
  10. package/dist/_virtual/index2.js.map +1 -0
  11. package/dist/_virtual/index3.cjs +5 -0
  12. package/dist/_virtual/index3.cjs.map +1 -0
  13. package/dist/_virtual/index3.js +5 -0
  14. package/dist/_virtual/index3.js.map +1 -0
  15. package/dist/{main-AtCVQKF9.js → main-BT1yoKH2.js} +2871 -2502
  16. package/dist/main-rF15sgss.cjs +11 -0
  17. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
  18. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
  19. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  20. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
  21. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +32 -12
  22. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  23. package/dist/martyrs/src/components/Feed/Feed.vue.js +48 -28
  24. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  25. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs +141 -113
  26. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.cjs.map +1 -1
  27. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js +142 -114
  28. package/dist/martyrs/src/components/FieldPhone/FieldPhone.vue.js.map +1 -1
  29. package/dist/martyrs/src/components/Menu/{Menu.vue2.cjs → Menu.vue.cjs} +2 -2
  30. package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +1 -0
  31. package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
  32. package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
  33. package/dist/martyrs/src/components/Slider/Slider.vue.cjs +21 -24
  34. package/dist/martyrs/src/components/Slider/Slider.vue.cjs.map +1 -1
  35. package/dist/martyrs/src/components/Slider/Slider.vue.js +21 -24
  36. package/dist/martyrs/src/components/Slider/Slider.vue.js.map +1 -1
  37. package/dist/martyrs/src/components/Status/Status.vue.cjs +11 -5
  38. package/dist/martyrs/src/components/Status/Status.vue.cjs.map +1 -1
  39. package/dist/martyrs/src/components/Status/Status.vue.js +13 -7
  40. package/dist/martyrs/src/components/Status/Status.vue.js.map +1 -1
  41. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +5 -3
  42. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  43. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +5 -3
  44. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  45. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
  46. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
  47. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +28 -45
  48. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  49. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +29 -46
  50. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  51. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.cjs +1 -1
  52. package/dist/martyrs/src/modules/auth/views/localization/EnterCode.json.js +1 -1
  53. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.cjs +1 -1
  54. package/dist/martyrs/src/modules/auth/views/localization/EnterPassword.json.js +1 -1
  55. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.cjs +1 -1
  56. package/dist/martyrs/src/modules/auth/views/localization/ResetPassword.json.js +1 -1
  57. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.cjs +1 -1
  58. package/dist/martyrs/src/modules/auth/views/localization/SignIn.json.js +1 -1
  59. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.cjs +1 -1
  60. package/dist/martyrs/src/modules/auth/views/localization/SignUp.json.js +1 -1
  61. package/dist/martyrs/src/modules/globals/globals.client.cjs +11 -0
  62. package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
  63. package/dist/martyrs/src/modules/globals/globals.client.js +11 -0
  64. package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
  65. package/dist/martyrs/src/modules/globals/locales/en.cjs +24 -0
  66. package/dist/martyrs/src/modules/globals/locales/en.cjs.map +1 -0
  67. package/dist/martyrs/src/modules/globals/locales/en.js +24 -0
  68. package/dist/martyrs/src/modules/globals/locales/en.js.map +1 -0
  69. package/dist/martyrs/src/modules/globals/locales/ru.cjs +24 -0
  70. package/dist/martyrs/src/modules/globals/locales/ru.cjs.map +1 -0
  71. package/dist/martyrs/src/modules/globals/locales/ru.js +24 -0
  72. package/dist/martyrs/src/modules/globals/locales/ru.js.map +1 -0
  73. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +71 -0
  74. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs.map +1 -0
  75. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +71 -0
  76. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js.map +1 -0
  77. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
  78. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
  79. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +49 -43
  80. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
  81. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +49 -43
  82. package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
  83. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  84. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  85. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +183 -0
  86. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs.map +1 -0
  87. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +183 -0
  88. package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js.map +1 -0
  89. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs +67 -0
  90. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.cjs.map +1 -0
  91. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js +67 -0
  92. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterOptions.vue.js.map +1 -0
  93. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs +91 -0
  94. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.cjs.map +1 -0
  95. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js +91 -0
  96. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterPrice.vue.js.map +1 -0
  97. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs +64 -0
  98. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.cjs.map +1 -0
  99. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js +64 -0
  100. package/dist/martyrs/src/modules/globals/views/components/sections/filters/FilterRange.vue2.js.map +1 -0
  101. package/dist/martyrs/src/modules/globals/views/store/globals.cjs.map +1 -1
  102. package/dist/martyrs/src/modules/globals/views/store/globals.js.map +1 -1
  103. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +52 -58
  104. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  105. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +52 -58
  106. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  107. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +4 -1
  108. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  109. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +4 -1
  110. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  111. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
  113. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +1 -1
  114. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
  115. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
  116. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
  117. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +1 -1
  119. package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
  120. package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
  121. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +4 -1
  122. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  123. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +4 -1
  124. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.cjs +1 -1
  126. package/dist/martyrs/src/modules/products/components/pages/LeftoverEdit.vue.js +1 -1
  127. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.cjs +2 -2
  128. package/dist/martyrs/src/modules/products/components/pages/Leftovers.vue.js +1 -1
  129. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
  130. package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs.map +1 -1
  131. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
  132. package/dist/martyrs/src/modules/products/components/pages/Product.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs +2 -1
  134. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.cjs.map +1 -1
  135. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js +2 -1
  136. package/dist/martyrs/src/modules/products/components/sections/ProductsPopular.vue.js.map +1 -1
  137. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  138. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  139. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +1 -1
  140. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +1 -1
  141. package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.cjs +1 -1
  142. package/dist/martyrs/src/modules/wallet/views/localization/wallet.json.js +1 -1
  143. package/dist/martyrs.cjs.js +1 -1
  144. package/dist/martyrs.css +1 -1
  145. package/dist/martyrs.es.js +1 -1
  146. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.cjs +1 -1
  147. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/core/utils.js +1 -1
  148. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.cjs +1 -1
  149. package/dist/node_modules/.pnpm/qrcode@1.5.4/node_modules/qrcode/lib/renderer/utils.js +1 -1
  150. package/dist/node_modules/lodash.merge/index.cjs +689 -0
  151. package/dist/node_modules/lodash.merge/index.cjs.map +1 -0
  152. package/dist/node_modules/lodash.merge/index.js +689 -0
  153. package/dist/node_modules/lodash.merge/index.js.map +1 -0
  154. package/dist/style.css +103 -75
  155. package/package.json +1 -1
  156. package/src/components/Feed/Feed.vue +23 -0
  157. package/src/components/FieldPhone/FieldPhone.vue +337 -238
  158. package/src/components/Slider/Slider.vue +15 -17
  159. package/src/components/Status/Status.vue +10 -7
  160. package/src/modules/auth/views/components/layouts/Auth.vue +2 -2
  161. package/src/modules/auth/views/components/sections/SliderFeatures.vue +19 -73
  162. package/src/modules/auth/views/localization/EnterCode.json +2 -2
  163. package/src/modules/auth/views/localization/EnterPassword.json +2 -2
  164. package/src/modules/auth/views/localization/ResetPassword.json +2 -2
  165. package/src/modules/auth/views/localization/SignIn.json +2 -2
  166. package/src/modules/auth/views/localization/SignUp.json +2 -2
  167. package/src/modules/globals/globals.client.js +15 -1
  168. package/src/modules/globals/locales/en.js +21 -0
  169. package/src/modules/globals/locales/index.js +8 -0
  170. package/src/modules/globals/locales/ru.js +21 -0
  171. package/src/modules/globals/views/classes/globals.i18n.js +84 -0
  172. package/src/modules/globals/views/components/layouts/Client.vue +43 -40
  173. package/src/modules/globals/views/components/partials/Footer.vue +162 -162
  174. package/src/modules/globals/views/components/sections/Filters.vue +198 -0
  175. package/src/modules/globals/views/components/sections/filters/FilterOptions.vue +65 -0
  176. package/src/modules/globals/views/components/sections/filters/FilterPrice.vue +81 -0
  177. package/src/modules/globals/views/components/sections/filters/FilterRange.vue +74 -0
  178. package/src/modules/globals/views/store/globals.js +0 -40
  179. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +34 -38
  180. package/src/modules/products/components/pages/Product.vue +1 -1
  181. package/src/modules/products/components/sections/ProductsPopular.vue +3 -2
  182. package/src/modules/wallet/views/localization/wallet.json +2 -2
  183. package/dist/main-B-we7C0w.cjs +0 -11
  184. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
  185. package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +0 -1
  186. package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
  187. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.cjs +0 -194
  188. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.cjs.map +0 -1
  189. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js +0 -194
  190. package/dist/node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js.map +0 -1
  191. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs +0 -43
  192. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.cjs.map +0 -1
  193. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js +0 -43
  194. package/dist/node_modules/.pnpm/embla-carousel-reactive-utils@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js.map +0 -1
  195. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs +0 -43
  196. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs.map +0 -1
  197. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js +0 -43
  198. package/dist/node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.js.map +0 -1
  199. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs +0 -1630
  200. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.cjs.map +0 -1
  201. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js +0 -1630
  202. package/dist/node_modules/.pnpm/embla-carousel@8.6.0/node_modules/embla-carousel/esm/embla-carousel.esm.js.map +0 -1
@@ -2,12 +2,11 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
- const _hoisted_1 = { class: "pos-relative" };
6
- const _hoisted_2 = {
5
+ const _hoisted_1 = {
7
6
  key: 0,
8
7
  class: "carousel__dots"
9
8
  };
10
- const _hoisted_3 = ["onClick"];
9
+ const _hoisted_2 = ["onClick"];
11
10
  const _sfc_main = {
12
11
  __name: "Slider",
13
12
  props: {
@@ -141,29 +140,27 @@ const _sfc_main = {
141
140
  }
142
141
  });
143
142
  return (_ctx, _cache) => {
144
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
143
+ return vue.openBlock(), vue.createElementBlock("div", {
144
+ class: "carousel",
145
+ ref_key: "carouselRef",
146
+ ref: carouselRef
147
+ }, [
145
148
  vue.createElementVNode("div", {
146
- class: "carousel",
147
- ref_key: "carouselRef",
148
- ref: carouselRef
149
+ class: "carousel__container",
150
+ onScroll: handleScroll
149
151
  }, [
150
- vue.createElementVNode("div", {
151
- class: "carousel__container",
152
- onScroll: handleScroll
153
- }, [
154
- vue.renderSlot(_ctx.$slots, "default")
155
- ], 32),
156
- __props.showDots && __props.slideCount > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
157
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.slideCount, (index) => {
158
- return vue.openBlock(), vue.createElementBlock("button", {
159
- key: index - 1,
160
- class: vue.normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index - 1 }]),
161
- onClick: ($event) => scrollTo(index - 1)
162
- }, null, 10, _hoisted_3);
163
- }), 128))
164
- ])) : vue.createCommentVNode("", true)
165
- ], 512)
166
- ]);
152
+ vue.renderSlot(_ctx.$slots, "default")
153
+ ], 32),
154
+ __props.showDots && __props.slideCount > 1 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
155
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.slideCount, (index) => {
156
+ return vue.openBlock(), vue.createElementBlock("button", {
157
+ key: index - 1,
158
+ class: vue.normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index - 1 }]),
159
+ onClick: ($event) => scrollTo(index - 1)
160
+ }, null, 10, _hoisted_2);
161
+ }), 128))
162
+ ])) : vue.createCommentVNode("", true)
163
+ ], 512);
167
164
  };
168
165
  }
169
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.vue.cjs","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":["ref","onMounted","onBeforeUnmount"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.vue.cjs","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":["ref","onMounted","onBeforeUnmount"],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  import { ref, onMounted, onBeforeUnmount, createElementBlock, openBlock, createElementVNode, createCommentVNode, renderSlot, Fragment, renderList, normalizeClass } from "vue";
2
2
  /* empty css */
3
- const _hoisted_1 = { class: "pos-relative" };
4
- const _hoisted_2 = {
3
+ const _hoisted_1 = {
5
4
  key: 0,
6
5
  class: "carousel__dots"
7
6
  };
8
- const _hoisted_3 = ["onClick"];
7
+ const _hoisted_2 = ["onClick"];
9
8
  const _sfc_main = {
10
9
  __name: "Slider",
11
10
  props: {
@@ -139,29 +138,27 @@ const _sfc_main = {
139
138
  }
140
139
  });
141
140
  return (_ctx, _cache) => {
142
- return openBlock(), createElementBlock("div", _hoisted_1, [
141
+ return openBlock(), createElementBlock("div", {
142
+ class: "carousel",
143
+ ref_key: "carouselRef",
144
+ ref: carouselRef
145
+ }, [
143
146
  createElementVNode("div", {
144
- class: "carousel",
145
- ref_key: "carouselRef",
146
- ref: carouselRef
147
+ class: "carousel__container",
148
+ onScroll: handleScroll
147
149
  }, [
148
- createElementVNode("div", {
149
- class: "carousel__container",
150
- onScroll: handleScroll
151
- }, [
152
- renderSlot(_ctx.$slots, "default")
153
- ], 32),
154
- __props.showDots && __props.slideCount > 1 ? (openBlock(), createElementBlock("div", _hoisted_2, [
155
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.slideCount, (index) => {
156
- return openBlock(), createElementBlock("button", {
157
- key: index - 1,
158
- class: normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index - 1 }]),
159
- onClick: ($event) => scrollTo(index - 1)
160
- }, null, 10, _hoisted_3);
161
- }), 128))
162
- ])) : createCommentVNode("", true)
163
- ], 512)
164
- ]);
150
+ renderSlot(_ctx.$slots, "default")
151
+ ], 32),
152
+ __props.showDots && __props.slideCount > 1 ? (openBlock(), createElementBlock("div", _hoisted_1, [
153
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.slideCount, (index) => {
154
+ return openBlock(), createElementBlock("button", {
155
+ key: index - 1,
156
+ class: normalizeClass(["carousel__dot", { "carousel__dot--active": selectedIndex.value === index - 1 }]),
157
+ onClick: ($event) => scrollTo(index - 1)
158
+ }, null, 10, _hoisted_2);
159
+ }), 128))
160
+ ])) : createCommentVNode("", true)
161
+ ], 512);
165
162
  };
166
163
  }
167
164
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.vue.js","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <div class=\"pos-relative\">\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Slider.vue.js","sources":["../../../../../src/components/Slider/Slider.vue"],"sourcesContent":["<template>\n <!-- Native Carousel -->\n <div class=\"carousel\" ref=\"carouselRef\">\n <div class=\"carousel__container\" @scroll=\"handleScroll\">\n <slot></slot>\n </div>\n \n <!-- Navigation Dots (optional) -->\n <div class=\"carousel__dots\" v-if=\"showDots && slideCount > 1\">\n <button \n v-for=\"index in slideCount\" \n :key=\"index - 1\"\n class=\"carousel__dot\"\n :class=\"{ 'carousel__dot--active': selectedIndex === index - 1 }\"\n @click=\"scrollTo(index - 1)\"\n ></button>\n </div>\n </div>\n</template>\n\n<script setup>\nimport { ref, onMounted, onBeforeUnmount, computed } from 'vue'\n\n// Props for customization\nconst props = defineProps({\n showDots: Boolean,\n slideCount: {\n type: Number,\n default: 0\n }\n});\n\nconst carouselRef = ref(null)\nconst selectedIndex = ref(0)\nconst autoplayInterval = ref(null)\nconst scrollTimeout = ref(null)\n\n// Scroll to specific slide\nconst scrollTo = (index) => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (slides[index]) {\n container.scrollTo({\n left: slides[index].offsetLeft,\n behavior: 'smooth'\n })\n \n selectedIndex.value = index\n }\n}\n\n// Handle scroll event with debounce\nconst handleScroll = () => {\n // Clear previous timeout\n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n \n // Set a timeout to update the index when scrolling stops\n scrollTimeout.value = setTimeout(() => {\n updateSelectedIndex()\n }, 50) // Small delay to ensure scroll has completed\n}\n\n// Update selected index when scrolling\nconst updateSelectedIndex = () => {\n if (!carouselRef.value) return\n \n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n if (!slides.length) return\n \n const scrollPosition = container.scrollLeft\n const slideWidth = slides[0].offsetWidth\n \n // Find current slide index based on scroll position\n const index = Math.round(scrollPosition / slideWidth)\n \n // Ensure index is within bounds\n const boundedIndex = Math.max(0, Math.min(index, slides.length - 1))\n \n // Update selected index\n selectedIndex.value = boundedIndex\n}\n\n// Setup autoplay functionality\nconst setupAutoplay = () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n autoplayInterval.value = setInterval(() => {\n const nextIndex = (selectedIndex.value + 1) % props.slideCount\n scrollTo(nextIndex)\n }, 2000) // 2 seconds interval like in original\n}\n\nonMounted(() => {\n // Initialize native carousel after component is mounted\n if (carouselRef.value) {\n // Listen for scroll end using intersection observer for better performance\n const container = carouselRef.value.querySelector('.carousel__container')\n const slides = container.querySelectorAll('.carousel__slide')\n \n // Create intersection observer to detect when slides are visible\n const observer = new IntersectionObserver((entries) => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Find the index of the visible slide\n const slideIndex = Array.from(slides).indexOf(entry.target)\n if (slideIndex !== -1) {\n selectedIndex.value = slideIndex\n }\n }\n })\n }, {\n root: container,\n threshold: 0.7 // Consider slide visible when 70% is in view\n })\n \n // Observe all slides\n slides.forEach(slide => {\n observer.observe(slide)\n })\n \n // Add focus/blur events to pause autoplay on focus\n container.addEventListener('focusin', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('focusout', () => {\n setupAutoplay()\n })\n \n // Stop autoplay on touch/mouse interaction\n container.addEventListener('mousedown', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n container.addEventListener('touchstart', () => {\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n })\n \n // Resume autoplay after interaction ends\n container.addEventListener('mouseup', () => {\n setupAutoplay()\n })\n \n container.addEventListener('touchend', () => {\n setupAutoplay()\n })\n \n // Initialize autoplay\n setupAutoplay()\n \n // Store observer for cleanup\n carouselRef.value._observer = observer\n }\n})\n\nonBeforeUnmount(() => {\n // Clean up all resources\n if (carouselRef.value) {\n // Clean up intersection observer\n if (carouselRef.value._observer) {\n carouselRef.value._observer.disconnect()\n }\n \n // Clean up event listeners\n const container = carouselRef.value.querySelector('.carousel__container')\n if (container) {\n container.removeEventListener('focusin', () => {})\n container.removeEventListener('focusout', () => {})\n container.removeEventListener('mousedown', () => {})\n container.removeEventListener('touchstart', () => {})\n container.removeEventListener('mouseup', () => {})\n container.removeEventListener('touchend', () => {})\n }\n }\n \n // Clear all timeouts and intervals\n if (autoplayInterval.value) {\n clearInterval(autoplayInterval.value)\n }\n \n if (scrollTimeout.value) {\n clearTimeout(scrollTimeout.value)\n }\n})\n</script>\n\n<style >\n.carousel {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel__container {\n display: flex;\n scroll-snap-type: x mandatory;\n overflow-x: scroll;\n scrollbar-width: none; /* Firefox */\n -ms-overflow-style: none; /* IE and Edge */\n scroll-behavior: smooth;\n}\n\n.carousel__container::-webkit-scrollbar {\n display: none; /* Chrome, Safari, Opera */\n}\n\n.carousel__slide {\n flex: 0 0 100%;\n width: 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n}\n\n/* Navigation dots */\n.carousel__dots {\n display: flex;\n justify-content: center;\n gap: 0.5rem;\n margin-top: 1rem;\n}\n\n.carousel__dot {\n width: 0.625rem;\n height: 0.625rem;\n border-radius: 50%;\n background-color: rgba(0, 0, 0, 0.2);\n border: none;\n padding: 0;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.carousel__dot--active {\n background-color: rgba(0, 0, 0, 0.6);\n}\n</style>"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
+ const vueI18n = require("vue-i18n");
5
+ const IconInfo = require("../../modules/icons/navigation/IconInfo.vue.cjs");
4
6
  const IconCross = require("../../modules/icons/navigation/IconCross.vue.cjs");
5
7
  ;/* empty css */
6
8
  const _hoisted_1 = { class: "pd-small error-wrapper" };
7
- const _hoisted_2 = { class: "flex-nowrap flex radius-small pd-small t-white bg-fourth" };
9
+ const _hoisted_2 = { class: "flex-nowrap flex-v-center flex radius-small pd-small t-white bg-fourth" };
8
10
  const _hoisted_3 = { class: "w-100" };
9
11
  const _sfc_main = {
10
12
  __name: "Status",
@@ -16,6 +18,9 @@ const _sfc_main = {
16
18
  },
17
19
  emits: "close",
18
20
  setup(__props, { emit: __emit }) {
21
+ const { t, te } = vueI18n.useI18n({
22
+ useScope: "global"
23
+ });
19
24
  const emits = __emit;
20
25
  function closeError() {
21
26
  emits("close");
@@ -23,10 +28,11 @@ const _sfc_main = {
23
28
  return (_ctx, _cache) => {
24
29
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
25
30
  vue.createElementVNode("div", _hoisted_2, [
26
- vue.createElementVNode("p", _hoisted_3, [
27
- vue.createTextVNode(vue.toDisplayString(__props.data.message) + " ", 1),
28
- _cache[1] || (_cache[1] = vue.createElementVNode("br", null, null, -1))
29
- ]),
31
+ vue.createVNode(IconInfo.default, {
32
+ fill: "rgb(var(--white))",
33
+ class: "t-transp i-medium mn-r-thin z-index-5"
34
+ }),
35
+ vue.createElementVNode("p", _hoisted_3, vue.toDisplayString(vue.unref(te)(`globals.errors.${__props.data.message}`) ? vue.unref(t)(`globals.errors.${__props.data.message}`) : __props.data.message), 1),
30
36
  vue.createVNode(IconCross.default, {
31
37
  onClick: _cache[0] || (_cache[0] = ($event) => closeError()),
32
38
  class: "cursor-pointer hover-scale-1 i-regular z-index-5"
@@ -1 +1 @@
1
- {"version":3,"file":"Status.vue.cjs","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{data.message}}\n\t\t\t\t<!-- <span class=\"t-semi\">Ошибка: {{status}} </span> -->\n\t\t\t\t<br>\n\t\t\t\t<!-- <span>Сообщение: {{message}}</span> -->\n\t\t\t</p>\n\t\t\t\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst emits = defineEmits('close')\n\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA0BC,UAAM,QAAQ;AASd,aAAS,aAAc;AACtB,YAAM,OAAO;AAAA,IACb;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Status.vue.cjs","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex-v-center flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<IconInfo fill=\"rgb(var(--white))\" class=\"t-transp i-medium mn-r-thin z-index-5\"/>\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{te(`globals.errors.${data.message}`) ? t(`globals.errors.${data.message}`) : data.message}}\n\t\t\t</p>\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport { useI18n } from 'vue-i18n'\n\n\timport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue';\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst { t, te } = useI18n({\n\t\tuseScope: 'global',\n\t})\n\n\tconst emits = defineEmits('close')\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n</style>\n\n\n"],"names":["useI18n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA0BC,UAAM,EAAE,GAAG,GAAI,IAAGA,gBAAQ;AAAA,MACzB,UAAU;AAAA,IACV,CAAA;AAED,UAAM,QAAQ;AAQd,aAAS,aAAc;AACtB,YAAM,OAAO;AAAA,IACb;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +1,10 @@
1
- import { createElementBlock, openBlock, createElementVNode, createVNode, createTextVNode, toDisplayString } from "vue";
2
- import _sfc_main$1 from "../../modules/icons/navigation/IconCross.vue.js";
1
+ import { createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref } from "vue";
2
+ import { useI18n } from "vue-i18n";
3
+ import _sfc_main$1 from "../../modules/icons/navigation/IconInfo.vue.js";
4
+ import _sfc_main$2 from "../../modules/icons/navigation/IconCross.vue.js";
3
5
  /* empty css */
4
6
  const _hoisted_1 = { class: "pd-small error-wrapper" };
5
- const _hoisted_2 = { class: "flex-nowrap flex radius-small pd-small t-white bg-fourth" };
7
+ const _hoisted_2 = { class: "flex-nowrap flex-v-center flex radius-small pd-small t-white bg-fourth" };
6
8
  const _hoisted_3 = { class: "w-100" };
7
9
  const _sfc_main = {
8
10
  __name: "Status",
@@ -14,6 +16,9 @@ const _sfc_main = {
14
16
  },
15
17
  emits: "close",
16
18
  setup(__props, { emit: __emit }) {
19
+ const { t, te } = useI18n({
20
+ useScope: "global"
21
+ });
17
22
  const emits = __emit;
18
23
  function closeError() {
19
24
  emits("close");
@@ -21,11 +26,12 @@ const _sfc_main = {
21
26
  return (_ctx, _cache) => {
22
27
  return openBlock(), createElementBlock("div", _hoisted_1, [
23
28
  createElementVNode("div", _hoisted_2, [
24
- createElementVNode("p", _hoisted_3, [
25
- createTextVNode(toDisplayString(__props.data.message) + " ", 1),
26
- _cache[1] || (_cache[1] = createElementVNode("br", null, null, -1))
27
- ]),
28
29
  createVNode(_sfc_main$1, {
30
+ fill: "rgb(var(--white))",
31
+ class: "t-transp i-medium mn-r-thin z-index-5"
32
+ }),
33
+ createElementVNode("p", _hoisted_3, toDisplayString(unref(te)(`globals.errors.${__props.data.message}`) ? unref(t)(`globals.errors.${__props.data.message}`) : __props.data.message), 1),
34
+ createVNode(_sfc_main$2, {
29
35
  onClick: _cache[0] || (_cache[0] = ($event) => closeError()),
30
36
  class: "cursor-pointer hover-scale-1 i-regular z-index-5"
31
37
  })
@@ -1 +1 @@
1
- {"version":3,"file":"Status.vue.js","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{data.message}}\n\t\t\t\t<!-- <span class=\"t-semi\">Ошибка: {{status}} </span> -->\n\t\t\t\t<br>\n\t\t\t\t<!-- <span>Сообщение: {{message}}</span> -->\n\t\t\t</p>\n\t\t\t\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst emits = defineEmits('close')\n\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA0BC,UAAM,QAAQ;AASd,aAAS,aAAc;AACtB,YAAM,OAAO;AAAA,IACb;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Status.vue.js","sources":["../../../../../src/components/Status/Status.vue"],"sourcesContent":["<template>\n\t<div class=\"pd-small error-wrapper\">\n\t\t<div class=\"\n\t\t\tflex-nowrap flex-v-center flex\n\t\t\tradius-small\n\t\t\tpd-small\n\t\t\tt-white \n\t\t\tbg-fourth\n\t\t\">\n\t\t\t<IconInfo fill=\"rgb(var(--white))\" class=\"t-transp i-medium mn-r-thin z-index-5\"/>\n\t\t\t<p class=\"w-100\">\n\t\t\t\t{{te(`globals.errors.${data.message}`) ? t(`globals.errors.${data.message}`) : data.message}}\n\t\t\t</p>\n\t\t\t<IconCross @click=\"closeError()\" class=\"cursor-pointer hover-scale-1 i-regular z-index-5\"/>\n\t\t</div>\n\t</div>\n</template>\n\n\n<script setup=\"props\">\n\timport { computed } from 'vue'\n\timport { useI18n } from 'vue-i18n'\n\n\timport IconInfo from '@martyrs/src/modules/icons/navigation/IconInfo.vue';\n\timport IconCross from '@martyrs/src/modules/icons/navigation/IconCross.vue';\n\n\tconst { t, te } = useI18n({\n\t\tuseScope: 'global',\n\t})\n\n\tconst emits = defineEmits('close')\n\tconst props = defineProps({\n\t status: String,\n\t message: String,\n\t show: Boolean,\n\t data: Object\n\t})\n\n\tfunction closeError () {\n\t\temits('close')\n\t} \n</script>\n\n<style lang=\"scss\">\n\t.error-wrapper {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t}\n</style>\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AA0BC,UAAM,EAAE,GAAG,GAAI,IAAG,QAAQ;AAAA,MACzB,UAAU;AAAA,IACV,CAAA;AAED,UAAM,QAAQ;AAQd,aAAS,aAAc;AACtB,YAAM,OAAO;AAAA,IACb;;;;;;;;;;;;;;;;;;"}
@@ -4,11 +4,11 @@ const vue = require("vue");
4
4
  ;/* empty css */
5
5
  ;/* empty css */
6
6
  ;/* empty css */
7
- require("vue-i18n");
8
- ;/* empty css */
7
+ const SliderFeatures = require("../sections/SliderFeatures.vue.cjs");
9
8
  const vueRouter = require("vue-router");
10
9
  require("../../store/auth.cjs");
11
10
  const _hoisted_1 = { class: "cols-2-1_2 gap-small pd-small" };
11
+ const _hoisted_2 = { class: "w-100 desktop-only o-hidden radius-big bg-black t-white" };
12
12
  const _sfc_main = {
13
13
  __name: "Auth",
14
14
  setup(__props) {
@@ -39,7 +39,9 @@ const _sfc_main = {
39
39
  ]),
40
40
  _: 1
41
41
  }),
42
- _cache[0] || (_cache[0] = vue.createElementVNode("section", { class: "w-100 desktop-only o-hidden radius-big bg-grad-main" }, null, -1))
42
+ vue.createElementVNode("section", _hoisted_2, [
43
+ vue.createVNode(SliderFeatures.default)
44
+ ])
43
45
  ]);
44
46
  };
45
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.vue.cjs","sources":["../../../../../../../../src/modules/auth/views/components/layouts/Auth.vue"],"sourcesContent":["<template>\n <div \n \tclass=\"cols-2-1_2 gap-small pd-small\"\n >\n\n <router-view\n \tclass=\"pd-big mobile:pd-medium w-m-66r t-center\" \n \tv-slot=\"{ Component, route }\"\n >\n <transition \n \tname=\"scaleIn\" mode=\"out-in\"\n >\n <component \n \tref=\"page\" \n \t:key=\"route.path\" \n \t:localPosition=\"localPosition\" \n \t:is=\"Component\" \n />\n </transition>\n </router-view>\n\n <section class=\"w-100 desktop-only o-hidden radius-big bg-grad-main\">\n <!-- <SliderFeatures/> --> \n </section>\n </div>\n</template>\n\n<script setup>\n// Import components\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Import blocks\nimport SliderFeatures from '@martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue'\n// Import libs\nimport { computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n// Import state\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n// Import validation\nimport * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n\nconst phoneValidation = ref(null)\nconst passswordValidation = ref(null)\nconst emailValidation = ref(null)\n// Accessing router\nconst route = useRoute()\nconst router = useRouter()\n// Accessing state\nconst tabAuth = ref('email')\n// Methods\nasync function onSubmit() {\n try {\n await inputsValidation.validateInputs(\n emailValidation,\n inputsValidation.validateEmail,\n auth.state.user.email,\n 'Некорректный email'\n )\n await inputsValidation.validateInputs(\n passswordValidation,\n inputsValidation.validatePassword,\n auth.state.user.password,\n 'Некорректный пароль'\n )\n } catch (error) {\n throw new Error\n }\n await auth.actions.login(auth.state.user, tabAuth.value)\n}\n\nfunction redirectTo() {\n router.push({ name: 'Account' })\n}\n</script>"],"names":["ref","useRoute","useRouter"],"mappings":";;;;;;;;;;;;;;AA0CwBA,QAAAA,IAAI,IAAI;AACJA,QAAAA,IAAI,IAAI;AACZA,QAAAA,IAAI,IAAI;AAElBC,cAAQ,SAAA;AACPC,cAAS,UAAA;AAERF,QAAAA,IAAI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Auth.vue.cjs","sources":["../../../../../../../../src/modules/auth/views/components/layouts/Auth.vue"],"sourcesContent":["<template>\n <div \n \tclass=\"cols-2-1_2 gap-small pd-small\"\n >\n\n <router-view\n \tclass=\"pd-big mobile:pd-medium w-m-66r t-center\" \n \tv-slot=\"{ Component, route }\"\n >\n <transition \n \tname=\"scaleIn\" mode=\"out-in\"\n >\n <component \n \tref=\"page\" \n \t:key=\"route.path\" \n \t:localPosition=\"localPosition\" \n \t:is=\"Component\" \n />\n </transition>\n </router-view>\n\n <section class=\"w-100 desktop-only o-hidden radius-big bg-black t-white\">\n <SliderFeatures/> \n </section>\n </div>\n</template>\n\n<script setup>\n// Import components\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Import blocks\nimport SliderFeatures from '@martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue'\n// Import libs\nimport { computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n// Import state\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n// Import validation\nimport * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n\nconst phoneValidation = ref(null)\nconst passswordValidation = ref(null)\nconst emailValidation = ref(null)\n// Accessing router\nconst route = useRoute()\nconst router = useRouter()\n// Accessing state\nconst tabAuth = ref('email')\n// Methods\nasync function onSubmit() {\n try {\n await inputsValidation.validateInputs(\n emailValidation,\n inputsValidation.validateEmail,\n auth.state.user.email,\n 'Некорректный email'\n )\n await inputsValidation.validateInputs(\n passswordValidation,\n inputsValidation.validatePassword,\n auth.state.user.password,\n 'Некорректный пароль'\n )\n } catch (error) {\n throw new Error\n }\n await auth.actions.login(auth.state.user, tabAuth.value)\n}\n\nfunction redirectTo() {\n router.push({ name: 'Account' })\n}\n</script>"],"names":["ref","useRoute","useRouter"],"mappings":";;;;;;;;;;;;;;AA0CwBA,QAAAA,IAAI,IAAI;AACJA,QAAAA,IAAI,IAAI;AACZA,QAAAA,IAAI,IAAI;AAElBC,cAAQ,SAAA;AACPC,cAAS,UAAA;AAERF,QAAAA,IAAI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,11 +2,11 @@ import { ref, resolveComponent, createElementBlock, openBlock, createVNode, crea
2
2
  /* empty css */
3
3
  /* empty css */
4
4
  /* empty css */
5
- import "vue-i18n";
6
- /* empty css */
5
+ import _sfc_main$1 from "../sections/SliderFeatures.vue.js";
7
6
  import { useRoute, useRouter } from "vue-router";
8
7
  import "../../store/auth.js";
9
8
  const _hoisted_1 = { class: "cols-2-1_2 gap-small pd-small" };
9
+ const _hoisted_2 = { class: "w-100 desktop-only o-hidden radius-big bg-black t-white" };
10
10
  const _sfc_main = {
11
11
  __name: "Auth",
12
12
  setup(__props) {
@@ -37,7 +37,9 @@ const _sfc_main = {
37
37
  ]),
38
38
  _: 1
39
39
  }),
40
- _cache[0] || (_cache[0] = createElementVNode("section", { class: "w-100 desktop-only o-hidden radius-big bg-grad-main" }, null, -1))
40
+ createElementVNode("section", _hoisted_2, [
41
+ createVNode(_sfc_main$1)
42
+ ])
41
43
  ]);
42
44
  };
43
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/layouts/Auth.vue"],"sourcesContent":["<template>\n <div \n \tclass=\"cols-2-1_2 gap-small pd-small\"\n >\n\n <router-view\n \tclass=\"pd-big mobile:pd-medium w-m-66r t-center\" \n \tv-slot=\"{ Component, route }\"\n >\n <transition \n \tname=\"scaleIn\" mode=\"out-in\"\n >\n <component \n \tref=\"page\" \n \t:key=\"route.path\" \n \t:localPosition=\"localPosition\" \n \t:is=\"Component\" \n />\n </transition>\n </router-view>\n\n <section class=\"w-100 desktop-only o-hidden radius-big bg-grad-main\">\n <!-- <SliderFeatures/> --> \n </section>\n </div>\n</template>\n\n<script setup>\n// Import components\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Import blocks\nimport SliderFeatures from '@martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue'\n// Import libs\nimport { computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n// Import state\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n// Import validation\nimport * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n\nconst phoneValidation = ref(null)\nconst passswordValidation = ref(null)\nconst emailValidation = ref(null)\n// Accessing router\nconst route = useRoute()\nconst router = useRouter()\n// Accessing state\nconst tabAuth = ref('email')\n// Methods\nasync function onSubmit() {\n try {\n await inputsValidation.validateInputs(\n emailValidation,\n inputsValidation.validateEmail,\n auth.state.user.email,\n 'Некорректный email'\n )\n await inputsValidation.validateInputs(\n passswordValidation,\n inputsValidation.validatePassword,\n auth.state.user.password,\n 'Некорректный пароль'\n )\n } catch (error) {\n throw new Error\n }\n await auth.actions.login(auth.state.user, tabAuth.value)\n}\n\nfunction redirectTo() {\n router.push({ name: 'Account' })\n}\n</script>"],"names":[],"mappings":";;;;;;;;;;;;AA0CwB,QAAI,IAAI;AACJ,QAAI,IAAI;AACZ,QAAI,IAAI;AAElB,aAAQ;AACP,cAAS;AAER,QAAI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Auth.vue.js","sources":["../../../../../../../../src/modules/auth/views/components/layouts/Auth.vue"],"sourcesContent":["<template>\n <div \n \tclass=\"cols-2-1_2 gap-small pd-small\"\n >\n\n <router-view\n \tclass=\"pd-big mobile:pd-medium w-m-66r t-center\" \n \tv-slot=\"{ Component, route }\"\n >\n <transition \n \tname=\"scaleIn\" mode=\"out-in\"\n >\n <component \n \tref=\"page\" \n \t:key=\"route.path\" \n \t:localPosition=\"localPosition\" \n \t:is=\"Component\" \n />\n </transition>\n </router-view>\n\n <section class=\"w-100 desktop-only o-hidden radius-big bg-black t-white\">\n <SliderFeatures/> \n </section>\n </div>\n</template>\n\n<script setup>\n// Import components\nimport Tab from '@martyrs/src/components/Tab/Tab.vue'\nimport Field from '@martyrs/src/components/Field/Field.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\n// Import blocks\nimport SliderFeatures from '@martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue'\n// Import libs\nimport { computed, onMounted, ref } from 'vue'\nimport { useRoute, useRouter } from 'vue-router'\n// Import state\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js'\n// Import validation\nimport * as inputsValidation from '@martyrs/src/modules/auth/views/validations/inputs.validation'\n\nconst phoneValidation = ref(null)\nconst passswordValidation = ref(null)\nconst emailValidation = ref(null)\n// Accessing router\nconst route = useRoute()\nconst router = useRouter()\n// Accessing state\nconst tabAuth = ref('email')\n// Methods\nasync function onSubmit() {\n try {\n await inputsValidation.validateInputs(\n emailValidation,\n inputsValidation.validateEmail,\n auth.state.user.email,\n 'Некорректный email'\n )\n await inputsValidation.validateInputs(\n passswordValidation,\n inputsValidation.validatePassword,\n auth.state.user.password,\n 'Некорректный пароль'\n )\n } catch (error) {\n throw new Error\n }\n await auth.actions.login(auth.state.user, tabAuth.value)\n}\n\nfunction redirectTo() {\n router.push({ name: 'Account' })\n}\n</script>"],"names":[],"mappings":";;;;;;;;;;;;AA0CwB,QAAI,IAAI;AACJ,QAAI,IAAI;AACZ,QAAI,IAAI;AAElB,aAAQ;AACP,cAAS;AAER,QAAI,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,8 +3,8 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
5
  ;/* empty css */
6
- const Dropdown = require("../../../../../components/Dropdown/Dropdown.vue.cjs");
7
- const Menu = require("../../../../../components/Menu/Menu.vue2.cjs");
6
+ const Dropdown = require("../../../../../components/Dropdown/Dropdown.vue2.cjs");
7
+ const Menu = require("../../../../../components/Menu/Menu.vue.cjs");
8
8
  const MenuItem = require("../../../../../components/Menu/MenuItem.vue.cjs");
9
9
  const ButtonToggleMembership = require("../../../../organizations/components/elements/ButtonToggleMembership.vue.cjs");
10
10
  const FormReport = require("../../../../reports/components/sections/FormReport.vue.cjs");
@@ -1,8 +1,8 @@
1
1
  import { ref, inject, computed, onMounted, resolveComponent, createElementBlock, createCommentVNode, openBlock, createElementVNode, createVNode, createBlock, unref, withCtx, toDisplayString, Fragment, renderList, normalizeClass, resolveDynamicComponent } from "vue";
2
2
  /* empty css */
3
3
  /* empty css */
4
- import _sfc_main$5 from "../../../../../components/Dropdown/Dropdown.vue.js";
5
- import _sfc_main$a from "../../../../../components/Menu/Menu.vue2.js";
4
+ import _sfc_main$5 from "../../../../../components/Dropdown/Dropdown.vue2.js";
5
+ import _sfc_main$a from "../../../../../components/Menu/Menu.vue.js";
6
6
  import _sfc_main$b from "../../../../../components/Menu/MenuItem.vue.js";
7
7
  import _sfc_main$7 from "../../../../organizations/components/elements/ButtonToggleMembership.vue.js";
8
8
  import _sfc_main$6 from "../../../../reports/components/sections/FormReport.vue.js";
@@ -2,12 +2,12 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const vueI18n = require("vue-i18n");
5
- const emblaCarouselVue_esm = require("../../../../../../../node_modules/.pnpm/embla-carousel-vue@8.6.0_vue@3.5.13_typescript@5.8.3_/node_modules/embla-carousel-vue/esm/embla-carousel-vue.esm.cjs");
6
- const emblaCarouselAutoplay_esm = require("../../../../../../../node_modules/.pnpm/embla-carousel-autoplay@8.6.0_embla-carousel@8.6.0/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.cjs");
5
+ const Slider = require("../../../../../components/Slider/Slider.vue.cjs");
7
6
  ;/* empty css */
8
- const _hoisted_1 = { class: "embla__container" };
9
- const _hoisted_2 = { class: "mn-b-small" };
10
- const _hoisted_3 = { class: "mn-b-big mn-r-small mn-l-small" };
7
+ const _hoisted_1 = { class: "parent-div flex flex-h-center" };
8
+ const _hoisted_2 = { class: "pd-big" };
9
+ const _hoisted_3 = { class: "t-center w-100 mn-b-regular" };
10
+ const _hoisted_4 = { class: "t-center t-transp w-100" };
11
11
  const _sfc_main = {
12
12
  __name: "SliderFeatures",
13
13
  setup(__props) {
@@ -55,52 +55,35 @@ const _sfc_main = {
55
55
  }
56
56
  }
57
57
  };
58
- const { tm, rt } = vueI18n.useI18n(text);
59
- const selectedIndex = vue.ref(0);
60
- const scrollSnaps = vue.ref([]);
61
- const autoplayOptions = {
62
- delay: 2e3,
63
- jump: false,
64
- stopOnInteraction: false,
65
- stopOnMouseEnter: false,
66
- stopOnFocusIn: true,
67
- stopOnLastSnap: false,
68
- rootNode: (emblaRoot) => emblaRoot.parentElement
69
- };
70
- const [emblaNode, emblaApi] = emblaCarouselVue_esm.default({ loop: true }, [emblaCarouselAutoplay_esm.default(autoplayOptions)]);
71
- const onInit = (embla) => scrollSnaps.value = emblaApi.value.scrollSnapList();
72
- const onSelect = (embla) => selectedIndex.value = emblaApi.value.selectedScrollSnap();
73
- vue.onMounted(async () => {
74
- onInit();
75
- onSelect();
76
- emblaApi.value.on("reInit", onInit);
77
- emblaApi.value.on("reInit", onSelect);
78
- emblaApi.value.on("select", onSelect);
79
- });
58
+ const { tm } = vueI18n.useI18n(text);
59
+ const features = vue.computed(() => tm("features"));
80
60
  return (_ctx, _cache) => {
81
- return vue.openBlock(), vue.createElementBlock("div", {
82
- class: "embla",
83
- ref_key: "emblaNode",
84
- ref: emblaNode
85
- }, [
86
- vue.createElementVNode("div", _hoisted_1, [
87
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(tm)("features"), (feature, index) => {
61
+ return vue.openBlock(), vue.createBlock(Slider.default, {
62
+ showDots: true,
63
+ slideCount: features.value.length,
64
+ class: "auth_slider h-100"
65
+ }, {
66
+ default: vue.withCtx(() => [
67
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(features.value, (feature, index) => {
88
68
  return vue.openBlock(), vue.createElementBlock("div", {
89
- class: "embla__slide pd-nano",
69
+ class: "carousel__slide",
90
70
  key: index
91
71
  }, [
92
- vue.createElementVNode("div", {
93
- class: "parent-div",
94
- style: vue.normalizeStyle(`background-image: url(/assets/images/features/${index}.png); background-size:cover; background-position: center center;`)
95
- }, [
96
- _cache[0] || (_cache[0] = vue.createElementVNode("div", { class: "background-div" }, null, -1)),
97
- vue.createElementVNode("h4", _hoisted_2, vue.toDisplayString(feature.title), 1),
98
- vue.createElementVNode("p", _hoisted_3, vue.toDisplayString(feature.description), 1)
99
- ], 4)
72
+ vue.createElementVNode("div", _hoisted_1, [
73
+ vue.createElementVNode("div", {
74
+ class: "background-div",
75
+ style: vue.normalizeStyle(`background-image: url(/features/${index}.png); background-size:contain; background-position: center center; background-repeat: no-repeat;`)
76
+ }, null, 4),
77
+ vue.createElementVNode("div", _hoisted_2, [
78
+ vue.createElementVNode("h5", _hoisted_3, vue.toDisplayString(feature.title), 1),
79
+ vue.createElementVNode("p", _hoisted_4, vue.toDisplayString(feature.description), 1)
80
+ ])
81
+ ])
100
82
  ]);
101
83
  }), 128))
102
- ])
103
- ], 512);
84
+ ]),
85
+ _: 1
86
+ }, 8, ["slideCount"]);
104
87
  };
105
88
  }
106
89
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SliderFeatures.vue.cjs","sources":["../../../../../../../../src/modules/auth/views/components/sections/SliderFeatures.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nimport emblaCarouselVue from 'embla-carousel-vue';\nimport Autoplay from 'embla-carousel-autoplay'\n\nconst text = {\n messages: {\n en: {\n features: [\n {\n title: \"What's the Weeder Token, Dude?\",\n description: \"WDT is like, the backbone of our rad community. It's cash, it's power, it's an investment. Groovy, right?\", \n },\n {\n title: \"Light Up and Level Up\",\n description: \"Order up, light up, and earn Weeder tokens. More tokes, more cash in your pocket, man.\", \n },\n {\n title: \"Hang Ten with Our Community\",\n description: \"Find the dopest strains and start floating on cloud 9 with us!\", \n },\n {\n title: \"Shop 'Til You Drop... Into Your Couch\",\n description: \"Score primo bud and gear with just a few clicks. Delivered right to your pad!\", \n },\n ]\n },\n ru: {\n features: [\n {\n title: \"Что такое токен Weeder, Бро?\",\n description: \"WDT - это как основа нашего крутого сообщества. Это деньги, это власть, это инвестиции. Круто, а?\", \n },\n {\n title: \"Зажигай и Развивайся\",\n description: \"Закажи шмали, курни и зарабатывай токены Weeder. Чем больше курнешь, тем больше кэша у тебя в кармане, чувак.\", \n },\n \n {\n title: \"Веселись с Нашим Сообществом\",\n description: \"Найди самые крутые сорта и начни шмалить на девятом облаке вместе с нами.\", \n },\n {\n title: \"Покупайте, Когда Накурились\",\n description: \"Закажи премиумную бошку и крутые аксессуары за пару кликов, чувак. Прямо к твоей двери!\",\n },\n ]\n }\n }\n}\n\nconst { tm,rt } = useI18n(text)\n\n\n\n\nconst selectedIndex = ref(0);\nconst scrollSnaps = ref([]);\n\nconst autoplayOptions = {\n delay: 2000,\n jump: false,\n stopOnInteraction: false,\n stopOnMouseEnter: false,\n stopOnFocusIn: true,\n stopOnLastSnap: false,\n rootNode: (emblaRoot) => emblaRoot.parentElement\n}\n\nconst [emblaNode, emblaApi] = emblaCarouselVue({ loop: true }, [Autoplay(autoplayOptions)])\n\nconst scrollTo = (index) => emblaApi.value && emblaApi.value.scrollTo(index);\nconst onInit = (embla) => scrollSnaps.value = emblaApi.value.scrollSnapList();\nconst onSelect = (embla) => selectedIndex.value = emblaApi.value.selectedScrollSnap();\n\nonMounted(async() => {\n onInit(emblaApi);\n onSelect(emblaApi);\n\n emblaApi.value.on('reInit', onInit);\n emblaApi.value.on('reInit', onSelect);\n emblaApi.value.on('select', onSelect);\n});\n</script>\n\n<template>\n <div class=\"embla\" ref=\"emblaNode\">\n <div class=\"embla__container\">\n <div class=\"embla__slide pd-nano\" v-for=\"(feature, index) in tm('features')\" :key=\"index\">\n <div class=\"parent-div\" :style=\"`background-image: url(/assets/images/features/${index}.png); background-size:cover; background-position: center center;`\">\n <div class=\"background-div\"></div>\n <h4 class=\"mn-b-small\">{{ feature.title }}</h4>\n <p class='mn-b-big mn-r-small mn-l-small'>{{ feature.description }}</p>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\">\n.carousel__track {\n height: 100%;\n }\n.carousel-controls {\n position: absolute;\n top: 0;\n right: 0;\n}\n\n.carousel-indicators {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n justify-content: center;\n}\n\n.carousel-indicators li {\n list-style: none;\n margin: 0 5px;\n width: 10px;\n height: 10px;\n background: gray;\n border-radius: 50%;\n}\n\n.carousel-indicators li.active {\n background: white;\n}\n\n.parent-div {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n}\n\n.background-div {\n flex-grow: 1 // Занимает все оставшееся пространство\n}\n</style>\n"],"names":["useI18n","ref","emblaCarouselVue","Autoplay","onMounted"],"mappings":";;;;;;;;;;;;;AAOA,UAAM,OAAO;AAAA,MACX,UAAU;AAAA,QACR,IAAI;AAAA,UACF,UAAU;AAAA,YACR;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,UACT;AAAA,QACK;AAAA,QACD,IAAI;AAAA,UACF,UAAU;AAAA,YACR;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YAED;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,UACT;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAEA,UAAM,EAAE,IAAG,OAAOA,QAAAA,QAAQ,IAAI;AAK9B,UAAM,gBAAgBC,IAAG,IAAC,CAAC;AAC3B,UAAM,cAAcA,IAAG,IAAC,EAAE;AAE1B,UAAM,kBAAkB;AAAA,MACtB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,mBAAmB;AAAA,MACnB,kBAAkB;AAAA,MAClB,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,UAAU,CAAC,cAAc,UAAU;AAAA,IACrC;AAEA,UAAM,CAAC,WAAW,QAAQ,IAAIC,6BAAiB,EAAE,MAAM,QAAQ,CAACC,kCAAS,eAAe,CAAC,CAAC;AAG1F,UAAM,SAAS,CAAC,UAAW,YAAY,QAAQ,SAAS,MAAM,eAAgB;AAC9E,UAAM,WAAW,CAAC,UAAU,cAAc,QAAQ,SAAS,MAAM,mBAAoB;AAErFC,QAAAA,UAAU,YAAW;AACnB,aAAe;AACf,eAAiB;AAEjB,eAAS,MAAM,GAAG,UAAU,MAAM;AAClC,eAAS,MAAM,GAAG,UAAU,QAAQ;AACpC,eAAS,MAAM,GAAG,UAAU,QAAQ;AAAA,IACtC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"SliderFeatures.vue.cjs","sources":["../../../../../../../../src/modules/auth/views/components/sections/SliderFeatures.vue"],"sourcesContent":["<script setup>\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nimport Slider from '@martyrs/src/components/Slider/Slider.vue'\n\nconst text = {\n messages: {\n en: {\n features: [\n {\n title: \"What's the Weeder Token, Dude?\",\n description: \"WDT is like, the backbone of our rad community. It's cash, it's power, it's an investment. Groovy, right?\", \n },\n {\n title: \"Light Up and Level Up\",\n description: \"Order up, light up, and earn Weeder tokens. More tokes, more cash in your pocket, man.\", \n },\n {\n title: \"Hang Ten with Our Community\",\n description: \"Find the dopest strains and start floating on cloud 9 with us!\", \n },\n {\n title: \"Shop 'Til You Drop... Into Your Couch\",\n description: \"Score primo bud and gear with just a few clicks. Delivered right to your pad!\", \n },\n ]\n },\n ru: {\n features: [\n {\n title: \"Что такое токен Weeder, Бро?\",\n description: \"WDT - это как основа нашего крутого сообщества. Это деньги, это власть, это инвестиции. Круто, а?\", \n },\n {\n title: \"Зажигай и Развивайся\",\n description: \"Закажи шмали, курни и зарабатывай токены Weeder. Чем больше курнешь, тем больше кэша у тебя в кармане, чувак.\", \n },\n {\n title: \"Веселись с Нашим Сообществом\",\n description: \"Найди самые крутые сорта и начни шмалить на девятом облаке вместе с нами.\", \n },\n {\n title: \"Покупайте, Когда Накурились\",\n description: \"Закажи премиумную бошку и крутые аксессуары за пару кликов, чувак. Прямо к твоей двери!\",\n },\n ]\n }\n }\n}\n\nconst { tm } = useI18n(text)\nconst features = computed(() => tm('features'))\n</script>\n\n<template>\n <Slider :showDots=\"true\" :slideCount=\"features.length\" class=\"auth_slider h-100\">\n <div class=\"carousel__slide\" v-for=\"(feature, index) in features\" :key=\"index\">\n <div class=\"parent-div flex flex-h-center\" >\n <div class=\"background-div\" :style=\"`background-image: url(/features/${index}.png); background-size:contain; background-position: center center; background-repeat: no-repeat;`\"></div>\n <div class=\"pd-big\">\n <h5 class=\"t-center w-100 mn-b-regular\">{{ feature.title }}</h5>\n <p class='t-center t-transp w-100'>{{ feature.description }}</p>\n </div>\n </div>\n </div>\n </Slider>\n</template>\n\n<style lang=\"scss\">\n.auth_slider .carousel {\n height: 100%;\n}\n\n.auth_slider .carousel__container {\n height: 100%;\n}\n\n.parent-div {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n object-fit: contain;\n}\n\n.background-div {\n flex-grow: 1; // Занимает все оставшееся пространство\n}\n</style>"],"names":["useI18n","computed"],"mappings":";;;;;;;;;;;;;AAMA,UAAM,OAAO;AAAA,MACX,UAAU;AAAA,QACR,IAAI;AAAA,UACF,UAAU;AAAA,YACR;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,UACT;AAAA,QACK;AAAA,QACD,IAAI;AAAA,UACF,UAAU;AAAA,YACR;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,YACD;AAAA,cACE,OAAO;AAAA,cACP,aAAa;AAAA,YACd;AAAA,UACT;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAEA,UAAM,EAAE,GAAE,IAAKA,QAAAA,QAAQ,IAAI;AAC3B,UAAM,WAAWC,IAAQ,SAAC,MAAM,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}