@skbkontur/react-ui 5.5.1 → 5.5.2

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 (54) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/components/Modal/Modal.d.ts +25 -22
  3. package/cjs/components/Modal/Modal.js +10 -7
  4. package/cjs/components/Modal/Modal.js.map +1 -1
  5. package/cjs/components/Modal/ModalBody.d.ts +1 -1
  6. package/cjs/components/Modal/ModalBody.js +1 -1
  7. package/cjs/components/Modal/ModalBody.js.map +1 -1
  8. package/cjs/components/Modal/ModalFooter.d.ts +5 -5
  9. package/cjs/components/Modal/ModalFooter.js +1 -1
  10. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  11. package/cjs/components/Modal/ModalHeader.d.ts +3 -3
  12. package/cjs/components/Modal/ModalHeader.js +1 -1
  13. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  14. package/cjs/components/Radio/Radio.d.ts +11 -10
  15. package/cjs/components/Radio/Radio.js +5 -4
  16. package/cjs/components/Radio/Radio.js.map +1 -1
  17. package/cjs/components/RadioGroup/RadioGroup.d.ts +21 -28
  18. package/cjs/components/RadioGroup/RadioGroup.js +2 -9
  19. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  20. package/cjs/components/Textarea/Textarea.d.ts +5 -1
  21. package/cjs/components/Textarea/Textarea.js +10 -1
  22. package/cjs/components/Textarea/Textarea.js.map +1 -1
  23. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +5 -0
  24. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  25. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
  26. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -1
  27. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  28. package/components/Modal/Modal/Modal.js +5 -7
  29. package/components/Modal/Modal/Modal.js.map +1 -1
  30. package/components/Modal/Modal.d.ts +25 -22
  31. package/components/Modal/ModalBody/ModalBody.js +1 -1
  32. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  33. package/components/Modal/ModalBody.d.ts +1 -1
  34. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  35. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  36. package/components/Modal/ModalFooter.d.ts +5 -5
  37. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  38. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  39. package/components/Modal/ModalHeader.d.ts +3 -3
  40. package/components/Radio/Radio/Radio.js +5 -4
  41. package/components/Radio/Radio/Radio.js.map +1 -1
  42. package/components/Radio/Radio.d.ts +11 -10
  43. package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -9
  44. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  45. package/components/RadioGroup/RadioGroup.d.ts +21 -28
  46. package/components/Textarea/Textarea/Textarea.js +5 -0
  47. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  48. package/components/Textarea/Textarea.d.ts +5 -1
  49. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +5 -0
  50. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  51. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -0
  52. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  53. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
  54. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.5.2](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.5.1...@skbkontur/react-ui@5.5.2) (2025-12-25)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **Combobox:** fix input scroll when select via keyboard ([294a35d](https://github.com/skbkontur/retail-ui/commit/294a35da9c948cbba0ea33ab8b035c7c0a4caafc))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [5.5.1](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.5.0...@skbkontur/react-ui@5.5.1) (2025-12-18)
7
18
 
8
19
 
@@ -7,29 +7,34 @@ import { ModalHeader } from './ModalHeader';
7
7
  import { ModalBody } from './ModalBody';
8
8
  export type MobileModalAppearance = 'auto' | 'top' | 'center' | 'bottom' | 'fullscreen-spacing' | 'fullscreen';
9
9
  export interface ModalProps extends CommonProps, Pick<HTMLAttributes<unknown>, 'role'>, Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {
10
- /** Отключает событие `onClose` и дизейблит кнопку закрытия модалки. */
10
+ /** Отключает событие `onClose` и блокирует кнопку закрытия модального окна. */
11
11
  disableClose?: boolean;
12
- /** Выравнивает окно по верху страницы. */
12
+ /** Выравнивает модальное окно по верху страницы. */
13
13
  alignTop?: boolean;
14
- /** Оставляет окно открытым при клике на фон. */
14
+ /** Оставляет модальное окно открытым, когда пользователь кликнул на фон вне модального окна. */
15
15
  ignoreBackgroundClick?: boolean;
16
- /** Убирает крестик для закрытия окна */
16
+ /** Скрывает крестик для закрытия модального окна. */
17
17
  noClose?: boolean;
18
- /** Задает ширину модалки. */
18
+ /** Ширина модального окна. */
19
19
  width?: number | string;
20
- /** Задает функцию, которая вызывается, когда пользователь запросил закрытие окна (нажал на фон, на Escape или на крестик). */
20
+ /** Событие закрытия модального окна. Вызывается при клике на фон или крестик, и при нажатии Esc. */
21
21
  onClose?: () => void;
22
- /** Отключает фокус-лок внутри модалки. По умолчанию true для IE11. */
22
+ /** Выключает ограничение на фокус. По умолчанию модальное окно не позволяет установить фокус за переделами своего содержимого.
23
+ *
24
+ * По умолчанию `"true"` для Internet Explorer 11. */
23
25
  disableFocusLock?: boolean;
24
- /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */
26
+ /** Объект с переменными темы. Он будет объединён с темой из `<ThemeContext>`.
27
+ *
28
+ * Общие переменные темы и переменные для модального окна (с префиксом modal) смотрите на странице [ThemePlayground](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_information-themeplayground--docs).
29
+ */
25
30
  theme?: ThemeIn;
26
- /** Задает внешний вид модалки. Работает с версией темы >= 5_2.
27
- * - `auto` — если футера нет, модалка распологается в центре экрана, если футер есть -- модалка растягивается на весь экран с отступами и закругленными краями
28
- * - `top` — модалка располагается сверху независимо от наличия футера
29
- * - `center` — модалка располагается в центре независимо от наличия футера
30
- * - `bottom` — модалка располагается снизу независимо от наличия футера
31
- * - `fullscreen-spacing` — модалка растягивается на весь экран с отступами и закругленными краями
32
- * - `fullscreen` — модалка растягивается на весь экран
31
+ /** Задаёт внешний вид модального окна в мобильном режиме. Работает с версией темы >= 5_2.
32
+ * - `"auto"` — если футера нет, модальное окно распологается в центре экрана, если есть модальное окно растягивается на весь экран с отступами и закругленными краями.
33
+ * - `"top"` — модальное окно располагается сверху независимо от наличия футера.
34
+ * - `"center"` — модальное окно располагается в центре независимо от наличия футера.
35
+ * - `"bottom"` — модальное окно располагается снизу независимо от наличия футера.
36
+ * - `"fullscreen-spacing"` — модальное окно растягивается на весь экран с отступами и закругленными краями.
37
+ * - `"fullscreen"` — модальное окно растягивается на весь экран.
33
38
  * @default auto
34
39
  */
35
40
  mobileAppearance?: MobileModalAppearance;
@@ -52,14 +57,12 @@ export declare const ModalZIndexPriority: {
52
57
  readonly Content: 1;
53
58
  };
54
59
  type DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role' | 'mobileAppearance'>>;
55
- /**
56
- * Модальное окно `Modal` — это эмуляция диалогового окна браузера, появляющегося поверх страницы в ответ на действия пользователя и блокирующего доступ к основному содержимому страницы.
57
- *
58
- * Состоит из 3-х компонентов: `Modal.Header`, `Modal.Body`, `Modal.Footer`.
59
- *
60
- * Для отображения серой плашки в футере в компонент `Footer` необходимо передать проп `panel`.
60
+ /** Модальное окно — это эмуляция диалогового окна браузера, оно появляется поверх страницы в ответ на действия пользователя и блокирует доступ к основному содержимому страницы.
61
61
  *
62
- * Для отключения прилипания шапки и футера в соответствующий компонент нужно передать проп `sticky` со значением `false` (по-умолчанию прилипание включено).
62
+ * Составной компонент, включает в себя:
63
+ * - «шапку» [Modal.Header](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalheader--docs), состоящую из заголовка и крестика закрытия окна;
64
+ * - контент-зону [Modal.Body](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalbody--docs);
65
+ * - футер [Modal.Footer](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalfooter--docs).
63
66
  */
64
67
  export declare class Modal extends React.Component<ModalProps, ModalState> {
65
68
  static __KONTUR_REACT_UI__: string;
@@ -81,6 +81,11 @@ var mountedModalsCount = 0;
81
81
 
82
82
 
83
83
 
84
+
85
+
86
+
87
+
88
+
84
89
 
85
90
 
86
91
 
@@ -100,14 +105,12 @@ var ModalZIndexPriority = exports.ModalZIndexPriority = {
100
105
 
101
106
 
102
107
 
103
- /**
104
- * Модальное окно `Modal` — это эмуляция диалогового окна браузера, появляющегося поверх страницы в ответ на действия пользователя и блокирующего доступ к основному содержимому страницы.
105
- *
106
- * Состоит из 3-х компонентов: `Modal.Header`, `Modal.Body`, `Modal.Footer`.
107
- *
108
- * Для отображения серой плашки в футере в компонент `Footer` необходимо передать проп `panel`.
108
+ /** Модальное окно — это эмуляция диалогового окна браузера, оно появляется поверх страницы в ответ на действия пользователя и блокирует доступ к основному содержимому страницы.
109
109
  *
110
- * Для отключения прилипания шапки и футера в соответствующий компонент нужно передать проп `sticky` со значением `false` (по-умолчанию прилипание включено).
110
+ * Составной компонент, включает в себя:
111
+ * - «шапку» [Modal.Header](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalheader--docs), состоящую из заголовка и крестика закрытия окна;
112
+ * - контент-зону [Modal.Body](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalbody--docs);
113
+ * - футер [Modal.Footer](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalfooter--docs).
111
114
  */var
112
115
  Modal = exports.Modal = /*#__PURE__*/function (_React$Component) {function Modal() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
113
116
 
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactFocusLock","_lodash","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_RenderContainer","_ZIndex","_stopPropagation","_HideBodyVerticalScroll","_ModalStack","_ResizeDetector","_ThemeContext","_client","_CommonWrapper","_Emotion","_createPropsGetter","_ResponsiveLayout","_ThemeHelpers","_typeGuards","_ModalContext","_ModalFooter","_ModalHeader","_ModalBody","_ModalClose","_Modal2","_getModalTheme","mountedModalsCount","ModalDataTids","exports","container","content","close","ModalZIndexPriority","Cross","Content","Modal","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","getMobileContainerClassName","mobileAppearance","styles","mobileContainerSmall5_2","mobileContainerFullscreen5_2","mobileContainerSmallBottom5_2","mobileContainerSmallTop5_2","catchUnreachableWarning","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","isKeyEscape","stopPropagation","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","throttle","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","_inheritsLoose2","default","_proto","prototype","componentDidMount","add","globalObject","addEventListener","componentWillUnmount","removeEventListener","isNonNullable","remove","render","_this2","createElement","ThemeContext","Consumer","theme","getModalTheme","Provider","value","renderMain","_this3","_this$props","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","_this$state","_this$getProps","role","disableFocusLock","modalContextProps","mobileOnFullScreen","additionalPadding","versionGTE5_2","isThemeGTE","style","containerStyle","getMobileCenterContainerClassNames","_cx","cx","mobileCenterContainer5_2","mobileCenterContainerBig5_2","mobileCenterContainerFullscreen5_2","mobileCenterContainer","RenderContainer","CommonWrapper","ZIndex","priority","className","root","HideBodyVerticalScroll","onMouseDown","onMouseUp","onClick","bg","ResponsiveLayout","_ref","_cx2","_cx3","_cx4","_cx5","_cx6","isMobile","ref","container5_2","containerDesktop","containerMobile","centerContainer","Boolean","undefined","window","mobileWindow","mobileWindowFullscreen5_2","ResizeDetector","onResize","fullHeight","disabled","autoFocus","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWrapper5_2","ModalClose","mobileCloseWithoutHeader","mobileCloseWithoutHeader5_2","ModalContext","React","Component","__KONTUR_REACT_UI__","displayName","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter","isIE11"],"sources":["Modal.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\n\nimport type { ModalContextProps } from './ModalContext';\nimport { ModalContext } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport type MobileModalAppearance = 'auto' | 'top' | 'center' | 'bottom' | 'fullscreen-spacing' | 'fullscreen';\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /** Отключает событие `onClose` и дизейблит кнопку закрытия модалки. */\n disableClose?: boolean;\n\n /** Выравнивает окно по верху страницы. */\n alignTop?: boolean;\n\n /** Оставляет окно открытым при клике на фон. */\n ignoreBackgroundClick?: boolean;\n\n /** Убирает крестик для закрытия окна */\n noClose?: boolean;\n\n /** Задает ширину модалки. */\n width?: number | string;\n\n /** Задает функцию, которая вызывается, когда пользователь запросил закрытие окна (нажал на фон, на Escape или на крестик). */\n onClose?: () => void;\n\n /** Отключает фокус-лок внутри модалки. По умолчанию true для IE11. */\n disableFocusLock?: boolean;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n\n /** Задает внешний вид модалки. Работает с версией темы >= 5_2.\n * - `auto` — если футера нет, модалка распологается в центре экрана, если футер есть -- модалка растягивается на весь экран с отступами и закругленными краями\n * - `top` — модалка располагается сверху независимо от наличия футера\n * - `center` — модалка располагается в центре независимо от наличия футера\n * - `bottom` — модалка располагается снизу независимо от наличия футера\n * - `fullscreen-spacing` — модалка растягивается на весь экран с отступами и закругленными краями\n * - `fullscreen` — модалка растягивается на весь экран\n * @default auto\n */\n mobileAppearance?: MobileModalAppearance;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\nexport const ModalZIndexPriority = {\n Cross: 2,\n Content: 1,\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role' | 'mobileAppearance'>>;\n\n/**\n * Модальное окно `Modal` — это эмуляция диалогового окна браузера, появляющегося поверх страницы в ответ на действия пользователя и блокирующего доступ к основному содержимому страницы.\n *\n * Состоит из 3-х компонентов: `Modal.Header`, `Modal.Body`, `Modal.Footer`.\n *\n * Для отображения серой плашки в футере в компонент `Footer` необходимо передать проп `panel`.\n *\n * Для отключения прилипания шапки и футера в соответствующий компонент нужно передать проп `sticky` со значением `false` (по-умолчанию прилипание включено).\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n mobileAppearance: 'auto',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getMobileContainerClassName = () => {\n const mobileAppearance = this.getProps().mobileAppearance;\n switch (mobileAppearance) {\n case 'fullscreen-spacing':\n return;\n case 'auto':\n if (this.state.hasFooter) {\n return;\n }\n return [styles.mobileContainerSmall5_2()];\n case 'fullscreen':\n return [styles.mobileContainerFullscreen5_2()];\n case 'center':\n return [styles.mobileContainerSmall5_2()];\n case 'bottom':\n return [styles.mobileContainerSmall5_2(), styles.mobileContainerSmallBottom5_2()];\n case 'top':\n return [styles.mobileContainerSmall5_2(), styles.mobileContainerSmallTop5_2()];\n default:\n return catchUnreachableWarning(mobileAppearance, false);\n }\n };\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n mobileAppearance,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n mobileOnFullScreen: this.props.mobileAppearance === 'fullscreen',\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter || hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const versionGTE5_2 = isThemeGTE(this.theme, '5.2');\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n const getMobileCenterContainerClassNames = () => {\n if (versionGTE5_2) {\n return cx(styles.mobileCenterContainer5_2(this.theme), {\n [styles.mobileCenterContainerBig5_2(this.theme)]:\n mobileAppearance === 'fullscreen-spacing' || (mobileAppearance === 'auto' && hasFooter),\n [styles.mobileCenterContainerFullscreen5_2()]: mobileAppearance === 'fullscreen',\n });\n }\n return cx(styles.mobileCenterContainer());\n };\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={cx(\n styles.container(),\n versionGTE5_2 && styles.container5_2(),\n (!versionGTE5_2 || !isMobile) && styles.containerDesktop(),\n !versionGTE5_2 && isMobile && styles.containerMobile(this.theme),\n versionGTE5_2 && isMobile && this.getMobileContainerClassName(),\n )}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={cx({\n [styles.centerContainer()]: true,\n [getMobileCenterContainerClassNames()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({\n [styles.window(this.theme)]: true,\n [styles.mobileWindow()]: isMobile,\n [styles.mobileWindowFullscreen5_2()]:\n versionGTE5_2 && isMobile && mobileAppearance === 'fullscreen',\n })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n priority={ModalZIndexPriority.Cross}\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n [styles.mobileCloseWrapper5_2(this.theme)]: versionGTE5_2 && isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n [styles.mobileCloseWithoutHeader5_2(this.theme)]:\n versionGTE5_2 && isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader: boolean) => {\n this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter: boolean) => {\n this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel: boolean) => {\n this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactFocusLock","_lodash","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_RenderContainer","_ZIndex","_stopPropagation","_HideBodyVerticalScroll","_ModalStack","_ResizeDetector","_ThemeContext","_client","_CommonWrapper","_Emotion","_createPropsGetter","_ResponsiveLayout","_ThemeHelpers","_typeGuards","_ModalContext","_ModalFooter","_ModalHeader","_ModalBody","_ModalClose","_Modal2","_getModalTheme","mountedModalsCount","ModalDataTids","exports","container","content","close","ModalZIndexPriority","Cross","Content","Modal","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","getMobileContainerClassName","mobileAppearance","styles","mobileContainerSmall5_2","mobileContainerFullscreen5_2","mobileContainerSmallBottom5_2","mobileContainerSmallTop5_2","catchUnreachableWarning","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","isKeyEscape","stopPropagation","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","throttle","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","_inheritsLoose2","default","_proto","prototype","componentDidMount","add","globalObject","addEventListener","componentWillUnmount","removeEventListener","isNonNullable","remove","render","_this2","createElement","ThemeContext","Consumer","theme","getModalTheme","Provider","value","renderMain","_this3","_this$props","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","_this$state","_this$getProps","role","disableFocusLock","modalContextProps","mobileOnFullScreen","additionalPadding","versionGTE5_2","isThemeGTE","style","containerStyle","getMobileCenterContainerClassNames","_cx","cx","mobileCenterContainer5_2","mobileCenterContainerBig5_2","mobileCenterContainerFullscreen5_2","mobileCenterContainer","RenderContainer","CommonWrapper","ZIndex","priority","className","root","HideBodyVerticalScroll","onMouseDown","onMouseUp","onClick","bg","ResponsiveLayout","_ref","_cx2","_cx3","_cx4","_cx5","_cx6","isMobile","ref","container5_2","containerDesktop","containerMobile","centerContainer","Boolean","undefined","window","mobileWindow","mobileWindowFullscreen5_2","ResizeDetector","onResize","fullHeight","disabled","autoFocus","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWrapper5_2","ModalClose","mobileCloseWithoutHeader","mobileCloseWithoutHeader5_2","ModalContext","React","Component","__KONTUR_REACT_UI__","displayName","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter","isIE11"],"sources":["Modal.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { catchUnreachableWarning } from '../../lib/typeGuards';\n\nimport type { ModalContextProps } from './ModalContext';\nimport { ModalContext } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport type MobileModalAppearance = 'auto' | 'top' | 'center' | 'bottom' | 'fullscreen-spacing' | 'fullscreen';\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /** Отключает событие `onClose` и блокирует кнопку закрытия модального окна. */\n disableClose?: boolean;\n\n /** Выравнивает модальное окно по верху страницы. */\n alignTop?: boolean;\n\n /** Оставляет модальное окно открытым, когда пользователь кликнул на фон вне модального окна. */\n ignoreBackgroundClick?: boolean;\n\n /** Скрывает крестик для закрытия модального окна. */\n noClose?: boolean;\n\n /** Ширина модального окна. */\n width?: number | string;\n\n /** Событие закрытия модального окна. Вызывается при клике на фон или крестик, и при нажатии Esc. */\n onClose?: () => void;\n\n /** Выключает ограничение на фокус. По умолчанию модальное окно не позволяет установить фокус за переделами своего содержимого.\n *\n * По умолчанию `\"true\"` для Internet Explorer 11. */\n disableFocusLock?: boolean;\n\n /** Объект с переменными темы. Он будет объединён с темой из `<ThemeContext>`.\n *\n * Общие переменные темы и переменные для модального окна (с префиксом modal) смотрите на странице [ThemePlayground](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_information-themeplayground--docs).\n */\n theme?: ThemeIn;\n\n /** Задаёт внешний вид модального окна в мобильном режиме. Работает с версией темы >= 5_2.\n * - `\"auto\"` — если футера нет, модальное окно распологается в центре экрана, если есть — модальное окно растягивается на весь экран с отступами и закругленными краями.\n * - `\"top\"` — модальное окно располагается сверху независимо от наличия футера.\n * - `\"center\"` — модальное окно располагается в центре независимо от наличия футера.\n * - `\"bottom\"` — модальное окно располагается снизу независимо от наличия футера.\n * - `\"fullscreen-spacing\"` — модальное окно растягивается на весь экран с отступами и закругленными краями.\n * - `\"fullscreen\"` — модальное окно растягивается на весь экран.\n * @default auto\n */\n mobileAppearance?: MobileModalAppearance;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\nexport const ModalZIndexPriority = {\n Cross: 2,\n Content: 1,\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role' | 'mobileAppearance'>>;\n\n/** Модальное окно — это эмуляция диалогового окна браузера, оно появляется поверх страницы в ответ на действия пользователя и блокирует доступ к основному содержимому страницы.\n *\n * Составной компонент, включает в себя:\n * - «шапку» [Modal.Header](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalheader--docs), состоящую из заголовка и крестика закрытия окна;\n * - контент-зону [Modal.Body](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalbody--docs);\n * - футер [Modal.Footer](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalfooter--docs).\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n mobileAppearance: 'auto',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getMobileContainerClassName = () => {\n const mobileAppearance = this.getProps().mobileAppearance;\n switch (mobileAppearance) {\n case 'fullscreen-spacing':\n return;\n case 'auto':\n if (this.state.hasFooter) {\n return;\n }\n return [styles.mobileContainerSmall5_2()];\n case 'fullscreen':\n return [styles.mobileContainerFullscreen5_2()];\n case 'center':\n return [styles.mobileContainerSmall5_2()];\n case 'bottom':\n return [styles.mobileContainerSmall5_2(), styles.mobileContainerSmallBottom5_2()];\n case 'top':\n return [styles.mobileContainerSmall5_2(), styles.mobileContainerSmallTop5_2()];\n default:\n return catchUnreachableWarning(mobileAppearance, false);\n }\n };\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n mobileAppearance,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n mobileOnFullScreen: this.props.mobileAppearance === 'fullscreen',\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter || hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const versionGTE5_2 = isThemeGTE(this.theme, '5.2');\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n const getMobileCenterContainerClassNames = () => {\n if (versionGTE5_2) {\n return cx(styles.mobileCenterContainer5_2(this.theme), {\n [styles.mobileCenterContainerBig5_2(this.theme)]:\n mobileAppearance === 'fullscreen-spacing' || (mobileAppearance === 'auto' && hasFooter),\n [styles.mobileCenterContainerFullscreen5_2()]: mobileAppearance === 'fullscreen',\n });\n }\n return cx(styles.mobileCenterContainer());\n };\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={cx(\n styles.container(),\n versionGTE5_2 && styles.container5_2(),\n (!versionGTE5_2 || !isMobile) && styles.containerDesktop(),\n !versionGTE5_2 && isMobile && styles.containerMobile(this.theme),\n versionGTE5_2 && isMobile && this.getMobileContainerClassName(),\n )}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={cx({\n [styles.centerContainer()]: true,\n [getMobileCenterContainerClassNames()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({\n [styles.window(this.theme)]: true,\n [styles.mobileWindow()]: isMobile,\n [styles.mobileWindowFullscreen5_2()]:\n versionGTE5_2 && isMobile && mobileAppearance === 'fullscreen',\n })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n priority={ModalZIndexPriority.Cross}\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n [styles.mobileCloseWrapper5_2(this.theme)]: versionGTE5_2 && isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n [styles.mobileCloseWithoutHeader5_2(this.theme)]:\n versionGTE5_2 && isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader: boolean) => {\n this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter: boolean) => {\n this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel: boolean) => {\n this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,7 @@ export interface ModalBodyProps extends CommonProps {
6
6
  noPadding?: boolean;
7
7
  }
8
8
  /**
9
- * ModalBody - контейнер с отступами от края модалки.
9
+ * Контейнер с отступами для содержимого модального окна.
10
10
  *
11
11
  * @visibleName Modal.Body
12
12
  */
@@ -24,7 +24,7 @@ var _Modal2 = require("./Modal");var _class, _ModalBody;
24
24
 
25
25
 
26
26
  /**
27
- * ModalBody - контейнер с отступами от края модалки.
27
+ * Контейнер с отступами для содержимого модального окна.
28
28
  *
29
29
  * @visibleName Modal.Body
30
30
  */var
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_ZIndex","_CommonWrapper","_Emotion","_decorator","LayoutEvents","_interopRequireWildcard","_ResizeDetector","_rootNode","_ThemeHelpers","_ModalContext","_Modal","_getModalBodyTheme","_Modal2","_class","_ModalBody","ModalBody","exports","responsiveLayout","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","handleResize","emit","_inheritsLoose2","default","_proto","prototype","render","_this2","createElement","ThemeContext","Consumer","theme","getModalBodyTheme","Provider","value","renderMain","_this3","versionGTE5_2","isThemeGTE","noPadding","props","ModalContext","_ref","_cx","additionalPadding","hasHeader","CommonWrapper","_extends2","rootNodeRef","setRootNode","ZIndex","priority","ModalZIndexPriority","Content","className","cx","styles","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","mobileBodyWithoutHeader5_2","mobileBodyAddPaddingForPanel5_2","bodyWithoutPadding","ResizeDetector","onResize","children","React","Component","__KONTUR_REACT_UI__","displayName","__MODAL_BODY__"],"sources":["ModalBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\n\nimport { ModalContext } from './ModalContext';\nimport { styles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\nimport { ModalZIndexPriority } from './Modal';\n\nexport interface ModalBodyProps extends CommonProps {\n /** Убирает отступы. */\n noPadding?: boolean;\n}\n\n/**\n * ModalBody - контейнер с отступами от края модалки.\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static displayName = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const versionGTE5_2 = isThemeGTE(this.theme, '5.2');\n const { noPadding } = this.props;\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n priority={ModalZIndexPriority.Content}\n className={cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.mobileBodyWithoutHeader5_2(this.theme)]: versionGTE5_2 && !hasHeader && this.isMobileLayout,\n [styles.mobileBodyAddPaddingForPanel5_2(this.theme)]:\n versionGTE5_2 && additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_ThemeContext","_ZIndex","_CommonWrapper","_Emotion","_decorator","LayoutEvents","_interopRequireWildcard","_ResizeDetector","_rootNode","_ThemeHelpers","_ModalContext","_Modal","_getModalBodyTheme","_Modal2","_class","_ModalBody","ModalBody","exports","responsiveLayout","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","handleResize","emit","_inheritsLoose2","default","_proto","prototype","render","_this2","createElement","ThemeContext","Consumer","theme","getModalBodyTheme","Provider","value","renderMain","_this3","versionGTE5_2","isThemeGTE","noPadding","props","ModalContext","_ref","_cx","additionalPadding","hasHeader","CommonWrapper","_extends2","rootNodeRef","setRootNode","ZIndex","priority","ModalZIndexPriority","Content","className","cx","styles","body","mobileBody","isMobileLayout","bodyWithoutHeader","mobileBodyWithoutHeader","bodyAddPaddingForPanel","mobileBodyAddPaddingForPanel","mobileBodyWithoutHeader5_2","mobileBodyAddPaddingForPanel5_2","bodyWithoutPadding","ResizeDetector","onResize","children","React","Component","__KONTUR_REACT_UI__","displayName","__MODAL_BODY__"],"sources":["ModalBody.tsx"],"sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\n\nimport { ModalContext } from './ModalContext';\nimport { styles } from './Modal.styles';\nimport { getModalBodyTheme } from './getModalBodyTheme';\nimport { ModalZIndexPriority } from './Modal';\n\nexport interface ModalBodyProps extends CommonProps {\n /** Убирает отступы. */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами для содержимого модального окна.\n *\n * @visibleName Modal.Body\n */\n@responsiveLayout\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static displayName = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private isMobileLayout!: boolean;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalBodyTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n public renderMain(): JSX.Element {\n const versionGTE5_2 = isThemeGTE(this.theme, '5.2');\n const { noPadding } = this.props;\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n priority={ModalZIndexPriority.Content}\n className={cx({\n [styles.body(this.theme)]: true,\n [styles.mobileBody(this.theme)]: this.isMobileLayout,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.mobileBodyWithoutHeader()]: !hasHeader && this.isMobileLayout,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.mobileBodyAddPaddingForPanel(this.theme)]: additionalPadding && this.isMobileLayout,\n [styles.mobileBodyWithoutHeader5_2(this.theme)]: versionGTE5_2 && !hasHeader && this.isMobileLayout,\n [styles.mobileBodyAddPaddingForPanel5_2(this.theme)]:\n versionGTE5_2 && additionalPadding && this.isMobileLayout,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.isMobileLayout ? (\n <ResizeDetector onResize={this.handleResize}>{this.props.children}</ResizeDetector>\n ) : (\n this.props.children\n )}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"],"mappings":"8aAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;AAEA,IAAAC,aAAA,GAAAD,OAAA;;AAEA,IAAAE,OAAA,GAAAF,OAAA;;AAEA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAC,uBAAA,CAAAP,OAAA;AACA,IAAAQ,eAAA,GAAAR,OAAA;;AAEA,IAAAS,SAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;;AAEA,IAAAW,aAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,kBAAA,GAAAb,OAAA;AACA,IAAAc,OAAA,GAAAd,OAAA,YAA8C,IAAAe,MAAA,EAAAC,UAAA;;;;;;;AAO9C;AACA;AACA;AACA;AACA,GAJA;;;AAOaC,SAAS,GAAAC,OAAA,CAAAD,SAAA,OAFrBE,2BAAgB,EAAAJ,MAAA,OAChBK,kBAAQ,EAAAL,MAAA,IAAAC,UAAA,0BAAAK,gBAAA,YAAAJ,UAAA,OAAAK,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;;;;;;;;IAsBCU,YAAY,GAAG,YAAM;MAC3B1B,YAAY,CAAC2B,IAAI,CAAC,CAAC;IACrB,CAAC,QAAAX,KAAA,MAAAY,eAAA,CAAAC,OAAA,EAAAlB,SAAA,EAAAI,gBAAA,MAAAe,MAAA,GAAAnB,SAAA,CAAAoB,SAAA,CAAAD,MAAA,CAbME,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACEzC,MAAA,CAAAqC,OAAA,CAAAK,aAAA,CAACvC,aAAA,CAAAwC,YAAY,CAACC,QAAQ,QACnB,UAACC,KAAK,EAAK,CACVJ,MAAI,CAACI,KAAK,GAAG,IAAAC,oCAAiB,EAACD,KAAK,CAAC,CACrC,oBAAO7C,MAAA,CAAAqC,OAAA,CAAAK,aAAA,CAACvC,aAAA,CAAAwC,YAAY,CAACI,QAAQ,IAACC,KAAK,EAAEP,MAAI,CAACI,KAAM,IAAEJ,MAAI,CAACQ,UAAU,CAAC,CAAyB,CAAC,CAC9F,CACqB,CAAC,CAE5B,CAAC,CAAAX,MAAA;;EAMMW,UAAU,GAAjB,SAAAA,WAAA,EAAiC,KAAAC,MAAA;IAC/B,IAAMC,aAAa,GAAG,IAAAC,wBAAU,EAAC,IAAI,CAACP,KAAK,EAAE,KAAK,CAAC;IACnD,IAAQQ,SAAS,GAAK,IAAI,CAACC,KAAK,CAAxBD,SAAS;IACjB;MACErD,MAAA,CAAAqC,OAAA,CAAAK,aAAA,CAAC7B,aAAA,CAAA0C,YAAY,CAACX,QAAQ;MACnB,UAAAY,IAAA,OAAAC,GAAA,KAAGC,iBAAiB,GAAAF,IAAA,CAAjBE,iBAAiB,CAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS;UAC9B3D,MAAA,CAAAqC,OAAA,CAAAK,aAAA,CAACrC,cAAA,CAAAuD,aAAa,MAAAC,SAAA,CAAAxB,OAAA,IAACyB,WAAW,EAAEZ,MAAI,CAACa,WAAY,IAAKb,MAAI,CAACI,KAAK;UAC1DtD,MAAA,CAAAqC,OAAA,CAAAK,aAAA,CAACtC,OAAA,CAAA4D,MAAM;YACLC,QAAQ,EAAEC,2BAAmB,CAACC,OAAQ;YACtCC,SAAS,EAAE,IAAAC,WAAE,GAAAZ,GAAA,OAAAA,GAAA;YACVa,aAAM,CAACC,IAAI,CAACrB,MAAI,CAACL,KAAK,CAAC,IAAG,IAAI,EAAAY,GAAA;YAC9Ba,aAAM,CAACE,UAAU,CAACtB,MAAI,CAACL,KAAK,CAAC,IAAGK,MAAI,CAACuB,cAAc,EAAAhB,GAAA;YACnDa,aAAM,CAACI,iBAAiB,CAACxB,MAAI,CAACL,KAAK,CAAC,IAAG,CAACc,SAAS,EAAAF,GAAA;YACjDa,aAAM,CAACK,uBAAuB,CAAC,CAAC,IAAG,CAAChB,SAAS,IAAIT,MAAI,CAACuB,cAAc,EAAAhB,GAAA;YACpEa,aAAM,CAACM,sBAAsB,CAAC1B,MAAI,CAACL,KAAK,CAAC,IAAGa,iBAAiB,EAAAD,GAAA;YAC7Da,aAAM,CAACO,4BAA4B,CAAC3B,MAAI,CAACL,KAAK,CAAC,IAAGa,iBAAiB,IAAIR,MAAI,CAACuB,cAAc,EAAAhB,GAAA;YAC1Fa,aAAM,CAACQ,0BAA0B,CAAC5B,MAAI,CAACL,KAAK,CAAC,IAAGM,aAAa,IAAI,CAACQ,SAAS,IAAIT,MAAI,CAACuB,cAAc,EAAAhB,GAAA;YAClGa,aAAM,CAACS,+BAA+B,CAAC7B,MAAI,CAACL,KAAK,CAAC;YACjDM,aAAa,IAAIO,iBAAiB,IAAIR,MAAI,CAACuB,cAAc,EAAAhB,GAAA;YAC1Da,aAAM,CAACU,kBAAkB,CAAC,CAAC,IAAG3B,SAAS,EAAAI,GAAA;YACzC,CAAE;;UAEFP,MAAI,CAACuB,cAAc;UAClBzE,MAAA,CAAAqC,OAAA,CAAAK,aAAA,CAAChC,eAAA,CAAAuE,cAAc,IAACC,QAAQ,EAAEhC,MAAI,CAAChB,YAAa,IAAEgB,MAAI,CAACI,KAAK,CAAC6B,QAAyB,CAAC;;UAEnFjC,MAAI,CAACI,KAAK,CAAC6B;;UAEP;UACK,CAAC;;MAEG,CAAC;;EAE5B,CAAC,QAAAhE,SAAA,GAzD4BiE,cAAK,CAACC,SAAS,GAAAnE,UAAA,CAC9BoE,mBAAmB,GAAG,WAAW,EAAApE,UAAA,CACjCqE,WAAW,GAAG,WAAW,EAAArE,UAAA,CACzBsE,cAAc,GAAG,IAAI,EAAAtE,UAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
@@ -3,21 +3,21 @@ import React from 'react';
3
3
  import type { CommonProps } from '../../internal/CommonWrapper';
4
4
  import type { GappedProps } from '../Gapped';
5
5
  export interface ModalFooterProps extends CommonProps {
6
- /** Включает серый цвет в футере. */
6
+ /** Включает разделитель перед футером. */
7
7
  panel?: boolean;
8
- /** Закрепляет футер снизу модального окна.
8
+ /** Закрепляет футер модального окна при скролле длинной контент-зоны.
9
9
  * @default На десктопе - `true`, на мобильных - `false`. */
10
10
  sticky?: boolean;
11
- /** Задает контент футера. */
11
+ /** Контент футера. */
12
12
  children?: ReactNode;
13
- /** Задает расстояние между элементами футера в пикселях. */
13
+ /** Расстояние между элементами футера в пикселях. */
14
14
  gap?: GappedProps['gap'];
15
15
  }
16
16
  export declare const ModalFooterDataTids: {
17
17
  readonly root: "ModalFooter__root";
18
18
  };
19
19
  /**
20
- * Футер модального окна.
20
+ * Футер модального окна, где обычно располагаются кнопки основных действий.
21
21
  *
22
22
  * @visibleName Modal.Footer
23
23
  */
@@ -37,7 +37,7 @@ var ModalFooterDataTids = exports.ModalFooterDataTids = {
37
37
  };
38
38
 
39
39
  /**
40
- * Футер модального окна.
40
+ * Футер модального окна, где обычно располагаются кнопки основных действий.
41
41
  *
42
42
  * @visibleName Modal.Footer
43
43
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_getScrollWidth","_Sticky","_ThemeContext","_CommonWrapper","_Emotion","_ResponsiveLayout","_Gapped","_utils","_ThemeHelpers","_Modal","_ModalContext","_ModalSeparator","ModalFooterDataTids","exports","root","ModalFooter","props","theme","useContext","ThemeContext","modal","ModalContext","layout","useResponsiveLayout","_props$sticky","sticky","isMobile","gap","panel","children","useLayoutEffect","setHasFooter","setHasPanel","versionGTE5_2","isThemeGTE","renderContent","fixed","default","createElement","ModalSeparator","className","cx","styles","footer","fixedFooter","fixedFooter5_2","Boolean","fixedPanel","mobileFooter","mobileFixedFooter5_2","isNonNullable","Gapped","vertical","getStickyOffset","offset","horizontalScroll","getScrollWidth","mobileOnFullScreen","parseInt","mobileModalContainerMarginBottom","CommonWrapper","Sticky","side","__KONTUR_REACT_UI__","displayName","__MODAL_FOOTER__"],"sources":["ModalFooter.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useContext, useLayoutEffect } from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport type { GappedProps } from '../Gapped';\nimport { Gapped } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './Modal.styles';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalFooterProps extends CommonProps {\n /** Включает серый цвет в футере. */\n panel?: boolean;\n\n /** Закрепляет футер снизу модального окна.\n * @default На десктопе - `true`, на мобильных - `false`. */\n sticky?: boolean;\n\n /** Задает контент футера. */\n children?: ReactNode;\n\n /** Задает расстояние между элементами футера в пикселях. */\n gap?: GappedProps['gap'];\n}\n\nexport const ModalFooterDataTids = {\n root: 'ModalFooter__root',\n} as const;\n\n/**\n * Футер модального окна.\n *\n * @visibleName Modal.Footer\n */\nfunction ModalFooter(props: ModalFooterProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, gap, panel, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasFooter?.(true);\n modal.setHasPanel?.(panel || false);\n\n return () => {\n modal.setHasFooter?.(false);\n modal.setHasPanel?.(false);\n };\n }, [panel]);\n\n const versionGTE5_2 = isThemeGTE(theme, '5.2');\n const renderContent = (fixed = false) => {\n return (\n <div>\n {(panel || fixed) && <ModalSeparator fixed={fixed} />}\n <div\n data-tid={ModalFooterDataTids.root}\n className={cx(\n styles.footer(theme),\n fixed && styles.fixedFooter(theme),\n versionGTE5_2 && fixed && styles.fixedFooter5_2(),\n Boolean(panel) && styles.panel(theme),\n fixed && Boolean(panel) && styles.fixedPanel(theme),\n layout.isMobile && styles.mobileFooter(theme),\n versionGTE5_2 && layout.isMobile && fixed && styles.mobileFixedFooter5_2(theme),\n )}\n >\n {isNonNullable(gap) ? (\n <Gapped vertical={layout.isMobile} gap={gap}>\n {children}\n </Gapped>\n ) : (\n children\n )}\n </div>\n </div>\n );\n };\n\n const getStickyOffset = () => {\n let offset = 0;\n if (modal.horizontalScroll) {\n offset += getScrollWidth();\n }\n if (versionGTE5_2 && layout.isMobile && !modal.mobileOnFullScreen) {\n offset += parseInt(theme.mobileModalContainerMarginBottom);\n }\n return offset;\n };\n\n return (\n <CommonWrapper {...props}>\n {sticky ? (\n <Sticky side=\"bottom\" offset={getStickyOffset()}>\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </CommonWrapper>\n );\n}\n\nModalFooter.__KONTUR_REACT_UI__ = 'ModalFooter';\nModalFooter.displayName = 'ModalFooter';\nModalFooter.__MODAL_FOOTER__ = true;\n\nexport { ModalFooter };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_getScrollWidth","_Sticky","_ThemeContext","_CommonWrapper","_Emotion","_ResponsiveLayout","_Gapped","_utils","_ThemeHelpers","_Modal","_ModalContext","_ModalSeparator","ModalFooterDataTids","exports","root","ModalFooter","props","theme","useContext","ThemeContext","modal","ModalContext","layout","useResponsiveLayout","_props$sticky","sticky","isMobile","gap","panel","children","useLayoutEffect","setHasFooter","setHasPanel","versionGTE5_2","isThemeGTE","renderContent","fixed","default","createElement","ModalSeparator","className","cx","styles","footer","fixedFooter","fixedFooter5_2","Boolean","fixedPanel","mobileFooter","mobileFixedFooter5_2","isNonNullable","Gapped","vertical","getStickyOffset","offset","horizontalScroll","getScrollWidth","mobileOnFullScreen","parseInt","mobileModalContainerMarginBottom","CommonWrapper","Sticky","side","__KONTUR_REACT_UI__","displayName","__MODAL_FOOTER__"],"sources":["ModalFooter.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useContext, useLayoutEffect } from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport type { GappedProps } from '../Gapped';\nimport { Gapped } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './Modal.styles';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalFooterProps extends CommonProps {\n /** Включает разделитель перед футером. */\n panel?: boolean;\n\n /** Закрепляет футер модального окна при скролле длинной контент-зоны.\n * @default На десктопе - `true`, на мобильных - `false`. */\n sticky?: boolean;\n\n /** Контент футера. */\n children?: ReactNode;\n\n /** Расстояние между элементами футера в пикселях. */\n gap?: GappedProps['gap'];\n}\n\nexport const ModalFooterDataTids = {\n root: 'ModalFooter__root',\n} as const;\n\n/**\n * Футер модального окна, где обычно располагаются кнопки основных действий.\n *\n * @visibleName Modal.Footer\n */\nfunction ModalFooter(props: ModalFooterProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, gap, panel, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasFooter?.(true);\n modal.setHasPanel?.(panel || false);\n\n return () => {\n modal.setHasFooter?.(false);\n modal.setHasPanel?.(false);\n };\n }, [panel]);\n\n const versionGTE5_2 = isThemeGTE(theme, '5.2');\n const renderContent = (fixed = false) => {\n return (\n <div>\n {(panel || fixed) && <ModalSeparator fixed={fixed} />}\n <div\n data-tid={ModalFooterDataTids.root}\n className={cx(\n styles.footer(theme),\n fixed && styles.fixedFooter(theme),\n versionGTE5_2 && fixed && styles.fixedFooter5_2(),\n Boolean(panel) && styles.panel(theme),\n fixed && Boolean(panel) && styles.fixedPanel(theme),\n layout.isMobile && styles.mobileFooter(theme),\n versionGTE5_2 && layout.isMobile && fixed && styles.mobileFixedFooter5_2(theme),\n )}\n >\n {isNonNullable(gap) ? (\n <Gapped vertical={layout.isMobile} gap={gap}>\n {children}\n </Gapped>\n ) : (\n children\n )}\n </div>\n </div>\n );\n };\n\n const getStickyOffset = () => {\n let offset = 0;\n if (modal.horizontalScroll) {\n offset += getScrollWidth();\n }\n if (versionGTE5_2 && layout.isMobile && !modal.mobileOnFullScreen) {\n offset += parseInt(theme.mobileModalContainerMarginBottom);\n }\n return offset;\n };\n\n return (\n <CommonWrapper {...props}>\n {sticky ? (\n <Sticky side=\"bottom\" offset={getStickyOffset()}>\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </CommonWrapper>\n );\n}\n\nModalFooter.__KONTUR_REACT_UI__ = 'ModalFooter';\nModalFooter.displayName = 'ModalFooter';\nModalFooter.__MODAL_FOOTER__ = true;\n\nexport { ModalFooter };\n"],"mappings":"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","ignoreList":[]}
@@ -2,12 +2,12 @@ import type { ReactNode } from 'react';
2
2
  import React from 'react';
3
3
  import type { CommonProps } from '../../internal/CommonWrapper';
4
4
  export interface ModalHeaderProps extends CommonProps {
5
- /** Закрепляет хедер сверху модального окна. */
5
+ /** Закрепляет заголовок модального окна при скролле длинной контент-зоны. */
6
6
  sticky?: boolean;
7
7
  /** @ignore */
8
8
  children?: ReactNode;
9
9
  /**
10
- * Обрезает длинный заголовок при «залипании» шапки.
10
+ * Обрезает длинный заголовок. Работает с пропом `sticky`.
11
11
  * @default false
12
12
  */
13
13
  cutTitleOnStuck?: boolean;
@@ -16,7 +16,7 @@ export declare const ModalHeaderDataTids: {
16
16
  readonly root: "ModalHeader__root";
17
17
  };
18
18
  /**
19
- * Шапка модального окна.
19
+ * Шапка модального окна, состоит из заголовка и крестика закрытия.
20
20
  *
21
21
  * @visibleName Modal.Header
22
22
  */
@@ -33,7 +33,7 @@ var ModalHeaderDataTids = exports.ModalHeaderDataTids = {
33
33
  };
34
34
 
35
35
  /**
36
- * Шапка модального окна.
36
+ * Шапка модального окна, состоит из заголовка и крестика закрытия.
37
37
  *
38
38
  * @visibleName Modal.Header
39
39
  */
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_Sticky","_ThemeContext","_CommonWrapper","_Emotion","_ResponsiveLayout","_ThemeHelpers","_Modal","_ModalClose","_ModalContext","_ModalSeparator","ModalHeaderDataTids","exports","root","ModalHeader","props","theme","useContext","ThemeContext","modal","ModalContext","layout","useResponsiveLayout","_props$sticky","sticky","isMobile","_props$cutTitleOnStuc","cutTitleOnStuck","children","useLayoutEffect","setHasHeader","versionGTE5_2","isThemeGTE","renderContent","fixed","default","createElement","className","cx","styles","header","header5_2","mobileHeader","Boolean","additionalPadding","headerAddPadding","fixedHeader","titleCut","fixedHeader5_2","mobileFixedHeader","mobileFixedHeader5_2","close","headerWithClose","mobileHeaderWithClose","ModalClose","requestClose","disableClose","ModalSeparator","getStickyOffset","mobileOnFullScreen","parseInt","mobileModalContainerMarginTop","CommonWrapper","Sticky","offset","side","__KONTUR_REACT_UI__","displayName","__MODAL_HEADER__"],"sources":["ModalHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useContext, useLayoutEffect } from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './Modal.styles';\nimport { ModalClose } from './ModalClose';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalHeaderProps extends CommonProps {\n /** Закрепляет хедер сверху модального окна. */\n sticky?: boolean;\n\n /** @ignore */\n children?: ReactNode;\n\n /**\n * Обрезает длинный заголовок при «залипании» шапки.\n * @default false\n */\n cutTitleOnStuck?: boolean;\n}\n\nexport const ModalHeaderDataTids = {\n root: 'ModalHeader__root',\n} as const;\n\n/**\n * Шапка модального окна.\n *\n * @visibleName Modal.Header\n */\nfunction ModalHeader(props: ModalHeaderProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, cutTitleOnStuck = false, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasHeader?.(true);\n\n return () => modal.setHasHeader?.(false);\n }, []);\n\n const versionGTE5_2 = isThemeGTE(theme, '5.2');\n const renderContent = (fixed = false) => {\n return (\n <div>\n <div\n data-tid={ModalHeaderDataTids.root}\n className={cx(\n styles.header(theme),\n versionGTE5_2 && styles.header5_2(theme),\n layout.isMobile && styles.mobileHeader(theme),\n Boolean(modal.additionalPadding) && styles.headerAddPadding(theme),\n fixed && styles.fixedHeader(theme),\n cutTitleOnStuck && fixed && styles.titleCut(),\n versionGTE5_2 && fixed && styles.fixedHeader5_2(),\n fixed && layout.isMobile && styles.mobileFixedHeader(theme),\n versionGTE5_2 && fixed && layout.isMobile && styles.mobileFixedHeader5_2(theme),\n Boolean(modal.close) && styles.headerWithClose(theme),\n Boolean(modal.close) && layout.isMobile && styles.mobileHeaderWithClose(theme),\n )}\n >\n {modal.close && (\n <ModalClose requestClose={modal.close.requestClose} disableClose={modal.close.disableClose} />\n )}\n {children}\n </div>\n {fixed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n const getStickyOffset = () => {\n if (versionGTE5_2 && layout.isMobile && !modal.mobileOnFullScreen) {\n return parseInt(theme.mobileModalContainerMarginTop);\n }\n return 0;\n };\n\n return (\n <CommonWrapper {...props}>\n {sticky ? (\n <Sticky offset={getStickyOffset()} side=\"top\">\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </CommonWrapper>\n );\n}\n\nModalHeader.__KONTUR_REACT_UI__ = 'ModalHeader';\nModalHeader.displayName = 'ModalHeader';\nModalHeader.__MODAL_HEADER__ = true;\n\nexport { ModalHeader };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_Sticky","_ThemeContext","_CommonWrapper","_Emotion","_ResponsiveLayout","_ThemeHelpers","_Modal","_ModalClose","_ModalContext","_ModalSeparator","ModalHeaderDataTids","exports","root","ModalHeader","props","theme","useContext","ThemeContext","modal","ModalContext","layout","useResponsiveLayout","_props$sticky","sticky","isMobile","_props$cutTitleOnStuc","cutTitleOnStuck","children","useLayoutEffect","setHasHeader","versionGTE5_2","isThemeGTE","renderContent","fixed","default","createElement","className","cx","styles","header","header5_2","mobileHeader","Boolean","additionalPadding","headerAddPadding","fixedHeader","titleCut","fixedHeader5_2","mobileFixedHeader","mobileFixedHeader5_2","close","headerWithClose","mobileHeaderWithClose","ModalClose","requestClose","disableClose","ModalSeparator","getStickyOffset","mobileOnFullScreen","parseInt","mobileModalContainerMarginTop","CommonWrapper","Sticky","offset","side","__KONTUR_REACT_UI__","displayName","__MODAL_HEADER__"],"sources":["ModalHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useContext, useLayoutEffect } from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './Modal.styles';\nimport { ModalClose } from './ModalClose';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalHeaderProps extends CommonProps {\n /** Закрепляет заголовок модального окна при скролле длинной контент-зоны. */\n sticky?: boolean;\n\n /** @ignore */\n children?: ReactNode;\n\n /**\n * Обрезает длинный заголовок. Работает с пропом `sticky`.\n * @default false\n */\n cutTitleOnStuck?: boolean;\n}\n\nexport const ModalHeaderDataTids = {\n root: 'ModalHeader__root',\n} as const;\n\n/**\n * Шапка модального окна, состоит из заголовка и крестика закрытия.\n *\n * @visibleName Modal.Header\n */\nfunction ModalHeader(props: ModalHeaderProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, cutTitleOnStuck = false, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasHeader?.(true);\n\n return () => modal.setHasHeader?.(false);\n }, []);\n\n const versionGTE5_2 = isThemeGTE(theme, '5.2');\n const renderContent = (fixed = false) => {\n return (\n <div>\n <div\n data-tid={ModalHeaderDataTids.root}\n className={cx(\n styles.header(theme),\n versionGTE5_2 && styles.header5_2(theme),\n layout.isMobile && styles.mobileHeader(theme),\n Boolean(modal.additionalPadding) && styles.headerAddPadding(theme),\n fixed && styles.fixedHeader(theme),\n cutTitleOnStuck && fixed && styles.titleCut(),\n versionGTE5_2 && fixed && styles.fixedHeader5_2(),\n fixed && layout.isMobile && styles.mobileFixedHeader(theme),\n versionGTE5_2 && fixed && layout.isMobile && styles.mobileFixedHeader5_2(theme),\n Boolean(modal.close) && styles.headerWithClose(theme),\n Boolean(modal.close) && layout.isMobile && styles.mobileHeaderWithClose(theme),\n )}\n >\n {modal.close && (\n <ModalClose requestClose={modal.close.requestClose} disableClose={modal.close.disableClose} />\n )}\n {children}\n </div>\n {fixed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n const getStickyOffset = () => {\n if (versionGTE5_2 && layout.isMobile && !modal.mobileOnFullScreen) {\n return parseInt(theme.mobileModalContainerMarginTop);\n }\n return 0;\n };\n\n return (\n <CommonWrapper {...props}>\n {sticky ? (\n <Sticky offset={getStickyOffset()} side=\"top\">\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </CommonWrapper>\n );\n}\n\nModalHeader.__KONTUR_REACT_UI__ = 'ModalHeader';\nModalHeader.displayName = 'ModalHeader';\nModalHeader.__MODAL_HEADER__ = true;\n\nexport { ModalHeader };\n"],"mappings":"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","ignoreList":[]}
@@ -6,15 +6,15 @@ import type { TGetRootNode } from '../../lib/rootNode';
6
6
  import type { RadioGroupContextType } from '../RadioGroup/RadioGroupContext';
7
7
  import type { SizeProp } from '../../lib/types/props';
8
8
  export interface RadioProps<T> extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<React.InputHTMLAttributes<HTMLInputElement>, {
9
- /** Переводит контрол в состояние валидации "ошибка". */
9
+ /** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */
10
10
  error?: boolean;
11
- /** Переводит контрол в состояние валидации "предупреждение". */
11
+ /** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */
12
12
  warning?: boolean;
13
- /** Задает размер. */
13
+ /** Размер радиокнопки. */
14
14
  size?: SizeProp;
15
- /** Задает состояние фокуса. */
15
+ /** Задаёт состояние фокуса. */
16
16
  focused?: boolean;
17
- /** Задает функцию, которая вызывается при изменении value. */
17
+ /** Задаёт функцию, которая вызывается при изменении `value`. */
18
18
  onValueChange?: (value: T) => void;
19
19
  /** Задает HTML-событие `onmouseenter`.
20
20
  * @ignore */
@@ -25,7 +25,7 @@ export interface RadioProps<T> extends Pick<AriaAttributes, 'aria-label'>, Commo
25
25
  /** Задает HTML-событие `onmouseover`.
26
26
  * @ignore */
27
27
  onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;
28
- /** Устанавливает значение. */
28
+ /** Задаёт значение. */
29
29
  value: T;
30
30
  }> {
31
31
  }
@@ -36,8 +36,9 @@ export declare const RadioDataTids: {
36
36
  readonly root: "Radio__root";
37
37
  };
38
38
  type DefaultProps = Required<Pick<RadioProps<any>, 'focused'>>;
39
- /**
40
- * Радио-кнопки `Radio` используются, когда может быть выбран только один вариант из нескольких.
39
+ /** Радиокнопка позволяет выбрать одно значение из нескольких. Подходит при небольшом количестве вариантов — 2–5.
40
+ *
41
+ * Для создания группы радиокнопок используйте специальный контейнер — компонент [RadioGroup](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-radiogroup--docs).
41
42
  */
42
43
  export declare class Radio<T> extends React.Component<RadioProps<T>, RadioState> {
43
44
  static __KONTUR_REACT_UI__: string;
@@ -58,11 +59,11 @@ export declare class Radio<T> extends React.Component<RadioProps<T>, RadioState>
58
59
  private getCircleSizeClassName;
59
60
  private getCheckedSizeClassName;
60
61
  render(): React.JSX.Element;
61
- /**
62
+ /** Программно устанавливает фокус на радиокнопку. Появляется фокусная обводка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
62
63
  * @public
63
64
  */
64
65
  focus(): void;
65
- /**
66
+ /** Программно снимает фокус с радиокнопки.
66
67
  * @public
67
68
  */
68
69
  blur(): void;