@redneckz/wildless-cms-uni-blocks 0.5.12 → 0.5.13

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 (400) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +125 -69
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/Accordion/AccordionContent.d.ts +9 -7
  5. package/bundle/components/Accordion/AccordionItem.d.ts +1 -4
  6. package/bundle/components/Accordion/AccordionItem.mobile.d.ts +1 -4
  7. package/bundle/components/Accordion/AccordionItemProps.d.ts +5 -0
  8. package/bundle/components/Accordion/AccordionItemsList.d.ts +1 -0
  9. package/bundle/components/Blocks.d.ts +1 -0
  10. package/bundle/components/InvestmentInfo/InvestmentInfo.d.ts +5 -0
  11. package/bundle/components/InvestmentInfo/InvestmentInfoContent.d.ts +49 -0
  12. package/bundle/components/StepsBlock/renderItems.d.ts +7 -2
  13. package/bundle/components/StepsBlock/renderStepContent.d.ts +14 -0
  14. package/bundle/model/BlockDecorator.d.ts +1 -0
  15. package/bundle/model/BlocksRegistry.d.ts +4 -1
  16. package/bundle/ui-kit/Foldable/DefaultFoldButton.d.ts +14 -0
  17. package/bundle/ui-kit/Foldable/Foldable.d.ts +3 -10
  18. package/bundle/ui-kit/Foldable/FoldablePartProps.d.ts +4 -0
  19. package/bundle/ui-kit/Foldable/FoldableSection.d.ts +5 -0
  20. package/dist/components/Accordion/Accordion.js +3 -1
  21. package/dist/components/Accordion/Accordion.js.map +1 -1
  22. package/dist/components/Accordion/Accordion.mobile.js +5 -2
  23. package/dist/components/Accordion/Accordion.mobile.js.map +1 -1
  24. package/dist/components/Accordion/AccordionContent.d.ts +9 -7
  25. package/dist/components/Accordion/AccordionItem.d.ts +1 -4
  26. package/dist/components/Accordion/AccordionItem.js +3 -8
  27. package/dist/components/Accordion/AccordionItem.js.map +1 -1
  28. package/dist/components/Accordion/AccordionItem.mobile.d.ts +1 -4
  29. package/dist/components/Accordion/AccordionItem.mobile.js +2 -5
  30. package/dist/components/Accordion/AccordionItem.mobile.js.map +1 -1
  31. package/dist/components/Accordion/AccordionItemProps.d.ts +5 -0
  32. package/dist/components/Accordion/AccordionItemProps.js +2 -0
  33. package/dist/components/Accordion/AccordionItemProps.js.map +1 -0
  34. package/dist/components/Accordion/AccordionItemsList.d.ts +1 -0
  35. package/dist/components/Accordion/AccordionItemsList.js +6 -0
  36. package/dist/components/Accordion/AccordionItemsList.js.map +1 -0
  37. package/dist/components/Blocks.d.ts +1 -0
  38. package/dist/components/Blocks.js +2 -0
  39. package/dist/components/Blocks.js.map +1 -1
  40. package/dist/components/ContentPage/filterBlocks.js +1 -2
  41. package/dist/components/ContentPage/filterBlocks.js.map +1 -1
  42. package/dist/components/ContentPage/filterBlocks.mobile.js +1 -3
  43. package/dist/components/ContentPage/filterBlocks.mobile.js.map +1 -1
  44. package/dist/components/ContentPage/renderBlock.js +1 -1
  45. package/dist/components/ContentPage/renderBlock.js.map +1 -1
  46. package/dist/components/Footer/Footer.mobile.js +8 -7
  47. package/dist/components/Footer/Footer.mobile.js.map +1 -1
  48. package/dist/components/Header/Header.mobile.js +5 -5
  49. package/dist/components/Header/Header.mobile.js.map +1 -1
  50. package/dist/components/InvestmentInfo/InvestmentInfo.d.ts +5 -0
  51. package/dist/components/InvestmentInfo/InvestmentInfo.js +49 -0
  52. package/dist/components/InvestmentInfo/InvestmentInfo.js.map +1 -0
  53. package/dist/components/InvestmentInfo/InvestmentInfoContent.d.ts +49 -0
  54. package/dist/components/InvestmentInfo/InvestmentInfoContent.js +2 -0
  55. package/dist/components/InvestmentInfo/InvestmentInfoContent.js.map +1 -0
  56. package/dist/components/OtherProducts/OtherProductsItem.js +4 -6
  57. package/dist/components/OtherProducts/OtherProductsItem.js.map +1 -1
  58. package/dist/components/StepsBlock/StepsBlock.js +2 -8
  59. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  60. package/dist/components/StepsBlock/StepsBlockStyleMaps.js +2 -2
  61. package/dist/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -1
  62. package/dist/components/StepsBlock/renderItems.d.ts +7 -2
  63. package/dist/components/StepsBlock/renderItems.js +5 -1
  64. package/dist/components/StepsBlock/renderItems.js.map +1 -1
  65. package/dist/components/StepsBlock/renderStepContent.d.ts +14 -0
  66. package/dist/components/StepsBlock/renderStepContent.js +20 -0
  67. package/dist/components/StepsBlock/renderStepContent.js.map +1 -0
  68. package/dist/components/TariffsTable/TariffsTable.js +11 -2
  69. package/dist/components/TariffsTable/TariffsTable.js.map +1 -1
  70. package/dist/model/BlockDecorator.d.ts +1 -0
  71. package/dist/model/BlockDecorator.js +2 -1
  72. package/dist/model/BlockDecorator.js.map +1 -1
  73. package/dist/model/BlocksRegistry.d.ts +4 -1
  74. package/dist/ui-kit/Foldable/DefaultFoldButton.d.ts +14 -0
  75. package/dist/ui-kit/Foldable/DefaultFoldButton.js +16 -0
  76. package/dist/ui-kit/Foldable/DefaultFoldButton.js.map +1 -0
  77. package/dist/ui-kit/Foldable/Foldable.d.ts +3 -10
  78. package/dist/ui-kit/Foldable/Foldable.js +7 -23
  79. package/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  80. package/dist/ui-kit/Foldable/FoldablePartProps.d.ts +4 -0
  81. package/dist/ui-kit/Foldable/{FoldButtonProps.js → FoldablePartProps.js} +1 -1
  82. package/dist/ui-kit/Foldable/FoldablePartProps.js.map +1 -0
  83. package/dist/ui-kit/Foldable/FoldableSection.d.ts +5 -0
  84. package/dist/ui-kit/Foldable/FoldableSection.js +17 -0
  85. package/dist/ui-kit/Foldable/FoldableSection.js.map +1 -0
  86. package/lib/common.css +1 -1
  87. package/lib/components/Accordion/Accordion.js +3 -1
  88. package/lib/components/Accordion/Accordion.js.map +1 -1
  89. package/lib/components/Accordion/Accordion.mobile.js +5 -2
  90. package/lib/components/Accordion/Accordion.mobile.js.map +1 -1
  91. package/lib/components/Accordion/AccordionContent.d.ts +9 -7
  92. package/lib/components/Accordion/AccordionItem.d.ts +1 -4
  93. package/lib/components/Accordion/AccordionItem.js +3 -8
  94. package/lib/components/Accordion/AccordionItem.js.map +1 -1
  95. package/lib/components/Accordion/AccordionItem.mobile.d.ts +1 -4
  96. package/lib/components/Accordion/AccordionItem.mobile.js +2 -5
  97. package/lib/components/Accordion/AccordionItem.mobile.js.map +1 -1
  98. package/lib/components/Accordion/AccordionItemProps.d.ts +5 -0
  99. package/lib/components/Accordion/AccordionItemProps.js +2 -0
  100. package/lib/components/Accordion/AccordionItemProps.js.map +1 -0
  101. package/lib/components/Accordion/AccordionItemsList.d.ts +1 -0
  102. package/lib/components/Accordion/AccordionItemsList.js +4 -0
  103. package/lib/components/Accordion/AccordionItemsList.js.map +1 -0
  104. package/lib/components/Blocks.d.ts +1 -0
  105. package/lib/components/Blocks.js +2 -0
  106. package/lib/components/Blocks.js.map +1 -1
  107. package/lib/components/ContentPage/filterBlocks.js +1 -2
  108. package/lib/components/ContentPage/filterBlocks.js.map +1 -1
  109. package/lib/components/ContentPage/filterBlocks.mobile.js +1 -3
  110. package/lib/components/ContentPage/filterBlocks.mobile.js.map +1 -1
  111. package/lib/components/ContentPage/renderBlock.js +2 -2
  112. package/lib/components/ContentPage/renderBlock.js.map +1 -1
  113. package/lib/components/Footer/Footer.mobile.js +8 -7
  114. package/lib/components/Footer/Footer.mobile.js.map +1 -1
  115. package/lib/components/Header/Header.mobile.js +5 -5
  116. package/lib/components/Header/Header.mobile.js.map +1 -1
  117. package/lib/components/InvestmentInfo/InvestmentInfo.d.ts +5 -0
  118. package/lib/components/InvestmentInfo/InvestmentInfo.fixture.d.ts +7 -0
  119. package/lib/components/InvestmentInfo/InvestmentInfo.js +47 -0
  120. package/lib/components/InvestmentInfo/InvestmentInfo.js.map +1 -0
  121. package/lib/components/InvestmentInfo/InvestmentInfoContent.d.ts +49 -0
  122. package/lib/components/InvestmentInfo/InvestmentInfoContent.js +2 -0
  123. package/lib/components/InvestmentInfo/InvestmentInfoContent.js.map +1 -0
  124. package/lib/components/OtherProducts/OtherProductsItem.js +4 -6
  125. package/lib/components/OtherProducts/OtherProductsItem.js.map +1 -1
  126. package/lib/components/StepsBlock/StepsBlock.fixture.d.ts +2 -1
  127. package/lib/components/StepsBlock/StepsBlock.js +2 -8
  128. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  129. package/lib/components/StepsBlock/StepsBlockStyleMaps.js +2 -2
  130. package/lib/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -1
  131. package/lib/components/StepsBlock/renderItems.d.ts +7 -2
  132. package/lib/components/StepsBlock/renderItems.js +6 -2
  133. package/lib/components/StepsBlock/renderItems.js.map +1 -1
  134. package/lib/components/StepsBlock/renderStepContent.d.ts +14 -0
  135. package/lib/components/StepsBlock/renderStepContent.js +17 -0
  136. package/lib/components/StepsBlock/renderStepContent.js.map +1 -0
  137. package/lib/components/TariffsTable/TariffsTable.js +11 -2
  138. package/lib/components/TariffsTable/TariffsTable.js.map +1 -1
  139. package/lib/model/BlockDecorator.d.ts +1 -0
  140. package/lib/model/BlockDecorator.js +1 -0
  141. package/lib/model/BlockDecorator.js.map +1 -1
  142. package/lib/model/BlocksRegistry.d.ts +4 -1
  143. package/lib/ui-kit/Foldable/DefaultFoldButton.d.ts +14 -0
  144. package/lib/ui-kit/Foldable/DefaultFoldButton.js +13 -0
  145. package/lib/ui-kit/Foldable/DefaultFoldButton.js.map +1 -0
  146. package/lib/ui-kit/Foldable/Foldable.d.ts +3 -10
  147. package/lib/ui-kit/Foldable/Foldable.js +9 -25
  148. package/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  149. package/lib/ui-kit/Foldable/FoldablePartProps.d.ts +4 -0
  150. package/lib/ui-kit/Foldable/FoldablePartProps.js +2 -0
  151. package/lib/ui-kit/Foldable/FoldablePartProps.js.map +1 -0
  152. package/lib/ui-kit/Foldable/FoldableSection.d.ts +5 -0
  153. package/lib/ui-kit/Foldable/FoldableSection.js +15 -0
  154. package/lib/ui-kit/Foldable/FoldableSection.js.map +1 -0
  155. package/mobile/bundle/bundle.umd.js +131 -153
  156. package/mobile/bundle/bundle.umd.min.js +1 -1
  157. package/mobile/bundle/components/Accordion/AccordionContent.d.ts +9 -7
  158. package/mobile/bundle/components/Accordion/AccordionItem.d.ts +1 -4
  159. package/mobile/bundle/components/Accordion/AccordionItemProps.d.ts +5 -0
  160. package/mobile/bundle/components/Accordion/AccordionItemsList.d.ts +1 -0
  161. package/mobile/bundle/components/InvestmentInfo/InvestmentInfo.d.ts +5 -0
  162. package/mobile/bundle/components/InvestmentInfo/InvestmentInfoContent.d.ts +49 -0
  163. package/mobile/bundle/components/StepsBlock/renderItems.d.ts +7 -2
  164. package/mobile/bundle/components/StepsBlock/renderStepContent.d.ts +14 -0
  165. package/mobile/bundle/model/BlockDecorator.d.ts +1 -0
  166. package/mobile/bundle/model/BlocksRegistry.d.ts +4 -1
  167. package/mobile/bundle/ui-kit/Foldable/DefaultFoldButton.d.ts +14 -0
  168. package/mobile/bundle/ui-kit/Foldable/Foldable.d.ts +3 -10
  169. package/mobile/bundle/ui-kit/Foldable/FoldablePartProps.d.ts +4 -0
  170. package/mobile/bundle/ui-kit/Foldable/FoldableSection.d.ts +5 -0
  171. package/mobile/dist/components/Accordion/Accordion.js +5 -2
  172. package/mobile/dist/components/Accordion/Accordion.js.map +1 -1
  173. package/mobile/dist/components/Accordion/AccordionContent.d.ts +9 -7
  174. package/mobile/dist/components/Accordion/AccordionItem.d.ts +1 -4
  175. package/mobile/dist/components/Accordion/AccordionItem.js +2 -5
  176. package/mobile/dist/components/Accordion/AccordionItem.js.map +1 -1
  177. package/mobile/dist/components/Accordion/AccordionItemProps.d.ts +5 -0
  178. package/mobile/dist/components/Accordion/AccordionItemProps.js +2 -0
  179. package/mobile/dist/components/Accordion/AccordionItemProps.js.map +1 -0
  180. package/mobile/dist/components/Accordion/AccordionItemsList.d.ts +1 -0
  181. package/mobile/dist/components/Accordion/AccordionItemsList.js +6 -0
  182. package/mobile/dist/components/Accordion/AccordionItemsList.js.map +1 -0
  183. package/mobile/dist/components/ContentPage/filterBlocks.js +1 -3
  184. package/mobile/dist/components/ContentPage/filterBlocks.js.map +1 -1
  185. package/mobile/dist/components/ContentPage/renderBlock.js +1 -1
  186. package/mobile/dist/components/ContentPage/renderBlock.js.map +1 -1
  187. package/mobile/dist/components/Footer/Footer.js +8 -7
  188. package/mobile/dist/components/Footer/Footer.js.map +1 -1
  189. package/mobile/dist/components/Header/Header.js +5 -5
  190. package/mobile/dist/components/Header/Header.js.map +1 -1
  191. package/mobile/dist/components/InvestmentInfo/InvestmentInfo.d.ts +5 -0
  192. package/mobile/dist/components/InvestmentInfo/InvestmentInfo.js +49 -0
  193. package/mobile/dist/components/InvestmentInfo/InvestmentInfo.js.map +1 -0
  194. package/mobile/dist/components/InvestmentInfo/InvestmentInfoContent.d.ts +49 -0
  195. package/mobile/dist/components/InvestmentInfo/InvestmentInfoContent.js +2 -0
  196. package/mobile/dist/components/InvestmentInfo/InvestmentInfoContent.js.map +1 -0
  197. package/mobile/dist/components/OtherProducts/OtherProductsItem.js +4 -6
  198. package/mobile/dist/components/OtherProducts/OtherProductsItem.js.map +1 -1
  199. package/mobile/dist/components/StepsBlock/StepsBlockStyleMaps.js +2 -2
  200. package/mobile/dist/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -1
  201. package/mobile/dist/components/StepsBlock/renderItems.d.ts +7 -2
  202. package/mobile/dist/components/StepsBlock/renderItems.js +5 -1
  203. package/mobile/dist/components/StepsBlock/renderItems.js.map +1 -1
  204. package/mobile/dist/components/StepsBlock/renderStepContent.d.ts +14 -0
  205. package/mobile/dist/components/StepsBlock/renderStepContent.js +20 -0
  206. package/mobile/dist/components/StepsBlock/renderStepContent.js.map +1 -0
  207. package/mobile/dist/model/BlockDecorator.d.ts +1 -0
  208. package/mobile/dist/model/BlockDecorator.js +2 -1
  209. package/mobile/dist/model/BlockDecorator.js.map +1 -1
  210. package/mobile/dist/model/BlocksRegistry.d.ts +4 -1
  211. package/mobile/dist/ui-kit/Foldable/DefaultFoldButton.d.ts +14 -0
  212. package/mobile/dist/ui-kit/Foldable/DefaultFoldButton.js +16 -0
  213. package/mobile/dist/ui-kit/Foldable/DefaultFoldButton.js.map +1 -0
  214. package/mobile/dist/ui-kit/Foldable/Foldable.d.ts +3 -10
  215. package/mobile/dist/ui-kit/Foldable/Foldable.js +7 -23
  216. package/mobile/dist/ui-kit/Foldable/Foldable.js.map +1 -1
  217. package/mobile/dist/ui-kit/Foldable/FoldablePartProps.d.ts +4 -0
  218. package/mobile/dist/ui-kit/Foldable/{FoldButtonProps.js → FoldablePartProps.js} +1 -1
  219. package/mobile/dist/ui-kit/Foldable/FoldablePartProps.js.map +1 -0
  220. package/mobile/dist/ui-kit/Foldable/FoldableSection.d.ts +5 -0
  221. package/mobile/dist/ui-kit/Foldable/FoldableSection.js +17 -0
  222. package/mobile/dist/ui-kit/Foldable/FoldableSection.js.map +1 -0
  223. package/mobile/lib/components/Accordion/Accordion.js +5 -2
  224. package/mobile/lib/components/Accordion/Accordion.js.map +1 -1
  225. package/mobile/lib/components/Accordion/AccordionContent.d.ts +9 -7
  226. package/mobile/lib/components/Accordion/AccordionItem.d.ts +1 -4
  227. package/mobile/lib/components/Accordion/AccordionItem.js +2 -5
  228. package/mobile/lib/components/Accordion/AccordionItem.js.map +1 -1
  229. package/mobile/lib/components/Accordion/AccordionItemProps.d.ts +5 -0
  230. package/mobile/lib/components/Accordion/AccordionItemProps.js +2 -0
  231. package/mobile/lib/components/Accordion/AccordionItemProps.js.map +1 -0
  232. package/mobile/lib/components/Accordion/AccordionItemsList.d.ts +1 -0
  233. package/mobile/lib/components/Accordion/AccordionItemsList.js +4 -0
  234. package/mobile/lib/components/Accordion/AccordionItemsList.js.map +1 -0
  235. package/mobile/lib/components/ContentPage/filterBlocks.js +1 -3
  236. package/mobile/lib/components/ContentPage/filterBlocks.js.map +1 -1
  237. package/mobile/lib/components/ContentPage/renderBlock.js +2 -2
  238. package/mobile/lib/components/ContentPage/renderBlock.js.map +1 -1
  239. package/mobile/lib/components/Footer/Footer.js +8 -7
  240. package/mobile/lib/components/Footer/Footer.js.map +1 -1
  241. package/mobile/lib/components/Header/Header.js +5 -5
  242. package/mobile/lib/components/Header/Header.js.map +1 -1
  243. package/mobile/lib/components/InvestmentInfo/InvestmentInfo.d.ts +5 -0
  244. package/mobile/lib/components/InvestmentInfo/InvestmentInfo.js +47 -0
  245. package/mobile/lib/components/InvestmentInfo/InvestmentInfo.js.map +1 -0
  246. package/mobile/lib/components/InvestmentInfo/InvestmentInfoContent.d.ts +49 -0
  247. package/mobile/lib/components/InvestmentInfo/InvestmentInfoContent.js +2 -0
  248. package/mobile/lib/components/InvestmentInfo/InvestmentInfoContent.js.map +1 -0
  249. package/mobile/lib/components/OtherProducts/OtherProductsItem.js +4 -6
  250. package/mobile/lib/components/OtherProducts/OtherProductsItem.js.map +1 -1
  251. package/mobile/lib/components/StepsBlock/StepsBlockStyleMaps.js +2 -2
  252. package/mobile/lib/components/StepsBlock/StepsBlockStyleMaps.js.map +1 -1
  253. package/mobile/lib/components/StepsBlock/renderItems.d.ts +7 -2
  254. package/mobile/lib/components/StepsBlock/renderItems.js +6 -2
  255. package/mobile/lib/components/StepsBlock/renderItems.js.map +1 -1
  256. package/mobile/lib/components/StepsBlock/renderStepContent.d.ts +14 -0
  257. package/mobile/lib/components/StepsBlock/renderStepContent.js +17 -0
  258. package/mobile/lib/components/StepsBlock/renderStepContent.js.map +1 -0
  259. package/mobile/lib/model/BlockDecorator.d.ts +1 -0
  260. package/mobile/lib/model/BlockDecorator.js +1 -0
  261. package/mobile/lib/model/BlockDecorator.js.map +1 -1
  262. package/mobile/lib/model/BlocksRegistry.d.ts +4 -1
  263. package/mobile/lib/ui-kit/Foldable/DefaultFoldButton.d.ts +14 -0
  264. package/mobile/lib/ui-kit/Foldable/DefaultFoldButton.js +13 -0
  265. package/mobile/lib/ui-kit/Foldable/DefaultFoldButton.js.map +1 -0
  266. package/mobile/lib/ui-kit/Foldable/Foldable.d.ts +3 -10
  267. package/mobile/lib/ui-kit/Foldable/Foldable.js +9 -25
  268. package/mobile/lib/ui-kit/Foldable/Foldable.js.map +1 -1
  269. package/mobile/lib/ui-kit/Foldable/FoldablePartProps.d.ts +4 -0
  270. package/mobile/lib/ui-kit/Foldable/FoldablePartProps.js +2 -0
  271. package/mobile/lib/ui-kit/Foldable/FoldablePartProps.js.map +1 -0
  272. package/mobile/lib/ui-kit/Foldable/FoldableSection.d.ts +5 -0
  273. package/mobile/lib/ui-kit/Foldable/FoldableSection.js +15 -0
  274. package/mobile/lib/ui-kit/Foldable/FoldableSection.js.map +1 -0
  275. package/mobile/src/common.css +11 -3
  276. package/mobile/src/components/Accordion/Accordion.tsx +17 -7
  277. package/mobile/src/components/Accordion/AccordionContent.ts +10 -7
  278. package/mobile/src/components/Accordion/AccordionItem.tsx +34 -30
  279. package/mobile/src/components/Accordion/AccordionItemProps.ts +6 -0
  280. package/mobile/src/components/Accordion/AccordionItemsList.tsx +5 -0
  281. package/mobile/src/components/ContentPage/filterBlocks.ts +1 -3
  282. package/mobile/src/components/ContentPage/renderBlock.tsx +2 -2
  283. package/mobile/src/components/ExchangeRateTile/ExchangeRateTile.ui.json +8 -1
  284. package/mobile/src/components/Footer/Footer.tsx +15 -13
  285. package/mobile/src/components/GracePeriod/GracePeriod.ui.json +5 -0
  286. package/mobile/src/components/Header/Header.tsx +16 -11
  287. package/mobile/src/components/InvestmentInfo/InvestmentInfo.example.json +48 -0
  288. package/mobile/src/components/InvestmentInfo/InvestmentInfo.tsx +149 -0
  289. package/mobile/src/components/InvestmentInfo/InvestmentInfo.ui.json +16 -0
  290. package/mobile/src/components/InvestmentInfo/InvestmentInfoContent.ts +55 -0
  291. package/mobile/src/components/OtherProducts/OtherProductsItem.tsx +18 -15
  292. package/mobile/src/components/SafeDepositRental/SafeDepositRental.ui.json +8 -1
  293. package/mobile/src/components/StepsBlock/StepsBlockStyleMaps.ts +2 -2
  294. package/mobile/src/components/StepsBlock/renderItems.tsx +24 -15
  295. package/mobile/src/components/StepsBlock/renderStepContent.tsx +63 -0
  296. package/mobile/src/model/BlockDecorator.ts +2 -0
  297. package/mobile/src/model/BlocksRegistry.ts +4 -1
  298. package/mobile/src/ui-kit/Foldable/DefaultFoldButton.tsx +52 -0
  299. package/mobile/src/ui-kit/Foldable/Foldable.tsx +19 -67
  300. package/mobile/src/ui-kit/Foldable/FoldablePartProps.ts +4 -0
  301. package/mobile/src/ui-kit/Foldable/FoldableSection.tsx +30 -0
  302. package/package.json +2 -2
  303. package/src/common.css +11 -3
  304. package/src/components/Accordion/Accordion.mobile.tsx +17 -7
  305. package/src/components/Accordion/Accordion.tsx +12 -3
  306. package/src/components/Accordion/AccordionContent.ts +10 -7
  307. package/src/components/Accordion/AccordionItem.mobile.tsx +34 -30
  308. package/src/components/Accordion/AccordionItem.tsx +24 -23
  309. package/src/components/Accordion/AccordionItemProps.ts +6 -0
  310. package/src/components/Accordion/AccordionItemsList.tsx +5 -0
  311. package/src/components/Blocks.ts +2 -0
  312. package/src/components/ContentPage/filterBlocks.mobile.ts +1 -3
  313. package/src/components/ContentPage/filterBlocks.ts +1 -2
  314. package/src/components/ContentPage/renderBlock.tsx +2 -2
  315. package/src/components/ExchangeRateTile/ExchangeRateTile.ui.json +8 -1
  316. package/src/components/Footer/Footer.mobile.tsx +15 -13
  317. package/src/components/GracePeriod/GracePeriod.ui.json +5 -0
  318. package/src/components/Header/Header.mobile.tsx +16 -11
  319. package/src/components/InvestmentInfo/InvestmentInfo.example.json +48 -0
  320. package/src/components/InvestmentInfo/InvestmentInfo.fixture.tsx +107 -0
  321. package/src/components/InvestmentInfo/InvestmentInfo.tsx +149 -0
  322. package/src/components/InvestmentInfo/InvestmentInfo.ui.json +16 -0
  323. package/src/components/InvestmentInfo/InvestmentInfoContent.ts +55 -0
  324. package/src/components/OtherProducts/OtherProductsItem.tsx +18 -15
  325. package/src/components/SafeDepositRental/SafeDepositRental.ui.json +8 -1
  326. package/src/components/StepsBlock/StepsBlock.fixture.tsx +39 -25
  327. package/src/components/StepsBlock/StepsBlock.tsx +3 -49
  328. package/src/components/StepsBlock/StepsBlockStyleMaps.ts +2 -2
  329. package/src/components/StepsBlock/renderItems.tsx +24 -15
  330. package/src/components/StepsBlock/renderStepContent.tsx +63 -0
  331. package/src/components/TariffsTable/TariffsTable.tsx +32 -23
  332. package/src/model/BlockDecorator.ts +2 -0
  333. package/src/model/BlocksRegistry.ts +4 -1
  334. package/src/ui-kit/Foldable/DefaultFoldButton.tsx +52 -0
  335. package/src/ui-kit/Foldable/Foldable.tsx +19 -67
  336. package/src/ui-kit/Foldable/FoldablePartProps.ts +4 -0
  337. package/src/ui-kit/Foldable/FoldableSection.tsx +30 -0
  338. package/tailwind.config.cjs +5 -0
  339. package/bundle/components/ContentPage/isBlockInRegistry.d.ts +0 -2
  340. package/bundle/ui-kit/Foldable/DefaultButton.d.ts +0 -2
  341. package/bundle/ui-kit/Foldable/FoldButtonProps.d.ts +0 -12
  342. package/bundle/utils/getAccordionItems.d.ts +0 -1
  343. package/dist/components/ContentPage/isBlockInRegistry.d.ts +0 -2
  344. package/dist/components/ContentPage/isBlockInRegistry.js +0 -7
  345. package/dist/components/ContentPage/isBlockInRegistry.js.map +0 -1
  346. package/dist/ui-kit/Foldable/DefaultButton.d.ts +0 -2
  347. package/dist/ui-kit/Foldable/DefaultButton.js +0 -12
  348. package/dist/ui-kit/Foldable/DefaultButton.js.map +0 -1
  349. package/dist/ui-kit/Foldable/FoldButtonProps.d.ts +0 -12
  350. package/dist/ui-kit/Foldable/FoldButtonProps.js.map +0 -1
  351. package/dist/utils/getAccordionItems.d.ts +0 -1
  352. package/dist/utils/getAccordionItems.js +0 -13
  353. package/dist/utils/getAccordionItems.js.map +0 -1
  354. package/lib/components/ContentPage/isBlockInRegistry.d.ts +0 -2
  355. package/lib/components/ContentPage/isBlockInRegistry.js +0 -4
  356. package/lib/components/ContentPage/isBlockInRegistry.js.map +0 -1
  357. package/lib/ui-kit/Foldable/DefaultButton.d.ts +0 -2
  358. package/lib/ui-kit/Foldable/DefaultButton.js +0 -10
  359. package/lib/ui-kit/Foldable/DefaultButton.js.map +0 -1
  360. package/lib/ui-kit/Foldable/FoldButtonProps.d.ts +0 -12
  361. package/lib/ui-kit/Foldable/FoldButtonProps.js +0 -2
  362. package/lib/ui-kit/Foldable/FoldButtonProps.js.map +0 -1
  363. package/lib/utils/getAccordionItems.d.ts +0 -1
  364. package/lib/utils/getAccordionItems.js +0 -10
  365. package/lib/utils/getAccordionItems.js.map +0 -1
  366. package/mobile/bundle/components/ContentPage/isBlockInRegistry.d.ts +0 -2
  367. package/mobile/bundle/ui-kit/Foldable/DefaultButton.d.ts +0 -2
  368. package/mobile/bundle/ui-kit/Foldable/FoldButtonProps.d.ts +0 -12
  369. package/mobile/bundle/utils/getAccordionItems.d.ts +0 -1
  370. package/mobile/dist/components/ContentPage/isBlockInRegistry.d.ts +0 -2
  371. package/mobile/dist/components/ContentPage/isBlockInRegistry.js +0 -7
  372. package/mobile/dist/components/ContentPage/isBlockInRegistry.js.map +0 -1
  373. package/mobile/dist/ui-kit/Foldable/DefaultButton.d.ts +0 -2
  374. package/mobile/dist/ui-kit/Foldable/DefaultButton.js +0 -12
  375. package/mobile/dist/ui-kit/Foldable/DefaultButton.js.map +0 -1
  376. package/mobile/dist/ui-kit/Foldable/FoldButtonProps.d.ts +0 -12
  377. package/mobile/dist/ui-kit/Foldable/FoldButtonProps.js.map +0 -1
  378. package/mobile/dist/utils/getAccordionItems.d.ts +0 -1
  379. package/mobile/dist/utils/getAccordionItems.js +0 -13
  380. package/mobile/dist/utils/getAccordionItems.js.map +0 -1
  381. package/mobile/lib/components/ContentPage/isBlockInRegistry.d.ts +0 -2
  382. package/mobile/lib/components/ContentPage/isBlockInRegistry.js +0 -4
  383. package/mobile/lib/components/ContentPage/isBlockInRegistry.js.map +0 -1
  384. package/mobile/lib/ui-kit/Foldable/DefaultButton.d.ts +0 -2
  385. package/mobile/lib/ui-kit/Foldable/DefaultButton.js +0 -10
  386. package/mobile/lib/ui-kit/Foldable/DefaultButton.js.map +0 -1
  387. package/mobile/lib/ui-kit/Foldable/FoldButtonProps.d.ts +0 -12
  388. package/mobile/lib/ui-kit/Foldable/FoldButtonProps.js +0 -2
  389. package/mobile/lib/ui-kit/Foldable/FoldButtonProps.js.map +0 -1
  390. package/mobile/lib/utils/getAccordionItems.d.ts +0 -1
  391. package/mobile/lib/utils/getAccordionItems.js +0 -10
  392. package/mobile/lib/utils/getAccordionItems.js.map +0 -1
  393. package/mobile/src/components/ContentPage/isBlockInRegistry.ts +0 -5
  394. package/mobile/src/ui-kit/Foldable/DefaultButton.tsx +0 -27
  395. package/mobile/src/ui-kit/Foldable/FoldButtonProps.ts +0 -13
  396. package/mobile/src/utils/getAccordionItems.ts +0 -10
  397. package/src/components/ContentPage/isBlockInRegistry.ts +0 -5
  398. package/src/ui-kit/Foldable/DefaultButton.tsx +0 -27
  399. package/src/ui-kit/Foldable/FoldButtonProps.ts +0 -13
  400. package/src/utils/getAccordionItems.ts +0 -10
