@alfalab/core-components 47.3.0-beta.1 → 47.4.0

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 (492) hide show
  1. package/bottom-sheet/component.js +15 -8
  2. package/bottom-sheet/cssm/component.js +15 -8
  3. package/bottom-sheet/cssm/hooks/index.d.ts +1 -0
  4. package/bottom-sheet/cssm/hooks/index.js +7 -0
  5. package/bottom-sheet/cssm/hooks/use-visualviewport-size.d.ts +3 -0
  6. package/bottom-sheet/cssm/hooks/use-visualviewport-size.js +34 -0
  7. package/bottom-sheet/cssm/types.d.ts +4 -0
  8. package/bottom-sheet/esm/component.js +15 -8
  9. package/bottom-sheet/esm/hooks/index.d.ts +1 -0
  10. package/bottom-sheet/esm/hooks/index.js +3 -0
  11. package/bottom-sheet/esm/hooks/use-visualviewport-size.d.ts +3 -0
  12. package/bottom-sheet/esm/hooks/use-visualviewport-size.js +32 -0
  13. package/bottom-sheet/esm/index.js +1 -0
  14. package/bottom-sheet/esm/types.d.ts +4 -0
  15. package/bottom-sheet/hooks/index.d.ts +1 -0
  16. package/bottom-sheet/hooks/index.js +7 -0
  17. package/bottom-sheet/hooks/use-visualviewport-size.d.ts +3 -0
  18. package/bottom-sheet/hooks/use-visualviewport-size.js +34 -0
  19. package/bottom-sheet/modern/component.js +10 -4
  20. package/bottom-sheet/modern/hooks/index.d.ts +1 -0
  21. package/bottom-sheet/modern/hooks/index.js +3 -0
  22. package/bottom-sheet/modern/hooks/use-visualviewport-size.d.ts +3 -0
  23. package/bottom-sheet/modern/hooks/use-visualviewport-size.js +27 -0
  24. package/bottom-sheet/modern/index.js +1 -0
  25. package/bottom-sheet/modern/types.d.ts +4 -0
  26. package/bottom-sheet/types.d.ts +4 -0
  27. package/calendar/Component.responsive.d.ts +8 -0
  28. package/calendar/Component.responsive.js +2 -2
  29. package/calendar/cssm/Component.responsive.d.ts +8 -0
  30. package/calendar/cssm/Component.responsive.js +2 -2
  31. package/calendar/esm/Component.responsive.d.ts +8 -0
  32. package/calendar/esm/Component.responsive.js +2 -2
  33. package/calendar/modern/Component.responsive.d.ts +8 -0
  34. package/calendar/modern/Component.responsive.js +2 -2
  35. package/checkbox-group/Component.responsive.d.ts +4 -0
  36. package/checkbox-group/Component.responsive.js +2 -2
  37. package/checkbox-group/cssm/Component.responsive.d.ts +4 -0
  38. package/checkbox-group/cssm/Component.responsive.js +2 -2
  39. package/checkbox-group/esm/Component.responsive.d.ts +4 -0
  40. package/checkbox-group/esm/Component.responsive.js +2 -2
  41. package/checkbox-group/modern/Component.responsive.d.ts +4 -0
  42. package/checkbox-group/modern/Component.responsive.js +2 -2
  43. package/code-input/Component.responsive.d.ts +8 -0
  44. package/code-input/Component.responsive.js +2 -2
  45. package/code-input/cssm/Component.responsive.d.ts +8 -0
  46. package/code-input/cssm/Component.responsive.js +2 -2
  47. package/code-input/esm/Component.responsive.d.ts +8 -0
  48. package/code-input/esm/Component.responsive.js +2 -2
  49. package/code-input/modern/Component.responsive.d.ts +8 -0
  50. package/code-input/modern/Component.responsive.js +2 -2
  51. package/confirmation/component.responsive.d.ts +4 -0
  52. package/confirmation/component.responsive.js +2 -2
  53. package/confirmation/components/screens/initial/component.js +1 -1
  54. package/confirmation/components/screens/initial/countdown-section.js +1 -1
  55. package/confirmation/cssm/component.responsive.d.ts +4 -0
  56. package/confirmation/cssm/component.responsive.js +2 -2
  57. package/confirmation/esm/component.responsive.d.ts +4 -0
  58. package/confirmation/esm/component.responsive.js +3 -3
  59. package/confirmation/esm/components/base-confirmation/component.js +1 -1
  60. package/confirmation/esm/components/base-confirmation/index.js +1 -1
  61. package/confirmation/esm/components/index.js +1 -1
  62. package/confirmation/esm/components/screens/index.js +1 -1
  63. package/confirmation/esm/components/screens/initial/component.js +1 -1
  64. package/confirmation/esm/components/screens/initial/countdown-section.js +1 -1
  65. package/confirmation/esm/components/screens/initial/index.js +1 -1
  66. package/confirmation/esm/desktop/component.desktop.js +1 -1
  67. package/confirmation/esm/desktop/index.js +1 -1
  68. package/confirmation/esm/index.js +1 -1
  69. package/confirmation/esm/mobile/component.mobile.js +1 -1
  70. package/confirmation/esm/mobile/index.js +1 -1
  71. package/confirmation/esm/shared/index.js +1 -1
  72. package/confirmation/modern/component.responsive.d.ts +4 -0
  73. package/confirmation/modern/component.responsive.js +3 -3
  74. package/confirmation/modern/components/base-confirmation/component.js +1 -1
  75. package/confirmation/modern/components/base-confirmation/index.js +1 -1
  76. package/confirmation/modern/components/index.js +1 -1
  77. package/confirmation/modern/components/screens/index.js +1 -1
  78. package/confirmation/modern/components/screens/initial/component.js +1 -1
  79. package/confirmation/modern/components/screens/initial/countdown-section.js +1 -1
  80. package/confirmation/modern/components/screens/initial/index.js +1 -1
  81. package/confirmation/modern/desktop/component.desktop.js +1 -1
  82. package/confirmation/modern/desktop/index.js +1 -1
  83. package/confirmation/modern/index.js +1 -1
  84. package/confirmation/modern/mobile/component.mobile.js +1 -1
  85. package/confirmation/modern/mobile/index.js +1 -1
  86. package/confirmation/modern/shared/index.js +1 -1
  87. package/custom-picker-button/Component.responsive.d.ts +8 -0
  88. package/custom-picker-button/Component.responsive.js +2 -2
  89. package/custom-picker-button/cssm/Component.responsive.d.ts +8 -0
  90. package/custom-picker-button/cssm/Component.responsive.js +2 -2
  91. package/custom-picker-button/esm/Component.responsive.d.ts +8 -0
  92. package/custom-picker-button/esm/Component.responsive.js +2 -2
  93. package/custom-picker-button/modern/Component.responsive.d.ts +8 -0
  94. package/custom-picker-button/modern/Component.responsive.js +2 -2
  95. package/filter-tag/Component.responsive.d.ts +8 -0
  96. package/filter-tag/Component.responsive.js +2 -2
  97. package/filter-tag/cssm/Component.responsive.d.ts +8 -0
  98. package/filter-tag/cssm/Component.responsive.js +2 -2
  99. package/filter-tag/esm/Component.responsive.d.ts +8 -0
  100. package/filter-tag/esm/Component.responsive.js +2 -2
  101. package/filter-tag/modern/Component.responsive.d.ts +8 -0
  102. package/filter-tag/modern/Component.responsive.js +2 -2
  103. package/gallery/components/header/Component.js +1 -1
  104. package/gallery/components/header/buttons.js +1 -1
  105. package/gallery/components/image-viewer/component.js +1 -1
  106. package/gallery/components/image-viewer/slide.js +1 -1
  107. package/gallery/esm/Component.js +2 -2
  108. package/gallery/esm/components/header/Component.js +1 -1
  109. package/gallery/esm/components/header/buttons.js +1 -1
  110. package/gallery/esm/components/header/index.js +1 -1
  111. package/gallery/esm/components/image-preview/Component.js +1 -1
  112. package/gallery/esm/components/image-preview/index.js +1 -1
  113. package/gallery/esm/components/image-viewer/component.js +1 -1
  114. package/gallery/esm/components/image-viewer/index.js +1 -1
  115. package/gallery/esm/components/image-viewer/slide.js +1 -1
  116. package/gallery/esm/components/index.js +2 -2
  117. package/gallery/esm/components/navigation-bar/Component.js +1 -1
  118. package/gallery/esm/components/navigation-bar/index.js +1 -1
  119. package/gallery/esm/index.js +2 -2
  120. package/gallery/modern/Component.js +2 -2
  121. package/gallery/modern/components/header/Component.js +1 -1
  122. package/gallery/modern/components/header/buttons.js +1 -1
  123. package/gallery/modern/components/header/index.js +1 -1
  124. package/gallery/modern/components/image-preview/Component.js +1 -1
  125. package/gallery/modern/components/image-preview/index.js +1 -1
  126. package/gallery/modern/components/image-viewer/component.js +1 -1
  127. package/gallery/modern/components/image-viewer/index.js +1 -1
  128. package/gallery/modern/components/image-viewer/slide.js +1 -1
  129. package/gallery/modern/components/index.js +2 -2
  130. package/gallery/modern/components/navigation-bar/Component.js +1 -1
  131. package/gallery/modern/components/navigation-bar/index.js +1 -1
  132. package/gallery/modern/index.js +2 -2
  133. package/international-phone-input/cssm/typings-9d430401.d.ts +12 -1
  134. package/international-phone-input/esm/typings-9d430401.d.ts +12 -1
  135. package/international-phone-input/modern/typings-9d430401.d.ts +12 -1
  136. package/international-phone-input/typings-9d430401.d.ts +12 -1
  137. package/modal/components/controls/Component.js +1 -1
  138. package/modal/components/footer/Component.js +1 -1
  139. package/modal/esm/Component.responsive.js +1 -1
  140. package/modal/esm/components/controls/Component.js +1 -1
  141. package/modal/esm/components/controls/index.js +1 -1
  142. package/modal/esm/components/footer/Component.js +1 -1
  143. package/modal/esm/desktop/Component.desktop.js +1 -1
  144. package/modal/esm/desktop/index.js +1 -1
  145. package/modal/esm/index.js +1 -1
  146. package/modal/esm/mobile/Component.mobile.js +1 -1
  147. package/modal/esm/mobile/index.js +1 -1
  148. package/modal/modern/Component.responsive.js +1 -1
  149. package/modal/modern/components/controls/Component.js +1 -1
  150. package/modal/modern/components/controls/index.js +1 -1
  151. package/modal/modern/components/footer/Component.js +1 -1
  152. package/modal/modern/desktop/Component.desktop.js +1 -1
  153. package/modal/modern/desktop/index.js +1 -1
  154. package/modal/modern/index.js +1 -1
  155. package/modal/modern/mobile/Component.mobile.js +1 -1
  156. package/modal/modern/mobile/index.js +1 -1
  157. package/mq/Component.d.ts +4 -0
  158. package/mq/Component.js +2 -2
  159. package/mq/cssm/Component.d.ts +4 -0
  160. package/mq/cssm/Component.js +2 -2
  161. package/mq/esm/Component.d.ts +4 -0
  162. package/mq/esm/Component.js +2 -2
  163. package/mq/modern/Component.d.ts +4 -0
  164. package/mq/modern/Component.js +2 -2
  165. package/package.json +1 -1
  166. package/pass-code/Component.d.ts +4 -0
  167. package/pass-code/Component.responsive.js +2 -2
  168. package/pass-code/cssm/Component.d.ts +4 -0
  169. package/pass-code/cssm/Component.responsive.js +2 -2
  170. package/pass-code/esm/Component.d.ts +4 -0
  171. package/pass-code/esm/Component.responsive.js +2 -2
  172. package/pass-code/modern/Component.d.ts +4 -0
  173. package/pass-code/modern/Component.responsive.js +2 -2
  174. package/pattern-lock/Component.responsive.js +2 -2
  175. package/pattern-lock/cssm/Component.responsive.js +2 -2
  176. package/pattern-lock/cssm/typings.d.ts +4 -0
  177. package/pattern-lock/esm/Component.responsive.js +2 -2
  178. package/pattern-lock/esm/typings.d.ts +4 -0
  179. package/pattern-lock/modern/Component.responsive.js +2 -2
  180. package/pattern-lock/modern/typings.d.ts +4 -0
  181. package/pattern-lock/typings.d.ts +4 -0
  182. package/picker-button/cssm/index-3109f463.d.ts +4 -0
  183. package/picker-button/cssm/typings-9d430401.d.ts +5 -0
  184. package/picker-button/cssm/use-visualviewport-size-2f466837.d.ts +3 -0
  185. package/picker-button/esm/index-3109f463.d.ts +4 -0
  186. package/picker-button/esm/typings-9d430401.d.ts +5 -0
  187. package/picker-button/esm/use-visualviewport-size-2f466837.d.ts +3 -0
  188. package/picker-button/index-3109f463.d.ts +4 -0
  189. package/picker-button/modern/index-3109f463.d.ts +4 -0
  190. package/picker-button/modern/typings-9d430401.d.ts +5 -0
  191. package/picker-button/modern/use-visualviewport-size-2f466837.d.ts +3 -0
  192. package/picker-button/typings-9d430401.d.ts +5 -0
  193. package/picker-button/use-visualviewport-size-2f466837.d.ts +3 -0
  194. package/plate/Component.responsive.d.ts +8 -0
  195. package/plate/Component.responsive.js +2 -2
  196. package/plate/cssm/Component.responsive.d.ts +8 -0
  197. package/plate/cssm/Component.responsive.js +2 -2
  198. package/plate/esm/Component.responsive.d.ts +8 -0
  199. package/plate/esm/Component.responsive.js +2 -2
  200. package/plate/modern/Component.responsive.d.ts +8 -0
  201. package/plate/modern/Component.responsive.js +2 -2
  202. package/pure-cell/component.js +1 -1
  203. package/pure-cell/components/addon/component.js +1 -1
  204. package/pure-cell/components/addon/index.d.ts +1 -1
  205. package/pure-cell/components/addon/index.js +1 -1
  206. package/pure-cell/components/amount/component.js +1 -1
  207. package/pure-cell/components/amount/index.d.ts +1 -1
  208. package/pure-cell/components/amount/index.js +1 -1
  209. package/pure-cell/components/amount-title/component.js +1 -1
  210. package/pure-cell/components/amount-title/index.d.ts +1 -1
  211. package/pure-cell/components/amount-title/index.js +1 -1
  212. package/pure-cell/components/category/component.js +1 -1
  213. package/pure-cell/components/category/index.d.ts +1 -1
  214. package/pure-cell/components/category/index.js +1 -1
  215. package/pure-cell/components/content/component.js +1 -1
  216. package/pure-cell/components/content/index.d.ts +1 -1
  217. package/pure-cell/components/content/index.js +1 -1
  218. package/pure-cell/components/footer/component.js +1 -1
  219. package/pure-cell/components/footer/index.d.ts +1 -1
  220. package/pure-cell/components/footer/index.js +1 -1
  221. package/pure-cell/components/footer-button/component.js +1 -1
  222. package/pure-cell/components/footer-button/index.d.ts +1 -1
  223. package/pure-cell/components/footer-button/index.js +1 -1
  224. package/pure-cell/components/footer-text/component.js +1 -1
  225. package/pure-cell/components/footer-text/index.d.ts +1 -1
  226. package/pure-cell/components/footer-text/index.js +1 -1
  227. package/pure-cell/components/graphics/component.js +1 -1
  228. package/pure-cell/components/graphics/index.d.ts +1 -1
  229. package/pure-cell/components/graphics/index.js +1 -1
  230. package/pure-cell/components/main/component.js +1 -1
  231. package/pure-cell/components/main/index.d.ts +1 -1
  232. package/pure-cell/components/main/index.js +1 -1
  233. package/pure-cell/components/text/component.js +1 -1
  234. package/pure-cell/components/text/index.d.ts +1 -1
  235. package/pure-cell/components/text/index.js +1 -1
  236. package/pure-cell/esm/component.js +1 -1
  237. package/pure-cell/esm/components/addon/component.js +1 -1
  238. package/pure-cell/esm/components/addon/index.d.ts +1 -1
  239. package/pure-cell/esm/components/addon/index.js +1 -1
  240. package/pure-cell/esm/components/amount/component.js +1 -1
  241. package/pure-cell/esm/components/amount/index.d.ts +1 -1
  242. package/pure-cell/esm/components/amount/index.js +1 -1
  243. package/pure-cell/esm/components/amount-title/component.js +1 -1
  244. package/pure-cell/esm/components/amount-title/index.d.ts +1 -1
  245. package/pure-cell/esm/components/amount-title/index.js +1 -1
  246. package/pure-cell/esm/components/category/component.js +1 -1
  247. package/pure-cell/esm/components/category/index.d.ts +1 -1
  248. package/pure-cell/esm/components/category/index.js +1 -1
  249. package/pure-cell/esm/components/content/component.js +1 -1
  250. package/pure-cell/esm/components/content/index.d.ts +1 -1
  251. package/pure-cell/esm/components/content/index.js +1 -1
  252. package/pure-cell/esm/components/footer/component.js +1 -1
  253. package/pure-cell/esm/components/footer/index.d.ts +1 -1
  254. package/pure-cell/esm/components/footer/index.js +1 -1
  255. package/pure-cell/esm/components/footer-button/component.js +1 -1
  256. package/pure-cell/esm/components/footer-button/index.d.ts +1 -1
  257. package/pure-cell/esm/components/footer-button/index.js +1 -1
  258. package/pure-cell/esm/components/footer-text/component.js +1 -1
  259. package/pure-cell/esm/components/footer-text/index.d.ts +1 -1
  260. package/pure-cell/esm/components/footer-text/index.js +1 -1
  261. package/pure-cell/esm/components/graphics/component.js +1 -1
  262. package/pure-cell/esm/components/graphics/index.d.ts +1 -1
  263. package/pure-cell/esm/components/graphics/index.js +1 -1
  264. package/pure-cell/esm/components/main/component.js +1 -1
  265. package/pure-cell/esm/components/main/index.d.ts +1 -1
  266. package/pure-cell/esm/components/main/index.js +1 -1
  267. package/pure-cell/esm/components/text/component.js +1 -1
  268. package/pure-cell/esm/components/text/index.d.ts +1 -1
  269. package/pure-cell/esm/components/text/index.js +1 -1
  270. package/pure-cell/esm/index.js +1 -1
  271. package/pure-cell/index.js +1 -1
  272. package/pure-cell/modern/component.js +1 -1
  273. package/pure-cell/modern/components/addon/component.js +1 -1
  274. package/pure-cell/modern/components/addon/index.d.ts +1 -1
  275. package/pure-cell/modern/components/addon/index.js +1 -1
  276. package/pure-cell/modern/components/amount/component.js +1 -1
  277. package/pure-cell/modern/components/amount/index.d.ts +1 -1
  278. package/pure-cell/modern/components/amount/index.js +1 -1
  279. package/pure-cell/modern/components/amount-title/component.js +1 -1
  280. package/pure-cell/modern/components/amount-title/index.d.ts +1 -1
  281. package/pure-cell/modern/components/amount-title/index.js +1 -1
  282. package/pure-cell/modern/components/category/component.js +1 -1
  283. package/pure-cell/modern/components/category/index.d.ts +1 -1
  284. package/pure-cell/modern/components/category/index.js +1 -1
  285. package/pure-cell/modern/components/content/component.js +1 -1
  286. package/pure-cell/modern/components/content/index.d.ts +1 -1
  287. package/pure-cell/modern/components/content/index.js +1 -1
  288. package/pure-cell/modern/components/footer/component.js +1 -1
  289. package/pure-cell/modern/components/footer/index.d.ts +1 -1
  290. package/pure-cell/modern/components/footer/index.js +1 -1
  291. package/pure-cell/modern/components/footer-button/component.js +1 -1
  292. package/pure-cell/modern/components/footer-button/index.d.ts +1 -1
  293. package/pure-cell/modern/components/footer-button/index.js +1 -1
  294. package/pure-cell/modern/components/footer-text/component.js +1 -1
  295. package/pure-cell/modern/components/footer-text/index.d.ts +1 -1
  296. package/pure-cell/modern/components/footer-text/index.js +1 -1
  297. package/pure-cell/modern/components/graphics/component.js +1 -1
  298. package/pure-cell/modern/components/graphics/index.d.ts +1 -1
  299. package/pure-cell/modern/components/graphics/index.js +1 -1
  300. package/pure-cell/modern/components/main/component.js +1 -1
  301. package/pure-cell/modern/components/main/index.d.ts +1 -1
  302. package/pure-cell/modern/components/main/index.js +1 -1
  303. package/pure-cell/modern/components/text/component.js +1 -1
  304. package/pure-cell/modern/components/text/index.d.ts +1 -1
  305. package/pure-cell/modern/components/text/index.js +1 -1
  306. package/pure-cell/modern/index.js +1 -1
  307. package/radio-group/Component.responsive.d.ts +8 -0
  308. package/radio-group/Component.responsive.js +2 -2
  309. package/radio-group/cssm/Component.responsive.d.ts +8 -0
  310. package/radio-group/cssm/Component.responsive.js +2 -2
  311. package/radio-group/esm/Component.responsive.d.ts +8 -0
  312. package/radio-group/esm/Component.responsive.js +2 -2
  313. package/radio-group/modern/Component.responsive.d.ts +8 -0
  314. package/radio-group/modern/Component.responsive.js +2 -2
  315. package/select/esm/Component.responsive.js +1 -1
  316. package/select/esm/index.js +1 -1
  317. package/select/esm/mobile/Component.mobile.js +1 -1
  318. package/select/esm/mobile/Component.modal.mobile.js +1 -1
  319. package/select/esm/mobile/index.js +1 -1
  320. package/select/esm/presets/index.js +1 -1
  321. package/select/esm/presets/useSelectWithApply/hook.js +1 -1
  322. package/select/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  323. package/select/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  324. package/select/esm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  325. package/select/esm/shared/index.js +1 -1
  326. package/select/mobile/Component.mobile.js +1 -1
  327. package/select/modern/Component.responsive.js +1 -1
  328. package/select/modern/index.js +1 -1
  329. package/select/modern/mobile/Component.mobile.js +1 -1
  330. package/select/modern/mobile/Component.modal.mobile.js +1 -1
  331. package/select/modern/mobile/index.js +1 -1
  332. package/select/modern/presets/index.js +1 -1
  333. package/select/modern/presets/useSelectWithApply/hook.js +1 -1
  334. package/select/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  335. package/select/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  336. package/select/modern/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  337. package/select/modern/shared/index.js +1 -1
  338. package/select/presets/index.js +1 -1
  339. package/select/presets/useSelectWithApply/hook.js +1 -1
  340. package/select/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  341. package/select/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  342. package/select/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  343. package/select/shared/index.js +1 -1
  344. package/side-panel/components/controls/Component.js +1 -1
  345. package/side-panel/components/footer/Component.js +1 -1
  346. package/side-panel/esm/Component.responsive.js +1 -1
  347. package/side-panel/esm/components/controls/Component.js +1 -1
  348. package/side-panel/esm/components/controls/index.js +1 -1
  349. package/side-panel/esm/components/footer/Component.desktop.js +1 -1
  350. package/side-panel/esm/components/footer/Component.js +1 -1
  351. package/side-panel/esm/components/footer/Component.mobile.js +1 -1
  352. package/side-panel/esm/desktop/Component.desktop.js +1 -1
  353. package/side-panel/esm/desktop/index.js +1 -1
  354. package/side-panel/esm/index.js +1 -1
  355. package/side-panel/esm/mobile/Component.mobile.js +1 -1
  356. package/side-panel/esm/mobile/index.js +1 -1
  357. package/side-panel/modern/Component.responsive.js +1 -1
  358. package/side-panel/modern/components/controls/Component.js +1 -1
  359. package/side-panel/modern/components/controls/index.js +1 -1
  360. package/side-panel/modern/components/footer/Component.desktop.js +1 -1
  361. package/side-panel/modern/components/footer/Component.js +1 -1
  362. package/side-panel/modern/components/footer/Component.mobile.js +1 -1
  363. package/side-panel/modern/desktop/Component.desktop.js +1 -1
  364. package/side-panel/modern/desktop/index.js +1 -1
  365. package/side-panel/modern/index.js +1 -1
  366. package/side-panel/modern/mobile/Component.mobile.js +1 -1
  367. package/side-panel/modern/mobile/index.js +1 -1
  368. package/tag/Component.responsive.d.ts +8 -0
  369. package/tag/Component.responsive.js +2 -2
  370. package/tag/cssm/Component.responsive.d.ts +8 -0
  371. package/tag/cssm/Component.responsive.js +2 -2
  372. package/tag/esm/Component.responsive.d.ts +8 -0
  373. package/tag/esm/Component.responsive.js +2 -2
  374. package/tag/modern/Component.responsive.d.ts +8 -0
  375. package/tag/modern/Component.responsive.js +2 -2
  376. package/themes/compiled/mobile-dark-bluetint.css +14 -14
  377. package/toast/Component.responsive.d.ts +2 -0
  378. package/toast/Component.responsive.js +2 -2
  379. package/toast/components/base-toast/component.d.ts +2 -0
  380. package/toast/cssm/Component.responsive.d.ts +2 -0
  381. package/toast/cssm/Component.responsive.js +2 -2
  382. package/toast/cssm/components/base-toast/component.d.ts +2 -0
  383. package/toast/esm/Component.responsive.d.ts +2 -0
  384. package/toast/esm/Component.responsive.js +2 -2
  385. package/toast/esm/components/base-toast/component.d.ts +2 -0
  386. package/toast/modern/Component.responsive.d.ts +2 -0
  387. package/toast/modern/Component.responsive.js +2 -2
  388. package/toast/modern/components/base-toast/component.d.ts +2 -0
  389. package/toast-plate/Component.responsive.d.ts +8 -0
  390. package/toast-plate/Component.responsive.js +2 -2
  391. package/toast-plate/cssm/Component.responsive.d.ts +8 -0
  392. package/toast-plate/cssm/Component.responsive.js +2 -2
  393. package/toast-plate/esm/Component.responsive.d.ts +8 -0
  394. package/toast-plate/esm/Component.responsive.js +2 -2
  395. package/toast-plate/modern/Component.responsive.d.ts +8 -0
  396. package/toast-plate/modern/Component.responsive.js +2 -2
  397. package/typography/{common.module-ab0dd105.js → common.module-6c15aeb4.js} +1 -1
  398. package/typography/cssm/title/common.module.css +0 -26
  399. package/typography/cssm/title/component.d.ts +8 -0
  400. package/typography/cssm/title/index.d.ts +1 -0
  401. package/typography/cssm/title/index.module.css +16 -0
  402. package/typography/cssm/title-mobile/component.d.ts +1 -0
  403. package/typography/cssm/title-responsive/component.d.ts +1 -0
  404. package/typography/cssm/title-responsive/component.js +2 -1
  405. package/typography/esm/{common.module-f74d848f.js → common.module-1d64d5c0.js} +1 -1
  406. package/typography/esm/component.js +2 -2
  407. package/typography/esm/index.js +2 -2
  408. package/typography/esm/text/component.js +1 -1
  409. package/typography/esm/text/index.js +1 -1
  410. package/typography/esm/title/common.css +0 -26
  411. package/typography/esm/title/component.d.ts +8 -0
  412. package/typography/esm/title/component.js +1 -1
  413. package/typography/esm/title/index.css +16 -0
  414. package/typography/esm/title/index.d.ts +1 -0
  415. package/typography/esm/title/index.js +3 -3
  416. package/typography/esm/title-mobile/component.d.ts +1 -0
  417. package/typography/esm/title-mobile/component.js +2 -2
  418. package/typography/esm/title-mobile/index.js +2 -2
  419. package/typography/esm/title-responsive/component.d.ts +1 -0
  420. package/typography/esm/title-responsive/component.js +4 -3
  421. package/typography/esm/title-responsive/index.js +2 -2
  422. package/typography/modern/{common.module-b7b7d261.js → common.module-ffb1e96a.js} +1 -1
  423. package/typography/modern/component.js +2 -2
  424. package/typography/modern/index.js +2 -2
  425. package/typography/modern/text/component.js +1 -1
  426. package/typography/modern/text/index.js +1 -1
  427. package/typography/modern/title/common.css +0 -26
  428. package/typography/modern/title/component.d.ts +8 -0
  429. package/typography/modern/title/component.js +1 -1
  430. package/typography/modern/title/index.css +16 -0
  431. package/typography/modern/title/index.d.ts +1 -0
  432. package/typography/modern/title/index.js +3 -3
  433. package/typography/modern/title-mobile/component.d.ts +1 -0
  434. package/typography/modern/title-mobile/component.js +2 -2
  435. package/typography/modern/title-mobile/index.js +2 -2
  436. package/typography/modern/title-responsive/component.d.ts +1 -0
  437. package/typography/modern/title-responsive/component.js +4 -3
  438. package/typography/modern/title-responsive/index.js +2 -2
  439. package/typography/text/component.js +1 -1
  440. package/typography/title/common.css +0 -26
  441. package/typography/title/component.d.ts +8 -0
  442. package/typography/title/component.js +1 -1
  443. package/typography/title/index.css +16 -0
  444. package/typography/title/index.d.ts +1 -0
  445. package/typography/title/index.js +2 -2
  446. package/typography/title-mobile/component.d.ts +1 -0
  447. package/typography/title-mobile/component.js +1 -1
  448. package/typography/title-responsive/component.d.ts +1 -0
  449. package/typography/title-responsive/component.js +3 -2
  450. package/universal-date-input/cssm/index-5712fce2.d.ts +10 -0
  451. package/universal-date-input/esm/index-5712fce2.d.ts +10 -0
  452. package/universal-date-input/index-5712fce2.d.ts +10 -0
  453. package/universal-date-input/modern/index-5712fce2.d.ts +10 -0
  454. /package/confirmation/{countdown-section-b97a2d28.d.ts → countdown-section-917473e6.d.ts} +0 -0
  455. /package/confirmation/{countdown-section-b97a2d28.js → countdown-section-917473e6.js} +0 -0
  456. /package/confirmation/esm/{countdown-section-a223c6f2.d.ts → countdown-section-53c5fb8d.d.ts} +0 -0
  457. /package/confirmation/esm/{countdown-section-a223c6f2.js → countdown-section-53c5fb8d.js} +0 -0
  458. /package/confirmation/modern/{countdown-section-20854026.d.ts → countdown-section-2725d6e5.d.ts} +0 -0
  459. /package/confirmation/modern/{countdown-section-20854026.js → countdown-section-2725d6e5.js} +0 -0
  460. /package/gallery/{buttons-7955bca1.d.ts → buttons-64a44de7.d.ts} +0 -0
  461. /package/gallery/{buttons-7955bca1.js → buttons-64a44de7.js} +0 -0
  462. /package/gallery/esm/{buttons-0b33a243.d.ts → buttons-4eef5624.d.ts} +0 -0
  463. /package/gallery/esm/{buttons-0b33a243.js → buttons-4eef5624.js} +0 -0
  464. /package/gallery/esm/{slide-68044235.d.ts → slide-6d0129b7.d.ts} +0 -0
  465. /package/gallery/esm/{slide-68044235.js → slide-6d0129b7.js} +0 -0
  466. /package/gallery/modern/{buttons-1c387519.d.ts → buttons-7a4ddbee.d.ts} +0 -0
  467. /package/gallery/modern/{buttons-1c387519.js → buttons-7a4ddbee.js} +0 -0
  468. /package/gallery/modern/{slide-8fac1571.d.ts → slide-52809b99.d.ts} +0 -0
  469. /package/gallery/modern/{slide-8fac1571.js → slide-52809b99.js} +0 -0
  470. /package/gallery/{slide-b26ac03f.d.ts → slide-3026dd71.d.ts} +0 -0
  471. /package/gallery/{slide-b26ac03f.js → slide-3026dd71.js} +0 -0
  472. /package/modal/esm/{layout.module-f16fb568.js → layout.module-32e142e5.js} +0 -0
  473. /package/modal/{layout.module-d3c8a7ae.js → layout.module-ffd15064.js} +0 -0
  474. /package/modal/modern/{layout.module-b59dbcd8.js → layout.module-28cafdef.js} +0 -0
  475. /package/pure-cell/{component-c686ab41.d.ts → component-788aa04c.d.ts} +0 -0
  476. /package/pure-cell/{component-c686ab41.js → component-788aa04c.js} +0 -0
  477. /package/pure-cell/esm/{component-80f281aa.d.ts → component-6616d607.d.ts} +0 -0
  478. /package/pure-cell/esm/{component-80f281aa.js → component-6616d607.js} +0 -0
  479. /package/pure-cell/modern/{component-e50c0ab1.d.ts → component-eef62409.d.ts} +0 -0
  480. /package/pure-cell/modern/{component-e50c0ab1.js → component-eef62409.js} +0 -0
  481. /package/select/esm/{hook-3cc12a62.d.ts → hook-86063cab.d.ts} +0 -0
  482. /package/select/esm/{hook-3cc12a62.js → hook-86063cab.js} +0 -0
  483. /package/select/{hook-98585197.d.ts → hook-777449d0.d.ts} +0 -0
  484. /package/select/{hook-98585197.js → hook-777449d0.js} +0 -0
  485. /package/select/modern/{hook-ce6666bb.d.ts → hook-1c546c40.d.ts} +0 -0
  486. /package/select/modern/{hook-ce6666bb.js → hook-1c546c40.js} +0 -0
  487. /package/side-panel/esm/{layout.module-f3177b22.js → layout.module-857fee63.js} +0 -0
  488. /package/side-panel/{layout.module-89adb1fa.js → layout.module-75ce8984.js} +0 -0
  489. /package/side-panel/modern/{layout.module-c526db33.js → layout.module-3bd34d8b.js} +0 -0
  490. /package/typography/{colors.module-559b734f.js → colors.module-0c7366a2.js} +0 -0
  491. /package/typography/esm/{colors.module-8f3b9ff3.js → colors.module-96fcf062.js} +0 -0
  492. /package/typography/modern/{colors.module-39885a9b.js → colors.module-68086c1d.js} +0 -0
