@redneckz/wildless-cms-uni-blocks 0.12.8 → 0.12.9

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 (511) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +48 -36
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  5. package/bundle/components/BenefitsBlock/BenefitsBlockContent.d.ts +2 -0
  6. package/bundle/components/BenefitsBlock/defaultIconSize.d.ts +1 -0
  7. package/bundle/components/BenefitsBlock/defaultIconSize.mobile.d.ts +1 -0
  8. package/bundle/components/BonusBenefitsBlock/renderBonusBenefits.mobile.d.ts +1 -1
  9. package/bundle/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +2 -1
  10. package/bundle/components/Footer/findIconByHref.d.ts +2 -0
  11. package/bundle/components/Footer/iconsMap.d.ts +7 -0
  12. package/bundle/model/HeadlineType.d.ts +5 -4
  13. package/bundle/ui-kit/Icon/IconProps.d.ts +3 -2
  14. package/bundle/ui-kit/Icon/RoundedIcon.d.ts +1 -0
  15. package/dist/components/ApplicationForm/ApplicationForm.js +1 -1
  16. package/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
  17. package/dist/components/ApplicationForm/ApplicationFormAcquiring.js +1 -1
  18. package/dist/components/ApplicationForm/ApplicationFormAcquiring.js.map +1 -1
  19. package/dist/components/ApplicationForm/ApplicationFormCredit.js +1 -1
  20. package/dist/components/ApplicationForm/ApplicationFormCredit.js.map +1 -1
  21. package/dist/components/ApplicationForm/ApplicationFormDeposit.js +1 -1
  22. package/dist/components/ApplicationForm/ApplicationFormDeposit.js.map +1 -1
  23. package/dist/components/ApplicationForm/ApplicationFormWed.js +1 -1
  24. package/dist/components/ApplicationForm/ApplicationFormWed.js.map +1 -1
  25. package/dist/components/ApplicationForm/renderAcquiringDataOrganization.js +1 -1
  26. package/dist/components/ApplicationForm/renderAcquiringDataOrganization.js.map +1 -1
  27. package/dist/components/ApplicationForm/renderAcquiringRegion.js +1 -1
  28. package/dist/components/ApplicationForm/renderAcquiringRegion.js.map +1 -1
  29. package/dist/components/ApplicationForm/renderBusinessCardDataOrganization.js +1 -1
  30. package/dist/components/ApplicationForm/renderBusinessCardDataOrganization.js.map +1 -1
  31. package/dist/components/ApplicationForm/renderCreditDataOrganization.js +1 -1
  32. package/dist/components/ApplicationForm/renderCreditDataOrganization.js.map +1 -1
  33. package/dist/components/ApplicationForm/renderCreditParameters.js +1 -1
  34. package/dist/components/ApplicationForm/renderCreditParameters.js.map +1 -1
  35. package/dist/components/ApplicationForm/renderQuestionsInterested.js +1 -1
  36. package/dist/components/ApplicationForm/renderQuestionsInterested.js.map +1 -1
  37. package/dist/components/ApplicationForm/renderRegion.js +1 -1
  38. package/dist/components/ApplicationForm/renderRegion.js.map +1 -1
  39. package/dist/components/ApplicationForm/renderRegionDepartment.js +1 -1
  40. package/dist/components/ApplicationForm/renderRegionDepartment.js.map +1 -1
  41. package/dist/components/ApplicationForm/renderSlideCheckboxes.js +1 -1
  42. package/dist/components/ApplicationForm/renderSlideCheckboxes.js.map +1 -1
  43. package/dist/components/ApplicationForm/renderSubmitButton.js +1 -1
  44. package/dist/components/ApplicationForm/renderSubmitButton.js.map +1 -1
  45. package/dist/components/ApplicationForm/renderWedDataOrganization.js +1 -1
  46. package/dist/components/ApplicationForm/renderWedDataOrganization.js.map +1 -1
  47. package/dist/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  48. package/dist/components/BenefitsBlock/BenefitsBlock.js +5 -5
  49. package/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  50. package/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +2 -0
  51. package/dist/components/BenefitsBlock/defaultIconSize.d.ts +1 -0
  52. package/dist/components/BenefitsBlock/defaultIconSize.js +4 -0
  53. package/dist/components/BenefitsBlock/defaultIconSize.js.map +1 -0
  54. package/dist/components/BenefitsBlock/defaultIconSize.mobile.d.ts +1 -0
  55. package/dist/components/BenefitsBlock/defaultIconSize.mobile.js +4 -0
  56. package/dist/components/BenefitsBlock/defaultIconSize.mobile.js.map +1 -0
  57. package/dist/components/Blocks.mobile.js +3 -1
  58. package/dist/components/Blocks.mobile.js.map +1 -1
  59. package/dist/components/BonusBenefitsBlock/renderBonusBenefits.mobile.d.ts +1 -1
  60. package/dist/components/BonusBenefitsBlock/renderBonusBenefits.mobile.js +1 -1
  61. package/dist/components/BonusBenefitsBlock/renderBonusBenefits.mobile.js.map +1 -1
  62. package/dist/components/CarouselProductCard/CarouselProductCard.js +1 -1
  63. package/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  64. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  65. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  66. package/dist/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +2 -1
  67. package/dist/components/CarouselTariffsCard/renderCardInfo.js +1 -2
  68. package/dist/components/CarouselTariffsCard/renderCardInfo.js.map +1 -1
  69. package/dist/components/Footer/Footer.mobile.js +7 -2
  70. package/dist/components/Footer/Footer.mobile.js.map +1 -1
  71. package/dist/components/Footer/MediaButton.js +2 -33
  72. package/dist/components/Footer/MediaButton.js.map +1 -1
  73. package/dist/components/Footer/findIconByHref.d.ts +2 -0
  74. package/dist/components/Footer/findIconByHref.js +6 -0
  75. package/dist/components/Footer/findIconByHref.js.map +1 -0
  76. package/dist/components/Footer/iconsMap.d.ts +7 -0
  77. package/dist/components/Footer/iconsMap.js +35 -0
  78. package/dist/components/Footer/iconsMap.js.map +1 -0
  79. package/dist/components/RollupItem/RollupItem.js +1 -2
  80. package/dist/components/RollupItem/RollupItem.js.map +1 -1
  81. package/dist/components/TextBlock/TextBlock.js +3 -3
  82. package/dist/components/TextBlock/TextBlock.js.map +1 -1
  83. package/dist/model/HeadlineType.d.ts +5 -4
  84. package/dist/ui-kit/CookiePopup/CookiePopup.js +1 -1
  85. package/dist/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  86. package/dist/ui-kit/Icon/IconProps.d.ts +3 -2
  87. package/dist/ui-kit/Icon/RoundedIcon.d.ts +1 -0
  88. package/dist/ui-kit/Icon/RoundedIcon.js +9 -6
  89. package/dist/ui-kit/Icon/RoundedIcon.js.map +1 -1
  90. package/dist/ui-kit/Select/Select.js +1 -1
  91. package/dist/ui-kit/Select/Select.js.map +1 -1
  92. package/dist/ui-kit/TopItem/TopItem.js +0 -1
  93. package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  94. package/lib/common.css +1 -1
  95. package/lib/components/ApplicationForm/ApplicationForm.fixture.mobile.d.ts +10 -0
  96. package/lib/components/ApplicationForm/ApplicationForm.js +1 -1
  97. package/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
  98. package/lib/components/ApplicationForm/ApplicationFormAcquiring.js +1 -1
  99. package/lib/components/ApplicationForm/ApplicationFormAcquiring.js.map +1 -1
  100. package/lib/components/ApplicationForm/ApplicationFormCredit.js +1 -1
  101. package/lib/components/ApplicationForm/ApplicationFormCredit.js.map +1 -1
  102. package/lib/components/ApplicationForm/ApplicationFormDeposit.js +1 -1
  103. package/lib/components/ApplicationForm/ApplicationFormDeposit.js.map +1 -1
  104. package/lib/components/ApplicationForm/ApplicationFormWed.js +1 -1
  105. package/lib/components/ApplicationForm/ApplicationFormWed.js.map +1 -1
  106. package/lib/components/ApplicationForm/renderAcquiringDataOrganization.d.ts +0 -1
  107. package/lib/components/ApplicationForm/renderAcquiringDataOrganization.js +1 -1
  108. package/lib/components/ApplicationForm/renderAcquiringDataOrganization.js.map +1 -1
  109. package/lib/components/ApplicationForm/renderAcquiringRegion.d.ts +0 -1
  110. package/lib/components/ApplicationForm/renderAcquiringRegion.js +1 -1
  111. package/lib/components/ApplicationForm/renderAcquiringRegion.js.map +1 -1
  112. package/lib/components/ApplicationForm/renderBusinessCardDataOrganization.d.ts +0 -1
  113. package/lib/components/ApplicationForm/renderBusinessCardDataOrganization.js +1 -1
  114. package/lib/components/ApplicationForm/renderBusinessCardDataOrganization.js.map +1 -1
  115. package/lib/components/ApplicationForm/renderContacts.d.ts +0 -1
  116. package/lib/components/ApplicationForm/renderCreditDataOrganization.d.ts +0 -1
  117. package/lib/components/ApplicationForm/renderCreditDataOrganization.js +1 -1
  118. package/lib/components/ApplicationForm/renderCreditDataOrganization.js.map +1 -1
  119. package/lib/components/ApplicationForm/renderCreditParameters.d.ts +0 -1
  120. package/lib/components/ApplicationForm/renderCreditParameters.js +1 -1
  121. package/lib/components/ApplicationForm/renderCreditParameters.js.map +1 -1
  122. package/lib/components/ApplicationForm/renderQuestionsInterested.d.ts +0 -1
  123. package/lib/components/ApplicationForm/renderQuestionsInterested.js +1 -1
  124. package/lib/components/ApplicationForm/renderQuestionsInterested.js.map +1 -1
  125. package/lib/components/ApplicationForm/renderRegion.d.ts +0 -1
  126. package/lib/components/ApplicationForm/renderRegion.js +1 -1
  127. package/lib/components/ApplicationForm/renderRegion.js.map +1 -1
  128. package/lib/components/ApplicationForm/renderRegionDepartment.d.ts +0 -1
  129. package/lib/components/ApplicationForm/renderRegionDepartment.js +1 -1
  130. package/lib/components/ApplicationForm/renderRegionDepartment.js.map +1 -1
  131. package/lib/components/ApplicationForm/renderSlideCheckboxes.d.ts +0 -1
  132. package/lib/components/ApplicationForm/renderSlideCheckboxes.js +1 -1
  133. package/lib/components/ApplicationForm/renderSlideCheckboxes.js.map +1 -1
  134. package/lib/components/ApplicationForm/renderSubmitButton.d.ts +0 -1
  135. package/lib/components/ApplicationForm/renderSubmitButton.js +1 -1
  136. package/lib/components/ApplicationForm/renderSubmitButton.js.map +1 -1
  137. package/lib/components/ApplicationForm/renderWedDataOrganization.d.ts +0 -1
  138. package/lib/components/ApplicationForm/renderWedDataOrganization.js +1 -1
  139. package/lib/components/ApplicationForm/renderWedDataOrganization.js.map +1 -1
  140. package/lib/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  141. package/lib/components/BenefitsBlock/BenefitsBlock.fixture.mobile.d.ts +1 -0
  142. package/lib/components/BenefitsBlock/BenefitsBlock.js +5 -5
  143. package/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  144. package/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +2 -0
  145. package/lib/components/BenefitsBlock/defaultIconSize.d.ts +1 -0
  146. package/lib/components/BenefitsBlock/defaultIconSize.js +2 -0
  147. package/lib/components/BenefitsBlock/defaultIconSize.js.map +1 -0
  148. package/lib/components/BenefitsBlock/defaultIconSize.mobile.d.ts +1 -0
  149. package/lib/components/BenefitsBlock/defaultIconSize.mobile.js +2 -0
  150. package/lib/components/BenefitsBlock/defaultIconSize.mobile.js.map +1 -0
  151. package/lib/components/Blocks.mobile.js +3 -1
  152. package/lib/components/Blocks.mobile.js.map +1 -1
  153. package/lib/components/BonusBenefitsBlock/renderBonusBenefits.mobile.d.ts +1 -1
  154. package/lib/components/BonusBenefitsBlock/renderBonusBenefits.mobile.js +1 -1
  155. package/lib/components/BonusBenefitsBlock/renderBonusBenefits.mobile.js.map +1 -1
  156. package/lib/components/CarouselProductCard/CarouselProductCard.js +1 -1
  157. package/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  158. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  159. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  160. package/lib/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +2 -1
  161. package/lib/components/CarouselTariffsCard/renderCardInfo.js +1 -2
  162. package/lib/components/CarouselTariffsCard/renderCardInfo.js.map +1 -1
  163. package/lib/components/Footer/Footer.mobile.js +7 -2
  164. package/lib/components/Footer/Footer.mobile.js.map +1 -1
  165. package/lib/components/Footer/MediaButton.js +2 -33
  166. package/lib/components/Footer/MediaButton.js.map +1 -1
  167. package/lib/components/Footer/findIconByHref.d.ts +2 -0
  168. package/lib/components/Footer/findIconByHref.js +3 -0
  169. package/lib/components/Footer/findIconByHref.js.map +1 -0
  170. package/lib/components/Footer/iconsMap.d.ts +7 -0
  171. package/lib/components/Footer/iconsMap.js +33 -0
  172. package/lib/components/Footer/iconsMap.js.map +1 -0
  173. package/lib/components/RollupItem/RollupItem.fixture.mobile.d.ts +0 -1
  174. package/lib/components/RollupItem/RollupItem.js +1 -2
  175. package/lib/components/RollupItem/RollupItem.js.map +1 -1
  176. package/lib/components/TextBlock/TextBlock.js +3 -3
  177. package/lib/components/TextBlock/TextBlock.js.map +1 -1
  178. package/lib/model/HeadlineType.d.ts +5 -4
  179. package/lib/ui-kit/CookiePopup/CookiePopup.js +1 -1
  180. package/lib/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  181. package/lib/ui-kit/Icon/IconProps.d.ts +3 -2
  182. package/lib/ui-kit/Icon/RoundedIcon.d.ts +1 -0
  183. package/lib/ui-kit/Icon/RoundedIcon.js +9 -6
  184. package/lib/ui-kit/Icon/RoundedIcon.js.map +1 -1
  185. package/lib/ui-kit/Select/Select.js +1 -1
  186. package/lib/ui-kit/Select/Select.js.map +1 -1
  187. package/lib/ui-kit/TopItem/TopItem.js +0 -1
  188. package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  189. package/mobile/bundle/bundle.umd.js +950 -492
  190. package/mobile/bundle/bundle.umd.min.js +1 -1
  191. package/mobile/bundle/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  192. package/mobile/bundle/components/BenefitsBlock/BenefitsBlockContent.d.ts +2 -0
  193. package/mobile/bundle/components/BenefitsBlock/defaultIconSize.d.ts +1 -0
  194. package/mobile/bundle/components/BonusBenefitsBlock/renderBonusBenefits.d.ts +1 -1
  195. package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +2 -1
  196. package/mobile/bundle/components/Footer/findIconByHref.d.ts +2 -0
  197. package/mobile/bundle/components/Footer/iconsMap.d.ts +7 -0
  198. package/mobile/bundle/model/HeadlineType.d.ts +5 -4
  199. package/mobile/bundle/ui-kit/Icon/IconProps.d.ts +3 -2
  200. package/mobile/bundle/ui-kit/Icon/RoundedIcon.d.ts +1 -0
  201. package/mobile/dist/components/ApplicationForm/ApplicationForm.js +1 -1
  202. package/mobile/dist/components/ApplicationForm/ApplicationForm.js.map +1 -1
  203. package/mobile/dist/components/ApplicationForm/ApplicationFormAcquiring.js +1 -1
  204. package/mobile/dist/components/ApplicationForm/ApplicationFormAcquiring.js.map +1 -1
  205. package/mobile/dist/components/ApplicationForm/ApplicationFormCredit.js +1 -1
  206. package/mobile/dist/components/ApplicationForm/ApplicationFormCredit.js.map +1 -1
  207. package/mobile/dist/components/ApplicationForm/ApplicationFormDeposit.js +1 -1
  208. package/mobile/dist/components/ApplicationForm/ApplicationFormDeposit.js.map +1 -1
  209. package/mobile/dist/components/ApplicationForm/ApplicationFormWed.js +1 -1
  210. package/mobile/dist/components/ApplicationForm/ApplicationFormWed.js.map +1 -1
  211. package/mobile/dist/components/ApplicationForm/renderAcquiringDataOrganization.js +1 -1
  212. package/mobile/dist/components/ApplicationForm/renderAcquiringDataOrganization.js.map +1 -1
  213. package/mobile/dist/components/ApplicationForm/renderAcquiringRegion.js +1 -1
  214. package/mobile/dist/components/ApplicationForm/renderAcquiringRegion.js.map +1 -1
  215. package/mobile/dist/components/ApplicationForm/renderBusinessCardDataOrganization.js +1 -1
  216. package/mobile/dist/components/ApplicationForm/renderBusinessCardDataOrganization.js.map +1 -1
  217. package/mobile/dist/components/ApplicationForm/renderCreditDataOrganization.js +1 -1
  218. package/mobile/dist/components/ApplicationForm/renderCreditDataOrganization.js.map +1 -1
  219. package/mobile/dist/components/ApplicationForm/renderCreditParameters.js +1 -1
  220. package/mobile/dist/components/ApplicationForm/renderCreditParameters.js.map +1 -1
  221. package/mobile/dist/components/ApplicationForm/renderQuestionsInterested.js +1 -1
  222. package/mobile/dist/components/ApplicationForm/renderQuestionsInterested.js.map +1 -1
  223. package/mobile/dist/components/ApplicationForm/renderRegion.js +1 -1
  224. package/mobile/dist/components/ApplicationForm/renderRegion.js.map +1 -1
  225. package/mobile/dist/components/ApplicationForm/renderRegionDepartment.js +1 -1
  226. package/mobile/dist/components/ApplicationForm/renderRegionDepartment.js.map +1 -1
  227. package/mobile/dist/components/ApplicationForm/renderSlideCheckboxes.js +1 -1
  228. package/mobile/dist/components/ApplicationForm/renderSlideCheckboxes.js.map +1 -1
  229. package/mobile/dist/components/ApplicationForm/renderSubmitButton.js +1 -1
  230. package/mobile/dist/components/ApplicationForm/renderSubmitButton.js.map +1 -1
  231. package/mobile/dist/components/ApplicationForm/renderWedDataOrganization.js +1 -1
  232. package/mobile/dist/components/ApplicationForm/renderWedDataOrganization.js.map +1 -1
  233. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  234. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js +5 -5
  235. package/mobile/dist/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  236. package/mobile/dist/components/BenefitsBlock/BenefitsBlockContent.d.ts +2 -0
  237. package/mobile/dist/components/BenefitsBlock/defaultIconSize.d.ts +1 -0
  238. package/mobile/dist/components/BenefitsBlock/defaultIconSize.js +4 -0
  239. package/mobile/dist/components/BenefitsBlock/defaultIconSize.js.map +1 -0
  240. package/mobile/dist/components/Blocks.js +3 -1
  241. package/mobile/dist/components/Blocks.js.map +1 -1
  242. package/mobile/dist/components/BonusBenefitsBlock/renderBonusBenefits.d.ts +1 -1
  243. package/mobile/dist/components/BonusBenefitsBlock/renderBonusBenefits.js +1 -1
  244. package/mobile/dist/components/BonusBenefitsBlock/renderBonusBenefits.js.map +1 -1
  245. package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js +1 -1
  246. package/mobile/dist/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  247. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  248. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  249. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +2 -1
  250. package/mobile/dist/components/CarouselTariffsCard/renderCardInfo.js +1 -2
  251. package/mobile/dist/components/CarouselTariffsCard/renderCardInfo.js.map +1 -1
  252. package/mobile/dist/components/Footer/Footer.js +7 -2
  253. package/mobile/dist/components/Footer/Footer.js.map +1 -1
  254. package/mobile/dist/components/Footer/MediaButton.js +2 -33
  255. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  256. package/mobile/dist/components/Footer/findIconByHref.d.ts +2 -0
  257. package/mobile/dist/components/Footer/findIconByHref.js +6 -0
  258. package/mobile/dist/components/Footer/findIconByHref.js.map +1 -0
  259. package/mobile/dist/components/Footer/iconsMap.d.ts +7 -0
  260. package/mobile/dist/components/Footer/iconsMap.js +35 -0
  261. package/mobile/dist/components/Footer/iconsMap.js.map +1 -0
  262. package/mobile/dist/components/RollupItem/RollupItem.js +1 -2
  263. package/mobile/dist/components/RollupItem/RollupItem.js.map +1 -1
  264. package/mobile/dist/components/TextBlock/TextBlock.js +3 -3
  265. package/mobile/dist/components/TextBlock/TextBlock.js.map +1 -1
  266. package/mobile/dist/model/HeadlineType.d.ts +5 -4
  267. package/mobile/dist/ui-kit/CookiePopup/CookiePopup.js +1 -1
  268. package/mobile/dist/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  269. package/mobile/dist/ui-kit/Icon/IconProps.d.ts +3 -2
  270. package/mobile/dist/ui-kit/Icon/RoundedIcon.d.ts +1 -0
  271. package/mobile/dist/ui-kit/Icon/RoundedIcon.js +9 -6
  272. package/mobile/dist/ui-kit/Icon/RoundedIcon.js.map +1 -1
  273. package/mobile/dist/ui-kit/Select/Select.js +1 -1
  274. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  275. package/mobile/dist/ui-kit/TopItem/TopItem.js +0 -1
  276. package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  277. package/mobile/lib/common.css +1 -1
  278. package/mobile/lib/components/ApplicationForm/ApplicationForm.js +1 -1
  279. package/mobile/lib/components/ApplicationForm/ApplicationForm.js.map +1 -1
  280. package/mobile/lib/components/ApplicationForm/ApplicationFormAcquiring.js +1 -1
  281. package/mobile/lib/components/ApplicationForm/ApplicationFormAcquiring.js.map +1 -1
  282. package/mobile/lib/components/ApplicationForm/ApplicationFormCredit.js +1 -1
  283. package/mobile/lib/components/ApplicationForm/ApplicationFormCredit.js.map +1 -1
  284. package/mobile/lib/components/ApplicationForm/ApplicationFormDeposit.js +1 -1
  285. package/mobile/lib/components/ApplicationForm/ApplicationFormDeposit.js.map +1 -1
  286. package/mobile/lib/components/ApplicationForm/ApplicationFormWed.js +1 -1
  287. package/mobile/lib/components/ApplicationForm/ApplicationFormWed.js.map +1 -1
  288. package/mobile/lib/components/ApplicationForm/renderAcquiringDataOrganization.js +1 -1
  289. package/mobile/lib/components/ApplicationForm/renderAcquiringDataOrganization.js.map +1 -1
  290. package/mobile/lib/components/ApplicationForm/renderAcquiringRegion.js +1 -1
  291. package/mobile/lib/components/ApplicationForm/renderAcquiringRegion.js.map +1 -1
  292. package/mobile/lib/components/ApplicationForm/renderBusinessCardDataOrganization.js +1 -1
  293. package/mobile/lib/components/ApplicationForm/renderBusinessCardDataOrganization.js.map +1 -1
  294. package/mobile/lib/components/ApplicationForm/renderCreditDataOrganization.js +1 -1
  295. package/mobile/lib/components/ApplicationForm/renderCreditDataOrganization.js.map +1 -1
  296. package/mobile/lib/components/ApplicationForm/renderCreditParameters.js +1 -1
  297. package/mobile/lib/components/ApplicationForm/renderCreditParameters.js.map +1 -1
  298. package/mobile/lib/components/ApplicationForm/renderQuestionsInterested.js +1 -1
  299. package/mobile/lib/components/ApplicationForm/renderQuestionsInterested.js.map +1 -1
  300. package/mobile/lib/components/ApplicationForm/renderRegion.js +1 -1
  301. package/mobile/lib/components/ApplicationForm/renderRegion.js.map +1 -1
  302. package/mobile/lib/components/ApplicationForm/renderRegionDepartment.js +1 -1
  303. package/mobile/lib/components/ApplicationForm/renderRegionDepartment.js.map +1 -1
  304. package/mobile/lib/components/ApplicationForm/renderSlideCheckboxes.js +1 -1
  305. package/mobile/lib/components/ApplicationForm/renderSlideCheckboxes.js.map +1 -1
  306. package/mobile/lib/components/ApplicationForm/renderSubmitButton.js +1 -1
  307. package/mobile/lib/components/ApplicationForm/renderSubmitButton.js.map +1 -1
  308. package/mobile/lib/components/ApplicationForm/renderWedDataOrganization.js +1 -1
  309. package/mobile/lib/components/ApplicationForm/renderWedDataOrganization.js.map +1 -1
  310. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.d.ts +1 -1
  311. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js +5 -5
  312. package/mobile/lib/components/BenefitsBlock/BenefitsBlock.js.map +1 -1
  313. package/mobile/lib/components/BenefitsBlock/BenefitsBlockContent.d.ts +2 -0
  314. package/mobile/lib/components/BenefitsBlock/defaultIconSize.d.ts +1 -0
  315. package/mobile/lib/components/BenefitsBlock/defaultIconSize.js +2 -0
  316. package/mobile/lib/components/BenefitsBlock/defaultIconSize.js.map +1 -0
  317. package/mobile/lib/components/Blocks.js +3 -1
  318. package/mobile/lib/components/Blocks.js.map +1 -1
  319. package/mobile/lib/components/BonusBenefitsBlock/renderBonusBenefits.d.ts +1 -1
  320. package/mobile/lib/components/BonusBenefitsBlock/renderBonusBenefits.js +1 -1
  321. package/mobile/lib/components/BonusBenefitsBlock/renderBonusBenefits.js.map +1 -1
  322. package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js +1 -1
  323. package/mobile/lib/components/CarouselProductCard/CarouselProductCard.js.map +1 -1
  324. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +2 -2
  325. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  326. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +2 -1
  327. package/mobile/lib/components/CarouselTariffsCard/renderCardInfo.js +1 -2
  328. package/mobile/lib/components/CarouselTariffsCard/renderCardInfo.js.map +1 -1
  329. package/mobile/lib/components/Footer/Footer.js +7 -2
  330. package/mobile/lib/components/Footer/Footer.js.map +1 -1
  331. package/mobile/lib/components/Footer/MediaButton.js +2 -33
  332. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  333. package/mobile/lib/components/Footer/findIconByHref.d.ts +2 -0
  334. package/mobile/lib/components/Footer/findIconByHref.js +3 -0
  335. package/mobile/lib/components/Footer/findIconByHref.js.map +1 -0
  336. package/mobile/lib/components/Footer/iconsMap.d.ts +7 -0
  337. package/mobile/lib/components/Footer/iconsMap.js +33 -0
  338. package/mobile/lib/components/Footer/iconsMap.js.map +1 -0
  339. package/mobile/lib/components/RollupItem/RollupItem.js +1 -2
  340. package/mobile/lib/components/RollupItem/RollupItem.js.map +1 -1
  341. package/mobile/lib/components/TextBlock/TextBlock.js +3 -3
  342. package/mobile/lib/components/TextBlock/TextBlock.js.map +1 -1
  343. package/mobile/lib/model/HeadlineType.d.ts +5 -4
  344. package/mobile/lib/ui-kit/CookiePopup/CookiePopup.js +1 -1
  345. package/mobile/lib/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  346. package/mobile/lib/ui-kit/Icon/IconProps.d.ts +3 -2
  347. package/mobile/lib/ui-kit/Icon/RoundedIcon.d.ts +1 -0
  348. package/mobile/lib/ui-kit/Icon/RoundedIcon.js +9 -6
  349. package/mobile/lib/ui-kit/Icon/RoundedIcon.js.map +1 -1
  350. package/mobile/lib/ui-kit/Select/Select.js +1 -1
  351. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  352. package/mobile/lib/ui-kit/TopItem/TopItem.js +0 -1
  353. package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  354. package/mobile/src/components/ApplicationForm/ApplicationForm.tsx +3 -1
  355. package/mobile/src/components/ApplicationForm/ApplicationFormAcquiring.tsx +2 -2
  356. package/mobile/src/components/ApplicationForm/ApplicationFormCredit.tsx +3 -3
  357. package/mobile/src/components/ApplicationForm/ApplicationFormDeposit.tsx +3 -3
  358. package/mobile/src/components/ApplicationForm/ApplicationFormWed.tsx +5 -5
  359. package/mobile/src/components/ApplicationForm/renderAcquiringDataOrganization.tsx +3 -3
  360. package/mobile/src/components/ApplicationForm/renderAcquiringRegion.tsx +3 -3
  361. package/mobile/src/components/ApplicationForm/renderBusinessCardDataOrganization.tsx +3 -3
  362. package/mobile/src/components/ApplicationForm/renderCreditDataOrganization.tsx +3 -3
  363. package/mobile/src/components/ApplicationForm/renderCreditParameters.tsx +3 -3
  364. package/mobile/src/components/ApplicationForm/renderQuestionsInterested.tsx +13 -5
  365. package/mobile/src/components/ApplicationForm/renderRegion.tsx +7 -9
  366. package/mobile/src/components/ApplicationForm/renderRegionDepartment.tsx +3 -3
  367. package/mobile/src/components/ApplicationForm/renderSlideCheckboxes.tsx +1 -1
  368. package/mobile/src/components/ApplicationForm/renderSubmitButton.tsx +4 -1
  369. package/mobile/src/components/ApplicationForm/renderWedDataOrganization.tsx +6 -6
  370. package/mobile/src/components/BenefitsBlock/BenefitsBlock.example.json +6 -6
  371. package/mobile/src/components/BenefitsBlock/BenefitsBlock.tsx +15 -19
  372. package/mobile/src/components/BenefitsBlock/BenefitsBlockContent.ts +2 -0
  373. package/mobile/src/components/BenefitsBlock/defaultIconSize.tsx +1 -0
  374. package/mobile/src/components/Blocks.ts +3 -1
  375. package/mobile/src/components/BonusBenefitsBlock/renderBonusBenefits.tsx +2 -2
  376. package/mobile/src/components/CarouselProductCard/CarouselProductCard.tsx +2 -4
  377. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.example.json +2 -1
  378. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +13 -2
  379. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCardContent.ts +3 -1
  380. package/mobile/src/components/CarouselTariffsCard/renderCardInfo.tsx +1 -2
  381. package/mobile/src/components/Footer/Footer.tsx +19 -8
  382. package/mobile/src/components/Footer/MediaButton.tsx +2 -39
  383. package/mobile/src/components/Footer/findIconByHref.ts +4 -0
  384. package/mobile/src/components/Footer/iconsMap.ts +40 -0
  385. package/mobile/src/components/RollupItem/RollupItem.tsx +2 -3
  386. package/mobile/src/components/TextBlock/TextBlock.tsx +12 -5
  387. package/mobile/src/model/HeadlineType.ts +6 -5
  388. package/mobile/src/ui-kit/CookiePopup/CookiePopup.tsx +3 -3
  389. package/mobile/src/ui-kit/Icon/IconProps.ts +3 -2
  390. package/mobile/src/ui-kit/Icon/RoundedIcon.tsx +18 -7
  391. package/mobile/src/ui-kit/Select/Select.tsx +1 -1
  392. package/mobile/src/ui-kit/TopItem/TopItem.tsx +0 -1
  393. package/package.json +1 -1
  394. package/src/components/ApplicationForm/ApplicationForm.fixture.mobile.tsx +44 -0
  395. package/src/components/ApplicationForm/ApplicationForm.tsx +3 -1
  396. package/src/components/ApplicationForm/ApplicationFormAcquiring.tsx +2 -2
  397. package/src/components/ApplicationForm/ApplicationFormCredit.tsx +3 -3
  398. package/src/components/ApplicationForm/ApplicationFormDeposit.tsx +3 -3
  399. package/src/components/ApplicationForm/ApplicationFormWed.tsx +5 -5
  400. package/src/components/ApplicationForm/renderAcquiringDataOrganization.tsx +3 -3
  401. package/src/components/ApplicationForm/renderAcquiringRegion.tsx +3 -3
  402. package/src/components/ApplicationForm/renderBusinessCardDataOrganization.tsx +3 -3
  403. package/src/components/ApplicationForm/renderCreditDataOrganization.tsx +3 -3
  404. package/src/components/ApplicationForm/renderCreditParameters.tsx +3 -3
  405. package/src/components/ApplicationForm/renderQuestionsInterested.tsx +13 -5
  406. package/src/components/ApplicationForm/renderRegion.tsx +7 -9
  407. package/src/components/ApplicationForm/renderRegionDepartment.tsx +3 -3
  408. package/src/components/ApplicationForm/renderSlideCheckboxes.tsx +1 -1
  409. package/src/components/ApplicationForm/renderSubmitButton.tsx +4 -1
  410. package/src/components/ApplicationForm/renderWedDataOrganization.tsx +6 -6
  411. package/src/components/BenefitsBlock/BenefitsBlock.example.json +6 -6
  412. package/src/components/BenefitsBlock/BenefitsBlock.fixture.mobile.tsx +27 -20
  413. package/src/components/BenefitsBlock/BenefitsBlock.fixture.tsx +43 -127
  414. package/src/components/BenefitsBlock/BenefitsBlock.tsx +15 -19
  415. package/src/components/BenefitsBlock/BenefitsBlockContent.ts +2 -0
  416. package/src/components/BenefitsBlock/defaultIconSize.mobile.tsx +1 -0
  417. package/src/components/BenefitsBlock/defaultIconSize.tsx +1 -0
  418. package/src/components/Blocks.mobile.ts +3 -1
  419. package/src/components/BonusBenefitsBlock/BonusBenefitsBlock.fixture.mobile.tsx +1 -1
  420. package/src/components/BonusBenefitsBlock/renderBonusBenefits.mobile.tsx +2 -2
  421. package/src/components/CarouselProductCard/CarouselProductCard.tsx +2 -4
  422. package/src/components/CarouselTariffsCard/CarouselTariffsCard.example.json +2 -1
  423. package/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +13 -2
  424. package/src/components/CarouselTariffsCard/CarouselTariffsCardContent.ts +3 -1
  425. package/src/components/CarouselTariffsCard/renderCardInfo.tsx +1 -2
  426. package/src/components/Footer/Footer.mobile.tsx +19 -8
  427. package/src/components/Footer/MediaButton.tsx +2 -39
  428. package/src/components/Footer/findIconByHref.ts +4 -0
  429. package/src/components/Footer/iconsMap.ts +40 -0
  430. package/src/components/RollupItem/RollupItem.fixture.mobile.tsx +0 -14
  431. package/src/components/RollupItem/RollupItem.tsx +2 -3
  432. package/src/components/TextBlock/TextBlock.tsx +12 -5
  433. package/src/model/HeadlineType.ts +6 -5
  434. package/src/ui-kit/CookiePopup/CookiePopup.tsx +3 -3
  435. package/src/ui-kit/Icon/IconProps.ts +3 -2
  436. package/src/ui-kit/Icon/RoundedIcon.tsx +18 -7
  437. package/src/ui-kit/Select/Select.tsx +1 -1
  438. package/src/ui-kit/TopItem/TopItem.tsx +0 -1
  439. package/tailwind.config.cjs +0 -16
  440. package/bundle/components/BenefitsBlock/benefitImageStyles.d.ts +0 -1
  441. package/bundle/components/BenefitsBlock/benefitImageStyles.mobile.d.ts +0 -1
  442. package/bundle/components/CarouselTariffsCard/descriptionSize.d.ts +0 -1
  443. package/bundle/components/CarouselTariffsCard/descriptionSize.mobile.d.ts +0 -1
  444. package/bundle/components/RollupItem/labelSize.d.ts +0 -1
  445. package/bundle/components/RollupItem/labelSize.mobile.d.ts +0 -1
  446. package/dist/components/BenefitsBlock/benefitImageStyles.d.ts +0 -1
  447. package/dist/components/BenefitsBlock/benefitImageStyles.js +0 -4
  448. package/dist/components/BenefitsBlock/benefitImageStyles.js.map +0 -1
  449. package/dist/components/BenefitsBlock/benefitImageStyles.mobile.d.ts +0 -1
  450. package/dist/components/BenefitsBlock/benefitImageStyles.mobile.js +0 -4
  451. package/dist/components/BenefitsBlock/benefitImageStyles.mobile.js.map +0 -1
  452. package/dist/components/CarouselTariffsCard/descriptionSize.d.ts +0 -1
  453. package/dist/components/CarouselTariffsCard/descriptionSize.js +0 -4
  454. package/dist/components/CarouselTariffsCard/descriptionSize.js.map +0 -1
  455. package/dist/components/CarouselTariffsCard/descriptionSize.mobile.d.ts +0 -1
  456. package/dist/components/CarouselTariffsCard/descriptionSize.mobile.js +0 -4
  457. package/dist/components/CarouselTariffsCard/descriptionSize.mobile.js.map +0 -1
  458. package/dist/components/RollupItem/labelSize.d.ts +0 -1
  459. package/dist/components/RollupItem/labelSize.js +0 -4
  460. package/dist/components/RollupItem/labelSize.js.map +0 -1
  461. package/dist/components/RollupItem/labelSize.mobile.d.ts +0 -1
  462. package/dist/components/RollupItem/labelSize.mobile.js +0 -4
  463. package/dist/components/RollupItem/labelSize.mobile.js.map +0 -1
  464. package/lib/components/BenefitsBlock/benefitImageStyles.d.ts +0 -1
  465. package/lib/components/BenefitsBlock/benefitImageStyles.js +0 -2
  466. package/lib/components/BenefitsBlock/benefitImageStyles.js.map +0 -1
  467. package/lib/components/BenefitsBlock/benefitImageStyles.mobile.d.ts +0 -1
  468. package/lib/components/BenefitsBlock/benefitImageStyles.mobile.js +0 -2
  469. package/lib/components/BenefitsBlock/benefitImageStyles.mobile.js.map +0 -1
  470. package/lib/components/CarouselTariffsCard/descriptionSize.d.ts +0 -1
  471. package/lib/components/CarouselTariffsCard/descriptionSize.js +0 -2
  472. package/lib/components/CarouselTariffsCard/descriptionSize.js.map +0 -1
  473. package/lib/components/CarouselTariffsCard/descriptionSize.mobile.d.ts +0 -1
  474. package/lib/components/CarouselTariffsCard/descriptionSize.mobile.js +0 -2
  475. package/lib/components/CarouselTariffsCard/descriptionSize.mobile.js.map +0 -1
  476. package/lib/components/RollupItem/labelSize.d.ts +0 -1
  477. package/lib/components/RollupItem/labelSize.js +0 -2
  478. package/lib/components/RollupItem/labelSize.js.map +0 -1
  479. package/lib/components/RollupItem/labelSize.mobile.d.ts +0 -1
  480. package/lib/components/RollupItem/labelSize.mobile.js +0 -2
  481. package/lib/components/RollupItem/labelSize.mobile.js.map +0 -1
  482. package/mobile/bundle/components/BenefitsBlock/benefitImageStyles.d.ts +0 -1
  483. package/mobile/bundle/components/CarouselTariffsCard/descriptionSize.d.ts +0 -1
  484. package/mobile/bundle/components/RollupItem/labelSize.d.ts +0 -1
  485. package/mobile/dist/components/BenefitsBlock/benefitImageStyles.d.ts +0 -1
  486. package/mobile/dist/components/BenefitsBlock/benefitImageStyles.js +0 -4
  487. package/mobile/dist/components/BenefitsBlock/benefitImageStyles.js.map +0 -1
  488. package/mobile/dist/components/CarouselTariffsCard/descriptionSize.d.ts +0 -1
  489. package/mobile/dist/components/CarouselTariffsCard/descriptionSize.js +0 -4
  490. package/mobile/dist/components/CarouselTariffsCard/descriptionSize.js.map +0 -1
  491. package/mobile/dist/components/RollupItem/labelSize.d.ts +0 -1
  492. package/mobile/dist/components/RollupItem/labelSize.js +0 -4
  493. package/mobile/dist/components/RollupItem/labelSize.js.map +0 -1
  494. package/mobile/lib/components/BenefitsBlock/benefitImageStyles.d.ts +0 -1
  495. package/mobile/lib/components/BenefitsBlock/benefitImageStyles.js +0 -2
  496. package/mobile/lib/components/BenefitsBlock/benefitImageStyles.js.map +0 -1
  497. package/mobile/lib/components/CarouselTariffsCard/descriptionSize.d.ts +0 -1
  498. package/mobile/lib/components/CarouselTariffsCard/descriptionSize.js +0 -2
  499. package/mobile/lib/components/CarouselTariffsCard/descriptionSize.js.map +0 -1
  500. package/mobile/lib/components/RollupItem/labelSize.d.ts +0 -1
  501. package/mobile/lib/components/RollupItem/labelSize.js +0 -2
  502. package/mobile/lib/components/RollupItem/labelSize.js.map +0 -1
  503. package/mobile/src/components/BenefitsBlock/benefitImageStyles.tsx +0 -1
  504. package/mobile/src/components/CarouselTariffsCard/descriptionSize.tsx +0 -1
  505. package/mobile/src/components/RollupItem/labelSize.tsx +0 -1
  506. package/src/components/BenefitsBlock/benefitImageStyles.mobile.tsx +0 -1
  507. package/src/components/BenefitsBlock/benefitImageStyles.tsx +0 -1
  508. package/src/components/CarouselTariffsCard/descriptionSize.mobile.tsx +0 -1
  509. package/src/components/CarouselTariffsCard/descriptionSize.tsx +0 -1
  510. package/src/components/RollupItem/labelSize.mobile.tsx +0 -1
  511. package/src/components/RollupItem/labelSize.tsx +0 -1
