@skbkontur/react-ui 6.0.8 → 6.1.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 (171) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/components/Autocomplete/Autocomplete.js +15 -4
  3. package/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/components/Button/Button.d.ts +1 -1
  5. package/components/Button/Button.js +5 -4
  6. package/components/Button/Button.js.map +1 -1
  7. package/components/Calendar/CalendarDay.js +3 -0
  8. package/components/Calendar/CalendarDay.js.map +1 -1
  9. package/components/Calendar/DayCellView.styles.d.ts +1 -0
  10. package/components/Calendar/DayCellView.styles.js +6 -3
  11. package/components/Calendar/DayCellView.styles.js.map +1 -1
  12. package/components/DatePicker/MobilePicker.js +1 -1
  13. package/components/DatePicker/MobilePicker.js.map +1 -1
  14. package/components/DateRangePicker/DateRangePicker.js +1 -1
  15. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  16. package/components/FxInput/FxInputRestoreBtn.js +1 -1
  17. package/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  18. package/components/Input/Input.d.ts +19 -1
  19. package/components/Input/Input.js +10 -3
  20. package/components/Input/Input.js.map +1 -1
  21. package/components/Input/InputLayout/InputLayout.d.ts +3 -1
  22. package/components/Input/InputLayout/InputLayout.js +5 -2
  23. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  24. package/components/Input/InputLayout/InputLayout.styles.d.ts +6 -0
  25. package/components/Input/InputLayout/InputLayout.styles.js +19 -1
  26. package/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  27. package/components/Input/InputLayout/InputLayoutAside.d.ts +2 -0
  28. package/components/Input/InputLayout/InputLayoutAside.js +2 -2
  29. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  30. package/components/Input/InputLayout/InputLayoutAsideCounter.d.ts +11 -0
  31. package/components/Input/InputLayout/InputLayoutAsideCounter.js +74 -0
  32. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -0
  33. package/components/Loader/Loader.d.ts +12 -4
  34. package/components/Loader/Loader.js +18 -7
  35. package/components/Loader/Loader.js.map +1 -1
  36. package/components/MenuItem/MenuItem.d.ts +1 -0
  37. package/components/MenuItem/MenuItem.js +17 -1
  38. package/components/MenuItem/MenuItem.js.map +1 -1
  39. package/components/MenuItem/MenuItem.styles.d.ts +3 -0
  40. package/components/MenuItem/MenuItem.styles.js +25 -16
  41. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  42. package/components/Select/Select.js +11 -1
  43. package/components/Select/Select.js.map +1 -1
  44. package/components/SingleToast/SingleToast.d.ts +9 -6
  45. package/components/SingleToast/SingleToast.js +9 -6
  46. package/components/SingleToast/SingleToast.js.map +1 -1
  47. package/components/Spinner/Spinner.d.ts +23 -33
  48. package/components/Spinner/Spinner.js +23 -19
  49. package/components/Spinner/Spinner.js.map +1 -1
  50. package/components/Spinner/Spinner.styles.d.ts +0 -3
  51. package/components/Spinner/Spinner.styles.js +6 -15
  52. package/components/Spinner/Spinner.styles.js.map +1 -1
  53. package/components/Switcher/Switcher.js +1 -0
  54. package/components/Switcher/Switcher.js.map +1 -1
  55. package/components/Textarea/Textarea.js +1 -1
  56. package/components/Textarea/Textarea.js.map +1 -1
  57. package/components/Textarea/Textarea.styles.d.ts +1 -0
  58. package/components/Textarea/Textarea.styles.js +7 -4
  59. package/components/Textarea/Textarea.styles.js.map +1 -1
  60. package/components/Textarea/TextareaCounter.d.ts +2 -0
  61. package/components/Textarea/TextareaCounter.js +22 -4
  62. package/components/Textarea/TextareaCounter.js.map +1 -1
  63. package/components/Toast/Toast.d.ts +13 -14
  64. package/components/Toast/Toast.js +3 -3
  65. package/components/Toast/Toast.js.map +1 -1
  66. package/components/Toast/ToastView.d.ts +8 -5
  67. package/components/Toast/ToastView.js +28 -8
  68. package/components/Toast/ToastView.js.map +1 -1
  69. package/components/Toast/ToastView.styles.d.ts +7 -0
  70. package/components/Toast/ToastView.styles.js +30 -8
  71. package/components/Toast/ToastView.styles.js.map +1 -1
  72. package/components/TokenInput/TokenInput.d.ts +18 -2
  73. package/components/TokenInput/TokenInput.js +236 -79
  74. package/components/TokenInput/TokenInput.js.map +1 -1
  75. package/components/TokenInput/TokenInput.styles.d.ts +1 -0
  76. package/components/TokenInput/TokenInput.styles.js +12 -9
  77. package/components/TokenInput/TokenInput.styles.js.map +1 -1
  78. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  79. package/components/TokenInput/TokenInputMenu.js +1 -1
  80. package/components/TokenInput/TokenInputMenu.js.map +1 -1
  81. package/components/TokenInput/TokenInputMobileMenu.d.ts +25 -0
  82. package/components/TokenInput/TokenInputMobileMenu.js +40 -0
  83. package/components/TokenInput/TokenInputMobileMenu.js.map +1 -0
  84. package/components/TokenInput/TokenInputReducer.d.ts +2 -0
  85. package/components/TokenInput/TokenInputReducer.js +14 -0
  86. package/components/TokenInput/TokenInputReducer.js.map +1 -1
  87. package/components/Tooltip/Tooltip.d.ts +4 -0
  88. package/components/Tooltip/Tooltip.js +50 -11
  89. package/components/Tooltip/Tooltip.js.map +1 -1
  90. package/internal/CloseButtonIcon/CloseButtonIcon.js +1 -1
  91. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  92. package/internal/CommonWrapper/CommonWrapper.js +5 -0
  93. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  94. package/internal/CustomComboBox/ComboBoxMenu.js +1 -1
  95. package/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  96. package/internal/CustomComboBox/ComboBoxView.js +13 -2
  97. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  98. package/internal/InputLikeText/InputLikeText.d.ts +1 -1
  99. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  100. package/internal/Menu/Menu.js +3 -0
  101. package/internal/Menu/Menu.js.map +1 -1
  102. package/internal/Menu/Menu.styles.d.ts +1 -0
  103. package/internal/Menu/Menu.styles.js +13 -10
  104. package/internal/Menu/Menu.styles.js.map +1 -1
  105. package/internal/MenuMessage/MenuMessage.js +17 -1
  106. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  107. package/internal/MenuMessage/MenuMessage.styles.d.ts +3 -0
  108. package/internal/MenuMessage/MenuMessage.styles.js +13 -4
  109. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
  110. package/internal/MobilePopup/MobilePopup.d.ts +8 -0
  111. package/internal/MobilePopup/MobilePopup.js +34 -11
  112. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  113. package/internal/MobilePopup/MobilePopup.styles.d.ts +7 -0
  114. package/internal/MobilePopup/MobilePopup.styles.js +34 -10
  115. package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  116. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +8 -1
  117. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +18 -1
  118. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  119. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +3 -0
  120. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +14 -4
  121. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
  122. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +4 -0
  123. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +48 -11
  124. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  125. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +6 -0
  126. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +28 -8
  127. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  128. package/internal/Popup/Popup.d.ts +9 -3
  129. package/internal/Popup/Popup.js +117 -15
  130. package/internal/Popup/Popup.js.map +1 -1
  131. package/internal/Popup/Popup.styles.js +1 -1
  132. package/internal/Popup/Popup.styles.js.map +1 -1
  133. package/internal/Popup/PopupHelper.d.ts +4 -0
  134. package/internal/Popup/PopupHelper.js +8 -0
  135. package/internal/Popup/PopupHelper.js.map +1 -1
  136. package/internal/Popup/PopupPin.d.ts +19 -4
  137. package/internal/Popup/PopupPin.js +109 -8
  138. package/internal/Popup/PopupPin.js.map +1 -1
  139. package/internal/Popup/PopupPin.styles.d.ts +2 -0
  140. package/internal/Popup/PopupPin.styles.js +11 -5
  141. package/internal/Popup/PopupPin.styles.js.map +1 -1
  142. package/internal/SpinnerIcon/SpinnerIcon.d.ts +3 -3
  143. package/internal/SpinnerIcon/SpinnerIcon.js +4 -4
  144. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  145. package/internal/icons2022/LoadingIcon.js +1 -1
  146. package/internal/icons2022/LoadingIcon.js.map +1 -1
  147. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.d.ts +2 -0
  148. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js +21 -0
  149. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js.map +1 -0
  150. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.d.ts +2 -0
  151. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js +21 -0
  152. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js.map +1 -0
  153. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.d.ts +2 -0
  154. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js +21 -0
  155. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js.map +1 -0
  156. package/internal/themes/BasicTheme.d.ts +83 -4
  157. package/internal/themes/BasicTheme.js +186 -5
  158. package/internal/themes/BasicTheme.js.map +1 -1
  159. package/internal/themes/DarkTheme6_1.d.ts +1 -0
  160. package/internal/themes/DarkTheme6_1.js +41 -0
  161. package/internal/themes/DarkTheme6_1.js.map +1 -0
  162. package/internal/themes/LightTheme6_1.d.ts +1 -0
  163. package/internal/themes/LightTheme6_1.js +39 -0
  164. package/internal/themes/LightTheme6_1.js.map +1 -0
  165. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  166. package/lib/theming/themes/DarkTheme.js +3 -1
  167. package/lib/theming/themes/DarkTheme.js.map +1 -1
  168. package/lib/theming/themes/LightTheme.d.ts +1 -0
  169. package/lib/theming/themes/LightTheme.js +3 -1
  170. package/lib/theming/themes/LightTheme.js.map +1 -1
  171. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,32 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [6.1.0](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@6.0.8...@skbkontur/react-ui@6.1.0) (2026-06-11)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **Button:** change default use to outline ([efd82f2](https://github.com/skbkontur/retail-ui/commit/efd82f21e507e0e4355da7cf22dde4bf44c52900))
12
+ * **Calendar, DatePicker:** use correct hover style for selected day ([0c27a46](https://github.com/skbkontur/retail-ui/commit/0c27a46c6b978614af95636b14e17a1a833a2573))
13
+ * **MobilePopup:** update mobile layout ([de02c6b](https://github.com/skbkontur/retail-ui/commit/de02c6bf4ee6f4c9ecb096c72f967ec64426adcc))
14
+ * **Modal, SidePage, MiniModal:** update bg color from SurfaceHigh to SurfaceBase ([e2e3d5d](https://github.com/skbkontur/retail-ui/commit/e2e3d5d3fbc6f3a4babff0678d442b23e8fb8e65))
15
+ * **Textarea:** update counter design ([fa329bc](https://github.com/skbkontur/retail-ui/commit/fa329bcc4b946f13183dcf253a1923e4c41fb6f1))
16
+ * **Textarea:** use minus character in counter ([7367193](https://github.com/skbkontur/retail-ui/commit/7367193fa6a685ce4bc565363d65f3cb5c10aee3))
17
+ * **Toast:** change font size to 16px on mobile ([c59b479](https://github.com/skbkontur/retail-ui/commit/c59b47921238bbcecbee6c4ae0e9b309faed879e))
18
+ * **Tooltip, Hint, Popup:** update adaptive layout ([4416555](https://github.com/skbkontur/retail-ui/commit/4416555f596c2a0688145ac9e52c9b6cca82c5dc))
19
+
20
+
21
+ ### Features
22
+
23
+ * **Input:** add length counter ([762f5c0](https://github.com/skbkontur/retail-ui/commit/762f5c013199a1824f003374d2e5fbdb67840eb9))
24
+ * **Spinner:** replace `type` prop for `size` ([9b4bfab](https://github.com/skbkontur/retail-ui/commit/9b4bfab59abcbce696f35f455a28bac0bd86af3c))
25
+ * **Toast:** add adaptive layout for mobile ([1878927](https://github.com/skbkontur/retail-ui/commit/1878927dcd365582023ffff9f95113cf0abc325b))
26
+ * **TokenInput:** add adaptive layout for mobile ([0456e7a](https://github.com/skbkontur/retail-ui/commit/0456e7a9db57c1644b17abd35efee2910981e88e))
27
+
28
+
29
+
30
+
31
+
6
32
  ## [6.0.8](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@6.0.7...@skbkontur/react-ui@6.0.8) (2026-06-10)
7
33
 
8
34
 
@@ -58,6 +58,7 @@ import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
58
58
  import { getRootNode, rootNode } from '../../lib/rootNode/index.js';
59
59
  import { withSize } from '../../lib/size/SizeDecorator.js';
60
60
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
61
+ import { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';
61
62
  import { getRandomID, isNullable } from '../../lib/utils.js';
62
63
  import { Input } from '../Input/index.js';
63
64
  import { MaskedInput, getSafeMaskInputType } from '../MaskedInput/index.js';
@@ -133,9 +134,18 @@ var Autocomplete = /** @class */ (function (_super) {
133
134
  inputMode: _this.props.inputMode,
134
135
  'aria-label': _this.props['aria-label'],
135
136
  'aria-controls': _this.menuId,
137
+ size: isThemeGTE(_this.theme, '6.1') ? _this.size : undefined,
136
138
  };
137
139
  var items = _this.state.items;
138
- return (React.createElement(MobilePopup, { id: _this.menuId, headerChildComponent: _this.getInput(inputProps), caption: _this.props.mobileMenuHeaderText, opened: _this.state.isMobileOpened, onCloseRequest: _this.handleCloseMobile, ref: _this.refMobilePopup },
140
+ var themeDependantProps = isThemeGTE(_this.theme, '6.1')
141
+ ? {
142
+ footerChildComponent: _this.getInput(inputProps),
143
+ size: _this.size,
144
+ }
145
+ : {
146
+ headerChildComponent: _this.getInput(inputProps),
147
+ };
148
+ return (React.createElement(MobilePopup, __assign({ id: _this.menuId }, themeDependantProps, { caption: _this.props.mobileMenuHeaderText, opened: _this.state.isMobileOpened, onCloseRequest: _this.handleCloseMobile, ref: _this.refMobilePopup }),
139
149
  React.createElement(Menu, { ref: _this.refMenu, onItemClick: (_a = _this.mobilePopup) === null || _a === void 0 ? void 0 : _a.close, disableScrollContainer: true, maxHeight: 'auto' },
140
150
  items && items.length > 0 && _this.getItems(),
141
151
  _this.renderHints())));
@@ -276,14 +286,15 @@ var Autocomplete = /** @class */ (function (_super) {
276
286
  };
277
287
  Autocomplete.prototype.renderHints = function () {
278
288
  var items = this.state.items;
289
+ var themeDependantProps = isThemeGTE(this.theme, '6.1') ? { size: this.size } : {};
279
290
  if (!this.props.value) {
280
- return React.createElement(MenuMessage, null, this.locale.enterValue);
291
+ return React.createElement(MenuMessage, __assign({}, themeDependantProps), this.locale.enterValue);
281
292
  }
282
293
  if ((items === null || items === void 0 ? void 0 : items.length) === 0 && this.props.value) {
283
- return React.createElement(MenuMessage, null, this.locale.notFound);
294
+ return React.createElement(MenuMessage, __assign({}, themeDependantProps), this.locale.notFound);
284
295
  }
285
296
  if (isNullable(items) && this.props.value) {
286
- return React.createElement(MenuMessage, null, this.locale.updateValue);
297
+ return React.createElement(MenuMessage, __assign({}, themeDependantProps), this.locale.updateValue);
287
298
  }
288
299
  return null;
289
300
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Autocomplete.js","sourceRoot":"","sources":["../../../components/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, KeyboardEvent } from 'react';\nimport React from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { Menu } from '../../internal/Menu/index.js';\nimport { MenuMessage } from '../../internal/MenuMessage/index.js';\nimport { MobilePopup } from '../../internal/MobilePopup/index.js';\nimport { Popup } from '../../internal/Popup/index.js';\nimport { RenderLayer } from '../../internal/RenderLayer/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getRandomID, isNullable } from '../../lib/utils.js';\nimport type { Nullable, Override } from '../../typings/utility-types.js';\nimport { Input } from '../Input/index.js';\nimport type { InputProps } from '../Input/index.js';\nimport { MaskedInput, type MaskedProps, getSafeMaskInputType } from '../MaskedInput/index.js';\nimport { MenuItem } from '../MenuItem/index.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport { getStyles } from './Autocomplete.styles.js';\nimport { getAutocompleteTheme } from './getAutocompleteTheme.js';\nimport type { AutocompleteLocale } from './locale/index.js';\nimport { AutocompleteLocaleHelper } from './locale/index.js';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n const lowerCasedPattern = pattern.toLowerCase();\n const itemsMatchingPattern = items.filter((item) => {\n return item.toLowerCase().includes(lowerCasedPattern);\n });\n\n return Promise.resolve(itemsMatchingPattern);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-label'>,\n Pick<Partial<MaskedProps>, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n Override<\n Omit<InputProps, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n {\n /** Отрисовывает элементы результата поиска. */\n renderItem?: (item: string) => React.ReactNode;\n\n /** Задаёт функцию поиска элементов, которая должна возвращать Promise с массивом значений. */\n source?: string[] | ((patter: string) => Promise<string[]>);\n\n /** По умолчанию выпадающий список рендерится через [паттерн Portal](https://react.dev/reference/react-dom/createPortal). Проп отключает использование Portal и список рендерится как обычный блок с абсолютным позиционированием внутри компонента. */\n disablePortal?: boolean;\n\n /** Определяет, нужно ли показывать тень у выпадающего списка. */\n hasShadow?: boolean;\n\n /** Выравнивание выпадающего списка. */\n menuAlign?: 'left' | 'right';\n\n /** Максимальная высота выпадающего списка. */\n menuMaxHeight?: number | string;\n\n /** Ширина выпадающего списка. */\n menuWidth?: number | string;\n\n /** Отключает скролл окна, когда выпадающий список раскрыт. */\n preventWindowScroll?: boolean;\n\n /** Событие изменения `value`. */\n onValueChange: (value: string) => void;\n\n /** Событие потери автокомплитом фокуса. */\n onBlur?: () => void;\n\n /** Размер автокомплита. */\n size?: SizeProp;\n\n /** Значение автокомплита. */\n value: string;\n\n /** Текст заголовка выпадающего списка в мобильной версии. */\n mobileMenuHeaderText?: string;\n }\n > {\n /** Расположение выпадающего списка — над или под полем. */\n menuPos?: 'top' | 'bottom';\n}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\nexport const AutocompleteDataTids = {\n root: 'Autocomplete__root',\n menu: 'Autocomplete__menu',\n} as const;\n\nexport const AutocompleteIds = {\n menu: AutocompleteDataTids.menu,\n} as const;\n\ntype DefaultProps = Required<\n Pick<AutocompleteProps, 'renderItem' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'preventWindowScroll'>\n>;\n\n/**\n * Автокомплит — поле ввода с выпадающим списком подсказок. Подсказки отображаются пользователю, когда он начинает вводить значение в поле. */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@locale('Autocomplete', AutocompleteLocaleHelper)\n@withSize\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n public static displayName = 'Autocomplete';\n\n public static defaultProps: DefaultProps = {\n renderItem,\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private readonly locale!: AutocompleteLocale;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private menuId = AutocompleteIds.menu + getRandomID();\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /** Программно устанавливает фокус на автокомплит.\n * @public\n * @example\n * <Autocomplete ref={autocompleteRef} />\n * <button onClick={() => autocompleteRef.current?.focus()}>Focus</button>\n */\n public focus(): void {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /** Программно снимает фокус с автокомплита.\n * @public\n * @example\n * <Autocomplete ref={autocompleteRef} />\n * <button onClick={() => autocompleteRef.current?.blur()}>Blur</button>\n */\n public blur(): void {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getAutocompleteTheme(theme);\n return (\n <ThemeContext.Provider value={this.theme}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>): React.JSX.Element => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n menuPos,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n type,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n autoComplete: 'off',\n 'aria-controls': this.menuId,\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span\n data-tid={AutocompleteDataTids.root}\n className={this.cx(this.styles.root(this.theme), {\n [this.styles.noPortal()]: disablePortal,\n })}\n style={{ width }}\n ref={this.refRootSpan}\n >\n {this.getInput(inputProps)}\n\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderHints(): React.ReactNode {\n const items = this.state.items;\n\n if (!this.props.value) {\n return <MenuMessage>{this.locale.enterValue}</MenuMessage>;\n }\n\n if (items?.length === 0 && this.props.value) {\n return <MenuMessage>{this.locale.notFound}</MenuMessage>;\n }\n\n if (isNullable(items) && this.props.value) {\n return <MenuMessage>{this.locale.updateValue}</MenuMessage>;\n }\n\n return null;\n }\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const { menuPos, menuAlign, menuMaxHeight, hasShadow, menuWidth, width, preventWindowScroll, disablePortal } =\n this.getProps();\n const calculatedMenuWidth = menuWidth ? '100%' : width && getDOMRect(this.rootSpan).width;\n const menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow: false,\n hasMargin: false,\n width: calculatedMenuWidth,\n preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <Popup\n opened\n hasShadow={hasShadow}\n id={this.menuId}\n priority={ZIndex.priorities.PopupMenu}\n data-tid={AutocompleteDataTids.menu}\n anchorElement={this.getAnchor()}\n disablePortal={disablePortal}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n positions={getMenuPositions(menuPos, menuAlign)}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </Popup>\n );\n }\n\n private getInput = (inputProps: InputProps) => {\n return this.props.mask ? (\n <MaskedInput\n {...inputProps}\n type={getSafeMaskInputType(this.props.type)}\n mask={this.props.mask}\n maskChar={this.props.maskChar}\n />\n ) : (\n <Input {...inputProps} />\n );\n };\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: this.locale.enterValue,\n type: this.props.type,\n inputMode: this.props.inputMode,\n 'aria-label': this.props['aria-label'],\n 'aria-controls': this.menuId,\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n id={this.menuId}\n headerChildComponent={this.getInput(inputProps)}\n caption={this.props.mobileMenuHeaderText}\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n {this.renderHints()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile} size={this.size}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = () => {\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n\n // NOTE: этот таймаут - костыль. Проблема в старом ReactInputMask, он сеттит пустой value при потере фокуса.\n // Можно будет убрать после полного перехода на MaskedInput\n setTimeout(() => {\n this.blur();\n }, 0);\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n this.requestId += 1;\n const expectingId = this.requestId;\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"]}
1
+ {"version":3,"file":"Autocomplete.js","sourceRoot":"","sources":["../../../components/Autocomplete/Autocomplete.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { AriaAttributes, KeyboardEvent } from 'react';\nimport React from 'react';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { Menu } from '../../internal/Menu/index.js';\nimport { MenuMessage } from '../../internal/MenuMessage/index.js';\nimport { MobilePopup } from '../../internal/MobilePopup/index.js';\nimport { Popup } from '../../internal/Popup/index.js';\nimport { RenderLayer } from '../../internal/RenderLayer/index.js';\nimport { ZIndex } from '../../internal/ZIndex/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers.js';\nimport { getMenuPositions } from '../../lib/getMenuPositions.js';\nimport { locale } from '../../lib/locale/decorators.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { getRootNode, rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { getRandomID, isNullable } from '../../lib/utils.js';\nimport type { Nullable, Override } from '../../typings/utility-types.js';\nimport { Input } from '../Input/index.js';\nimport type { InputProps } from '../Input/index.js';\nimport { MaskedInput, type MaskedProps, getSafeMaskInputType } from '../MaskedInput/index.js';\nimport { MenuItem } from '../MenuItem/index.js';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator.js';\nimport { getStyles } from './Autocomplete.styles.js';\nimport { getAutocompleteTheme } from './getAutocompleteTheme.js';\nimport type { AutocompleteLocale } from './locale/index.js';\nimport { AutocompleteLocaleHelper } from './locale/index.js';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n const lowerCasedPattern = pattern.toLowerCase();\n const itemsMatchingPattern = items.filter((item) => {\n return item.toLowerCase().includes(lowerCasedPattern);\n });\n\n return Promise.resolve(itemsMatchingPattern);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends\n CommonProps,\n Pick<AriaAttributes, 'aria-label'>,\n Pick<Partial<MaskedProps>, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n Override<\n Omit<InputProps, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n {\n /** Отрисовывает элементы результата поиска. */\n renderItem?: (item: string) => React.ReactNode;\n\n /** Задаёт функцию поиска элементов, которая должна возвращать Promise с массивом значений. */\n source?: string[] | ((patter: string) => Promise<string[]>);\n\n /** По умолчанию выпадающий список рендерится через [паттерн Portal](https://react.dev/reference/react-dom/createPortal). Проп отключает использование Portal и список рендерится как обычный блок с абсолютным позиционированием внутри компонента. */\n disablePortal?: boolean;\n\n /** Определяет, нужно ли показывать тень у выпадающего списка. */\n hasShadow?: boolean;\n\n /** Выравнивание выпадающего списка. */\n menuAlign?: 'left' | 'right';\n\n /** Максимальная высота выпадающего списка. */\n menuMaxHeight?: number | string;\n\n /** Ширина выпадающего списка. */\n menuWidth?: number | string;\n\n /** Отключает скролл окна, когда выпадающий список раскрыт. */\n preventWindowScroll?: boolean;\n\n /** Событие изменения `value`. */\n onValueChange: (value: string) => void;\n\n /** Событие потери автокомплитом фокуса. */\n onBlur?: () => void;\n\n /** Размер автокомплита. */\n size?: SizeProp;\n\n /** Значение автокомплита. */\n value: string;\n\n /** Текст заголовка выпадающего списка в мобильной версии. */\n mobileMenuHeaderText?: string;\n }\n > {\n /** Расположение выпадающего списка — над или под полем. */\n menuPos?: 'top' | 'bottom';\n}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\nexport const AutocompleteDataTids = {\n root: 'Autocomplete__root',\n menu: 'Autocomplete__menu',\n} as const;\n\nexport const AutocompleteIds = {\n menu: AutocompleteDataTids.menu,\n} as const;\n\ntype DefaultProps = Required<\n Pick<AutocompleteProps, 'renderItem' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'preventWindowScroll'>\n>;\n\n/**\n * Автокомплит — поле ввода с выпадающим списком подсказок. Подсказки отображаются пользователю, когда он начинает вводить значение в поле. */\n@withRenderEnvironment\n@responsiveLayout\n@rootNode\n@locale('Autocomplete', AutocompleteLocaleHelper)\n@withSize\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n public static displayName = 'Autocomplete';\n\n public static defaultProps: DefaultProps = {\n renderItem,\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\n private readonly locale!: AutocompleteLocale;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private menuId = AutocompleteIds.menu + getRandomID();\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /** Программно устанавливает фокус на автокомплит.\n * @public\n * @example\n * <Autocomplete ref={autocompleteRef} />\n * <button onClick={() => autocompleteRef.current?.focus()}>Focus</button>\n */\n public focus(): void {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /** Программно снимает фокус с автокомплита.\n * @public\n * @example\n * <Autocomplete ref={autocompleteRef} />\n * <button onClick={() => autocompleteRef.current?.blur()}>Blur</button>\n */\n public blur(): void {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render(): React.JSX.Element {\n this.styles = getStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getAutocompleteTheme(theme);\n return (\n <ThemeContext.Provider value={this.theme}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>): React.JSX.Element => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n menuPos,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n type,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n autoComplete: 'off',\n 'aria-controls': this.menuId,\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span\n data-tid={AutocompleteDataTids.root}\n className={this.cx(this.styles.root(this.theme), {\n [this.styles.noPortal()]: disablePortal,\n })}\n style={{ width }}\n ref={this.refRootSpan}\n >\n {this.getInput(inputProps)}\n\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderHints(): React.ReactNode {\n const items = this.state.items;\n const themeDependantProps = isThemeGTE(this.theme, '6.1') ? { size: this.size } : {};\n\n if (!this.props.value) {\n return <MenuMessage {...themeDependantProps}>{this.locale.enterValue}</MenuMessage>;\n }\n\n if (items?.length === 0 && this.props.value) {\n return <MenuMessage {...themeDependantProps}>{this.locale.notFound}</MenuMessage>;\n }\n\n if (isNullable(items) && this.props.value) {\n return <MenuMessage {...themeDependantProps}>{this.locale.updateValue}</MenuMessage>;\n }\n\n return null;\n }\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const { menuPos, menuAlign, menuMaxHeight, hasShadow, menuWidth, width, preventWindowScroll, disablePortal } =\n this.getProps();\n const calculatedMenuWidth = menuWidth ? '100%' : width && getDOMRect(this.rootSpan).width;\n const menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow: false,\n hasMargin: false,\n width: calculatedMenuWidth,\n preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <Popup\n opened\n hasShadow={hasShadow}\n id={this.menuId}\n priority={ZIndex.priorities.PopupMenu}\n data-tid={AutocompleteDataTids.menu}\n anchorElement={this.getAnchor()}\n disablePortal={disablePortal}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n positions={getMenuPositions(menuPos, menuAlign)}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </Popup>\n );\n }\n\n private getInput = (inputProps: InputProps) => {\n return this.props.mask ? (\n <MaskedInput\n {...inputProps}\n type={getSafeMaskInputType(this.props.type)}\n mask={this.props.mask}\n maskChar={this.props.maskChar}\n />\n ) : (\n <Input {...inputProps} />\n );\n };\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: this.locale.enterValue,\n type: this.props.type,\n inputMode: this.props.inputMode,\n 'aria-label': this.props['aria-label'],\n 'aria-controls': this.menuId,\n size: isThemeGTE(this.theme, '6.1') ? this.size : undefined,\n };\n\n const items = this.state.items;\n\n const themeDependantProps = isThemeGTE(this.theme, '6.1')\n ? {\n footerChildComponent: this.getInput(inputProps),\n size: this.size,\n }\n : {\n headerChildComponent: this.getInput(inputProps),\n };\n\n return (\n <MobilePopup\n id={this.menuId}\n {...themeDependantProps}\n caption={this.props.mobileMenuHeaderText}\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n {this.renderHints()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile} size={this.size}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = () => {\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n\n // NOTE: этот таймаут - костыль. Проблема в старом ReactInputMask, он сеттит пустой value при потере фокуса.\n // Можно будет убрать после полного перехода на MaskedInput\n setTimeout(() => {\n this.blur();\n }, 0);\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n this.requestId += 1;\n const expectingId = this.requestId;\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"]}
@@ -102,7 +102,7 @@ export declare const ButtonDataTids: {
102
102
  readonly root: "Button__root";
103
103
  readonly spinner: "Button__spinner";
104
104
  };
105
- type DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'type' | 'component'>>;
105
+ type DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'type' | 'component'>>;
106
106
  /** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */
107
107
  export declare class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<ButtonProps<C>, ButtonState> {
108
108
  static __KONTUR_REACT_UI__: string;
@@ -61,6 +61,7 @@ import { rootNode } from '../../lib/rootNode/index.js';
61
61
  import { withSize } from '../../lib/size/SizeDecorator.js';
62
62
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
63
63
  import { ThemeFactory } from '../../lib/theming/ThemeFactory.js';
64
+ import { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';
64
65
  import { isKonturIcon } from '../../lib/utils.js';
65
66
  import { Link } from '../Link/index.js';
66
67
  import { getActiveStyles, getStyles, globalClasses } from './Button.styles.js';
@@ -91,15 +92,15 @@ var Button = /** @class */ (function (_super) {
91
92
  _this.renderMain = function (props) {
92
93
  var _a, _b, _c, _d, _e;
93
94
  var corners = props.corners, active = props.active, disabled = props.disabled, borderless = props.borderless, checked = props.checked, error = props.error, warning = props.warning, loading = props.loading, narrow = props.narrow, arrow = props.arrow, icon = props.icon, rightIcon = props.rightIcon, _noPadding = props._noPadding, _noRightPadding = props._noRightPadding, visuallyFocused = props.visuallyFocused, align = props.align, disableFocus = props.disableFocus, width = props.width, tabIndex = props.tabIndex, _component = props.component, useProp = props.use, theme = props.theme, rest = __rest(props, ["corners", "active", "disabled", "borderless", "checked", "error", "warning", "loading", "narrow", "arrow", "icon", "rightIcon", "_noPadding", "_noRightPadding", "visuallyFocused", "align", "disableFocus", "width", "tabIndex", "component", "use", "theme"]);
94
- var _f = _this.getProps(), use = _f.use, component = _f.component, children = _f.children, ariaDisabled = _f["aria-disabled"];
95
+ var _f = _this.getProps(), _g = _f.use, use = _g === void 0 ? isThemeGTE(_this.theme, '6.1') ? 'outline' : 'default' : _g, component = _f.component, children = _f.children, ariaDisabled = _f["aria-disabled"];
95
96
  var sizeClass = _this.getSizeClassName();
96
97
  var isFocused = _this.state.focusedByTab || visuallyFocused;
97
98
  var isLink = use === 'link';
98
- var _g = getButtonArrow(__assign(__assign({}, _this.props), { isFocused: Boolean(isFocused), size: _this.size }), _this.theme, _this.styles, _this.cx), rootClassNameWithArrow = _g[0], arrowNode = _g[1];
99
+ var _h = getButtonArrow(__assign(__assign({}, _this.props), { isFocused: Boolean(isFocused), size: _this.size }), _this.theme, _this.styles, _this.cx), rootClassNameWithArrow = _h[0], arrowNode = _h[1];
99
100
  var isUseStateWithoutOutlineInDisabledState = !['default', 'backless', 'outline'].includes(use);
100
101
  var isAriaDisabled = ariaDisabled === true || ariaDisabled === 'true';
101
102
  var nonInteractive = disabled || loading;
102
- var _h = _this.getUseStyle(), style = _h.style, styleActive = _h.styleActive;
103
+ var _j = _this.getUseStyle(), style = _j.style, styleActive = _j.styleActive;
103
104
  var rootClassName = _this.cx.apply(_this, __spreadArray([_this.styles.root(_this.theme),
104
105
  style,
105
106
  sizeClass,
@@ -228,6 +229,7 @@ var Button = /** @class */ (function (_super) {
228
229
  warning(this.props.use !== 'link', '[Button]: `use="link"` has been deprecated. Please, use `<Link component="button" />` instead.');
229
230
  warning(this.props.use !== 'primary', '[Button]: `use="primary"` has been deprecated. Please, use `use="accent"` instead.');
230
231
  warning(this.props.use !== 'backless', '[Button]: `use="backless"` has been deprecated. Please, use `use="outline"` instead.');
232
+ warning(this.props.use !== 'default', '[Button]: `use="default"` has been deprecated. Please, use `use="outline"` or `use="fill"` instead.');
231
233
  };
232
234
  Button.getDerivedStateFromProps = function (props) {
233
235
  if (props.loading || props.disabled) {
@@ -362,7 +364,6 @@ var Button = /** @class */ (function (_super) {
362
364
  Button.displayName = 'Button';
363
365
  Button.__BUTTON__ = true;
364
366
  Button.defaultProps = {
365
- use: 'default',
366
367
  // By default, the type attribute is 'submit'. IE8 will fire a click event
367
368
  // on this button if somewhere on the page user presses Enter while some
368
369
  // input is focused. So we set type to 'button' by default.
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../components/Button/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { HTMLAttributes, JSX } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { IconProps } from '../../internal/icons2022/BaseIcon.js';\nimport { isSafari } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link.js';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isKonturIcon } from '../../lib/utils.js';\nimport { Link } from '../Link/index.js';\nimport { getActiveStyles, getStyles, globalClasses } from './Button.styles.js';\nimport { useButtonArrow as getButtonArrow } from './ButtonArrow.js';\nimport { ButtonIcon, getButtonIconSizes } from './ButtonIcon.js';\nimport type { ButtonIconProps } from './ButtonIcon.js';\nimport { getInnerLinkTheme } from './getInnerLinkTheme.js';\nimport { LoadingButtonIcon } from './LoadingButtonIcon.js';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse =\n | 'default'\n | 'outline'\n | 'fill'\n | 'text'\n | 'accent'\n | 'danger'\n | 'success'\n | 'pay'\n /** @deprecated Используйте компонент <Link component=\"button\" /> */\n | 'link'\n /** @deprecated Используйте use=\"outline\" */\n | 'backless'\n /** @deprecated Используйте use=\"accent\" */\n | 'primary';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Выравнивание текста в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Преобразует обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на кнопке после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки.\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0.\n *\n * Альтернативный вариант использования — use=\"fill\" или переменную темы `btnBorderWidth` */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Блокирует кнопку и перекрашивает в серый. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Ошибка\".\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0. */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку.\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0.\n *\n * Альтернативный вариант использования — через переменные темы `btnPaddingXSmall`, `btnPaddingXMedium`, `btnPaddingXLarge` */\n narrow?: boolean;\n\n /** Размер кнопки. */\n size?: SizeProp;\n\n /** HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** HTML-атрибут `title`. */\n title?: string;\n\n /** Стиль кнопки.\n * - accent — кнопка основного действия\n * - outline — кнопка второстепенного действия с границами без фона\n * - fill — кнопка второстепенного действия с фоном без границ\n * - text — кнопка второстепенного действия без фона и обводки\n * - danger — кнопка деструктивного действия\n * - success — кнопка позитивного действия\n * - pay — кнопка, связанная с оплатой\n *\n * ⚠️ Deprecated-стили, будут удалены в 7.0:\n * - use=\"primary\" → use=\"accent\"\n * - use=\"backless\" → use=\"outline\"\n * - use=\"link\" → `<Link component=\"button\">`\n * - use=\"default\" → use=\"outline\" или use=\"fill\"\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Предупреждение\".\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0. */\n warning?: boolean;\n\n /** Ширина кнопки. */\n width?: number | string;\n\n /** Объект с переменными темы. */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n/** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */\n@withRenderEnvironment\n@withSize\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n // By default, the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private activeStyles!: ReturnType<typeof getActiveStyles>;\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n if (this.props.autoFocus) {\n this.keyListener.isTabPressed = true;\n this.focus();\n }\n warning(\n this.props.use !== 'link',\n '[Button]: `use=\"link\"` has been deprecated. Please, use `<Link component=\"button\" />` instead.',\n );\n warning(\n this.props.use !== 'primary',\n '[Button]: `use=\"primary\"` has been deprecated. Please, use `use=\"accent\"` instead.',\n );\n warning(\n this.props.use !== 'backless',\n '[Button]: `use=\"backless\"` has been deprecated. Please, use `use=\"outline\"` instead.',\n );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /** Программно устанавливает фокус на кнопке. Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus(): void {\n this.node?.focus();\n }\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur(): void {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n this.activeStyles = getActiveStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n theme,\n ...rest\n } = props;\n const { use, component, children, 'aria-disabled': ariaDisabled } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = getButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused), size: this.size },\n this.theme,\n this.styles,\n this.cx,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless', 'outline'].includes(use);\n\n const isAriaDisabled = ariaDisabled === true || ariaDisabled === 'true';\n const nonInteractive = disabled || loading;\n const { style, styleActive } = this.getUseStyle();\n\n const rootClassName = this.cx(\n this.styles.root(this.theme),\n style,\n sizeClass,\n narrow && this.styles.narrow(),\n _noPadding && this.styles.noPadding(),\n _noRightPadding && this.styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(nonInteractive || isAriaDisabled\n ? [\n this.styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && this.styles.disabledWithoutOutline(this.theme),\n checked && this.styles.checkedDisabled(this.theme),\n borderless && this.styles.borderless(),\n (use === 'backless' || use === 'outline') && this.styles.backlessDisabled(this.theme),\n use === 'text' && this.styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && styleActive,\n isFocused && this.styles.focus(this.theme),\n checked && this.styles.checked(this.theme),\n checked && isFocused && this.styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && this.styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: nonInteractive, tabIndex }),\n };\n\n const wrapProps = {\n className: this.cx(globalClasses.root, {\n [this.styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !nonInteractive) {\n outlineNode = (\n <div\n className={this.cx(this.styles.outlineDefault(), {\n [this.styles.outlineWarning(this.theme)]: warning,\n [this.styles.outlineError(this.theme)]: error,\n [this.styles.outlineLink()]: isLink,\n [this.styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [this.styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = this.cx({\n [this.styles.root(this.theme)]: true,\n [sizeClass]: true,\n [this.styles.link(this.theme)]: true,\n [this.styles.linkLineHeight()]: !isSafari,\n [this.styles.linkLineHeightSafariFallback()]: isSafari,\n [this.styles.linkFocus(this.theme)]: isFocused,\n [this.styles.linkDisabled(this.theme)]: nonInteractive,\n });\n Object.assign(wrapProps, {\n className: this.cx(this.styles.wrap(this.theme), this.styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={this.size} />;\n\n let captionNode = (\n <div\n className={this.cx(this.styles.caption(), globalClasses.caption, {\n [this.styles.captionLink()]: isLink,\n [this.styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={this.cx(globalClasses.text, {\n [this.styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps} {...buttonOnlyProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon?.props && isKonturIcon(icon)) {\n const iconProps = icon.props as IconProps;\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: iconProps.size ?? sizes[this.size] } as IconProps);\n }\n\n return icon;\n }\n\n private getUseStyle() {\n let style;\n let styleActive;\n const { styles, activeStyles } = this;\n\n switch (this.props.use) {\n case 'primary':\n case 'accent':\n style = styles.accent(this.theme);\n styleActive = activeStyles.accent(this.theme);\n break;\n case 'backless':\n case 'outline':\n style = styles.outline(this.theme);\n styleActive = activeStyles.outline(this.theme);\n break;\n case 'fill':\n style = styles.fill(this.theme);\n styleActive = activeStyles.fill(this.theme);\n break;\n case 'success':\n style = styles.success(this.theme);\n styleActive = activeStyles.success(this.theme);\n break;\n case 'danger':\n style = styles.danger(this.theme);\n styleActive = activeStyles.danger(this.theme);\n break;\n case 'pay':\n style = styles.pay(this.theme);\n styleActive = activeStyles.pay(this.theme);\n break;\n case 'text':\n style = styles.text(this.theme);\n styleActive = activeStyles.text(this.theme);\n break;\n default:\n style = styles.default(this.theme);\n styleActive = activeStyles.default(this.theme);\n }\n\n return { style, styleActive };\n }\n\n private getSizeClassName() {\n const { icon, rightIcon, children } = this.getProps();\n\n switch (this.size) {\n case 'large': {\n const commonClasses = {\n [this.styles.sizeLargeWithIcon(this.theme)]: !!icon,\n [this.styles.sizeLargeWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeLargeWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeLarge(this.theme), commonClasses);\n }\n case 'medium': {\n const commonClasses = {\n [this.styles.sizeMediumWithIcon(this.theme)]: !!icon,\n [this.styles.sizeMediumWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeMediumWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeMedium(this.theme), commonClasses);\n }\n case 'small':\n default: {\n const commonClasses = {\n [this.styles.sizeSmallWithIcon(this.theme)]: !!icon,\n [this.styles.sizeSmallWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeSmallWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeSmall(this.theme), commonClasses);\n }\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.wrapLarge(this.theme);\n case 'medium':\n return this.styles.wrapMedium(this.theme);\n case 'small':\n default:\n return this.styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n"]}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../../components/Button/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport type { HTMLAttributes, JSX } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { IconProps } from '../../internal/icons2022/BaseIcon.js';\nimport { isSafari } from '../../lib/client.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { KeyListener } from '../../lib/events/keyListener.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode/index.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { withSize } from '../../lib/size/SizeDecorator.js';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link.js';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { isKonturIcon } from '../../lib/utils.js';\nimport { Link } from '../Link/index.js';\nimport { getActiveStyles, getStyles, globalClasses } from './Button.styles.js';\nimport { useButtonArrow as getButtonArrow } from './ButtonArrow.js';\nimport { ButtonIcon, getButtonIconSizes } from './ButtonIcon.js';\nimport type { ButtonIconProps } from './ButtonIcon.js';\nimport { getInnerLinkTheme } from './getInnerLinkTheme.js';\nimport { LoadingButtonIcon } from './LoadingButtonIcon.js';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse =\n | 'default'\n | 'outline'\n | 'fill'\n | 'text'\n | 'accent'\n | 'danger'\n | 'success'\n | 'pay'\n /** @deprecated Используйте компонент <Link component=\"button\" /> */\n | 'link'\n /** @deprecated Используйте use=\"outline\" */\n | 'backless'\n /** @deprecated Используйте use=\"accent\" */\n | 'primary';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Выравнивание текста в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Преобразует обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на кнопке после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки.\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0.\n *\n * Альтернативный вариант использования — use=\"fill\" или переменную темы `btnBorderWidth` */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Блокирует кнопку и перекрашивает в серый. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Ошибка\".\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0. */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку.\n *\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0.\n *\n * Альтернативный вариант использования — через переменные темы `btnPaddingXSmall`, `btnPaddingXMedium`, `btnPaddingXLarge` */\n narrow?: boolean;\n\n /** Размер кнопки. */\n size?: SizeProp;\n\n /** HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** HTML-атрибут `title`. */\n title?: string;\n\n /** Стиль кнопки.\n * - accent — кнопка основного действия\n * - outline — кнопка второстепенного действия с границами без фона\n * - fill — кнопка второстепенного действия с фоном без границ\n * - text — кнопка второстепенного действия без фона и обводки\n * - danger — кнопка деструктивного действия\n * - success — кнопка позитивного действия\n * - pay — кнопка, связанная с оплатой\n *\n * ⚠️ Deprecated-стили, будут удалены в 7.0:\n * - use=\"primary\" → use=\"accent\"\n * - use=\"backless\" → use=\"outline\"\n * - use=\"link\" → `<Link component=\"button\">`\n * - use=\"default\" → use=\"outline\" или use=\"fill\"\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Предупреждение\".\n * @deprecated Состояние не соответствует Контур.Гайдам, проп будет удален в 7.0. */\n warning?: boolean;\n\n /** Ширина кнопки. */\n width?: number | string;\n\n /** Объект с переменными темы. */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n/** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */\n@withRenderEnvironment\n@withSize\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n // By default, the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private activeStyles!: ReturnType<typeof getActiveStyles>;\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private keyListener!: KeyListener;\n\n public componentDidMount() {\n this.keyListener = new KeyListener(this.globalObject);\n if (this.props.autoFocus) {\n this.keyListener.isTabPressed = true;\n this.focus();\n }\n warning(\n this.props.use !== 'link',\n '[Button]: `use=\"link\"` has been deprecated. Please, use `<Link component=\"button\" />` instead.',\n );\n warning(\n this.props.use !== 'primary',\n '[Button]: `use=\"primary\"` has been deprecated. Please, use `use=\"accent\"` instead.',\n );\n warning(\n this.props.use !== 'backless',\n '[Button]: `use=\"backless\"` has been deprecated. Please, use `use=\"outline\"` instead.',\n );\n warning(\n this.props.use !== 'default',\n '[Button]: `use=\"default\"` has been deprecated. Please, use `use=\"outline\"` or `use=\"fill\"` instead.',\n );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /** Программно устанавливает фокус на кнопке. Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus(): void {\n this.node?.focus();\n }\n\n /** Программно снимает фокус с кнопки.\n * @public\n */\n public blur(): void {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n this.styles = getStyles(this.emotion);\n this.activeStyles = getActiveStyles(this.emotion);\n\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n theme,\n ...rest\n } = props;\n const {\n use = isThemeGTE(this.theme, '6.1') ? 'outline' : 'default',\n component,\n children,\n 'aria-disabled': ariaDisabled,\n } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = getButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused), size: this.size },\n this.theme,\n this.styles,\n this.cx,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless', 'outline'].includes(use);\n\n const isAriaDisabled = ariaDisabled === true || ariaDisabled === 'true';\n const nonInteractive = disabled || loading;\n const { style, styleActive } = this.getUseStyle();\n\n const rootClassName = this.cx(\n this.styles.root(this.theme),\n style,\n sizeClass,\n narrow && this.styles.narrow(),\n _noPadding && this.styles.noPadding(),\n _noRightPadding && this.styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(nonInteractive || isAriaDisabled\n ? [\n this.styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && this.styles.disabledWithoutOutline(this.theme),\n checked && this.styles.checkedDisabled(this.theme),\n borderless && this.styles.borderless(),\n (use === 'backless' || use === 'outline') && this.styles.backlessDisabled(this.theme),\n use === 'text' && this.styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && styleActive,\n isFocused && this.styles.focus(this.theme),\n checked && this.styles.checked(this.theme),\n checked && isFocused && this.styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && this.styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: nonInteractive, tabIndex }),\n };\n\n const wrapProps = {\n className: this.cx(globalClasses.root, {\n [this.styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !nonInteractive) {\n outlineNode = (\n <div\n className={this.cx(this.styles.outlineDefault(), {\n [this.styles.outlineWarning(this.theme)]: warning,\n [this.styles.outlineError(this.theme)]: error,\n [this.styles.outlineLink()]: isLink,\n [this.styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [this.styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = this.cx({\n [this.styles.root(this.theme)]: true,\n [sizeClass]: true,\n [this.styles.link(this.theme)]: true,\n [this.styles.linkLineHeight()]: !isSafari,\n [this.styles.linkLineHeightSafariFallback()]: isSafari,\n [this.styles.linkFocus(this.theme)]: isFocused,\n [this.styles.linkDisabled(this.theme)]: nonInteractive,\n });\n Object.assign(wrapProps, {\n className: this.cx(this.styles.wrap(this.theme), this.styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={this.size} />;\n\n let captionNode = (\n <div\n className={this.cx(this.styles.caption(), globalClasses.caption, {\n [this.styles.captionLink()]: isLink,\n [this.styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={this.cx(globalClasses.text, {\n [this.styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps} {...buttonOnlyProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon?.props && isKonturIcon(icon)) {\n const iconProps = icon.props as IconProps;\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: iconProps.size ?? sizes[this.size] } as IconProps);\n }\n\n return icon;\n }\n\n private getUseStyle() {\n let style;\n let styleActive;\n const { styles, activeStyles } = this;\n\n switch (this.props.use) {\n case 'primary':\n case 'accent':\n style = styles.accent(this.theme);\n styleActive = activeStyles.accent(this.theme);\n break;\n case 'backless':\n case 'outline':\n style = styles.outline(this.theme);\n styleActive = activeStyles.outline(this.theme);\n break;\n case 'fill':\n style = styles.fill(this.theme);\n styleActive = activeStyles.fill(this.theme);\n break;\n case 'success':\n style = styles.success(this.theme);\n styleActive = activeStyles.success(this.theme);\n break;\n case 'danger':\n style = styles.danger(this.theme);\n styleActive = activeStyles.danger(this.theme);\n break;\n case 'pay':\n style = styles.pay(this.theme);\n styleActive = activeStyles.pay(this.theme);\n break;\n case 'text':\n style = styles.text(this.theme);\n styleActive = activeStyles.text(this.theme);\n break;\n default:\n style = styles.default(this.theme);\n styleActive = activeStyles.default(this.theme);\n }\n\n return { style, styleActive };\n }\n\n private getSizeClassName() {\n const { icon, rightIcon, children } = this.getProps();\n\n switch (this.size) {\n case 'large': {\n const commonClasses = {\n [this.styles.sizeLargeWithIcon(this.theme)]: !!icon,\n [this.styles.sizeLargeWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeLargeWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeLarge(this.theme), commonClasses);\n }\n case 'medium': {\n const commonClasses = {\n [this.styles.sizeMediumWithIcon(this.theme)]: !!icon,\n [this.styles.sizeMediumWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeMediumWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeMedium(this.theme), commonClasses);\n }\n case 'small':\n default: {\n const commonClasses = {\n [this.styles.sizeSmallWithIcon(this.theme)]: !!icon,\n [this.styles.sizeSmallWithRightIcon(this.theme)]: !!rightIcon,\n [this.styles.sizeSmallWithIconWithoutText(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return this.cx(this.styles.sizeSmall(this.theme), commonClasses);\n }\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.wrapLarge(this.theme);\n case 'medium':\n return this.styles.wrapMedium(this.theme);\n case 'small':\n default:\n return this.styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n this.globalObject.requestAnimationFrame?.(() => {\n if (this.keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n"]}
@@ -28,6 +28,7 @@ import { LocaleContext } from '../../lib/locale/index.js';
28
28
  import { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';
29
29
  import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
30
30
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
31
+ import { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';
31
32
  import { DatePickerLocaleHelper } from '../DatePicker/locale/index.js';
32
33
  import { CalendarDataTids } from './Calendar.js';
33
34
  import { getStyles } from './DayCellView.styles.js';
@@ -42,6 +43,7 @@ export var CalendarDay = memo(forwardRefAndName('CalendarDay', function Calendar
42
43
  var theme = useContext(ThemeContext);
43
44
  var cx = useEmotion().cx;
44
45
  var styles = useStyles(getStyles);
46
+ var themeGTE6_1 = isThemeGTE(theme, '6.1');
45
47
  var langCode = useContext(LocaleContext).langCode;
46
48
  var internalDate = new InternalDate({ langCode: langCode, value: date });
47
49
  var locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);
@@ -56,6 +58,7 @@ export var CalendarDay = memo(forwardRefAndName('CalendarDay', function Calendar
56
58
  _b[styles.day(theme)] = true,
57
59
  _b[styles.weekend(theme)] = isWeekend,
58
60
  _b[styles.selected(theme)] = isSelected,
61
+ _b[styles.selected6_1(theme)] = isSelected && themeGTE6_1,
59
62
  _b), className) }, getVisualStateDataAttributes({ selected: isSelected }), rest),
60
63
  React.createElement("span", { className: cx((_c = {}, _c[styles.todayCaption(theme)] = isToday, _c)) }, caption)));
61
64
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarDay.js","sourceRoot":"","sources":["../../../components/Calendar/CalendarDay.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { memo, useCallback, useContext } from 'react';\nimport type { PropsWithChildren } from 'react';\n\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { LocaleContext } from '../../lib/locale/index.js';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale/index.js';\nimport { CalendarDataTids } from './Calendar.js';\nimport { getStyles } from './DayCellView.styles.js';\n\nexport interface CalendarDayProps extends React.HTMLAttributes<HTMLButtonElement> {\n /** Устанавливает, является ли день текущим. */\n isToday?: boolean;\n\n /** Устанавливает, является ли день выбранным. */\n isSelected?: boolean;\n\n /** Устанавливает, является ли день недоступным. */\n isDisabled?: boolean;\n\n /** Устанавливает, является ли день выходным. */\n isWeekend?: boolean;\n\n /** Задаёт день. */\n date: string;\n\n /** Событие нажатия на день. Необходима для внутренней работы [календаря](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_date-components-calendar--docs). Не предназначена для переопределения. Вместо этого, следует использовать стандартный `onClick`.\n * @internal @ignore\n */\n onDayClick: () => void;\n}\n\n/**\n * Компонент дня из [блока календаря](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_date-components-calendar--docs).\n *\n * @visibleName Calendar.Day\n */\nexport const CalendarDay = memo(\n forwardRefAndName(\n 'CalendarDay',\n function CalendarDay(\n {\n isToday,\n isSelected,\n isDisabled,\n isWeekend,\n date,\n onDayClick,\n onClick,\n children,\n className,\n ...rest\n }: PropsWithChildren<CalendarDayProps>,\n ref: React.Ref<HTMLButtonElement>,\n ) {\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const { langCode } = useContext(LocaleContext);\n const internalDate = new InternalDate({ langCode, value: date });\n\n const locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);\n const ariaLabel = `${locale.dayCellChooseDateAriaLabel}: ${internalDate.toA11YFormat()}`;\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n (e) => {\n onDayClick();\n onClick?.(e);\n },\n [onDayClick, onClick],\n );\n\n const { date: day } = internalDate.getComponentsLikeNumber();\n const caption = children ?? day;\n\n return (\n <button\n ref={ref}\n data-tid={CalendarDataTids.dayCell}\n aria-label={ariaLabel}\n tabIndex={-1}\n disabled={isDisabled}\n onClick={handleClick}\n className={cx(\n {\n [styles.day(theme)]: true,\n [styles.weekend(theme)]: isWeekend,\n [styles.selected(theme)]: isSelected,\n },\n className,\n )}\n {...getVisualStateDataAttributes({ selected: isSelected })}\n {...rest}\n >\n <span className={cx({ [styles.todayCaption(theme)]: isToday })}>{caption}</span>\n </button>\n );\n },\n ),\n);\n"]}
1
+ {"version":3,"file":"CalendarDay.js","sourceRoot":"","sources":["../../../components/Calendar/CalendarDay.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { memo, useCallback, useContext } from 'react';\nimport type { PropsWithChildren } from 'react';\n\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes.js';\nimport { InternalDate } from '../../lib/date/InternalDate.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { LocaleContext } from '../../lib/locale/index.js';\nimport { useLocaleForControl } from '../../lib/locale/useLocaleForControl.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers.js';\nimport { DatePickerLocaleHelper } from '../DatePicker/locale/index.js';\nimport { CalendarDataTids } from './Calendar.js';\nimport { getStyles } from './DayCellView.styles.js';\n\nexport interface CalendarDayProps extends React.HTMLAttributes<HTMLButtonElement> {\n /** Устанавливает, является ли день текущим. */\n isToday?: boolean;\n\n /** Устанавливает, является ли день выбранным. */\n isSelected?: boolean;\n\n /** Устанавливает, является ли день недоступным. */\n isDisabled?: boolean;\n\n /** Устанавливает, является ли день выходным. */\n isWeekend?: boolean;\n\n /** Задаёт день. */\n date: string;\n\n /** Событие нажатия на день. Необходима для внутренней работы [календаря](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_date-components-calendar--docs). Не предназначена для переопределения. Вместо этого, следует использовать стандартный `onClick`.\n * @internal @ignore\n */\n onDayClick: () => void;\n}\n\n/**\n * Компонент дня из [блока календаря](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_date-components-calendar--docs).\n *\n * @visibleName Calendar.Day\n */\nexport const CalendarDay = memo(\n forwardRefAndName(\n 'CalendarDay',\n function CalendarDay(\n {\n isToday,\n isSelected,\n isDisabled,\n isWeekend,\n date,\n onDayClick,\n onClick,\n children,\n className,\n ...rest\n }: PropsWithChildren<CalendarDayProps>,\n ref: React.Ref<HTMLButtonElement>,\n ) {\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n const themeGTE6_1 = isThemeGTE(theme, '6.1');\n\n const { langCode } = useContext(LocaleContext);\n const internalDate = new InternalDate({ langCode, value: date });\n\n const locale = useLocaleForControl('Calendar', DatePickerLocaleHelper);\n const ariaLabel = `${locale.dayCellChooseDateAriaLabel}: ${internalDate.toA11YFormat()}`;\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(\n (e) => {\n onDayClick();\n onClick?.(e);\n },\n [onDayClick, onClick],\n );\n\n const { date: day } = internalDate.getComponentsLikeNumber();\n const caption = children ?? day;\n\n return (\n <button\n ref={ref}\n data-tid={CalendarDataTids.dayCell}\n aria-label={ariaLabel}\n tabIndex={-1}\n disabled={isDisabled}\n onClick={handleClick}\n className={cx(\n {\n [styles.day(theme)]: true,\n [styles.weekend(theme)]: isWeekend,\n [styles.selected(theme)]: isSelected,\n [styles.selected6_1(theme)]: isSelected && themeGTE6_1,\n },\n className,\n )}\n {...getVisualStateDataAttributes({ selected: isSelected })}\n {...rest}\n >\n <span className={cx({ [styles.todayCaption(theme)]: isToday })}>{caption}</span>\n </button>\n );\n },\n ),\n);\n"]}
@@ -3,6 +3,7 @@ export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGet
3
3
  cell(t: Theme): string;
4
4
  day(t: Theme): string;
5
5
  selected(t: Theme): string;
6
+ selected6_1(t: Theme): string;
6
7
  weekend(t: Theme): string;
7
8
  todayCaption(t: Theme): string;
8
9
  }>;
@@ -16,13 +16,16 @@ export var getStyles = memoizeGetStyles(function (_a) {
16
16
  selected: function (t) {
17
17
  return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n color: ", ";\n "], ["\n background-color: ", ";\n color: ", ";\n "])), t.calendarCellSelectedBgColor, t.calendarCellSelectedFontColor);
18
18
  },
19
+ selected6_1: function (t) {
20
+ return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n @media (hover: hover) {\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n }\n "], ["\n @media (hover: hover) {\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n }\n "])), t.calendarCellSelectedBgColor, t.calendarCellSelectedFontColor);
21
+ },
19
22
  weekend: function (t) {
20
- return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), t.calendarCellWeekendColor);
23
+ return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), t.calendarCellWeekendColor);
21
24
  },
22
25
  todayCaption: function (t) {
23
- return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n padding-bottom: 2px;\n border-bottom: ", ";\n "], ["\n padding-bottom: 2px;\n border-bottom: ", ";\n "])), t.calendarCellTodayBorder);
26
+ return css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n padding-bottom: 2px;\n border-bottom: ", ";\n "], ["\n padding-bottom: 2px;\n border-bottom: ", ";\n "])), t.calendarCellTodayBorder);
24
27
  },
25
28
  });
26
29
  });
27
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
30
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
28
31
  //# sourceMappingURL=DayCellView.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DayCellView.styles.js","sourceRoot":"","sources":["../../../components/Calendar/DayCellView.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,uHAAA,oBACI,EAAmB,mBACrB,EAAoB,SAC/B,KAFa,CAAC,CAAC,iBAAiB,EACrB,CAAC,CAAC,kBAAkB,EAC9B;QACJ,CAAC;QACD,GAAG,YAAC,CAAQ;YACV,OAAO,GAAG,89BAAA,UACN,EAAa,kEAID,EAAgB,4DAEjB,EAAsB,2HAKpB,EAAwB,0BACtB,EAA0B,6YAiBnB,EAA0B,sBACrC,EAAwB,yLAU1B,EAA8B,kBAE1C,KA1CG,WAAW,EAAE,EAID,CAAC,CAAC,cAAc,EAEjB,CAAC,CAAC,oBAAoB,EAKpB,CAAC,CAAC,sBAAsB,EACtB,CAAC,CAAC,wBAAwB,EAiBnB,CAAC,CAAC,wBAAwB,EACrC,CAAC,CAAC,sBAAsB,EAU1B,CAAC,CAAC,4BAA4B,EAEzC;QACJ,CAAC;QAED,QAAQ,YAAC,CAAQ;YACf,OAAO,GAAG,8HAAA,4BACY,EAA6B,kBACxC,EAA+B,SACzC,KAFqB,CAAC,CAAC,2BAA2B,EACxC,CAAC,CAAC,6BAA6B,EACxC;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,+FAAA,iBACC,EAA0B,SACpC,KADU,CAAC,CAAC,wBAAwB,EACnC;QACJ,CAAC;QAED,YAAY,YAAC,CAAQ;YACnB,OAAO,GAAG,mIAAA,qDAES,EAAyB,SAC3C,KADkB,CAAC,CAAC,uBAAuB,EAC1C;QACJ,CAAC;KACF,CAAC;AAzE8D,CAyE9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { resetButton } from '../../lib/styles/Mixins.js';\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n cell(t: Theme) {\n return css`\n flex: 1 1 ${t.calendarCellWidth};\n height: ${t.calendarCellHeight};\n `;\n },\n day(t: Theme) {\n return css`\n ${resetButton()};\n width: 100%;\n height: 100%;\n\n background: ${t.calendarCellBg};\n border: 1px solid transparent;\n font-size: ${t.calendarCellFontSize};\n padding: 0;\n text-align: center;\n user-select: none;\n position: relative;\n line-height: ${t.calendarCellLineHeight};\n border-radius: ${t.calendarCellBorderRadius};\n transition:\n 0.15s ease background-color,\n 0.15s ease opacity;\n\n // Expand the clickable area\n &:before {\n content: '';\n position: absolute;\n left: -1px;\n top: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: ${t.calendarCellHoverBgColor};\n color: ${t.calendarCellHoverColor};\n cursor: pointer;\n }\n }\n\n &:disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n &:active:hover:enabled {\n color: ${t.calendarCellActiveHoverColor};\n }\n `;\n },\n\n selected(t: Theme) {\n return css`\n background-color: ${t.calendarCellSelectedBgColor};\n color: ${t.calendarCellSelectedFontColor};\n `;\n },\n\n weekend(t: Theme) {\n return css`\n color: ${t.calendarCellWeekendColor};\n `;\n },\n\n todayCaption(t: Theme) {\n return css`\n padding-bottom: 2px;\n border-bottom: ${t.calendarCellTodayBorder};\n `;\n },\n}));\n"]}
1
+ {"version":3,"file":"DayCellView.styles.js","sourceRoot":"","sources":["../../../components/Calendar/DayCellView.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAGhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,IAAI,YAAC,CAAQ;YACX,OAAO,GAAG,uHAAA,oBACI,EAAmB,mBACrB,EAAoB,SAC/B,KAFa,CAAC,CAAC,iBAAiB,EACrB,CAAC,CAAC,kBAAkB,EAC9B;QACJ,CAAC;QACD,GAAG,YAAC,CAAQ;YACV,OAAO,GAAG,89BAAA,UACN,EAAa,kEAID,EAAgB,4DAEjB,EAAsB,2HAKpB,EAAwB,0BACtB,EAA0B,6YAiBnB,EAA0B,sBACrC,EAAwB,yLAU1B,EAA8B,kBAE1C,KA1CG,WAAW,EAAE,EAID,CAAC,CAAC,cAAc,EAEjB,CAAC,CAAC,oBAAoB,EAKpB,CAAC,CAAC,sBAAsB,EACtB,CAAC,CAAC,wBAAwB,EAiBnB,CAAC,CAAC,wBAAwB,EACrC,CAAC,CAAC,sBAAsB,EAU1B,CAAC,CAAC,4BAA4B,EAEzC;QACJ,CAAC;QAED,QAAQ,YAAC,CAAQ;YACf,OAAO,GAAG,8HAAA,4BACY,EAA6B,kBACxC,EAA+B,SACzC,KAFqB,CAAC,CAAC,2BAA2B,EACxC,CAAC,CAAC,6BAA6B,EACxC;QACJ,CAAC;QAED,WAAW,YAAC,CAAQ;YAClB,OAAO,GAAG,4MAAA,kFAGgB,EAA6B,sBACxC,EAA+B,6BAG7C,KAJyB,CAAC,CAAC,2BAA2B,EACxC,CAAC,CAAC,6BAA6B,EAG5C;QACJ,CAAC;QAED,OAAO,YAAC,CAAQ;YACd,OAAO,GAAG,+FAAA,iBACC,EAA0B,SACpC,KADU,CAAC,CAAC,wBAAwB,EACnC;QACJ,CAAC;QAED,YAAY,YAAC,CAAQ;YACnB,OAAO,GAAG,mIAAA,qDAES,EAAyB,SAC3C,KADkB,CAAC,CAAC,uBAAuB,EAC1C;QACJ,CAAC;KACF,CAAC;AApF8D,CAoF9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { resetButton } from '../../lib/styles/Mixins.js';\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n cell(t: Theme) {\n return css`\n flex: 1 1 ${t.calendarCellWidth};\n height: ${t.calendarCellHeight};\n `;\n },\n day(t: Theme) {\n return css`\n ${resetButton()};\n width: 100%;\n height: 100%;\n\n background: ${t.calendarCellBg};\n border: 1px solid transparent;\n font-size: ${t.calendarCellFontSize};\n padding: 0;\n text-align: center;\n user-select: none;\n position: relative;\n line-height: ${t.calendarCellLineHeight};\n border-radius: ${t.calendarCellBorderRadius};\n transition:\n 0.15s ease background-color,\n 0.15s ease opacity;\n\n // Expand the clickable area\n &:before {\n content: '';\n position: absolute;\n left: -1px;\n top: -1px;\n width: calc(100% + 2px);\n height: calc(100% + 2px);\n }\n\n @media (hover: hover) {\n &:hover {\n background-color: ${t.calendarCellHoverBgColor};\n color: ${t.calendarCellHoverColor};\n cursor: pointer;\n }\n }\n\n &:disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n &:active:hover:enabled {\n color: ${t.calendarCellActiveHoverColor};\n }\n `;\n },\n\n selected(t: Theme) {\n return css`\n background-color: ${t.calendarCellSelectedBgColor};\n color: ${t.calendarCellSelectedFontColor};\n `;\n },\n\n selected6_1(t: Theme) {\n return css`\n @media (hover: hover) {\n &:hover {\n background-color: ${t.calendarCellSelectedBgColor};\n color: ${t.calendarCellSelectedFontColor};\n }\n }\n `;\n },\n\n weekend(t: Theme) {\n return css`\n color: ${t.calendarCellWeekendColor};\n `;\n },\n\n todayCaption(t: Theme) {\n return css`\n padding-bottom: 2px;\n border-bottom: ${t.calendarCellTodayBorder};\n `;\n },\n}));\n"]}
@@ -40,7 +40,7 @@ export var MobilePicker = function (props) {
40
40
  }
41
41
  };
42
42
  return (React.createElement(ThemeContext.Provider, { value: theme },
43
- React.createElement(MobilePopup, { opened: true, headerChildComponent: React.createElement(DateInput, { value: props.value || '', width: "100%", withIcon: true, ref: inputRef, minDate: props.minDate, maxDate: props.maxDate, onValueChange: props.onValueChange, size: "medium", warning: props.warning, error: props.error, "data-tid": MobilePickerDataTids.input }), footerChildComponent: props.enableTodayLink && (React.createElement(Button, { size: "medium", onClick: onTodayClick, "data-tid": MobilePickerDataTids.today }, locale.today)), onCloseRequest: props.onCloseRequest },
43
+ React.createElement(MobilePopup, { opened: true, verticalAlign: 'center', headerChildComponent: React.createElement(DateInput, { value: props.value || '', width: "100%", withIcon: true, ref: inputRef, minDate: props.minDate, maxDate: props.maxDate, onValueChange: props.onValueChange, size: "medium", warning: props.warning, error: props.error, "data-tid": MobilePickerDataTids.input }), footerChildComponent: props.enableTodayLink && (React.createElement(Button, { size: "medium", onClick: onTodayClick, "data-tid": MobilePickerDataTids.today }, locale.today)), onCloseRequest: props.onCloseRequest },
44
44
  React.createElement(Calendar, { ref: calendarRef, value: props.value, className: styles.calendarRoot(), minDate: props.minDate, maxDate: props.maxDate, onValueChange: onValueChange, isHoliday: props.isHoliday, renderDay: props.renderDay, onMonthChange: props.onMonthChange }))));
45
45
  };
46
46
  //# sourceMappingURL=MobilePicker.js.map