@@ -12,6 +12,7 @@ var components_footer_Component = require('./components/footer/Component.js');
12
12
  var components_header_Component = require('./components/header/Component.js');
13
13
  var components_swipeableBackdrop_Component = require('./components/swipeable-backdrop/Component.js');
14
14
  var consts_swipeConsts = require('./consts/swipeConsts.js');
15
+ var hooks_useVisualviewportSize = require('./hooks/use-visualviewport-size.js');
15
16
  var utils = require('./utils.js');
16
17
 
17
18
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -26,8 +27,11 @@ require('./index.css');
26
27
  var isNil = coreComponentsShared.fnUtils.isNil;
27
28
  var BottomSheet = React.forwardRef(function (_a, ref) {
28
29
  var _b, _c, _d, _e, _f;
29
- var open = _a.open, title = _a.title, container = _a.container, usePortal = _a.usePortal, backgroundColor = _a.backgroundColor, _g = _a.titleSize, titleSize = _g === void 0 ? 'default' : _g, subtitle = _a.subtitle, actionButton = _a.actionButton, contentClassName = _a.contentClassName, containerClassName = _a.containerClassName, containerProps = _a.containerProps, headerClassName = _a.headerClassName, footerClassName = _a.footerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, modalClassName = _a.modalClassName, modalWrapperClassName = _a.modalWrapperClassName, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, bottomAddons = _a.bottomAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, _h = _a.titleAlign, titleAlign = _h === void 0 ? 'left' : _h, trimTitle = _a.trimTitle, stickyHeader = _a.stickyHeader, _j = _a.stickyFooter, stickyFooter = _j === void 0 ? true : _j, _k = _a.initialHeight, initialHeight = _k === void 0 ? 'default' : _k, hideOverlay = _a.hideOverlay, hideScrollbar = _a.hideScrollbar, hideHeader = _a.hideHeader, disableOverlayClick = _a.disableOverlayClick, disableBlockingScroll = _a.disableBlockingScroll, disableFocusLock = _a.disableFocusLock, children = _a.children, zIndex = _a.zIndex, _l = _a.transitionProps, transitionProps = _l === void 0 ? {} : _l, magneticAreasProp = _a.magneticAreas, initialActiveAreaIndex = _a.initialActiveAreaIndex, dataTestId = _a.dataTestId, _m = _a.swipeable, swipeable = _m === void 0 ? true : _m, _o = _a.swipeableContent, swipeableContent = _o === void 0 ? true : _o, _p = _a.swipeThreshold, swipeThreshold = _p === void 0 ? 5 : _p, scrollLockedProp = _a.scrollLocked, backdropProps = _a.backdropProps, _q = _a.scrollableContainerRef, scrollableContainerRef = _q === void 0 ? function () { return null; } : _q, bottomSheetInstanceRef = _a.bottomSheetInstanceRef, _r = _a.sheetContainerRef, sheetContainerRef = _r === void 0 ? function () { return null; } : _r, _s = _a.headerOffset, headerOffset = _s === void 0 ? 24 : _s, onClose = _a.onClose, onBack = _a.onBack, onMagnetize = _a.onMagnetize, onSwipeStart = _a.onSwipeStart, onSwipeEnd = _a.onSwipeEnd, disableRestoreFocus = _a.disableRestoreFocus, disableAutoFocus = _a.disableAutoFocus, disableEscapeKeyDown = _a.disableEscapeKeyDown, keepMounted = _a.keepMounted, onMagnetizeEnd = _a.onMagnetizeEnd, onOffsetChange = _a.onOffsetChange, swipeableMarker = _a.swipeableMarker, swipeableMarkerClassName = _a.swipeableMarkerClassName, backButtonProps = _a.backButtonProps, _t = _a.iOSLock, iOSLock = _t === void 0 ? false : _t;
30
- var fullHeight = reactDiv100vh.use100vh() || 0;
30
+ var _g, _h;
31
+ var open = _a.open, title = _a.title, container = _a.container, usePortal = _a.usePortal, backgroundColor = _a.backgroundColor, _j = _a.titleSize, titleSize = _j === void 0 ? 'default' : _j, subtitle = _a.subtitle, actionButton = _a.actionButton, contentClassName = _a.contentClassName, containerClassName = _a.containerClassName, containerProps = _a.containerProps, headerClassName = _a.headerClassName, footerClassName = _a.footerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, modalClassName = _a.modalClassName, modalWrapperClassName = _a.modalWrapperClassName, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, bottomAddons = _a.bottomAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, _k = _a.titleAlign, titleAlign = _k === void 0 ? 'left' : _k, trimTitle = _a.trimTitle, stickyHeader = _a.stickyHeader, _l = _a.stickyFooter, stickyFooter = _l === void 0 ? true : _l, _m = _a.initialHeight, initialHeight = _m === void 0 ? 'default' : _m, hideOverlay = _a.hideOverlay, hideScrollbar = _a.hideScrollbar, hideHeader = _a.hideHeader, disableOverlayClick = _a.disableOverlayClick, disableBlockingScroll = _a.disableBlockingScroll, disableFocusLock = _a.disableFocusLock, children = _a.children, zIndex = _a.zIndex, _o = _a.transitionProps, transitionProps = _o === void 0 ? {} : _o, magneticAreasProp = _a.magneticAreas, initialActiveAreaIndex = _a.initialActiveAreaIndex, dataTestId = _a.dataTestId, _p = _a.swipeable, swipeable = _p === void 0 ? true : _p, _q = _a.swipeableContent, swipeableContent = _q === void 0 ? true : _q, _r = _a.swipeThreshold, swipeThreshold = _r === void 0 ? 5 : _r, scrollLockedProp = _a.scrollLocked, backdropProps = _a.backdropProps, _s = _a.scrollableContainerRef, scrollableContainerRef = _s === void 0 ? function () { return null; } : _s, bottomSheetInstanceRef = _a.bottomSheetInstanceRef, _t = _a.sheetContainerRef, sheetContainerRef = _t === void 0 ? function () { return null; } : _t, _u = _a.headerOffset, headerOffset = _u === void 0 ? 24 : _u, onClose = _a.onClose, onBack = _a.onBack, onMagnetize = _a.onMagnetize, onSwipeStart = _a.onSwipeStart, onSwipeEnd = _a.onSwipeEnd, disableRestoreFocus = _a.disableRestoreFocus, disableAutoFocus = _a.disableAutoFocus, disableEscapeKeyDown = _a.disableEscapeKeyDown, keepMounted = _a.keepMounted, onMagnetizeEnd = _a.onMagnetizeEnd, onOffsetChange = _a.onOffsetChange, swipeableMarker = _a.swipeableMarker, swipeableMarkerClassName = _a.swipeableMarkerClassName, backButtonProps = _a.backButtonProps, _v = _a.iOSLock, iOSLock = _v === void 0 ? false : _v, _w = _a.virtualKeyboard, virtualKeyboard = _w === void 0 ? false : _w;
32
+ var windowHeight = (_g = reactDiv100vh.use100vh()) !== null && _g !== void 0 ? _g : 0;
33
+ var visibleViewportSize = hooks_useVisualviewportSize.useVisibleViewportSize(virtualKeyboard);
34
+ var fullHeight = virtualKeyboard ? (_h = visibleViewportSize === null || visibleViewportSize === void 0 ? void 0 : visibleViewportSize.height) !== null && _h !== void 0 ? _h : 0 : windowHeight;
31
35
  // Хук use100vh рассчитывает высоту вьюпорта в useEffect, поэтому на первый рендер всегда возвращает null.
32
36
  var isFirstRender = fullHeight === 0;
33
37
  var initialIndexRef = React.useRef(initialActiveAreaIndex);
@@ -41,14 +45,14 @@ var BottomSheet = React.forwardRef(function (_a, ref) {
41
45
  var iOSViewHeight = coreComponentsShared.isClient()
42
46
  ? ((_a = document === null || document === void 0 ? void 0 : document.documentElement) === null || _a === void 0 ? void 0 : _a.clientHeight) || (window === null || window === void 0 ? void 0 : window.innerHeight)
43
47
  : 0;
44
- var viewHeight = coreComponentsShared.os.isIOS() ? iOSViewHeight : fullHeight;
48
+ var viewHeight = coreComponentsShared.os.isIOS() && !virtualKeyboard ? iOSViewHeight : fullHeight;
45
49
  return [0, viewHeight - headerOffset];
46
- }, [fullHeight, headerOffset, magneticAreasProp]);
50
+ }, [fullHeight, headerOffset, magneticAreasProp, virtualKeyboard]);
47
51
  var lastMagneticArea = magneticAreas[magneticAreas.length - 1];
