@redneckz/wildless-cms-uni-blocks 0.6.39 → 0.6.40

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 (256) hide show
  1. package/bundle/BlockRenderer/BlockRendererOptions.d.ts +1 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +139 -111
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/Carousel/CarouselContent.d.ts +1 -1
  6. package/bundle/components/CarouselCatalogCard/CarouselCatalogCard.d.ts +7 -0
  7. package/bundle/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +23 -0
  8. package/bundle/components/CarouselInvestmentCard/CarouselInvestmentCard.d.ts +1 -1
  9. package/bundle/components/CarouselInvestmentCard/CarouselInvestmentCardContent.d.ts +4 -4
  10. package/bundle/components/CarouselProductCard/CarouselProductCard.d.ts +5 -0
  11. package/bundle/components/CarouselProductCard/CarouselProductCardContent.d.ts +49 -0
  12. package/bundle/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +1 -1
  13. package/bundle/components/VerticalLayout/VerticalLayoutContent.d.ts +4 -0
  14. package/bundle/model/BlockVersion.d.ts +1 -0
  15. package/bundle/ui-kit/Button/ButtonSection.d.ts +1 -1
  16. package/bundle/ui-kit/SwipeListControl/SwipeListContainer.d.ts +1 -1
  17. package/dist/BlockRenderer/BlockRendererOptions.d.ts +1 -0
  18. package/dist/BlockRenderer/renderBlock.js +2 -2
  19. package/dist/BlockRenderer/renderBlock.js.map +1 -1
  20. package/dist/components/Blocks.js +6 -2
  21. package/dist/components/Blocks.js.map +1 -1
  22. package/dist/components/Carousel/Carousel.js +3 -2
  23. package/dist/components/Carousel/Carousel.js.map +1 -1
  24. package/dist/components/Carousel/CarouselContent.d.ts +1 -1
  25. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.d.ts +7 -0
  26. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +17 -0
  27. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -0
  28. package/dist/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +23 -0
  29. package/dist/components/CarouselCatalogCard/CarouselCatalogCardContent.js +2 -0
  30. package/dist/components/CarouselCatalogCard/CarouselCatalogCardContent.js.map +1 -0
  31. package/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.d.ts +1 -1
  32. package/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js +12 -8
  33. package/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  34. package/dist/components/CarouselInvestmentCard/CarouselInvestmentCardContent.d.ts +4 -4
  35. package/dist/components/CarouselProductCard/CarouselProductCard.d.ts +5 -0
  36. package/dist/components/CarouselProductCard/CarouselProductCard.js +32 -0
  37. package/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -0
  38. package/dist/components/CarouselProductCard/CarouselProductCardContent.d.ts +49 -0
  39. package/dist/components/CarouselProductCard/CarouselProductCardContent.js +2 -0
  40. package/dist/components/CarouselProductCard/CarouselProductCardContent.js.map +1 -0
  41. package/dist/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +1 -1
  42. package/dist/components/Gallery/GalleryCardInner.js +3 -2
  43. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  44. package/dist/components/ProductTile/ProductTile.js +10 -22
  45. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  46. package/dist/components/VerticalLayout/VerticalLayout.js +18 -13
  47. package/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
  48. package/dist/components/VerticalLayout/VerticalLayoutContent.d.ts +4 -0
  49. package/dist/model/BlockVersion.d.ts +1 -0
  50. package/dist/model/BlockVersion.js +5 -1
  51. package/dist/model/BlockVersion.js.map +1 -1
  52. package/dist/ui-kit/Button/ButtonSection.d.ts +1 -1
  53. package/dist/ui-kit/Button/ButtonSection.js +2 -2
  54. package/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  55. package/dist/ui-kit/SwipeListControl/SwipeListContainer.d.ts +1 -1
  56. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
  57. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  58. package/lib/BlockRenderer/BlockRendererOptions.d.ts +1 -0
  59. package/lib/BlockRenderer/renderBlock.js +2 -2
  60. package/lib/BlockRenderer/renderBlock.js.map +1 -1
  61. package/lib/common.css +1 -1
  62. package/lib/components/Blocks.js +6 -2
  63. package/lib/components/Blocks.js.map +1 -1
  64. package/lib/components/Carousel/Carousel.fixture.d.ts +4 -1
  65. package/lib/components/Carousel/Carousel.js +3 -2
  66. package/lib/components/Carousel/Carousel.js.map +1 -1
  67. package/lib/components/Carousel/CarouselContent.d.ts +1 -1
  68. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.d.ts +7 -0
  69. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.fixture.d.ts +16 -0
  70. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +15 -0
  71. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -0
  72. package/lib/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +23 -0
  73. package/lib/components/CarouselCatalogCard/CarouselCatalogCardContent.js +2 -0
  74. package/lib/components/CarouselCatalogCard/CarouselCatalogCardContent.js.map +1 -0
  75. package/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.d.ts +1 -1
  76. package/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js +12 -8
  77. package/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  78. package/lib/components/CarouselInvestmentCard/CarouselInvestmentCardContent.d.ts +4 -4
  79. package/lib/components/CarouselProductCard/CarouselProductCard.d.ts +5 -0
  80. package/lib/components/CarouselProductCard/CarouselProductCard.fixture.d.ts +8 -0
  81. package/lib/components/CarouselProductCard/CarouselProductCard.js +30 -0
  82. package/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -0
  83. package/lib/components/CarouselProductCard/CarouselProductCardContent.d.ts +49 -0
  84. package/lib/components/CarouselProductCard/CarouselProductCardContent.js +2 -0
  85. package/lib/components/CarouselProductCard/CarouselProductCardContent.js.map +1 -0
  86. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.fixture.d.ts +1 -1
  87. package/lib/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +1 -1
  88. package/lib/components/Gallery/GalleryCardInner.js +3 -2
  89. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  90. package/lib/components/ProductTile/ProductTile.fixture.d.ts +2 -1
  91. package/lib/components/ProductTile/ProductTile.js +11 -23
  92. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  93. package/lib/components/VerticalLayout/VerticalLayout.fixture.d.ts +2 -1
  94. package/lib/components/VerticalLayout/VerticalLayout.js +18 -13
  95. package/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
  96. package/lib/components/VerticalLayout/VerticalLayoutContent.d.ts +4 -0
  97. package/lib/model/BlockVersion.d.ts +1 -0
  98. package/lib/model/BlockVersion.js +4 -0
  99. package/lib/model/BlockVersion.js.map +1 -1
  100. package/lib/ui-kit/Button/ButtonSection.d.ts +1 -1
  101. package/lib/ui-kit/Button/ButtonSection.js +2 -2
  102. package/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  103. package/lib/ui-kit/SwipeListControl/SwipeListContainer.d.ts +1 -1
  104. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
  105. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  106. package/mobile/bundle/BlockRenderer/BlockRendererOptions.d.ts +1 -0
  107. package/mobile/bundle/bundle.umd.js +6 -6
  108. package/mobile/bundle/bundle.umd.min.js +1 -1
  109. package/mobile/bundle/components/Carousel/CarouselContent.d.ts +1 -1
  110. package/mobile/bundle/components/CarouselCatalogCard/CarouselCatalogCard.d.ts +7 -0
  111. package/mobile/bundle/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +23 -0
  112. package/mobile/bundle/components/CarouselInvestmentCard/CarouselInvestmentCard.d.ts +1 -1
  113. package/mobile/bundle/components/CarouselInvestmentCard/CarouselInvestmentCardContent.d.ts +4 -4
  114. package/mobile/bundle/components/CarouselProductCard/CarouselProductCard.d.ts +5 -0
  115. package/mobile/bundle/components/CarouselProductCard/CarouselProductCardContent.d.ts +49 -0
  116. package/mobile/bundle/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +1 -1
  117. package/mobile/bundle/components/VerticalLayout/VerticalLayoutContent.d.ts +4 -0
  118. package/mobile/bundle/model/BlockVersion.d.ts +1 -0
  119. package/mobile/bundle/ui-kit/Button/ButtonSection.d.ts +1 -1
  120. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListContainer.d.ts +1 -1
  121. package/mobile/dist/BlockRenderer/BlockRendererOptions.d.ts +1 -0
  122. package/mobile/dist/BlockRenderer/renderBlock.js +2 -2
  123. package/mobile/dist/BlockRenderer/renderBlock.js.map +1 -1
  124. package/mobile/dist/components/Carousel/Carousel.js +3 -2
  125. package/mobile/dist/components/Carousel/Carousel.js.map +1 -1
  126. package/mobile/dist/components/Carousel/CarouselContent.d.ts +1 -1
  127. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.d.ts +7 -0
  128. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +17 -0
  129. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -0
  130. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +23 -0
  131. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCardContent.js +2 -0
  132. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCardContent.js.map +1 -0
  133. package/mobile/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.d.ts +1 -1
  134. package/mobile/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js +12 -8
  135. package/mobile/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  136. package/mobile/dist/components/CarouselInvestmentCard/CarouselInvestmentCardContent.d.ts +4 -4
  137. package/mobile/dist/components/CarouselProductCard/CarouselProductCard.d.ts +5 -0
  138. package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js +32 -0
  139. package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -0
  140. package/mobile/dist/components/CarouselProductCard/CarouselProductCardContent.d.ts +49 -0
  141. package/mobile/dist/components/CarouselProductCard/CarouselProductCardContent.js +2 -0
  142. package/mobile/dist/components/CarouselProductCard/CarouselProductCardContent.js.map +1 -0
  143. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +1 -1
  144. package/mobile/dist/components/Gallery/GalleryCardInner.js +3 -2
  145. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  146. package/mobile/dist/components/ProductTile/ProductTile.js +10 -22
  147. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  148. package/mobile/dist/components/VerticalLayout/VerticalLayout.js +18 -13
  149. package/mobile/dist/components/VerticalLayout/VerticalLayout.js.map +1 -1
  150. package/mobile/dist/components/VerticalLayout/VerticalLayoutContent.d.ts +4 -0
  151. package/mobile/dist/model/BlockVersion.d.ts +1 -0
  152. package/mobile/dist/model/BlockVersion.js +5 -1
  153. package/mobile/dist/model/BlockVersion.js.map +1 -1
  154. package/mobile/dist/ui-kit/Button/ButtonSection.d.ts +1 -1
  155. package/mobile/dist/ui-kit/Button/ButtonSection.js +2 -2
  156. package/mobile/dist/ui-kit/Button/ButtonSection.js.map +1 -1
  157. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.d.ts +1 -1
  158. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
  159. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  160. package/mobile/lib/BlockRenderer/BlockRendererOptions.d.ts +1 -0
  161. package/mobile/lib/BlockRenderer/renderBlock.js +2 -2
  162. package/mobile/lib/BlockRenderer/renderBlock.js.map +1 -1
  163. package/mobile/lib/components/Carousel/Carousel.js +3 -2
  164. package/mobile/lib/components/Carousel/Carousel.js.map +1 -1
  165. package/mobile/lib/components/Carousel/CarouselContent.d.ts +1 -1
  166. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.d.ts +7 -0
  167. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +15 -0
  168. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -0
  169. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCardContent.d.ts +23 -0
  170. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCardContent.js +2 -0
  171. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCardContent.js.map +1 -0
  172. package/mobile/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.d.ts +1 -1
  173. package/mobile/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js +12 -8
  174. package/mobile/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  175. package/mobile/lib/components/CarouselInvestmentCard/CarouselInvestmentCardContent.d.ts +4 -4
  176. package/mobile/lib/components/CarouselProductCard/CarouselProductCard.d.ts +5 -0
  177. package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js +30 -0
  178. package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -0
  179. package/mobile/lib/components/CarouselProductCard/CarouselProductCardContent.d.ts +49 -0
  180. package/mobile/lib/components/CarouselProductCard/CarouselProductCardContent.js +2 -0
  181. package/mobile/lib/components/CarouselProductCard/CarouselProductCardContent.js.map +1 -0
  182. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +1 -1
  183. package/mobile/lib/components/Gallery/GalleryCardInner.js +3 -2
  184. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  185. package/mobile/lib/components/ProductTile/ProductTile.js +11 -23
  186. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  187. package/mobile/lib/components/VerticalLayout/VerticalLayout.js +18 -13
  188. package/mobile/lib/components/VerticalLayout/VerticalLayout.js.map +1 -1
  189. package/mobile/lib/components/VerticalLayout/VerticalLayoutContent.d.ts +4 -0
  190. package/mobile/lib/model/BlockVersion.d.ts +1 -0
  191. package/mobile/lib/model/BlockVersion.js +4 -0
  192. package/mobile/lib/model/BlockVersion.js.map +1 -1
  193. package/mobile/lib/ui-kit/Button/ButtonSection.d.ts +1 -1
  194. package/mobile/lib/ui-kit/Button/ButtonSection.js +2 -2
  195. package/mobile/lib/ui-kit/Button/ButtonSection.js.map +1 -1
  196. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.d.ts +1 -1
  197. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js +1 -1
  198. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  199. package/mobile/src/BlockRenderer/BlockRendererOptions.ts +1 -0
  200. package/mobile/src/BlockRenderer/renderBlock.tsx +2 -1
  201. package/mobile/src/components/Carousel/Carousel.example.json +0 -1
  202. package/mobile/src/components/Carousel/Carousel.tsx +21 -18
  203. package/mobile/src/components/Carousel/CarouselContent.ts +1 -1
  204. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.example.json +17 -0
  205. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +62 -0
  206. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.ui.json +10 -0
  207. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCardContent.ts +25 -0
  208. package/mobile/src/components/CarouselInvestmentCard/CarouselInvestmentCard.tsx +33 -14
  209. package/mobile/src/components/CarouselInvestmentCard/CarouselInvestmentCardContent.ts +5 -5
  210. package/mobile/src/components/CarouselProductCard/CarouselProductCard.example.json +21 -0
  211. package/mobile/src/components/CarouselProductCard/CarouselProductCard.tsx +102 -0
  212. package/mobile/src/components/CarouselProductCard/CarouselProductCard.ui.json +18 -0
  213. package/mobile/src/components/CarouselProductCard/CarouselProductCardContent.ts +51 -0
  214. package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCardContent.ts +1 -1
  215. package/mobile/src/components/ContactsBlock/ContactsBlock.example.json +1 -1
  216. package/mobile/src/components/Gallery/GalleryCardInner.tsx +6 -3
  217. package/mobile/src/components/ProductTile/ProductTile.tsx +8 -26
  218. package/mobile/src/components/VerticalLayout/VerticalLayout.example.json +7 -4
  219. package/mobile/src/components/VerticalLayout/VerticalLayout.tsx +35 -20
  220. package/mobile/src/components/VerticalLayout/VerticalLayoutContent.ts +4 -0
  221. package/mobile/src/model/BlockVersion.ts +5 -0
  222. package/mobile/src/ui-kit/Button/ButtonSection.tsx +4 -4
  223. package/mobile/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +2 -2
  224. package/package.json +1 -1
  225. package/src/BlockRenderer/BlockRendererOptions.ts +1 -0
  226. package/src/BlockRenderer/renderBlock.tsx +2 -1
  227. package/src/components/Blocks.ts +6 -2
  228. package/src/components/Carousel/Carousel.example.json +0 -1
  229. package/src/components/Carousel/Carousel.fixture.tsx +64 -4
  230. package/src/components/Carousel/Carousel.tsx +21 -18
  231. package/src/components/Carousel/CarouselContent.ts +1 -1
  232. package/src/components/CarouselCatalogCard/CarouselCatalogCard.example.json +17 -0
  233. package/src/components/CarouselCatalogCard/CarouselCatalogCard.fixture.tsx +43 -0
  234. package/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +62 -0
  235. package/src/components/CarouselCatalogCard/CarouselCatalogCard.ui.json +10 -0
  236. package/src/components/CarouselCatalogCard/CarouselCatalogCardContent.ts +25 -0
  237. package/src/components/CarouselInvestmentCard/CarouselInvestmentCard.tsx +33 -14
  238. package/src/components/CarouselInvestmentCard/CarouselInvestmentCardContent.ts +5 -5
  239. package/src/components/CarouselProductCard/CarouselProductCard.example.json +21 -0
  240. package/src/components/CarouselProductCard/CarouselProductCard.fixture.tsx +62 -0
  241. package/src/components/CarouselProductCard/CarouselProductCard.tsx +102 -0
  242. package/src/components/CarouselProductCard/CarouselProductCard.ui.json +18 -0
  243. package/src/components/CarouselProductCard/CarouselProductCardContent.ts +51 -0
  244. package/src/components/CarouselProgramsCard/CarouselProgramsCard.fixture.tsx +1 -1
  245. package/src/components/CarouselProgramsCard/CarouselProgramsCardContent.ts +1 -1
  246. package/src/components/ContactsBlock/ContactsBlock.example.json +1 -1
  247. package/src/components/Gallery/GalleryCardInner.tsx +6 -3
  248. package/src/components/ProductTile/ProductTile.fixture.tsx +2 -1
  249. package/src/components/ProductTile/ProductTile.tsx +8 -26
  250. package/src/components/VerticalLayout/VerticalLayout.example.json +7 -4
  251. package/src/components/VerticalLayout/VerticalLayout.fixture.tsx +59 -2
  252. package/src/components/VerticalLayout/VerticalLayout.tsx +35 -20
  253. package/src/components/VerticalLayout/VerticalLayoutContent.ts +4 -0
  254. package/src/model/BlockVersion.ts +5 -0
  255. package/src/ui-kit/Button/ButtonSection.tsx +4 -4
  256. package/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +2 -2
