@alfalab/core-components 45.8.0-beta.3 → 45.8.0-beta.4

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 (493) hide show
  1. package/base-modal/Component.d.ts +4 -0
  2. package/base-modal/Component.js +19 -11
  3. package/base-modal/cssm/Component.d.ts +4 -0
  4. package/base-modal/cssm/Component.js +19 -11
  5. package/base-modal/cssm/helpers/lockScroll.d.ts +4 -0
  6. package/base-modal/cssm/helpers/lockScroll.js +18 -0
  7. package/base-modal/cssm/index.module.css +6 -1
  8. package/base-modal/cssm/utils.d.ts +1 -1
  9. package/base-modal/cssm/utils.js +5 -2
  10. package/base-modal/esm/Component.d.ts +4 -0
  11. package/base-modal/esm/Component.js +20 -12
  12. package/base-modal/esm/helpers/lockScroll.d.ts +4 -0
  13. package/base-modal/esm/helpers/lockScroll.js +14 -0
  14. package/base-modal/esm/index.css +6 -1
  15. package/base-modal/esm/index.js +1 -0
  16. package/base-modal/esm/utils.d.ts +1 -1
  17. package/base-modal/esm/utils.js +5 -2
  18. package/base-modal/helpers/lockScroll.d.ts +4 -0
  19. package/base-modal/helpers/lockScroll.js +18 -0
  20. package/base-modal/index.css +6 -1
  21. package/base-modal/modern/Component.d.ts +4 -0
  22. package/base-modal/modern/Component.js +13 -5
  23. package/base-modal/modern/helpers/lockScroll.d.ts +4 -0
  24. package/base-modal/modern/helpers/lockScroll.js +14 -0
  25. package/base-modal/modern/index.css +6 -1
  26. package/base-modal/modern/index.js +1 -0
  27. package/base-modal/modern/utils.d.ts +1 -1
  28. package/base-modal/modern/utils.js +4 -2
  29. package/base-modal/utils.d.ts +1 -1
  30. package/base-modal/utils.js +5 -2
  31. package/calendar-range/esm/Component.js +1 -1
  32. package/calendar-range/esm/index.js +1 -1
  33. package/calendar-range/esm/views/popover.js +1 -1
  34. package/calendar-range/esm/views/static.js +1 -1
  35. package/calendar-range/modern/Component.js +1 -1
  36. package/calendar-range/modern/index.js +1 -1
  37. package/calendar-range/modern/views/popover.js +1 -1
  38. package/calendar-range/modern/views/static.js +1 -1
  39. package/calendar-range/utils.js +3 -1
  40. package/calendar-range/views/popover.js +1 -1
  41. package/calendar-range/views/static.js +1 -1
  42. package/dropzone/Component.d.ts +1 -1
  43. package/dropzone/Component.js +1 -1
  44. package/dropzone/cssm/Component.d.ts +1 -1
  45. package/dropzone/cssm/Component.js +1 -1
  46. package/dropzone/esm/Component.d.ts +1 -1
  47. package/dropzone/esm/Component.js +1 -1
  48. package/dropzone/modern/Component.d.ts +1 -1
  49. package/dropzone/modern/Component.js +1 -1
  50. package/gallery/components/header/Component.js +1 -1
  51. package/gallery/components/header/buttons.js +1 -1
  52. package/gallery/components/image-viewer/component.js +1 -1
  53. package/gallery/components/image-viewer/slide.js +1 -1
  54. package/gallery/esm/Component.js +2 -2
  55. package/gallery/esm/components/header/Component.js +1 -1
  56. package/gallery/esm/components/header/buttons.js +1 -1
  57. package/gallery/esm/components/header/index.js +1 -1
  58. package/gallery/esm/components/image-preview/Component.js +1 -1
  59. package/gallery/esm/components/image-preview/index.js +1 -1
  60. package/gallery/esm/components/image-viewer/component.js +1 -1
  61. package/gallery/esm/components/image-viewer/index.js +1 -1
  62. package/gallery/esm/components/image-viewer/slide.js +1 -1
  63. package/gallery/esm/components/index.js +2 -2
  64. package/gallery/esm/components/navigation-bar/Component.js +1 -1
  65. package/gallery/esm/components/navigation-bar/index.js +1 -1
  66. package/gallery/esm/index.js +2 -2
  67. package/gallery/modern/Component.js +2 -2
  68. package/gallery/modern/components/header/Component.js +1 -1
  69. package/gallery/modern/components/header/buttons.js +1 -1
  70. package/gallery/modern/components/header/index.js +1 -1
  71. package/gallery/modern/components/image-preview/Component.js +1 -1
  72. package/gallery/modern/components/image-preview/index.js +1 -1
  73. package/gallery/modern/components/image-viewer/component.js +1 -1
  74. package/gallery/modern/components/image-viewer/index.js +1 -1
  75. package/gallery/modern/components/image-viewer/slide.js +1 -1
  76. package/gallery/modern/components/index.js +2 -2
  77. package/gallery/modern/components/navigation-bar/Component.js +1 -1
  78. package/gallery/modern/components/navigation-bar/index.js +1 -1
  79. package/gallery/modern/index.js +2 -2
  80. package/international-phone-input/Component-bdb4c6b9.d.ts +2 -1
  81. package/international-phone-input/{ResponsiveContext-88b743b5.d.ts → ResponsiveContext-d6bfd5b7.d.ts} +1 -1
  82. package/international-phone-input/cssm/Component-bdb4c6b9.d.ts +2 -1
  83. package/international-phone-input/cssm/{ResponsiveContext-88b743b5.d.ts → ResponsiveContext-d6bfd5b7.d.ts} +1 -1
  84. package/international-phone-input/cssm/index-bdb4c6b9.d.ts +9 -2
  85. package/international-phone-input/cssm/typings-57569e57.d.ts +6 -5
  86. package/international-phone-input/{esm/typings-88b743b5.d.ts → cssm/typings-d6bfd5b7.d.ts} +4 -0
  87. package/international-phone-input/cssm/use-skeleton-1328ead9.d.ts +0 -4
  88. package/international-phone-input/esm/Component-bdb4c6b9.d.ts +2 -1
  89. package/international-phone-input/esm/{ResponsiveContext-88b743b5.d.ts → ResponsiveContext-d6bfd5b7.d.ts} +1 -1
  90. package/international-phone-input/esm/index-bdb4c6b9.d.ts +9 -2
  91. package/international-phone-input/esm/typings-57569e57.d.ts +6 -5
  92. package/international-phone-input/{typings-88b743b5.d.ts → esm/typings-d6bfd5b7.d.ts} +4 -0
  93. package/international-phone-input/esm/use-skeleton-1328ead9.d.ts +0 -4
  94. package/international-phone-input/index-bdb4c6b9.d.ts +9 -2
  95. package/international-phone-input/modern/Component-bdb4c6b9.d.ts +2 -1
  96. package/international-phone-input/modern/{ResponsiveContext-88b743b5.d.ts → ResponsiveContext-d6bfd5b7.d.ts} +1 -1
  97. package/international-phone-input/modern/index-bdb4c6b9.d.ts +9 -2
  98. package/international-phone-input/modern/typings-57569e57.d.ts +6 -5
  99. package/international-phone-input/{cssm/typings-88b743b5.d.ts → modern/typings-d6bfd5b7.d.ts} +4 -0
  100. package/international-phone-input/modern/use-skeleton-1328ead9.d.ts +0 -4
  101. package/international-phone-input/typings-57569e57.d.ts +6 -5
  102. package/international-phone-input/{modern/typings-88b743b5.d.ts → typings-d6bfd5b7.d.ts} +4 -0
  103. package/international-phone-input/use-skeleton-1328ead9.d.ts +0 -4
  104. package/modal/Component.d.ts +1 -0
  105. package/modal/Component.responsive.d.ts +1 -0
  106. package/modal/components/controls/Component.js +1 -1
  107. package/modal/components/footer/Component.js +1 -1
  108. package/modal/cssm/Component.d.ts +1 -0
  109. package/modal/cssm/Component.responsive.d.ts +1 -0
  110. package/modal/cssm/desktop/Component.desktop.d.ts +1 -0
  111. package/modal/cssm/typings.d.ts +4 -0
  112. package/modal/desktop/Component.desktop.d.ts +1 -0
  113. package/modal/esm/Component.d.ts +1 -0
  114. package/modal/esm/Component.responsive.d.ts +1 -0
  115. package/modal/esm/Component.responsive.js +1 -1
  116. package/modal/esm/components/controls/Component.js +1 -1
  117. package/modal/esm/components/controls/index.js +1 -1
  118. package/modal/esm/components/footer/Component.js +1 -1
  119. package/modal/esm/desktop/Component.desktop.d.ts +1 -0
  120. package/modal/esm/desktop/Component.desktop.js +1 -1
  121. package/modal/esm/desktop/index.js +1 -1
  122. package/modal/esm/index.js +1 -1
  123. package/modal/esm/mobile/Component.mobile.js +1 -1
  124. package/modal/esm/mobile/index.js +1 -1
  125. package/modal/esm/typings.d.ts +4 -0
  126. package/modal/modern/Component.d.ts +1 -0
  127. package/modal/modern/Component.responsive.d.ts +1 -0
  128. package/modal/modern/Component.responsive.js +1 -1
  129. package/modal/modern/components/controls/Component.js +1 -1
  130. package/modal/modern/components/controls/index.js +1 -1
  131. package/modal/modern/components/footer/Component.js +1 -1
  132. package/modal/modern/desktop/Component.desktop.d.ts +1 -0
  133. package/modal/modern/desktop/Component.desktop.js +1 -1
  134. package/modal/modern/desktop/index.js +1 -1
  135. package/modal/modern/index.js +1 -1
  136. package/modal/modern/mobile/Component.mobile.js +1 -1
  137. package/modal/modern/mobile/index.js +1 -1
  138. package/modal/modern/typings.d.ts +4 -0
  139. package/modal/typings.d.ts +4 -0
  140. package/package.json +1 -1
  141. package/picker-button/Component-bdb4c6b9.d.ts +2 -1
  142. package/picker-button/ResponsiveContext-d6bfd5b7.d.ts +5 -0
  143. package/picker-button/cssm/Component-bdb4c6b9.d.ts +2 -1
  144. package/picker-button/cssm/ResponsiveContext-d6bfd5b7.d.ts +5 -0
  145. package/picker-button/cssm/{index-307da6d7.d.ts → index-a5b021bd.d.ts} +1 -2
  146. package/picker-button/cssm/index-bdb4c6b9.d.ts +9 -2
  147. package/picker-button/cssm/typings-57569e57.d.ts +5 -4
  148. package/picker-button/cssm/typings-d6bfd5b7.d.ts +62 -0
  149. package/picker-button/cssm/use-skeleton-1328ead9.d.ts +0 -4
  150. package/picker-button/esm/Component-bdb4c6b9.d.ts +2 -1
  151. package/picker-button/esm/ResponsiveContext-d6bfd5b7.d.ts +5 -0
  152. package/picker-button/esm/{index-307da6d7.d.ts → index-a5b021bd.d.ts} +1 -2
  153. package/picker-button/esm/index-bdb4c6b9.d.ts +9 -2
  154. package/picker-button/esm/typings-57569e57.d.ts +5 -4
  155. package/picker-button/esm/typings-d6bfd5b7.d.ts +62 -0
  156. package/picker-button/esm/use-skeleton-1328ead9.d.ts +0 -4
  157. package/picker-button/{index-307da6d7.d.ts → index-a5b021bd.d.ts} +1 -2
  158. package/picker-button/index-bdb4c6b9.d.ts +9 -2
  159. package/picker-button/modern/Component-bdb4c6b9.d.ts +2 -1
  160. package/picker-button/modern/ResponsiveContext-d6bfd5b7.d.ts +5 -0
  161. package/picker-button/modern/{index-307da6d7.d.ts → index-a5b021bd.d.ts} +1 -2
  162. package/picker-button/modern/index-bdb4c6b9.d.ts +9 -2
  163. package/picker-button/modern/typings-57569e57.d.ts +5 -4
  164. package/picker-button/modern/typings-d6bfd5b7.d.ts +62 -0
  165. package/picker-button/modern/use-skeleton-1328ead9.d.ts +0 -4
  166. package/picker-button/typings-57569e57.d.ts +5 -4
  167. package/picker-button/typings-d6bfd5b7.d.ts +62 -0
  168. package/picker-button/use-skeleton-1328ead9.d.ts +0 -4
  169. package/select/esm/Component.responsive.js +1 -1
  170. package/select/esm/index.js +1 -1
  171. package/select/esm/mobile/Component.mobile.js +1 -1
  172. package/select/esm/mobile/Component.modal.mobile.js +1 -1
  173. package/select/esm/mobile/index.js +1 -1
  174. package/select/esm/presets/index.js +1 -1
  175. package/select/esm/presets/useSelectWithApply/hook.js +1 -1
  176. package/select/esm/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  177. package/select/esm/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  178. package/select/esm/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  179. package/select/esm/shared/index.js +1 -1
  180. package/select/mobile/Component.mobile.js +1 -1
  181. package/select/modern/Component.responsive.js +1 -1
  182. package/select/modern/index.js +1 -1
  183. package/select/modern/mobile/Component.mobile.js +1 -1
  184. package/select/modern/mobile/Component.modal.mobile.js +1 -1
  185. package/select/modern/mobile/index.js +1 -1
  186. package/select/modern/presets/index.js +1 -1
  187. package/select/modern/presets/useSelectWithApply/hook.js +1 -1
  188. package/select/modern/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  189. package/select/modern/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  190. package/select/modern/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  191. package/select/modern/shared/index.js +1 -1
  192. package/select/presets/index.js +1 -1
  193. package/select/presets/useSelectWithApply/hook.js +1 -1
  194. package/select/presets/useSelectWithApply/options-list-with-apply/Component.js +1 -1
  195. package/select/presets/useSelectWithApply/options-list-with-apply/index.d.ts +1 -1
  196. package/select/presets/useSelectWithApply/options-list-with-apply/index.js +1 -1
  197. package/select/shared/index.js +1 -1
  198. package/shared/cssm/index.d.ts +0 -1
  199. package/shared/cssm/index.js +0 -2
  200. package/shared/esm/index.d.ts +0 -1
  201. package/shared/esm/index.js +0 -1
  202. package/shared/index.d.ts +0 -1
  203. package/shared/index.js +0 -2
  204. package/shared/modern/index.d.ts +0 -1
  205. package/shared/modern/index.js +0 -1
  206. package/skeleton/Component.d.ts +0 -4
  207. package/skeleton/Component.js +3 -6
  208. package/skeleton/cssm/Component.d.ts +0 -4
  209. package/skeleton/cssm/Component.js +2 -5
  210. package/skeleton/cssm/index.module.css +42 -9
  211. package/skeleton/esm/Component.d.ts +0 -4
  212. package/skeleton/esm/Component.js +3 -6
  213. package/skeleton/esm/index.css +42 -9
  214. package/skeleton/index.css +42 -9
  215. package/skeleton/modern/Component.d.ts +0 -4
  216. package/skeleton/modern/Component.js +3 -6
  217. package/skeleton/modern/index.css +42 -9
  218. package/status-badge/Component.d.ts +3 -8
  219. package/status-badge/Component.js +73 -3
  220. package/status-badge/cssm/Component.d.ts +3 -8
  221. package/status-badge/cssm/Component.js +73 -3
  222. package/status-badge/cssm/index.d.ts +0 -1
  223. package/status-badge/esm/Component.d.ts +3 -8
  224. package/status-badge/esm/Component.js +73 -18
  225. package/status-badge/esm/index.d.ts +0 -1
  226. package/status-badge/esm/index.js +0 -3
  227. package/status-badge/index.d.ts +0 -1
  228. package/status-badge/modern/Component.d.ts +3 -8
  229. package/status-badge/modern/Component.js +73 -17
  230. package/status-badge/modern/index.d.ts +0 -1
  231. package/status-badge/modern/index.js +0 -2
  232. package/tab-bar/Component.js +3 -7
  233. package/tab-bar/components/tab/Component.js +5 -9
  234. package/tab-bar/components/tab/index.css +2 -5
  235. package/tab-bar/cssm/Component.js +2 -6
  236. package/tab-bar/cssm/components/tab/Component.js +4 -8
  237. package/tab-bar/cssm/components/tab/index.module.css +2 -5
  238. package/tab-bar/cssm/index.module.css +7 -9
  239. package/tab-bar/cssm/types.d.ts +3 -11
  240. package/tab-bar/esm/Component.js +4 -9
  241. package/tab-bar/esm/components/tab/Component.js +5 -9
  242. package/tab-bar/esm/components/tab/index.css +2 -5
  243. package/tab-bar/esm/components/tab/index.js +1 -2
  244. package/tab-bar/esm/index.css +7 -9
  245. package/tab-bar/esm/index.js +1 -2
  246. package/tab-bar/esm/types.d.ts +3 -11
  247. package/tab-bar/index.css +7 -9
  248. package/tab-bar/modern/Component.js +4 -9
  249. package/tab-bar/modern/components/tab/Component.js +5 -9
  250. package/tab-bar/modern/components/tab/index.css +2 -5
  251. package/tab-bar/modern/components/tab/index.js +1 -2
  252. package/tab-bar/modern/index.css +7 -9
  253. package/tab-bar/modern/index.js +1 -2
  254. package/tab-bar/modern/types.d.ts +3 -11
  255. package/tab-bar/types.d.ts +3 -11
  256. package/textarea/Component.js +1 -1
  257. package/textarea/components/PseudoTextArea.js +1 -1
  258. package/textarea/components/index.d.ts +1 -1
  259. package/textarea/components/index.js +1 -1
  260. package/textarea/esm/Component.js +1 -1
  261. package/textarea/esm/components/PseudoTextArea.js +1 -1
  262. package/textarea/esm/components/index.d.ts +1 -1
  263. package/textarea/esm/components/index.js +1 -1
  264. package/textarea/esm/index.js +1 -1
  265. package/textarea/modern/Component.js +1 -1
  266. package/textarea/modern/components/PseudoTextArea.js +1 -1
  267. package/textarea/modern/components/index.d.ts +1 -1
  268. package/textarea/modern/components/index.js +1 -1
  269. package/textarea/modern/index.js +1 -1
  270. package/themes/click.css +6 -0
  271. package/themes/compiled/mobile-dark-bluetint.css +75 -65
  272. package/themes/mixins/click.css +2 -0
  273. package/themes/mixins/skeleton/click.css +8 -0
  274. package/themes/skeleton/click.css +8 -0
  275. package/toast-plate/components/base-toast-plate/component.d.ts +12 -9
  276. package/toast-plate/components/base-toast-plate/component.js +14 -16
  277. package/toast-plate/cssm/components/base-toast-plate/component.d.ts +12 -9
  278. package/toast-plate/cssm/components/base-toast-plate/component.js +14 -16
  279. package/toast-plate/esm/Component.responsive.js +4 -6
  280. package/toast-plate/esm/components/base-toast-plate/component.d.ts +12 -9
  281. package/toast-plate/esm/components/base-toast-plate/component.js +14 -16
  282. package/toast-plate/esm/components/base-toast-plate/index.js +4 -6
  283. package/toast-plate/esm/desktop/Component.desktop.js +4 -6
  284. package/toast-plate/esm/desktop/index.js +4 -6
  285. package/toast-plate/esm/index.js +4 -6
  286. package/toast-plate/esm/mobile/Component.mobile.js +4 -6
  287. package/toast-plate/esm/mobile/index.js +4 -6
  288. package/toast-plate/modern/Component.responsive.js +4 -6
  289. package/toast-plate/modern/components/base-toast-plate/component.d.ts +12 -9
  290. package/toast-plate/modern/components/base-toast-plate/component.js +14 -16
  291. package/toast-plate/modern/components/base-toast-plate/index.js +4 -6
  292. package/toast-plate/modern/desktop/Component.desktop.js +4 -6
  293. package/toast-plate/modern/desktop/index.js +4 -6
  294. package/toast-plate/modern/index.js +4 -6
  295. package/toast-plate/modern/mobile/Component.mobile.js +4 -6
  296. package/toast-plate/modern/mobile/index.js +4 -6
  297. package/typography/esm/component.js +2 -2
  298. package/typography/esm/index.js +2 -2
  299. package/typography/esm/text/component.js +1 -1
  300. package/typography/esm/text/index.js +1 -1
  301. package/typography/esm/title/component.js +1 -1
  302. package/typography/esm/title/index.js +2 -2
  303. package/typography/esm/title-mobile/component.js +2 -2
  304. package/typography/esm/title-mobile/index.js +2 -2
  305. package/typography/esm/title-responsive/component.js +2 -2
  306. package/typography/esm/title-responsive/index.js +2 -2
  307. package/typography/modern/component.js +2 -2
  308. package/typography/modern/index.js +2 -2
  309. package/typography/modern/text/component.js +1 -1
  310. package/typography/modern/text/index.js +1 -1
  311. package/typography/modern/title/component.js +1 -1
  312. package/typography/modern/title/index.js +2 -2
  313. package/typography/modern/title-mobile/component.js +2 -2
  314. package/typography/modern/title-mobile/index.js +2 -2
  315. package/typography/modern/title-responsive/component.js +2 -2
  316. package/typography/modern/title-responsive/index.js +2 -2
  317. package/typography/text/component.js +1 -1
  318. package/typography/title/component.js +1 -1
  319. package/typography/title/index.js +1 -1
  320. package/typography/title-mobile/component.js +1 -1
  321. package/typography/title-responsive/component.js +1 -1
  322. package/universal-date-input/cssm/index-5712fce2.d.ts +13 -1
  323. package/universal-date-input/cssm/use-skeleton-1328ead9.d.ts +0 -4
  324. package/universal-date-input/esm/index-5712fce2.d.ts +13 -1
  325. package/universal-date-input/esm/use-skeleton-1328ead9.d.ts +0 -4
  326. package/universal-date-input/index-5712fce2.d.ts +13 -1
  327. package/universal-date-input/modern/index-5712fce2.d.ts +13 -1
  328. package/universal-date-input/modern/use-skeleton-1328ead9.d.ts +0 -4
  329. package/universal-date-input/use-skeleton-1328ead9.d.ts +0 -4
  330. package/notification/browser-a216f694.d.ts +0 -6
  331. package/notification/cssm/browser-a216f694.d.ts +0 -6
  332. package/notification/cssm/useCustomWebkitScrollbar-a216f694.d.ts +0 -2
  333. package/notification/cssm/utils/getNotificationTestIds.d.ts +0 -5
  334. package/notification/cssm/utils/getNotificationTestIds.js +0 -18
  335. package/notification/esm/browser-a216f694.d.ts +0 -6
  336. package/notification/esm/useCustomWebkitScrollbar-a216f694.d.ts +0 -2
  337. package/notification/esm/utils/getNotificationTestIds.d.ts +0 -5
  338. package/notification/esm/utils/getNotificationTestIds.js +0 -16
  339. package/notification/modern/browser-a216f694.d.ts +0 -6
  340. package/notification/modern/useCustomWebkitScrollbar-a216f694.d.ts +0 -2
  341. package/notification/modern/utils/getNotificationTestIds.d.ts +0 -5
  342. package/notification/modern/utils/getNotificationTestIds.js +0 -16
  343. package/notification/useCustomWebkitScrollbar-a216f694.d.ts +0 -2
  344. package/notification/utils/getNotificationTestIds.d.ts +0 -5
  345. package/notification/utils/getNotificationTestIds.js +0 -18
  346. package/picker-button/ResponsiveContext-88b743b5.d.ts +0 -5
  347. package/picker-button/cssm/ResponsiveContext-88b743b5.d.ts +0 -5
  348. package/picker-button/cssm/typings-88b743b5.d.ts +0 -58
  349. package/picker-button/esm/ResponsiveContext-88b743b5.d.ts +0 -5
  350. package/picker-button/esm/typings-88b743b5.d.ts +0 -58
  351. package/picker-button/modern/ResponsiveContext-88b743b5.d.ts +0 -5
  352. package/picker-button/modern/typings-88b743b5.d.ts +0 -58
  353. package/picker-button/typings-88b743b5.d.ts +0 -58
  354. package/shared/cssm/exhaustiveCheck.d.ts +0 -2
  355. package/shared/cssm/exhaustiveCheck.js +0 -5
  356. package/shared/esm/exhaustiveCheck.d.ts +0 -2
  357. package/shared/esm/exhaustiveCheck.js +0 -3
  358. package/shared/exhaustiveCheck.d.ts +0 -2
  359. package/shared/exhaustiveCheck.js +0 -5
  360. package/shared/modern/exhaustiveCheck.d.ts +0 -2
  361. package/shared/modern/exhaustiveCheck.js +0 -3
  362. package/status-badge/consts/iconMap.d.ts +0 -4
  363. package/status-badge/consts/iconMap.js +0 -76
  364. package/status-badge/cssm/consts/iconMap.d.ts +0 -4
  365. package/status-badge/cssm/consts/iconMap.js +0 -76
  366. package/status-badge/cssm/hooks/useStatusBadgeIcon.d.ts +0 -5
  367. package/status-badge/cssm/hooks/useStatusBadgeIcon.js +0 -21
  368. package/status-badge/cssm/types/statusBadgePropTypes.d.ts +0 -7
  369. package/status-badge/cssm/types/statusBadgePropTypes.js +0 -1
  370. package/status-badge/esm/consts/iconMap.d.ts +0 -4
  371. package/status-badge/esm/consts/iconMap.js +0 -74
  372. package/status-badge/esm/hooks/useStatusBadgeIcon.d.ts +0 -5
  373. package/status-badge/esm/hooks/useStatusBadgeIcon.js +0 -32
  374. package/status-badge/esm/types/statusBadgePropTypes.d.ts +0 -7
  375. package/status-badge/esm/types/statusBadgePropTypes.js +0 -1
  376. package/status-badge/hooks/useStatusBadgeIcon.d.ts +0 -5
  377. package/status-badge/hooks/useStatusBadgeIcon.js +0 -21
  378. package/status-badge/modern/consts/iconMap.d.ts +0 -4
  379. package/status-badge/modern/consts/iconMap.js +0 -74
  380. package/status-badge/modern/hooks/useStatusBadgeIcon.d.ts +0 -5
  381. package/status-badge/modern/hooks/useStatusBadgeIcon.js +0 -34
  382. package/status-badge/modern/types/statusBadgePropTypes.d.ts +0 -7
  383. package/status-badge/modern/types/statusBadgePropTypes.js +0 -1
  384. package/status-badge/types/statusBadgePropTypes.d.ts +0 -7
  385. package/status-badge/types/statusBadgePropTypes.js +0 -1
  386. package/tab-bar/consts.d.ts +0 -9
  387. package/tab-bar/consts.js +0 -13
  388. package/tab-bar/cssm/consts.d.ts +0 -9
  389. package/tab-bar/cssm/consts.js +0 -13
  390. package/tab-bar/esm/consts.d.ts +0 -9
  391. package/tab-bar/esm/consts.js +0 -10
  392. package/tab-bar/modern/consts.d.ts +0 -9
  393. package/tab-bar/modern/consts.js +0 -10
  394. package/toast-plate/browser-a216f694.d.ts +0 -6
  395. package/toast-plate/components/base-toast-plate/hooks/useCustomIcons.d.ts +0 -6
  396. package/toast-plate/components/base-toast-plate/hooks/useCustomIcons.js +0 -13
  397. package/toast-plate/components/base-toast-plate/hooks/useDeprecatedBadge.d.ts +0 -7
  398. package/toast-plate/components/base-toast-plate/hooks/useDeprecatedBadge.js +0 -26
  399. package/toast-plate/components/base-toast-plate/types/unsafeBadgeProps.d.ts +0 -6
  400. package/toast-plate/components/base-toast-plate/types/unsafeBadgeProps.js +0 -1
  401. package/toast-plate/components/base-toast-plate/utils/getBaseToastPlateTestIds.d.ts +0 -5
  402. package/toast-plate/components/base-toast-plate/utils/getBaseToastPlateTestIds.js +0 -14
  403. package/toast-plate/components/base-toast-plate/utils/isUnsafeBadge.d.ts +0 -5
  404. package/toast-plate/components/base-toast-plate/utils/isUnsafeBadge.js +0 -8
  405. package/toast-plate/cssm/browser-a216f694.d.ts +0 -6
  406. package/toast-plate/cssm/components/base-toast-plate/hooks/useCustomIcons.d.ts +0 -6
  407. package/toast-plate/cssm/components/base-toast-plate/hooks/useCustomIcons.js +0 -13
  408. package/toast-plate/cssm/components/base-toast-plate/hooks/useDeprecatedBadge.d.ts +0 -7
  409. package/toast-plate/cssm/components/base-toast-plate/hooks/useDeprecatedBadge.js +0 -26
  410. package/toast-plate/cssm/components/base-toast-plate/types/unsafeBadgeProps.d.ts +0 -6
  411. package/toast-plate/cssm/components/base-toast-plate/types/unsafeBadgeProps.js +0 -1
  412. package/toast-plate/cssm/components/base-toast-plate/utils/getBaseToastPlateTestIds.d.ts +0 -5
  413. package/toast-plate/cssm/components/base-toast-plate/utils/getBaseToastPlateTestIds.js +0 -14
  414. package/toast-plate/cssm/components/base-toast-plate/utils/isUnsafeBadge.d.ts +0 -5
  415. package/toast-plate/cssm/components/base-toast-plate/utils/isUnsafeBadge.js +0 -8
  416. package/toast-plate/cssm/getDataTestId-73ea38f8.d.ts +0 -3
  417. package/toast-plate/cssm/getDataTestId-73ea38f8.js +0 -6
  418. package/toast-plate/cssm/index-307da6d7.d.ts +0 -71
  419. package/toast-plate/cssm/useCustomWebkitScrollbar-a216f694.d.ts +0 -2
  420. package/toast-plate/esm/browser-a216f694.d.ts +0 -6
  421. package/toast-plate/esm/components/base-toast-plate/hooks/useCustomIcons.d.ts +0 -6
  422. package/toast-plate/esm/components/base-toast-plate/hooks/useCustomIcons.js +0 -11
  423. package/toast-plate/esm/components/base-toast-plate/hooks/useDeprecatedBadge.d.ts +0 -7
  424. package/toast-plate/esm/components/base-toast-plate/hooks/useDeprecatedBadge.js +0 -24
  425. package/toast-plate/esm/components/base-toast-plate/types/unsafeBadgeProps.d.ts +0 -6
  426. package/toast-plate/esm/components/base-toast-plate/types/unsafeBadgeProps.js +0 -1
  427. package/toast-plate/esm/components/base-toast-plate/utils/getBaseToastPlateTestIds.d.ts +0 -5
  428. package/toast-plate/esm/components/base-toast-plate/utils/getBaseToastPlateTestIds.js +0 -12
  429. package/toast-plate/esm/components/base-toast-plate/utils/isUnsafeBadge.d.ts +0 -5
  430. package/toast-plate/esm/components/base-toast-plate/utils/isUnsafeBadge.js +0 -6
  431. package/toast-plate/esm/getDataTestId-b3cf0f77.d.ts +0 -3
  432. package/toast-plate/esm/getDataTestId-b3cf0f77.js +0 -6
  433. package/toast-plate/esm/index-307da6d7.d.ts +0 -71
  434. package/toast-plate/esm/useCustomWebkitScrollbar-a216f694.d.ts +0 -2
  435. package/toast-plate/getDataTestId-439ac98c.d.ts +0 -3
  436. package/toast-plate/getDataTestId-439ac98c.js +0 -6
  437. package/toast-plate/index-307da6d7.d.ts +0 -71
  438. package/toast-plate/modern/browser-a216f694.d.ts +0 -6
  439. package/toast-plate/modern/components/base-toast-plate/hooks/useCustomIcons.d.ts +0 -6
  440. package/toast-plate/modern/components/base-toast-plate/hooks/useCustomIcons.js +0 -11
  441. package/toast-plate/modern/components/base-toast-plate/hooks/useDeprecatedBadge.d.ts +0 -7
  442. package/toast-plate/modern/components/base-toast-plate/hooks/useDeprecatedBadge.js +0 -24
  443. package/toast-plate/modern/components/base-toast-plate/types/unsafeBadgeProps.d.ts +0 -6
  444. package/toast-plate/modern/components/base-toast-plate/types/unsafeBadgeProps.js +0 -1
  445. package/toast-plate/modern/components/base-toast-plate/utils/getBaseToastPlateTestIds.d.ts +0 -5
  446. package/toast-plate/modern/components/base-toast-plate/utils/getBaseToastPlateTestIds.js +0 -12
  447. package/toast-plate/modern/components/base-toast-plate/utils/isUnsafeBadge.d.ts +0 -5
  448. package/toast-plate/modern/components/base-toast-plate/utils/isUnsafeBadge.js +0 -4
  449. package/toast-plate/modern/getDataTestId-8aa8ef85.d.ts +0 -3
  450. package/toast-plate/modern/getDataTestId-8aa8ef85.js +0 -6
  451. package/toast-plate/modern/index-307da6d7.d.ts +0 -71
  452. package/toast-plate/modern/useCustomWebkitScrollbar-a216f694.d.ts +0 -2
  453. package/toast-plate/useCustomWebkitScrollbar-a216f694.d.ts +0 -2
  454. /package/calendar-range/esm/{index.module-912e88cf.js → index.module-7ba85cb1.js} +0 -0
  455. /package/calendar-range/{index.module-bf0591f0.js → index.module-c6ded4a2.js} +0 -0
  456. /package/calendar-range/modern/{index.module-636e08a2.js → index.module-0604d154.js} +0 -0
  457. /package/gallery/{buttons-19c30d23.d.ts → buttons-2d6e11d3.d.ts} +0 -0
  458. /package/gallery/{buttons-19c30d23.js → buttons-2d6e11d3.js} +0 -0
  459. /package/gallery/esm/{buttons-37ed3ab5.d.ts → buttons-d13012b7.d.ts} +0 -0
  460. /package/gallery/esm/{buttons-37ed3ab5.js → buttons-d13012b7.js} +0 -0
  461. /package/gallery/esm/{slide-8d1299a5.d.ts → slide-88bae15c.d.ts} +0 -0
  462. /package/gallery/esm/{slide-8d1299a5.js → slide-88bae15c.js} +0 -0
  463. /package/gallery/modern/{buttons-92efe05c.d.ts → buttons-884f9ca9.d.ts} +0 -0
  464. /package/gallery/modern/{buttons-92efe05c.js → buttons-884f9ca9.js} +0 -0
  465. /package/gallery/modern/{slide-57aa7661.d.ts → slide-e59a9638.d.ts} +0 -0
  466. /package/gallery/modern/{slide-57aa7661.js → slide-e59a9638.js} +0 -0
  467. /package/gallery/{slide-45ca49f1.d.ts → slide-684c0f6f.d.ts} +0 -0
  468. /package/gallery/{slide-45ca49f1.js → slide-684c0f6f.js} +0 -0
  469. /package/modal/esm/{layout.module-b635b128.js → layout.module-aa5cb2cc.js} +0 -0
  470. /package/modal/{layout.module-34149103.js → layout.module-c255bbac.js} +0 -0
  471. /package/modal/modern/{layout.module-41e8947b.js → layout.module-60771d9c.js} +0 -0
  472. /package/picker-button/{Component-307da6d7.d.ts → Component-a5b021bd.d.ts} +0 -0
  473. /package/picker-button/cssm/{Component-307da6d7.d.ts → Component-a5b021bd.d.ts} +0 -0
  474. /package/picker-button/esm/{Component-307da6d7.d.ts → Component-a5b021bd.d.ts} +0 -0
  475. /package/picker-button/modern/{Component-307da6d7.d.ts → Component-a5b021bd.d.ts} +0 -0
  476. /package/select/esm/{hook-c0758dcd.d.ts → hook-086659f0.d.ts} +0 -0
  477. /package/select/esm/{hook-c0758dcd.js → hook-086659f0.js} +0 -0
  478. /package/select/{hook-10a14b43.d.ts → hook-b62c1963.d.ts} +0 -0
  479. /package/select/{hook-10a14b43.js → hook-b62c1963.js} +0 -0
  480. /package/select/modern/{hook-5ccdb908.d.ts → hook-a746b596.d.ts} +0 -0
  481. /package/select/modern/{hook-5ccdb908.js → hook-a746b596.js} +0 -0
  482. /package/textarea/{PseudoTextArea-e22e1b15.d.ts → PseudoTextArea-7aea41b8.d.ts} +0 -0
  483. /package/textarea/{PseudoTextArea-e22e1b15.js → PseudoTextArea-7aea41b8.js} +0 -0
  484. /package/textarea/esm/{PseudoTextArea-ebaaf545.d.ts → PseudoTextArea-ba968d63.d.ts} +0 -0
  485. /package/textarea/esm/{PseudoTextArea-ebaaf545.js → PseudoTextArea-ba968d63.js} +0 -0
  486. /package/textarea/modern/{PseudoTextArea-df487b32.d.ts → PseudoTextArea-d7134e87.d.ts} +0 -0
  487. /package/textarea/modern/{PseudoTextArea-df487b32.js → PseudoTextArea-d7134e87.js} +0 -0
  488. /package/typography/{colors.module-5b90a9cc.js → colors.module-b5f1970b.js} +0 -0
  489. /package/typography/{common.module-53a00318.js → common.module-8f051b74.js} +0 -0
  490. /package/typography/esm/{colors.module-f2501c6f.js → colors.module-bf4fcd9a.js} +0 -0
  491. /package/typography/esm/{common.module-04c7810e.js → common.module-efe4e6e2.js} +0 -0
  492. /package/typography/modern/{colors.module-83a4b747.js → colors.module-21f32eaa.js} +0 -0
  493. /package/typography/modern/{common.module-278c339a.js → common.module-086a5ae1.js} +0 -0
