@redneckz/wildless-cms-uni-blocks 0.6.35 → 0.6.36

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 (494) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +160 -52
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/CarouselProgramsCard/CarouselProgramsCard.d.ts +5 -0
  5. package/bundle/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +12 -0
  6. package/bundle/components/Header/HeaderSubMenuItem.d.ts +2 -1
  7. package/bundle/hooks/useIntersectionObserver.d.ts +7 -1
  8. package/bundle/ui-kit/Button/ArrowButton.d.ts +2 -0
  9. package/bundle/ui-kit/SwipeListControl/SwipeListContainer.d.ts +19 -0
  10. package/bundle/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +7 -4
  11. package/bundle/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +3 -3
  12. package/bundle/ui-kit/SwipeListControl/SwipeListItem.d.ts +14 -0
  13. package/bundle/ui-kit/SwipeListControl/scrollBy.d.ts +1 -0
  14. package/bundle/ui-kit/SwipeListControl/scrollToEnd.d.ts +1 -0
  15. package/bundle/ui-kit/SwipeListControl/scrollToStart.d.ts +1 -0
  16. package/bundle/ui-kit/SwipeListControl/useSwipeListScroll.d.ts +17 -0
  17. package/bundle/utils/areArraysEqual.d.ts +1 -0
  18. package/bundle/utils/mapChildren.d.ts +2 -0
  19. package/bundle/utils/maxBy.d.ts +2 -2
  20. package/bundle/utils/minBy.d.ts +1 -0
  21. package/dist/components/Blocks.js +3 -1
  22. package/dist/components/Blocks.js.map +1 -1
  23. package/dist/components/Carousel/Carousel.js +14 -15
  24. package/dist/components/Carousel/Carousel.js.map +1 -1
  25. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.d.ts +5 -0
  26. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +12 -0
  27. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -0
  28. package/dist/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +12 -0
  29. package/dist/components/CarouselProgramsCard/CarouselProgramsCardContent.js +2 -0
  30. package/dist/components/CarouselProgramsCard/CarouselProgramsCardContent.js.map +1 -0
  31. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +7 -13
  32. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  33. package/dist/components/ComparisonTable/ComparisonTable.mobile.js +1 -1
  34. package/dist/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  35. package/dist/components/Gallery/Gallery.mobile.js +1 -1
  36. package/dist/components/Header/HeaderSubMenu.js +1 -1
  37. package/dist/components/Header/HeaderSubMenu.js.map +1 -1
  38. package/dist/components/Header/HeaderSubMenuItem.d.ts +2 -1
  39. package/dist/components/Header/HeaderSubMenuItem.js.map +1 -1
  40. package/dist/components/RollupItem/RollupItem.js +10 -1
  41. package/dist/components/RollupItem/RollupItem.js.map +1 -1
  42. package/dist/hooks/useIntersectionObserver.d.ts +7 -1
  43. package/dist/hooks/useIntersectionObserver.js +10 -1
  44. package/dist/hooks/useIntersectionObserver.js.map +1 -1
  45. package/dist/hooks/useLink.js +1 -1
  46. package/dist/hooks/useLink.js.map +1 -1
  47. package/dist/ui-kit/BlockWrapper.js +1 -11
  48. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  49. package/dist/ui-kit/Button/ArrowButton.d.ts +2 -0
  50. package/dist/ui-kit/Button/ArrowButton.js +3 -1
  51. package/dist/ui-kit/Button/ArrowButton.js.map +1 -1
  52. package/dist/ui-kit/Foldable/FoldableSection.js +1 -1
  53. package/dist/ui-kit/Foldable/FoldableSection.js.map +1 -1
  54. package/dist/ui-kit/SwipeListControl/SwipeListContainer.d.ts +19 -0
  55. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js +35 -0
  56. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -0
  57. package/dist/ui-kit/SwipeListControl/SwipeListControl.js +17 -38
  58. package/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  59. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +7 -4
  60. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +10 -27
  61. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  62. package/dist/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +3 -3
  63. package/dist/ui-kit/SwipeListControl/SwipeListItem.d.ts +14 -0
  64. package/dist/ui-kit/SwipeListControl/SwipeListItem.js +16 -0
  65. package/dist/ui-kit/SwipeListControl/SwipeListItem.js.map +1 -0
  66. package/dist/ui-kit/SwipeListControl/scrollBy.d.ts +1 -0
  67. package/dist/ui-kit/SwipeListControl/scrollBy.js +8 -0
  68. package/dist/ui-kit/SwipeListControl/scrollBy.js.map +1 -0
  69. package/dist/ui-kit/SwipeListControl/scrollToEnd.d.ts +1 -0
  70. package/dist/ui-kit/SwipeListControl/scrollToEnd.js +7 -0
  71. package/dist/ui-kit/SwipeListControl/scrollToEnd.js.map +1 -0
  72. package/dist/ui-kit/SwipeListControl/scrollToStart.d.ts +1 -0
  73. package/dist/ui-kit/SwipeListControl/scrollToStart.js +7 -0
  74. package/dist/ui-kit/SwipeListControl/scrollToStart.js.map +1 -0
  75. package/dist/ui-kit/SwipeListControl/useSwipeListScroll.d.ts +17 -0
  76. package/dist/ui-kit/SwipeListControl/useSwipeListScroll.js +57 -0
  77. package/dist/ui-kit/SwipeListControl/useSwipeListScroll.js.map +1 -0
  78. package/dist/utils/areArraysEqual.d.ts +1 -0
  79. package/dist/utils/areArraysEqual.js +5 -0
  80. package/dist/utils/areArraysEqual.js.map +1 -0
  81. package/dist/utils/mapChildren.d.ts +2 -0
  82. package/dist/utils/mapChildren.js +10 -0
  83. package/dist/utils/mapChildren.js.map +1 -0
  84. package/dist/utils/maxBy.d.ts +2 -2
  85. package/dist/utils/maxBy.js +4 -4
  86. package/dist/utils/maxBy.js.map +1 -1
  87. package/dist/utils/minBy.d.ts +1 -0
  88. package/dist/utils/minBy.js +6 -0
  89. package/dist/utils/minBy.js.map +1 -0
  90. package/lib/common.css +1 -1
  91. package/lib/components/Blocks.js +3 -1
  92. package/lib/components/Blocks.js.map +1 -1
  93. package/lib/components/Carousel/Carousel.fixture.d.ts +1 -0
  94. package/lib/components/Carousel/Carousel.js +14 -15
  95. package/lib/components/Carousel/Carousel.js.map +1 -1
  96. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.d.ts +5 -0
  97. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.fixture.d.ts +8 -0
  98. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +10 -0
  99. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -0
  100. package/lib/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +12 -0
  101. package/lib/components/CarouselProgramsCard/CarouselProgramsCardContent.js +2 -0
  102. package/lib/components/CarouselProgramsCard/CarouselProgramsCardContent.js.map +1 -0
  103. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.fixture.d.ts +1 -1
  104. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +7 -13
  105. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  106. package/lib/components/ComparisonTable/ComparisonTable.mobile.js +1 -1
  107. package/lib/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  108. package/lib/components/Gallery/Gallery.mobile.js +1 -1
  109. package/lib/components/Header/HeaderSubMenu.js +1 -1
  110. package/lib/components/Header/HeaderSubMenu.js.map +1 -1
  111. package/lib/components/Header/HeaderSubMenuItem.d.ts +2 -1
  112. package/lib/components/Header/HeaderSubMenuItem.js +1 -1
  113. package/lib/components/Header/HeaderSubMenuItem.js.map +1 -1
  114. package/lib/components/RollupItem/RollupItem.js +10 -1
  115. package/lib/components/RollupItem/RollupItem.js.map +1 -1
  116. package/lib/hooks/useIntersectionObserver.d.ts +7 -1
  117. package/lib/hooks/useIntersectionObserver.js +11 -2
  118. package/lib/hooks/useIntersectionObserver.js.map +1 -1
  119. package/lib/hooks/useLink.js +2 -2
  120. package/lib/hooks/useLink.js.map +1 -1
  121. package/lib/ui-kit/BlockWrapper.js +1 -11
  122. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  123. package/lib/ui-kit/Button/ArrowButton.d.ts +2 -0
  124. package/lib/ui-kit/Button/ArrowButton.js +2 -0
  125. package/lib/ui-kit/Button/ArrowButton.js.map +1 -1
  126. package/lib/ui-kit/Foldable/FoldableSection.js +1 -1
  127. package/lib/ui-kit/Foldable/FoldableSection.js.map +1 -1
  128. package/lib/ui-kit/SwipeListControl/SwipeListContainer.d.ts +19 -0
  129. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js +33 -0
  130. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -0
  131. package/lib/ui-kit/SwipeListControl/SwipeListControl.js +17 -38
  132. package/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  133. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +7 -4
  134. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +10 -27
  135. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  136. package/lib/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +3 -3
  137. package/lib/ui-kit/SwipeListControl/SwipeListItem.d.ts +14 -0
  138. package/lib/ui-kit/SwipeListControl/SwipeListItem.js +14 -0
  139. package/lib/ui-kit/SwipeListControl/SwipeListItem.js.map +1 -0
  140. package/lib/ui-kit/SwipeListControl/scrollBy.d.ts +1 -0
  141. package/lib/ui-kit/SwipeListControl/scrollBy.js +5 -0
  142. package/lib/ui-kit/SwipeListControl/scrollBy.js.map +1 -0
  143. package/lib/ui-kit/SwipeListControl/scrollToEnd.d.ts +1 -0
  144. package/lib/ui-kit/SwipeListControl/scrollToEnd.js +4 -0
  145. package/lib/ui-kit/SwipeListControl/scrollToEnd.js.map +1 -0
  146. package/lib/ui-kit/SwipeListControl/scrollToStart.d.ts +1 -0
  147. package/lib/ui-kit/SwipeListControl/scrollToStart.js +4 -0
  148. package/lib/ui-kit/SwipeListControl/scrollToStart.js.map +1 -0
  149. package/lib/ui-kit/SwipeListControl/useSwipeListScroll.d.ts +17 -0
  150. package/lib/ui-kit/SwipeListControl/useSwipeListScroll.js +54 -0
  151. package/lib/ui-kit/SwipeListControl/useSwipeListScroll.js.map +1 -0
  152. package/lib/utils/areArraysEqual.d.ts +1 -0
  153. package/lib/utils/areArraysEqual.js +2 -0
  154. package/lib/utils/areArraysEqual.js.map +1 -0
  155. package/lib/utils/mapChildren.d.ts +2 -0
  156. package/lib/utils/mapChildren.js +7 -0
  157. package/lib/utils/mapChildren.js.map +1 -0
  158. package/lib/utils/maxBy.d.ts +2 -2
  159. package/lib/utils/maxBy.js +2 -2
  160. package/lib/utils/maxBy.js.map +1 -1
  161. package/lib/utils/minBy.d.ts +1 -0
  162. package/lib/utils/minBy.js +3 -0
  163. package/lib/utils/minBy.js.map +1 -0
  164. package/mobile/bundle/bundle.umd.js +141 -140
  165. package/mobile/bundle/bundle.umd.min.js +1 -1
  166. package/mobile/bundle/components/CarouselProgramsCard/CarouselProgramsCard.d.ts +5 -0
  167. package/mobile/bundle/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +12 -0
  168. package/mobile/bundle/components/Header/HeaderSubMenuItem.d.ts +2 -1
  169. package/mobile/bundle/hooks/useIntersectionObserver.d.ts +7 -1
  170. package/mobile/bundle/ui-kit/Button/ArrowButton.d.ts +2 -0
  171. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListContainer.d.ts +19 -0
  172. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +7 -4
  173. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +3 -3
  174. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListItem.d.ts +14 -0
  175. package/mobile/bundle/ui-kit/SwipeListControl/scrollBy.d.ts +1 -0
  176. package/mobile/bundle/ui-kit/SwipeListControl/scrollToEnd.d.ts +1 -0
  177. package/mobile/bundle/ui-kit/SwipeListControl/scrollToStart.d.ts +1 -0
  178. package/mobile/bundle/ui-kit/SwipeListControl/useSwipeListScroll.d.ts +17 -0
  179. package/mobile/bundle/utils/areArraysEqual.d.ts +1 -0
  180. package/mobile/bundle/utils/mapChildren.d.ts +2 -0
  181. package/mobile/bundle/utils/maxBy.d.ts +2 -2
  182. package/mobile/bundle/utils/minBy.d.ts +1 -0
  183. package/mobile/dist/components/Carousel/Carousel.js +14 -15
  184. package/mobile/dist/components/Carousel/Carousel.js.map +1 -1
  185. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.d.ts +5 -0
  186. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +12 -0
  187. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -0
  188. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +12 -0
  189. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCardContent.js +2 -0
  190. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCardContent.js.map +1 -0
  191. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +7 -13
  192. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  193. package/mobile/dist/components/ComparisonTable/ComparisonTable.js +1 -1
  194. package/mobile/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  195. package/mobile/dist/components/Gallery/Gallery.js +1 -1
  196. package/mobile/dist/components/Header/HeaderSubMenu.js +1 -1
  197. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
  198. package/mobile/dist/components/Header/HeaderSubMenuItem.d.ts +2 -1
  199. package/mobile/dist/components/Header/HeaderSubMenuItem.js.map +1 -1
  200. package/mobile/dist/components/RollupItem/RollupItem.js +10 -1
  201. package/mobile/dist/components/RollupItem/RollupItem.js.map +1 -1
  202. package/mobile/dist/hooks/useIntersectionObserver.d.ts +7 -1
  203. package/mobile/dist/hooks/useIntersectionObserver.js +10 -1
  204. package/mobile/dist/hooks/useIntersectionObserver.js.map +1 -1
  205. package/mobile/dist/hooks/useLink.js +1 -1
  206. package/mobile/dist/hooks/useLink.js.map +1 -1
  207. package/mobile/dist/ui-kit/BlockWrapper.js +1 -11
  208. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  209. package/mobile/dist/ui-kit/Button/ArrowButton.d.ts +2 -0
  210. package/mobile/dist/ui-kit/Button/ArrowButton.js +3 -1
  211. package/mobile/dist/ui-kit/Button/ArrowButton.js.map +1 -1
  212. package/mobile/dist/ui-kit/Foldable/FoldableSection.js +1 -1
  213. package/mobile/dist/ui-kit/Foldable/FoldableSection.js.map +1 -1
  214. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.d.ts +19 -0
  215. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js +35 -0
  216. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -0
  217. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js +17 -38
  218. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  219. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +7 -4
  220. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +10 -27
  221. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  222. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +3 -3
  223. package/mobile/dist/ui-kit/SwipeListControl/SwipeListItem.d.ts +14 -0
  224. package/mobile/dist/ui-kit/SwipeListControl/SwipeListItem.js +16 -0
  225. package/mobile/dist/ui-kit/SwipeListControl/SwipeListItem.js.map +1 -0
  226. package/mobile/dist/ui-kit/SwipeListControl/scrollBy.d.ts +1 -0
  227. package/mobile/dist/ui-kit/SwipeListControl/scrollBy.js +8 -0
  228. package/mobile/dist/ui-kit/SwipeListControl/scrollBy.js.map +1 -0
  229. package/mobile/dist/ui-kit/SwipeListControl/scrollToEnd.d.ts +1 -0
  230. package/mobile/dist/ui-kit/SwipeListControl/scrollToEnd.js +7 -0
  231. package/mobile/dist/ui-kit/SwipeListControl/scrollToEnd.js.map +1 -0
  232. package/mobile/dist/ui-kit/SwipeListControl/scrollToStart.d.ts +1 -0
  233. package/mobile/dist/ui-kit/SwipeListControl/scrollToStart.js +7 -0
  234. package/mobile/dist/ui-kit/SwipeListControl/scrollToStart.js.map +1 -0
  235. package/mobile/dist/ui-kit/SwipeListControl/useSwipeListScroll.d.ts +17 -0
  236. package/mobile/dist/ui-kit/SwipeListControl/useSwipeListScroll.js +57 -0
  237. package/mobile/dist/ui-kit/SwipeListControl/useSwipeListScroll.js.map +1 -0
  238. package/mobile/dist/utils/areArraysEqual.d.ts +1 -0
  239. package/mobile/dist/utils/areArraysEqual.js +5 -0
  240. package/mobile/dist/utils/areArraysEqual.js.map +1 -0
  241. package/mobile/dist/utils/mapChildren.d.ts +2 -0
  242. package/mobile/dist/utils/mapChildren.js +10 -0
  243. package/mobile/dist/utils/mapChildren.js.map +1 -0
  244. package/mobile/dist/utils/maxBy.d.ts +2 -2
  245. package/mobile/dist/utils/maxBy.js +4 -4
  246. package/mobile/dist/utils/maxBy.js.map +1 -1
  247. package/mobile/dist/utils/minBy.d.ts +1 -0
  248. package/mobile/dist/utils/minBy.js +6 -0
  249. package/mobile/dist/utils/minBy.js.map +1 -0
  250. package/mobile/lib/components/Carousel/Carousel.js +14 -15
  251. package/mobile/lib/components/Carousel/Carousel.js.map +1 -1
  252. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.d.ts +5 -0
  253. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +10 -0
  254. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -0
  255. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCardContent.d.ts +12 -0
  256. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCardContent.js +2 -0
  257. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCardContent.js.map +1 -0
  258. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +7 -13
  259. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  260. package/mobile/lib/components/ComparisonTable/ComparisonTable.js +1 -1
  261. package/mobile/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  262. package/mobile/lib/components/Gallery/Gallery.js +1 -1
  263. package/mobile/lib/components/Header/HeaderSubMenu.js +1 -1
  264. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
  265. package/mobile/lib/components/Header/HeaderSubMenuItem.d.ts +2 -1
  266. package/mobile/lib/components/Header/HeaderSubMenuItem.js +1 -1
  267. package/mobile/lib/components/Header/HeaderSubMenuItem.js.map +1 -1
  268. package/mobile/lib/components/RollupItem/RollupItem.js +10 -1
  269. package/mobile/lib/components/RollupItem/RollupItem.js.map +1 -1
  270. package/mobile/lib/hooks/useIntersectionObserver.d.ts +7 -1
  271. package/mobile/lib/hooks/useIntersectionObserver.js +11 -2
  272. package/mobile/lib/hooks/useIntersectionObserver.js.map +1 -1
  273. package/mobile/lib/hooks/useLink.js +2 -2
  274. package/mobile/lib/hooks/useLink.js.map +1 -1
  275. package/mobile/lib/ui-kit/BlockWrapper.js +1 -11
  276. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  277. package/mobile/lib/ui-kit/Button/ArrowButton.d.ts +2 -0
  278. package/mobile/lib/ui-kit/Button/ArrowButton.js +2 -0
  279. package/mobile/lib/ui-kit/Button/ArrowButton.js.map +1 -1
  280. package/mobile/lib/ui-kit/Foldable/FoldableSection.js +1 -1
  281. package/mobile/lib/ui-kit/Foldable/FoldableSection.js.map +1 -1
  282. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.d.ts +19 -0
  283. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js +33 -0
  284. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -0
  285. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js +17 -38
  286. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  287. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +7 -4
  288. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +10 -27
  289. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  290. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +3 -3
  291. package/mobile/lib/ui-kit/SwipeListControl/SwipeListItem.d.ts +14 -0
  292. package/mobile/lib/ui-kit/SwipeListControl/SwipeListItem.js +14 -0
  293. package/mobile/lib/ui-kit/SwipeListControl/SwipeListItem.js.map +1 -0
  294. package/mobile/lib/ui-kit/SwipeListControl/scrollBy.d.ts +1 -0
  295. package/mobile/lib/ui-kit/SwipeListControl/scrollBy.js +5 -0
  296. package/mobile/lib/ui-kit/SwipeListControl/scrollBy.js.map +1 -0
  297. package/mobile/lib/ui-kit/SwipeListControl/scrollToEnd.d.ts +1 -0
  298. package/mobile/lib/ui-kit/SwipeListControl/scrollToEnd.js +4 -0
  299. package/mobile/lib/ui-kit/SwipeListControl/scrollToEnd.js.map +1 -0
  300. package/mobile/lib/ui-kit/SwipeListControl/scrollToStart.d.ts +1 -0
  301. package/mobile/lib/ui-kit/SwipeListControl/scrollToStart.js +4 -0
  302. package/mobile/lib/ui-kit/SwipeListControl/scrollToStart.js.map +1 -0
  303. package/mobile/lib/ui-kit/SwipeListControl/useSwipeListScroll.d.ts +17 -0
  304. package/mobile/lib/ui-kit/SwipeListControl/useSwipeListScroll.js +54 -0
  305. package/mobile/lib/ui-kit/SwipeListControl/useSwipeListScroll.js.map +1 -0
  306. package/mobile/lib/utils/areArraysEqual.d.ts +1 -0
  307. package/mobile/lib/utils/areArraysEqual.js +2 -0
  308. package/mobile/lib/utils/areArraysEqual.js.map +1 -0
  309. package/mobile/lib/utils/mapChildren.d.ts +2 -0
  310. package/mobile/lib/utils/mapChildren.js +7 -0
  311. package/mobile/lib/utils/mapChildren.js.map +1 -0
  312. package/mobile/lib/utils/maxBy.d.ts +2 -2
  313. package/mobile/lib/utils/maxBy.js +2 -2
  314. package/mobile/lib/utils/maxBy.js.map +1 -1
  315. package/mobile/lib/utils/minBy.d.ts +1 -0
  316. package/mobile/lib/utils/minBy.js +3 -0
  317. package/mobile/lib/utils/minBy.js.map +1 -0
  318. package/mobile/src/common.css +0 -7
  319. package/mobile/src/components/Carousel/Carousel.tsx +41 -23
  320. package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCard.example.json +25 -0
  321. package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +36 -0
  322. package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCard.ui.json +1 -0
  323. package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCardContent.ts +13 -0
  324. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +44 -43
  325. package/mobile/src/components/ComparisonTable/ComparisonTable.tsx +1 -1
  326. package/mobile/src/components/Gallery/Gallery.tsx +1 -1
  327. package/mobile/src/components/Header/HeaderSubMenu.tsx +2 -4
  328. package/mobile/src/components/Header/HeaderSubMenuItem.tsx +5 -2
  329. package/mobile/src/components/RollupItem/RollupItem.tsx +10 -1
  330. package/mobile/src/hooks/useIntersectionObserver.ts +23 -2
  331. package/mobile/src/hooks/useLink.ts +2 -2
  332. package/mobile/src/ui-kit/BlockWrapper.tsx +1 -16
  333. package/mobile/src/ui-kit/Button/ArrowButton.tsx +13 -0
  334. package/mobile/src/ui-kit/Foldable/FoldableSection.tsx +3 -1
  335. package/mobile/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +97 -0
  336. package/mobile/src/ui-kit/SwipeListControl/SwipeListControl.tsx +31 -55
  337. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +25 -59
  338. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlProps.ts +3 -3
  339. package/mobile/src/ui-kit/SwipeListControl/SwipeListItem.tsx +44 -0
  340. package/mobile/src/ui-kit/SwipeListControl/scrollBy.ts +10 -0
  341. package/mobile/src/ui-kit/SwipeListControl/scrollToEnd.ts +3 -0
  342. package/mobile/src/ui-kit/SwipeListControl/scrollToStart.ts +3 -0
  343. package/mobile/src/ui-kit/SwipeListControl/useSwipeListScroll.ts +84 -0
  344. package/mobile/src/utils/areArraysEqual.ts +2 -0
  345. package/mobile/src/utils/mapChildren.ts +11 -0
  346. package/mobile/src/utils/maxBy.ts +3 -4
  347. package/mobile/src/utils/minBy.ts +5 -0
  348. package/package.json +2 -2
  349. package/src/common.css +0 -7
  350. package/src/components/Blocks.ts +3 -1
  351. package/src/components/Carousel/Carousel.fixture.tsx +20 -0
  352. package/src/components/Carousel/Carousel.tsx +41 -23
  353. package/src/components/CarouselProgramsCard/CarouselProgramsCard.example.json +25 -0
  354. package/src/components/CarouselProgramsCard/CarouselProgramsCard.fixture.tsx +38 -0
  355. package/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +36 -0
  356. package/src/components/CarouselProgramsCard/CarouselProgramsCard.ui.json +1 -0
  357. package/src/components/CarouselProgramsCard/CarouselProgramsCardContent.ts +13 -0
  358. package/src/components/CarouselTariffsCard/CarouselTariffsCard.fixture.tsx +2 -2
  359. package/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +44 -43
  360. package/src/components/ComparisonTable/ComparisonTable.mobile.tsx +1 -1
  361. package/src/components/Gallery/Gallery.mobile.tsx +1 -1
  362. package/src/components/Header/HeaderSubMenu.tsx +2 -4
  363. package/src/components/Header/HeaderSubMenuItem.tsx +5 -2
  364. package/src/components/RollupItem/RollupItem.tsx +10 -1
  365. package/src/hooks/useIntersectionObserver.ts +23 -2
  366. package/src/hooks/useLink.ts +2 -2
  367. package/src/ui-kit/BlockWrapper.tsx +1 -16
  368. package/src/ui-kit/Button/ArrowButton.tsx +13 -0
  369. package/src/ui-kit/Foldable/FoldableSection.tsx +3 -1
  370. package/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +97 -0
  371. package/src/ui-kit/SwipeListControl/SwipeListControl.tsx +31 -55
  372. package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +25 -59
  373. package/src/ui-kit/SwipeListControl/SwipeListControlProps.ts +3 -3
  374. package/src/ui-kit/SwipeListControl/SwipeListItem.tsx +44 -0
  375. package/src/ui-kit/SwipeListControl/scrollBy.ts +10 -0
  376. package/src/ui-kit/SwipeListControl/scrollToEnd.ts +3 -0
  377. package/src/ui-kit/SwipeListControl/scrollToStart.ts +3 -0
  378. package/src/ui-kit/SwipeListControl/useSwipeListScroll.ts +84 -0
  379. package/src/utils/areArraysEqual.ts +2 -0
  380. package/src/utils/mapChildren.ts +11 -0
  381. package/src/utils/maxBy.ts +3 -4
  382. package/src/utils/minBy.ts +5 -0
  383. package/bundle/components/Carousel/CarouselContainer.d.ts +0 -10
  384. package/bundle/ui-kit/SwipeListControl/SwipeListControlItem.d.ts +0 -9
  385. package/bundle/ui-kit/SwipeListControl/SwipeListControlList.d.ts +0 -11
  386. package/bundle/ui-kit/SwipeListControl/constants.d.ts +0 -2
  387. package/bundle/ui-kit/SwipeListControl/utils/getContainerStyle.d.ts +0 -1
  388. package/bundle/ui-kit/SwipeListControl/utils/getIndexParts.d.ts +0 -4
  389. package/bundle/ui-kit/SwipeListControl/utils/getScrollPoints.d.ts +0 -8
  390. package/dist/components/Carousel/CarouselContainer.d.ts +0 -10
  391. package/dist/components/Carousel/CarouselContainer.js +0 -14
  392. package/dist/components/Carousel/CarouselContainer.js.map +0 -1
  393. package/dist/ui-kit/SwipeListControl/SwipeListControlItem.d.ts +0 -9
  394. package/dist/ui-kit/SwipeListControl/SwipeListControlItem.js +0 -8
  395. package/dist/ui-kit/SwipeListControl/SwipeListControlItem.js.map +0 -1
  396. package/dist/ui-kit/SwipeListControl/SwipeListControlList.d.ts +0 -11
  397. package/dist/ui-kit/SwipeListControl/SwipeListControlList.js +0 -11
  398. package/dist/ui-kit/SwipeListControl/SwipeListControlList.js.map +0 -1
  399. package/dist/ui-kit/SwipeListControl/constants.d.ts +0 -2
  400. package/dist/ui-kit/SwipeListControl/constants.js +0 -12
  401. package/dist/ui-kit/SwipeListControl/constants.js.map +0 -1
  402. package/dist/ui-kit/SwipeListControl/utils/getContainerStyle.d.ts +0 -1
  403. package/dist/ui-kit/SwipeListControl/utils/getContainerStyle.js +0 -13
  404. package/dist/ui-kit/SwipeListControl/utils/getContainerStyle.js.map +0 -1
  405. package/dist/ui-kit/SwipeListControl/utils/getIndexParts.d.ts +0 -4
  406. package/dist/ui-kit/SwipeListControl/utils/getIndexParts.js +0 -19
  407. package/dist/ui-kit/SwipeListControl/utils/getIndexParts.js.map +0 -1
  408. package/dist/ui-kit/SwipeListControl/utils/getScrollPoints.d.ts +0 -8
  409. package/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js +0 -33
  410. package/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +0 -1
  411. package/lib/components/Carousel/CarouselContainer.d.ts +0 -10
  412. package/lib/components/Carousel/CarouselContainer.js +0 -12
  413. package/lib/components/Carousel/CarouselContainer.js.map +0 -1
  414. package/lib/ui-kit/SwipeListControl/SwipeListControlItem.d.ts +0 -9
  415. package/lib/ui-kit/SwipeListControl/SwipeListControlItem.js +0 -6
  416. package/lib/ui-kit/SwipeListControl/SwipeListControlItem.js.map +0 -1
  417. package/lib/ui-kit/SwipeListControl/SwipeListControlList.d.ts +0 -11
  418. package/lib/ui-kit/SwipeListControl/SwipeListControlList.js +0 -9
  419. package/lib/ui-kit/SwipeListControl/SwipeListControlList.js.map +0 -1
  420. package/lib/ui-kit/SwipeListControl/constants.d.ts +0 -2
  421. package/lib/ui-kit/SwipeListControl/constants.js +0 -10
  422. package/lib/ui-kit/SwipeListControl/constants.js.map +0 -1
  423. package/lib/ui-kit/SwipeListControl/utils/getContainerStyle.d.ts +0 -1
  424. package/lib/ui-kit/SwipeListControl/utils/getContainerStyle.js +0 -10
  425. package/lib/ui-kit/SwipeListControl/utils/getContainerStyle.js.map +0 -1
  426. package/lib/ui-kit/SwipeListControl/utils/getIndexParts.d.ts +0 -7
  427. package/lib/ui-kit/SwipeListControl/utils/getIndexParts.js +0 -16
  428. package/lib/ui-kit/SwipeListControl/utils/getIndexParts.js.map +0 -1
  429. package/lib/ui-kit/SwipeListControl/utils/getScrollPoints.d.ts +0 -11
  430. package/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js +0 -30
  431. package/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +0 -1
  432. package/mobile/bundle/components/Carousel/CarouselContainer.d.ts +0 -10
  433. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListControlItem.d.ts +0 -9
  434. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListControlList.d.ts +0 -11
  435. package/mobile/bundle/ui-kit/SwipeListControl/constants.d.ts +0 -2
  436. package/mobile/bundle/ui-kit/SwipeListControl/utils/getContainerStyle.d.ts +0 -1
  437. package/mobile/bundle/ui-kit/SwipeListControl/utils/getIndexParts.d.ts +0 -4
  438. package/mobile/bundle/ui-kit/SwipeListControl/utils/getScrollPoints.d.ts +0 -8
  439. package/mobile/dist/components/Carousel/CarouselContainer.d.ts +0 -10
  440. package/mobile/dist/components/Carousel/CarouselContainer.js +0 -14
  441. package/mobile/dist/components/Carousel/CarouselContainer.js.map +0 -1
  442. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlItem.d.ts +0 -9
  443. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlItem.js +0 -8
  444. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlItem.js.map +0 -1
  445. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlList.d.ts +0 -11
  446. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlList.js +0 -11
  447. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlList.js.map +0 -1
  448. package/mobile/dist/ui-kit/SwipeListControl/constants.d.ts +0 -2
  449. package/mobile/dist/ui-kit/SwipeListControl/constants.js +0 -12
  450. package/mobile/dist/ui-kit/SwipeListControl/constants.js.map +0 -1
  451. package/mobile/dist/ui-kit/SwipeListControl/utils/getContainerStyle.d.ts +0 -1
  452. package/mobile/dist/ui-kit/SwipeListControl/utils/getContainerStyle.js +0 -13
  453. package/mobile/dist/ui-kit/SwipeListControl/utils/getContainerStyle.js.map +0 -1
  454. package/mobile/dist/ui-kit/SwipeListControl/utils/getIndexParts.d.ts +0 -4
  455. package/mobile/dist/ui-kit/SwipeListControl/utils/getIndexParts.js +0 -19
  456. package/mobile/dist/ui-kit/SwipeListControl/utils/getIndexParts.js.map +0 -1
  457. package/mobile/dist/ui-kit/SwipeListControl/utils/getScrollPoints.d.ts +0 -8
  458. package/mobile/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js +0 -33
  459. package/mobile/dist/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +0 -1
  460. package/mobile/lib/components/Carousel/CarouselContainer.d.ts +0 -10
  461. package/mobile/lib/components/Carousel/CarouselContainer.js +0 -12
  462. package/mobile/lib/components/Carousel/CarouselContainer.js.map +0 -1
  463. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlItem.d.ts +0 -9
  464. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlItem.js +0 -6
  465. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlItem.js.map +0 -1
  466. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlList.d.ts +0 -11
  467. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlList.js +0 -9
  468. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlList.js.map +0 -1
  469. package/mobile/lib/ui-kit/SwipeListControl/constants.d.ts +0 -2
  470. package/mobile/lib/ui-kit/SwipeListControl/constants.js +0 -10
  471. package/mobile/lib/ui-kit/SwipeListControl/constants.js.map +0 -1
  472. package/mobile/lib/ui-kit/SwipeListControl/utils/getContainerStyle.d.ts +0 -1
  473. package/mobile/lib/ui-kit/SwipeListControl/utils/getContainerStyle.js +0 -10
  474. package/mobile/lib/ui-kit/SwipeListControl/utils/getContainerStyle.js.map +0 -1
  475. package/mobile/lib/ui-kit/SwipeListControl/utils/getIndexParts.d.ts +0 -4
  476. package/mobile/lib/ui-kit/SwipeListControl/utils/getIndexParts.js +0 -16
  477. package/mobile/lib/ui-kit/SwipeListControl/utils/getIndexParts.js.map +0 -1
  478. package/mobile/lib/ui-kit/SwipeListControl/utils/getScrollPoints.d.ts +0 -8
  479. package/mobile/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js +0 -30
  480. package/mobile/lib/ui-kit/SwipeListControl/utils/getScrollPoints.js.map +0 -1
  481. package/mobile/src/components/Carousel/CarouselContainer.tsx +0 -34
  482. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlItem.tsx +0 -24
  483. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlList.tsx +0 -50
  484. package/mobile/src/ui-kit/SwipeListControl/constants.ts +0 -10
  485. package/mobile/src/ui-kit/SwipeListControl/utils/getContainerStyle.ts +0 -9
  486. package/mobile/src/ui-kit/SwipeListControl/utils/getIndexParts.ts +0 -25
  487. package/mobile/src/ui-kit/SwipeListControl/utils/getScrollPoints.ts +0 -49
  488. package/src/components/Carousel/CarouselContainer.tsx +0 -34
  489. package/src/ui-kit/SwipeListControl/SwipeListControlItem.tsx +0 -24
  490. package/src/ui-kit/SwipeListControl/SwipeListControlList.tsx +0 -50
  491. package/src/ui-kit/SwipeListControl/constants.ts +0 -10
  492. package/src/ui-kit/SwipeListControl/utils/getContainerStyle.ts +0 -9
  493. package/src/ui-kit/SwipeListControl/utils/getIndexParts.ts +0 -25
  494. package/src/ui-kit/SwipeListControl/utils/getScrollPoints.ts +0 -49
