@skbkontur/react-ui 5.5.1 → 5.6.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 (116) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/cjs/components/Calendar/MonthView.js +1 -2
  3. package/cjs/components/Calendar/MonthView.js.map +1 -1
  4. package/cjs/components/FileUploader/FileUploader.styles.js +4 -5
  5. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  6. package/cjs/components/Modal/Modal.d.ts +25 -22
  7. package/cjs/components/Modal/Modal.js +10 -7
  8. package/cjs/components/Modal/Modal.js.map +1 -1
  9. package/cjs/components/Modal/ModalBody.d.ts +1 -1
  10. package/cjs/components/Modal/ModalBody.js +1 -1
  11. package/cjs/components/Modal/ModalBody.js.map +1 -1
  12. package/cjs/components/Modal/ModalFooter.d.ts +5 -5
  13. package/cjs/components/Modal/ModalFooter.js +1 -1
  14. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  15. package/cjs/components/Modal/ModalHeader.d.ts +3 -3
  16. package/cjs/components/Modal/ModalHeader.js +1 -1
  17. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  18. package/cjs/components/Radio/Radio.d.ts +11 -10
  19. package/cjs/components/Radio/Radio.js +5 -4
  20. package/cjs/components/Radio/Radio.js.map +1 -1
  21. package/cjs/components/RadioGroup/RadioGroup.d.ts +21 -28
  22. package/cjs/components/RadioGroup/RadioGroup.js +2 -9
  23. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  24. package/cjs/components/Tabs/Tab.styles.js +3 -9
  25. package/cjs/components/Tabs/Tab.styles.js.map +1 -1
  26. package/cjs/components/Textarea/Textarea.d.ts +5 -1
  27. package/cjs/components/Textarea/Textarea.js +10 -1
  28. package/cjs/components/Textarea/Textarea.js.map +1 -1
  29. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +5 -0
  30. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  31. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
  32. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -1
  33. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  34. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +4 -0
  35. package/cjs/internal/RenderContainer/RenderInnerContainer.js +29 -2
  36. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  37. package/cjs/internal/ThemePlayground/Playground.styles.js +2 -1
  38. package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
  39. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +1 -35
  40. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +32 -5
  41. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  42. package/cjs/internal/themes/DarkTheme5_5.js +3 -8
  43. package/cjs/internal/themes/DarkTheme5_5.js.map +1 -1
  44. package/cjs/internal/themes/DarkTheme5_6.d.ts +1 -0
  45. package/cjs/internal/themes/DarkTheme5_6.js +753 -0
  46. package/cjs/internal/themes/DarkTheme5_6.js.map +1 -0
  47. package/cjs/internal/themes/LightTheme5_6.d.ts +1 -0
  48. package/cjs/internal/themes/LightTheme5_6.js +753 -0
  49. package/cjs/internal/themes/LightTheme5_6.js.map +1 -0
  50. package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
  51. package/cjs/lib/theming/ThemeVersions.js.map +1 -1
  52. package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
  53. package/cjs/lib/theming/themes/DarkTheme.js +4 -2
  54. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  55. package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
  56. package/cjs/lib/theming/themes/LightTheme.js +4 -2
  57. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  58. package/components/Calendar/MonthView/MonthView.js +1 -2
  59. package/components/Calendar/MonthView/MonthView.js.map +1 -1
  60. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +1 -2
  61. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  62. package/components/Modal/Modal/Modal.js +5 -7
  63. package/components/Modal/Modal/Modal.js.map +1 -1
  64. package/components/Modal/Modal.d.ts +25 -22
  65. package/components/Modal/ModalBody/ModalBody.js +1 -1
  66. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  67. package/components/Modal/ModalBody.d.ts +1 -1
  68. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  69. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  70. package/components/Modal/ModalFooter.d.ts +5 -5
  71. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  72. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  73. package/components/Modal/ModalHeader.d.ts +3 -3
  74. package/components/Radio/Radio/Radio.js +5 -4
  75. package/components/Radio/Radio/Radio.js.map +1 -1
  76. package/components/Radio/Radio.d.ts +11 -10
  77. package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -9
  78. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  79. package/components/RadioGroup/RadioGroup.d.ts +21 -28
  80. package/components/Tabs/Tab.styles/Tab.styles.js +1 -2
  81. package/components/Tabs/Tab.styles/Tab.styles.js.map +1 -1
  82. package/components/Textarea/Textarea/Textarea.js +5 -0
  83. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  84. package/components/Textarea/Textarea.d.ts +5 -1
  85. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +5 -0
  86. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  87. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -0
  88. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  89. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
  90. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +35 -2
  91. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  92. package/internal/RenderContainer/RenderInnerContainer.d.ts +4 -0
  93. package/internal/ThemePlayground/Playground.styles/Playground.styles.js +1 -1
  94. package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
  95. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +28 -9
  96. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  97. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +1 -35
  98. package/internal/themes/DarkTheme5_5/DarkTheme5_5.js +4 -7
  99. package/internal/themes/DarkTheme5_5/DarkTheme5_5.js.map +1 -1
  100. package/internal/themes/DarkTheme5_6/DarkTheme5_6.js +768 -0
  101. package/internal/themes/DarkTheme5_6/DarkTheme5_6.js.map +1 -0
  102. package/internal/themes/DarkTheme5_6/package.json +6 -0
  103. package/internal/themes/DarkTheme5_6.d.ts +1 -0
  104. package/internal/themes/LightTheme5_6/LightTheme5_6.js +768 -0
  105. package/internal/themes/LightTheme5_6/LightTheme5_6.js.map +1 -0
  106. package/internal/themes/LightTheme5_6/package.json +6 -0
  107. package/internal/themes/LightTheme5_6.d.ts +1 -0
  108. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
  109. package/lib/theming/ThemeVersions.d.ts +1 -1
  110. package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
  111. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  112. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  113. package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
  114. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  115. package/lib/theming/themes/LightTheme.d.ts +1 -0
  116. package/package.json +2 -1
