@skbkontur/react-ui 3.7.2 → 3.8.3

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 (161) hide show
  1. package/CHANGELOG.md +60 -2
  2. package/README.md +1 -1
  3. package/cjs/components/Checkbox/Checkbox.styles.js +1 -2
  4. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  5. package/cjs/components/CurrencyLabel/CurrencyLabel.js +5 -14
  6. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  7. package/cjs/components/DateInput/DateInput.js +2 -1
  8. package/cjs/components/DateInput/DateInput.js.map +1 -1
  9. package/cjs/components/DatePicker/DatePicker.d.ts +3 -2
  10. package/cjs/components/DatePicker/DatePicker.js +12 -5
  11. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  12. package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
  13. package/cjs/components/Dropdown/Dropdown.js +1 -0
  14. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  15. package/cjs/components/Dropdown/Dropdown.md +0 -1
  16. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +17 -3
  17. package/cjs/components/DropdownMenu/DropdownMenu.js +15 -1
  18. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  19. package/cjs/components/DropdownMenu/DropdownMenu.md +87 -6
  20. package/cjs/components/Kebab/Kebab.d.ts +5 -2
  21. package/cjs/components/Kebab/Kebab.js +5 -1
  22. package/cjs/components/Kebab/Kebab.js.map +1 -1
  23. package/cjs/components/Kebab/Kebab.md +249 -3
  24. package/cjs/components/MenuHeader/MenuHeader.d.ts +5 -1
  25. package/cjs/components/MenuHeader/MenuHeader.js +5 -1
  26. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  27. package/cjs/components/MenuHeader/MenuHeader.md +23 -0
  28. package/cjs/components/MenuItem/MenuItem.d.ts +10 -1
  29. package/cjs/components/MenuItem/MenuItem.js +11 -1
  30. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  31. package/cjs/components/MenuItem/MenuItem.md +106 -4
  32. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -1
  33. package/cjs/components/MenuSeparator/MenuSeparator.js +3 -1
  34. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  35. package/cjs/components/MenuSeparator/MenuSeparator.md +14 -0
  36. package/cjs/components/Modal/Modal.styles.d.ts +1 -0
  37. package/cjs/components/Modal/Modal.styles.js +22 -20
  38. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  39. package/cjs/components/Modal/ModalClose.js +23 -3
  40. package/cjs/components/Modal/ModalClose.js.map +1 -1
  41. package/cjs/components/Textarea/Textarea.d.ts +0 -2
  42. package/cjs/components/Textarea/Textarea.js +6 -3
  43. package/cjs/components/Textarea/Textarea.js.map +1 -1
  44. package/cjs/components/Toggle/Toggle.d.ts +47 -1
  45. package/cjs/components/Toggle/Toggle.js +52 -2
  46. package/cjs/components/Toggle/Toggle.js.map +1 -1
  47. package/cjs/components/Toggle/Toggle.md +83 -9
  48. package/cjs/components/Toggle/Toggle.styles.d.ts +3 -0
  49. package/cjs/components/Toggle/Toggle.styles.js +36 -23
  50. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  51. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +26 -8
  52. package/cjs/components/TooltipMenu/TooltipMenu.js +24 -6
  53. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  54. package/cjs/components/TooltipMenu/TooltipMenu.md +76 -8
  55. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  56. package/cjs/internal/CommonWrapper/CommonWrapper.js +8 -0
  57. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  58. package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
  59. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  60. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +3 -2
  61. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  62. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  63. package/cjs/internal/InputLikeText/InputLikeText.js +8 -3
  64. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  65. package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +1 -1
  66. package/cjs/internal/InputLikeText/InputLikeText.styles.js +1 -1
  67. package/cjs/internal/InputLikeText/InputLikeText.styles.js.map +1 -1
  68. package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
  69. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  70. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  71. package/cjs/internal/themes/DefaultTheme.d.ts +3 -0
  72. package/cjs/internal/themes/DefaultTheme.js +11 -2
  73. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  74. package/cjs/lib/Upgrades.d.ts +2 -0
  75. package/cjs/lib/Upgrades.js +14 -0
  76. package/cjs/lib/Upgrades.js.map +1 -1
  77. package/cjs/lib/theming/Emotion.js +1 -1
  78. package/cjs/lib/theming/Emotion.js.map +1 -1
  79. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +1 -1
  80. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  81. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +5 -11
  82. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  83. package/components/DateInput/DateInput/DateInput.js +2 -1
  84. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  85. package/components/DatePicker/DatePicker/DatePicker.js +12 -4
  86. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  87. package/components/DatePicker/DatePicker.d.ts +3 -2
  88. package/components/Dropdown/Dropdown/Dropdown.js +1 -0
  89. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  90. package/components/Dropdown/Dropdown.d.ts +1 -0
  91. package/components/Dropdown/Dropdown.md +0 -1
  92. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  93. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  94. package/components/DropdownMenu/DropdownMenu.d.ts +17 -3
  95. package/components/DropdownMenu/DropdownMenu.md +87 -6
  96. package/components/Kebab/Kebab/Kebab.js +2 -1
  97. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  98. package/components/Kebab/Kebab.d.ts +5 -2
  99. package/components/Kebab/Kebab.md +249 -3
  100. package/components/MenuHeader/MenuHeader/MenuHeader.js +5 -1
  101. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  102. package/components/MenuHeader/MenuHeader.d.ts +5 -1
  103. package/components/MenuHeader/MenuHeader.md +23 -0
  104. package/components/MenuItem/MenuItem/MenuItem.js +4 -1
  105. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  106. package/components/MenuItem/MenuItem.d.ts +10 -1
  107. package/components/MenuItem/MenuItem.md +106 -4
  108. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +3 -1
  109. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  110. package/components/MenuSeparator/MenuSeparator.d.ts +3 -1
  111. package/components/MenuSeparator/MenuSeparator.md +14 -0
  112. package/components/Modal/Modal.styles/Modal.styles.js +18 -15
  113. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  114. package/components/Modal/Modal.styles.d.ts +1 -0
  115. package/components/Modal/ModalClose/ModalClose.js +25 -2
  116. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  117. package/components/Textarea/Textarea/Textarea.js +1 -2
  118. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  119. package/components/Textarea/Textarea.d.ts +0 -2
  120. package/components/Toggle/Toggle/Toggle.js +11 -5
  121. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  122. package/components/Toggle/Toggle.d.ts +47 -1
  123. package/components/Toggle/Toggle.md +83 -9
  124. package/components/Toggle/Toggle.styles/Toggle.styles.js +21 -15
  125. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  126. package/components/Toggle/Toggle.styles.d.ts +3 -0
  127. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +9 -6
  128. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  129. package/components/TooltipMenu/TooltipMenu.d.ts +26 -8
  130. package/components/TooltipMenu/TooltipMenu.md +76 -8
  131. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  132. package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
  133. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -1
  134. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  135. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +3 -2
  136. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  137. package/internal/InputLikeText/InputLikeText/InputLikeText.js +6 -3
  138. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  139. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  140. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js +1 -1
  141. package/internal/InputLikeText/InputLikeText.styles/InputLikeText.styles.js.map +1 -1
  142. package/internal/InputLikeText/InputLikeText.styles.d.ts +1 -1
  143. package/internal/RenderContainer/RenderContainer/RenderContainer.js +2 -1
  144. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  145. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  146. package/internal/themes/DefaultTheme/DefaultTheme.js +16 -1
  147. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  148. package/internal/themes/DefaultTheme.d.ts +3 -0
  149. package/lib/Upgrades/Upgrades.js +13 -0
  150. package/lib/Upgrades/Upgrades.js.map +1 -1
  151. package/lib/Upgrades.d.ts +2 -0
  152. package/lib/theming/Emotion/Emotion.js +1 -1
  153. package/lib/theming/Emotion/Emotion.js.map +1 -1
  154. package/package.json +2 -2
  155. package/cjs/components/CurrencyLabel/CurrencyLabel.styles.d.ts +0 -4
  156. package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js +0 -9
  157. package/cjs/components/CurrencyLabel/CurrencyLabel.styles.js.map +0 -1
  158. package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js +0 -10
  159. package/components/CurrencyLabel/CurrencyLabel.styles/CurrencyLabel.styles.js.map +0 -1
  160. package/components/CurrencyLabel/CurrencyLabel.styles/package.json +0 -6
  161. package/components/CurrencyLabel/CurrencyLabel.styles.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["MenuItem.tsx"],"names":["React","PropTypes","isFunction","ThemeContext","CommonWrapper","cx","styles","MenuItem","theme","mouseEntered","renderMain","props","link","comment","icon","loose","state","_enableIconPadding","component","onMouseEnter","onMouseLeave","rest","hover","disabled","iconElement","className","root","selected","withIcon","Boolean","children","content","Component","getComponent","handleMouseEnterFix","handleMouseLeave","commentHover","e","href","render","__KONTUR_REACT_UI__","__MENU_ITEM__","propTypes","node","bool","string","oneOfType","target","onClick","func","isMenuItem","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps extends CommonProps {\n /** @ignore */\n _enableIconPadding?: boolean;\n\n comment?: React.ReactNode;\n disabled?: boolean;\n icon?: React.ReactElement<any>;\n link?: boolean;\n\n /** @ignore */\n loose?: boolean;\n\n /** @ignore */\n state?: MenuItemState;\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n onMouseEnter?: React.MouseEventHandler;\n onMouseLeave?: React.MouseEventHandler;\n\n component?: React.ComponentType<any>;\n}\n\n/**\n * Элемент меню.\n */\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const { link, comment, icon, loose, state, _enableIconPadding, component, onMouseEnter, onMouseLeave, ...rest } =\n props;\n\n const hover = state === 'hover' && !this.props.disabled;\n\n let iconElement = null;\n if (icon) {\n iconElement = <div className={styles.icon(this.theme)}>{icon}</div>;\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: hover,\n [styles.selected(this.theme)]: state === 'selected',\n [styles.link(this.theme)]: !!link,\n [styles.withIcon(this.theme)]: Boolean(iconElement) || !!_enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n {...rest}\n state={state}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n className={className}\n tabIndex={-1}\n >\n {iconElement}\n {content}\n {this.props.comment && (\n <div\n data-tid=\"MenuItem__comment\"\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: hover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered && this.props.onMouseEnter) {\n this.mouseEntered = true;\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (disabled) {\n return 'button';\n }\n\n if (component) {\n return component;\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n}\n\nexport const isMenuItem = (child: React.ReactNode): child is React.ReactElement<MenuItemProps> => {\n return React.isValidElement<MenuItemProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_ITEM__')\n : false;\n};\n"]}