48
- var _u = React.useState(0), sheetOffset = _u[0], setSheetOffset = _u[1];
49
- var _v = React.useState(1), backdropOpacity = _v[0], setBackdropOpacity = _v[1];
50
- var _w = React.useState(-1), activeAreaIdx = _w[0], setActiveAreaIdx = _w[1];
51
- var _x = React.useState(null), swipingInProgress = _x[0], setSwipingInProgress = _x[1];
52
+ var _x = React.useState(0), sheetOffset = _x[0], setSheetOffset = _x[1];
53
+ var _y = React.useState(1), backdropOpacity = _y[0], setBackdropOpacity = _y[1];
54
+ var _z = React.useState(-1), activeAreaIdx = _z[0], setActiveAreaIdx = _z[1];
55
+ var _0 = React.useState(null), swipingInProgress = _0[0], setSwipingInProgress = _0[1];
52
56
  var scrollOccurred = React.useRef(false);
53
57
  var headerRef = React.useRef(null);
54
58
  var contentRef = React.useRef(null);
@@ -351,6 +355,9 @@ var BottomSheet = React.forwardRef(function (_a, ref) {
351
355
  ? "".concat(lastMagneticArea, "px")
352
356
  : 'unset',
353
357
  maxHeight: isFirstRender ? 0 : "".concat(lastMagneticArea, "px"),
358
+ marginBottom: virtualKeyboard && visibleViewportSize && windowHeight > visibleViewportSize.height
359
+ ? windowHeight - visibleViewportSize.height - visibleViewportSize.offsetTop
360
+ : undefined,
354
361
  }); };