@@ -237,6 +237,27 @@
237
237
  return JSXTmpl;
238
238
  };
239
239
 
240
+ function CorporateLeadAPI() {
241
+ async function send(body) {
242
+ try {
243
+ const response = await fetch('/api/v1/sendcorporatelead', {
244
+ method: 'POST',
245
+ headers: { 'Content-Type': 'application/json' },
246
+ mode: 'cors',
247
+ body: JSON.stringify(body),
248
+ });
249
+ const data = await response.json();
250
+ return data;
251
+ }
252
+ catch (e) {
253
+ return null;
254
+ }
255
+ }
256
+ return {
257
+ send,
258
+ };
259
+ }
260
+
240
261
  class EventBus {
241
262
  subscribers = {};
242
263
  subjectsStateMap = {};
@@ -309,49 +330,878 @@
309
330
  .filter(Boolean)
310
331
  .join(' ');
311
332
 
312
- const blockStyles = {
313
- primary: 'bg-white text-primary-text',
314
- secondary: 'bg-primary-main text-white',
315
- gray: 'bg-main-divider text-primary-text',
316
- transparent: 'bg-transparent text-primary-text',
317
- '': '',
318
- };
319
- const BlockWrapper = JSX(({ className, version = 'primary', isTheme = true, defaultPadding = 'p-m', padding, block, tag = 'section', role, children, }) => {
320
- const Tag = tag;
321
- const ref = useBlockIntersectionObserver(block);
322
- const [isHidden, setHidden] = useState(false);
323
- useEffect(() => defaultEventBus.subscribe('tab', (event) => {
324
- setHidden(Boolean(event.label && block?.labels?.length && !block.labels.includes(event.label)));
325
- }), [block]);
326
- const isGroup = version && isTheme;
327
- return (jsx(Tag, { className: style('font-sans', isGroup ? 'group' : '', blockStyles[version], isHidden ? 'hidden' : '', padding || defaultPadding, className), ...(isGroup ? { 'data-ver': version } : {}), ...(block?.anchor ? { id: block.anchor, ref } : {}), role: role, children: children }));
333
+ const blockStyles = {
334
+ primary: 'bg-white text-primary-text',
335
+ secondary: 'bg-primary-main text-white',
336
+ gray: 'bg-main-divider text-primary-text',
337
+ transparent: 'bg-transparent text-primary-text',
338
+ '': '',
339
+ };
340
+ const BlockWrapper = JSX(({ className, version = 'primary', isTheme = true, defaultPadding = 'p-m', padding, block, tag = 'section', role, children, }) => {
341
+ const Tag = tag;
342
+ const ref = useBlockIntersectionObserver(block);
343
+ const [isHidden, setHidden] = useState(false);
344
+ useEffect(() => defaultEventBus.subscribe('tab', (event) => {
345
+ setHidden(Boolean(event.label && block?.labels?.length && !block.labels.includes(event.label)));
346
+ }), [block]);
347
+ const isGroup = version && isTheme;
348
+ return (jsx(Tag, { className: style('font-sans', isGroup ? 'group' : '', blockStyles[version], isHidden ? 'hidden' : '', padding || defaultPadding, className), ...(isGroup ? { 'data-ver': version } : {}), ...(block?.anchor ? { id: block.anchor, ref } : {}), role: role, children: children }));
349
+ });
350
+
351
+ const mobileHeadingTagMap = {
352
+ h1: 'h1',
353
+ h2: 'h1',
354
+ h3: 'h2',
355
+ h4: 'h2',
356
+ h5: 'h3',
357
+ h6: 'h3',
358
+ };
359
+ const headingTag = (tag) => mobileHeadingTagMap[tag] || 'h3';
360
+
361
+ const styles = {
362
+ h0: 'text-h0',
363
+ h1: 'text-h1',
364
+ h2: 'text-h2',
365
+ h3: 'text-h3',
366
+ h4: 'text-h4',
367
+ h5: 'text-h5',
368
+ h6: 'text-h6', // 20
369
+ };
370
+ const Heading = JSX(({ className = '', headingType = 'h3', as = 'h3', title, children }) => {
371
+ const Tag = headingTag(as);
372
+ return (jsx(Tag, { className: style('font-sans m-0', styles[headingType], className), children: title || children }));
373
+ });
374
+
375
+ const identity = (_) => _;
376
+
377
+ const useForm = (initialState, onSubmit) => {
378
+ const [formState, setFormState] = useState(initialState);
379
+ const [isDirtyForm, setDirtyForm] = useState(false);
380
+ const [dirtyFieldsMap, setDirtyFieldsMap] = useState({});
381
+ const handlersMap = useRef({});
382
+ const field = useCallback((fieldName, options) => {
383
+ const { parse = identity, format = identity } = options || {};
384
+ if (!handlersMap.current) {
385
+ handlersMap.current = {};
386
+ }
387
+ handlersMap.current[fieldName] ||= (value) => {
388
+ setFormState((prev) => ({ ...prev, [fieldName]: parse(value) }));
389
+ setDirtyFieldsMap((prev) => ({ ...prev, [fieldName]: true }));
390
+ };
391
+ return {
392
+ value: format(formState[fieldName]),
393
+ isDirty: isDirtyForm || dirtyFieldsMap[fieldName],
394
+ onChange: handlersMap.current[fieldName],
395
+ };
396
+ }, [formState, isDirtyForm, dirtyFieldsMap]);
397
+ const reset = useCallback(() => {
398
+ setFormState(initialState);
399
+ setDirtyForm(false);
400
+ setDirtyFieldsMap({});
401
+ }, [initialState]);
402
+ const handleSubmit = useCallback((e) => {
403
+ e.preventDefault();
404
+ setDirtyForm(true);
405
+ onSubmit && onSubmit(formState);
406
+ }, [onSubmit, formState]);
407
+ return [
408
+ formState,
409
+ {
410
+ isDirty: isDirtyForm || Object.values(dirtyFieldsMap).some(Boolean),
411
+ field,
412
+ reset,
413
+ onSubmit: handleSubmit,
414
+ },
415
+ ];
416
+ };
417
+
418
+ const objectValidator = (validatorsMap) => (o) => (o &&
419
+ Object.entries(validatorsMap).flatMap(([key, validator]) => validator(o[key]))) ||
420
+ [];
421
+
422
+ const isValidationSuccess = (info) => !info?.length;
423
+ const validator = (predicate) => (message) => (_) => predicate(_) ? [] : [message];
424
+
425
+ const isFilled = (_) => _ !== null && _ !== undefined;
426
+
427
+ const defaultCache = new Map();
428
+ const applyCache = (fetcher, cache = defaultCache) => (key) => {
429
+ const cachedData = cache.get(key);
430
+ if (isFilled(cachedData)) {
431
+ return cachedData;
432
+ }
433
+ const data = fetcher(key);
434
+ if (isFilled(data)) {
435
+ cache.set(key, Promise.resolve(data));
436
+ }
437
+ else {
438
+ cache.delete(key);
439
+ }
440
+ return data;
441
+ };
442
+
443
+ const isSimpleKey = (args) => Boolean(args && Array.isArray(args) && args.length === 1 && typeof args[0] === 'string');
444
+ function useAsyncData(key, fetcher, { fallback, cache } = {}) {
445
+ const args = useMemo(() => keyToArgs(key), [key]);
446
+ const [simpleKey] = isSimpleKey(args) ? args : [];
447
+ const [data, setData] = useState(undefined);
448
+ const [error, setError] = useState(undefined);
449
+ useEffect(() => {
450
+ const isEmptyKey = !args.some(isFilled);
451
+ if (isEmptyKey) {
452
+ return;
453
+ }
454
+ (async () => {
455
+ try {
456
+ const newData = await (simpleKey
457
+ ? applyCache(fetcher, cache)(simpleKey)
458
+ : fetcher(...args));
459
+ setData(newData);
460
+ setError(undefined);
461
+ }
462
+ catch (err) {
463
+ setData(undefined);
464
+ setError(err);
465
+ }
466
+ })();
467
+ }, [fetcher, cache, args]);
468
+ const fallbackData = fallback && simpleKey && fallback[simpleKey];
469
+ return {
470
+ data: !data && fallbackData ? fallbackData : data,
471
+ error,
472
+ mutate: () => Promise.resolve(undefined),
473
+ isValidating: false
474
+ };
475
+ }
476
+ function keyToArgs(key) {
477
+ if (Array.isArray(key)) {
478
+ return key;
479
+ }
480
+ else if (key instanceof Function) {
481
+ return keyToArgs(key());
482
+ }
483
+ else {
484
+ return [key];
485
+ }
486
+ }
487
+
488
+ async function fetchJSON(url, options) {
489
+ try {
490
+ return url ? await fetchJSONUnsafe(url, options) : null;
491
+ }
492
+ catch (err) {
493
+ console.error(err);
494
+ }
495
+ return null;
496
+ }
497
+ async function fetchJSONUnsafe(url, options) {
498
+ const response = await fetch(url, {
499
+ ...options,
500
+ headers: {
501
+ ...options?.headers,
502
+ 'Content-Type': 'application/json',
503
+ },
504
+ });
505
+ return await response.json();
506
+ }
507
+
508
+ const REGIONS_URL = '/api/v1/regions';
509
+ const EMPTY_VALUE$2 = [];
510
+ function useGetRegions() {
511
+ const { data } = useAsyncData(REGIONS_URL, fetchJSONUnsafe);
512
+ return data || EMPTY_VALUE$2;
513
+ }
514
+
515
+ const useDialog = (id = '') => ({
516
+ open: (message) => defaultEventBus.fire('dialog', { type: 'open', id, message }),
517
+ close: () => defaultEventBus.fire('dialog', { type: 'close' }),
518
+ });
519
+
520
+ const dirname = (path) => path?.split('/').slice(0, -1).join('/');
521
+
522
+ const isURL = (href) => Boolean(href?.includes(':'));
523
+ const isLocalURL = (href, target) => Boolean(href && !isURL(href) && (!target || target === '_self'));
524
+ const isHash = (href) => Boolean(href?.startsWith('#'));
525
+ const withoutQuery = (href) => (href || '').replace(/\?.*/, '').replace(/\/$/, '');
526
+ const joinPath = (...path) => path.filter(Boolean).join('/').replace(/\/+/g, '/');
527
+
528
+ var url = /*#__PURE__*/Object.freeze({
529
+ __proto__: null,
530
+ isURL: isURL,
531
+ isLocalURL: isLocalURL,
532
+ isHash: isHash,
533
+ withoutQuery: withoutQuery,
534
+ joinPath: joinPath
535
+ });
536
+
537
+ const adjustHref = (router) => (href, basePath = projectSettings.BASE_PATH) => {
538
+ if (!href || isURL(href) || hasPrefix(href, projectSettings.CDN)) {
539
+ return href;
540
+ }
541
+ const isRelativeToBase = href.startsWith('/');
542
+ return joinPath(hasPrefix(href, basePath) ? '' : basePath, isRelativeToBase ? '/' : dirname(router.pathname), href);
543
+ };
544
+ const hasPrefix = (href, prefix) => prefix && href && href.startsWith(prefix);
545
+
546
+ /* eslint-disable @typescript-eslint/ban-types */
547
+ const handlerDecorator = (handler, targetContent) => {
548
+ return handlerDecorator._impl(handler, targetContent);
549
+ };
550
+ handlerDecorator._impl = (handler) => handler;
551
+ handlerDecorator.setup = (impl) => {
552
+ handlerDecorator._impl = impl;
553
+ };
554
+
555
+ function useRouter() {
556
+ return useRouter._impl();
557
+ }
558
+ useRouter._impl = () => ({
559
+ href: globalThis.location?.href || '/',
560
+ pathname: globalThis.location?.pathname || '/',
561
+ query: {},
562
+ push: () => {
563
+ // Do nothing
564
+ },
565
+ replace: () => {
566
+ // Do nothing
567
+ },
568
+ back: () => {
569
+ // Do nothing
570
+ },
571
+ });
572
+ useRouter.setup = (impl) => {
573
+ useRouter._impl = impl;
574
+ };
575
+
576
+ function useLink(params = {}) {
577
+ const { isRemote, basePath } = params;
578
+ const router = useRouter();
579
+ const { close } = useDialog();
580
+ return (props) => ({
581
+ ...props,
582
+ href: isRemote && !basePath ? props.href : adjustHref(router)(props.href, basePath),
583
+ 'aria-label': props.text,
584
+ onClick: handlerDecorator(handleHref(props), props),
585
+ });
586
+ function handleHref({ href, target, onClick }) {
587
+ return (ev) => {
588
+ onClick && onClick(ev);
589
+ if (!href || isRemote || !isLocalURL(href, target)) {
590
+ // Default routing
591
+ return;
592
+ }
593
+ close();
594
+ // Client routing
595
+ ev?.preventDefault();
596
+ router.push(href);
597
+ };
598
+ }
599
+ }
600
+
601
+ const buttonStyleMap = {
602
+ primary: 'text-white bg-primary-main hover:bg-primary-hover active:bg-primary-active',
603
+ secondary: 'text-primary-main bg-main-divider hover:text-white hover:bg-primary-hover active:bg-primary-active',
604
+ white: 'text-primary-main bg-white hover:text-white hover:bg-primary-hover active:bg-white active:text-primary-main',
605
+ link: '',
606
+ transparent: '',
607
+ gray: 'text-primary-main bg-main-divider hover:text-white hover:bg-primary-hover active:bg-primary-active',
608
+ '': '',
609
+ };
610
+ const DisabledStyle = 'bg-main-divider text-main-disabled';
611
+ const buttonDisabledStyleMap = {
612
+ primary: DisabledStyle,
613
+ secondary: DisabledStyle,
614
+ white: DisabledStyle,
615
+ link: '',
616
+ transparent: '',
617
+ gray: DisabledStyle,
618
+ '': '',
619
+ };
620
+ const buttonStyle = 'text-center font-sans select-none';
621
+ const iconStyleMap = {
622
+ primary: 'group-hover/btn:brightness-0 group-hover/btn:invert',
623
+ secondary: 'group-hover/btn:brightness-0 group-hover/btn:invert',
624
+ white: 'group-hover/btn:brightness-0 group-hover/btn:invert',
625
+ link: '',
626
+ transparent: '',
627
+ gray: 'group-hover/btn:brightness-0 group-hover/btn:invert',
628
+ '': '',
629
+ };
630
+
631
+ const ButtonInner = JSX((props) => {
632
+ const { text, aboveText, appendLeft, appendRight, version = 'primary' } = props;
633
+ return (jsxs("div", { className: style(getButtonStyle(props), 'flex gap-2'), children: [appendLeft ? jsx("div", { className: iconStyleMap[version], children: appendLeft }) : null, isWithText(props) ? (jsxs("div", { children: [aboveText ? jsx("div", { className: "text-xs font-light text-left", children: aboveText }) : null, jsx("div", { className: `text-left ${aboveText ? 'text-s -mt-0.5' : 'text-l'}`, children: text })] })) : null, appendRight ? jsx("div", { className: iconStyleMap[version], children: appendRight }) : null] }));
634
+ });
635
+ const getButtonStyle = (props) => {
636
+ const { version, aboveText, rounded } = props;
637
+ if (version === 'link') {
638
+ return '';
639
+ }
640
+ const withTextStyle = `${aboveText ? 'py-2.5 px-9' : 'py-4 px-9'}`;
641
+ return [
642
+ 'group/btn items-center justify-center',
643
+ isWithText(props) ? withTextStyle : 'h-12 w-12',
644
+ rounded ? 'rounded-full' : '',
645
+ ].join(' ');
646
+ };
647
+ const isWithText = ({ text, aboveText, appendLeft }) => Boolean(text || aboveText || !appendLeft);
648
+
649
+ const getDisabledButtonClasses = ({ className, rounded, version, }) => [
650
+ 'inline-block',
651
+ buttonStyle,
652
+ version ? buttonDisabledStyleMap[version] : '',
653
+ rounded ? 'rounded-full' : 'rounded-md',
654
+ className,
655
+ ].join(' ');
656
+
657
+ const getRegularButtonClasses = ({ className, rounded, version, }) => [
658
+ buttonStyle,
659
+ 'border border-transparent inline-block cursor-pointer no-underline focus:border-primary-text focus:border h-fit',
660
+ version ? buttonStyleMap[version] : '',
661
+ rounded ? 'rounded-full' : 'rounded-md',
662
+ className,
663
+ ].join(' ');
664
+
665
+ const Button = JSX(({ disabled, children, ...rest }) => {
666
+ const link = useLink();
667
+ const adjustedProps = link(rest);
668
+ const buttonInner = children ?? jsx(ButtonInner, { ...adjustedProps });
669
+ return disabled ? (jsx(DisabledButton, { ...adjustedProps, children: buttonInner })) : (jsx(RegularButton, { ...adjustedProps, children: buttonInner }));
670
+ });
671
+ const RegularButton = JSX(({ className = '', href, rel, target, ariaLabel, version, rounded, onClick, children }) => (jsx("a", { className: getRegularButtonClasses({ className, version, rounded }), href: href, rel: rel, target: target, "aria-label": ariaLabel, role: href ? 'link' : 'button', onClick: onClick, children: children })));
672
+ const DisabledButton = JSX(({ className, ariaLabel, version, rounded, children }) => (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: -1, className: getDisabledButtonClasses({ className, rounded, version }), children: children })));
673
+
674
+ const Paragraph = JSX(({ children, ...styleProps }) => (jsx("p", { className: style('font-sans', Object.values(styleProps)), children: children })));
675
+
676
+ const Text = JSX(({ children, ...styleProps }) => (jsx("span", { className: style('font-sans', Object.values(styleProps)), children: children })));
677
+
678
+ const Footnote = JSX(({ link }) => (jsxs(Paragraph, { size: "text-s", font: "font-light", color: "text-secondary-text", children: [jsx(Text, { children: "\u041D\u0430\u0436\u0438\u043C\u0430\u044F \u043A\u043D\u043E\u043F\u043A\u0443, \u0432\u044B \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442\u0435 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u0435 \u0441 " }), link ? (jsx(Button, { href: link.href, ariaLabel: "\u0443\u0441\u043B\u043E\u0432\u0438\u044F \u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043D\u043D\u044B\u0445", target: link.target, className: "text-primary-main", children: jsx(Text, { children: link.text }) })) : null] })));
679
+
680
+ const withValidator = (props, validator) => {
681
+ const { value, isDirty } = props;
682
+ const errors = isDirty ? validator(value) : [];
683
+ return {
684
+ ...props,
685
+ errors,
686
+ error: errors[0],
687
+ };
688
+ };
689
+
690
+ const Input = JSX(({ key, className = '', inputClassName = '', id, name, type = 'text', label, placeholder, value = '', valid = true, children, onChange, onFocus, onBlur, pattern, }) => {
691
+ const handleChange = useCallback((e) => {
692
+ onChange && onChange(e.target?.value || '');
693
+ }, [onChange]);
694
+ const paddingStyle = children ? 'pr-8' : '';
695
+ const validStyle = valid
696
+ ? 'border-gray hover:border-primary-hover active:border-primary-text focus:border-primary-text'
697
+ : 'border-error';
698
+ return (jsxs("div", { className: style('relative', className), children: [jsxs("label", { children: [label ? (jsx("div", { className: "mb-2", children: jsx(Text, { size: "text-m", font: "font-light", children: label }) })) : null, jsx("input", { className: style('w-full border rounded-md text-primary-text outline-none p-4', paddingStyle, validStyle, inputClassName), id: id, name: name || id, placeholder: placeholder, type: type, value: value, onInput: handleChange, onFocus: onFocus, onBlur: onBlur, pattern: pattern }, key)] }), children] }));
699
+ });
700
+
701
+ const InputControl = JSX(({ className, label, value = '', error, onChange, onBlur }) => (jsxs("div", { className: className, children: [jsx(Input, { type: "text", "aria-label": label, label: label, valid: Boolean(!error), value: value, onChange: onChange, onBlur: onBlur }), jsx("div", { className: "h-2", children: error ? (jsx(Text, { size: "text-xs", font: "font-light", color: "text-error", children: error })) : null })] })));
702
+
703
+ const isPlaceholder = (_) => _ === '_';
704
+ const isDigit = (_) => /\d/.test(_);
705
+ const isWildcard = (_) => isPlaceholder(_) || isDigit(_);
706
+ const phonePattern = [...'+7 (___) ___-__-__'];
707
+ const firstPlaceholderIndex = phonePattern.findIndex(isPlaceholder);
708
+ const phoneWildcardIndicies = phonePattern.map((_, i) => isWildcard(_) ? phonePattern.slice(0, i).filter(isWildcard).length : -1);
709
+ function normalizePhone(phone) {
710
+ const phoneNumbers = phone.replace(/\D/g, '');
711
+ const applyPlaceholder = (_, i) => isDigit(_) ? _ : phoneNumbers.charAt(phoneWildcardIndicies[i]) || _;
712
+ const result = phonePattern.map(applyPlaceholder);
713
+ const resultLength = phoneWildcardIndicies.indexOf(phoneNumbers.length - 1) + 1;
714
+ return (resultLength ? result.slice(0, Math.max(firstPlaceholderIndex, resultLength)) : result).join('');
715
+ }
716
+
717
+ const PhoneInput = JSX(({ children, onChange, ...inputProps }) => {
718
+ const handleChange = useCallback((value) => onChange && onChange(normalizePhone(value)), [onChange]);
719
+ return (jsx(Input, { onChange: handleChange, onFocus: (event) => handleChange(event?.target?.value || ''), ...inputProps, children: children }));
720
+ });
721
+
722
+ const PhoneInputControl = JSX(({ className, label, value, error, onChange, onBlur }) => (jsxs("div", { className: className, children: [jsx(PhoneInput, { "aria-label": label, label: label, valid: Boolean(!error), value: value, onChange: onChange, onBlur: onBlur }), jsx("div", { className: "h-2", children: error ? (jsx(Text, { size: "text-xs", font: "font-light", color: "text-error", children: error })) : null })] })));
723
+
724
+ const pattern = (regexp) => validator((_) => typeof _ === 'string' && regexp.test(_));
725
+
726
+ const required = validator((_) => _ !== null && _ !== undefined && _ !== '');
727
+
728
+ const ERROR_MESSAGE = 'Некорректно заполненное поле';
729
+ const defaultValidator = required(ERROR_MESSAGE);
730
+ const nameValidator = validator((_) => typeof _ === 'string' && _.length > 1)(ERROR_MESSAGE);
731
+ const innValidator = validator((_) => typeof _ === 'string' && (_.length === 10 || _.length === 12))(ERROR_MESSAGE);
732
+ const phoneValidator = pattern(/^(\+7)?[\s-]?\(?[0-9]{3}\)?[\s-]?[0-9]{3}[\s-]?[0-9]{2}[\s-]?[0-9]{2}$/)(ERROR_MESSAGE);
733
+
734
+ const renderAcquiringDataOrganization = (field) => (jsxs("div", { className: "mb-4 sm:flex sm:justify-between sm:gap-5 sm:mb-7", children: [jsxs("div", { className: "sm:w-1/2", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...withValidator(field('fullName'), defaultValidator) }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E", ...withValidator(field('name'), nameValidator) })] }), jsxs("div", { className: "sm:w-1/2", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0418\u041D\u041D", ...withValidator(field('inn'), innValidator) }), jsx(PhoneInputControl, { className: "shrink-0 w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) })] })] }));
735
+
736
+ const ACQUIRING_TYPES = [
737
+ {
738
+ name: 'Торговый эквайринг',
739
+ },
740
+ {
741
+ name: 'Мобильный эквайринг',
742
+ },
743
+ {
744
+ name: 'Интернет-эквайринг',
745
+ },
746
+ {
747
+ name: 'QR-эквайринг (СБП)',
748
+ },
749
+ {
750
+ name: 'Все виды эквайринга',
751
+ },
752
+ ];
753
+
754
+ function useBool(defaultValue = false) {
755
+ const [value, setValue] = useState(defaultValue);
756
+ const setTrue = useCallback(() => setValue(true), []);
757
+ const setFalse = useCallback(() => setValue(false), []);
758
+ const toggle = useCallback(() => setValue((_) => !_), []);
759
+ return [value, { setValue, setTrue, setFalse, toggle }];
760
+ }
761
+
762
+ function useOutsideClick(onClick) {
763
+ const targetRef = useRef(null);
764
+ useEffect(() => {
765
+ const handleClickOutside = (event) => {
766
+ if (targetRef &&
767
+ targetRef.current &&
768
+ event.target instanceof Node &&
769
+ !targetRef.current.contains(event.target)) {
770
+ onClick();
771
+ }
772
+ };
773
+ document.addEventListener('click', handleClickOutside);
774
+ return () => {
775
+ document.removeEventListener('click', handleClickOutside);
776
+ };
777
+ }, [onClick]);
778
+ return targetRef;
779
+ }
780
+
781
+ const svgUseStyleMap = {
782
+ normal: '',
783
+ color: 'text-primary-main',
784
+ black: 'text-black',
785
+ white: 'text-black',
786
+ };
787
+ const Icon = JSX(({ className = '', imageClassName = '', name = '', alt = `Иконка ${name}`, title = alt, iconVersion = 'color', ...imgProps }) => {
788
+ const router = useRouter();
789
+ const href = adjustHref(router)(joinPath(projectSettings.CDN, '/icons', `${name}.svg`));
790
+ if (iconVersion !== 'normal') {
791
+ return (jsx(Background, { className: className, children: jsxs("svg", { className: style(getSvgSize(imgProps.width), svgUseStyleMap[iconVersion], iconVersion === 'white' ? 'invert' : '', imageClassName), ...imgProps, "aria-hidden": "true", children: [title ? jsx("title", { children: title }) : null, alt ? jsx("desc", { children: alt }) : null, jsx("use", { href: `${href}#icon`, xlinkHref: `${href}#icon` })] }) }));
792
+ }
793
+ if (!className.includes('h-')) {
794
+ imgProps['style'] = { height: `${imgProps.height}px` };
795
+ }
796
+ return (jsx("img", { className: className, src: href, alt: alt, title: title, "aria-hidden": "true", ...imgProps }));
797
+ });
798
+ const getSvgSize = (width) => (width ? '' : 'w-full h-full');
799
+ const Background = JSX(({ className, children }) => className ? jsx("div", { className: className, children: children }) : children);
800
+
801
+ const Select = JSX(({ className = '', label, options = [], value, valid = true, isBorder = true, placeholder = '', onChange, }) => {
802
+ const [isOpen, { setFalse: close, toggle }] = useBool();
803
+ const wrapperRef = useOutsideClick(close);
804
+ const handleChange = useCallback((option) => {
805
+ close();
806
+ onChange && onChange(option);
807
+ }, [onChange]);
808
+ const isSelected = (option) => option.key === value?.key;
809
+ return (jsxs("div", { className: className, ref: wrapperRef, children: [label ? (jsx("div", { className: "mb-2", children: jsx(Text, { size: "text-m", color: "text-primary-text", font: "font-light", children: label }) })) : null, jsxs("div", { className: style('relative', isOpen ? 'z-20' : 'z-10'), children: [jsxs("div", { className: style('text-l flex justify-between items-center text-primary-text cursor-pointer', getBorderStyle(isBorder, valid)), onClick: toggle, children: [jsx("p", { className: "p-4 pr-8 h-14 overflow-hidden text-ellipsis whitespace-nowrap", children: formatOption(value) || placeholder }), jsx(Icon, { className: style('absolute right-3', isOpen ? '' : 'rotate-180'), name: "ArrowUpIcon", width: "16", height: "16" })] }), options?.length ? (jsx("div", { className: style('h-0', isOpen ? '' : 'overflow-hidden'), children: jsx("div", { className: "bg-white text-l max-h-64 overflow-y-auto overflow-x-hidden rounded-md shadow-[0_4px_25px_rgba(0,0,0,0.07)]", children: options.map(renderOption(handleChange, isOpen, isSelected)) }) })) : null] })] }));
810
+ });
811
+ const renderOption = (handleChange, isOpen, isSelected) => (option, i) => (jsxs("div", { onClick: () => {
812
+ handleChange(option);
813
+ }, className: "flex px-4 py-3 cursor-pointer hover:bg-main-divider pr-11 relative", children: [jsx("span", { className: "min-h-6", children: formatOption(option) }), jsx(Icon, { name: "DoneSimpleIcon", width: "16", height: "16", className: style('absolute right-4 pt-0.5', isSelected(option) && isOpen ? '' : 'hidden') })] }, String(i)));
814
+ const formatOption = (_) => _?.text || _?.key || '';
815
+ const getBorderStyle = (isBorder, valid) => style(isBorder ? 'border rounded-md hover:border-primary-hover' : '', valid ? ' border-gray' : 'border-error');
816
+
817
+ const SelectControl = JSX((props) => (jsxs("div", { children: [jsx(Select, { ...props, valid: !props.error }), jsx("div", { className: "h-2", children: props.error ? (jsx(Text, { size: "text-xs", font: "font-light", color: "text-error", children: props.error })) : null })] })));
818
+
819
+ const renderAcquiringRegion = ({ regions, field }) => (jsxs("div", { className: "mb-4 pb-1 border-b border-b-main-divider sm:flex sm:justify-between sm:gap-5 sm:mb-7 sm:border-none sm:pb-0", children: [jsx("div", { className: "mb-3 sm:mb-0 sm:w-1/2", children: jsx(SelectControl, { label: "\u0412\u0438\u0434 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433\u0430", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433", options: ACQUIRING_TYPES.map(({ name: key = '' }) => ({ key, text: key })), ...withValidator(field('acquiringType'), defaultValidator) }) }), jsx("div", { className: "mb-3 sm:mb-0 sm:w-1/2", children: jsx(SelectControl, { label: "\u0410\u0434\u0440\u0435\u0441", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0430\u0434\u0440\u0435\u0441", options: regions.map(({ code = '', name = '' }) => ({ key: code, text: name })), ...withValidator(field('region'), defaultValidator) }) })] }));
820
+
821
+ const SlideCheckbox = JSX(({ value = false, text, type = 'checkbox', onChange }) => (jsxs("div", { role: type, "aria-checked": value, className: "flex justify-start items-center w-full cursor-pointer mb-3", onClick: () => onChange && onChange(!value), children: [jsx("div", { className: style('relative flex-shrink-0 duration-300 w-9 h-5 mr-3 rounded-2xl', value ? 'bg-primary-main' : 'bg-main-divider'), children: jsx("div", { className: style('absolute opacity-80 duration-500 top-0.5 w-4 h-4 bg-white rounded-full', value ? 'left-[50%]' : 'left-[5%]') }) }), jsx(Text, { size: "text-l", font: "font-light", color: "text-primary-text", children: text })] })));
822
+
823
+ const renderSlideCheckboxes = (field) => (jsxs("div", { className: "sm:mb-5", children: [jsx(SlideCheckbox, { text: "\u0425\u043E\u0447\u0443 \u043A\u0443\u043F\u0438\u0442\u044C \u043E\u043D\u043B\u0430\u0439\u043D-\u043A\u0430\u0441\u0441\u0443", ...field('onlineCheckout') }), jsx(SlideCheckbox, { text: "\u0425\u043E\u0447\u0443 \u043A\u0443\u043F\u0438\u0442\u044C POS-\u0442\u0435\u0440\u043C\u0438\u043D\u0430\u043B", ...field('posTerminal') })] }));
824
+
825
+ const renderSubmitButton = (button, className) => {
826
+ const buttonStyle = getRegularButtonClasses({
827
+ className: 'text-white',
828
+ version: button?.version,
829
+ });
830
+ return (jsx("button", { type: "submit", className: style('p-4 mt-3 w-full sm:mt-0 sm:w-auto', buttonStyle, className), children: button?.text ? button.text : 'Отправить заявку' }));
831
+ };
832
+
833
+ const initialFormState$4 = {
834
+ acquiringType: { key: 'Торговый эквайринг' },
835
+ fullName: '',
836
+ inn: '',
837
+ name: '',
838
+ phone: '',
839
+ onlineCheckout: false,
840
+ posTerminal: false,
841
+ };
842
+ const acquiringValidator = objectValidator({
843
+ acquiringType: defaultValidator,
844
+ region: defaultValidator,
845
+ fullName: defaultValidator,
846
+ inn: innValidator,
847
+ name: nameValidator,
848
+ phone: phoneValidator,
849
+ });
850
+ const ApplicationFormAcquiring = JSX((props) => {
851
+ const { button, link, onSubmit } = props;
852
+ const handleSubmit = useCallback((formState) => {
853
+ const { acquiringType, region, fullName, inn, name, phone, onlineCheckout, posTerminal } = formState;
854
+ isValidationSuccess(acquiringValidator(formState)) &&
855
+ onSubmit({
856
+ typeForm: 'acqr',
857
+ region: region?.text || '',
858
+ partnerComments: `Вид эквайринга=${acquiringType?.key || ''}/Онлайн касса=${onlineCheckout}/POS-терминал=${posTerminal}`,
859
+ fullName,
860
+ inn,
861
+ name,
862
+ phone,
863
+ });
864
+ }, [onSubmit]);
865
+ const [, { field, ...formProps }] = useForm(initialFormState$4, handleSubmit);
866
+ const regions = useGetRegions();
867
+ return (jsxs("form", { className: "container", onSubmit: formProps.onSubmit, children: [jsx(Heading, { headingType: "h6", title: "\u0412\u0438\u0434 \u044D\u043A\u0432\u0430\u0439\u0440\u0438\u043D\u0433\u0430 \u0438 \u0440\u0435\u0433\u0438\u043E\u043D", className: "sm:text-center mb-4" }), renderAcquiringRegion({ regions, field }), jsx(Heading, { headingType: "h6", title: "\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", className: "sm:text-center mb-4" }), renderAcquiringDataOrganization(field), renderSlideCheckboxes(field), renderSubmitButton(button, 'mb-4'), jsx(Footnote, { link: link })] }));
868
+ });
869
+
870
+ const renderBusinessCardDataOrganization = (field) => (jsxs("div", { className: "sm:flex sm:justify-between sm:gap-5", children: [jsxs("div", { className: "sm:w-1/2", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E", ...withValidator(field('name'), nameValidator) }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0418\u041D\u041D", ...withValidator(field('inn'), innValidator) })] }), jsxs("div", { className: "sm:w-1/2", children: [jsx(PhoneInputControl, { className: "shrink-0 w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...withValidator(field('mail'), defaultValidator) })] })] }));
871
+
872
+ const renderRegion = ({ regions, field }) => (jsx("div", { className: "w-full mb-3 sm:mb-5", children: jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", options: regions.map(({ code = '', name = '' }) => ({ key: code, text: name })), ...withValidator(field('region'), defaultValidator) }) }));
873
+
874
+ const initialFormState$3 = {
875
+ name: '',
876
+ phone: '',
877
+ inn: '',
878
+ mail: '',
879
+ };
880
+ const businessCardValidator = objectValidator({
881
+ region: defaultValidator,
882
+ name: nameValidator,
883
+ phone: phoneValidator,
884
+ inn: innValidator,
885
+ mail: defaultValidator,
886
+ });
887
+ const ApplicationFormBusinessCard = JSX((props) => {
888
+ const { button, link, onSubmit } = props;
889
+ const handleSubmit = useCallback((formState) => {
890
+ const { region, name, phone, inn, mail } = formState;
891
+ isValidationSuccess(businessCardValidator(formState)) &&
892
+ onSubmit({
893
+ typeForm: 'bcrd',
894
+ region: region?.text || '',
895
+ name,
896
+ phone,
897
+ inn,
898
+ mail,
899
+ });
900
+ }, [onSubmit]);
901
+ const [, { field, ...formProps }] = useForm(initialFormState$3, handleSubmit);
902
+ const regions = useGetRegions();
903
+ return (jsxs("form", { className: "container", onSubmit: formProps.onSubmit, children: [renderRegion({ regions, field }), renderBusinessCardDataOrganization(field), renderSubmitButton(button, 'mb-4'), jsx(Footnote, { link: link })] }));
904
+ });
905
+
906
+ const BRANCHES_URL = '/api/v1/branches';
907
+ const EMPTY_VALUE$1 = [];
908
+ function useBranches(regionCode) {
909
+ const { data } = useAsyncData(regionCode ? `${BRANCHES_URL}?regionCode=${regionCode}` : null, fetchSafeBoxes);
910
+ return data || EMPTY_VALUE$1;
911
+ }
912
+ const fetchSafeBoxes = async (url) => {
913
+ const result = await fetchJSON(url, { method: 'GET' });
914
+ return result || EMPTY_VALUE$1;
915
+ };
916
+
917
+ const MIN_CREDIT_AMOUNT = 1000;
918
+ const MAX_CREDIT_AMOUNT = 1000000000;
919
+ const ITEMS_CREDIT_AMOUNT = ['От 1 000 ₽', 'До 1 000 000 000 ₽'];
920
+ const MIN_CREDIT_TERM = 1;
921
+ const MAX_CREDIT_TERM = 180;
922
+ const ITEMS_CREDIT_TERM = ['От 1 мес', 'До 15 лет'];
923
+
924
+ const renderCreditDataOrganization = (field) => (jsxs("div", { className: "mb-4 pb-1 border-b border-b-main-divider sm:flex sm:justify-between sm:gap-5 sm:mb-7 sm:border-none sm:pb-0", children: [jsxs("div", { className: "sm:w-1/2", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...field('fullName') }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0418\u041D\u041D", ...withValidator(field('inn'), innValidator) }), jsx(PhoneInputControl, { className: "shrink-0 w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) })] }), jsxs("div", { className: "sm:w-1/2", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0413\u043E\u0434\u043E\u0432\u0430\u044F \u0432\u044B\u0440\u0443\u0447\u043A\u0430, \u20BD", ...withValidator(field('annualRevenue'), defaultValidator) }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E", ...withValidator(field('name'), nameValidator) }), jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...field('mail') })] })] }));
925
+
926
+ const useNormalizedInput = (props, { normalize, format }) => {
927
+ const { value, onFocus, onBlur, onChange } = props;
928
+ const [isFocused, setIsFocused] = useState(false);
929
+ const handleFocus = useCallback((e) => {
930
+ setIsFocused(true);
931
+ onFocus && onFocus(e);
932
+ }, []);
933
+ const handleBlur = useCallback(() => {
934
+ setIsFocused(false);
935
+ onChange && onChange(normalize(value));
936
+ onBlur && onBlur();
937
+ }, [onChange, value]);
938
+ return {
939
+ value: (isFocused || !format ? value : format(value)),
940
+ onFocus: handleFocus,
941
+ onBlur: handleBlur,
942
+ };
943
+ };
944
+
945
+ const clamp = (value, min, max) => Math.max(min, Math.min(value, max));
946
+
947
+ const toLocalNumberFormat = (fractionDigits = 0) => (_ = 0) => new Intl.NumberFormat('ru-RU', {
948
+ minimumFractionDigits: 0,
949
+ maximumFractionDigits: fractionDigits,
950
+ }).format(Number(_) || 0);
951
+
952
+ function parseDecimal(value) {
953
+ const rawValue = (value || '').replace(/\D/g, '');
954
+ const unsafeDecimal = parseInt(rawValue, 10);
955
+ return Number.isNaN(unsafeDecimal) ? 0 : unsafeDecimal;
956
+ }
957
+
958
+ function renderRangeWithTicks({ list = [], min, max, step, value = list[0] || min, disabled, onChange, }) {
959
+ const rangeValue = list.length ? list.indexOf(value) : value;
960
+ const inputStyle = {
961
+ backgroundSize: `${(((rangeValue - min) * 100) / (max - min)).toFixed(2)}% 100%`,
962
+ };
963
+ return (jsxs("div", { children: [list.length ? (jsx("div", { className: "absolute w-full flex justify-between -bottom-[3px] px-4", children: list.map((_, i) => (jsx("div", { className: `w-2 h-2 rounded-full ${rangeValue <= i || disabled ? 'bg-gray' : 'bg-primary-main'}` }, String(i)))) })) : null, jsx("div", { className: "absolute inset-x-0 -bottom-1 px-4 leading-[18px]", children: jsx("input", { className: "box-border w-full m-0 cursor-pointer slider relative z-10", style: inputStyle, type: "range", min: min, max: max, step: step, value: rangeValue, disabled: disabled, onInput: ((e) => {
964
+ const rawValue = parseDecimal(e.target?.value);
965
+ const newValue = list.length ? list[rawValue] : rawValue;
966
+ onChange && onChange(newValue || 0);
967
+ }) }) })] }));
968
+ }
969
+
970
+ const DISABLED_INPUT_CLASSES = 'disabled:border-gray disabled:bg-main-divider';
971
+ const DEFAULT_MIN = 1;
972
+ const DEFAULT_MAX = 100;
973
+ const InputRange = JSX((props) => {
974
+ const { className, title, items = [], list = [], min = list.length ? 0 : DEFAULT_MIN, max = list.length ? list.length - 1 : DEFAULT_MAX, step = 1, value = list[0] || min, disabled = false, onChange, } = props;
975
+ const normalizedProps = useNormalizedInput(props, {
976
+ normalize: (_ = 0) => list.length ? closestValue(list)(_) : clamp(_, min, max),
977
+ format: toLocalNumberFormat(),
978
+ });
979
+ const handleChange = useCallback((e) => {
980
+ onChange && onChange(parseDecimal(e.target?.value));
981
+ }, [onChange]);
982
+ return (jsxs("div", { className: className, children: [jsxs("label", { className: "block relative", children: [title ? (jsx(Text, { size: "text-m", font: "font-light", color: "text-primary-text", children: title })) : null, jsx("input", { className: style('m-0 mt-2 font-sans text-h3 w-full h-14', 'border border-solid border-gray rounded-md outline-none', 'p-0 pl-4 box-border', 'text-primary-text hover:border-primary-hover focus:border-primary-text', DISABLED_INPUT_CLASSES), disabled: disabled, onInput: handleChange, ...normalizedProps }), renderRangeWithTicks({ list, min, max, step, disabled, value, onChange })] }), renderRangeCaption(items)] }));
983
+ });
984
+ const closestValue = (list) => (_) => list.reduce((prev, curr) => (Math.abs(curr - _) < Math.abs(prev - _) ? curr : prev));
985
+ const renderRangeCaption = (items) => (jsx("div", { className: "flex justify-between my-2", children: items.map((item, i) => (jsx(Text, { size: "text-s", font: "font-light", color: "text-secondary-text", children: item }, String(i)))) }));
986
+
987
+ const renderCreditParameters = (field) => (jsxs("div", { className: "mb-4 pb-1 border-b border-b-main-divider sm:flex sm:justify-between sm:gap-5 sm:mb-7 sm:border-none sm:pb-0", children: [jsxs("div", { className: "mb-3 sm:mb-0 sm:w-1/2", children: [jsx("label", { children: jsx(Text, { size: "text-m", font: "font-light", children: "\u0421\u0443\u043C\u043C\u0430 \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u20BD" }) }), jsx(InputRange, { items: ITEMS_CREDIT_AMOUNT, min: MIN_CREDIT_AMOUNT, max: MAX_CREDIT_AMOUNT, ...field('amount') })] }), jsxs("div", { className: "sm:w-1/2", children: [jsx("label", { children: jsx(Text, { size: "text-m", font: "font-light", children: "\u0421\u0440\u043E\u043A \u043A\u0440\u0435\u0434\u0438\u0442\u0430, \u043C\u0435\u0441\u044F\u0446\u0435\u0432" }) }), jsx(InputRange, { items: ITEMS_CREDIT_TERM, min: MIN_CREDIT_TERM, max: MAX_CREDIT_TERM, ...field('term') })] })] }));
988
+
989
+ const renderRegionDepartment = ({ regions, branches, field }) => (jsxs("div", { className: "mb-4 sm:flex sm:justify-between sm:gap-5 sm:mb-7 sm:border-none sm:pb-0", children: [jsx("div", { className: "mb-3 sm:mb-0 sm:w-1/2", children: jsx(SelectControl, { label: "\u0420\u0435\u0433\u0438\u043E\u043D", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0440\u0435\u0433\u0438\u043E\u043D", options: regions.map(({ code = '', name = '' }) => ({ key: code, text: name })), ...withValidator(field('region'), defaultValidator) }) }), jsx("div", { className: "mb-3 sm:mb-0 sm:w-1/2", children: jsx(SelectControl, { label: "\u0410\u0434\u0440\u0435\u0441", placeholder: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0430\u0434\u0440\u0435\u0441", options: branches.map(({ branchCode = '', address = '' }) => ({
990
+ key: branchCode,
991
+ text: address,
992
+ })), ...withValidator(field('department'), defaultValidator) }) })] }));
993
+
994
+ const initialFormState$2 = {
995
+ amount: MIN_CREDIT_AMOUNT,
996
+ term: 12,
997
+ fullName: '',
998
+ inn: '',
999
+ name: '',
1000
+ phone: '',
1001
+ mail: '',
1002
+ annualRevenue: '',
1003
+ };
1004
+ const creditValidator = objectValidator({
1005
+ annualRevenue: defaultValidator,
1006
+ inn: innValidator,
1007
+ name: nameValidator,
1008
+ phone: phoneValidator,
1009
+ region: defaultValidator,
1010
+ department: defaultValidator,
1011
+ });
1012
+ const ApplicationFormCredit = JSX(({ button, link, onSubmit }) => {
1013
+ const handleSubmit = useCallback((formState) => {
1014
+ const { amount, term, fullName, inn, name, phone, mail, region, department, annualRevenue } = formState;
1015
+ isValidationSuccess(creditValidator(formState)) &&
1016
+ onSubmit({
1017
+ typeForm: 'cred',
1018
+ fullName,
1019
+ inn,
1020
+ name,
1021
+ phone,
1022
+ mail,
1023
+ region: region?.text || '',
1024
+ department: department?.text || '',
1025
+ partnerComments: `Сумма=${amount}/Срок=${term}/Выручка=${annualRevenue}`,
1026
+ });
1027
+ }, [onSubmit]);
1028
+ const [formState, { field, ...formProps }] = useForm(initialFormState$2, handleSubmit);
1029
+ const regions = useGetRegions();
1030
+ const branches = useBranches(formState.region?.key).filter((branch) => branch?.address);
1031
+ return (jsxs("form", { className: "container", onSubmit: formProps.onSubmit, children: [jsx(Heading, { headingType: "h6", title: "\u041F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B \u043A\u0440\u0435\u0434\u0438\u0442\u0430", className: "sm:text-center mb-4" }), renderCreditParameters(field), jsx(Heading, { headingType: "h6", title: "\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", className: "sm:text-center mb-4" }), renderCreditDataOrganization(field), jsx(Heading, { headingType: "h6", title: "\u041E\u0444\u0438\u0441 \u0431\u0430\u043D\u043A\u0430", className: "sm:text-center mb-4" }), renderRegionDepartment({ regions, branches, field }), renderSubmitButton(button, 'mb-4'), jsx(Footnote, { link: link })] }));
1032
+ });
1033
+
1034
+ const initialFormState$1 = {
1035
+ name: '',
1036
+ phone: '',
1037
+ };
1038
+ const depositValidator = objectValidator({
1039
+ name: nameValidator,
1040
+ phone: phoneValidator,
1041
+ });
1042
+ const ApplicationFormDeposit = JSX((props) => {
1043
+ const { button, link, onSubmit } = props;
1044
+ const handleSubmit = useCallback((formState) => {
1045
+ const { name, phone } = formState;
1046
+ isValidationSuccess(depositValidator(formState)) &&
1047
+ onSubmit({
1048
+ typeForm: 'dpst',
1049
+ name,
1050
+ phone,
1051
+ });
1052
+ }, [onSubmit]);
1053
+ const [, { field, ...formProps }] = useForm(initialFormState$1, handleSubmit);
1054
+ return (jsxs("form", { className: "container", onSubmit: formProps.onSubmit, children: [jsx(Heading, { headingType: "h6", title: "\u041E\u0441\u0442\u0430\u0432\u044C\u0442\u0435 \u0437\u0430\u044F\u0432\u043A\u0443 \u0438 \u043C\u044B \u043E\u0442\u0432\u0435\u0442\u0438\u043C \u043D\u0430 \u043B\u044E\u0431\u044B\u0435 \u0432\u043E\u043F\u0440\u043E\u0441\u044B \u043F\u043E \u0434\u0435\u043F\u043E\u0437\u0438\u0442\u0430\u043C", className: "sm:text-center mb-4" }), jsxs("div", { className: "max-w-[560px] m-auto", children: [jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0418\u043C\u044F", ...withValidator(field('name'), nameValidator) }), jsx(PhoneInputControl, { className: "shrink-0 w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) })] }), jsxs("div", { className: "flex justify-between flex-col-reverse sm:items-center sm:flex-row max-w-[560px] m-auto", children: [jsx("div", { className: "flex-1 mt-4 sm:mt-0", children: jsx(Footnote, { link: link }) }), renderSubmitButton(button)] })] }));
1055
+ });
1056
+
1057
+ const sourcesComparator = (a, b) => a?.media && b?.media ? a.media - b.media : 0;
1058
+ const ImgAsPicture = JSX(({ className = '', image, imageClassName = '', pathPrefix }) => {
1059
+ const router = useRouter();
1060
+ return (jsxs("picture", { className: className, children: [image?.sources?.length
1061
+ ? image.sources
1062
+ .filter((_) => _?.src)
1063
+ .sort(sourcesComparator)
1064
+ .map(({ src, format, media }, index) => (jsx("source", { srcSet: adjustSrc(router, pathPrefix)(src), type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...image.size }, `${index}_${src}`)))
1065
+ : null, image?.src
1066
+ ? renderImg({ ...image, src: adjustSrc(router, pathPrefix)(image.src) }, imageClassName)
1067
+ : null] }));
1068
+ });
1069
+ const renderImg = (image, imageClassName = '') => (jsx("img", { src: image.src, className: style('object-contain', imageClassName), alt: image.alt || image.title, title: image.title || '', style: {
1070
+ width: image.size?.width ? `${image.size?.width}px` : '100%',
1071
+ height: image.size?.height ? `${image.size?.height}px` : 'auto',
1072
+ }, ...image.size }));
1073
+ const adjustSrc = (router, pathPrefix) => (src) => src && !isURL(src) ? adjustHref(router)(joinPath(pathPrefix, src)) : src;
1074
+ const formatToMimeType = (format) => format ? `image/${String(format)}` : undefined;
1075
+
1076
+ const Img = JSX(({ className = '', image, imageClassName = '', pathPrefix, ...iconProps }) => {
1077
+ if (!image?.src && !image?.icon) {
1078
+ return null;
1079
+ }
1080
+ return image.icon ? (jsx(Icon, { className: className, imageClassName: imageClassName, iconVersion: image?.iconVersion, name: image.icon, ...iconProps })) : (jsx(ImgAsPicture, { className: className, imageClassName: imageClassName, image: image, pathPrefix: pathPrefix }));
1081
+ });
1082
+
1083
+ const renderContacts = () => (jsxs("div", { className: "flex", children: [jsxs("a", { className: "flex items-center text-primary-text no-underline mr-6", href: `tel:8 (800) 200-78-70`, "aria-label": "8 (800) 200-78-70", children: [jsx(Img, { image: { icon: 'PhoneIcon' }, width: "24", height: "24", className: "mr-3" }), jsx("span", { children: "8 (800) 200-78-70" })] }), jsxs("a", { className: "flex items-center text-primary-text no-underline", "aria-label": "ved@rshb.ru", href: `mailto:ved@rshb.ru`, children: [jsx(Img, { image: { icon: 'MailIcon' }, width: "24", height: "24", className: "mr-3" }), jsx("span", { children: "ved@rshb.ru" })] })] }));
1084
+
1085
+ const SVG = JSX(({ className, viewBox, fill = 'none', width, height, paths, ...commonOptions }) => {
1086
+ return (jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: className, viewBox: viewBox, fill: fill, width: width, height: height, children: paths.map(({ d, fill: pathFill, ...options }, i) => (jsx("path", { d: d, fill: pathFill || 'currentColor', ...commonOptions, ...options }, i))) }));
1087
+ });
1088
+
1089
+ const CHECK_PATHS = [
1090
+ {
1091
+ d: 'M10.207.793a1 1 0 0 1 0 1.414l-6 6a1 1 0 0 1-1.414 0l-2.5-2.5a1 1 0 0 1 1.414-1.414L3.5 6.086 8.793.793a1 1 0 0 1 1.414 0Z',
1092
+ fillRule: 'evenodd',
1093
+ clipRule: 'evenodd',
1094
+ fill: 'white',
1095
+ },
1096
+ ];
1097
+ const Checkbox = JSX(({ className, value, text, disabled, isRadio, onChange }) => {
1098
+ const handleChange = useCallback((e) => {
1099
+ if (disabled) {
1100
+ return;
1101
+ }
1102
+ e.preventDefault();
1103
+ onChange && onChange(!value);
1104
+ }, [onChange, disabled, value]);
1105
+ const icon = isRadio ? (jsx("div", { className: "absolute left-1 w-3 h-3 rounded-full bg-primary-main" })) : (jsx(SVG, { paths: CHECK_PATHS, className: "absolute left-1 ml-px block", width: "11", height: "9", fill: "white", viewBox: "0 0 11 9" }));
1106
+ return (jsx("div", { className: className, children: jsxs("label", { className: "flex items-center relative cursor-pointer group/box", onClick: handleChange, children: [jsx("div", { className: style('appearance-none w-5 h-5 border-solid cursor-pointer m-0', isRadio ? 'rounded-full border-2' : checkboxStyle(value), value ? 'border-primary-main' : 'border-gray', disabled ? 'bg-main-disabled' : 'group-hover/box:border-primary-hover'), role: "checkbox", "aria-checked": Boolean(value), "aria-disabled": Boolean(disabled) }), value ? icon : null, text ? (jsx("div", { className: "ml-3", children: jsx(Text, { size: "text-l", font: "font-light", children: text }) })) : null] }) }));
1107
+ });
1108
+ const checkboxStyle = (value) => style('rounded border', value ? 'bg-primary-main' : '');
1109
+
1110
+ const renderQuestionsInterested = (field) => {
1111
+ const textField = field('text');
1112
+ return (jsxs("div", { className: "mb-3 sm:mb-6", children: [jsxs("div", { className: "mb-4 sm:flex sm:items-center sm:gap-6", children: [jsx(Checkbox, { className: "mb-3 sm:mb-0", text: "\u0412\u0430\u043B\u044E\u0442\u043D\u044B\u0439 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C", ...field('currencyControl') }), jsx(Checkbox, { className: "mb-3 sm:mb-0", text: "\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0440\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438", ...field('documentaryOperations') }), jsx(Checkbox, { className: "mb-3 sm:mb-0", text: "\u041A\u043E\u043D\u0432\u0435\u0440\u0441\u0438\u043E\u043D\u043D\u044B\u0435 \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438", ...field('conversionOperations') })] }), jsx("textarea", { placeholder: "\u0423\u043A\u0430\u0436\u0438\u0442\u0435 \u0438\u043D\u0442\u0435\u0440\u0435\u0441\u0443\u044E\u0449\u0438\u0439 \u0432\u0430\u0441 \u0432\u043E\u043F\u0440\u043E\u0441, \u043C\u0435\u0441\u0442\u043E \u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0431\u0438\u0437\u043D\u0435\u0441\u0430 \u0438 \u0443\u0434\u043E\u0431\u043D\u043E\u0435 \u0432\u0440\u0435\u043C\u044F \u0434\u043B\u044F \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u043D\u043E\u0433\u043E \u0437\u0432\u043E\u043D\u043A\u0430", className: "block w-full resize-y min-h-24 p-4 outline-none border rounded-md border-main-stroke hover:border-primary-hover active:focus:border-primary-text", value: textField.value, onInput: ((e) => textField.onChange && textField.onChange(e.target?.value || '')) })] }));
1113
+ };
1114
+
1115
+ const renderWedDataOrganization = (field) => (jsxs("div", { children: [jsxs("div", { className: "sm:flex sm:justify-between sm:gap-5", children: [jsx("div", { className: "sm:w-1/2", children: jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", ...withValidator(field('fullName'), defaultValidator) }) }), jsx("div", { className: "sm:w-1/2", children: jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u0424\u0418\u041E", ...withValidator(field('name'), nameValidator) }) })] }), jsxs("div", { className: "sm:flex sm:justify-between sm:gap-5 sm:mb-7", children: [jsx("div", { className: "sm:w-1/2", children: jsx(PhoneInputControl, { className: "shrink-0 w-full mb-3", label: "\u0422\u0435\u043B\u0435\u0444\u043E\u043D", ...withValidator(field('phone'), phoneValidator) }) }), jsx("div", { className: "sm:w-1/2", children: jsx(InputControl, { className: "shrink-0 w-full mb-3", label: "\u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u0430\u044F \u043F\u043E\u0447\u0442\u0430", ...withValidator(field('mail'), defaultValidator) }) })] })] }));
1116
+
1117
+ const initialFormState = {
1118
+ fullName: '',
1119
+ name: '',
1120
+ phone: '',
1121
+ mail: '',
1122
+ currencyControl: false,
1123
+ documentaryOperations: false,
1124
+ conversionOperations: false,
1125
+ text: '',
1126
+ };
1127
+ const webValidator = objectValidator({
1128
+ fullName: defaultValidator,
1129
+ name: nameValidator,
1130
+ phone: phoneValidator,
1131
+ mail: defaultValidator,
1132
+ });
1133
+ const ApplicationFormWed = JSX((props) => {
1134
+ const { button, link, onSubmit } = props;
1135
+ const handleSubmit = useCallback((formState) => {
1136
+ const { fullName, name, phone, mail, currencyControl, documentaryOperations, conversionOperations, text, } = formState;
1137
+ isValidationSuccess(webValidator(formState)) &&
1138
+ onSubmit({
1139
+ typeForm: 'kved',
1140
+ fullName,
1141
+ name,
1142
+ phone,
1143
+ mail,
1144
+ partnerComments: `Валютный контроль=${currencyControl}/Документарные операции=${documentaryOperations}/Конверсионные операции=${conversionOperations}/Доп инф=${text}`,
1145
+ });
1146
+ }, [onSubmit]);
1147
+ const [, { field, ...formProps }] = useForm(initialFormState, handleSubmit);
1148
+ return (jsxs("form", { className: "container", onSubmit: formProps.onSubmit, children: [jsx(Heading, { headingType: "h6", title: "\u0414\u0430\u043D\u043D\u044B\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438", className: "sm:text-center mb-4" }), renderWedDataOrganization(field), jsx(Heading, { headingType: "h6", title: "\u0418\u043D\u0442\u0435\u0440\u0435\u0441\u0443\u044E\u0449\u0438\u0439 \u0432\u043E\u043F\u0440\u043E\u0441", className: "sm:text-center mb-4" }), renderQuestionsInterested(field), jsxs("div", { className: "flex flex-col border-b border-main-divider mb-5 pb-5 sm:items-center sm:flex-row sm:mb-9 sm:pb-9", children: [renderSubmitButton(button, 'mb-4 sm:mr-5 sm:mb-0'), jsx(Footnote, { link: link })] }), jsx(Heading, { headingType: "h6", title: "\u0418\u043B\u0438 \u0441\u0432\u044F\u0436\u0438\u0442\u0435\u0441\u044C \u0441 \u043D\u0430\u043C\u0438 \u0443\u0434\u043E\u0431\u043D\u044B\u043C \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043C", className: "sm:text-center mb-4" }), renderContacts()] }));
1149
+ });
1150
+
1151
+ const ResponseNotification = JSX(({ responseType }) => {
1152
+ const responseOK = responseType === 'OK';
1153
+ const backgroundColor = responseOK ? 'bg-ok' : 'bg-fail';
1154
+ return (jsxs("div", { className: `flex items-center mt-5 p-5 rounded-md ${backgroundColor}`, children: [responseOK ? (jsx(Img, { image: { icon: 'ResponceOKIcon' }, width: "42", height: "42", className: "mr-4" })) : (jsx(Img, { image: { icon: 'ResponceFailIcon' }, width: "37", height: "34", className: "mr-4" })), jsxs("div", { children: [jsx(Heading, { headingType: "h6", title: responseOK ? 'Ваша заявка отправлена' : 'Не удалось отправить заявку', className: "mb-1" }), jsx(Text, { size: "text-l", font: "font-light", color: "text-secondary-text", children: responseOK ? 'Совсем скоро мы с вами свяжемся' : 'Пожалуйста, повторите позднее' })] })] }));
328
1155
  });
