@skbkontur/react-ui 0.0.0-a25347e958 → 0.0.0-a2ba201dd3

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 (1326) hide show
  1. package/CHANGELOG.md +223 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -1
  3. package/cjs/components/Autocomplete/Autocomplete.js +3 -1
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +13 -3
  6. package/cjs/components/Button/Button.js +26 -8
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/Button/Button.md +106 -30
  9. package/cjs/components/Button/Button.mixins.d.ts +1 -1
  10. package/cjs/components/Button/Button.mixins.js +3 -1
  11. package/cjs/components/Button/Button.mixins.js.map +1 -1
  12. package/cjs/components/Button/Button.styles.d.ts +1 -6
  13. package/cjs/components/Button/Button.styles.js +40 -54
  14. package/cjs/components/Button/Button.styles.js.map +1 -1
  15. package/cjs/components/Button/ButtonArrow.js +1 -1
  16. package/cjs/components/Button/ButtonArrow.js.map +1 -1
  17. package/cjs/components/Button/ButtonIcon.d.ts +7 -5
  18. package/cjs/components/Button/ButtonIcon.js +37 -18
  19. package/cjs/components/Button/ButtonIcon.js.map +1 -1
  20. package/cjs/components/Button/ButtonIcon.styles.d.ts +16 -0
  21. package/cjs/components/Button/ButtonIcon.styles.js +89 -0
  22. package/cjs/components/Button/ButtonIcon.styles.js.map +1 -0
  23. package/cjs/components/Button/LoadingButtonIcon.d.ts +7 -0
  24. package/cjs/components/Button/LoadingButtonIcon.js +25 -0
  25. package/cjs/components/Button/LoadingButtonIcon.js.map +1 -0
  26. package/cjs/components/Button/getInnerLinkTheme.js +1 -0
  27. package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
  28. package/cjs/components/Calendar/Calendar.d.ts +1 -0
  29. package/cjs/components/Calendar/Calendar.js +10 -7
  30. package/cjs/components/Calendar/Calendar.js.map +1 -1
  31. package/cjs/components/Calendar/DayCellView.js +8 -5
  32. package/cjs/components/Calendar/DayCellView.js.map +1 -1
  33. package/cjs/components/Center/Center.d.ts +1 -0
  34. package/cjs/components/Center/Center.js +2 -1
  35. package/cjs/components/Center/Center.js.map +1 -1
  36. package/cjs/components/Checkbox/Checkbox.d.ts +7 -2
  37. package/cjs/components/Checkbox/Checkbox.js +14 -8
  38. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  39. package/cjs/components/ComboBox/ComboBox.d.ts +3 -1
  40. package/cjs/components/ComboBox/ComboBox.js +3 -1
  41. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  42. package/cjs/components/ComboBox/ComboBox.md +4 -5
  43. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  44. package/cjs/components/CurrencyInput/CurrencyInput.js +5 -2
  45. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  46. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +1 -0
  47. package/cjs/components/CurrencyLabel/CurrencyLabel.js +1 -0
  48. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  49. package/cjs/components/DateInput/DateFragmentsView.js +2 -1
  50. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  51. package/cjs/components/DateInput/DateInput.d.ts +3 -1
  52. package/cjs/components/DateInput/DateInput.js +5 -2
  53. package/cjs/components/DateInput/DateInput.js.map +1 -1
  54. package/cjs/components/DateInput/helpers/SelectionHelpers.js +11 -10
  55. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  56. package/cjs/components/DatePicker/DatePicker.d.ts +4 -2
  57. package/cjs/components/DatePicker/DatePicker.js +4 -2
  58. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  59. package/cjs/components/DatePicker/Picker.d.ts +1 -0
  60. package/cjs/components/DatePicker/Picker.js +2 -1
  61. package/cjs/components/DatePicker/Picker.js.map +1 -1
  62. package/cjs/components/Dropdown/Dropdown.d.ts +4 -2
  63. package/cjs/components/Dropdown/Dropdown.js +3 -1
  64. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  65. package/cjs/components/Dropdown/getDropdownTheme.js +21 -22
  66. package/cjs/components/Dropdown/getDropdownTheme.js.map +1 -1
  67. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  68. package/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
  69. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  70. package/cjs/components/FileUploader/FileUploader.d.ts +6 -2
  71. package/cjs/components/FileUploader/FileUploader.js +11 -6
  72. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  73. package/cjs/components/FileUploader/FileUploader.styles.d.ts +1 -1
  74. package/cjs/components/FileUploader/FileUploader.styles.js +10 -2
  75. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  76. package/cjs/components/FxInput/FxInput.d.ts +1 -0
  77. package/cjs/components/FxInput/FxInput.js +3 -1
  78. package/cjs/components/FxInput/FxInput.js.map +1 -1
  79. package/cjs/components/FxInput/FxInputRestoreBtn.js +1 -0
  80. package/cjs/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  81. package/cjs/components/Gapped/Gapped.d.ts +1 -0
  82. package/cjs/components/Gapped/Gapped.js +2 -1
  83. package/cjs/components/Gapped/Gapped.js.map +1 -1
  84. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +3 -2
  85. package/cjs/components/GlobalLoader/GlobalLoader.js +12 -14
  86. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  87. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +1 -2
  88. package/cjs/components/GlobalLoader/GlobalLoaderView.js +3 -5
  89. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  90. package/cjs/components/Group/Group.d.ts +1 -0
  91. package/cjs/components/Group/Group.js +3 -1
  92. package/cjs/components/Group/Group.js.map +1 -1
  93. package/cjs/components/Hint/Hint.d.ts +1 -0
  94. package/cjs/components/Hint/Hint.js +6 -4
  95. package/cjs/components/Hint/Hint.js.map +1 -1
  96. package/cjs/components/Input/Input.d.ts +29 -7
  97. package/cjs/components/Input/Input.js +50 -24
  98. package/cjs/components/Input/Input.js.map +1 -1
  99. package/cjs/components/Input/Input.typings.d.ts +7 -0
  100. package/cjs/components/Input/Input.typings.js +1 -0
  101. package/cjs/components/Input/Input.typings.js.map +1 -0
  102. package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -1
  103. package/cjs/components/Input/InputLayout/InputLayout.styles.js +7 -2
  104. package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  105. package/cjs/components/Input/InputLayout/InputLayoutAside.js +1 -7
  106. package/cjs/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  107. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -0
  108. package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
  109. package/cjs/components/Input/InputLayout/InputLayoutContext.d.ts +2 -2
  110. package/cjs/components/Input/InputLayout/InputLayoutContext.js.map +1 -1
  111. package/cjs/components/Input/index.d.ts +1 -0
  112. package/cjs/components/Input/index.js +2 -1
  113. package/cjs/components/Input/index.js.map +1 -1
  114. package/cjs/components/Kebab/Kebab.d.ts +3 -1
  115. package/cjs/components/Kebab/Kebab.js +4 -2
  116. package/cjs/components/Kebab/Kebab.js.map +1 -1
  117. package/cjs/components/Link/Link.d.ts +7 -2
  118. package/cjs/components/Link/Link.js +28 -18
  119. package/cjs/components/Link/Link.js.map +1 -1
  120. package/cjs/components/Link/Link.md +81 -7
  121. package/cjs/components/Link/Link.styles.d.ts +4 -1
  122. package/cjs/components/Link/Link.styles.js +42 -23
  123. package/cjs/components/Link/Link.styles.js.map +1 -1
  124. package/cjs/components/Link/LinkIcon.d.ts +6 -0
  125. package/cjs/components/Link/LinkIcon.js +29 -0
  126. package/cjs/components/Link/LinkIcon.js.map +1 -0
  127. package/cjs/components/Loader/Loader.d.ts +1 -0
  128. package/cjs/components/Loader/Loader.js +10 -8
  129. package/cjs/components/Loader/Loader.js.map +1 -1
  130. package/cjs/components/MaskedInput/MaskedInput.d.ts +24 -0
  131. package/cjs/components/MaskedInput/MaskedInput.js +78 -0
  132. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -0
  133. package/cjs/components/MaskedInput/MaskedInput.md +21 -0
  134. package/cjs/components/MaskedInput/index.js.map +1 -0
  135. package/cjs/components/MenuFooter/MenuFooter.d.ts +7 -2
  136. package/cjs/components/MenuFooter/MenuFooter.js +5 -0
  137. package/cjs/components/MenuFooter/MenuFooter.js.map +1 -1
  138. package/cjs/components/MenuHeader/MenuHeader.d.ts +7 -2
  139. package/cjs/components/MenuHeader/MenuHeader.js +8 -1
  140. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  141. package/cjs/components/MenuItem/MenuItem.d.ts +31 -2
  142. package/cjs/components/MenuItem/MenuItem.js +139 -18
  143. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  144. package/cjs/components/MenuItem/MenuItem.md +20 -6
  145. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +1 -0
  146. package/cjs/components/MenuSeparator/MenuSeparator.js +2 -1
  147. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  148. package/cjs/components/MiniModal/MiniModal.d.ts +18 -0
  149. package/cjs/components/MiniModal/MiniModal.js +45 -0
  150. package/cjs/components/MiniModal/MiniModal.js.map +1 -0
  151. package/cjs/components/MiniModal/MiniModal.md +233 -0
  152. package/cjs/components/MiniModal/MiniModal.styles.d.ts +14 -0
  153. package/cjs/components/MiniModal/MiniModal.styles.js +87 -0
  154. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -0
  155. package/cjs/components/MiniModal/MiniModalBody.d.ts +7 -0
  156. package/cjs/components/MiniModal/MiniModalBody.js +24 -0
  157. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -0
  158. package/cjs/components/MiniModal/MiniModalFooter.d.ts +18 -0
  159. package/cjs/components/MiniModal/MiniModalFooter.js +60 -0
  160. package/cjs/components/MiniModal/MiniModalFooter.js.map +1 -0
  161. package/cjs/components/MiniModal/MiniModalHeader.d.ts +17 -0
  162. package/cjs/components/MiniModal/MiniModalHeader.js +47 -0
  163. package/cjs/components/MiniModal/MiniModalHeader.js.map +1 -0
  164. package/cjs/components/MiniModal/MiniModalIndent.d.ts +6 -0
  165. package/cjs/components/MiniModal/MiniModalIndent.js +29 -0
  166. package/cjs/components/MiniModal/MiniModalIndent.js.map +1 -0
  167. package/cjs/components/MiniModal/getMiniModalTheme.d.ts +16 -0
  168. package/cjs/components/MiniModal/getMiniModalTheme.js +24 -0
  169. package/cjs/components/MiniModal/getMiniModalTheme.js.map +1 -0
  170. package/cjs/components/MiniModal/index.d.ts +5 -0
  171. package/cjs/components/MiniModal/index.js +5 -0
  172. package/cjs/components/MiniModal/index.js.map +1 -0
  173. package/cjs/components/Modal/Modal.d.ts +7 -0
  174. package/cjs/components/Modal/Modal.js +16 -1
  175. package/cjs/components/Modal/Modal.js.map +1 -1
  176. package/cjs/components/Modal/Modal.styles.d.ts +5 -0
  177. package/cjs/components/Modal/Modal.styles.js +56 -39
  178. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  179. package/cjs/components/Modal/ModalBody.d.ts +1 -0
  180. package/cjs/components/Modal/ModalBody.js +2 -1
  181. package/cjs/components/Modal/ModalBody.js.map +1 -1
  182. package/cjs/components/Modal/ModalClose.d.ts +4 -0
  183. package/cjs/components/Modal/ModalClose.js +6 -2
  184. package/cjs/components/Modal/ModalClose.js.map +1 -1
  185. package/cjs/components/Modal/ModalFooter.d.ts +1 -0
  186. package/cjs/components/Modal/ModalFooter.js +1 -0
  187. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  188. package/cjs/components/Modal/ModalHeader.d.ts +1 -0
  189. package/cjs/components/Modal/ModalHeader.js +2 -1
  190. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  191. package/cjs/components/Modal/ModalSeparator.d.ts +9 -0
  192. package/cjs/components/Modal/ModalSeparator.js +9 -1
  193. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  194. package/cjs/components/Modal/getModalTheme.d.ts +2 -2
  195. package/cjs/components/Modal/getModalTheme.js +6 -2
  196. package/cjs/components/Modal/getModalTheme.js.map +1 -1
  197. package/cjs/components/Paging/NavigationHelper.js +2 -1
  198. package/cjs/components/Paging/NavigationHelper.js.map +1 -1
  199. package/cjs/components/Paging/Paging.d.ts +1 -0
  200. package/cjs/components/Paging/Paging.js +27 -21
  201. package/cjs/components/Paging/Paging.js.map +1 -1
  202. package/cjs/components/Paging/Paging.styles.d.ts +0 -1
  203. package/cjs/components/Paging/Paging.styles.js +5 -10
  204. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  205. package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -0
  206. package/cjs/components/PasswordInput/PasswordInput.js +6 -3
  207. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  208. package/cjs/components/Radio/Radio.d.ts +7 -2
  209. package/cjs/components/Radio/Radio.js +8 -2
  210. package/cjs/components/Radio/Radio.js.map +1 -1
  211. package/cjs/components/RadioGroup/RadioGroup.d.ts +1 -0
  212. package/cjs/components/RadioGroup/RadioGroup.js +2 -1
  213. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  214. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -0
  215. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +4 -1
  216. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  217. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +5 -6
  218. package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
  219. package/cjs/components/ScrollContainer/ScrollBar.d.ts +4 -7
  220. package/cjs/components/ScrollContainer/ScrollBar.js +15 -45
  221. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  222. package/cjs/components/ScrollContainer/ScrollContainer.constants.js +1 -2
  223. package/cjs/components/ScrollContainer/ScrollContainer.constants.js.map +1 -1
  224. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +19 -3
  225. package/cjs/components/ScrollContainer/ScrollContainer.js +103 -21
  226. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  227. package/cjs/components/ScrollContainer/ScrollContainer.md +29 -2
  228. package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -4
  229. package/cjs/components/ScrollContainer/ScrollContainer.styles.js +8 -30
  230. package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
  231. package/cjs/components/Select/Item.d.ts +2 -0
  232. package/cjs/components/Select/Item.js +4 -2
  233. package/cjs/components/Select/Item.js.map +1 -1
  234. package/cjs/components/Select/Select.d.ts +8 -3
  235. package/cjs/components/Select/Select.js +31 -10
  236. package/cjs/components/Select/Select.js.map +1 -1
  237. package/cjs/components/Select/Select.md +12 -0
  238. package/cjs/components/SidePage/SidePage.d.ts +4 -1
  239. package/cjs/components/SidePage/SidePage.js +41 -5
  240. package/cjs/components/SidePage/SidePage.js.map +1 -1
  241. package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
  242. package/cjs/components/SidePage/SidePageBody.js +2 -1
  243. package/cjs/components/SidePage/SidePageBody.js.map +1 -1
  244. package/cjs/components/SidePage/SidePageCloseButton.d.ts +5 -1
  245. package/cjs/components/SidePage/SidePageCloseButton.js +6 -2
  246. package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
  247. package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
  248. package/cjs/components/SidePage/SidePageContainer.js +2 -1
  249. package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
  250. package/cjs/components/SidePage/SidePageFooter.d.ts +1 -0
  251. package/cjs/components/SidePage/SidePageFooter.js +2 -1
  252. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  253. package/cjs/components/SidePage/SidePageHeader.d.ts +2 -0
  254. package/cjs/components/SidePage/SidePageHeader.js +10 -7
  255. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  256. package/cjs/components/SingleToast/SingleToast.d.ts +13 -0
  257. package/cjs/components/SingleToast/SingleToast.js +23 -0
  258. package/cjs/components/SingleToast/SingleToast.js.map +1 -0
  259. package/cjs/components/SingleToast/SingleToast.md +35 -0
  260. package/cjs/components/SingleToast/index.d.ts +1 -0
  261. package/cjs/components/SingleToast/index.js +1 -0
  262. package/cjs/components/SingleToast/index.js.map +1 -0
  263. package/cjs/components/Spinner/Spinner.d.ts +2 -0
  264. package/cjs/components/Spinner/Spinner.js +17 -1
  265. package/cjs/components/Spinner/Spinner.js.map +1 -1
  266. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +6 -2
  267. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  268. package/cjs/components/Sticky/Sticky.d.ts +1 -0
  269. package/cjs/components/Sticky/Sticky.js +9 -9
  270. package/cjs/components/Sticky/Sticky.js.map +1 -1
  271. package/cjs/components/Switcher/Switcher.d.ts +9 -4
  272. package/cjs/components/Switcher/Switcher.js +6 -1
  273. package/cjs/components/Switcher/Switcher.js.map +1 -1
  274. package/cjs/components/Tabs/Indicator.js +3 -1
  275. package/cjs/components/Tabs/Indicator.js.map +1 -1
  276. package/cjs/components/Tabs/Tab.d.ts +17 -32
  277. package/cjs/components/Tabs/Tab.js +15 -26
  278. package/cjs/components/Tabs/Tab.js.map +1 -1
  279. package/cjs/components/Tabs/Tab.md +71 -0
  280. package/cjs/components/Tabs/Tab.styles.js.map +1 -1
  281. package/cjs/components/Tabs/Tabs.d.ts +14 -18
  282. package/cjs/components/Tabs/Tabs.js +7 -10
  283. package/cjs/components/Tabs/Tabs.js.map +1 -1
  284. package/cjs/components/Tabs/Tabs.md +7 -22
  285. package/cjs/components/Tabs/Tabs.styles.js.map +1 -1
  286. package/cjs/components/Tabs/TabsContext.d.ts +3 -2
  287. package/cjs/components/Tabs/TabsContext.js +1 -0
  288. package/cjs/components/Tabs/TabsContext.js.map +1 -1
  289. package/cjs/components/Tabs/helpers.d.ts +5 -5
  290. package/cjs/components/Tabs/helpers.js +3 -2
  291. package/cjs/components/Tabs/helpers.js.map +1 -1
  292. package/cjs/components/Textarea/Textarea.d.ts +8 -2
  293. package/cjs/components/Textarea/Textarea.js +44 -12
  294. package/cjs/components/Textarea/Textarea.js.map +1 -1
  295. package/cjs/components/Textarea/TextareaCounter.d.ts +4 -3
  296. package/cjs/components/Textarea/TextareaCounter.js +3 -1
  297. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  298. package/cjs/components/Textarea/TextareaHelpers.d.ts +1 -1
  299. package/cjs/components/Textarea/TextareaHelpers.js +7 -2
  300. package/cjs/components/Textarea/TextareaHelpers.js.map +1 -1
  301. package/cjs/components/Textarea/TextareaWithSafari17Workaround.d.ts +6 -0
  302. package/cjs/components/Textarea/TextareaWithSafari17Workaround.js +20 -0
  303. package/cjs/components/Textarea/TextareaWithSafari17Workaround.js.map +1 -0
  304. package/cjs/components/Toast/Toast.d.ts +11 -3
  305. package/cjs/components/Toast/Toast.js +29 -9
  306. package/cjs/components/Toast/Toast.js.map +1 -1
  307. package/cjs/components/Toast/Toast.md +0 -105
  308. package/cjs/components/Toast/ToastStatic.js +4 -3
  309. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  310. package/cjs/components/Toggle/Toggle.d.ts +7 -2
  311. package/cjs/components/Toggle/Toggle.js +6 -1
  312. package/cjs/components/Toggle/Toggle.js.map +1 -1
  313. package/cjs/components/Token/Token.d.ts +1 -0
  314. package/cjs/components/Token/Token.js +3 -1
  315. package/cjs/components/Token/Token.js.map +1 -1
  316. package/cjs/components/TokenInput/TokenInput.d.ts +3 -0
  317. package/cjs/components/TokenInput/TokenInput.js +43 -9
  318. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  319. package/cjs/components/TokenInput/TokenInput.md +71 -0
  320. package/cjs/components/TokenInput/TokenInputMenu.d.ts +1 -0
  321. package/cjs/components/TokenInput/TokenInputMenu.js +2 -1
  322. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  323. package/cjs/components/Tooltip/Tooltip.d.ts +7 -1
  324. package/cjs/components/Tooltip/Tooltip.js +16 -5
  325. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  326. package/cjs/components/Tooltip/Tooltip.md +24 -0
  327. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  328. package/cjs/components/TooltipMenu/TooltipMenu.js +3 -1
  329. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  330. package/cjs/hooks/useDrop.js +3 -2
  331. package/cjs/hooks/useDrop.js.map +1 -1
  332. package/cjs/index.d.ts +4 -0
  333. package/cjs/index.js +4 -0
  334. package/cjs/index.js.map +1 -1
  335. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +6 -2
  336. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  337. package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
  338. package/cjs/internal/CommonWrapper/CommonWrapper.js +7 -56
  339. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  340. package/cjs/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
  341. package/cjs/internal/CommonWrapper/extractCommonProps.js +34 -0
  342. package/cjs/internal/CommonWrapper/extractCommonProps.js.map +1 -0
  343. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
  344. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js +12 -0
  345. package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +1 -0
  346. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
  347. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js +23 -0
  348. package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +1 -0
  349. package/cjs/internal/CommonWrapper/index.d.ts +2 -0
  350. package/cjs/internal/CommonWrapper/index.js.map +1 -1
  351. package/cjs/internal/CommonWrapper/types.d.ts +25 -0
  352. package/cjs/internal/CommonWrapper/types.js +1 -0
  353. package/cjs/internal/CommonWrapper/types.js.map +1 -0
  354. package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +3 -1
  355. package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -1
  356. package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  357. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +7 -9
  358. package/cjs/internal/CustomComboBox/ComboBoxView.js +17 -34
  359. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  360. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +6 -2
  361. package/cjs/internal/CustomComboBox/CustomComboBox.js +36 -9
  362. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  363. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +1 -0
  364. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +33 -3
  365. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  366. package/cjs/internal/DateSelect/DateSelect.d.ts +1 -0
  367. package/cjs/internal/DateSelect/DateSelect.js +22 -17
  368. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  369. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -1
  370. package/cjs/internal/DropdownContainer/DropdownContainer.js +16 -14
  371. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  372. package/cjs/internal/DropdownContainer/getManualPosition.js +6 -4
  373. package/cjs/internal/DropdownContainer/getManualPosition.js.map +1 -1
  374. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -3
  375. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +4 -3
  376. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  377. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.d.ts +2 -2
  378. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.js +1 -1
  379. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.js.map +1 -1
  380. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -2
  381. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +2 -1
  382. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  383. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -2
  384. package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js.map +1 -1
  385. package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
  386. package/cjs/internal/FocusTrap/FocusTrap.js +10 -6
  387. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  388. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
  389. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +20 -20
  390. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  391. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +4 -1
  392. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  393. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  394. package/cjs/internal/InputLikeText/InputLikeText.js +18 -16
  395. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  396. package/cjs/internal/{MaskedInput/MaskedInput.d.ts → InternalMaskedInput/InternalMaskedInput.d.ts} +9 -5
  397. package/cjs/internal/{MaskedInput/MaskedInput.js → InternalMaskedInput/InternalMaskedInput.js} +12 -8
  398. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -0
  399. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.styles.js.map +1 -0
  400. package/cjs/internal/InternalMaskedInput/index.d.ts +1 -0
  401. package/cjs/internal/InternalMaskedInput/index.js +1 -0
  402. package/cjs/internal/InternalMaskedInput/index.js.map +1 -0
  403. package/cjs/internal/InternalMenu/InternalMenu.d.ts +1 -0
  404. package/cjs/internal/InternalMenu/InternalMenu.js +9 -7
  405. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  406. package/cjs/internal/MaskedInputElement/MaskedInputElement.d.ts +14 -0
  407. package/cjs/internal/MaskedInputElement/MaskedInputElement.helpers.d.ts +16 -0
  408. package/cjs/internal/MaskedInputElement/MaskedInputElement.helpers.js +52 -0
  409. package/cjs/internal/MaskedInputElement/MaskedInputElement.helpers.js.map +1 -0
  410. package/cjs/internal/MaskedInputElement/MaskedInputElement.js +196 -0
  411. package/cjs/internal/MaskedInputElement/MaskedInputElement.js.map +1 -0
  412. package/cjs/internal/MaskedInputElement/MaskedInputElement.styles.js +29 -0
  413. package/cjs/internal/MaskedInputElement/MaskedInputElement.styles.js.map +1 -0
  414. package/cjs/internal/MaskedInputElement/index.d.ts +1 -0
  415. package/cjs/internal/MaskedInputElement/index.js +1 -0
  416. package/cjs/internal/MaskedInputElement/index.js.map +1 -0
  417. package/cjs/internal/Menu/Menu.d.ts +7 -0
  418. package/cjs/internal/Menu/Menu.js +85 -16
  419. package/cjs/internal/Menu/Menu.js.map +1 -1
  420. package/cjs/internal/Menu/MenuContext.d.ts +10 -0
  421. package/cjs/internal/Menu/MenuContext.js +16 -0
  422. package/cjs/internal/Menu/MenuContext.js.map +1 -0
  423. package/cjs/internal/Menu/MenuNavigation.d.ts +26 -0
  424. package/cjs/internal/Menu/MenuNavigation.js +107 -0
  425. package/cjs/internal/Menu/MenuNavigation.js.map +1 -0
  426. package/cjs/internal/Menu/isActiveElement.js +1 -1
  427. package/cjs/internal/Menu/isActiveElement.js.map +1 -1
  428. package/cjs/internal/MenuMessage/MenuMessage.d.ts +3 -3
  429. package/cjs/internal/MenuMessage/MenuMessage.js.map +1 -1
  430. package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
  431. package/cjs/internal/MobilePopup/MobilePopup.js +2 -1
  432. package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
  433. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  434. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +2 -1
  435. package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  436. package/cjs/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  437. package/cjs/internal/NativeDateInput/NativeDateInput.js +3 -1
  438. package/cjs/internal/NativeDateInput/NativeDateInput.js.map +1 -1
  439. package/cjs/internal/Popup/Popup.d.ts +1 -0
  440. package/cjs/internal/Popup/Popup.js +14 -9
  441. package/cjs/internal/Popup/Popup.js.map +1 -1
  442. package/cjs/internal/Popup/PopupHelper.js +9 -7
  443. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  444. package/cjs/internal/Popup/PopupPin.d.ts +1 -0
  445. package/cjs/internal/Popup/PopupPin.js +2 -1
  446. package/cjs/internal/Popup/PopupPin.js.map +1 -1
  447. package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -0
  448. package/cjs/internal/PopupMenu/PopupMenu.js +5 -3
  449. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  450. package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -1
  451. package/cjs/internal/RenderContainer/RenderContainer.js +19 -22
  452. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  453. package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +3 -0
  454. package/cjs/internal/RenderContainer/RenderInnerContainer.js +9 -3
  455. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  456. package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -0
  457. package/cjs/internal/RenderLayer/RenderLayer.js +6 -3
  458. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  459. package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  460. package/cjs/internal/ResizeDetector/ResizeDetector.js +2 -1
  461. package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  462. package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -1
  463. package/cjs/internal/ThemePlayground/SizesGroup.js +1 -0
  464. package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
  465. package/cjs/internal/ThemePlayground/VariableValue.js +1 -0
  466. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  467. package/cjs/internal/ThemePlayground/constants.js +1 -0
  468. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  469. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  470. package/cjs/internal/ThemeShowcase/VariablesCollector.js +6 -4
  471. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  472. package/cjs/internal/ZIndex/ZIndex.d.ts +1 -0
  473. package/cjs/internal/ZIndex/ZIndex.js +3 -2
  474. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  475. package/cjs/internal/ZIndex/ZIndexStorage.js +2 -2
  476. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  477. package/cjs/internal/icons/16px/index.d.ts +19 -19
  478. package/cjs/internal/icons/20px/Icon.d.ts +1 -0
  479. package/cjs/internal/icons/20px/Icon.js +2 -1
  480. package/cjs/internal/icons/20px/Icon.js.map +1 -1
  481. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.d.ts +1 -1
  482. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.d.ts +1 -1
  483. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.d.ts +1 -1
  484. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.d.ts +1 -1
  485. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.d.ts +1 -1
  486. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.d.ts +1 -1
  487. package/cjs/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.d.ts +1 -1
  488. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.d.ts +1 -1
  489. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.d.ts +1 -1
  490. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.d.ts +1 -1
  491. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.d.ts +1 -1
  492. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.d.ts +1 -1
  493. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.d.ts +1 -1
  494. package/cjs/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.d.ts +1 -1
  495. package/cjs/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.d.ts +1 -1
  496. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.d.ts +1 -1
  497. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.d.ts +1 -1
  498. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.d.ts +1 -1
  499. package/cjs/internal/icons2022/BaseIcon.d.ts +1 -1
  500. package/cjs/internal/icons2022/BaseIcon.js +3 -7
  501. package/cjs/internal/icons2022/BaseIcon.js.map +1 -1
  502. package/cjs/internal/icons2022/BaseIcon.styles.d.ts +3 -0
  503. package/cjs/internal/icons2022/BaseIcon.styles.js +14 -0
  504. package/cjs/internal/icons2022/BaseIcon.styles.js.map +1 -0
  505. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon16Light.d.ts +1 -1
  506. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon20Light.d.ts +1 -1
  507. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon24Regular.d.ts +1 -1
  508. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Light.d.ts +1 -1
  509. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Regular.d.ts +1 -1
  510. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Solid.d.ts +1 -1
  511. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Light.d.ts +1 -1
  512. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Solid.d.ts +1 -1
  513. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon24Regular.d.ts +1 -1
  514. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.d.ts +1 -1
  515. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.d.ts +1 -1
  516. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.d.ts +1 -1
  517. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.d.ts +1 -1
  518. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.d.ts +1 -1
  519. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.d.ts +1 -1
  520. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.d.ts +2 -0
  521. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js +20 -0
  522. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js.map +1 -0
  523. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.d.ts +1 -1
  524. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.d.ts +1 -1
  525. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.d.ts +1 -1
  526. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.d.ts +1 -1
  527. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.d.ts +1 -1
  528. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.d.ts +1 -1
  529. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.d.ts +1 -1
  530. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.d.ts +1 -1
  531. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.d.ts +1 -1
  532. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.d.ts +1 -1
  533. package/cjs/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.d.ts +1 -1
  534. package/cjs/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.d.ts +1 -1
  535. package/cjs/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.d.ts +1 -1
  536. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.d.ts +1 -1
  537. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.d.ts +1 -1
  538. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.d.ts +1 -1
  539. package/cjs/internal/icons2022/XIcon/XIcon16Light.d.ts +1 -1
  540. package/cjs/internal/icons2022/XIcon/XIcon16Regular.d.ts +1 -1
  541. package/cjs/internal/icons2022/XIcon/XIcon20Light.d.ts +1 -1
  542. package/cjs/internal/icons2022/XIcon/XIcon20Regular.d.ts +1 -1
  543. package/cjs/internal/icons2022/XIcon/XIcon24Regular.d.ts +1 -1
  544. package/cjs/internal/themes/DefaultTheme.d.ts +70 -2
  545. package/cjs/internal/themes/DefaultTheme.js +135 -7
  546. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  547. package/cjs/internal/themes/Theme2022.d.ts +18 -2
  548. package/cjs/internal/themes/Theme2022.js +41 -5
  549. package/cjs/internal/themes/Theme2022.js.map +1 -1
  550. package/cjs/internal/themes/Theme2022Dark.d.ts +4 -4
  551. package/cjs/internal/themes/Theme2022Dark.js +9 -5
  552. package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
  553. package/cjs/lib/LayoutEvents.js +5 -4
  554. package/cjs/lib/LayoutEvents.js.map +1 -1
  555. package/cjs/lib/ModalStack.js +2 -3
  556. package/cjs/lib/ModalStack.js.map +1 -1
  557. package/cjs/lib/SSRSafe.d.ts +1 -6
  558. package/cjs/lib/SSRSafe.js +4 -48
  559. package/cjs/lib/SSRSafe.js.map +1 -1
  560. package/cjs/lib/Upgrades.d.ts +1 -0
  561. package/cjs/lib/Upgrades.js +3 -1
  562. package/cjs/lib/Upgrades.js.map +1 -1
  563. package/cjs/lib/animation/index.js +6 -4
  564. package/cjs/lib/animation/index.js.map +1 -1
  565. package/cjs/lib/chars.d.ts +1 -1
  566. package/cjs/lib/chars.js +2 -2
  567. package/cjs/lib/chars.js.map +1 -1
  568. package/cjs/lib/client.d.ts +2 -7
  569. package/cjs/lib/client.js +9 -7
  570. package/cjs/lib/client.js.map +1 -1
  571. package/cjs/lib/dom/getScrollWidth.js +4 -4
  572. package/cjs/lib/dom/getScrollWidth.js.map +1 -1
  573. package/cjs/lib/dom/tabbableHelpers.d.ts +2 -1
  574. package/cjs/lib/dom/tabbableHelpers.js +8 -2
  575. package/cjs/lib/dom/tabbableHelpers.js.map +1 -1
  576. package/cjs/lib/events/MouseDrag.js +11 -11
  577. package/cjs/lib/events/MouseDrag.js.map +1 -1
  578. package/cjs/lib/events/fixClickFocusIE.js +6 -3
  579. package/cjs/lib/events/fixClickFocusIE.js.map +1 -1
  580. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +5 -2
  581. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  582. package/cjs/lib/events/keyListener.js +9 -11
  583. package/cjs/lib/events/keyListener.js.map +1 -1
  584. package/cjs/lib/events/keyboard/identifiers.js +5 -2
  585. package/cjs/lib/events/keyboard/identifiers.js.map +1 -1
  586. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +223 -0
  587. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +9 -0
  588. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.js +5 -0
  589. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.js.map +1 -0
  590. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +11 -0
  591. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +24 -0
  592. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -0
  593. package/cjs/lib/featureFlagsContext/index.d.ts +2 -0
  594. package/cjs/lib/featureFlagsContext/index.js +3 -0
  595. package/cjs/lib/featureFlagsContext/index.js.map +1 -0
  596. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  597. package/cjs/lib/forwardRefAndName.js +4 -1
  598. package/cjs/lib/forwardRefAndName.js.map +1 -1
  599. package/cjs/lib/isInstanceOf.d.ts +1 -0
  600. package/cjs/lib/isInstanceOf.js +6 -0
  601. package/cjs/lib/isInstanceOf.js.map +1 -0
  602. package/cjs/lib/listenFocusOutside.js +15 -15
  603. package/cjs/lib/listenFocusOutside.js.map +1 -1
  604. package/cjs/lib/locale/LocaleContext.js +2 -1
  605. package/cjs/lib/locale/LocaleContext.js.map +1 -1
  606. package/cjs/lib/needsPolyfillPlaceholder.js +5 -3
  607. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -1
  608. package/cjs/lib/net/fetch.js +24 -18
  609. package/cjs/lib/net/fetch.js.map +1 -1
  610. package/cjs/lib/rootNode/getRootNode.js +6 -6
  611. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  612. package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -0
  613. package/cjs/lib/rootNode/rootNodeDecorator.js +4 -1
  614. package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
  615. package/cjs/lib/styles/ColorFactory.js +13 -11
  616. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  617. package/cjs/lib/styles/ColorHelpers.d.ts +1 -1
  618. package/cjs/lib/styles/ColorHelpers.js +3 -7
  619. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  620. package/cjs/lib/taskWithDelayAndMinimalDuration.js +5 -5
  621. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  622. package/cjs/lib/theming/Emotion.js +4 -2
  623. package/cjs/lib/theming/Emotion.js.map +1 -1
  624. package/cjs/lib/theming/ThemeContext.js +2 -1
  625. package/cjs/lib/theming/ThemeContext.js.map +1 -1
  626. package/cjs/lib/toKebabCase.d.ts +1 -0
  627. package/cjs/lib/toKebabCase.js +10 -0
  628. package/cjs/lib/toKebabCase.js.map +1 -0
  629. package/cjs/lib/types/props.d.ts +1 -0
  630. package/cjs/lib/types/props.js +1 -0
  631. package/cjs/lib/types/props.js.map +1 -0
  632. package/cjs/lib/utils.d.ts +7 -0
  633. package/cjs/lib/utils.js +29 -7
  634. package/cjs/lib/utils.js.map +1 -1
  635. package/cjs/typings/global-react.d.ts +12 -0
  636. package/cjs/typings/global.d.ts +3 -4
  637. package/components/Autocomplete/Autocomplete/Autocomplete.js +1 -1
  638. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  639. package/components/Autocomplete/Autocomplete.d.ts +3 -1
  640. package/components/Button/Button/Button.js +46 -33
  641. package/components/Button/Button/Button.js.map +1 -1
  642. package/components/Button/Button.d.ts +13 -3
  643. package/components/Button/Button.md +106 -30
  644. package/components/Button/Button.mixins/Button.mixins.js +2 -2
  645. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  646. package/components/Button/Button.mixins.d.ts +1 -1
  647. package/components/Button/Button.styles/Button.styles.js +24 -41
  648. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  649. package/components/Button/Button.styles.d.ts +1 -6
  650. package/components/Button/ButtonArrow/ButtonArrow.js +1 -1
  651. package/components/Button/ButtonArrow/ButtonArrow.js.map +1 -1
  652. package/components/Button/ButtonIcon/ButtonIcon.js +30 -19
  653. package/components/Button/ButtonIcon/ButtonIcon.js.map +1 -1
  654. package/components/Button/ButtonIcon.d.ts +7 -5
  655. package/components/Button/ButtonIcon.styles/ButtonIcon.styles.js +49 -0
  656. package/components/Button/ButtonIcon.styles/ButtonIcon.styles.js.map +1 -0
  657. package/components/Button/ButtonIcon.styles/package.json +6 -0
  658. package/components/Button/ButtonIcon.styles.d.ts +16 -0
  659. package/components/Button/LoadingButtonIcon/LoadingButtonIcon.js +23 -0
  660. package/components/Button/LoadingButtonIcon/LoadingButtonIcon.js.map +1 -0
  661. package/components/Button/LoadingButtonIcon/package.json +6 -0
  662. package/components/Button/LoadingButtonIcon.d.ts +7 -0
  663. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +1 -0
  664. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
  665. package/components/Calendar/Calendar/Calendar.js +9 -7
  666. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  667. package/components/Calendar/Calendar.d.ts +1 -0
  668. package/components/Calendar/DayCellView/DayCellView.js +9 -3
  669. package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
  670. package/components/Center/Center/Center.js +1 -1
  671. package/components/Center/Center/Center.js.map +1 -1
  672. package/components/Center/Center.d.ts +1 -0
  673. package/components/Checkbox/Checkbox/Checkbox.js +15 -6
  674. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  675. package/components/Checkbox/Checkbox.d.ts +7 -2
  676. package/components/ComboBox/ComboBox/ComboBox.js +1 -1
  677. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  678. package/components/ComboBox/ComboBox.d.ts +3 -1
  679. package/components/ComboBox/ComboBox.md +4 -5
  680. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +4 -2
  681. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  682. package/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  683. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -0
  684. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  685. package/components/CurrencyLabel/CurrencyLabel.d.ts +1 -0
  686. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +4 -1
  687. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  688. package/components/DateInput/DateInput/DateInput.js +3 -2
  689. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  690. package/components/DateInput/DateInput.d.ts +3 -1
  691. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +10 -10
  692. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  693. package/components/DatePicker/DatePicker/DatePicker.js +2 -2
  694. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  695. package/components/DatePicker/DatePicker.d.ts +4 -2
  696. package/components/DatePicker/Picker/Picker.js +1 -1
  697. package/components/DatePicker/Picker/Picker.js.map +1 -1
  698. package/components/DatePicker/Picker.d.ts +1 -0
  699. package/components/Dropdown/Dropdown/Dropdown.js +1 -1
  700. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  701. package/components/Dropdown/Dropdown.d.ts +4 -2
  702. package/components/Dropdown/getDropdownTheme/getDropdownTheme.js +21 -22
  703. package/components/Dropdown/getDropdownTheme/getDropdownTheme.js.map +1 -1
  704. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  705. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  706. package/components/DropdownMenu/DropdownMenu.d.ts +1 -0
  707. package/components/FileUploader/FileUploader/FileUploader.js +11 -6
  708. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  709. package/components/FileUploader/FileUploader.d.ts +6 -2
  710. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +2 -2
  711. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  712. package/components/FileUploader/FileUploader.styles.d.ts +1 -1
  713. package/components/FxInput/FxInput/FxInput.js +1 -1
  714. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  715. package/components/FxInput/FxInput.d.ts +1 -0
  716. package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js.map +1 -1
  717. package/components/Gapped/Gapped/Gapped.js +1 -1
  718. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  719. package/components/Gapped/Gapped.d.ts +1 -0
  720. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +31 -35
  721. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  722. package/components/GlobalLoader/GlobalLoader.d.ts +3 -2
  723. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +2 -3
  724. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  725. package/components/GlobalLoader/GlobalLoaderView.d.ts +1 -2
  726. package/components/Group/Group/Group.js +1 -1
  727. package/components/Group/Group/Group.js.map +1 -1
  728. package/components/Group/Group.d.ts +1 -0
  729. package/components/Hint/Hint/Hint.js +6 -6
  730. package/components/Hint/Hint/Hint.js.map +1 -1
  731. package/components/Hint/Hint.d.ts +1 -0
  732. package/components/Input/Input/Input.js +33 -17
  733. package/components/Input/Input/Input.js.map +1 -1
  734. package/components/Input/Input.d.ts +29 -7
  735. package/components/Input/Input.typings/Input.typings.js +1 -0
  736. package/components/Input/Input.typings/Input.typings.js.map +1 -0
  737. package/components/Input/Input.typings/package.json +6 -0
  738. package/components/Input/Input.typings.d.ts +7 -0
  739. package/components/Input/InputLayout/InputLayout.d.ts +1 -1
  740. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -1
  741. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
  742. package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js +1 -2
  743. package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js.map +1 -1
  744. package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
  745. package/components/Input/InputLayout/InputLayoutContext/InputLayoutContext.js.map +1 -1
  746. package/components/Input/InputLayout/InputLayoutContext.d.ts +2 -2
  747. package/components/Input/index/index.js +2 -1
  748. package/components/Input/index/index.js.map +1 -1
  749. package/components/Input/index.d.ts +1 -0
  750. package/components/Kebab/Kebab/Kebab.js +3 -2
  751. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  752. package/components/Kebab/Kebab.d.ts +3 -1
  753. package/components/Link/Link/Link.js +21 -20
  754. package/components/Link/Link/Link.js.map +1 -1
  755. package/components/Link/Link.d.ts +7 -2
  756. package/components/Link/Link.md +81 -7
  757. package/components/Link/Link.styles/Link.styles.js +32 -23
  758. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  759. package/components/Link/Link.styles.d.ts +4 -1
  760. package/components/Link/LinkIcon/LinkIcon.js +19 -0
  761. package/components/Link/LinkIcon/LinkIcon.js.map +1 -0
  762. package/components/Link/LinkIcon/package.json +6 -0
  763. package/components/Link/LinkIcon.d.ts +6 -0
  764. package/components/Loader/Loader/Loader.js +10 -7
  765. package/components/Loader/Loader/Loader.js.map +1 -1
  766. package/components/Loader/Loader.d.ts +1 -0
  767. package/components/MaskedInput/MaskedInput/MaskedInput.js +62 -0
  768. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -0
  769. package/{internal → components}/MaskedInput/MaskedInput/package.json +1 -1
  770. package/components/MaskedInput/MaskedInput.d.ts +24 -0
  771. package/components/MaskedInput/MaskedInput.md +21 -0
  772. package/components/MaskedInput/index/index.js.map +1 -0
  773. package/components/MaskedInput/index/package.json +6 -0
  774. package/components/MaskedInput/package.json +6 -0
  775. package/components/MenuFooter/MenuFooter/MenuFooter.js +5 -0
  776. package/components/MenuFooter/MenuFooter/MenuFooter.js.map +1 -1
  777. package/components/MenuFooter/MenuFooter.d.ts +7 -2
  778. package/components/MenuHeader/MenuHeader/MenuHeader.js +8 -1
  779. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  780. package/components/MenuHeader/MenuHeader.d.ts +7 -2
  781. package/components/MenuItem/MenuItem/MenuItem.js +158 -21
  782. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  783. package/components/MenuItem/MenuItem.d.ts +31 -2
  784. package/components/MenuItem/MenuItem.md +20 -6
  785. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +1 -0
  786. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  787. package/components/MenuSeparator/MenuSeparator.d.ts +1 -0
  788. package/components/MiniModal/MiniModal/MiniModal.js +37 -0
  789. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -0
  790. package/components/MiniModal/MiniModal/package.json +6 -0
  791. package/components/MiniModal/MiniModal.d.ts +18 -0
  792. package/components/MiniModal/MiniModal.md +233 -0
  793. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +41 -0
  794. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -0
  795. package/components/MiniModal/MiniModal.styles/package.json +6 -0
  796. package/components/MiniModal/MiniModal.styles.d.ts +14 -0
  797. package/components/MiniModal/MiniModalBody/MiniModalBody.js +23 -0
  798. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -0
  799. package/components/MiniModal/MiniModalBody/package.json +6 -0
  800. package/components/MiniModal/MiniModalBody.d.ts +7 -0
  801. package/components/MiniModal/MiniModalFooter/MiniModalFooter.js +35 -0
  802. package/components/MiniModal/MiniModalFooter/MiniModalFooter.js.map +1 -0
  803. package/components/MiniModal/MiniModalFooter/package.json +6 -0
  804. package/components/MiniModal/MiniModalFooter.d.ts +18 -0
  805. package/components/MiniModal/MiniModalHeader/MiniModalHeader.js +33 -0
  806. package/components/MiniModal/MiniModalHeader/MiniModalHeader.js.map +1 -0
  807. package/components/MiniModal/MiniModalHeader/package.json +6 -0
  808. package/components/MiniModal/MiniModalHeader.d.ts +17 -0
  809. package/components/MiniModal/MiniModalIndent/MiniModalIndent.js +27 -0
  810. package/components/MiniModal/MiniModalIndent/MiniModalIndent.js.map +1 -0
  811. package/components/MiniModal/MiniModalIndent/package.json +6 -0
  812. package/components/MiniModal/MiniModalIndent.d.ts +6 -0
  813. package/components/MiniModal/getMiniModalTheme/getMiniModalTheme.js +23 -0
  814. package/components/MiniModal/getMiniModalTheme/getMiniModalTheme.js.map +1 -0
  815. package/components/MiniModal/getMiniModalTheme/package.json +6 -0
  816. package/components/MiniModal/getMiniModalTheme.d.ts +16 -0
  817. package/components/MiniModal/index/index.js +5 -0
  818. package/components/MiniModal/index/index.js.map +1 -0
  819. package/{internal/MaskedInput → components/MiniModal}/index/package.json +1 -1
  820. package/components/MiniModal/index.d.ts +5 -0
  821. package/{internal/MaskedInput → components/MiniModal}/package.json +1 -1
  822. package/components/Modal/Modal/Modal.js +19 -14
  823. package/components/Modal/Modal/Modal.js.map +1 -1
  824. package/components/Modal/Modal.d.ts +7 -0
  825. package/components/Modal/Modal.styles/Modal.styles.js +44 -37
  826. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  827. package/components/Modal/Modal.styles.d.ts +5 -0
  828. package/components/Modal/ModalBody/ModalBody.js +1 -1
  829. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  830. package/components/Modal/ModalBody.d.ts +1 -0
  831. package/components/Modal/ModalClose/ModalClose.js +5 -2
  832. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  833. package/components/Modal/ModalClose.d.ts +4 -0
  834. package/components/Modal/ModalFooter/ModalFooter.js +1 -0
  835. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  836. package/components/Modal/ModalFooter.d.ts +1 -0
  837. package/components/Modal/ModalHeader/ModalHeader.js +2 -1
  838. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  839. package/components/Modal/ModalHeader.d.ts +1 -0
  840. package/components/Modal/ModalSeparator/ModalSeparator.js +9 -1
  841. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  842. package/components/Modal/ModalSeparator.d.ts +9 -0
  843. package/components/Modal/getModalTheme/getModalTheme.js +8 -3
  844. package/components/Modal/getModalTheme/getModalTheme.js.map +1 -1
  845. package/components/Modal/getModalTheme.d.ts +2 -2
  846. package/components/Paging/NavigationHelper/NavigationHelper.js +2 -1
  847. package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
  848. package/components/Paging/Paging/Paging.js +28 -16
  849. package/components/Paging/Paging/Paging.js.map +1 -1
  850. package/components/Paging/Paging.d.ts +1 -0
  851. package/components/Paging/Paging.styles/Paging.styles.js +3 -6
  852. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  853. package/components/Paging/Paging.styles.d.ts +0 -1
  854. package/components/PasswordInput/PasswordInput/PasswordInput.js +5 -3
  855. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  856. package/components/PasswordInput/PasswordInput.d.ts +1 -0
  857. package/components/Radio/Radio/Radio.js +7 -2
  858. package/components/Radio/Radio/Radio.js.map +1 -1
  859. package/components/Radio/Radio.d.ts +7 -2
  860. package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -1
  861. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  862. package/components/RadioGroup/RadioGroup.d.ts +1 -0
  863. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +3 -1
  864. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  865. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -0
  866. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +5 -6
  867. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  868. package/components/ScrollContainer/ScrollBar/ScrollBar.js +17 -50
  869. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  870. package/components/ScrollContainer/ScrollBar.d.ts +4 -7
  871. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +110 -23
  872. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  873. package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js +1 -2
  874. package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js.map +1 -1
  875. package/components/ScrollContainer/ScrollContainer.d.ts +19 -3
  876. package/components/ScrollContainer/ScrollContainer.md +29 -2
  877. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +6 -18
  878. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  879. package/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -4
  880. package/components/Select/Item/Item.js +5 -2
  881. package/components/Select/Item/Item.js.map +1 -1
  882. package/components/Select/Item.d.ts +2 -0
  883. package/components/Select/Select/Select.js +27 -18
  884. package/components/Select/Select/Select.js.map +1 -1
  885. package/components/Select/Select.d.ts +8 -3
  886. package/components/Select/Select.md +12 -0
  887. package/components/SidePage/SidePage/SidePage.js +39 -13
  888. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  889. package/components/SidePage/SidePage.d.ts +4 -1
  890. package/components/SidePage/SidePageBody/SidePageBody.js +1 -1
  891. package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
  892. package/components/SidePage/SidePageBody.d.ts +1 -0
  893. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +5 -2
  894. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
  895. package/components/SidePage/SidePageCloseButton.d.ts +5 -1
  896. package/components/SidePage/SidePageContainer/SidePageContainer.js +1 -1
  897. package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
  898. package/components/SidePage/SidePageContainer.d.ts +1 -0
  899. package/components/SidePage/SidePageFooter/SidePageFooter.js +1 -1
  900. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  901. package/components/SidePage/SidePageFooter.d.ts +1 -0
  902. package/components/SidePage/SidePageHeader/SidePageHeader.js +7 -5
  903. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  904. package/components/SidePage/SidePageHeader.d.ts +2 -0
  905. package/components/SingleToast/SingleToast/SingleToast.js +55 -0
  906. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -0
  907. package/components/SingleToast/SingleToast/package.json +6 -0
  908. package/components/SingleToast/SingleToast.d.ts +13 -0
  909. package/components/SingleToast/SingleToast.md +35 -0
  910. package/components/SingleToast/index/index.js +1 -0
  911. package/components/SingleToast/index/index.js.map +1 -0
  912. package/components/SingleToast/index/package.json +6 -0
  913. package/components/SingleToast/index.d.ts +1 -0
  914. package/components/SingleToast/package.json +6 -0
  915. package/components/Spinner/Spinner/Spinner.js +11 -5
  916. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  917. package/components/Spinner/Spinner.d.ts +2 -0
  918. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +5 -2
  919. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  920. package/components/Sticky/Sticky/Sticky.js +13 -9
  921. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  922. package/components/Sticky/Sticky.d.ts +1 -0
  923. package/components/Switcher/Switcher/Switcher.js +5 -1
  924. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  925. package/components/Switcher/Switcher.d.ts +9 -4
  926. package/components/Tabs/Indicator/Indicator.js +3 -1
  927. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  928. package/components/Tabs/Tab/Tab.js +13 -16
  929. package/components/Tabs/Tab/Tab.js.map +1 -1
  930. package/components/Tabs/Tab.d.ts +17 -32
  931. package/components/Tabs/Tab.md +71 -0
  932. package/components/Tabs/Tab.styles/Tab.styles.js.map +1 -1
  933. package/components/Tabs/Tabs/Tabs.js +5 -5
  934. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  935. package/components/Tabs/Tabs.d.ts +14 -18
  936. package/components/Tabs/Tabs.md +7 -22
  937. package/components/Tabs/Tabs.styles/Tabs.styles.js.map +1 -1
  938. package/components/Tabs/TabsContext/TabsContext.js.map +1 -1
  939. package/components/Tabs/TabsContext.d.ts +3 -2
  940. package/components/Tabs/helpers/helpers.js +3 -0
  941. package/components/Tabs/helpers/helpers.js.map +1 -1
  942. package/components/Tabs/helpers.d.ts +5 -5
  943. package/components/Textarea/Textarea/Textarea.js +38 -20
  944. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  945. package/components/Textarea/Textarea.d.ts +8 -2
  946. package/components/Textarea/TextareaCounter/TextareaCounter.js +2 -3
  947. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  948. package/components/Textarea/TextareaCounter.d.ts +4 -3
  949. package/components/Textarea/TextareaHelpers/TextareaHelpers.js +6 -1
  950. package/components/Textarea/TextareaHelpers/TextareaHelpers.js.map +1 -1
  951. package/components/Textarea/TextareaHelpers.d.ts +1 -1
  952. package/components/Textarea/TextareaWithSafari17Workaround/TextareaWithSafari17Workaround.js +21 -0
  953. package/components/Textarea/TextareaWithSafari17Workaround/TextareaWithSafari17Workaround.js.map +1 -0
  954. package/components/Textarea/TextareaWithSafari17Workaround/package.json +6 -0
  955. package/components/Textarea/TextareaWithSafari17Workaround.d.ts +6 -0
  956. package/components/Toast/Toast/Toast.js +17 -8
  957. package/components/Toast/Toast/Toast.js.map +1 -1
  958. package/components/Toast/Toast.d.ts +11 -3
  959. package/components/Toast/Toast.md +0 -105
  960. package/components/Toast/ToastStatic/ToastStatic.js +4 -4
  961. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  962. package/components/Toggle/Toggle/Toggle.js +5 -1
  963. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  964. package/components/Toggle/Toggle.d.ts +7 -2
  965. package/components/Token/Token/Token.js +5 -4
  966. package/components/Token/Token/Token.js.map +1 -1
  967. package/components/Token/Token.d.ts +1 -0
  968. package/components/TokenInput/TokenInput/TokenInput.js +52 -12
  969. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  970. package/components/TokenInput/TokenInput.d.ts +3 -0
  971. package/components/TokenInput/TokenInput.md +71 -0
  972. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -1
  973. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  974. package/components/TokenInput/TokenInputMenu.d.ts +1 -0
  975. package/components/Tooltip/Tooltip/Tooltip.js +11 -8
  976. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  977. package/components/Tooltip/Tooltip.d.ts +7 -1
  978. package/components/Tooltip/Tooltip.md +24 -0
  979. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +1 -1
  980. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  981. package/components/TooltipMenu/TooltipMenu.d.ts +1 -0
  982. package/hooks/useDrop/useDrop.js +3 -2
  983. package/hooks/useDrop/useDrop.js.map +1 -1
  984. package/index.d.ts +4 -0
  985. package/index.js +4 -0
  986. package/index.js.map +1 -1
  987. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js +5 -2
  988. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  989. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +8 -38
  990. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  991. package/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
  992. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js +31 -0
  993. package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +1 -0
  994. package/internal/CommonWrapper/extractCommonProps/package.json +6 -0
  995. package/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
  996. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js +12 -0
  997. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
  998. package/internal/CommonWrapper/getCommonVisualStateDataAttributes/package.json +6 -0
  999. package/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
  1000. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js +16 -0
  1001. package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
  1002. package/internal/CommonWrapper/getVisualStateDataAttributes/package.json +6 -0
  1003. package/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
  1004. package/internal/CommonWrapper/index/index.js +2 -1
  1005. package/internal/CommonWrapper/index/index.js.map +1 -1
  1006. package/internal/CommonWrapper/index.d.ts +2 -0
  1007. package/internal/CommonWrapper/types/package.json +6 -0
  1008. package/internal/CommonWrapper/types/types.js +1 -0
  1009. package/internal/CommonWrapper/types/types.js.map +1 -0
  1010. package/internal/CommonWrapper/types.d.ts +25 -0
  1011. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +1 -1
  1012. package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
  1013. package/internal/CustomComboBox/ComboBoxMenu.d.ts +3 -1
  1014. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +22 -33
  1015. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  1016. package/internal/CustomComboBox/ComboBoxView.d.ts +7 -9
  1017. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +22 -12
  1018. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  1019. package/internal/CustomComboBox/CustomComboBox.d.ts +6 -2
  1020. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +31 -2
  1021. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  1022. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +1 -0
  1023. package/internal/DateSelect/DateSelect/DateSelect.js +21 -21
  1024. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  1025. package/internal/DateSelect/DateSelect.d.ts +1 -0
  1026. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +20 -17
  1027. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  1028. package/internal/DropdownContainer/DropdownContainer.d.ts +1 -1
  1029. package/internal/DropdownContainer/getManualPosition/getManualPosition.js +4 -3
  1030. package/internal/DropdownContainer/getManualPosition/getManualPosition.js.map +1 -1
  1031. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +3 -2
  1032. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  1033. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -3
  1034. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon/FileUploaderFileStatusIcon.js.map +1 -1
  1035. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.d.ts +2 -2
  1036. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +1 -0
  1037. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
  1038. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -2
  1039. package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js.map +1 -1
  1040. package/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -2
  1041. package/internal/FocusTrap/FocusTrap/FocusTrap.js +10 -4
  1042. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  1043. package/internal/FocusTrap/FocusTrap.d.ts +1 -0
  1044. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +26 -26
  1045. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  1046. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
  1047. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +4 -2
  1048. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  1049. package/internal/InputLikeText/InputLikeText/InputLikeText.js +30 -20
  1050. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  1051. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  1052. package/internal/{MaskedInput/MaskedInput/MaskedInput.js → InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js} +14 -9
  1053. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -0
  1054. package/internal/InternalMaskedInput/InternalMaskedInput/package.json +6 -0
  1055. package/internal/{MaskedInput/MaskedInput.d.ts → InternalMaskedInput/InternalMaskedInput.d.ts} +9 -5
  1056. package/{cjs/internal/MaskedInput/MaskedInput.styles.js.map → internal/InternalMaskedInput/InternalMaskedInput.styles/InternalMaskedInput.styles.js.map} +1 -1
  1057. package/internal/InternalMaskedInput/InternalMaskedInput.styles/package.json +6 -0
  1058. package/internal/InternalMaskedInput/InternalMaskedInput.styles.d.ts +6 -0
  1059. package/internal/InternalMaskedInput/index/index.js +1 -0
  1060. package/internal/InternalMaskedInput/index/index.js.map +1 -0
  1061. package/internal/InternalMaskedInput/index/package.json +6 -0
  1062. package/internal/InternalMaskedInput/index.d.ts +1 -0
  1063. package/internal/InternalMaskedInput/package.json +6 -0
  1064. package/internal/InternalMenu/InternalMenu/InternalMenu.js +11 -10
  1065. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  1066. package/internal/InternalMenu/InternalMenu.d.ts +1 -0
  1067. package/internal/MaskedInputElement/MaskedInputElement/MaskedInputElement.js +206 -0
  1068. package/internal/MaskedInputElement/MaskedInputElement/MaskedInputElement.js.map +1 -0
  1069. package/internal/MaskedInputElement/MaskedInputElement/package.json +6 -0
  1070. package/internal/MaskedInputElement/MaskedInputElement.d.ts +14 -0
  1071. package/internal/MaskedInputElement/MaskedInputElement.helpers/MaskedInputElement.helpers.js +43 -0
  1072. package/internal/MaskedInputElement/MaskedInputElement.helpers/MaskedInputElement.helpers.js.map +1 -0
  1073. package/internal/MaskedInputElement/MaskedInputElement.helpers/package.json +6 -0
  1074. package/internal/MaskedInputElement/MaskedInputElement.helpers.d.ts +16 -0
  1075. package/internal/MaskedInputElement/MaskedInputElement.styles/MaskedInputElement.styles.js +16 -0
  1076. package/internal/MaskedInputElement/MaskedInputElement.styles/MaskedInputElement.styles.js.map +1 -0
  1077. package/internal/MaskedInputElement/MaskedInputElement.styles/package.json +6 -0
  1078. package/internal/MaskedInputElement/MaskedInputElement.styles.d.ts +6 -0
  1079. package/internal/MaskedInputElement/index/index.js +1 -0
  1080. package/internal/MaskedInputElement/index/index.js.map +1 -0
  1081. package/internal/MaskedInputElement/index/package.json +6 -0
  1082. package/internal/MaskedInputElement/index.d.ts +1 -0
  1083. package/internal/MaskedInputElement/package.json +6 -0
  1084. package/internal/Menu/Menu/Menu.js +145 -63
  1085. package/internal/Menu/Menu/Menu.js.map +1 -1
  1086. package/internal/Menu/Menu.d.ts +7 -0
  1087. package/internal/Menu/MenuContext/MenuContext.js +5 -0
  1088. package/internal/Menu/MenuContext/MenuContext.js.map +1 -0
  1089. package/internal/Menu/MenuContext/package.json +6 -0
  1090. package/internal/Menu/MenuContext.d.ts +10 -0
  1091. package/internal/Menu/MenuNavigation/MenuNavigation.js +123 -0
  1092. package/internal/Menu/MenuNavigation/MenuNavigation.js.map +1 -0
  1093. package/internal/Menu/MenuNavigation/package.json +6 -0
  1094. package/internal/Menu/MenuNavigation.d.ts +26 -0
  1095. package/internal/Menu/isActiveElement/isActiveElement.js +1 -1
  1096. package/internal/Menu/isActiveElement/isActiveElement.js.map +1 -1
  1097. package/internal/MenuMessage/MenuMessage/MenuMessage.js.map +1 -1
  1098. package/internal/MenuMessage/MenuMessage.d.ts +3 -3
  1099. package/internal/MobilePopup/MobilePopup/MobilePopup.js +2 -1
  1100. package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
  1101. package/internal/MobilePopup/MobilePopup.d.ts +1 -0
  1102. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -1
  1103. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  1104. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
  1105. package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js +2 -1
  1106. package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js.map +1 -1
  1107. package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
  1108. package/internal/Popup/Popup/Popup.js +13 -14
  1109. package/internal/Popup/Popup/Popup.js.map +1 -1
  1110. package/internal/Popup/Popup.d.ts +1 -0
  1111. package/internal/Popup/PopupHelper/PopupHelper.js +8 -5
  1112. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  1113. package/internal/Popup/PopupPin/PopupPin.js +1 -0
  1114. package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
  1115. package/internal/Popup/PopupPin.d.ts +1 -0
  1116. package/internal/PopupMenu/PopupMenu/PopupMenu.js +4 -3
  1117. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  1118. package/internal/PopupMenu/PopupMenu.d.ts +1 -0
  1119. package/internal/RenderContainer/RenderContainer/RenderContainer.js +27 -16
  1120. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  1121. package/internal/RenderContainer/RenderContainer.d.ts +1 -1
  1122. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +6 -4
  1123. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  1124. package/internal/RenderContainer/RenderInnerContainer.d.ts +3 -0
  1125. package/internal/RenderLayer/RenderLayer/RenderLayer.js +12 -6
  1126. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  1127. package/internal/RenderLayer/RenderLayer.d.ts +1 -0
  1128. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +2 -1
  1129. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
  1130. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  1131. package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
  1132. package/internal/ThemePlayground/SizesGroup.d.ts +2 -1
  1133. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  1134. package/internal/ThemePlayground/constants/constants.js +3 -0
  1135. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  1136. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +5 -2
  1137. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  1138. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  1139. package/internal/ZIndex/ZIndex/ZIndex.js +3 -3
  1140. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  1141. package/internal/ZIndex/ZIndex.d.ts +1 -0
  1142. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +2 -2
  1143. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  1144. package/internal/icons/16px/index.d.ts +19 -19
  1145. package/internal/icons/20px/Icon/Icon.js +1 -0
  1146. package/internal/icons/20px/Icon/Icon.js.map +1 -1
  1147. package/internal/icons/20px/Icon.d.ts +1 -0
  1148. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.d.ts +1 -1
  1149. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.d.ts +1 -1
  1150. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.d.ts +1 -1
  1151. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.d.ts +1 -1
  1152. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.d.ts +1 -1
  1153. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.d.ts +1 -1
  1154. package/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.d.ts +1 -1
  1155. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.d.ts +1 -1
  1156. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.d.ts +1 -1
  1157. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.d.ts +1 -1
  1158. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.d.ts +1 -1
  1159. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.d.ts +1 -1
  1160. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.d.ts +1 -1
  1161. package/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.d.ts +1 -1
  1162. package/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.d.ts +1 -1
  1163. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.d.ts +1 -1
  1164. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.d.ts +1 -1
  1165. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.d.ts +1 -1
  1166. package/internal/icons2022/BaseIcon/BaseIcon.js +3 -6
  1167. package/internal/icons2022/BaseIcon/BaseIcon.js.map +1 -1
  1168. package/internal/icons2022/BaseIcon.d.ts +1 -1
  1169. package/internal/icons2022/BaseIcon.styles/BaseIcon.styles.js +11 -0
  1170. package/internal/icons2022/BaseIcon.styles/BaseIcon.styles.js.map +1 -0
  1171. package/internal/icons2022/BaseIcon.styles/package.json +6 -0
  1172. package/internal/icons2022/BaseIcon.styles.d.ts +3 -0
  1173. package/internal/icons2022/CalendarIcon/CalendarIcon16Light.d.ts +1 -1
  1174. package/internal/icons2022/CalendarIcon/CalendarIcon20Light.d.ts +1 -1
  1175. package/internal/icons2022/CalendarIcon/CalendarIcon24Regular.d.ts +1 -1
  1176. package/internal/icons2022/CheckAIcon/CheckAIcon16Light.d.ts +1 -1
  1177. package/internal/icons2022/CheckAIcon/CheckAIcon16Regular.d.ts +1 -1
  1178. package/internal/icons2022/CheckAIcon/CheckAIcon16Solid.d.ts +1 -1
  1179. package/internal/icons2022/CheckAIcon/CheckAIcon20Light.d.ts +1 -1
  1180. package/internal/icons2022/CheckAIcon/CheckAIcon20Solid.d.ts +1 -1
  1181. package/internal/icons2022/CheckAIcon/CheckAIcon24Regular.d.ts +1 -1
  1182. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.d.ts +1 -1
  1183. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.d.ts +1 -1
  1184. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.d.ts +1 -1
  1185. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.d.ts +1 -1
  1186. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.d.ts +1 -1
  1187. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.d.ts +1 -1
  1188. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/InfoCircleIcon64Regular.js +18 -0
  1189. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/InfoCircleIcon64Regular.js.map +1 -0
  1190. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/package.json +6 -0
  1191. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.d.ts +2 -0
  1192. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.d.ts +1 -1
  1193. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.d.ts +1 -1
  1194. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.d.ts +1 -1
  1195. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.d.ts +1 -1
  1196. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.d.ts +1 -1
  1197. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.d.ts +1 -1
  1198. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.d.ts +1 -1
  1199. package/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.d.ts +1 -1
  1200. package/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.d.ts +1 -1
  1201. package/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.d.ts +1 -1
  1202. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.d.ts +1 -1
  1203. package/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.d.ts +1 -1
  1204. package/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.d.ts +1 -1
  1205. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.d.ts +1 -1
  1206. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.d.ts +1 -1
  1207. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.d.ts +1 -1
  1208. package/internal/icons2022/XIcon/XIcon16Light.d.ts +1 -1
  1209. package/internal/icons2022/XIcon/XIcon16Regular.d.ts +1 -1
  1210. package/internal/icons2022/XIcon/XIcon20Light.d.ts +1 -1
  1211. package/internal/icons2022/XIcon/XIcon20Regular.d.ts +1 -1
  1212. package/internal/icons2022/XIcon/XIcon24Regular.d.ts +1 -1
  1213. package/internal/themes/DefaultTheme/DefaultTheme.js +177 -6
  1214. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  1215. package/internal/themes/DefaultTheme.d.ts +70 -2
  1216. package/internal/themes/Theme2022/Theme2022.js +55 -3
  1217. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  1218. package/internal/themes/Theme2022.d.ts +18 -2
  1219. package/internal/themes/Theme2022Dark/Theme2022Dark.js +13 -4
  1220. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
  1221. package/internal/themes/Theme2022Dark.d.ts +4 -4
  1222. package/lib/LayoutEvents/LayoutEvents.js +5 -4
  1223. package/lib/LayoutEvents/LayoutEvents.js.map +1 -1
  1224. package/lib/ModalStack/ModalStack.js +2 -2
  1225. package/lib/ModalStack/ModalStack.js.map +1 -1
  1226. package/lib/SSRSafe/SSRSafe.js +3 -35
  1227. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  1228. package/lib/SSRSafe.d.ts +1 -6
  1229. package/lib/Upgrades/Upgrades.js +3 -1
  1230. package/lib/Upgrades/Upgrades.js.map +1 -1
  1231. package/lib/Upgrades.d.ts +1 -0
  1232. package/lib/animation/index/index.js +6 -3
  1233. package/lib/animation/index/index.js.map +1 -1
  1234. package/lib/chars/chars.js +1 -1
  1235. package/lib/chars/chars.js.map +1 -1
  1236. package/lib/chars.d.ts +1 -1
  1237. package/lib/client/client.js +9 -7
  1238. package/lib/client/client.js.map +1 -1
  1239. package/lib/client.d.ts +2 -7
  1240. package/lib/dom/getScrollWidth/getScrollWidth.js +4 -5
  1241. package/lib/dom/getScrollWidth/getScrollWidth.js.map +1 -1
  1242. package/lib/dom/tabbableHelpers/tabbableHelpers.js +4 -2
  1243. package/lib/dom/tabbableHelpers/tabbableHelpers.js.map +1 -1
  1244. package/lib/dom/tabbableHelpers.d.ts +2 -1
  1245. package/lib/events/MouseDrag/MouseDrag.js +15 -11
  1246. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  1247. package/lib/events/fixClickFocusIE/fixClickFocusIE.js +4 -2
  1248. package/lib/events/fixClickFocusIE/fixClickFocusIE.js.map +1 -1
  1249. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +7 -2
  1250. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  1251. package/lib/events/keyListener/keyListener.js +9 -12
  1252. package/lib/events/keyListener/keyListener.js.map +1 -1
  1253. package/lib/events/keyboard/identifiers/identifiers.js +3 -1
  1254. package/lib/events/keyboard/identifiers/identifiers.js.map +1 -1
  1255. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +223 -0
  1256. package/lib/featureFlagsContext/FeatureFlagsHelpers/FeatureFlagsHelpers.js +5 -0
  1257. package/lib/featureFlagsContext/FeatureFlagsHelpers/FeatureFlagsHelpers.js.map +1 -0
  1258. package/lib/featureFlagsContext/FeatureFlagsHelpers/package.json +6 -0
  1259. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +9 -0
  1260. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +12 -0
  1261. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -0
  1262. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/package.json +6 -0
  1263. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +11 -0
  1264. package/lib/featureFlagsContext/index/index.js +2 -0
  1265. package/lib/featureFlagsContext/index/index.js.map +1 -0
  1266. package/lib/featureFlagsContext/index/package.json +6 -0
  1267. package/lib/featureFlagsContext/index.d.ts +2 -0
  1268. package/lib/featureFlagsContext/package.json +6 -0
  1269. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  1270. package/lib/forwardRefAndName.d.ts +1 -1
  1271. package/lib/isInstanceOf/isInstanceOf.js +3 -0
  1272. package/lib/isInstanceOf/isInstanceOf.js.map +1 -0
  1273. package/lib/isInstanceOf/package.json +6 -0
  1274. package/lib/isInstanceOf.d.ts +1 -0
  1275. package/lib/listenFocusOutside/listenFocusOutside.js +19 -10
  1276. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  1277. package/lib/locale/LocaleContext/LocaleContext.js +2 -1
  1278. package/lib/locale/LocaleContext/LocaleContext.js.map +1 -1
  1279. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +4 -3
  1280. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -1
  1281. package/lib/net/fetch/fetch.js +29 -21
  1282. package/lib/net/fetch/fetch.js.map +1 -1
  1283. package/lib/rootNode/getRootNode/getRootNode.js +6 -6
  1284. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  1285. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +1 -1
  1286. package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
  1287. package/lib/rootNode/rootNodeDecorator.d.ts +2 -0
  1288. package/lib/styles/ColorFactory/ColorFactory.js +13 -9
  1289. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  1290. package/lib/styles/ColorHelpers/ColorHelpers.js +3 -7
  1291. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  1292. package/lib/styles/ColorHelpers.d.ts +1 -1
  1293. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +5 -4
  1294. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  1295. package/lib/theming/Emotion/Emotion.js +6 -1
  1296. package/lib/theming/Emotion/Emotion.js.map +1 -1
  1297. package/lib/theming/ThemeContext/ThemeContext.js +2 -1
  1298. package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
  1299. package/lib/toKebabCase/package.json +6 -0
  1300. package/lib/toKebabCase/toKebabCase.js +7 -0
  1301. package/lib/toKebabCase/toKebabCase.js.map +1 -0
  1302. package/lib/toKebabCase.d.ts +1 -0
  1303. package/lib/types/props/package.json +6 -0
  1304. package/lib/types/props/props.js +1 -0
  1305. package/lib/types/props/props.js.map +1 -0
  1306. package/lib/types/props.d.ts +1 -0
  1307. package/lib/utils/utils.js +31 -6
  1308. package/lib/utils/utils.js.map +1 -1
  1309. package/lib/utils.d.ts +7 -0
  1310. package/package.json +10 -10
  1311. package/typings/global-react.d.ts +12 -0
  1312. package/typings/global.d.ts +3 -4
  1313. package/cjs/internal/MaskedInput/MaskedInput.js.map +0 -1
  1314. package/cjs/internal/MaskedInput/index.js.map +0 -1
  1315. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +0 -1
  1316. package/internal/MaskedInput/MaskedInput.styles/MaskedInput.styles.js.map +0 -1
  1317. package/internal/MaskedInput/MaskedInput.styles/package.json +0 -6
  1318. package/internal/MaskedInput/index/index.js.map +0 -1
  1319. /package/cjs/{internal → components}/MaskedInput/index.d.ts +0 -0
  1320. /package/cjs/{internal → components}/MaskedInput/index.js +0 -0
  1321. /package/cjs/internal/{MaskedInput/MaskedInput.styles.d.ts → InternalMaskedInput/InternalMaskedInput.styles.d.ts} +0 -0
  1322. /package/cjs/internal/{MaskedInput/MaskedInput.styles.js → InternalMaskedInput/InternalMaskedInput.styles.js} +0 -0
  1323. /package/{internal/MaskedInput/MaskedInput.styles.d.ts → cjs/internal/MaskedInputElement/MaskedInputElement.styles.d.ts} +0 -0
  1324. /package/{internal → components}/MaskedInput/index/index.js +0 -0
  1325. /package/{internal → components}/MaskedInput/index.d.ts +0 -0
  1326. /package/internal/{MaskedInput/MaskedInput.styles/MaskedInput.styles.js → InternalMaskedInput/InternalMaskedInput.styles/InternalMaskedInput.styles.js} +0 -0