1
+ {"version":3,"sources":["MenuItem.tsx"],"names":["React","PropTypes","isFunction","ThemeContext","CommonWrapper","cx","styles","MenuItem","theme","mouseEntered","renderMain","props","link","comment","icon","loose","state","_enableIconPadding","component","onMouseEnter","onMouseLeave","rest","hover","disabled","iconElement","className","root","selected","withIcon","Boolean","children","content","Component","getComponent","handleMouseEnterFix","handleMouseLeave","commentHover","e","href","render","__KONTUR_REACT_UI__","__MENU_ITEM__","propTypes","node","bool","string","oneOfType","target","onClick","func","isMenuItem","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps extends CommonProps {\n /** @ignore */\n _enableIconPadding?: boolean;\n\n comment?: React.ReactNode;\n disabled?: boolean;\n icon?: React.ReactElement<any>;\n\n /**\n * Меняет цвет текста на синий\n */\n link?: boolean;\n\n /** @ignore */\n loose?: boolean;\n\n /** @ignore */\n state?: MenuItemState;\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут title\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n onMouseEnter?: React.MouseEventHandler;\n onMouseLeave?: React.MouseEventHandler;\n\n component?: React.ComponentType<any>;\n}\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [`DropdownMenu`](#/Components/DropdownMenu), [`Kebab`](#/Components/Kebab), [`TooltipMenu`](#/Components/TooltipMenu) и [`Select`](#/Components/Select).\n */\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const { link, comment, icon, loose, state, _enableIconPadding, component, onMouseEnter, onMouseLeave, ...rest } =\n props;\n\n const hover = state === 'hover' && !this.props.disabled;\n\n let iconElement = null;\n if (icon) {\n iconElement = <div className={styles.icon(this.theme)}>{icon}</div>;\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: hover,\n [styles.selected(this.theme)]: state === 'selected',\n [styles.link(this.theme)]: !!link,\n [styles.withIcon(this.theme)]: Boolean(iconElement) || !!_enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n {...rest}\n state={state}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n className={className}\n tabIndex={-1}\n >\n {iconElement}\n {content}\n {this.props.comment && (\n <div\n data-tid=\"MenuItem__comment\"\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: hover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered && this.props.onMouseEnter) {\n this.mouseEntered = true;\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (disabled) {\n return 'button';\n }\n\n if (component) {\n return component;\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n}\n\nexport const isMenuItem = (child: React.ReactNode): child is React.ReactElement<MenuItemProps> => {\n return React.isValidElement<MenuItemProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_ITEM__')\n : false;\n};\n"]}
@@ -8,6 +8,9 @@ export interface MenuItemProps extends CommonProps {
8
8
  comment?: React.ReactNode;
9
9
  disabled?: boolean;
10
10
  icon?: React.ReactElement<any>;
11
+ /**
12
+ * Меняет цвет текста на синий
13
+ */
11
14
  link?: boolean;
12
15
  /** @ignore */
13
16
  loose?: boolean;
@@ -16,6 +19,9 @@ export interface MenuItemProps extends CommonProps {
16
19
  onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;
17
20
  children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);
18
21
  target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];
