@skbkontur/react-ui 4.0.6 → 4.1.2-fix-zindex

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 (822) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +1 -1
  3. package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -0
  4. package/cjs/components/Autocomplete/Autocomplete.js +20 -7
  5. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  6. package/cjs/components/Button/Button.d.ts +4 -5
  7. package/cjs/components/Button/Button.js +8 -12
  8. package/cjs/components/Button/Button.js.map +1 -1
  9. package/cjs/components/Center/Center.d.ts +3 -0
  10. package/cjs/components/Center/Center.js +8 -3
  11. package/cjs/components/Center/Center.js.map +1 -1
  12. package/cjs/components/Checkbox/Checkbox.d.ts +8 -0
  13. package/cjs/components/Checkbox/Checkbox.js +37 -3
  14. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  15. package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -0
  16. package/cjs/components/Checkbox/Checkbox.styles.js +27 -24
  17. package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
  18. package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
  19. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  20. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +3 -0
  21. package/cjs/components/CurrencyInput/CurrencyInput.js +23 -10
  22. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  23. package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
  24. package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  25. package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
  26. package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
  27. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  28. package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -2
  29. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  30. package/cjs/components/DateInput/DateInput.js +5 -1
  31. package/cjs/components/DateInput/DateInput.js.map +1 -1
  32. package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  33. package/cjs/components/DateInput/helpers/InternalDateMediator.js +12 -2
  34. package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
  35. package/cjs/components/DateInput/helpers/inputNumber.d.ts +1 -1
  36. package/cjs/components/DateInput/helpers/inputNumber.js +45 -12
  37. package/cjs/components/DateInput/helpers/inputNumber.js.map +1 -1
  38. package/cjs/components/DatePicker/DatePicker.d.ts +5 -0
  39. package/cjs/components/DatePicker/DatePicker.js +14 -3
  40. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  41. package/cjs/components/DatePicker/Picker.js +7 -2
  42. package/cjs/components/DatePicker/Picker.js.map +1 -1
  43. package/cjs/components/Dropdown/Dropdown.d.ts +3 -0
  44. package/cjs/components/Dropdown/Dropdown.js +7 -2
  45. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  46. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  47. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
  48. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  49. package/cjs/components/FileUploader/FileUploader.d.ts +5 -0
  50. package/cjs/components/FileUploader/FileUploader.js +18 -9
  51. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  52. package/cjs/components/FileUploader/FileUploader.styles.d.ts +3 -2
  53. package/cjs/components/FileUploader/FileUploader.styles.js +21 -15
  54. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  55. package/cjs/components/FxInput/FxInput.d.ts +3 -0
  56. package/cjs/components/FxInput/FxInput.js +7 -3
  57. package/cjs/components/FxInput/FxInput.js.map +1 -1
  58. package/cjs/components/Gapped/Gapped.d.ts +4 -0
  59. package/cjs/components/Gapped/Gapped.js +13 -7
  60. package/cjs/components/Gapped/Gapped.js.map +1 -1
  61. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +3 -0
  62. package/cjs/components/GlobalLoader/GlobalLoader.js +9 -7
  63. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  64. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +5 -7
  65. package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
  66. package/cjs/components/Group/Group.d.ts +3 -0
  67. package/cjs/components/Group/Group.js +80 -33
  68. package/cjs/components/Group/Group.js.map +1 -1
  69. package/cjs/components/Input/Input.d.ts +4 -5
  70. package/cjs/components/Input/Input.js +21 -24
  71. package/cjs/components/Input/Input.js.map +1 -1
  72. package/cjs/components/Kebab/Kebab.d.ts +2 -13
  73. package/cjs/components/Kebab/Kebab.js +5 -29
  74. package/cjs/components/Kebab/Kebab.js.map +1 -1
  75. package/cjs/components/Link/Link.d.ts +3 -0
  76. package/cjs/components/Link/Link.js +7 -3
  77. package/cjs/components/Link/Link.js.map +1 -1
  78. package/cjs/components/Loader/Loader.d.ts +4 -0
  79. package/cjs/components/Loader/Loader.js +8 -3
  80. package/cjs/components/Loader/Loader.js.map +1 -1
  81. package/cjs/components/MenuHeader/MenuHeader.d.ts +3 -0
  82. package/cjs/components/MenuHeader/MenuHeader.js +7 -2
  83. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  84. package/cjs/components/MenuItem/MenuItem.d.ts +4 -0
  85. package/cjs/components/MenuItem/MenuItem.js +10 -4
  86. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  87. package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
  88. package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
  89. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  90. package/cjs/components/MenuSeparator/MenuSeparator.js +7 -3
  91. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  92. package/cjs/components/Modal/Modal.d.ts +5 -0
  93. package/cjs/components/Modal/Modal.js +10 -3
  94. package/cjs/components/Modal/Modal.js.map +1 -1
  95. package/cjs/components/Modal/Modal.styles.js +10 -6
  96. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  97. package/cjs/components/Modal/ModalClose.js +3 -2
  98. package/cjs/components/Modal/ModalClose.js.map +1 -1
  99. package/cjs/components/Modal/ModalFooter.d.ts +3 -0
  100. package/cjs/components/Modal/ModalFooter.js +8 -3
  101. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  102. package/cjs/components/Modal/ModalHeader.d.ts +3 -0
  103. package/cjs/components/Modal/ModalHeader.js +9 -3
  104. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  105. package/cjs/components/Paging/Paging.d.ts +20 -3
  106. package/cjs/components/Paging/Paging.js +29 -10
  107. package/cjs/components/Paging/Paging.js.map +1 -1
  108. package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
  109. package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
  110. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
  111. package/cjs/components/PasswordInput/PasswordInput.d.ts +7 -0
  112. package/cjs/components/PasswordInput/PasswordInput.js +36 -11
  113. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  114. package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  115. package/cjs/components/PasswordInput/PasswordInputIcon.js +15 -0
  116. package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
  117. package/cjs/components/Radio/Radio.d.ts +3 -0
  118. package/cjs/components/Radio/Radio.js +7 -3
  119. package/cjs/components/Radio/Radio.js.map +1 -1
  120. package/cjs/components/Radio/Radio.styles.js +4 -7
  121. package/cjs/components/Radio/Radio.styles.js.map +1 -1
  122. package/cjs/components/RadioGroup/RadioGroup.d.ts +9 -0
  123. package/cjs/components/RadioGroup/RadioGroup.js +22 -5
  124. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  125. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
  126. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  127. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +3 -4
  128. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  129. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  130. package/cjs/components/ScrollContainer/ScrollContainer.js +14 -4
  131. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  132. package/cjs/components/Select/Select.d.ts +3 -0
  133. package/cjs/components/Select/Select.js +43 -17
  134. package/cjs/components/Select/Select.js.map +1 -1
  135. package/cjs/components/SidePage/SidePage.d.ts +4 -0
  136. package/cjs/components/SidePage/SidePage.js +9 -3
  137. package/cjs/components/SidePage/SidePage.js.map +1 -1
  138. package/cjs/components/SidePage/SidePageBody.d.ts +3 -0
  139. package/cjs/components/SidePage/SidePageBody.js +10 -3
  140. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  141. package/cjs/components/SidePage/SidePageContainer.d.ts +3 -0
  142. package/cjs/components/SidePage/SidePageContainer.js +7 -2
  143. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  144. package/cjs/components/SidePage/SidePageFooter.d.ts +3 -0
  145. package/cjs/components/SidePage/SidePageFooter.js +11 -3
  146. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  147. package/cjs/components/SidePage/SidePageHeader.d.ts +4 -0
  148. package/cjs/components/SidePage/SidePageHeader.js +9 -4
  149. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  150. package/cjs/components/Spinner/Spinner.d.ts +3 -1
  151. package/cjs/components/Spinner/Spinner.js +8 -8
  152. package/cjs/components/Spinner/Spinner.js.map +1 -1
  153. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
  154. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  155. package/cjs/components/Sticky/Sticky.d.ts +3 -0
  156. package/cjs/components/Sticky/Sticky.js +7 -3
  157. package/cjs/components/Sticky/Sticky.js.map +1 -1
  158. package/cjs/components/Switcher/Switcher.d.ts +3 -0
  159. package/cjs/components/Switcher/Switcher.js +7 -3
  160. package/cjs/components/Switcher/Switcher.js.map +1 -1
  161. package/cjs/components/Switcher/Switcher.styles.js +2 -2
  162. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  163. package/cjs/components/Tabs/Indicator.js +4 -2
  164. package/cjs/components/Tabs/Indicator.js.map +1 -1
  165. package/cjs/components/Tabs/Tab.d.ts +3 -0
  166. package/cjs/components/Tabs/Tab.js +7 -2
  167. package/cjs/components/Tabs/Tab.js.map +1 -1
  168. package/cjs/components/Tabs/Tabs.d.ts +4 -0
  169. package/cjs/components/Tabs/Tabs.js +12 -3
  170. package/cjs/components/Tabs/Tabs.js.map +1 -1
  171. package/cjs/components/Textarea/Textarea.d.ts +6 -2
  172. package/cjs/components/Textarea/Textarea.js +14 -9
  173. package/cjs/components/Textarea/Textarea.js.map +1 -1
  174. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
  175. package/cjs/components/Textarea/TextareaCounter.js +21 -12
  176. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  177. package/cjs/components/Toast/Toast.d.ts +6 -0
  178. package/cjs/components/Toast/Toast.js +9 -2
  179. package/cjs/components/Toast/Toast.js.map +1 -1
  180. package/cjs/components/Toast/ToastStatic.js +1 -1
  181. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  182. package/cjs/components/Toast/ToastView.js +6 -5
  183. package/cjs/components/Toast/ToastView.js.map +1 -1
  184. package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
  185. package/cjs/components/Toast/ToastView.styles.js +3 -2
  186. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  187. package/cjs/components/Toggle/Toggle.d.ts +4 -1
  188. package/cjs/components/Toggle/Toggle.js +7 -3
  189. package/cjs/components/Toggle/Toggle.js.map +1 -1
  190. package/cjs/components/Toggle/Toggle.styles.js +12 -10
  191. package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
  192. package/cjs/components/Token/Token.d.ts +3 -0
  193. package/cjs/components/Token/Token.js +20 -3
  194. package/cjs/components/Token/Token.js.map +1 -1
  195. package/cjs/components/Token/Token.styles.js +13 -6
  196. package/cjs/components/Token/Token.styles.js.map +1 -1
  197. package/cjs/components/TokenInput/TokenInput.d.ts +14 -0
  198. package/cjs/components/TokenInput/TokenInput.js +36 -13
  199. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  200. package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
  201. package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
  202. package/cjs/components/TokenInput/TokenInputMenu.js +4 -3
  203. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  204. package/cjs/components/Tooltip/Tooltip.d.ts +3 -0
  205. package/cjs/components/Tooltip/Tooltip.js +12 -4
  206. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  207. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -1
  208. package/cjs/components/TooltipMenu/TooltipMenu.js +9 -2
  209. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  210. package/cjs/hooks/useDrop.js +3 -1
  211. package/cjs/hooks/useDrop.js.map +1 -1
  212. package/cjs/index.d.ts +2 -0
  213. package/cjs/index.js +2 -0
  214. package/cjs/index.js.map +1 -1
  215. package/cjs/internal/Calendar/Calendar.d.ts +6 -0
  216. package/cjs/internal/Calendar/Calendar.js +12 -5
  217. package/cjs/internal/Calendar/Calendar.js.map +1 -1
  218. package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
  219. package/cjs/internal/Calendar/MonthView.js +5 -4
  220. package/cjs/internal/Calendar/MonthView.js.map +1 -1
  221. package/cjs/internal/Calendar/MonthViewModel.js +36 -17
  222. package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
  223. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
  224. package/cjs/internal/CommonWrapper/CommonWrapper.js +7 -5
  225. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  226. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  227. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +28 -5
  228. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  229. package/cjs/internal/CustomComboBox/ComboBoxView.js +4 -2
  230. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  231. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  232. package/cjs/internal/CustomComboBox/CustomComboBox.js +9 -4
  233. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  234. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  235. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
  236. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  237. package/cjs/internal/DataTids/DATATIDS.md +12 -0
  238. package/cjs/internal/DataTids/DataTids.d.ts +12 -0
  239. package/cjs/internal/DataTids/DataTids.js +46 -0
  240. package/cjs/internal/DataTids/DataTids.js.map +1 -0
  241. package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
  242. package/cjs/internal/DataTids/DataTids.styles.js +41 -0
  243. package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
  244. package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
  245. package/cjs/internal/DataTids/componentsDataTids.js +16 -0
  246. package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
  247. package/cjs/internal/DateSelect/DateSelect.d.ts +4 -0
  248. package/cjs/internal/DateSelect/DateSelect.js +28 -12
  249. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  250. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +3 -1
  251. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
  252. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
  253. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +14 -6
  254. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  255. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
  256. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +6 -2
  257. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  258. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +14 -10
  259. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
  260. package/cjs/internal/InputLikeText/InputLikeText.d.ts +5 -1
  261. package/cjs/internal/InputLikeText/InputLikeText.js +10 -4
  262. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  263. package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -0
  264. package/cjs/internal/InternalMenu/InternalMenu.js +10 -12
  265. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  266. package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -2
  267. package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
  268. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  269. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
  270. package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  271. package/cjs/internal/MaskedInput/MaskedInput.d.ts +3 -0
  272. package/cjs/internal/MaskedInput/MaskedInput.js +16 -5
  273. package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
  274. package/cjs/internal/Menu/Menu.d.ts +3 -0
  275. package/cjs/internal/Menu/Menu.js +22 -21
  276. package/cjs/internal/Menu/Menu.js.map +1 -1
  277. package/cjs/internal/Menu/Menu.styles.js +5 -3
  278. package/cjs/internal/Menu/Menu.styles.js.map +1 -1
  279. package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
  280. package/cjs/internal/MobilePopup/MobilePopup.js +10 -3
  281. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  282. package/cjs/internal/Popup/Popup.d.ts +6 -0
  283. package/cjs/internal/Popup/Popup.js +18 -13
  284. package/cjs/internal/Popup/Popup.js.map +1 -1
  285. package/cjs/internal/Popup/PopupPin.js +2 -1
  286. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  287. package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -0
  288. package/cjs/internal/PopupMenu/PopupMenu.js +22 -4
  289. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  290. package/cjs/internal/PopupMenu/validatePositions.js +6 -6
  291. package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
  292. package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  293. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  294. package/cjs/internal/RenderContainer/RenderInnerContainer.js +9 -1
  295. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  296. package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
  297. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  298. package/cjs/internal/ThemePlayground/Playground.js +11 -19
  299. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  300. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  301. package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
  302. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
  303. package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  304. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -2
  305. package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
  306. package/cjs/internal/ThemePlayground/ThemeEditor.js +6 -1
  307. package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
  308. package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
  309. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  310. package/cjs/internal/ThemePlayground/constants.d.ts +3 -1
  311. package/cjs/internal/ThemePlayground/constants.js +3 -1
  312. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  313. package/cjs/internal/ThemeShowcase/ThemeShowcase.js +4 -7
  314. package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
  315. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  316. package/cjs/internal/ThemeShowcase/VariablesCollector.js +5 -6
  317. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  318. package/cjs/internal/ZIndex/ZIndex.d.ts +8 -0
  319. package/cjs/internal/ZIndex/ZIndex.js +25 -3
  320. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  321. package/cjs/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  322. package/cjs/internal/ZIndex/ZIndexStorage.js +13 -6
  323. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  324. package/cjs/internal/icons/16px/index.d.ts +19 -19
  325. package/cjs/internal/icons/16px/index.js +45 -38
  326. package/cjs/internal/icons/16px/index.js.map +1 -1
  327. package/cjs/internal/icons/20px/svg.js +6 -0
  328. package/cjs/internal/icons/20px/svg.js.map +1 -1
  329. package/cjs/internal/themes/DefaultTheme.d.ts +20 -1
  330. package/cjs/internal/themes/DefaultTheme.js +40 -5
  331. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  332. package/cjs/internal/themes/NotFlat.d.ts +6 -0
  333. package/cjs/internal/themes/NotFlat.js +12 -2
  334. package/cjs/internal/themes/NotFlat.js.map +1 -1
  335. package/cjs/internal/themes/Theme2022.d.ts +66 -0
  336. package/cjs/internal/themes/Theme2022.js +100 -0
  337. package/cjs/internal/themes/Theme2022.js.map +1 -0
  338. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
  339. package/cjs/internal/themes/Theme2022Dark.js +9 -0
  340. package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
  341. package/cjs/lib/animation/index.d.ts +1 -1
  342. package/cjs/lib/animation/index.js +3 -3
  343. package/cjs/lib/animation/index.js.map +1 -1
  344. package/cjs/lib/date/InternalDate.js +23 -9
  345. package/cjs/lib/date/InternalDate.js.map +1 -1
  346. package/cjs/lib/date/InternalDateCalculator.js +16 -2
  347. package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
  348. package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
  349. package/cjs/lib/date/InternalDateGetter.js +27 -7
  350. package/cjs/lib/date/InternalDateGetter.js.map +1 -1
  351. package/cjs/lib/date/InternalDateTransformer.js +11 -2
  352. package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
  353. package/cjs/lib/date/InternalDateValidator.js +52 -17
  354. package/cjs/lib/date/InternalDateValidator.js.map +1 -1
  355. package/cjs/lib/date/types.d.ts +4 -0
  356. package/cjs/lib/date/types.js.map +1 -1
  357. package/cjs/lib/events/MouseDrag.js +5 -1
  358. package/cjs/lib/events/MouseDrag.js.map +1 -1
  359. package/cjs/lib/events/keyboard/extractCode.js +7 -5
  360. package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
  361. package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
  362. package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
  363. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
  364. package/cjs/lib/rootNode/getRootNode.d.ts +9 -0
  365. package/cjs/lib/rootNode/getRootNode.js +37 -8
  366. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  367. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  368. package/cjs/lib/rootNode/rootNodeDecorator.js +11 -2
  369. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  370. package/cjs/lib/stringUtils.js +3 -1
  371. package/cjs/lib/stringUtils.js.map +1 -1
  372. package/cjs/lib/styles/ColorFactory.js +9 -9
  373. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  374. package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
  375. package/cjs/lib/styles/ColorHelpers.js +33 -10
  376. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  377. package/cjs/lib/styles/ColorObject.js +3 -2
  378. package/cjs/lib/styles/ColorObject.js.map +1 -1
  379. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  380. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
  381. package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
  382. package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
  383. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  384. package/cjs/lib/theming/Emotion.js +5 -2
  385. package/cjs/lib/theming/Emotion.js.map +1 -1
  386. package/cjs/lib/theming/ThemeFactory.js +5 -1
  387. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  388. package/cjs/lib/theming/ThemeHelpers.js +7 -2
  389. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  390. package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
  391. package/cjs/lib/theming/themes/Theme2022.js +6 -0
  392. package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
  393. package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  394. package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
  395. package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
  396. package/cjs/lib/utils.d.ts +15 -0
  397. package/cjs/lib/utils.js +45 -9
  398. package/cjs/lib/utils.js.map +1 -1
  399. package/components/Autocomplete/Autocomplete/Autocomplete.js +16 -11
  400. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  401. package/components/Autocomplete/Autocomplete.d.ts +3 -0
  402. package/components/Button/Button/Button.js +8 -10
  403. package/components/Button/Button/Button.js.map +1 -1
  404. package/components/Button/Button.d.ts +4 -5
  405. package/components/Center/Center/Center.js +10 -5
  406. package/components/Center/Center/Center.js.map +1 -1
  407. package/components/Center/Center.d.ts +3 -0
  408. package/components/Checkbox/Checkbox/Checkbox.js +33 -2
  409. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  410. package/components/Checkbox/Checkbox.d.ts +8 -0
  411. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +22 -18
  412. package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
  413. package/components/Checkbox/Checkbox.styles.d.ts +1 -0
  414. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
  415. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  416. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +30 -17
  417. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  418. package/components/CurrencyInput/CurrencyInput.d.ts +3 -0
  419. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
  420. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
  421. package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
  422. package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
  423. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +6 -1
  424. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  425. package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
  426. package/components/DateInput/DateInput/DateInput.js +9 -1
  427. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  428. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +16 -10
  429. package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
  430. package/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
  431. package/components/DateInput/helpers/inputNumber/inputNumber.js +53 -16
  432. package/components/DateInput/helpers/inputNumber/inputNumber.js.map +1 -1
  433. package/components/DateInput/helpers/inputNumber.d.ts +1 -1
  434. package/components/DatePicker/DatePicker/DatePicker.js +6 -0
  435. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  436. package/components/DatePicker/DatePicker.d.ts +5 -0
  437. package/components/DatePicker/Picker/Picker.js +3 -1
  438. package/components/DatePicker/Picker/Picker.js.map +1 -1
  439. package/components/Dropdown/Dropdown/Dropdown.js +9 -5
  440. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  441. package/components/Dropdown/Dropdown.d.ts +3 -0
  442. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
  443. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  444. package/components/DropdownMenu/DropdownMenu.d.ts +1 -4
  445. package/components/FileUploader/FileUploader/FileUploader.js +18 -9
  446. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  447. package/components/FileUploader/FileUploader.d.ts +5 -0
  448. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +15 -12
  449. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  450. package/components/FileUploader/FileUploader.styles.d.ts +3 -2
  451. package/components/FxInput/FxInput/FxInput.js +6 -2
  452. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  453. package/components/FxInput/FxInput.d.ts +3 -0
  454. package/components/Gapped/Gapped/Gapped.js +16 -8
  455. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  456. package/components/Gapped/Gapped.d.ts +4 -0
  457. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +9 -8
  458. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  459. package/components/GlobalLoader/GlobalLoader.d.ts +3 -0
  460. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js +1 -2
  461. package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js.map +1 -1
  462. package/components/Group/Group/Group.js +66 -30
  463. package/components/Group/Group/Group.js.map +1 -1
  464. package/components/Group/Group.d.ts +3 -0
  465. package/components/Input/Input/Input.js +18 -31
  466. package/components/Input/Input/Input.js.map +1 -1
  467. package/components/Input/Input.d.ts +4 -5
  468. package/components/Kebab/Kebab/Kebab.js +3 -13
  469. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  470. package/components/Kebab/Kebab.d.ts +2 -13
  471. package/components/Link/Link/Link.js +10 -5
  472. package/components/Link/Link/Link.js.map +1 -1
  473. package/components/Link/Link.d.ts +3 -0
  474. package/components/Loader/Loader/Loader.js +10 -6
  475. package/components/Loader/Loader/Loader.js.map +1 -1
  476. package/components/Loader/Loader.d.ts +4 -0
  477. package/components/MenuHeader/MenuHeader/MenuHeader.js +4 -0
  478. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  479. package/components/MenuHeader/MenuHeader.d.ts +3 -0
  480. package/components/MenuItem/MenuItem/MenuItem.js +15 -9
  481. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  482. package/components/MenuItem/MenuItem.d.ts +4 -0
  483. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
  484. package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
  485. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +4 -0
  486. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  487. package/components/MenuSeparator/MenuSeparator.d.ts +3 -0
  488. package/components/Modal/Modal/Modal.js +9 -3
  489. package/components/Modal/Modal/Modal.js.map +1 -1
  490. package/components/Modal/Modal.d.ts +5 -0
  491. package/components/Modal/Modal.styles/Modal.styles.js +4 -4
  492. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  493. package/components/Modal/ModalClose/ModalClose.js +2 -1
  494. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  495. package/components/Modal/ModalFooter/ModalFooter.js +5 -1
  496. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  497. package/components/Modal/ModalFooter.d.ts +3 -0
  498. package/components/Modal/ModalHeader/ModalHeader.js +5 -1
  499. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  500. package/components/Modal/ModalHeader.d.ts +3 -0
  501. package/components/Paging/Paging/Paging.js +24 -18
  502. package/components/Paging/Paging/Paging.js.map +1 -1
  503. package/components/Paging/Paging.d.ts +20 -3
  504. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
  505. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
  506. package/components/Paging/PagingDefaultComponent/package.json +6 -0
  507. package/components/Paging/PagingDefaultComponent.d.ts +9 -0
  508. package/components/PasswordInput/PasswordInput/PasswordInput.js +39 -14
  509. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  510. package/components/PasswordInput/PasswordInput.d.ts +7 -0
  511. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +15 -0
  512. package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
  513. package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
  514. package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
  515. package/components/Radio/Radio/Radio.js +10 -5
  516. package/components/Radio/Radio/Radio.js.map +1 -1
  517. package/components/Radio/Radio.d.ts +3 -0
  518. package/components/Radio/Radio.styles/Radio.styles.js +2 -1
  519. package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
  520. package/components/RadioGroup/RadioGroup/RadioGroup.js +25 -13
  521. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  522. package/components/RadioGroup/RadioGroup.d.ts +9 -0
  523. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
  524. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  525. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -3
  526. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  527. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +6 -1
  528. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  529. package/components/ScrollContainer/ScrollContainer.d.ts +4 -0
  530. package/components/Select/Select/Select.js +35 -15
  531. package/components/Select/Select/Select.js.map +1 -1
  532. package/components/Select/Select.d.ts +3 -0
  533. package/components/SidePage/SidePage/SidePage.js +8 -3
  534. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  535. package/components/SidePage/SidePage.d.ts +4 -0
  536. package/components/SidePage/SidePageBody/SidePageBody.js +10 -6
  537. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  538. package/components/SidePage/SidePageBody.d.ts +3 -0
  539. package/components/SidePage/SidePageContainer/SidePageContainer.js +10 -6
  540. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  541. package/components/SidePage/SidePageContainer.d.ts +3 -0
  542. package/components/SidePage/SidePageFooter/SidePageFooter.js +10 -6
  543. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  544. package/components/SidePage/SidePageFooter.d.ts +3 -0
  545. package/components/SidePage/SidePageHeader/SidePageHeader.js +12 -7
  546. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  547. package/components/SidePage/SidePageHeader.d.ts +4 -0
  548. package/components/Spinner/Spinner/Spinner.js +14 -6
  549. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  550. package/components/Spinner/Spinner.d.ts +3 -1
  551. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
  552. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  553. package/components/Sticky/Sticky/Sticky.js +4 -0
  554. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  555. package/components/Sticky/Sticky.d.ts +3 -0
  556. package/components/Switcher/Switcher/Switcher.js +4 -0
  557. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  558. package/components/Switcher/Switcher.d.ts +3 -0
  559. package/components/Switcher/Switcher.styles/Switcher.styles.js +1 -1
  560. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  561. package/components/Tabs/Indicator/Indicator.js +2 -0
  562. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  563. package/components/Tabs/Tab/Tab.js +4 -0
  564. package/components/Tabs/Tab/Tab.js.map +1 -1
  565. package/components/Tabs/Tab.d.ts +3 -0
  566. package/components/Tabs/Tabs/Tabs.js +11 -6
  567. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  568. package/components/Tabs/Tabs.d.ts +4 -0
  569. package/components/Textarea/Textarea/Textarea.js +21 -15
  570. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  571. package/components/Textarea/Textarea.d.ts +6 -2
  572. package/components/Textarea/TextareaCounter/TextareaCounter.js +13 -2
  573. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  574. package/components/Textarea/TextareaCounter.d.ts +1 -2
  575. package/components/Toast/Toast/Toast.js +16 -10
  576. package/components/Toast/Toast/Toast.js.map +1 -1
  577. package/components/Toast/Toast.d.ts +6 -0
  578. package/components/Toast/ToastStatic/ToastStatic.js +2 -2
  579. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  580. package/components/Toast/ToastView/ToastView.js +5 -4
  581. package/components/Toast/ToastView/ToastView.js.map +1 -1
  582. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  583. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  584. package/components/Toast/ToastView.styles.d.ts +1 -1
  585. package/components/Toggle/Toggle/Toggle.js +8 -4
  586. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  587. package/components/Toggle/Toggle.d.ts +4 -1
  588. package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
  589. package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
  590. package/components/Token/Token/Token.js +16 -1
  591. package/components/Token/Token/Token.js.map +1 -1
  592. package/components/Token/Token.d.ts +3 -0
  593. package/components/Token/Token.styles/Token.styles.js +11 -4
  594. package/components/Token/Token.styles/Token.styles.js.map +1 -1
  595. package/components/TokenInput/TokenInput/TokenInput.js +30 -16
  596. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  597. package/components/TokenInput/TokenInput.d.ts +14 -0
  598. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
  599. package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
  600. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -0
  601. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  602. package/components/Tooltip/Tooltip/Tooltip.js +9 -2
  603. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  604. package/components/Tooltip/Tooltip.d.ts +3 -0
  605. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +18 -12
  606. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  607. package/components/TooltipMenu/TooltipMenu.d.ts +4 -1
  608. package/hooks/useDrop/useDrop.js +5 -1
  609. package/hooks/useDrop/useDrop.js.map +1 -1
  610. package/index.d.ts +2 -0
  611. package/index.js +2 -0
  612. package/index.js.map +1 -1
  613. package/internal/Calendar/Calendar/Calendar.js +13 -5
  614. package/internal/Calendar/Calendar/Calendar.js.map +1 -1
  615. package/internal/Calendar/Calendar.d.ts +6 -0
  616. package/internal/Calendar/CalendarDateShape.d.ts +1 -1
  617. package/internal/Calendar/MonthView/MonthView.js +4 -3
  618. package/internal/Calendar/MonthView/MonthView.js.map +1 -1
  619. package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
  620. package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
  621. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +7 -8
  622. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  623. package/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
  624. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +34 -19
  625. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  626. package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
  627. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -0
  628. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  629. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +21 -17
  630. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  631. package/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
  632. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
  633. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  634. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
  635. package/internal/DataTids/DATATIDS.md +12 -0
  636. package/internal/DataTids/DataTids/DataTids.js +69 -0
  637. package/internal/DataTids/DataTids/DataTids.js.map +1 -0
  638. package/internal/DataTids/DataTids/package.json +6 -0
  639. package/internal/DataTids/DataTids.d.ts +12 -0
  640. package/internal/DataTids/DataTids.styles/DataTids.styles.js +22 -0
  641. package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
  642. package/internal/DataTids/DataTids.styles/package.json +6 -0
  643. package/internal/DataTids/DataTids.styles.d.ts +7 -0
  644. package/internal/DataTids/componentsDataTids/componentsDataTids.js +14 -0
  645. package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
  646. package/internal/DataTids/componentsDataTids/package.json +6 -0
  647. package/internal/DataTids/componentsDataTids.d.ts +5 -0
  648. package/internal/DateSelect/DateSelect/DateSelect.js +27 -17
  649. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  650. package/internal/DateSelect/DateSelect.d.ts +4 -0
  651. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +5 -1
  652. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
  653. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +12 -5
  654. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  655. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
  656. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -1
  657. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  658. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
  659. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -0
  660. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
  661. package/internal/InputLikeText/InputLikeText/InputLikeText.js +8 -2
  662. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  663. package/internal/InputLikeText/InputLikeText.d.ts +5 -1
  664. package/internal/InternalMenu/InternalMenu/InternalMenu.js +18 -21
  665. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  666. package/internal/InternalMenu/InternalMenu.d.ts +3 -0
  667. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
  668. package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
  669. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
  670. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
  671. package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
  672. package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
  673. package/internal/MaskedInput/MaskedInput/MaskedInput.js +14 -3
  674. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  675. package/internal/MaskedInput/MaskedInput.d.ts +3 -0
  676. package/internal/Menu/Menu/Menu.js +15 -19
  677. package/internal/Menu/Menu/Menu.js.map +1 -1
  678. package/internal/Menu/Menu.d.ts +3 -0
  679. package/internal/Menu/Menu.styles/Menu.styles.js +1 -1
  680. package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
  681. package/internal/MobilePopup/MobilePopup/MobilePopup.js +6 -0
  682. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  683. package/internal/MobilePopup/MobilePopup.d.ts +4 -0
  684. package/internal/Popup/Popup/Popup.js +15 -9
  685. package/internal/Popup/Popup/Popup.js.map +1 -1
  686. package/internal/Popup/Popup.d.ts +6 -0
  687. package/internal/Popup/PopupPin/PopupPin.js +2 -0
  688. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  689. package/internal/PopupMenu/PopupMenu/PopupMenu.js +15 -2
  690. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  691. package/internal/PopupMenu/PopupMenu.d.ts +8 -0
  692. package/internal/PopupMenu/validatePositions/validatePositions.js +6 -6
  693. package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
  694. package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
  695. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -2
  696. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  697. package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
  698. package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
  699. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  700. package/internal/ThemePlayground/Playground/Playground.js +15 -29
  701. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  702. package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
  703. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
  704. package/internal/ThemePlayground/SizesGroup/package.json +6 -0
  705. package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
  706. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +14 -2
  707. package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
  708. package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
  709. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
  710. package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
  711. package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
  712. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  713. package/internal/ThemePlayground/constants/constants.js +2 -0
  714. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  715. package/internal/ThemePlayground/constants.d.ts +3 -1
  716. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +3 -6
  717. package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
  718. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +4 -6
  719. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  720. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  721. package/internal/ZIndex/ZIndex/ZIndex.js +23 -8
  722. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  723. package/internal/ZIndex/ZIndex.d.ts +8 -0
  724. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +12 -6
  725. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  726. package/internal/ZIndex/ZIndexStorage.d.ts +2 -1
  727. package/internal/icons/16px/index/index.js +28 -20
  728. package/internal/icons/16px/index/index.js.map +1 -1
  729. package/internal/icons/16px/index.d.ts +19 -19
  730. package/internal/icons/20px/svg/svg.js +5 -0
  731. package/internal/icons/20px/svg/svg.js.map +1 -1
  732. package/internal/themes/DefaultTheme/DefaultTheme.js +48 -4
  733. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  734. package/internal/themes/DefaultTheme.d.ts +20 -1
  735. package/internal/themes/NotFlat/NotFlat.js +15 -0
  736. package/internal/themes/NotFlat/NotFlat.js.map +1 -1
  737. package/internal/themes/NotFlat.d.ts +6 -0
  738. package/internal/themes/Theme2022/Theme2022.js +78 -0
  739. package/internal/themes/Theme2022/Theme2022.js.map +1 -0
  740. package/internal/themes/Theme2022/package.json +6 -0
  741. package/internal/themes/Theme2022.d.ts +66 -0
  742. package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
  743. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  744. package/internal/themes/Theme2022Dark/package.json +6 -0
  745. package/internal/themes/Theme2022Dark.d.ts +5 -0
  746. package/lib/animation/index/index.js +1 -1
  747. package/lib/animation/index/index.js.map +1 -1
  748. package/lib/animation/index.d.ts +1 -1
  749. package/lib/date/InternalDate/InternalDate.js +16 -1
  750. package/lib/date/InternalDate/InternalDate.js.map +1 -1
  751. package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
  752. package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
  753. package/lib/date/InternalDateGetter/InternalDateGetter.js +23 -7
  754. package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
  755. package/lib/date/InternalDateGetter.d.ts +1 -1
  756. package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
  757. package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
  758. package/lib/date/InternalDateValidator/InternalDateValidator.js +75 -34
  759. package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
  760. package/lib/date/types/types.js.map +1 -1
  761. package/lib/date/types.d.ts +4 -0
  762. package/lib/events/MouseDrag/MouseDrag.js +5 -1
  763. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  764. package/lib/events/keyboard/extractCode/extractCode.js +5 -5
  765. package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
  766. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
  767. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
  768. package/lib/needsPolyfillPlaceholder/package.json +6 -0
  769. package/lib/needsPolyfillPlaceholder.d.ts +6 -0
  770. package/lib/rootNode/getRootNode/getRootNode.js +36 -8
  771. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  772. package/lib/rootNode/getRootNode.d.ts +9 -0
  773. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +3 -1
  774. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  775. package/lib/rootNode/rootNodeDecorator.d.ts +9 -1
  776. package/lib/stringUtils/stringUtils.js +4 -1
  777. package/lib/stringUtils/stringUtils.js.map +1 -1
  778. package/lib/styles/ColorFactory/ColorFactory.js +9 -9
  779. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  780. package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
  781. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  782. package/lib/styles/ColorHelpers.d.ts +1 -0
  783. package/lib/styles/ColorObject/ColorObject.js +2 -2
  784. package/lib/styles/ColorObject/ColorObject.js.map +1 -1
  785. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
  786. package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
  787. package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
  788. package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
  789. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
  790. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  791. package/lib/theming/Emotion/Emotion.js +5 -2
  792. package/lib/theming/Emotion/Emotion.js.map +1 -1
  793. package/lib/theming/ThemeFactory/ThemeFactory.js +5 -2
  794. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  795. package/lib/theming/ThemeHelpers/ThemeHelpers.js +5 -1
  796. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  797. package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
  798. package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
  799. package/lib/theming/themes/Theme2022/package.json +6 -0
  800. package/lib/theming/themes/Theme2022.d.ts +1 -0
  801. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
  802. package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
  803. package/lib/theming/themes/Theme2022Dark/package.json +6 -0
  804. package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
  805. package/lib/utils/utils.js +42 -6
  806. package/lib/utils/utils.js.map +1 -1
  807. package/lib/utils.d.ts +15 -0
  808. package/package.json +5 -6
  809. package/cjs/components/Button/Corners.d.ts +0 -6
  810. package/cjs/components/Button/Corners.js +0 -5
  811. package/cjs/components/Button/Corners.js.map +0 -1
  812. package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
  813. package/cjs/lib/polyfillPlaceholder.js +0 -17
  814. package/cjs/lib/polyfillPlaceholder.js.map +0 -1
  815. package/components/Button/Corners/Corners.js +0 -6
  816. package/components/Button/Corners/Corners.js.map +0 -1
  817. package/components/Button/Corners/package.json +0 -6
  818. package/components/Button/Corners.d.ts +0 -6
  819. package/lib/polyfillPlaceholder/package.json +0 -6
  820. package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
  821. package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
  822. package/lib/polyfillPlaceholder.d.ts +0 -1
