@redneckz/wildless-cms-uni-blocks 0.3.3 → 0.3.6

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 (463) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +51 -36
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/cosmos-static/icons/ActualBalanceIcon.svg +1 -0
  5. package/cosmos-static/icons/AppleIcon.svg +1 -0
  6. package/cosmos-static/icons/AtmIcon.svg +1 -0
  7. package/cosmos-static/icons/BankIcon.svg +1 -0
  8. package/cosmos-static/icons/BurgerIcon.svg +1 -0
  9. package/cosmos-static/icons/BurgerIconWhite.svg +1 -0
  10. package/cosmos-static/icons/Calendar2Icon.svg +1 -0
  11. package/cosmos-static/icons/CalendarCircleIcon.svg +1 -0
  12. package/cosmos-static/icons/CalendarIcon.svg +1 -0
  13. package/cosmos-static/icons/CalendarTickIcon.svg +1 -0
  14. package/cosmos-static/icons/CalendarWhiteIcon.svg +1 -0
  15. package/cosmos-static/icons/CardIcon.svg +1 -0
  16. package/cosmos-static/icons/CardPosIcon.svg +1 -0
  17. package/cosmos-static/icons/CardTickIcon.svg +1 -0
  18. package/cosmos-static/icons/CardWithGemIcon.svg +1 -0
  19. package/cosmos-static/icons/ChartSquareIcon.svg +1 -0
  20. package/cosmos-static/icons/ClockIcon.svg +1 -0
  21. package/cosmos-static/icons/CloseIcon.svg +1 -0
  22. package/cosmos-static/icons/ComfortableCompIcon.svg +1 -0
  23. package/cosmos-static/icons/CreditCardsIcon.svg +1 -0
  24. package/cosmos-static/icons/DiscountShapeIcon.svg +1 -0
  25. package/cosmos-static/icons/DocIcon.svg +1 -0
  26. package/cosmos-static/icons/DocIconMonoColor.svg +1 -0
  27. package/cosmos-static/icons/DocumentTextIcon.svg +1 -0
  28. package/cosmos-static/icons/DollarIcon.svg +1 -0
  29. package/cosmos-static/icons/EarthIcon.svg +1 -0
  30. package/cosmos-static/icons/EmptyWalletChangeIcon.svg +1 -0
  31. package/cosmos-static/icons/EmptyWalletIcon.svg +1 -0
  32. package/cosmos-static/icons/EmptyWalletWhiteIcon.svg +1 -0
  33. package/cosmos-static/icons/EuroIcon.svg +1 -0
  34. package/cosmos-static/icons/GeolocationIcon.svg +1 -0
  35. package/cosmos-static/icons/GlassIcon.svg +1 -0
  36. package/cosmos-static/icons/GlobalIcon.svg +1 -0
  37. package/cosmos-static/icons/GridIcon.svg +1 -0
  38. package/cosmos-static/icons/GridIconWhite.svg +1 -0
  39. package/cosmos-static/icons/InterestGrowthIcon.svg +1 -0
  40. package/cosmos-static/icons/InterestIcon.svg +1 -0
  41. package/cosmos-static/icons/JCBIcon.svg +1 -0
  42. package/cosmos-static/icons/LoupeIcon.svg +1 -0
  43. package/cosmos-static/icons/MasterCardIcon.svg +1 -0
  44. package/cosmos-static/icons/MinusIcon.svg +1 -0
  45. package/cosmos-static/icons/MirIcon.svg +1 -0
  46. package/cosmos-static/icons/MoneyIcon.svg +1 -0
  47. package/cosmos-static/icons/MoneyInsuranceIcon.svg +1 -0
  48. package/cosmos-static/icons/MonitorMobileIcon.svg +1 -0
  49. package/cosmos-static/icons/NewDocIcon.svg +1 -0
  50. package/cosmos-static/icons/OfficeIcon.svg +1 -0
  51. package/cosmos-static/icons/OkIcon.svg +1 -0
  52. package/cosmos-static/icons/PassSendIcon.svg +1 -0
  53. package/cosmos-static/icons/PercentageRoundIcon.svg +1 -0
  54. package/cosmos-static/icons/PercentageSquareIcon.svg +1 -0
  55. package/cosmos-static/icons/PercentageSquareWhiteIcon.svg +1 -0
  56. package/cosmos-static/icons/PersonalCardIcon.svg +1 -0
  57. package/cosmos-static/icons/PlayMarketIcon.svg +1 -0
  58. package/cosmos-static/icons/PlusIcon.svg +1 -0
  59. package/cosmos-static/icons/Profile2UserIcon.svg +1 -0
  60. package/cosmos-static/icons/ProfileIcon.svg +1 -0
  61. package/cosmos-static/icons/RoundRubleIcon.svg +1 -0
  62. package/cosmos-static/icons/SafeIcon.svg +1 -0
  63. package/cosmos-static/icons/ShieldTickIcon.svg +1 -0
  64. package/cosmos-static/icons/SignDocsIcon.svg +1 -0
  65. package/cosmos-static/icons/SmallClockIcon.svg +1 -0
  66. package/cosmos-static/icons/TelegramIcon.svg +1 -0
  67. package/cosmos-static/icons/UnionPayIcon.svg +1 -0
  68. package/cosmos-static/icons/UserTickIcon.svg +1 -0
  69. package/cosmos-static/icons/VKIcon.svg +1 -0
  70. package/cosmos-static/icons/VisaIcon.svg +1 -0
  71. package/cosmos-static/icons/WalletAdd2Icon.svg +1 -0
  72. package/cosmos-static/icons/WalletAddIcon.svg +1 -0
  73. package/cosmos-static/icons/WalletIcon.svg +1 -0
  74. package/cosmos-static/icons/WalletWithMoneyIcon.svg +1 -0
  75. package/dist/components/Accordion/utils/isActiveHandler.js +1 -1
  76. package/dist/components/Accordion/utils/isActiveHandler.js.map +1 -1
  77. package/dist/components/BaseTile/BaseTile.js +1 -1
  78. package/dist/components/BaseTile/BaseTile.js.map +1 -1
  79. package/dist/components/Blocks.d.ts +0 -1
  80. package/dist/components/Blocks.js +0 -2
  81. package/dist/components/Blocks.js.map +1 -1
  82. package/dist/components/Blocks.mobile.d.ts +4 -2
  83. package/dist/components/Blocks.mobile.js +7 -3
  84. package/dist/components/Blocks.mobile.js.map +1 -1
  85. package/dist/components/ContentPage/ContentPage.js +2 -2
  86. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  87. package/dist/components/ContentPage/ContentPageHead.js +4 -2
  88. package/dist/components/ContentPage/ContentPageHead.js.map +1 -1
  89. package/dist/components/ContentPage/isBlockInRegistry.d.ts +1 -2
  90. package/dist/components/ContentPage/isBlockInRegistry.js +2 -2
  91. package/dist/components/ContentPage/isBlockInRegistry.js.map +1 -1
  92. package/dist/components/ContentPage/normalizeBlock.d.ts +1 -1
  93. package/dist/components/ContentPage/normalizePage.js +1 -1
  94. package/dist/components/ContentPage/normalizePage.js.map +1 -1
  95. package/dist/components/ContentPage/normalizePage.mobile.js +1 -1
  96. package/dist/components/ContentPage/normalizePage.mobile.js.map +1 -1
  97. package/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  98. package/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  99. package/dist/components/Gallery/GalleryCardInner.js +15 -5
  100. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  101. package/dist/components/Header/Header.mobile.js +1 -1
  102. package/dist/components/Header/Header.mobile.js.map +1 -1
  103. package/dist/components/Header/HeaderBurger.js +1 -1
  104. package/dist/components/Header/HeaderBurger.js.map +1 -1
  105. package/dist/components/Header/HeaderTop.js +1 -1
  106. package/dist/components/Header/HeaderTop.js.map +1 -1
  107. package/dist/components/Headline/HeadlineContent.d.ts +1 -1
  108. package/dist/components/LinkDocs/LinkDocsListItem.js +1 -1
  109. package/dist/components/LinkDocs/LinkDocsListItem.js.map +1 -1
  110. package/dist/components/LinkDocs/LinkDocsListItem.mobile.js +1 -1
  111. package/dist/components/LinkDocs/LinkDocsListItem.mobile.js.map +1 -1
  112. package/dist/components/MobileAppTile/MobileAppTileContent.d.ts +1 -1
  113. package/dist/components/Placeholder/Placeholder.js +8 -3
  114. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  115. package/dist/components/Placeholder/PlaceholderContent.d.ts +2 -1
  116. package/dist/components/ProductBlock/ProductBlockContent.d.ts +1 -1
  117. package/dist/components/ProductBlock/ProductBlockInner.js +1 -1
  118. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  119. package/dist/components/ProductBlock/ProductBlockInner.mobile.js +4 -1
  120. package/dist/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
  121. package/dist/components/ProductBlock/renderBenefit.mobile.js +1 -1
  122. package/dist/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
  123. package/dist/components/ProductGallery/ProductGallery.mobile.js +3 -14
  124. package/dist/components/ProductGallery/ProductGallery.mobile.js.map +1 -1
  125. package/dist/components/ProductGallery/ProductGalleryBlock.mobile.js +1 -1
  126. package/dist/components/ProductTile/ProductTileContent.d.ts +1 -1
  127. package/dist/components/PromoTile/PromoTileContent.d.ts +1 -1
  128. package/dist/components/StepsBlock/StepsBlock.mobile.js +1 -1
  129. package/dist/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  130. package/dist/components/Tile/Tile.js +5 -1
  131. package/dist/components/Tile/Tile.js.map +1 -1
  132. package/dist/components/Tile/TileContent.d.ts +1 -1
  133. package/dist/types.d.ts +8 -2
  134. package/dist/ui-kit/BlockItem/BlockItem.js +3 -3
  135. package/dist/ui-kit/BlockItem/BlockItem.js.map +1 -1
  136. package/dist/ui-kit/Description/Description.d.ts +4 -1
  137. package/dist/ui-kit/Description/Description.js +1 -1
  138. package/dist/ui-kit/Description/Description.js.map +1 -1
  139. package/{lib/ui-kit/Description/DescriptionProps.d.ts → dist/ui-kit/Description/DescriptionContent.d.ts} +0 -3
  140. package/dist/ui-kit/Description/{DescriptionProps.js → DescriptionContent.js} +1 -1
  141. package/dist/ui-kit/Description/DescriptionContent.js.map +1 -0
  142. package/dist/ui-kit/Heading/Heading.js +1 -1
  143. package/dist/ui-kit/Heading/Heading.js.map +1 -1
  144. package/dist/ui-kit/Heading/Heading.mobile.js +1 -1
  145. package/dist/ui-kit/Heading/Heading.mobile.js.map +1 -1
  146. package/dist/ui-kit/List/ListItem.js +2 -2
  147. package/dist/ui-kit/List/ListItem.js.map +1 -1
  148. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  149. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  150. package/dist/ui-kit/SwipeListControl/SwipeListControlItem.js +1 -1
  151. package/dist/ui-kit/SwipeListControl/SwipeListControlItem.js.map +1 -1
  152. package/lib/common.css +1 -1
  153. package/lib/components/Accordion/utils/isActiveHandler.js +1 -1
  154. package/lib/components/Accordion/utils/isActiveHandler.js.map +1 -1
  155. package/lib/components/BaseTile/BaseTile.js +1 -1
  156. package/lib/components/BaseTile/BaseTile.js.map +1 -1
  157. package/lib/components/Blocks.d.ts +0 -1
  158. package/lib/components/Blocks.js +0 -2
  159. package/lib/components/Blocks.js.map +1 -1
  160. package/lib/components/Blocks.mobile.d.ts +4 -2
  161. package/lib/components/Blocks.mobile.js +7 -3
  162. package/lib/components/Blocks.mobile.js.map +1 -1
  163. package/lib/components/ContentPage/ContentPage.js +2 -2
  164. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  165. package/lib/components/ContentPage/ContentPageHead.js +4 -2
  166. package/lib/components/ContentPage/ContentPageHead.js.map +1 -1
  167. package/lib/components/ContentPage/isBlockInRegistry.d.ts +1 -2
  168. package/lib/components/ContentPage/isBlockInRegistry.js +2 -2
  169. package/lib/components/ContentPage/isBlockInRegistry.js.map +1 -1
  170. package/lib/components/ContentPage/normalizeBlock.d.ts +1 -1
  171. package/lib/components/ContentPage/normalizePage.js +1 -1
  172. package/lib/components/ContentPage/normalizePage.js.map +1 -1
  173. package/lib/components/ContentPage/normalizePage.mobile.js +1 -1
  174. package/lib/components/ContentPage/normalizePage.mobile.js.map +1 -1
  175. package/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  176. package/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  177. package/lib/components/Gallery/GalleryCardInner.js +15 -5
  178. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  179. package/lib/components/Header/Header.mobile.js +1 -1
  180. package/lib/components/Header/Header.mobile.js.map +1 -1
  181. package/lib/components/Header/HeaderBurger.js +1 -1
  182. package/lib/components/Header/HeaderBurger.js.map +1 -1
  183. package/lib/components/Header/HeaderTop.js +1 -1
  184. package/lib/components/Header/HeaderTop.js.map +1 -1
  185. package/lib/components/Headline/HeadlineContent.d.ts +1 -1
  186. package/lib/components/LinkDocs/LinkDocsListItem.js +1 -1
  187. package/lib/components/LinkDocs/LinkDocsListItem.js.map +1 -1
  188. package/lib/components/LinkDocs/LinkDocsListItem.mobile.js +1 -1
  189. package/lib/components/LinkDocs/LinkDocsListItem.mobile.js.map +1 -1
  190. package/lib/components/MobileAppTile/MobileAppTileContent.d.ts +1 -1
  191. package/lib/components/Placeholder/Placeholder.fixture.mobile.d.ts +2 -0
  192. package/lib/components/Placeholder/Placeholder.js +9 -4
  193. package/lib/components/Placeholder/Placeholder.js.map +1 -1
  194. package/lib/components/Placeholder/PlaceholderContent.d.ts +2 -1
  195. package/lib/components/ProductBlock/ProductBlockContent.d.ts +1 -1
  196. package/lib/components/ProductBlock/ProductBlockInner.js +1 -1
  197. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  198. package/lib/components/ProductBlock/ProductBlockInner.mobile.js +4 -1
  199. package/lib/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
  200. package/lib/components/ProductBlock/renderBenefit.mobile.js +1 -1
  201. package/lib/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
  202. package/lib/components/ProductGallery/ProductGallery.fixture.mobile.d.ts +1 -0
  203. package/lib/components/ProductGallery/ProductGallery.mobile.js +4 -15
  204. package/lib/components/ProductGallery/ProductGallery.mobile.js.map +1 -1
  205. package/lib/components/ProductGallery/ProductGalleryBlock.mobile.js +1 -1
  206. package/lib/components/ProductTile/ProductTileContent.d.ts +1 -1
  207. package/lib/components/PromoTile/PromoTileContent.d.ts +1 -1
  208. package/lib/components/StepsBlock/StepsBlock.mobile.js +1 -1
  209. package/lib/components/StepsBlock/StepsBlock.mobile.js.map +1 -1
  210. package/lib/components/Tile/Tile.js +5 -1
  211. package/lib/components/Tile/Tile.js.map +1 -1
  212. package/lib/components/Tile/TileContent.d.ts +1 -1
  213. package/lib/types.d.ts +8 -2
  214. package/lib/ui-kit/BlockItem/BlockItem.js +3 -3
  215. package/lib/ui-kit/BlockItem/BlockItem.js.map +1 -1
  216. package/lib/ui-kit/Description/Description.d.ts +4 -1
  217. package/lib/ui-kit/Description/Description.js +1 -1
  218. package/lib/ui-kit/Description/Description.js.map +1 -1
  219. package/{mobile/dist/ui-kit/Description/DescriptionProps.d.ts → lib/ui-kit/Description/DescriptionContent.d.ts} +0 -3
  220. package/lib/ui-kit/Description/DescriptionContent.js +2 -0
  221. package/lib/ui-kit/Description/DescriptionContent.js.map +1 -0
  222. package/lib/ui-kit/Heading/Heading.js +1 -1
  223. package/lib/ui-kit/Heading/Heading.js.map +1 -1
  224. package/lib/ui-kit/Heading/Heading.mobile.js +1 -1
  225. package/lib/ui-kit/Heading/Heading.mobile.js.map +1 -1
  226. package/lib/ui-kit/List/ListItem.js +2 -2
  227. package/lib/ui-kit/List/ListItem.js.map +1 -1
  228. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  229. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  230. package/lib/ui-kit/SwipeListControl/SwipeListControlItem.js +1 -1
  231. package/lib/ui-kit/SwipeListControl/SwipeListControlItem.js.map +1 -1
  232. package/mobile/bundle/bundle.umd.js +261 -252
  233. package/mobile/bundle/bundle.umd.min.js +1 -1
  234. package/mobile/dist/components/Accordion/utils/isActiveHandler.js +1 -1
  235. package/mobile/dist/components/Accordion/utils/isActiveHandler.js.map +1 -1
  236. package/mobile/dist/components/BaseTile/BaseTile.js +1 -1
  237. package/mobile/dist/components/BaseTile/BaseTile.js.map +1 -1
  238. package/mobile/dist/components/Blocks.d.ts +4 -2
  239. package/mobile/dist/components/Blocks.js +7 -3
  240. package/mobile/dist/components/Blocks.js.map +1 -1
  241. package/mobile/dist/components/ContentPage/ContentPage.js +2 -2
  242. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  243. package/mobile/dist/components/ContentPage/ContentPageHead.js +4 -2
  244. package/mobile/dist/components/ContentPage/ContentPageHead.js.map +1 -1
  245. package/mobile/dist/components/ContentPage/isBlockInRegistry.d.ts +1 -2
  246. package/mobile/dist/components/ContentPage/isBlockInRegistry.js +2 -2
  247. package/mobile/dist/components/ContentPage/isBlockInRegistry.js.map +1 -1
  248. package/mobile/dist/components/ContentPage/normalizePage.js +1 -1
  249. package/mobile/dist/components/ContentPage/normalizePage.js.map +1 -1
  250. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  251. package/mobile/dist/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  252. package/mobile/dist/components/Gallery/GalleryCardInner.js +15 -5
  253. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  254. package/mobile/dist/components/Header/Header.js +1 -1
  255. package/mobile/dist/components/Header/Header.js.map +1 -1
  256. package/mobile/dist/components/Header/HeaderBurger.js +1 -1
  257. package/mobile/dist/components/Header/HeaderBurger.js.map +1 -1
  258. package/mobile/dist/components/Header/HeaderTop.js +1 -1
  259. package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
  260. package/mobile/dist/components/Headline/HeadlineContent.d.ts +1 -1
  261. package/mobile/dist/components/LinkDocs/LinkDocsListItem.js +1 -1
  262. package/mobile/dist/components/LinkDocs/LinkDocsListItem.js.map +1 -1
  263. package/mobile/dist/components/MobileAppTile/MobileAppTileContent.d.ts +1 -1
  264. package/mobile/dist/components/Placeholder/Placeholder.d.ts +1 -1
  265. package/mobile/dist/components/Placeholder/Placeholder.js +8 -3
  266. package/mobile/dist/components/Placeholder/Placeholder.js.map +1 -1
  267. package/mobile/dist/components/Placeholder/PlaceholderContent.d.ts +2 -1
  268. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +1 -1
  269. package/mobile/dist/components/ProductBlock/ProductBlockInner.js +4 -1
  270. package/mobile/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  271. package/mobile/dist/components/ProductBlock/renderBenefit.js +1 -1
  272. package/mobile/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  273. package/mobile/dist/components/ProductGallery/ProductGallery.js +3 -14
  274. package/mobile/dist/components/ProductGallery/ProductGallery.js.map +1 -1
  275. package/mobile/dist/components/ProductGallery/ProductGalleryBlock.js +1 -1
  276. package/mobile/dist/components/ProductTile/ProductTileContent.d.ts +1 -1
  277. package/mobile/dist/components/PromoTile/PromoTileContent.d.ts +1 -1
  278. package/mobile/dist/components/StepsBlock/StepsBlock.js +1 -1
  279. package/mobile/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  280. package/mobile/dist/components/Tile/Tile.js +5 -1
  281. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  282. package/mobile/dist/components/Tile/TileContent.d.ts +1 -1
  283. package/mobile/dist/types.d.ts +8 -2
  284. package/mobile/dist/ui-kit/BlockItem/BlockItem.js +3 -3
  285. package/mobile/dist/ui-kit/BlockItem/BlockItem.js.map +1 -1
  286. package/mobile/dist/ui-kit/Description/Description.d.ts +4 -1
  287. package/mobile/dist/ui-kit/Description/Description.js +1 -1
  288. package/mobile/dist/ui-kit/Description/Description.js.map +1 -1
  289. package/mobile/{lib/ui-kit/Description/DescriptionProps.d.ts → dist/ui-kit/Description/DescriptionContent.d.ts} +0 -3
  290. package/mobile/dist/ui-kit/Description/{DescriptionProps.js → DescriptionContent.js} +1 -1
  291. package/mobile/dist/ui-kit/Description/DescriptionContent.js.map +1 -0
  292. package/mobile/dist/ui-kit/Heading/Heading.js +1 -1
  293. package/mobile/dist/ui-kit/Heading/Heading.js.map +1 -1
  294. package/mobile/dist/ui-kit/List/ListItem.js +2 -2
  295. package/mobile/dist/ui-kit/List/ListItem.js.map +1 -1
  296. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  297. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  298. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlItem.js +1 -1
  299. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlItem.js.map +1 -1
  300. package/mobile/lib/components/Accordion/utils/isActiveHandler.js +1 -1
  301. package/mobile/lib/components/Accordion/utils/isActiveHandler.js.map +1 -1
  302. package/mobile/lib/components/BaseTile/BaseTile.js +1 -1
  303. package/mobile/lib/components/BaseTile/BaseTile.js.map +1 -1
  304. package/mobile/lib/components/Blocks.d.ts +4 -2
  305. package/mobile/lib/components/Blocks.js +7 -3
  306. package/mobile/lib/components/Blocks.js.map +1 -1
  307. package/mobile/lib/components/ContentPage/ContentPage.js +2 -2
  308. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  309. package/mobile/lib/components/ContentPage/ContentPageHead.js +4 -2
  310. package/mobile/lib/components/ContentPage/ContentPageHead.js.map +1 -1
  311. package/mobile/lib/components/ContentPage/isBlockInRegistry.d.ts +1 -2
  312. package/mobile/lib/components/ContentPage/isBlockInRegistry.js +2 -2
  313. package/mobile/lib/components/ContentPage/isBlockInRegistry.js.map +1 -1
  314. package/mobile/lib/components/ContentPage/normalizePage.js +1 -1
  315. package/mobile/lib/components/ContentPage/normalizePage.js.map +1 -1
  316. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js +1 -1
  317. package/mobile/lib/components/ExchangeRateTile/ExchangeRateTile.js.map +1 -1
  318. package/mobile/lib/components/Gallery/GalleryCardInner.js +15 -5
  319. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  320. package/mobile/lib/components/Header/Header.js +1 -1
  321. package/mobile/lib/components/Header/Header.js.map +1 -1
  322. package/mobile/lib/components/Header/HeaderBurger.js +1 -1
  323. package/mobile/lib/components/Header/HeaderBurger.js.map +1 -1
  324. package/mobile/lib/components/Header/HeaderTop.js +1 -1
  325. package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
  326. package/mobile/lib/components/Headline/HeadlineContent.d.ts +1 -1
  327. package/mobile/lib/components/LinkDocs/LinkDocsListItem.js +1 -1
  328. package/mobile/lib/components/LinkDocs/LinkDocsListItem.js.map +1 -1
  329. package/mobile/lib/components/MobileAppTile/MobileAppTileContent.d.ts +1 -1
  330. package/mobile/lib/components/Placeholder/Placeholder.d.ts +1 -1
  331. package/mobile/lib/components/Placeholder/Placeholder.js +9 -4
  332. package/mobile/lib/components/Placeholder/Placeholder.js.map +1 -1
  333. package/mobile/lib/components/Placeholder/PlaceholderContent.d.ts +2 -1
  334. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +1 -1
  335. package/mobile/lib/components/ProductBlock/ProductBlockInner.js +4 -1
  336. package/mobile/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  337. package/mobile/lib/components/ProductBlock/renderBenefit.js +1 -1
  338. package/mobile/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  339. package/mobile/lib/components/ProductGallery/ProductGallery.js +4 -15
  340. package/mobile/lib/components/ProductGallery/ProductGallery.js.map +1 -1
  341. package/mobile/lib/components/ProductGallery/ProductGalleryBlock.js +1 -1
  342. package/mobile/lib/components/ProductTile/ProductTileContent.d.ts +1 -1
  343. package/mobile/lib/components/PromoTile/PromoTileContent.d.ts +1 -1
  344. package/mobile/lib/components/StepsBlock/StepsBlock.js +1 -1
  345. package/mobile/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  346. package/mobile/lib/components/Tile/Tile.js +5 -1
  347. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  348. package/mobile/lib/components/Tile/TileContent.d.ts +1 -1
  349. package/mobile/lib/types.d.ts +8 -2
  350. package/mobile/lib/ui-kit/BlockItem/BlockItem.js +3 -3
  351. package/mobile/lib/ui-kit/BlockItem/BlockItem.js.map +1 -1
  352. package/mobile/lib/ui-kit/Description/Description.d.ts +4 -1
  353. package/mobile/lib/ui-kit/Description/Description.js +1 -1
  354. package/mobile/lib/ui-kit/Description/Description.js.map +1 -1
  355. package/{dist/ui-kit/Description/DescriptionProps.d.ts → mobile/lib/ui-kit/Description/DescriptionContent.d.ts} +0 -3
  356. package/mobile/lib/ui-kit/Description/DescriptionContent.js +2 -0
  357. package/mobile/lib/ui-kit/Description/DescriptionContent.js.map +1 -0
  358. package/mobile/lib/ui-kit/Heading/Heading.js +1 -1
  359. package/mobile/lib/ui-kit/Heading/Heading.js.map +1 -1
  360. package/mobile/lib/ui-kit/List/ListItem.js +2 -2
  361. package/mobile/lib/ui-kit/List/ListItem.js.map +1 -1
  362. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +1 -1
  363. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  364. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlItem.js +1 -1
  365. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlItem.js.map +1 -1
  366. package/mobile/src/components/Accordion/utils/isActiveHandler.ts +1 -2
  367. package/mobile/src/components/BaseTile/BaseTile.tsx +2 -2
  368. package/mobile/src/components/Blocks.ts +7 -3
  369. package/mobile/src/components/ContentPage/ContentPage.page.json +54 -47
  370. package/mobile/src/components/ContentPage/ContentPage.tsx +2 -2
  371. package/mobile/src/components/ContentPage/ContentPageHead.tsx +14 -1
  372. package/mobile/src/components/ContentPage/isBlockInRegistry.ts +2 -4
  373. package/mobile/src/components/ContentPage/normalizePage.ts +4 -1
  374. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.tsx +1 -1
  375. package/mobile/src/components/Gallery/GalleryCardInner.tsx +23 -15
  376. package/mobile/src/components/Header/Header.tsx +1 -1
  377. package/mobile/src/components/Header/HeaderBurger.tsx +2 -2
  378. package/mobile/src/components/Header/HeaderTop.tsx +6 -2
  379. package/mobile/src/components/Headline/HeadlineContent.ts +1 -1
  380. package/mobile/src/components/LinkDocs/LinkDocsListItem.tsx +1 -1
  381. package/mobile/src/components/MobileAppTile/MobileAppTileContent.ts +1 -1
  382. package/mobile/src/components/Placeholder/Placeholder.tsx +36 -14
  383. package/mobile/src/components/Placeholder/PlaceholderContent.ts +2 -1
  384. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +1 -1
  385. package/mobile/src/components/ProductBlock/ProductBlockInner.tsx +17 -11
  386. package/mobile/src/components/ProductBlock/renderBenefit.tsx +2 -2
  387. package/mobile/src/components/ProductGallery/ProductGallery.tsx +12 -49
  388. package/mobile/src/components/ProductGallery/ProductGalleryBlock.tsx +1 -1
  389. package/mobile/src/components/ProductTile/ProductTileContent.ts +1 -1
  390. package/mobile/src/components/PromoTile/PromoTileContent.ts +1 -1
  391. package/mobile/src/components/StepsBlock/StepsBlock.tsx +1 -1
  392. package/mobile/src/components/Tile/Tile.tsx +7 -4
  393. package/mobile/src/components/Tile/TileContent.ts +1 -1
  394. package/mobile/src/types.ts +9 -2
  395. package/mobile/src/ui-kit/BlockItem/BlockItem.tsx +4 -4
  396. package/mobile/src/ui-kit/Description/Description.tsx +6 -2
  397. package/mobile/src/ui-kit/Description/{DescriptionProps.ts → DescriptionContent.ts} +0 -4
  398. package/mobile/src/ui-kit/Heading/Heading.tsx +1 -1
  399. package/mobile/src/ui-kit/List/ListItem.tsx +3 -3
  400. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
  401. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlItem.tsx +5 -1
  402. package/package.json +4 -5
  403. package/src/components/Accordion/utils/isActiveHandler.ts +1 -2
  404. package/src/components/BaseTile/BaseTile.tsx +2 -2
  405. package/src/components/Blocks.mobile.ts +7 -3
  406. package/src/components/Blocks.ts +0 -2
  407. package/src/components/ComparisonTable/ComparisonTable.fixture.tsx +0 -1
  408. package/src/components/ContentPage/ContentPage.page.json +54 -47
  409. package/src/components/ContentPage/ContentPage.tsx +2 -2
  410. package/src/components/ContentPage/ContentPageHead.tsx +14 -1
  411. package/src/components/ContentPage/isBlockInRegistry.ts +2 -4
  412. package/src/components/ContentPage/normalizePage.mobile.ts +4 -1
  413. package/src/components/ContentPage/normalizePage.ts +1 -1
  414. package/src/components/ExchangeRateTile/ExchangeRateTile.tsx +1 -1
  415. package/src/components/Gallery/Gallery.fixture.mobile.tsx +1 -1
  416. package/src/components/Gallery/GalleryCardInner.tsx +23 -15
  417. package/src/components/Header/Header.mobile.tsx +1 -1
  418. package/src/components/Header/HeaderBurger.tsx +2 -2
  419. package/src/components/Header/HeaderTop.tsx +6 -2
  420. package/src/components/Headline/HeadlineContent.ts +1 -1
  421. package/src/components/LinkDocs/LinkDocsListItem.mobile.tsx +1 -1
  422. package/src/components/LinkDocs/LinkDocsListItem.tsx +1 -1
  423. package/src/components/MobileAppTile/MobileAppTileContent.ts +1 -1
  424. package/src/components/Placeholder/Placeholder.fixture.mobile.tsx +9 -0
  425. package/src/components/Placeholder/Placeholder.tsx +35 -8
  426. package/src/components/Placeholder/PlaceholderContent.ts +2 -1
  427. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +8 -2
  428. package/src/components/ProductBlock/ProductBlockContent.ts +1 -1
  429. package/src/components/ProductBlock/ProductBlockInner.mobile.tsx +17 -11
  430. package/src/components/ProductBlock/ProductBlockInner.tsx +2 -2
  431. package/src/components/ProductBlock/renderBenefit.mobile.tsx +2 -2
  432. package/src/components/ProductGallery/ProductGallery.fixture.mobile.tsx +106 -0
  433. package/src/components/ProductGallery/ProductGallery.fixture.tsx +2 -2
  434. package/src/components/ProductGallery/ProductGallery.mobile.tsx +12 -49
  435. package/src/components/ProductGallery/ProductGalleryBlock.mobile.tsx +1 -1
  436. package/src/components/ProductTile/ProductTileContent.ts +1 -1
  437. package/src/components/PromoTile/PromoTileContent.ts +1 -1
  438. package/src/components/StepsBlock/StepsBlock.mobile.tsx +1 -1
  439. package/src/components/Tile/Tile.tsx +7 -4
  440. package/src/components/Tile/TileContent.ts +1 -1
  441. package/src/types.ts +9 -2
  442. package/src/ui-kit/BlockItem/BlockItem.tsx +4 -4
  443. package/src/ui-kit/Description/Description.tsx +6 -2
  444. package/src/ui-kit/Description/{DescriptionProps.ts → DescriptionContent.ts} +0 -4
  445. package/src/ui-kit/Heading/Heading.fixture.mobile.tsx +0 -1
  446. package/src/ui-kit/Heading/Heading.mobile.tsx +1 -1
  447. package/src/ui-kit/Heading/Heading.tsx +3 -1
  448. package/src/ui-kit/List/ListItem.tsx +3 -3
  449. package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +1 -1
  450. package/src/ui-kit/SwipeListControl/SwipeListControlItem.tsx +5 -1
  451. package/dist/components/Placeholder/Placeholder.mobile.d.ts +0 -6
  452. package/dist/components/Placeholder/Placeholder.mobile.js +0 -15
  453. package/dist/components/Placeholder/Placeholder.mobile.js.map +0 -1
  454. package/dist/ui-kit/Description/DescriptionProps.js.map +0 -1
  455. package/lib/components/Placeholder/Placeholder.mobile.d.ts +0 -6
  456. package/lib/components/Placeholder/Placeholder.mobile.js +0 -13
  457. package/lib/components/Placeholder/Placeholder.mobile.js.map +0 -1
  458. package/lib/ui-kit/Description/DescriptionProps.js +0 -2
  459. package/lib/ui-kit/Description/DescriptionProps.js.map +0 -1
  460. package/mobile/dist/ui-kit/Description/DescriptionProps.js.map +0 -1
  461. package/mobile/lib/ui-kit/Description/DescriptionProps.js +0 -2
  462. package/mobile/lib/ui-kit/Description/DescriptionProps.js.map +0 -1
  463. package/src/components/Placeholder/Placeholder.mobile.tsx +0 -35