22
+ /**
23
+ * HTML-атрибут title
24
+ */
19
25
  title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];
20
26
  href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];
21
27
  onMouseEnter?: React.MouseEventHandler;
@@ -23,7 +29,10 @@ export interface MenuItemProps extends CommonProps {
23
29
  component?: React.ComponentType<any>;
24
30
  }
25
31
  /**
26
- * Элемент меню.
32
+ *
33
+ * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.
34
+ *
35
+ * Сущности в которых может быть использован `MenuItem`: [`DropdownMenu`](#/Components/DropdownMenu), [`Kebab`](#/Components/Kebab), [`TooltipMenu`](#/Components/TooltipMenu) и [`Select`](#/Components/Select).
27
36
  */
28
37
  export declare class MenuItem extends React.Component<MenuItemProps> {
29
38
  static __KONTUR_REACT_UI__: string;
@@ -1,7 +1,109 @@
1
+ Меню с базовыми элементами меню.
2
+
3
+ ```jsx harmony
4
+ import { Button, MenuItem, DropdownMenu } from '@skbkontur/react-ui';
5
+
6
+ <DropdownMenu
7
+ caption={<Button use="primary">Открыть меню с базовыми элементами меню</Button>}
8
+ >
9
+ <MenuItem>Базовый элемент меню</MenuItem>
10
+ <MenuItem>Ещё один базовый элемент меню</MenuItem>
11
+ <MenuItem>И ещё один</MenuItem>
12
+ </DropdownMenu>
13
+ ```
14
+
15
+ Меню с отключёнными и базовыми элементами меню.
16
+ <br/>
17
+ К отключённым элементам меню не применяются стили при наведении и их нельзя затаргетить с клавиатуры.
18
+
1
19
  ```jsx harmony
2
- import { Link } from '@skbkontur/react-ui';
20
+ import { Button, MenuItem, DropdownMenu } from '@skbkontur/react-ui';
21
+
22
+ <DropdownMenu
23
+ caption={<Button use="primary">Открыть меню с базовыми и отключёнными элементами</Button>}
24
+ >
25
+ <MenuItem>Это базовый элемент меню</MenuItem>
26
+ <MenuItem disabled>А это отключённый</MenuItem>
27
+ <MenuItem>А это снова базовый</MenuItem>
28
+ <MenuItem disabled>И снова отключённый</MenuItem>
29
+ <MenuItem disabled>И вот ещё один отключённый</MenuItem>
30
+ </DropdownMenu>
31
+ ```
32
+
33
+ Меню с элементами меню содержащими описание.
34
+
35
+ ```jsx harmony
36
+ import { Button, MenuItem, DropdownMenu } from '@skbkontur/react-ui';
37
+
38
+ <DropdownMenu
39
+ caption={<Button use="primary">Открыть меню с причастными к Pied Piper</Button>}
40
+ >
41
+ <MenuItem comment="Системный инженер">Bertram Gilfoyle</MenuItem>
42
+ <MenuItem comment="Hooli CEO">Gavin Belson</MenuItem>
43
+ <MenuItem comment="Java-разработчик">Dinesh Chugtai</MenuItem>
44
+ <MenuItem comment="Основатель Pied Piper">Richard Hendricks</MenuItem>
45
+ <MenuItem comment="Владелец инкубатора">Erlich Bachman</MenuItem>
46
+ </DropdownMenu>
47
+ ```
48
+
49
+ Меню с элементами меню содержащими иконки.
50
+
51
+ ```jsx harmony
52
+ import { Button, MenuItem, DropdownMenu } from '@skbkontur/react-ui';
53
+ import DeviceSmartphoneIcon from '@skbkontur/react-icons/DeviceSmartphone';
54
+ import OkIcon from '@skbkontur/react-icons/Ok';
55
+ import ThumbDownIcon from '@skbkontur/react-icons/ThumbDown';
56
+
57
+
58
+ <DropdownMenu
59
+ caption={<Button use="primary">Открыть меню с иконками</Button>}
60
+ >
61
+ <MenuItem icon={<OkIcon />}>Базовый элемент меню c иконкой</MenuItem>
62
+ <MenuItem
63
+ disabled
64
+ icon={<ThumbDownIcon />}
65
+ >
66
+ Отключённый элемент меню с иконкой
67
+ </MenuItem>
68
+ <MenuItem
69
+ icon={<DeviceSmartphoneIcon />}
70
+ comment="А слева вы можете видеть икону 21-го века"
71
+ >
72
+ Элемент меню с описанием и иконкой
73
+ </MenuItem>
74
+ </DropdownMenu>
75
+ ```
76
+
77
+ Меню с элементами меню обёрнутыми в контрол ссылки.
78
+
79
+ ```jsx harmony
80
+ import { Button, MenuItem, DropdownMenu, Link } from '@skbkontur/react-ui';
81
+
82
+ const LinkMenuItem = ({link, title}) => {
83
+ return <MenuItem
84
+ href={link}
85
+ component={({ href, ...rest }) => {
86
+ return <Link target="_blank" rel="noopener noreferrer" href={href} {...rest} />
87
+ }}
88
+ >
89
+ {title}
90
+ </MenuItem>
91
+ }
3
92
 
4
- <MenuItem href="//tech.skbkontur.ru/react-ui/" component={({ href, ...rest }) => <Link to={href} {...rest} />}>
5
- Awesome link
6
- </MenuItem>;
93
+ <DropdownMenu
94
+ caption={<Button use="primary">Открыть меню с ссылками</Button>}
95
+ >
96
+ <LinkMenuItem
97
+ link="http://tech.skbkontur.ru/react-ui/"
98
+ title="Начало документации"
99
+ />
100
+ <LinkMenuItem
101
+ link="https://guides.kontur.ru/"
102
+ title="Контур Гайды"
103
+ />
104
+ <LinkMenuItem
105
+ link="https://github.com/skbkontur/retail-ui/graphs/contributors"
106
+ title="Список прекрасных людей"
107
+ />
108
+ </DropdownMenu>
7
109
  ```
@@ -3,7 +3,9 @@ import { ThemeContext } from "../../../lib/theming/ThemeContext";
3
3
  import { CommonWrapper } from "../../../internal/CommonWrapper";
4
4
  import { styles } from "../MenuSeparator.styles";
5
5
  /**
6
- * Разделитель в меню.
6
+ * Добавляет разделительную линию между элементами меню.
7
+ *
8
+ * Сущности в которых может быть использован `MenuSeparator`: [`DropdownMenu`](#/Components/DropdownMenu), [`Kebab`](#/Components/Kebab), [`TooltipMenu`](#/Components/TooltipMenu) и [`Select`](#/Components/Select).
7
9
  */
8
10
 
9
11
  function MenuSeparator(props) {
@@ -1 +1 @@
1
- {"version":3,"sources":["MenuSeparator.tsx"],"names":["React","useContext","ThemeContext","CommonWrapper","styles","MenuSeparator","props","theme","root","__KONTUR_REACT_UI__"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;;AAEA,SAASC,MAAT,QAAuB,wBAAvB;;;AAGA;AACA;AACA;AACA,SAASC,aAAT,CAAuBC,KAAvB,EAAkD;AAChD,MAAMC,KAAK,GAAGN,UAAU,CAACC,YAAD,CAAxB;;AAEA;AACE,wBAAC,aAAD,EAAmBI,KAAnB;AACE,iCAAK,SAAS,EAAEF,MAAM,CAACI,IAAP,CAAYD,KAAZ,CAAhB,GADF,CADF;;;AAKD;;AAEDF,aAAa,CAACI,mBAAd,GAAoC,eAApC;;AAEA,SAASJ,aAAT","sourcesContent":["import React, { useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { styles } from './MenuSeparator.styles';\n\nexport type MenuSeparatorProps = CommonProps;\n/**\n * Разделитель в меню.\n */\nfunction MenuSeparator(props: MenuSeparatorProps) {\n const theme = useContext(ThemeContext);\n\n return (\n <CommonWrapper {...props}>\n <div className={styles.root(theme)} />\n </CommonWrapper>\n );\n}\n\nMenuSeparator.__KONTUR_REACT_UI__ = 'MenuSeparator';\n\nexport { MenuSeparator };\n"]}
1
+ {"version":3,"sources":["MenuSeparator.tsx"],"names":["React","useContext","ThemeContext","CommonWrapper","styles","MenuSeparator","props","theme","root","__KONTUR_REACT_UI__"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;;AAEA,SAASC,MAAT,QAAuB,wBAAvB;;;AAGA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAT,CAAuBC,KAAvB,EAAkD;AAChD,MAAMC,KAAK,GAAGN,UAAU,CAACC,YAAD,CAAxB;;AAEA;AACE,wBAAC,aAAD,EAAmBI,KAAnB;AACE,iCAAK,SAAS,EAAEF,MAAM,CAACI,IAAP,CAAYD,KAAZ,CAAhB,GADF,CADF;;;AAKD;;AAEDF,aAAa,CAACI,mBAAd,GAAoC,eAApC;;AAEA,SAASJ,aAAT","sourcesContent":["import React, { useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\n\nimport { styles } from './MenuSeparator.styles';\n\nexport type MenuSeparatorProps = CommonProps;\n/**\n * Добавляет разделительную линию между элементами меню.\n *\n * Сущности в которых может быть использован `MenuSeparator`: [`DropdownMenu`](#/Components/DropdownMenu), [`Kebab`](#/Components/Kebab), [`TooltipMenu`](#/Components/TooltipMenu) и [`Select`](#/Components/Select).\n */\nfunction MenuSeparator(props: MenuSeparatorProps) {\n const theme = useContext(ThemeContext);\n\n return (\n <CommonWrapper {...props}>\n <div className={styles.root(theme)} />\n </CommonWrapper>\n );\n}\n\nMenuSeparator.__KONTUR_REACT_UI__ = 'MenuSeparator';\n\nexport { MenuSeparator };\n"]}
@@ -1,7 +1,9 @@
1
1
  import { CommonProps } from '../../internal/CommonWrapper';
2
2
  export declare type MenuSeparatorProps = CommonProps;
3
3
  /**
4
- * Разделитель в меню.
4
+ * Добавляет разделительную линию между элементами меню.
5
+ *
6
+ * Сущности в которых может быть использован `MenuSeparator`: [`DropdownMenu`](#/Components/DropdownMenu), [`Kebab`](#/Components/Kebab), [`TooltipMenu`](#/Components/TooltipMenu) и [`Select`](#/Components/Select).
5
7
  */
6
8
  declare function MenuSeparator(props: MenuSeparatorProps): JSX.Element;
7
9
  declare namespace MenuSeparator {
@@ -0,0 +1,14 @@
1
+ Пример меню с разделителями.
2
+
3
+ ```jsx harmony
4
+ import { Button, MenuHeader, MenuItem, DropdownMenu } from '@skbkontur/react-ui';
5
+
6
+ <DropdownMenu caption={<Button use="primary">Открыть меню с разделителями</Button>}>
7
+ <MenuItem>У меня есть разделитель</MenuItem>
8
+ <MenuSeparator />
9
+ <MenuItem>У меня тоже!</MenuItem>
10
+ <MenuSeparator />
11
+ <MenuItem>А у меня нет :(</MenuItem>
12
+ <MenuItem>Как и у меня :(</MenuItem>
13
+ </DropdownMenu>;
14
+ ```
@@ -1,6 +1,6 @@
1
1
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
2
 
3
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22;
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23;
4
4
 
5
5
  import { css, memoizeStyle } from "../../../lib/theming/Emotion";
6
6
  import { resetButton } from "../../../lib/styles/Mixins";
@@ -25,7 +25,7 @@ export var styles = memoizeStyle({
25
25
  },
26
26
  close: function close(t) {
27
27
  var padding = parseInt(t.modalCloseButtonPadding);
28
- return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n ", ";\n position: absolute;\n display: flex;\n right: ", "px;\n top: ", "px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ", ";\n text-align: center;\n vertical-align: middle;\n padding: ", ";\n margin: -", ";\n\n &:focus,\n &:hover {\n color: ", ";\n }\n\n &:focus {\n outline: 2px solid ", ";\n }\n\n & > svg {\n width: ", ";\n height: ", ";\n box-sizing: content-box;\n }\n "])), resetButton(), padding, padding, t.modalCloseButtonColor, t.modalCloseButtonClickArea, t.modalCloseButtonClickArea, t.modalCloseButtonHoverColor, t.borderColorFocus, t.modalCloseIconSize, t.modalCloseIconSize);
28
+ return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n ", ";\n position: absolute;\n display: flex;\n right: ", "px;\n top: ", "px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ", ";\n text-align: center;\n vertical-align: middle;\n padding: ", ";\n margin: -", ";\n\n &:hover {\n color: ", ";\n }\n\n & > svg {\n width: ", ";\n height: ", ";\n box-sizing: content-box;\n }\n "])), resetButton(), padding, padding, t.modalCloseButtonColor, t.modalCloseButtonClickArea, t.modalCloseButtonClickArea, t.modalCloseButtonHoverColor, t.modalCloseIconSize, t.modalCloseIconSize);
29
29
  },
30
30
  closeWrapper: function closeWrapper(t) {
31
31
  var padding = parseInt(t.modalCloseButtonPadding);
@@ -39,44 +39,47 @@ export var styles = memoizeStyle({
39
39
  disabled: function disabled(t) {
40
40
  return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n pointer-events: none;\n cursor: default;\n color: ", ";\n "])), t.modalCloseButtonDisabledColor);
41
41
  },
42
+ focus: function focus(t) {
43
+ return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n color: ", ";\n outline: 2px solid ", ";\n "])), t.modalCloseButtonHoverColor, t.borderColorFocus);
44
+ },
42
45
  headerWrapper: function headerWrapper() {
43
- return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n position: relative;\n "])));
46
+ return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n position: relative;\n "])));
44
47
  },
45
48
  header: function header(t) {
46
- return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n line-height: ", ";\n padding: ", " ", " ", " ", ";\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ", ";\n "])), t.modalHeaderFontSize, t.modalHeaderLineHeight, t.modalHeaderPaddingTop, t.modalPaddingRight, t.modalHeaderPaddingBottom, t.modalPaddingLeft, t.modalHeaderTextColor);
49
+ return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n font-size: ", ";\n line-height: ", ";\n padding: ", " ", " ", " ", ";\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ", ";\n "])), t.modalHeaderFontSize, t.modalHeaderLineHeight, t.modalHeaderPaddingTop, t.modalPaddingRight, t.modalHeaderPaddingBottom, t.modalPaddingLeft, t.modalHeaderTextColor);
47
50
  },
48
51
  body: function body(t) {
49
- return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n padding: 0 ", " ", " ", ";\n "])), t.modalPaddingRight, t.modalBodyPaddingBottom, t.modalPaddingLeft);
52
+ return css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n padding: 0 ", " ", " ", ";\n "])), t.modalPaddingRight, t.modalBodyPaddingBottom, t.modalPaddingLeft);
50
53
  },
51
54
  headerWithClose: function headerWithClose(t) {
52
55
  var rightPadding = 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);
53
- return css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n padding-right: ", "px;\n "])), rightPadding);
56
+ return css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n padding-right: ", "px;\n "])), rightPadding);
54
57
  },
55
58
  footer: function footer(t) {
56
- return css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n padding: ", " ", " ", " ", ";\n "])), t.modalFooterPaddingTop, t.modalPaddingRight, t.modalFooterPaddingBottom, t.modalPaddingLeft);
59
+ return css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n padding: ", " ", " ", " ", ";\n "])), t.modalFooterPaddingTop, t.modalPaddingRight, t.modalFooterPaddingBottom, t.modalPaddingLeft);
57
60
  },
58
61
  footerWrapper: function footerWrapper() {
59
- return css(_templateObject15 || (_templateObject15 = _taggedTemplateLiteralLoose(["\n position: relative;\n "])));
62
+ return css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteralLoose(["\n position: relative;\n "])));
60
63
  },
61
64
  panel: function panel(t) {
62
- return css(_templateObject16 || (_templateObject16 = _taggedTemplateLiteralLoose(["\n padding-top: ", ";\n padding-bottom: ", ";\n background: ", ";\n "])), t.modalFooterPanelPaddingTop, t.modalFooterPanelPaddingBottom, t.modalFooterBg);
65
+ return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteralLoose(["\n padding-top: ", ";\n padding-bottom: ", ";\n background: ", ";\n "])), t.modalFooterPanelPaddingTop, t.modalFooterPanelPaddingBottom, t.modalFooterBg);
63
66
  },
64
67
  fixedHeader: function fixedHeader(t) {
65
- return css(_templateObject17 || (_templateObject17 = _taggedTemplateLiteralLoose(["\n margin-bottom: 10px;\n padding-bottom: ", ";\n background: ", ";\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ", ";\n }\n "])), t.modalFixedHeaderPaddingBottom, t.modalFixedHeaderBg, t.modalFixedHeaderShadow);
68
+ return css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteralLoose(["\n margin-bottom: 10px;\n padding-bottom: ", ";\n background: ", ";\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ", ";\n }\n "])), t.modalFixedHeaderPaddingBottom, t.modalFixedHeaderBg, t.modalFixedHeaderShadow);
66
69
  },
67
70
  fixedFooter: function fixedFooter(t) {
68
- return css(_templateObject18 || (_templateObject18 = _taggedTemplateLiteralLoose(["\n padding-top: 20px;\n margin-top: 10px;\n background: ", ";\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ", ";\n }\n "])), t.modalFixedHeaderBg, t.modalFixedFooterShadow);
71
+ return css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteralLoose(["\n padding-top: 20px;\n margin-top: 10px;\n background: ", ";\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ", ";\n }\n "])), t.modalFixedHeaderBg, t.modalFixedFooterShadow);
69
72
  },
70
73
  headerAddPadding: function headerAddPadding() {
71
- return css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteralLoose(["\n padding-bottom: 22px;\n "])));
74
+ return css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteralLoose(["\n padding-bottom: 22px;\n "])));
72
75
  },