329
1156
 
330
- const mobileHeadingTagMap = {
331
- h1: 'h1',
332
- h2: 'h1',
333
- h3: 'h2',
334
- h4: 'h2',
335
- h5: 'h3',
336
- h6: 'h3',
337
- };
338
- const headingTag = (tag) => mobileHeadingTagMap[tag] || 'h3';
1157
+ const COMPONENTS_MAP = {
1158
+ credit: (props) => jsx(ApplicationFormCredit, { ...props }),
1159
+ acquiring: (props) => jsx(ApplicationFormAcquiring, { ...props }),
1160
+ 'business-card': (props) => jsx(ApplicationFormBusinessCard, { ...props }),
1161
+ deposit: (props) => jsx(ApplicationFormDeposit, { ...props }),
1162
+ wed: (props) => jsx(ApplicationFormWed, { ...props }),
1163
+ };
1164
+ const API = CorporateLeadAPI();
1165
+ const ApplicationForm = JSX((props) => {
1166
+ const { className, title, typeForm = 'credit', button, link, ...rest } = props;
1167
+ const [responseType, setResponseType] = useState('');
1168
+ const handleSubmit = useCallback(async (data) => {
1169
+ const status = (await API.send(data)) ? 'OK' : 'Fail';
1170
+ setResponseType(status);
1171
+ return status;
1172
+ }, []);
1173
+ return (jsx(BlockWrapper, { className: className, defaultPadding: "p-default", ...rest, children: jsxs("div", { className: "container max-w-[978px]", children: [title ? (jsx(Heading, { headingType: "h3", title: title, className: "mb-4 sm:mb-8 sm:text-center" })) : null, COMPONENTS_MAP[typeForm]({ button, link, onSubmit: handleSubmit }), responseType ? jsx(ResponseNotification, { responseType: responseType }) : null] }) }));
1174
+ });
339
1175
 