@@ -134,6 +134,10 @@ type BaseModalProps = {
134
134
  * Реф, который должен быть установлен компонентной области
135
135
  */
136
136
  componentRef?: MutableRefObject<HTMLDivElement | null>;
137
+ /**
138
+ * Блокирует скролл когда модальное окно открыто. Работает только на iOS.
139
+ */
140
+ iOSLock?: boolean;
137
141
  };
138
142
  type BaseModalContext = {
139
143
  parentRef: React.RefObject<HTMLDivElement>;
@@ -11,6 +11,7 @@ var coreComponentsBackdrop = require('../backdrop');
11
11
  var coreComponentsPortal = require('../portal');
12
12
  var coreComponentsShared = require('../shared');
13
13
  var coreComponentsStack = require('../stack');
14
+ var helpers_lockScroll = require('./helpers/lockScroll.js');
14
15
  var utils = require('./utils.js');
15
16
  require('./matches-polyfill.js');
16
17
 
@@ -41,14 +42,14 @@ var BaseModalContext = React__default.default.createContext({
41
42
  onClose: function () { return null; },
42
43
  });
43
44
  var BaseModal = React.forwardRef(function (_a, ref) {
44
- var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop = _c === void 0 ? coreComponentsBackdrop.Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.disableBlockingScroll, disableBlockingScroll = _k === void 0 ? false : _k, _l = _a.keepMounted, keepMounted = _l === void 0 ? false : _l, className = _a.className, contentClassName = _a.contentClassName, wrapperProps = _a.wrapperProps, contentProps = _a.contentProps, componentDivProps = _a.componentDivProps, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _m = _a.zIndex, zIndex = _m === void 0 ? coreComponentsStack.stackingOrder.MODAL : _m, _o = _a.componentRef, componentRef = _o === void 0 ? null : _o, _p = _a.usePortal, usePortal = _p === void 0 ? true : _p;
45
- var _q = React.useState(null), exited = _q[0], setExited = _q[1];
46
- var _r = React.useState(false), hasScroll = _r[0], setHasScroll = _r[1];
47
- var _s = React.useState(false), hasHeader = _s[0], setHasHeader = _s[1];
48
- var _t = React.useState(false), hasFooter = _t[0], setHasFooter = _t[1];
49
- var _u = React.useState(false), headerHighlighted = _u[0], setHeaderHighlighted = _u[1];
50
- var _v = React.useState(false), footerHighlighted = _v[0], setFooterHighlighted = _v[1];
51
- var _w = React.useState(0), headerOffset = _w[0], setHeaderOffset = _w[1];
45
+ var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop = _c === void 0 ? coreComponentsBackdrop.Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.disableBlockingScroll, disableBlockingScroll = _k === void 0 ? false : _k, _l = _a.keepMounted, keepMounted = _l === void 0 ? false : _l, className = _a.className, contentClassName = _a.contentClassName, wrapperProps = _a.wrapperProps, contentProps = _a.contentProps, componentDivProps = _a.componentDivProps, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _m = _a.zIndex, zIndex = _m === void 0 ? coreComponentsStack.stackingOrder.MODAL : _m, _o = _a.componentRef, componentRef = _o === void 0 ? null : _o, _p = _a.usePortal, usePortal = _p === void 0 ? true : _p, _q = _a.iOSLock, iOSLock = _q === void 0 ? false : _q;
46
+ var _r = React.useState(null), exited = _r[0], setExited = _r[1];
47
+ var _s = React.useState(false), hasScroll = _s[0], setHasScroll = _s[1];
48
+ var _t = React.useState(false), hasHeader = _t[0], setHasHeader = _t[1];
49
+ var _u = React.useState(false), hasFooter = _u[0], setHasFooter = _u[1];
50
+ var _v = React.useState(false), headerHighlighted = _v[0], setHeaderHighlighted = _v[1];
51
+ var _w = React.useState(false), footerHighlighted = _w[0], setFooterHighlighted = _w[1];
52
+ var _x = React.useState(0), headerOffset = _x[0], setHeaderOffset = _x[1];
52
53
  var componentNodeRef = React.useRef(null);
53
54
  var wrapperRef = React.useRef(null);
54
55
  var scrollableNodeRef = React.useRef(null);
@@ -100,6 +101,9 @@ var BaseModal = React.forwardRef(function (_a, ref) {
100
101
  }
101
102
  }, [hasFooter, hasHeader, headerOffset]);
102
103
  var handleClose = React.useCallback(function (event, reason) {
104
+ if (iOSLock && coreComponentsShared.os.isIOS()) {
105
+ helpers_lockScroll.unlockScroll();
106
+ }
103
107
  if (onClose) {
104
108
  onClose(event, reason);
105
109
  }
@@ -110,7 +114,7 @@ var BaseModal = React.forwardRef(function (_a, ref) {
110
114
  onEscapeKeyDown(event);
111
115
  }
112
116
  return null;
113
- }, [onBackdropClick, onClose, onEscapeKeyDown]);
117
+ }, [onBackdropClick, onClose, onEscapeKeyDown, iOSLock]);
114
118
  var handleBackdropMouseDown = function (event) {
115
119
  var _a;
116
120
  var clickedOnScrollbar = false;
@@ -185,7 +189,11 @@ var BaseModal = React.forwardRef(function (_a, ref) {
185
189
  if (open && isExited) {
186
190
  if (!disableBlockingScroll) {
187
191
  var el_1 = getContainer();
188
- utils.handleContainer(el_1);
192
+ utils.handleContainer(el_1, coreComponentsShared.os.isIOS());
193
+ if (iOSLock && coreComponentsShared.os.isIOS()) {
194
+ helpers_lockScroll.syncHeight();
195
+ helpers_lockScroll.lockScroll();
196
+ }
189
197
  restoreContainerStylesRef.current = function () {
190
198
  restoreContainerStylesRef.current = null;
191
199
  utils.restoreContainerStyles(el_1);
@@ -193,7 +201,7 @@ var BaseModal = React.forwardRef(function (_a, ref) {
193
201
  }
194
202
  setExited(false);
195
203
  }
196
- }, [getContainer, open, disableBlockingScroll, isExited]);
204
+ }, [getContainer, open, disableBlockingScroll, isExited, iOSLock]);
197
205
  React.useEffect(function () {
198
206
  var ResizeObserver = window.ResizeObserver || resizeObserver.ResizeObserver;
199
207
  resizeObserverRef.current = new ResizeObserver(checkToHasScrollBar);
@@ -134,6 +134,10 @@ type BaseModalProps = {
134
134
  * Реф, который должен быть установлен компонентной области
135
135
  */
136
136
  componentRef?: MutableRefObject<HTMLDivElement | null>;
137
+ /**
138
+ * Блокирует скролл когда модальное окно открыто. Работает только на iOS.
139
+ */
140
+ iOSLock?: boolean;
137
141
  };
138
142
  type BaseModalContext = {
139
143
  parentRef: React.RefObject<HTMLDivElement>;
@@ -11,6 +11,7 @@ var coreComponentsBackdrop = require('../../backdrop/cssm');
11
11
  var coreComponentsPortal = require('../../portal/cssm');
12
12
  var coreComponentsShared = require('../../shared/cssm');
13
13
  var coreComponentsStack = require('../../stack/cssm');
14
+ var helpers_lockScroll = require('./helpers/lockScroll.js');
14
15
  var utils = require('./utils.js');
15
16
  var styles = require('./index.module.css');
16
17
  require('./matches-polyfill.js');
@@ -40,14 +41,14 @@ var BaseModalContext = React__default.default.createContext({
40
41
  onClose: function () { return null; },
41
42
  });
42
43
  var BaseModal = React.forwardRef(function (_a, ref) {
43
- var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop = _c === void 0 ? coreComponentsBackdrop.Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.disableBlockingScroll, disableBlockingScroll = _k === void 0 ? false : _k, _l = _a.keepMounted, keepMounted = _l === void 0 ? false : _l, className = _a.className, contentClassName = _a.contentClassName, wrapperProps = _a.wrapperProps, contentProps = _a.contentProps, componentDivProps = _a.componentDivProps, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _m = _a.zIndex, zIndex = _m === void 0 ? coreComponentsStack.stackingOrder.MODAL : _m, _o = _a.componentRef, componentRef = _o === void 0 ? null : _o, _p = _a.usePortal, usePortal = _p === void 0 ? true : _p;
44
- var _q = React.useState(null), exited = _q[0], setExited = _q[1];
45
- var _r = React.useState(false), hasScroll = _r[0], setHasScroll = _r[1];
46
- var _s = React.useState(false), hasHeader = _s[0], setHasHeader = _s[1];
47
- var _t = React.useState(false), hasFooter = _t[0], setHasFooter = _t[1];
48
- var _u = React.useState(false), headerHighlighted = _u[0], setHeaderHighlighted = _u[1];
49
- var _v = React.useState(false), footerHighlighted = _v[0], setFooterHighlighted = _v[1];
50
- var _w = React.useState(0), headerOffset = _w[0], setHeaderOffset = _w[1];
44
+ var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop = _c === void 0 ? coreComponentsBackdrop.Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.disableBlockingScroll, disableBlockingScroll = _k === void 0 ? false : _k, _l = _a.keepMounted, keepMounted = _l === void 0 ? false : _l, className = _a.className, contentClassName = _a.contentClassName, wrapperProps = _a.wrapperProps, contentProps = _a.contentProps, componentDivProps = _a.componentDivProps, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _m = _a.zIndex, zIndex = _m === void 0 ? coreComponentsStack.stackingOrder.MODAL : _m, _o = _a.componentRef, componentRef = _o === void 0 ? null : _o, _p = _a.usePortal, usePortal = _p === void 0 ? true : _p, _q = _a.iOSLock, iOSLock = _q === void 0 ? false : _q;
45
+ var _r = React.useState(null), exited = _r[0], setExited = _r[1];
46
+ var _s = React.useState(false), hasScroll = _s[0], setHasScroll = _s[1];
47
+ var _t = React.useState(false), hasHeader = _t[0], setHasHeader = _t[1];
48
+ var _u = React.useState(false), hasFooter = _u[0], setHasFooter = _u[1];
49
+ var _v = React.useState(false), headerHighlighted = _v[0], setHeaderHighlighted = _v[1];
50
+ var _w = React.useState(false), footerHighlighted = _w[0], setFooterHighlighted = _w[1];
51
+ var _x = React.useState(0), headerOffset = _x[0], setHeaderOffset = _x[1];
51
52
  var componentNodeRef = React.useRef(null);
52
53
  var wrapperRef = React.useRef(null);
53
54
  var scrollableNodeRef = React.useRef(null);
@@ -99,6 +100,9 @@ var BaseModal = React.forwardRef(function (_a, ref) {
99
100
  }
100
101
  }, [hasFooter, hasHeader, headerOffset]);
101
102
  var handleClose = React.useCallback(function (event, reason) {
103
+ if (iOSLock && coreComponentsShared.os.isIOS()) {
104
+ helpers_lockScroll.unlockScroll();
105
+ }
102
106
  if (onClose) {
103
107
  onClose(event, reason);
104
108
  }
@@ -109,7 +113,7 @@ var BaseModal = React.forwardRef(function (_a, ref) {
109
113
  onEscapeKeyDown(event);
110
114
  }
111
115
  return null;
112
- }, [onBackdropClick, onClose, onEscapeKeyDown]);
116
+ }, [onBackdropClick, onClose, onEscapeKeyDown, iOSLock]);
113
117
  var handleBackdropMouseDown = function (event) {
114
118
  var _a;
115
119
  var clickedOnScrollbar = false;
@@ -184,7 +188,11 @@ var BaseModal = React.forwardRef(function (_a, ref) {
184
188
  if (open && isExited) {
185
189
  if (!disableBlockingScroll) {
186
190
  var el_1 = getContainer();
187
- utils.handleContainer(el_1);
191
+ utils.handleContainer(el_1, coreComponentsShared.os.isIOS());
192
+ if (iOSLock && coreComponentsShared.os.isIOS()) {
193
+ helpers_lockScroll.syncHeight();
194
+ helpers_lockScroll.lockScroll();
195
+ }
188
196
  restoreContainerStylesRef.current = function () {
189
197
  restoreContainerStylesRef.current = null;
190
198
  utils.restoreContainerStyles(el_1);
@@ -192,7 +200,7 @@ var BaseModal = React.forwardRef(function (_a, ref) {
192
200
  }
193
201
  setExited(false);
194
202
  }
195
- }, [getContainer, open, disableBlockingScroll, isExited]);
203
+ }, [getContainer, open, disableBlockingScroll, isExited, iOSLock]);
196
204
  React.useEffect(function () {
197
205
  var ResizeObserver = window.ResizeObserver || resizeObserver.ResizeObserver;
198
206
  resizeObserverRef.current = new ResizeObserver(checkToHasScrollBar);
@@ -0,0 +1,4 @@
1
+ declare const lockScroll: () => void;
2
+ declare const unlockScroll: () => void;
3
+ declare const syncHeight: () => void;
4
+ export { lockScroll, unlockScroll, syncHeight };
@@ -0,0 +1,18 @@
1
+ Object.defineProperty(exports, '__esModule', { value: true });
2
+
3
+ var scrollY;
4
+ var lockScroll = function () {
5
+ scrollY = window.scrollY;
6
+ document.documentElement.classList.add('is-locked');
7
+ };
8
+ var unlockScroll = function () {
9
+ document.documentElement.classList.remove('is-locked');
10
+ window.scrollTo(0, scrollY);
11
+ };
12
+ var syncHeight = function () {
13
+ document.documentElement.style.setProperty('--window-inner-height', "".concat(window.innerHeight, "px"));
14
+ };
15
+
16
+ exports.lockScroll = lockScroll;
17
+ exports.syncHeight = syncHeight;
18
+ exports.unlockScroll = unlockScroll;
@@ -14,7 +14,12 @@
14
14
  } :root {
15
15
  } :root {
16
16
  } :root {
17
- } .component {
17
+ } html:global(.is-locked),
18
+ html:global(.is-locked) body {
19
+ height: calc(var(--window-inner-height) - 1px);
20
+ overflow: hidden;
21
+ box-sizing: border-box;
22
+ } .component {
18
23
  position: relative;
19
24
  box-sizing: border-box;
20
25
  background: var(--color-light-modal-bg-primary);
@@ -2,5 +2,5 @@ declare function isScrolledToTop(target: HTMLElement): boolean;
2
2
  declare function isScrolledToBottom(target: HTMLElement): boolean;
3
3
  declare function hasScrollbar(target: HTMLElement): boolean;
4
4
  declare const restoreContainerStyles: (container: HTMLElement) => void;
5
- declare const handleContainer: (container?: HTMLElement) => void;
5
+ declare const handleContainer: (container?: HTMLElement, isIOS?: boolean) => void;
6
6
  export { isScrolledToTop, isScrolledToBottom, hasScrollbar, restoreContainerStyles, handleContainer };
@@ -41,7 +41,8 @@ var restoreContainerStyles = function (container) {
41
41
  });
42
42
  }
43
43
  };
44
- var handleContainer = function (container) {
44
+ var handleContainer = function (container, isIOS) {
45
+ if (isIOS === void 0) { isIOS = false; }
45
46
  if (!container)
46
47
  return;
47
48
  var modalRestoreStyles = coreComponentsGlobalStore.getModalStore().getRestoreStyles();
@@ -79,7 +80,9 @@ var handleContainer = function (container) {
79
80
  el: scrollContainer,
80
81
  });
81
82
  }
82
- scrollContainer.style.overflow = 'hidden';
83
+ if (!isIOS) {
84
+ scrollContainer.style.overflow = 'hidden';
85
+ }
83
86
  modalRestoreStyles.push({
84
87
  container: container,
85
88
  modals: 1,
@@ -134,6 +134,10 @@ type BaseModalProps = {
134
134
  * Реф, который должен быть установлен компонентной области
135
135
  */
136
136
  componentRef?: MutableRefObject<HTMLDivElement | null>;
137
+ /**
138
+ * Блокирует скролл когда модальное окно открыто. Работает только на iOS.
139
+ */
140
+ iOSLock?: boolean;
137
141
  };
138
142
  type BaseModalContext = {
139
143
  parentRef: React.RefObject<HTMLDivElement>;
@@ -7,8 +7,9 @@ import { ResizeObserver } from '@juggle/resize-observer';
7
7
  import cn from 'classnames';
8
8
  import { Backdrop } from '../../backdrop/esm';
9
9
  import { Portal } from '../../portal/esm';
10
- import { browser } from '../../shared/esm';
10
+ import { os, browser } from '../../shared/esm';
11
11
  import { stackingOrder, Stack } from '../../stack/esm';
12
+ import { unlockScroll, syncHeight, lockScroll } from './helpers/lockScroll.js';
12
13
  import { isScrolledToTop, isScrolledToBottom, handleContainer, restoreContainerStyles, hasScrollbar } from './utils.js';
13
14
  import './matches-polyfill.js';
14
15
  import '../../global-store/esm';
@@ -33,14 +34,14 @@ var BaseModalContext = React.createContext({
33
34
  onClose: function () { return null; },
34
35
  });
35
36
  var BaseModal = forwardRef(function (_a, ref) {
36
- var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop$1 = _c === void 0 ? Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.disableBlockingScroll, disableBlockingScroll = _k === void 0 ? false : _k, _l = _a.keepMounted, keepMounted = _l === void 0 ? false : _l, className = _a.className, contentClassName = _a.contentClassName, wrapperProps = _a.wrapperProps, contentProps = _a.contentProps, componentDivProps = _a.componentDivProps, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _m = _a.zIndex, zIndex = _m === void 0 ? stackingOrder.MODAL : _m, _o = _a.componentRef, componentRef = _o === void 0 ? null : _o, _p = _a.usePortal, usePortal = _p === void 0 ? true : _p;
37
- var _q = useState(null), exited = _q[0], setExited = _q[1];
38
- var _r = useState(false), hasScroll = _r[0], setHasScroll = _r[1];
39
- var _s = useState(false), hasHeader = _s[0], setHasHeader = _s[1];
40
- var _t = useState(false), hasFooter = _t[0], setHasFooter = _t[1];
41
- var _u = useState(false), headerHighlighted = _u[0], setHeaderHighlighted = _u[1];
42
- var _v = useState(false), footerHighlighted = _v[0], setFooterHighlighted = _v[1];
43
- var _w = useState(0), headerOffset = _w[0], setHeaderOffset = _w[1];
37
+ var open = _a.open, container = _a.container, children = _a.children, _b = _a.scrollHandler, scrollHandler = _b === void 0 ? 'wrapper' : _b, _c = _a.Backdrop, Backdrop$1 = _c === void 0 ? Backdrop : _c, _d = _a.backdropProps, backdropProps = _d === void 0 ? {} : _d, _e = _a.transitionProps, transitionProps = _e === void 0 ? {} : _e, disableBackdropClick = _a.disableBackdropClick, _f = _a.disableAutoFocus, disableAutoFocus = _f === void 0 ? false : _f, _g = _a.disableFocusLock, disableFocusLock = _g === void 0 ? false : _g, _h = _a.disableEscapeKeyDown, disableEscapeKeyDown = _h === void 0 ? false : _h, _j = _a.disableRestoreFocus, disableRestoreFocus = _j === void 0 ? false : _j, _k = _a.disableBlockingScroll, disableBlockingScroll = _k === void 0 ? false : _k, _l = _a.keepMounted, keepMounted = _l === void 0 ? false : _l, className = _a.className, contentClassName = _a.contentClassName, wrapperProps = _a.wrapperProps, contentProps = _a.contentProps, componentDivProps = _a.componentDivProps, wrapperClassName = _a.wrapperClassName, onBackdropClick = _a.onBackdropClick, onClose = _a.onClose, onEscapeKeyDown = _a.onEscapeKeyDown, onMount = _a.onMount, onUnmount = _a.onUnmount, dataTestId = _a.dataTestId, _m = _a.zIndex, zIndex = _m === void 0 ? stackingOrder.MODAL : _m, _o = _a.componentRef, componentRef = _o === void 0 ? null : _o, _p = _a.usePortal, usePortal = _p === void 0 ? true : _p, _q = _a.iOSLock, iOSLock = _q === void 0 ? false : _q;
38
+ var _r = useState(null), exited = _r[0], setExited = _r[1];
39
+ var _s = useState(false), hasScroll = _s[0], setHasScroll = _s[1];
40
+ var _t = useState(false), hasHeader = _t[0], setHasHeader = _t[1];
41
+ var _u = useState(false), hasFooter = _u[0], setHasFooter = _u[1];
42
+ var _v = useState(false), headerHighlighted = _v[0], setHeaderHighlighted = _v[1];
43
+ var _w = useState(false), footerHighlighted = _w[0], setFooterHighlighted = _w[1];
44
+ var _x = useState(0), headerOffset = _x[0], setHeaderOffset = _x[1];
44
45
  var componentNodeRef = useRef(null);
45
46
  var wrapperRef = useRef(null);
46
47
  var scrollableNodeRef = useRef(null);
@@ -92,6 +93,9 @@ var BaseModal = forwardRef(function (_a, ref) {
92
93
  }
93
94
  }, [hasFooter, hasHeader, headerOffset]);
94
95
  var handleClose = useCallback(function (event, reason) {
96
+ if (iOSLock && os.isIOS()) {
97
+ unlockScroll();
98
+ }
95
99
  if (onClose) {
96
100
  onClose(event, reason);
97
101
  }
@@ -102,7 +106,7 @@ var BaseModal = forwardRef(function (_a, ref) {
102
106
  onEscapeKeyDown(event);
103
107
  }
104
108
  return null;
105
- }, [onBackdropClick, onClose, onEscapeKeyDown]);
109
+ }, [onBackdropClick, onClose, onEscapeKeyDown, iOSLock]);
106
110
  var handleBackdropMouseDown = function (event) {
107
111
  var _a;
108
112
  var clickedOnScrollbar = false;
@@ -177,7 +181,11 @@ var BaseModal = forwardRef(function (_a, ref) {
177
181
  if (open && isExited) {
178
182
  if (!disableBlockingScroll) {
179
183
  var el_1 = getContainer();
180
- handleContainer(el_1);
184
+ handleContainer(el_1, os.isIOS());
185
+ if (iOSLock && os.isIOS()) {
186
+ syncHeight();
187
+ lockScroll();
188
+ }
181
189
  restoreContainerStylesRef.current = function () {
182
190
  restoreContainerStylesRef.current = null;
183
191
  restoreContainerStyles(el_1);
@@ -185,7 +193,7 @@ var BaseModal = forwardRef(function (_a, ref) {
185
193
  }
186
194
  setExited(false);
187
195
  }
188
- }, [getContainer, open, disableBlockingScroll, isExited]);
196
+ }, [getContainer, open, disableBlockingScroll, isExited, iOSLock]);
189
197
  useEffect(function () {
190
198
  var ResizeObserver$1 = window.ResizeObserver || ResizeObserver;
191
199
  resizeObserverRef.current = new ResizeObserver$1(checkToHasScrollBar);
@@ -0,0 +1,4 @@
1
+ declare const lockScroll: () => void;
2
+ declare const unlockScroll: () => void;
3
+ declare const syncHeight: () => void;
4
+ export { lockScroll, unlockScroll, syncHeight };
@@ -0,0 +1,14 @@
1
+ var scrollY;
2
+ var lockScroll = function () {
3
+ scrollY = window.scrollY;
4
+ document.documentElement.classList.add('is-locked');
5
+ };
6
+ var unlockScroll = function () {
7
+ document.documentElement.classList.remove('is-locked');
8
+ window.scrollTo(0, scrollY);
9
+ };
10
+ var syncHeight = function () {
11
+ document.documentElement.style.setProperty('--window-inner-height', "".concat(window.innerHeight, "px"));
12
+ };
13
+
14
+ export { lockScroll, syncHeight, unlockScroll };
@@ -15,7 +15,12 @@
15
15
  } :root {
16
16
  } :root {
17
17
  } :root {
18
- } .base-modal__component_13am9 {
18
+ } html.is-locked,
19
+ html.is-locked body {
20
+ height: calc(var(--window-inner-height) - 1px);
21
+ overflow: hidden;
22
+ box-sizing: border-box;
23
+ } .base-modal__component_13am9 {
19
24
  position: relative;
20
25
  box-sizing: border-box;
21
26
  background: var(--color-light-modal-bg-primary);
@@ -11,5 +11,6 @@ import '../../backdrop/esm';
11
11
  import '../../portal/esm';
12
12
  import '../../shared/esm';
13
13
  import '../../stack/esm';
14
+ import './helpers/lockScroll.js';
14
15
  import './matches-polyfill.js';
15
16
  import '../../global-store/esm';
@@ -2,5 +2,5 @@ declare function isScrolledToTop(target: HTMLElement): boolean;
2
2
  declare function isScrolledToBottom(target: HTMLElement): boolean;
3
3
  declare function hasScrollbar(target: HTMLElement): boolean;
4
4
  declare const restoreContainerStyles: (container: HTMLElement) => void;
5
- declare const handleContainer: (container?: HTMLElement) => void;
5
+ declare const handleContainer: (container?: HTMLElement, isIOS?: boolean) => void;
6
6
  export { isScrolledToTop, isScrolledToBottom, hasScrollbar, restoreContainerStyles, handleContainer };
@@ -39,7 +39,8 @@ var restoreContainerStyles = function (container) {
39
39
  });
40
40
  }
41
41
  };
42
- var handleContainer = function (container) {
42
+ var handleContainer = function (container, isIOS) {
43
+ if (isIOS === void 0) { isIOS = false; }
43
44
  if (!container)
44
45
  return;
45
46
  var modalRestoreStyles = getModalStore().getRestoreStyles();
@@ -77,7 +78,9 @@ var handleContainer = function (container) {
77
78
  el: scrollContainer,
78
79
  });
79
80
  }
80
- scrollContainer.style.overflow = 'hidden';
81
+ if (!isIOS) {
82
+ scrollContainer.style.overflow = 'hidden';
83
+ }
81
84
  modalRestoreStyles.push({
82
85
  container: container,
83
86
  modals: 1,
@@ -0,0 +1,4 @@
1
+ declare const lockScroll: () => void;
2
+ declare const unlockScroll: () => void;
3
+ declare const syncHeight: () => void;
4
+ export { lockScroll, unlockScroll, syncHeight };
@@ -0,0 +1,18 @@
1
+ Object.defineProperty(exports, '__esModule', { value: true });
2
+
3
+ var scrollY;
4
+ var lockScroll = function () {
5
+ scrollY = window.scrollY;
6
+ document.documentElement.classList.add('is-locked');
7
+ };
8
+ var unlockScroll = function () {
9
+ document.documentElement.classList.remove('is-locked');
10
+ window.scrollTo(0, scrollY);
11
+ };
12
+ var syncHeight = function () {
13
+ document.documentElement.style.setProperty('--window-inner-height', "".concat(window.innerHeight, "px"));
14
+ };
15
+
16
+ exports.lockScroll = lockScroll;
17
+ exports.syncHeight = syncHeight;
18
+ exports.unlockScroll = unlockScroll;
@@ -15,7 +15,12 @@
15
15
  } :root {
16
16
  } :root {
17
17
  } :root {
18
- } .base-modal__component_13am9 {
18
+ } html.is-locked,
19
+ html.is-locked body {
20
+ height: calc(var(--window-inner-height) - 1px);
21
+ overflow: hidden;
22
+ box-sizing: border-box;
23
+ } .base-modal__component_13am9 {
19
24
  position: relative;
20
25
  box-sizing: border-box;
21
26
  background: var(--color-light-modal-bg-primary);
@@ -134,6 +134,10 @@ type BaseModalProps = {
134
134
  * Реф, который должен быть установлен компонентной области
135
135
  */
136
136
  componentRef?: MutableRefObject<HTMLDivElement | null>;
137
+ /**
138
+ * Блокирует скролл когда модальное окно открыто. Работает только на iOS.
139
+ */
140
+ iOSLock?: boolean;
137
141
  };
138
142
  type BaseModalContext = {
139
143
  parentRef: React.RefObject<HTMLDivElement>;
@@ -6,8 +6,9 @@ import { ResizeObserver } from '@juggle/resize-observer';
6
6
  import cn from 'classnames';
7
7
  import { Backdrop } from '../../backdrop/modern';
8
8
  import { Portal } from '../../portal/modern';
9
- import { browser } from '../../shared/modern';
9
+ import { os, browser } from '../../shared/modern';
10
10
  import { stackingOrder, Stack } from '../../stack/modern';
11
+ import { unlockScroll, syncHeight, lockScroll } from './helpers/lockScroll.js';
11
12
  import { isScrolledToTop, isScrolledToBottom, handleContainer, restoreContainerStyles, hasScrollbar } from './utils.js';
12
13
  import './matches-polyfill.js';
13
14
  import '../../global-store/modern';
@@ -32,7 +33,7 @@ const BaseModalContext = React.createContext({
32
33
  setHasFooter: () => null,
33
34
  onClose: () => null,
34
35
  });
35
- const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrapper', Backdrop: Backdrop$1 = Backdrop, backdropProps = {}, transitionProps = {}, disableBackdropClick, disableAutoFocus = false, disableFocusLock = false, disableEscapeKeyDown = false, disableRestoreFocus = false, disableBlockingScroll = false, keepMounted = false, className, contentClassName, wrapperProps, contentProps, componentDivProps, wrapperClassName, onBackdropClick, onClose, onEscapeKeyDown, onMount, onUnmount, dataTestId, zIndex = stackingOrder.MODAL, componentRef = null, usePortal = true, }, ref) => {
36
+ const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrapper', Backdrop: Backdrop$1 = Backdrop, backdropProps = {}, transitionProps = {}, disableBackdropClick, disableAutoFocus = false, disableFocusLock = false, disableEscapeKeyDown = false, disableRestoreFocus = false, disableBlockingScroll = false, keepMounted = false, className, contentClassName, wrapperProps, contentProps, componentDivProps, wrapperClassName, onBackdropClick, onClose, onEscapeKeyDown, onMount, onUnmount, dataTestId, zIndex = stackingOrder.MODAL, componentRef = null, usePortal = true, iOSLock = false, }, ref) => {
36
37
  const [exited, setExited] = useState(null);
37
38
  const [hasScroll, setHasScroll] = useState(false);
38
39
  const [hasHeader, setHasHeader] = useState(false);
@@ -91,6 +92,9 @@ const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrap
91
92
  }
92
93
  }, [hasFooter, hasHeader, headerOffset]);
93
94
  const handleClose = useCallback((event, reason) => {
95
+ if (iOSLock && os.isIOS()) {
96
+ unlockScroll();
97
+ }
94
98
  if (onClose) {
95
99
  onClose(event, reason);
96
100
  }
@@ -101,7 +105,7 @@ const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrap
101
105
  onEscapeKeyDown(event);
102
106
  }
103
107
  return null;
104
- }, [onBackdropClick, onClose, onEscapeKeyDown]);
108
+ }, [onBackdropClick, onClose, onEscapeKeyDown, iOSLock]);
105
109
  const handleBackdropMouseDown = (event) => {
106
110
  let clickedOnScrollbar = false;
107
111
  const clientWidth = event.target?.clientWidth;
@@ -175,7 +179,11 @@ const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrap
175
179
  if (open && isExited) {
176
180
  if (!disableBlockingScroll) {
177
181
  const el = getContainer();
178
- handleContainer(el);
182
+ handleContainer(el, os.isIOS());
183
+ if (iOSLock && os.isIOS()) {
184
+ syncHeight();
185
+ lockScroll();
186
+ }
179
187
  restoreContainerStylesRef.current = () => {
180
188
  restoreContainerStylesRef.current = null;
181
189
  restoreContainerStyles(el);
@@ -183,7 +191,7 @@ const BaseModal = forwardRef(({ open, container, children, scrollHandler = 'wrap
183
191
  }
184
192
  setExited(false);
185
193
  }
186
- }, [getContainer, open, disableBlockingScroll, isExited]);
194
+ }, [getContainer, open, disableBlockingScroll, isExited, iOSLock]);
187
195
  useEffect(() => {
188
196
  const ResizeObserver$1 = window.ResizeObserver || ResizeObserver;
189
197
  resizeObserverRef.current = new ResizeObserver$1(checkToHasScrollBar);
@@ -0,0 +1,4 @@
1
+ declare const lockScroll: () => void;
2
+ declare const unlockScroll: () => void;
3
+ declare const syncHeight: () => void;
4
+ export { lockScroll, unlockScroll, syncHeight };
@@ -0,0 +1,14 @@
1
+ let scrollY;
2
+ const lockScroll = () => {
3
+ scrollY = window.scrollY;
4
+ document.documentElement.classList.add('is-locked');
5
+ };
6
+ const unlockScroll = () => {
7
+ document.documentElement.classList.remove('is-locked');
8
+ window.scrollTo(0, scrollY);
9
+ };
10
+ const syncHeight = () => {
11
+ document.documentElement.style.setProperty('--window-inner-height', `${window.innerHeight}px`);
12
+ };
13
+
14
+ export { lockScroll, syncHeight, unlockScroll };
@@ -15,7 +15,12 @@
15
15
  } :root {
16
16
  } :root {
17
17
  } :root {
18
- } .base-modal__component_13am9 {
18
+ } html.is-locked,
19
+ html.is-locked body {
20
+ height: calc(var(--window-inner-height) - 1px);
21
+ overflow: hidden;
22
+ box-sizing: border-box;
23
+ } .base-modal__component_13am9 {
19
24
  position: relative;
20
25
  box-sizing: border-box;
21
26
  background: var(--color-light-modal-bg-primary);
@@ -10,5 +10,6 @@ import '../../backdrop/modern';
10
10
  import '../../portal/modern';
11
11
  import '../../shared/modern';
12
12
  import '../../stack/modern';
13
+ import './helpers/lockScroll.js';
13
14
  import './matches-polyfill.js';
14
15
  import '../../global-store/modern';
@@ -2,5 +2,5 @@ declare function isScrolledToTop(target: HTMLElement): boolean;
2
2
  declare function isScrolledToBottom(target: HTMLElement): boolean;
3
3
  declare function hasScrollbar(target: HTMLElement): boolean;
4
4
  declare const restoreContainerStyles: (container: HTMLElement) => void;
5
- declare const handleContainer: (container?: HTMLElement) => void;
5
+ declare const handleContainer: (container?: HTMLElement, isIOS?: boolean) => void;
6
6
  export { isScrolledToTop, isScrolledToBottom, hasScrollbar, restoreContainerStyles, handleContainer };
@@ -36,7 +36,7 @@ const restoreContainerStyles = (container) => {
36
36
  });
37
37
  }
38
38
  };
39
- const handleContainer = (container) => {
39
+ const handleContainer = (container, isIOS = false) => {
40
40
  if (!container)
41
41
  return;
42
42
  const modalRestoreStyles = getModalStore().getRestoreStyles();
@@ -74,7 +74,9 @@ const handleContainer = (container) => {
74
74
  el: scrollContainer,
75
75
  });
76
76
  }
77
- scrollContainer.style.overflow = 'hidden';
77
+ if (!isIOS) {
78
+ scrollContainer.style.overflow = 'hidden';
79
+ }
78
80
  modalRestoreStyles.push({
79
81
  container,
80
82
  modals: 1,
@@ -2,5 +2,5 @@ declare function isScrolledToTop(target: HTMLElement): boolean;
2
2
  declare function isScrolledToBottom(target: HTMLElement): boolean;
3
3
  declare function hasScrollbar(target: HTMLElement): boolean;
4
4
  declare const restoreContainerStyles: (container: HTMLElement) => void;
5
- declare const handleContainer: (container?: HTMLElement) => void;
5
+ declare const handleContainer: (container?: HTMLElement, isIOS?: boolean) => void;
6
6
  export { isScrolledToTop, isScrolledToBottom, hasScrollbar, restoreContainerStyles, handleContainer };
@@ -41,7 +41,8 @@ var restoreContainerStyles = function (container) {
41
41
  });
42
42
  }
43
43
  };
44
- var handleContainer = function (container) {
44
+ var handleContainer = function (container, isIOS) {
45
+ if (isIOS === void 0) { isIOS = false; }
45
46
  if (!container)
46
47
  return;
47
48
  var modalRestoreStyles = coreComponentsGlobalStore.getModalStore().getRestoreStyles();
@@ -79,7 +80,9 @@ var handleContainer = function (container) {
79
80
  el: scrollContainer,
80
81
  });
81
82
  }
82
- scrollContainer.style.overflow = 'hidden';
83
+ if (!isIOS) {
84
+ scrollContainer.style.overflow = 'hidden';
85
+ }
83
86
  modalRestoreStyles.push({
84
87
  container: container,
85
88
  modals: 1,
@@ -15,7 +15,7 @@ import 'date-fns/isEqual';
15
15
  import 'date-fns/max';
16
16
  import 'date-fns/min';
17
17
  import 'date-fns/subMonths';
18
- import './index.module-912e88cf.js';
18
+ import './index.module-7ba85cb1.js';
19
19
  import 'date-fns/endOfMonth';
20
20
  import 'date-fns/isSameMonth';
21
21
  import '../../calendar/esm/desktop';