@sima-land/moleculas 16.0.0-alpha.2 → 16.0.0-alpha.21

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 (351) hide show
  1. package/README.md +23 -0
  2. package/common/components/badge/badge.d.ts +8 -0
  3. package/common/components/badge/badge.js +55 -0
  4. package/common/components/badge/badge.js.map +1 -0
  5. package/common/components/badge/badge.m.scss +81 -0
  6. package/common/components/badge/index.d.ts +2 -19
  7. package/common/components/badge/index.js +3 -80
  8. package/common/components/badge/index.js.map +1 -0
  9. package/common/components/badge/types.d.ts +26 -0
  10. package/common/components/{intractive-image → badge}/types.js +1 -0
  11. package/common/components/badge/types.js.map +1 -0
  12. package/common/components/badge-list/badge-list.d.ts +29 -0
  13. package/common/components/badge-list/badge-list.js +38 -0
  14. package/common/components/badge-list/badge-list.js.map +1 -0
  15. package/common/components/badge-list/index.d.ts +1 -29
  16. package/common/components/badge-list/index.js +3 -56
  17. package/common/components/badge-list/index.js.map +1 -0
  18. package/common/components/breadcrumbs/breadcrumbs.d.ts +46 -0
  19. package/common/components/breadcrumbs/breadcrumbs.js +83 -0
  20. package/common/components/breadcrumbs/breadcrumbs.js.map +1 -0
  21. package/common/components/breadcrumbs/breadcrumbs.m.scss +113 -0
  22. package/common/components/breadcrumbs/index.d.ts +2 -0
  23. package/common/components/breadcrumbs/index.js +7 -0
  24. package/common/components/breadcrumbs/index.js.map +1 -0
  25. package/common/components/breadcrumbs/types.d.ts +8 -0
  26. package/common/{types.js → components/breadcrumbs/types.js} +1 -0
  27. package/common/components/breadcrumbs/types.js.map +1 -0
  28. package/common/components/img-stub/img-stub.d.ts +14 -0
  29. package/common/components/img-stub/img-stub.js +21 -0
  30. package/common/components/img-stub/img-stub.js.map +1 -0
  31. package/common/components/img-stub/img-stub.m.scss +36 -0
  32. package/common/components/img-stub/index.d.ts +1 -0
  33. package/common/components/img-stub/index.js +6 -0
  34. package/common/components/img-stub/index.js.map +1 -0
  35. package/common/components/{intractive-image → interactive-image}/index.js +1 -0
  36. package/common/components/interactive-image/index.js.map +1 -0
  37. package/common/components/interactive-image/interactive-image.d.ts +15 -0
  38. package/common/components/interactive-image/interactive-image.js +56 -0
  39. package/common/components/interactive-image/interactive-image.js.map +1 -0
  40. package/common/components/{intractive-image → interactive-image}/types.d.ts +4 -4
  41. package/common/components/interactive-image/types.js +3 -0
  42. package/common/components/interactive-image/types.js.map +1 -0
  43. package/common/components/media-gallery/index.d.ts +2 -0
  44. package/common/components/media-gallery/index.js +7 -0
  45. package/common/components/media-gallery/index.js.map +1 -0
  46. package/common/components/media-gallery/media-gallery.d.ts +16 -0
  47. package/common/components/media-gallery/media-gallery.js +90 -0
  48. package/common/components/media-gallery/media-gallery.js.map +1 -0
  49. package/common/components/media-gallery/media-gallery.m.scss +35 -0
  50. package/common/components/media-gallery/types.d.ts +12 -0
  51. package/common/components/media-gallery/types.js +3 -0
  52. package/common/components/media-gallery/types.js.map +1 -0
  53. package/common/components/media-gallery/utils.d.ts +38 -0
  54. package/common/components/media-gallery/utils.js +102 -0
  55. package/common/components/media-gallery/utils.js.map +1 -0
  56. package/common/components/media-modal/__mocks__/images/armchair.jpg +0 -0
  57. package/common/components/media-modal/__mocks__/images/cup.jpg +0 -0
  58. package/common/components/media-modal/__mocks__/images/plant.jpg +0 -0
  59. package/common/components/media-modal/__mocks__/images/stump.jpg +0 -0
  60. package/common/components/media-modal/__mocks__/images/table.jpg +0 -0
  61. package/common/components/media-modal/__mocks__/images/vase.jpg +0 -0
  62. package/common/components/media-modal/__mocks__/index.d.ts +3 -0
  63. package/common/components/media-modal/__mocks__/index.js +251 -0
  64. package/common/components/media-modal/__mocks__/index.js.map +1 -0
  65. package/common/components/media-modal/__mocks__/thumbnails/armchair.jpg +0 -0
  66. package/common/components/media-modal/__mocks__/thumbnails/cup.jpg +0 -0
  67. package/common/components/media-modal/__mocks__/thumbnails/plant.jpg +0 -0
  68. package/common/components/media-modal/__mocks__/thumbnails/stump.jpg +0 -0
  69. package/common/components/media-modal/__mocks__/thumbnails/table.jpg +0 -0
  70. package/common/components/media-modal/__mocks__/thumbnails/vase.jpg +0 -0
  71. package/common/components/media-modal/__mocks__/thumbnails/video3404953.jpg +0 -0
  72. package/common/components/media-modal/__mocks__/thumbnails/video3619217.jpg +0 -0
  73. package/common/components/media-modal/__mocks__/thumbnails/video4093038.jpg +0 -0
  74. package/common/components/media-modal/__mocks__/thumbnails/video6907296.jpg +0 -0
  75. package/common/components/media-modal/index.d.ts +11 -0
  76. package/common/components/media-modal/index.js +29 -0
  77. package/common/components/media-modal/index.js.map +1 -0
  78. package/common/components/media-modal/layout.d.ts +36 -0
  79. package/common/components/media-modal/layout.js +81 -0
  80. package/common/components/media-modal/layout.js.map +1 -0
  81. package/common/components/media-modal/layout.m.scss +78 -0
  82. package/common/components/media-modal/parts/all-round-view.d.ts +7 -0
  83. package/common/components/media-modal/parts/all-round-view.js +42 -0
  84. package/common/components/media-modal/parts/all-round-view.js.map +1 -0
  85. package/common/components/media-modal/parts/all-round-view.m.scss +30 -0
  86. package/common/components/media-modal/parts/index.d.ts +36 -0
  87. package/common/components/media-modal/parts/index.js +65 -0
  88. package/common/components/media-modal/parts/index.js.map +1 -0
  89. package/common/components/media-modal/parts/media-area.d.ts +25 -0
  90. package/common/components/media-modal/parts/media-area.js +61 -0
  91. package/common/components/media-modal/parts/media-area.js.map +1 -0
  92. package/common/components/media-modal/parts/media-area.m.scss +21 -0
  93. package/common/components/media-modal/parts/media-view.d.ts +20 -0
  94. package/common/components/media-modal/parts/media-view.js +46 -0
  95. package/common/components/media-modal/parts/media-view.js.map +1 -0
  96. package/common/components/media-modal/parts/media-view.m.scss +34 -0
  97. package/common/components/media-modal/parts/parts.m.scss +21 -0
  98. package/common/components/media-modal/parts/product-brief.d.ts +20 -0
  99. package/common/components/media-modal/parts/product-brief.js +40 -0
  100. package/common/components/media-modal/parts/product-brief.js.map +1 -0
  101. package/common/components/media-modal/parts/product-brief.m.scss +149 -0
  102. package/common/components/media-modal/parts/review.d.ts +15 -0
  103. package/common/components/media-modal/parts/review.js +32 -0
  104. package/common/components/media-modal/parts/review.js.map +1 -0
  105. package/common/components/media-modal/parts/review.m.scss +86 -0
  106. package/common/components/media-modal/parts/scroll-section.d.ts +11 -0
  107. package/common/components/media-modal/parts/scroll-section.js +20 -0
  108. package/common/components/media-modal/parts/scroll-section.js.map +1 -0
  109. package/common/components/media-modal/parts/scroll-section.m.scss +32 -0
  110. package/common/components/media-modal/parts/thumbnail.d.ts +22 -0
  111. package/common/components/media-modal/parts/thumbnail.js +36 -0
  112. package/common/components/media-modal/parts/thumbnail.js.map +1 -0
  113. package/common/components/media-modal/parts/thumbnail.m.scss +156 -0
  114. package/common/components/media-modal/parts/thumbnails.d.ts +13 -0
  115. package/common/components/media-modal/parts/thumbnails.js +60 -0
  116. package/common/components/media-modal/parts/thumbnails.js.map +1 -0
  117. package/common/components/media-modal/parts/thumbnails.m.scss +16 -0
  118. package/common/components/media-modal/types.d.ts +18 -0
  119. package/common/components/media-modal/types.js +3 -0
  120. package/common/components/media-modal/types.js.map +1 -0
  121. package/common/components/media-modal/utils.d.ts +42 -0
  122. package/common/components/media-modal/utils.js +110 -0
  123. package/common/components/media-modal/utils.js.map +1 -0
  124. package/common/components/modifier/index.d.ts +2 -46
  125. package/common/components/modifier/index.js +4 -99
  126. package/common/components/modifier/index.js.map +1 -0
  127. package/common/components/modifier/modifier.d.ts +13 -0
  128. package/common/components/modifier/modifier.js +74 -0
  129. package/common/components/modifier/modifier.js.map +1 -0
  130. package/common/components/modifier/{modifiers.module.scss → modifier.m.scss} +61 -0
  131. package/common/components/modifier/types.d.ts +35 -0
  132. package/common/components/modifier/types.js +3 -0
  133. package/common/components/modifier/types.js.map +1 -0
  134. package/common/components/pagination-controls/index.d.ts +2 -0
  135. package/common/components/pagination-controls/index.js +9 -0
  136. package/common/components/pagination-controls/index.js.map +1 -0
  137. package/common/components/pagination-controls/pagination-controls.d.ts +30 -0
  138. package/common/components/pagination-controls/pagination-controls.js +72 -0
  139. package/common/components/pagination-controls/pagination-controls.js.map +1 -0
  140. package/common/components/pagination-controls/pagination-controls.m.scss +70 -0
  141. package/common/components/pagination-controls/types.d.ts +20 -0
  142. package/common/components/pagination-controls/types.js +3 -0
  143. package/common/components/pagination-controls/types.js.map +1 -0
  144. package/common/components/product-info/index.d.ts +1 -16
  145. package/common/components/product-info/index.js +5 -41
  146. package/common/components/product-info/index.js.map +1 -0
  147. package/common/components/product-info/parts.d.ts +22 -21
  148. package/common/components/product-info/parts.js +35 -83
  149. package/common/components/product-info/parts.js.map +1 -0
  150. package/common/components/product-info/product-info.d.ts +15 -0
  151. package/common/components/product-info/product-info.js +33 -0
  152. package/common/components/product-info/product-info.js.map +1 -0
  153. package/common/components/product-info/{product-info.module.scss → product-info.m.scss} +9 -0
  154. package/common/components/product-info/types.d.ts +2 -2
  155. package/common/components/product-info/types.js +1 -0
  156. package/common/components/product-info/types.js.map +1 -0
  157. package/common/components/product-info/utils.js +1 -0
  158. package/common/components/product-info/utils.js.map +1 -0
  159. package/common/components/rating-counter/index.d.ts +1 -25
  160. package/common/components/rating-counter/index.js +3 -35
  161. package/common/components/rating-counter/index.js.map +1 -0
  162. package/common/components/rating-counter/rating-counter-util.scss +1 -1
  163. package/common/components/rating-counter/rating-counter.d.ts +35 -0
  164. package/common/components/rating-counter/rating-counter.js +24 -0
  165. package/common/components/rating-counter/rating-counter.js.map +1 -0
  166. package/common/hooks/index.d.ts +19 -0
  167. package/common/hooks/index.js +39 -0
  168. package/common/hooks/index.js.map +1 -0
  169. package/desktop/components/breadcrumbs/breadcrumbs.d.ts +31 -0
  170. package/desktop/components/breadcrumbs/breadcrumbs.js +56 -0
  171. package/desktop/components/breadcrumbs/breadcrumbs.js.map +1 -0
  172. package/desktop/components/breadcrumbs/{breadcrumbs.module.scss → breadcrumbs.m.scss} +36 -1
  173. package/desktop/components/breadcrumbs/index.d.ts +1 -28
  174. package/desktop/components/breadcrumbs/index.js +3 -80
  175. package/desktop/components/breadcrumbs/index.js.map +1 -0
  176. package/desktop/components/gallery-modal/__mocks__/index.js +1 -0
  177. package/desktop/components/gallery-modal/__mocks__/index.js.map +1 -0
  178. package/desktop/components/gallery-modal/components/all-round-view.d.ts +5 -2
  179. package/desktop/components/gallery-modal/components/all-round-view.js +47 -62
  180. package/desktop/components/gallery-modal/components/all-round-view.js.map +1 -0
  181. package/desktop/components/gallery-modal/components/{all-round-view.module.scss → all-round-view.m.scss} +5 -0
  182. package/desktop/components/gallery-modal/components/gallery-modal.d.ts +4 -5
  183. package/desktop/components/gallery-modal/components/gallery-modal.js +16 -66
  184. package/desktop/components/gallery-modal/components/gallery-modal.js.map +1 -0
  185. package/desktop/components/gallery-modal/components/{gallery-modal.module.scss → gallery-modal.m.scss} +5 -3
  186. package/desktop/components/gallery-modal/components/image-overlay.d.ts +3 -3
  187. package/desktop/components/gallery-modal/components/image-overlay.js +4 -17
  188. package/desktop/components/gallery-modal/components/image-overlay.js.map +1 -0
  189. package/desktop/components/gallery-modal/components/{image-overlay.module.scss → image-overlay.m.scss} +1 -0
  190. package/desktop/components/gallery-modal/components/review-info.d.ts +1 -1
  191. package/desktop/components/gallery-modal/components/review-info.js +11 -52
  192. package/desktop/components/gallery-modal/components/review-info.js.map +1 -0
  193. package/desktop/components/gallery-modal/components/thumbnail.d.ts +3 -3
  194. package/desktop/components/gallery-modal/components/thumbnail.js +7 -10
  195. package/desktop/components/gallery-modal/components/thumbnail.js.map +1 -0
  196. package/desktop/components/gallery-modal/index.js +1 -0
  197. package/desktop/components/gallery-modal/index.js.map +1 -0
  198. package/desktop/components/gallery-modal/types.js +1 -0
  199. package/desktop/components/gallery-modal/types.js.map +1 -0
  200. package/desktop/components/gallery-modal/utils.d.ts +5 -3
  201. package/desktop/components/gallery-modal/utils.js +18 -8
  202. package/desktop/components/gallery-modal/utils.js.map +1 -0
  203. package/desktop/components/person-info/index.d.ts +1 -41
  204. package/desktop/components/person-info/index.js +3 -43
  205. package/desktop/components/person-info/index.js.map +1 -0
  206. package/desktop/components/person-info/person-info.d.ts +42 -0
  207. package/desktop/components/person-info/person-info.js +24 -0
  208. package/desktop/components/person-info/person-info.js.map +1 -0
  209. package/desktop/components/person-info/{person-info.module.scss → person-info.m.scss} +1 -1
  210. package/desktop/components/product-card/index.d.ts +2 -26
  211. package/desktop/components/product-card/index.js +7 -103
  212. package/desktop/components/product-card/index.js.map +1 -0
  213. package/desktop/components/product-card/product-card.d.ts +23 -0
  214. package/desktop/components/product-card/product-card.js +94 -0
  215. package/desktop/components/product-card/product-card.js.map +1 -0
  216. package/desktop/components/product-card/types.d.ts +19 -0
  217. package/desktop/components/product-card/types.js +3 -0
  218. package/desktop/components/product-card/types.js.map +1 -0
  219. package/desktop/components/product-carousel/hover-card.d.ts +2 -7
  220. package/desktop/components/product-carousel/hover-card.js +13 -49
  221. package/desktop/components/product-carousel/hover-card.js.map +1 -0
  222. package/desktop/components/product-carousel/{hover-card.module.scss → hover-card.m.scss} +2 -2
  223. package/desktop/components/product-carousel/index.d.ts +2 -31
  224. package/desktop/components/product-carousel/index.js +3 -133
  225. package/desktop/components/product-carousel/index.js.map +1 -0
  226. package/desktop/components/product-carousel/product-carousel.d.ts +7 -0
  227. package/desktop/components/product-carousel/product-carousel.js +95 -0
  228. package/desktop/components/product-carousel/product-carousel.js.map +1 -0
  229. package/desktop/components/product-carousel/{product-carousel.module.scss → product-carousel.m.scss} +1 -1
  230. package/desktop/components/product-carousel/types.d.ts +33 -0
  231. package/desktop/components/product-carousel/types.js +3 -0
  232. package/desktop/components/product-carousel/types.js.map +1 -0
  233. package/desktop/components/product-carousel/utils.d.ts +4 -4
  234. package/desktop/components/product-carousel/utils.js +8 -7
  235. package/desktop/components/product-carousel/utils.js.map +1 -0
  236. package/desktop/components/promotion-card/banner-title.d.ts +2 -3
  237. package/desktop/components/promotion-card/banner-title.js +9 -19
  238. package/desktop/components/promotion-card/banner-title.js.map +1 -0
  239. package/desktop/components/promotion-card/estimate.d.ts +1 -2
  240. package/desktop/components/promotion-card/estimate.js +3 -5
  241. package/desktop/components/promotion-card/estimate.js.map +1 -0
  242. package/desktop/components/promotion-card/index.d.ts +4 -31
  243. package/desktop/components/promotion-card/index.js +10 -83
  244. package/desktop/components/promotion-card/index.js.map +1 -0
  245. package/desktop/components/promotion-card/placeholder.d.ts +4 -2
  246. package/desktop/components/promotion-card/placeholder.js +4 -6
  247. package/desktop/components/promotion-card/placeholder.js.map +1 -0
  248. package/desktop/components/promotion-card/promotion-card.d.ts +32 -0
  249. package/desktop/components/promotion-card/promotion-card.js +39 -0
  250. package/desktop/components/promotion-card/promotion-card.js.map +1 -0
  251. package/desktop/components/promotion-card/{index.module.scss → promotion-card.m.scss} +8 -6
  252. package/desktop/components/promotion-card/types.js +1 -0
  253. package/desktop/components/promotion-card/types.js.map +1 -0
  254. package/mobile/components/action-circles/action-circles.d.ts +22 -0
  255. package/mobile/components/action-circles/action-circles.js +31 -0
  256. package/mobile/components/action-circles/action-circles.js.map +1 -0
  257. package/mobile/components/action-circles/index.d.ts +1 -22
  258. package/mobile/components/action-circles/index.js +3 -29
  259. package/mobile/components/action-circles/index.js.map +1 -0
  260. package/mobile/components/action-list/action-list.d.ts +29 -0
  261. package/mobile/components/action-list/action-list.js +40 -0
  262. package/mobile/components/action-list/action-list.js.map +1 -0
  263. package/mobile/components/action-list/index.d.ts +1 -23
  264. package/mobile/components/action-list/index.js +5 -34
  265. package/mobile/components/action-list/index.js.map +1 -0
  266. package/mobile/components/breadcrumbs/breadcrumbs.d.ts +12 -0
  267. package/mobile/components/breadcrumbs/breadcrumbs.js +17 -0
  268. package/mobile/components/breadcrumbs/breadcrumbs.js.map +1 -0
  269. package/mobile/components/breadcrumbs/index.d.ts +1 -13
  270. package/mobile/components/breadcrumbs/index.js +3 -13
  271. package/mobile/components/breadcrumbs/index.js.map +1 -0
  272. package/mobile/components/person-info/index.d.ts +1 -44
  273. package/mobile/components/person-info/index.js +4 -55
  274. package/mobile/components/person-info/index.js.map +1 -0
  275. package/mobile/components/person-info/person-info.d.ts +46 -0
  276. package/mobile/components/person-info/person-info.js +41 -0
  277. package/mobile/components/person-info/person-info.js.map +1 -0
  278. package/mobile/components/person-info/{person-info.module.scss → person-info.m.scss} +9 -16
  279. package/mobile/components/product-row/index.d.ts +1 -41
  280. package/mobile/components/product-row/index.js +3 -56
  281. package/mobile/components/product-row/index.js.map +1 -0
  282. package/mobile/components/product-row/product-row.d.ts +40 -0
  283. package/mobile/components/product-row/product-row.js +29 -0
  284. package/mobile/components/product-row/product-row.js.map +1 -0
  285. package/mobile/components/product-slider/index.d.ts +1 -17
  286. package/mobile/components/product-slider/index.js +3 -57
  287. package/mobile/components/product-slider/index.js.map +1 -0
  288. package/mobile/components/product-slider/product-slider.d.ts +17 -0
  289. package/mobile/components/product-slider/product-slider.js +37 -0
  290. package/mobile/components/product-slider/product-slider.js.map +1 -0
  291. package/mobile/components/search-bar/index.d.ts +1 -39
  292. package/mobile/components/search-bar/index.js +4 -104
  293. package/mobile/components/search-bar/index.js.map +1 -0
  294. package/mobile/components/search-bar/search-bar.d.ts +39 -0
  295. package/mobile/components/search-bar/search-bar.js +64 -0
  296. package/mobile/components/search-bar/search-bar.js.map +1 -0
  297. package/mobile/components/search-bar/{search-bar.module.scss → search-bar.m.scss} +6 -6
  298. package/mobile/components/select-screen/index.d.ts +1 -20
  299. package/mobile/components/select-screen/index.js +4 -65
  300. package/mobile/components/select-screen/index.js.map +1 -0
  301. package/mobile/components/select-screen/select-screen.d.ts +20 -0
  302. package/mobile/components/select-screen/select-screen.js +31 -0
  303. package/mobile/components/select-screen/select-screen.js.map +1 -0
  304. package/package.json +40 -52
  305. package/common/components/badge/badge.module.scss +0 -40
  306. package/common/components/intractive-image/interactive-image.d.ts +0 -15
  307. package/common/components/intractive-image/interactive-image.js +0 -96
  308. package/common/components/rating-counter/star.svg +0 -5
  309. package/common/constants.d.ts +0 -2
  310. package/common/constants.js +0 -8
  311. package/common/icons/eighteen-plus.svg +0 -5
  312. package/common/types.d.ts +0 -1
  313. package/desktop/components/breadcrumbs/square-arrow-down.svg +0 -8
  314. package/desktop/components/gallery-modal/icons/360.svg +0 -3
  315. package/desktop/components/gallery-modal/icons/pause.svg +0 -3
  316. package/desktop/components/gallery-modal/icons/turn-left.svg +0 -10
  317. package/desktop/components/gallery-modal/icons/turn-right.svg +0 -10
  318. package/desktop/components/modifiers/button/index.d.ts +0 -22
  319. package/desktop/components/modifiers/button/index.js +0 -48
  320. package/desktop/components/modifiers/button/modifier-button.module.scss +0 -85
  321. package/desktop/components/modifiers/group/index.d.ts +0 -15
  322. package/desktop/components/modifiers/group/index.js +0 -70
  323. package/desktop/components/modifiers/group/modifiers-group.module.scss +0 -33
  324. package/desktop/components/modifiers/group/utils.d.ts +0 -20
  325. package/desktop/components/modifiers/group/utils.js +0 -73
  326. package/desktop/components/modifiers/modifiers.scss +0 -8
  327. package/mobile/components/modifiers-list/index.d.ts +0 -22
  328. package/mobile/components/modifiers-list/index.js +0 -25
  329. package/mobile/components/modifiers-list/modifier-item/index.d.ts +0 -29
  330. package/mobile/components/modifiers-list/modifier-item/index.js +0 -38
  331. package/mobile/components/modifiers-list/modifier-item/modifier-item.module.scss +0 -70
  332. package/mobile/components/modifiers-list/modifiers-list.module.scss +0 -21
  333. package/mobile/components/pseudo-input/index.d.ts +0 -11
  334. package/mobile/components/pseudo-input/index.js +0 -34
  335. package/mobile/components/pseudo-input/pseudo-input.module.scss +0 -24
  336. /package/common/components/badge-list/{badge-list.module.scss → badge-list.m.scss} +0 -0
  337. /package/common/components/{intractive-image → interactive-image}/index.d.ts +0 -0
  338. /package/common/components/{intractive-image → interactive-image}/interactive-image-util.scss +0 -0
  339. /package/common/components/{intractive-image/interactive-image.module.scss → interactive-image/interactive-image.m.scss} +0 -0
  340. /package/common/components/rating-counter/{rating-counter.module.scss → rating-counter.m.scss} +0 -0
  341. /package/desktop/components/gallery-modal/components/{review-info.module.scss → review-info.m.scss} +0 -0
  342. /package/desktop/components/gallery-modal/components/{thumbnail.module.scss → thumbnail.m.scss} +0 -0
  343. /package/desktop/components/product-card/{product-card.module.scss → product-card.m.scss} +0 -0
  344. /package/desktop/components/promotion-card/{banner-title.module.scss → banner-title.m.scss} +0 -0
  345. /package/desktop/components/promotion-card/{placeholder.module.scss → placeholder.m.scss} +0 -0
  346. /package/mobile/components/action-circles/{action-circles.module.scss → action-circles.m.scss} +0 -0
  347. /package/mobile/components/action-list/{action-list.module.scss → action-list.m.scss} +0 -0
  348. /package/mobile/components/breadcrumbs/{breadcrumbs.module.scss → breadcrumbs.m.scss} +0 -0
  349. /package/mobile/components/product-row/{product-row.module.scss → product-row.m.scss} +0 -0
  350. /package/mobile/components/product-slider/{product-slider.module.scss → product-slider.m.scss} +0 -0
  351. /package/mobile/components/select-screen/{select-screen.module.scss → select-screen.m.scss} +0 -0