340
- const styles = {
341
- h0: 'text-h0',
342
- h1: 'text-h1',
343
- h2: 'text-h2',
344
- h3: 'text-h3',
345
- h4: 'text-h4',
346
- h5: 'text-h5',
347
- h6: 'text-h6', // 20
348
- };
349
- const Heading = JSX(({ className = '', headingType = 'h3', as = 'h3', title, children }) => {
350
- const Tag = headingTag(as);
351
- return (jsx(Tag, { className: style('font-sans m-0', styles[headingType], className), children: title || children }));
1176
+ const iconBgStyles = {
1177
+ '': 'bg-main-divider group-data-secondary:bg-white/30',
1178
+ primary: 'bg-main-divider',
1179
+ secondary: 'bg-secondary-light',
1180
+ opacity: 'bg-white/30',
1181
+ };
1182
+ const RoundedIcon = JSX(({ className, defaultIconSize = 44, iconBgVersion = 'primary', size, icon, ...rest }) => {
1183
+ const widthAndHeight = String(size?.width || defaultIconSize);
1184
+ return icon ? (jsx("div", { style: {
1185
+ width: `${widthAndHeight}px`,
1186
+ height: `${widthAndHeight}px`,
1187
+ }, className: style('rounded-icon object-fit flex justify-center items-center ', iconBgStyles[iconBgVersion], className), children: jsx(Icon, { ...rest, width: "54%", height: "54%", name: icon }) })) : null;
352
1188
  });
353
1189
 
354
- const Paragraph = JSX(({ children, ...styleProps }) => (jsx("p", { className: style('font-sans', Object.values(styleProps)), children: children })));
1190
+ const defaultIconSize = 56;
1191
+
1192
+ const BenefitsBlock = JSX(({ className = '', title, benefitList, ...rest }) => (jsxs(BlockWrapper, { className: className, defaultPadding: "p-default", ...rest, children: [title ? jsx(Heading, { headingType: "h3", as: "h2", className: "text-center", title: title }) : null, benefitList?.length ? (jsx("div", { className: "flex flex-wrap w-full sm:justify-center mt-m gap-xl", role: "list", children: benefitList.map(renderBenefit) })) : null] })));
1193
+ const renderBenefit = (benefit, i) => (jsxs("div", { className: "flex gap-s items-center md:basis-1/2 md:max-w-[400px]", role: "listitem", children: [benefit?.icon?.icon ? (jsx(RoundedIcon, { className: "shrink-0", defaultIconSize: defaultIconSize, iconBgVersion: benefit?.iconBgVersion || '', ...benefit?.icon })) : null, benefit?.icon?.src ? jsx(Img, { className: "shrink-0", image: benefit.icon }) : null, benefit?.label ? (jsxs("div", { className: "sm:h-full", children: [jsx(Heading, { headingType: "h6", children: benefit.label }), renderDescription$3(benefit.description)] })) : null] }, String(i)));
1194
+ const renderDescription$3 = (description) => {
1195
+ const benefitType = description?.benefitType || null;
1196
+ return description && benefitType ? (jsx("div", { className: "mt-2 text-l font-light text-secondary-text group-data-secondary:text-white/80", children: benefitType === 'list'
1197
+ ? renderListBenefit(description)
1198
+ : renderTextBenefit(description) })) : null;
1199
+ };
1200
+ const renderTextBenefit = (description) => description?.name || null;
1201
+ const renderListBenefit = (description) => {
1202
+ const listStyleType = description?.bullets ? 'list-disc pl-6' : '';
1203
+ return description?.items && description.items.length > 0 ? (jsx("ul", { className: listStyleType, children: description.items.map((_, i) => (jsx("li", { children: _ }, `benefitListItem-${i}`))) })) : null;
1204
+ };
355
1205
 
356
1206
  const headlineVersionStyles = {
357
1207
  XXL: {
@@ -548,257 +1398,50 @@
548
1398
  scrollBy(containerRef.current)(itemCount, 1);
549
1399
  }
550
1400
  }, [itemCount, isCyclic, canScrollRight]);
551
- return [
552
- containerRef,
553
- {
554
- scrollLeft,
555
- scrollRight,
556
- canScrollLeft: isCyclic || canScrollLeft,
557
- canScrollRight: isCyclic || canScrollRight,
558
- visibleIndicesRange: [minIndex, maxIndex],
559
- handleVisibleIndicesChange,
560
- },
561
- ];
562
- };
563
-
564
- const DEFAULT_GAP = 14;
565
- /*
566
- Horizontal padding used on a container above SwipeListControl.
567
- Same value used on a SwipeListControlChildren container to compensate it
568
- and get rid of a clipping effect caused by overflow: hidden.
569
- */
570
- const DEFAULT_PADDING = 16;
571
- const SwipeListControl = JSX(({ className, version, gap = DEFAULT_GAP, padding = DEFAULT_PADDING, showDots = true, minHeight, children, onVisibleIndicesChange, listType = 'horizontal-list', }) => {
572
- const itemCount = Array.isArray(children) ? children.length : 0;
573
- const [containerRef, scroll] = useSwipeListScroll({
574
- itemCount,
575
- onVisibleIndicesChange,
576
- });
577
- const [activeIndex] = scroll.visibleIndicesRange;
578
- return (jsxs("div", { className: style(className, listType === 'vertical-list' ? 'relative h-full' : ''), children: [jsx(SwipeListContainer, { containerRef: containerRef, activeIndex: activeIndex, visibleItemCount: 1, gap: gap, padding: padding, onVisibleIndicesChange: scroll.handleVisibleIndicesChange, listType: listType, minHeight: minHeight, children: children }), showDots ? (jsx(SwipeListControlDots, { containerRef: containerRef, activeIndex: activeIndex, dotCount: itemCount, listType: listType, version: version })) : null] }));
579
- });
580
-
581
- function useRouter() {
582
- return useRouter._impl();
583
- }
584
- useRouter._impl = () => ({
585
- href: globalThis.location?.href || '/',
586
- pathname: globalThis.location?.pathname || '/',
587
- query: {},
588
- push: () => {
589
- // Do nothing
590
- },
591
- replace: () => {
592
- // Do nothing
593
- },
594
- back: () => {
595
- // Do nothing
596
- },
597
- });
598
- useRouter.setup = (impl) => {
599
- useRouter._impl = impl;
600
- };
601
-
602
- const dirname = (path) => path?.split('/').slice(0, -1).join('/');
603
-
604
- const isURL = (href) => Boolean(href?.includes(':'));
605
- const isLocalURL = (href, target) => Boolean(href && !isURL(href) && (!target || target === '_self'));
606
- const isHash = (href) => Boolean(href?.startsWith('#'));
607
- const withoutQuery = (href) => (href || '').replace(/\?.*/, '').replace(/\/$/, '');
608
- const joinPath = (...path) => path.filter(Boolean).join('/').replace(/\/+/g, '/');
609
-
610
- var url = /*#__PURE__*/Object.freeze({
611
- __proto__: null,
612
- isURL: isURL,
613
- isLocalURL: isLocalURL,
614
- isHash: isHash,
615
- withoutQuery: withoutQuery,
616
- joinPath: joinPath
617
- });
618
-
619
- const adjustHref = (router) => (href, basePath = projectSettings.BASE_PATH) => {
620
- if (!href || isURL(href) || hasPrefix(href, projectSettings.CDN)) {
621
- return href;
622
- }
623
- const isRelativeToBase = href.startsWith('/');
624
- return joinPath(hasPrefix(href, basePath) ? '' : basePath, isRelativeToBase ? '/' : dirname(router.pathname), href);
625
- };
626
- const hasPrefix = (href, prefix) => prefix && href && href.startsWith(prefix);
627
-
628
- const svgUseStyleMap = {
629
- normal: '',
630
- color: 'text-primary-main',
631
- black: 'text-black',
632
- white: 'text-black',
633
- };
634
- const Icon = JSX(({ className = '', imageClassName = '', name = '', alt = `Иконка ${name}`, title = alt, iconVersion = 'color', ...imgProps }) => {
635
- const router = useRouter();
636
- const href = adjustHref(router)(joinPath(projectSettings.CDN, '/icons', `${name}.svg`));
637
- if (iconVersion !== 'normal') {
638
- return (jsx(Background, { className: className, children: jsxs("svg", { className: style(getSvgSize(imgProps.width), svgUseStyleMap[iconVersion], iconVersion === 'white' ? 'invert' : '', imageClassName), ...imgProps, "aria-hidden": "true", children: [title ? jsx("title", { children: title }) : null, alt ? jsx("desc", { children: alt }) : null, jsx("use", { href: `${href}#icon`, xlinkHref: `${href}#icon` })] }) }));
639
- }
640
- if (!className.includes('h-')) {
641
- imgProps['style'] = { height: `${imgProps.height}px` };
642
- }
643
- return (jsx("img", { className: className, src: href, alt: alt, title: title, "aria-hidden": "true", ...imgProps }));
644
- });
645
- const getSvgSize = (width) => (width ? '' : 'w-full h-full');
646
- const Background = JSX(({ className, children }) => className ? jsx("div", { className: className, children: children }) : children);
647
-
648
- const sourcesComparator = (a, b) => a?.media && b?.media ? a.media - b.media : 0;
649
- const ImgAsPicture = JSX(({ className = '', image, imageClassName = '', pathPrefix }) => {
650
- const router = useRouter();
651
- return (jsxs("picture", { className: className, children: [image?.sources?.length
652
- ? image.sources
653
- .filter((_) => _?.src)
654
- .sort(sourcesComparator)
655
- .map(({ src, format, media }, index) => (jsx("source", { srcSet: adjustSrc(router, pathPrefix)(src), type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...image.size }, `${index}_${src}`)))
656
- : null, image?.src
657
- ? renderImg({ ...image, src: adjustSrc(router, pathPrefix)(image.src) }, imageClassName)
658
- : null] }));
659
- });
660
- const renderImg = (image, imageClassName = '') => (jsx("img", { src: image.src, className: style('object-contain', imageClassName), alt: image.alt || image.title, title: image.title || '', style: {
661
- width: image.size?.width ? `${image.size?.width}px` : '100%',
662
- height: image.size?.height ? `${image.size?.height}px` : 'auto',
663
- }, ...image.size }));
664
- const adjustSrc = (router, pathPrefix) => (src) => src && !isURL(src) ? adjustHref(router)(joinPath(pathPrefix, src)) : src;
665
- const formatToMimeType = (format) => format ? `image/${String(format)}` : undefined;
666
-
667
- const Img = JSX(({ className = '', image, imageClassName = '', pathPrefix, ...iconProps }) => {
668
- if (!image?.src && !image?.icon) {
669
- return null;
670
- }
671
- return image.icon ? (jsx(Icon, { className: className, imageClassName: imageClassName, iconVersion: image?.iconVersion, name: image.icon, ...iconProps })) : (jsx(ImgAsPicture, { className: className, imageClassName: imageClassName, image: image, pathPrefix: pathPrefix }));
672
- });
673
-
674
- const Text = JSX(({ children, ...styleProps }) => (jsx("span", { className: style('font-sans', Object.values(styleProps)), children: children })));
675
-
676
- const bonusBenefitAlign = 'text-left';
677
-
678
- const bonusBenefitStyles = 'justify-between p-4 h-full border border-gray';
679
-
680
- const renderBonusBenefit = ({ icon, title, description }, i) => (jsxs("div", { className: style('flex flex-col', bonusBenefitStyles, !description && !title ? 'justify-center' : ''), children: [title ? (jsx(Text, { size: "text-h6", font: "font-normal", align: bonusBenefitAlign, children: title })) : null, icon ? jsx(Img, { image: icon, height: "180", className: "w-auto" }) : null, description ? (jsx(Text, { size: "text-h6", font: "font-normal", align: bonusBenefitAlign, children: description })) : null] }, String(i)));
681
-
682
- const renderBonusBenefits = (bonusBenefits, columnsCount, cardTextAlign) => (jsx(SwipeListControl, { children: bonusBenefits.map((_, i) => renderBonusBenefit({ ..._ }, i)) }));
683
-
684
- const BonusBenefitsBlock = JSX(({ bonusBenefits, cardTextAlign = 'center', className = '', columnsCount = '4', subtitle, title, ...rest }) => (jsxs(BlockWrapper, { className: style('p-default', className), defaultPadding: "p-default", ...rest, children: [jsx(Headline, { className: "mb-4 sm:mb-8", isPadding: false, title: title, description: subtitle, headlineVersion: "M" }), bonusBenefits?.length
685
- ? renderBonusBenefits(bonusBenefits)
686
- : null] })));
687
-
688
- const useDialog = (id = '') => ({
689
- open: (message) => defaultEventBus.fire('dialog', { type: 'open', id, message }),
690
- close: () => defaultEventBus.fire('dialog', { type: 'close' }),
691
- });
692
-
693
- /* eslint-disable @typescript-eslint/ban-types */
694
- const handlerDecorator = (handler, targetContent) => {
695
- return handlerDecorator._impl(handler, targetContent);
696
- };
697
- handlerDecorator._impl = (handler) => handler;
698
- handlerDecorator.setup = (impl) => {
699
- handlerDecorator._impl = impl;
700
- };
701
-
702
- function useLink(params = {}) {
703
- const { isRemote, basePath } = params;
704
- const router = useRouter();
705
- const { close } = useDialog();
706
- return (props) => ({
707
- ...props,
708
- href: isRemote && !basePath ? props.href : adjustHref(router)(props.href, basePath),
709
- 'aria-label': props.text,
710
- onClick: handlerDecorator(handleHref(props), props),
711
- });
712
- function handleHref({ href, target, onClick }) {
713
- return (ev) => {
714
- onClick && onClick(ev);
715
- if (!href || isRemote || !isLocalURL(href, target)) {
716
- // Default routing
717
- return;
718
- }
719
- close();
720
- // Client routing
721
- ev?.preventDefault();
722
- router.push(href);
723
- };
724
- }
725
- }
726
-
727
- const buttonStyleMap = {
728
- primary: 'text-white bg-primary-main hover:bg-primary-hover active:bg-primary-active',
729
- secondary: 'text-primary-main bg-main-divider hover:text-white hover:bg-primary-hover active:bg-primary-active',
730
- white: 'text-primary-main bg-white hover:text-white hover:bg-primary-hover active:bg-white active:text-primary-main',
731
- link: '',
732
- transparent: '',
733
- gray: 'text-primary-main bg-main-divider hover:text-white hover:bg-primary-hover active:bg-primary-active',
734
- '': '',
735
- };
736
- const DisabledStyle = 'bg-main-divider text-main-disabled';
737
- const buttonDisabledStyleMap = {
738
- primary: DisabledStyle,
739
- secondary: DisabledStyle,
740
- white: DisabledStyle,
741
- link: '',
742
- transparent: '',
743
- gray: DisabledStyle,
744
- '': '',
745
- };
746
- const buttonStyle = 'text-center font-sans select-none';
747
- const iconStyleMap = {
748
- primary: 'group-hover/btn:brightness-0 group-hover/btn:invert',
749
- secondary: 'group-hover/btn:brightness-0 group-hover/btn:invert',
750
- white: 'group-hover/btn:brightness-0 group-hover/btn:invert',
751
- link: '',
752
- transparent: '',
753
- gray: 'group-hover/btn:brightness-0 group-hover/btn:invert',
754
- '': '',
1401
+ return [
1402
+ containerRef,
1403
+ {
1404
+ scrollLeft,
1405
+ scrollRight,
1406
+ canScrollLeft: isCyclic || canScrollLeft,
1407
+ canScrollRight: isCyclic || canScrollRight,
1408
+ visibleIndicesRange: [minIndex, maxIndex],
1409
+ handleVisibleIndicesChange,
1410
+ },
1411
+ ];
755
1412
  };