355
362
  var renderMarker = function () {
356
363
  if (swipeable) {
@@ -12,6 +12,7 @@ var components_footer_Component = require('./components/footer/Component.js');
12
12
  var components_header_Component = require('./components/header/Component.js');
13
13
  var components_swipeableBackdrop_Component = require('./components/swipeable-backdrop/Component.js');
14
14
  var consts_swipeConsts = require('./consts/swipeConsts.js');
15
+ var hooks_useVisualviewportSize = require('./hooks/use-visualviewport-size.js');
15
16
  var utils = require('./utils.js');
16
17
  var styles = require('./index.module.css');
17
18
 
@@ -25,8 +26,11 @@ var styles__default = /*#__PURE__*/_interopDefaultCompat(styles);
25
26
  var isNil = coreComponentsShared.fnUtils.isNil;
26
27
  var BottomSheet = React.forwardRef(function (_a, ref) {
27
28
  var _b, _c, _d, _e, _f;
28
- var open = _a.open, title = _a.title, container = _a.container, usePortal = _a.usePortal, backgroundColor = _a.backgroundColor, _g = _a.titleSize, titleSize = _g === void 0 ? 'default' : _g, subtitle = _a.subtitle, actionButton = _a.actionButton, contentClassName = _a.contentClassName, containerClassName = _a.containerClassName, containerProps = _a.containerProps, headerClassName = _a.headerClassName, footerClassName = _a.footerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, modalClassName = _a.modalClassName, modalWrapperClassName = _a.modalWrapperClassName, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, bottomAddons = _a.bottomAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, _h = _a.titleAlign, titleAlign = _h === void 0 ? 'left' : _h, trimTitle = _a.trimTitle, stickyHeader = _a.stickyHeader, _j = _a.stickyFooter, stickyFooter = _j === void 0 ? true : _j, _k = _a.initialHeight, initialHeight = _k === void 0 ? 'default' : _k, hideOverlay = _a.hideOverlay, hideScrollbar = _a.hideScrollbar, hideHeader = _a.hideHeader, disableOverlayClick = _a.disableOverlayClick, disableBlockingScroll = _a.disableBlockingScroll, disableFocusLock = _a.disableFocusLock, children = _a.children, zIndex = _a.zIndex, _l = _a.transitionProps, transitionProps = _l === void 0 ? {} : _l, magneticAreasProp = _a.magneticAreas, initialActiveAreaIndex = _a.initialActiveAreaIndex, dataTestId = _a.dataTestId, _m = _a.swipeable, swipeable = _m === void 0 ? true : _m, _o = _a.swipeableContent, swipeableContent = _o === void 0 ? true : _o, _p = _a.swipeThreshold, swipeThreshold = _p === void 0 ? 5 : _p, scrollLockedProp = _a.scrollLocked, backdropProps = _a.backdropProps, _q = _a.scrollableContainerRef, scrollableContainerRef = _q === void 0 ? function () { return null; } : _q, bottomSheetInstanceRef = _a.bottomSheetInstanceRef, _r = _a.sheetContainerRef, sheetContainerRef = _r === void 0 ? function () { return null; } : _r, _s = _a.headerOffset, headerOffset = _s === void 0 ? 24 : _s, onClose = _a.onClose, onBack = _a.onBack, onMagnetize = _a.onMagnetize, onSwipeStart = _a.onSwipeStart, onSwipeEnd = _a.onSwipeEnd, disableRestoreFocus = _a.disableRestoreFocus, disableAutoFocus = _a.disableAutoFocus, disableEscapeKeyDown = _a.disableEscapeKeyDown, keepMounted = _a.keepMounted, onMagnetizeEnd = _a.onMagnetizeEnd, onOffsetChange = _a.onOffsetChange, swipeableMarker = _a.swipeableMarker, swipeableMarkerClassName = _a.swipeableMarkerClassName, backButtonProps = _a.backButtonProps, _t = _a.iOSLock, iOSLock = _t === void 0 ? false : _t;
29
- var fullHeight = reactDiv100vh.use100vh() || 0;
29
+ var _g, _h;
30
+ var open = _a.open, title = _a.title, container = _a.container, usePortal = _a.usePortal, backgroundColor = _a.backgroundColor, _j = _a.titleSize, titleSize = _j === void 0 ? 'default' : _j, subtitle = _a.subtitle, actionButton = _a.actionButton, contentClassName = _a.contentClassName, containerClassName = _a.containerClassName, containerProps = _a.containerProps, headerClassName = _a.headerClassName, footerClassName = _a.footerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, modalClassName = _a.modalClassName, modalWrapperClassName = _a.modalWrapperClassName, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, bottomAddons = _a.bottomAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, _k = _a.titleAlign, titleAlign = _k === void 0 ? 'left' : _k, trimTitle = _a.trimTitle, stickyHeader = _a.stickyHeader, _l = _a.stickyFooter, stickyFooter = _l === void 0 ? true : _l, _m = _a.initialHeight, initialHeight = _m === void 0 ? 'default' : _m, hideOverlay = _a.hideOverlay, hideScrollbar = _a.hideScrollbar, hideHeader = _a.hideHeader, disableOverlayClick = _a.disableOverlayClick, disableBlockingScroll = _a.disableBlockingScroll, disableFocusLock = _a.disableFocusLock, children = _a.children, zIndex = _a.zIndex, _o = _a.transitionProps, transitionProps = _o === void 0 ? {} : _o, magneticAreasProp = _a.magneticAreas, initialActiveAreaIndex = _a.initialActiveAreaIndex, dataTestId = _a.dataTestId, _p = _a.swipeable, swipeable = _p === void 0 ? true : _p, _q = _a.swipeableContent, swipeableContent = _q === void 0 ? true : _q, _r = _a.swipeThreshold, swipeThreshold = _r === void 0 ? 5 : _r, scrollLockedProp = _a.scrollLocked, backdropProps = _a.backdropProps, _s = _a.scrollableContainerRef, scrollableContainerRef = _s === void 0 ? function () { return null; } : _s, bottomSheetInstanceRef = _a.bottomSheetInstanceRef, _t = _a.sheetContainerRef, sheetContainerRef = _t === void 0 ? function () { return null; } : _t, _u = _a.headerOffset, headerOffset = _u === void 0 ? 24 : _u, onClose = _a.onClose, onBack = _a.onBack, onMagnetize = _a.onMagnetize, onSwipeStart = _a.onSwipeStart, onSwipeEnd = _a.onSwipeEnd, disableRestoreFocus = _a.disableRestoreFocus, disableAutoFocus = _a.disableAutoFocus, disableEscapeKeyDown = _a.disableEscapeKeyDown, keepMounted = _a.keepMounted, onMagnetizeEnd = _a.onMagnetizeEnd, onOffsetChange = _a.onOffsetChange, swipeableMarker = _a.swipeableMarker, swipeableMarkerClassName = _a.swipeableMarkerClassName, backButtonProps = _a.backButtonProps, _v = _a.iOSLock, iOSLock = _v === void 0 ? false : _v, _w = _a.virtualKeyboard, virtualKeyboard = _w === void 0 ? false : _w;
31
+ var windowHeight = (_g = reactDiv100vh.use100vh()) !== null && _g !== void 0 ? _g : 0;
32
+ var visibleViewportSize = hooks_useVisualviewportSize.useVisibleViewportSize(virtualKeyboard);
33
+ var fullHeight = virtualKeyboard ? (_h = visibleViewportSize === null || visibleViewportSize === void 0 ? void 0 : visibleViewportSize.height) !== null && _h !== void 0 ? _h : 0 : windowHeight;
30
34
  // Хук use100vh рассчитывает высоту вьюпорта в useEffect, поэтому на первый рендер всегда возвращает null.
31
35
  var isFirstRender = fullHeight === 0;
32
36
  var initialIndexRef = React.useRef(initialActiveAreaIndex);
@@ -40,14 +44,14 @@ var BottomSheet = React.forwardRef(function (_a, ref) {
40
44
  var iOSViewHeight = coreComponentsShared.isClient()
41
45
  ? ((_a = document === null || document === void 0 ? void 0 : document.documentElement) === null || _a === void 0 ? void 0 : _a.clientHeight) || (window === null || window === void 0 ? void 0 : window.innerHeight)
42
46
  : 0;
43
- var viewHeight = coreComponentsShared.os.isIOS() ? iOSViewHeight : fullHeight;
47
+ var viewHeight = coreComponentsShared.os.isIOS() && !virtualKeyboard ? iOSViewHeight : fullHeight;
44
48
  return [0, viewHeight - headerOffset];
45
- }, [fullHeight, headerOffset, magneticAreasProp]);
49
+ }, [fullHeight, headerOffset, magneticAreasProp, virtualKeyboard]);
46
50
  var lastMagneticArea = magneticAreas[magneticAreas.length - 1];
47
- var _u = React.useState(0), sheetOffset = _u[0], setSheetOffset = _u[1];
48
- var _v = React.useState(1), backdropOpacity = _v[0], setBackdropOpacity = _v[1];
49
- var _w = React.useState(-1), activeAreaIdx = _w[0], setActiveAreaIdx = _w[1];
50
- var _x = React.useState(null), swipingInProgress = _x[0], setSwipingInProgress = _x[1];
51
+ var _x = React.useState(0), sheetOffset = _x[0], setSheetOffset = _x[1];
52
+ var _y = React.useState(1), backdropOpacity = _y[0], setBackdropOpacity = _y[1];
53
+ var _z = React.useState(-1), activeAreaIdx = _z[0], setActiveAreaIdx = _z[1];
54
+ var _0 = React.useState(null), swipingInProgress = _0[0], setSwipingInProgress = _0[1];
51
55
  var scrollOccurred = React.useRef(false);
52
56
  var headerRef = React.useRef(null);
53
57
  var contentRef = React.useRef(null);
@@ -350,6 +354,9 @@ var BottomSheet = React.forwardRef(function (_a, ref) {
350
354
  ? "".concat(lastMagneticArea, "px")
351
355
  : 'unset',
352
356
  maxHeight: isFirstRender ? 0 : "".concat(lastMagneticArea, "px"),
357
+ marginBottom: virtualKeyboard && visibleViewportSize && windowHeight > visibleViewportSize.height
358
+ ? windowHeight - visibleViewportSize.height - visibleViewportSize.offsetTop
359
+ : undefined,
353
360
  }); };
354
361
  var renderMarker = function () {
355
362
  if (swipeable) {
@@ -0,0 +1 @@
1
+ export { useVisibleViewportSize } from "./use-visualviewport-size";
@@ -0,0 +1,7 @@
1
+ Object.defineProperty(exports, '__esModule', { value: true });
2
+
3
+ var hooks_useVisualviewportSize = require('./use-visualviewport-size.js');
4
+
5
+
6
+
7
+ exports.useVisibleViewportSize = hooks_useVisualviewportSize.useVisibleViewportSize;
@@ -0,0 +1,3 @@
1
+ type VisualViewportSize = Pick<VisualViewport, 'height' | 'offsetTop'>;
2
+ declare function useVisibleViewportSize(enabled?: boolean): VisualViewportSize | null;
3
+ export { useVisibleViewportSize };
@@ -0,0 +1,34 @@
1
+ Object.defineProperty(exports, '__esModule', { value: true });
2
+
3
+ var React = require('react');
4
+ var coreComponentsShared = require('../../../shared/cssm');
5
+
6
+ var measureVisualViewport = function (visualViewport) {
7
+ if (!visualViewport)
8
+ return null;
9
+ var height = visualViewport.height, offsetTop = visualViewport.offsetTop;
10
+ return { height: height, offsetTop: offsetTop };
11
+ };
12
+ function useVisibleViewportSize(enabled) {
13
+ if (enabled === void 0) { enabled = false; }
14
+ var _a = React.useState(function () {
15
+ return coreComponentsShared.isClient() ? measureVisualViewport(window.visualViewport) : null;
16
+ }), size = _a[0], setSize = _a[1];
17
+ React.useEffect(function () {
18
+ var visualViewport = window.visualViewport;
19
+ if (!coreComponentsShared.isClient() || !enabled || !visualViewport)
20
+ return coreComponentsShared.fnUtils.noop;
21
+ var listener = function (event) {
22
+ return setSize(measureVisualViewport(event.target));
23
+ };
24
+ visualViewport.addEventListener('resize', listener);
25
+ visualViewport.addEventListener('scroll', listener);
26
+ return function () {
27
+ visualViewport.removeEventListener('resize', listener);
28
+ visualViewport.removeEventListener('scroll', listener);
29
+ };
30
+ }, [enabled]);
31
+ return size;
32
+ }
33
+
34
+ exports.useVisibleViewportSize = useVisibleViewportSize;
@@ -281,5 +281,9 @@ type BottomSheetProps = {
281
281
  * Блокирует скролл когда модальное окно открыто. Работает только на iOS
282
282
  */
283
283
  iOSLock?: boolean;
284
+ /**
285
+ * Учитывать высоту виртуальной клавиатуры
286
+ */
287
+ virtualKeyboard?: boolean;
284
288
  };
285
289
  export { BottomSheetTitleAlign, BottomSheetProps };
@@ -10,6 +10,7 @@ import { Footer } from './components/footer/Component.js';
10
10
  import { Header } from './components/header/Component.js';
11
11
  import { SwipeableBackdrop } from './components/swipeable-backdrop/Component.js';
12
12
  import { horizontalDirections } from './consts/swipeConsts.js';
13
+ import { useVisibleViewportSize } from './hooks/use-visualviewport-size.js';
13
14
  import { convertPercentToNumber, TIMEOUT, MARKER_HEIGHT, SCROLL_OFFSET, SWIPE_VELOCITY, CLOSE_OFFSET } from './utils.js';
14
15
  import '../../navigation-bar-private/esm';
15
16
  import '../../backdrop/esm';
@@ -21,8 +22,11 @@ require('./index.css');
21
22
  var isNil = fnUtils.isNil;
22
23
  var BottomSheet = forwardRef(function (_a, ref) {
23
24
  var _b, _c, _d, _e, _f;
24
- var open = _a.open, title = _a.title, container = _a.container, usePortal = _a.usePortal, backgroundColor = _a.backgroundColor, _g = _a.titleSize, titleSize = _g === void 0 ? 'default' : _g, subtitle = _a.subtitle, actionButton = _a.actionButton, contentClassName = _a.contentClassName, containerClassName = _a.containerClassName, containerProps = _a.containerProps, headerClassName = _a.headerClassName, footerClassName = _a.footerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, modalClassName = _a.modalClassName, modalWrapperClassName = _a.modalWrapperClassName, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, bottomAddons = _a.bottomAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, _h = _a.titleAlign, titleAlign = _h === void 0 ? 'left' : _h, trimTitle = _a.trimTitle, stickyHeader = _a.stickyHeader, _j = _a.stickyFooter, stickyFooter = _j === void 0 ? true : _j, _k = _a.initialHeight, initialHeight = _k === void 0 ? 'default' : _k, hideOverlay = _a.hideOverlay, hideScrollbar = _a.hideScrollbar, hideHeader = _a.hideHeader, disableOverlayClick = _a.disableOverlayClick, disableBlockingScroll = _a.disableBlockingScroll, disableFocusLock = _a.disableFocusLock, children = _a.children, zIndex = _a.zIndex, _l = _a.transitionProps, transitionProps = _l === void 0 ? {} : _l, magneticAreasProp = _a.magneticAreas, initialActiveAreaIndex = _a.initialActiveAreaIndex, dataTestId = _a.dataTestId, _m = _a.swipeable, swipeable = _m === void 0 ? true : _m, _o = _a.swipeableContent, swipeableContent = _o === void 0 ? true : _o, _p = _a.swipeThreshold, swipeThreshold = _p === void 0 ? 5 : _p, scrollLockedProp = _a.scrollLocked, backdropProps = _a.backdropProps, _q = _a.scrollableContainerRef, scrollableContainerRef = _q === void 0 ? function () { return null; } : _q, bottomSheetInstanceRef = _a.bottomSheetInstanceRef, _r = _a.sheetContainerRef, sheetContainerRef = _r === void 0 ? function () { return null; } : _r, _s = _a.headerOffset, headerOffset = _s === void 0 ? 24 : _s, onClose = _a.onClose, onBack = _a.onBack, onMagnetize = _a.onMagnetize, onSwipeStart = _a.onSwipeStart, onSwipeEnd = _a.onSwipeEnd, disableRestoreFocus = _a.disableRestoreFocus, disableAutoFocus = _a.disableAutoFocus, disableEscapeKeyDown = _a.disableEscapeKeyDown, keepMounted = _a.keepMounted, onMagnetizeEnd = _a.onMagnetizeEnd, onOffsetChange = _a.onOffsetChange, swipeableMarker = _a.swipeableMarker, swipeableMarkerClassName = _a.swipeableMarkerClassName, backButtonProps = _a.backButtonProps, _t = _a.iOSLock, iOSLock = _t === void 0 ? false : _t;
25
- var fullHeight = use100vh() || 0;
25
+ var _g, _h;
26
+ var open = _a.open, title = _a.title, container = _a.container, usePortal = _a.usePortal, backgroundColor = _a.backgroundColor, _j = _a.titleSize, titleSize = _j === void 0 ? 'default' : _j, subtitle = _a.subtitle, actionButton = _a.actionButton, contentClassName = _a.contentClassName, containerClassName = _a.containerClassName, containerProps = _a.containerProps, headerClassName = _a.headerClassName, footerClassName = _a.footerClassName, addonClassName = _a.addonClassName, closerClassName = _a.closerClassName, backerClassName = _a.backerClassName, modalClassName = _a.modalClassName, modalWrapperClassName = _a.modalWrapperClassName, className = _a.className, leftAddons = _a.leftAddons, rightAddons = _a.rightAddons, bottomAddons = _a.bottomAddons, hasCloser = _a.hasCloser, hasBacker = _a.hasBacker, _k = _a.titleAlign, titleAlign = _k === void 0 ? 'left' : _k, trimTitle = _a.trimTitle, stickyHeader = _a.stickyHeader, _l = _a.stickyFooter, stickyFooter = _l === void 0 ? true : _l, _m = _a.initialHeight, initialHeight = _m === void 0 ? 'default' : _m, hideOverlay = _a.hideOverlay, hideScrollbar = _a.hideScrollbar, hideHeader = _a.hideHeader, disableOverlayClick = _a.disableOverlayClick, disableBlockingScroll = _a.disableBlockingScroll, disableFocusLock = _a.disableFocusLock, children = _a.children, zIndex = _a.zIndex, _o = _a.transitionProps, transitionProps = _o === void 0 ? {} : _o, magneticAreasProp = _a.magneticAreas, initialActiveAreaIndex = _a.initialActiveAreaIndex, dataTestId = _a.dataTestId, _p = _a.swipeable, swipeable = _p === void 0 ? true : _p, _q = _a.swipeableContent, swipeableContent = _q === void 0 ? true : _q, _r = _a.swipeThreshold, swipeThreshold = _r === void 0 ? 5 : _r, scrollLockedProp = _a.scrollLocked, backdropProps = _a.backdropProps, _s = _a.scrollableContainerRef, scrollableContainerRef = _s === void 0 ? function () { return null; } : _s, bottomSheetInstanceRef = _a.bottomSheetInstanceRef, _t = _a.sheetContainerRef, sheetContainerRef = _t === void 0 ? function () { return null; } : _t, _u = _a.headerOffset, headerOffset = _u === void 0 ? 24 : _u, onClose = _a.onClose, onBack = _a.onBack, onMagnetize = _a.onMagnetize, onSwipeStart = _a.onSwipeStart, onSwipeEnd = _a.onSwipeEnd, disableRestoreFocus = _a.disableRestoreFocus, disableAutoFocus = _a.disableAutoFocus, disableEscapeKeyDown = _a.disableEscapeKeyDown, keepMounted = _a.keepMounted, onMagnetizeEnd = _a.onMagnetizeEnd, onOffsetChange = _a.onOffsetChange, swipeableMarker = _a.swipeableMarker, swipeableMarkerClassName = _a.swipeableMarkerClassName, backButtonProps = _a.backButtonProps, _v = _a.iOSLock, iOSLock = _v === void 0 ? false : _v, _w = _a.virtualKeyboard, virtualKeyboard = _w === void 0 ? false : _w;
27
+ var windowHeight = (_g = use100vh()) !== null && _g !== void 0 ? _g : 0;
28
+ var visibleViewportSize = useVisibleViewportSize(virtualKeyboard);
29
+ var fullHeight = virtualKeyboard ? (_h = visibleViewportSize === null || visibleViewportSize === void 0 ? void 0 : visibleViewportSize.height) !== null && _h !== void 0 ? _h : 0 : windowHeight;
26
30
  // Хук use100vh рассчитывает высоту вьюпорта в useEffect, поэтому на первый рендер всегда возвращает null.
27
31
  var isFirstRender = fullHeight === 0;
28
32
  var initialIndexRef = useRef(initialActiveAreaIndex);
@@ -36,14 +40,14 @@ var BottomSheet = forwardRef(function (_a, ref) {
36
40
  var iOSViewHeight = isClient()
37
41
  ? ((_a = document === null || document === void 0 ? void 0 : document.documentElement) === null || _a === void 0 ? void 0 : _a.clientHeight) || (window === null || window === void 0 ? void 0 : window.innerHeight)
38
42
  : 0;
39
- var viewHeight = os.isIOS() ? iOSViewHeight : fullHeight;
43
+ var viewHeight = os.isIOS() && !virtualKeyboard ? iOSViewHeight : fullHeight;
40
44
  return [0, viewHeight - headerOffset];
41
- }, [fullHeight, headerOffset, magneticAreasProp]);
45
+ }, [fullHeight, headerOffset, magneticAreasProp, virtualKeyboard]);
42
46
  var lastMagneticArea = magneticAreas[magneticAreas.length - 1];
43
- var _u = useState(0), sheetOffset = _u[0], setSheetOffset = _u[1];
44
- var _v = useState(1), backdropOpacity = _v[0], setBackdropOpacity = _v[1];
45
- var _w = useState(-1), activeAreaIdx = _w[0], setActiveAreaIdx = _w[1];
46
- var _x = useState(null), swipingInProgress = _x[0], setSwipingInProgress = _x[1];
47
+ var _x = useState(0), sheetOffset = _x[0], setSheetOffset = _x[1];
48
+ var _y = useState(1), backdropOpacity = _y[0], setBackdropOpacity = _y[1];
49
+ var _z = useState(-1), activeAreaIdx = _z[0], setActiveAreaIdx = _z[1];
50
+ var _0 = useState(null), swipingInProgress = _0[0], setSwipingInProgress = _0[1];
47
51
  var scrollOccurred = useRef(false);
48
52
  var headerRef = useRef(null);
49
53
  var contentRef = useRef(null);
@@ -346,6 +350,9 @@ var BottomSheet = forwardRef(function (_a, ref) {
346
350
  ? "".concat(lastMagneticArea, "px")
347
351
  : 'unset',
348
352
  maxHeight: isFirstRender ? 0 : "".concat(lastMagneticArea, "px"),
353
+ marginBottom: virtualKeyboard && visibleViewportSize && windowHeight > visibleViewportSize.height
354
+ ? windowHeight - visibleViewportSize.height - visibleViewportSize.offsetTop
355
+ : undefined,
349
356
  }); };
350
357
  var renderMarker = function () {
351
358
  if (swipeable) {
@@ -0,0 +1 @@
1
+ export { useVisibleViewportSize } from "./use-visualviewport-size";
@@ -0,0 +1,3 @@
1
+ export { useVisibleViewportSize } from './use-visualviewport-size.js';
2
+ import 'react';
3
+ import '../../../shared/esm';
@@ -0,0 +1,3 @@
1
+ type VisualViewportSize = Pick<VisualViewport, 'height' | 'offsetTop'>;
2
+ declare function useVisibleViewportSize(enabled?: boolean): VisualViewportSize | null;
3
+ export { useVisibleViewportSize };
@@ -0,0 +1,32 @@
1
+ import { useState, useEffect } from 'react';
2
+ import { isClient, fnUtils } from '../../../shared/esm';
3
+
4
+ var measureVisualViewport = function (visualViewport) {
5
+ if (!visualViewport)
6
+ return null;
7
+ var height = visualViewport.height, offsetTop = visualViewport.offsetTop;
8
+ return { height: height, offsetTop: offsetTop };
9
+ };
10
+ function useVisibleViewportSize(enabled) {
11
+ if (enabled === void 0) { enabled = false; }
12
+ var _a = useState(function () {
13
+ return isClient() ? measureVisualViewport(window.visualViewport) : null;
14
+ }), size = _a[0], setSize = _a[1];
15
+ useEffect(function () {
16
+ var visualViewport = window.visualViewport;
17
+ if (!isClient() || !enabled || !visualViewport)
18
+ return fnUtils.noop;
19
+ var listener = function (event) {
20
+ return setSize(measureVisualViewport(event.target));
21
+ };
22
+ visualViewport.addEventListener('resize', listener);
23
+ visualViewport.addEventListener('scroll', listener);
24
+ return function () {
25
+ visualViewport.removeEventListener('resize', listener);
26
+ visualViewport.removeEventListener('scroll', listener);
27
+ };
28
+ }, [enabled]);
29
+ return size;
30
+ }
31
+
32
+ export { useVisibleViewportSize };
@@ -15,3 +15,4 @@ import './components/swipeable-backdrop/Component.js';
15
15
  import '../../backdrop/esm';
16
16
  import './consts/swipeConsts.js';
17
17
  import './enums/swipeEnums.js';
18
+ import './hooks/use-visualviewport-size.js';
@@ -281,5 +281,9 @@ type BottomSheetProps = {
281
281
  * Блокирует скролл когда модальное окно открыто. Работает только на iOS
282
282
  */
283
283
  iOSLock?: boolean;
284
+ /**
285
+ * Учитывать высоту виртуальной клавиатуры
286
+ */
287
+ virtualKeyboard?: boolean;
284
288
  };
285
289
  export { BottomSheetTitleAlign, BottomSheetProps };
@@ -0,0 +1 @@
1
+ export { useVisibleViewportSize } from "./use-visualviewport-size";
@@ -0,0 +1,7 @@
1
+ Object.defineProperty(exports, '__esModule', { value: true });
2
+
3
+ var hooks_useVisualviewportSize = require('./use-visualviewport-size.js');
4
+
5
+
6
+
7
+ exports.useVisibleViewportSize = hooks_useVisualviewportSize.useVisibleViewportSize;
@@ -0,0 +1,3 @@
1
+ type VisualViewportSize = Pick<VisualViewport, 'height' | 'offsetTop'>;
2
+ declare function useVisibleViewportSize(enabled?: boolean): VisualViewportSize | null;
3
+ export { useVisibleViewportSize };
@@ -0,0 +1,34 @@
1
+ Object.defineProperty(exports, '__esModule', { value: true });
2
+
3
+ var React = require('react');
4
+ var coreComponentsShared = require('../../shared');
5
+
6
+ var measureVisualViewport = function (visualViewport) {
7
+ if (!visualViewport)
8
+ return null;
9
+ var height = visualViewport.height, offsetTop = visualViewport.offsetTop;
10
+ return { height: height, offsetTop: offsetTop };
11
+ };
12
+ function useVisibleViewportSize(enabled) {
13
+ if (enabled === void 0) { enabled = false; }
14
+ var _a = React.useState(function () {
15
+ return coreComponentsShared.isClient() ? measureVisualViewport(window.visualViewport) : null;
16
+ }), size = _a[0], setSize = _a[1];
17
+ React.useEffect(function () {
18
+ var visualViewport = window.visualViewport;
19
+ if (!coreComponentsShared.isClient() || !enabled || !visualViewport)
20
+ return coreComponentsShared.fnUtils.noop;
21
+ var listener = function (event) {
22
+ return setSize(measureVisualViewport(event.target));
23
+ };
24
+ visualViewport.addEventListener('resize', listener);
25
+ visualViewport.addEventListener('scroll', listener);
26
+ return function () {
27
+ visualViewport.removeEventListener('resize', listener);
28
+ visualViewport.removeEventListener('scroll', listener);
29
+ };
30
+ }, [enabled]);
31
+ return size;
32
+ }
33
+
34
+ exports.useVisibleViewportSize = useVisibleViewportSize;
@@ -9,6 +9,7 @@ import { Footer } from './components/footer/Component.js';
9
9
  import { Header } from './components/header/Component.js';
10
10
  import { SwipeableBackdrop } from './components/swipeable-backdrop/Component.js';
11
11
  import { horizontalDirections } from './consts/swipeConsts.js';
12
+ import { useVisibleViewportSize } from './hooks/use-visualviewport-size.js';
12
13
  import { convertPercentToNumber, TIMEOUT, MARKER_HEIGHT, SCROLL_OFFSET, SWIPE_VELOCITY, CLOSE_OFFSET } from './utils.js';
13
14
  import '../../navigation-bar-private/modern';
14
15
  import '../../backdrop/modern';
@@ -18,8 +19,10 @@ const styles = {"modal":"bottom-sheet__modal_90r42","wrapper":"bottom-sheet__wra
18
19
  require('./index.css');
19
20
 
20
21
  const { isNil } = fnUtils;
21
- const BottomSheet = forwardRef(({ open, title, container, usePortal, backgroundColor, titleSize = 'default', subtitle, actionButton, contentClassName, containerClassName, containerProps, headerClassName, footerClassName, addonClassName, closerClassName, backerClassName, modalClassName, modalWrapperClassName, className, leftAddons, rightAddons, bottomAddons, hasCloser, hasBacker, titleAlign = 'left', trimTitle, stickyHeader, stickyFooter = true, initialHeight = 'default', hideOverlay, hideScrollbar, hideHeader, disableOverlayClick, disableBlockingScroll, disableFocusLock, children, zIndex, transitionProps = {}, magneticAreas: magneticAreasProp, initialActiveAreaIndex, dataTestId, swipeable = true, swipeableContent = true, swipeThreshold = 5, scrollLocked: scrollLockedProp, backdropProps, scrollableContainerRef = () => null, bottomSheetInstanceRef, sheetContainerRef = () => null, headerOffset = 24, onClose, onBack, onMagnetize, onSwipeStart, onSwipeEnd, disableRestoreFocus, disableAutoFocus, disableEscapeKeyDown, keepMounted, onMagnetizeEnd, onOffsetChange, swipeableMarker, swipeableMarkerClassName, backButtonProps, iOSLock = false, }, ref) => {
22
- const fullHeight = use100vh() || 0;
22
+ const BottomSheet = forwardRef(({ open, title, container, usePortal, backgroundColor, titleSize = 'default', subtitle, actionButton, contentClassName, containerClassName, containerProps, headerClassName, footerClassName, addonClassName, closerClassName, backerClassName, modalClassName, modalWrapperClassName, className, leftAddons, rightAddons, bottomAddons, hasCloser, hasBacker, titleAlign = 'left', trimTitle, stickyHeader, stickyFooter = true, initialHeight = 'default', hideOverlay, hideScrollbar, hideHeader, disableOverlayClick, disableBlockingScroll, disableFocusLock, children, zIndex, transitionProps = {}, magneticAreas: magneticAreasProp, initialActiveAreaIndex, dataTestId, swipeable = true, swipeableContent = true, swipeThreshold = 5, scrollLocked: scrollLockedProp, backdropProps, scrollableContainerRef = () => null, bottomSheetInstanceRef, sheetContainerRef = () => null, headerOffset = 24, onClose, onBack, onMagnetize, onSwipeStart, onSwipeEnd, disableRestoreFocus, disableAutoFocus, disableEscapeKeyDown, keepMounted, onMagnetizeEnd, onOffsetChange, swipeableMarker, swipeableMarkerClassName, backButtonProps, iOSLock = false, virtualKeyboard = false, }, ref) => {
23
+ const windowHeight = use100vh() ?? 0;
24
+ const visibleViewportSize = useVisibleViewportSize(virtualKeyboard);
25
+ const fullHeight = virtualKeyboard ? visibleViewportSize?.height ?? 0 : windowHeight;
23
26
  // Хук use100vh рассчитывает высоту вьюпорта в useEffect, поэтому на первый рендер всегда возвращает null.
24
27
  const isFirstRender = fullHeight === 0;
25
28
  const initialIndexRef = useRef(initialActiveAreaIndex);
@@ -30,9 +33,9 @@ const BottomSheet = forwardRef(({ open, title, container, usePortal, backgroundC
30
33
  const iOSViewHeight = isClient()
31
34
  ? document?.documentElement?.clientHeight || window?.innerHeight
32
35
  : 0;
33
- const viewHeight = os.isIOS() ? iOSViewHeight : fullHeight;
36
+ const viewHeight = os.isIOS() && !virtualKeyboard ? iOSViewHeight : fullHeight;
34
37
  return [0, viewHeight - headerOffset];
35
- }, [fullHeight, headerOffset, magneticAreasProp]);
38
+ }, [fullHeight, headerOffset, magneticAreasProp, virtualKeyboard]);
36
39
  const lastMagneticArea = magneticAreas[magneticAreas.length - 1];
37
40
  const [sheetOffset, setSheetOffset] = useState(0);
38
41
  const [backdropOpacity, setBackdropOpacity] = useState(1);
@@ -356,6 +359,9 @@ const BottomSheet = forwardRef(({ open, title, container, usePortal, backgroundC
356
359
  ? `${lastMagneticArea}px`
357
360
  : 'unset',
358
361
  maxHeight: isFirstRender ? 0 : `${lastMagneticArea}px`,
362
+ marginBottom: virtualKeyboard && visibleViewportSize && windowHeight > visibleViewportSize.height
363
+ ? windowHeight - visibleViewportSize.height - visibleViewportSize.offsetTop
364
+ : undefined,
359
365
  });
360
366
  const renderMarker = () => {
361
367
  if (swipeable) {
@@ -0,0 +1 @@
1
+ export { useVisibleViewportSize } from "./use-visualviewport-size";
@@ -0,0 +1,3 @@
1
+ export { useVisibleViewportSize } from './use-visualviewport-size.js';
2
+ import 'react';
3
+ import '../../../shared/modern';
@@ -0,0 +1,3 @@
1
+ type VisualViewportSize = Pick<VisualViewport, 'height' | 'offsetTop'>;
2
+ declare function useVisibleViewportSize(enabled?: boolean): VisualViewportSize | null;
3
+ export { useVisibleViewportSize };
@@ -0,0 +1,27 @@
1
+ import { useState, useEffect } from 'react';
2
+ import { isClient, fnUtils } from '../../../shared/modern';
3
+
4
+ const measureVisualViewport = (visualViewport) => {
5
+ if (!visualViewport)
6
+ return null;
7
+ const { height, offsetTop } = visualViewport;
8
+ return { height, offsetTop };
9
+ };
10
+ function useVisibleViewportSize(enabled = false) {
11
+ const [size, setSize] = useState(() => isClient() ? measureVisualViewport(window.visualViewport) : null);
12
+ useEffect(() => {
13
+ const { visualViewport } = window;
14
+ if (!isClient() || !enabled || !visualViewport)
15
+ return fnUtils.noop;
16
+ const listener = (event) => setSize(measureVisualViewport(event.target));
17
+ visualViewport.addEventListener('resize', listener);
18
+ visualViewport.addEventListener('scroll', listener);
19
+ return () => {
20
+ visualViewport.removeEventListener('resize', listener);
21
+ visualViewport.removeEventListener('scroll', listener);
22
+ };
23
+ }, [enabled]);
24
+ return size;
25
+ }
26
+
27
+ export { useVisibleViewportSize };
@@ -14,3 +14,4 @@ import './components/swipeable-backdrop/Component.js';
14
14
  import '../../backdrop/modern';
15
15
  import './consts/swipeConsts.js';
16
16
  import './enums/swipeEnums.js';
17
+ import './hooks/use-visualviewport-size.js';
@@ -281,5 +281,9 @@ type BottomSheetProps = {
281
281
  * Блокирует скролл когда модальное окно открыто. Работает только на iOS
282
282
  */
283
283
  iOSLock?: boolean;
284
+ /**
285
+ * Учитывать высоту виртуальной клавиатуры
286
+ */
287
+ virtualKeyboard?: boolean;
284
288
  };
285
289
  export { BottomSheetTitleAlign, BottomSheetProps };
@@ -281,5 +281,9 @@ type BottomSheetProps = {
281
281
  * Блокирует скролл когда модальное окно открыто. Работает только на iOS
282
282
  */
283
283
  iOSLock?: boolean;
284
+ /**
285
+ * Учитывать высоту виртуальной клавиатуры
286
+ */
287
+ virtualKeyboard?: boolean;
284
288
  };
285
289
  export { BottomSheetTitleAlign, BottomSheetProps };
@@ -8,6 +8,10 @@ type ResponsiveCalendarProps = CalendarDesktopProps & CalendarMobileProps & {
8
8
  * @default 1024
9
9
  */
10
10
  breakpoint?: number;
11
+ /**
12
+ * Значение по-умолчанию для хука useMatchMedia
13
+ */
14
+ defaultMatchMediaValue?: boolean | (() => boolean);
11
15
  };
12
16
  declare const CalendarResponsive: React.ForwardRefExoticComponent<CalendarDesktopProps & {
13
17
  title?: string | undefined;
@@ -26,5 +30,9 @@ declare const CalendarResponsive: React.ForwardRefExoticComponent<CalendarDeskto
26
30
  * @default 1024
27
31
  */
28
32
  breakpoint?: number | undefined;
33
+ /**
34
+ * Значение по-умолчанию для хука useMatchMedia
35
+ */
36
+ defaultMatchMediaValue?: boolean | (() => boolean) | undefined;
29
37
  } & React.RefAttributes<HTMLDivElement>>;
30
38
  export { ResponsiveCalendarProps, CalendarResponsive };
@@ -11,8 +11,8 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
11
11
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
12
12
 
13
13
  var CalendarResponsive = React.forwardRef(function (_a, ref) {
14
- var _b = _a.breakpoint, breakpoint = _b === void 0 ? 1024 : _b, restProps = tslib.__rest(_a, ["breakpoint"]);
15
- var isDesktop = coreComponentsMq.useMatchMedia("(min-width: ".concat(breakpoint, "px)"))[0];
14
+ var _b = _a.breakpoint, breakpoint = _b === void 0 ? 1024 : _b, defaultMatchMediaValue = _a.defaultMatchMediaValue, restProps = tslib.__rest(_a, ["breakpoint", "defaultMatchMediaValue"]);
15
+ var isDesktop = coreComponentsMq.useMatchMedia("(min-width: ".concat(breakpoint, "px)"), defaultMatchMediaValue)[0];
16
16
  return isDesktop ? (React__default.default.createElement(desktop_Component_desktop.CalendarDesktop, tslib.__assign({}, restProps, { ref: ref }))) : (React__default.default.createElement(components_calendarMobile_Component.CalendarMobile, tslib.__assign({}, restProps, { ref: ref })));
17
17
  });
18
18
  CalendarResponsive.displayName = 'CalendarResponsive';
@@ -8,6 +8,10 @@ type ResponsiveCalendarProps = CalendarDesktopProps & CalendarMobileProps & {
8
8
  * @default 1024
9
9
  */
10
10
  breakpoint?: number;
11
+ /**
12
+ * Значение по-умолчанию для хука useMatchMedia
13
+ */
14
+ defaultMatchMediaValue?: boolean | (() => boolean);
11
15
  };
12
16
  declare const CalendarResponsive: React.ForwardRefExoticComponent<CalendarDesktopProps & {
13
17
  title?: string | undefined;
@@ -26,5 +30,9 @@ declare const CalendarResponsive: React.ForwardRefExoticComponent<CalendarDeskto
26
30
  * @default 1024
27
31
  */
28
32
  breakpoint?: number | undefined;
33
+ /**
34
+ * Значение по-умолчанию для хука useMatchMedia
35
+ */
36
+ defaultMatchMediaValue?: boolean | (() => boolean) | undefined;
29
37
  } & React.RefAttributes<HTMLDivElement>>;
30
38
  export { ResponsiveCalendarProps, CalendarResponsive };
@@ -11,8 +11,8 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
11
11
  var React__default = /*#__PURE__*/_interopDefaultCompat(React);
12
12
 
13
13
  var CalendarResponsive = React.forwardRef(function (_a, ref) {
14
- var _b = _a.breakpoint, breakpoint = _b === void 0 ? 1024 : _b, restProps = tslib.__rest(_a, ["breakpoint"]);
15
- var isDesktop = coreComponentsMq.useMatchMedia("(min-width: ".concat(breakpoint, "px)"))[0];
14
+ var _b = _a.breakpoint, breakpoint = _b === void 0 ? 1024 : _b, defaultMatchMediaValue = _a.defaultMatchMediaValue, restProps = tslib.__rest(_a, ["breakpoint", "defaultMatchMediaValue"]);
15
+ var isDesktop = coreComponentsMq.useMatchMedia("(min-width: ".concat(breakpoint, "px)"), defaultMatchMediaValue)[0];
16
16
  return isDesktop ? (React__default.default.createElement(desktop_Component_desktop.CalendarDesktop, tslib.__assign({}, restProps, { ref: ref }))) : (React__default.default.createElement(components_calendarMobile_Component.CalendarMobile, tslib.__assign({}, restProps, { ref: ref })));
17
17
  });
18
18
  CalendarResponsive.displayName = 'CalendarResponsive';
@@ -8,6 +8,10 @@ type ResponsiveCalendarProps = CalendarDesktopProps & CalendarMobileProps & {
8
8
  * @default 1024
9
9
  */
10
10
  breakpoint?: number;
11
+ /**
12
+ * Значение по-умолчанию для хука useMatchMedia
13
+ */
14
+ defaultMatchMediaValue?: boolean | (() => boolean);
11
15
  };
12
16
  declare const CalendarResponsive: React.ForwardRefExoticComponent<CalendarDesktopProps & {
13
17
  title?: string | undefined;
@@ -26,5 +30,9 @@ declare const CalendarResponsive: React.ForwardRefExoticComponent<CalendarDeskto
26
30
  * @default 1024
27
31
  */
28
32
  breakpoint?: number | undefined;
33
+ /**
34
+ * Значение по-умолчанию для хука useMatchMedia
35
+ */
36
+ defaultMatchMediaValue?: boolean | (() => boolean) | undefined;
29
37
  } & React.RefAttributes<HTMLDivElement>>;
30
38
  export { ResponsiveCalendarProps, CalendarResponsive };
@@ -72,8 +72,8 @@ import './components/years-table/Component.js';
72
72
  import 'date-fns/isThisYear';
73
73
 
74
74
  var CalendarResponsive = forwardRef(function (_a, ref) {
75
- var _b = _a.breakpoint, breakpoint = _b === void 0 ? 1024 : _b, restProps = __rest(_a, ["breakpoint"]);
76
- var isDesktop = useMatchMedia("(min-width: ".concat(breakpoint, "px)"))[0];
75
+ var _b = _a.breakpoint, breakpoint = _b === void 0 ? 1024 : _b, defaultMatchMediaValue = _a.defaultMatchMediaValue, restProps = __rest(_a, ["breakpoint", "defaultMatchMediaValue"]);
76
+ var isDesktop = useMatchMedia("(min-width: ".concat(breakpoint, "px)"), defaultMatchMediaValue)[0];
77
77
  return isDesktop ? (React.createElement(CalendarDesktop, __assign({}, restProps, { ref: ref }))) : (React.createElement(CalendarMobile, __assign({}, restProps, { ref: ref })));
78
78
  });
79
79
  CalendarResponsive.displayName = 'CalendarResponsive';
@@ -8,6 +8,10 @@ type ResponsiveCalendarProps = CalendarDesktopProps & CalendarMobileProps & {
8
8
  * @default 1024
9
9
  */
10
10
  breakpoint?: number;
11
+ /**
12
+ * Значение по-умолчанию для хука useMatchMedia
13
+ */
14
+ defaultMatchMediaValue?: boolean | (() => boolean);
11
15
  };
12
16
  declare const CalendarResponsive: React.ForwardRefExoticComponent<CalendarDesktopProps & {
13
17
  title?: string | undefined;
@@ -26,5 +30,9 @@ declare const CalendarResponsive: React.ForwardRefExoticComponent<CalendarDeskto
26
30
  * @default 1024
27
31
  */
28
32
  breakpoint?: number | undefined;
33
+ /**
34
+ * Значение по-умолчанию для хука useMatchMedia
35
+ */
36
+ defaultMatchMediaValue?: boolean | (() => boolean) | undefined;
29
37
  } & React.RefAttributes<HTMLDivElement>>;
30
38
  export { ResponsiveCalendarProps, CalendarResponsive };