@@ -0,0 +1,29 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3;
2
+
3
+
4
+ var styles = (0, _Emotion.memoizeStyle)({
5
+ container: function container() {
6
+ return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n display: inline-flex;\n position: relative;\n font-size: inherit;\n flex: 100% 1 1;\n "])));
7
+
8
+
9
+
10
+
11
+
12
+ },
13
+ inputMask: function inputMask(t) {
14
+ return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n pointer-events: none;\n font-size: inherit;\n z-index: 5;\n user-select: none;\n "])),
15
+ t.placeholderColor);
16
+
17
+
18
+
19
+
20
+
21
+ },
22
+ inputMaskLeft: function inputMaskLeft() {
23
+ return (0, _Emotion.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n "])));
24
+
25
+
26
+
27
+
28
+
29
+ } });exports.styles = styles;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MaskedInputElement.styles.ts"],"names":["styles","container","css","inputMask","t","placeholderColor","inputMaskLeft"],"mappings":"4QAAA,oD;;;AAGO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,SADiC,uBACrB;AACV,eAAOC,YAAP;;;;;;AAMD,GARgC;AASjCC,EAAAA,SATiC,qBASvBC,CATuB,EASb;AAClB,eAAOF,YAAP;AACWE,IAAAA,CAAC,CAACC,gBADb;;;;;;AAOD,GAjBgC;AAkBjCC,EAAAA,aAlBiC,2BAkBjB;AACd,eAAOJ,YAAP;;;;;;AAMD,GAzBgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n container() {\n return css`\n display: inline-flex;\n position: relative;\n font-size: inherit;\n flex: 100% 1 1;\n `;\n },\n inputMask(t: Theme) {\n return css`\n color: ${t.placeholderColor};\n pointer-events: none;\n font-size: inherit;\n z-index: 5;\n user-select: none;\n `;\n },\n inputMaskLeft() {\n return css`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n `;\n },\n});\n"]}
@@ -0,0 +1 @@
1
+ export * from './MaskedInputElement';
@@ -0,0 +1 @@
1
+ "use strict";exports.__esModule = true;var _MaskedInputElement = require("./MaskedInputElement");Object.keys(_MaskedInputElement).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _MaskedInputElement[key]) return;exports[key] = _MaskedInputElement[key];});
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":"uCAAA","sourcesContent":["export * from './MaskedInputElement';\n"]}
@@ -35,6 +35,7 @@ export interface MenuState {
35
35
  highlightedIndex: number;
36
36
  maxHeight: number | string;
37
37
  scrollState: ScrollContainerScrollState;
38
+ enableIconPadding: boolean;
38
39
  }