@@ -5,7 +5,7 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _temp
5
5
  import { css, memoizeStyle } from "../../../lib/theming/Emotion";
6
6
  export var styles = memoizeStyle({
7
7
  root: function root(t) {
8
- return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n overflow: auto;\n padding: 5px 0;\n outline: none;\n background: ", ";\n "])), t.bgSecondary);
8
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n overflow: auto;\n padding: 5px ", ";\n outline: none;\n background: ", ";\n "])), t.menuPaddingX, t.bgSecondary);
9
9
  },
10
10
  shadow: function shadow(t) {
11
11
  return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n border: ", ";\n box-shadow: ", ";\n "])), t.menuBorder, t.menuShadow);
@@ -1 +1 @@
1
- {"version":3,"sources":["InternalMenu.styles.ts"],"names":["css","memoizeStyle","styles","root","t","bgSecondary","shadow","menuBorder","menuShadow","header","footer","fixedHeader","fixedFooter"],"mappings":"8MAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,WAAOJ,GAAP;;;;AAIgBI,IAAAA,CAAC,CAACC,WAJlB;;AAMD,GARgC;;AAUjCC,EAAAA,MAViC,kBAU1BF,CAV0B,EAUhB;AACf,WAAOJ,GAAP;AACYI,IAAAA,CAAC,CAACG,UADd;AAEgBH,IAAAA,CAAC,CAACI,UAFlB;;AAID,GAfgC;;AAiBjCC,EAAAA,MAjBiC,oBAiBxB;AACP,WAAOT,GAAP;;;;;;;;;;AAUD,GA5BgC;;AA8BjCU,EAAAA,MA9BiC,oBA8BxB;AACP,WAAOV,GAAP;;;;;;;;;;AAUD,GAzCgC;;AA2CjCW,EAAAA,WA3CiC,yBA2CnB;AACZ,WAAOX,GAAP;;;AAGD,GA/CgC;;AAiDjCY,EAAAA,WAjDiC,yBAiDnB;AACZ,WAAOZ,GAAP;;;AAGD,GArDgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n overflow: auto;\n padding: 5px 0;\n outline: none;\n background: ${t.bgSecondary};\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n\n header() {\n return css`\n top: -5px;\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n padding: 6px 18px 7px 8px;\n `;\n },\n\n footer() {\n return css`\n bottom: -5px;\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n padding: 6px 18px 7px 8px;\n `;\n },\n\n fixedHeader() {\n return css`\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);\n `;\n },\n\n fixedFooter() {\n return css`\n box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1);\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["InternalMenu.styles.ts"],"names":["css","memoizeStyle","styles","root","t","menuPaddingX","bgSecondary","shadow","menuBorder","menuShadow","header","footer","fixedHeader","fixedFooter"],"mappings":"8MAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,WAAOJ,GAAP;;AAEiBI,IAAAA,CAAC,CAACC,YAFnB;;AAIgBD,IAAAA,CAAC,CAACE,WAJlB;;AAMD,GARgC;;AAUjCC,EAAAA,MAViC,kBAU1BH,CAV0B,EAUhB;AACf,WAAOJ,GAAP;AACYI,IAAAA,CAAC,CAACI,UADd;AAEgBJ,IAAAA,CAAC,CAACK,UAFlB;;AAID,GAfgC;;AAiBjCC,EAAAA,MAjBiC,oBAiBxB;AACP,WAAOV,GAAP;;;;;;;;;;AAUD,GA5BgC;;AA8BjCW,EAAAA,MA9BiC,oBA8BxB;AACP,WAAOX,GAAP;;;;;;;;;;AAUD,GAzCgC;;AA2CjCY,EAAAA,WA3CiC,yBA2CnB;AACZ,WAAOZ,GAAP;;;AAGD,GA/CgC;;AAiDjCa,EAAAA,WAjDiC,yBAiDnB;AACZ,WAAOb,GAAP;;;AAGD,GArDgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n overflow: auto;\n padding: 5px ${t.menuPaddingX};\n outline: none;\n background: ${t.bgSecondary};\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n\n header() {\n return css`\n top: -5px;\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n padding: 6px 18px 7px 8px;\n `;\n },\n\n footer() {\n return css`\n bottom: -5px;\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n line-height: 18px;\n box-sizing: border-box;\n padding: 6px 18px 7px 8px;\n `;\n },\n\n fixedHeader() {\n return css`\n box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);\n `;\n },\n\n fixedFooter() {\n return css`\n box-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1);\n `;\n },\n});\n"]}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { isMenuItem } from "../../../components/MenuItem";
3
+ import { isMenuHeader } from "../../../components/MenuHeader";
4
+ export var addIconPaddingIfPartOfMenu = function addIconPaddingIfPartOfMenu(child, enableIconPadding) {
5
+ var isPartOfMenu = isMenuItem(child) || isMenuHeader(child);
6
+
7
+ if (enableIconPadding && isPartOfMenu) {
8
+ return /*#__PURE__*/React.cloneElement(child, {
9
+ _enableIconPadding: true
10
+ });
11
+ }
12
+
13
+ return child;
14
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["addIconPaddingIfPartOfMenu.ts"],"names":["React","isMenuItem","isMenuHeader","addIconPaddingIfPartOfMenu","child","enableIconPadding","isPartOfMenu","cloneElement","_enableIconPadding"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,UAAT,QAA2B,2BAA3B;AACA,SAASC,YAAT,QAA6B,6BAA7B;;AAEA,OAAO,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,KAAD,EAAyBC,iBAAzB,EAAwD;AAChG,MAAMC,YAAY,GAAGL,UAAU,CAACG,KAAD,CAAV,IAAqBF,YAAY,CAACE,KAAD,CAAtD;;AAEA,MAAIC,iBAAiB,IAAIC,YAAzB,EAAuC;AACrC,wBAAON,KAAK,CAACO,YAAN,CAAmBH,KAAnB,EAA0B;AAC/BI,MAAAA,kBAAkB,EAAE,IADW,EAA1B,CAAP;;AAGD;;AAED,SAAOJ,KAAP;AACD,CAVM","sourcesContent":["import React from 'react';\n\nimport { isMenuItem } from '../../components/MenuItem';\nimport { isMenuHeader } from '../../components/MenuHeader';\n\nexport const addIconPaddingIfPartOfMenu = (child: React.ReactNode, enableIconPadding: boolean) => {\n const isPartOfMenu = isMenuItem(child) || isMenuHeader(child);\n\n if (enableIconPadding && isPartOfMenu) {\n return React.cloneElement(child, {\n _enableIconPadding: true,\n });\n }\n\n return child;\n};\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js",
3
+ "module": "addIconPaddingIfPartOfMenu",
4
+ "types": "../addIconPaddingIfPartOfMenu.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const addIconPaddingIfPartOfMenu: (child: React.ReactNode, enableIconPadding: boolean) => {} | null | undefined;
@@ -4,10 +4,14 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
4
  var _excluded = ["maskChar", "alwaysShowMask", "hasLeftIcon", "hasRightIcon", "maxLength", "onValueChange", "onUnexpectedInput", "defaultValue", "style"];
5
5
  import React from 'react';
6
6
  import ReactInputMask from 'react-input-mask';
7
+ import { isNonNullable } from "../../../lib/utils";
7
8
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
8
9
  import { MaskCharLowLine } from "../../MaskCharLowLine";
9
10
  import { cx } from "../../../lib/theming/Emotion";
10
11
  import { styles } from "../MaskedInput.styles";
12
+ export var MaskedInputDataTids = {
13
+ root: 'MaskedInput__root'
14
+ };
11
15
  export var MaskedInput = /*#__PURE__*/function (_React$PureComponent) {
12
16
  _inheritsLoose(MaskedInput, _React$PureComponent);
13
17
 
@@ -19,9 +23,15 @@ export var MaskedInput = /*#__PURE__*/function (_React$PureComponent) {
19
23
  _this.reactInputMask = null;
20
24
 
21
25
  _this.getValue = function (props) {
22
- var value = props.value,
23
- defaultValue = props.defaultValue;
24
- return value !== undefined ? value.toString() : defaultValue !== undefined ? defaultValue.toString() : '';
26
+ if (isNonNullable(props.value)) {
27
+ return props.value.toString();
28
+ }
29
+
30
+ if (isNonNullable(props.defaultValue)) {
31
+ return props.defaultValue.toString();
32
+ }
33
+
34
+ return '';
25
35
  };
26
36
 
27
37
  _this.refInput = function (input) {
@@ -171,6 +181,7 @@ export var MaskedInput = /*#__PURE__*/function (_React$PureComponent) {
171
181
  }) : _char;
172
182
  });
173
183
  return /*#__PURE__*/React.createElement("span", {
184
+ "data-tid": MaskedInputDataTids.root,
174
185
  className: styles.container(),
175
186
  "x-ms-format-detection": "none"
176
187
  }, /*#__PURE__*/React.createElement(ReactInputMask, _extends({}, inputProps, {
@@ -1 +1 @@
1
- {"version":3,"sources":["MaskedInput.tsx"],"names":["React","ReactInputMask","ThemeContext","MaskCharLowLine","cx","styles","MaskedInput","props","input","reactInputMask","getValue","value","defaultValue","undefined","toString","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","theme","renderMain","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","leftHelper","textAlign","color","slice","leftClass","inputMaskLeft","rightHelper","map","_char","i","container","inputMask","PureComponent","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactInputMask, { InputState, MaskOptions } from 'react-input-mask';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MaskedInput.styles';\n\nexport interface MaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n emptyValue: string;\n focused: boolean;\n}\n\nexport class MaskedInput extends React.PureComponent<MaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'MaskedInput';\n\n public static defaultProps: Partial<MaskedInputProps> = {\n maskChar: '_',\n };\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: MaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: MaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, value.length)}</span>\n );\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(value.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={cx(styles.inputMask(this.theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: MaskedInputProps): string => {\n const { value, defaultValue } = props;\n\n return value !== undefined ? value.toString() : defaultValue !== undefined ? defaultValue.toString() : '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: MaskOptions & Pick<MaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.props.maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["MaskedInput.tsx"],"names":["React","ReactInputMask","isNonNullable","ThemeContext","MaskCharLowLine","cx","styles","MaskedInputDataTids","root","MaskedInput","props","input","reactInputMask","getValue","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","theme","renderMain","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","leftHelper","textAlign","color","slice","leftClass","inputMaskLeft","rightHelper","map","_char","i","container","inputMask","PureComponent","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactInputMask, { InputState, MaskOptions } from 'react-input-mask';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MaskedInput.styles';\n\nexport interface MaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n emptyValue: string;\n focused: boolean;\n}\n\nexport const MaskedInputDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\nexport class MaskedInput extends React.PureComponent<MaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'MaskedInput';\n\n public static defaultProps: Partial<MaskedInputProps> = {\n maskChar: '_',\n };\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: MaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: MaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, value.length)}</span>\n );\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(value.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span data-tid={MaskedInputDataTids.root} className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={cx(styles.inputMask(this.theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: MaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: MaskOptions & Pick<MaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.props.maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"]}
@@ -16,6 +16,9 @@ interface MaskedInputState {
16
16
  emptyValue: string;
17
17
  focused: boolean;
18
18
  }
19
+ export declare const MaskedInputDataTids: {
20
+ readonly root: "MaskedInput__root";
21
+ };
19
22
  export declare class MaskedInput extends React.PureComponent<MaskedInputProps, MaskedInputState> {
20
23
  static __KONTUR_REACT_UI__: string;
21
24
  static defaultProps: Partial<MaskedInputProps>;
@@ -4,15 +4,18 @@ import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
4
  var _class, _class2, _temp;
5
5
 
6
6
  import React from 'react';
7
+ import { isNonNullable } from "../../../lib/utils";
7
8
  import { ScrollContainer } from "../../../components/ScrollContainer";
8
- import { isMenuItem } from "../../../components/MenuItem";
9
- import { isMenuHeader } from "../../../components/MenuHeader";
10
9
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
11
10
  import { cx } from "../../../lib/theming/Emotion";
12
11
  import { getRootNode, rootNode } from "../../../lib/rootNode";
12
+ import { addIconPaddingIfPartOfMenu } from "../../InternalMenu/addIconPaddingIfPartOfMenu";
13
13
  import { isIE11 } from "../../../lib/client";
14
14
  import { styles } from "../Menu.styles";
15
15
  import { isActiveElement } from "../isActiveElement";
16
+ export var MenuDataTids = {
17
+ root: 'Menu__root'
18
+ };
16
19
  export var Menu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
17
20
  _inheritsLoose(Menu, _React$Component);
18
21
 
@@ -42,30 +45,26 @@ export var Menu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
42
45
  return child;
43
46
  }
44
47
 
45
- if (enableIconPadding && (isMenuItem(child) || isMenuHeader(child))) {
46
- child = /*#__PURE__*/React.cloneElement(child, {
47
- _enableIconPadding: true
48
- });
49
- }
48
+ var modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);
50
49
 
51
- if (isActiveElement(child)) {
50
+ if (isActiveElement(modifiedChild)) {
52
51
  var highlight = _this.state.highlightedIndex === index;
53
- var ref = child.ref;
52
+ var ref = modifiedChild.ref;
54
53
 
55
- if (highlight && typeof child.ref !== 'string') {
56
- ref = _this.refHighlighted.bind(_assertThisInitialized(_this), child.ref);
54
+ if (highlight && typeof modifiedChild.ref !== 'string') {
55
+ ref = _this.refHighlighted.bind(_assertThisInitialized(_this), modifiedChild.ref);
57
56
  }
58
57
 
59
- return /*#__PURE__*/React.cloneElement(child, {
58
+ return /*#__PURE__*/React.cloneElement(modifiedChild, {
60
59
  ref: ref,
61
- state: highlight ? 'hover' : child.props.state,
60
+ state: highlight ? 'hover' : modifiedChild.props.state,
62
61
  onClick: _this.select.bind(_assertThisInitialized(_this), index, false),
63
62
  onMouseEnter: _this.highlight.bind(_assertThisInitialized(_this), index),
64
63
  onMouseLeave: _this.unhighlight
65
64
  });
66
65
  }
67
66
 
68
- return child;
67
+ return modifiedChild;
69
68
  });
70
69
  };
71
70
 
@@ -175,6 +174,7 @@ export var Menu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
175
174
  }
176
175
 
177
176
  return /*#__PURE__*/React.createElement("div", {
177
+ "data-tid": MenuDataTids.root,
178
178
  className: cx(getAlignRightClass(this.props), (_cx = {}, _cx[styles.root(this.theme)] = true, _cx[styles.shadow(this.theme)] = this.props.hasShadow, _cx)),
179
179
  style: getStyle(this.props),
180
180
  ref: this.setRootNode
@@ -286,7 +286,7 @@ export var Menu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
286
286
 
287
287
  _proto.isEmpty = function isEmpty() {
288
288
  var children = this.props.children;
289
- return !children || !childrenToArray(children).filter(isExist).length;
289
+ return !children || !childrenToArray(children).filter(isNonNullable).length;
290
290
  };
291
291
 
292
292
  return Menu;
@@ -298,10 +298,6 @@ export var Menu = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_R
298
298
  preventWindowScroll: true
299
299
  }, _temp)) || _class;
300
300
 
301
- function isExist(value) {
302
- return value !== null && value !== undefined;
303
- }
304
-
305
301
  function childrenToArray(children) {
306
302
  var ret = []; // Use forEach instead of map to avoid cloning for key unifying.
307
303
 
@@ -1 +1 @@
1
- {"version":3,"sources":["Menu.tsx"],"names":["React","ScrollContainer","isMenuItem","isMenuHeader","ThemeContext","cx","getRootNode","rootNode","isIE11","styles","isActiveElement","Menu","state","highlightedIndex","unmounted","getChildList","enableIconPadding","Children","toArray","props","children","some","x","isValidElement","icon","map","child","index","cloneElement","_enableIconPadding","highlight","ref","refHighlighted","bind","onClick","select","onMouseEnter","onMouseLeave","unhighlight","refScrollContainer","scrollContainer","scrollToSelected","highlighted","scrollTo","scrollToTop","scrollToBottom","setState","componentWillUnmount","render","theme","renderMain","up","move","down","enter","event","reset","hasHighlightedItem","highlightItem","isEmpty","getAlignRightClass","root","shadow","hasShadow","getStyle","setRootNode","maxHeight","preventWindowScroll","disableScrollContainer","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","window","open","location","onItemClick","step","activeElements","filter","length","indexOf","isExist","Component","__KONTUR_REACT_UI__","defaultProps","align","width","value","undefined","ret","forEach","push","maxWidth","minWidth","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"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","sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { ScrollContainer } from '../../components/ScrollContainer';\nimport { isMenuItem, MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { isMenuHeader } from '../../components/MenuHeader';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isIE11 } from '../../lib/client';\n\nimport { styles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\n\nexport interface MenuProps {\n children: React.ReactNode;\n hasShadow?: boolean;\n maxHeight?: number | string;\n onItemClick?: () => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n}\n\n@rootNode\nexport class Menu extends React.Component<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n\n public static defaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n };\n\n public state = {\n highlightedIndex: -1,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.setState({ highlightedIndex: -1 });\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n this.highlight(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n\n return (\n <div\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.shadow(this.theme)]: this.props.hasShadow,\n })}\n style={getStyle(this.props)}\n ref={this.setRootNode}\n >\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={this.props.maxHeight}\n preventWindowScroll={this.props.preventWindowScroll}\n disabled={this.props.disableScrollContainer}\n >\n <div className={styles.scrollContainer(this.theme)}>{this.getChildList()}</div>\n </ScrollContainer>\n </div>\n );\n }\n\n private getChildList = () => {\n const enableIconPadding = React.Children.toArray(this.props.children).some(\n (x) => React.isValidElement(x) && x.props.icon,\n );\n\n return React.Children.map(this.props.children, (child, index) => {\n if (!child) {\n return child;\n }\n if (typeof child === 'string' || typeof child === 'number') {\n return child;\n }\n\n if (enableIconPadding && (isMenuItem(child) || isMenuHeader(child))) {\n child = React.cloneElement(child, {\n _enableIconPadding: true,\n });\n }\n if (isActiveElement(child)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = child.ref;\n if (highlight && typeof child.ref !== 'string') {\n ref = this.refHighlighted.bind(this, child.ref);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(child, {\n ref,\n state: highlight ? 'hover' : child.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: this.highlight.bind(this, index),\n onMouseLeave: this.unhighlight,\n });\n }\n return child;\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: ((menuItem: MenuItem | null) => any) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n this.scrollContainer.scrollTo(getRootNode(this.highlighted));\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n if (isActiveElement(item)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n window.open(item.props.href, item.props.target);\n } else {\n location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick();\n }\n return true;\n }\n return false;\n }\n\n private highlight = (index: number) => {\n this.setState({ highlightedIndex: index });\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n\n const children = childrenToArray(this.props.children);\n const activeElements = children.filter(isActiveElement);\n if (!activeElements.length) {\n return;\n }\n let index = this.state.highlightedIndex;\n do {\n index += step;\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n this.setState({ highlightedIndex: index }, () => {\n switch (activeElements.indexOf(child)) {\n case 0:\n this.scrollToTop();\n break;\n case activeElements.length - 1:\n this.scrollToBottom();\n break;\n default:\n this.scrollToSelected();\n }\n });\n return;\n }\n } while (index !== this.state.highlightedIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isExist).length;\n }\n}\n\nfunction isExist(value: any): value is any {\n return value !== null && value !== undefined;\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: props.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: props.maxHeight,\n };\n};\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"]}
1
+ {"version":3,"sources":["Menu.tsx"],"names":["React","isNonNullable","ScrollContainer","ThemeContext","cx","getRootNode","rootNode","addIconPaddingIfPartOfMenu","isIE11","styles","isActiveElement","MenuDataTids","root","Menu","state","highlightedIndex","unmounted","getChildList","enableIconPadding","Children","toArray","props","children","some","x","isValidElement","icon","map","child","index","modifiedChild","highlight","ref","refHighlighted","bind","cloneElement","onClick","select","onMouseEnter","onMouseLeave","unhighlight","refScrollContainer","scrollContainer","scrollToSelected","highlighted","scrollTo","scrollToTop","scrollToBottom","setState","componentWillUnmount","render","theme","renderMain","up","move","down","enter","event","reset","hasHighlightedItem","highlightItem","isEmpty","getAlignRightClass","shadow","hasShadow","getStyle","setRootNode","maxHeight","preventWindowScroll","disableScrollContainer","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","window","open","location","onItemClick","step","activeElements","filter","length","indexOf","Component","__KONTUR_REACT_UI__","defaultProps","align","width","ret","forEach","push","maxWidth","minWidth","alignRight","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"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","sourcesContent":["import React, { CSSProperties } from 'react';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ScrollContainer } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemProps } from '../../components/MenuItem';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { addIconPaddingIfPartOfMenu } from '../InternalMenu/addIconPaddingIfPartOfMenu';\nimport { isIE11 } from '../../lib/client';\n\nimport { styles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\n\nexport interface MenuProps {\n children: React.ReactNode;\n hasShadow?: boolean;\n maxHeight?: number | string;\n onItemClick?: () => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\n@rootNode\nexport class Menu extends React.Component<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n\n public static defaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n };\n\n public state = {\n highlightedIndex: -1,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.setState({ highlightedIndex: -1 });\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n this.highlight(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.shadow(this.theme)]: this.props.hasShadow,\n })}\n style={getStyle(this.props)}\n ref={this.setRootNode}\n >\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={this.props.maxHeight}\n preventWindowScroll={this.props.preventWindowScroll}\n disabled={this.props.disableScrollContainer}\n >\n <div className={styles.scrollContainer(this.theme)}>{this.getChildList()}</div>\n </ScrollContainer>\n </div>\n );\n }\n\n private getChildList = () => {\n const enableIconPadding = React.Children.toArray(this.props.children).some(\n (x) => React.isValidElement(x) && x.props.icon,\n );\n\n return React.Children.map(this.props.children, (child, index) => {\n if (!child) {\n return child;\n }\n\n if (typeof child === 'string' || typeof child === 'number') {\n return child;\n }\n\n const modifiedChild = addIconPaddingIfPartOfMenu(child, enableIconPadding);\n\n if (isActiveElement(modifiedChild)) {\n const highlight = this.state.highlightedIndex === index;\n\n let ref = modifiedChild.ref;\n if (highlight && typeof modifiedChild.ref !== 'string') {\n ref = this.refHighlighted.bind(this, modifiedChild.ref);\n }\n\n return React.cloneElement<MenuItemProps, MenuItem>(modifiedChild, {\n ref,\n state: highlight ? 'hover' : modifiedChild.props.state,\n onClick: this.select.bind(this, index, false),\n onMouseEnter: this.highlight.bind(this, index),\n onMouseLeave: this.unhighlight,\n });\n }\n\n return modifiedChild;\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private refHighlighted(\n originalRef: ((menuItem: MenuItem | null) => any) | React.RefObject<MenuItem> | null | undefined,\n menuItem: MenuItem | null,\n ) {\n this.highlighted = menuItem;\n\n if (typeof originalRef === 'function') {\n originalRef(menuItem);\n }\n }\n\n private scrollToSelected = () => {\n if (this.scrollContainer && this.highlighted) {\n this.scrollContainer.scrollTo(getRootNode(this.highlighted));\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private select(index: number, shouldHandleHref: boolean, event: React.SyntheticEvent<HTMLElement>): boolean {\n const item = childrenToArray(this.props.children)[index];\n if (isActiveElement(item)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n window.open(item.props.href, item.props.target);\n } else {\n location.href = item.props.href;\n }\n }\n if (item.props.onClick) {\n item.props.onClick(event);\n }\n if (this.props.onItemClick) {\n this.props.onItemClick();\n }\n return true;\n }\n return false;\n }\n\n private highlight = (index: number) => {\n this.setState({ highlightedIndex: index });\n };\n\n private unhighlight = () => {\n this.setState({ highlightedIndex: -1 });\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n\n const children = childrenToArray(this.props.children);\n const activeElements = children.filter(isActiveElement);\n if (!activeElements.length) {\n return;\n }\n let index = this.state.highlightedIndex;\n do {\n index += step;\n if (index < 0) {\n index = children.length - 1;\n } else if (index > children.length) {\n index = 0;\n }\n\n const child = children[index];\n if (isActiveElement(child)) {\n this.setState({ highlightedIndex: index }, () => {\n switch (activeElements.indexOf(child)) {\n case 0:\n this.scrollToTop();\n break;\n case activeElements.length - 1:\n this.scrollToBottom();\n break;\n default:\n this.scrollToSelected();\n }\n });\n return;\n }\n } while (index !== this.state.highlightedIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: props.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: props.maxHeight,\n };\n};\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"]}
@@ -15,6 +15,9 @@ export interface MenuProps {
15
15
  export interface MenuState {
16
16
  highlightedIndex: number;
17
17
  }
18
+ export declare const MenuDataTids: {
19
+ readonly root: "Menu__root";
20
+ };
18
21
  export declare class Menu extends React.Component<MenuProps, MenuState> {
19
22
  static __KONTUR_REACT_UI__: string;
20
23
  static defaultProps: {
@@ -5,7 +5,7 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _temp
5
5
  import { css, memoizeStyle } from "../../../lib/theming/Emotion";
6
6
  export var styles = memoizeStyle({
7
7
  root: function root(t) {
8
- return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n background: ", ";\n box-sizing: content-box;\n overflow: auto;\n padding: 0 0;\n "])), t.menuBgDefault);
8
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n background: ", ";\n border-radius: ", ";\n box-sizing: content-box;\n overflow: auto;\n padding: 0 ", ";\n border-radius: ", ";\n "])), t.menuBgDefault, t.menuBorderRadius, t.menuPaddingX, t.menuBorderRadius);
9
9
  },
10
10
  alignRight: function alignRight() {
11
11
  return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n flex: 1 1 100%;\n "])));
@@ -1 +1 @@
1
- {"version":3,"sources":["Menu.styles.ts"],"names":["css","memoizeStyle","styles","root","t","menuBgDefault","alignRight","alignRightIE11","alignRightIE11FixAutoWidth","scrollContainer","menuPaddingY","shadow","menuBorder","menuShadow"],"mappings":"8MAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,WAAOJ,GAAP;AACgBI,IAAAA,CAAC,CAACC,aADlB;;;;;AAMD,GARgC;;AAUjCC,EAAAA,UAViC,wBAUpB;AACX,WAAON,GAAP;;;AAGD,GAdgC;;AAgBjCO,EAAAA,cAhBiC,4BAgBhB;AACf,WAAOP,GAAP;;;;AAID,GArBgC;;AAuBjCQ,EAAAA,0BAvBiC,wCAuBJ;AAC3B,WAAOR,GAAP;;;;AAID,GA5BgC;;AA8BjCS,EAAAA,eA9BiC,2BA8BjBL,CA9BiB,EA8BP;AACxB,WAAOJ,GAAP;AACaI,IAAAA,CAAC,CAACM,YADf;;AAGD,GAlCgC;;AAoCjCC,EAAAA,MApCiC,kBAoC1BP,CApC0B,EAoChB;AACf,WAAOJ,GAAP;AACYI,IAAAA,CAAC,CAACQ,UADd;AAEgBR,IAAAA,CAAC,CAACS,UAFlB;;AAID,GAzCgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n background: ${t.menuBgDefault};\n box-sizing: content-box;\n overflow: auto;\n padding: 0 0;\n `;\n },\n\n alignRight() {\n return css`\n flex: 1 1 100%;\n `;\n },\n\n alignRightIE11() {\n return css`\n float: right;\n width: 100%;\n `;\n },\n\n alignRightIE11FixAutoWidth() {\n return css`\n box-sizing: border-box !important; // override root styles\n overflow: hidden !important; // override root styles\n `;\n },\n\n scrollContainer(t: Theme) {\n return css`\n padding: ${t.menuPaddingY} 0;\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n});\n"]}
1
+ {"version":3,"sources":["Menu.styles.ts"],"names":["css","memoizeStyle","styles","root","t","menuBgDefault","menuBorderRadius","menuPaddingX","alignRight","alignRightIE11","alignRightIE11FixAutoWidth","scrollContainer","menuPaddingY","shadow","menuBorder","menuShadow"],"mappings":"8MAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;;AAGA,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;AACjCE,EAAAA,IADiC,gBAC5BC,CAD4B,EAClB;AACb,WAAOJ,GAAP;AACgBI,IAAAA,CAAC,CAACC,aADlB;AAEmBD,IAAAA,CAAC,CAACE,gBAFrB;;;AAKeF,IAAAA,CAAC,CAACG,YALjB;AAMmBH,IAAAA,CAAC,CAACE,gBANrB;;AAQD,GAVgC;;AAYjCE,EAAAA,UAZiC,wBAYpB;AACX,WAAOR,GAAP;;;AAGD,GAhBgC;;AAkBjCS,EAAAA,cAlBiC,4BAkBhB;AACf,WAAOT,GAAP;;;;AAID,GAvBgC;;AAyBjCU,EAAAA,0BAzBiC,wCAyBJ;AAC3B,WAAOV,GAAP;;;;AAID,GA9BgC;;AAgCjCW,EAAAA,eAhCiC,2BAgCjBP,CAhCiB,EAgCP;AACxB,WAAOJ,GAAP;AACaI,IAAAA,CAAC,CAACQ,YADf;;AAGD,GApCgC;;AAsCjCC,EAAAA,MAtCiC,kBAsC1BT,CAtC0B,EAsChB;AACf,WAAOJ,GAAP;AACYI,IAAAA,CAAC,CAACU,UADd;AAEgBV,IAAAA,CAAC,CAACW,UAFlB;;AAID,GA3CgC,EAAD,CAA3B","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n background: ${t.menuBgDefault};\n border-radius: ${t.menuBorderRadius};\n box-sizing: content-box;\n overflow: auto;\n padding: 0 ${t.menuPaddingX};\n border-radius: ${t.menuBorderRadius};\n `;\n },\n\n alignRight() {\n return css`\n flex: 1 1 100%;\n `;\n },\n\n alignRightIE11() {\n return css`\n float: right;\n width: 100%;\n `;\n },\n\n alignRightIE11FixAutoWidth() {\n return css`\n box-sizing: border-box !important; // override root styles\n overflow: hidden !important; // override root styles\n `;\n },\n\n scrollContainer(t: Theme) {\n return css`\n padding: ${t.menuPaddingY} 0;\n `;\n },\n\n shadow(t: Theme) {\n return css`\n border: ${t.menuBorder};\n box-shadow: ${t.menuShadow};\n `;\n },\n});\n"]}
@@ -8,6 +8,10 @@ import { ZIndex } from "../../ZIndex";
8
8
  import { cx } from "../../../lib/theming/Emotion";
9
9
  import { jsStyles } from "../MobilePopup.styles";
10
10
  import { MobilePopupHeader } from "../MobilePopupHeader";
11
+ export var MobilePopupDataTids = {
12
+ root: 'MobilePopup__root',
13
+ container: 'MobilePopup__container'
14
+ };
11
15
  export var MobilePopup = /*#__PURE__*/function (_React$Component) {
12
16
  _inheritsLoose(MobilePopup, _React$Component);
13
17
 
@@ -78,8 +82,10 @@ export var MobilePopup = /*#__PURE__*/function (_React$Component) {
78
82
  var _cx, _cx2, _cx3;
79
83
 
80
84
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
85
+ "data-tid": MobilePopupDataTids.container,
81
86
  className: cx((_cx = {}, _cx[jsStyles.container(_this3.theme)] = true, _cx[jsStyles.containerOpened()] = state === 'entered', _cx))
82
87
  }, /*#__PURE__*/React.createElement("div", {
88
+ "data-tid": MobilePopupDataTids.root,
83
89
  className: cx((_cx2 = {}, _cx2[jsStyles.root(_this3.theme)] = true, _cx2[jsStyles.rootFullHeight(_this3.theme)] = _this3.props.useFullHeight, _cx2)),
84
90
  onClick: _this3.props.useFullHeight ? undefined : _this3.close
85
91
  }, /*#__PURE__*/React.createElement(MobilePopupHeader, {
@@ -1 +1 @@
1
- {"version":3,"sources":["MobilePopup.tsx"],"names":["React","Transition","ThemeContext","RenderContainer","HideBodyVerticalScroll","ZIndex","cx","jsStyles","MobilePopupHeader","MobilePopup","state","isScrolled","close","props","onCloseRequest","refContent","contentDiv","handleScrollMenu","e","scrollTop","setState","render","theme","renderMain","content","opened","onClose","appear","exit","container","containerOpened","root","rootFullHeight","useFullHeight","undefined","caption","headerChildComponent","stopPropagation","children","bg","bgShowed","withoutRenderContainer","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Nullable } from '../../typings/utility-types';\nimport { RenderContainer } from '../RenderContainer';\nimport { HideBodyVerticalScroll } from '../HideBodyVerticalScroll';\nimport { ZIndex } from '../ZIndex';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { jsStyles } from './MobilePopup.styles';\nimport { MobilePopupHeader } from './MobilePopupHeader';\n\ninterface MobilePopupProps {\n /**\n * Хэндлер, вызываемый при закрытии меню\n */\n onClose?: () => void;\n caption?: string;\n /**\n * Компонент, закрепленный сверху меню (под холдером)\n */\n headerChildComponent?: React.ReactNode;\n useFullHeight?: boolean;\n withoutRenderContainer?: boolean;\n /**\n * Хэндлер, вызываемый при клике по вуали или заголовку\n */\n onCloseRequest?: () => void;\n opened: boolean;\n}\n\ninterface MobilePopupState {\n isScrolled: boolean;\n}\n\nexport class MobilePopup extends React.Component<MobilePopupProps, MobilePopupState> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuHeader';\n\n private contentDiv: Nullable<HTMLDivElement>;\n private theme!: Theme;\n\n public state: MobilePopupState = {\n isScrolled: false,\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const content = (\n <ZIndex priority={'MobilePopup'}>\n <Transition\n in={this.props.opened}\n onExited={this.props.onClose}\n mountOnEnter\n unmountOnExit\n appear={true}\n timeout={{ appear: 0, exit: 250 }}\n >\n {(state) => (\n <>\n <div\n className={cx({\n [jsStyles.container(this.theme)]: true,\n [jsStyles.containerOpened()]: state === 'entered',\n })}\n >\n <div\n className={cx({\n [jsStyles.root(this.theme)]: true,\n [jsStyles.rootFullHeight(this.theme)]: this.props.useFullHeight,\n })}\n onClick={this.props.useFullHeight ? undefined : this.close}\n >\n <MobilePopupHeader\n caption={this.props.caption}\n onClose={this.close}\n withShadow={this.state.isScrolled}\n >\n {this.props.headerChildComponent}\n </MobilePopupHeader>\n <div\n onClick={(e) => e.stopPropagation()}\n className={jsStyles.content(this.theme)}\n onScroll={this.handleScrollMenu}\n ref={this.refContent}\n >\n {this.props.children}\n </div>\n </div>\n </div>\n <div\n onClick={this.close}\n className={cx({\n [jsStyles.bg()]: true,\n [jsStyles.bgShowed()]: state === 'entered',\n })}\n />\n <HideBodyVerticalScroll />\n </>\n )}\n </Transition>\n </ZIndex>\n );\n\n if (this.props.withoutRenderContainer) {\n return content;\n }\n\n return <RenderContainer>{content}</RenderContainer>;\n }\n\n public close = () => {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n };\n\n private refContent = (contentDiv: HTMLDivElement) => {\n this.contentDiv = contentDiv;\n };\n\n private handleScrollMenu = (e: React.UIEvent<HTMLDivElement>) => {\n if (this.contentDiv) {\n const isScrolled = this.contentDiv.scrollTop > 0;\n\n if (isScrolled !== this.state.isScrolled) {\n this.setState({ isScrolled });\n }\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["MobilePopup.tsx"],"names":["React","Transition","ThemeContext","RenderContainer","HideBodyVerticalScroll","ZIndex","cx","jsStyles","MobilePopupHeader","MobilePopupDataTids","root","container","MobilePopup","state","isScrolled","close","props","onCloseRequest","refContent","contentDiv","handleScrollMenu","e","scrollTop","setState","render","theme","renderMain","content","opened","onClose","appear","exit","containerOpened","rootFullHeight","useFullHeight","undefined","caption","headerChildComponent","stopPropagation","children","bg","bgShowed","withoutRenderContainer","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Nullable } from '../../typings/utility-types';\nimport { RenderContainer } from '../RenderContainer';\nimport { HideBodyVerticalScroll } from '../HideBodyVerticalScroll';\nimport { ZIndex } from '../ZIndex';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { jsStyles } from './MobilePopup.styles';\nimport { MobilePopupHeader } from './MobilePopupHeader';\n\ninterface MobilePopupProps {\n /**\n * Хэндлер, вызываемый при закрытии меню\n */\n onClose?: () => void;\n caption?: string;\n /**\n * Компонент, закрепленный сверху меню (под холдером)\n */\n headerChildComponent?: React.ReactNode;\n useFullHeight?: boolean;\n withoutRenderContainer?: boolean;\n /**\n * Хэндлер, вызываемый при клике по вуали или заголовку\n */\n onCloseRequest?: () => void;\n opened: boolean;\n}\n\ninterface MobilePopupState {\n isScrolled: boolean;\n}\n\nexport const MobilePopupDataTids = {\n root: 'MobilePopup__root',\n container: 'MobilePopup__container',\n} as const;\n\nexport class MobilePopup extends React.Component<MobilePopupProps, MobilePopupState> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuHeader';\n\n private contentDiv: Nullable<HTMLDivElement>;\n private theme!: Theme;\n\n public state: MobilePopupState = {\n isScrolled: false,\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const content = (\n <ZIndex priority={'MobilePopup'}>\n <Transition\n in={this.props.opened}\n onExited={this.props.onClose}\n mountOnEnter\n unmountOnExit\n appear\n timeout={{ appear: 0, exit: 250 }}\n >\n {(state) => (\n <>\n <div\n data-tid={MobilePopupDataTids.container}\n className={cx({\n [jsStyles.container(this.theme)]: true,\n [jsStyles.containerOpened()]: state === 'entered',\n })}\n >\n <div\n data-tid={MobilePopupDataTids.root}\n className={cx({\n [jsStyles.root(this.theme)]: true,\n [jsStyles.rootFullHeight(this.theme)]: this.props.useFullHeight,\n })}\n onClick={this.props.useFullHeight ? undefined : this.close}\n >\n <MobilePopupHeader\n caption={this.props.caption}\n onClose={this.close}\n withShadow={this.state.isScrolled}\n >\n {this.props.headerChildComponent}\n </MobilePopupHeader>\n <div\n onClick={(e) => e.stopPropagation()}\n className={jsStyles.content(this.theme)}\n onScroll={this.handleScrollMenu}\n ref={this.refContent}\n >\n {this.props.children}\n </div>\n </div>\n </div>\n <div\n onClick={this.close}\n className={cx({\n [jsStyles.bg()]: true,\n [jsStyles.bgShowed()]: state === 'entered',\n })}\n />\n <HideBodyVerticalScroll />\n </>\n )}\n </Transition>\n </ZIndex>\n );\n\n if (this.props.withoutRenderContainer) {\n return content;\n }\n\n return <RenderContainer>{content}</RenderContainer>;\n }\n\n public close = () => {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n };\n\n private refContent = (contentDiv: HTMLDivElement) => {\n this.contentDiv = contentDiv;\n };\n\n private handleScrollMenu = (e: React.UIEvent<HTMLDivElement>) => {\n if (this.contentDiv) {\n const isScrolled = this.contentDiv.scrollTop > 0;\n\n if (isScrolled !== this.state.isScrolled) {\n this.setState({ isScrolled });\n }\n }\n };\n}\n"]}
@@ -20,6 +20,10 @@ interface MobilePopupProps {
20
20
  interface MobilePopupState {
21
21
  isScrolled: boolean;
22
22
  }
23
+ export declare const MobilePopupDataTids: {
24
+ readonly root: "MobilePopup__root";
25
+ readonly container: "MobilePopup__container";
26
+ };
23
27
  export declare class MobilePopup extends React.Component<MobilePopupProps, MobilePopupState> {
24
28
  static __KONTUR_REACT_UI__: string;
25
29
  private contentDiv;
@@ -51,7 +51,7 @@ import warning from 'warning';
51
51
  import * as LayoutEvents from "../../../lib/LayoutEvents";
52
52
  import { ZIndex } from "../../ZIndex";
53
53
  import { RenderContainer } from "../../RenderContainer";
54
- import { isFunction, isNonNullable, isRefableElement } from "../../../lib/utils";
54
+ import { isFunction, isNonNullable, isNullable, isRefableElement } from "../../../lib/utils";
55
55
  import { isIE11, isEdge, isSafari } from "../../../lib/client";
56
56
  import { ThemeContext } from "../../../lib/theming/ThemeContext";
57
57
  import { isHTMLElement, safePropTypesInstanceOf } from "../../../lib/SSRSafe";
@@ -80,6 +80,11 @@ var DUMMY_LOCATION = {
80
80
  left: -9999
81
81
  }
82
82
  };
83
+ export var PopupDataTids = {
84
+ content: 'PopupContent',
85
+ contentInner: 'PopupContentInner',
86
+ popupPin: 'PopupPin__root'
87
+ };
83
88
  export var Popup = responsiveLayout(_class = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
84
89
  _inheritsLoose(Popup, _React$Component);
85
90
 
@@ -155,7 +160,7 @@ export var Popup = responsiveLayout(_class = rootNode(_class = (_temp = _class2
155
160
  width = _this$props.width;
156
161
  return /*#__PURE__*/React.createElement("div", {
157
162
  className: styles.content(_this.theme),
158
- "data-tid": 'PopupContent',
163
+ "data-tid": PopupDataTids.content,
159
164
  ref: _this.refForTransition
160
165
  }, /*#__PURE__*/React.createElement("div", {
161
166
  className: styles.contentInner(_this.theme),
@@ -163,7 +168,7 @@ export var Popup = responsiveLayout(_class = rootNode(_class = (_temp = _class2
163
168
  backgroundColor: backgroundColor,
164
169
  width: _this.calculateWidth(width)
165
170
  },
166
- "data-tid": 'PopupContentInner'
171
+ "data-tid": PopupDataTids.contentInner
167
172
  }, children));
168
173
  };
169
174
 
@@ -323,9 +328,7 @@ export var Popup = responsiveLayout(_class = rootNode(_class = (_temp = _class2
323
328
 
324
329
  var canGetAnchorNode = !!anchorWithRef || isHTMLElement(anchorElement);
325
330
  return /*#__PURE__*/React.createElement(RenderContainer, {
326
- anchor: anchorWithRef || anchor // rootNode for Popup is its content container, see #2873
327
- ,
328
- containerRef: this.setRootNode,
331
+ anchor: anchorWithRef || anchor,
329
332
  ref: canGetAnchorNode ? null : this.updateAnchorElement
330
333
  }, this.isMobileLayout && !this.props.withoutMobile ? this.renderMobile() : location && this.renderContent(location));
331
334
  };
@@ -382,7 +385,10 @@ export var Popup = responsiveLayout(_class = rootNode(_class = (_temp = _class2
382
385
  }, function (state) {
383
386
  var _extends2, _ref;
384
387
 
385
- return /*#__PURE__*/React.createElement(CommonWrapper, _this4.props, /*#__PURE__*/React.createElement(ZIndex, {
388
+ return /*#__PURE__*/React.createElement(CommonWrapper, _extends({}, _this4.props, {
389
+ rootNodeRef: _this4.setRootNode
390
+ }), /*#__PURE__*/React.createElement(ZIndex, {
391
+ "data-tid": 'Popup__root',
386
392
  wrapperRef: _this4.refPopupElement,
387
393
  priority: 'Popup',
388
394
  className: cx(_extends((_extends2 = {}, _extends2[styles.popup(_this4.theme)] = true, _extends2[styles.shadow(_this4.theme)] = hasShadow && !shouldFallbackShadow, _extends2[styles.shadowFallback(_this4.theme)] = hasShadow && shouldFallbackShadow, _extends2[styles.popupIgnoreHover()] = ignoreHover, _extends2), disableAnimations ? {} : (_ref = {}, _ref[styles["transition-enter-" + direction](_this4.theme)] = true, _ref[styles.transitionEnter()] = state === 'entering', _ref[styles.transitionEnterActive()] = state === 'entered', _ref[styles.transitionExit()] = state === 'exiting', _ref))),
@@ -439,7 +445,7 @@ export var Popup = responsiveLayout(_class = rootNode(_class = (_temp = _class2
439
445
  return true;
440
446
  }
441
447
 
442
- if (x == null || y == null) {
448
+ if (isNullable(x) || isNullable(y)) {
443
449
  return false;
444
450
  }
445
451
 
@@ -676,4 +682,4 @@ export var Popup = responsiveLayout(_class = rootNode(_class = (_temp = _class2
676
682
  useWrapper: false,
677
683
  ignoreHover: false,
678
684
  width: 'auto'
679
- }, _temp)) || _class) || _class;
685
+ }, _class2.defaultRootNode = null, _temp)) || _class) || _class;