@vkontakte/vkui 7.0.0-dev-efd91c.3 → 7.0.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 (209) hide show
  1. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  2. package/dist/components/ActionSheet/ActionSheet.js +1 -3
  3. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  4. package/dist/components/AppRoot/AppRoot.d.ts +1 -1
  5. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  6. package/dist/components/AppRoot/AppRoot.js +16 -10
  7. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  8. package/dist/components/AppRoot/AppRootPortal.js +1 -1
  9. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  10. package/dist/components/AppRoot/{AppRootStyleContainer.d.ts → AppRootStyleContainer/AppRootStyleContainer.d.ts} +3 -3
  11. package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.d.ts.map +1 -0
  12. package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js +45 -0
  13. package/dist/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -0
  14. package/dist/components/AppRoot/helpers.d.ts +7 -0
  15. package/dist/components/AppRoot/helpers.d.ts.map +1 -1
  16. package/dist/components/AppRoot/helpers.js +20 -4
  17. package/dist/components/AppRoot/helpers.js.map +1 -1
  18. package/dist/components/Clickable/Clickable.d.ts.map +1 -1
  19. package/dist/components/Clickable/Clickable.js +2 -83
  20. package/dist/components/Clickable/Clickable.js.map +1 -1
  21. package/dist/components/Clickable/RealClickable.d.ts +6 -0
  22. package/dist/components/Clickable/RealClickable.d.ts.map +1 -0
  23. package/dist/components/Clickable/RealClickable.js +90 -0
  24. package/dist/components/Clickable/RealClickable.js.map +1 -0
  25. package/dist/components/HorizontalCell/HorizontalCell.d.ts +6 -1
  26. package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
  27. package/dist/components/HorizontalCell/HorizontalCell.js +4 -15
  28. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  29. package/dist/components/ModalCard/ModalCardInternal.js +1 -1
  30. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
  31. package/dist/components/ModalPage/ModalPage.d.ts +1 -1
  32. package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
  33. package/dist/components/ModalPage/ModalPage.js +53 -5
  34. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  35. package/dist/components/ModalPage/ModalPageInternal.d.ts +5 -2
  36. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
  37. package/dist/components/ModalPage/ModalPageInternal.js +5 -4
  38. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
  39. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  40. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  41. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  42. package/dist/components/ModalRoot/types.js.map +1 -1
  43. package/dist/components/ModalRoot/useModalManager.d.ts +2 -0
  44. package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
  45. package/dist/components/ModalRoot/useModalManager.js +4 -1
  46. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  47. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  48. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
  49. package/dist/components/PopoutWrapper/PopoutWrapper.js +2 -2
  50. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  51. package/dist/components/Spinner/Spinner.d.ts.map +1 -1
  52. package/dist/components/Spinner/Spinner.js +11 -43
  53. package/dist/components/Spinner/Spinner.js.map +1 -1
  54. package/dist/components/Spinner/SpinnerAnimation.d.ts +7 -0
  55. package/dist/components/Spinner/SpinnerAnimation.d.ts.map +1 -0
  56. package/dist/components/Spinner/SpinnerAnimation.js +36 -0
  57. package/dist/components/Spinner/SpinnerAnimation.js.map +1 -0
  58. package/dist/components/SplitLayout/SplitLayout.d.ts +4 -4
  59. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  60. package/dist/components.css +1 -1
  61. package/dist/components.css.map +1 -1
  62. package/dist/cssm/components/ActionSheet/ActionSheet.js +1 -3
  63. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  64. package/dist/cssm/components/AppRoot/AppRoot.js +14 -9
  65. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  66. package/dist/cssm/components/AppRoot/AppRoot.module.css +17 -0
  67. package/dist/cssm/components/AppRoot/AppRootPortal.js +1 -1
  68. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  69. package/dist/cssm/components/AppRoot/{AppRootStyleContainer.js → AppRootStyleContainer/AppRootStyleContainer.js} +12 -23
  70. package/dist/cssm/components/AppRoot/AppRootStyleContainer/AppRootStyleContainer.js.map +1 -0
  71. package/dist/cssm/components/AppRoot/{AppRootStyleContainer.module.css → AppRootStyleContainer/AppRootStyleContainer.module.css} +7 -31
  72. package/dist/cssm/components/AppRoot/helpers.js +17 -1
  73. package/dist/cssm/components/AppRoot/helpers.js.map +1 -1
  74. package/dist/cssm/components/Button/Button.module.css +6 -6
  75. package/dist/cssm/components/Card/Card.module.css +12 -6
  76. package/dist/cssm/components/Clickable/Clickable.js +2 -55
  77. package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
  78. package/dist/cssm/components/Clickable/RealClickable.js +61 -0
  79. package/dist/cssm/components/Clickable/RealClickable.js.map +1 -0
  80. package/dist/cssm/components/FormField/FormField.module.css +2 -0
  81. package/dist/cssm/components/FormItem/FormItem.module.css +6 -6
  82. package/dist/cssm/components/Group/Group.module.css +1 -0
  83. package/dist/cssm/components/Header/Header.module.css +10 -4
  84. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +2 -12
  85. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  86. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +1 -0
  87. package/dist/cssm/components/IconButton/IconButton.module.css +12 -3
  88. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +1 -0
  89. package/dist/cssm/components/ModalCard/ModalCardInternal.js +1 -1
  90. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
  91. package/dist/cssm/components/ModalPage/ModalPage.js +50 -4
  92. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  93. package/dist/cssm/components/ModalPage/ModalPageInternal.js +3 -2
  94. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
  95. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +1 -0
  96. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  97. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  98. package/dist/cssm/components/ModalRoot/useModalManager.js +4 -1
  99. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  100. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +10 -4
  101. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  102. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +4 -0
  103. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +2 -3
  104. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  105. package/dist/cssm/components/Removable/Removable.module.css +7 -2
  106. package/dist/cssm/components/Spinner/Spinner.js +11 -43
  107. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  108. package/dist/cssm/components/Spinner/SpinnerAnimation.js +36 -0
  109. package/dist/cssm/components/Spinner/SpinnerAnimation.js.map +1 -0
  110. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  111. package/dist/cssm/components/View/View.module.css +2 -2
  112. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js +15 -4
  113. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  114. package/dist/cssm/index.js.map +1 -1
  115. package/dist/cssm/lib/adaptivity/functions.js +1 -7
  116. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  117. package/dist/cssm/lib/animation/useReducedMotion.js +4 -7
  118. package/dist/cssm/lib/animation/useReducedMotion.js.map +1 -1
  119. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js +22 -37
  120. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js.map +1 -1
  121. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js +1 -9
  122. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
  123. package/dist/cssm/lib/sheet/index.js +1 -1
  124. package/dist/cssm/lib/sheet/index.js.map +1 -1
  125. package/dist/cssm/lib/sheet/useBottomSheet.js +12 -15
  126. package/dist/cssm/lib/sheet/useBottomSheet.js.map +1 -1
  127. package/dist/cssm/styles/common.css +10 -4
  128. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +3 -2
  129. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
  130. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js +15 -4
  131. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  132. package/dist/index.d.ts +2 -2
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js.map +1 -1
  135. package/dist/lib/adaptivity/functions.d.ts +0 -1
  136. package/dist/lib/adaptivity/functions.d.ts.map +1 -1
  137. package/dist/lib/adaptivity/functions.js +1 -7
  138. package/dist/lib/adaptivity/functions.js.map +1 -1
  139. package/dist/lib/animation/useReducedMotion.d.ts +1 -1
  140. package/dist/lib/animation/useReducedMotion.d.ts.map +1 -1
  141. package/dist/lib/animation/useReducedMotion.js +4 -7
  142. package/dist/lib/animation/useReducedMotion.js.map +1 -1
  143. package/dist/lib/sheet/controllers/BottomSheetController.d.ts +8 -8
  144. package/dist/lib/sheet/controllers/BottomSheetController.d.ts.map +1 -1
  145. package/dist/lib/sheet/controllers/BottomSheetController.js +22 -37
  146. package/dist/lib/sheet/controllers/BottomSheetController.js.map +1 -1
  147. package/dist/lib/sheet/controllers/CSSTransitionController.d.ts +1 -1
  148. package/dist/lib/sheet/controllers/CSSTransitionController.d.ts.map +1 -1
  149. package/dist/lib/sheet/controllers/CSSTransitionController.js +1 -9
  150. package/dist/lib/sheet/controllers/CSSTransitionController.js.map +1 -1
  151. package/dist/lib/sheet/index.d.ts +2 -1
  152. package/dist/lib/sheet/index.d.ts.map +1 -1
  153. package/dist/lib/sheet/index.js +1 -1
  154. package/dist/lib/sheet/index.js.map +1 -1
  155. package/dist/lib/sheet/useBottomSheet.d.ts +6 -5
  156. package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -1
  157. package/dist/lib/sheet/useBottomSheet.js +12 -15
  158. package/dist/lib/sheet/useBottomSheet.js.map +1 -1
  159. package/dist/vkui.css +1 -1
  160. package/dist/vkui.css.map +1 -1
  161. package/package.json +2 -2
  162. package/src/components/ActionSheet/ActionSheet.tsx +1 -4
  163. package/src/components/AppRoot/AppRoot.module.css +17 -0
  164. package/src/components/AppRoot/AppRoot.tsx +24 -11
  165. package/src/components/AppRoot/AppRootPortal.tsx +1 -1
  166. package/src/components/AppRoot/{AppRootStyleContainer.module.css → AppRootStyleContainer/AppRootStyleContainer.module.css} +7 -24
  167. package/src/components/AppRoot/{AppRootStyleContainer.tsx → AppRootStyleContainer/AppRootStyleContainer.tsx} +11 -29
  168. package/src/components/AppRoot/helpers.ts +17 -1
  169. package/src/components/Button/Button.module.css +6 -6
  170. package/src/components/Card/Card.module.css +8 -6
  171. package/src/components/Clickable/Clickable.tsx +4 -103
  172. package/src/components/Clickable/RealClickable.tsx +99 -0
  173. package/src/components/FormField/FormField.module.css +2 -0
  174. package/src/components/FormItem/FormItem.module.css +6 -6
  175. package/src/components/Group/Group.module.css +1 -0
  176. package/src/components/Header/Header.module.css +8 -4
  177. package/src/components/HorizontalCell/HorizontalCell.tsx +8 -20
  178. package/src/components/HorizontalScroll/HorizontalScroll.module.css +1 -0
  179. package/src/components/IconButton/IconButton.module.css +10 -3
  180. package/src/components/MiniInfoCell/MiniInfoCell.module.css +1 -0
  181. package/src/components/ModalCard/ModalCardInternal.tsx +1 -1
  182. package/src/components/ModalPage/ModalPage.tsx +57 -3
  183. package/src/components/ModalPage/ModalPageInternal.tsx +14 -5
  184. package/src/components/ModalPageHeader/ModalPageHeader.module.css +1 -0
  185. package/src/components/ModalRoot/ModalRoot.tsx +0 -1
  186. package/src/components/ModalRoot/types.ts +0 -1
  187. package/src/components/ModalRoot/useModalManager.tsx +5 -3
  188. package/src/components/PanelHeader/PanelHeader.module.css +8 -4
  189. package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +4 -0
  190. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -1
  191. package/src/components/PopoutWrapper/PopoutWrapper.tsx +1 -4
  192. package/src/components/Removable/Removable.module.css +6 -2
  193. package/src/components/Spinner/Spinner.tsx +10 -48
  194. package/src/components/Spinner/SpinnerAnimation.tsx +42 -0
  195. package/src/components/SplitLayout/SplitLayout.tsx +4 -4
  196. package/src/components/View/View.module.css +2 -2
  197. package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +13 -4
  198. package/src/index.ts +2 -2
  199. package/src/lib/adaptivity/functions.ts +1 -8
  200. package/src/lib/animation/useReducedMotion.ts +6 -13
  201. package/src/lib/sheet/controllers/BottomSheetController.ts +32 -50
  202. package/src/lib/sheet/controllers/CSSTransitionController.ts +1 -8
  203. package/src/lib/sheet/index.ts +3 -0
  204. package/src/lib/sheet/useBottomSheet.ts +21 -17
  205. package/src/styles/common.css +12 -4
  206. package/dist/components/AppRoot/AppRootStyleContainer.d.ts.map +0 -1
  207. package/dist/components/AppRoot/AppRootStyleContainer.js +0 -57
  208. package/dist/components/AppRoot/AppRootStyleContainer.js.map +0 -1
  209. package/dist/cssm/components/AppRoot/AppRootStyleContainer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/useSyncHTMLWithBaseVKUIClasses.ts"],"sourcesContent":["import type * as React from 'react';\nimport { type AppRootMode } from '../components/AppRoot/types';\nimport { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\n\nexport function useSyncHTMLWithBaseVKUIClasses({\n appRootRef,\n mode,\n enable,\n}: {\n appRootRef: React.RefObject<HTMLElement>;\n mode: AppRootMode;\n enable: boolean;\n}) {\n useIsomorphicLayoutEffect(() => {\n if (!enable) {\n return;\n }\n\n const htmlElement = appRootRef.current?.ownerDocument.documentElement;\n const parentElement = appRootRef.current?.parentElement ?? null;\n\n const parentElementClasses = ['vkui__root'];\n\n if (mode === 'embedded') {\n parentElementClasses.push('vkui__root--embedded');\n }\n\n if (mode === 'full') {\n /* eslint-disable-next-line no-restricted-properties */\n htmlElement?.classList.add('vkui');\n }\n /* eslint-disable-next-line no-restricted-properties */\n parentElement?.classList.add(...parentElementClasses);\n\n return () => {\n if (mode === 'full') {\n /* eslint-disable-next-line no-restricted-properties */\n htmlElement?.classList.remove('vkui');\n }\n /* eslint-disable-next-line no-restricted-properties */\n parentElement?.classList.remove(...parentElementClasses);\n };\n }, [mode, enable]);\n}\n"],"names":["useIsomorphicLayoutEffect","useSyncHTMLWithBaseVKUIClasses","appRootRef","mode","enable","htmlElement","current","ownerDocument","documentElement","parentElement","parentElementClasses","push","classList","add","remove"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ,sCAAmC;AAE7E,OAAO,SAASC,+BAA+B,EAC7CC,UAAU,EACVC,IAAI,EACJC,MAAM,EAKP;IACCJ,0BAA0B;QACxB,IAAI,CAACI,QAAQ;YACX;QACF;QAEA,MAAMC,cAAcH,WAAWI,OAAO,EAAEC,cAAcC;QACtD,MAAMC,gBAAgBP,WAAWI,OAAO,EAAEG,iBAAiB;QAE3D,MAAMC,uBAAuB;YAAC;SAAa;QAE3C,IAAIP,SAAS,YAAY;YACvBO,qBAAqBC,IAAI,CAAC;QAC5B;QAEA,IAAIR,SAAS,QAAQ;YACnB,qDAAqD,GACrDE,aAAaO,UAAUC,IAAI;QAC7B;QACA,qDAAqD,GACrDJ,eAAeG,UAAUC,OAAOH;QAEhC,OAAO;YACL,IAAIP,SAAS,QAAQ;gBACnB,qDAAqD,GACrDE,aAAaO,UAAUE,OAAO;YAChC;YACA,qDAAqD,GACrDL,eAAeG,UAAUE,UAAUJ;QACrC;IACF,GAAG;QAACP;QAAMC;KAAO;AACnB"}