73
76
  bodyWithoutHeader: function bodyWithoutHeader(t) {
74
- return css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteralLoose(["\n padding-top: ", ";\n "])), t.modalPaddingTop);
77
+ return css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteralLoose(["\n padding-top: ", ";\n "])), t.modalPaddingTop);
75
78
  },
76
79
  bodyWithoutPadding: function bodyWithoutPadding() {
77
- return css(_templateObject21 || (_templateObject21 = _taggedTemplateLiteralLoose(["\n padding: 0;\n "])));
80
+ return css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteralLoose(["\n padding: 0;\n "])));
78
81
  },
79
82
  bodyAddPaddingForPanel: function bodyAddPaddingForPanel(t) {
80
- return css(_templateObject22 || (_templateObject22 = _taggedTemplateLiteralLoose(["\n padding-bottom: ", ";\n "])), t.modalPaddingBottom);
83
+ return css(_templateObject23 || (_templateObject23 = _taggedTemplateLiteralLoose(["\n padding-bottom: ", ";\n "])), t.modalPaddingBottom);
81
84
  }
82
85
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["Modal.styles.ts"],"names":["css","memoizeStyle","resetButton","styles","root","bg","t","modalBackBg","modalBackOpacity","container","window","bgDefault","centerContainer","modalAdaptiveThreshold","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","borderColorFocus","modalCloseIconSize","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","disabled","modalCloseButtonDisabledColor","headerWrapper","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","body","modalBodyPaddingBottom","headerWithClose","rightPadding","modalCloseLegacyGap","footer","modalFooterPaddingTop","modalFooterPaddingBottom","footerWrapper","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderShadow","fixedFooter","modalFixedFooterShadow","headerAddPadding","bodyWithoutHeader","modalPaddingTop","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n background: ${t.bgDefault};\n `;\n },\n\n centerContainer(t: Theme) {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n\n @media screen and (max-width: ${t.modalAdaptiveThreshold}) {\n margin: 0;\n width: 100%;\n }\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:focus,\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n &:focus {\n outline: 2px solid ${t.borderColorFocus};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n headerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n `;\n },\n\n body(t: Theme) {\n return css`\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n `;\n },\n\n footerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: 10px;\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: 20px;\n margin-top: 10px;\n background: ${t.modalFixedHeaderBg};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n headerAddPadding() {\n return css`\n padding-bottom: 22px;\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Modal.styles.ts"],"names":["css","memoizeStyle","resetButton","styles","root","bg","t","modalBackBg","modalBackOpacity","container","window","bgDefault","centerContainer","modalAdaptiveThreshold","alignTop","close","padding","parseInt","modalCloseButtonPadding","modalCloseButtonColor","modalCloseButtonClickArea","modalCloseButtonHoverColor","modalCloseIconSize","closeWrapper","paddingBottom","modalCloseButtonBottomPadding","legacyGap","modalCloseWrapperLegacyGap","legacyShift","modalCloseButtonLegacyShift","blockSizeX","blockSizeY","disabled","modalCloseButtonDisabledColor","focus","borderColorFocus","headerWrapper","header","modalHeaderFontSize","modalHeaderLineHeight","modalHeaderPaddingTop","modalPaddingRight","modalHeaderPaddingBottom","modalPaddingLeft","modalHeaderTextColor","body","modalBodyPaddingBottom","headerWithClose","rightPadding","modalCloseLegacyGap","footer","modalFooterPaddingTop","modalFooterPaddingBottom","footerWrapper","panel","modalFooterPanelPaddingTop","modalFooterPanelPaddingBottom","modalFooterBg","fixedHeader","modalFixedHeaderPaddingBottom","modalFixedHeaderBg","modalFixedHeaderShadow","fixedFooter","modalFixedFooterShadow","headerAddPadding","bodyWithoutHeader","modalPaddingTop","bodyWithoutPadding","bodyAddPaddingForPanel","modalPaddingBottom"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { resetButton } from '../../lib/styles/Mixins';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n `;\n },\n\n bg(t: Theme) {\n return css`\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n background: ${t.modalBackBg};\n opacity: ${t.modalBackOpacity};\n `;\n },\n\n container() {\n return css`\n position: relative;\n white-space: nowrap;\n text-align: center;\n height: 100%;\n overflow-y: auto;\n outline: none;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n height: 80%; /* to vertical align modal 40%/60% of screen height */\n }\n `;\n },\n\n window(t: Theme) {\n return css`\n position: relative;\n white-space: normal;\n margin: auto;\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n background: ${t.bgDefault};\n `;\n },\n\n centerContainer(t: Theme) {\n return css`\n position: relative;\n display: inline-block;\n text-align: left;\n vertical-align: middle;\n box-sizing: border-box;\n z-index: 10;\n margin: 40px 20px;\n\n @media screen and (max-width: ${t.modalAdaptiveThreshold}) {\n margin: 0;\n width: 100%;\n }\n `;\n },\n\n alignTop() {\n return css`\n vertical-align: top;\n `;\n },\n\n close(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n return css`\n ${resetButton()};\n position: absolute;\n display: flex;\n right: ${padding}px;\n top: ${padding}px;\n background: none;\n background: transparent;\n cursor: pointer;\n color: ${t.modalCloseButtonColor};\n text-align: center;\n vertical-align: middle;\n padding: ${t.modalCloseButtonClickArea};\n margin: -${t.modalCloseButtonClickArea};\n\n &:hover {\n color: ${t.modalCloseButtonHoverColor};\n }\n\n & > svg {\n width: ${t.modalCloseIconSize};\n height: ${t.modalCloseIconSize};\n box-sizing: content-box;\n }\n `;\n },\n\n closeWrapper(t: Theme) {\n const padding = parseInt(t.modalCloseButtonPadding);\n const paddingBottom = parseInt(t.modalCloseButtonBottomPadding);\n const legacyGap = parseInt(t.modalCloseWrapperLegacyGap);\n const legacyShift = parseInt(t.modalCloseButtonLegacyShift);\n const blockSizeX = parseInt(t.modalCloseIconSize) + 2 * padding - legacyShift;\n const blockSizeY = parseInt(t.modalCloseIconSize) + padding + paddingBottom + legacyGap;\n return css`\n position: relative;\n float: right;\n width: ${blockSizeX + legacyGap}px;\n height: ${blockSizeY}px;\n `;\n },\n\n disabled(t: Theme) {\n return css`\n pointer-events: none;\n cursor: default;\n color: ${t.modalCloseButtonDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n color: ${t.modalCloseButtonHoverColor};\n outline: 2px solid ${t.borderColorFocus};\n `;\n },\n\n headerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n header(t: Theme) {\n return css`\n font-size: ${t.modalHeaderFontSize};\n line-height: ${t.modalHeaderLineHeight};\n padding: ${t.modalHeaderPaddingTop} ${t.modalPaddingRight} ${t.modalHeaderPaddingBottom} ${t.modalPaddingLeft};\n overflow-wrap: break-word;\n word-wrap: break-word;\n color: ${t.modalHeaderTextColor};\n `;\n },\n\n body(t: Theme) {\n return css`\n padding: 0 ${t.modalPaddingRight} ${t.modalBodyPaddingBottom} ${t.modalPaddingLeft};\n `;\n },\n\n headerWithClose(t: Theme) {\n const rightPadding =\n 2 * parseInt(t.modalCloseButtonPadding) + parseInt(t.modalCloseIconSize) + parseInt(t.modalCloseLegacyGap);\n\n return css`\n padding-right: ${rightPadding}px;\n `;\n },\n\n footer(t: Theme) {\n return css`\n padding: ${t.modalFooterPaddingTop} ${t.modalPaddingRight} ${t.modalFooterPaddingBottom} ${t.modalPaddingLeft};\n `;\n },\n\n footerWrapper() {\n return css`\n position: relative;\n `;\n },\n\n panel(t: Theme) {\n return css`\n padding-top: ${t.modalFooterPanelPaddingTop};\n padding-bottom: ${t.modalFooterPanelPaddingBottom};\n background: ${t.modalFooterBg};\n `;\n },\n\n fixedHeader(t: Theme) {\n return css`\n margin-bottom: 10px;\n padding-bottom: ${t.modalFixedHeaderPaddingBottom};\n background: ${t.modalFixedHeaderBg};\n\n &:after {\n bottom: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedHeaderShadow};\n }\n `;\n },\n\n fixedFooter(t: Theme) {\n return css`\n padding-top: 20px;\n margin-top: 10px;\n background: ${t.modalFixedHeaderBg};\n\n &:before {\n top: 11px;\n content: '';\n position: absolute;\n height: 1px;\n width: 100%;\n left: 0;\n z-index: -1;\n box-shadow: ${t.modalFixedFooterShadow};\n }\n `;\n },\n\n headerAddPadding() {\n return css`\n padding-bottom: 22px;\n `;\n },\n\n bodyWithoutHeader(t: Theme) {\n return css`\n padding-top: ${t.modalPaddingTop};\n `;\n },\n\n bodyWithoutPadding() {\n return css`\n padding: 0;\n `;\n },\n\n bodyAddPaddingForPanel(t: Theme) {\n return css`\n padding-bottom: ${t.modalPaddingBottom};\n `;\n },\n});\n"]}
@@ -9,6 +9,7 @@ export declare const styles: {
9
9
  close(t: Theme): string;
10
10
  closeWrapper(t: Theme): string;
11
11
  disabled(t: Theme): string;
12
+ focus(t: Theme): string;
12
13
  headerWrapper(): string;
13
14
  header(t: Theme): string;
14
15
  body(t: Theme): string;
@@ -2,6 +2,7 @@ import React, { useContext } from 'react';
2
2
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
3
3
  import { CrossIcon } from "../../../internal/icons/CrossIcon";
4
4
  import { cx } from "../../../lib/theming/Emotion";
5
+ import { keyListener } from "../../../lib/events/keyListener";
5
6
  import { styles } from "../Modal.styles";
6
7
  export function ModalClose(_ref) {
7
8
  var _cx;
@@ -9,9 +10,31 @@ export function ModalClose(_ref) {
9
10
  var disableClose = _ref.disableClose,
10
11
  requestClose = _ref.requestClose;
11
12
  var theme = useContext(ThemeContext);
13
+
14
+ var _React$useState = React.useState(false),
15
+ focusedByTab = _React$useState[0],
16
+ setFocusedByTab = _React$useState[1];
17
+
18
+ var handleFocus = function handleFocus() {
19
+ // focus event fires before keyDown eventlistener
20
+ // so we should check tabPressed in async way
21
+ requestAnimationFrame(function () {
22
+ if (keyListener.isTabPressed) {
23
+ setFocusedByTab(true);
24
+ }
25
+ });
26
+ };
27
+
28
+ var handleBlur = function handleBlur() {
29
+ setFocusedByTab(false);
30
+ };
31
+
12
32
  return /*#__PURE__*/React.createElement("button", {
13
- className: cx((_cx = {}, _cx[styles.close(theme)] = true, _cx[styles.disabled(theme)] = disableClose, _cx)),
33
+ className: cx((_cx = {}, _cx[styles.close(theme)] = true, _cx[styles.disabled(theme)] = disableClose, _cx[styles.focus(theme)] = focusedByTab, _cx)),
14
34
  onClick: requestClose,
15
- "data-tid": "modal-close"
35
+ onFocus: handleFocus,
36
+ onBlur: handleBlur,
37
+ "data-tid": "modal-close",
38
+ tabIndex: disableClose ? -1 : 0
16
39
  }, /*#__PURE__*/React.createElement(CrossIcon, null));
17
40
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["ModalClose.tsx"],"names":["React","useContext","ThemeContext","CrossIcon","cx","styles","ModalClose","disableClose","requestClose","theme","close","disabled"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,SAAT,QAA0B,gCAA1B;AACA,SAASC,EAAT,QAAmB,2BAAnB;;;AAGA,SAASC,MAAT,QAAuB,gBAAvB;;AAEA,OAAO,SAASC,UAAT,OAAgE,aAA1CC,YAA0C,QAA1CA,YAA0C,CAA5BC,YAA4B,QAA5BA,YAA4B;AACrE,MAAMC,KAAK,GAAGR,UAAU,CAACC,YAAD,CAAxB;;AAEA;AACE;AACE,MAAA,SAAS,EAAEE,EAAE;AACVC,MAAAA,MAAM,CAACK,KAAP,CAAaD,KAAb,CADU,IACY,IADZ;AAEVJ,MAAAA,MAAM,CAACM,QAAP,CAAgBF,KAAhB,CAFU,IAEeF,YAFf,OADf;;AAKE,MAAA,OAAO,EAAEC,YALX;AAME,kBAAS,aANX;;AAQE,wBAAC,SAAD,OARF,CADF;;;AAYD","sourcesContent":["import React, { useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CrossIcon } from '../../internal/icons/CrossIcon';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { CloseProps } from './ModalContext';\nimport { styles } from './Modal.styles';\n\nexport function ModalClose({ disableClose, requestClose }: CloseProps) {\n const theme = useContext(ThemeContext);\n\n return (\n <button\n className={cx({\n [styles.close(theme)]: true,\n [styles.disabled(theme)]: disableClose,\n })}\n onClick={requestClose}\n data-tid=\"modal-close\"\n >\n <CrossIcon />\n </button>\n );\n}\n"]}
1
+ {"version":3,"sources":["ModalClose.tsx"],"names":["React","useContext","ThemeContext","CrossIcon","cx","keyListener","styles","ModalClose","disableClose","requestClose","theme","useState","focusedByTab","setFocusedByTab","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","close","disabled","focus"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,SAAT,QAA0B,gCAA1B;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,WAAT,QAA4B,8BAA5B;;;AAGA,SAASC,MAAT,QAAuB,gBAAvB;;AAEA,OAAO,SAASC,UAAT,OAAgE,aAA1CC,YAA0C,QAA1CA,YAA0C,CAA5BC,YAA4B,QAA5BA,YAA4B;AACrE,MAAMC,KAAK,GAAGT,UAAU,CAACC,YAAD,CAAxB,CADqE;AAE7BF,EAAAA,KAAK,CAACW,QAAN,CAAe,KAAf,CAF6B,CAE9DC,YAF8D,sBAEhDC,eAFgD;;AAIrE,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB;AACA;AACAC,IAAAA,qBAAqB,CAAC,YAAM;AAC1B,UAAIV,WAAW,CAACW,YAAhB,EAA8B;AAC5BH,QAAAA,eAAe,CAAC,IAAD,CAAf;AACD;AACF,KAJoB,CAArB;AAKD,GARD;;AAUA,MAAMI,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvBJ,IAAAA,eAAe,CAAC,KAAD,CAAf;AACD,GAFD;;AAIA;AACE;AACE,MAAA,SAAS,EAAET,EAAE;AACVE,MAAAA,MAAM,CAACY,KAAP,CAAaR,KAAb,CADU,IACY,IADZ;AAEVJ,MAAAA,MAAM,CAACa,QAAP,CAAgBT,KAAhB,CAFU,IAEeF,YAFf;AAGVF,MAAAA,MAAM,CAACc,KAAP,CAAaV,KAAb,CAHU,IAGYE,YAHZ,OADf;;AAME,MAAA,OAAO,EAAEH,YANX;AAOE,MAAA,OAAO,EAAEK,WAPX;AAQE,MAAA,MAAM,EAAEG,UARV;AASE,kBAAS,aATX;AAUE,MAAA,QAAQ,EAAET,YAAY,GAAG,CAAC,CAAJ,GAAQ,CAVhC;;AAYE,wBAAC,SAAD,OAZF,CADF;;;AAgBD","sourcesContent":["import React, { useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CrossIcon } from '../../internal/icons/CrossIcon';\nimport { cx } from '../../lib/theming/Emotion';\nimport { keyListener } from '../../lib/events/keyListener';\n\nimport { CloseProps } from './ModalContext';\nimport { styles } from './Modal.styles';\n\nexport function ModalClose({ disableClose, requestClose }: CloseProps) {\n const theme = useContext(ThemeContext);\n const [focusedByTab, setFocusedByTab] = React.useState(false);\n\n const handleFocus = () => {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n };\n\n const handleBlur = () => {\n setFocusedByTab(false);\n };\n\n return (\n <button\n className={cx({\n [styles.close(theme)]: true,\n [styles.disabled(theme)]: disableClose,\n [styles.focus(theme)]: focusedByTab,\n })}\n onClick={requestClose}\n onFocus={handleFocus}\n onBlur={handleBlur}\n data-tid=\"modal-close\"\n tabIndex={disableClose ? -1 : 0}\n >\n <CrossIcon />\n </button>\n );\n}\n"]}
@@ -41,7 +41,6 @@ export var Textarea = /*#__PURE__*/function (_React$Component) {
41
41
  _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
42
42
  _this.state = {
43
43
  polyfillPlaceholder: polyfillPlaceholder,
44
- rows: 1,
45
44
  isCounterVisible: false
46
45
  };
47
46
 
@@ -367,7 +366,7 @@ export var Textarea = /*#__PURE__*/function (_React$Component) {
367
366
  this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());
368
367
  }
369
368
 
370
- if (this.props.autoResize && this.props.rows > this.state.rows || this.props.value !== prevProps.value) {
369
+ if (this.props.autoResize && (this.props.rows !== prevProps.rows || this.props.maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)) {
371
370
  this.autoResize();
372
371
  }
373
372
  };