@@ -311,8 +311,10 @@
311
311
  }
312
312
  }
313
313
 
314
- function useIntersectionObserver(observerCallback, observerOptions) {
314
+ const SENSITIVITY_SCALE = 10;
315
+ function useIntersectionObserver(observerCallback, { sensitivity, rootRef } = {}) {
315
316
  const ref = useRef(null);
317
+ const observerOptions = useMemo(() => ({ threshold: sensitivityToThreshold(sensitivity), root: rootRef?.current }), [sensitivity, rootRef?.current]);
316
318
  useEffect(() => {
317
319
  if (!ref.current) {
318
320
  return undefined;
@@ -325,6 +327,13 @@
325
327
  }, [observerCallback, observerOptions]);
326
328
  return ref;
327
329
  }
330
+ function sensitivityToThreshold(sensitivity = 0) {
331
+ const thresholdsCount = Math.round(sensitivity * SENSITIVITY_SCALE);
332
+ return new Array(thresholdsCount)
333
+ .fill(0)
334
+ .map((_, thi) => Math.min(thi / thresholdsCount), 1)
335
+ .concat(1);
336
+ }
328
337
 
329
338
  const changeHashOnObserve = ({ anchor, anchorClickRef }) => (entries) => {
330
339
  if (!entries?.length) {
@@ -343,19 +352,13 @@
343
352
  }
344
353
  };
345
354
 
346
- const THRESHOLD_ACCURACY = 100; // Decimals number (100 is for two decimals number, 0.**)
347
- const THRESHOLD_ARRAY_LENGTH = 18;
348
- const THRESHOLD_ARRAY_START_VALUE = (THRESHOLD_ACCURACY - THRESHOLD_ARRAY_LENGTH) / THRESHOLD_ACCURACY;
349
- const OBSERVER_OPTIONS = {
350
- threshold: new Array(THRESHOLD_ARRAY_LENGTH).fill(0).map(getIntersectionThreshold),
351
- };
352
355
  const BlockWrapper = JSX(({ className, block, tag = 'section', role, children }) => {
353
356
  const Tag = tag;
354
357
  const { anchor, labels } = block || {};
355
358
  const [isVisible, setVisible] = useState(true);
356
359
  const anchorClickRef = useRef({});
357
360
  const observerCallback = useMemo(() => changeHashOnObserve({ anchor, anchorClickRef }), [anchor]);
358
- const ref = useIntersectionObserver(observerCallback, OBSERVER_OPTIONS);
361
+ const ref = useIntersectionObserver(observerCallback, { sensitivity: 1 });
359
362
  useEffect(() => EventBus.inst.subscribe('anchorClick', (e) => {
360
363
  setVisible(true);
361
364
  anchorClickRef.current = e;
@@ -372,10 +375,6 @@
372
375
  }), []);
373
376
  return isVisible ? (jsx(Tag, { className: className, role: role, ...(anchor ? { id: anchor, ref } : {}), children: children })) : null;
374
377
  });
375
- function getIntersectionThreshold(_, i) {
376
- const value = (i + 1) / THRESHOLD_ACCURACY + THRESHOLD_ARRAY_START_VALUE;
377
- return Math.round(value * THRESHOLD_ACCURACY) / THRESHOLD_ACCURACY;
378
- }
379
378
  function changeHash(label) {
380
379
  if (label) {
381
380
  globalThis.document.location.hash = label;
@@ -426,7 +425,7 @@
426
425
  : '';
427
426
  }
428
427
  }, [isUnfolded, children?.length]);
429
- return (jsx("div", { ref: containerRef, className: `transition-max-h duration-300 overflow-hidden max-h-0 ${className}`, children: children }));
428
+ return (jsx("div", { ref: containerRef, className: `transition-max-h duration-300 overflow-hidden ${containerRef.current || !isUnfolded ? 'max-h-0' : ''} ${className}`, children: children }));
430
429
  });