@@ -186,62 +186,22 @@
186
186
  };
187
187
  }
188
188
 
189
- const isURL = (href) => href?.includes('//');
190
- const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
191
- const getOrigin = (href) => {
192
- if (!href || !isURL(href)) {
193
- return undefined;
194
- }
195
- const url = href;
196
- const protoSeparator = '//';
197
- const endOfProto = url.indexOf(protoSeparator);
198
- const endOfOrigin = url.indexOf('/', endOfProto + protoSeparator.length);
199
- return endOfOrigin !== -1 ? url.substring(0, endOfOrigin) : url;
200
- };
201
-
202
- var url = /*#__PURE__*/Object.freeze({
203
- __proto__: null,
204
- isURL: isURL,
205
- withoutQuery: withoutQuery,
206
- getOrigin: getOrigin
207
- });
208
-
209
- const MOBILE_URL_PATH = '/mobile';
210
- const withoutMobilePath = (href) => (href || '').replace(MOBILE_URL_PATH, '');
211
-
212
- const adjustHref = (href, router) => {
213
- if (!href) {
214
- return href;
215
- }
216
- const relativeHref = toRelativeHref(href, router) || '';
217
- const isMobilePage = router?.pathname.startsWith(MOBILE_URL_PATH);
218
- return isMobilePage && !isURL(relativeHref) ? `${MOBILE_URL_PATH}${relativeHref}` : relativeHref;
189
+ const HeadingClass = {
190
+ h1: 'text-m-title',
191
+ h2: 'text-m-title',
192
+ h3: 'text-m-title-md',
193
+ h4: 'text-m-title-xs',
194
+ h5: 'text-m-title-xs',
195
+ h6: 'text-m-title-xs',
219
196
  };
220
- const toRelativeHref = (href, router) => {
221
- if (!href) {
222
- return href;
197
+ const Heading = JSX((props) => {
198
+ const { className, headingType, title } = props;
199
+ if (!headingType) {
200
+ return;
223
201
  }
224
- const origin = getOrigin(router?.href);
225
- return origin ? href.replace(origin, '') || '/' : href;
226
- };
227
-
228
- const defaultHandlerDecorator = (handler) => handler;
229
- function useLink({ router, handlerDecorator = defaultHandlerDecorator, }, link) {
230
- const href = adjustHref(link.href, router);
231
- return {
232
- ...link,
233
- href,
234
- ariaLabel: link.text,
235
- onClick: handlerDecorator((ev) => {
236
- const isLocalHref = href && !isURL(href);
237
- const isLocalTarget = !link.target || link.target === '_self';
238
- if (isLocalHref && isLocalTarget) {
239
- ev.preventDefault();
240
- router.push(href);
241
- }
242
- }, link),
243
- };
244
- }
202
+ const Tag = headingType;
203
+ return (jsx(Tag, { className: `font-sans font-medium m-0 ${HeadingClass[headingType]} ${className || ''}`, children: title }));
204
+ });
245
205
 
246
206
  const projectSettings = new (class {
247
207
  _ = {
@@ -286,144 +246,6 @@
286
246
  return (jsx("img", { className: className, src: href, alt: alt, title: title, ...imgProps, "aria-hidden": "true" }));
287
247
  });
288
248
 
289
- const ButtonInner = JSX(({ text, aboveText, appendLeft, rounded, version }) => {
290
- const withoutText = !text && !aboveText && Boolean(appendLeft);
291
- const buttonInnerClasses = version !== 'link'
292
- ? `flex items-center justify-center
293
- ${withoutText ? 'h-12 w-12' : `px-8 gap-2 ${aboveText ? 'py-2' : 'py-3.5'}`} ${rounded ? 'rounded-full' : ''}`
294
- : null;
295
- return renderButtonInner({ buttonInnerClasses, appendLeft, withoutText, aboveText, text });
296
- });
297
- function renderButtonInner({ buttonInnerClasses, appendLeft, withoutText, aboveText, text }) {
298
- return (jsxs("div", { className: buttonInnerClasses, children: [appendLeft ? appendLeft : null, withoutText ? null : (jsxs("div", { children: [jsx("div", { className: "text-m-2xs text-left", children: aboveText }), jsx("div", { className: "text-m-button font-medium text-left", children: text })] }))] }));
299
- }
300
-
301
- const buttonStyleMap = {
302
- primary: 'text-white bg-primary-main hover:bg-primary-hover active:bg-primary-active',
303
- secondary: 'text-primary-main bg-secondary-light hover:bg-secondary-hover active:bg-secondary-active',
304
- link: 'text-primary-main',
305
- };
306
- const buttonDisabledStyleMap = {
307
- primary: 'bg-secondary-dark text-secondary-text',
308
- secondary: 'bg-secondary-light text-secondary-text',
309
- link: '',
310
- };
311
- const styleButton = 'w-full text-center font-sans select-none';
312
- const Button = JSX(({ className, text, aboveText, appendLeft, href, target, onClick, children, disabled, rounded, version = 'primary', ariaLabel, ...rest }) => {
313
- const buttonInner = children ?? (jsx(ButtonInner, { text: text, aboveText: aboveText, appendLeft: appendLeft, rounded: rounded, version: version }));
314
- if (disabled) {
315
- return (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: "-1", className: `inline-block ${styleButton} ${buttonDisabledStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, children: buttonInner }));
316
- }
317
- return (jsx("a", { className: `${styleButton} inline-block cursor-pointer no-underline ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: !href ? 'button' : 'link', ...rest, children: buttonInner }));
318
- });
319
-
320
- const ButtonSection = JSX(({ context, className = '', buttons }) => {
321
- const { handlerDecorator } = context;
322
- const router = context.useRouter();
323
- return buttons?.length ? (jsx("div", { className: `${className}`, children: buttons.map((button, index) => renderButton(useLink({ router, handlerDecorator }, button), index)) })) : null;
324
- });
325
- function renderButton({ icon, ...button }, i) {
326
- if (!button?.text)
327
- return;
328
- return icon ? (jsx(Button, { appendLeft: jsx(Icon, { name: icon, width: "24", height: "24", asSVG: true }), ...button }, String(i))) : (jsx(Button, { ...button }, String(i)));
329
- }
330
-
331
- const HeadingClass = {
332
- h1: 'text-m-title',
333
- h2: 'text-m-title',
334
- h3: 'text-m-title-md',
335
- h4: 'text-m-title-xs',
336
- h5: 'text-m-title-xs',
337
- h6: 'text-m-title-xs',
338
- };
339
- const Heading = JSX((props) => {
340
- const { className, headingType, title } = props;
341
- if (!headingType) {
342
- return;
343
- }
344
- const Tag = headingType;
345
- return (jsx(Tag, { className: `font-sans font-medium ${HeadingClass[headingType]} ${className || ''}`, children: title }));
346
- });
347
-
348
- const BaseTile = JSX(({ className = '', title, children, buttons, image }) => {
349
- return (jsxs("div", { className: `font-sans flex flex-col grow h-full items-start ${className}`, children: [title, jsxs("div", { className: `flex grow w-full justify-between`, children: [jsxs("div", { className: `flex flex-col justify-between`, children: [jsx("div", { children: children }), jsx("div", { children: buttons })] }), image] })] }));
350
- });
351
-
352
- const getColSpan = (className) => {
353
- const colSpanPrefix = 'col-span-';
354
- const colSpanStr = className.split(/\s+/).find((_) => _.startsWith(colSpanPrefix));
355
- return colSpanStr ? parseInt(colSpanStr.substring(colSpanPrefix.length), 10) : 12;
356
- };
357
-
358
- function getTileHeadingType(className = '') {
359
- const colSpan = getColSpan(className);
360
- if (colSpan <= 4) {
361
- return 'h4';
362
- }
363
- else if (colSpan <= 8) {
364
- return 'h3';
365
- }
366
- else {
367
- return 'h2';
368
- }
369
- }
370
-
371
- function getTileMinHeight(className = '') {
372
- const colSpan = getColSpan(className);
373
- if (colSpan <= 6) {
374
- return 'min-h-[300px]';
375
- }
376
- else if (colSpan <= 8) {
377
- return 'min-h-[320px]';
378
- }
379
- else {
380
- return 'min-h-[360px]';
381
- }
382
- }
383
-
384
- function getTileRightPadding(className = '') {
385
- const colSpan = getColSpan(className);
386
- if (colSpan <= 6) {
387
- return 'pr-9';
388
- }
389
- else if (colSpan <= 8) {
390
- return 'pr-[4.75rem]';
391
- }
392
- else {
393
- return 'pr-[9.4rem]';
394
- }
395
- }
396
-
397
- const CBR_EXCHANGE_RATE_URL = 'https://www.cbr-xml-daily.ru/daily_json.js';
398
- const CURRENCY_CODES = ['USD', 'EUR'];
399
- const CURRENCY_ICONS_MAP = {
400
- USD: 'DollarIcon',
401
- EUR: 'EuroIcon',
402
- };
403
- const buttons = [
404
- {
405
- text: 'Все показатели',
406
- href: 'https://cbr.ru/currency_base/daily/',
407
- version: 'secondary',
408
- },
409
- ];
410
- const ExchangeRateTile = JSX(({ className = '', context, title = 'Курсы обмена валют' }) => {
411
- const { data } = context.useAsyncData(CBR_EXCHANGE_RATE_URL, fetchExchangeRate);
412
- return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, children: jsx(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px]` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, children: jsxs("table", { children: [jsx("thead", { children: jsxs("tr", { children: [jsx(CurrencyTH, { children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), jsx(CurrencyTH, { className: "pl-11", children: "\u041A\u0443\u0440\u0441" })] }) }), jsx("tbody", { children: CURRENCY_CODES.map(renderCurrencyRow(data)) })] }) }) }));
413
- });
414
- const CurrencyTH = JSX(({ className = '', children }) => (jsx("th", { className: `text-left font-normal text-sm text-secondary-text ${className}`, children: children })));
415
- const CurrencyTD = JSX(({ className = '', children }) => (jsx("td", { className: `text-left font-normal text-base text-primary-text ${className}`, children: children })));
416
- async function fetchExchangeRate() {
417
- const response = await fetch(CBR_EXCHANGE_RATE_URL);
418
- return await response.json();
419
- }
420
- const currencyNumberFormat = new Intl.NumberFormat('ru', { style: 'currency', currency: 'RUB' });
421
- const formatCurrency = (value) => (value ? currencyNumberFormat.format(value) : '');
422
- const renderCurrencyRow = (data) => (code) => {
423
- const value = (data?.Valute || {})[code]?.Value;
424
- return (jsxs("tr", { children: [jsx(CurrencyTD, { className: "pt-4", children: jsxs("div", { className: "flex items-center", children: [jsx(Icon, { name: CURRENCY_ICONS_MAP[code], width: "24", height: "24" }), jsx("span", { className: "ml-2", children: code })] }) }), jsx(CurrencyTD, { className: "pt-4 pl-11", children: formatCurrency(value) })] }, code));
425
- };
426
-
427
249
  const Img = JSX(({ className = '', image }) => {
428
250
  if (!image) {
429
251
  return null;
@@ -484,7 +306,7 @@
484
306
  };
485
307
 
486
308
  const SwipeListControlItem = JSX(({ className = '', children, ...rest }) => {
487
- return (jsx("div", { className: `snap-center snap-always min-w-full ${className}`, role: "listitem", ...rest, children: children }));
309
+ return (jsx("div", { className: `snap-center snap-always min-w-full box-border ${className}`, role: "listitem", ...rest, children: children }));
488
310
  });
489
311
 
490
312
  // styles used to compensate outer container padding to get rid of clipping effect
@@ -517,7 +339,7 @@
517
339
  const BASE_DOT_OPACITY = 0.3;
518
340
  const ACTIVE_DOT_OPACITY_CHANGE = 0.7;
519
341
  const SwipeListControlDots = JSX(({ children, activeIndex, indexFraction, showDots }) => {
520
- return showDots && children?.length ? (jsx("div", { className: "flex gap-2 mx-auto mt-[22px] w-fit", children: children?.map((_, idx) => (jsx("div", { className: `${DOT_STYLES}`, style: getDotStyles(idx, activeIndex, indexFraction), "aria-hidden": true }, String(idx)))) })) : null;
342
+ return showDots && children?.length ? (jsx("div", { className: "flex gap-2 mx-auto mt-5 w-fit", children: children?.map((_, idx) => (jsx("div", { className: `${DOT_STYLES}`, style: getDotStyles(idx, activeIndex, indexFraction), "aria-hidden": true }, String(idx)))) })) : null;
521
343
  });
522
344
  const getDotStyles = (currentIdx, activeIndex, indexFraction) => {
523
345
  if (currentIdx < activeIndex || currentIdx > activeIndex + 1)
@@ -575,7 +397,7 @@
575
397
  return index !== -1 ? href.substring(index + 1) : '';
576
398
  };
577
399
 
578
- const LinkDocsListItem = JSX(({ className = '', doc, icon }) => (jsx(LinkDocsListItemBase, { className: `flex h-full ${className}`, iconClassName: "mr-3 min-w-6 min-h-6", doc: doc, icon: icon })));
400
+ const LinkDocsListItem = JSX(({ className = '', doc, icon }) => (jsx(LinkDocsListItemBase, { className: `flex h-full box-border ${className}`, iconClassName: "mr-3 min-w-6 min-h-6", doc: doc, icon: icon })));
579
401
 
580
402
  const LinkDocsHorizontalList = JSX(({ context, hasBorder = true, documents, icon }) => {
581
403
  return (jsx(SwipeListControl, { context: context, className: "text-m-sm text-primary-main", children: documents?.length
@@ -600,7 +422,7 @@
600
422
  return (jsxs("div", { className: "flex flex-row mb-8", children: [benefit.icon && (jsx(Icon, { className: "w-[48px] h-[48px] bg-main rounded-full box-border p-[12px]", name: benefit.icon, width: "48", height: "48", asSVG: true })), jsxs("div", { className: "flex gap-1 flex-col h-full ml-5 max-w-[490px]", children: [benefit.label && (jsx("div", { className: "font-medium text-primary-text text-xl m-0", children: benefit.label })), benefit.description && (jsx("div", { className: "font-normal text-sm text-secondary-text", children: benefit.description }))] })] }, String(i)));
601
423
  }
602
424
 
603
- const LIST_STYLE_CLASSES$1 = 'rounded-full inline-block mr-3';
425
+ const LIST_STYLE_CLASSES$1 = 'rounded-full inline-block mr-3 mt-2';
604
426
  const TEXT_STYLE_MAP$1 = {
605
427
  primary: 'text-primary-text',
606
428
  secondary: 'text-white',
@@ -612,7 +434,7 @@
612
434
  gray: 'bg-secondary-text',
613
435
  };
614
436
  const ListItem = JSX(({ className = '', isDotted = true, children, version = 'primary' }) => {
615
- return (jsxs("div", { className: `font-sans flex items-center ${className}`, role: "listitem", children: [isDotted && jsx("div", { className: getListStyle$1(version) }), jsx("span", { className: TEXT_STYLE_MAP$1[version], children: children })] }));
437
+ return (jsxs("div", { className: `font-sans flex items-start ${className}`, role: "listitem", children: [isDotted && jsx("div", { className: getListStyle$1(version) }), jsx("span", { className: `text-m-md ${TEXT_STYLE_MAP$1[version]}`, children: children })] }));
616
438
  });
617
439
  const getListStyle$1 = (version) => {
618
440
  const size = version === 'gray' ? 'w-[6px] h-[6px] min-w-[6px] min-h-[6px]' : 'w-2 h-2 min-w-2 min-h-2';
@@ -648,28 +470,180 @@
648
470
  };
649
471
  const TextBlock = JSX(({ title, description, blockVersion = 'primary', iconVersion, image, className = '', items, isDotted = true, }) => {
650
472
  const textBlockStyleMap = textBlockStyleMaps[blockVersion];
651
- return (jsxs("section", { className: `font-sans px-4 py-[18px] flex flex-col ${textBlockStyleMap.background} ${className}`, children: [iconVersion === 'small' ? renderIcon(textBlockStyleMap.icon) : null, iconVersion === 'big' ? renderImage(image) : null, jsxs("div", { className: "py-0.5", children: [title ? (jsx("div", { className: `font-medium text-base mb-1 ${textBlockStyleMap.title}`, children: title })) : null, description ? (jsx("div", { className: `text-sm ${textBlockStyleMap.description}`, children: description })) : null, items?.length ? (jsx(List, { items: items, isDotted: isDotted, version: "gray", className: "mt-1 text-m-sm text-secondary-text" })) : null] })] }));
473
+ return (jsxs("section", { className: `font-sans px-4 py-[18px] flex flex-col ${textBlockStyleMap.background} ${className}`, children: [iconVersion === 'small' ? renderIcon(textBlockStyleMap.icon) : null, iconVersion === 'big' ? renderImage$1(image) : null, jsxs("div", { className: "py-0.5", children: [title ? (jsx("div", { className: `font-medium text-base mb-1 ${textBlockStyleMap.title}`, children: title })) : null, description ? (jsx("div", { className: `text-sm ${textBlockStyleMap.description}`, children: description })) : null, items?.length ? (jsx(List, { items: items, isDotted: isDotted, version: "gray", className: "mt-1 text-m-sm text-secondary-text" })) : null] })] }));
652
474
  });
653
475
  function renderIcon(className) {
654
476
  return (jsx("div", { className: "mb-3", children: jsx("div", { className: `rounded-full h-4 w-4 text-center text-xs ${className}`, children: "i" }) }));
655
477
  }
656
- function renderImage(image) {
478
+ function renderImage$1(image) {
657
479
  return image?.src ? jsx(Img, { className: "pb-3 mr-auto", image: image }) : null;
658
480
  }
659
481
 
482
+ const isURL = (href) => href?.includes('//');
483
+ const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
484
+ const getOrigin = (href) => {
485
+ if (!href || !isURL(href)) {
486
+ return undefined;
487
+ }
488
+ const url = href;
489
+ const protoSeparator = '//';
490
+ const endOfProto = url.indexOf(protoSeparator);
491
+ const endOfOrigin = url.indexOf('/', endOfProto + protoSeparator.length);
492
+ return endOfOrigin !== -1 ? url.substring(0, endOfOrigin) : url;
493
+ };
494
+
495
+ var url = /*#__PURE__*/Object.freeze({
496
+ __proto__: null,
497
+ isURL: isURL,
498
+ withoutQuery: withoutQuery,
499
+ getOrigin: getOrigin
500
+ });
501
+
502
+ const MOBILE_URL_PATH = '/mobile';
503
+ const withoutMobilePath = (href) => (href || '').replace(MOBILE_URL_PATH, '');
504
+
505
+ const adjustHref = (href, router) => {
506
+ if (!href) {
507
+ return href;
508
+ }
509
+ const relativeHref = toRelativeHref(href, router) || '';
510
+ const isMobilePage = router?.pathname.startsWith(MOBILE_URL_PATH);
511
+ return isMobilePage && !isURL(relativeHref) ? `${MOBILE_URL_PATH}${relativeHref}` : relativeHref;
512
+ };
513
+ const toRelativeHref = (href, router) => {
514
+ if (!href) {
515
+ return href;
516
+ }
517
+ const origin = getOrigin(router?.href);
518
+ return origin ? href.replace(origin, '') || '/' : href;
519
+ };
520
+
521
+ const defaultHandlerDecorator = (handler) => handler;
522
+ function useLink({ router, handlerDecorator = defaultHandlerDecorator, }, link) {
523
+ const href = adjustHref(link.href, router);
524
+ return {
525
+ ...link,
526
+ href,
527
+ ariaLabel: link.text,
528
+ onClick: handlerDecorator((ev) => {
529
+ const isLocalHref = href && !isURL(href);
530
+ const isLocalTarget = !link.target || link.target === '_self';
531
+ if (isLocalHref && isLocalTarget) {
532
+ ev.preventDefault();
533
+ router.push(href);
534
+ }
535
+ }, link),
536
+ };
537
+ }
538
+
539
+ const ButtonInner = JSX(({ text, aboveText, appendLeft, rounded, version }) => {
540
+ const withoutText = !text && !aboveText && Boolean(appendLeft);
541
+ const buttonInnerClasses = version !== 'link'
542
+ ? `flex items-center justify-center
543
+ ${withoutText ? 'h-12 w-12' : `px-8 gap-2 ${aboveText ? 'py-2' : 'py-3.5'}`} ${rounded ? 'rounded-full' : ''}`
544
+ : null;
545
+ return renderButtonInner({ buttonInnerClasses, appendLeft, withoutText, aboveText, text });
546
+ });
547
+ function renderButtonInner({ buttonInnerClasses, appendLeft, withoutText, aboveText, text }) {
548
+ return (jsxs("div", { className: buttonInnerClasses, children: [appendLeft ? appendLeft : null, withoutText ? null : (jsxs("div", { children: [jsx("div", { className: "text-m-2xs text-left", children: aboveText }), jsx("div", { className: "text-m-button font-medium text-left", children: text })] }))] }));
549
+ }
550
+
551
+ const buttonStyleMap = {
552
+ primary: 'text-white bg-primary-main hover:bg-primary-hover active:bg-primary-active',
553
+ secondary: 'text-primary-main bg-secondary-light hover:bg-secondary-hover active:bg-secondary-active',
554
+ link: 'text-primary-main',
555
+ };
556
+ const buttonDisabledStyleMap = {
557
+ primary: 'bg-secondary-dark text-secondary-text',
558
+ secondary: 'bg-secondary-light text-secondary-text',
559
+ link: '',
560
+ };
561
+ const styleButton = 'w-full text-center font-sans select-none';
562
+ const Button = JSX(({ className, text, aboveText, appendLeft, href, target, onClick, children, disabled, rounded, version = 'primary', ariaLabel, ...rest }) => {
563
+ const buttonInner = children ?? (jsx(ButtonInner, { text: text, aboveText: aboveText, appendLeft: appendLeft, rounded: rounded, version: version }));
564
+ if (disabled) {
565
+ return (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: "-1", className: `inline-block ${styleButton} ${buttonDisabledStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, children: buttonInner }));
566
+ }
567
+ return (jsx("a", { className: `${styleButton} inline-block cursor-pointer no-underline ${buttonStyleMap[version] || ''} ${rounded ? 'rounded-full' : 'rounded-md'} ${className || ''}`, href: href, target: target, onClick: onClick, "aria-label": ariaLabel, role: !href ? 'button' : 'link', ...rest, children: buttonInner }));
568
+ });
569
+
570
+ const ButtonSection = JSX(({ context, className = '', buttons }) => {
571
+ const { handlerDecorator } = context;
572
+ const router = context.useRouter();
573
+ return buttons?.length ? (jsx("div", { className: `${className}`, children: buttons.map((button, index) => renderButton(useLink({ router, handlerDecorator }, button), index)) })) : null;
574
+ });
575
+ function renderButton({ icon, ...button }, i) {
576
+ if (!button?.text)
577
+ return;
578
+ return icon ? (jsx(Button, { appendLeft: jsx(Icon, { name: icon, width: "24", height: "24", asSVG: true }), ...button }, String(i))) : (jsx(Button, { ...button }, String(i)));
579
+ }
580
+
660
581
  const Description = JSX((props) => {
661
582
  const { className, description } = props;
662
- return jsx("div", { className: `font-normal text-base ${className || ''}`, children: description });
583
+ return jsx("div", { className: `font-normal text-m-md ${className || ''}`, children: description });
584
+ });
585
+
586
+ const BaseTile = JSX(({ className = '', title, children, buttons, image }) => {
587
+ return (jsxs("div", { className: `font-sans flex flex-col grow h-full items-start ${className}`, children: [title, jsxs("div", { className: "flex grow w-full justify-between", children: [jsxs("div", { className: "flex flex-col justify-between w-full", children: [jsx("div", { children: children }), jsx("div", { children: buttons })] }), image] })] }));
663
588
  });