@@ -228,6 +228,10 @@
228
228
  return JSXTmpl;
229
229
  };
230
230
 
231
+ function style2className(style) {
232
+ return style ? style.filter(Boolean).join(' ') : '';
233
+ }
234
+
231
235
  const HeadingClass = {
232
236
  h0: 'text-m-title',
233
237
  h1: 'text-m-title',
@@ -242,10 +246,6 @@
242
246
  return (jsx(Tag, { className: `font-sans font-medium m-0 ${HeadingClass[headingType]} ${className || ''}`, children: title }));
243
247
  });
244
248
 
245
- function style2className(style) {
246
- return style ? style.filter(Boolean).join(' ') : '';
247
- }
248
-
249
249
  const svgUseStyleMap = {
250
250
  normal: 'text-primary-main',
251
251
  black: 'text-black',
@@ -935,44 +935,30 @@
935
935
  return (jsx(EmbeddedBlock, { className: `${className} ${classNameBlock}`, context: context, ...rest }, `block_${i}`));
936
936
  };
937
937
 
938
- const clamp = (value, min, max) => Math.max(min, Math.min(value, max));
939
-
940
- const DefaultButton = JSX(({ icon, label, dataTheme = '', onClick }) => {
941
- return (jsxs("button", { className: "border-none bg-primary-main hover:bg-primary-hover px-0 py-5 mb-[1px] w-full font-sans text-white flex justify-center cursor-pointer", "data-theme": dataTheme, onClick: onClick, children: [jsx("span", { className: "text-h4 pr-3", children: label }), icon ? (jsx(Img, { image: {
942
- icon,
943
- iconVersion: 'white',
944
- }, className: "flex-shrink-0 my-auto", width: "20", height: "20", asSVG: true })) : null] }));
938
+ const Foldable = JSX(({ isFoldButtonOnTop = false, unfoldedByDefault = false, renderFoldableSection, renderFoldButton, }) => {
939
+ const [isUnfolded, setIsUnfolded] = useState(unfoldedByDefault);
940
+ const onToggle = useCallback(() => {
941
+ setIsUnfolded((_) => !_);
942
+ }, []);
943
+ const sectionNode = renderFoldableSection({ isUnfolded, onToggle });
944
+ const buttonNode = renderFoldButton ? renderFoldButton({ isUnfolded, onToggle }) : null;
945
+ return isFoldButtonOnTop ? (jsxs("div", { children: [buttonNode, sectionNode] })) : (jsxs("div", { children: [sectionNode, buttonNode] }));
945
946
  });
946
947
 
947
- const Foldable = JSX(({ blocks = [], hiddenBlocksNum = 0, isFoldButtonOnTop = false, unfoldedByDefault = false, containerClassName = '', blockWrapper = (_) => _, renderFoldButton = renderDefaultFoldButton, }) => {
948
- const [isUnfolded, setIsUnfolded] = useState(unfoldedByDefault);
949
- const blocksToHide = clamp(hiddenBlocksNum, 0, blocks?.length);
950
- const visibleBlocks = blocks.slice(0, blocks.length - blocksToHide);
951
- const hiddenBlocks = blocksToHide > 0 ? blocks.slice(-blocksToHide) : [];
948
+ const FoldableSection = JSX(({ className = '', isUnfolded, children }) => {
952
949
  const containerRef = useRef(null);
953
- const onToggle = () => {
954
- setIsUnfolded(!isUnfolded);
950
+ useEffect(() => {
955
951
  if (containerRef.current) {
956
952
  containerRef.current.style.maxHeight = isUnfolded
957
- ? ''
958
- : `${containerRef.current.scrollHeight}px`;
953
+ ? `${containerRef.current.scrollHeight}px`
954
+ : '';
959
955
  }
960
- };
961
- const buttonNode = hiddenBlocksNum ? renderFoldButton({ isUnfolded, onToggle }) : null;
962
- const blocksNode = blockWrapper(jsxs("div", { children: [visibleBlocks, jsx("div", { ref: containerRef, className: `transition-max-h duration-300 overflow-hidden max-h-0 ${containerClassName}`, children: hiddenBlocks })] }));
963
- return (jsx("div", { children: isFoldButtonOnTop ? (jsxs("div", { children: [buttonNode, blocksNode] })) : (jsxs("div", { children: [blocksNode, buttonNode] })) }));
956
+ }, [isUnfolded]);
957
+ return (jsx("div", { ref: containerRef, className: `transition-max-h duration-300 overflow-hidden max-h-0 ${className}`, children: children }));
964
958
  });
965
- const renderDefaultFoldButton = (props) => {
966
- const labels = ['Развернуть', 'Скрыть'];
967
- const icons = ['ArrowDownIcon', 'ArrowUpIcon'];
968
- return (jsx(DefaultButton, { icon: icons[Number(props.isUnfolded)], label: labels[Number(props.isUnfolded)], onClick: props.onToggle }));
969
- };
970
959
 
971
960
  const icons = ['PlusIcon', 'MinusIcon'];
972
- const AccordionItem = JSX(({ label = '', labelIcon, blocks, bordered, context }) => {
973
- const foldableBlocks = blocks ? renderBlocksList$1({ context, blocks, className: '!px-0' }) : [];
974
- return (jsx("li", { className: `${borderedLiClass(bordered)} border-solid border-main-divider`, children: jsx(Foldable, { hiddenBlocksNum: foldableBlocks.length, blocks: foldableBlocks, isFoldButtonOnTop: true, containerClassName: "flex flex-wrap group-last:last:pb-0", renderFoldButton: (props) => (jsx(FoldButton, { className: bordered ? '' : 'py-[14px] px-0', icon: icons[Number(props.isUnfolded)], label: label, primaryIcon: labelIcon, hasContent: Boolean(blocks?.length), onClick: props.onToggle })) }) }));
975
- });
961
+ const AccordionItem = JSX(({ label = '', labelIcon, bordered, children, hasContent = true }) => (jsx("li", { className: `${borderedLiClass(bordered)} border-solid border-main-divider`, children: jsx(Foldable, { isFoldButtonOnTop: true, renderFoldableSection: ({ isUnfolded }) => (jsx(FoldableSection, { className: "flex flex-wrap group-last:last:pb-0", isUnfolded: isUnfolded, children: children })), renderFoldButton: ({ isUnfolded, onToggle }) => (jsx(FoldButton, { className: bordered ? '' : 'py-[14px] px-0', label: label, icon: icons[Number(isUnfolded)], primaryIcon: labelIcon, hasContent: hasContent, onClick: onToggle })) }) })));
976
962
  const FoldButton = JSX(({ className, hasContent, icon, label, primaryIcon, onClick }) => (jsxs("button", { className: `border-none bg-transparent flex justify-between text-left w-full font-sans text-primary-text
977
963
  ${className}
978
964
  ${hasContent ? 'group cursor-pointer' : ''}`, onClick: onClick, children: [jsxs("span", { className: `text-m-title-xs font-medium pr-2.5 flex ${hasContent ? 'group-hover:text-primary-main' : ''}`, children: [primaryIcon ? (jsx(Img, { image: primaryIcon, className: "mr-3 flex-shrink-0", width: "24", height: "24", asSVG: true })) : null, label] }), hasContent ? (jsx(Img, { className: "flex-shrink-0", image: icon, width: "24", height: "24", asSVG: true })) : null] })));
@@ -980,8 +966,10 @@
980
966
  return bordered ? 'border p-4 rounded mb-4' : 'border-0 border-b last:border-b-0';
981
967
  }
982
968
 
983
- const Accordion = JSX(({ title, description, accordionItems, context, className = '', bordered }) => {
984
- return (jsxs("section", { className: `py-6 px-4 font-sans bg-white text-primary-text ${className}`, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-2 text-center", title: title }) : null, description ? jsx("div", { className: "mb-5 text-m-light 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] }));
969
+ const AccordionItemsList = JSX(({ children }) => (jsx("ul", { className: "list-none m-0 p-0", children: children })));
970
+
971
+ const Accordion = JSX(({ title, description, accordionItems, context, className = '', bordered, ...rest }) => {
972
+ return (jsxs(BlockWrapper, { context: context, className: `py-6 px-4 font-sans bg-white text-primary-text ${className}`, ...rest, children: [title ? jsx(Heading, { headingType: "h3", className: "mb-2 text-center", title: title }) : null, description ? jsx("div", { className: "mb-5 text-m-light text-center", children: description }) : null, accordionItems?.length ? (jsx(AccordionItemsList, { children: accordionItems.map((item, i) => (jsx(AccordionItem, { context: context, bordered: bordered, hasContent: Boolean(item.blocks?.length), ...item, children: renderBlocksList$1({ blocks: item.blocks, context, className: '!p-0 mb-5' }) }, `AccordionItem_${i}`))) })) : null] }));
985
973
  });
986
974
 
987
975
  const GRADIENT = 'bg-gradient-to-r from-main-gradient-start to-main-gradient-end';
@@ -1024,108 +1012,6 @@
1024
1012
  return orientation === 'horizontal' ? (jsx(SwipeListControl, { context: context, onSlideChange: handleSlideChange, children: tableColumns })) : (tableColumns);
1025
1013
  });
1026
1014
 
1027
- const SVG_COLOR = {
1028
- 'bg-white': 'text-primary-main',
1029
- transparent: 'text-white',
1030
- };
1031
- const TEXT_COLOR = {
1032
- 'bg-white': 'text-black',
1033
- transparent: 'text-white',
1034
- };
1035
- const Logo = JSX(({ className = '', href, children, targetBlank, bgColor = 'bg-white', showTitle = true }) => {
1036
- return (jsxs("a", { className: `inline-flex items-center font-sans no-underline ${className}`, href: href || 'https://rshb.ru/', target: targetBlank ? '_blank' : '_self', "aria-label": "\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A", children: [jsx(Img, { image: { icon: 'LogoIcon', iconVersion: SVG_COLOR[bgColor] }, className: `${SVG_COLOR[bgColor]} w-10 h-[38px]`, asSVG: true }), showTitle ? (jsx("span", { className: `${TEXT_COLOR[bgColor]} text-s font-medium ml-2.5`, children: children || 'Россельхозбанк' })) : null] }));
1037
- });
1038
-
1039
- const MobileAppTile = JSX(({ className = '', title = 'Мобильное приложение', description, href = '#' }) => {
1040
- return (jsx("div", { className: `col-span-12 rounded-md cursor-pointer p-4 mt-6 mb-6 bg-secondary-light font-sans ${className}`, children: href ? (jsxs("div", { className: "flex", children: [jsx("div", { className: "flex justify-center align-middle rounded-md bg-primary-main w-[50px] h-[50px]", children: jsx(Logo, { className: "w-[33px]", bgColor: "transparent", showTitle: true }) }), jsxs("a", { href: href, target: "_blank", className: "flex flex-col justify-center pl-3", children: [jsx("div", { className: "text-s font-medium mb-[3px]", children: title }), jsx("div", { className: "text-s text-secondary-text", children: description })] })] })) : null }));
1041
- });
1042
-
1043
- const Contacts = JSX(({ className = '', items, hasButton, context }) => {
1044
- const router = context.useRouter();
1045
- const { handlerDecorator } = context;
1046
- return (jsxs("div", { className: className, children: [items?.length ? items.map(renderContact) : null, hasButton ? (jsx(Button, { version: "primary", className: "mb-6 w-full", ...useLink({ router, handlerDecorator }, {
1047
- text: 'Обратная связь',
1048
- href: '/',
1049
- target: '_blank',
1050
- }), ariaLabel: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C" })) : null] }));
1051
- });
1052
- const renderContact = (item, index) => {
1053
- const { type, text, description } = item;
1054
- return (jsxs("div", { className: "mb-4", children: [jsx("div", { children: renderText(type, text) }), jsx("div", { className: "mt-1 text-s-light text-secondary-text", children: description })] }, String(index)));
1055
- };
1056
- const renderText = (type, text = '') => {
1057
- switch (type) {
1058
- case 'tel':
1059
- return (jsx("a", { className: "text-h6 text-primary-text hover:text-primary-main no-underline", href: `tel:${formatTel(text)}`, children: text }));
1060
- case 'email':
1061
- return (jsx("a", { className: "text-xl-light text-primary-text no-underline", href: `mailto:${text}`, children: text }));
1062
- default:
1063
- return jsx("span", { children: text });
1064
- }
1065
- };
1066
- const formatTel = (s) => s.replaceAll(/\D/g, '');
1067
-
1068
- const HorizontalNavigationLink = JSX(({ className = '', index, text, href, target, onClick }) => (jsx("a", { className: `text-secondary-text hover:text-primary-main inline-block no-underline ${className}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
1069
-
1070
- const HorizontalNavigation = JSX(({ title, links, className = '', context }) => {
1071
- const router = context.useRouter();
1072
- const { handlerDecorator } = context;
1073
- return (jsxs("div", { className: className, children: [jsx("span", { className: "text-primary-text text-s font-medium", children: title }), links?.length ? (jsx("div", { className: "flex flex-col gap-2 pt-3", children: links.map((_, i) => (jsx(HorizontalNavigationLink, { index: i, className: "text-s", ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null] }));
1074
- });
1075
-
1076
- const ICONS_MAP = [
1077
- {
1078
- origins: ['t.me', 'telegram.org'],
1079
- icon: { icon: 'TelegramIcon' },
1080
- label: 'Телеграм',
1081
- },
1082
- {
1083
- origins: ['vk.com'],
1084
- icon: { icon: 'VKIcon' },
1085
- label: 'ВКонтакте',
1086
- },
1087
- {
1088
- origins: ['ok.ru'],
1089
- icon: { icon: 'OkIcon' },
1090
- label: 'Одноклассники',
1091
- },
1092
- {
1093
- origins: ['apps.apple.com'],
1094
- icon: { icon: 'AppleIcon' },
1095
- label: 'App Store',
1096
- },
1097
- {
1098
- origins: ['play.google.com'],
1099
- icon: { icon: 'PlayMarketIcon' },
1100
- label: 'Google Play',
1101
- },
1102
- ];
1103
- const MediaButton = JSX(({ href, version = 'primary' }) => {
1104
- const { icon, label } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
1105
- if (!icon) {
1106
- return null;
1107
- }
1108
- const classes = version === 'secondary'
1109
- ? 'bg-white hover:bg-secondary-hover'
1110
- : 'border-solid border-[1px] border-main-divider hover:border-transparent hover:bg-primary-main';
1111
- const isPrimary = version === 'primary';
1112
- return (jsx("a", { className: `flex items-center justify-center rounded-md w-14 h-14 group box-border ${classes} ${isPrimary ? 'hover:text-black' : ''}`, href: href, "aria-label": label, target: "_blank", rel: "noopener noreferrer", children: icon ? (jsx(Img, { image: icon, imageClassName: "group-hover:text-white", width: "24", height: "24", asSVG: true })) : null }));
1113
- });
1114
-
1115
- const SocialMedia = JSX(({ className, media, version, context }) => {
1116
- const router = context.useRouter();
1117
- const { handlerDecorator } = context;
1118
- return (jsx("div", { className: `flex gap-2 items-start justify-start pt-6 pb-6 ${className || ''}`, children: media?.map((_, index) => (jsx(MediaButton, { version: version, ...useLink({ router, handlerDecorator }, _) }, String(index)))) }));
1119
- });
1120
-
1121
- const TextInformationLink = JSX(({ className = '', index, text, href, target, onClick }) => (jsx("a", { className: `text-xs-light text-secondary-text visited:text-secondary-text hover:text-primary-main inline-block no-underline max-w-[292px] ${className}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
1122
-
1123
- const TextInformation = JSX(({ className, links, context }) => {
1124
- const router = context.useRouter();
1125
- const { handlerDecorator } = context;
1126
- return (jsxs("div", { className: `${className || ''}`, children: [jsx("div", { className: "py-6", children: jsx("span", { className: "text-xs-light text-secondary-text", children: `\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.` }) }), links?.length ? (jsx("div", { className: `flex flex-col justify-start items-start gap-2`, children: links.map((_, i) => (jsx(TextInformationLink, { index: i, className: "", ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null] }));
1127
- });
1128
-
1129
1015
  const consistentDataMap = new Map();
1130
1016
  function useAsyncData(key, fetcher, { fallback } = {}) {
1131
1017
  const args = useMemo(() => keyToArgs(key), [key]);
@@ -1230,21 +1116,113 @@
1230
1116
  return jsx(SearchBarInner, { className: className, isMobile: true });
1231
1117
  });
1232
1118
 
1233
- const getAccordionItems = (items) => items?.map((item) => ({
1234
- label: item.text || '',
1235
- blocks: [
1236
- {
1237
- accordionBlockType: 'LinkList',
1238
- documents: item.items || [],
1239
- },
1240
- ],
1241
- }));
1119
+ const SVG_COLOR = {
1120
+ 'bg-white': 'text-primary-main',
1121
+ transparent: 'text-white',
1122
+ };
1123
+ const TEXT_COLOR = {
1124
+ 'bg-white': 'text-black',
1125
+ transparent: 'text-white',
1126
+ };
1127
+ const Logo = JSX(({ className = '', href, children, targetBlank, bgColor = 'bg-white', showTitle = true }) => {
1128
+ return (jsxs("a", { className: `inline-flex items-center font-sans no-underline ${className}`, href: href || 'https://rshb.ru/', target: targetBlank ? '_blank' : '_self', "aria-label": "\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A", children: [jsx(Img, { image: { icon: 'LogoIcon', iconVersion: SVG_COLOR[bgColor] }, className: `${SVG_COLOR[bgColor]} w-10 h-[38px]`, asSVG: true }), showTitle ? (jsx("span", { className: `${TEXT_COLOR[bgColor]} text-s font-medium ml-2.5`, children: children || 'Россельхозбанк' })) : null] }));
1129
+ });
1130
+
1131
+ const MobileAppTile = JSX(({ className = '', title = 'Мобильное приложение', description, href = '#' }) => {
1132
+ return (jsx("div", { className: `col-span-12 rounded-md cursor-pointer p-4 mt-6 mb-6 bg-secondary-light font-sans ${className}`, children: href ? (jsxs("div", { className: "flex", children: [jsx("div", { className: "flex justify-center align-middle rounded-md bg-primary-main w-[50px] h-[50px]", children: jsx(Logo, { className: "w-[33px]", bgColor: "transparent", showTitle: true }) }), jsxs("a", { href: href, target: "_blank", className: "flex flex-col justify-center pl-3", children: [jsx("div", { className: "text-s font-medium mb-[3px]", children: title }), jsx("div", { className: "text-s text-secondary-text", children: description })] })] })) : null }));
1133
+ });
1134
+
1135
+ const Contacts = JSX(({ className = '', items, hasButton, context }) => {
1136
+ const router = context.useRouter();
1137
+ const { handlerDecorator } = context;
1138
+ return (jsxs("div", { className: className, children: [items?.length ? items.map(renderContact) : null, hasButton ? (jsx(Button, { version: "primary", className: "mb-6 w-full", ...useLink({ router, handlerDecorator }, {
1139
+ text: 'Обратная связь',
1140
+ href: '/',
1141
+ target: '_blank',
1142
+ }), ariaLabel: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C" })) : null] }));
1143
+ });
1144
+ const renderContact = (item, index) => {
1145
+ const { type, text, description } = item;
1146
+ return (jsxs("div", { className: "mb-4", children: [jsx("div", { children: renderText(type, text) }), jsx("div", { className: "mt-1 text-s-light text-secondary-text", children: description })] }, String(index)));
1147
+ };
1148
+ const renderText = (type, text = '') => {
1149
+ switch (type) {
1150
+ case 'tel':
1151
+ return (jsx("a", { className: "text-h6 text-primary-text hover:text-primary-main no-underline", href: `tel:${formatTel(text)}`, children: text }));
1152
+ case 'email':
1153
+ return (jsx("a", { className: "text-xl-light text-primary-text no-underline", href: `mailto:${text}`, children: text }));
1154
+ default:
1155
+ return jsx("span", { children: text });
1156
+ }
1157
+ };
1158
+ const formatTel = (s) => s.replaceAll(/\D/g, '');
1159
+
1160
+ const HorizontalNavigationLink = JSX(({ className = '', index, text, href, target, onClick }) => (jsx("a", { className: `text-secondary-text hover:text-primary-main inline-block no-underline ${className}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
1161
+
1162
+ const HorizontalNavigation = JSX(({ title, links, className = '', context }) => {
1163
+ const router = context.useRouter();
1164
+ const { handlerDecorator } = context;
1165
+ return (jsxs("div", { className: className, children: [jsx("span", { className: "text-primary-text text-s font-medium", children: title }), links?.length ? (jsx("div", { className: "flex flex-col gap-2 pt-3", children: links.map((_, i) => (jsx(HorizontalNavigationLink, { index: i, className: "text-s", ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null] }));
1166
+ });
1167
+
1168
+ const ICONS_MAP = [
1169
+ {
1170
+ origins: ['t.me', 'telegram.org'],
1171
+ icon: { icon: 'TelegramIcon' },
1172
+ label: 'Телеграм',
1173
+ },
1174
+ {
1175
+ origins: ['vk.com'],
1176
+ icon: { icon: 'VKIcon' },
1177
+ label: 'ВКонтакте',
1178
+ },
1179
+ {
1180
+ origins: ['ok.ru'],
1181
+ icon: { icon: 'OkIcon' },
1182
+ label: 'Одноклассники',
1183
+ },
1184
+ {
1185
+ origins: ['apps.apple.com'],
1186
+ icon: { icon: 'AppleIcon' },
1187
+ label: 'App Store',
1188
+ },
1189
+ {
1190
+ origins: ['play.google.com'],
1191
+ icon: { icon: 'PlayMarketIcon' },
1192
+ label: 'Google Play',
1193
+ },
1194
+ ];
1195
+ const MediaButton = JSX(({ href, version = 'primary' }) => {
1196
+ const { icon, label } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
1197
+ if (!icon) {
1198
+ return null;
1199
+ }
1200
+ const classes = version === 'secondary'
1201
+ ? 'bg-white hover:bg-secondary-hover'
1202
+ : 'border-solid border-[1px] border-main-divider hover:border-transparent hover:bg-primary-main';
1203
+ const isPrimary = version === 'primary';
1204
+ return (jsx("a", { className: `flex items-center justify-center rounded-md w-14 h-14 group box-border ${classes} ${isPrimary ? 'hover:text-black' : ''}`, href: href, "aria-label": label, target: "_blank", rel: "noopener noreferrer", children: icon ? (jsx(Img, { image: icon, imageClassName: "group-hover:text-white", width: "24", height: "24", asSVG: true })) : null }));
1205
+ });
1206
+
1207
+ const SocialMedia = JSX(({ className, media, version, context }) => {
1208
+ const router = context.useRouter();
1209
+ const { handlerDecorator } = context;
1210
+ return (jsx("div", { className: `flex gap-2 items-start justify-start pt-6 pb-6 ${className || ''}`, children: media?.map((_, index) => (jsx(MediaButton, { version: version, ...useLink({ router, handlerDecorator }, _) }, String(index)))) }));
1211
+ });
1212
+
1213
+ const TextInformationLink = JSX(({ className = '', index, text, href, target, onClick }) => (jsx("a", { className: `text-xs-light text-secondary-text visited:text-secondary-text hover:text-primary-main inline-block no-underline max-w-[292px] ${className}`, href: href, target: target, onClick: onClick, children: text || `Документ ${index}` })));
1214
+
1215
+ const TextInformation = JSX(({ className, links, context }) => {
1216
+ const router = context.useRouter();
1217
+ const { handlerDecorator } = context;
1218
+ return (jsxs("div", { className: `${className || ''}`, children: [jsx("div", { className: "py-6", children: jsx("span", { className: "text-xs-light text-secondary-text", children: `\u00a9\u00A02000-${new Date().getFullYear()}\u00A0АО \u00ABРоссельхозбанк\u00BB Генеральная лицензия Банка России \u2116\u00A03349 от\u00A012.08.2015\u00A0г.` }) }), links?.length ? (jsx("div", { className: `flex flex-col justify-start items-start gap-2`, children: links.map((_, i) => (jsx(TextInformationLink, { index: i, className: "", ...useLink({ router, handlerDecorator }, _) }, String(i)))) })) : null] }));
1219
+ });
1242
1220
 
1243
1221
  const Footer = JSX(({ className = '', documents, relatedEnterprises, contacts, socialMedia, context, horizontalNavigationTitle, page, }) => {
1244
1222
  const fallback = page?.fallback;
1245
1223
  const sitemap = useSitemap(fallback);
1246
1224
  const dispositions = sitemap?.dispositions;
1247
- return (jsxs("footer", { className: `font-sans px-4 py-[26px] bg-white ${className}`, children: [jsx(Contacts, { className: "overflow-hidden", items: contacts, context: context, hasButton: true }), jsx(Accordion, { context: context, className: "!p-0 mb-4", accordionItems: getAccordionItems(sitemap.topItems) }), jsx("div", { children: dispositions?.map(renderSubMenuItem) }), jsx(MobileAppTile, { context: context, title: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435", description: "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0434\u043B\u044F IOS \u0438 Android" }), jsx(SearchBar, { context: context, className: "grow" }), jsx(SocialMedia, { className: "pb-4", media: socialMedia, context: context }), jsx(HorizontalNavigation, { title: horizontalNavigationTitle, links: relatedEnterprises, context: context }), jsx(TextInformation, { links: documents, context: context })] }));
1225
+ return (jsxs("footer", { className: `font-sans px-4 py-[26px] bg-white ${className}`, children: [jsx(Contacts, { className: "overflow-hidden", items: contacts, context: context, hasButton: true }), jsx(AccordionItemsList, { children: sitemap.topItems?.map((item, i) => (jsx(AccordionItem, { context: context, label: item.text, children: jsx(LinkList, { context: context, documents: item.items }) }, String(i)))) }), jsx("div", { children: dispositions?.map(renderSubMenuItem) }), jsx(MobileAppTile, { context: context, title: "\u041C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435", description: "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0434\u043B\u044F IOS \u0438 Android" }), jsx(SearchBar, { context: context, className: "grow" }), jsx(SocialMedia, { className: "pb-4", media: socialMedia, context: context }), jsx(HorizontalNavigation, { title: horizontalNavigationTitle, links: relatedEnterprises, context: context }), jsx(TextInformation, { links: documents, context: context })] }));
1248
1226
  });
1249
1227
  const renderSubMenuItem = (menu, i) => {
1250
1228
  const { icon, href, text } = menu;
@@ -1324,11 +1302,10 @@
1324
1302
  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: "pl-0 pr-4 border-0 bg-transparent cursor-pointer", onClick: onClick, "aria-label": "\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u043D\u044E", children: jsx(Img, { image: { icon: 'BurgerIcon', iconVersion: bgColor === 'bg-white' ? 'black' : 'white' }, className: "text-primary-text w-6 h-6", width: "24", height: "24", asSVG: true }) }), jsx(Logo, { className: "mr-8", bgColor: bgColor })] }), jsx("button", { className: `${bgColor === 'bg-white' ? 'text-primary-main' : 'text-white'} text-s border-0 bg-transparent cursor-pointer`, children: "\u0412\u043E\u0439\u0442\u0438" })] })));
1325
1303
 
1326
1304
  const Header = JSX(({ className = '', defaultLocation, bgColor = 'bg-white', context, topItems, page }) => {
1305
+ const { handlerDecorator } = context;
1327
1306
  const router = context.useRouter();
1328
1307
  const fallback = page?.fallback;
1329
1308
  const sitemap = useSitemap(fallback);
1330
- const dispositions = sitemap?.dispositions;
1331
- const { handlerDecorator } = context;
1332
1309
  const mergedItems = mergeTopItems(sitemap.topItems, topItems);
1333
1310
  const activeTopItem = mergedItems.find(isTopItemActive(router));
1334
1311
  const subItems = activeTopItem?.items;
@@ -1339,7 +1316,7 @@
1339
1316
  ...useLink({ router, handlerDecorator }, _),
1340
1317
  active: _ === activeSubItem,
1341
1318
  bgColor,
1342
- }, i)) }) })] }), burgerMenuShow ? (jsx(HeaderBurger, { context: context, onClick: toggleBurgerMenu, burgerSubMenu: dispositions, defaultLocation: defaultLocation, children: jsx(Accordion, { context: context, accordionItems: getAccordionItems(sitemap.topItems), className: "!p-0 mb-4" }) })) : null] }));
1319
+ }, i)) }) })] }), burgerMenuShow ? (jsx(HeaderBurger, { context: context, onClick: toggleBurgerMenu, burgerSubMenu: sitemap?.dispositions, defaultLocation: defaultLocation, children: jsx(AccordionItemsList, { children: sitemap.topItems?.map((item, i) => (jsx(AccordionItem, { context: context, label: item.text, children: jsx(LinkList, { context: context, documents: item.items }) }, String(i)))) }) })) : null] }));
1343
1320
  });
1344
1321
  const renderSubItem = (item, i) => (jsx(HeaderItem, { className: "mr-8 whitespace-nowrap text-s", ...item }, String(i)));
1345
1322
 
@@ -1414,7 +1391,7 @@
1414
1391
  primary: {
1415
1392
  background: 'bg-white',
1416
1393
  title: 'text-primary-text',
1417
- description: 'text-secondary-text',
1394
+ description: '!text-secondary-text text-l-light',
1418
1395
  iconText: 'text-secondary-text',
1419
1396
  iconBackground: 'bg-main-divider',
1420
1397
  iconConnector: 'bg-secondary-light',
@@ -1423,7 +1400,7 @@
1423
1400
  secondary: {
1424
1401
  background: 'bg-primary-main',
1425
1402
  title: 'text-white',
1426
- description: 'text-white/80',
1403
+ description: '!text-white/80 text-l-light',
1427
1404
  iconText: 'text-white',
1428
1405
  iconBackground: 'bg-white/30',
1429
1406
  iconConnector: 'bg-white',
@@ -1576,8 +1553,9 @@
1576
1553
  });
1577
1554
 
1578
1555
  const DEFAULT_SLOT_NAME = null;
1556
+ const DEFAULT_ANCESTORS = [DEFAULT_SLOT_NAME];
1579
1557
 
1580
- function renderBlock(block, options, ancestors = [DEFAULT_SLOT_NAME]) {
1558
+ function renderBlock(block, options, ancestors = DEFAULT_ANCESTORS) {
1581
1559
  const { key, page, blockDecorator, blocksRegistry, context } = options;
1582
1560
  const { type } = block;
1583
1561
  if (!(type && type in blocksRegistry)) {