@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/components/ModalRoot/types.ts"],"sourcesContent":["/** TODO [>=8] Удалить deprecated типы */\n\nimport type { AppRootPortalProps } from '../AppRoot/AppRootPortal';\n\n/**\n * @deprecated будет удалён в **VKUI v8**\n */\nexport type ModalType = 'page' | 'card';\n\n/**\n * @deprecated будет удалён в **VKUI v8**\n */\nexport type TranslateRange = [number, number];\n\n/**\n * @deprecated будет удалён в **VKUI v8**\n */\nexport interface ModalElements {\n modalElement?: HTMLElement | null;\n innerElement?: HTMLElement | null;\n headerElement?: HTMLElement | null;\n contentElement?: HTMLElement | null;\n bottomInset?: HTMLElement | null;\n}\n\n/**\n * @deprecated будет удалён в **VKUI v8**\n */\nexport interface ModalsStateEntry extends ModalElements {\n id: string | null;\n /**\n * Событие начала открытия модалки.\n */\n onOpen?: VoidFunction;\n /**\n * Событие открытия модалки.\n */\n onOpened?: VoidFunction;\n /**\n * Событие начала закрытия модалки.\n */\n onClose?: VoidFunction;\n /**\n * Событие закрытия модалки.\n */\n onClosed?: VoidFunction;\n type?: ModalType;\n\n settlingHeight?: number;\n expandable?: boolean;\n\n /**\n * Процент текущего сдвига модалки\n */\n translateY?: number;\n /**\n * Процент сдвига модалки в изначальном состоянии\n */\n translateYFrom?: number;\n /**\n * Процент сдвига модалки во время взаимодействия с ней (потянуть, чтобы открыть или закрыть)\n */\n translateYCurrent?: number;\n\n touchStartContentScrollTop?: number;\n touchMovePositive?: boolean | null;\n touchShiftYPercent?: number;\n\n expanded?: boolean;\n collapsed?: boolean;\n hidden?: boolean;\n\n contentScrolled?: boolean;\n contentScrollStopTimeout?: ReturnType<typeof setTimeout>;\n\n expandedRange?: TranslateRange;\n collapsedRange?: TranslateRange;\n hiddenRange?: TranslateRange;\n /**\n * Отключает возможность закрыть модалку стандартными способами\n */\n preventClose?: boolean;\n}\n\nexport type ModalRootActiveModal = string | null;\n\nexport type ModalRootCallbackFunction = (modalId: string) => void;\n\ntype ModalRootBaseProps = {\n activeModal?: ModalRootActiveModal;\n\n /**\n * `data-testid` для маски\n */\n modalOverlayTestId?: string;\n\n /**\n * Отключает фокус на контейнер диалогового окна при открытии.\n */\n noFocusToDialog?: boolean;\n\n usePortal?: AppRootPortalProps['usePortal'];\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?: ModalRootCallbackFunction;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?: ModalRootCallbackFunction;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?: ModalRootCallbackFunction;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?: ModalRootCallbackFunction;\n};\n\nexport interface ModalRootProps extends ModalRootBaseProps {\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\ntype ModalRootContextBaseInterface = {\n /**\n * Обозначает, в контексте ли модального окна мы сейчас.\n */\n isInsideModal: boolean;\n\n /**\n * С **VKUI v7** задача с обновлением высоты контента при `dynamicContentHeight` решается через CSS.\n *\n * @deprecated будет удалён в **VKUI v8**\n */\n updateModalHeight: VoidFunction;\n\n /**\n * С **VKUI v7** регистрация модальных окон больше не требуется.\n *\n * @deprecated будет удалён в **VKUI v8**\n */\n registerModal: (data: ModalElements & Required<Pick<ModalsStateEntry, 'type' | 'id'>>) => void;\n};\n\nexport interface ModalRootContextInterface\n extends ModalRootContextBaseInterface,\n ModalRootBaseProps {}\n\nexport interface UseModalRootContext extends ModalRootContextBaseInterface {\n onClose?: VoidFunction;\n}\n"],"names":[],"mappings":"AAAA,uCAAuC,GAyJvC,WAEC"}
1
+ {"version":3,"sources":["../../../src/components/ModalRoot/types.ts"],"sourcesContent":["/** TODO [>=8] Удалить deprecated типы */\n\nimport type { AppRootPortalProps } from '../AppRoot/AppRootPortal';\n\n/**\n * @deprecated будет удалён в **VKUI v8**\n */\nexport type ModalType = 'page' | 'card';\n\n/**\n * @deprecated будет удалён в **VKUI v8**\n */\nexport type TranslateRange = [number, number];\n\n/**\n * @deprecated будет удалён в **VKUI v8**\n */\nexport interface ModalElements {\n modalElement?: HTMLElement | null;\n innerElement?: HTMLElement | null;\n headerElement?: HTMLElement | null;\n contentElement?: HTMLElement | null;\n bottomInset?: HTMLElement | null;\n}\n\n/**\n * @deprecated будет удалён в **VKUI v8**\n */\nexport interface ModalsStateEntry extends ModalElements {\n id: string | null;\n /**\n * Событие начала открытия модалки.\n */\n onOpen?: VoidFunction;\n /**\n * Событие открытия модалки.\n */\n onOpened?: VoidFunction;\n /**\n * Событие начала закрытия модалки.\n */\n onClose?: VoidFunction;\n /**\n * Событие закрытия модалки.\n */\n onClosed?: VoidFunction;\n type?: ModalType;\n\n settlingHeight?: number;\n expandable?: boolean;\n\n /**\n * Процент текущего сдвига модалки\n */\n translateY?: number;\n /**\n * Процент сдвига модалки в изначальном состоянии\n */\n translateYFrom?: number;\n /**\n * Процент сдвига модалки во время взаимодействия с ней (потянуть, чтобы открыть или закрыть)\n */\n translateYCurrent?: number;\n\n touchStartContentScrollTop?: number;\n touchMovePositive?: boolean | null;\n touchShiftYPercent?: number;\n\n expanded?: boolean;\n collapsed?: boolean;\n hidden?: boolean;\n\n contentScrolled?: boolean;\n contentScrollStopTimeout?: ReturnType<typeof setTimeout>;\n\n expandedRange?: TranslateRange;\n collapsedRange?: TranslateRange;\n hiddenRange?: TranslateRange;\n /**\n * Отключает возможность закрыть модалку стандартными способами\n */\n preventClose?: boolean;\n}\n\nexport type ModalRootActiveModal = string | null;\n\nexport type ModalRootCallbackFunction = (modalId: string) => void;\n\ntype ModalRootBaseProps = {\n activeModal?: ModalRootActiveModal;\n\n /**\n * `data-testid` для маски\n */\n modalOverlayTestId?: string;\n\n /**\n * Отключает фокус на контейнер диалогового окна при открытии.\n */\n noFocusToDialog?: boolean;\n\n usePortal?: AppRootPortalProps['usePortal'];\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?: ModalRootCallbackFunction;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?: ModalRootCallbackFunction;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?: ModalRootCallbackFunction;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?: ModalRootCallbackFunction;\n};\n\nexport interface ModalRootProps extends ModalRootBaseProps {\n children: React.ReactElement | Iterable<React.ReactElement>;\n}\n\ntype ModalRootContextBaseInterface = {\n /**\n * Обозначает, в контексте ли модального окна мы сейчас.\n */\n isInsideModal: boolean;\n\n /**\n * С **VKUI v7** задача с обновлением высоты контента при `dynamicContentHeight` решается через CSS.\n *\n * @deprecated будет удалён в **VKUI v8**\n */\n updateModalHeight: VoidFunction;\n\n /**\n * С **VKUI v7** регистрация модальных окон больше не требуется.\n *\n * @deprecated будет удалён в **VKUI v8**\n */\n registerModal: (data: ModalElements & Required<Pick<ModalsStateEntry, 'type' | 'id'>>) => void;\n};\n\nexport interface ModalRootContextInterface\n extends ModalRootContextBaseInterface,\n ModalRootBaseProps {}\n\nexport interface UseModalRootContext extends ModalRootContextBaseInterface {\n onClose?: VoidFunction;\n}\n"],"names":[],"mappings":"AAAA,uCAAuC,GAwJvC,WAEC"}
@@ -23,8 +23,10 @@ export interface UseModalManagerResolvedProps {
23
23
  }
24
24
  export type UseModalManagerResult = {
25
25
  mounted: false;
26
+ shouldPreserveSnapPoint: boolean;
26
27
  } | ({
27
28
  mounted: true;
29
+ shouldPreserveSnapPoint: boolean;
28
30
  } & UseModalManagerResolvedProps);
29
31
  export declare const useModalManager: ({ id, open, keepMounted, modalOverlayTestId, noFocusToDialog, onOpen, onOpened, onClose, onClosed, }: UseModalManager) => UseModalManagerResult;
30
32
  //# sourceMappingURL=useModalManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModalManager.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/useModalManager.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKpF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,GAClB,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG,4BAA4B,CAAC,CAAC;AAEvD,eAAO,MAAM,eAAe,yGAUzB,eAAe,KAAG,qBAwCpB,CAAC"}
1
+ {"version":3,"file":"useModalManager.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/useModalManager.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKpF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IACrD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,uBAAuB,EAAE,OAAO,CAAA;CAAE,GACpD,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,uBAAuB,EAAE,OAAO,CAAA;CAAE,GAAG,4BAA4B,CAAC,CAAC;AAEzF,eAAO,MAAM,eAAe,yGAUzB,eAAe,KAAG,qBA0CpB,CAAC"}
@@ -6,6 +6,7 @@ import { VisuallyHiddenModalOverlay } from "./VisuallyHiddenModalOverlay/Visuall
6
6
  export const useModalManager = ({ id, open, keepMounted, modalOverlayTestId, noFocusToDialog, onOpen, onOpened, onClose, onClosed })=>{
7
7
  const context = useContext(ModalRootContext);
8
8
  const opened = context.isInsideModal ? context.activeModal === id : open;
9
+ const shouldPreserveSnapPoint = context.isInsideModal ? context.activeModal !== null : false;
9
10
  const [unmounted, setUnmounted] = useState(keepMounted ? false : !opened);
10
11
  useIsomorphicLayoutEffect(function unsetUnmounted() {
11
12
  if (!keepMounted && opened) {
@@ -17,12 +18,14 @@ export const useModalManager = ({ id, open, keepMounted, modalOverlayTestId, noF
17
18
  ]);
18
19
  if (unmounted) {
19
20
  return {
20
- mounted: false
21
+ mounted: false,
22
+ shouldPreserveSnapPoint
21
23
  };
22
24
  }
23
25
  return {
24
26
  mounted: true,
25
27
  open: opened,
28
+ shouldPreserveSnapPoint,
26
29
  noFocusToDialog: noFocusToDialog || context.noFocusToDialog,
27
30
  modalOverlayTestId: modalOverlayTestId || context.modalOverlayTestId,
28
31
  ModalOverlay: context.isInsideModal ? VisuallyHiddenModalOverlay : ModalOverlay,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ModalRoot/useModalManager.tsx"],"sourcesContent":["import { useContext, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { AnyFunction } from '../../types';\nimport { ModalOverlay, type ModalOverlayProps } from '../ModalOverlay/ModalOverlay';\nimport { ModalRootContext } from './ModalRootContext';\nimport { VisuallyHiddenModalOverlay } from './VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay';\nimport type { ModalRootCallbackFunction } from './types';\n\nexport interface UseModalManager {\n id: string;\n open: boolean;\n keepMounted: boolean;\n modalOverlayTestId?: string;\n noFocusToDialog?: boolean;\n onOpen?: AnyFunction;\n onOpened?: AnyFunction;\n onClose?: AnyFunction;\n onClosed?: AnyFunction;\n}\n\nexport interface UseModalManagerResolvedProps {\n open: boolean;\n noFocusToDialog?: boolean;\n modalOverlayTestId?: string;\n ModalOverlay: React.ComponentType<ModalOverlayProps>;\n onOpen?: AnyFunction;\n onOpened?: AnyFunction;\n onClose?: AnyFunction;\n onClosed?: AnyFunction;\n}\n\nexport type UseModalManagerResult =\n | { mounted: false }\n | ({ mounted: true } & UseModalManagerResolvedProps);\n\nexport const useModalManager = ({\n id,\n open,\n keepMounted,\n modalOverlayTestId,\n noFocusToDialog,\n onOpen,\n onOpened,\n onClose,\n onClosed,\n}: UseModalManager): UseModalManagerResult => {\n const context = useContext(ModalRootContext);\n const opened = context.isInsideModal ? context.activeModal === id : open;\n\n const [unmounted, setUnmounted] = useState(keepMounted ? false : !opened);\n\n useIsomorphicLayoutEffect(\n function unsetUnmounted() {\n if (!keepMounted && opened) {\n setUnmounted((prev) => (prev ? false : prev));\n }\n },\n [opened, keepMounted],\n );\n\n if (unmounted) {\n return { mounted: false };\n }\n\n return {\n mounted: true,\n open: opened,\n noFocusToDialog: noFocusToDialog || context.noFocusToDialog,\n modalOverlayTestId: modalOverlayTestId || context.modalOverlayTestId,\n ModalOverlay: context.isInsideModal ? VisuallyHiddenModalOverlay : ModalOverlay,\n onOpen: onOpen || getContextCallback(id, context.onOpen),\n onOpened: onOpened || getContextCallback(id, context.onOpened),\n onClose: onClose || getContextCallback(id, context.onClose),\n onClosed: function handleClosed(...args: any[]) {\n if (!keepMounted) {\n setUnmounted(true);\n }\n\n if (onClosed) {\n onClosed(...args);\n } else {\n context.onClosed?.(id);\n }\n },\n };\n};\n\nfunction getContextCallback(id: string, fn: ModalRootCallbackFunction | undefined) {\n return fn ? () => fn(id) : undefined;\n}\n"],"names":["useContext","useState","useIsomorphicLayoutEffect","ModalOverlay","ModalRootContext","VisuallyHiddenModalOverlay","useModalManager","id","open","keepMounted","modalOverlayTestId","noFocusToDialog","onOpen","onOpened","onClose","onClosed","context","opened","isInsideModal","activeModal","unmounted","setUnmounted","unsetUnmounted","prev","mounted","getContextCallback","handleClosed","args","fn","undefined"],"mappings":"AAAA,SAASA,UAAU,EAAEC,QAAQ,QAAQ,QAAQ;AAC7C,SAASC,yBAAyB,QAAQ,yCAAsC;AAEhF,SAASC,YAAY,QAAgC,kCAA+B;AACpF,SAASC,gBAAgB,QAAQ,wBAAqB;AACtD,SAASC,0BAA0B,QAAQ,6DAA0D;AA8BrG,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,EAAE,EACFC,IAAI,EACJC,WAAW,EACXC,kBAAkB,EAClBC,eAAe,EACfC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACQ;IAChB,MAAMC,UAAUhB,WAAWI;IAC3B,MAAMa,SAASD,QAAQE,aAAa,GAAGF,QAAQG,WAAW,KAAKZ,KAAKC;IAEpE,MAAM,CAACY,WAAWC,aAAa,GAAGpB,SAASQ,cAAc,QAAQ,CAACQ;IAElEf,0BACE,SAASoB;QACP,IAAI,CAACb,eAAeQ,QAAQ;YAC1BI,aAAa,CAACE,OAAUA,OAAO,QAAQA;QACzC;IACF,GACA;QAACN;QAAQR;KAAY;IAGvB,IAAIW,WAAW;QACb,OAAO;YAAEI,SAAS;QAAM;IAC1B;IAEA,OAAO;QACLA,SAAS;QACThB,MAAMS;QACNN,iBAAiBA,mBAAmBK,QAAQL,eAAe;QAC3DD,oBAAoBA,sBAAsBM,QAAQN,kBAAkB;QACpEP,cAAca,QAAQE,aAAa,GAAGb,6BAA6BF;QACnES,QAAQA,UAAUa,mBAAmBlB,IAAIS,QAAQJ,MAAM;QACvDC,UAAUA,YAAYY,mBAAmBlB,IAAIS,QAAQH,QAAQ;QAC7DC,SAASA,WAAWW,mBAAmBlB,IAAIS,QAAQF,OAAO;QAC1DC,UAAU,SAASW,aAAa,GAAGC,IAAW;YAC5C,IAAI,CAAClB,aAAa;gBAChBY,aAAa;YACf;YAEA,IAAIN,UAAU;gBACZA,YAAYY;YACd,OAAO;oBACLX;iBAAAA,oBAAAA,QAAQD,QAAQ,cAAhBC,wCAAAA,uBAAAA,SAAmBT;YACrB;QACF;IACF;AACF,EAAE;AAEF,SAASkB,mBAAmBlB,EAAU,EAAEqB,EAAyC;IAC/E,OAAOA,KAAK,IAAMA,GAAGrB,MAAMsB;AAC7B"}
1
+ {"version":3,"sources":["../../../src/components/ModalRoot/useModalManager.tsx"],"sourcesContent":["import { useContext, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { AnyFunction } from '../../types';\nimport { ModalOverlay, type ModalOverlayProps } from '../ModalOverlay/ModalOverlay';\nimport { ModalRootContext } from './ModalRootContext';\nimport { VisuallyHiddenModalOverlay } from './VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay';\nimport type { ModalRootCallbackFunction } from './types';\n\nexport interface UseModalManager {\n id: string;\n open: boolean;\n keepMounted: boolean;\n modalOverlayTestId?: string;\n noFocusToDialog?: boolean;\n onOpen?: AnyFunction;\n onOpened?: AnyFunction;\n onClose?: AnyFunction;\n onClosed?: AnyFunction;\n}\n\nexport interface UseModalManagerResolvedProps {\n open: boolean;\n noFocusToDialog?: boolean;\n modalOverlayTestId?: string;\n ModalOverlay: React.ComponentType<ModalOverlayProps>;\n onOpen?: AnyFunction;\n onOpened?: AnyFunction;\n onClose?: AnyFunction;\n onClosed?: AnyFunction;\n}\n\nexport type UseModalManagerResult =\n | { mounted: false; shouldPreserveSnapPoint: boolean }\n | ({ mounted: true; shouldPreserveSnapPoint: boolean } & UseModalManagerResolvedProps);\n\nexport const useModalManager = ({\n id,\n open,\n keepMounted,\n modalOverlayTestId,\n noFocusToDialog,\n onOpen,\n onOpened,\n onClose,\n onClosed,\n}: UseModalManager): UseModalManagerResult => {\n const context = useContext(ModalRootContext);\n const opened = context.isInsideModal ? context.activeModal === id : open;\n const shouldPreserveSnapPoint = context.isInsideModal ? context.activeModal !== null : false;\n\n const [unmounted, setUnmounted] = useState(keepMounted ? false : !opened);\n\n useIsomorphicLayoutEffect(\n function unsetUnmounted() {\n if (!keepMounted && opened) {\n setUnmounted((prev) => (prev ? false : prev));\n }\n },\n [opened, keepMounted],\n );\n\n if (unmounted) {\n return { mounted: false, shouldPreserveSnapPoint };\n }\n\n return {\n mounted: true,\n open: opened,\n shouldPreserveSnapPoint,\n noFocusToDialog: noFocusToDialog || context.noFocusToDialog,\n modalOverlayTestId: modalOverlayTestId || context.modalOverlayTestId,\n ModalOverlay: context.isInsideModal ? VisuallyHiddenModalOverlay : ModalOverlay,\n onOpen: onOpen || getContextCallback(id, context.onOpen),\n onOpened: onOpened || getContextCallback(id, context.onOpened),\n onClose: onClose || getContextCallback(id, context.onClose),\n onClosed: function handleClosed(...args: any[]) {\n if (!keepMounted) {\n setUnmounted(true);\n }\n\n if (onClosed) {\n onClosed(...args);\n } else {\n context.onClosed?.(id);\n }\n },\n };\n};\n\nfunction getContextCallback(id: string, fn: ModalRootCallbackFunction | undefined) {\n return fn ? () => fn(id) : undefined;\n}\n"],"names":["useContext","useState","useIsomorphicLayoutEffect","ModalOverlay","ModalRootContext","VisuallyHiddenModalOverlay","useModalManager","id","open","keepMounted","modalOverlayTestId","noFocusToDialog","onOpen","onOpened","onClose","onClosed","context","opened","isInsideModal","activeModal","shouldPreserveSnapPoint","unmounted","setUnmounted","unsetUnmounted","prev","mounted","getContextCallback","handleClosed","args","fn","undefined"],"mappings":"AAAA,SAASA,UAAU,EAAEC,QAAQ,QAAQ,QAAQ;AAC7C,SAASC,yBAAyB,QAAQ,yCAAsC;AAEhF,SAASC,YAAY,QAAgC,kCAA+B;AACpF,SAASC,gBAAgB,QAAQ,wBAAqB;AACtD,SAASC,0BAA0B,QAAQ,6DAA0D;AA8BrG,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,EAAE,EACFC,IAAI,EACJC,WAAW,EACXC,kBAAkB,EAClBC,eAAe,EACfC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACQ;IAChB,MAAMC,UAAUhB,WAAWI;IAC3B,MAAMa,SAASD,QAAQE,aAAa,GAAGF,QAAQG,WAAW,KAAKZ,KAAKC;IACpE,MAAMY,0BAA0BJ,QAAQE,aAAa,GAAGF,QAAQG,WAAW,KAAK,OAAO;IAEvF,MAAM,CAACE,WAAWC,aAAa,GAAGrB,SAASQ,cAAc,QAAQ,CAACQ;IAElEf,0BACE,SAASqB;QACP,IAAI,CAACd,eAAeQ,QAAQ;YAC1BK,aAAa,CAACE,OAAUA,OAAO,QAAQA;QACzC;IACF,GACA;QAACP;QAAQR;KAAY;IAGvB,IAAIY,WAAW;QACb,OAAO;YAAEI,SAAS;YAAOL;QAAwB;IACnD;IAEA,OAAO;QACLK,SAAS;QACTjB,MAAMS;QACNG;QACAT,iBAAiBA,mBAAmBK,QAAQL,eAAe;QAC3DD,oBAAoBA,sBAAsBM,QAAQN,kBAAkB;QACpEP,cAAca,QAAQE,aAAa,GAAGb,6BAA6BF;QACnES,QAAQA,UAAUc,mBAAmBnB,IAAIS,QAAQJ,MAAM;QACvDC,UAAUA,YAAYa,mBAAmBnB,IAAIS,QAAQH,QAAQ;QAC7DC,SAASA,WAAWY,mBAAmBnB,IAAIS,QAAQF,OAAO;QAC1DC,UAAU,SAASY,aAAa,GAAGC,IAAW;YAC5C,IAAI,CAACnB,aAAa;gBAChBa,aAAa;YACf;YAEA,IAAIP,UAAU;gBACZA,YAAYa;YACd,OAAO;oBACLZ;iBAAAA,oBAAAA,QAAQD,QAAQ,cAAhBC,wCAAAA,uBAAAA,SAAmBT;YACrB;QACF;IACF;AACF,EAAE;AAEF,SAASmB,mBAAmBnB,EAAU,EAAEsB,EAAyC;IAC/E,OAAOA,KAAK,IAAMA,GAAGtB,MAAMuB;AAC7B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PanelHeaderButton/PanelHeaderButton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, isPrimitiveReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasAccessibleName } from '../../lib/accessibility';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './PanelHeaderButton.module.css';\n\nconst platformClassNames = {\n ios: styles.ios,\n android: styles.android,\n vkcom: styles.vkcom,\n};\n\nexport interface PanelHeaderButtonProps extends Omit<TappableProps, 'label'> {\n primary?: boolean;\n // TODO [>=7]: добавить св-во `indicator`, чтобы разграничить кейсы\n label?: React.ReactNode;\n}\n\ninterface ButtonTypographyProps extends React.AllHTMLAttributes<HTMLElement> {\n primary?: PanelHeaderButtonProps['primary'];\n}\n\nconst ButtonTypography = ({ primary, children }: ButtonTypographyProps) => {\n const platform = usePlatform();\n\n if (platform === 'ios') {\n return (\n <Title Component=\"span\" level=\"3\" weight={primary ? '1' : '3'}>\n {children}\n </Title>\n );\n }\n\n return <Text weight={platform === 'vkcom' ? undefined : '2'}>{children}</Text>;\n};\n\nconst warn = warnOnce('PanelHeaderButton');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton\n */\nexport const PanelHeaderButton = ({\n children,\n primary = false,\n label,\n ...restProps\n}: PanelHeaderButtonProps): React.ReactNode => {\n const isPrimitive = isPrimitiveReactNode(children);\n const isPrimitiveLabel = isPrimitiveReactNode(label);\n const platform = usePlatform();\n\n let hoverMode;\n let activeMode;\n\n switch (platform) {\n case 'ios':\n hoverMode = 'background';\n activeMode = 'opacity';\n break;\n case 'vkcom':\n hoverMode = styles.hover;\n activeMode = styles.active;\n break;\n default:\n hoverMode = 'background';\n activeMode = 'background';\n }\n\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore next: проверка в dev mode, тест на hasAccessibleName() есть в lib/accessibility.test.tsx */\n const isAccessible = hasAccessibleName({\n children: [children, label],\n ...restProps,\n });\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y[restProps.href ? 'link-name' : 'button-name'], 'error');\n }\n }\n const elements = [label, children].filter((item) => !!item);\n\n const onlyPrimitive = elements.length === 1 && isPrimitiveReactNode(elements[0]);\n\n return (\n <Tappable\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n hoverMode={hoverMode}\n activeEffectDelay={200}\n activeMode={activeMode}\n baseClassName={classNames(\n styles.host,\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n onlyPrimitive && styles.primitive,\n !isPrimitive && !isPrimitiveLabel && styles.notPrimitive,\n )}\n >\n {isPrimitive ? <ButtonTypography primary={primary}>{children}</ButtonTypography> : children}\n {isPrimitiveLabel ? (\n <ButtonTypography primary={primary} className={styles.label}>\n {label}\n </ButtonTypography>\n ) : (\n label\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","isPrimitiveReactNode","usePlatform","hasAccessibleName","COMMON_WARNINGS","warnOnce","Tappable","Text","Title","platformClassNames","ios","android","vkcom","ButtonTypography","primary","children","platform","Component","level","weight","undefined","warn","PanelHeaderButton","label","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","process","env","NODE_ENV","isAccessible","a11y","href","elements","filter","item","onlyPrimitive","length","activeEffectDelay","baseClassName","hasOwnProperty","className"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,oBAAoB,QAAQ,kBAAkB;AACnE,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,6BAA0B;AAC5D,SAASC,eAAe,EAAEC,QAAQ,QAAQ,wBAAqB;AAC/D,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,IAAI,QAAQ,6BAA0B;AAC/C,SAASC,KAAK,QAAQ,+BAA4B;AAGlD,MAAMC,qBAAqB;IACzBC,GAAG;IACHC,OAAO;IACPC,KAAK;AACP;AAYA,MAAMC,mBAAmB,CAAC,EAAEC,OAAO,EAAEC,QAAQ,EAAyB;IACpE,MAAMC,WAAWd;IAEjB,IAAIc,aAAa,OAAO;QACtB,qBACE,KAACR;YAAMS,WAAU;YAAOC,OAAM;YAAIC,QAAQL,UAAU,MAAM;sBACvDC;;IAGP;IAEA,qBAAO,KAACR;QAAKY,QAAQH,aAAa,UAAUI,YAAY;kBAAML;;AAChE;AAEA,MAAMM,OAAOhB,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMiB,oBAAoB;QAAC,EAChCP,QAAQ,EACRD,UAAU,KAAK,EACfS,KAAK,EAEkB,WADpBC;QAHHT;QACAD;QACAS;;IAGA,MAAME,cAAcxB,qBAAqBc;IACzC,MAAMW,mBAAmBzB,qBAAqBsB;IAC9C,MAAMP,WAAWd;IAEjB,IAAIyB;IACJ,IAAIC;IAEJ,OAAQZ;QACN,KAAK;YACHW,YAAY;YACZC,aAAa;YACb;QACF,KAAK;YACHD;YACAC;YACA;QACF;YACED,YAAY;YACZC,aAAa;IACjB;IAEA,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,4GAA4G,GAC5G,MAAMC,eAAe7B,kBAAkB;YACrCY,UAAU;gBAACA;gBAAUQ;aAAM;WACxBC;QAGL,IAAI,CAACQ,cAAc;YACjBX,KAAKjB,gBAAgB6B,IAAI,CAACT,UAAUU,IAAI,GAAG,cAAc,cAAc,EAAE;QAC3E;IACF;IACA,MAAMC,WAAW;QAACZ;QAAOR;KAAS,CAACqB,MAAM,CAAC,CAACC,OAAS,CAAC,CAACA;IAEtD,MAAMC,gBAAgBH,SAASI,MAAM,KAAK,KAAKtC,qBAAqBkC,QAAQ,CAAC,EAAE;IAE/E,qBACE,MAAC7B;QACCW,WAAWO,UAAUU,IAAI,GAAG,MAAM;OAC9BV;QACJG,WAAWA;QACXa,mBAAmB;QACnBZ,YAAYA;QACZa,eAAezC,0CAEbS,mBAAmBiC,cAAc,CAAC1B,YAC9BP,kBAAkB,CAACO,SAAS,GAC5BP,mBAAmBE,OAAO,EAC9B2B,qDACA,CAACb,eAAe,CAACC;;YAGlBD,4BAAc,KAACZ;gBAAiBC,SAASA;0BAAUC;iBAA+BA;YAClFW,iCACC,KAACb;gBAAiBC,SAASA;gBAAS6B,SAAS;0BAC1CpB;iBAGHA;;;AAIR,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PanelHeaderButton/PanelHeaderButton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, isPrimitiveReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasAccessibleName } from '../../lib/accessibility';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './PanelHeaderButton.module.css';\n\nconst platformClassNames = {\n ios: styles.ios,\n android: styles.android,\n vkcom: styles.vkcom,\n};\n\nexport interface PanelHeaderButtonProps extends Omit<TappableProps, 'label'> {\n primary?: boolean;\n // TODO [>=8]: добавить св-во `indicator`, чтобы разграничить кейсы\n label?: React.ReactNode;\n}\n\ninterface ButtonTypographyProps extends React.AllHTMLAttributes<HTMLElement> {\n primary?: PanelHeaderButtonProps['primary'];\n}\n\nconst ButtonTypography = ({ primary, children }: ButtonTypographyProps) => {\n const platform = usePlatform();\n\n if (platform === 'ios') {\n return (\n <Title Component=\"span\" level=\"3\" weight={primary ? '1' : '3'}>\n {children}\n </Title>\n );\n }\n\n return <Text weight={platform === 'vkcom' ? undefined : '2'}>{children}</Text>;\n};\n\nconst warn = warnOnce('PanelHeaderButton');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton\n */\nexport const PanelHeaderButton = ({\n children,\n primary = false,\n label,\n ...restProps\n}: PanelHeaderButtonProps): React.ReactNode => {\n const isPrimitive = isPrimitiveReactNode(children);\n const isPrimitiveLabel = isPrimitiveReactNode(label);\n const platform = usePlatform();\n\n let hoverMode;\n let activeMode;\n\n switch (platform) {\n case 'ios':\n hoverMode = 'background';\n activeMode = 'opacity';\n break;\n case 'vkcom':\n hoverMode = styles.hover;\n activeMode = styles.active;\n break;\n default:\n hoverMode = 'background';\n activeMode = 'background';\n }\n\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore next: проверка в dev mode, тест на hasAccessibleName() есть в lib/accessibility.test.tsx */\n const isAccessible = hasAccessibleName({\n children: [children, label],\n ...restProps,\n });\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y[restProps.href ? 'link-name' : 'button-name'], 'error');\n }\n }\n const elements = [label, children].filter((item) => !!item);\n\n const onlyPrimitive = elements.length === 1 && isPrimitiveReactNode(elements[0]);\n\n return (\n <Tappable\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n hoverMode={hoverMode}\n activeEffectDelay={200}\n activeMode={activeMode}\n baseClassName={classNames(\n styles.host,\n platformClassNames.hasOwnProperty(platform)\n ? platformClassNames[platform]\n : platformClassNames.android,\n onlyPrimitive && styles.primitive,\n !isPrimitive && !isPrimitiveLabel && styles.notPrimitive,\n )}\n >\n {isPrimitive ? <ButtonTypography primary={primary}>{children}</ButtonTypography> : children}\n {isPrimitiveLabel ? (\n <ButtonTypography primary={primary} className={styles.label}>\n {label}\n </ButtonTypography>\n ) : (\n label\n )}\n </Tappable>\n );\n};\n"],"names":["React","classNames","isPrimitiveReactNode","usePlatform","hasAccessibleName","COMMON_WARNINGS","warnOnce","Tappable","Text","Title","platformClassNames","ios","android","vkcom","ButtonTypography","primary","children","platform","Component","level","weight","undefined","warn","PanelHeaderButton","label","restProps","isPrimitive","isPrimitiveLabel","hoverMode","activeMode","process","env","NODE_ENV","isAccessible","a11y","href","elements","filter","item","onlyPrimitive","length","activeEffectDelay","baseClassName","hasOwnProperty","className"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,oBAAoB,QAAQ,kBAAkB;AACnE,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,6BAA0B;AAC5D,SAASC,eAAe,EAAEC,QAAQ,QAAQ,wBAAqB;AAC/D,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,IAAI,QAAQ,6BAA0B;AAC/C,SAASC,KAAK,QAAQ,+BAA4B;AAGlD,MAAMC,qBAAqB;IACzBC,GAAG;IACHC,OAAO;IACPC,KAAK;AACP;AAYA,MAAMC,mBAAmB,CAAC,EAAEC,OAAO,EAAEC,QAAQ,EAAyB;IACpE,MAAMC,WAAWd;IAEjB,IAAIc,aAAa,OAAO;QACtB,qBACE,KAACR;YAAMS,WAAU;YAAOC,OAAM;YAAIC,QAAQL,UAAU,MAAM;sBACvDC;;IAGP;IAEA,qBAAO,KAACR;QAAKY,QAAQH,aAAa,UAAUI,YAAY;kBAAML;;AAChE;AAEA,MAAMM,OAAOhB,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMiB,oBAAoB;QAAC,EAChCP,QAAQ,EACRD,UAAU,KAAK,EACfS,KAAK,EAEkB,WADpBC;QAHHT;QACAD;QACAS;;IAGA,MAAME,cAAcxB,qBAAqBc;IACzC,MAAMW,mBAAmBzB,qBAAqBsB;IAC9C,MAAMP,WAAWd;IAEjB,IAAIyB;IACJ,IAAIC;IAEJ,OAAQZ;QACN,KAAK;YACHW,YAAY;YACZC,aAAa;YACb;QACF,KAAK;YACHD;YACAC;YACA;QACF;YACED,YAAY;YACZC,aAAa;IACjB;IAEA,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,4GAA4G,GAC5G,MAAMC,eAAe7B,kBAAkB;YACrCY,UAAU;gBAACA;gBAAUQ;aAAM;WACxBC;QAGL,IAAI,CAACQ,cAAc;YACjBX,KAAKjB,gBAAgB6B,IAAI,CAACT,UAAUU,IAAI,GAAG,cAAc,cAAc,EAAE;QAC3E;IACF;IACA,MAAMC,WAAW;QAACZ;QAAOR;KAAS,CAACqB,MAAM,CAAC,CAACC,OAAS,CAAC,CAACA;IAEtD,MAAMC,gBAAgBH,SAASI,MAAM,KAAK,KAAKtC,qBAAqBkC,QAAQ,CAAC,EAAE;IAE/E,qBACE,MAAC7B;QACCW,WAAWO,UAAUU,IAAI,GAAG,MAAM;OAC9BV;QACJG,WAAWA;QACXa,mBAAmB;QACnBZ,YAAYA;QACZa,eAAezC,0CAEbS,mBAAmBiC,cAAc,CAAC1B,YAC9BP,kBAAkB,CAACO,SAAS,GAC5BP,mBAAmBE,OAAO,EAC9B2B,qDACA,CAACb,eAAe,CAACC;;YAGlBD,4BAAc,KAACZ;gBAAiBC,SAASA;0BAAUC;iBAA+BA;YAClFW,iCACC,KAACb;gBAAiBC,SAASA;gBAAS6B,SAAS;0BAC1CpB;iBAGHA;;;AAIR,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"PopoutWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/PopoutWrapper/PopoutWrapper.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAgB7D,MAAM,WAAW,kBAAmB,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IACnF;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,8FAUvB,kBAAkB,KAAG,KAAK,CAAC,SAuB7B,CAAC"}
1
+ {"version":3,"file":"PopoutWrapper.d.ts","sourceRoot":"","sources":["../../../src/components/PopoutWrapper/PopoutWrapper.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAgB7D,MAAM,WAAW,kBAAmB,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IACnF;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,8FAUvB,kBAAkB,KAAG,KAAK,CAAC,SAoB7B,CAAC"}
@@ -31,9 +31,9 @@ const stylesAlignY = {
31
31
  ]);
32
32
  return /*#__PURE__*/ _jsx(RootComponent, _object_spread_props(_object_spread({}, restProps), {
33
33
  baseClassName: classNames("vkuiPopoutWrapper__host", stylesAlignY[alignY], stylesAlignX[alignX], closing ? "vkuiPopoutWrapper__closing" : "vkuiPopoutWrapper__opened", fixed && "vkuiPopoutWrapper__fixed", !noBackground && "vkuiPopoutWrapper__masked"),
34
- style: _object_spread({
34
+ baseStyle: {
35
35
  zIndex
36
- }, restProps.style),
36
+ },
37
37
  children: /*#__PURE__*/ _jsxs("div", {
38
38
  className: "vkuiPopoutWrapper__container",
39
39
  children: [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/PopoutWrapper/PopoutWrapper.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './PopoutWrapper.module.css';\n\nconst stylesAlignX = {\n center: styles.alignXCenter,\n left: styles.alignXLeft,\n right: styles.alignXRight,\n};\n\nconst stylesAlignY = {\n center: styles.alignYCenter,\n top: styles.alignYTop,\n bottom: styles.alignYBottom,\n};\n\nexport interface PopoutWrapperProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Позволяет сделать прозрачную подложку\n */\n noBackground?: boolean;\n /**\n * Включает фиксированное позиционирование.\n *\n * По умолчанию у компонента не задан никакой `position`.\n */\n fixed?: boolean;\n /**\n * Выравнивает контент по горизонтали.\n */\n alignX?: 'left' | 'center' | 'right';\n /**\n * Выравнивает контент по вертикали.\n */\n alignY?: 'top' | 'center' | 'bottom';\n /**\n * Спрячет компонент через fade-out анимацию.\n */\n closing?: boolean;\n /**\n * Позволяет задать z-index через токен или числом\n */\n zIndex?: number | string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PopoutWrapper\n */\nexport const PopoutWrapper = ({\n alignY = 'center',\n alignX = 'center',\n closing = false,\n noBackground = false,\n fixed = true,\n children,\n onClick,\n zIndex = 'var(--vkui--z_index_popout)',\n ...restProps\n}: PopoutWrapperProps): React.ReactNode => {\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles.host,\n stylesAlignY[alignY],\n stylesAlignX[alignX],\n closing ? styles.closing : styles.opened,\n fixed && styles.fixed,\n !noBackground && styles.masked,\n )}\n style={{\n zIndex,\n ...restProps.style,\n }}\n >\n <div className={styles.container}>\n <div className={styles.overlay} onClick={onClick} />\n <div className={styles.content}>{children}</div>\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","RootComponent","stylesAlignX","center","left","right","stylesAlignY","top","bottom","PopoutWrapper","alignY","alignX","closing","noBackground","fixed","children","onClick","zIndex","restProps","baseClassName","style","div","className"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,oCAAiC;AAG/D,MAAMC,eAAe;IACnBC,MAAM;IACNC,IAAI;IACJC,KAAK;AACP;AAEA,MAAMC,eAAe;IACnBH,MAAM;IACNI,GAAG;IACHC,MAAM;AACR;AA+BA;;CAEC,GACD,OAAO,MAAMC,gBAAgB;QAAC,EAC5BC,SAAS,QAAQ,EACjBC,SAAS,QAAQ,EACjBC,UAAU,KAAK,EACfC,eAAe,KAAK,EACpBC,QAAQ,IAAI,EACZC,QAAQ,EACRC,OAAO,EACPC,SAAS,6BAA6B,EAEnB,WADhBC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,qBACE,KAAChB,uDACKiB;QACJC,eAAenB,sCAEbM,YAAY,CAACI,OAAO,EACpBR,YAAY,CAACS,OAAO,EACpBC,sEACAE,qCACA,CAACD;QAEHO,OAAO;YACLH;WACGC,UAAUE,KAAK;kBAGpB,cAAA,MAACC;YAAIC,SAAS;;8BACZ,KAACD;oBAAIC,SAAS;oBAAkBN,SAASA;;8BACzC,KAACK;oBAAIC,SAAS;8BAAmBP;;;;;AAIzC,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/PopoutWrapper/PopoutWrapper.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './PopoutWrapper.module.css';\n\nconst stylesAlignX = {\n center: styles.alignXCenter,\n left: styles.alignXLeft,\n right: styles.alignXRight,\n};\n\nconst stylesAlignY = {\n center: styles.alignYCenter,\n top: styles.alignYTop,\n bottom: styles.alignYBottom,\n};\n\nexport interface PopoutWrapperProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Позволяет сделать прозрачную подложку\n */\n noBackground?: boolean;\n /**\n * Включает фиксированное позиционирование.\n *\n * По умолчанию у компонента не задан никакой `position`.\n */\n fixed?: boolean;\n /**\n * Выравнивает контент по горизонтали.\n */\n alignX?: 'left' | 'center' | 'right';\n /**\n * Выравнивает контент по вертикали.\n */\n alignY?: 'top' | 'center' | 'bottom';\n /**\n * Спрячет компонент через fade-out анимацию.\n */\n closing?: boolean;\n /**\n * Позволяет задать z-index через токен или числом\n */\n zIndex?: number | string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PopoutWrapper\n */\nexport const PopoutWrapper = ({\n alignY = 'center',\n alignX = 'center',\n closing = false,\n noBackground = false,\n fixed = true,\n children,\n onClick,\n zIndex = 'var(--vkui--z_index_popout)',\n ...restProps\n}: PopoutWrapperProps): React.ReactNode => {\n return (\n <RootComponent\n {...restProps}\n baseClassName={classNames(\n styles.host,\n stylesAlignY[alignY],\n stylesAlignX[alignX],\n closing ? styles.closing : styles.opened,\n fixed && styles.fixed,\n !noBackground && styles.masked,\n )}\n baseStyle={{ zIndex }}\n >\n <div className={styles.container}>\n <div className={styles.overlay} onClick={onClick} />\n <div className={styles.content}>{children}</div>\n </div>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","RootComponent","stylesAlignX","center","left","right","stylesAlignY","top","bottom","PopoutWrapper","alignY","alignX","closing","noBackground","fixed","children","onClick","zIndex","restProps","baseClassName","baseStyle","div","className"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,oCAAiC;AAG/D,MAAMC,eAAe;IACnBC,MAAM;IACNC,IAAI;IACJC,KAAK;AACP;AAEA,MAAMC,eAAe;IACnBH,MAAM;IACNI,GAAG;IACHC,MAAM;AACR;AA+BA;;CAEC,GACD,OAAO,MAAMC,gBAAgB;QAAC,EAC5BC,SAAS,QAAQ,EACjBC,SAAS,QAAQ,EACjBC,UAAU,KAAK,EACfC,eAAe,KAAK,EACpBC,QAAQ,IAAI,EACZC,QAAQ,EACRC,OAAO,EACPC,SAAS,6BAA6B,EAEnB,WADhBC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,qBACE,KAAChB,uDACKiB;QACJC,eAAenB,sCAEbM,YAAY,CAACI,OAAO,EACpBR,YAAY,CAACS,OAAO,EACpBC,sEACAE,qCACA,CAACD;QAEHO,WAAW;YAAEH;QAAO;kBAEpB,cAAA,MAACI;YAAIC,SAAS;;8BACZ,KAACD;oBAAIC,SAAS;oBAAkBN,SAASA;;8BACzC,KAACK;oBAAIC,SAAS;8BAAmBP;;;;;AAIzC,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../src/components/Spinner/Spinner.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAK7D,MAAM,WAAW,YAAa,SAAQ,yBAAyB,CAAC,eAAe,CAAC;IAC9E,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAiE1C,CAAC"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../src/components/Spinner/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAa7D,MAAM,WAAW,YAAa,SAAQ,yBAAyB,CAAC,eAAe,CAAC;IAC9E,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAsB1C,CAAC"}
@@ -1,4 +1,3 @@
1
- 'use client';
2
1
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
3
2
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
4
3
  import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
@@ -6,9 +5,15 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
5
  import * as React from "react";
7
6
  import { Icon16Spinner, Icon24Spinner, Icon32Spinner, Icon44Spinner } from "@vkontakte/icons";
8
7
  import { classNames, hasReactNode } from "@vkontakte/vkjs";
9
- import { useReducedMotion } from "../../lib/animation/index.js";
10
8
  import { RootComponent } from "../RootComponent/RootComponent.js";
11
9
  import { VisuallyHidden } from "../VisuallyHidden/VisuallyHidden.js";
10
+ import { SpinnerAnimation } from "./SpinnerAnimation.js";
11
+ const spinnerIconMap = {
12
+ s: Icon16Spinner,
13
+ m: Icon24Spinner,
14
+ l: Icon32Spinner,
15
+ xl: Icon44Spinner
16
+ };
12
17
  /**
13
18
  * @see https://vkcom.github.io/VKUI/#/Spinner
14
19
  */ export const Spinner = /*#__PURE__*/ React.memo((_param)=>{
@@ -18,46 +23,7 @@ import { VisuallyHidden } from "../VisuallyHidden/VisuallyHidden.js";
18
23
  "disableAnimation",
19
24
  "noColor"
20
25
  ]);
21
- const isReducedMotion = useReducedMotion();
22
- const SpinnerIcon = {
23
- s: Icon16Spinner,
24
- m: Icon24Spinner,
25
- l: Icon32Spinner,
26
- xl: Icon44Spinner
27
- }[size];
28
- let svgAnimateElement = null;
29
- const [isReadyForSetSVGAnimateElement, setIsReadyForSetSVGAnimateElement] = React.useState(disableAnimation ? true : false);
30
- React.useEffect(function waitReactHydrationBeforeSetSVGAnimateElement() {
31
- setIsReadyForSetSVGAnimateElement(true);
32
- }, []);
33
- if (isReadyForSetSVGAnimateElement && !disableAnimation) {
34
- if (isReducedMotion) {
35
- svgAnimateElement = /*#__PURE__*/ _jsx("animate", {
36
- attributeName: "opacity",
37
- keyTimes: "0; 0.5; 1",
38
- values: "1; 0.1; 1",
39
- begin: "0s",
40
- dur: "2s",
41
- repeatCount: "indefinite"
42
- });
43
- } else {
44
- const center = {
45
- s: 8,
46
- m: 12,
47
- l: 16,
48
- xl: 22
49
- }[size];
50
- svgAnimateElement = /*#__PURE__*/ _jsx("animateTransform", {
51
- attributeType: "XML",
52
- attributeName: "transform",
53
- type: "rotate",
54
- from: `0 ${center} ${center}`,
55
- to: `360 ${center} ${center}`,
56
- dur: "0.7s",
57
- repeatCount: "indefinite"
58
- });
59
- }
60
- }
26
+ const SpinnerIcon = spinnerIconMap[size];
61
27
  return /*#__PURE__*/ _jsxs(RootComponent, _object_spread_props(_object_spread({
62
28
  Component: "span",
63
29
  role: "status"
@@ -65,7 +31,9 @@ import { VisuallyHidden } from "../VisuallyHidden/VisuallyHidden.js";
65
31
  baseClassName: classNames("vkuiSpinner__host", noColor && "vkuiSpinner__noColor"),
66
32
  children: [
67
33
  /*#__PURE__*/ _jsx(SpinnerIcon, {
68
- children: svgAnimateElement
34
+ children: disableAnimation ? null : /*#__PURE__*/ _jsx(SpinnerAnimation, {
35
+ size: size
36
+ })
69
37
  }),
70
38
  hasReactNode(children) && /*#__PURE__*/ _jsx(VisuallyHidden, {
71
39
  children: children
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Spinner, Icon24Spinner, Icon32Spinner, Icon44Spinner } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useReducedMotion } from '../../lib/animation';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './Spinner.module.css';\n\nexport interface SpinnerProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n size?: 's' | 'm' | 'l' | 'xl';\n disableAnimation?: boolean;\n /**\n * Задать цвет можно будет через свойство color родителя\n */\n noColor?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Spinner\n */\nexport const Spinner: React.FC<SpinnerProps> = React.memo(\n ({\n size = 'm',\n children = 'Загружается...',\n disableAnimation = false,\n noColor = false,\n ...restProps\n }: SpinnerProps) => {\n const isReducedMotion = useReducedMotion();\n const SpinnerIcon = {\n s: Icon16Spinner,\n m: Icon24Spinner,\n l: Icon32Spinner,\n xl: Icon44Spinner,\n }[size];\n let svgAnimateElement: React.ReactNode = null;\n\n const [isReadyForSetSVGAnimateElement, setIsReadyForSetSVGAnimateElement] = React.useState(\n disableAnimation ? true : false,\n );\n\n React.useEffect(function waitReactHydrationBeforeSetSVGAnimateElement() {\n setIsReadyForSetSVGAnimateElement(true);\n }, []);\n\n if (isReadyForSetSVGAnimateElement && !disableAnimation) {\n if (isReducedMotion) {\n svgAnimateElement = (\n <animate\n attributeName=\"opacity\"\n keyTimes=\"0; 0.5; 1\"\n values=\"1; 0.1; 1\"\n begin=\"0s\"\n dur=\"2s\"\n repeatCount=\"indefinite\"\n />\n );\n } else {\n const center = { s: 8, m: 12, l: 16, xl: 22 }[size];\n svgAnimateElement = (\n <animateTransform\n attributeType=\"XML\"\n attributeName=\"transform\"\n type=\"rotate\"\n from={`0 ${center} ${center}`}\n to={`360 ${center} ${center}`}\n dur=\"0.7s\"\n repeatCount=\"indefinite\"\n />\n );\n }\n }\n\n return (\n <RootComponent\n Component=\"span\"\n role=\"status\"\n {...restProps}\n baseClassName={classNames(styles.host, noColor && styles.noColor)}\n >\n <SpinnerIcon>{svgAnimateElement}</SpinnerIcon>\n {hasReactNode(children) && <VisuallyHidden>{children}</VisuallyHidden>}\n </RootComponent>\n );\n },\n);\n\nSpinner.displayName = 'Spinner';\n"],"names":["React","Icon16Spinner","Icon24Spinner","Icon32Spinner","Icon44Spinner","classNames","hasReactNode","useReducedMotion","RootComponent","VisuallyHidden","Spinner","memo","size","children","disableAnimation","noColor","restProps","isReducedMotion","SpinnerIcon","s","m","l","xl","svgAnimateElement","isReadyForSetSVGAnimateElement","setIsReadyForSetSVGAnimateElement","useState","useEffect","waitReactHydrationBeforeSetSVGAnimateElement","animate","attributeName","keyTimes","values","begin","dur","repeatCount","center","animateTransform","attributeType","type","from","to","Component","role","baseClassName","displayName"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,EAAEC,aAAa,EAAEC,aAAa,EAAEC,aAAa,QAAQ,mBAAmB;AAC9F,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,gBAAgB,QAAQ,+BAAsB;AAEvD,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,cAAc,QAAQ,sCAAmC;AAYlE;;CAEC,GACD,OAAO,MAAMC,wBAAkCV,MAAMW,IAAI,CACvD;QAAC,EACCC,OAAO,GAAG,EACVC,WAAW,gBAAgB,EAC3BC,mBAAmB,KAAK,EACxBC,UAAU,KAAK,EAEF,WADVC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,MAAME,kBAAkBV;IACxB,MAAMW,cAAc;QAClBC,GAAGlB;QACHmB,GAAGlB;QACHmB,GAAGlB;QACHmB,IAAIlB;IACN,CAAC,CAACQ,KAAK;IACP,IAAIW,oBAAqC;IAEzC,MAAM,CAACC,gCAAgCC,kCAAkC,GAAGzB,MAAM0B,QAAQ,CACxFZ,mBAAmB,OAAO;IAG5Bd,MAAM2B,SAAS,CAAC,SAASC;QACvBH,kCAAkC;IACpC,GAAG,EAAE;IAEL,IAAID,kCAAkC,CAACV,kBAAkB;QACvD,IAAIG,iBAAiB;YACnBM,kCACE,KAACM;gBACCC,eAAc;gBACdC,UAAS;gBACTC,QAAO;gBACPC,OAAM;gBACNC,KAAI;gBACJC,aAAY;;QAGlB,OAAO;YACL,MAAMC,SAAS;gBAAEjB,GAAG;gBAAGC,GAAG;gBAAIC,GAAG;gBAAIC,IAAI;YAAG,CAAC,CAACV,KAAK;YACnDW,kCACE,KAACc;gBACCC,eAAc;gBACdR,eAAc;gBACdS,MAAK;gBACLC,MAAM,CAAC,EAAE,EAAEJ,OAAO,CAAC,EAAEA,QAAQ;gBAC7BK,IAAI,CAAC,IAAI,EAAEL,OAAO,CAAC,EAAEA,QAAQ;gBAC7BF,KAAI;gBACJC,aAAY;;QAGlB;IACF;IAEA,qBACE,MAAC3B;QACCkC,WAAU;QACVC,MAAK;OACD3B;QACJ4B,eAAevC,gCAAwBU;;0BAEvC,KAACG;0BAAaK;;YACbjB,aAAaO,2BAAa,KAACJ;0BAAgBI;;;;AAGlD,GACA;AAEFH,QAAQmC,WAAW,GAAG"}
1
+ {"version":3,"sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon16Spinner, Icon24Spinner, Icon32Spinner, Icon44Spinner } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport { SpinnerAnimation } from './SpinnerAnimation';\nimport styles from './Spinner.module.css';\n\nconst spinnerIconMap = {\n s: Icon16Spinner,\n m: Icon24Spinner,\n l: Icon32Spinner,\n xl: Icon44Spinner,\n};\n\nexport interface SpinnerProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n size?: 's' | 'm' | 'l' | 'xl';\n disableAnimation?: boolean;\n /**\n * Задать цвет можно будет через свойство color родителя\n */\n noColor?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Spinner\n */\nexport const Spinner: React.FC<SpinnerProps> = React.memo(\n ({\n size = 'm',\n children = 'Загружается...',\n disableAnimation = false,\n noColor = false,\n ...restProps\n }: SpinnerProps) => {\n const SpinnerIcon = spinnerIconMap[size];\n\n return (\n <RootComponent\n Component=\"span\"\n role=\"status\"\n {...restProps}\n baseClassName={classNames(styles.host, noColor && styles.noColor)}\n >\n <SpinnerIcon>{disableAnimation ? null : <SpinnerAnimation size={size} />}</SpinnerIcon>\n {hasReactNode(children) && <VisuallyHidden>{children}</VisuallyHidden>}\n </RootComponent>\n );\n },\n);\n\nSpinner.displayName = 'Spinner';\n"],"names":["React","Icon16Spinner","Icon24Spinner","Icon32Spinner","Icon44Spinner","classNames","hasReactNode","RootComponent","VisuallyHidden","SpinnerAnimation","spinnerIconMap","s","m","l","xl","Spinner","memo","size","children","disableAnimation","noColor","restProps","SpinnerIcon","Component","role","baseClassName","displayName"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,EAAEC,aAAa,EAAEC,aAAa,EAAEC,aAAa,QAAQ,mBAAmB;AAC9F,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAE3D,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,cAAc,QAAQ,sCAAmC;AAClE,SAASC,gBAAgB,QAAQ,wBAAqB;AAGtD,MAAMC,iBAAiB;IACrBC,GAAGV;IACHW,GAAGV;IACHW,GAAGV;IACHW,IAAIV;AACN;AAWA;;CAEC,GACD,OAAO,MAAMW,wBAAkCf,MAAMgB,IAAI,CACvD;QAAC,EACCC,OAAO,GAAG,EACVC,WAAW,gBAAgB,EAC3BC,mBAAmB,KAAK,EACxBC,UAAU,KAAK,EAEF,WADVC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,MAAME,cAAcZ,cAAc,CAACO,KAAK;IAExC,qBACE,MAACV;QACCgB,WAAU;QACVC,MAAK;OACDH;QACJI,eAAepB,gCAAwBe;;0BAEvC,KAACE;0BAAaH,mBAAmB,qBAAO,KAACV;oBAAiBQ,MAAMA;;;YAC/DX,aAAaY,2BAAa,KAACV;0BAAgBU;;;;AAGlD,GACA;AAEFH,QAAQW,WAAW,GAAG"}
@@ -0,0 +1,7 @@
1
+ import { type SpinnerProps } from './Spinner';
2
+ interface SpinnerAnimationProps {
3
+ size: SpinnerProps['size'];
4
+ }
5
+ export declare function SpinnerAnimation({ size }: SpinnerAnimationProps): import("react/jsx-runtime").JSX.Element | null;
6
+ export {};
7
+ //# sourceMappingURL=SpinnerAnimation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpinnerAnimation.d.ts","sourceRoot":"","sources":["../../../src/components/Spinner/SpinnerAnimation.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,UAAU,qBAAqB;IAC7B,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,IAAU,EAAE,EAAE,qBAAqB,kDAgCrE"}
@@ -0,0 +1,36 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useReducedMotion } from "../../lib/animation/index.js";
4
+ export function SpinnerAnimation({ size = 'm' }) {
5
+ const isReducedMotion = useReducedMotion();
6
+ if (isReducedMotion === undefined) {
7
+ return null;
8
+ }
9
+ if (isReducedMotion) {
10
+ return /*#__PURE__*/ _jsx("animate", {
11
+ attributeName: "opacity",
12
+ keyTimes: "0; 0.5; 1",
13
+ values: "1; 0.1; 1",
14
+ begin: "0s",
15
+ dur: "2s",
16
+ repeatCount: "indefinite"
17
+ });
18
+ }
19
+ const center = {
20
+ s: 8,
21
+ m: 12,
22
+ l: 16,
23
+ xl: 22
24
+ }[size];
25
+ return /*#__PURE__*/ _jsx("animateTransform", {
26
+ attributeType: "XML",
27
+ attributeName: "transform",
28
+ type: "rotate",
29
+ from: `0 ${center} ${center}`,
30
+ to: `360 ${center} ${center}`,
31
+ dur: "0.7s",
32
+ repeatCount: "indefinite"
33
+ });
34
+ }
35
+
36
+ //# sourceMappingURL=SpinnerAnimation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Spinner/SpinnerAnimation.tsx"],"sourcesContent":["'use client';\n\nimport { useReducedMotion } from '../../lib/animation';\nimport { type SpinnerProps } from './Spinner';\n\ninterface SpinnerAnimationProps {\n size: SpinnerProps['size'];\n}\n\nexport function SpinnerAnimation({ size = 'm' }: SpinnerAnimationProps) {\n const isReducedMotion = useReducedMotion();\n\n if (isReducedMotion === undefined) {\n return null;\n }\n\n if (isReducedMotion) {\n return (\n <animate\n attributeName=\"opacity\"\n keyTimes=\"0; 0.5; 1\"\n values=\"1; 0.1; 1\"\n begin=\"0s\"\n dur=\"2s\"\n repeatCount=\"indefinite\"\n />\n );\n }\n\n const center = { s: 8, m: 12, l: 16, xl: 22 }[size];\n return (\n <animateTransform\n attributeType=\"XML\"\n attributeName=\"transform\"\n type=\"rotate\"\n from={`0 ${center} ${center}`}\n to={`360 ${center} ${center}`}\n dur=\"0.7s\"\n repeatCount=\"indefinite\"\n />\n );\n}\n"],"names":["useReducedMotion","SpinnerAnimation","size","isReducedMotion","undefined","animate","attributeName","keyTimes","values","begin","dur","repeatCount","center","s","m","l","xl","animateTransform","attributeType","type","from","to"],"mappings":"AAAA;;AAEA,SAASA,gBAAgB,QAAQ,+BAAsB;AAOvD,OAAO,SAASC,iBAAiB,EAAEC,OAAO,GAAG,EAAyB;IACpE,MAAMC,kBAAkBH;IAExB,IAAIG,oBAAoBC,WAAW;QACjC,OAAO;IACT;IAEA,IAAID,iBAAiB;QACnB,qBACE,KAACE;YACCC,eAAc;YACdC,UAAS;YACTC,QAAO;YACPC,OAAM;YACNC,KAAI;YACJC,aAAY;;IAGlB;IAEA,MAAMC,SAAS;QAAEC,GAAG;QAAGC,GAAG;QAAIC,GAAG;QAAIC,IAAI;IAAG,CAAC,CAACd,KAAK;IACnD,qBACE,KAACe;QACCC,eAAc;QACdZ,eAAc;QACda,MAAK;QACLC,MAAM,CAAC,EAAE,EAAER,OAAO,CAAC,EAAEA,QAAQ;QAC7BS,IAAI,CAAC,IAAI,EAAET,OAAO,CAAC,EAAEA,QAAQ;QAC7BF,KAAI;QACJC,aAAY;;AAGlB"}
@@ -4,17 +4,17 @@ export interface SplitLayoutProps extends HTMLAttributesWithRootRef<HTMLDivEleme
4
4
  /**
5
5
  * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.
6
6
  *
7
- * @deprecated будет удалёно в **VKUI v8**
7
+ * @deprecated будет удалeно в **VKUI v8**.
8
8
  * Начиная с **VKUI v7** компоненты можно располагать в любом
9
- * месте приложения в пределах `AppRoot`
9
+ * месте приложения в пределах `AppRoot`.
10
10
  */
11
11
  popout?: React.ReactNode;
12
12
  /**
13
13
  * Свойство для отрисовки `ModalRoot`.
14
14
  *
15
- * @deprecated будет удалёно в **VKUI v8**
15
+ * @deprecated будет удалeно в **VKUI v8**.
16
16
  * Начиная с **VKUI v7** `ModalRoot` можно располагать в любом
17
- * месте приложения в пределах `AppRoot`
17
+ * месте приложения в пределах `AppRoot`.
18
18
  */
19
19
  modal?: React.ReactNode;
20
20
  header?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SplitLayout/SplitLayout.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport type { HasRef, HTMLAttributesWithRootRef } from '../../types';\nimport styles from './SplitLayout.module.css';\n\nexport interface SplitLayoutProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n *\n * @deprecated будет удалёно в **VKUI v8**\n * Начиная с **VKUI v7** компоненты можно располагать в любом\n * месте приложения в пределах `AppRoot`\n */\n popout?: React.ReactNode;\n /**\n * Свойство для отрисовки `ModalRoot`.\n *\n * @deprecated будет удалёно в **VKUI v8**\n * Начиная с **VKUI v7** `ModalRoot` можно располагать в любом\n * месте приложения в пределах `AppRoot`\n */\n modal?: React.ReactNode;\n header?: React.ReactNode;\n /**\n * Центрирует контент.\n */\n center?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SplitLayout\n */\nexport const SplitLayout = ({\n header,\n children,\n getRootRef,\n getRef,\n className,\n center,\n modal,\n popout,\n ...restProps\n}: SplitLayoutProps): React.ReactNode => {\n const platform = usePlatform();\n\n return (\n <div className={classNames(styles.host, platform === 'ios' && styles.ios)} ref={getRootRef}>\n {header}\n <div\n {...restProps}\n ref={getRef}\n className={classNames(\n styles.inner,\n !!header && styles.innerHeader,\n center && styles.innerCenter,\n className,\n )}\n >\n {children}\n {modal}\n {popout}\n </div>\n </div>\n );\n};\n"],"names":["React","classNames","usePlatform","SplitLayout","header","children","getRootRef","getRef","className","center","modal","popout","restProps","platform","div","ref"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,WAAW,QAAQ,6BAA0B;AA8BtD;;CAEC,GACD,OAAO,MAAMC,cAAc;QAAC,EAC1BC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,MAAM,EACNC,KAAK,EACLC,MAAM,EAEW,WADdC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,WAAWX;IAEjB,qBACE,MAACY;QAAIN,WAAWP,oCAAwBY,aAAa;QAAsBE,KAAKT;;YAC7EF;0BACD,MAACU,+CACKF;gBACJG,KAAKR;gBACLC,WAAWP,qCAET,CAAC,CAACG,0CACFK,0CACAD;;oBAGDH;oBACAK;oBACAC;;;;;AAIT,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/SplitLayout/SplitLayout.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport type { HasRef, HTMLAttributesWithRootRef } from '../../types';\nimport styles from './SplitLayout.module.css';\n\nexport interface SplitLayoutProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n *\n * @deprecated будет удалeно в **VKUI v8**.\n * Начиная с **VKUI v7** компоненты можно располагать в любом\n * месте приложения в пределах `AppRoot`.\n */\n popout?: React.ReactNode;\n /**\n * Свойство для отрисовки `ModalRoot`.\n *\n * @deprecated будет удалeно в **VKUI v8**.\n * Начиная с **VKUI v7** `ModalRoot` можно располагать в любом\n * месте приложения в пределах `AppRoot`.\n */\n modal?: React.ReactNode;\n header?: React.ReactNode;\n /**\n * Центрирует контент.\n */\n center?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SplitLayout\n */\nexport const SplitLayout = ({\n header,\n children,\n getRootRef,\n getRef,\n className,\n center,\n modal,\n popout,\n ...restProps\n}: SplitLayoutProps): React.ReactNode => {\n const platform = usePlatform();\n\n return (\n <div className={classNames(styles.host, platform === 'ios' && styles.ios)} ref={getRootRef}>\n {header}\n <div\n {...restProps}\n ref={getRef}\n className={classNames(\n styles.inner,\n !!header && styles.innerHeader,\n center && styles.innerCenter,\n className,\n )}\n >\n {children}\n {modal}\n {popout}\n </div>\n </div>\n );\n};\n"],"names":["React","classNames","usePlatform","SplitLayout","header","children","getRootRef","getRef","className","center","modal","popout","restProps","platform","div","ref"],"mappings":"AAAA;;;;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,WAAW,QAAQ,6BAA0B;AA8BtD;;CAEC,GACD,OAAO,MAAMC,cAAc;QAAC,EAC1BC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,MAAM,EACNC,KAAK,EACLC,MAAM,EAEW,WADdC;QARHR;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAME,WAAWX;IAEjB,qBACE,MAACY;QAAIN,WAAWP,oCAAwBY,aAAa;QAAsBE,KAAKT;;YAC7EF;0BACD,MAACU,+CACKF;gBACJG,KAAKR;gBACLC,WAAWP,qCAET,CAAC,CAACG,0CACFK,0CACAD;;oBAGDH;oBACAK;oBACAC;;;;;AAIT,EAAE"}