39
40
  export declare const MenuDataTids: {
40
41
  readonly root: "Menu__root";
@@ -42,6 +43,7 @@ export declare const MenuDataTids: {
42
43
  declare type DefaultProps = Required<Pick<MenuProps, 'align' | 'width' | 'maxHeight' | 'hasShadow' | 'preventWindowScroll' | 'cyclicSelection' | 'initialSelectedItemIndex'>>;
43
44
  export declare class Menu extends React.PureComponent<MenuProps, MenuState> {
44
45
  static __KONTUR_REACT_UI__: string;
46
+ static displayName: string;
45
47
  static defaultProps: DefaultProps;
46
48
  private getProps;
47
49
  state: MenuState;
@@ -53,6 +55,9 @@ export declare class Menu extends React.PureComponent<MenuProps, MenuState> {
53
55
  private setRootNode;
54
56
  private header;
55
57
  private footer;
58
+ private contentRef;
59
+ private menuNavigation;
60
+ private menuItemsAtAnyLevel?;
56
61
  componentWillUnmount(): void;
57
62
  componentDidMount(): void;
58
63
  componentDidUpdate(prevProps: MenuProps): void;
@@ -93,6 +98,7 @@ export declare class Menu extends React.PureComponent<MenuProps, MenuState> {
93
98
  private scrollToSelected;
94
99
  private scrollToTop;
95
100
  private scrollToBottom;
101
+ private scroll;
96
102
  private select;
97
103
  private highlight;
98
104
  private unhighlight;
@@ -101,5 +107,6 @@ export declare class Menu extends React.PureComponent<MenuProps, MenuState> {
101
107
  private handleKeyDown;
102
108
  private getStyle;
103
109
  private handleScrollStateChange;
110
+ private setEnableIconPadding;
104
111
  }
105
112
  export {};
@@ -1,14 +1,14 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MenuDataTids = exports.Menu = void 0;var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
+ var _globalObject = require("@skbkontur/global-object");
2
3
 
3
4
  var _identifiers = require("../../lib/events/keyboard/identifiers");
4
5
  var _MenuSeparator = require("../../components/MenuSeparator");
5
6
  var _ThemeFactory = require("../../lib/theming/ThemeFactory");
6
7
  var _getDOMRect = require("../../lib/dom/getDOMRect");
7
- var _SSRSafe = require("../../lib/SSRSafe");
8
8
  var _decorator = require("../../components/ResponsiveLayout/decorator");
9
9
  var _utils = require("../../lib/utils");
10
10
  var _ScrollContainer = require("../../components/ScrollContainer");
11
-
11
+ var _MenuItem = require("../../components/MenuItem");
12
12
 
13
13
  var _ThemeContext = require("../../lib/theming/ThemeContext");
14
14
 
@@ -19,9 +19,14 @@ var _client = require("../../lib/client");
19
19
  var _createPropsGetter = require("../../lib/createPropsGetter");
20
20
  var _ThemeHelpers = require("../../lib/theming/ThemeHelpers");
21
21
  var _isIconPaddingEnabled = require("../InternalMenu/isIconPaddingEnabled");
22
+ var _isInstanceOf = require("../../lib/isInstanceOf");
23
+ var _featureFlagsContext = require("../../lib/featureFlagsContext");
22
24
 
23
25
  var _Menu = require("./Menu.styles");
24
- var _isActiveElement = require("./isActiveElement");var _class, _class2, _temp;
26
+ var _isActiveElement = require("./isActiveElement");
27
+ var _MenuNavigation = require("./MenuNavigation");
28
+ var _MenuContext = require("./MenuContext");var _class, _class2, _temp;
29
+
25
30
 
26
31
 
27
32
 
@@ -94,12 +99,14 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
94
99
 
95
100
 
96
101
 
102
+
97
103
  getProps = (0, _createPropsGetter.createPropsGetter)(Menu.defaultProps);_this.
98
104
 
99
105
  state = {
100
106
  highlightedIndex: -1,
101
107
  maxHeight: _this.getProps().maxHeight || 'none',
102
- scrollState: 'top' };_this.
108
+ scrollState: 'top',
109
+ enableIconPadding: false };_this.
103
110
 
104
111
 
105
112
 
@@ -110,6 +117,9 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
110
117
 
111
118
 
112
119
 
120
+ contentRef = /*#__PURE__*/_react.default.createRef();_this.
121
+ menuNavigation = new _MenuNavigation.MenuNavigation(_this.contentRef, _MenuItem.MenuItemDataTids.content);_this.
122
+
113
123
 
114
124
 
115
125
 
@@ -138,7 +148,7 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
138
148
 
139
149
  focusOnRootElement = function () {
140
150
  var rootNode = (0, _rootNode2.getRootNode)((0, _assertThisInitialized2.default)(_this));
141
- if ((0, _SSRSafe.isHTMLElement)(rootNode)) {
151
+ if ((0, _isInstanceOf.isInstanceOf)(rootNode, _globalObject.globalObject.HTMLElement)) {
142
152
  rootNode == null ? void 0 : rootNode.focus();
143
153
  }
144
154
  };_this.
@@ -224,6 +234,38 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
224
234
 
225
235
 
226
236
 
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
227
269
 
228
270
 
229
271
 
@@ -288,6 +330,9 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
288
330
  };_this.
289
331
 
290
332
  getChildList = function () {
333
+ if (_this.menuItemsAtAnyLevel) {
334
+ return _this.props.children;
335
+ }
291
336
  var enableIconPadding = (0, _isIconPaddingEnabled.isIconPaddingEnabled)(_this.props.children, _this.props.preventIconsOffset);
292
337
 
293
338
  return _react.default.Children.map(_this.props.children, function (child, index) {
@@ -345,8 +390,8 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
345
390
  var parsedMaxHeight = maxHeight;
346
391
  var rootNode = (0, _rootNode2.getRootNode)((0, _assertThisInitialized2.default)(_this));
347
392
 
348
- if (typeof maxHeight === 'string' && typeof window !== 'undefined' && rootNode) {
349
- var rootElementMaxHeight = window.getComputedStyle(rootNode).maxHeight;
393
+ if (typeof maxHeight === 'string' && (0, _globalObject.isBrowser)(_globalObject.globalObject) && rootNode) {
394
+ var rootElementMaxHeight = _globalObject.globalObject.getComputedStyle == null ? void 0 : _globalObject.globalObject.getComputedStyle(rootNode).maxHeight;
350
395
 
351
396
  if (rootElementMaxHeight) {
352
397
  parsedMaxHeight = parseFloat(rootElementMaxHeight);
@@ -381,10 +426,11 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
381
426
 
382
427
 
383
428
  scrollToSelected = function () {
384
- if (_this.scrollContainer && _this.highlighted) {
385
- var _rootNode = (0, _rootNode2.getRootNode)(_this.highlighted);
429
+ var highlightedItem = _this.menuItemsAtAnyLevel ? _this.menuNavigation.highlightedItem : _this.highlighted;
430
+ if (_this.scrollContainer && highlightedItem) {
431
+ var _rootNode = (0, _rootNode2.getRootNode)(highlightedItem);
386
432
  // TODO: Remove this check once IF-647 is resolved
387
- if (_rootNode instanceof HTMLElement) {
433
+ if ((0, _isInstanceOf.isInstanceOf)(_rootNode, _globalObject.globalObject.HTMLElement)) {
388
434
  _this.scrollContainer.scrollTo(_rootNode);
389
435
  }
390
436
  }
@@ -402,6 +448,19 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
402
448
  }
403
449
  };_this.
404
450
 
451
+ scroll = function (nextIndex) {
452
+ switch (nextIndex) {
453
+ case 0:
454
+ _this.scrollToTop == null ? void 0 : _this.scrollToTop();
455
+ break;
456
+ case _this.menuNavigation.items.length - 1:
457
+ _this.scrollToBottom == null ? void 0 : _this.scrollToBottom();
458
+ break;
459
+ default:
460
+ _this.scrollToSelected == null ? void 0 : _this.scrollToSelected();}
461
+
462
+ };_this.
463
+
405
464
 
406
465
 
407
466
 
@@ -475,6 +534,10 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
475
534
 
476
535
 
477
536
 
537
+
538
+
539
+
540
+
478
541
 
479
542
 
480
543
 
@@ -496,7 +559,9 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
496
559
  event.preventDefault();
497
560
  _this.down();
498
561
  } else if ((0, _identifiers.isKeyEnter)(event)) {
499
- if (_this.highlighted && _this.highlighted.props.onClick) {
562
+ if (_this.menuItemsAtAnyLevel) {
563
+ _this.menuNavigation.select(event);
564
+ } else if (_this.highlighted && _this.highlighted.props.onClick) {
500
565
  _this.highlighted.props.onClick(event);
501
566
  }
502
567
  }
@@ -521,18 +586,22 @@ Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.rootNode)(_class
521
586
  if (_this.state.scrollState !== scrollState) {
522
587
  _this.setState({ scrollState: scrollState });
523
588
  }
524
- };return _this;}var _proto = Menu.prototype;_proto.componentWillUnmount = function componentWillUnmount() {this.unmounted = true;};_proto.componentDidMount = function componentDidMount() {this.setInitialSelection();this.calculateMaxHeight();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.shouldRecalculateMaxHeight(prevProps)) {this.calculateMaxHeight();}if (prevProps.maxHeight !== this.getProps().maxHeight) {this.setState({ maxHeight: this.props.maxHeight || 'none' });}};_proto.focus = function focus() {this.focusOnRootElement();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});} /**
589
+ };_this.
590
+
591
+ setEnableIconPadding = function (isIconPaddingEnabled) {
592
+ !_this.getProps().preventIconsOffset && _this.setState({ enableIconPadding: isIconPaddingEnabled });
593
+ };return _this;}var _proto = Menu.prototype;_proto.componentWillUnmount = function componentWillUnmount() {this.unmounted = true;};_proto.componentDidMount = function componentDidMount() {this.setInitialSelection();this.calculateMaxHeight();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.shouldRecalculateMaxHeight(prevProps)) {this.calculateMaxHeight();}if (prevProps.maxHeight !== this.getProps().maxHeight) {this.setState({ maxHeight: this.props.maxHeight || 'none' });}};_proto.focus = function focus() {this.focusOnRootElement();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_featureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.menuItemsAtAnyLevel = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags).menuItemsAtAnyLevel;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});});} /**
525
594
  * @public
526
595
  */;_proto.up = function up() {this.move(-1);} /**
527
596
  * @public
528
597
  */;_proto.down = function down() {this.move(1);} /**
529
598
  * @public
530
- */;_proto.enter = function enter(event) {return this.select(this.state.highlightedIndex, true, event);} /**
599
+ */;_proto.enter = function enter(event) {if (this.menuItemsAtAnyLevel) {var _this$menuNavigation$;(_this$menuNavigation$ = this.menuNavigation.highlightedItem) == null ? void 0 : _this$menuNavigation$.navigate();return this.menuNavigation.select(event);}return this.select(this.state.highlightedIndex, true, event);} /**
531
600
  * @public
532
- */;_proto.reset = function reset() {this.setState({ highlightedIndex: -1 });} /**
601
+ */;_proto.reset = function reset() {if (this.menuItemsAtAnyLevel) {this.menuNavigation.reset();} else {this.setState({ highlightedIndex: -1 });}} /**
533
602
  * @public
534
- */;_proto.hasHighlightedItem = function hasHighlightedItem() {return this.state.highlightedIndex !== -1;};_proto.highlightItem = function highlightItem(index) {this.highlight(index);};_proto.renderMain = function renderMain() {var _cx3, _cx4;if (this.isEmpty()) {return null;}var _this$getProps = this.getProps(),hasShadow = _this$getProps.hasShadow,maxHeight = _this$getProps.maxHeight,preventWindowScroll = _this$getProps.preventWindowScroll;var offsetY = (0, _ThemeHelpers.isTheme2022)(this.theme) ? { top: "" + this.theme.scrollContainerScrollBarOffsetY, right: 0, bottom: "" + this.theme.scrollContainerScrollBarOffsetY } : {};var isMobile = this.isMobileLayout;return /*#__PURE__*/_react.default.createElement("div", { "data-tid": MenuDataTids.root, className: (0, _Emotion.cx)(getAlignRightClass(this.props), (_cx3 = {}, _cx3[_Menu.styles.root(this.theme)] = true, _cx3[_Menu.styles.mobileRoot(this.theme)] = isMobile, _cx3[_Menu.styles.shadow(this.theme)] = hasShadow && !isMobile, _cx3)), style: this.getStyle(this.props), id: this.props.id, onKeyDown: this.handleKeyDown, ref: this.setRootNode, tabIndex: 0 }, this.props.header && this.renderHeader(), /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: maxHeight, preventWindowScroll: preventWindowScroll, onScrollStateChange: this.handleScrollStateChange, disabled: this.props.disableScrollContainer, offsetY: offsetY }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx4 = {}, _cx4[_Menu.styles.scrollContainer(this.theme)] = true, _cx4[_Menu.styles.scrollContainerMobile(this.theme)] = isMobile, _cx4)) }, this.getChildList())), this.props.footer && this.renderFooter());};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (typeof originalRef === 'function') {originalRef(menuItem);}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {window.open(item.props.href, item.props.target);} else {location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick(event);}return true;}return false;};_proto.move = function move(step) {var _this3 = this;if (this.unmounted) {// NOTE workaround, because `ComboBox` call `process.nextTick` in reducer
535
- return;}var children = childrenToArray(this.props.children);var activeElements = children.filter(_isActiveElement.isActiveElement);if (!activeElements.length) {return;}var index = this.state.highlightedIndex;var _loop = function _loop() {index += step;if (!_this3.getProps().cyclicSelection && (index < 0 || index > children.length)) {return { v: void 0 };}if (index < 0) {index = children.length - 1;} else if (index > children.length) {index = 0;}var child = children[index];if ((0, _isActiveElement.isActiveElement)(child)) {_this3.setState({ highlightedIndex: index }, function () {switch (activeElements.indexOf(child)) {case 0:_this3.scrollToTop();break;case activeElements.length - 1:_this3.scrollToBottom();break;default:_this3.scrollToSelected();}});return { v: void 0 };}};do {var _ret = _loop();if (typeof _ret === "object") return _ret.v;} while (index !== this.state.highlightedIndex);};_proto.isEmpty = function isEmpty() {var children = this.props.children;return !children || !childrenToArray(children).filter(_utils.isNonNullable).length;};return Menu;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Menu', _class2.defaultProps = { align: 'left', width: 'auto', maxHeight: 300, hasShadow: true, preventWindowScroll: true, cyclicSelection: true, initialSelectedItemIndex: -1 }, _temp)) || _class) || _class;exports.Menu = Menu;function childrenToArray(children) {var ret = []; // Use forEach instead of map to avoid cloning for key unifying.
603
+ */;_proto.hasHighlightedItem = function hasHighlightedItem() {if (this.menuItemsAtAnyLevel) {return !!this.menuNavigation.highlightedItem;}return this.state.highlightedIndex !== -1;};_proto.highlightItem = function highlightItem(index) {if (this.menuItemsAtAnyLevel) {this.menuNavigation.highlightByIndex(index);} else {this.highlight(index);}};_proto.renderMain = function renderMain() {var _cx3, _cx4;if (this.isEmpty()) {return null;}var _this$getProps = this.getProps(),hasShadow = _this$getProps.hasShadow,maxHeight = _this$getProps.maxHeight,preventWindowScroll = _this$getProps.preventWindowScroll;var offsetY = (0, _ThemeHelpers.isTheme2022)(this.theme) ? { top: "" + this.theme.scrollContainerScrollBarOffsetY, right: 0, bottom: "" + this.theme.scrollContainerScrollBarOffsetY } : {};var isMobile = this.isMobileLayout;return /*#__PURE__*/_react.default.createElement("div", { "data-tid": MenuDataTids.root, className: (0, _Emotion.cx)(getAlignRightClass(this.props), (_cx3 = {}, _cx3[_Menu.styles.root(this.theme)] = true, _cx3[_Menu.styles.mobileRoot(this.theme)] = isMobile, _cx3[_Menu.styles.shadow(this.theme)] = hasShadow && !isMobile, _cx3)), style: this.getStyle(this.props), id: this.props.id, onKeyDown: this.handleKeyDown, ref: this.setRootNode, tabIndex: 0 }, this.props.header && this.renderHeader(), /*#__PURE__*/_react.default.createElement(_ScrollContainer.ScrollContainer, { ref: this.refScrollContainer, maxHeight: maxHeight, preventWindowScroll: preventWindowScroll, onScrollStateChange: this.handleScrollStateChange, disabled: this.props.disableScrollContainer, offsetY: offsetY }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx4 = {}, _cx4[_Menu.styles.scrollContainer(this.theme)] = true, _cx4[_Menu.styles.scrollContainerMobile(this.theme)] = isMobile, _cx4)), ref: this.contentRef }, /*#__PURE__*/_react.default.createElement(_MenuContext.MenuContext.Provider, { value: { navigation: this.menuNavigation, onItemClick: this.props.onItemClick, enableIconPadding: this.state.enableIconPadding, setEnableIconPadding: this.setEnableIconPadding } }, this.getChildList()))), this.props.footer && this.renderFooter());};_proto.refHighlighted = function refHighlighted(originalRef, menuItem) {this.highlighted = menuItem;if (typeof originalRef === 'function') {originalRef(menuItem);}};_proto.select = function select(index, shouldHandleHref, event) {var item = childrenToArray(this.props.children)[index];if ((0, _isActiveElement.isActiveElement)(item) && (0, _globalObject.isBrowser)(_globalObject.globalObject)) {if (shouldHandleHref && item.props.href) {if (item.props.target) {_globalObject.globalObject.open(item.props.href, item.props.target);} else {_globalObject.globalObject.location.href = item.props.href;}}if (item.props.onClick) {item.props.onClick(event);}if (this.props.onItemClick) {this.props.onItemClick(event);}return true;}return false;};_proto.move = function move(step) {var _this3 = this;if (this.unmounted) {// NOTE workaround, because `ComboBox` call `process.nextTick` in reducer
604
+ return;}if (this.menuItemsAtAnyLevel) {var nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);this.scroll(nextIndex);} else {var _ret = function () {var children = childrenToArray(_this3.props.children);var activeElements = children.filter(_isActiveElement.isActiveElement);if (!activeElements.length) {return { v: void 0 };}var index = _this3.state.highlightedIndex;var _loop = function _loop() {index += step;if (!_this3.getProps().cyclicSelection && (index < 0 || index > children.length)) {return { v: { v: void 0 } };}if (index < 0) {index = children.length - 1;} else if (index > children.length) {index = 0;}var child = children[index];if ((0, _isActiveElement.isActiveElement)(child)) {_this3.setState({ highlightedIndex: index }, function () {switch (activeElements.indexOf(child)) {case 0:_this3.scrollToTop();break;case activeElements.length - 1:_this3.scrollToBottom();break;default:_this3.scrollToSelected();}});return { v: { v: void 0 } };}};do {var _ret2 = _loop();if (typeof _ret2 === "object") return _ret2.v;} while (index !== _this3.state.highlightedIndex);}();if (typeof _ret === "object") return _ret.v;}};_proto.isEmpty = function isEmpty() {var children = this.props.children;return !children || !childrenToArray(children).filter(_utils.isNonNullable).length;};return Menu;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Menu', _class2.displayName = 'Menu', _class2.defaultProps = { align: 'left', width: 'auto', maxHeight: 300, hasShadow: true, preventWindowScroll: true, cyclicSelection: true, initialSelectedItemIndex: -1 }, _temp)) || _class) || _class;exports.Menu = Menu;function childrenToArray(children) {var ret = []; // Use forEach instead of map to avoid cloning for key unifying.
536
605
  _react.default.Children.forEach(children, function (child) {ret.push(child);});return ret;}var getAlignRightClass = function getAlignRightClass(props) {
537
606
  if (props.align === 'right') {var _cx5;
538
607
  return (0, _Emotion.cx)((_cx5 = {}, _cx5[
@@ -1 +1 @@
1
- {"version":3,"sources":["Menu.tsx"],"names":["MenuDataTids","root","Menu","responsiveLayout","rootNode","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","unmounted","focusOnRootElement","focus","renderHeader","styles","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","ThemeFactory","create","menuSeparatorMarginY","getChildList","enableIconPadding","children","preventIconsOffset","React","Children","map","child","index","modifiedChild","highlight","ref","refHighlighted","bind","cloneElement","onClick","select","onMouseEnter","onMouseLeave","unhighlight","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","count","calculateMaxHeight","parsedMaxHeight","window","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlighted","HTMLElement","scrollTo","scrollToTop","scrollToBottom","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","componentWillUnmount","componentDidMount","componentDidUpdate","render","renderMain","move","enter","reset","hasHighlightedItem","highlightItem","isEmpty","hasShadow","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","id","setRootNode","disableScrollContainer","scrollContainerMobile","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","open","location","onItemClick","step","activeElements","filter","isActiveElement","length","cyclicSelection","indexOf","isNonNullable","PureComponent","__KONTUR_REACT_UI__","ret","forEach","push","alignRight","isIE11","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"qXAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCO,IAAMA,YAAY,GAAG;AAC1BC,EAAAA,IAAI,EAAE,YADoB,EAArB,C;;;;;;;;;;;;;;;;;;AAmBMC,I,OAFZC,2B,eACAC,mB;;;;;;;;;;;;;AAcSC,IAAAA,Q,GAAW,0CAAkBH,IAAI,CAACI,YAAvB,C;;AAEZC,IAAAA,K,GAAmB;AACxBC,MAAAA,gBAAgB,EAAE,CAAC,CADK;AAExBC,MAAAA,SAAS,EAAE,MAAKJ,QAAL,GAAgBI,SAAhB,IAA6B,MAFhB;AAGxBC,MAAAA,WAAW,EAAE,KAHW,E;;;;;;;AAUlBC,IAAAA,S,GAAY,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BZC,IAAAA,kB,GAAqB,YAAY;AACvC,UAAMR,QAAQ,GAAG,wEAAjB;AACA,UAAI,4BAAcA,QAAd,CAAJ,EAA6B;AAC3BA,QAAAA,QAAQ,QAAR,YAAAA,QAAQ,CAAES,KAAV;AACD;AACF,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwGOC,IAAAA,Y,GAAe,YAAM;AAC3B;AACE;AACE,UAAA,SAAS,EAAE;AACRC,uBAAOC,OAAP,EADQ,IACW,IADX;AAERD,uBAAOE,aAAP,EAFQ,IAEiB,IAFjB,OADb;;AAKE,UAAA,GAAG,EAAE,aAACC,EAAD,UAAS,MAAKC,MAAL,GAAcD,EAAvB,EALP;;AAOE,8CAAK,SAAS,EAAEH,aAAOK,cAAP,EAAhB,IAA0C,MAAKC,KAAL,CAAWF,MAArD,CAPF;AAQE,8CAAK,SAAS,EAAEJ,aAAOO,oBAAP,CAA4B,MAAKC,KAAjC,CAAhB;AACG,cAAKhB,KAAL,CAAWG,WAAX,KAA2B,KAA3B,IAAoC,MAAKc,+BAAL,EADvC,CARF,CADF;;;;AAcD,K;;AAEOC,IAAAA,Y,GAAe,YAAM;AAC3B;AACE;AACE,UAAA,SAAS,EAAE;AACRV,uBAAOC,OAAP,EADQ,IACW,IADX;AAERD,uBAAOW,aAAP,EAFQ,IAEiB,IAFjB,QADb;;AAKE,UAAA,GAAG,EAAE,aAACR,EAAD,UAAS,MAAKS,MAAL,GAAcT,EAAvB,EALP;;AAOE,8CAAK,SAAS,EAAEH,aAAOO,oBAAP,CAA4B,MAAKC,KAAjC,CAAhB;AACG,cAAKhB,KAAL,CAAWG,WAAX,KAA2B,QAA3B,IAAuC,MAAKc,+BAAL,EAD1C,CAPF;;AAUE,8CAAK,SAAS,EAAET,aAAOK,cAAP,EAAhB,IAA0C,MAAKC,KAAL,CAAWM,MAArD,CAVF,CADF;;;AAcD,K;;AAEOH,IAAAA,+B,GAAkC,YAAM;AAC9C;AACE,qCAAC,0BAAD,CAAc,QAAd,IAAuB,KAAK,EAAEI,2BAAaC,MAAb,CAAoB,EAAEC,oBAAoB,EAAE,GAAxB,EAApB,EAAmD,MAAKP,KAAxD,CAA9B;AACE,qCAAC,4BAAD,OADF,CADF;;;AAKD,K;;AAEOQ,IAAAA,Y,GAAe,YAAM;AAC3B,UAAMC,iBAAiB,GAAG,gDAAqB,MAAKX,KAAL,CAAWY,QAAhC,EAA0C,MAAKZ,KAAL,CAAWa,kBAArD,CAA1B;;AAEA,aAAOC,eAAMC,QAAN,CAAeC,GAAf,CAAmB,MAAKhB,KAAL,CAAWY,QAA9B,EAAwC,UAACK,KAAD,EAAQC,KAAR,EAAkB;AAC/D,YAAI,OAAOD,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAA9C,IAA0D,uBAAWA,KAAX,CAA9D,EAAiF;AAC/E,iBAAOA,KAAP;AACD;;AAED,YAAME,aAAa,GAAG,4DAA2BF,KAA3B,EAAkCN,iBAAlC,CAAtB;;AAEA,YAAI,sCAAgBQ,aAAhB,CAAJ,EAAoC;AAClC,cAAMC,SAAS,GAAG,MAAKlC,KAAL,CAAWC,gBAAX,KAAgC+B,KAAlD;;AAEA,cAAIG,GAAG,GAAGF,aAAa,CAACE,GAAxB;AACA,cAAID,SAAS,IAAI,OAAOD,aAAa,CAACE,GAArB,KAA6B,QAA9C,EAAwD;AACtDA,YAAAA,GAAG,GAAG,MAAKC,cAAL,CAAoBC,IAApB,8CAA+BJ,aAAa,CAACE,GAA7C,CAAN;AACD;;AAED,8BAAOP,eAAMU,YAAN,CAA4CL,aAA5C,EAA2D;AAChEE,YAAAA,GAAG,EAAHA,GADgE;AAEhEnC,YAAAA,KAAK,EAAEkC,SAAS,GAAG,OAAH,GAAaD,aAAa,CAACnB,KAAd,CAAoBd,KAFe;AAGhEuC,YAAAA,OAAO,EAAE,MAAKC,MAAL,CAAYH,IAAZ,8CAAuBL,KAAvB,EAA8B,KAA9B,CAHuD;AAIhES,YAAAA,YAAY,EAAE,MAAKP,SAAL,CAAeG,IAAf,8CAA0BL,KAA1B,CAJkD;AAKhEU,YAAAA,YAAY,EAAE,MAAKC,WAL6C,EAA3D,CAAP;;AAOD;;AAED,eAAOV,aAAP;AACD,OAzBM,CAAP;AA0BD,K;;AAEOW,IAAAA,mB,GAAsB,YAAM;AAClC,WAAK,IAAIC,CAAC,GAAG,MAAK/C,QAAL,GAAgBgD,wBAA7B,EAAuDD,CAAC,GAAG,CAAC,CAA5D,EAA+DA,CAAC,EAAhE,EAAoE;AAClE,cAAKE,IAAL;AACD;AACF,K;;AAEOC,IAAAA,0B,GAA6B,UAACC,SAAD,EAAmC;AACtE,wBAAqC,MAAKnC,KAA1C,CAAQF,MAAR,eAAQA,MAAR,CAAgBQ,MAAhB,eAAgBA,MAAhB,CAAwBM,QAAxB,eAAwBA,QAAxB;AACA,UAAMxB,SAAS,GAAG,MAAKJ,QAAL,GAAgBI,SAAlC;AACA,UAAMgD,aAAa,GAAGD,SAAS,CAAC/C,SAAhC;AACA,UAAMiD,UAAU,GAAGF,SAAS,CAACrC,MAA7B;AACA,UAAMwC,UAAU,GAAGH,SAAS,CAAC7B,MAA7B;AACA,UAAMiC,iBAAiB,GAAGzB,eAAMC,QAAN,CAAeyB,KAAf,CAAqBL,SAAS,CAACvB,QAA/B,CAA1B;;AAEA;AACExB,QAAAA,SAAS,KAAKgD,aAAd;AACA9B,QAAAA,MAAM,KAAKgC,UADX;AAEAxC,QAAAA,MAAM,KAAKuC,UAFX;AAGAvB,uBAAMC,QAAN,CAAeyB,KAAf,CAAqB5B,QAArB,MAAmC2B,iBAJrC;;AAMD,K;;AAEOE,IAAAA,kB,GAAqB,YAAM;AACjC,UAAMrD,SAAS,GAAG,MAAKJ,QAAL,GAAgBI,SAAlC;AACA,UAAIsD,eAAe,GAAGtD,SAAtB;AACA,UAAML,QAAQ,GAAG,wEAAjB;;AAEA,UAAI,OAAOK,SAAP,KAAqB,QAArB,IAAiC,OAAOuD,MAAP,KAAkB,WAAnD,IAAkE5D,QAAtE,EAAgF;AAC9E,YAAM6D,oBAAoB,GAAGD,MAAM,CAACE,gBAAP,CAAwB9D,QAAxB,EAAkCK,SAA/D;;AAEA,YAAIwD,oBAAJ,EAA0B;AACxBF,UAAAA,eAAe,GAAGI,UAAU,CAACF,oBAAD,CAA5B;AACD;AACF;;AAED,UAAMG,mBAAmB;AACvB,aAAOL,eAAP,KAA2B,QAA3B;AACIA,MAAAA,eAAe;AACb,YAAK5C,MAAL,IAAe,4BAAW,MAAKA,MAAhB,EAAwBkD,MAAxC,IAAmD,CADrC,CAAf;AAEE,YAAK1C,MAAL,IAAe,4BAAW,MAAKA,MAAhB,EAAwB0C,MAAxC,IAAmD,CAFpD,CADJ;AAII5D,MAAAA,SALN;;AAOA,YAAK6D,QAAL,CAAc;AACZ7D,QAAAA,SAAS,EAAE2D,mBAAmB,IAAI,MADtB,EAAd;;AAGD,K;;AAEOG,IAAAA,kB,GAAqB,UAACC,eAAD,EAAgD;AAC3E,YAAKA,eAAL,GAAuBA,eAAvB;AACD,K;;;;;;;;;;;;;AAaOC,IAAAA,gB,GAAmB,YAAM;AAC/B,UAAI,MAAKD,eAAL,IAAwB,MAAKE,WAAjC,EAA8C;AAC5C,YAAMtE,SAAQ,GAAG,4BAAY,MAAKsE,WAAjB,CAAjB;AACA;AACA,YAAItE,SAAQ,YAAYuE,WAAxB,EAAqC;AACnC,gBAAKH,eAAL,CAAqBI,QAArB,CAA8BxE,SAA9B;AACD;AACF;AACF,K;;AAEOyE,IAAAA,W,GAAc,YAAM;AAC1B,UAAI,MAAKL,eAAT,EAA0B;AACxB,cAAKA,eAAL,CAAqBK,WAArB;AACD;AACF,K;;AAEOC,IAAAA,c,GAAiB,YAAM;AAC7B,UAAI,MAAKN,eAAT,EAA0B;AACxB,cAAKA,eAAL,CAAqBM,cAArB;AACD;AACF,K;;;;;;;;;;;;;;;;;;;;;;;AAuBOrC,IAAAA,S,GAAY,UAACF,KAAD,EAAmB;AACrC,YAAK+B,QAAL,CAAc,EAAE9D,gBAAgB,EAAE+B,KAApB,EAAd;AACD,K;;AAEOW,IAAAA,W,GAAc,YAAM;AAC1B,YAAKoB,QAAL,CAAc,EAAE9D,gBAAgB,EAAE,CAAC,CAArB,EAAd;AACD,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDOuE,IAAAA,a,GAAgB,UAACC,KAAD,EAAsD;AAC5E,UAAI,OAAO,MAAK3D,KAAL,CAAW4D,SAAlB,KAAgC,UAApC,EAAgD;AAC9C,cAAK5D,KAAL,CAAW4D,SAAX,CAAqBD,KAArB;AACD;;AAED,UAAIA,KAAK,CAACE,gBAAV,EAA4B;AAC1B;AACD;;AAED,UAAI,+BAAaF,KAAb,CAAJ,EAAyB;AACvBA,QAAAA,KAAK,CAACG,cAAN;AACA,cAAKC,EAAL;AACD,OAHD,MAGO,IAAI,iCAAeJ,KAAf,CAAJ,EAA2B;AAChCA,QAAAA,KAAK,CAACG,cAAN;AACA,cAAK7B,IAAL;AACD,OAHM,MAGA,IAAI,6BAAW0B,KAAX,CAAJ,EAAuB;AAC5B,YAAI,MAAKN,WAAL,IAAoB,MAAKA,WAAL,CAAiBrD,KAAjB,CAAuByB,OAA/C,EAAwD;AACtD,gBAAK4B,WAAL,CAAiBrD,KAAjB,CAAuByB,OAAvB,CAA+BkC,KAA/B;AACD;AACF;AACF,K;;AAEOK,IAAAA,Q,GAAW,UAAChE,KAAD,EAAqC;AACtD,UAAIA,KAAK,CAACiE,KAAN,KAAgB,OAApB,EAA6B;AAC3B,eAAO;AACLC,UAAAA,QAAQ,EAAElE,KAAK,CAACmE,KADX;AAELC,UAAAA,QAAQ,EAAEpE,KAAK,CAACmE,KAFX;AAGL/E,UAAAA,SAAS,EAAE,MAAKF,KAAL,CAAWE,SAHjB,EAAP;;AAKD;;AAED,aAAO;AACL+E,QAAAA,KAAK,EAAEnE,KAAK,CAACmE,KADR;AAEL/E,QAAAA,SAAS,EAAE,MAAKF,KAAL,CAAWE,SAFjB,EAAP;;AAID,K;;AAEOiF,IAAAA,uB,GAA0B,UAAChF,WAAD,EAA6C;AAC7E,UAAI,MAAKH,KAAL,CAAWG,WAAX,KAA2BA,WAA/B,EAA4C;AAC1C,cAAK4D,QAAL,CAAc,EAAE5D,WAAW,EAAXA,WAAF,EAAd;AACD;AACF,K,kDA1ZMiF,oB,GAAP,gCAA8B,CAC5B,KAAKhF,SAAL,GAAiB,IAAjB,CACD,C,QAEMiF,iB,GAAP,6BAA2B,CACzB,KAAKzC,mBAAL,GACA,KAAKW,kBAAL,GACD,C,QAEM+B,kB,GAAP,4BAA0BrC,SAA1B,EAAgD,CAC9C,IAAI,KAAKD,0BAAL,CAAgCC,SAAhC,CAAJ,EAAgD,CAC9C,KAAKM,kBAAL,GACD,CAED,IAAIN,SAAS,CAAC/C,SAAV,KAAwB,KAAKJ,QAAL,GAAgBI,SAA5C,EAAuD,CACrD,KAAK6D,QAAL,CAAc,EACZ7D,SAAS,EAAE,KAAKY,KAAL,CAAWZ,SAAX,IAAwB,MADvB,EAAd,EAGD,CACF,C,QAEMI,K,GAAP,iBAAe,CACb,KAAKD,kBAAL,GACD,C,QASMkF,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACvE,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACwE,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,CAED;AACF;AACA,K,QACSX,E,GAAP,cAAY,CACV,KAAKY,IAAL,CAAU,CAAC,CAAX,EACD,C,CAED;AACF;AACA,K,QACS1C,I,GAAP,gBAAc,CACZ,KAAK0C,IAAL,CAAU,CAAV,EACD,C,CAED;AACF;AACA,K,QACSC,K,GAAP,eAAajB,KAAb,EAAuD,CACrD,OAAO,KAAKjC,MAAL,CAAY,KAAKxC,KAAL,CAAWC,gBAAvB,EAAyC,IAAzC,EAA+CwE,KAA/C,CAAP,CACD,C,CAED;AACF;AACA,K,QACSkB,K,GAAP,iBAAe,CACb,KAAK5B,QAAL,CAAc,EAAE9D,gBAAgB,EAAE,CAAC,CAArB,EAAd,EACD,C,CAED;AACF;AACA,K,QACS2F,kB,GAAP,8BAA4B,CAC1B,OAAO,KAAK5F,KAAL,CAAWC,gBAAX,KAAgC,CAAC,CAAxC,CACD,C,QAEM4F,a,GAAP,uBAAqB7D,KAArB,EAAoC,CAClC,KAAKE,SAAL,CAAeF,KAAf,EACD,C,QAEOwD,U,GAAR,sBAAqB,gBACnB,IAAI,KAAKM,OAAL,EAAJ,EAAoB,CAClB,OAAO,IAAP,CACD,CACD,qBAAsD,KAAKhG,QAAL,EAAtD,CAAQiG,SAAR,kBAAQA,SAAR,CAAmB7F,SAAnB,kBAAmBA,SAAnB,CAA8B8F,mBAA9B,kBAA8BA,mBAA9B,CAEA,IAAMC,OAAO,GAAG,+BAAY,KAAKjF,KAAjB,IACZ,EACEkF,GAAG,OAAK,KAAKlF,KAAL,CAAWmF,+BADrB,EAEEC,KAAK,EAAE,CAFT,EAGEC,MAAM,OAAK,KAAKrF,KAAL,CAAWmF,+BAHxB,EADY,GAMZ,EANJ,CAQA,IAAMG,QAAQ,GAAG,KAAKC,cAAtB,CACA,oBACE,sCACE,YAAU9G,YAAY,CAACC,IADzB,EAEE,SAAS,EAAE,iBAAG8G,kBAAkB,CAAC,KAAK1F,KAAN,CAArB,mBACRN,aAAOd,IAAP,CAAY,KAAKsB,KAAjB,CADQ,IACkB,IADlB,OAERR,aAAOiG,UAAP,CAAkB,KAAKzF,KAAvB,CAFQ,IAEwBsF,QAFxB,OAGR9F,aAAOkG,MAAP,CAAc,KAAK1F,KAAnB,CAHQ,IAGoB+E,SAAS,IAAI,CAACO,QAHlC,QAFb,EAOE,KAAK,EAAE,KAAKxB,QAAL,CAAc,KAAKhE,KAAnB,CAPT,EAQE,EAAE,EAAE,KAAKA,KAAL,CAAW6F,EARjB,EASE,SAAS,EAAE,KAAKnC,aATlB,EAUE,GAAG,EAAE,KAAKoC,WAVZ,EAWE,QAAQ,EAAE,CAXZ,IAaG,KAAK9F,KAAL,CAAWF,MAAX,IAAqB,KAAKL,YAAL,EAbxB,eAcE,6BAAC,gCAAD,IACE,GAAG,EAAE,KAAKyD,kBADZ,EAEE,SAAS,EAAE9D,SAFb,EAGE,mBAAmB,EAAE8F,mBAHvB,EAIE,mBAAmB,EAAE,KAAKb,uBAJ5B,EAKE,QAAQ,EAAE,KAAKrE,KAAL,CAAW+F,sBALvB,EAME,OAAO,EAAEZ,OANX,iBAQE,sCACE,SAAS,EAAE,kCACRzF,aAAOyD,eAAP,CAAuB,KAAKjD,KAA5B,CADQ,IAC6B,IAD7B,OAERR,aAAOsG,qBAAP,CAA6B,KAAK9F,KAAlC,CAFQ,IAEmCsF,QAFnC,QADb,IAMG,KAAK9E,YAAL,EANH,CARF,CAdF,EA+BG,KAAKV,KAAL,CAAWM,MAAX,IAAqB,KAAKF,YAAL,EA/BxB,CADF,CAmCD,C,QA8HOkB,c,GAAR,wBACE2E,WADF,EAEEC,QAFF,EAGE,CACA,KAAK7C,WAAL,GAAmB6C,QAAnB,CAEA,IAAI,OAAOD,WAAP,KAAuB,UAA3B,EAAuC,CACrCA,WAAW,CAACC,QAAD,CAAX,CACD,CACF,C,QAwBOxE,M,GAAR,gBAAeR,KAAf,EAA8BiF,gBAA9B,EAAyDxC,KAAzD,EAA4G,CAC1G,IAAMyC,IAAI,GAAGC,eAAe,CAAC,KAAKrG,KAAL,CAAWY,QAAZ,CAAf,CAAqCM,KAArC,CAAb,CACA,IAAI,sCAAgBkF,IAAhB,CAAJ,EAA2B,CACzB,IAAID,gBAAgB,IAAIC,IAAI,CAACpG,KAAL,CAAWsG,IAAnC,EAAyC,CACvC,IAAIF,IAAI,CAACpG,KAAL,CAAWuG,MAAf,EAAuB,CACrB5D,MAAM,CAAC6D,IAAP,CAAYJ,IAAI,CAACpG,KAAL,CAAWsG,IAAvB,EAA6BF,IAAI,CAACpG,KAAL,CAAWuG,MAAxC,EACD,CAFD,MAEO,CACLE,QAAQ,CAACH,IAAT,GAAgBF,IAAI,CAACpG,KAAL,CAAWsG,IAA3B,CACD,CACF,CACD,IAAIF,IAAI,CAACpG,KAAL,CAAWyB,OAAf,EAAwB,CACtB2E,IAAI,CAACpG,KAAL,CAAWyB,OAAX,CAAmBkC,KAAnB,EACD,CACD,IAAI,KAAK3D,KAAL,CAAW0G,WAAf,EAA4B,CAC1B,KAAK1G,KAAL,CAAW0G,WAAX,CAAuB/C,KAAvB,EACD,CACD,OAAO,IAAP,CACD,CACD,OAAO,KAAP,CACD,C,QAUOgB,I,GAAR,cAAagC,IAAb,EAA2B,mBACzB,IAAI,KAAKrH,SAAT,EAAoB,CAClB;AACA,aACD,CAED,IAAMsB,QAAQ,GAAGyF,eAAe,CAAC,KAAKrG,KAAL,CAAWY,QAAZ,CAAhC,CACA,IAAMgG,cAAc,GAAGhG,QAAQ,CAACiG,MAAT,CAAgBC,gCAAhB,CAAvB,CACA,IAAI,CAACF,cAAc,CAACG,MAApB,EAA4B,CAC1B,OACD,CACD,IAAI7F,KAAK,GAAG,KAAKhC,KAAL,CAAWC,gBAAvB,CAXyB,8BAavB+B,KAAK,IAAIyF,IAAT,CAEA,IAAI,CAAC,MAAI,CAAC3H,QAAL,GAAgBgI,eAAjB,KAAqC9F,KAAK,GAAG,CAAR,IAAaA,KAAK,GAAGN,QAAQ,CAACmG,MAAnE,CAAJ,EAAgF,CAC9E,qBACD,CAED,IAAI7F,KAAK,GAAG,CAAZ,EAAe,CACbA,KAAK,GAAGN,QAAQ,CAACmG,MAAT,GAAkB,CAA1B,CACD,CAFD,MAEO,IAAI7F,KAAK,GAAGN,QAAQ,CAACmG,MAArB,EAA6B,CAClC7F,KAAK,GAAG,CAAR,CACD,CAED,IAAMD,KAAK,GAAGL,QAAQ,CAACM,KAAD,CAAtB,CACA,IAAI,sCAAgBD,KAAhB,CAAJ,EAA4B,CAC1B,MAAI,CAACgC,QAAL,CAAc,EAAE9D,gBAAgB,EAAE+B,KAApB,EAAd,EAA2C,YAAM,CAC/C,QAAQ0F,cAAc,CAACK,OAAf,CAAuBhG,KAAvB,CAAR,GACE,KAAK,CAAL,CACE,MAAI,CAACuC,WAAL,GACA,MACF,KAAKoD,cAAc,CAACG,MAAf,GAAwB,CAA7B,CACE,MAAI,CAACtD,cAAL,GACA,MACF,QACE,MAAI,CAACL,gBAAL,GARJ,CAUD,CAXD,EAYA,qBACD,CAxCsB,EAYzB,GAAG,gEA6BF,CA7BD,QA6BSlC,KAAK,KAAK,KAAKhC,KAAL,CAAWC,gBA7B9B,EA8BD,C,QAEO6F,O,GAAR,mBAAkB,CAChB,IAAQpE,QAAR,GAAqB,KAAKZ,KAA1B,CAAQY,QAAR,CACA,OAAO,CAACA,QAAD,IAAa,CAACyF,eAAe,CAACzF,QAAD,CAAf,CAA0BiG,MAA1B,CAAiCK,oBAAjC,EAAgDH,MAArE,CACD,C,eA7YuBjG,eAAMqG,a,WAChBC,mB,GAAsB,M,UAEtBnI,Y,GAA6B,EACzCgF,KAAK,EAAE,MADkC,EAEzCE,KAAK,EAAE,MAFkC,EAGzC/E,SAAS,EAAE,GAH8B,EAIzC6F,SAAS,EAAE,IAJ8B,EAKzCC,mBAAmB,EAAE,IALoB,EAMzC8B,eAAe,EAAE,IANwB,EAOzChF,wBAAwB,EAAE,CAAC,CAPc,E,mDAwb7C,SAASqE,eAAT,CAAyBzF,QAAzB,EAAuE,CACrE,IAAMyG,GAAsB,GAAG,EAA/B,CADqE,CAErE;AACAvG,iBAAMC,QAAN,CAAeuG,OAAf,CAAuB1G,QAAvB,EAAiC,UAACK,KAAD,EAAW,CAC1CoG,GAAG,CAACE,IAAJ,CAAStG,KAAT,EACD,CAFD,EAGA,OAAOoG,GAAP,CACD,CAED,IAAM3B,kBAAkB,GAAG,SAArBA,kBAAqB,CAAC1F,KAAD,EAAsB;AAC/C,MAAIA,KAAK,CAACiE,KAAN,KAAgB,OAApB,EAA6B;AAC3B,WAAO;AACJvE,iBAAO8H,UAAP,EADI,IACkB,CAACC,cADnB;AAEJ/H,iBAAOgI,cAAP,EAFI,IAEsBD,cAFtB;AAGJ/H,iBAAOiI,0BAAP,EAHI,IAGkCF,kBAAUzH,KAAK,CAACmE,KAAN,KAAgB,MAH5D,QAAP;;AAKD;;AAED,SAAO,IAAP;AACD,CAVD","sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { isHTMLElement } from '../../lib/SSRSafe';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } 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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { isIconPaddingEnabled } from '../InternalMenu/isIconPaddingEnabled';\n\nimport { styles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'maxHeight'\n | 'hasShadow'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isHTMLElement(rootNode)) {\n rootNode?.focus();\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 /**\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 const { hasShadow, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = isTheme2022(this.theme)\n ? {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n }\n : {};\n\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow && !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n >\n {this.getChildList()}\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private getChildList = () => {\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n return React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\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 setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && typeof window !== 'undefined' && rootNode) {\n const rootElementMaxHeight = window.getComputedStyle(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\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 const rootNode = getRootNode(this.highlighted);\n // TODO: Remove this check once IF-647 is resolved\n if (rootNode instanceof HTMLElement) {\n this.scrollContainer.scrollTo(rootNode);\n }\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(event);\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\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return;\n }\n\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 private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(event);\n }\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\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 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":["MenuDataTids","root","Menu","responsiveLayout","rootNode","getProps","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","React","createRef","menuNavigation","MenuNavigation","MenuItemDataTids","content","focusOnRootElement","globalObject","HTMLElement","focus","renderHeader","styles","wrapper","headerWrapper","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","footerWrapper","footer","ThemeFactory","create","menuSeparatorMarginY","getChildList","menuItemsAtAnyLevel","children","preventIconsOffset","Children","map","child","index","modifiedChild","highlight","ref","refHighlighted","bind","cloneElement","onClick","select","onMouseEnter","onMouseLeave","unhighlight","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","count","calculateMaxHeight","parsedMaxHeight","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","highlighted","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","length","handleKeyDown","event","onKeyDown","defaultPrevented","preventDefault","up","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","componentWillUnmount","componentDidMount","componentDidUpdate","render","flags","renderMain","move","enter","navigate","reset","hasHighlightedItem","highlightItem","highlightByIndex","isEmpty","hasShadow","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","getAlignRightClass","mobileRoot","shadow","id","setRootNode","disableScrollContainer","scrollContainerMobile","navigation","onItemClick","originalRef","menuItem","shouldHandleHref","item","childrenToArray","href","target","open","location","step","cyclicSelection","activeElements","filter","isActiveElement","indexOf","isNonNullable","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","push","alignRight","isIE11","alignRightIE11","alignRightIE11FixAutoWidth"],"mappings":"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","sourcesContent":["import React, { CSSProperties, HTMLAttributes } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { ScrollContainer, ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { MenuItem, MenuItemDataTids, 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';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { isIconPaddingEnabled } from '../InternalMenu/isIconPaddingEnabled';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { styles } from './Menu.styles';\nimport { isActiveElement } from './isActiveElement';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasShadow?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number;\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'maxHeight'\n | 'hasShadow'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasShadow: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private highlighted: Nullable<MenuItem>;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n private menuItemsAtAnyLevel?: boolean;\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.menuItemsAtAnyLevel = getFullReactUIFlagsContext(flags).menuItemsAtAnyLevel;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.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 if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n return this.select(this.state.highlightedIndex, true, event);\n }\n\n /**\n * @public\n */\n public reset() {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.reset();\n } else {\n this.setState({ highlightedIndex: -1 });\n }\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n if (this.menuItemsAtAnyLevel) {\n return !!this.menuNavigation.highlightedItem;\n }\n return this.state.highlightedIndex !== -1;\n }\n\n public highlightItem(index: number) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.highlightByIndex(index);\n } else {\n this.highlight(index);\n }\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasShadow, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = isTheme2022(this.theme)\n ? {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n }\n : {};\n\n const isMobile = this.isMobileLayout;\n return (\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: hasShadow && !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n ref={this.setRootNode}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.getChildList()}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private getChildList = () => {\n if (this.menuItemsAtAnyLevel) {\n return this.props.children;\n }\n const enableIconPadding = isIconPaddingEnabled(this.props.children, this.props.preventIconsOffset);\n\n return React.Children.map(this.props.children, (child, index) => {\n if (typeof child === 'string' || typeof child === 'number' || isNullable(child)) {\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 setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\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 const highlightedItem = this.menuItemsAtAnyLevel ? this.menuNavigation.highlightedItem : this.highlighted;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\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 scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\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) && isBrowser(globalObject)) {\n if (shouldHandleHref && item.props.href) {\n if (item.props.target) {\n globalObject.open(item.props.href, item.props.target);\n } else {\n globalObject.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(event);\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 if (this.menuItemsAtAnyLevel) {\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n } else {\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\n if (!this.getProps().cyclicSelection && (index < 0 || index > children.length)) {\n return;\n }\n\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\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n if (this.menuItemsAtAnyLevel) {\n this.menuNavigation.select(event);\n } else if (this.highlighted && this.highlighted.props.onClick) {\n this.highlighted.props.onClick(event);\n }\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\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 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"]}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { MenuItem } from '../../components/MenuItem';
3
+ import { MenuNavigation } from './MenuNavigation';
4
+ export interface MenuContextType {
5
+ navigation: MenuNavigation<MenuItem> | null;
6
+ enableIconPadding: boolean;
7
+ setEnableIconPadding?: (isIconPaddingEnabled: boolean) => void;
8
+ onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;
9
+ }
10
+ export declare const MenuContext: React.Context<MenuContextType>;
@@ -0,0 +1,16 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MenuContext = void 0;var _react = _interopRequireDefault(require("react"));
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+ var MenuContext = /*#__PURE__*/_react.default.createContext({
15
+ navigation: null,
16
+ enableIconPadding: false });exports.MenuContext = MenuContext;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MenuContext.ts"],"names":["MenuContext","React","createContext","navigation","enableIconPadding"],"mappings":"yJAAA;;;;;;;;;;;;;AAaO,IAAMA,WAAW,gBAAGC,eAAMC,aAAN,CAAqC;AAC9DC,EAAAA,UAAU,EAAE,IADkD;AAE9DC,EAAAA,iBAAiB,EAAE,KAF2C,EAArC,CAApB,C","sourcesContent":["import React from 'react';\n\nimport { MenuItem } from '../../components/MenuItem';\n\nimport { MenuNavigation } from './MenuNavigation';\n\nexport interface MenuContextType {\n navigation: MenuNavigation<MenuItem> | null;\n enableIconPadding: boolean;\n setEnableIconPadding?: (isIconPaddingEnabled: boolean) => void;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n}\n\nexport const MenuContext = React.createContext<MenuContextType>({\n navigation: null,\n enableIconPadding: false,\n});\n"]}
@@ -0,0 +1,26 @@
1
+ import React, { RefObject } from 'react';
2
+ interface Highlightable {
3
+ highlight(): void;
4
+ unhighlight(): void;
5
+ select(...args: unknown[]): void;
6
+ isEnabled(): boolean;
7
+ }
8
+ export declare class MenuNavigation<T extends Highlightable> {
9
+ private readonly root;
10
+ private readonly itemsContentDataTid;
11
+ private tagsAndItems;
12
+ highlightedItem: T | null;
13
+ items: T[];
14
+ constructor(root: RefObject<HTMLDivElement> | null, itemsContentDataTid: string);
15
+ private update;
16
+ add(tag: Element, item: T): void;
17
+ remove(tag: HTMLElement): void;
18
+ move(step: number, isCyclic: boolean): number;
19
+ highlight(item: T | null): void;
20
+ highlightByIndex(index: number): void;
21
+ unhighlight(): void;
22
+ select(event: React.SyntheticEvent<HTMLElement>): boolean;
23
+ reset(): void;
24
+ private getEnabledItems;
25
+ }
26
+ export {};