1
+ {"version":3,"sources":["../../../src/hooks/useSyncHTMLWithBaseVKUIClasses.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { AppRootLayout, AppRootMode } from '../components/AppRoot/types';\nimport { useIsomorphicLayoutEffect } from '../lib/useIsomorphicLayoutEffect';\n\nconst layoutClassNames = { card: 'vkui--layout-card', plain: 'vkui--layout-plain' };\n\nexport function useSyncHTMLWithBaseVKUIClasses({\n appRootRef,\n mode,\n enable,\n layout,\n}: {\n appRootRef: React.RefObject<HTMLElement>;\n mode: AppRootMode;\n layout?: AppRootLayout;\n enable: boolean;\n}) {\n useIsomorphicLayoutEffect(() => {\n if (!enable) {\n return;\n }\n\n const htmlElement = appRootRef.current?.ownerDocument.documentElement;\n const parentElement = appRootRef.current?.parentElement ?? null;\n\n const htmlElementClasses = ['vkui'];\n const parentElementClasses = ['vkui__root'];\n\n if (mode === 'embedded') {\n parentElementClasses.push('vkui__root--embedded');\n }\n\n if (mode === 'full') {\n if (layout) {\n htmlElementClasses.push(layoutClassNames[layout]);\n }\n /* eslint-disable-next-line no-restricted-properties */\n htmlElement?.classList.add(...htmlElementClasses);\n }\n\n /* eslint-disable-next-line no-restricted-properties */\n parentElement?.classList.add(...parentElementClasses);\n\n return () => {\n if (mode === 'full') {\n /* eslint-disable-next-line no-restricted-properties */\n htmlElement?.classList.remove(...htmlElementClasses);\n }\n /* eslint-disable-next-line no-restricted-properties */\n parentElement?.classList.remove(...parentElementClasses);\n };\n }, [mode, enable, layout]);\n}\n"],"names":["useIsomorphicLayoutEffect","layoutClassNames","card","plain","useSyncHTMLWithBaseVKUIClasses","appRootRef","mode","enable","layout","htmlElement","current","ownerDocument","documentElement","parentElement","htmlElementClasses","parentElementClasses","push","classList","add","remove"],"mappings":"AAEA,SAASA,yBAAyB,QAAQ,sCAAmC;AAE7E,MAAMC,mBAAmB;IAAEC,MAAM;IAAqBC,OAAO;AAAqB;AAElF,OAAO,SAASC,+BAA+B,EAC7CC,UAAU,EACVC,IAAI,EACJC,MAAM,EACNC,MAAM,EAMP;IACCR,0BAA0B;QACxB,IAAI,CAACO,QAAQ;YACX;QACF;QAEA,MAAME,cAAcJ,WAAWK,OAAO,EAAEC,cAAcC;QACtD,MAAMC,gBAAgBR,WAAWK,OAAO,EAAEG,iBAAiB;QAE3D,MAAMC,qBAAqB;YAAC;SAAO;QACnC,MAAMC,uBAAuB;YAAC;SAAa;QAE3C,IAAIT,SAAS,YAAY;YACvBS,qBAAqBC,IAAI,CAAC;QAC5B;QAEA,IAAIV,SAAS,QAAQ;YACnB,IAAIE,QAAQ;gBACVM,mBAAmBE,IAAI,CAACf,gBAAgB,CAACO,OAAO;YAClD;YACA,qDAAqD,GACrDC,aAAaQ,UAAUC,OAAOJ;QAChC;QAEA,qDAAqD,GACrDD,eAAeI,UAAUC,OAAOH;QAEhC,OAAO;YACL,IAAIT,SAAS,QAAQ;gBACnB,qDAAqD,GACrDG,aAAaQ,UAAUE,UAAUL;YACnC;YACA,qDAAqD,GACrDD,eAAeI,UAAUE,UAAUJ;QACrC;IACF,GAAG;QAACT;QAAMC;QAAQC;KAAO;AAC3B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import './styles/constants.css';\nimport './styles/adaptivity.module.css';\nimport './styles/dynamicTokens.css';\nimport './styles/focusVisible.module.css';\nimport './styles/animationFades.module.css';\nimport './styles/transformOriginByPlacement.module.css';\nimport './styles/gaps.module.css';\n\nexport { AppRoot } from './components/AppRoot/AppRoot';\nexport { AppRootPortal } from './components/AppRoot/AppRootPortal';\nexport type { AppRootProps } from './components/AppRoot/AppRoot';\nexport type { SafeAreaInsets } from './components/AppRoot/types';\n\n/**\n * Typography\n */\nexport type { TypographyProps } from './components/Typography/Typography';\nexport { DisplayTitle } from './components/Typography/DisplayTitle/DisplayTitle';\nexport type { DisplayTitleProps } from './components/Typography/DisplayTitle/DisplayTitle';\nexport { Title } from './components/Typography/Title/Title';\nexport type { TitleProps } from './components/Typography/Title/Title';\nexport { Headline } from './components/Typography/Headline/Headline';\nexport type { HeadlineProps } from './components/Typography/Headline/Headline';\nexport { Text } from './components/Typography/Text/Text';\nexport type { TextProps } from './components/Typography/Text/Text';\nexport { Paragraph } from './components/Typography/Paragraph/Paragraph';\nexport type { ParagraphProps } from './components/Typography/Paragraph/Paragraph';\nexport { Subhead } from './components/Typography/Subhead/Subhead';\nexport type { SubheadProps } from './components/Typography/Subhead/Subhead';\nexport { Footnote } from './components/Typography/Footnote/Footnote';\nexport type { FootnoteProps } from './components/Typography/Footnote/Footnote';\nexport { Caption } from './components/Typography/Caption/Caption';\nexport type { CaptionProps } from './components/Typography/Caption/Caption';\nexport { EllipsisText } from './components/Typography/EllipsisText/EllipsisText';\nexport type { EllipsisTextProps } from './components/Typography/EllipsisText/EllipsisText';\n/**\n * Service\n */\nexport { UnstyledTextField } from './components/UnstyledTextField/UnstyledTextField';\nexport type {\n UnstyledTextFieldAsInputProps,\n UnstyledTextFieldAsTextareaProps,\n UnstyledTextFieldBaseProps,\n UnstyledTextFieldProps,\n} from './components/UnstyledTextField/UnstyledTextField';\nexport { Tappable } from './components/Tappable/Tappable';\nexport type { TappableProps } from './components/Tappable/Tappable';\nexport { FixedLayout } from './components/FixedLayout/FixedLayout';\nexport type { FixedLayoutProps } from './components/FixedLayout/FixedLayout';\nexport {\n ImageBaseContext,\n ImageBase,\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './components/ImageBase/ImageBase';\nexport type {\n ImageBaseProps,\n ImageBaseSize,\n ImageBaseExpectedIconProps,\n ImageBaseBadgeProps,\n ImageBaseOverlayProps,\n} from './components/ImageBase/ImageBase';\n\n/**\n * Primitives\n */\nexport { Button } from './components/Button/Button';\nexport type { ButtonProps } from './components/Button/Button';\nexport { IconButton } from './components/IconButton/IconButton';\nexport type { IconButtonProps } from './components/IconButton/IconButton';\nexport { ToolButton } from './components/ToolButton/ToolButton';\nexport type { ToolButtonProps } from './components/ToolButton/ToolButton';\n\n/**\n * Layout\n */\nexport { Root } from './components/Root/Root';\nexport type { RootProps } from './components/Root/Root';\nexport { View } from './components/View/View';\nexport type { ViewProps } from './components/View/View';\nexport { Panel } from './components/Panel/Panel';\nexport type { PanelProps } from './components/Panel/Panel';\nexport { PanelHeaderButton } from './components/PanelHeaderButton/PanelHeaderButton';\nexport type { PanelHeaderButtonProps } from './components/PanelHeaderButton/PanelHeaderButton';\nexport { PanelHeader } from './components/PanelHeader/PanelHeader';\nexport type { PanelHeaderProps } from './components/PanelHeader/PanelHeader';\nexport { PanelHeaderContent } from './components/PanelHeaderContent/PanelHeaderContent';\nexport type { PanelHeaderContentProps } from './components/PanelHeaderContent/PanelHeaderContent';\nexport { PanelHeaderContext } from './components/PanelHeaderContext/PanelHeaderContext';\nexport type { PanelHeaderContextProps } from './components/PanelHeaderContext/PanelHeaderContext';\nexport { SplitLayout } from './components/SplitLayout/SplitLayout';\nexport type { SplitLayoutProps } from './components/SplitLayout/SplitLayout';\nexport { SplitCol } from './components/SplitCol/SplitCol';\nexport type { SplitColProps } from './components/SplitCol/SplitCol';\nexport { Epic } from './components/Epic/Epic';\nexport type { EpicProps } from './components/Epic/Epic';\nexport { Tabbar } from './components/Tabbar/Tabbar';\nexport type { TabbarProps } from './components/Tabbar/Tabbar';\nexport { TabbarItem } from './components/TabbarItem/TabbarItem';\nexport type { TabbarItemProps } from './components/TabbarItem/TabbarItem';\nexport { ScrollArrow } from './components/ScrollArrow/ScrollArrow';\nexport type { ScrollArrowProps } from './components/ScrollArrow/ScrollArrow';\nexport { HorizontalScroll } from './components/HorizontalScroll/HorizontalScroll';\nexport type { HorizontalScrollProps } from './components/HorizontalScroll/HorizontalScroll';\nexport { AspectRatio } from './components/AspectRatio/AspectRatio';\nexport type { AspectRatioProps } from './components/AspectRatio/AspectRatio';\nexport { Flex } from './components/Flex/Flex';\nexport type { FlexProps } from './components/Flex/Flex';\nexport type { FlexItemProps } from './components/Flex/FlexItem/FlexItem';\nexport { SimpleGrid } from './components/SimpleGrid/SimpleGrid';\nexport type { SimpleGridProps } from './components/SimpleGrid/SimpleGrid';\n\n/**\n * Popouts\n */\nexport { PopoutWrapper } from './components/PopoutWrapper/PopoutWrapper';\nexport type { PopoutWrapperProps } from './components/PopoutWrapper/PopoutWrapper';\nexport { Alert } from './components/Alert/Alert';\nexport type { AlertProps, AlertActionInterface } from './components/Alert/Alert';\nexport { ActionSheet } from './components/ActionSheet/ActionSheet';\nexport type {\n ActionSheetProps,\n ActionSheetOnCloseOptions,\n} from './components/ActionSheet/ActionSheet';\nexport { ActionSheetItem } from './components/ActionSheetItem/ActionSheetItem';\nexport type { ActionSheetItemProps } from './components/ActionSheetItem/ActionSheetItem';\nexport { ActionSheetDefaultIosCloseItem } from './components/ActionSheet/ActionSheetDefaultIosCloseItem';\nexport { ScreenSpinner } from './components/ScreenSpinner/ScreenSpinner';\nexport { ScreenSpinnerContext } from './components/ScreenSpinner/context';\nexport type { ScreenSpinnerProps } from './components/ScreenSpinner/ScreenSpinner';\nexport type { ScreenSpinnerContextProps } from './components/ScreenSpinner/context';\nexport { Snackbar } from './components/Snackbar/Snackbar';\nexport type { SnackbarProps } from './components/Snackbar/Snackbar';\nexport { Tooltip } from './components/Tooltip/Tooltip';\nexport type {\n TooltipProps,\n TooltipOnShownChange,\n TooltipArrowProps,\n} from './components/Tooltip/Tooltip';\n\n/**\n * Modals\n */\nexport { ModalRoot } from './components/ModalRoot/ModalRoot';\nexport type {\n ModalRootProps,\n ModalRootContextInterface,\n UseModalRootContext,\n} from './components/ModalRoot/types';\nexport { withModalRootContext } from './components/ModalRoot/withModalRootContext';\nexport { ModalRootContext } from './components/ModalRoot/ModalRootContext';\nexport { useModalRootContext } from './components/ModalRoot/useModalRootContext';\nexport { ModalPageContent } from './components/ModalPageContent/ModalPageContent';\nexport { ModalPage } from './components/ModalPage/ModalPage';\nexport type { ModalPageProps } from './components/ModalPage/types';\nexport { ModalPageHeader } from './components/ModalPageHeader/ModalPageHeader';\nexport type { ModalPageHeaderProps } from './components/ModalPageHeader/ModalPageHeader';\nexport { ModalCard } from './components/ModalCard/ModalCard';\nexport type { ModalCardProps } from './components/ModalCard/types';\nexport { ModalDismissButton } from './components/ModalDismissButton/ModalDismissButton';\nexport type { ModalDismissButtonProps } from './components/ModalDismissButton/ModalDismissButton';\n\n/**\n * Blocks\n */\nexport { Badge } from './components/Badge/Badge';\nexport type { BadgeProps } from './components/Badge/Badge';\nexport { ContentBadge } from './components/ContentBadge/ContentBadge';\nexport type { ContentBadgeProps } from './components/ContentBadge/ContentBadge';\nexport { ButtonGroup } from './components/ButtonGroup/ButtonGroup';\nexport type { ButtonGroupProps } from './components/ButtonGroup/ButtonGroup';\nexport { Card } from './components/Card/Card';\nexport type { CardProps } from './components/Card/Card';\nexport { CardGrid } from './components/CardGrid/CardGrid';\nexport type { CardGridProps } from './components/CardGrid/CardGrid';\nexport { CardScroll } from './components/CardScroll/CardScroll';\nexport type { CardScrollProps } from './components/CardScroll/CardScroll';\nexport { ContentCard } from './components/ContentCard/ContentCard';\nexport type { ContentCardProps } from './components/ContentCard/ContentCard';\nexport { Header } from './components/Header/Header';\nexport type { HeaderProps } from './components/Header/Header';\nexport { Group } from './components/Group/Group';\nexport type { GroupProps } from './components/Group/Group';\nexport { Gradient } from './components/Gradient/Gradient';\nexport type { GradientProps } from './components/Gradient/Gradient';\nexport { List } from './components/List/List';\nexport type { ListProps } from './components/List/List';\nexport { Cell } from './components/Cell/Cell';\nexport type { CellProps } from './components/Cell/Cell';\nexport type { CellCheckboxProps } from './components/Cell/CellCheckbox/CellCheckbox';\nexport { RichCell } from './components/RichCell/RichCell';\nexport type { RichCellProps } from './components/RichCell/RichCell';\nexport { SimpleCell } from './components/SimpleCell/SimpleCell';\nexport type { SimpleCellProps } from './components/SimpleCell/SimpleCell';\nexport { CellButton } from './components/CellButton/CellButton';\nexport type { CellButtonProps } from './components/CellButton/CellButton';\nexport { HorizontalCell } from './components/HorizontalCell/HorizontalCell';\nexport type { HorizontalCellProps } from './components/HorizontalCell/HorizontalCell';\nexport { HorizontalCellShowMore } from './components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore';\nexport type { HorizontalCellShowMoreProps } from './components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore';\nexport { Footer } from './components/Footer/Footer';\nexport type { FooterProps } from './components/Footer/Footer';\nexport { InfoRow } from './components/InfoRow/InfoRow';\nexport type { InfoRowProps } from './components/InfoRow/InfoRow';\nexport { Gallery } from './components/Gallery/Gallery';\nexport type { GalleryProps } from './components/Gallery/Gallery';\nexport { Avatar } from './components/Avatar/Avatar';\nexport type { GetInitialsFontSizeType } from './components/Avatar/helpers';\nexport type {\n AvatarProps,\n AvatarBadgeProps,\n AvatarBadgeWithPresetProps,\n AvatarOverlayProps,\n} from './components/Avatar/Avatar';\nexport { GridAvatar } from './components/GridAvatar/GridAvatar';\nexport type { GridAvatarProps, GridAvatarBadgeProps } from './components/GridAvatar/GridAvatar';\nexport { Image } from './components/Image/Image';\nexport type { ImageProps, ImageBadgeProps, ImageOverlayProps } from './components/Image/Image';\nexport { Progress } from './components/Progress/Progress';\nexport type { ProgressProps } from './components/Progress/Progress';\nexport { Search } from './components/Search/Search';\nexport type { SearchProps, RenderIconButtonFn } from './components/Search/Search';\nexport { Tabs } from './components/Tabs/Tabs';\nexport type { TabsProps } from './components/Tabs/Tabs';\nexport { TabsItem } from './components/TabsItem/TabsItem';\nexport type { TabsItemProps } from './components/TabsItem/TabsItem';\nexport { Spinner } from './components/Spinner/Spinner';\nexport type { SpinnerProps } from './components/Spinner/Spinner';\nexport { PullToRefresh } from './components/PullToRefresh/PullToRefresh';\nexport type { PullToRefreshProps } from './components/PullToRefresh/PullToRefresh';\nexport { Link } from './components/Link/Link';\nexport type { LinkProps } from './components/Link/Link';\nexport { Mark } from './components/Mark/Mark';\nexport type { MarkProps } from './components/Mark/Mark';\nexport { OnboardingTooltip } from './components/OnboardingTooltip/OnboardingTooltip';\nexport type { OnboardingTooltipProps } from './components/OnboardingTooltip/OnboardingTooltip';\nexport { OnboardingTooltipContainer } from './components/OnboardingTooltip/OnboardingTooltipContainer';\nexport { Counter } from './components/Counter/Counter';\nexport type { CounterProps } from './components/Counter/Counter';\nexport { UsersStack } from './components/UsersStack/UsersStack';\nexport type {\n UsersStackProps,\n UsersStackPhoto,\n UsersStackRenderWrapperProps,\n} from './components/UsersStack/UsersStack';\nexport { Separator } from './components/Separator/Separator';\nexport type { SeparatorProps } from './components/Separator/Separator';\nexport { Spacing } from './components/Spacing/Spacing';\nexport type { SpacingProps } from './components/Spacing/Spacing';\nexport { Placeholder } from './components/Placeholder/Placeholder';\nexport type {\n PlaceholderProps,\n PlaceholderContainerProps,\n PlaceholderIconProps,\n PlaceholderTitleProps,\n PlaceholderDescriptionProps,\n PlaceholderActionsProps,\n} from './components/Placeholder/Placeholder';\nexport { Banner } from './components/Banner/Banner';\nexport type { BannerProps } from './components/Banner/Banner';\nexport { MiniInfoCell } from './components/MiniInfoCell/MiniInfoCell';\nexport type { MiniInfoCellProps } from './components/MiniInfoCell/MiniInfoCell';\nexport { WriteBar } from './components/WriteBar/WriteBar';\nexport type { WriteBarProps } from './components/WriteBar/WriteBar';\nexport { WriteBarIcon } from './components/WriteBarIcon/WriteBarIcon';\nexport type { WriteBarIconProps } from './components/WriteBarIcon/WriteBarIcon';\nexport { SubnavigationBar } from './components/SubnavigationBar/SubnavigationBar';\nexport type { SubnavigationBarProps } from './components/SubnavigationBar/SubnavigationBar';\nexport { SubnavigationButton } from './components/SubnavigationButton/SubnavigationButton';\nexport type { SubnavigationButtonProps } from './components/SubnavigationButton/SubnavigationButton';\nexport { Pagination } from './components/Pagination/Pagination';\nexport type { PaginationProps } from './components/Pagination/Pagination';\nexport type { CustomPaginationPageButtonProps } from './components/Pagination/PaginationPage/PaginationPageButton';\nexport type { CustomPaginationNavigationButton } from './components/Pagination/PaginationNavigationButton/PaginationNavigationButton';\nexport { Accordion } from './components/Accordion/Accordion';\nexport type { AccordionProps } from './components/Accordion/Accordion';\nexport type { AccordionSummaryProps } from './components/Accordion/AccordionSummary';\nexport type { AccordionContentProps } from './components/Accordion/AccordionContent';\n\n/**\n * Forms\n */\nexport { FormItem } from './components/FormItem/FormItem';\nexport type { FormItemTopProps } from './components/FormItem/FormItemTop/FormItemTop';\nexport type { FormItemTopLabelProps } from './components/FormItem/FormItemTop/FormItemTopLabel';\nexport type { FormItemTopAsideProps } from './components/FormItem/FormItemTop/FormItemTopAside';\nexport type { FormItemProps } from './components/FormItem/FormItem';\nexport { FormField } from './components/FormField/FormField';\nexport type { FormFieldProps, FieldIconsAlign } from './components/FormField/FormField';\nexport { FormLayoutGroup } from './components/FormLayoutGroup/FormLayoutGroup';\nexport type { FormLayoutGroupProps } from './components/FormLayoutGroup/FormLayoutGroup';\nexport { FormStatus } from './components/FormStatus/FormStatus';\nexport type { FormStatusProps } from './components/FormStatus/FormStatus';\nexport { Switch } from './components/Switch/Switch';\nexport type { SwitchProps } from './components/Switch/Switch';\nexport { File } from './components/File/File';\nexport type { FileProps } from './components/File/File';\nexport { DropZone } from './components/DropZone/DropZone';\nexport type { DropZoneProps } from './components/DropZone/DropZone';\nexport { Input } from './components/Input/Input';\nexport type { InputProps } from './components/Input/Input';\nexport { Chip } from './components/ChipsInputBase/Chip/Chip';\nexport type {\n ChipProps,\n ChipOption,\n RenderChipProps,\n ChipOptionValue,\n ChipOptionLabel,\n} from './components/ChipsInputBase/types';\nexport { ChipsInput } from './components/ChipsInput/ChipsInput';\nexport type { ChipsInputProps } from './components/ChipsInput/ChipsInput';\nexport { ChipsSelect } from './components/ChipsSelect/ChipsSelect';\nexport type { ChipsSelectProps } from './components/ChipsSelect/ChipsSelect';\nexport type { FormFieldClearButtonProps } from './components/FormFieldClearButton/FormFieldClearButton';\nexport { Slider } from './components/Slider/Slider';\nexport type { SliderBaseProps, SliderProps, SliderMultipleProps } from './components/Slider/Slider';\nexport { Textarea } from './components/Textarea/Textarea';\nexport type { TextareaProps } from './components/Textarea/Textarea';\nexport { SelectionControl } from './components/SelectionControl/SelectionControl';\nexport type { SelectionControlProps } from './components/SelectionControl/SelectionControl';\nexport { Radio } from './components/Radio/Radio';\nexport type { RadioProps } from './components/Radio/Radio';\nexport { RadioGroup } from './components/RadioGroup/RadioGroup';\nexport type { RadioGroupProps } from './components/RadioGroup/RadioGroup';\nexport { Checkbox } from './components/Checkbox/Checkbox';\nexport type { CheckboxProps } from './components/Checkbox/Checkbox';\nexport type { CheckboxInputIconType } from './components/Checkbox/CheckboxInput/CheckboxInput';\nexport { Select } from './components/Select/Select';\nexport { SelectMimicry } from './components/SelectMimicry/SelectMimicry';\nexport type { SelectMimicryProps } from './components/SelectMimicry/SelectMimicry';\nexport { NativeSelect } from './components/NativeSelect/NativeSelect';\nexport type { NativeSelectProps } from './components/NativeSelect/NativeSelect';\nexport { CustomSelect } from './components/CustomSelect/CustomSelect';\nexport type {\n SelectProps,\n CustomSelectOptionInterface,\n CustomSelectRenderOption,\n CustomSelectClearButtonProps,\n} from './components/CustomSelect/CustomSelect';\nexport { CustomSelectOption } from './components/CustomSelectOption/CustomSelectOption';\nexport type { CustomSelectOptionProps } from './components/CustomSelectOption/CustomSelectOption';\nexport { SegmentedControl } from './components/SegmentedControl/SegmentedControl';\nexport type {\n SegmentedControlProps,\n SegmentedControlOptionInterface,\n SegmentedControlValue,\n} from './components/SegmentedControl/SegmentedControl';\nexport { Calendar } from './components/Calendar/Calendar';\nexport type { CalendarProps } from './components/Calendar/Calendar';\nexport { CalendarRange } from './components/CalendarRange/CalendarRange';\nexport type { CalendarRangeProps } from './components/CalendarRange/CalendarRange';\nexport { DateInput } from './components/DateInput/DateInput';\nexport type { DateInputProps } from './components/DateInput/DateInput';\nexport { DateRangeInput } from './components/DateRangeInput/DateRangeInput';\nexport type { DateRangeInputProps } from './components/DateRangeInput/DateRangeInput';\nexport { Skeleton } from './components/Skeleton/Skeleton';\nexport type { SkeletonProps } from './components/Skeleton/Skeleton';\n\n/**\n * Helpers\n */\nexport { Div } from './components/Div/Div';\nexport type { DivProps } from './components/Div/Div';\nexport {\n DEFAULT_ARROW_HEIGHT as DEFAULT_ICON_ARROW_HEIGHT,\n DEFAULT_ARROW_WIDTH as DEFAULT_ICON_ARROW_WIDTH,\n DEFAULT_ARROW_PADDING as DEFAULT_ICON_ARROW_PADDING,\n DefaultIcon,\n} from './components/FloatingArrow/DefaultIcon';\nexport { FloatingArrow } from './components/FloatingArrow/FloatingArrow';\nexport type { FloatingArrowProps } from './components/FloatingArrow/FloatingArrow';\nexport { Touch } from './components/Touch/Touch';\nexport type { TouchProps, CustomTouchEvent } from './components/Touch/Touch';\nexport { PanelSpinner } from './components/PanelSpinner/PanelSpinner';\nexport type { PanelSpinnerProps } from './components/PanelSpinner/PanelSpinner';\nexport { PanelHeaderClose } from './components/PanelHeaderClose/PanelHeaderClose';\nexport type { PanelHeaderCloseProps } from './components/PanelHeaderClose/PanelHeaderClose';\nexport { PanelHeaderBack } from './components/PanelHeaderBack/PanelHeaderBack';\nexport type { PanelHeaderBackProps } from './components/PanelHeaderBack/PanelHeaderBack';\nexport { PanelHeaderSubmit } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport type { PanelHeaderSubmitProps } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport { PanelHeaderEdit } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport type { PanelHeaderEditProps } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport { ModalCardBase } from './components/ModalCardBase/ModalCardBase';\nexport type { ModalCardBaseProps } from './components/ModalCardBase/ModalCardBase';\nexport { VisuallyHidden } from './components/VisuallyHidden/VisuallyHidden';\nexport type { VisuallyHiddenProps } from './components/VisuallyHidden/VisuallyHidden';\nexport { AdaptiveIconRenderer } from './components/AdaptiveIconRenderer/AdaptiveIconRenderer';\nexport type { AdaptiveIconRendererProps } from './components/AdaptiveIconRenderer/AdaptiveIconRenderer';\n\n/**\n * Wrappers\n */\nexport { AdaptivityProvider } from './components/AdaptivityProvider/AdaptivityProvider';\nexport type { AdaptivityProviderProps } from './components/AdaptivityProvider/AdaptivityProvider';\nexport { ConfigProvider } from './components/ConfigProvider/ConfigProvider';\nexport type { ConfigProviderProps } from './components/ConfigProvider/ConfigProvider';\nexport {\n useConfigProvider,\n ConfigProviderContext,\n} from './components/ConfigProvider/ConfigProviderContext';\nexport { ColorSchemeProvider } from './components/ColorSchemeProvider/ColorSchemeProvider';\nexport type { ColorSchemeProviderProps } from './components/ColorSchemeProvider/ColorSchemeProvider';\nexport { ColorScheme } from './lib/colorScheme';\nexport type { ColorSchemeType } from './lib/colorScheme';\nexport { LocaleProvider } from './components/LocaleProvider/LocaleProvider';\nexport type { LocaleProviderProps } from './components/LocaleProvider/LocaleProvider';\nexport { PlatformProvider } from './components/PlatformProvider/PlatformProvider';\nexport type { PlatformProviderProps } from './components/PlatformProvider/PlatformProvider';\nexport { Popover } from './components/Popover/Popover';\nexport type {\n PopoverProps,\n PopoverOnShownChange,\n PopoverArrowProps,\n PopoverContentRenderProp,\n} from './components/Popover/Popover';\n\n/**\n * HOCs\n */\nexport { withPlatform } from './hoc/withPlatform';\n\n/**\n * Hooks\n */\nexport { usePlatform } from './hooks/usePlatform';\nexport { useAdaptivity } from './hooks/useAdaptivity';\nexport {\n type UseAdaptivityConditionalRender,\n useAdaptivityConditionalRender,\n} from './hooks/useAdaptivityConditionalRender';\nexport {\n type UseAdaptivityWithJSMediaQueries,\n useAdaptivityWithJSMediaQueries,\n} from './hooks/useAdaptivityWithJSMediaQueries';\nexport { useColorScheme } from './hooks/useColorScheme';\nexport { usePagination } from './hooks/usePagination';\nexport { type Orientation, useOrientationChange } from './hooks/useOrientationChange';\nexport { usePatchChildren } from './hooks/usePatchChildren';\nexport { useTodayDate } from './hooks/useTodayDate';\nexport { useScrollLock } from './components/AppRoot/ScrollContext';\nexport { useNavTransition } from './components/NavTransitionContext/NavTransitionContext';\nexport { useNavDirection } from './components/NavTransitionDirectionContext/NavTransitionDirectionContext';\nexport { useNavId } from './components/NavIdContext/useNavId';\nexport type { TransitionDirection } from './components/NavTransitionDirectionContext/NavTransitionDirectionContext';\n\n/**\n * Utils\n */\nexport { classNames } from '@vkontakte/vkjs';\nexport { animate } from './lib/animate';\nexport { defaultFilterFn as filterFnForSelect } from './lib/select';\nexport { removeObjectKeys } from './lib/removeObjectKeys';\nexport { SSRWrapper } from './lib/SSR';\nexport type { SSRWrapperProps } from './lib/SSR';\nexport { platform, Platform } from './lib/platform';\nexport {\n ViewWidth,\n ViewHeight,\n SizeType,\n getViewWidthByViewportWidth,\n getViewHeightByViewportHeight,\n} from './lib/adaptivity';\nexport {\n type Placement as FloatingPlacement,\n type PlacementWithAuto as FloatingPlacementWithAuto,\n} from './lib/floating';\nexport type { AdaptivityProps } from './components/AdaptivityProvider/AdaptivityContext';\nexport { calcInitialsAvatarColor } from './helpers/avatar';\nexport { CustomScrollView } from './components/CustomScrollView/CustomScrollView';\nexport type { CustomScrollViewProps } from './components/CustomScrollView/CustomScrollView';\nexport { Popper } from './components/Popper/Popper';\nexport type { PopperProps } from './components/Popper/Popper';\n\n/**\n * Types\n */\nexport type { AlignType, HasPlatform, HasRef, HasRootRef } from './types';\nexport type { NavIdProps } from './lib/getNavId';\nexport type { PlatformType } from './lib/platform';\nexport type { TransitionContextProps } from './components/NavTransitionContext/NavTransitionContext';\n\n/**\n * Unstable\n */\nexport { ViewInfinite as unstable_ViewInfinite } from './components/View/ViewInfinite';\nexport type { ViewInfiniteProps as unstable_ViewInfiniteProps } from './components/View/ViewInfinite';\nexport { ModalPageFooter as unstable_ModalPageFooter } from './components/ModalPageFooter/ModalPageFooter';\nexport type { ModalPageFooterProps as unstable_ModalPageFooterProps } from './components/ModalPageFooter/ModalPageFooter';\n\nimport './styles/common.css';\n"],"names":["AppRoot","AppRootPortal","DisplayTitle","Title","Headline","Text","Paragraph","Subhead","Footnote","Caption","EllipsisText","UnstyledTextField","Tappable","FixedLayout","ImageBaseContext","ImageBase","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","Button","IconButton","ToolButton","Root","View","Panel","PanelHeaderButton","PanelHeader","PanelHeaderContent","PanelHeaderContext","SplitLayout","SplitCol","Epic","Tabbar","TabbarItem","ScrollArrow","HorizontalScroll","AspectRatio","Flex","SimpleGrid","PopoutWrapper","Alert","ActionSheet","ActionSheetItem","ActionSheetDefaultIosCloseItem","ScreenSpinner","ScreenSpinnerContext","Snackbar","Tooltip","ModalRoot","withModalRootContext","ModalRootContext","useModalRootContext","ModalPageContent","ModalPage","ModalPageHeader","ModalCard","ModalDismissButton","Badge","ContentBadge","ButtonGroup","Card","CardGrid","CardScroll","ContentCard","Header","Group","Gradient","List","Cell","RichCell","SimpleCell","CellButton","HorizontalCell","HorizontalCellShowMore","Footer","InfoRow","Gallery","Avatar","GridAvatar","Image","Progress","Search","Tabs","TabsItem","Spinner","PullToRefresh","Link","Mark","OnboardingTooltip","OnboardingTooltipContainer","Counter","UsersStack","Separator","Spacing","Placeholder","Banner","MiniInfoCell","WriteBar","WriteBarIcon","SubnavigationBar","SubnavigationButton","Pagination","Accordion","FormItem","FormField","FormLayoutGroup","FormStatus","Switch","File","DropZone","Input","Chip","ChipsInput","ChipsSelect","Slider","Textarea","SelectionControl","Radio","RadioGroup","Checkbox","Select","SelectMimicry","NativeSelect","CustomSelect","CustomSelectOption","SegmentedControl","Calendar","CalendarRange","DateInput","DateRangeInput","Skeleton","Div","DEFAULT_ARROW_HEIGHT","DEFAULT_ICON_ARROW_HEIGHT","DEFAULT_ARROW_WIDTH","DEFAULT_ICON_ARROW_WIDTH","DEFAULT_ARROW_PADDING","DEFAULT_ICON_ARROW_PADDING","DefaultIcon","FloatingArrow","Touch","PanelSpinner","PanelHeaderClose","PanelHeaderBack","PanelHeaderSubmit","PanelHeaderEdit","ModalCardBase","VisuallyHidden","AdaptiveIconRenderer","AdaptivityProvider","ConfigProvider","useConfigProvider","ConfigProviderContext","ColorSchemeProvider","ColorScheme","LocaleProvider","PlatformProvider","Popover","withPlatform","usePlatform","useAdaptivity","useAdaptivityConditionalRender","useAdaptivityWithJSMediaQueries","useColorScheme","usePagination","useOrientationChange","usePatchChildren","useTodayDate","useScrollLock","useNavTransition","useNavDirection","useNavId","classNames","animate","defaultFilterFn","filterFnForSelect","removeObjectKeys","SSRWrapper","platform","Platform","ViewWidth","ViewHeight","SizeType","getViewWidthByViewportWidth","getViewHeightByViewportHeight","calcInitialsAvatarColor","CustomScrollView","Popper","ViewInfinite","unstable_ViewInfinite","ModalPageFooter","unstable_ModalPageFooter"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import './styles/constants.css';\nimport './styles/adaptivity.module.css';\nimport './styles/dynamicTokens.css';\nimport './styles/focusVisible.module.css';\nimport './styles/animationFades.module.css';\nimport './styles/transformOriginByPlacement.module.css';\nimport './styles/gaps.module.css';\n\nexport { AppRoot } from './components/AppRoot/AppRoot';\nexport { AppRootPortal } from './components/AppRoot/AppRootPortal';\nexport type { AppRootProps } from './components/AppRoot/AppRoot';\nexport type { SafeAreaInsets } from './components/AppRoot/types';\n\n/**\n * Typography\n */\nexport type { TypographyProps } from './components/Typography/Typography';\nexport { DisplayTitle } from './components/Typography/DisplayTitle/DisplayTitle';\nexport type { DisplayTitleProps } from './components/Typography/DisplayTitle/DisplayTitle';\nexport { Title } from './components/Typography/Title/Title';\nexport type { TitleProps } from './components/Typography/Title/Title';\nexport { Headline } from './components/Typography/Headline/Headline';\nexport type { HeadlineProps } from './components/Typography/Headline/Headline';\nexport { Text } from './components/Typography/Text/Text';\nexport type { TextProps } from './components/Typography/Text/Text';\nexport { Paragraph } from './components/Typography/Paragraph/Paragraph';\nexport type { ParagraphProps } from './components/Typography/Paragraph/Paragraph';\nexport { Subhead } from './components/Typography/Subhead/Subhead';\nexport type { SubheadProps } from './components/Typography/Subhead/Subhead';\nexport { Footnote } from './components/Typography/Footnote/Footnote';\nexport type { FootnoteProps } from './components/Typography/Footnote/Footnote';\nexport { Caption } from './components/Typography/Caption/Caption';\nexport type { CaptionProps } from './components/Typography/Caption/Caption';\nexport { EllipsisText } from './components/Typography/EllipsisText/EllipsisText';\nexport type { EllipsisTextProps } from './components/Typography/EllipsisText/EllipsisText';\n/**\n * Service\n */\nexport { UnstyledTextField } from './components/UnstyledTextField/UnstyledTextField';\nexport type {\n UnstyledTextFieldAsInputProps,\n UnstyledTextFieldAsTextareaProps,\n UnstyledTextFieldBaseProps,\n UnstyledTextFieldProps,\n} from './components/UnstyledTextField/UnstyledTextField';\nexport { Tappable } from './components/Tappable/Tappable';\nexport type { TappableProps } from './components/Tappable/Tappable';\nexport { FixedLayout } from './components/FixedLayout/FixedLayout';\nexport type { FixedLayoutProps } from './components/FixedLayout/FixedLayout';\nexport {\n ImageBaseContext,\n ImageBase,\n getBadgeIconSizeByImageBaseSize,\n getFallbackIconSizeByImageBaseSize,\n getOverlayIconSizeByImageBaseSize,\n} from './components/ImageBase/ImageBase';\nexport type {\n ImageBaseProps,\n ImageBaseSize,\n ImageBaseExpectedIconProps,\n ImageBaseBadgeProps,\n ImageBaseOverlayProps,\n} from './components/ImageBase/ImageBase';\n\n/**\n * Primitives\n */\nexport { Button } from './components/Button/Button';\nexport type { ButtonProps } from './components/Button/Button';\nexport { IconButton } from './components/IconButton/IconButton';\nexport type { IconButtonProps } from './components/IconButton/IconButton';\nexport { ToolButton } from './components/ToolButton/ToolButton';\nexport type { ToolButtonProps } from './components/ToolButton/ToolButton';\n\n/**\n * Layout\n */\nexport { Root } from './components/Root/Root';\nexport type { RootProps } from './components/Root/Root';\nexport { View } from './components/View/View';\nexport type { ViewProps } from './components/View/View';\nexport { Panel } from './components/Panel/Panel';\nexport type { PanelProps } from './components/Panel/Panel';\nexport { PanelHeaderButton } from './components/PanelHeaderButton/PanelHeaderButton';\nexport type { PanelHeaderButtonProps } from './components/PanelHeaderButton/PanelHeaderButton';\nexport { PanelHeader } from './components/PanelHeader/PanelHeader';\nexport type { PanelHeaderProps } from './components/PanelHeader/PanelHeader';\nexport { PanelHeaderContent } from './components/PanelHeaderContent/PanelHeaderContent';\nexport type { PanelHeaderContentProps } from './components/PanelHeaderContent/PanelHeaderContent';\nexport { PanelHeaderContext } from './components/PanelHeaderContext/PanelHeaderContext';\nexport type { PanelHeaderContextProps } from './components/PanelHeaderContext/PanelHeaderContext';\nexport { SplitLayout } from './components/SplitLayout/SplitLayout';\nexport type { SplitLayoutProps } from './components/SplitLayout/SplitLayout';\nexport { SplitCol } from './components/SplitCol/SplitCol';\nexport type { SplitColProps } from './components/SplitCol/SplitCol';\nexport { Epic } from './components/Epic/Epic';\nexport type { EpicProps } from './components/Epic/Epic';\nexport { Tabbar } from './components/Tabbar/Tabbar';\nexport type { TabbarProps } from './components/Tabbar/Tabbar';\nexport { TabbarItem } from './components/TabbarItem/TabbarItem';\nexport type { TabbarItemProps } from './components/TabbarItem/TabbarItem';\nexport { ScrollArrow } from './components/ScrollArrow/ScrollArrow';\nexport type { ScrollArrowProps } from './components/ScrollArrow/ScrollArrow';\nexport { HorizontalScroll } from './components/HorizontalScroll/HorizontalScroll';\nexport type { HorizontalScrollProps } from './components/HorizontalScroll/HorizontalScroll';\nexport { AspectRatio } from './components/AspectRatio/AspectRatio';\nexport type { AspectRatioProps } from './components/AspectRatio/AspectRatio';\nexport { Flex } from './components/Flex/Flex';\nexport type { FlexProps } from './components/Flex/Flex';\nexport type { FlexItemProps } from './components/Flex/FlexItem/FlexItem';\nexport { SimpleGrid } from './components/SimpleGrid/SimpleGrid';\nexport type { SimpleGridProps } from './components/SimpleGrid/SimpleGrid';\n\n/**\n * Popouts\n */\nexport { PopoutWrapper } from './components/PopoutWrapper/PopoutWrapper';\nexport type { PopoutWrapperProps } from './components/PopoutWrapper/PopoutWrapper';\nexport { Alert } from './components/Alert/Alert';\nexport type { AlertProps, AlertActionInterface } from './components/Alert/Alert';\nexport { ActionSheet } from './components/ActionSheet/ActionSheet';\nexport type {\n ActionSheetProps,\n ActionSheetOnCloseOptions,\n} from './components/ActionSheet/ActionSheet';\nexport { ActionSheetItem } from './components/ActionSheetItem/ActionSheetItem';\nexport type { ActionSheetItemProps } from './components/ActionSheetItem/ActionSheetItem';\nexport { ActionSheetDefaultIosCloseItem } from './components/ActionSheet/ActionSheetDefaultIosCloseItem';\nexport { ScreenSpinner } from './components/ScreenSpinner/ScreenSpinner';\nexport { ScreenSpinnerContext } from './components/ScreenSpinner/context';\nexport type { ScreenSpinnerProps } from './components/ScreenSpinner/ScreenSpinner';\nexport type { ScreenSpinnerContextProps } from './components/ScreenSpinner/context';\nexport { Snackbar } from './components/Snackbar/Snackbar';\nexport type { SnackbarProps } from './components/Snackbar/Snackbar';\nexport { Tooltip } from './components/Tooltip/Tooltip';\nexport type {\n TooltipProps,\n TooltipOnShownChange,\n TooltipArrowProps,\n} from './components/Tooltip/Tooltip';\n\n/**\n * Modals\n */\nexport { ModalRoot } from './components/ModalRoot/ModalRoot';\nexport type {\n ModalRootProps,\n ModalRootContextInterface,\n UseModalRootContext,\n} from './components/ModalRoot/types';\nexport { withModalRootContext } from './components/ModalRoot/withModalRootContext';\nexport { ModalRootContext } from './components/ModalRoot/ModalRootContext';\nexport { useModalRootContext } from './components/ModalRoot/useModalRootContext';\nexport { ModalPageContent } from './components/ModalPageContent/ModalPageContent';\nexport { ModalPage } from './components/ModalPage/ModalPage';\nexport type { ModalPageProps, ModalPageCloseReason } from './components/ModalPage/types';\nexport { ModalPageHeader } from './components/ModalPageHeader/ModalPageHeader';\nexport type { ModalPageHeaderProps } from './components/ModalPageHeader/ModalPageHeader';\nexport { ModalCard } from './components/ModalCard/ModalCard';\nexport type { ModalCardProps, ModalCardCloseReason } from './components/ModalCard/types';\nexport { ModalDismissButton } from './components/ModalDismissButton/ModalDismissButton';\nexport type { ModalDismissButtonProps } from './components/ModalDismissButton/ModalDismissButton';\n\n/**\n * Blocks\n */\nexport { Badge } from './components/Badge/Badge';\nexport type { BadgeProps } from './components/Badge/Badge';\nexport { ContentBadge } from './components/ContentBadge/ContentBadge';\nexport type { ContentBadgeProps } from './components/ContentBadge/ContentBadge';\nexport { ButtonGroup } from './components/ButtonGroup/ButtonGroup';\nexport type { ButtonGroupProps } from './components/ButtonGroup/ButtonGroup';\nexport { Card } from './components/Card/Card';\nexport type { CardProps } from './components/Card/Card';\nexport { CardGrid } from './components/CardGrid/CardGrid';\nexport type { CardGridProps } from './components/CardGrid/CardGrid';\nexport { CardScroll } from './components/CardScroll/CardScroll';\nexport type { CardScrollProps } from './components/CardScroll/CardScroll';\nexport { ContentCard } from './components/ContentCard/ContentCard';\nexport type { ContentCardProps } from './components/ContentCard/ContentCard';\nexport { Header } from './components/Header/Header';\nexport type { HeaderProps } from './components/Header/Header';\nexport { Group } from './components/Group/Group';\nexport type { GroupProps } from './components/Group/Group';\nexport { Gradient } from './components/Gradient/Gradient';\nexport type { GradientProps } from './components/Gradient/Gradient';\nexport { List } from './components/List/List';\nexport type { ListProps } from './components/List/List';\nexport { Cell } from './components/Cell/Cell';\nexport type { CellProps } from './components/Cell/Cell';\nexport type { CellCheckboxProps } from './components/Cell/CellCheckbox/CellCheckbox';\nexport { RichCell } from './components/RichCell/RichCell';\nexport type { RichCellProps } from './components/RichCell/RichCell';\nexport { SimpleCell } from './components/SimpleCell/SimpleCell';\nexport type { SimpleCellProps } from './components/SimpleCell/SimpleCell';\nexport { CellButton } from './components/CellButton/CellButton';\nexport type { CellButtonProps } from './components/CellButton/CellButton';\nexport { HorizontalCell } from './components/HorizontalCell/HorizontalCell';\nexport type { HorizontalCellProps } from './components/HorizontalCell/HorizontalCell';\nexport { HorizontalCellShowMore } from './components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore';\nexport type { HorizontalCellShowMoreProps } from './components/HorizontalScroll/HorizontalCellShowMore/HorizontalCellShowMore';\nexport { Footer } from './components/Footer/Footer';\nexport type { FooterProps } from './components/Footer/Footer';\nexport { InfoRow } from './components/InfoRow/InfoRow';\nexport type { InfoRowProps } from './components/InfoRow/InfoRow';\nexport { Gallery } from './components/Gallery/Gallery';\nexport type { GalleryProps } from './components/Gallery/Gallery';\nexport { Avatar } from './components/Avatar/Avatar';\nexport type { GetInitialsFontSizeType } from './components/Avatar/helpers';\nexport type {\n AvatarProps,\n AvatarBadgeProps,\n AvatarBadgeWithPresetProps,\n AvatarOverlayProps,\n} from './components/Avatar/Avatar';\nexport { GridAvatar } from './components/GridAvatar/GridAvatar';\nexport type { GridAvatarProps, GridAvatarBadgeProps } from './components/GridAvatar/GridAvatar';\nexport { Image } from './components/Image/Image';\nexport type { ImageProps, ImageBadgeProps, ImageOverlayProps } from './components/Image/Image';\nexport { Progress } from './components/Progress/Progress';\nexport type { ProgressProps } from './components/Progress/Progress';\nexport { Search } from './components/Search/Search';\nexport type { SearchProps, RenderIconButtonFn } from './components/Search/Search';\nexport { Tabs } from './components/Tabs/Tabs';\nexport type { TabsProps } from './components/Tabs/Tabs';\nexport { TabsItem } from './components/TabsItem/TabsItem';\nexport type { TabsItemProps } from './components/TabsItem/TabsItem';\nexport { Spinner } from './components/Spinner/Spinner';\nexport type { SpinnerProps } from './components/Spinner/Spinner';\nexport { PullToRefresh } from './components/PullToRefresh/PullToRefresh';\nexport type { PullToRefreshProps } from './components/PullToRefresh/PullToRefresh';\nexport { Link } from './components/Link/Link';\nexport type { LinkProps } from './components/Link/Link';\nexport { Mark } from './components/Mark/Mark';\nexport type { MarkProps } from './components/Mark/Mark';\nexport { OnboardingTooltip } from './components/OnboardingTooltip/OnboardingTooltip';\nexport type { OnboardingTooltipProps } from './components/OnboardingTooltip/OnboardingTooltip';\nexport { OnboardingTooltipContainer } from './components/OnboardingTooltip/OnboardingTooltipContainer';\nexport { Counter } from './components/Counter/Counter';\nexport type { CounterProps } from './components/Counter/Counter';\nexport { UsersStack } from './components/UsersStack/UsersStack';\nexport type {\n UsersStackProps,\n UsersStackPhoto,\n UsersStackRenderWrapperProps,\n} from './components/UsersStack/UsersStack';\nexport { Separator } from './components/Separator/Separator';\nexport type { SeparatorProps } from './components/Separator/Separator';\nexport { Spacing } from './components/Spacing/Spacing';\nexport type { SpacingProps } from './components/Spacing/Spacing';\nexport { Placeholder } from './components/Placeholder/Placeholder';\nexport type {\n PlaceholderProps,\n PlaceholderContainerProps,\n PlaceholderIconProps,\n PlaceholderTitleProps,\n PlaceholderDescriptionProps,\n PlaceholderActionsProps,\n} from './components/Placeholder/Placeholder';\nexport { Banner } from './components/Banner/Banner';\nexport type { BannerProps } from './components/Banner/Banner';\nexport { MiniInfoCell } from './components/MiniInfoCell/MiniInfoCell';\nexport type { MiniInfoCellProps } from './components/MiniInfoCell/MiniInfoCell';\nexport { WriteBar } from './components/WriteBar/WriteBar';\nexport type { WriteBarProps } from './components/WriteBar/WriteBar';\nexport { WriteBarIcon } from './components/WriteBarIcon/WriteBarIcon';\nexport type { WriteBarIconProps } from './components/WriteBarIcon/WriteBarIcon';\nexport { SubnavigationBar } from './components/SubnavigationBar/SubnavigationBar';\nexport type { SubnavigationBarProps } from './components/SubnavigationBar/SubnavigationBar';\nexport { SubnavigationButton } from './components/SubnavigationButton/SubnavigationButton';\nexport type { SubnavigationButtonProps } from './components/SubnavigationButton/SubnavigationButton';\nexport { Pagination } from './components/Pagination/Pagination';\nexport type { PaginationProps } from './components/Pagination/Pagination';\nexport type { CustomPaginationPageButtonProps } from './components/Pagination/PaginationPage/PaginationPageButton';\nexport type { CustomPaginationNavigationButton } from './components/Pagination/PaginationNavigationButton/PaginationNavigationButton';\nexport { Accordion } from './components/Accordion/Accordion';\nexport type { AccordionProps } from './components/Accordion/Accordion';\nexport type { AccordionSummaryProps } from './components/Accordion/AccordionSummary';\nexport type { AccordionContentProps } from './components/Accordion/AccordionContent';\n\n/**\n * Forms\n */\nexport { FormItem } from './components/FormItem/FormItem';\nexport type { FormItemTopProps } from './components/FormItem/FormItemTop/FormItemTop';\nexport type { FormItemTopLabelProps } from './components/FormItem/FormItemTop/FormItemTopLabel';\nexport type { FormItemTopAsideProps } from './components/FormItem/FormItemTop/FormItemTopAside';\nexport type { FormItemProps } from './components/FormItem/FormItem';\nexport { FormField } from './components/FormField/FormField';\nexport type { FormFieldProps, FieldIconsAlign } from './components/FormField/FormField';\nexport { FormLayoutGroup } from './components/FormLayoutGroup/FormLayoutGroup';\nexport type { FormLayoutGroupProps } from './components/FormLayoutGroup/FormLayoutGroup';\nexport { FormStatus } from './components/FormStatus/FormStatus';\nexport type { FormStatusProps } from './components/FormStatus/FormStatus';\nexport { Switch } from './components/Switch/Switch';\nexport type { SwitchProps } from './components/Switch/Switch';\nexport { File } from './components/File/File';\nexport type { FileProps } from './components/File/File';\nexport { DropZone } from './components/DropZone/DropZone';\nexport type { DropZoneProps } from './components/DropZone/DropZone';\nexport { Input } from './components/Input/Input';\nexport type { InputProps } from './components/Input/Input';\nexport { Chip } from './components/ChipsInputBase/Chip/Chip';\nexport type {\n ChipProps,\n ChipOption,\n RenderChipProps,\n ChipOptionValue,\n ChipOptionLabel,\n} from './components/ChipsInputBase/types';\nexport { ChipsInput } from './components/ChipsInput/ChipsInput';\nexport type { ChipsInputProps } from './components/ChipsInput/ChipsInput';\nexport { ChipsSelect } from './components/ChipsSelect/ChipsSelect';\nexport type { ChipsSelectProps } from './components/ChipsSelect/ChipsSelect';\nexport type { FormFieldClearButtonProps } from './components/FormFieldClearButton/FormFieldClearButton';\nexport { Slider } from './components/Slider/Slider';\nexport type { SliderBaseProps, SliderProps, SliderMultipleProps } from './components/Slider/Slider';\nexport { Textarea } from './components/Textarea/Textarea';\nexport type { TextareaProps } from './components/Textarea/Textarea';\nexport { SelectionControl } from './components/SelectionControl/SelectionControl';\nexport type { SelectionControlProps } from './components/SelectionControl/SelectionControl';\nexport { Radio } from './components/Radio/Radio';\nexport type { RadioProps } from './components/Radio/Radio';\nexport { RadioGroup } from './components/RadioGroup/RadioGroup';\nexport type { RadioGroupProps } from './components/RadioGroup/RadioGroup';\nexport { Checkbox } from './components/Checkbox/Checkbox';\nexport type { CheckboxProps } from './components/Checkbox/Checkbox';\nexport type { CheckboxInputIconType } from './components/Checkbox/CheckboxInput/CheckboxInput';\nexport { Select } from './components/Select/Select';\nexport { SelectMimicry } from './components/SelectMimicry/SelectMimicry';\nexport type { SelectMimicryProps } from './components/SelectMimicry/SelectMimicry';\nexport { NativeSelect } from './components/NativeSelect/NativeSelect';\nexport type { NativeSelectProps } from './components/NativeSelect/NativeSelect';\nexport { CustomSelect } from './components/CustomSelect/CustomSelect';\nexport type {\n SelectProps,\n CustomSelectOptionInterface,\n CustomSelectRenderOption,\n CustomSelectClearButtonProps,\n} from './components/CustomSelect/CustomSelect';\nexport { CustomSelectOption } from './components/CustomSelectOption/CustomSelectOption';\nexport type { CustomSelectOptionProps } from './components/CustomSelectOption/CustomSelectOption';\nexport { SegmentedControl } from './components/SegmentedControl/SegmentedControl';\nexport type {\n SegmentedControlProps,\n SegmentedControlOptionInterface,\n SegmentedControlValue,\n} from './components/SegmentedControl/SegmentedControl';\nexport { Calendar } from './components/Calendar/Calendar';\nexport type { CalendarProps } from './components/Calendar/Calendar';\nexport { CalendarRange } from './components/CalendarRange/CalendarRange';\nexport type { CalendarRangeProps } from './components/CalendarRange/CalendarRange';\nexport { DateInput } from './components/DateInput/DateInput';\nexport type { DateInputProps } from './components/DateInput/DateInput';\nexport { DateRangeInput } from './components/DateRangeInput/DateRangeInput';\nexport type { DateRangeInputProps } from './components/DateRangeInput/DateRangeInput';\nexport { Skeleton } from './components/Skeleton/Skeleton';\nexport type { SkeletonProps } from './components/Skeleton/Skeleton';\n\n/**\n * Helpers\n */\nexport { Div } from './components/Div/Div';\nexport type { DivProps } from './components/Div/Div';\nexport {\n DEFAULT_ARROW_HEIGHT as DEFAULT_ICON_ARROW_HEIGHT,\n DEFAULT_ARROW_WIDTH as DEFAULT_ICON_ARROW_WIDTH,\n DEFAULT_ARROW_PADDING as DEFAULT_ICON_ARROW_PADDING,\n DefaultIcon,\n} from './components/FloatingArrow/DefaultIcon';\nexport { FloatingArrow } from './components/FloatingArrow/FloatingArrow';\nexport type { FloatingArrowProps } from './components/FloatingArrow/FloatingArrow';\nexport { Touch } from './components/Touch/Touch';\nexport type { TouchProps, CustomTouchEvent } from './components/Touch/Touch';\nexport { PanelSpinner } from './components/PanelSpinner/PanelSpinner';\nexport type { PanelSpinnerProps } from './components/PanelSpinner/PanelSpinner';\nexport { PanelHeaderClose } from './components/PanelHeaderClose/PanelHeaderClose';\nexport type { PanelHeaderCloseProps } from './components/PanelHeaderClose/PanelHeaderClose';\nexport { PanelHeaderBack } from './components/PanelHeaderBack/PanelHeaderBack';\nexport type { PanelHeaderBackProps } from './components/PanelHeaderBack/PanelHeaderBack';\nexport { PanelHeaderSubmit } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport type { PanelHeaderSubmitProps } from './components/PanelHeaderSubmit/PanelHeaderSubmit';\nexport { PanelHeaderEdit } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport type { PanelHeaderEditProps } from './components/PanelHeaderEdit/PanelHeaderEdit';\nexport { ModalCardBase } from './components/ModalCardBase/ModalCardBase';\nexport type { ModalCardBaseProps } from './components/ModalCardBase/ModalCardBase';\nexport { VisuallyHidden } from './components/VisuallyHidden/VisuallyHidden';\nexport type { VisuallyHiddenProps } from './components/VisuallyHidden/VisuallyHidden';\nexport { AdaptiveIconRenderer } from './components/AdaptiveIconRenderer/AdaptiveIconRenderer';\nexport type { AdaptiveIconRendererProps } from './components/AdaptiveIconRenderer/AdaptiveIconRenderer';\n\n/**\n * Wrappers\n */\nexport { AdaptivityProvider } from './components/AdaptivityProvider/AdaptivityProvider';\nexport type { AdaptivityProviderProps } from './components/AdaptivityProvider/AdaptivityProvider';\nexport { ConfigProvider } from './components/ConfigProvider/ConfigProvider';\nexport type { ConfigProviderProps } from './components/ConfigProvider/ConfigProvider';\nexport {\n useConfigProvider,\n ConfigProviderContext,\n} from './components/ConfigProvider/ConfigProviderContext';\nexport { ColorSchemeProvider } from './components/ColorSchemeProvider/ColorSchemeProvider';\nexport type { ColorSchemeProviderProps } from './components/ColorSchemeProvider/ColorSchemeProvider';\nexport { ColorScheme } from './lib/colorScheme';\nexport type { ColorSchemeType } from './lib/colorScheme';\nexport { LocaleProvider } from './components/LocaleProvider/LocaleProvider';\nexport type { LocaleProviderProps } from './components/LocaleProvider/LocaleProvider';\nexport { PlatformProvider } from './components/PlatformProvider/PlatformProvider';\nexport type { PlatformProviderProps } from './components/PlatformProvider/PlatformProvider';\nexport { Popover } from './components/Popover/Popover';\nexport type {\n PopoverProps,\n PopoverOnShownChange,\n PopoverArrowProps,\n PopoverContentRenderProp,\n} from './components/Popover/Popover';\n\n/**\n * HOCs\n */\nexport { withPlatform } from './hoc/withPlatform';\n\n/**\n * Hooks\n */\nexport { usePlatform } from './hooks/usePlatform';\nexport { useAdaptivity } from './hooks/useAdaptivity';\nexport {\n type UseAdaptivityConditionalRender,\n useAdaptivityConditionalRender,\n} from './hooks/useAdaptivityConditionalRender';\nexport {\n type UseAdaptivityWithJSMediaQueries,\n useAdaptivityWithJSMediaQueries,\n} from './hooks/useAdaptivityWithJSMediaQueries';\nexport { useColorScheme } from './hooks/useColorScheme';\nexport { usePagination } from './hooks/usePagination';\nexport { type Orientation, useOrientationChange } from './hooks/useOrientationChange';\nexport { usePatchChildren } from './hooks/usePatchChildren';\nexport { useTodayDate } from './hooks/useTodayDate';\nexport { useScrollLock } from './components/AppRoot/ScrollContext';\nexport { useNavTransition } from './components/NavTransitionContext/NavTransitionContext';\nexport { useNavDirection } from './components/NavTransitionDirectionContext/NavTransitionDirectionContext';\nexport { useNavId } from './components/NavIdContext/useNavId';\nexport type { TransitionDirection } from './components/NavTransitionDirectionContext/NavTransitionDirectionContext';\n\n/**\n * Utils\n */\nexport { classNames } from '@vkontakte/vkjs';\nexport { animate } from './lib/animate';\nexport { defaultFilterFn as filterFnForSelect } from './lib/select';\nexport { removeObjectKeys } from './lib/removeObjectKeys';\nexport { SSRWrapper } from './lib/SSR';\nexport type { SSRWrapperProps } from './lib/SSR';\nexport { platform, Platform } from './lib/platform';\nexport {\n ViewWidth,\n ViewHeight,\n SizeType,\n getViewWidthByViewportWidth,\n getViewHeightByViewportHeight,\n} from './lib/adaptivity';\nexport {\n type Placement as FloatingPlacement,\n type PlacementWithAuto as FloatingPlacementWithAuto,\n} from './lib/floating';\nexport type { AdaptivityProps } from './components/AdaptivityProvider/AdaptivityContext';\nexport { calcInitialsAvatarColor } from './helpers/avatar';\nexport { CustomScrollView } from './components/CustomScrollView/CustomScrollView';\nexport type { CustomScrollViewProps } from './components/CustomScrollView/CustomScrollView';\nexport { Popper } from './components/Popper/Popper';\nexport type { PopperProps } from './components/Popper/Popper';\n\n/**\n * Types\n */\nexport type { AlignType, HasPlatform, HasRef, HasRootRef } from './types';\nexport type { NavIdProps } from './lib/getNavId';\nexport type { PlatformType } from './lib/platform';\nexport type { TransitionContextProps } from './components/NavTransitionContext/NavTransitionContext';\n\n/**\n * Unstable\n */\nexport { ViewInfinite as unstable_ViewInfinite } from './components/View/ViewInfinite';\nexport type { ViewInfiniteProps as unstable_ViewInfiniteProps } from './components/View/ViewInfinite';\nexport { ModalPageFooter as unstable_ModalPageFooter } from './components/ModalPageFooter/ModalPageFooter';\nexport type { ModalPageFooterProps as unstable_ModalPageFooterProps } from './components/ModalPageFooter/ModalPageFooter';\n\nimport './styles/common.css';\n"],"names":["AppRoot","AppRootPortal","DisplayTitle","Title","Headline","Text","Paragraph","Subhead","Footnote","Caption","EllipsisText","UnstyledTextField","Tappable","FixedLayout","ImageBaseContext","ImageBase","getBadgeIconSizeByImageBaseSize","getFallbackIconSizeByImageBaseSize","getOverlayIconSizeByImageBaseSize","Button","IconButton","ToolButton","Root","View","Panel","PanelHeaderButton","PanelHeader","PanelHeaderContent","PanelHeaderContext","SplitLayout","SplitCol","Epic","Tabbar","TabbarItem","ScrollArrow","HorizontalScroll","AspectRatio","Flex","SimpleGrid","PopoutWrapper","Alert","ActionSheet","ActionSheetItem","ActionSheetDefaultIosCloseItem","ScreenSpinner","ScreenSpinnerContext","Snackbar","Tooltip","ModalRoot","withModalRootContext","ModalRootContext","useModalRootContext","ModalPageContent","ModalPage","ModalPageHeader","ModalCard","ModalDismissButton","Badge","ContentBadge","ButtonGroup","Card","CardGrid","CardScroll","ContentCard","Header","Group","Gradient","List","Cell","RichCell","SimpleCell","CellButton","HorizontalCell","HorizontalCellShowMore","Footer","InfoRow","Gallery","Avatar","GridAvatar","Image","Progress","Search","Tabs","TabsItem","Spinner","PullToRefresh","Link","Mark","OnboardingTooltip","OnboardingTooltipContainer","Counter","UsersStack","Separator","Spacing","Placeholder","Banner","MiniInfoCell","WriteBar","WriteBarIcon","SubnavigationBar","SubnavigationButton","Pagination","Accordion","FormItem","FormField","FormLayoutGroup","FormStatus","Switch","File","DropZone","Input","Chip","ChipsInput","ChipsSelect","Slider","Textarea","SelectionControl","Radio","RadioGroup","Checkbox","Select","SelectMimicry","NativeSelect","CustomSelect","CustomSelectOption","SegmentedControl","Calendar","CalendarRange","DateInput","DateRangeInput","Skeleton","Div","DEFAULT_ARROW_HEIGHT","DEFAULT_ICON_ARROW_HEIGHT","DEFAULT_ARROW_WIDTH","DEFAULT_ICON_ARROW_WIDTH","DEFAULT_ARROW_PADDING","DEFAULT_ICON_ARROW_PADDING","DefaultIcon","FloatingArrow","Touch","PanelSpinner","PanelHeaderClose","PanelHeaderBack","PanelHeaderSubmit","PanelHeaderEdit","ModalCardBase","VisuallyHidden","AdaptiveIconRenderer","AdaptivityProvider","ConfigProvider","useConfigProvider","ConfigProviderContext","ColorSchemeProvider","ColorScheme","LocaleProvider","PlatformProvider","Popover","withPlatform","usePlatform","useAdaptivity","useAdaptivityConditionalRender","useAdaptivityWithJSMediaQueries","useColorScheme","usePagination","useOrientationChange","usePatchChildren","useTodayDate","useScrollLock","useNavTransition","useNavDirection","useNavId","classNames","animate","defaultFilterFn","filterFnForSelect","removeObjectKeys","SSRWrapper","platform","Platform","ViewWidth","ViewHeight","SizeType","getViewWidthByViewportWidth","getViewHeightByViewportHeight","calcInitialsAvatarColor","CustomScrollView","Popper","ViewInfinite","unstable_ViewInfinite","ModalPageFooter","unstable_ModalPageFooter"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { getWindow } from "../dom.js";
2
- import { BREAKPOINTS, MEDIA_QUERIES } from "./breakpoints.js";
1
+ import { BREAKPOINTS } from "./breakpoints.js";
3
2
  import { VIEW_WIDTH_TO_CSS_BREAKPOINT_MAP, ViewHeight, ViewWidth } from "./constants.js";
4
3
  /**
5
4
  * @public
@@ -78,11 +77,6 @@ export function tryToCheckIsDesktop(viewWidth, viewHeight, hasPointer, platform)
78
77
  const otherParametersIsLikeDesktop = hasPointer || (viewHeight !== undefined ? viewHeight >= ViewHeight.MEDIUM : false);
79
78
  return widthIsLikeDesktop && otherParametersIsLikeDesktop || IS_VKCOM_CRUTCH;
80
79
  }
81
- export function isSmallTablePlus(el) {
82
- const win = getWindow(el);
83
- // eslint-disable-next-line no-restricted-properties
84
- return win ? win.matchMedia(MEDIA_QUERIES.SMALL_TABLET_PLUS).matches : false;
85
- }
86
80
  /**
87
81
  * Конвертирует `viewWidth` в CSS брейкпоинты (см. тесты для наглядности).
88
82
  *
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/adaptivity/functions.ts"],"sourcesContent":["import type { Exact } from '../../types';\nimport { getWindow } from '../dom';\nimport { type PlatformType } from '../platform';\nimport { BREAKPOINTS, MEDIA_QUERIES } from './breakpoints';\nimport {\n type SizeTypeValues,\n VIEW_WIDTH_TO_CSS_BREAKPOINT_MAP,\n ViewHeight,\n type ViewHeightType,\n ViewWidth,\n type ViewWidthType,\n} from './constants';\nimport type { CSSBreakpointsClassNames, MediaQueries } from './types';\n\n/**\n * @public\n */\nexport function getViewWidthByViewportWidth(viewportWidth: number): ViewWidthType {\n if (viewportWidth >= BREAKPOINTS.DESKTOP) {\n return ViewWidth.DESKTOP;\n }\n if (viewportWidth >= BREAKPOINTS.TABLET) {\n return ViewWidth.TABLET;\n }\n if (viewportWidth >= BREAKPOINTS.SMALL_TABLET) {\n return ViewWidth.SMALL_TABLET;\n }\n if (viewportWidth >= BREAKPOINTS.MOBILE) {\n return ViewWidth.MOBILE;\n }\n return ViewWidth.SMALL_MOBILE;\n}\n\nexport function getViewWidthByMediaQueries(mediaQueries: MediaQueries): ViewWidthType {\n /* eslint-disable no-restricted-properties */\n if (mediaQueries.desktopPlus.matches) {\n return ViewWidth.DESKTOP;\n }\n if (mediaQueries.tablet.matches) {\n return ViewWidth.TABLET;\n }\n if (mediaQueries.smallTablet.matches) {\n return ViewWidth.SMALL_TABLET;\n }\n if (mediaQueries.mobile.matches) {\n return ViewWidth.MOBILE;\n }\n /* eslint-enable no-restricted-properties */\n return ViewWidth.SMALL_MOBILE;\n}\n\n/**\n * @public\n */\nexport function getViewHeightByViewportHeight(viewportHeight: number): ViewHeightType {\n if (viewportHeight >= BREAKPOINTS.MEDIUM_HEIGHT) {\n return ViewHeight.MEDIUM;\n }\n if (viewportHeight >= BREAKPOINTS.MOBILE_LANDSCAPE_HEIGHT) {\n return ViewHeight.SMALL;\n }\n return ViewHeight.EXTRA_SMALL;\n}\n\nexport function getViewHeightByMediaQueries(mediaQueries: MediaQueries): ViewHeightType {\n /* eslint-disable no-restricted-properties */\n if (mediaQueries.mediumHeight.matches) {\n return ViewHeight.MEDIUM;\n }\n if (mediaQueries.mobileLandscapeHeight.matches) {\n return ViewHeight.SMALL;\n }\n /* eslint-enable no-restricted-properties */\n return ViewHeight.EXTRA_SMALL;\n}\n\nexport function getSizeX(viewWidth: ViewWidthType): SizeTypeValues {\n return viewWidth <= ViewWidth.MOBILE ? 'compact' : 'regular';\n}\n\nexport function isCompactByViewWidth(\n viewWidth: ViewWidthType | undefined,\n hasPointer?: boolean,\n): boolean | undefined {\n return viewWidth !== undefined && viewWidth >= ViewWidth.SMALL_TABLET && hasPointer;\n}\n\nexport function isCompactByViewHeight(viewHeight: ViewHeightType | undefined): boolean {\n return viewHeight !== undefined && viewHeight <= ViewHeight.EXTRA_SMALL;\n}\n\nexport function getSizeY(\n viewWidth: ViewWidthType,\n viewHeight: ViewHeightType,\n hasPointer: boolean,\n): SizeTypeValues {\n if (isCompactByViewWidth(viewWidth, hasPointer) || isCompactByViewHeight(viewHeight)) {\n return 'compact';\n }\n return 'regular';\n}\n\n/**\n * Проверка на Desktop.\n *\n * Функция гарантировано вернёт `boolean` или `null` в зависимости от условий.\n *\n * Возвращаем `null` в случае, если у нас недостаточно данных, чтобы определить платформу.\n *\n * ⚠️ При передаче 'vkcom' всегда будет возвращать `true`.\n */\nexport function tryToCheckIsDesktop(viewWidth: ViewWidthType, viewHeight: ViewHeightType, hasPointer: undefined | boolean, platform?: PlatformType): boolean; // prettier-ignore\nexport function tryToCheckIsDesktop(viewWidth: ViewWidthType, viewHeight: undefined, hasPointer: boolean, platform?: PlatformType): boolean; // prettier-ignore\nexport function tryToCheckIsDesktop(viewWidth: undefined | ViewWidthType, viewHeight: undefined, hasPointer: undefined, platform?: PlatformType): null; // prettier-ignore\nexport function tryToCheckIsDesktop(viewWidth: undefined, viewHeight: undefined | ViewHeightType, hasPointer: undefined, platform?: PlatformType): null; // prettier-ignore\nexport function tryToCheckIsDesktop(viewWidth: undefined, viewHeight: undefined, hasPointer: undefined | boolean, platform?: PlatformType): null; // prettier-ignore\nexport function tryToCheckIsDesktop(viewWidth: undefined | ViewWidthType, viewHeight: undefined | ViewHeightType, hasPointer: undefined | boolean, platform?: PlatformType): null | boolean; // prettier-ignore\nexport function tryToCheckIsDesktop(\n viewWidth: undefined | ViewWidthType,\n viewHeight: undefined | ViewHeightType,\n hasPointer: undefined | boolean,\n platform?: PlatformType,\n): null | boolean {\n // см. https://github.com/VKCOM/VKUI/pull/2473\n const IS_VKCOM_CRUTCH = platform === 'vkcom';\n\n if (\n ((viewWidth === undefined || hasPointer === undefined) &&\n (viewWidth === undefined || viewHeight === undefined)) ||\n (hasPointer === undefined && viewHeight === undefined)\n ) {\n return IS_VKCOM_CRUTCH ? true : null;\n }\n\n const widthIsLikeDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n const otherParametersIsLikeDesktop =\n hasPointer || (viewHeight !== undefined ? viewHeight >= ViewHeight.MEDIUM : false);\n\n return (widthIsLikeDesktop && otherParametersIsLikeDesktop) || IS_VKCOM_CRUTCH;\n}\n\nexport function isSmallTablePlus(el: HTMLElement) {\n const win = getWindow(el);\n // eslint-disable-next-line no-restricted-properties\n return win ? win.matchMedia(MEDIA_QUERIES.SMALL_TABLET_PLUS).matches : false;\n}\n\n/**\n * Конвертирует `viewWidth` в CSS брейкпоинты (см. тесты для наглядности).\n *\n * > Note: используется восклицательный знак (!), чтобы принудить TS поверить, что св-во точно не может быть\n * > `undefined`. Это всё из-за применения `Partial<...>` для объекта.\n */\nexport function viewWidthToClassName<T extends Partial<CSSBreakpointsClassNames>>(\n breakpointClassNames: Exact<CSSBreakpointsClassNames, T>,\n viewWidth: ViewWidthType | 'none' = 'none',\n): string | null {\n if (viewWidth === 'none') {\n return breakpointClassNames.hasOwnProperty('none') ? breakpointClassNames['none']! : null;\n }\n\n const breakpoints: string[] = [];\n const breakpointName = VIEW_WIDTH_TO_CSS_BREAKPOINT_MAP[viewWidth];\n\n if (breakpointClassNames.hasOwnProperty(breakpointName)) {\n breakpoints.push(breakpointClassNames[breakpointName]!);\n }\n\n if (viewWidth >= ViewWidth.MOBILE) {\n if (breakpointClassNames.hasOwnProperty('mobilePlus')) {\n breakpoints.push(breakpointClassNames['mobilePlus']!);\n }\n }\n\n if (viewWidth >= ViewWidth.SMALL_TABLET) {\n if (breakpointClassNames.hasOwnProperty('smallTabletPlus')) {\n breakpoints.push(breakpointClassNames['smallTabletPlus']!);\n }\n } else {\n if (breakpointClassNames.hasOwnProperty('smallTabletMinus')) {\n breakpoints.push(breakpointClassNames['smallTabletMinus']!);\n }\n }\n\n if (viewWidth >= ViewWidth.TABLET) {\n if (breakpointClassNames.hasOwnProperty('tabletPlus')) {\n breakpoints.push(breakpointClassNames['tabletPlus']!);\n }\n } else {\n if (breakpointClassNames.hasOwnProperty('tabletMinus')) {\n breakpoints.push(breakpointClassNames['tabletMinus']!);\n }\n }\n\n return breakpoints.length > 0 ? breakpoints.join(' ') : null;\n}\n"],"names":["getWindow","BREAKPOINTS","MEDIA_QUERIES","VIEW_WIDTH_TO_CSS_BREAKPOINT_MAP","ViewHeight","ViewWidth","getViewWidthByViewportWidth","viewportWidth","DESKTOP","TABLET","SMALL_TABLET","MOBILE","SMALL_MOBILE","getViewWidthByMediaQueries","mediaQueries","desktopPlus","matches","tablet","smallTablet","mobile","getViewHeightByViewportHeight","viewportHeight","MEDIUM_HEIGHT","MEDIUM","MOBILE_LANDSCAPE_HEIGHT","SMALL","EXTRA_SMALL","getViewHeightByMediaQueries","mediumHeight","mobileLandscapeHeight","getSizeX","viewWidth","isCompactByViewWidth","hasPointer","undefined","isCompactByViewHeight","viewHeight","getSizeY","tryToCheckIsDesktop","platform","IS_VKCOM_CRUTCH","widthIsLikeDesktop","otherParametersIsLikeDesktop","isSmallTablePlus","el","win","matchMedia","SMALL_TABLET_PLUS","viewWidthToClassName","breakpointClassNames","hasOwnProperty","breakpoints","breakpointName","push","length","join"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/lib/adaptivity/functions.ts"],"sourcesContent":["import type { Exact } from '../../types';\nimport { type PlatformType } from '../platform';\nimport { BREAKPOINTS } from './breakpoints';\nimport {\n type SizeTypeValues,\n VIEW_WIDTH_TO_CSS_BREAKPOINT_MAP,\n ViewHeight,\n type ViewHeightType,\n ViewWidth,\n type ViewWidthType,\n} from './constants';\nimport type { CSSBreakpointsClassNames, MediaQueries } from './types';\n\n/**\n * @public\n */\nexport function getViewWidthByViewportWidth(viewportWidth: number): ViewWidthType {\n if (viewportWidth >= BREAKPOINTS.DESKTOP) {\n return ViewWidth.DESKTOP;\n }\n if (viewportWidth >= BREAKPOINTS.TABLET) {\n return ViewWidth.TABLET;\n }\n if (viewportWidth >= BREAKPOINTS.SMALL_TABLET) {\n return ViewWidth.SMALL_TABLET;\n }\n if (viewportWidth >= BREAKPOINTS.MOBILE) {\n return ViewWidth.MOBILE;\n }\n return ViewWidth.SMALL_MOBILE;\n}\n\nexport function getViewWidthByMediaQueries(mediaQueries: MediaQueries): ViewWidthType {\n /* eslint-disable no-restricted-properties */\n if (mediaQueries.desktopPlus.matches) {\n return ViewWidth.DESKTOP;\n }\n if (mediaQueries.tablet.matches) {\n return ViewWidth.TABLET;\n }\n if (mediaQueries.smallTablet.matches) {\n return ViewWidth.SMALL_TABLET;\n }\n if (mediaQueries.mobile.matches) {\n return ViewWidth.MOBILE;\n }\n /* eslint-enable no-restricted-properties */\n return ViewWidth.SMALL_MOBILE;\n}\n\n/**\n * @public\n */\nexport function getViewHeightByViewportHeight(viewportHeight: number): ViewHeightType {\n if (viewportHeight >= BREAKPOINTS.MEDIUM_HEIGHT) {\n return ViewHeight.MEDIUM;\n }\n if (viewportHeight >= BREAKPOINTS.MOBILE_LANDSCAPE_HEIGHT) {\n return ViewHeight.SMALL;\n }\n return ViewHeight.EXTRA_SMALL;\n}\n\nexport function getViewHeightByMediaQueries(mediaQueries: MediaQueries): ViewHeightType {\n /* eslint-disable no-restricted-properties */\n if (mediaQueries.mediumHeight.matches) {\n return ViewHeight.MEDIUM;\n }\n if (mediaQueries.mobileLandscapeHeight.matches) {\n return ViewHeight.SMALL;\n }\n /* eslint-enable no-restricted-properties */\n return ViewHeight.EXTRA_SMALL;\n}\n\nexport function getSizeX(viewWidth: ViewWidthType): SizeTypeValues {\n return viewWidth <= ViewWidth.MOBILE ? 'compact' : 'regular';\n}\n\nexport function isCompactByViewWidth(\n viewWidth: ViewWidthType | undefined,\n hasPointer?: boolean,\n): boolean | undefined {\n return viewWidth !== undefined && viewWidth >= ViewWidth.SMALL_TABLET && hasPointer;\n}\n\nexport function isCompactByViewHeight(viewHeight: ViewHeightType | undefined): boolean {\n return viewHeight !== undefined && viewHeight <= ViewHeight.EXTRA_SMALL;\n}\n\nexport function getSizeY(\n viewWidth: ViewWidthType,\n viewHeight: ViewHeightType,\n hasPointer: boolean,\n): SizeTypeValues {\n if (isCompactByViewWidth(viewWidth, hasPointer) || isCompactByViewHeight(viewHeight)) {\n return 'compact';\n }\n return 'regular';\n}\n\n/**\n * Проверка на Desktop.\n *\n * Функция гарантировано вернёт `boolean` или `null` в зависимости от условий.\n *\n * Возвращаем `null` в случае, если у нас недостаточно данных, чтобы определить платформу.\n *\n * ⚠️ При передаче 'vkcom' всегда будет возвращать `true`.\n */\nexport function tryToCheckIsDesktop(viewWidth: ViewWidthType, viewHeight: ViewHeightType, hasPointer: undefined | boolean, platform?: PlatformType): boolean; // prettier-ignore\nexport function tryToCheckIsDesktop(viewWidth: ViewWidthType, viewHeight: undefined, hasPointer: boolean, platform?: PlatformType): boolean; // prettier-ignore\nexport function tryToCheckIsDesktop(viewWidth: undefined | ViewWidthType, viewHeight: undefined, hasPointer: undefined, platform?: PlatformType): null; // prettier-ignore\nexport function tryToCheckIsDesktop(viewWidth: undefined, viewHeight: undefined | ViewHeightType, hasPointer: undefined, platform?: PlatformType): null; // prettier-ignore\nexport function tryToCheckIsDesktop(viewWidth: undefined, viewHeight: undefined, hasPointer: undefined | boolean, platform?: PlatformType): null; // prettier-ignore\nexport function tryToCheckIsDesktop(viewWidth: undefined | ViewWidthType, viewHeight: undefined | ViewHeightType, hasPointer: undefined | boolean, platform?: PlatformType): null | boolean; // prettier-ignore\nexport function tryToCheckIsDesktop(\n viewWidth: undefined | ViewWidthType,\n viewHeight: undefined | ViewHeightType,\n hasPointer: undefined | boolean,\n platform?: PlatformType,\n): null | boolean {\n // см. https://github.com/VKCOM/VKUI/pull/2473\n const IS_VKCOM_CRUTCH = platform === 'vkcom';\n\n if (\n ((viewWidth === undefined || hasPointer === undefined) &&\n (viewWidth === undefined || viewHeight === undefined)) ||\n (hasPointer === undefined && viewHeight === undefined)\n ) {\n return IS_VKCOM_CRUTCH ? true : null;\n }\n\n const widthIsLikeDesktop = viewWidth >= ViewWidth.SMALL_TABLET;\n const otherParametersIsLikeDesktop =\n hasPointer || (viewHeight !== undefined ? viewHeight >= ViewHeight.MEDIUM : false);\n\n return (widthIsLikeDesktop && otherParametersIsLikeDesktop) || IS_VKCOM_CRUTCH;\n}\n\n/**\n * Конвертирует `viewWidth` в CSS брейкпоинты (см. тесты для наглядности).\n *\n * > Note: используется восклицательный знак (!), чтобы принудить TS поверить, что св-во точно не может быть\n * > `undefined`. Это всё из-за применения `Partial<...>` для объекта.\n */\nexport function viewWidthToClassName<T extends Partial<CSSBreakpointsClassNames>>(\n breakpointClassNames: Exact<CSSBreakpointsClassNames, T>,\n viewWidth: ViewWidthType | 'none' = 'none',\n): string | null {\n if (viewWidth === 'none') {\n return breakpointClassNames.hasOwnProperty('none') ? breakpointClassNames['none']! : null;\n }\n\n const breakpoints: string[] = [];\n const breakpointName = VIEW_WIDTH_TO_CSS_BREAKPOINT_MAP[viewWidth];\n\n if (breakpointClassNames.hasOwnProperty(breakpointName)) {\n breakpoints.push(breakpointClassNames[breakpointName]!);\n }\n\n if (viewWidth >= ViewWidth.MOBILE) {\n if (breakpointClassNames.hasOwnProperty('mobilePlus')) {\n breakpoints.push(breakpointClassNames['mobilePlus']!);\n }\n }\n\n if (viewWidth >= ViewWidth.SMALL_TABLET) {\n if (breakpointClassNames.hasOwnProperty('smallTabletPlus')) {\n breakpoints.push(breakpointClassNames['smallTabletPlus']!);\n }\n } else {\n if (breakpointClassNames.hasOwnProperty('smallTabletMinus')) {\n breakpoints.push(breakpointClassNames['smallTabletMinus']!);\n }\n }\n\n if (viewWidth >= ViewWidth.TABLET) {\n if (breakpointClassNames.hasOwnProperty('tabletPlus')) {\n breakpoints.push(breakpointClassNames['tabletPlus']!);\n }\n } else {\n if (breakpointClassNames.hasOwnProperty('tabletMinus')) {\n breakpoints.push(breakpointClassNames['tabletMinus']!);\n }\n }\n\n return breakpoints.length > 0 ? breakpoints.join(' ') : null;\n}\n"],"names":["BREAKPOINTS","VIEW_WIDTH_TO_CSS_BREAKPOINT_MAP","ViewHeight","ViewWidth","getViewWidthByViewportWidth","viewportWidth","DESKTOP","TABLET","SMALL_TABLET","MOBILE","SMALL_MOBILE","getViewWidthByMediaQueries","mediaQueries","desktopPlus","matches","tablet","smallTablet","mobile","getViewHeightByViewportHeight","viewportHeight","MEDIUM_HEIGHT","MEDIUM","MOBILE_LANDSCAPE_HEIGHT","SMALL","EXTRA_SMALL","getViewHeightByMediaQueries","mediumHeight","mobileLandscapeHeight","getSizeX","viewWidth","isCompactByViewWidth","hasPointer","undefined","isCompactByViewHeight","viewHeight","getSizeY","tryToCheckIsDesktop","platform","IS_VKCOM_CRUTCH","widthIsLikeDesktop","otherParametersIsLikeDesktop","viewWidthToClassName","breakpointClassNames","hasOwnProperty","breakpoints","breakpointName","push","length","join"],"mappings":"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"}
@@ -5,25 +5,22 @@ import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect.js";
5
5
  export const REDUCE_MOTION_MEDIA_QUERY = 'screen and (prefers-reduced-motion: reduce)';
6
6
  export const useReducedMotion = ()=>{
7
7
  const { window } = useDOM();
8
- const initial = React.useMemo(()=>window ? window.matchMedia(REDUCE_MOTION_MEDIA_QUERY).matches : /* istanbul ignore next: на текущий момент, покрытие данного кейса неинтересно */ false, [
9
- window
10
- ]);
11
- const reducedMotion = React.useRef(initial);
8
+ const [reducedMotion, setReducedMotion] = React.useState(()=>undefined);
12
9
  useIsomorphicLayoutEffect(()=>{
13
10
  /* istanbul ignore if: невозможный кейс (в SSR вызова этой функции не будет) */ if (!window) {
14
11
  return;
15
12
  }
16
13
  const match = window.matchMedia(REDUCE_MOTION_MEDIA_QUERY);
17
- reducedMotion.current = match.matches;
14
+ setReducedMotion(match.matches);
18
15
  /* istanbul ignore next: на текущий момент, покрытие данного кейса неинтересно */ const handleMediaQueryChange = (event)=>{
19
- /* istanbul ignore next */ reducedMotion.current = event.matches;
16
+ /* istanbul ignore next */ setReducedMotion(event.matches);
20
17
  };
21
18
  matchMediaListAddListener(match, handleMediaQueryChange);
22
19
  return ()=>matchMediaListRemoveListener(match, handleMediaQueryChange);
23
20
  }, [
24
21
  window
25
22
  ]);
26
- return reducedMotion.current;
23
+ return reducedMotion;
27
24
  };
28
25
 
29
26
  //# sourceMappingURL=useReducedMotion.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/animation/useReducedMotion.ts"],"sourcesContent":["/* eslint-disable no-restricted-properties */\nimport * as React from 'react';\nimport { useDOM } from '../dom';\nimport { matchMediaListAddListener, matchMediaListRemoveListener } from '../matchMedia';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\n\nexport const REDUCE_MOTION_MEDIA_QUERY = 'screen and (prefers-reduced-motion: reduce)';\n\nexport const useReducedMotion = (): boolean => {\n const { window } = useDOM();\n const initial = React.useMemo(\n () =>\n window\n ? window.matchMedia(REDUCE_MOTION_MEDIA_QUERY).matches\n : /* istanbul ignore next: на текущий момент, покрытие данного кейса неинтересно */\n false,\n [window],\n );\n const reducedMotion = React.useRef(initial);\n\n useIsomorphicLayoutEffect(() => {\n /* istanbul ignore if: невозможный кейс (в SSR вызова этой функции не будет) */\n if (!window) {\n return;\n }\n const match = window.matchMedia(REDUCE_MOTION_MEDIA_QUERY);\n reducedMotion.current = match.matches;\n /* istanbul ignore next: на текущий момент, покрытие данного кейса неинтересно */\n const handleMediaQueryChange = (event: MediaQueryListEvent) => {\n /* istanbul ignore next */\n reducedMotion.current = event.matches;\n };\n matchMediaListAddListener(match, handleMediaQueryChange);\n return () => matchMediaListRemoveListener(match, handleMediaQueryChange);\n }, [window]);\n\n return reducedMotion.current;\n};\n"],"names":["React","useDOM","matchMediaListAddListener","matchMediaListRemoveListener","useIsomorphicLayoutEffect","REDUCE_MOTION_MEDIA_QUERY","useReducedMotion","window","initial","useMemo","matchMedia","matches","reducedMotion","useRef","match","current","handleMediaQueryChange","event"],"mappings":"AAAA,2CAA2C,GAC3C,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,YAAS;AAChC,SAASC,yBAAyB,EAAEC,4BAA4B,QAAQ,mBAAgB;AACxF,SAASC,yBAAyB,QAAQ,kCAA+B;AAEzE,OAAO,MAAMC,4BAA4B,8CAA8C;AAEvF,OAAO,MAAMC,mBAAmB;IAC9B,MAAM,EAAEC,MAAM,EAAE,GAAGN;IACnB,MAAMO,UAAUR,MAAMS,OAAO,CAC3B,IACEF,SACIA,OAAOG,UAAU,CAACL,2BAA2BM,OAAO,GACpD,gFAAgF,GAChF,OACN;QAACJ;KAAO;IAEV,MAAMK,gBAAgBZ,MAAMa,MAAM,CAACL;IAEnCJ,0BAA0B;QACxB,6EAA6E,GAC7E,IAAI,CAACG,QAAQ;YACX;QACF;QACA,MAAMO,QAAQP,OAAOG,UAAU,CAACL;QAChCO,cAAcG,OAAO,GAAGD,MAAMH,OAAO;QACrC,gFAAgF,GAChF,MAAMK,yBAAyB,CAACC;YAC9B,wBAAwB,GACxBL,cAAcG,OAAO,GAAGE,MAAMN,OAAO;QACvC;QACAT,0BAA0BY,OAAOE;QACjC,OAAO,IAAMb,6BAA6BW,OAAOE;IACnD,GAAG;QAACT;KAAO;IAEX,OAAOK,cAAcG,OAAO;AAC9B,EAAE"}
1
+ {"version":3,"sources":["../../../../src/lib/animation/useReducedMotion.ts"],"sourcesContent":["/* eslint-disable no-restricted-properties */\nimport * as React from 'react';\nimport { useDOM } from '../dom';\nimport { matchMediaListAddListener, matchMediaListRemoveListener } from '../matchMedia';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\n\nexport const REDUCE_MOTION_MEDIA_QUERY = 'screen and (prefers-reduced-motion: reduce)';\n\nexport const useReducedMotion = (): boolean | undefined => {\n const { window } = useDOM();\n\n const [reducedMotion, setReducedMotion] = React.useState<boolean | undefined>(() => undefined);\n\n useIsomorphicLayoutEffect(() => {\n /* istanbul ignore if: невозможный кейс (в SSR вызова этой функции не будет) */\n if (!window) {\n return;\n }\n const match = window.matchMedia(REDUCE_MOTION_MEDIA_QUERY);\n setReducedMotion(match.matches);\n /* istanbul ignore next: на текущий момент, покрытие данного кейса неинтересно */\n const handleMediaQueryChange = (event: MediaQueryListEvent) => {\n /* istanbul ignore next */\n setReducedMotion(event.matches);\n };\n matchMediaListAddListener(match, handleMediaQueryChange);\n return () => matchMediaListRemoveListener(match, handleMediaQueryChange);\n }, [window]);\n\n return reducedMotion;\n};\n"],"names":["React","useDOM","matchMediaListAddListener","matchMediaListRemoveListener","useIsomorphicLayoutEffect","REDUCE_MOTION_MEDIA_QUERY","useReducedMotion","window","reducedMotion","setReducedMotion","useState","undefined","match","matchMedia","matches","handleMediaQueryChange","event"],"mappings":"AAAA,2CAA2C,GAC3C,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,YAAS;AAChC,SAASC,yBAAyB,EAAEC,4BAA4B,QAAQ,mBAAgB;AACxF,SAASC,yBAAyB,QAAQ,kCAA+B;AAEzE,OAAO,MAAMC,4BAA4B,8CAA8C;AAEvF,OAAO,MAAMC,mBAAmB;IAC9B,MAAM,EAAEC,MAAM,EAAE,GAAGN;IAEnB,MAAM,CAACO,eAAeC,iBAAiB,GAAGT,MAAMU,QAAQ,CAAsB,IAAMC;IAEpFP,0BAA0B;QACxB,6EAA6E,GAC7E,IAAI,CAACG,QAAQ;YACX;QACF;QACA,MAAMK,QAAQL,OAAOM,UAAU,CAACR;QAChCI,iBAAiBG,MAAME,OAAO;QAC9B,gFAAgF,GAChF,MAAMC,yBAAyB,CAACC;YAC9B,wBAAwB,GACxBP,iBAAiBO,MAAMF,OAAO;QAChC;QACAZ,0BAA0BU,OAAOG;QACjC,OAAO,IAAMZ,6BAA6BS,OAAOG;IACnD,GAAG;QAACR;KAAO;IAEX,OAAOC;AACT,EAAE"}
@@ -1,38 +1,12 @@
1
1
  import { noop } from "@vkontakte/vkjs";
2
2
  import { clamp } from "../../../helpers/math.js";
3
- import { inRange } from "../../../helpers/range.js";
4
3
  import { rubberbandIfOutOfBounds } from "../../animation/index.js";
5
4
  import { getNearestOverflowAncestor, hasSelectionWithRangeType } from "../../dom.js";
6
5
  import { UIPanGestureRecognizer } from "../../touch/UIPanGestureRecognizer.js";
7
- import { BLOCK_SHEET_BEHAVIOR_DATA_ATTRIBUTE_KEY, DRAG_THRESHOLDS, DYNAMIC_SNAP_POINT_DATA, SNAP_POINT_DETENTS, SNAP_POINT_SAFE_RANGE } from "../constants.js";
6
+ import { BLOCK_SHEET_BEHAVIOR_DATA_ATTRIBUTE_KEY, DRAG_THRESHOLDS, DYNAMIC_SNAP_POINT_DATA, SNAP_POINT_DETENTS } from "../constants.js";
8
7
  export class BottomSheetController {
9
8
  sheetEl;
10
- static parseInitialSnapPoint(initialSnapPoint = SNAP_POINT_DETENTS.MEDIUM) {
11
- if (initialSnapPoint === 'auto') {
12
- return {
13
- unit: 'px',
14
- currentSnapPoint: DYNAMIC_SNAP_POINT_DATA.IDLE_POINT_VALUE,
15
- snapPointDetents: [
16
- SNAP_POINT_DETENTS.MIN,
17
- DYNAMIC_SNAP_POINT_DATA.IDLE_POINT_VALUE
18
- ]
19
- };
20
- }
21
- const currentSnapPoint = Math.min(Math.max(initialSnapPoint, SNAP_POINT_SAFE_RANGE.LOWER), SNAP_POINT_DETENTS.LARGE);
22
- return {
23
- unit: '%',
24
- currentSnapPoint,
25
- snapPointDetents: inRange(currentSnapPoint, SNAP_POINT_SAFE_RANGE.LOWER, SNAP_POINT_SAFE_RANGE.HIGHEST) ? [
26
- SNAP_POINT_DETENTS.MIN,
27
- currentSnapPoint,
28
- SNAP_POINT_DETENTS.LARGE
29
- ] : [
30
- SNAP_POINT_DETENTS.MIN,
31
- currentSnapPoint
32
- ]
33
- };
34
- }
35
- constructor(sheetEl, { sheetScrollEl, sheetTransitionController, backdropTransitionController, onDismiss }){
9
+ constructor(sheetEl, { sheetScrollEl, sheetTransitionController, backdropTransitionController, onSnapPointChange, onDismiss }){
36
10
  this.sheetEl = sheetEl;
37
11
  this.isInitialized = false;
38
12
  this.panState = 'idle';
@@ -47,18 +21,27 @@ export class BottomSheetController {
47
21
  ];
48
22
  this.unit = '%';
49
23
  this.disableVerticalScrollBouncingDispose = noop;
24
+ this.onSnapPointChange = onSnapPointChange;
50
25
  this.onDismiss = onDismiss;
51
26
  this.panGestureRecognizer = new UIPanGestureRecognizer();
52
27
  this.sheetScrollEl = sheetScrollEl;
53
28
  this.sheetTransitionController = sheetTransitionController;
54
29
  this.backdropTransitionController = backdropTransitionController;
55
30
  }
56
- init(initialSnapPoint) {
31
+ init(snapPoint) {
57
32
  this.isInitialized = true;
58
- const { unit, currentSnapPoint, snapPointDetents } = BottomSheetController.parseInitialSnapPoint(initialSnapPoint);
59
- this.unit = unit;
60
- this.currentSnapPoint = currentSnapPoint;
61
- this.snapPointDetents = snapPointDetents;
33
+ if (snapPoint === 'auto') {
34
+ this.unit = 'px';
35
+ this.currentSnapPoint = DYNAMIC_SNAP_POINT_DATA.IDLE_POINT_VALUE;
36
+ this.snapPointDetents = [
37
+ SNAP_POINT_DETENTS.MIN,
38
+ DYNAMIC_SNAP_POINT_DATA.IDLE_POINT_VALUE
39
+ ];
40
+ } else {
41
+ this.unit = '%';
42
+ this.currentSnapPoint = snapPoint.initial;
43
+ this.snapPointDetents = snapPoint.detents;
44
+ }
62
45
  }
63
46
  destroy() {
64
47
  this.isInitialized = false;
@@ -105,9 +88,6 @@ export class BottomSheetController {
105
88
  }
106
89
  break;
107
90
  case 'moving':
108
- if (event.cancelable) {
109
- event.preventDefault();
110
- }
111
91
  this.panGestureRecognizer.setEndCoords(event);
112
92
  const { y1, y2 } = this.panGestureRecognizer;
113
93
  this.nextSnapPoint = rubberbandIfOutOfBounds(this.currentSnapPoint - (y2 - y1) / this.sheetHeight * this.currentSnapPoint, SNAP_POINT_DETENTS.MIN, this.isDynamicSnapPoint ? this.sheetHeight : SNAP_POINT_DETENTS.LARGE);
@@ -118,7 +98,11 @@ export class BottomSheetController {
118
98
  panEnd() {
119
99
  switch(this.panState){
120
100
  case 'moving':
101
+ const prevCurrentSnapPoint = this.currentSnapPoint;
121
102
  this.currentSnapPoint = this.getSnapPointTo(this.nextSnapPoint);
103
+ if (prevCurrentSnapPoint !== this.currentSnapPoint && this.currentSnapPoint > SNAP_POINT_DETENTS.MIN) {
104
+ this.onSnapPointChange(this.currentSnapPoint);
105
+ }
122
106
  this.calculateSnapPoint(this.currentSnapPoint);
123
107
  break;
124
108
  }
@@ -144,6 +128,7 @@ export class BottomSheetController {
144
128
  sheetTransitionController;
145
129
  backdropTransitionController;
146
130
  panGestureRecognizer;
131
+ onSnapPointChange;
147
132
  onDismiss;
148
133
  calculateSnapPoint(nextSnapPoint, immediately = false) {
149
134
  if (this.rafId !== null) {
@@ -205,7 +190,7 @@ export class BottomSheetController {
205
190
  return true;
206
191
  }
207
192
  preventImmediatelyIfVerticalScrollingOnPannedElIsScrolled() {
208
- if (this.pannedEl === null || this.sheetScrollEl === this.pannedEl) {
193
+ if (/* istanbul ignore next: покрываем TypeScript */ this.pannedEl === null || this.pannedEl === this.sheetEl || this.pannedEl === this.sheetScrollEl) {
209
194
  return false;
210
195
  }
211
196
  const overflowAncestor = getNearestOverflowAncestor(this.pannedEl, this.sheetEl);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/lib/sheet/controllers/BottomSheetController.ts"],"sourcesContent":["import { noop } from '@vkontakte/vkjs';\nimport { clamp } from '../../../helpers/math';\nimport { inRange } from '../../../helpers/range';\nimport { rubberbandIfOutOfBounds } from '../../animation';\nimport { getNearestOverflowAncestor, hasSelectionWithRangeType } from '../../dom';\nimport { UIPanGestureRecognizer } from '../../touch/UIPanGestureRecognizer';\nimport {\n BLOCK_SHEET_BEHAVIOR_DATA_ATTRIBUTE_KEY,\n DRAG_THRESHOLDS,\n DYNAMIC_SNAP_POINT_DATA,\n SNAP_POINT_DETENTS,\n SNAP_POINT_SAFE_RANGE,\n} from '../constants';\nimport type { CSSTransitionController } from './CSSTransitionController';\n\nexport type InitialSnapPoint = 'auto' | number;\n\nexport type SnapPointDetents = [number, number] | [number, number, number];\n\nexport type BottomSheetControllerSnapPointData = {\n unit: '%' | 'px';\n currentSnapPoint: number;\n snapPointDetents: SnapPointDetents;\n};\n\nexport type BottomSheetControllerOptions = {\n sheetScrollEl: HTMLElement | null;\n sheetTransitionController: CSSTransitionController<string>;\n backdropTransitionController: CSSTransitionController | null;\n onDismiss: VoidFunction;\n};\n\nexport class BottomSheetController {\n static parseInitialSnapPoint(\n initialSnapPoint: InitialSnapPoint = SNAP_POINT_DETENTS.MEDIUM,\n ): BottomSheetControllerSnapPointData {\n if (initialSnapPoint === 'auto') {\n return {\n unit: 'px',\n currentSnapPoint: DYNAMIC_SNAP_POINT_DATA.IDLE_POINT_VALUE,\n snapPointDetents: [SNAP_POINT_DETENTS.MIN, DYNAMIC_SNAP_POINT_DATA.IDLE_POINT_VALUE],\n };\n }\n\n const currentSnapPoint = Math.min(\n Math.max(initialSnapPoint, SNAP_POINT_SAFE_RANGE.LOWER),\n SNAP_POINT_DETENTS.LARGE,\n );\n\n return {\n unit: '%',\n currentSnapPoint,\n snapPointDetents: inRange(\n currentSnapPoint,\n SNAP_POINT_SAFE_RANGE.LOWER,\n SNAP_POINT_SAFE_RANGE.HIGHEST,\n )\n ? [SNAP_POINT_DETENTS.MIN, currentSnapPoint, SNAP_POINT_DETENTS.LARGE]\n : [SNAP_POINT_DETENTS.MIN, currentSnapPoint],\n };\n }\n\n constructor(\n private readonly sheetEl: HTMLElement,\n {\n sheetScrollEl,\n sheetTransitionController,\n backdropTransitionController,\n onDismiss,\n }: BottomSheetControllerOptions,\n ) {\n this.onDismiss = onDismiss;\n this.panGestureRecognizer = new UIPanGestureRecognizer();\n this.sheetScrollEl = sheetScrollEl;\n this.sheetTransitionController = sheetTransitionController;\n this.backdropTransitionController = backdropTransitionController;\n }\n\n init(initialSnapPoint?: InitialSnapPoint) {\n this.isInitialized = true;\n\n const { unit, currentSnapPoint, snapPointDetents } =\n BottomSheetController.parseInitialSnapPoint(initialSnapPoint);\n\n this.unit = unit;\n this.currentSnapPoint = currentSnapPoint;\n this.snapPointDetents = snapPointDetents;\n }\n\n destroy() {\n this.isInitialized = false;\n this.pannedEl = null;\n this.sheetTransitionController.cleanup();\n this.backdropTransitionController?.cleanup();\n\n this.disableVerticalScrollBouncingDispose();\n this.disableVerticalScrollBouncingDispose = noop;\n }\n\n panStart(event: UIEvent) {\n if (\n !this.isInitialized ||\n this.panState !== 'idle' ||\n hasSelectionWithRangeType(event.target)\n ) {\n return;\n }\n\n this.panState = 'start';\n this.pannedEl = event.target as HTMLElement;\n this.panGestureRecognizer.setStartCoords(event);\n }\n\n panMove(event: UIEvent) {\n switch (this.panState) {\n case 'start':\n this.panGestureRecognizer.setInitialTimeOnce();\n this.panGestureRecognizer.setEndCoords(event);\n\n if (this.preventUntilPanGestureBecomesExpected()) {\n return;\n }\n\n if (this.preventImmediatelyIfPannedElIsNotValid()) {\n this.panState = 'idle';\n return;\n }\n\n if (this.preventUntilVerticalScrollingOnSheetScrollElBecomesExpected()) {\n return;\n }\n\n if (this.preventImmediatelyIfVerticalScrollingOnPannedElIsScrolled()) {\n this.panState = 'idle';\n return;\n }\n\n this.panState = 'moving';\n this.panGestureRecognizer.setStartCoords(event);\n\n this.sheetHeight = this.sheetEl.offsetHeight;\n\n this.disableVerticalScrollBouncingDispose =\n BottomSheetController.disableVerticalScrollBouncingIfNeeded(\n this.sheetScrollEl,\n this.pannedEl,\n );\n\n if (this.isDynamicSnapPoint) {\n this.currentSnapPoint = this.sheetHeight;\n this.snapPointDetents[DYNAMIC_SNAP_POINT_DATA.COMPUTED_INDEX] = this.sheetHeight;\n }\n break;\n case 'moving':\n if (event.cancelable) {\n event.preventDefault();\n }\n\n this.panGestureRecognizer.setEndCoords(event);\n\n const { y1, y2 } = this.panGestureRecognizer;\n\n this.nextSnapPoint = rubberbandIfOutOfBounds(\n this.currentSnapPoint - ((y2 - y1) / this.sheetHeight) * this.currentSnapPoint,\n SNAP_POINT_DETENTS.MIN,\n this.isDynamicSnapPoint ? this.sheetHeight : SNAP_POINT_DETENTS.LARGE,\n );\n\n this.calculateSnapPoint(this.nextSnapPoint, true);\n break;\n }\n }\n\n panEnd() {\n switch (this.panState) {\n case 'moving':\n this.currentSnapPoint = this.getSnapPointTo(this.nextSnapPoint);\n this.calculateSnapPoint(this.currentSnapPoint);\n break;\n }\n\n this.panState = 'idle';\n this.panGestureRecognizer.reset();\n\n this.disableVerticalScrollBouncingDispose();\n this.disableVerticalScrollBouncingDispose = noop;\n }\n\n private isInitialized = false;\n private panState: 'idle' | 'start' | 'moving' = 'idle';\n private pannedEl: HTMLElement | null = null;\n private sheetHeight = 0;\n private rafId: number | null = null;\n private currentSnapPoint = 0;\n private nextSnapPoint = 0;\n private snapPointDetents: SnapPointDetents = [0, 0];\n private unit: 'px' | '%' = '%';\n private get isDynamicSnapPoint() {\n return this.unit === 'px';\n }\n private disableVerticalScrollBouncingDispose = noop;\n private readonly sheetScrollEl: HTMLElement | null;\n private readonly sheetTransitionController: CSSTransitionController<string>;\n private readonly backdropTransitionController: CSSTransitionController | null;\n private readonly panGestureRecognizer: UIPanGestureRecognizer;\n private readonly onDismiss: VoidFunction;\n\n private calculateSnapPoint(nextSnapPoint: number, immediately = false) {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n }\n\n if (nextSnapPoint <= SNAP_POINT_DETENTS.MIN) {\n this.sheetTransitionController.enableTransition();\n this.backdropTransitionController?.enableTransition();\n this.panState = 'idle';\n this.onDismiss();\n return;\n }\n\n const backdropOpacity = clamp(\n this.isDynamicSnapPoint\n ? nextSnapPoint / this.sheetHeight\n : (nextSnapPoint * 2) / SNAP_POINT_DETENTS.LARGE,\n 0,\n 1,\n );\n\n this.rafId = requestAnimationFrame(() => {\n if (immediately) {\n this.backdropTransitionController?.disableTransition().set(backdropOpacity);\n this.sheetTransitionController.disableTransition().set(`${nextSnapPoint}${this.unit}`);\n return;\n }\n\n if (this.isDynamicSnapPoint) {\n this.sheetTransitionController.cleanupOnTransitionEnd();\n }\n\n this.backdropTransitionController?.unset();\n this.sheetTransitionController.enableTransition().set(`${this.currentSnapPoint}${this.unit}`);\n });\n }\n\n private getSnapPointTo(nextSnapPoint: number) {\n const closestSnapPoint = BottomSheetController.getClosestSnapPoint(\n this.snapPointDetents,\n nextSnapPoint,\n );\n if (closestSnapPoint !== this.currentSnapPoint) {\n return closestSnapPoint;\n }\n\n const panDirection = this.panGestureRecognizer.direction();\n if (panDirection.axis !== 'y' || panDirection.direction === null) {\n return this.currentSnapPoint;\n }\n\n const velocity = this.panGestureRecognizer.velocity();\n if (Math.abs(velocity.y) < DRAG_THRESHOLDS.VELOCITY) {\n return this.currentSnapPoint;\n }\n\n const closestSnapPointByDirection = BottomSheetController.getClosestSnapPointByDirection(\n this.snapPointDetents,\n closestSnapPoint,\n panDirection.direction,\n );\n\n return closestSnapPointByDirection;\n }\n\n private preventUntilPanGestureBecomesExpected() {\n return (\n this.panGestureRecognizer.direction().axis === 'x' ||\n this.panGestureRecognizer.distance() < DRAG_THRESHOLDS.DISTANCE_FOR_MOVING_START\n );\n }\n\n private preventImmediatelyIfPannedElIsNotValid() {\n return (\n this.pannedEl === null ||\n // Элемент со специальным атрибутом\n this.pannedEl.closest(`[${BLOCK_SHEET_BEHAVIOR_DATA_ATTRIBUTE_KEY}=true]`) !== null || // eslint-disable-line no-restricted-properties\n // Элемент за пределами панели.\n !this.sheetEl.contains(this.pannedEl)\n );\n }\n\n private preventUntilVerticalScrollingOnSheetScrollElBecomesExpected() {\n if (\n this.sheetScrollEl === null ||\n !this.sheetScrollEl.contains(this.pannedEl) ||\n this.sheetScrollEl.scrollHeight <= this.sheetScrollEl.clientHeight\n ) {\n return false;\n }\n\n if (this.sheetScrollEl.scrollTop === 0) {\n return (\n this.panGestureRecognizer.direction().direction === -1 &&\n BottomSheetController.isLastSnapPointDetents(this.snapPointDetents, this.currentSnapPoint)\n );\n }\n\n return true;\n }\n\n private preventImmediatelyIfVerticalScrollingOnPannedElIsScrolled() {\n if (this.pannedEl === null || this.sheetScrollEl === this.pannedEl) {\n return false;\n }\n\n const overflowAncestor = getNearestOverflowAncestor(this.pannedEl, this.sheetEl);\n\n if (\n overflowAncestor === null ||\n this.sheetScrollEl === overflowAncestor ||\n overflowAncestor.scrollHeight <= overflowAncestor.clientHeight\n ) {\n return false;\n }\n\n return (\n overflowAncestor.scrollTop !== 0 || this.panGestureRecognizer.direction().direction === -1\n );\n }\n\n private static disableVerticalScrollBouncingIfNeeded(\n sheetScrollEl: HTMLElement | null,\n targetEl: HTMLElement | null,\n ) {\n if (\n sheetScrollEl !== null &&\n sheetScrollEl.scrollTop <= 0 &&\n sheetScrollEl.contains(targetEl) &&\n sheetScrollEl.scrollHeight > sheetScrollEl.clientHeight\n ) {\n sheetScrollEl.style.setProperty('overflow-y', 'hidden');\n return function dispose() {\n sheetScrollEl.style.removeProperty('overflow-y');\n };\n }\n return noop;\n }\n\n private static isLastSnapPointDetents(\n snapPointDetents: SnapPointDetents,\n currentY: number,\n ): boolean {\n return currentY === snapPointDetents[snapPointDetents.length - 1];\n }\n\n private static getClosestSnapPointByDirection(\n snapPointDetents: SnapPointDetents,\n currentY: number,\n direction: -1 | 1,\n ): number {\n const foundIndex = snapPointDetents.findIndex((i) => i === currentY);\n switch (direction) {\n case -1:\n return snapPointDetents[foundIndex + 1] ?? snapPointDetents[snapPointDetents.length - 1];\n case 1:\n return snapPointDetents[foundIndex - 1] ?? snapPointDetents[0];\n }\n }\n\n private static getClosestSnapPoint(snapPointDetents: SnapPointDetents, currentY: number) {\n let closest = snapPointDetents[0];\n let minDifference = Math.abs(snapPointDetents[0] - currentY);\n\n for (let i = 1; i < snapPointDetents.length; i += 1) {\n const difference = Math.abs(snapPointDetents[i] - currentY);\n if (difference < minDifference) {\n closest = snapPointDetents[i];\n minDifference = difference;\n }\n }\n\n return closest;\n }\n}\n"],"names":["noop","clamp","inRange","rubberbandIfOutOfBounds","getNearestOverflowAncestor","hasSelectionWithRangeType","UIPanGestureRecognizer","BLOCK_SHEET_BEHAVIOR_DATA_ATTRIBUTE_KEY","DRAG_THRESHOLDS","DYNAMIC_SNAP_POINT_DATA","SNAP_POINT_DETENTS","SNAP_POINT_SAFE_RANGE","BottomSheetController","parseInitialSnapPoint","initialSnapPoint","MEDIUM","unit","currentSnapPoint","IDLE_POINT_VALUE","snapPointDetents","MIN","Math","min","max","LOWER","LARGE","HIGHEST","constructor","sheetEl","sheetScrollEl","sheetTransitionController","backdropTransitionController","onDismiss","isInitialized","panState","pannedEl","sheetHeight","rafId","nextSnapPoint","disableVerticalScrollBouncingDispose","panGestureRecognizer","init","destroy","cleanup","panStart","event","target","setStartCoords","panMove","setInitialTimeOnce","setEndCoords","preventUntilPanGestureBecomesExpected","preventImmediatelyIfPannedElIsNotValid","preventUntilVerticalScrollingOnSheetScrollElBecomesExpected","preventImmediatelyIfVerticalScrollingOnPannedElIsScrolled","offsetHeight","disableVerticalScrollBouncingIfNeeded","isDynamicSnapPoint","COMPUTED_INDEX","cancelable","preventDefault","y1","y2","calculateSnapPoint","panEnd","getSnapPointTo","reset","immediately","cancelAnimationFrame","enableTransition","backdropOpacity","requestAnimationFrame","disableTransition","set","cleanupOnTransitionEnd","unset","closestSnapPoint","getClosestSnapPoint","panDirection","direction","axis","velocity","abs","y","VELOCITY","closestSnapPointByDirection","getClosestSnapPointByDirection","distance","DISTANCE_FOR_MOVING_START","closest","contains","scrollHeight","clientHeight","scrollTop","isLastSnapPointDetents","overflowAncestor","targetEl","style","setProperty","dispose","removeProperty","currentY","length","foundIndex","findIndex","i","minDifference","difference"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/lib/sheet/controllers/BottomSheetController.ts"],"sourcesContent":["import { noop } from '@vkontakte/vkjs';\nimport { clamp } from '../../../helpers/math';\nimport { rubberbandIfOutOfBounds } from '../../animation';\nimport { getNearestOverflowAncestor, hasSelectionWithRangeType } from '../../dom';\nimport { UIPanGestureRecognizer } from '../../touch/UIPanGestureRecognizer';\nimport {\n BLOCK_SHEET_BEHAVIOR_DATA_ATTRIBUTE_KEY,\n DRAG_THRESHOLDS,\n DYNAMIC_SNAP_POINT_DATA,\n SNAP_POINT_DETENTS,\n} from '../constants';\nimport type { CSSTransitionController } from './CSSTransitionController';\n\nexport type SnapPointDetents = [number, number] | [number, number, number];\n\nexport type SnapPoint = 'auto' | { initial: number; detents: SnapPointDetents };\n\nexport type SnapPointChange = (snapPoint: number) => void;\n\nexport type BottomSheetControllerOptions = {\n sheetScrollEl: HTMLElement | null;\n sheetTransitionController: CSSTransitionController<string>;\n backdropTransitionController: CSSTransitionController | null;\n onSnapPointChange: SnapPointChange;\n onDismiss: VoidFunction;\n};\n\nexport class BottomSheetController {\n constructor(\n private readonly sheetEl: HTMLElement,\n {\n sheetScrollEl,\n sheetTransitionController,\n backdropTransitionController,\n onSnapPointChange,\n onDismiss,\n }: BottomSheetControllerOptions,\n ) {\n this.onSnapPointChange = onSnapPointChange;\n this.onDismiss = onDismiss;\n this.panGestureRecognizer = new UIPanGestureRecognizer();\n this.sheetScrollEl = sheetScrollEl;\n this.sheetTransitionController = sheetTransitionController;\n this.backdropTransitionController = backdropTransitionController;\n }\n\n init(snapPoint: SnapPoint) {\n this.isInitialized = true;\n\n if (snapPoint === 'auto') {\n this.unit = 'px';\n this.currentSnapPoint = DYNAMIC_SNAP_POINT_DATA.IDLE_POINT_VALUE;\n this.snapPointDetents = [SNAP_POINT_DETENTS.MIN, DYNAMIC_SNAP_POINT_DATA.IDLE_POINT_VALUE];\n } else {\n this.unit = '%';\n this.currentSnapPoint = snapPoint.initial;\n this.snapPointDetents = snapPoint.detents;\n }\n }\n\n destroy() {\n this.isInitialized = false;\n this.pannedEl = null;\n this.sheetTransitionController.cleanup();\n this.backdropTransitionController?.cleanup();\n\n this.disableVerticalScrollBouncingDispose();\n this.disableVerticalScrollBouncingDispose = noop;\n }\n\n panStart(event: UIEvent) {\n if (\n !this.isInitialized ||\n this.panState !== 'idle' ||\n hasSelectionWithRangeType(event.target)\n ) {\n return;\n }\n\n this.panState = 'start';\n this.pannedEl = event.target as HTMLElement;\n this.panGestureRecognizer.setStartCoords(event);\n }\n\n panMove(event: UIEvent) {\n switch (this.panState) {\n case 'start':\n this.panGestureRecognizer.setInitialTimeOnce();\n this.panGestureRecognizer.setEndCoords(event);\n\n if (this.preventUntilPanGestureBecomesExpected()) {\n return;\n }\n\n if (this.preventImmediatelyIfPannedElIsNotValid()) {\n this.panState = 'idle';\n return;\n }\n\n if (this.preventUntilVerticalScrollingOnSheetScrollElBecomesExpected()) {\n return;\n }\n\n if (this.preventImmediatelyIfVerticalScrollingOnPannedElIsScrolled()) {\n this.panState = 'idle';\n return;\n }\n\n this.panState = 'moving';\n this.panGestureRecognizer.setStartCoords(event);\n\n this.sheetHeight = this.sheetEl.offsetHeight;\n\n this.disableVerticalScrollBouncingDispose =\n BottomSheetController.disableVerticalScrollBouncingIfNeeded(\n this.sheetScrollEl,\n this.pannedEl,\n );\n\n if (this.isDynamicSnapPoint) {\n this.currentSnapPoint = this.sheetHeight;\n this.snapPointDetents[DYNAMIC_SNAP_POINT_DATA.COMPUTED_INDEX] = this.sheetHeight;\n }\n break;\n case 'moving':\n this.panGestureRecognizer.setEndCoords(event);\n\n const { y1, y2 } = this.panGestureRecognizer;\n\n this.nextSnapPoint = rubberbandIfOutOfBounds(\n this.currentSnapPoint - ((y2 - y1) / this.sheetHeight) * this.currentSnapPoint,\n SNAP_POINT_DETENTS.MIN,\n this.isDynamicSnapPoint ? this.sheetHeight : SNAP_POINT_DETENTS.LARGE,\n );\n\n this.calculateSnapPoint(this.nextSnapPoint, true);\n break;\n }\n }\n\n panEnd() {\n switch (this.panState) {\n case 'moving':\n const prevCurrentSnapPoint = this.currentSnapPoint;\n this.currentSnapPoint = this.getSnapPointTo(this.nextSnapPoint);\n\n if (\n prevCurrentSnapPoint !== this.currentSnapPoint &&\n this.currentSnapPoint > SNAP_POINT_DETENTS.MIN\n ) {\n this.onSnapPointChange(this.currentSnapPoint);\n }\n\n this.calculateSnapPoint(this.currentSnapPoint);\n break;\n }\n\n this.panState = 'idle';\n this.panGestureRecognizer.reset();\n\n this.disableVerticalScrollBouncingDispose();\n this.disableVerticalScrollBouncingDispose = noop;\n }\n\n private isInitialized = false;\n private panState: 'idle' | 'start' | 'moving' = 'idle';\n private pannedEl: HTMLElement | null = null;\n private sheetHeight = 0;\n private rafId: number | null = null;\n private currentSnapPoint = 0;\n private nextSnapPoint = 0;\n private snapPointDetents: SnapPointDetents = [0, 0];\n private unit: 'px' | '%' = '%';\n private get isDynamicSnapPoint() {\n return this.unit === 'px';\n }\n private disableVerticalScrollBouncingDispose = noop;\n private readonly sheetScrollEl: HTMLElement | null;\n private readonly sheetTransitionController: CSSTransitionController<string>;\n private readonly backdropTransitionController: CSSTransitionController | null;\n private readonly panGestureRecognizer: UIPanGestureRecognizer;\n private readonly onSnapPointChange: SnapPointChange;\n private readonly onDismiss: VoidFunction;\n\n private calculateSnapPoint(nextSnapPoint: number, immediately = false) {\n if (this.rafId !== null) {\n cancelAnimationFrame(this.rafId);\n }\n\n if (nextSnapPoint <= SNAP_POINT_DETENTS.MIN) {\n this.sheetTransitionController.enableTransition();\n this.backdropTransitionController?.enableTransition();\n this.panState = 'idle';\n this.onDismiss();\n return;\n }\n\n const backdropOpacity = clamp(\n this.isDynamicSnapPoint\n ? nextSnapPoint / this.sheetHeight\n : (nextSnapPoint * 2) / SNAP_POINT_DETENTS.LARGE,\n 0,\n 1,\n );\n\n this.rafId = requestAnimationFrame(() => {\n if (immediately) {\n this.backdropTransitionController?.disableTransition().set(backdropOpacity);\n this.sheetTransitionController.disableTransition().set(`${nextSnapPoint}${this.unit}`);\n return;\n }\n\n if (this.isDynamicSnapPoint) {\n this.sheetTransitionController.cleanupOnTransitionEnd();\n }\n\n this.backdropTransitionController?.unset();\n this.sheetTransitionController.enableTransition().set(`${this.currentSnapPoint}${this.unit}`);\n });\n }\n\n private getSnapPointTo(nextSnapPoint: number) {\n const closestSnapPoint = BottomSheetController.getClosestSnapPoint(\n this.snapPointDetents,\n nextSnapPoint,\n );\n if (closestSnapPoint !== this.currentSnapPoint) {\n return closestSnapPoint;\n }\n\n const panDirection = this.panGestureRecognizer.direction();\n if (panDirection.axis !== 'y' || panDirection.direction === null) {\n return this.currentSnapPoint;\n }\n\n const velocity = this.panGestureRecognizer.velocity();\n if (Math.abs(velocity.y) < DRAG_THRESHOLDS.VELOCITY) {\n return this.currentSnapPoint;\n }\n\n const closestSnapPointByDirection = BottomSheetController.getClosestSnapPointByDirection(\n this.snapPointDetents,\n closestSnapPoint,\n panDirection.direction,\n );\n\n return closestSnapPointByDirection;\n }\n\n private preventUntilPanGestureBecomesExpected() {\n return (\n this.panGestureRecognizer.direction().axis === 'x' ||\n this.panGestureRecognizer.distance() < DRAG_THRESHOLDS.DISTANCE_FOR_MOVING_START\n );\n }\n\n private preventImmediatelyIfPannedElIsNotValid() {\n return (\n this.pannedEl === null ||\n // Элемент со специальным атрибутом\n this.pannedEl.closest(`[${BLOCK_SHEET_BEHAVIOR_DATA_ATTRIBUTE_KEY}=true]`) !== null || // eslint-disable-line no-restricted-properties\n // Элемент за пределами панели.\n !this.sheetEl.contains(this.pannedEl)\n );\n }\n\n private preventUntilVerticalScrollingOnSheetScrollElBecomesExpected() {\n if (\n this.sheetScrollEl === null ||\n !this.sheetScrollEl.contains(this.pannedEl) ||\n this.sheetScrollEl.scrollHeight <= this.sheetScrollEl.clientHeight\n ) {\n return false;\n }\n\n if (this.sheetScrollEl.scrollTop === 0) {\n return (\n this.panGestureRecognizer.direction().direction === -1 &&\n BottomSheetController.isLastSnapPointDetents(this.snapPointDetents, this.currentSnapPoint)\n );\n }\n\n return true;\n }\n\n private preventImmediatelyIfVerticalScrollingOnPannedElIsScrolled() {\n if (\n /* istanbul ignore next: покрываем TypeScript */\n this.pannedEl === null ||\n this.pannedEl === this.sheetEl ||\n this.pannedEl === this.sheetScrollEl\n ) {\n return false;\n }\n\n const overflowAncestor = getNearestOverflowAncestor(this.pannedEl, this.sheetEl);\n\n if (\n overflowAncestor === null ||\n this.sheetScrollEl === overflowAncestor ||\n overflowAncestor.scrollHeight <= overflowAncestor.clientHeight\n ) {\n return false;\n }\n\n return (\n overflowAncestor.scrollTop !== 0 || this.panGestureRecognizer.direction().direction === -1\n );\n }\n\n private static disableVerticalScrollBouncingIfNeeded(\n sheetScrollEl: HTMLElement | null,\n targetEl: HTMLElement | null,\n ) {\n if (\n sheetScrollEl !== null &&\n sheetScrollEl.scrollTop <= 0 &&\n sheetScrollEl.contains(targetEl) &&\n sheetScrollEl.scrollHeight > sheetScrollEl.clientHeight\n ) {\n sheetScrollEl.style.setProperty('overflow-y', 'hidden');\n return function dispose() {\n sheetScrollEl.style.removeProperty('overflow-y');\n };\n }\n return noop;\n }\n\n private static isLastSnapPointDetents(\n snapPointDetents: SnapPointDetents,\n currentY: number,\n ): boolean {\n return currentY === snapPointDetents[snapPointDetents.length - 1];\n }\n\n private static getClosestSnapPointByDirection(\n snapPointDetents: SnapPointDetents,\n currentY: number,\n direction: -1 | 1,\n ): number {\n const foundIndex = snapPointDetents.findIndex((i) => i === currentY);\n switch (direction) {\n case -1:\n return snapPointDetents[foundIndex + 1] ?? snapPointDetents[snapPointDetents.length - 1];\n case 1:\n return snapPointDetents[foundIndex - 1] ?? snapPointDetents[0];\n }\n }\n\n private static getClosestSnapPoint(snapPointDetents: SnapPointDetents, currentY: number) {\n let closest = snapPointDetents[0];\n let minDifference = Math.abs(snapPointDetents[0] - currentY);\n\n for (let i = 1; i < snapPointDetents.length; i += 1) {\n const difference = Math.abs(snapPointDetents[i] - currentY);\n if (difference < minDifference) {\n closest = snapPointDetents[i];\n minDifference = difference;\n }\n }\n\n return closest;\n }\n}\n"],"names":["noop","clamp","rubberbandIfOutOfBounds","getNearestOverflowAncestor","hasSelectionWithRangeType","UIPanGestureRecognizer","BLOCK_SHEET_BEHAVIOR_DATA_ATTRIBUTE_KEY","DRAG_THRESHOLDS","DYNAMIC_SNAP_POINT_DATA","SNAP_POINT_DETENTS","BottomSheetController","constructor","sheetEl","sheetScrollEl","sheetTransitionController","backdropTransitionController","onSnapPointChange","onDismiss","isInitialized","panState","pannedEl","sheetHeight","rafId","currentSnapPoint","nextSnapPoint","snapPointDetents","unit","disableVerticalScrollBouncingDispose","panGestureRecognizer","init","snapPoint","IDLE_POINT_VALUE","MIN","initial","detents","destroy","cleanup","panStart","event","target","setStartCoords","panMove","setInitialTimeOnce","setEndCoords","preventUntilPanGestureBecomesExpected","preventImmediatelyIfPannedElIsNotValid","preventUntilVerticalScrollingOnSheetScrollElBecomesExpected","preventImmediatelyIfVerticalScrollingOnPannedElIsScrolled","offsetHeight","disableVerticalScrollBouncingIfNeeded","isDynamicSnapPoint","COMPUTED_INDEX","y1","y2","LARGE","calculateSnapPoint","panEnd","prevCurrentSnapPoint","getSnapPointTo","reset","immediately","cancelAnimationFrame","enableTransition","backdropOpacity","requestAnimationFrame","disableTransition","set","cleanupOnTransitionEnd","unset","closestSnapPoint","getClosestSnapPoint","panDirection","direction","axis","velocity","Math","abs","y","VELOCITY","closestSnapPointByDirection","getClosestSnapPointByDirection","distance","DISTANCE_FOR_MOVING_START","closest","contains","scrollHeight","clientHeight","scrollTop","isLastSnapPointDetents","overflowAncestor","targetEl","style","setProperty","dispose","removeProperty","currentY","length","foundIndex","findIndex","i","minDifference","difference"],"mappings":"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"}
@@ -13,15 +13,7 @@ export class CSSTransitionController {
13
13
  this.el.style.setProperty(this.property, `${to}`);
14
14
  return this;
15
15
  }
16
- unset(from) {
17
- if (from !== undefined) {
18
- this.el.addEventListener('transitionend', this.handleTransitionEnd, {
19
- once: true
20
- });
21
- this.enableTransition();
22
- this.el.style.setProperty(this.property, `${from}`);
23
- return this;
24
- }
16
+ unset() {
25
17
  return this.cleanup();
26
18
  }
27
19
  enableTransition() {