431
430
 
432
431
  const svgUseStyleMap = {
@@ -626,7 +625,7 @@
626
625
  props.onClick && props.onClick(ev);
627
626
  const isLocalHref = href && !isURL(href);
628
627
  const isLocalTarget = !props.target || props.target === '_self';
629
- if (isLocalHref && isLocalTarget) {
628
+ if (isLocalHref && isLocalTarget && !isHash(href)) {
630
629
  ev?.preventDefault();
631
630
  router.push(href);
632
631
  }
@@ -865,6 +864,8 @@
865
864
  const ArrowButton = JSX(({ className, disabled, ...rest }) => (jsx(Button, { rounded: true, className: `group shadow-[0_4px_25px_rgba(0,0,0,0.07)] w-12 h-12 min-h-12 max-h-12 flex items-center justify-center ${disabled
866
865
  ? 'bg-secondary-light text-secondary-text'
867
866
  : 'bg-white text-primary-text hover:text-primary-main'} ${className || ''}`, disabled: disabled, ...rest, children: jsx(ImgInner, { className: "w-4 h-4 min-w-4 min-h-4 rounded-full box-border", image: { icon: 'ArrowLeftIcon', iconVersion: 'black' }, imageClassName: "group-hover:text-primary-main", width: "16", height: "16", asSVG: true }) })));
867
+ const ScrollLeftButton = JSX((props) => (jsx(ArrowButton, { ...props, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043B\u0435\u0432\u043E", "data-block-control": "scroll-left" })));
868
+ const ScrollRightButton = JSX((props) => (jsx(ArrowButton, { ...props, className: `${props.className || ''} rotate-180`, ariaLabel: "\u041F\u0440\u043E\u043B\u0438\u0441\u0442\u0430\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E", "data-block-control": "scroll-right" })));
868
869
 
869
870
  function renderArrows({ dec, inc, canDec, canInc, btnClass, className = '', }) {
870
871
  const isVisible = canDec || canInc;
@@ -1376,35 +1377,140 @@
1376
1377
  return (jsxs(BlockWrapper, { className: `p-[50px] flex flex-col items-center font-sans bg-white ${className}`, ...rest, children: [title ? jsx(Heading, { className: "max-w-[684px] pb-9", headingType: "h2", title: title }) : null, jsxs("form", { className: "w-[468px]", method: "POST", action: FORM_URL, children: [jsx(CurrencyInput, { name: AMOUNT_KEY, value: value, onChange: handleChange, valid: value === '' || !isDisabled, placeholder: placeholder, label: label }), button?.text ? (jsx("button", { type: "submit", className: `w-full p-4 mt-6 ${buttonStyle} `, disabled: isDisabled, ...link(button), children: button.text })) : null] })] }));
1377
1378
  });
1378
1379
 
1379
- const childStyleMap = ['[&>*]:min-w-[100%]', '[&>*]:min-w-[50%]', '[&>*]:min-w-[33.33%]'];
1380
- const CarouselContainer = JSX(({ activeIndex, itemCount, visibleItemCount, containerRef, children }) => {
1381
- const scrollWidth = containerRef?.current?.scrollWidth || 0;
1382
- const maxScrollLeft = scrollWidth - (containerRef?.current?.clientWidth || 0);
1383
- const translateX = visibleItemCount
1384
- ? `${-Math.round((100 * activeIndex) / visibleItemCount)}%`
1385
- : `${-Math.round(Math.min((scrollWidth * activeIndex) / (itemCount || 1), maxScrollLeft))}px`;
1386
- return (jsx("div", { className: `flex gap-1 duration-1000 ${visibleItemCount ? childStyleMap[visibleItemCount - 1] : ''}`, style: { transform: `translateX(${translateX})` }, role: "list", ref: containerRef, children: children }));
1380
+ const mapChildren = (mapper) => (children) => {
1381
+ if (children === null || children === undefined) {
1382
+ return children;
1383
+ }
1384
+ return Array.isArray(children) ? children.map(mapper) : mapper(children, 0);
1385
+ };
1386
+
1387
+ const SwipeListItem = JSX(({ className = '', style, idx, activeIndex, observerOptions, children, onIntersection }) => {
1388
+ const observerCallback = useCallback((entries) => {
1389
+ if (entries.length && onIntersection) {
1390
+ onIntersection(idx || 0, entries[entries.length - 1]);
1391
+ }
1392
+ }, [onIntersection, idx]);
1393
+ const ref = useIntersectionObserver(observerCallback, observerOptions);
1394
+ return (jsx("div", { className: `inline-block snap-always box-border ${className}`, style: style, role: "listitem", "aria-current": Boolean(idx === activeIndex), ref: ref, children: children }));
1395
+ });
1396
+
1397
+ const childStyleMap = ['min-w-[100%]', 'min-w-[50%]', 'min-w-[33.33%]'];
1398
+ const SwipeListContainer = JSX(({ className = '', containerRef, activeIndex, visibleItemCount, gap = 0, padding = 0, snapAlign = 'snap-center', children, onVisibleItemsChange, onVisibleIndicesChange, }) => {
1399
+ const observerOptions = {
1400
+ sensitivity: 1,
1401
+ rootRef: containerRef,
1402
+ };
1403
+ const itemsVisibilityListRef = useRef([]);
1404
+ const handleIntersection = useCallback((idx, entry) => {
1405
+ const itemsVisibilityList = [...(itemsVisibilityListRef.current || [])];
1406
+ itemsVisibilityList[idx] = entry;
1407
+ itemsVisibilityListRef.current = itemsVisibilityList;
1408
+ onVisibleItemsChange && onVisibleItemsChange(itemsVisibilityList);
1409
+ onVisibleIndicesChange && onVisibleIndicesChange(getVisibleIndices(itemsVisibilityList));
1410
+ }, [onVisibleItemsChange, onVisibleIndicesChange]);
1411
+ return (jsx("div", { className: `box-border overflow-auto flex horizontal-list no-scrollbar ${className}`, style: { ...getContainerStyle(padding), gap: `${gap}px` }, role: "list", ref: containerRef, children: mapChildren((child, idx) => (jsx(SwipeListItem, { className: `${snapAlign} ${visibleItemCount ? childStyleMap[visibleItemCount - 1] : ''}`, style: getContainerStyle(padding / 4), activeIndex: activeIndex, idx: idx, observerOptions: observerOptions, onIntersection: handleIntersection, children: child }, String(idx))))(children) }));
1412
+ });
1413
+ // Styles used to compensate outer container padding to get rid of clipping effect
1414
+ const getContainerStyle = (padding) => ({
1415
+ marginLeft: `${-padding}px`,
1416
+ marginRight: `${-padding}px`,
1417
+ paddingLeft: `${padding}px`,
1418
+ paddingRight: `${padding}px`,
1387
1419
  });
1420
+ const getVisibleIndices = (itemsVisibilityList) => itemsVisibilityList
1421
+ .map((_, i) => [_, i])
1422
+ .filter(([_]) => _ && _.intersectionRatio >= 0.9)
1423
+ .map(([, i]) => i);
1424
+
1425
+ const areArraysEqual = (as, bs) => as === bs || Boolean(as && bs && as?.length === bs?.length && as.every((_, i) => _ === bs[i]));
1426
+
1427
+ const defaultDiscriminator = (_) => _;
1428
+ const maxBy = (discriminator = defaultDiscriminator) => (list) => list.reduceRight((a, b) => (discriminator(a) > discriminator(b) ? a : b));
1429
+
1430
+ const minBy = (discriminator = defaultDiscriminator) => maxBy((_) => -discriminator(_));
1431
+
1432
+ const getItemWidth = (container) => (itemCount) => container.scrollWidth / itemCount;
1433
+ const scrollBy = (container) => (itemCount, delta) => {
1434
+ container.scrollBy({ left: delta * getItemWidth(container)(itemCount), behavior: 'smooth' });
1435
+ };
1436
+
1437
+ const scrollToEnd = (container) => {
1438
+ container.scrollTo({ left: container.scrollWidth, behavior: 'smooth' });
1439
+ };
1440
+
1441
+ const scrollToStart = (container) => {
1442
+ container.scrollTo({ left: 0, behavior: 'smooth' });
1443
+ };
1444
+
1445
+ const useSwipeListScroll = ({ itemCount, isCyclic, onVisibleIndicesChange, }) => {
1446
+ const containerRef = useRef(null);
1447
+ const [visibleIndices, setVisibleIndices] = useState([]);
1448
+ const handleVisibleIndicesChange = useCallback((indices) => {
1449
+ setVisibleIndices((prevIndices) => areArraysEqual(prevIndices, indices) ? prevIndices : indices);
1450
+ onVisibleIndicesChange && onVisibleIndicesChange(indices);
1451
+ }, [itemCount]);
1452
+ const [minIndex, maxIndex] = visibleIndices.length
1453
+ ? [minBy()(visibleIndices), maxBy()(visibleIndices)]
1454
+ : [-1, -1];
1455
+ const canScrollLeft = minIndex > 0;
1456
+ const canScrollRight = maxIndex < itemCount - 1;
1457
+ const scrollLeft = useCallback(() => {
1458
+ if (!containerRef.current) {
1459
+ return;
1460
+ }
1461
+ if (isCyclic && !canScrollLeft) {
1462
+ scrollToEnd(containerRef.current);
1463
+ }
1464
+ else {
1465
+ scrollBy(containerRef.current)(itemCount, -1);
1466
+ }
1467
+ }, [isCyclic, itemCount, canScrollLeft]);
1468
+ const scrollRight = useCallback(() => {
1469
+ if (!containerRef.current) {
1470
+ return;
1471
+ }
1472
+ if (isCyclic && !canScrollRight) {
1473
+ scrollToStart(containerRef.current);
1474
+ }
1475
+ else {
1476
+ scrollBy(containerRef.current)(itemCount, 1);
1477
+ }
1478
+ }, [itemCount, isCyclic, canScrollRight]);
1479
+ return [
1480
+ containerRef,
1481
+ {
1482
+ scrollLeft,
1483
+ scrollRight,
1484
+ canScrollLeft: isCyclic || canScrollLeft,
1485
+ canScrollRight: isCyclic || canScrollRight,
1486
+ visibleIndicesRange: [minIndex, maxIndex],
1487
+ handleVisibleIndicesChange,
1488
+ },
1489
+ ];
1490
+ };
1388
1491
 
1492
+ const ITEMS_GAP = 4;
1389
1493
  const blurBaseStyle = 'absolute top-0 bottom-0 z-50 w-[84px]';
1494
+ const scrollButtonStyle = 'absolute top-1/2 z-50';
1390
1495
  const Carousel = JSX(({ className = '', itemCount, visibleItemCount, isBlur = true, isCyclic = false, ...rest }) => {
1391
1496
  const { blocks: childBlocks } = rest.block || {};
1392
1497
  const count = itemCount || childBlocks?.length || 0;
1393
- const containerRef = useRef(null);
1394
- const [activeIndex, controls] = useCarouselControls({
1498
+ const [containerRef, scroll] = useSwipeListScroll({
1395
1499
  itemCount: count,
1396
- visibleItemCount,
1397
1500
  isCyclic,
1398
- container: containerRef.current,
1399
1501
  });
1400
- const { isScrollAvailable } = controls;
1401
- return (jsxs(BlockWrapper, { className: `relative font-sans overflow-hidden ${className}`, ...rest, children: [jsx(CarouselContainer, { activeIndex: activeIndex, itemCount: count, visibleItemCount: visibleItemCount, containerRef: containerRef, children: renderChildren(rest) }), isScrollAvailable && isBlur ? (jsxs("div", { children: [jsx("div", { className: `${blurBaseStyle} left-0 bg-opacity-from-white` }), jsx("div", { className: `${blurBaseStyle} right-0 bg-opacity-to-white` })] })) : null, renderArrows({
1402
- ...controls,
1403
- btnClass: ['left-8', 'right-8'],
1404
- className: 'top-1/2',
1405
- })] }));
1502
+ return (jsxs(BlockWrapper, { className: `relative font-sans ${className}`, ...rest, children: [jsx(SwipeListContainer, { containerRef: containerRef, visibleItemCount: visibleItemCount, snapAlign: "snap-start", gap: ITEMS_GAP, onVisibleIndicesChange: scroll.handleVisibleIndicesChange, children: renderChildren(rest) }), (scroll.canScrollLeft || scroll.canScrollRight) && isBlur ? (jsxs("div", { children: [jsx("div", { className: `${blurBaseStyle} left-0 bg-opacity-from-white` }), jsx("div", { className: `${blurBaseStyle} right-0 bg-opacity-to-white` })] })) : null, renderScrollButtons(scroll)] }));
1406
1503
  });
1407
- Carousel.childrenTypes = ['CarouselCard', 'CarouselTariffsCard'];
1504
+ Carousel.childrenTypes = [
1505
+ 'CarouselCard',
1506
+ 'CarouselTariffsCard',
1507
+ 'CarouselLinks',
1508
+ 'CarouselProgramsCard',
1509
+ ];
1510
+ const renderScrollButtons = ({ scrollLeft, scrollRight, canScrollLeft, canScrollRight, }) => (jsxs("div", { children: [canScrollLeft ? (jsx(ScrollLeftButton, { className: `${scrollButtonStyle} left-8`, onClick: scrollLeft })) : null, canScrollRight ? (jsx(ScrollRightButton, { className: `${scrollButtonStyle} right-8`, onClick: scrollRight })) : null] }));
1511
+
1512
+ const CarouselProgramsCard = JSX(({ className = '', title, icon, list = [], version = 'primary', ...rest }) => (jsxs(BlockWrapper, { className: `font-sans border border-main-stroke flex min-w-[536px] ${VersionStyleMap[version]} ${className}`, ...rest, children: [jsxs("div", { className: "w-[200px] min-w-[200px] self-end", children: [icon?.icon ? jsx(ImgInner, { image: getIconWithVersion(icon), asSVG: true }) : null, icon?.src ? jsx(ImgInner, { image: icon }) : null] }), jsxs("div", { className: "p-8 pl-3 w-full", children: [title ? jsx(Heading, { className: " mb-3.5", headingType: "h5", title: title }) : null, list.length ? jsx("div", { className: "flex flex-col gap-3", children: list?.map(renderList$2) }) : null] })] })));
1513
+ const renderList$2 = (_, i) => (jsxs("div", { className: "break-words", children: [_.title ? jsx("div", { className: `text-h6`, children: _.title }) : null, _.description ? jsx("span", { className: "text-l-light mt-1", children: _.description }) : null] }, String(i)));
1408
1514
 
1409
1515
  const BLOCK_CLASSES = 'absolute border border-solid border-main-stroke w-full h-full';
1410
1516
  const CARD_WIDTH_MAP = {
@@ -1435,23 +1541,17 @@
1435
1541
  .map((link, index) => (jsx(LinkButton, { className: "m-1", ...link }, String(index)))) }, String(groupIndex)))) }));
1436
1542
  };
1437
1543
 
1544
+ const VISIBLE_ROWS_COUNT = 1;
1438
1545
  const CarouselTariffsCard = JSX(({ className = '', title, icon, isHighlighting, button, rows = [], ...rest }) => {
1439
- const hitStyle = getHitStyle(Boolean(isHighlighting));
1440
1546
  const rowsNode = rows.map(renderCardInfo);
1441
- const VISIBLE_ROWS_COUNT = 1;
1442
- const [visibleRows, hiddenRows] = [
1443
- rowsNode.slice(0, VISIBLE_ROWS_COUNT),
1444
- rowsNode.slice(VISIBLE_ROWS_COUNT),
1445
- ];
1446
- return (jsxs(BlockWrapper, { className: `font-sans bg-white p-8 border border-main-stroke relative w-[322px] min-w-[322px] -ml-[1px] ${hitStyle} ${className}`, ...rest, children: [isHighlighting ? renderHitIcon() : null, icon?.src ? jsx(ImgInner, { className: "flex justify-center", image: icon }) : null, title ? (jsx(Heading, { className: "text-primary-text text-center pt-2", headingType: "h5", title: title })) : null, button ? jsx(Button, { className: "w-full mt-4", ...button }) : null, rows?.length ? (jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs("div", { children: [visibleRows, jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenRows })] })), renderFoldButton: rows.length > 1 ? renderFoldButton$1 : null })) : null] }));
1547
+ const visibleRows = rowsNode.slice(0, VISIBLE_ROWS_COUNT);
1548
+ const hiddenRows = rowsNode.slice(VISIBLE_ROWS_COUNT);
1549
+ return (jsx(BlockWrapper, { className: `font-sans ${className}`, ...rest, children: jsxs("div", { className: `relative bg-white border border-main-stroke min-w-[322px] p-8 ${getHitStyle(isHighlighting)}`, children: [isHighlighting ? renderHitIcon() : null, icon?.src ? jsx(ImgInner, { image: icon }) : null, title ? (jsx(Heading, { className: "text-primary-text text-center pt-2", headingType: "h5", title: title })) : null, button ? jsx(Button, { className: "w-full mt-4", ...button }) : null, rows?.length ? (jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs("div", { children: [visibleRows, jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenRows })] })), renderFoldButton: rows.length > 1 ? renderFoldButton$1 : null })) : null] }) }));
1447
1550
  });