756
1413
 
757
- const ButtonInner = JSX((props) => {
758
- const { text, aboveText, appendLeft, appendRight, version = 'primary' } = props;
759
- return (jsxs("div", { className: style(getButtonStyle(props), 'flex gap-2'), children: [appendLeft ? jsx("div", { className: iconStyleMap[version], children: appendLeft }) : null, isWithText(props) ? (jsxs("div", { children: [aboveText ? jsx("div", { className: "text-xs font-light text-left", children: aboveText }) : null, jsx("div", { className: `text-left ${aboveText ? 'text-s -mt-0.5' : 'text-l'}`, children: text })] })) : null, appendRight ? jsx("div", { className: iconStyleMap[version], children: appendRight }) : null] }));
1414
+ const DEFAULT_GAP = 14;
1415
+ /*
1416
+ Horizontal padding used on a container above SwipeListControl.
1417
+ Same value used on a SwipeListControlChildren container to compensate it
1418
+ and get rid of a clipping effect caused by overflow: hidden.
1419
+ */
1420
+ const DEFAULT_PADDING = 16;
1421
+ const SwipeListControl = JSX(({ className, version, gap = DEFAULT_GAP, padding = DEFAULT_PADDING, showDots = true, minHeight, children, onVisibleIndicesChange, listType = 'horizontal-list', }) => {
1422
+ const itemCount = Array.isArray(children) ? children.length : 0;
1423
+ const [containerRef, scroll] = useSwipeListScroll({
1424
+ itemCount,
1425
+ onVisibleIndicesChange,
1426
+ });
1427
+ const [activeIndex] = scroll.visibleIndicesRange;
1428
+ return (jsxs("div", { className: style(className, listType === 'vertical-list' ? 'relative h-full' : ''), children: [jsx(SwipeListContainer, { containerRef: containerRef, activeIndex: activeIndex, visibleItemCount: 1, gap: gap, padding: padding, onVisibleIndicesChange: scroll.handleVisibleIndicesChange, listType: listType, minHeight: minHeight, children: children }), showDots ? (jsx(SwipeListControlDots, { containerRef: containerRef, activeIndex: activeIndex, dotCount: itemCount, listType: listType, version: version })) : null] }));
760
1429
  });
761
- const getButtonStyle = (props) => {
762
- const { version, aboveText, rounded } = props;
763
- if (version === 'link') {
764
- return '';
765
- }
766
- const withTextStyle = `${aboveText ? 'py-2.5 px-9' : 'py-4 px-9'}`;
767
- return [
768
- 'group/btn items-center justify-center',
769
- isWithText(props) ? withTextStyle : 'h-12 w-12',
770
- rounded ? 'rounded-full' : '',
771
- ].join(' ');
772
- };
773
- const isWithText = ({ text, aboveText, appendLeft }) => Boolean(text || aboveText || !appendLeft);
774
1430
 
775
- const getDisabledButtonClasses = ({ className, rounded, version, }) => [
776
- 'inline-block',
777
- buttonStyle,
778
- version ? buttonDisabledStyleMap[version] : '',
779
- rounded ? 'rounded-full' : 'rounded-md',
780
- className,
781
- ].join(' ');
1431
+ const bonusBenefitAlign = 'text-left';
782
1432
 
783
- const getRegularButtonClasses = ({ className, rounded, version, }) => [
784
- buttonStyle,
785
- 'border border-transparent inline-block cursor-pointer no-underline focus:border-primary-text focus:border h-fit',
786
- version ? buttonStyleMap[version] : '',
787
- rounded ? 'rounded-full' : 'rounded-md',
788
- className,
789
- ].join(' ');
1433
+ const bonusBenefitStyles = 'justify-between p-4 h-full border border-gray';
790
1434
 
791
- const Button = JSX(({ disabled, children, ...rest }) => {
792
- const link = useLink();
793
- const adjustedProps = link(rest);
794
- const buttonInner = children ?? jsx(ButtonInner, { ...adjustedProps });
795
- return disabled ? (jsx(DisabledButton, { ...adjustedProps, children: buttonInner })) : (jsx(RegularButton, { ...adjustedProps, children: buttonInner }));
796
- });
797
- const RegularButton = JSX(({ className = '', href, rel, target, ariaLabel, version, rounded, onClick, children }) => (jsx("a", { className: getRegularButtonClasses({ className, version, rounded }), href: href, rel: rel, target: target, "aria-label": ariaLabel, role: href ? 'link' : 'button', onClick: onClick, children: children })));
798
- const DisabledButton = JSX(({ className, ariaLabel, version, rounded, children }) => (jsx("div", { role: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: -1, className: getDisabledButtonClasses({ className, rounded, version }), children: children })));
1435
+ const renderBonusBenefit = ({ icon, title, description }, i) => (jsxs("div", { className: style('flex flex-col', bonusBenefitStyles, !description && !title ? 'justify-center' : ''), children: [title ? (jsx(Text, { size: "text-h6", font: "font-normal", align: bonusBenefitAlign, children: title })) : null, icon ? jsx(Img, { image: icon, height: "180", className: "w-auto" }) : null, description ? (jsx(Text, { size: "text-h6", font: "font-normal", align: bonusBenefitAlign, children: description })) : null] }, String(i)));
1436
+
1437
+ const renderBonusBenefits = (bonusBenefits, _columnsCount, _cardTextAlign) => (jsx(SwipeListControl, { children: bonusBenefits.map((_, i) => renderBonusBenefit({ ..._ }, i)) }));
1438
+
1439
+ const BonusBenefitsBlock = JSX(({ bonusBenefits, cardTextAlign = 'center', className = '', columnsCount = '4', subtitle, title, ...rest }) => (jsxs(BlockWrapper, { className: style('p-default', className), defaultPadding: "p-default", ...rest, children: [jsx(Headline, { className: "mb-4 sm:mb-8", isPadding: false, title: title, description: subtitle, headlineVersion: "M" }), bonusBenefits?.length
1440
+ ? renderBonusBenefits(bonusBenefits)
1441
+ : null] })));
799
1442
 
800
- const renderButtonsSection = (buttons, { className, buttonClassName, isVertical } = {}) => buttons?.length && buttons.some((_) => _?.text || _?.icon?.icon) ? (jsx("div", { className: style('flex', isVertical ? 'flex-col gap-xs justify-items-stretch' : 'flex-wrap gap-s', className), children: buttons.map(renderButton(buttonClassName)) })) : null;
801
- const renderButton = (buttonClassName = '') => (button, index) => {
1443
+ const renderButtonsSection = (buttons, { className, buttonClassName, isVertical } = {}) => buttons?.length && buttons.some((_) => _?.text || _?.icon?.icon) ? (jsx("div", { className: style('flex', isVertical ? 'flex-col gap-xs justify-items-stretch' : 'flex-wrap gap-s', className), children: buttons.map(renderButton$1(buttonClassName)) })) : null;
1444
+ const renderButton$1 = (buttonClassName = '') => (button, index) => {
802
1445
  const { text, icon, iconRight, version, ...rest } = button || {};
803
1446
  const iconVersionDefault = version === 'secondary' ? 'color' : 'white';
804
1447
  const iconVersion = icon?.iconVersion ? icon?.iconVersion : iconVersionDefault;
@@ -809,86 +1452,6 @@
809
1452
 
810
1453
  const ButtonsBlock = JSX(({ buttons, className, ...rest }) => (jsx(BlockWrapper, { className: style('!bg-transparent', className), defaultPadding: "p-0", ...rest, children: renderButtonsSection(buttons) })));
811
1454
 
812
- const identity = (_) => _;
813
-
814
- const useForm = (initialState, onSubmit) => {
815
- const [formState, setFormState] = useState(initialState);
816
- const [isDirtyForm, setDirtyForm] = useState(false);
817
- const [dirtyFieldsMap, setDirtyFieldsMap] = useState({});
818
- const handlersMap = useRef({});
819
- const field = useCallback((fieldName, options) => {
820
- const { parse = identity, format = identity } = options || {};
821
- if (!handlersMap.current) {
822
- handlersMap.current = {};
823
- }
824
- handlersMap.current[fieldName] ||= (value) => {
825
- setFormState((prev) => ({ ...prev, [fieldName]: parse(value) }));
826
- setDirtyFieldsMap((prev) => ({ ...prev, [fieldName]: true }));
827
- };
828
- return {
829
- value: format(formState[fieldName]),
830
- isDirty: isDirtyForm || dirtyFieldsMap[fieldName],
831
- onChange: handlersMap.current[fieldName],
832
- };
833
- }, [formState, isDirtyForm, dirtyFieldsMap]);
834
- const reset = useCallback(() => {
835
- setFormState(initialState);
836
- setDirtyForm(false);
837
- setDirtyFieldsMap({});
838
- }, [initialState]);
839
- const handleSubmit = useCallback((e) => {
840
- e.preventDefault();
841
- setDirtyForm(true);
842
- onSubmit && onSubmit(formState);
843
- }, [onSubmit, formState]);
844
- return [
845
- formState,
846
- {
847
- isDirty: isDirtyForm || Object.values(dirtyFieldsMap).some(Boolean),
848
- field,
849
- reset,
850
- onSubmit: handleSubmit,
851
- },
852
- ];
853
- };
854
-
855
- const useNormalizedInput = (props, { normalize, format }) => {
856
- const { value, onFocus, onBlur, onChange } = props;
857
- const [isFocused, setIsFocused] = useState(false);
858
- const handleFocus = useCallback((e) => {
859
- setIsFocused(true);
860
- onFocus && onFocus(e);
861
- }, []);
862
- const handleBlur = useCallback(() => {
863
- setIsFocused(false);
864
- onChange && onChange(normalize(value));
865
- onBlur && onBlur();
866
- }, [onChange, value]);
867
- return {
868
- value: (isFocused || !format ? value : format(value)),
869
- onFocus: handleFocus,
870
- onBlur: handleBlur,
871
- };
872
- };
873
-
874
- const clamp = (value, min, max) => Math.max(min, Math.min(value, max));
875
-
876
- const toLocalNumberFormat = (fractionDigits = 0) => (_ = 0) => new Intl.NumberFormat('ru-RU', {
877
- minimumFractionDigits: 0,
878
- maximumFractionDigits: fractionDigits,
879
- }).format(Number(_) || 0);
880
-
881
- const Input = JSX(({ key, className = '', inputClassName = '', id, name, type = 'text', label, placeholder, value = '', valid = true, children, onChange, onFocus, onBlur, pattern, }) => {
882
- const handleChange = useCallback((e) => {
883
- onChange && onChange(e.target?.value || '');
884
- }, [onChange]);
885
- const paddingStyle = children ? 'pr-8' : '';
886
- const validStyle = valid
887
- ? 'border-gray hover:border-primary-hover active:border-primary-text focus:border-primary-text'
888
- : 'border-error';
889
- return (jsxs("div", { className: style('relative', className), children: [jsxs("label", { children: [label ? (jsx("div", { className: "mb-2", children: jsx(Text, { size: "text-m", font: "font-light", children: label }) })) : null, jsx("input", { className: style('w-full border rounded-md text-primary-text outline-none p-4', paddingStyle, validStyle, inputClassName), id: id, name: name || id, placeholder: placeholder, type: type, value: value, onInput: handleChange, onFocus: onFocus, onBlur: onBlur, pattern: pattern }, key)] }), children] }));
890
- });
891
-
892
1455
  const NumberInput = JSX((props) => {
893
1456
  const { onChange, min, max, defaultValue = '0', fractionDigits = 0, ...inputProps } = props;
894
1457
  const normalizedProps = useNormalizedInput(props, {
@@ -1137,9 +1700,12 @@
1137
1700
  label: 'Youtube',
1138
1701
  },
1139
1702
  ];
1703
+
1704
+ const findIconByHref = (href) => ICONS_MAP.find(({ origins }) => origins?.some((_) => href?.includes(_))) || {};
1705
+
1140
1706
  const MediaButton = JSX(({ buttonSize = 'default', rounded = false, icon, ...rest }) => {
1141
1707
  const { href, version, text = '' } = rest;
1142
- const { iconMapped, label } = ICONS_MAP.find(({ origins }) => origins.some((_) => href?.includes(_))) || {};
1708
+ const { iconMapped, label } = findIconByHref(href);
1143
1709
  const iconCustom = getFilteredIcon(icon) ?? iconMapped;
1144
1710
  return (jsx(Button, { className: style(rounded ? 'rounded-full' : 'rounded-md', 'border border-solid hover:border-transparent', 'group-data-primary:border-main-divider', 'hover:bg-primary-main hover:text-black', 'group-data-secondary:bg-white border-main-divider group-data-secondary:hover:bg-secondary-hover', 'group-data-gray:border-green', buttonStylesWithText(text, buttonSize)), "aria-label": label, rel: "noopener noreferrer", target: "_blank", text: text, version: version, ...rest, children: iconCustom && !text ? (jsx(Img, { image: iconCustom, imageClassName: "group-hover/media:text-white", width: "24", height: "24" })) : null }));
1145
1711
  });
@@ -1178,19 +1744,17 @@
1178
1744
 
1179
1745
  const getPaddingStyle = (isHighlighting = false) => isHighlighting ? 'p-default mt-6' : 'mt-6 p-default'; // Хак для мобильной версии т.к. контракт должен быть идентичный
1180
1746
 
1181
- const descriptionSize = 'text-l';
1182
-
1183
1747
  const renderCardInfo = (cell, i) => {
1184
1748
  const { title, description, buttons } = cell;
1185
- return (jsxs("div", { className: "py-5 border-b border-main-divider", children: [title ? (jsx("div", { className: "opacity-80", children: jsx(Text, { size: "text-m", color: "text-secondary-text", children: title }) })) : null, description ? (jsx("div", { className: "mt-1", children: jsx(Text, { size: descriptionSize, color: "text-primary-text", children: description }) })) : null, buttons?.length ? (jsx("div", { className: "text-primary-main", children: renderButtonsSection(buttons) })) : null] }, String(i)));
1749
+ return (jsxs("div", { className: "py-5 border-b border-main-divider", children: [title ? (jsx("div", { className: "opacity-80", children: jsx(Text, { size: "text-m", color: "text-secondary-text", children: title }) })) : null, description ? (jsx("div", { className: "mt-1", children: jsx(Text, { size: "text-xl", color: "text-primary-text", children: description }) })) : null, buttons?.length ? (jsx("div", { className: "text-primary-main", children: renderButtonsSection(buttons) })) : null] }, String(i)));
1186
1750
  };
1187
1751
 
1188
1752
  const VISIBLE_CELLS_COUNT = 1;
1189
- const CarouselTariffsCard = JSX(({ className = '', title, icon, isHighlighting = false, button, cardCells = [], ...rest }) => {
1753
+ const CarouselTariffsCard = JSX(({ className = '', title, align = 'text-center', icon, isHighlighting = false, button, cardCells = [], ...rest }) => {
1190
1754
  const cellsNode = cardCells.map(renderCardInfo);
1191
1755
  const visibleCells = cellsNode.slice(0, VISIBLE_CELLS_COUNT);
1192
1756
  const hiddenCells = cellsNode.slice(VISIBLE_CELLS_COUNT);
1193
- return (jsxs(BlockWrapper, { className: style('relative border border-gray flex flex-col', className), defaultPadding: getPaddingStyle(isHighlighting), ...rest, children: [isHighlighting ? renderHitIcon() : null, renderIconBlock(icon), title ? jsx(Heading, { className: "text-center pt-2", headingType: "h5", title: title }) : null, button ? jsx(Button, { className: "w-full mt-4", ...button }) : null, cardCells.length ? (jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs("div", { children: [visibleCells, jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenCells })] })), renderFoldButton: cardCells.length > 1 ? renderFoldButton$1 : null })) : null] }));
1757
+ return (jsxs(BlockWrapper, { className: style('relative border border-gray flex flex-col', className), defaultPadding: getPaddingStyle(isHighlighting), ...rest, children: [isHighlighting ? renderHitIcon() : null, renderIconBlock(icon), title ? (jsx(Heading, { className: style('pt-xs', align), headingType: "h5", title: title })) : null, button ? jsx(Button, { className: "w-full mt-4", ...button }) : null, cardCells.length ? (jsx(Foldable, { renderFoldableSection: ({ isUnfolded }) => (jsxs("div", { children: [visibleCells, jsx(FoldableSection, { isUnfolded: isUnfolded, children: hiddenCells })] })), renderFoldButton: cardCells.length > 1 ? renderFoldButton$1 : null })) : null] }));
1194
1758
  });
1195
1759
  const renderIconBlock = (icon) => (jsx("div", { className: "w-[267px] min-w-[267px] self-center", children: icon?.src || icon?.icon ? jsx(Img, { image: icon }) : null }));
1196
1760
  const renderFoldButton$1 = ({ isUnfolded, onToggle }) => (jsxs("button", { className: "w-full cursor-pointer text-primary-main pt-5 flex justify-between items-center", onClick: onToggle, children: [jsx("div", { children: isUnfolded ? 'Скрыть' : 'Подробнее о тарифе' }), jsx(Icon, { className: "text-primary-text", name: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', width: "16", height: "16" })] }));
@@ -1232,16 +1796,16 @@
1232
1796
  const renderColorOption = (color, i) => (jsx("div", { role: "figure", className: `w-6 h-6 ml-1 sm:ml-3 border border-solid border-main-divider rounded-full ${cardStyleMap[color]}` }, String(i)));
1233
1797
 
1234
1798
  const CarouselProductCard = JSX(({ additionalDescription, align = 'text-center', button = {}, className = '', description, headlineSmallVersion = 'H6', href, icon, isDotted = true, isFullWidth = true, items = [], target, title, version = 'primary', ...rest }) => {
1235
- return (jsxs(BlockWrapper, { className: style('h-full flex flex-col justify-between min-w-[260px]', 'box-border border-solid border border-gray', align, className), defaultPadding: "p-0", version: version, ...rest, children: [jsxs(LinkWrapper, { className: "p-s", href: href, target: target, children: [renderImage$2(icon), renderCardTitle(headlineSmallVersion, title), renderDescription$3(description, title), renderItems(items, isDotted, version), renderAdditionalDescription(additionalDescription)] }), renderButtonsSection([button], {
1799
+ return (jsxs(BlockWrapper, { className: style('h-full flex flex-col justify-between min-w-[260px]', 'box-border border-solid border border-gray', align, className), defaultPadding: "p-0", version: version, ...rest, children: [jsxs(LinkWrapper, { className: "p-s", href: href, target: target, children: [renderImage$2(icon), renderCardTitle(headlineSmallVersion, title), renderDescription$2(description, title), renderItems(items, isDotted, version), renderAdditionalDescription(additionalDescription)] }), renderButtonsSection([button], {
1236
1800
  className: style('p-s pt-0', isFullWidth ? '' : 'self-center min-w-[158px]'),
1237
1801
  isVertical: isFullWidth,
1238
1802
  })] }));
1239
1803
  });
1240
1804
  const renderImage$2 = (image) => (jsxs("div", { className: "flex justify-center", children: [image?.src ? jsx(Img, { className: "mb-5", image: image }) : null, image?.icon ? jsx(Img, { className: `w-8 h-8 min-w-8 mb-5`, image: image }) : null] }));
1241
1805
  const renderCardTitle = (headlineSmallVersion, title) => title ? (jsx("div", { children: jsx(Text, { size: HEADLINE_SMALL_VERSION[headlineSmallVersion], children: title }) })) : null;
1242
- const renderDescription$3 = (description, title) => description ? (jsx("div", { className: title ? 'mt-2' : '', children: jsx(Paragraph, { size: "text-l", children: description }) })) : null;
1806
+ const renderDescription$2 = (description, title) => description ? (jsx("div", { className: title ? 'mt-2' : '', children: jsx(Paragraph, { size: "text-l", children: description }) })) : null;
1243
1807
  const renderAdditionalDescription = (additionalDescription) => additionalDescription ? (jsx("div", { className: "mt-auto", children: jsx(Text, { size: "text-m", font: "font-light", color: "text-secondary-text group-data-secondary:text-white/80", children: additionalDescription }) })) : null;
1244
- const renderItems = (items, isDotted, version = 'primary') => items?.length ? (jsx(List, { className: style('max-w-[308px] mt-2 text-s', version === 'primary' ? '!text-secondary-text' : ''), items: items.filter((item) => item?.text).map((item) => item.text), isDotted: isDotted })) : null;
1808
+ const renderItems = (items, isDotted, version = 'primary') => items?.length ? (jsx(List, { className: style('max-w-[308px] mt-2', version === 'primary' ? '!text-secondary-text' : ''), items: items.filter((item) => item?.text).map((item) => item.text), isDotted: isDotted, listItemSize: "S" })) : null;
1245
1809
 
1246
1810
  const GRADIENT = 'bg-gradient-to-r from-main-gradient-start to-main-gradient-end';
1247
1811
  const DIVIDER_CLASSES = 'border-main-divider border border-t-0 border-x-0';
@@ -1283,80 +1847,6 @@
1283
1847
  return orientation === 'horizontal' ? (jsx(SwipeListControl, { onVisibleIndicesChange: handleSlideChange, children: tableColumns })) : (tableColumns);
1284
1848
  });
1285
1849
 
1286
- const isFilled = (_) => _ !== null && _ !== undefined;
1287
-
1288
- const defaultCache = new Map();
1289
- const applyCache = (fetcher, cache = defaultCache) => (key) => {
1290
- const cachedData = cache.get(key);
1291
- if (isFilled(cachedData)) {
1292
- return cachedData;
1293
- }
1294
- const data = fetcher(key);
1295
- if (isFilled(data)) {
1296
- cache.set(key, Promise.resolve(data));
1297
- }
1298
- else {
1299
- cache.delete(key);
1300
- }
1301
- return data;
1302
- };
1303
-
1304
- const isSimpleKey = (args) => Boolean(args && Array.isArray(args) && args.length === 1 && typeof args[0] === 'string');
1305
- function useAsyncData(key, fetcher, { fallback, cache } = {}) {
1306
- const args = useMemo(() => keyToArgs(key), [key]);
1307
- const [simpleKey] = isSimpleKey(args) ? args : [];
1308
- const [data, setData] = useState(undefined);
1309
- const [error, setError] = useState(undefined);
1310
- useEffect(() => {
1311
- const isEmptyKey = !args.some(isFilled);
1312
- if (isEmptyKey) {
1313
- return;
1314
- }
1315
- (async () => {
1316
- try {
1317
- const newData = await (simpleKey
1318
- ? applyCache(fetcher, cache)(simpleKey)
1319
- : fetcher(...args));
1320
- setData(newData);
1321
- setError(undefined);
1322
- }
1323
- catch (err) {
1324
- setData(undefined);
1325
- setError(err);
1326
- }
1327
- })();
1328
- }, [fetcher, cache, args]);
1329
- const fallbackData = fallback && simpleKey && fallback[simpleKey];
1330
- return {
1331
- data: !data && fallbackData ? fallbackData : data,
1332
- error,
1333
- mutate: () => Promise.resolve(undefined),
1334
- isValidating: false
1335
- };
1336
- }
1337
- function keyToArgs(key) {
1338
- if (Array.isArray(key)) {
1339
- return key;
1340
- }
1341
- else if (key instanceof Function) {
1342
- return keyToArgs(key());
1343
- }
1344
- else {
1345
- return [key];
1346
- }
1347
- }
1348
-
1349
- async function fetchJSONUnsafe(url, options) {
1350
- const response = await fetch(url, {
1351
- ...options,
1352
- headers: {
1353
- ...options?.headers,
1354
- 'Content-Type': 'application/json',
1355
- },
1356
- });
1357
- return await response.json();
1358
- }
1359
-
1360
1850
  const EMPTY_VALUE = {};
1361
1851
  function useSWRResource(filename, fallback = {}) {
1362
1852
  const { data } = useAsyncData(`/wcms-resources/${filename}.json`, fetchJSONUnsafe, {
@@ -1386,19 +1876,6 @@
1386
1876
 
1387
1877
  const getIconName = (isUnfolded) => isUnfolded ? 'ArrowUpSolidIcon' : 'ArrowDownSolidIcon';
1388
1878
 
1389
- const labelSize = 'text-l';
1390
-
1391
- const iconBgStyles = {
1392
- primary: 'bg-main-divider',
1393
- secondary: 'bg-white/30',
1394
- 'secondary-light': 'bg-secondary-light',
1395
- };
1396
- const RoundedIcon = JSX(({ iconBgVersion = 'primary', size, icon, ...rest }) => {
1397
- const width = String(size?.width || 24);
1398
- const height = String(size?.height || 24);
1399
- return icon ? (jsx("div", { className: style('rounded-icon p-2.5', iconBgStyles[iconBgVersion]), children: jsx(Icon, { ...rest, width: width, height: height, name: icon }) })) : null;
1400
- });
1401
-
1402
1879
  const renderRoundedIcon = (icon, iconBgVersion) => (jsx(RoundedIcon, { ...icon, iconBgVersion: iconBgVersion }));
1403
1880
 
1404
1881
  const rollupIconVersion = 'normal';
@@ -1429,7 +1906,7 @@
1429
1906
  })) : (jsx(DefaultFoldButton, { label: label, icon: isUnfolded ? 'ArrowUpIcon' : 'ArrowDownIcon', onClick: onToggle }));
1430
1907
  };
1431
1908
  const renderPrimaryFoldButton = ({ label, labelIconBgVersion, icon, onToggle, labelIcon, }) => {
1432
- return (jsxs("button", { className: style('border-none bg-transparent px-0 flex justify-between items-center w-full group/button', labelIcon?.icon ? 'py-2' : 'py-5'), onClick: onToggle, children: [jsxs("div", { className: "flex items-center group-hover/button:text-primary-main", children: [renderRoundedIcon(labelIcon, labelIconBgVersion), label ? (jsx(Text, { size: labelSize, font: "font-normal", children: label })) : null] }), icon ? jsx(Icon, { name: icon, iconVersion: rollupIconVersion, width: "24", height: "24" }) : null] }));
1909
+ return (jsxs("button", { className: style('border-none bg-transparent px-0 flex justify-between items-center w-full group/button', labelIcon?.icon ? 'py-2' : 'py-5'), onClick: onToggle, children: [jsxs("div", { className: "flex items-center group-hover/button:text-primary-main gap-3", children: [renderRoundedIcon(labelIcon, labelIconBgVersion), label ? (jsx(Text, { size: "text-h6", font: "font-normal", children: label })) : null] }), icon ? jsx(Icon, { name: icon, iconVersion: rollupIconVersion, width: "24", height: "24" }) : null] }));
1433
1910
  };
1434
1911
 
1435
1912
  const Contacts = JSX(({ className = '', items, hasButton }) => (jsxs("div", { className: className, children: [items?.length ? items.map(renderContactsGroup) : null, hasButton ? (jsx(Button, { version: "primary", className: "mb-6 w-full", href: "https://www.rshb.ru/feedback/question/", target: "_blank", ariaLabel: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C", text: "\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C" })) : null] })));
@@ -1468,9 +1945,13 @@
1468
1945
  const Footer = JSX(({ className = '', ...rest }) => {
1469
1946
  const fallback = rest.options?.page?.fallback;
1470
1947
  const sitemap = useSWRResource(projectSettings.SITEMAP || 'sitemap', fallback);
1471
- const { relatedEnterprises, contacts, socialMedia, horizontalNavigationTitle } = useSWRResource(projectSettings.FOOTER || 'footer', fallback);
1472
- return (jsxs(BlockWrapper, { tag: "footer", className: className, defaultPadding: "px-4 py-6", ...rest, children: [jsx("div", { className: "mb-4 pb-5 border-b border-main-divider", children: sitemap.topItems?.map((item, i) => (jsx(RollupItem, { label: item?.text, labelIcon: item?.icon, children: jsx(LinkList, { items: item.items, className: "my-3" }) }, String(i)))) }), jsx(Contacts, { className: "overflow-hidden", items: contacts }), jsx(SocialMedia, { className: "mb-4", media: socialMedia }), jsx(Button, { className: "w-full mb-4", text: "Google Play", version: "secondary", href: "/", target: "_blank" }), jsx(HorizontalNavigation, { className: "pt-4 pb-7 border-y border-main-divider", title: horizontalNavigationTitle, links: relatedEnterprises }), jsx(TextInformation, {})] }));
1948
+ const { relatedEnterprises, contacts, socialMedia, mobileApps, horizontalNavigationTitle } = useSWRResource(projectSettings.FOOTER || 'footer', fallback);
1949
+ return (jsxs(BlockWrapper, { tag: "footer", className: className, defaultPadding: "px-4 py-6", ...rest, children: [jsx("div", { className: "mb-4 pb-5 border-b border-main-divider", children: sitemap.topItems?.map((item, i) => (jsx(RollupItem, { label: item?.text, labelIcon: item?.icon, children: jsx(LinkList, { items: item.items, className: "my-3" }) }, String(i)))) }), jsx(Contacts, { className: "overflow-hidden", items: contacts }), jsx(SocialMedia, { className: "mb-4", media: socialMedia }), mobileApps?.map(renderButton), jsx(HorizontalNavigation, { className: "pt-4 pb-7 border-y border-main-divider", title: horizontalNavigationTitle, links: relatedEnterprises }), jsx(TextInformation, {})] }));
1473
1950
  });
1951
+ const renderButton = ({ href = '/' }, i) => {
1952
+ const { label } = findIconByHref(href);
1953
+ return (jsx(Button, { className: "w-full mb-4", text: label, version: "secondary", href: href, target: "_blank" }, String(i)));
1954
+ };
1474
1955
 
1475
1956
  const ICON_VERSION_MAP = {
1476
1957
  'bg-white': 'color',
@@ -1579,7 +2060,7 @@
1579
2060
  const BaseTile = JSX(({ className, defaultPadding, padding, title = '', insetTitle = '', buttons, leftImage, rightImage, imageAlign, backImage, children, }) => (jsxs("div", { className: style('relative flex flex-col gap-lg font-sans overflow-hidden', padding || defaultPadding, className), children: [backImage ? jsx("div", { className: "absolute bottom-0 right-0 z-0", children: backImage }) : null, title ? jsx("div", { className: "relative", children: title }) : null, jsxs("div", { className: "grow relative flex flex-wrap sm:flex-nowrap justify-between items-stretch gap-lg", children: [renderImageContainer(leftImage, { imageAlign }), jsxs("div", { className: style('flex flex-col gap-lg max-w-[600px] xl:max-w-[728px]', leftImage ? '' : 'grow'), children: [insetTitle, jsx("div", { className: "grow", children: children }), buttons] }), renderImageContainer(rightImage, { className: '-order-1 sm:order-1', imageAlign })] })] })));
1580
2061
  const renderImageContainer = (image, { className, imageAlign }) => image ? (jsx("div", { className: style('flex-shrink-0', imageAlign && imageAlignmentMap[imageAlign], className), children: image })) : null;
1581
2062
 
1582
- const renderDescription$2 = (description) => description ? (jsx("div", { className: "mb-5 pt-0.5 sm:mb-0 sm:pt-0", children: jsx(Text, { size: "text-xl", "font-weight": "light", children: description }) })) : null;
2063
+ const renderDescription$1 = (description) => description ? (jsx("div", { className: "mb-5 pt-0.5 sm:mb-0 sm:pt-0", children: jsx(Text, { size: "text-xl", "font-weight": "light", children: description }) })) : null;
1583
2064
 
1584
2065
  const renderList$1 = (items) => {
1585
2066
  return items?.length ? (jsx(List, { items: items, className: "text-l font-light mb-2 last:mb-0" })) : (jsx("span", { className: "text-m font-light text-secondary-text", children: "\u041D\u0430\u0432\u0435\u0434\u0438\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u0443 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u043D\u0430 QR-\u043A\u043E\u0434 \u0438 \u0441\u043A\u0430\u0447\u0430\u0439\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435" }));
@@ -1587,7 +2068,7 @@
1587
2068
 
1588
2069
  const MobileAppTile = JSX(({ className, padding, alignTitle = 'left', buttons = [], description, headingType = 'h4', image, items, qr, title = 'Мобильное приложение', version = 'primary', ...rest }) => {
1589
2070
  const containerStyle = version === 'secondary' ? 'p-3.5 min-w-[120px]' : 'min-w-[92px]';
1590
- return (jsx(BlockWrapper, { className: style('min-h-80', className), padding: "p-0", version: version, ...rest, children: jsxs(BaseTile, { className: "h-full", padding: padding, defaultPadding: "p-default", title: title ? (jsx(Heading, { headingType: headingType, title: title, className: style('whitespace-pre-wrap', AlignText[alignTitle]) })) : null, backImage: image?.src ? jsx(Img, { image: image }) : null, buttons: renderButtonsSection(buttons, { isVertical: buttons.length > 3 }), children: [renderDescription$2(description), jsxs("div", { className: "flex flex-1 gap-s items-center", children: [qr?.src ? (jsx("div", { className: style('flex justify-center bg-white rounded-md', containerStyle), children: jsx(Img, { className: "w-fit", image: qr }) })) : null, renderList$1(items)] })] }) }));
2071
+ return (jsx(BlockWrapper, { className: style('min-h-80', className), padding: "p-0", version: version, ...rest, children: jsxs(BaseTile, { className: "h-full", padding: padding, defaultPadding: "p-default", title: title ? (jsx(Heading, { headingType: headingType, title: title, className: style('whitespace-pre-wrap', AlignText[alignTitle]) })) : null, backImage: image?.src ? jsx(Img, { image: image }) : null, buttons: renderButtonsSection(buttons, { isVertical: buttons.length > 3 }), children: [renderDescription$1(description), jsxs("div", { className: "flex flex-1 gap-s items-center", children: [qr?.src ? (jsx("div", { className: style('flex justify-center bg-white rounded-md', containerStyle), children: jsx(Img, { className: "w-fit", image: qr }) })) : null, renderList$1(items)] })] }) }));
1591
2072
  });
1592
2073
 
1593
2074
  const sum = (list = []) => list.reduce((a, b) => a + b, 0);
@@ -1905,10 +2386,10 @@
1905
2386
  data: colData?.[i] || [{}],
1906
2387
  }));
1907
2388
 
1908
- const TextBlock = JSX(({ className = '', title, description, iconVersion, image, __html, items = [], ...rest }) => (jsxs(BlockWrapper, { className: style('flex gap-3 bg-white group-data-secondary:bg-primary-main/10', className), ...rest, children: [iconVersion === 'small' ? jsx("div", { className: "mt-1", children: renderIcon() }) : null, iconVersion === 'big' ? renderImage(image) : null, jsxs("div", { className: "flex flex-col w-fit gap-3", children: [title ? (jsx(Text, { size: "text-l", font: "font-medium", color: "text-primary-text group-data-secondary:text-white", children: title })) : null, description ? renderDescription$1(description) : null, items?.length ? renderList(items, true) : null, __html ? jsx(RichText, { __html: __html }) : null] })] })));
2389
+ const TextBlock = JSX(({ className = '', title, description, iconVersion, image, __html, items = [], ...rest }) => (jsxs(BlockWrapper, { className: style('flex gap-3 sm:gap-4 bg-white group-data-secondary:bg-primary-main/10', className), ...rest, children: [iconVersion === 'small' ? jsx("div", { className: "mt-1", children: renderIcon() }) : null, iconVersion === 'big' ? renderImage(image) : null, jsxs("div", { className: "flex flex-col w-fit gap-1 sm:gap-2", children: [title ? (jsx(Text, { size: "text-l", font: "font-normal", color: "text-primary-text group-data-secondary:text-white", children: title })) : null, description ? renderDescription(description) : null, items?.length ? renderList(items, true) : null, __html ? jsx(RichText, { __html: __html }) : null] })] })));
1909
2390
  const renderIcon = () => (jsx("div", { className: `rounded-full h-4 w-4 text-center text-xs font-light bg-primary-main text-white group-data-secondary:bg-white group-data-secondary:text-primary-main`, children: "i" }));
1910
- const renderImage = (image) => image?.src ? jsx(Img, { className: "h-fit", image: image }) : null;
1911
- const renderDescription$1 = (description) => (jsx(Paragraph, { size: "text-s", color: "text-secondary-text group-data-secondary:text-white", children: description }));
2391
+ const renderImage = (image) => image?.src ? jsx(Img, { className: "h-fit flex-shrink-0", image: image }) : null;
2392
+ const renderDescription = (description) => (jsx(Paragraph, { size: "text-s", font: "font-light", color: "text-secondary-text group-data-secondary:text-white", children: description }));
1912
2393
  const renderList = (items, bullets) => {
1913
2394
  const listStyle = bullets ? 'list-disc pl-6' : '';
1914
2395
  return (jsx("ul", { className: style('text-secondary-text group-data-secondary:text-white/80', listStyle), children: items.map((_, i) => (jsx("li", { children: jsx(Text, { size: "text-s", font: "font-light", children: _ }) }, `listItem-${i}`))) }));
@@ -1939,23 +2420,8 @@
1939
2420
  });
1940
2421
  VerticalLayout.childrenTypes = [];
1941
2422
 
1942
- const benefitImageStyles = 'w-56 h-56 min-w-56';
1943
-
1944
- const BenefitsBlock = JSX(({ className = '', title, benefitList, ...rest }) => (jsxs(BlockWrapper, { className: className, defaultPadding: "p-default", ...rest, children: [title ? jsx(Heading, { headingType: "h3", as: "h2", className: "text-center", title: title }) : null, benefitList?.length ? (jsx("div", { className: "sm:flex sm:flex-wrap w-full sm:justify-center sm:gap-x-m gap-y-lg sm:gap-y-0 mt-8", role: "list", children: benefitList.map(renderBenefit) })) : null] })));
1945
- const renderBenefit = (benefit, i) => (jsxs("div", { className: "flex items-center sm:basis-1/2 sm:max-w-[400px] mb-14", role: "listitem", children: [benefit?.icon?.icon ? (jsx(Img, { className: style('p-3 mr-5 shrink-0 bg-main-divider text-primary-main group-data-secondary:bg-white/30 group-data-secondary:text-black', benefitImageStyles), image: benefit.icon })) : null, benefit?.icon?.src ? jsx(Img, { className: "mr-5 shrink-0", image: benefit.icon }) : null, benefit?.label ? (jsxs("div", { className: "sm:h-full", children: [jsx(Heading, { headingType: "h6", children: benefit.label }), renderDescription(benefit.description)] })) : null] }, String(i)));
1946
- const renderDescription = (description) => {
1947
- const benefitType = description?.benefitType || null;
1948
- return description && benefitType ? (jsx("div", { className: "mt-2 text-l font-light text-secondary-text group-data-secondary:text-white/80", children: benefitType === 'list'
1949
- ? renderListBenefit(description)
1950
- : renderTextBenefit(description) })) : null;
1951
- };
1952
- const renderTextBenefit = (description) => description?.name || null;
1953
- const renderListBenefit = (description) => {
1954
- const listStyleType = description?.bullets ? 'list-disc pl-6' : '';
1955
- return description?.items && description.items.length > 0 ? (jsx("ul", { className: listStyleType, children: description.items.map((_, i) => (jsx("li", { children: _ }, `benefitListItem-${i}`))) })) : null;
1956
- };
1957
-
1958
2423
  const Blocks = {
2424
+ ApplicationForm,
1959
2425
  ButtonsBlock,
1960
2426
  BonusBenefitsBlock,
1961
2427
  CardTransfer,
@@ -1988,14 +2454,6 @@
1988
2454
  BenefitsBlock,
1989
2455
  };
1990
2456
 
1991
- function useBool(defaultValue = false) {
1992
- const [value, setValue] = useState(defaultValue);
1993
- const setTrue = useCallback(() => setValue(true), []);
1994
- const setFalse = useCallback(() => setValue(false), []);
1995
- const toggle = useCallback(() => setValue((_) => !_), []);
1996
- return [value, { setValue, setTrue, setFalse, toggle }];
1997
- }
1998
-
1999
2457
  const debounce = (fn, delay = 600) => {
2000
2458
  let timerId;
2001
2459
  const debouncedCallback = (...args) => {
@@ -2120,7 +2578,7 @@
2120
2578
  globalThis.localStorage?.setItem(COOKIE_DIALOG_ID, 'true');
2121
2579
  close();
2122
2580
  }, [close]);
2123
- return isOpened ? (jsx("div", { className: "container z-40 fixed bottom-0 left-0 right-0 pointer-events-none", children: jsxs("div", { className: "bg-white m-6 p-6 rounded-md flex items-center pointer-events-auto shadow-[0_4px_25px_rgba(0,0,0,0.07)]", children: [jsx("div", { className: "flex-1", children: jsxs(Paragraph, { size: "text-s", font: "font-light", color: "text-primary-text", children: ["\u0410\u041E \u00AB\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u00BB \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442", jsx(LinkWrapper, { isRemote: true, className: style(getStyleLinkWrapper(termLink?.href)), ...termLink, children: "cookie" }), "(\u0444\u0430\u0439\u043B\u044B \u0441 \u0434\u0430\u043D\u043D\u044B\u043C\u0438 \u043E \u043F\u0440\u043E\u0448\u043B\u044B\u0445 \u043F\u043E\u0441\u0435\u0449\u0435\u043D\u0438\u044F\u0445 \u0441\u0430\u0439\u0442\u0430) \u0434\u043B\u044F \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0432 \u0438 \u0443\u0434\u043E\u0431\u0441\u0442\u0432\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0437\u0430\u043F\u0440\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 cookie \u0432 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0441\u0432\u043E\u0435\u0433\u043E \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430.", jsx(LinkWrapper, { isRemote: true, className: style(getStyleLinkWrapper(personalDataPolicyLink?.href)), ...personalDataPolicyLink, children: "\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0412\u0430\u0448\u0438\u0445 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445" }), "\u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C\u0438 \u0424\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u0430\u043A\u043E\u043D\u0430 \u043E\u0442 27.07.2006 \u2116 152-\u04243 \u00AB\u041E \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB."] }) }), jsx("div", { className: "w-24 flex justify-end", children: jsx(CloseButton, { className: "bg-main-gray rounded-md", onClick: handleClose }) })] }) })) : null;
2581
+ return isOpened ? (jsx("div", { className: "container z-40 fixed bottom-0 left-0 right-0 pointer-events-none", children: jsxs("div", { className: "bg-white m-5 p-5 sm:m-6 sm:p-6 rounded-md flex sm:items-center pointer-events-auto shadow-[0_4px_25px_rgba(0,0,0,0.07)]", children: [jsx("div", { className: "sm:flex-1", children: jsxs(Paragraph, { size: "text-s", font: "font-light", color: "text-primary-text", children: ["\u0410\u041E \u00AB\u0420\u043E\u0441\u0441\u0435\u043B\u044C\u0445\u043E\u0437\u0431\u0430\u043D\u043A\u00BB \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u0442", jsx(LinkWrapper, { isRemote: true, className: style(getStyleLinkWrapper(termLink?.href)), ...termLink, children: "cookie" }), "(\u0444\u0430\u0439\u043B\u044B \u0441 \u0434\u0430\u043D\u043D\u044B\u043C\u0438 \u043E \u043F\u0440\u043E\u0448\u043B\u044B\u0445 \u043F\u043E\u0441\u0435\u0449\u0435\u043D\u0438\u044F\u0445 \u0441\u0430\u0439\u0442\u0430) \u0434\u043B\u044F \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0432 \u0438 \u0443\u0434\u043E\u0431\u0441\u0442\u0432\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439. \u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0437\u0430\u043F\u0440\u0435\u0442\u0438\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435 cookie \u0432 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0441\u0432\u043E\u0435\u0433\u043E \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430.", jsx(LinkWrapper, { isRemote: true, className: style(getStyleLinkWrapper(personalDataPolicyLink?.href)), ...personalDataPolicyLink, children: "\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0412\u0430\u0448\u0438\u0445 \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445" }), "\u043F\u0440\u043E\u0438\u0437\u0432\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C\u0438 \u0424\u0435\u0434\u0435\u0440\u0430\u043B\u044C\u043D\u043E\u0433\u043E \u0437\u0430\u043A\u043E\u043D\u0430 \u043E\u0442 27.07.2006 \u2116 152-\u04243 \u00AB\u041E \u043F\u0435\u0440\u0441\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445 \u0434\u0430\u043D\u043D\u044B\u0445\u00BB."] }) }), jsx("div", { className: "ml-3 sm:ml-0 w-24 flex justify-end", children: jsx(CloseButton, { className: "bg-main-gray rounded-md", onClick: handleClose }) })] }) })) : null;
2124
2582
  });
2125
2583
  const getStyleLinkWrapper = (href) => ['inline mx-1', href ? 'text-green-dark' : ''];
2126
2584
 
@@ -2199,7 +2657,7 @@
2199
2657
 
2200
2658
  const joinList = (sep) => (list) => list.reduce((acc, el, i) => (acc.length ? acc.concat({ ...sep, key: `sep-${i}` }, el) : [el]), []);
2201
2659
 
2202
- const packageVersion = "0.12.8";
2660
+ const packageVersion = "0.12.9";
2203
2661
 
2204
2662
  exports.Blocks = Blocks;
2205
2663
  exports.ContentPage = ContentPage;