664
589
 
590
+ const getColSpan = (className) => {
591
+ const colSpanPrefix = 'col-span-';
592
+ const colSpanStr = className.split(/\s+/).find((_) => _.startsWith(colSpanPrefix));
593
+ return colSpanStr ? parseInt(colSpanStr.substring(colSpanPrefix.length), 10) : 12;
594
+ };
595
+
596
+ function getTileHeadingType(className = '') {
597
+ const colSpan = getColSpan(className);
598
+ if (colSpan <= 4) {
599
+ return 'h4';
600
+ }
601
+ else if (colSpan <= 8) {
602
+ return 'h3';
603
+ }
604
+ else {
605
+ return 'h2';
606
+ }
607
+ }
608
+
609
+ function getTileMinHeight(className = '') {
610
+ const colSpan = getColSpan(className);
611
+ if (colSpan <= 6) {
612
+ return 'min-h-[300px]';
613
+ }
614
+ else if (colSpan <= 8) {
615
+ return 'min-h-[320px]';
616
+ }
617
+ else {
618
+ return 'min-h-[360px]';
619
+ }
620
+ }
621
+
622
+ function getTileRightPadding(className = '') {
623
+ const colSpan = getColSpan(className);
624
+ if (colSpan <= 6) {
625
+ return 'pr-9';
626
+ }
627
+ else if (colSpan <= 8) {
628
+ return 'pr-[4.75rem]';
629
+ }
630
+ else {
631
+ return 'pr-[9.4rem]';
632
+ }
633
+ }
634
+
665
635
  const tileStyleMap = {
666
636
  primary: 'bg-white text-primary-text',
667
637
  secondary: 'bg-primary-main text-white',
668
638
  };