1448
- const getHitStyle = (isHighlighting) => isHighlighting ? 'mt-9 pt-[71px]' : 'mt-[70px] pt-9';
1551
+ const getHitStyle = (isHighlighting) => isHighlighting ? 'mt-9 pt-[70px]' : 'mt-[70px] pt-9';
1449
1552
  const renderFoldButton$1 = ({ isUnfolded, onToggle }) => (jsxs("button", { className: "w-full cursor-pointer text-primary-main pt-5 flex justify-between items-center", onClick: onToggle, children: [jsx("div", { children: isUnfolded ? 'Скрыть' : 'Подробнее о тарифе' }), jsx(Icon, { className: "text-primary-text", name: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16", asSVG: true })] }));
1450
- const renderCardInfo = (cell, i) => (jsxs("div", { className: "py-5 border-b border-main-divider flex flex-col gap-1", children: [cell?.title ? (jsx("div", { className: "text-secondary-text text-m-light opacity-80", children: cell.title })) : null, cell?.description ? jsx("div", { className: "text-primary-text text-h6", children: cell.description }) : null] }, String(i)));
1451
- const renderHitIcon = () => {
1452
- const POSITION_STYLE = 'absolute -top-7 -right-4';
1453
- return (jsxs("div", { className: `h-[60px] w-[60px] bg-white flex flex-col items-center justify-center shadow-[0_4px_25px_rgba(0,0,0,0.07)] ${POSITION_STYLE}`, children: [jsx(Icon, { iconVersion: "black", name: "HeartIcon", width: "23", height: "22", asSVG: true }), jsx("div", { className: "text-center", children: "\u0425\u0438\u0442" })] }));
1454
- };
1553
+ const renderCardInfo = (cell, i) => (jsxs("div", { className: "py-5 border-b border-main-divider", children: [cell?.title ? (jsx("div", { className: "text-secondary-text text-m-light opacity-80", children: cell.title })) : null, cell?.description ? (jsx("div", { className: "text-primary-text text-h6 mt-1", children: cell.description })) : null] }, String(i)));
1554
+ const renderHitIcon = () => (jsxs("div", { className: "absolute -top-7 -right-4 h-[60px] w-[60px] bg-white flex flex-col items-center justify-center shadow-[0_4px_25px_rgba(0,0,0,0.07)]", children: [jsx(Icon, { iconVersion: "black", name: "HeartIcon", width: "23", height: "22", asSVG: true }), jsx("div", { className: "text-center", children: "\u0425\u0438\u0442" })] }));
1455
1555
 
1456
1556
  const cardStyleMap$1 = {
1457
1557
  black: 'bg-black',
@@ -2103,8 +2203,6 @@
2103
2203
  return (jsxs("div", { className: `flex items-center ${className || ''}`, children: [jsx(TopItem, { className: "mr-5", flat: true, href: "#", text: city, ariaLabel: "\u041C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435", onClick: getCity, bgColor: bgColor }), officesLink ? (jsx(TopItem, { className: "mr-7", flat: true, href: officesLink, text: "\u041E\u0444\u0438\u0441\u044B \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u044B", ariaLabel: "\u0421\u043F\u0438\u0441\u043E\u043A \u0432\u0441\u0435\u0445 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445 \u043E\u0444\u0438\u0441\u043E\u0432 \u0438 \u0431\u0430\u043D\u043A\u043E\u043C\u0430\u0442\u043E\u0432", bgColor: bgColor })) : null, jsx(HeaderSecondaryMenuButton, { className: `mr-5 group ${COLORS_MAP[bgColor]}`, ariaLabel: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0441\u0430\u0439\u0442\u0443", children: jsx(ImgInner, { image: { icon: 'LoupeIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full pointer-events-none", imageClassName: "group-hover:text-primary-hover group-hover:invert-0 pointer-events-none", asSVG: true }) }), jsx(HeaderSecondaryMenuButton, { className: `${LINKS_COLORS_MAP[bgColor]} group min-w-[32px] min-h-[32px]`, ariaLabel: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0435 \u0441\u0441\u044B\u043B\u043A\u0438", children: jsx(ImgInner, { image: { icon: 'GridIcon', iconVersion: LINKS_ICON_VERSION_MAP[bgColor] }, className: "h-full bg-main-divider/20 rounded-full pointer-events-none", imageClassName: "group-hover:text-primary-hover group-hover:invert-0", asSVG: true }) })] }));
2104
2204
  });
2105
2205
 
2106
- const maxBy = (discriminator) => (list) => list.reduceRight((a, b) => (discriminator(a) > discriminator(b) ? a : b));
2107
-
2108
2206
  const findActiveSubItem = (router) => (items = []) => {
2109
2207
  const possibleActiveSubItems = items?.filter(isSubItemActive(router));
2110
2208
  return possibleActiveSubItems?.length
@@ -2166,7 +2264,7 @@
2166
2264
  const [visibleItemsCount, setVisibleItemsCount] = useState(subItems.length);
2167
2265
  const dropDownMenuItems = subItems.slice(visibleItemsCount);
2168
2266
  const subItemsListRef = useRef(null);
2169
- const observerOptions = useMemo(() => ({ threshold: 1, root: subItemsListRef.current }), [subItemsListRef.current]);
2267
+ const observerOptions = { rootRef: subItemsListRef };
2170
2268
  const subItemsVisibilityHandlers = useMemo(() => subItems.map((_, index) => (isIntersecting) => {
2171
2269
  setVisibleItemsCount(isIntersecting
2172
2270
  ? handleIntersectionActivation(index)
@@ -3076,7 +3174,16 @@
3076
3174
  });
3077
3175
 
3078
3176
  const RollupItem = JSX(({ className = '', label = 'Развернуть', isExpanded, isFoldButtonOnTop = true, version = 'primary', ...rest }) => (jsx("div", { className: `border-b border-solid border-main-divider w-full ${className}`, children: jsx(Foldable, { isFoldButtonOnTop: isFoldButtonOnTop, unfoldedByDefault: isExpanded, renderFoldableSection: ({ isUnfolded }) => (jsx("div", { className: "box-border", children: jsx(FoldableSection, { className: `grid grid-cols-12 gap-1 border-box`, isUnfolded: isUnfolded, children: renderChildren(rest) }) })), renderFoldButton: ({ isUnfolded, onToggle }) => renderFoldButton({ isUnfolded, onToggle, label, version }) }) })));
3079
- RollupItem.childrenTypes = [];
3177
+ RollupItem.childrenTypes = {
3178
+ exclude: [
3179
+ 'RollupItem',
3180
+ 'Accordion',
3181
+ 'AccordionItem',
3182
+ 'OtherProducts',
3183
+ 'OtherProductsItem',
3184
+ 'VerticalLayout',
3185
+ ],
3186
+ };
3080
3187
  const renderFoldButton = ({ isUnfolded, onToggle, label, version }) => {
3081
3188
  const iconsPrimary = ['PlusIcon', 'MinusIcon'];
3082
3189
  const iconsSecondary = ['ArrowDownIcon', 'ArrowUpIcon'];
@@ -3640,7 +3747,6 @@
3640
3747
  const Blocks = {
3641
3748
  Accordion,
3642
3749
  AccordionItem,
3643
- CarouselLinks,
3644
3750
  BenefitsBlock,
3645
3751
  BusinessBlock,
3646
3752
  Bonus,
@@ -3649,6 +3755,8 @@
3649
3755
  Calculator,
3650
3756
  Carousel,
3651
3757
  CarouselCard,
3758
+ CarouselLinks,
3759
+ CarouselProgramsCard,
3652
3760
  CarouselTariffsCard,
3653
3761
  Catalog,
3654
3762
  ContactsBlock,
@@ -3755,7 +3863,7 @@
3755
3863
  return (jsx("div", { className: "flex items-end absolute bottom-0 right-0 h-full pointer-events-none", children: jsx(LikeControl, { className: "rounded-tl-lg sticky bottom-0 pointer-events-auto" }) }));
3756
3864
  }
3757
3865
 
3758
- const packageVersion = "0.6.35";
3866
+ const packageVersion = "0.6.36";
3759
3867
 
3760
3868
  exports.Blocks = Blocks;
3761
3869
  exports.ContentPage = ContentPage;