@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
package/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # UI-moleculas
2
+
3
+ В этом проекте собраны UI-компоненты, привязанные к контексту интернет-магазина.
4
+
5
+ ## Использование
6
+
7
+ ### Установка
8
+
9
+ ```sh
10
+ # с помощью npm
11
+ npm i -S @sima-land/moleculas
12
+
13
+ # или с помощью yarn
14
+ yarn add @sima-land/moleculas
15
+ ```
16
+
17
+ ### Настройка среды
18
+
19
+ Компоненты библиотеки используют:
20
+
21
+ - импорты css/scss-файлов как css-модулей (каждый такой файл промаркирован в виде `*.module.{css,scss}`)
22
+
23
+ Поэтому, для использования библиотеки необходимо сконфигурировать среду (сборщик или тестовый фреймворк) таким образом чтобы данные импорты работали корректно.
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import type { BadgeProps } from './types';
3
+ /**
4
+ * Шильдик.
5
+ * @param props Свойства.
6
+ * @return Элемент.
7
+ */
8
+ export declare const Badge: import("react").ForwardRefExoticComponent<BadgeProps & import("react").RefAttributes<HTMLAnchorElement>>;
@@ -0,0 +1,55 @@
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.Badge = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const timer_1 = require("@sima-land/ui-nucleons/timer");
10
+ const bind_1 = __importDefault(require("classnames/bind"));
11
+ const badge_m_scss_1 = __importDefault(require("./badge.m.scss"));
12
+ const cx = bind_1.default.bind(badge_m_scss_1.default);
13
+ /**
14
+ * Шильдик.
15
+ * @param props Свойства.
16
+ * @return Элемент.
17
+ */
18
+ exports.Badge = (0, react_1.forwardRef)(function Badge({ className, color, coloring = 'outline', fields, href, style, shape = 'unset', withHoverEffect = Boolean(href), 'data-testid': testId = 'badge', ...restProps }, ref) {
19
+ const iconOnly = fields.length === 1 && fields[0].type === 'svg-url';
20
+ const rootClassName = cx('root', iconOnly && 'icon-only', withHoverEffect && 'with-hover-effect', shape === 'round' && 'shape-round', shape === 'pill' && 'shape-pill', shape !== 'pill' && !iconOnly && 'padding-x-default', shape === 'pill' && !iconOnly && 'padding-x-pill', coloring === 'outline' && 'coloring-outline', coloring === 'fill' && 'coloring-fill', className);
21
+ const rootStyle = {
22
+ '--badge-color': color,
23
+ ...style,
24
+ };
25
+ return ((0, jsx_runtime_1.jsx)("a", { ref: ref, ...restProps, "data-testid": testId, href: href, style: rootStyle, className: rootClassName, children: iconOnly ? ((0, jsx_runtime_1.jsx)("img", { className: cx('icon'), src: fields[0].value, alt: '' })) : (
26
+ // вложенный span нужен для того чтобы объединить `display: inline-flex` и `text-overflow: ellipsis`
27
+ (0, jsx_runtime_1.jsx)("span", { className: cx('content'), children: fields.reduce((acc, item, i) => {
28
+ let result = null;
29
+ // на данный момент сочетание иконки с другими элементами не предусмотрено макетами - игнорируем
30
+ switch (item.type) {
31
+ case 'text':
32
+ result = item.value;
33
+ break;
34
+ case 'timer':
35
+ result = ((0, jsx_runtime_1.jsx)(timer_1.Timer, { date: item.value, timeout: 1000 * 60, format: formatDistance }, i));
36
+ break;
37
+ }
38
+ acc.push(result);
39
+ i < fields.length - 1 && acc.push(' ');
40
+ return acc;
41
+ }, []) })) }));
42
+ });
43
+ /**
44
+ * Форматирует оставшееся время.
45
+ * @param distance Оставшееся время.
46
+ * @return Отформатированное время.
47
+ */
48
+ const formatDistance = ({ days, hours, minutes, }) => [toTimePart(days), ...[hours % 24, minutes % 60].map(toTimePart)].join(':');
49
+ /**
50
+ * Форматирует число добавляя нули при необходимости.
51
+ * @param n Число.
52
+ * @return Отформатированное число.
53
+ */
54
+ const toTimePart = (n) => `${n}`.padStart(2, '0');
55
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../../../src/common/components/badge/badge.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ $badge-size: 20px;
2
+ $icon-size: 14px;
3
+
4
+ .root {
5
+ display: inline-flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ height: $badge-size;
9
+ font-weight: bold;
10
+ font-size: 12px;
11
+ line-height: 16px;
12
+ max-width: 100%;
13
+ min-width: $badge-size;
14
+ text-decoration: none;
15
+ }
16
+
17
+ .padding-x-default {
18
+ // ВАЖНО: учитываем border
19
+ padding-left: 5px;
20
+ padding-right: 5px;
21
+ }
22
+
23
+ .padding-x-pill {
24
+ // ВАЖНО: учитываем border
25
+ padding-left: 7px;
26
+ padding-right: 8px;
27
+ }
28
+
29
+ .shape-round {
30
+ border-radius: 4px;
31
+ }
32
+
33
+ .shape-pill {
34
+ border-radius: 99999px;
35
+ }
36
+
37
+ .with-hover-effect:hover {
38
+ position: relative;
39
+ cursor: pointer;
40
+ &::after {
41
+ content: '';
42
+ display: block;
43
+ position: absolute;
44
+ top: 0;
45
+ left: 0;
46
+ right: 0;
47
+ bottom: 0;
48
+ background: #fff;
49
+ opacity: 0.16;
50
+ }
51
+ }
52
+
53
+ .coloring-outline {
54
+ color: var(--badge-color, #aaa);
55
+
56
+ // ВАЖНО: используем border т.к. на Safari box-shadow пропадает при уменьшении масштаба
57
+ border: 1px solid var(--badge-border-color, var(--badge-color, #aaa));
58
+ }
59
+
60
+ .coloring-fill {
61
+ background: var(--badge-color, #aaa);
62
+ color: var(--badge-text-color, #fff);
63
+ }
64
+
65
+ .icon-only {
66
+ width: $badge-size;
67
+ }
68
+
69
+ // содержимое
70
+ .content {
71
+ overflow: hidden;
72
+ text-overflow: ellipsis;
73
+ white-space: nowrap;
74
+ }
75
+
76
+ .icon {
77
+ display: inline-block;
78
+ width: $icon-size;
79
+ height: $icon-size;
80
+ line-height: $icon-size;
81
+ }
@@ -1,19 +1,2 @@
1
- import React from 'react';
2
- export interface BadgeField {
3
- type: 'text' | 'timer' | 'svg-url';
4
- value: string;
5
- }
6
- export interface BadgeProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> {
7
- /** Основной цвет, используется как цвет обводки, иконок и текста. */
8
- color?: string;
9
- /** Содержимое шильдика. */
10
- fields: Array<BadgeField>;
11
- /** Идентификатор для систем автоматизированного тестирования. */
12
- 'data-testid'?: string;
13
- }
14
- /**
15
- * Шильдик.
16
- * @param props Свойства.
17
- * @return Элемент.
18
- */
19
- export declare const Badge: React.ForwardRefExoticComponent<BadgeProps & React.RefAttributes<HTMLAnchorElement>>;
1
+ export type { BadgeProps, BadgeField } from './types';
2
+ export { Badge } from './badge';
@@ -1,83 +1,6 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __rest = (this && this.__rest) || function (s, e) {
26
- var t = {};
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
- t[p] = s[p];
29
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
- t[p[i]] = s[p[i]];
33
- }
34
- return t;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
2
  Object.defineProperty(exports, "__esModule", { value: true });
40
3
  exports.Badge = void 0;
41
- const react_1 = __importStar(require("react"));
42
- const timer_1 = require("@sima-land/ui-nucleons/timer");
43
- const bind_1 = __importDefault(require("classnames/bind"));
44
- const badge_module_scss_1 = __importDefault(require("./badge.module.scss"));
45
- const cx = bind_1.default.bind(badge_module_scss_1.default);
46
- /**
47
- * Шильдик.
48
- * @param props Свойства.
49
- * @return Элемент.
50
- */
51
- exports.Badge = (0, react_1.forwardRef)(function Badge(_a, ref) {
52
- var { className, color, fields, href, style, 'data-testid': testId = 'badge' } = _a, restProps = __rest(_a, ["className", "color", "fields", "href", "style", 'data-testid']);
53
- const iconOnly = fields.length === 1 && fields[0].type === 'svg-url';
54
- return (react_1.default.createElement("a", Object.assign({ ref: ref }, restProps, { "data-testid": testId, href: href, style: Object.assign(Object.assign({}, style), { '--badge-color': color }), className: cx('root', iconOnly && 'icon-only', href && 'interactive', className), children: iconOnly ? (react_1.default.createElement("img", { className: cx('icon'), src: fields[0].value, alt: '' })) : (
55
- // вложенный span нужен для того чтобы объединить `display: inline-flex` и `text-overflow: ellipsis`
56
- react_1.default.createElement("span", { className: cx('content') }, fields.reduce((acc, item, i) => {
57
- let result = null;
58
- // на данный момент сочетание иконки с другими элементами не предусмотрено макетами - игнорируем
59
- switch (item.type) {
60
- case 'text':
61
- result = item.value;
62
- break;
63
- case 'timer':
64
- result = (react_1.default.createElement(timer_1.Timer, { key: i, date: item.value, timeout: 1000 * 60, format: formatDistance }));
65
- break;
66
- }
67
- acc.push(result);
68
- i < fields.length - 1 && acc.push(' ');
69
- return acc;
70
- }, []))) })));
71
- });
72
- /**
73
- * Форматирует оставшееся время.
74
- * @param distance Оставшееся время.
75
- * @return Отформатированное время.
76
- */
77
- const formatDistance = ({ days, hours, minutes, }) => [toTimePart(days), ...[hours % 24, minutes % 60].map(toTimePart)].join(':');
78
- /**
79
- * Форматирует число добавляя нули при необходимости.
80
- * @param n Число.
81
- * @return Отформатированное число.
82
- */
83
- const toTimePart = (n) => `${n}`.padStart(2, '0');
4
+ var badge_1 = require("./badge");
5
+ Object.defineProperty(exports, "Badge", { enumerable: true, get: function () { return badge_1.Badge; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/badge/index.ts"],"names":[],"mappings":";;;AACA,iCAAgC;AAAvB,8FAAA,KAAK,OAAA"}
@@ -0,0 +1,26 @@
1
+ import type { AnchorHTMLAttributes, CSSProperties } from 'react';
2
+ export interface BadgeField {
3
+ type: 'text' | 'timer' | 'svg-url';
4
+ value: string;
5
+ }
6
+ export interface BadgeStyle extends CSSProperties {
7
+ '--badge-color'?: string;
8
+ '--badge-text-color'?: string;
9
+ '--badge-border-color'?: string;
10
+ }
11
+ export interface BadgeProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> {
12
+ /** Основной цвет, используется как цвет обводки, иконок и текста. */
13
+ color?: string;
14
+ /** Как применится цвет. */
15
+ coloring?: 'fill' | 'outline' | 'unset';
16
+ /** Содержимое шильдика. */
17
+ fields: Array<BadgeField>;
18
+ /** Форма скруглений. */
19
+ shape?: 'round' | 'pill' | 'unset';
20
+ /** Нужен ли эффект при наведении. */
21
+ withHoverEffect?: boolean;
22
+ /** Стили. */
23
+ style?: BadgeStyle;
24
+ /** Идентификатор для систем автоматизированного тестирования. */
25
+ 'data-testid'?: string;
26
+ }
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/common/components/badge/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { ReactNode, CSSProperties } from 'react';
2
+ export interface BadgeListProps {
3
+ /** Список данных для шильдиков. */
4
+ children?: ReactNode;
5
+ /** CSS-класс корневого элемента. */
6
+ className?: string;
7
+ /** Стили корневого элемента. */
8
+ style?: CSSProperties;
9
+ /** Лимит количества строк, не влезающие шильдики будут скрыты. */
10
+ lineLimit?: number;
11
+ }
12
+ /**
13
+ * Компонент списка шильдиков. Формирует отступы между шильдиками и переносы по дизайн-найдам.
14
+ * @param props Свойства компонента.
15
+ * @return Элемент.
16
+ */
17
+ export declare const BadgeList: {
18
+ ({ children, className, lineLimit, style }: BadgeListProps): import("react/jsx-runtime").JSX.Element;
19
+ Slot: typeof BadgeListSlot;
20
+ };
21
+ /**
22
+ * Слот для вывода Badge с произвольной оберткой.
23
+ * @param props Свойства.
24
+ * @return Элемент.
25
+ */
26
+ declare function BadgeListSlot({ children }: {
27
+ children?: ReactNode;
28
+ }): import("react/jsx-runtime").JSX.Element;
29
+ export {};
@@ -0,0 +1,38 @@
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.BadgeList = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const badge_1 = require("../badge");
10
+ const bind_1 = __importDefault(require("classnames/bind"));
11
+ const badge_list_m_scss_1 = __importDefault(require("./badge-list.m.scss"));
12
+ const cx = bind_1.default.bind(badge_list_m_scss_1.default);
13
+ /**
14
+ * Компонент списка шильдиков. Формирует отступы между шильдиками и переносы по дизайн-найдам.
15
+ * @param props Свойства компонента.
16
+ * @return Элемент.
17
+ */
18
+ const BadgeList = ({ children, className, lineLimit, style }) => ((0, jsx_runtime_1.jsx)("div", { className: cx('root', className, lineLimit && 'line-limit'), style: lineLimit ? { ...style, '--line-limit': lineLimit } : style, children: react_1.Children.toArray(children).map((child, index) => {
19
+ switch (true) {
20
+ case (0, react_1.isValidElement)(child) && child.type === badge_1.Badge:
21
+ return (0, jsx_runtime_1.jsx)(BadgeListSlot, { children: child }, index);
22
+ case (0, react_1.isValidElement)(child) && child.type === BadgeListSlot:
23
+ return child;
24
+ default:
25
+ return null;
26
+ }
27
+ }) }));
28
+ exports.BadgeList = BadgeList;
29
+ /**
30
+ * Слот для вывода Badge с произвольной оберткой.
31
+ * @param props Свойства.
32
+ * @return Элемент.
33
+ */
34
+ function BadgeListSlot({ children }) {
35
+ return (0, jsx_runtime_1.jsx)("div", { className: cx('item'), children: children });
36
+ }
37
+ exports.BadgeList.Slot = BadgeListSlot;
38
+ //# sourceMappingURL=badge-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-list.js","sourceRoot":"","sources":["../../../../src/common/components/badge-list/badge-list.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAA2E;AAC3E,oCAAiC;AACjC,2DAAyC;AACzC,4EAAyC;AAgBzC,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,2BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACI,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAkB,EAAE,EAAE,CAAC,CACtF,gCACE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,IAAI,YAAY,CAAC,EAC3D,KAAK,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,SAAS,EAAoB,CAAC,CAAC,CAAC,KAAK,YAEpF,gBAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAK;gBAChD,OAAO,uBAAC,aAAa,cAAc,KAAK,IAAb,KAAK,CAAyB,CAAC;YAC5D,KAAK,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa;gBACxD,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,GACE,CACP,CAAC;AAhBW,QAAA,SAAS,aAgBpB;AAEF;;;;GAIG;AACH,SAAS,aAAa,CAAC,EAAE,QAAQ,EAA4B;IAC3D,OAAO,gCAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,YAAG,QAAQ,GAAO,CAAC;AACtD,CAAC;AAED,iBAAS,CAAC,IAAI,GAAG,aAAa,CAAC"}
@@ -1,29 +1 @@
1
- import React, { ReactNode } from 'react';
2
- export interface BadgeListProps {
3
- /** Список данных для шильдиков. */
4
- children?: React.ReactNode;
5
- /** CSS-класс корневого элемента. */
6
- className?: string;
7
- /** Стили корневого элемента. */
8
- style?: React.CSSProperties;
9
- /** Лимит количества строк, не влезающие шильдики будут скрыты. */
10
- lineLimit?: number;
11
- }
12
- /**
13
- * Компонент списка шильдиков. Формирует отступы между шильдиками и переносы по дизайн-найдам.
14
- * @param props Свойства компонента.
15
- * @return Элемент.
16
- */
17
- export declare const BadgeList: {
18
- ({ children, className, lineLimit, style }: BadgeListProps): JSX.Element;
19
- Slot: typeof BadgeListSlot;
20
- };
21
- /**
22
- * Слот для вывода Badge с произвольной оберткой.
23
- * @param props Свойства.
24
- * @return Элемент.
25
- */
26
- declare function BadgeListSlot({ children }: {
27
- children?: ReactNode;
28
- }): JSX.Element;
29
- export {};
1
+ export { type BadgeListProps, BadgeList } from './badge-list';
@@ -1,59 +1,6 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
2
  Object.defineProperty(exports, "__esModule", { value: true });
29
3
  exports.BadgeList = void 0;
30
- const react_1 = __importStar(require("react"));
31
- const badge_1 = require("../badge");
32
- const bind_1 = __importDefault(require("classnames/bind"));
33
- const badge_list_module_scss_1 = __importDefault(require("./badge-list.module.scss"));
34
- const cx = bind_1.default.bind(badge_list_module_scss_1.default);
35
- /**
36
- * Компонент списка шильдиков. Формирует отступы между шильдиками и переносы по дизайн-найдам.
37
- * @param props Свойства компонента.
38
- * @return Элемент.
39
- */
40
- const BadgeList = ({ children, className, lineLimit, style }) => (react_1.default.createElement("div", { className: cx('root', className, lineLimit && 'line-limit'), style: lineLimit ? Object.assign(Object.assign({}, style), { '--line-limit': lineLimit }) : style }, react_1.Children.toArray(children).map((child, index) => {
41
- switch (true) {
42
- case (0, react_1.isValidElement)(child) && child.type === badge_1.Badge:
43
- return react_1.default.createElement(BadgeListSlot, { key: index }, child);
44
- case (0, react_1.isValidElement)(child) && child.type === BadgeListSlot:
45
- return child;
46
- default:
47
- return null;
48
- }
49
- })));
50
- exports.BadgeList = BadgeList;
51
- /**
52
- * Слот для вывода Badge с произвольной оберткой.
53
- * @param props Свойства.
54
- * @return Элемент.
55
- */
56
- function BadgeListSlot({ children }) {
57
- return react_1.default.createElement("div", { className: cx('item') }, children);
58
- }
59
- exports.BadgeList.Slot = BadgeListSlot;
4
+ var badge_list_1 = require("./badge-list");
5
+ Object.defineProperty(exports, "BadgeList", { enumerable: true, get: function () { return badge_list_1.BadgeList; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/components/badge-list/index.ts"],"names":[],"mappings":";;;AAAA,2CAA8D;AAAhC,uGAAA,SAAS,OAAA"}
@@ -0,0 +1,46 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type BreadcrumbItemProps, type BreadcrumbProps } from './types';
3
+ import { type LinkProps } from '@sima-land/ui-nucleons/link';
4
+ /**
5
+ * Список "хлебных крошек".
6
+ * @param props Свойства.
7
+ * @return Элемент.
8
+ */
9
+ export declare function Breadcrumbs({ children, className, 'data-testid': testId, ...restProps }: BreadcrumbProps): import("react/jsx-runtime").JSX.Element;
10
+ /**
11
+ * Элемент списка "хлебных крошек".
12
+ * @param props Свойства.
13
+ * @return Элемент.
14
+ */
15
+ export declare function BreadcrumbsItem({ active, children, 'data-testid': testId, ...restProps }: BreadcrumbItemProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare namespace BreadcrumbsItem {
17
+ var Body: typeof BreadcrumbsItemBody;
18
+ var Dropdown: typeof BreadcrumbsItemDropdown;
19
+ var Sibling: typeof BreadcrumbsItemSibling;
20
+ }
21
+ /**
22
+ * Основное содержимое "хлебной крошки".
23
+ * @param props Свойства.
24
+ * @return Элемент.
25
+ */
26
+ export declare function BreadcrumbsItemBody({ children }: {
27
+ children?: ReactNode;
28
+ }): import("react/jsx-runtime").JSX.Element;
29
+ /**
30
+ * Содержимое выпадающего списка "хлебной крошки".
31
+ * @param props Свойства.
32
+ * @return Элемент.
33
+ */
34
+ export declare function BreadcrumbsItemDropdown({ loading, children, onOpen, }: {
35
+ children?: ReactNode;
36
+ loading?: boolean;
37
+ onOpen?: VoidFunction;
38
+ }): import("react/jsx-runtime").JSX.Element;
39
+ /**
40
+ * Соседняя "хлебная крошка", выводится в выпадающем списке.
41
+ * @param props Свойства.
42
+ * @return Элемент.
43
+ */
44
+ export declare function BreadcrumbsItemSibling({ children, className, active, 'data-testid': testId, ...restProps }: LinkProps & {
45
+ active?: boolean;
46
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,83 @@
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.BreadcrumbsItemSibling = exports.BreadcrumbsItemDropdown = exports.BreadcrumbsItemBody = exports.BreadcrumbsItem = exports.Breadcrumbs = void 0;
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
+ const react_1 = require("react");
9
+ const link_1 = require("@sima-land/ui-nucleons/link");
10
+ const plate_1 = require("@sima-land/ui-nucleons/plate");
11
+ const helpers_1 = require("@sima-land/ui-nucleons/helpers");
12
+ const hooks_1 = require("@sima-land/ui-nucleons/hooks");
13
+ const react_transition_group_1 = require("react-transition-group");
14
+ const classnames_1 = __importDefault(require("classnames"));
15
+ const breadcrumbs_m_scss_1 = __importDefault(require("./breadcrumbs.m.scss"));
16
+ /**
17
+ * Список "хлебных крошек".
18
+ * @param props Свойства.
19
+ * @return Элемент.
20
+ */
21
+ function Breadcrumbs({ children, className, 'data-testid': testId = 'breadcrumbs', ...restProps }) {
22
+ return ((0, jsx_runtime_1.jsx)("div", { ...restProps, className: (0, classnames_1.default)(breadcrumbs_m_scss_1.default.root, className), "data-testid": testId, children: children }));
23
+ }
24
+ exports.Breadcrumbs = Breadcrumbs;
25
+ /**
26
+ * Элемент списка "хлебных крошек".
27
+ * @param props Свойства.
28
+ * @return Элемент.
29
+ */
30
+ function BreadcrumbsItem({ active, children, 'data-testid': testId = 'breadcrumb', ...restProps }) {
31
+ const { body, dropdown } = (0, helpers_1.defineSlots)(children, {
32
+ body: BreadcrumbsItemBody,
33
+ dropdown: BreadcrumbsItemDropdown,
34
+ });
35
+ const [open, setOpen] = (0, react_1.useState)(false);
36
+ const ref = (0, react_1.useRef)(null);
37
+ (0, hooks_1.useOutsideClick)(ref, () => setOpen(false));
38
+ // ВАЖНО: выносим кусок верстки чтобы использовать его в двух местах
39
+ const name = ((0, jsx_runtime_1.jsxs)("span", { className: breadcrumbs_m_scss_1.default.name, children: [(0, jsx_runtime_1.jsx)(link_1.Link, { color: 'basic-gray87', ...(active && { pseudo: true }), ...restProps, children: body }), dropdown && (0, jsx_runtime_1.jsx)(DownSVG, { className: breadcrumbs_m_scss_1.default.icon, onClick: () => setOpen(a => !a) })] }));
40
+ return ((0, jsx_runtime_1.jsx)("div", { className: breadcrumbs_m_scss_1.default.item, "data-testid": testId, children: (0, jsx_runtime_1.jsxs)("div", { className: breadcrumbs_m_scss_1.default.inner, children: [name, (0, jsx_runtime_1.jsx)(react_transition_group_1.CSSTransition, { in: dropdown && open, timeout: 200, unmountOnExit: true, classNames: {
41
+ enter: breadcrumbs_m_scss_1.default['fade-enter'],
42
+ enterActive: breadcrumbs_m_scss_1.default['fade-enter-active'],
43
+ exit: breadcrumbs_m_scss_1.default['fade-exit'],
44
+ exitActive: breadcrumbs_m_scss_1.default['fade-exit-active'],
45
+ }, children: (0, jsx_runtime_1.jsxs)(plate_1.Plate, { ref: ref, rounds: 'm', shadow: 'z3', className: breadcrumbs_m_scss_1.default.dropdown, children: [name, (0, jsx_runtime_1.jsx)("div", { className: breadcrumbs_m_scss_1.default['dropdown-body'], children: dropdown })] }) })] }) }));
46
+ }
47
+ exports.BreadcrumbsItem = BreadcrumbsItem;
48
+ BreadcrumbsItem.Body = BreadcrumbsItemBody;
49
+ BreadcrumbsItem.Dropdown = BreadcrumbsItemDropdown;
50
+ BreadcrumbsItem.Sibling = BreadcrumbsItemSibling;
51
+ /**
52
+ * Основное содержимое "хлебной крошки".
53
+ * @param props Свойства.
54
+ * @return Элемент.
55
+ */
56
+ function BreadcrumbsItemBody({ children }) {
57
+ return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
58
+ }
59
+ exports.BreadcrumbsItemBody = BreadcrumbsItemBody;
60
+ /**
61
+ * Содержимое выпадающего списка "хлебной крошки".
62
+ * @param props Свойства.
63
+ * @return Элемент.
64
+ */
65
+ function BreadcrumbsItemDropdown({ loading, children, onOpen, }) {
66
+ (0, react_1.useEffect)(() => onOpen === null || onOpen === void 0 ? void 0 : onOpen(), []);
67
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: loading ? ((0, jsx_runtime_1.jsxs)("div", { className: breadcrumbs_m_scss_1.default.stubs, children: [(0, jsx_runtime_1.jsx)("div", { className: breadcrumbs_m_scss_1.default.stub }), (0, jsx_runtime_1.jsx)("div", { className: breadcrumbs_m_scss_1.default.stub }), (0, jsx_runtime_1.jsx)("div", { className: breadcrumbs_m_scss_1.default.stub }), (0, jsx_runtime_1.jsx)("div", { className: breadcrumbs_m_scss_1.default.stub }), (0, jsx_runtime_1.jsx)("div", { className: breadcrumbs_m_scss_1.default.stub }), (0, jsx_runtime_1.jsx)("div", { className: breadcrumbs_m_scss_1.default.stub }), (0, jsx_runtime_1.jsx)("div", { className: breadcrumbs_m_scss_1.default.stub }), (0, jsx_runtime_1.jsx)("div", { className: breadcrumbs_m_scss_1.default.stub })] })) : (children) }));
68
+ }
69
+ exports.BreadcrumbsItemDropdown = BreadcrumbsItemDropdown;
70
+ /**
71
+ * Соседняя "хлебная крошка", выводится в выпадающем списке.
72
+ * @param props Свойства.
73
+ * @return Элемент.
74
+ */
75
+ function BreadcrumbsItemSibling({ children, className, active, 'data-testid': testId = 'breadcrumb:sibling', ...restProps }) {
76
+ return ((0, jsx_runtime_1.jsx)(link_1.Link, { color: 'basic-gray87', className: (0, classnames_1.default)(breadcrumbs_m_scss_1.default.sibling, className), "data-testid": testId, ...(active && { disabled: true, pseudo: true }), ...restProps, children: children }));
77
+ }
78
+ exports.BreadcrumbsItemSibling = BreadcrumbsItemSibling;
79
+ /** @inheritdoc */
80
+ function DownSVG(props) {
81
+ return ((0, jsx_runtime_1.jsx)("svg", { width: '16', height: '16', viewBox: '0 0 16 16', fill: 'none', ...props, children: (0, jsx_runtime_1.jsx)("path", { d: 'M4 6L8 10L12 6', strokeLinecap: 'round', strokeLinejoin: 'round' }) }));
82
+ }
83
+ //# sourceMappingURL=breadcrumbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../../../src/common/components/breadcrumbs/breadcrumbs.tsx"],"names":[],"mappings":"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"}