669
639
  const Tile = JSX((props) => {
670
640
  const { context, title, description, items, children, buttons, image, className = '', version = 'primary', role, } = props;
671
- return (jsx("section", { className: `font-sans p-9 box-border ${className} ${tileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, role: role, children: jsxs(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px] ${version === 'primary' ? 'text-primary-text' : ''}` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description && jsx(Description, { className: "mt-4 max-w-[600px]", description: description }), children, items?.length ? jsx(List, { items: items }) : null] }) }));
641
+ return (jsx("section", { className: `font-sans p-9 box-border ${className} ${tileStyleMap[version]} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, role: role, children: jsxs(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}
642
+ ${version === 'primary' ? 'text-primary-text' : ''}` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, image: image?.src && jsx(Img, { className: "mt-auto ml-7", image: image }), children: [description && jsx(Description, { className: "mt-4 max-w-[600px]", description: description }), children, renderList(items, version)] }) }));
672
643
  });
644
+ function renderList(items, version) {
645
+ return items?.length ? jsx(List, { items: items, version: version }) : null;
646
+ }
673
647
 
674
648
  const productTileStyleMap = {
675
649
  primary: 'bg-white text-primary-text',
@@ -701,12 +675,12 @@
701
675
  }
702
676
  function renderCard$1(card, key) {
703
677
  return (jsxs("div", { className: `box-border horizontal-list-item border-solid border rounded-md border-main-stroke p-4 flex flex-col
704
- ${blockStyle[card.version ?? 'primary']}`, role: "listitem", children: [jsxs("div", { children: [card.image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: card.image }) })) : null, card.title ? jsx("h4", { className: `font-medium text-m-title-xs m-0`, children: card.title }) : null, card.description ? renderDescription(card) : null, card.items?.length ? renderItems(card.items) : null] }), card?.button?.href ? jsx(Button, { className: "mt-3", ...card.button }) : null] }, key));
678
+ ${blockStyle[card.version ?? 'primary']}`, role: "listitem", children: [jsxs("div", { children: [card.image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: card.image }) })) : null, card.title ? jsx("h4", { className: `font-medium text-m-title-xs m-0`, children: card.title }) : null, card.description ? renderDescription(card) : null, card.items?.length ? renderItems$1(card.items) : null] }), card?.button?.href ? jsx(Button, { className: "mt-3", ...card.button }) : null] }, key));
705
679
  }
706
680
  function renderDescription(card) {
707
681
  return (jsx("div", { className: `text-secondary-text mt-2 ${card.version === 'secondary' ? 'text-white opacity-80' : ''}`, children: card.description }));
708
682
  }
709
- function renderItems(items) {
683
+ function renderItems$1(items) {
710
684
  return (jsx("section", { className: "mt-3", children: items.map((item) => (jsxs("div", { children: [jsx("span", { className: "text-m-md font-medium", children: item.title }), jsx("span", { className: "text-m-sm text-secondary-text pl-2", children: item.text })] }))) }));
711
685
  }
712
686
 
@@ -747,9 +721,9 @@
747
721
  mini: 276,
748
722
  };
749
723
 
750
- const LIST_STYLE_CLASSES = 'rounded-full inline-block mr-3';
724
+ const LIST_STYLE_CLASSES = 'rounded-full inline-block mr-3 mt-2';
751
725
  const TEXT_STYLE_MAP = {
752
- primary: 'text-primary-text',
726
+ primary: 'text-secondary-text',
753
727
  secondary: 'text-white',
754
728
  gray: 'text-secondary-text',
755
729
  };
@@ -759,7 +733,7 @@
759
733
  gray: 'bg-secondary-text',
760
734
  };
761
735
  const BlockItem = JSX(({ className = '', isDotted = true, text, children, version = 'primary' }) => {
762
- return (jsxs("div", { className: `font-sans flex items-center ${className}`, role: "listitem", children: [isDotted && jsx("div", { className: getListStyle(version) }), jsx("span", { className: TEXT_STYLE_MAP[version], children: text || children })] }));
736
+ return (jsxs("div", { className: `font-sans flex items-start ${className}`, role: "listitem", children: [isDotted && jsx("div", { className: getListStyle(version) }), "!!!!!", jsx("span", { className: TEXT_STYLE_MAP[version], children: text || children })] }));
763
737
  });
764
738
  const getListStyle = (version) => {
765
739
  const size = version === 'gray' ? 'w-[6px] h-[6px] min-w-[6px] min-h-[6px]' : 'w-2 h-2 min-w-2 min-h-2';
@@ -767,16 +741,26 @@
767
741
  };
768
742
 
769
743
  const GalleryCardInner = JSX(({ title, description, image, items, button, version }) => {
770
- return (jsxs("div", { children: [jsxs("div", { children: [image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: image }) })) : null, title && renderCardTitle(title, description, items), description ? jsx("div", { className: `font-normal text-sm mt-2`, children: description }) : null, items?.length ? (jsx("section", { className: `max-w-[308px] mt-2`, role: "list", children: items
771
- .filter((item) => item?.text)
772
- .map((item, i) => renderItem(item.text, i, version)) })) : null] }), button?.text && jsx(Button, { className: "mt-6", ...button })] }));
744
+ const titleStyleClasses = getTitleStyle(version, description, items);
745
+ return (jsxs("div", { children: [jsxs("div", { children: [image?.src ? (jsx("div", { className: "flex justify-center", children: jsx(Img, { className: "mb-6", image: image }) })) : null, title ? renderCardTitle(title, titleStyleClasses) : null, description ? (jsx("div", { className: `font-normal text-sm ${title ? 'mt-2' : ''}`, children: description })) : null, items?.length ? renderItems(items, version) : null] }), button?.text && jsx(Button, { className: "mt-6", ...button })] }));
773
746
  });
774
- function renderCardTitle(title, description, items) {
775
- return (jsx("div", { className: `font-medium text-xl m-0 ${!description && !items?.length ? 'text-center' : ''}`, children: title }));
747
+ function renderCardTitle(title, className) {
748
+ return jsx("div", { className: `font-medium text-xl m-0 ${className}`, children: title });
749
+ }
750
+ function renderItems(items, version) {
751
+ return (jsx("section", { className: `max-w-[308px] mt-2`, role: "list", children: items
752
+ .filter((item) => item?.text)
753
+ .map((item, i) => renderItem(item.text, i, version)) }));
776
754
  }
777
755
  function renderItem(item, i, version) {
778
756
  return (jsx(BlockItem, { version: version ?? 'primary', children: jsx("span", { className: "text-sm", children: item }) }, String(i)));
779
757
  }
758
+ function getTitleStyle(version, description, items) {
759
+ return `font-medium text-xl m-0
760
+ ${version !== 'secondary' ? 'text-primary-text' : ''}
761
+ ${!description && !items?.length ? 'text-center' : ''}
762
+ `;
763
+ }
780
764
 
781
765
  const GalleryContainer = JSX(({ context, title, description, cards = [], version = 'normal', activeCardIndex }) => {
782
766
  return (jsxs("div", { children: [jsx("div", { className: "absolute top-0 left-0 bottom-0 w-[84px] bg-gradient-to-r from-white to-transparent" }), jsxs("div", { className: "flex flex-col items-center mb-8", children: [title ? jsx(Heading, { headingType: "h2", className: "text-center", title: title }) : null, description ? (jsx("div", { className: "font-normal text-base max-w-[600px] mt-2.5", children: description })) : null] }), jsx("div", { className: `flex ${cards?.length <= galleryLengthForScrollMap[version] ? 'justify-center' : ''} duration-1000`, style: { transform: `translateX(-${activeCardIndex * cardWidthMap[version]}px)` }, role: "list", children: cards?.map((card, i) => renderCard({ card, version, context }, i)) })] }));
@@ -826,7 +810,7 @@
826
810
  const [isActive, setIsActive] = context.useState(false);
827
811
  const hasContent = blocks?.length;
828
812
  const icon = isActive ? 'MinusIcon' : 'PlusIcon';
829
- const getContentBlock = ({ target }) => target.tagName === 'BUTTON' ? target.nextSibling : target.parentNode.nextSibling;
813
+ const getContentBlock = ({ currentTarget }) => currentTarget.nextSibling;
830
814
  const handleToggle = (e) => {
831
815
  if (!hasContent) {
832
816
  return;
@@ -853,6 +837,36 @@
853
837
  return (jsxs("section", { className: `py-6 font-sans bg-white text-primary-text ${bordered ? 'px-4' : ''} ${className}`, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-2 text-center", title: title }) : null, description ? jsx("div", { className: "mb-5 text-m-md text-center", children: description }) : null, accordionItems?.length ? (jsx("ul", { className: "list-none m-0 p-0", children: accordionItems.map((item, i) => (jsx(AccordionItem, { ...item, context: context, bordered: bordered }, `AccordionItem${i}`))) })) : null] }));
854
838
  });
855
839
 
840
+ const CBR_EXCHANGE_RATE_URL = 'https://www.cbr-xml-daily.ru/daily_json.js';
841
+ const CURRENCY_CODES = ['USD', 'EUR'];
842
+ const CURRENCY_ICONS_MAP = {
843
+ USD: 'DollarIcon',
844
+ EUR: 'EuroIcon',
845
+ };
846
+ const buttons = [
847
+ {
848
+ text: 'Все показатели',
849
+ href: 'https://cbr.ru/currency_base/daily/',
850
+ version: 'secondary',
851
+ },
852
+ ];
853
+ const ExchangeRateTile = JSX(({ className = '', context, title = 'Курсы обмена валют' }) => {
854
+ const { data } = context.useAsyncData(CBR_EXCHANGE_RATE_URL, fetchExchangeRate);
855
+ return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, children: jsx(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, children: jsxs("table", { children: [jsx("thead", { children: jsxs("tr", { children: [jsx(CurrencyTH, { children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), jsx(CurrencyTH, { className: "pl-11", children: "\u041A\u0443\u0440\u0441" })] }) }), jsx("tbody", { children: CURRENCY_CODES.map(renderCurrencyRow(data)) })] }) }) }));
856
+ });
857
+ const CurrencyTH = JSX(({ className = '', children }) => (jsx("th", { className: `text-left font-normal text-sm text-secondary-text ${className}`, children: children })));
858
+ const CurrencyTD = JSX(({ className = '', children }) => (jsx("td", { className: `text-left font-normal text-base text-primary-text ${className}`, children: children })));
859
+ async function fetchExchangeRate() {
860
+ const response = await fetch(CBR_EXCHANGE_RATE_URL);
861
+ return await response.json();
862
+ }
863
+ const currencyNumberFormat = new Intl.NumberFormat('ru', { style: 'currency', currency: 'RUB' });
864
+ const formatCurrency = (value) => (value ? currencyNumberFormat.format(value) : '');
865
+ const renderCurrencyRow = (data) => (code) => {
866
+ const value = (data?.Valute || {})[code]?.Value;
867
+ return (jsxs("tr", { children: [jsx(CurrencyTD, { className: "pt-4", children: jsxs("div", { className: "flex items-center", children: [jsx(Icon, { name: CURRENCY_ICONS_MAP[code], width: "24", height: "24" }), jsx("span", { className: "ml-2", children: code })] }) }), jsx(CurrencyTD, { className: "pt-4 pl-11", children: formatCurrency(value) })] }, code));
868
+ };
869
+
856
870
  const LOGO_PATHS = [
857
871
  'm13.72 25.51 4.42-4.33v-2.95l-4.42 4.32v2.96Zm0-10.98 4.42-4.35V7.41l-4.42 4.31v2.8Zm0 3.63 4.42-4.33v-2.78l-4.42 4.32v2.8ZM12.46 7.44l-.6-.56V0h-.66v6.22l-.58-.57V0h-.67v5l-.59-.58V0H8.7v6.56l4.44 4.33V0h-.67v7.44Zm1.26 14.35 4.42-4.33v-2.78L13.72 19v2.8Zm-5.03-.61 4.44 4.33v-2.96l-4.44-4.32v2.95Zm8.79-16.76-.59.58V0h-.66v5.66l-.6.56V0h-.66v6.87l-.58.57V0h-.67v10.9l4.42-4.34V0h-.66v4.42Zm-8.79 5.76 4.44 4.35v-2.8L8.69 7.4v2.77Zm0 3.65 4.44 4.33v-2.8l-4.44-4.3v2.77Zm0 3.63 4.44 4.33V19l-4.44-4.31v2.78Zm26.37 2.29H24.3a2.25 2.25 0 0 0 .36-1.22 2.32 2.32 0 0 0-2.33-2.31 2.32 2.32 0 0 0-2.31 2.31c0 .5.16.96.43 1.34a.74.74 0 0 0-.33.61c0 .26.14.49.33.62a2.32 2.32 0 0 0-.43 1.34 2.31 2.31 0 0 0 2.31 2.31 2.32 2.32 0 0 0 2.33-2.31c0-.45-.13-.87-.36-1.22h8.01v.49h-.8v.68h.8v.7h-.8v1.3h.8v-.58h1.17v.58h.79v-1.3h-.79v-.7h.79v-.68h-.79v-.5h1.58a.56.56 0 0 0 .56-.56v-.34a.57.57 0 0 0-.56-.56Zm-11.53 2.7a1.2 1.2 0 0 1-2.4 0c0-.24.08-.47.2-.66l.34-.56a.97.97 0 0 1-.34-.75c0-.3.13-.56.33-.74l-.32-.56a1.13 1.13 0 0 1-.2-.66 1.2 1.2 0 0 1 2.4 0c0 .49-.56 1.65-.56 1.65v.62c-.01.01.55 1.17.55 1.66ZM4.67 18.34v2.89c0 2.75 1.2 4.53 1.9 5.21l4.58 4.5c1.28 1.25 1.5 1.66 1.79 2.37v-3.2c0-2.84-1.44-3.94-2.19-4.67-1.73-1.68-2.89-2.8-3.82-3.73a8.98 8.98 0 0 1-2.26-3.37Zm6.08 14.24c-1.73-1.7-2.89-2.8-3.82-3.73a10 10 0 0 1-2.25-2.98v2.49a7.87 7.87 0 0 0 1.89 5.24l4.58 4.47c1.28 1.25 1.5 1.85 1.79 2.55v-3.37c0-2.85-1.45-3.95-2.19-4.67Z',
858
872
  'M19.88 5.34c-.32 0-.64 0-.96.02V6.7a18.5 18.5 0 1 1 .95 36.94A18.5 18.5 0 0 1 1.35 25.17c0-5.67 2.55-10.73 6.58-14.13V9.32A19.78 19.78 0 0 0 0 25.17C0 36.12 8.9 45 19.88 45a19.85 19.85 0 0 0 19.86-19.83c0-10.95-8.9-19.83-19.87-19.83Z',
@@ -1029,14 +1043,14 @@
1029
1043
 
1030
1044
  const HeaderBurger = JSX(({ context, burgerSubMenu, onClick, defaultLocation = '', children }) => {
1031
1045
  const [city, getCity] = context.useGeolocation(defaultLocation);
1032
- return (jsxs("div", { className: "absolute top-0 left-0 w-full h-full bg-white p-4", children: [jsx("button", { className: "absolute top-4 right-4", onClick: onClick, children: jsx(Icon, { name: "CloseIcon", width: "24", height: "24", asSVG: true }) }), jsxs(Button, { onClick: getCity, className: "flex items-center text-sm text-secondary-text mb-4", children: [jsx(Icon, { name: "GeolocationIcon", width: "24", height: "24", className: "box-border mr-2", asSVG: true }), city] }), children, jsx("div", { className: "mb-7", children: burgerSubMenu?.map(renderBurgerSubMenuItem) }), jsx(SearchBar, { context: context, className: "grow" })] }));
1046
+ return (jsxs("div", { className: "absolute top-0 left-0 w-full h-full bg-white p-4 box-border z-20", children: [jsx("button", { className: "absolute top-4 right-4 border-none bg-transparent", onClick: onClick, children: jsx(Icon, { name: "CloseIcon", width: "24", height: "24", asSVG: true }) }), jsxs(Button, { onClick: getCity, className: "flex items-center text-sm text-secondary-text mb-4", children: [jsx(Icon, { name: "GeolocationIcon", width: "24", height: "24", className: "box-border mr-2", asSVG: true }), city] }), children, jsx("div", { className: "mb-7", children: burgerSubMenu?.map(renderBurgerSubMenuItem) }), jsx(SearchBar, { context: context, className: "grow" })] }));
1033
1047
  });
1034
1048
  const renderBurgerSubMenuItem = (menu, i) => {
1035
1049
  const { icon, href, text } = menu;
1036
1050
  return (jsxs(Button, { href: href, className: "flex text-sm mb-4", children: [icon ? jsx(Icon, { className: "pr-1", name: icon, width: "24", height: "24", asSVG: true }) : null, jsx("span", { className: "pl-0.5 font-medium", children: text })] }, `headerSubMenu-${i}`));
1037
1051
  };
1038
1052
 
1039
- const HeaderTop = JSX(({ onClick, bgColor }) => (jsxs("div", { className: "flex items-center justify-between border-0 border-b border-main-divider h-[50px]", children: [jsxs("div", { className: "flex items-center", children: [jsx("button", { className: "pr-4", onClick: onClick, "aria-label": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E", children: jsx(Icon, { name: bgColor === 'bg-white' ? 'BurgerIcon' : 'BurgerIconWhite', width: "24", height: "24", asSVG: true }) }), jsx(Logo, { bgColor: bgColor })] }), jsx("button", { className: `${bgColor === 'bg-white' ? 'text-primary-main' : 'text-white'} text-sm`, children: "\u0412\u043E\u0439\u0442\u0438" })] })));
1053
+ const HeaderTop = JSX(({ onClick, bgColor }) => (jsxs("div", { className: "flex items-center justify-between border-0 border-b border-main-divider h-[50px]", children: [jsxs("div", { className: "flex items-center", children: [jsx("button", { className: "pr-4 border-0 bg-transparent", onClick: onClick, "aria-label": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E", children: jsx(Icon, { name: bgColor === 'bg-white' ? 'BurgerIcon' : 'BurgerIconWhite', width: "24", height: "24", asSVG: true }) }), jsx(Logo, { bgColor: bgColor })] }), jsx("button", { className: `${bgColor === 'bg-white' ? 'text-primary-main' : 'text-white'} text-sm border-0 bg-transparent`, children: "\u0412\u043E\u0439\u0442\u0438" })] })));
1040
1054
 
1041
1055
  const Header = JSX(({ className = '', defaultLocation, bgColor = 'bg-white', context, topItems, burgerSubMenu }) => {
1042
1056
  const router = context.useRouter();
@@ -1048,7 +1062,7 @@
1048
1062
  const activeSubItem = findActiveSubItem(router)(subItems);
1049
1063
  const [burgerMenuShow, setBurgerMenuShow] = context.useState(false);
1050
1064
  const toggleBurgerMenu = () => setBurgerMenuShow(!burgerMenuShow);
1051
- return (jsxs("header", { className: `${bgColor} ${className}`, children: [jsxs("div", { className: "container px-4 py-0", children: [jsx(HeaderTop, { onClick: toggleBurgerMenu, bgColor: bgColor }), jsx("nav", { className: "flex items-center m-0 p-0 overflow-y-hidden w-full h-[50px]", children: jsx("div", { className: "flex", children: subItems?.map((_, i) => renderSubItem({
1065
+ return (jsxs("header", { className: `${bgColor} ${className}`, children: [jsxs("div", { className: "container px-4 py-0 box-border", children: [jsx(HeaderTop, { onClick: toggleBurgerMenu, bgColor: bgColor }), jsx("nav", { className: "flex items-center m-0 p-0 overflow-y-hidden w-full h-[50px]", children: jsx("div", { className: "flex", children: subItems?.map((_, i) => renderSubItem({
1052
1066
  ...useLink({ router, handlerDecorator }, _),
1053
1067
  active: _ === activeSubItem,
1054
1068
  bgColor,
@@ -1056,16 +1070,6 @@
1056
1070
  });
1057
1071
  const renderSubItem = (item, i) => (jsx(HeaderItem, { className: "mr-8 whitespace-nowrap text-sm", ...item }, String(i)));
1058
1072
 
1059
- const GOLDEN_RATIO = 1.618;
1060
- const Placeholder = JSX(({ className = '', context, title }) => {
1061
- return (jsx(Tile, { className: `pr-0 min-h-0 ${className}`, context: context, title: title, description: "\u0411\u043B\u043E\u043A \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043E\u0442\u043A\u0435...", children: jsx("figure", { className: "m-0", children: renderShimmer() }) }));
1062
- });
1063
- const renderShimmer = (size = 3) => goldenSequence(100, size)
1064
- .map((_) => Math.floor(_))
1065
- .map(renderShimmerItem);
1066
- const renderShimmerItem = (width = 100, index) => (jsx("div", { style: { width: `${width}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
1067
- const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
1068
-
1069
1073
  const benefitTitleStyleMap = {
1070
1074
  primary: 'text-primary-text',
1071
1075
  secondary: 'text-white',
@@ -1075,12 +1079,15 @@
1075
1079
  secondary: 'text-white',
1076
1080
  };