@@ -1,5 +1,4 @@
1
1
  {
2
- "cardWidth": 1200,
3
2
  "isBlur": false,
4
3
  "visibleItemCount": 1,
5
4
  "isCycle": false
@@ -30,23 +30,25 @@ export const Carousel: JSXBlock<CarouselProps> = JSX<CarouselProps>(
30
30
  });
31
31
 
32
32
  return (
33
- <BlockWrapper className={`relative font-sans ${className}`} {...rest}>
34
- <SwipeListContainer
35
- containerRef={containerRef}
36
- visibleItemCount={visibleItemCount}
37
- snapAlign="snap-start"
38
- gap={ITEMS_GAP}
39
- onVisibleIndicesChange={scroll.handleVisibleIndicesChange}
40
- >
41
- {renderChildren(rest)}
42
- </SwipeListContainer>
43
- {(scroll.canScrollLeft || scroll.canScrollRight) && isBlur ? (
44
- <div>
45
- <div className={`${blurBaseStyle} left-0 bg-opacity-from-white`} />
46
- <div className={`${blurBaseStyle} right-0 bg-opacity-to-white`} />
47
- </div>
48
- ) : null}
49
- {renderScrollButtons(scroll)}
33
+ <BlockWrapper className={`font-sans p-12 ${className}`} {...rest}>
34
+ <div className="relative max-w-full">
35
+ <SwipeListContainer
36
+ containerRef={containerRef}
37
+ visibleItemCount={visibleItemCount}
38
+ snapAlign="snap-start"
39
+ gap={ITEMS_GAP}
40
+ onVisibleIndicesChange={scroll.handleVisibleIndicesChange}
41
+ >
42
+ {renderChildren(rest)}
43
+ </SwipeListContainer>
44
+ {(scroll.canScrollLeft || scroll.canScrollRight) && isBlur ? (
45
+ <div>
46
+ <div className={`${blurBaseStyle} left-0 bg-opacity-from-white`} />
47
+ <div className={`${blurBaseStyle} right-0 bg-opacity-to-white`} />
48
+ </div>
49
+ ) : null}
50
+ {renderScrollButtons(scroll)}
51
+ </div>
50
52
  </BlockWrapper>
51
53
  );