@@ -0,0 +1,78 @@
1
+ @use 'node_modules/@sima-land/ui-nucleons/breakpoints';
2
+ @use 'node_modules/@sima-land/ui-nucleons/utils';
3
+
4
+ .layout {
5
+ display: flex;
6
+ flex-direction: column;
7
+ min-height: #{calc(100 * var(--vh, 1vh) - var(--top-bar-height, 0))};
8
+ }
9
+
10
+ .body {
11
+ flex-grow: 1;
12
+ display: flex;
13
+ }
14
+
15
+ .main {
16
+ display: flex;
17
+ justify-content: center;
18
+ flex-direction: column;
19
+ flex-grow: 1;
20
+ position: relative; // ВАЖНО: что иметь возможность заполнить доступную область содержимым
21
+ min-height: max(50vh, 240px);
22
+ }
23
+
24
+ @include breakpoints.down('xs') {
25
+ .header + .body {
26
+ margin-top: 24px;
27
+ }
28
+ .body {
29
+ flex-direction: column-reverse;
30
+ &:first-child {
31
+ margin-top: 24px;
32
+ }
33
+ &:last-child {
34
+ margin-bottom: 24px;
35
+ }
36
+ }
37
+ .aside + .main {
38
+ margin-bottom: 24px;
39
+ }
40
+ .body + .footer {
41
+ margin-top: 24px;
42
+ }
43
+ .footer {
44
+ margin-bottom: 24px;
45
+ }
46
+ }
47
+
48
+ @include breakpoints.up('xs') {
49
+ .header + .body {
50
+ margin-top: 40px;
51
+ }
52
+ .body {
53
+ &:first-child {
54
+ margin-top: 40px;
55
+ }
56
+ &:last-child {
57
+ margin-bottom: 40px;
58
+ }
59
+ }
60
+ .aside {
61
+ display: flex;
62
+ flex-direction: column;
63
+ width: 104px;
64
+ max-height: 100%;
65
+ }
66
+ .aside + .main {
67
+ margin-left: 16px;
68
+ }
69
+ .body + .footer {
70
+ margin-top: 32px;
71
+ }
72
+ .footer {
73
+ margin-bottom: 40px;
74
+ }
75
+ .footer-inner.with-aside {
76
+ margin-left: calc(104px + 16px);
77
+ }
78
+ }
@@ -0,0 +1,7 @@
1
+ import { AllRoundViewProps } from '../../../../desktop/components/gallery-modal/components/all-round-view';
2
+ /**
3
+ * Просмотр 360.
4
+ * @param props Свойства.
5
+ * @return Элемент.
6
+ */
7
+ export declare function AllRoundView(props: AllRoundViewProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AllRoundView = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const hooks_1 = require("@sima-land/ui-nucleons/hooks");
10
+ const all_round_view_1 = require("../../../../desktop/components/gallery-modal/components/all-round-view");
11
+ const hooks_2 = require("../../../../common/hooks");
12
+ const TouchScrollX_1 = __importDefault(require("@sima-land/ui-quarks/icons/64x64/Colorful/TouchScrollX"));
13
+ const all_round_view_m_scss_1 = __importDefault(require("./all-round-view.m.scss"));
14
+ /**
15
+ * Просмотр 360.
16
+ * @param props Свойства.
17
+ * @return Элемент.
18
+ */
19
+ function AllRoundView(props) {
20
+ const mounted = (0, hooks_2.useMounted)();
21
+ const desktop = (0, hooks_1.useBreakpoint)('xs+');
22
+ if (!mounted) {
23
+ return null;
24
+ }
25
+ return (0, jsx_runtime_1.jsx)(AfterMount, { desktop: desktop, ...props });
26
+ }
27
+ exports.AllRoundView = AllRoundView;
28
+ /**
29
+ * Внутренний компонент который будет выведен только после монтирования.
30
+ * @param props Свойства.
31
+ * @return Элемент.
32
+ */
33
+ function AfterMount({ desktop, ...props }) {
34
+ const [state, setState] = (0, react_1.useState)(() => (desktop ? 'autoplay' : 'default'));
35
+ const [tutorial, setTutorial] = (0, react_1.useState)(() => !desktop);
36
+ const acceptTutorial = (0, react_1.useCallback)(() => {
37
+ setTutorial(false);
38
+ setState('autoplay');
39
+ }, []);
40
+ return ((0, jsx_runtime_1.jsxs)("div", { className: all_round_view_m_scss_1.default.root, children: [!desktop && tutorial && ((0, jsx_runtime_1.jsx)("div", { className: all_round_view_m_scss_1.default.tutorial, onPointerUp: acceptTutorial, children: (0, jsx_runtime_1.jsx)(TouchScrollX_1.default, {}) })), (0, jsx_runtime_1.jsx)(all_round_view_1.AllRoundView, { ...props, controls: desktop, state: state, onStateChange: setState })] }));
41
+ }
42
+ //# sourceMappingURL=all-round-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all-round-view.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/all-round-view.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAA8C;AAC9C,wDAA6D;AAC7D,2GAIgF;AAChF,oDAAsD;AACtD,0GAA8E;AAC9E,oFAA6C;AAE7C;;;;GAIG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACnD,MAAM,OAAO,GAAG,IAAA,kBAAU,GAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IAErC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,uBAAC,UAAU,IAAC,OAAO,EAAE,OAAO,KAAM,KAAK,GAAI,CAAC;AACrD,CAAC;AATD,oCASC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAA4C;IACjF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAY,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACxF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAEzD,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACtC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,iCAAK,SAAS,EAAE,+BAAM,CAAC,IAAI,aACxB,CAAC,OAAO,IAAI,QAAQ,IAAI,CACvB,gCAAK,SAAS,EAAE,+BAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,YAC1D,uBAAC,sBAAQ,KAAG,GACR,CACP,EAED,uBAAC,6BAAgB,OAAK,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,GAAI,IACrF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ .root {
2
+ width: var(--all-round-view-size, 360px);
3
+ height: var(--all-round-view-size, 360px);
4
+ position: relative;
5
+ }
6
+
7
+ .tutorial {
8
+ position: absolute;
9
+ width: 100%;
10
+ height: 100%;
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ z-index: 2;
15
+ > svg {
16
+ animation: 2s ease-in-out infinite bounce;
17
+ }
18
+ }
19
+
20
+ @keyframes bounce {
21
+ 0% {
22
+ transform: translateX(-24px);
23
+ }
24
+ 50% {
25
+ transform: translateX(24px);
26
+ }
27
+ 100% {
28
+ transform: translateX(-24px);
29
+ }
30
+ }
@@ -0,0 +1,36 @@
1
+ import { ReactNode } from 'react';
2
+ import { TabsProps } from '@sima-land/ui-nucleons/tabs';
3
+ import { TextButtonProps } from '@sima-land/ui-nucleons/text-button';
4
+ export declare const Preset: {
5
+ readonly headerTabs: (userProps?: TabsProps) => TabsProps;
6
+ readonly headerButton: (userProps?: TextButtonProps) => TextButtonProps;
7
+ };
8
+ /**
9
+ * Формирует layout для шапки модального окна медиа.
10
+ * @param props Свойства.
11
+ * @return Элемент.
12
+ */
13
+ export declare function HeaderLayout({ children }: {
14
+ children?: ReactNode;
15
+ }): import("react/jsx-runtime").JSX.Element;
16
+ export declare namespace HeaderLayout {
17
+ var Tabs: typeof HeaderLayoutTabs;
18
+ var Button: typeof HeaderLayoutButton;
19
+ }
20
+ /**
21
+ * Слот вкладок для layout'а шапки модального окна медиа.
22
+ * @param props Свойства.
23
+ * @return Элемент.
24
+ */
25
+ declare function HeaderLayoutTabs({ children }: {
26
+ children?: ReactNode;
27
+ }): import("react/jsx-runtime").JSX.Element;
28
+ /**
29
+ * Слот кнопки для layout'а шапки модального окна медиа.
30
+ * @param props Свойства.
31
+ * @return Элемент.
32
+ */
33
+ declare function HeaderLayoutButton({ children }: {
34
+ children?: ReactNode;
35
+ }): import("react/jsx-runtime").JSX.Element;
36
+ export {};
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.HeaderLayout = exports.Preset = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const layout_1 = require("@sima-land/ui-nucleons/layout");
9
+ const helpers_1 = require("@sima-land/ui-nucleons/helpers");
10
+ const hooks_1 = require("@sima-land/ui-nucleons/hooks");
11
+ const hooks_2 = require("../../../../common/hooks");
12
+ const scroll_section_1 = require("./scroll-section");
13
+ const ArrowExpandLeft_1 = __importDefault(require("@sima-land/ui-quarks/icons/16x16/Stroked/ArrowExpandLeft"));
14
+ const parts_m_scss_1 = __importDefault(require("./parts.m.scss"));
15
+ exports.Preset = {
16
+ headerTabs: (userProps) => ({
17
+ view: 'clean-underline',
18
+ ...userProps,
19
+ }),
20
+ headerButton: (userProps) => ({
21
+ size: 's',
22
+ startIcon: ArrowExpandLeft_1.default,
23
+ iconGutter: 4,
24
+ className: parts_m_scss_1.default['header-button'],
25
+ children: 'Вернуться к основному товару',
26
+ ...userProps,
27
+ }),
28
+ };
29
+ /**
30
+ * Формирует layout для шапки модального окна медиа.
31
+ * @param props Свойства.
32
+ * @return Элемент.
33
+ */
34
+ function HeaderLayout({ children }) {
35
+ const mounted = (0, hooks_2.useMounted)();
36
+ const desktop = (0, hooks_1.useBreakpoint)('xs+');
37
+ const { tabs, button } = (0, helpers_1.defineSlots)(children, {
38
+ tabs: HeaderLayoutTabs,
39
+ button: HeaderLayoutButton,
40
+ });
41
+ if (!mounted) {
42
+ return (0, jsx_runtime_1.jsx)("div", { className: parts_m_scss_1.default['header-layout'] });
43
+ }
44
+ return ((0, jsx_runtime_1.jsxs)("div", { className: parts_m_scss_1.default['header-layout'], children: [!desktop && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [tabs && (0, jsx_runtime_1.jsx)(scroll_section_1.ScrollSection, { children: tabs }), button && (0, jsx_runtime_1.jsx)(layout_1.Layout, { children: button })] })), desktop && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [tabs, button] }))] }));
45
+ }
46
+ exports.HeaderLayout = HeaderLayout;
47
+ HeaderLayout.Tabs = HeaderLayoutTabs;
48
+ HeaderLayout.Button = HeaderLayoutButton;
49
+ /**
50
+ * Слот вкладок для layout'а шапки модального окна медиа.
51
+ * @param props Свойства.
52
+ * @return Элемент.
53
+ */
54
+ function HeaderLayoutTabs({ children }) {
55
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
56
+ }
57
+ /**
58
+ * Слот кнопки для layout'а шапки модального окна медиа.
59
+ * @param props Свойства.
60
+ * @return Элемент.
61
+ */
62
+ function HeaderLayoutButton({ children }) {
63
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
64
+ }
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/index.tsx"],"names":[],"mappings":";;;;;;;AACA,0DAAuD;AAGvD,4DAA6D;AAC7D,wDAA6D;AAC7D,oDAAsD;AACtD,qDAAiD;AACjD,+GAA+E;AAC/E,kEAAoC;AAEvB,QAAA,MAAM,GAAG;IACpB,UAAU,EAAE,CAAC,SAAqB,EAAa,EAAE,CAAC,CAAC;QACjD,IAAI,EAAE,iBAAiB;QACvB,GAAG,SAAS;KACb,CAAC;IAEF,YAAY,EAAE,CAAC,SAA2B,EAAmB,EAAE,CAAC,CAAC;QAC/D,IAAI,EAAE,GAAG;QACT,SAAS,EAAE,yBAAO;QAClB,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,sBAAM,CAAC,eAAe,CAAC;QAClC,QAAQ,EAAE,8BAA8B;QACxC,GAAG,SAAS;KACb,CAAC;CACM,CAAC;AAEX;;;;GAIG;AACH,SAAgB,YAAY,CAAC,EAAE,QAAQ,EAA4B;IACjE,MAAM,OAAO,GAAG,IAAA,kBAAU,GAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IAErC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAA,qBAAW,EAAC,QAAQ,EAAE;QAC7C,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,kBAAkB;KAC3B,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,gCAAK,SAAS,EAAE,sBAAM,CAAC,eAAe,CAAC,GAAQ,CAAC;IACzD,CAAC;IAED,OAAO,CACL,iCAAK,SAAS,EAAE,sBAAM,CAAC,eAAe,CAAC,aACpC,CAAC,OAAO,IAAI,CACX,6DACG,IAAI,IAAI,uBAAC,8BAAa,cAAE,IAAI,GAAiB,EAC7C,MAAM,IAAI,uBAAC,eAAM,cAAE,MAAM,GAAU,IACnC,CACJ,EAEA,OAAO,IAAI,CACV,6DACG,IAAI,EACJ,MAAM,IACN,CACJ,IACG,CACP,CAAC;AACJ,CAAC;AA9BD,oCA8BC;AAED,YAAY,CAAC,IAAI,GAAG,gBAAgB,CAAC;AACrC,YAAY,CAAC,MAAM,GAAG,kBAAkB,CAAC;AAEzC;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,EAAE,QAAQ,EAA4B;IAC9D,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,EAAE,QAAQ,EAA4B;IAChE,OAAO,2DAAG,QAAQ,GAAI,CAAC;AACzB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * Формирует ограничения высоты и ширины для вывода меда контента по гайдам.
4
+ * @param props Свойства.
5
+ * @return Элемент.
6
+ */
7
+ export declare function MediaArea({ children }: {
8
+ children?: ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ /**
11
+ * Центральная часть зоны для медиа.
12
+ * @param props Свойства.
13
+ * @return Элемент.
14
+ */
15
+ export declare function MediaAreaMain({ children }: {
16
+ children?: ReactNode;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ /**
19
+ * Боковая часть зоны для медиа.
20
+ * @param props Свойства.
21
+ * @return Элемент.
22
+ */
23
+ export declare function MediaAreaAside({ children }: {
24
+ children?: ReactNode;
25
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MediaAreaAside = exports.MediaAreaMain = exports.MediaArea = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const layout_1 = require("@sima-land/ui-nucleons/layout");
9
+ const react_1 = require("react");
10
+ const utils_1 = require("../utils");
11
+ const bind_1 = __importDefault(require("classnames/bind"));
12
+ const media_area_m_scss_1 = __importDefault(require("./media-area.m.scss"));
13
+ const cx = bind_1.default.bind(media_area_m_scss_1.default);
14
+ /**
15
+ * Формирует ограничения высоты и ширины для вывода меда контента по гайдам.
16
+ * @param props Свойства.
17
+ * @return Элемент.
18
+ */
19
+ function MediaArea({ children }) {
20
+ const ref = (0, react_1.useRef)(null);
21
+ const rect = (0, utils_1.useClientRect)(ref);
22
+ const style = rect.ready
23
+ ? {
24
+ '--media-gallery-width': `${rect.width}px`,
25
+ '--media-gallery-height': `${rect.height}px`,
26
+ '--media-view-width': `var(--media-gallery-width)`,
27
+ '--media-view-height': `var(--media-gallery-height)`,
28
+ }
29
+ : undefined;
30
+ return ((0, jsx_runtime_1.jsx)(layout_1.Layout, { rootRef: ref, disabledOn: ['mxs', 'ms', 'xs', 's', 'm', 'l', 'xl'], className: cx('root'), style: style, children: children }));
31
+ }
32
+ exports.MediaArea = MediaArea;
33
+ /**
34
+ * Центральная часть зоны для медиа.
35
+ * @param props Свойства.
36
+ * @return Элемент.
37
+ */
38
+ function MediaAreaMain({ children }) {
39
+ const ref = (0, react_1.useRef)(null);
40
+ const rect = (0, utils_1.useClientRect)(ref);
41
+ const style = rect.ready
42
+ ? {
43
+ '--media-gallery-width': `${rect.width}px`,
44
+ '--media-gallery-height': `${rect.height}px`,
45
+ '--media-view-width': `var(--media-gallery-width)`,
46
+ '--media-view-height': `var(--media-gallery-height)`,
47
+ }
48
+ : undefined;
49
+ return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: cx('main'), style: style, children: children }));
50
+ }
51
+ exports.MediaAreaMain = MediaAreaMain;
52
+ /**
53
+ * Боковая часть зоны для медиа.
54
+ * @param props Свойства.
55
+ * @return Элемент.
56
+ */
57
+ function MediaAreaAside({ children }) {
58
+ return (0, jsx_runtime_1.jsx)("div", { className: cx('aside'), children: children });
59
+ }
60
+ exports.MediaAreaAside = MediaAreaAside;
61
+ //# sourceMappingURL=media-area.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-area.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/media-area.tsx"],"names":[],"mappings":";;;;;;;AAAA,0DAAuD;AACvD,iCAAyD;AACzD,oCAAyC;AACzC,2DAAyC;AACzC,4EAAyC;AAEzC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,2BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,SAAS,CAAC,EAAE,QAAQ,EAA4B;IAC9D,MAAM,GAAG,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAA,qBAAa,EAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACtB,CAAC,CAAE;YACC,uBAAuB,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI;YAC1C,wBAAwB,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI;YAC5C,oBAAoB,EAAE,4BAA4B;YAClD,qBAAqB,EAAE,6BAA6B;SACnC;QACrB,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,uBAAC,eAAM,IACL,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EACpD,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EACrB,KAAK,EAAE,KAAK,YAEX,QAAQ,GACF,CACV,CAAC;AACJ,CAAC;AAvBD,8BAuBC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,EAAE,QAAQ,EAA4B;IAClE,MAAM,GAAG,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAA,qBAAa,EAAC,GAAG,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACtB,CAAC,CAAE;YACC,uBAAuB,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI;YAC1C,wBAAwB,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI;YAC5C,oBAAoB,EAAE,4BAA4B;YAClD,qBAAqB,EAAE,6BAA6B;SACnC;QACrB,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,CACL,gCAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,YAC/C,QAAQ,GACL,CACP,CAAC;AACJ,CAAC;AAlBD,sCAkBC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,EAAE,QAAQ,EAA4B;IACnE,OAAO,gCAAK,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,YAAG,QAAQ,GAAO,CAAC;AACvD,CAAC;AAFD,wCAEC"}
@@ -0,0 +1,21 @@
1
+ .root {
2
+ position: relative;
3
+ flex-grow: 1;
4
+ height: max(50vh, 240px);
5
+ display: flex;
6
+ }
7
+
8
+ .aside + .main,
9
+ .main + .aside {
10
+ margin-left: 24px;
11
+ }
12
+
13
+ .main {
14
+ flex-grow: 1;
15
+ position: relative;
16
+ }
17
+
18
+ .aside {
19
+ display: flex;
20
+ align-items: center;
21
+ }
@@ -0,0 +1,20 @@
1
+ import { CSSProperties, Ref, VideoHTMLAttributes } from 'react';
2
+ import { MediaData } from '../types';
3
+ export interface MediaViewStyle extends CSSProperties {
4
+ '--media-view-width'?: string;
5
+ '--media-view-height'?: string;
6
+ }
7
+ export interface MediaViewProps {
8
+ rootRef?: Ref<HTMLDivElement>;
9
+ media?: MediaData;
10
+ loading?: boolean;
11
+ videoProps?: VideoHTMLAttributes<HTMLVideoElement>;
12
+ style?: MediaViewStyle;
13
+ className?: string;
14
+ }
15
+ /**
16
+ * Отображает медиа-контент - 360, видео или изображение.
17
+ * @param props Свойства.
18
+ * @return Элемент.
19
+ */
20
+ export declare function MediaView({ media, loading, videoProps, style, className, rootRef, }: MediaViewProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MediaView = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const hooks_1 = require("@sima-land/ui-nucleons/hooks");
10
+ const all_round_view_1 = require("./all-round-view");
11
+ const hooks_2 = require("../../../hooks");
12
+ const img_stub_1 = require("../../img-stub");
13
+ const bind_1 = __importDefault(require("classnames/bind"));
14
+ const media_view_m_scss_1 = __importDefault(require("./media-view.m.scss"));
15
+ const cx = bind_1.default.bind(media_view_m_scss_1.default);
16
+ /**
17
+ * Отображает медиа-контент - 360, видео или изображение.
18
+ * @param props Свойства.
19
+ * @return Элемент.
20
+ */
21
+ function MediaView({ media, loading, videoProps, style, className, rootRef, }) {
22
+ const desktop = (0, hooks_1.useBreakpoint)('xs+');
23
+ let imageSrc = undefined;
24
+ if ((media === null || media === void 0 ? void 0 : media.type) === 'image') {
25
+ imageSrc = media.data.src;
26
+ }
27
+ else if ((media === null || media === void 0 ? void 0 : media.type) === 'video') {
28
+ imageSrc = media.data.thumbnail;
29
+ }
30
+ const { failed, handleError } = (0, hooks_2.useImageStub)(imageSrc);
31
+ const videoRef = (0, react_1.useRef)(null);
32
+ const videoSrc = (media === null || media === void 0 ? void 0 : media.type) === 'video' ? media.data.src : null;
33
+ (0, react_1.useEffect)(() => {
34
+ var _a;
35
+ // ВАЖНО: при смене src у элемента source видео не меняется автоматически - перезапускаем явно
36
+ if (videoSrc) {
37
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.load();
38
+ }
39
+ }, [loading, videoSrc]);
40
+ if (loading) {
41
+ return (0, jsx_runtime_1.jsx)("div", { ref: rootRef, className: cx('root', 'loading') });
42
+ }
43
+ return ((0, jsx_runtime_1.jsxs)("div", { ref: rootRef, className: cx('root', className), style: style, children: [(media === null || media === void 0 ? void 0 : media.type) === 'image' && ((0, jsx_runtime_1.jsxs)("div", { className: cx('image'), children: [failed && (0, jsx_runtime_1.jsx)(img_stub_1.ImgStub, { className: media_view_m_scss_1.default.stub }), !failed && (0, jsx_runtime_1.jsx)("img", { src: media.data.src, alt: media.data.alt || '', onError: handleError })] })), (media === null || media === void 0 ? void 0 : media.type) === 'video' && ((0, jsx_runtime_1.jsx)("video", { autoPlay: false, controls: true, controlsList: 'nodownload', ...videoProps, ref: videoRef, children: (0, jsx_runtime_1.jsx)("source", { src: media.data.src }) })), (media === null || media === void 0 ? void 0 : media.type) === '360' && (0, jsx_runtime_1.jsx)(all_round_view_1.AllRoundView, { photos: media.data.photos, controls: desktop })] }));
44
+ }
45
+ exports.MediaView = MediaView;
46
+ //# sourceMappingURL=media-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-view.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/media-view.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAmF;AAEnF,wDAA6D;AAC7D,qDAAgD;AAChD,0CAA8C;AAC9C,6CAAyC;AACzC,2DAAyC;AACzC,4EAAyC;AAgBzC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,2BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,SAAS,CAAC,EACxB,KAAK,EACL,OAAO,EACP,UAAU,EACV,KAAK,EACL,SAAS,EACT,OAAO,GACQ;IACf,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IACrC,IAAI,QAAQ,GAAuB,SAAS,CAAC;IAE7C,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,OAAO,EAAE,CAAC;QAC5B,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5B,CAAC;SAAM,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,OAAO,EAAE,CAAC;QACnC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjE,IAAA,iBAAS,EAAC,GAAG,EAAE;;QACb,8FAA8F;QAC9F,IAAI,QAAQ,EAAE,CAAC;YACb,MAAA,QAAQ,CAAC,OAAO,0CAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,gCAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,GAAQ,CAAC;IACrE,CAAC;IAED,OAAO,CACL,iCAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,aAC9D,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,OAAO,IAAI,CAC1B,iCAAK,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,aACxB,MAAM,IAAI,uBAAC,kBAAO,IAAC,SAAS,EAAE,2BAAM,CAAC,IAAI,GAAI,EAC7C,CAAC,MAAM,IAAI,gCAAK,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,GAAI,IACrF,CACP,EAEA,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,OAAO,IAAI,CAC1B,kCAAO,QAAQ,EAAE,KAAK,EAAE,QAAQ,QAAC,YAAY,EAAC,YAAY,KAAK,UAAU,EAAE,GAAG,EAAE,QAAQ,YACtF,mCAAQ,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAI,GACzB,CACT,EAEA,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,KAAK,IAAI,uBAAC,6BAAY,IAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAI,IACpF,CACP,CAAC;AACJ,CAAC;AAnDD,8BAmDC"}
@@ -0,0 +1,34 @@
1
+ @use 'node_modules/@sima-land/ui-nucleons/colors';
2
+
3
+ .root {
4
+ position: absolute;
5
+ width: var(--media-view-width, 320px);
6
+ height: var(--media-view-height, 240px);
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ &.loading {
11
+ background: colors.$basic-gray4;
12
+ }
13
+ --all-round-view-size: min(var(--media-view-width, 320px), var(--media-view-height, 240px));
14
+ video,
15
+ .image {
16
+ position: absolute;
17
+ display: block;
18
+ width: 100%;
19
+ height: 100%;
20
+ }
21
+ video {
22
+ background: colors.$basic-gray87;
23
+ }
24
+ .image img {
25
+ display: block;
26
+ width: 100%;
27
+ height: 100%;
28
+ object-fit: contain;
29
+ }
30
+ .stub {
31
+ width: 100%;
32
+ height: 100%;
33
+ }
34
+ }
@@ -0,0 +1,21 @@
1
+ @use 'node_modules/@sima-land/ui-nucleons/breakpoints';
2
+ @use 'node_modules/@sima-land/ui-nucleons/utils';
3
+
4
+ .header-layout {
5
+ min-height: 40px; // ВАЖНО: чтобы при отсутствии табов не уменьшалась высота
6
+ @include breakpoints.up('xs') {
7
+ flex-wrap: wrap;
8
+ display: flex;
9
+ align-items: flex-end;
10
+ justify-content: space-between;
11
+ }
12
+ }
13
+
14
+ .header-button {
15
+ margin-top: 16px !important;
16
+ @include breakpoints.down('xs') {
17
+ &:first-child {
18
+ margin-left: auto;
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,20 @@
1
+ import { HTMLAttributes, ImgHTMLAttributes, MouseEventHandler, ReactNode } from 'react';
2
+ export interface ProductBriefProps extends HTMLAttributes<HTMLDivElement> {
3
+ size?: 's' | 'l';
4
+ title?: string;
5
+ price?: string | number;
6
+ priceReplacer?: ReactNode;
7
+ currency?: string;
8
+ footer?: ReactNode;
9
+ href?: string;
10
+ onLinkClick?: MouseEventHandler<HTMLAnchorElement>;
11
+ imageSrc?: string;
12
+ imageProps?: ImgHTMLAttributes<HTMLImageElement>;
13
+ loading?: boolean;
14
+ }
15
+ /**
16
+ * Блок товара-рекомендации.
17
+ * @param props Свойства.
18
+ * @return Элемент.
19
+ */
20
+ export declare function ProductBrief({ size: sizeProp, imageSrc, imageProps, title, price, priceReplacer, currency, footer, className, href, onLinkClick, loading, ...restProps }: ProductBriefProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ProductBrief = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const image_overlay_1 = require("../../../../desktop/components/gallery-modal/components/image-overlay");
9
+ const price_1 = require("@sima-land/ui-nucleons/price");
10
+ const hooks_1 = require("@sima-land/ui-nucleons/hooks");
11
+ const hooks_2 = require("../../../hooks");
12
+ const bind_1 = __importDefault(require("classnames/bind"));
13
+ const product_brief_m_scss_1 = __importDefault(require("./product-brief.m.scss"));
14
+ const img_stub_1 = require("../../img-stub");
15
+ const cx = bind_1.default.bind(product_brief_m_scss_1.default);
16
+ /**
17
+ * Блок товара-рекомендации.
18
+ * @param props Свойства.
19
+ * @return Элемент.
20
+ */
21
+ function ProductBrief({ size: sizeProp, imageSrc, imageProps, title, price, priceReplacer, currency, footer, className, href, onLinkClick, loading, ...restProps }) {
22
+ const desktop = (0, hooks_1.useBreakpoint)('xs+');
23
+ const { failed, handleError } = (0, hooks_2.useImageStub)(imageSrc);
24
+ const size = (sizeProp !== null && sizeProp !== void 0 ? sizeProp : desktop) ? 'l' : 's';
25
+ const priceDefined = typeof price === 'number' || typeof price === 'string';
26
+ if (loading) {
27
+ return (0, jsx_runtime_1.jsx)(ProductBriefSkeleton, { size: size });
28
+ }
29
+ return ((0, jsx_runtime_1.jsxs)("div", { className: cx('root', `size-${size}`, className), ...restProps, children: [(0, jsx_runtime_1.jsx)("a", { className: product_brief_m_scss_1.default.image, href: href, onClick: onLinkClick, children: (0, jsx_runtime_1.jsxs)(image_overlay_1.ImageOverlay, { className: product_brief_m_scss_1.default.overlay, children: [failed && (0, jsx_runtime_1.jsx)(img_stub_1.ImgStub, { className: product_brief_m_scss_1.default.stub }), !failed && (0, jsx_runtime_1.jsx)("img", { src: imageSrc, ...imageProps, onError: handleError })] }) }), (0, jsx_runtime_1.jsxs)("div", { className: product_brief_m_scss_1.default.info, children: [(0, jsx_runtime_1.jsx)("a", { className: product_brief_m_scss_1.default.title, href: href, onClick: onLinkClick, children: title }), (priceDefined || priceReplacer) && ((0, jsx_runtime_1.jsx)("div", { className: product_brief_m_scss_1.default.price, children: priceDefined ? (0, jsx_runtime_1.jsx)(price_1.Price, { value: price, currencyGrapheme: currency }) : priceReplacer }))] }), footer && (0, jsx_runtime_1.jsx)("div", { className: product_brief_m_scss_1.default.footer, children: footer })] }));
30
+ }
31
+ exports.ProductBrief = ProductBrief;
32
+ /**
33
+ * Заглушка блока товара-рекомендации.
34
+ * @param props Свойства.
35
+ * @return Элемент.
36
+ */
37
+ function ProductBriefSkeleton({ size }) {
38
+ return ((0, jsx_runtime_1.jsxs)("div", { className: cx('skeleton', size), children: [(0, jsx_runtime_1.jsx)("div", {}), (0, jsx_runtime_1.jsx)("div", {}), (0, jsx_runtime_1.jsx)("div", {})] }));
39
+ }
40
+ //# sourceMappingURL=product-brief.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-brief.js","sourceRoot":"","sources":["../../../../../src/common/components/media-modal/parts/product-brief.tsx"],"names":[],"mappings":";;;;;;;AACA,yGAAqG;AACrG,wDAAqD;AACrD,wDAA6D;AAC7D,0CAA8C;AAC9C,2DAAyC;AACzC,kFAA4C;AAC5C,6CAAyC;AAgBzC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,8BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,YAAY,CAAC,EAC3B,IAAI,EAAE,QAAQ,EACd,QAAQ,EACR,UAAU,EACV,KAAK,EACL,KAAK,EACL,aAAa,EACb,QAAQ,EACR,MAAM,EACN,SAAS,EACT,IAAI,EACJ,WAAW,EACX,OAAO,EACP,GAAG,SAAS,EACM;IAClB,MAAM,OAAO,GAAG,IAAA,qBAAa,EAAC,KAAK,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,CAAA,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,OAAO,EAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;IAE5E,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,uBAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;IAC9C,CAAC;IAED,OAAO,CACL,iCAAK,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,SAAS,CAAC,KAAM,SAAS,aAClE,8BAAG,SAAS,EAAE,8BAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,YAC1D,wBAAC,4BAAY,IAAC,SAAS,EAAE,8BAAM,CAAC,OAAO,aACpC,MAAM,IAAI,uBAAC,kBAAO,IAAC,SAAS,EAAE,8BAAM,CAAC,IAAI,GAAI,EAC7C,CAAC,MAAM,IAAI,gCAAK,GAAG,EAAE,QAAQ,KAAM,UAAU,EAAE,OAAO,EAAE,WAAW,GAAI,IAC3D,GACb,EAEJ,iCAAK,SAAS,EAAE,8BAAM,CAAC,IAAI,aACzB,8BAAG,SAAS,EAAE,8BAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,YACzD,KAAK,GACJ,EACH,CAAC,YAAY,IAAI,aAAa,CAAC,IAAI,CAClC,gCAAK,SAAS,EAAE,8BAAM,CAAC,KAAK,YACzB,YAAY,CAAC,CAAC,CAAC,uBAAC,aAAK,IAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,GAAI,CAAC,CAAC,CAAC,aAAa,GAC/E,CACP,IACG,EAEL,MAAM,IAAI,gCAAK,SAAS,EAAE,8BAAM,CAAC,MAAM,YAAG,MAAM,GAAO,IACpD,CACP,CAAC;AACJ,CAAC;AA/CD,oCA+CC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,EAAE,IAAI,EAAO;IACzC,OAAO,CACL,iCAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,aAClC,iCAAW,EACX,iCAAW,EACX,iCAAW,IACP,CACP,CAAC;AACJ,CAAC"}