1077
1081
  function renderBenefit(benefit, i, version) {
1078
- return (jsxs("div", { className: "flex gap-3 items-center mb-2.5 last:mb-0", children: [benefit.icon && (jsx(Icon, { className: "w-[25px] h-[25px] rounded-full box-border", name: benefit.icon, width: "24", height: "24", asSVG: true })), jsx("div", { className: `font-medium text-m-base m-0 ${benefitTitleStyleMap[version]}`, children: benefit.label }), benefit.description && (jsx("div", { className: `font-normal text-m-sm ${benefitDescStyleMap[version]}`, children: benefit.description }))] }, String(i)));
1082
+ return (jsxs("div", { className: "flex gap-3 items-center mb-2.5 last:mb-0", children: [benefit.icon && (jsx(Icon, { className: "w-6 h-6 rounded-full box-border", name: benefit.icon, width: "24", height: "24", asSVG: true })), jsx("div", { className: `font-medium text-m-title-xs m-0 ${benefitTitleStyleMap[version]}`, children: benefit.label }), benefit.description && (jsx("div", { className: `font-normal text-m-sm ${benefitDescStyleMap[version]}`, children: benefit.description }))] }, String(i)));
1079
1083
  }
1080
1084
 
1081
1085
  const ProductBlockInner = JSX(({ className = '', context, title, headingType = 'h2', description, benefits, buttons, image, items, version = 'primary', }) => {
1082
- return (jsxs("div", { className: `${className}`, children: [jsx("div", { children: jsxs(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: headingType, title: title, className: `whitespace-pre-wrap max-w-[600px]` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex mt-9 gap-3" })) : null, children: [description && jsx(Description, { description: description }), benefits?.length ? (jsx("div", { className: "mt-[19px]", children: benefits.map((_, i) => renderBenefit(_, i, version)) })) : null, items?.length ? jsx(List, { items: items }) : null] }) }), image?.src && (jsx("div", { className: "mt-5", children: jsx(Img, { image: { className: 'block', ...image } }) }))] }));
1086
+ return (jsxs("div", { className: `w-full text-primary-text ${className}`, children: [jsx("div", { children: jsxs(BaseTile, { context: context, title: title && (jsx(Heading, { headingType: headingType, title: title, className: `whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}` })), buttons: buttons?.length ? (jsx(ButtonSection, { context: context, buttons: buttons, className: "flex flex-col mt-5 gap-2.5" })) : null, children: [description && jsx(Description, { description: description }), benefits?.length ? (jsx("div", { className: "mt-5", children: benefits.map((_, i) => renderBenefit(_, i, version)) })) : null, items?.length ? jsx(List, { items: items }) : null] }) }), renderImage(image)] }));
1083
1087
  });
1088
+ function renderImage(image) {
1089
+ return image?.src ? (jsx("div", { className: "mt-5", children: jsx(Img, { image: { className: 'block', ...image } }) })) : null;
1090
+ }
1084
1091
 
1085
1092
  const ProductBlock = JSX(
1086
1093
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -1090,25 +1097,13 @@
1090
1097
  });
1091
1098
 
1092
1099
  const ProductGalleryBlock = JSX(({ block, headingType, context }) => {
1093
- return (jsx("section", { className: "flex grow-0 shrink-0 basis-full px-4 py-6", role: "listitem", children: jsx("div", { className: "flex grow", children: jsx(ProductBlockInner, { context: context, headingType: headingType || 'h2', ...block }) }) }));
1100
+ return (jsx("section", { className: "flex grow-0 shrink-0 basis-full px-4 pt-6", role: "listitem", children: jsx("div", { className: "flex grow", children: jsx(ProductBlockInner, { context: context, headingType: headingType || 'h2', ...block }) }) }));
1094
1101
  });
1095
1102
 
1096
- const ProductGallery = JSX(({ className, context, duration = 0, slides = [] }) => {
1103
+ const ProductGallery = JSX(({ className, context, slides = [] }) => {
1097
1104
  const galleryBlocks = slides.map((s) => s.productBlock);
1098
- const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
1099
- return (jsxs("section", { className: `font-sans bg-white overflow-hidden w-100 ${className || ''}`, children: [jsx("div", { className: `flex duration-1000`, style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: galleryBlocks.map((block, i) => (jsx(ProductGalleryBlock, { block: block, context: context }, String(i)))) }), jsx("div", { className: "flex px-4 py-6", children: slides.map((_, i) => renderNavButton({
1100
- slide: _.productBlock,
1101
- i,
1102
- activeSlideIndex,
1103
- onClick: () => setActiveSlideIndex(i),
1104
- duration,
1105
- })) })] }));
1105
+ return (jsx("section", { className: `font-sans bg-white overflow-hidden w-100 pb-6 ${className || ''}`, children: jsx(SwipeListControl, { context: context, children: galleryBlocks.map((block, i) => (jsx(ProductGalleryBlock, { block: block, context: context }, String(i)))) }) }));
1106
1106
  });
1107
- function renderNavButton({ slide, i, activeSlideIndex, onClick, duration }) {
1108
- const isActiveBtn = i === activeSlideIndex;
1109
- const progressBarClassName = isActiveBtn ? 'animate-slide bg-primary-main' : 'bg-main-divider';
1110
- return (jsx("button", { type: "button", onClick: onClick, "aria-label": slide?.title, className: `relative overflow-hidden border-0 bg-inherit cursor-pointer pl-0 mr-1.5 pt-4 pb-5 last:mr-0 grow basis-0`, children: jsx("div", { className: `absolute bottom-0 left-0 w-full h-[3px] ${progressBarClassName}`, style: { animationDuration: `${duration}s`, animationFillMode: 'forwards' } }) }, String(i)));
1111
- }
1112
1107
 
1113
1108
  const StepsBlock = JSX(({ className, title, description, steps, size = 'normal' }) => {
1114
1109
  return (jsxs("section", { className: `box-border font-sans text-primary-text bg-white px-4 py-6 flex flex-col ${className || ''}`, children: [title && jsx(Heading, { headingType: "h3", className: "text-center", title: title }), description && jsx("p", { className: `text-m-md text-center ${title && 'mt-2'}`, children: description }), steps?.length ? (jsx("div", { className: `box-border py-0.5 mb-0.5 mt-5`, children: jsx("div", { className: "flex flex-col justify-between gap-x-[101px]", children: steps.map((step, i) => renderStepTitle({ step, size, i, length: steps.length })) }) })) : null] }));
@@ -1117,7 +1112,7 @@
1117
1112
  const { step, size, i, length } = params;
1118
1113
  const isLastStep = length - 1 === i;
1119
1114
  const margin = size === 'normal' ? 'ml-[34px]' : 'ml-[24px]';
1120
- return (jsx("div", { children: jsxs("div", { className: "flex flex-row text-center relative", children: [jsxs("div", { children: [renderIconArea(step, size, i), !isLastStep && jsx("div", { className: `min-h-8 h-full w-[2px] bg-secondary-light ${margin}` })] }), jsxs("div", { className: "flex flex-col justify-center relative", children: [step.label && (jsx("div", { className: "font-medium text-m-title-xs m-0 text-left", children: step.label })), step.description && (jsx("div", { className: `font-normal text-sm text-secondary-text text-left ${step.label ? 'mt-1' : ''}`, children: step.description }))] })] }, String(i)) }, String(i)));
1115
+ return (jsx("div", { children: jsxs("div", { className: "flex flex-row text-center relative", children: [jsxs("div", { children: [renderIconArea(step, size, i), !isLastStep && jsx("div", { className: `min-h-8 h-full w-[2px] bg-secondary-light ${margin}` })] }), jsxs("div", { className: "flex flex-col justify-start relative", children: [step.label && (jsx("div", { className: "font-medium text-m-title-xs m-0 text-left", children: step.label })), step.description && (jsx("div", { className: `font-normal text-sm text-secondary-text text-left ${step.label ? 'mt-1' : ''}`, children: step.description }))] })] }, String(i)) }, String(i)));
1121
1116
  };
1122
1117
  const renderIconArea = (step, size, i) => {
1123
1118
  const iconAreaSize = size === 'normal'
@@ -1129,16 +1124,18 @@
1129
1124
  };
1130
1125
 
1131
1126
  const Blocks = {
1127
+ Accordion,
1132
1128
  ExchangeRateTile,
1133
1129
  Footer,
1130
+ Gallery,
1134
1131
  Header,
1135
1132
  Headline,
1136
1133
  LinkDocs,
1137
- Placeholder,
1134
+ MobileAppTile,
1138
1135
  ProductBlock,
1139
1136
  ProductGallery,
1140
- TextBlock,
1141
1137
  StepsBlock,
1138
+ TextBlock,
1142
1139
  };
1143
1140
 
1144
1141
  const LikeButton = JSX(({ className, onClick, ariaLabel }) => (jsx("button", { type: "button", className: `border-0 w-[36px] bg-inherit cursor-pointer ${className || ''}`, onClick: onClick, "aria-label": ariaLabel, children: renderLikeIcon() })));
@@ -1157,6 +1154,16 @@
1157
1154
  return (jsxs("div", { className: `border-main border-2 border-solid bg-white flex w-[125px] items-center justify-center gap-3 p-2 font-sans ${className || ''}`, children: [jsx(LikeButton, { onClick: likeService.like, ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u043B\u0430\u0439\u043A\u00BB" }), jsx(LikeButton, { onClick: likeService.dislike, className: "rotate-180", ariaLabel: "\u041F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u043C\u0435\u0442\u043A\u0443 \u00AB\u0434\u0438\u0437\u043B\u0430\u0439\u043A\u00BB" }), jsx("span", { className: "select-none", children: likeService.likeCount })] }));
1158
1155
  });
1159
1156
 
1157
+ const GOLDEN_RATIO = 1.618;
1158
+ const Placeholder = JSX(({ className, context, title, description = 'Блок в разработке...' }) => {
1159
+ return (jsx("section", { className: `bg-white text-primary-text font-sans p-9 box-border ${className} ${getTileRightPadding(className)} ${getTileMinHeight(className)} `, children: jsxs(BaseTile, { context: context, title: title ? (jsx(Heading, { headingType: getTileHeadingType(className), title: title, className: `whitespace-pre-wrap max-w-[600px]` })) : null, children: [description ? (jsx(Description, { className: "mt-4 max-w-[600px]", description: description })) : null, jsx("figure", { className: "m-0 min-w-[600px]", children: renderShimmer() })] }) }));
1160
+ });
1161
+ const renderShimmer = (size = 3) => goldenSequence(100, size)
1162
+ .map((_) => Math.floor(_))
1163
+ .map(renderShimmerItem);
1164
+ const renderShimmerItem = (width = 100, index) => (jsx("div", { style: { width: `${width}%` }, className: "h-4 mt-2 bg-secondary-light" }, String(index)));
1165
+ const goldenSequence = (first, size) => [first].concat(size > 0 ? goldenSequence(first / GOLDEN_RATIO, size - 1) : []);
1166
+
1160
1167
  const defaultBlockDecorator = ({ blockClassName, block, render }) => render({ blockClassName, block });
1161
1168
  const ContentPage = JSX(({ className, context, blocksRegistry, data: { style: pageStyle, blocks, slots = {}, likeControl, colorPalette = 'pc' }, blockDecorator = defaultBlockDecorator, }) => {
1162
1169
  const { header } = slots;
@@ -1164,10 +1171,10 @@
1164
1171
  });
1165
1172
  function renderBlock({ block, blockDecorator, blocksRegistry, context }, i) {
1166
1173
  const { type } = block;
1167
- if (!(type in blocksRegistry)) {
1174
+ if (!(type && type in blocksRegistry)) {
1168
1175
  console.warn(`No block with "${type}" is registered`);
1169
1176
  }
1170
- const BlockComponent = blocksRegistry[type] || Placeholder;
1177
+ const BlockComponent = blocksRegistry[type || 'Placeholder'] || Placeholder;
1171
1178
  return blockDecorator({
1172
1179
  blockClassName: style2className(block.style),
1173
1180
  block,
@@ -1182,14 +1189,16 @@
1182
1189
  }
1183
1190
 
1184
1191
  const ContentPageHead = JSX(({ HeadComponent, data, children }) => {
1185
- const { title, description, keywords, robots, og } = data;
1192
+ const { title, main: { description, keywords, canonical, robots }, og, twitter, jsonLd, } = data;
1186
1193
  return (jsxs(HeadComponent, { children: [jsx("title", { children: title }), jsx("meta", { name: "viewport", content: "width=device-width, initial-scale=1" }), description && jsx("meta", { name: "description", content: description }), keywords && jsx("meta", { name: "keywords", content: keywords.join(',') }), robots && jsx("meta", { name: "robots", content: robots.join(',') }), og
1187
1194
  ? Object.entries(og).map(([key, value]) => (jsx("meta", { name: `og:${key}`, content: value }, key)))
1188
- : null, children] }));
1195
+ : null, twitter
1196
+ ? Object.entries(twitter).map(([key, value]) => (jsx("meta", { name: `twitter:${key}`, content: value }, key)))
1197
+ : null, canonical && jsx("link", { rel: "canonical", href: canonical }), jsonLd && jsx("script", { type: "application/ld+json", children: jsonLd }), children] }));
1189
1198
  });
1190
1199
 
1191
- function isBlockInRegistry(block, registry) {
1192
- return block.type in registry;
1200
+ function isBlockInRegistry(blockType, registry) {
1201
+ return (blockType || '') in registry;
1193
1202
  }
1194
1203
 
1195
1204
  function normalizeBlock(block) {
@@ -1217,7 +1226,7 @@
1217
1226
  }
1218
1227
  function getMobileBlocks(blocks) {
1219
1228
  return blocks
1220
- ?.filter((block) => isBlockInRegistry(block, Blocks) && !block.mobile?.hidden)
1229
+ ?.filter((block) => isBlockInRegistry(block?.type || block?.mobile?.type, Blocks) && !block.mobile?.hidden)
1221
1230
  .map(normalizeBlock);
1222
1231
  }
1223
1232