@@ -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":"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","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;
@@ -70,8 +70,9 @@ var RadioDataTids = exports.RadioDataTids = {
70
70
 
71
71
 
72
72
 
73
- /**
74
- * Радио-кнопки `Radio` используются, когда может быть выбран только один вариант из нескольких.
73
+ /** Радиокнопка позволяет выбрать одно значение из нескольких. Подходит при небольшом количестве вариантов — 2–5.
74
+ *
75
+ * Для создания группы радиокнопок используйте специальный контейнер — компонент [RadioGroup](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-radiogroup--docs).
75
76
  */var
76
77
 
77
78
 
@@ -306,8 +307,8 @@ Radio = exports.Radio = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.with
306
307
  handleBlur = function (e) {
307
308
  _this.resetFocus();
308
309
  _this.props.onBlur == null || _this.props.onBlur(e);
309
- };return _this;}(0, _inheritsLoose2.default)(Radio, _React$Component);var _proto = Radio.prototype;_proto.getRootSizeClassName = function getRootSizeClassName() {switch (this.size) {case 'large':return _Radio2.styles.rootLarge(this.theme);case 'medium':return _Radio2.styles.rootMedium(this.theme);case 'small':default:return _Radio2.styles.rootSmall(this.theme);}};_proto.getCircleSizeClassName = function getCircleSizeClassName() {switch (this.size) {case 'large':return _Radio2.styles.circleLarge(this.theme);case 'medium':return _Radio2.styles.circleMedium(this.theme);case 'small':default:return _Radio2.styles.circleSmall(this.theme);}};_proto.getCheckedSizeClassName = function getCheckedSizeClassName() {switch (this.size) {case 'large':return _Radio2.styles.checkedLarge(this.theme);case 'medium':return _Radio2.styles.checkedMedium(this.theme);case 'small':default:return _Radio2.styles.checkedSmall(this.theme);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});} /**
310
+ };return _this;}(0, _inheritsLoose2.default)(Radio, _React$Component);var _proto = Radio.prototype;_proto.getRootSizeClassName = function getRootSizeClassName() {switch (this.size) {case 'large':return _Radio2.styles.rootLarge(this.theme);case 'medium':return _Radio2.styles.rootMedium(this.theme);case 'small':default:return _Radio2.styles.rootSmall(this.theme);}};_proto.getCircleSizeClassName = function getCircleSizeClassName() {switch (this.size) {case 'large':return _Radio2.styles.circleLarge(this.theme);case 'medium':return _Radio2.styles.circleMedium(this.theme);case 'small':default:return _Radio2.styles.circleSmall(this.theme);}};_proto.getCheckedSizeClassName = function getCheckedSizeClassName() {switch (this.size) {case 'large':return _Radio2.styles.checkedLarge(this.theme);case 'medium':return _Radio2.styles.checkedMedium(this.theme);case 'small':default:return _Radio2.styles.checkedSmall(this.theme);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});} /** Программно устанавливает фокус на радиокнопку. Появляется фокусная обводка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
310
311
  * @public
311
- */;_proto.focus = function focus() {var _this$inputEl$current;_keyListener.keyListener.isTabPressed = true;(_this$inputEl$current = this.inputEl.current) == null || _this$inputEl$current.focus();} /**
312
+ */;_proto.focus = function focus() {var _this$inputEl$current;_keyListener.keyListener.isTabPressed = true;(_this$inputEl$current = this.inputEl.current) == null || _this$inputEl$current.focus();} /** Программно снимает фокус с радиокнопки.
312
313
  * @public
313
314
  */;_proto.blur = function blur() {var _this$inputEl$current2;(_this$inputEl$current2 = this.inputEl.current) == null || _this$inputEl$current2.blur();};_proto.renderCaption = function renderCaption() {var _cx5;var captionClassNames = (0, _Emotion.cx)((_cx5 = {}, _cx5[_Radio2.styles.caption(this.theme)] = true, _cx5[_Radio2.styles.captionDisabled(this.theme)] = !!(this.props.disabled || this.context.disabled), _cx5[_Radio2.styles.captionIE11()] = _client.isIE11 || _client.isEdge, _cx5));return /*#__PURE__*/_react.default.createElement("div", { className: captionClassNames }, this.props.children);};return Radio;}(_react.default.Component), _Radio.__KONTUR_REACT_UI__ = 'Radio', _Radio.displayName = 'Radio', _Radio.defaultProps = { focused: false }, _Radio.contextType = _RadioGroupContext.RadioGroupContext, _Radio)) || _class) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_ThemeContext","_CommonWrapper","_Emotion","_keyListener","_rootNode","_fixFirefoxModifiedClickOnLabel","_client","_RadioGroupContext","_createPropsGetter","_FocusControlWrapper","_SizeDecorator","_Radio2","_excluded","_class","_Radio","RadioDataTids","exports","root","Radio","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","focusedByKeyboard","getProps","createPropsGetter","defaultProps","context","inputEl","React","createRef","renderMain","props","_cx","_cx2","_props$disabled","disabled","_props$warning","warning","_props$error","error","size","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","_objectWithoutPropertiesLoose2","default","radioProps","className","cx","styles","circle","theme","getCircleSizeClassName","checked","getCheckedSizeClassName","focus","checkedDisabled","globalClasses","value","inputProps","_extends2","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","getRootSizeClassName","rootChecked","rootIE11","isIE11","isEdge","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","fixFirefoxModifiedClickOnLabel","_isInRadioGroup","_cx3","_cx4","activeItem","name","suppressHydrationWarning","createElement","FocusControlWrapper","onBlurWhenDisabled","resetFocus","placeholder","children","renderCaption","Boolean","e","onSelect","globalObject","requestAnimationFrame","keyListener","isArrowPressed","isTabPressed","setState","_inheritsLoose2","_proto","prototype","rootLarge","rootMedium","rootSmall","circleLarge","circleMedium","circleSmall","checkedLarge","checkedMedium","checkedSmall","render","_this2","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","_this$inputEl$current","current","blur","_this$inputEl$current2","_cx5","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","displayName","contextType","RadioGroupContext"],"sources":["Radio.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport type { RadioGroupContextType } from '../RadioGroup/RadioGroupContext';\nimport { RadioGroupContext } from '../RadioGroup/RadioGroupContext';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, globalClasses } from './Radio.styles';\n\nexport interface RadioProps<T>\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает размер. */\n size?: SizeProp;\n\n /** Задает состояние фокуса. */\n focused?: boolean;\n\n /** Задает функцию, которая вызывается при изменении value. */\n onValueChange?: (value: T) => void;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseover`.\n * @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Устанавливает значение. */\n value: T;\n }\n > {}\n\nexport interface RadioState {\n focusedByKeyboard: boolean;\n}\n\nexport const RadioDataTids = {\n root: 'Radio__root',\n} as const;\n\ntype DefaultProps = Required<Pick<RadioProps<any>, 'focused'>>;\n\n/**\n * Радио-кнопки `Radio` используются, когда может быть выбран только один вариант из нескольких.\n */\n@rootNode\n@withSize\nexport class Radio<T> extends React.Component<RadioProps<T>, RadioState> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n public static displayName = 'Radio';\n\n public state = {\n focusedByKeyboard: false,\n };\n\n public static defaultProps: DefaultProps = {\n focused: false,\n };\n\n private getProps = createPropsGetter(Radio.defaultProps);\n\n public static contextType = RadioGroupContext;\n public context: RadioGroupContextType<T> = this.context;\n private size!: SizeProp;\n\n private inputEl = React.createRef<HTMLInputElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getCircleSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.circleLarge(this.theme);\n case 'medium':\n return styles.circleMedium(this.theme);\n case 'small':\n default:\n return styles.circleSmall(this.theme);\n }\n }\n\n private getCheckedSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.checkedLarge(this.theme);\n case 'medium':\n return styles.checkedMedium(this.theme);\n case 'small':\n default:\n return styles.checkedSmall(this.theme);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.inputEl.current?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.inputEl.current?.blur();\n }\n\n public renderMain = (props: CommonWrapperRestProps<RadioProps<T>>) => {\n const {\n disabled = this.context.disabled,\n warning = this.context.warning,\n error = this.context.error,\n size,\n focused,\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n onValueChange,\n ...rest\n } = props;\n\n const radioProps = {\n className: cx({\n [styles.circle(this.theme)]: true,\n [this.getCircleSizeClassName()]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [this.getCheckedSizeClassName()]: this.props.checked,\n [styles.focus(this.theme)]: this.getProps().focused || this.state.focusedByKeyboard,\n [styles.error(this.theme)]: error,\n [styles.warning(this.theme)]: warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.checkedDisabled(this.theme)]: this.props.checked && disabled,\n [globalClasses.circle]: true,\n }),\n };\n\n let value: string | number | undefined;\n if (typeof this.props.value === 'string' || typeof this.props.value === 'number') {\n value = this.props.value;\n }\n\n const inputProps = {\n ...rest,\n type: 'radio',\n className: styles.input(),\n disabled,\n tabIndex: this.props.tabIndex,\n value,\n ref: this.inputEl,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n };\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getRootSizeClassName(), {\n [styles.rootChecked(this.theme)]: this.props.checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n }),\n onMouseOver: this.handleMouseOver,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onClick: fixFirefoxModifiedClickOnLabel(this.inputEl),\n };\n\n if (this._isInRadioGroup()) {\n const checked = this.props.value === this.context.activeItem;\n inputProps.checked = checked;\n inputProps.name = this.context.name;\n inputProps.suppressHydrationWarning = true;\n labelProps.className = cx(styles.root(this.theme), this.getRootSizeClassName(), {\n [styles.rootChecked(this.theme)]: checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n });\n radioProps.className = cx(radioProps.className, {\n [styles.checked(this.theme)]: checked,\n [this.getCheckedSizeClassName()]: checked,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n });\n }\n\n return (\n <label data-tid={RadioDataTids.root} {...labelProps}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input {...inputProps} />\n </FocusControlWrapper>\n <span {...radioProps}>\n <span className={styles.placeholder()} />\n </span>\n {this.props.children && this.renderCaption()}\n </label>\n );\n };\n\n private _isInRadioGroup = () => Boolean(this.context.name);\n\n private renderCaption() {\n const captionClassNames = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionDisabled(this.theme)]: !!(this.props.disabled || this.context.disabled),\n [styles.captionIE11()]: isIE11 || isEdge,\n });\n\n return <div className={captionClassNames}>{this.props.children}</div>;\n }\n\n private handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.props.onValueChange?.(this.props.value);\n\n if (this._isInRadioGroup()) {\n this.context.onSelect(this.props.value);\n }\n\n this.props.onChange?.(e);\n };\n\n private handleMouseOver: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseOver?.(e);\n };\n\n private handleMouseEnter: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseEnter?.(e);\n };\n\n private handleMouseLeave: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseLeave?.(e);\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.context.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isArrowPressed || keyListener.isTabPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private resetFocus = () => this.setState({ focusedByKeyboard: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(e);\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_ThemeContext","_CommonWrapper","_Emotion","_keyListener","_rootNode","_fixFirefoxModifiedClickOnLabel","_client","_RadioGroupContext","_createPropsGetter","_FocusControlWrapper","_SizeDecorator","_Radio2","_excluded","_class","_Radio","RadioDataTids","exports","root","Radio","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","focusedByKeyboard","getProps","createPropsGetter","defaultProps","context","inputEl","React","createRef","renderMain","props","_cx","_cx2","_props$disabled","disabled","_props$warning","warning","_props$error","error","size","focused","onMouseOver","onMouseEnter","onMouseLeave","onValueChange","rest","_objectWithoutPropertiesLoose2","default","radioProps","className","cx","styles","circle","theme","getCircleSizeClassName","checked","getCheckedSizeClassName","focus","checkedDisabled","globalClasses","value","inputProps","_extends2","type","input","tabIndex","ref","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","labelProps","getRootSizeClassName","rootChecked","rootIE11","isIE11","isEdge","handleMouseOver","handleMouseEnter","handleMouseLeave","onClick","fixFirefoxModifiedClickOnLabel","_isInRadioGroup","_cx3","_cx4","activeItem","name","suppressHydrationWarning","createElement","FocusControlWrapper","onBlurWhenDisabled","resetFocus","placeholder","children","renderCaption","Boolean","e","onSelect","globalObject","requestAnimationFrame","keyListener","isArrowPressed","isTabPressed","setState","_inheritsLoose2","_proto","prototype","rootLarge","rootMedium","rootSmall","circleLarge","circleMedium","circleSmall","checkedLarge","checkedMedium","checkedSmall","render","_this2","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","_this$inputEl$current","current","blur","_this$inputEl$current2","_cx5","captionClassNames","caption","captionDisabled","captionIE11","Component","__KONTUR_REACT_UI__","displayName","contextType","RadioGroupContext"],"sources":["Radio.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport type { RadioGroupContextType } from '../RadioGroup/RadioGroupContext';\nimport { RadioGroupContext } from '../RadioGroup/RadioGroupContext';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, globalClasses } from './Radio.styles';\n\nexport interface RadioProps<T>\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /** Меняет визуальное отображение поля на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение поля на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Размер радиокнопки. */\n size?: SizeProp;\n\n /** Задаёт состояние фокуса. */\n focused?: boolean;\n\n /** Задаёт функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: T) => void;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задает HTML-событие `onmouseover`.\n * @ignore */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n\n /** Задаёт значение. */\n value: T;\n }\n > {}\n\nexport interface RadioState {\n focusedByKeyboard: boolean;\n}\n\nexport const RadioDataTids = {\n root: 'Radio__root',\n} as const;\n\ntype DefaultProps = Required<Pick<RadioProps<any>, 'focused'>>;\n\n/** Радиокнопка позволяет выбрать одно значение из нескольких. Подходит при небольшом количестве вариантов — 2–5.\n *\n * Для создания группы радиокнопок используйте специальный контейнер — компонент [RadioGroup](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-radiogroup--docs).\n */\n@rootNode\n@withSize\nexport class Radio<T> extends React.Component<RadioProps<T>, RadioState> {\n public static __KONTUR_REACT_UI__ = 'Radio';\n public static displayName = 'Radio';\n\n public state = {\n focusedByKeyboard: false,\n };\n\n public static defaultProps: DefaultProps = {\n focused: false,\n };\n\n private getProps = createPropsGetter(Radio.defaultProps);\n\n public static contextType = RadioGroupContext;\n public context: RadioGroupContextType<T> = this.context;\n private size!: SizeProp;\n\n private inputEl = React.createRef<HTMLInputElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getCircleSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.circleLarge(this.theme);\n case 'medium':\n return styles.circleMedium(this.theme);\n case 'small':\n default:\n return styles.circleSmall(this.theme);\n }\n }\n\n private getCheckedSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.checkedLarge(this.theme);\n case 'medium':\n return styles.checkedMedium(this.theme);\n case 'small':\n default:\n return styles.checkedSmall(this.theme);\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /** Программно устанавливает фокус на радиокнопку. Появляется фокусная обводка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.inputEl.current?.focus();\n }\n\n /** Программно снимает фокус с радиокнопки.\n * @public\n */\n public blur() {\n this.inputEl.current?.blur();\n }\n\n public renderMain = (props: CommonWrapperRestProps<RadioProps<T>>) => {\n const {\n disabled = this.context.disabled,\n warning = this.context.warning,\n error = this.context.error,\n size,\n focused,\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n onValueChange,\n ...rest\n } = props;\n\n const radioProps = {\n className: cx({\n [styles.circle(this.theme)]: true,\n [this.getCircleSizeClassName()]: true,\n [styles.checked(this.theme)]: this.props.checked,\n [this.getCheckedSizeClassName()]: this.props.checked,\n [styles.focus(this.theme)]: this.getProps().focused || this.state.focusedByKeyboard,\n [styles.error(this.theme)]: error,\n [styles.warning(this.theme)]: warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.checkedDisabled(this.theme)]: this.props.checked && disabled,\n [globalClasses.circle]: true,\n }),\n };\n\n let value: string | number | undefined;\n if (typeof this.props.value === 'string' || typeof this.props.value === 'number') {\n value = this.props.value;\n }\n\n const inputProps = {\n ...rest,\n type: 'radio',\n className: styles.input(),\n disabled,\n tabIndex: this.props.tabIndex,\n value,\n ref: this.inputEl,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n };\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getRootSizeClassName(), {\n [styles.rootChecked(this.theme)]: this.props.checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n }),\n onMouseOver: this.handleMouseOver,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n onClick: fixFirefoxModifiedClickOnLabel(this.inputEl),\n };\n\n if (this._isInRadioGroup()) {\n const checked = this.props.value === this.context.activeItem;\n inputProps.checked = checked;\n inputProps.name = this.context.name;\n inputProps.suppressHydrationWarning = true;\n labelProps.className = cx(styles.root(this.theme), this.getRootSizeClassName(), {\n [styles.rootChecked(this.theme)]: checked,\n [styles.rootIE11()]: isIE11 || isEdge,\n });\n radioProps.className = cx(radioProps.className, {\n [styles.checked(this.theme)]: checked,\n [this.getCheckedSizeClassName()]: checked,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n });\n }\n\n return (\n <label data-tid={RadioDataTids.root} {...labelProps}>\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input {...inputProps} />\n </FocusControlWrapper>\n <span {...radioProps}>\n <span className={styles.placeholder()} />\n </span>\n {this.props.children && this.renderCaption()}\n </label>\n );\n };\n\n private _isInRadioGroup = () => Boolean(this.context.name);\n\n private renderCaption() {\n const captionClassNames = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionDisabled(this.theme)]: !!(this.props.disabled || this.context.disabled),\n [styles.captionIE11()]: isIE11 || isEdge,\n });\n\n return <div className={captionClassNames}>{this.props.children}</div>;\n }\n\n private handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n this.props.onValueChange?.(this.props.value);\n\n if (this._isInRadioGroup()) {\n this.context.onSelect(this.props.value);\n }\n\n this.props.onChange?.(e);\n };\n\n private handleMouseOver: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseOver?.(e);\n };\n\n private handleMouseEnter: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseEnter?.(e);\n };\n\n private handleMouseLeave: React.MouseEventHandler<HTMLLabelElement> = (e) => {\n this.props.onMouseLeave?.(e);\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.context.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isArrowPressed || keyListener.isTabPressed) {\n this.setState({ focusedByKeyboard: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private resetFocus = () => this.setState({ focusedByKeyboard: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(e);\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,46 +4,46 @@ import type { CommonProps } from '../../internal/CommonWrapper';
4
4
  import type { TGetRootNode } from '../../lib/rootNode';
5
5
  import { Prevent } from './Prevent';
6
6
  export interface RadioGroupProps<T = string | number> extends CommonProps {
7
- /** Задает значение по умолчанию. Должно быть одним из значений дочерних радиокнопок или значений из параметра `items`. */
7
+ /** Задаёт значение по умолчанию. Должно быть одним из значений дочерних радиокнопок или значений из `items`. */
8
8
  defaultValue?: T;
9
- /** Задает значение радиогруппы. Должно быть одним из значений радиокнопок.
10
- * Если не указано, то компонент будет работать, как неконтролируемый. */
9
+ /** Задаёт значение группы радиокнопок. Должно быть одним из значений радиокнопок.
10
+ * Если не указано, то компонент будет работать как неконтролируемый. */
11
11
  value?: T;
12
- /** Задает массив параметров радиокнопок. Может быть типа `Array<Value>` или `Array<[Value, Data]>`,
12
+ /** Задаёт массив параметров радиокнопок. Может быть типа `Array<Value>` или `Array<[Value, Data]>`,
13
13
  * где тип `Value` — значение радиокнопки, а `Data` — значение которое будет использовано вторым параметром в `renderItem`.
14
14
  * Тип `Array<Value>` будет приведен к типу `Array<[Value, Value]>`.
15
- * Может быть использовано, если не передан параметр `children`. */
15
+ * Может быть использовано, если не передан `children`. */
16
16
  items?: T[] | Array<[T, React.ReactNode]>;
17
- /** Устанавливает аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется случайное имя. */
17
+ /** Устанавливает атрибут `name` для дочерних радиокнопок. Если не указан, то сгенерируется случайное имя. */
18
18
  name?: string;
19
- /** Получает уникальный ключ по элементу
20
- * @param item - элемент, по которуму нужно получить ключ. */
19
+ /** Получает уникальный ключ по элементу.
20
+ * @param item - элемент, по которому нужно получить ключ. */
21
21
  toKey?: (item: T) => string | number;
22
- /** Делает все радиокнопки недоступными. */
22
+ /** Блокирует все радиокнопки в группе. */
23
23
  disabled?: boolean;
24
- /** Переводит все радиокнопки в состояние валидации "предупреждение". */
24
+ /** Меняет визуальное отображение всех радиокнопок на состояние «предупреждение». */
25
25
  warning?: boolean;
26
- /** Переводит все радиокнопки в состояние валидации "ошибка". */
26
+ /** Меняет визуальное отображение всех радиокнопок на состояние «ошибка». */
27
27
  error?: boolean;
28
- /** Выравнивает элементы items в строку. Не работает с children. */
28
+ /** Размещает радиокнопки в строку. Работает только со значениями, переданными через `items`, не работает с `children`. */
29
29
  inline?: boolean;
30
- /** Задает ширину радиогруппы. Не работает с `children`. */
30
+ /** Ширина радиогруппы. Работает только со значениями, переданными через `items`, не работает с `children`. */
31
31
  width?: React.CSSProperties['width'];
32
- /** Задает функцию, которая отображает контент радиокнопки. Не работает с `children`.
32
+ /** Задаёт функцию, которая отображает контент радиокнопки. Работает только со значениями, переданными через `items`, не работает с `children`.
33
33
  * @param {Value} itemValue - значение радиокнопки.
34
34
  * @param {Data} data - значение для отрисовки радиокнопки. */
35
35
  renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;
36
36
  /** @ignore */
37
37
  'aria-describedby'?: AriaAttributes['aria-describedby'];
38
- /** Задает функцию, которая вызывается при изменении значения радиогруппы (value). */
38
+ /** Задаёт функцию, которая вызывается при изменении `value`. */
39
39
  onValueChange?: (value: T) => void;
40
- /** Задает функцию, которая вызывается при потере радиогруппой фокуса. */
40
+ /** Задаёт функцию, которая вызывается при потере радиогруппой фокуса. */
41
41
  onBlur?: (event: FocusEvent) => void;
42
- /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */
42
+ /** Задаёт функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */
43
43
  onMouseLeave?: () => any;
44
- /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */
44
+ /** Задаёт функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */
45
45
  onMouseOver?: () => any;
46
- /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */
46
+ /** Задаёт функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). Смотрите разницу с `onMouseOver` в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */
47
47
  onMouseEnter?: () => any;
48
48
  }
49
49
  export interface RadioGroupState<T> {
@@ -53,14 +53,7 @@ export declare const RadioGroupDataTids: {
53
53
  readonly root: "RadioGroup__root";
54
54
  };
55
55
  type DefaultProps = Required<Pick<RadioGroupProps<unknown>, 'renderItem'>>;
56
- /**
57
- * Группа радиокнопок `RadioGroup` используется для выбора одного значения из нескольких, когда вариантов выбора немного — 2–5.
58
- *
59
- * `children` может содержать любую разметку с компонентами Radio, если не передан параметр `items`.
60
- * Каждому компоненту Radio нужно указать параметр `value`, такого же типа, как и параметр `value` самой радиогруппы.
61
- *
62
- * Значения активного элемента сравниваются по строгому равенству `===`.
63
- */
56
+ /** Группирует радиокнопки. Контейнер для компонента [Radio](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-radio--docs). */
64
57
  export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {
65
58
  static __KONTUR_REACT_UI__: string;
66
59
  static displayName: string;
@@ -75,7 +68,7 @@ export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, R
75
68
  constructor(props: RadioGroupProps<T>);
76
69
  private getRadioGroupContextValue;
77
70
  render(): React.JSX.Element;
78
- /**
71
+ /** Программно устанавливает фокус на радиокнопку. Появляется фокусная обводка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
79
72
  * @public
80
73
  */
81
74
  focus(): void;
@@ -91,14 +91,7 @@ var RadioGroupDataTids = exports.RadioGroupDataTids = {
91
91
 
92
92
 
93
93
 
94
- /**
95
- * Группа радиокнопок `RadioGroup` используется для выбора одного значения из нескольких, когда вариантов выбора немного — 2–5.
96
- *
97
- * `children` может содержать любую разметку с компонентами Radio, если не передан параметр `items`.
98
- * Каждому компоненту Radio нужно указать параметр `value`, такого же типа, как и параметр `value` самой радиогруппы.
99
- *
100
- * Значения активного элемента сравниваются по строгому равенству `===`.
101
- */var
94
+ /** Группирует радиокнопки. Контейнер для компонента [Radio](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-radio--docs). */var
102
95
 
103
96
  RadioGroup = exports.RadioGroup = (0, _rootNode.rootNode)(_class = (_RadioGroup = /*#__PURE__*/function (_React$Component) {
104
97
 
@@ -258,7 +251,7 @@ RadioGroup = exports.RadioGroup = (0, _rootNode.rootNode)(_class = (_RadioGroup
258
251
 
259
252
  ref = function (element) {
260
253
  _this.node = element;
261
- };_this.state = { activeItem: _this.props.defaultValue };return _this;}(0, _inheritsLoose2.default)(RadioGroup, _React$Component);var _proto = RadioGroup.prototype;_proto.render = function render() {var _this2 = this;var _this$props = this.props,width = _this$props.width,onMouseLeave = _this$props.onMouseLeave,onMouseOver = _this$props.onMouseOver,onMouseEnter = _this$props.onMouseEnter,onBlur = _this$props.onBlur,ariaDescribedby = _this$props['aria-describedby'],disabled = _this$props.disabled;var style = { width: width != null ? width : 'auto' };var handlers = { onMouseOver: onMouseOver, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave };return /*#__PURE__*/_react.default.createElement(_featureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {var _cx2;_this2.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props, (0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({ disabled: disabled })), /*#__PURE__*/_react.default.createElement(_FocusTrap.FocusTrap, { onBlur: onBlur }, /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({ "data-tid": RadioGroupDataTids.root, ref: _this2.ref, style: style, className: (0, _Emotion.cx)((_cx2 = {}, _cx2[_RadioGroup2.styles.root()] = true, _cx2[_RadioGroup2.styles.removeBaselineSpacer()] = _this2.featureFlags.radioGroupRemoveBaselineSpacer, _cx2)), role: "radiogroup" }, handlers, { "aria-describedby": ariaDescribedby }), /*#__PURE__*/_react.default.createElement(_RadioGroupContext.RadioGroupContext.Provider, { value: _this2.getRadioGroupContextValue() }, _this2.renderChildren()))));});} /**
254
+ };_this.state = { activeItem: _this.props.defaultValue };return _this;}(0, _inheritsLoose2.default)(RadioGroup, _React$Component);var _proto = RadioGroup.prototype;_proto.render = function render() {var _this2 = this;var _this$props = this.props,width = _this$props.width,onMouseLeave = _this$props.onMouseLeave,onMouseOver = _this$props.onMouseOver,onMouseEnter = _this$props.onMouseEnter,onBlur = _this$props.onBlur,ariaDescribedby = _this$props['aria-describedby'],disabled = _this$props.disabled;var style = { width: width != null ? width : 'auto' };var handlers = { onMouseOver: onMouseOver, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave };return /*#__PURE__*/_react.default.createElement(_featureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {var _cx2;_this2.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props, (0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({ disabled: disabled })), /*#__PURE__*/_react.default.createElement(_FocusTrap.FocusTrap, { onBlur: onBlur }, /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({ "data-tid": RadioGroupDataTids.root, ref: _this2.ref, style: style, className: (0, _Emotion.cx)((_cx2 = {}, _cx2[_RadioGroup2.styles.root()] = true, _cx2[_RadioGroup2.styles.removeBaselineSpacer()] = _this2.featureFlags.radioGroupRemoveBaselineSpacer, _cx2)), role: "radiogroup" }, handlers, { "aria-describedby": ariaDescribedby }), /*#__PURE__*/_react.default.createElement(_RadioGroupContext.RadioGroupContext.Provider, { value: _this2.getRadioGroupContextValue() }, _this2.renderChildren()))));});} /** Программно устанавливает фокус на радиокнопку. Появляется фокусная обводка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
262
255
  * @public
263
256
  */;_proto.focus = function focus() {var node = this.node;if (!node) {return;}var radio = node.querySelector('input[type="radio"]:checked'); // If no checked radios, try get first radio
264
257
  if (!radio || radio.disabled) {radio = node.querySelector('input[type="radio"]:not([disabled])');}if (radio) {radio.focus();}};_proto.renderChildren = function renderChildren() {var _this$props2 = this.props,items = _this$props2.items,children = _this$props2.children;(0, _invariant.default)(!items && children || items && !children, 'Either items or children must be passed, not both');return items ? mapItems(this.renderRadio, items) : children;};return RadioGroup;}(_react.default.Component), _RadioGroup.__KONTUR_REACT_UI__ = 'RadioGroup', _RadioGroup.displayName = 'RadioGroup', _RadioGroup.defaultProps = { renderItem: renderItem }, _RadioGroup.Prevent = _Prevent.Prevent, _RadioGroup)) || _class;function renderItem(_value, data) {