52
54
  },
@@ -54,8 +56,9 @@ export const Carousel: JSXBlock<CarouselProps> = JSX<CarouselProps>(
54
56
 
55
57
  Carousel.childrenTypes = [
56
58
  'CarouselCard',
59
+ 'CarouselCatalogCard',
57
60
  'CarouselTariffsCard',
58
- 'CarouselLinks',
61
+ 'CarouselProductCard',
59
62
  'CarouselProgramsCard',
60
63
  'CarouselInvestmentCard',
61
64
  ];
@@ -6,7 +6,7 @@ export interface CarouselContent {
6
6
  * @title Количество видимых карточек
7
7
  * @enumNames ["auto", "1", "2", "3"]
8
8
  */
9
- visibleItemCount?: 0 | 1 | 2 | 3;
9
+ visibleItemCount?: 0 | 1 | 2 | 3 | 4;
10
10
  /** @title Добавление блюра */
11
11
  isBlur?: boolean;
12
12
  /** @title Цикличность */
@@ -0,0 +1,17 @@
1
+ {
2
+ "title": "Заголовок карточки 1",
3
+ "description": "Описание карточки",
4
+ "image": {
5
+ "format": "webp",
6
+ "size": {
7
+ "width": 230,
8
+ "height": 230
9
+ }
10
+ },
11
+ "button": {
12
+ "href": "",
13
+ "text": "Подробнее",
14
+ "target": "_self",
15
+ "version": "primary"
16
+ }
17
+ }
@@ -0,0 +1,62 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { BlockVersion } from '../../model/BlockVersion';
3
+ import { VersionStyleMap } from '../../model/BlockVersion';
4
+ import type { ProductColorVersion } from '../../model/ProductColorVersion';
5
+ import { renderButton } from '../../ui-kit/Button/ButtonSection';
6
+ import { Heading } from '../../ui-kit/Heading/Heading';
7
+ import { Img } from '../../ui-kit/Img/Img';
8
+ import { Paragraph } from '../../ui-kit/Paragraph/Paragraph';
9
+ import { Text } from '../../ui-kit/Text/Text';
10
+ import type { CarouselCatalogCardContent } from './CarouselCatalogCardContent';
11
+
12
+ export interface CarouselCatalogCardProps extends CarouselCatalogCardContent {
13
+ className?: string;
14
+ version?: BlockVersion;
15
+ }
16
+
17
+ const cardStyleMap: Record<ProductColorVersion, string> = {
18
+ black: 'bg-black',
19
+ white: 'bg-white',
20
+ };
21
+
22
+ export const CarouselCatalogCard = JSX<CarouselCatalogCardProps>(
23
+ ({ className = '', title, description, image, price, button, colors, version = 'primary' }) => (
24
+ <section
25
+ className={`border box-border border-main-stroke p-7 min-w-[392px] flex flex-col justify-left ${VersionStyleMap[version]} ${className}`}
26
+ role="listitem"
27
+ >
28
+ {image?.src ? <Img className="mb-5 flex justify-center" image={image} /> : null}
29
+ {title ? (
30
+ <Heading headingType="h6" as="h4" className="text-left mb-1.5" title={title} />
31
+ ) : null}
32
+ {description ? (
33
+ <div className="mb-4">
34
+ <Paragraph size="text-m" align="text-left" font="font-light">
35
+ {description}
36
+ </Paragraph>
37
+ </div>
38
+ ) : null}
39
+ {colors?.length ? (
40
+ <div className="flex mb-4 text-s-light text-secondary-text">
41
+ <div className="mr-1.5">
42
+ <Text>Доступные цвета: </Text>
43
+ </div>
44
+ {colors.map(renderColorOption)}
45
+ </div>
46
+ ) : null}
47
+ {price ? (
48
+ <Text size="text-h3" align="text-left">
49
+ {price}&nbsp;₽
50
+ </Text>
51
+ ) : null}
52
+ {button ? renderButton({ button, buttonClassName: 'mt-5 w-full' }) : null}
53
+ </section>
54
+ ),
55
+ );
56
+
57
+ const renderColorOption = (color: ProductColorVersion, i: number) => (
58
+ <span
59
+ key={String(i)}
60
+ className={`w-6 h-6 ml-3 border border-solid border-main-divider rounded-full ${cardStyleMap[color]}`}
61
+ />
62
+ );
@@ -0,0 +1,10 @@
1
+ {
2
+ "content": {
3
+ "image": {
4
+ "ui:field": "picture"
5
+ },
6
+ "price": {
7
+ "ui:field": "number"
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,25 @@
1
+ import type { BlockVersion } from '../../model/BlockVersion';
2
+ import type { HeadlineCommonProps } from '../../model/HeadlineType';
3
+ import type { ProductColorVersion } from '../../model/ProductColorVersion';
4
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
5
+ import type { ImageContent } from '../../ui-kit/Img/ImgProps';
6
+
7
+ /**
8
+ * @title Карточка каталога
9
+ */
10
+ export type CarouselCatalogCardContent = HeadlineCommonProps &
11
+ ImageContent & {
12
+ /** @title Цена в рублях */
13
+ price?: number;
14
+ /** @title Доступные цвета */
15
+ colors?: ProductColorVersion[];
16
+ /**
17
+ * @title Кнопка
18
+ * @default {
19
+ * "icon": { "format": "webp", "size": { "width": 24, "height": 24 } },
20
+ * "iconRight" : { "format": "webp", "size": { "width": 24, "height": 24 } }
21
+ * }
22
+ */
23
+ button?: ButtonWithIconProps;
24
+ version?: BlockVersion;
25
+ };
@@ -1,15 +1,18 @@
1
- import { BaseTile } from '../BaseTile/BaseTile';
2
- import { BlockWrapper } from '../../ui-kit/BlockWrapper';
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { VersionAdditionalStyleMap, VersionStyleMap } from '../../model/BlockVersion';
3
3
  import { BorderVersionStyleMap } from '../../model/BorderVersion';
4
+ import type { UniBlockProps } from '../../model/JSXBlock';
5
+ import { BlockWrapper } from '../../ui-kit/BlockWrapper';
6
+ import { Heading } from '../../ui-kit/Heading/Heading';
7
+ import { Img } from '../../ui-kit/Img/Img';
8
+ import { Text } from '../../ui-kit/Text/Text';
9
+ import type { TextColor } from '../../ui-kit/Text/TextProps';
10
+ import { BaseTile } from '../BaseTile/BaseTile';
4
11
  import type {
5
12
  CardColumnsMode,
6
13
  CardsListItem,
7
14
  CarouselInvestmentCardContent,
8
15
  } from './CarouselInvestmentCardContent';
9
- import { JSX } from '@redneckz/uni-jsx';
10
- import { Heading } from '../../ui-kit/Heading/Heading';
11
- import { Img } from '../../ui-kit/Img/Img';
12
- import type { UniBlockProps } from '../../model/JSXBlock';
13
16
 
14
17
  export interface CarouselInvestmentCardProps extends CarouselInvestmentCardContent, UniBlockProps {}
15
18
 
@@ -42,17 +45,29 @@ export const CarouselInvestmentCard = JSX<CarouselInvestmentCardProps>(
42
45
 
43
46
  return (
44
47
  <BlockWrapper
45
- className={`relative text-left border border-solid box-border
46
- p-9 w-[697px]
47
- ${BorderVersionStyleMap[version]}
48
- ${className}`}
48
+ className={[
49
+ 'relative text-left border border-solid box-border p-9 w-[697px]',
50
+ VersionStyleMap[version],
51
+ BorderVersionStyleMap[version],
52
+ className,
53
+ ].join(' ')}
49
54
  {...rest}
50
55
  >
51
56
  <BaseTile title={tileTitle} image={tileImage}>
52
57
  <div className="flex justify-between mb-4">
53
- {description ? <span className="text-h6 w-1/3">{description}</span> : null}
58
+ {description ? (
59
+ <div className="w-1/3">
60
+ <Text size="text-h6">{description}</Text>
61
+ </div>
62
+ ) : null}
54
63
  {additionalDescription ? (
55
- <span className="text-m-light text-secondary-text">{additionalDescription}</span>
64
+ <Text
65
+ size="text-m"
66
+ font="font-light"
67
+ color={VersionAdditionalStyleMap[version] as TextColor}
68
+ >
69
+ {additionalDescription}
70
+ </Text>
56
71
  ) : null}
57
72
  </div>
58
73
  {cardsList.length ? (
@@ -73,10 +88,14 @@ const renderCardList = (cardsList: CardsListItem[], columnsMode: number) => {
73
88
  return visibleCardsList.map((item, i) => (
74
89
  <li key={String(i)} className={columnsMode === 2 ? 'basis-[calc(50%-20px)]' : ''}>
75
90
  {item?.parameter ? (
76
- <span className={`pr-2.5 ${getItemListFontSize(columnsMode)}`}>{item.parameter}</span>
91
+ <div className="pr-2.5">
92
+ <Text size={getItemListFontSize(columnsMode)}>{item.parameter}</Text>
93
+ </div>
77
94
  ) : null}
78
95
  {item?.parameterDescription ? (
79
- <span className="text-m-light text-secondary-text">{item.parameterDescription}</span>
96
+ <Text size="text-m" font="font-light" color="text-secondary-text">
97
+ {item.parameterDescription}
98
+ </Text>
80
99
  ) : null}
81
100
  </li>
82
101
  ));
@@ -1,10 +1,6 @@
1
1
  import type { BlockVersion } from '../../model/BlockVersion';
2
- import type { Picture } from '../../model/Picture';
3
2
  import type { HeadlineCommonProps } from '../../model/HeadlineType';
4
-
5
- /**
6
- * @title Карточка галереи инвестиций
7
- */
3
+ import type { Picture } from '../../model/Picture';
8
4
 
9
5
  /**
10
6
  * @title Количество колонок
@@ -21,6 +17,10 @@ export interface CardsListItem {
21
17
  /** @title Описание */
22
18
  parameterDescription?: string;
23
19
  }
20
+
21
+ /**
22
+ * @title Карточка галереи инвестиций
23
+ */
24
24
  export interface CarouselInvestmentCardContent extends HeadlineCommonProps {
25
25
  /** @title Доп. описание карточки */
26
26
  additionalDescription?: string;
@@ -0,0 +1,21 @@
1
+ {
2
+ "content": {
3
+ "icon": {
4
+ "format": "webp",
5
+ "size": {
6
+ "width": 140,
7
+ "height": 140
8
+ }
9
+ },
10
+ "title": "Заголовок 1",
11
+ "description": "Описание 1",
12
+ "href": "/credit-cards",
13
+ "version": "primary",
14
+ "isDotted": true,
15
+ "items": [
16
+ { "text": "Элемент списка 1", "title": "Элемент заголовка 1" },
17
+ { "text": "Элемент списка 2", "title": "Элемент заголовка 2" },
18
+ { "text": "Элемент списка 3", "title": "Элемент заголовка 3" }
19
+ ]
20
+ }
21
+ }
@@ -0,0 +1,102 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { AlignText } from '../../model/AlignText';
3
+ import type { BlockVersion } from '../../model/BlockVersion';
4
+ import { VersionStyleMap } from '../../model/BlockVersion';
5
+ import type { UniBlockProps } from '../../model/JSXBlock';
6
+ import type { Picture } from '../../model/Picture';
7
+ import { renderButton } from '../../ui-kit/Button/ButtonSection';
8
+ import { Img } from '../../ui-kit/Img/Img';
9
+ import { List } from '../../ui-kit/List/List';
10
+ import { Paragraph } from '../../ui-kit/Paragraph/Paragraph';
11
+ import { Text } from '../../ui-kit/Text/Text';
12
+ import { getIconWithVersion } from '../../utils/getIconWithVersion';
13
+ import { HEADLINE_SMALL_VERSION } from '../Headline/constants';
14
+ import type { CarouselProductCardContent, ListProps } from './CarouselProductCardContent';
15
+
16
+ export interface CarouselProductCardProps extends CarouselProductCardContent, UniBlockProps {}
17
+
18
+ const descriptionStyleMap: Record<BlockVersion, string> = {
19
+ primary: 'text-secondary-text',
20
+ secondary: 'text-white/80',
21
+ };
22
+
23
+ const BORDER_STYLE = 'box-border border-solid border border-main-stroke ';
24
+
25
+ export const CarouselProductCard = JSX<CarouselProductCardProps>(
26
+ ({
27
+ title,
28
+ headlineSmallVersion = 'H6',
29
+ description,
30
+ additionalDescription,
31
+ icon,
32
+ items = [],
33
+ button = {},
34
+ version = 'primary',
35
+ isDotted = true,
36
+ align = 'center',
37
+ }) => {
38
+ return (
39
+ <section
40
+ className={[
41
+ 'flex flex-col justify-between items-stretch min-w-[260px] h-full w-full p-6',
42
+ BORDER_STYLE,
43
+ AlignText[align],
44
+ VersionStyleMap[version],
45
+ ].join(' ')}
46
+ role="listitem"
47
+ >
48
+ <div className="flex flex-col h-full">
49
+ {renderImage(icon, version)}
50
+ {renderCardTitle(headlineSmallVersion, title)}
51
+ {renderDescription(description, title)}
52
+ {renderItems(items, isDotted, version)}
53
+ {renderAdditionalDescription(additionalDescription, version)}
54
+ </div>
55
+ {renderButton({ button, buttonClassName: 'mt-6' })}
56
+ </section>
57
+ );
58
+ },
59
+ );
60
+
61
+ const renderImage = (image?: Picture, version?: BlockVersion) => (
62
+ <div className="flex justify-center">
63
+ {image?.src ? <Img className="mb-5" image={image} /> : null}
64
+ {image?.icon ? (
65
+ <Img
66
+ className={`w-[32px] h-[32px] min-w-[32px] mb-5 rounded-full`}
67
+ image={getIconWithVersion(image, version)}
68
+ asSVG
69
+ />
70
+ ) : null}
71
+ </div>
72
+ );
73
+
74
+ const renderCardTitle = (headlineSmallVersion: string, title?: string) =>
75
+ title ? <Text size={HEADLINE_SMALL_VERSION[headlineSmallVersion]}>{title}</Text> : null;
76
+
77
+ const renderDescription = (description?: string, title?: string) =>
78
+ description ? (
79
+ <div className={title ? 'mt-2' : ''}>
80
+ <Paragraph size="text-l">{description}</Paragraph>
81
+ </div>
82
+ ) : null;
83
+
84
+ const renderAdditionalDescription = (additionalDescription?: string, version = 'primary') =>
85
+ additionalDescription ? (
86
+ <div className="mt-auto">
87
+ <Text size="text-m" font="font-light" color={descriptionStyleMap[version]}>
88
+ {additionalDescription}
89
+ </Text>
90
+ </div>
91
+ ) : null;
92
+
93
+ const renderItems = (items: ListProps[], isDotted: boolean, version: BlockVersion = 'primary') =>
94
+ items?.length ? (
95
+ <List
96
+ className={`max-w-[308px] mt-2 text-s ${version === 'primary' ? '!text-secondary-text' : ''}`}
97
+ itemClassName="text-left"
98
+ items={items.filter((item) => item?.text).map((item) => item.text as string)}
99
+ isDotted={isDotted}
100
+ version={version}
101
+ />
102
+ ) : null;
@@ -0,0 +1,18 @@
1
+ {
2
+ "content": {
3
+ "additionalDescription": {
4
+ "ui:field": "hidden"
5
+ },
6
+ "icon": {
7
+ "ui:field": "picture"
8
+ },
9
+ "button": {
10
+ "icon": {
11
+ "ui:field": "icon"
12
+ },
13
+ "iconRight": {
14
+ "ui:field": "icon"
15
+ }
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,51 @@
1
+ import type { AlignType } from '../../model/AlignType';
2
+ import type { BlockVersion } from '../../model/BlockVersion';
3
+ import type { HeadlineSmallProps } from '../../model/HeadlineType';
4
+ import type { Picture } from '../../model/Picture';
5
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
6
+
7
+ /**
8
+ * @title Элемент списка
9
+ */
10
+ export interface ListProps {
11
+ /** @title Текст */
12
+ text?: string;
13
+ }
14
+
15
+ /**
16
+ * @title Карточка продуктовой карусели
17
+ */
18
+ export type CarouselProductCardContent = HeadlineSmallProps & {
19
+ /** @title Дополнительное описание */
20
+ additionalDescription?: string;
21
+ /**
22
+ * @default {
23
+ * "format": "webp",
24
+ * "size": {
25
+ * "width": 140
26
+ * },
27
+ * "sources": [{
28
+ * "media": 1279,
29
+ * "width": 84,
30
+ * "format": "webp",
31
+ * "alignment": "center"
32
+ * }]
33
+ * }
34
+ */
35
+ icon?: Picture;
36
+ /** @title Кнопка */
37
+ button?: ButtonWithIconProps;
38
+ /**
39
+ * @title Буллиты
40
+ * @default true
41
+ */
42
+ isDotted?: boolean;
43
+ /** @title Список */
44
+ items?: ListProps[];
45
+ version?: BlockVersion;
46
+ /**
47
+ * @title Выравнивание
48
+ * @default center
49
+ */
50
+ align?: AlignType;
51
+ };
@@ -1,6 +1,6 @@
1
+ import type { BlockVersion } from '../../model/BlockVersion';
1
2
  import type { HeadlineCommonProps, TitleProps } from '../../model/HeadlineType';
2
3
  import type { Picture } from '../../model/Picture';
3
- import type { BlockVersion } from '../../model/BlockVersion';
4
4
 
5
5
  /**
6
6
  * @title Карточка программ карусели
@@ -16,7 +16,7 @@
16
16
  ],
17
17
  [
18
18
  {
19
- "title": "Заголовок 2ff",
19
+ "title": "Заголовок 2",
20
20
  "description": "Описание 2",
21
21
  "button": {
22
22
  "href": "#",
@@ -1,6 +1,7 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { AlignText } from '../../model/AlignText';
3
3
  import type { BlockVersion } from '../../model/BlockVersion';
4
+ import { VersionAdditionalStyleMap } from '../../model/BlockVersion';
4
5
  import type { Picture } from '../../model/Picture';
5
6
  import { renderButton } from '../../ui-kit/Button/ButtonSection';
6
7
  import { Img } from '../../ui-kit/Img/Img';
@@ -29,7 +30,7 @@ export const GalleryCardInner = JSX<GalleryCardProps>(
29
30
  {renderCardTitle(headlineSmallVersion, title)}
30
31
  {renderDescription(description, title)}
31
32
  {items?.length ? renderItems(items, isDotted, version) : null}
32
- {renderAdditionalDescription(additionalDescription)}
33
+ {renderAdditionalDescription(additionalDescription, version)}
33
34
  </div>
34
35
  {button?.text
35
36
  ? renderButton({
@@ -60,9 +61,11 @@ const renderCardTitle = (headlineSmallVersion: string, title?: string) =>
60
61
  const renderDescription = (description?: string, title?: string) =>
61
62
  description ? <div className={`text-l ${title ? 'mt-2' : ''}`}>{description}</div> : null;
62
63
 
63
- const renderAdditionalDescription = (additionalDescription?: string) =>
64
+ const renderAdditionalDescription = (additionalDescription?: string, version?: BlockVersion) =>
64
65
  additionalDescription ? (
65
- <div className="text-m-light text-secondary-text mt-auto">{additionalDescription}</div>
66
+ <div className={`text-m-light mt-auto ${VersionAdditionalStyleMap[version ?? 'primary']}`}>
67
+ {additionalDescription}
68
+ </div>
66
69
  ) : null;
67
70
 
68
71
  const renderItems = (
@@ -1,6 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import type { BlockVersion } from '../../model/BlockVersion';
3
- import { VersionStyleMap } from '../../model/BlockVersion';
3
+ import { VersionAdditionalStyleMap, VersionStyleMap } from '../../model/BlockVersion';
4
4
  import type { UniBlockProps } from '../../model/JSXBlock';
5
5
  import type { Picture } from '../../model/Picture';
6
6
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
@@ -41,9 +41,7 @@ export const ProductTile = JSX<ProductTileProps>(
41
41
  {...rest}
42
42
  />
43
43
  {renderBenefits(benefits, version, image)}
44
- {additionalDescription
45
- ? renderAdditionalDescription(additionalDescription, image, version)
46
- : null}
44
+ {additionalDescription ? renderAdditionalDescription(additionalDescription, image) : null}
47
45
  {buttons?.length ? (
48
46
  <ButtonSection buttons={buttons} className="flex self-end mt-5 gap-4 z-10 text-l" />
49
47
  ) : null}
@@ -66,42 +64,26 @@ function renderBenefits(benefits: TextBenefit[], version: BlockVersion, image?:
66
64
  );
67
65
  }
68
66
 
69
- function renderBenefit(version: BlockVersion = 'primary') {
70
- const labelStyleMap: Record<BlockVersion, string> = {
71
- primary: 'text-secondary-text',
72
- secondary: 'text-white',
73
- };
74
-
75
- return function renderVersionedBenefit(benefit: TextBenefit, i: number) {
67
+ const renderBenefit =
68
+ (version: BlockVersion = 'primary') =>
69
+ (benefit: TextBenefit, i: number) => {
76
70
  const { label = '', description = '' } = benefit;
77
71
 
78
72
  return [
79
73
  <div key={`label-${i}`} className="text-h6">
80
74
  {label}
81
75
  </div>,
82
- <div key={`desc-${i}`} className={`text-m-light ${labelStyleMap[version]}`}>
76
+ <div key={`desc-${i}`} className={`text-m-light ${VersionAdditionalStyleMap[version]}`}>
83
77
  {description}
84
78
  </div>,
85
79
  ];
86
80
  };
87
- }
88
-
89
- function renderAdditionalDescription(
90
- additionalDescription: string,
91
- image?: Picture,
92
- version: BlockVersion = 'primary',
93
- ) {
94
- const descStyleMap: Record<BlockVersion, string> = {
95
- primary: 'text-secondary-text',
96
- secondary: 'text-white',
97
- };
98
81
 
82
+ function renderAdditionalDescription(additionalDescription: string, image?: Picture) {
99
83
  // picture width = 242px. Text can overlay picture 20px deep. Outer paddings_x = 36px. 242-36-20 = 186px
100
84
  const DESCRIPTION_WIDTH = image?.src ? 'max-w-[calc(100%-186px)]' : '100%';
101
85
 
102
86
  return (
103
- <div className={`text-m-light mt-2.5 z-10 ${DESCRIPTION_WIDTH} ${descStyleMap[version]}`}>
104
- {additionalDescription}
105
- </div>
87
+ <div className={`text-m-light mt-2.5 z-10 ${DESCRIPTION_WIDTH}`}>{additionalDescription}</div>
106
88
  );
107
89
  }
@@ -1,8 +1,11 @@
1
1
  {
2
- "title": "Вертикальный компоновщик",
3
- "version": "transparent",
4
- "align": "left",
5
- "gap": "",
2
+ "content": {
3
+ "version": "transparent",
4
+ "isPadding": false,
5
+ "isInnerPadding": true,
6
+ "align": "left",
7
+ "gap": ""
8
+ },
6
9
  "blocks": [
7
10
  {
8
11
  "type": "Headline",