@skbkontur/react-ui 0.0.0-5188be76c1 → 0.0.0-53ccdcbfcc

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 (1139) hide show
  1. package/CHANGELOG.md +164 -16
  2. package/cjs/components/Button/Button.d.ts +1 -0
  3. package/cjs/components/Button/Button.js +18 -6
  4. package/cjs/components/Button/Button.js.map +1 -1
  5. package/cjs/components/Button/Button.md +68 -0
  6. package/cjs/components/Button/Button.mixins.d.ts +6 -6
  7. package/cjs/components/Button/Button.mixins.js +54 -53
  8. package/cjs/components/Button/Button.mixins.js.map +1 -1
  9. package/cjs/components/Button/Button.styles.d.ts +2 -1
  10. package/cjs/components/Button/Button.styles.js +200 -161
  11. package/cjs/components/Button/Button.styles.js.map +1 -1
  12. package/cjs/components/Button/ButtonArrow.js +1 -1
  13. package/cjs/components/Button/ButtonArrow.js.map +1 -1
  14. package/cjs/components/Button/ButtonIcon.js +1 -4
  15. package/cjs/components/Button/ButtonIcon.js.map +1 -1
  16. package/cjs/components/Button/getInnerLinkTheme.js +1 -0
  17. package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
  18. package/cjs/components/Calendar/Calendar.js +8 -6
  19. package/cjs/components/Calendar/Calendar.js.map +1 -1
  20. package/cjs/components/Checkbox/Checkbox.js +8 -7
  21. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  22. package/cjs/components/Clickable/ArrowLeftIcon.d.ts +3 -0
  23. package/cjs/components/Clickable/ArrowLeftIcon.js +15 -0
  24. package/cjs/components/Clickable/ArrowLeftIcon.js.map +1 -0
  25. package/cjs/components/Clickable/ArrowRightIcon.d.ts +3 -0
  26. package/cjs/components/Clickable/ArrowRightIcon.js +15 -0
  27. package/cjs/components/Clickable/ArrowRightIcon.js.map +1 -0
  28. package/cjs/components/Clickable/Clickable.d.ts +95 -0
  29. package/cjs/components/Clickable/Clickable.js +248 -0
  30. package/cjs/components/Clickable/Clickable.js.map +1 -0
  31. package/cjs/components/Clickable/Clickable.md +210 -0
  32. package/cjs/components/Clickable/Clickable.styles.d.ts +11 -0
  33. package/cjs/components/Clickable/Clickable.styles.js +31 -0
  34. package/cjs/components/Clickable/Clickable.styles.js.map +1 -0
  35. package/cjs/components/Clickable/ClickableButton.d.ts +5 -0
  36. package/cjs/components/Clickable/ClickableButton.js +43 -0
  37. package/cjs/components/Clickable/ClickableButton.js.map +1 -0
  38. package/cjs/components/Clickable/ClickableButton.mixins.d.ts +30 -0
  39. package/cjs/components/Clickable/ClickableButton.mixins.js +134 -0
  40. package/cjs/components/Clickable/ClickableButton.mixins.js.map +1 -0
  41. package/cjs/components/Clickable/ClickableButton.styles.d.ts +63 -0
  42. package/cjs/components/Clickable/ClickableButton.styles.js +604 -0
  43. package/cjs/components/Clickable/ClickableButton.styles.js.map +1 -0
  44. package/cjs/components/Clickable/ClickableButtonArrow.d.ts +4 -0
  45. package/cjs/components/Clickable/ClickableButtonArrow.js +32 -0
  46. package/cjs/components/Clickable/ClickableButtonArrow.js.map +1 -0
  47. package/cjs/components/Clickable/ClickableButtonArrow.styles.d.ts +8 -0
  48. package/cjs/components/Clickable/ClickableButtonArrow.styles.js +40 -0
  49. package/cjs/components/Clickable/ClickableButtonArrow.styles.js.map +1 -0
  50. package/cjs/components/Clickable/ClickableButtonCaption.d.ts +2 -0
  51. package/cjs/components/Clickable/ClickableButtonCaption.js +57 -0
  52. package/cjs/components/Clickable/ClickableButtonCaption.js.map +1 -0
  53. package/cjs/components/Clickable/ClickableButtonCaption.styles.d.ts +5 -0
  54. package/cjs/components/Clickable/ClickableButtonCaption.styles.js +23 -0
  55. package/cjs/components/Clickable/ClickableButtonCaption.styles.js.map +1 -0
  56. package/cjs/components/Clickable/ClickableButtonIcon.d.ts +7 -0
  57. package/cjs/components/Clickable/ClickableButtonIcon.js +64 -0
  58. package/cjs/components/Clickable/ClickableButtonIcon.js.map +1 -0
  59. package/cjs/components/Clickable/ClickableButtonIcon.styles.d.ts +19 -0
  60. package/cjs/components/Clickable/ClickableButtonIcon.styles.js +108 -0
  61. package/cjs/components/Clickable/ClickableButtonIcon.styles.js.map +1 -0
  62. package/cjs/components/Clickable/ClickableButtonLoadingIcon.d.ts +6 -0
  63. package/cjs/components/Clickable/ClickableButtonLoadingIcon.js +19 -0
  64. package/cjs/components/Clickable/ClickableButtonLoadingIcon.js.map +1 -0
  65. package/cjs/components/Clickable/ClickableButtonLoadingIcon.styles.d.ts +3 -0
  66. package/cjs/components/Clickable/ClickableButtonLoadingIcon.styles.js +17 -0
  67. package/cjs/components/Clickable/ClickableButtonLoadingIcon.styles.js.map +1 -0
  68. package/cjs/components/Clickable/ClickableButtonOutline.d.ts +4 -0
  69. package/cjs/components/Clickable/ClickableButtonOutline.js +36 -0
  70. package/cjs/components/Clickable/ClickableButtonOutline.js.map +1 -0
  71. package/cjs/components/Clickable/ClickableButtonOutline.styles.d.ts +6 -0
  72. package/cjs/components/Clickable/ClickableButtonOutline.styles.js +25 -0
  73. package/cjs/components/Clickable/ClickableButtonOutline.styles.js.map +1 -0
  74. package/cjs/components/Clickable/ClickableButtonWrapper.d.ts +3 -0
  75. package/cjs/components/Clickable/ClickableButtonWrapper.js +27 -0
  76. package/cjs/components/Clickable/ClickableButtonWrapper.js.map +1 -0
  77. package/cjs/components/Clickable/ClickableButtonWrapper.styles.d.ts +7 -0
  78. package/cjs/components/Clickable/ClickableButtonWrapper.styles.js +27 -0
  79. package/cjs/components/Clickable/ClickableButtonWrapper.styles.js.map +1 -0
  80. package/cjs/components/Clickable/ClickableLink.d.ts +5 -0
  81. package/cjs/components/Clickable/ClickableLink.js +28 -0
  82. package/cjs/components/Clickable/ClickableLink.js.map +1 -0
  83. package/cjs/components/Clickable/ClickableLink.styles.d.ts +21 -0
  84. package/cjs/components/Clickable/ClickableLink.styles.js +134 -0
  85. package/cjs/components/Clickable/ClickableLink.styles.js.map +1 -0
  86. package/cjs/components/Clickable/ClickableLinkChild.d.ts +7 -0
  87. package/cjs/components/Clickable/ClickableLinkChild.js +40 -0
  88. package/cjs/components/Clickable/ClickableLinkChild.js.map +1 -0
  89. package/cjs/components/Clickable/ClickableLinkChild.styles.d.ts +7 -0
  90. package/cjs/components/Clickable/ClickableLinkChild.styles.js +42 -0
  91. package/cjs/components/Clickable/ClickableLinkChild.styles.js.map +1 -0
  92. package/cjs/components/Clickable/ClickableLinkIcon.d.ts +7 -0
  93. package/cjs/components/Clickable/ClickableLinkIcon.js +30 -0
  94. package/cjs/components/Clickable/ClickableLinkIcon.js.map +1 -0
  95. package/cjs/components/Clickable/ClickableLinkIcon.styles.d.ts +6 -0
  96. package/cjs/components/Clickable/ClickableLinkIcon.styles.js +20 -0
  97. package/cjs/components/Clickable/ClickableLinkIcon.styles.js.map +1 -0
  98. package/cjs/components/Clickable/index.d.ts +1 -0
  99. package/cjs/components/Clickable/index.js +1 -0
  100. package/cjs/components/Clickable/index.js.map +1 -0
  101. package/cjs/components/Clickable/utils.d.ts +6 -0
  102. package/cjs/components/Clickable/utils.js +47 -0
  103. package/cjs/components/Clickable/utils.js.map +1 -0
  104. package/cjs/components/CurrencyInput/CurrencyInput.js +3 -1
  105. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  106. package/cjs/components/DateInput/DateFragmentsView.js +2 -1
  107. package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
  108. package/cjs/components/DateInput/DateInput.js +2 -1
  109. package/cjs/components/DateInput/DateInput.js.map +1 -1
  110. package/cjs/components/DateInput/helpers/SelectionHelpers.js +11 -10
  111. package/cjs/components/DateInput/helpers/SelectionHelpers.js.map +1 -1
  112. package/cjs/components/Dropdown/getDropdownTheme.js +21 -22
  113. package/cjs/components/Dropdown/getDropdownTheme.js.map +1 -1
  114. package/cjs/components/FileUploader/FileUploader.js +5 -5
  115. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  116. package/cjs/components/FileUploader/FileUploader.styles.d.ts +1 -1
  117. package/cjs/components/FileUploader/FileUploader.styles.js +10 -2
  118. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
  119. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +1 -2
  120. package/cjs/components/GlobalLoader/GlobalLoader.js +11 -16
  121. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  122. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +1 -2
  123. package/cjs/components/GlobalLoader/GlobalLoaderView.js +3 -5
  124. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  125. package/cjs/components/Group/Group.js +7 -5
  126. package/cjs/components/Group/Group.js.map +1 -1
  127. package/cjs/components/Group/Group.md +24 -0
  128. package/cjs/components/Hint/Hint.js +5 -5
  129. package/cjs/components/Hint/Hint.js.map +1 -1
  130. package/cjs/components/Input/Input.d.ts +22 -5
  131. package/cjs/components/Input/Input.js +43 -22
  132. package/cjs/components/Input/Input.js.map +1 -1
  133. package/cjs/components/Input/Input.typings.d.ts +7 -0
  134. package/cjs/components/Input/Input.typings.js +1 -0
  135. package/cjs/components/Input/Input.typings.js.map +1 -0
  136. package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -1
  137. package/cjs/components/Input/InputLayout/InputLayout.styles.js +7 -2
  138. package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  139. package/cjs/components/Input/InputLayout/InputLayoutAside.js +1 -7
  140. package/cjs/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  141. package/cjs/components/Input/index.d.ts +1 -0
  142. package/cjs/components/Input/index.js +2 -1
  143. package/cjs/components/Input/index.js.map +1 -1
  144. package/cjs/components/Kebab/Kebab.js +3 -2
  145. package/cjs/components/Kebab/Kebab.js.map +1 -1
  146. package/cjs/components/Link/Link.js +11 -7
  147. package/cjs/components/Link/Link.js.map +1 -1
  148. package/cjs/components/Link/Link.md +69 -0
  149. package/cjs/components/Link/Link.styles.d.ts +1 -0
  150. package/cjs/components/Link/Link.styles.js +30 -22
  151. package/cjs/components/Link/Link.styles.js.map +1 -1
  152. package/cjs/components/Loader/Loader.js +8 -7
  153. package/cjs/components/Loader/Loader.js.map +1 -1
  154. package/cjs/components/MaskedInput/MaskedInput.d.ts +24 -0
  155. package/cjs/components/MaskedInput/MaskedInput.js +78 -0
  156. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -0
  157. package/cjs/components/MaskedInput/MaskedInput.md +21 -0
  158. package/cjs/components/MaskedInput/index.js.map +1 -0
  159. package/cjs/components/MenuHeader/MenuHeader.js +3 -1
  160. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  161. package/cjs/components/MenuItem/MenuItem.d.ts +21 -0
  162. package/cjs/components/MenuItem/MenuItem.js +113 -15
  163. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  164. package/cjs/components/MenuItem/MenuItem.md +20 -6
  165. package/cjs/components/MiniModal/MiniModal.d.ts +18 -0
  166. package/cjs/components/MiniModal/MiniModal.js +47 -0
  167. package/cjs/components/MiniModal/MiniModal.js.map +1 -0
  168. package/cjs/components/MiniModal/MiniModal.md +233 -0
  169. package/cjs/components/MiniModal/MiniModal.styles.d.ts +14 -0
  170. package/cjs/components/MiniModal/MiniModal.styles.js +87 -0
  171. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -0
  172. package/cjs/components/MiniModal/MiniModalBody.d.ts +7 -0
  173. package/cjs/components/MiniModal/MiniModalBody.js +24 -0
  174. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -0
  175. package/cjs/components/MiniModal/MiniModalFooter.d.ts +18 -0
  176. package/cjs/components/MiniModal/MiniModalFooter.js +60 -0
  177. package/cjs/components/MiniModal/MiniModalFooter.js.map +1 -0
  178. package/cjs/components/MiniModal/MiniModalHeader.d.ts +17 -0
  179. package/cjs/components/MiniModal/MiniModalHeader.js +47 -0
  180. package/cjs/components/MiniModal/MiniModalHeader.js.map +1 -0
  181. package/cjs/components/MiniModal/MiniModalIndent.d.ts +6 -0
  182. package/cjs/components/MiniModal/MiniModalIndent.js +29 -0
  183. package/cjs/components/MiniModal/MiniModalIndent.js.map +1 -0
  184. package/cjs/components/MiniModal/getMiniModalTheme.d.ts +16 -0
  185. package/cjs/components/MiniModal/getMiniModalTheme.js +24 -0
  186. package/cjs/components/MiniModal/getMiniModalTheme.js.map +1 -0
  187. package/cjs/components/MiniModal/index.d.ts +5 -0
  188. package/cjs/components/MiniModal/index.js +5 -0
  189. package/cjs/components/MiniModal/index.js.map +1 -0
  190. package/cjs/components/Modal/Modal.d.ts +6 -0
  191. package/cjs/components/Modal/Modal.js +15 -1
  192. package/cjs/components/Modal/Modal.js.map +1 -1
  193. package/cjs/components/Modal/Modal.styles.d.ts +5 -0
  194. package/cjs/components/Modal/Modal.styles.js +56 -39
  195. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  196. package/cjs/components/Modal/ModalClose.js +2 -1
  197. package/cjs/components/Modal/ModalClose.js.map +1 -1
  198. package/cjs/components/Modal/ModalHeader.js +1 -1
  199. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  200. package/cjs/components/Modal/ModalSeparator.d.ts +5 -0
  201. package/cjs/components/Modal/ModalSeparator.js +5 -0
  202. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  203. package/cjs/components/Modal/getModalTheme.d.ts +2 -2
  204. package/cjs/components/Modal/getModalTheme.js +6 -2
  205. package/cjs/components/Modal/getModalTheme.js.map +1 -1
  206. package/cjs/components/Paging/NavigationHelper.js +2 -1
  207. package/cjs/components/Paging/NavigationHelper.js.map +1 -1
  208. package/cjs/components/Paging/Paging.js +16 -14
  209. package/cjs/components/Paging/Paging.js.map +1 -1
  210. package/cjs/components/Paging/Paging.styles.d.ts +0 -1
  211. package/cjs/components/Paging/Paging.styles.js +3 -9
  212. package/cjs/components/Paging/Paging.styles.js.map +1 -1
  213. package/cjs/components/PasswordInput/PasswordInput.js +4 -2
  214. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  215. package/cjs/components/Radio/Radio.js +2 -1
  216. package/cjs/components/Radio/Radio.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 +18 -3
  225. package/cjs/components/ScrollContainer/ScrollContainer.js +102 -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 +1 -0
  232. package/cjs/components/Select/Item.js +2 -1
  233. package/cjs/components/Select/Item.js.map +1 -1
  234. package/cjs/components/Select/Select.d.ts +2 -0
  235. package/cjs/components/Select/Select.js +25 -8
  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 +3 -1
  239. package/cjs/components/SidePage/SidePage.js +36 -5
  240. package/cjs/components/SidePage/SidePage.js.map +1 -1
  241. package/cjs/components/SidePage/SidePageCloseButton.js +2 -1
  242. package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
  243. package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
  244. package/cjs/components/SidePage/SidePageHeader.js +8 -6
  245. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  246. package/cjs/components/SingleToast/SingleToast.d.ts +11 -0
  247. package/cjs/components/SingleToast/SingleToast.js +20 -0
  248. package/cjs/components/SingleToast/SingleToast.js.map +1 -0
  249. package/cjs/components/SingleToast/SingleToast.md +35 -0
  250. package/cjs/components/SingleToast/index.d.ts +1 -0
  251. package/cjs/components/SingleToast/index.js +1 -0
  252. package/cjs/components/SingleToast/index.js.map +1 -0
  253. package/cjs/components/Spinner/Spinner.d.ts +1 -0
  254. package/cjs/components/Spinner/Spinner.js +16 -1
  255. package/cjs/components/Spinner/Spinner.js.map +1 -1
  256. package/cjs/components/Spinner/SpinnerFallbackAnimation.js +6 -2
  257. package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
  258. package/cjs/components/Sticky/Sticky.js +5 -10
  259. package/cjs/components/Sticky/Sticky.js.map +1 -1
  260. package/cjs/components/Switcher/Switcher.d.ts +1 -1
  261. package/cjs/components/Switcher/Switcher.js.map +1 -1
  262. package/cjs/components/Tabs/Indicator.js +3 -1
  263. package/cjs/components/Tabs/Indicator.js.map +1 -1
  264. package/cjs/components/Tabs/Tab.js +2 -1
  265. package/cjs/components/Tabs/Tab.js.map +1 -1
  266. package/cjs/components/Tabs/Tabs.js +3 -1
  267. package/cjs/components/Tabs/Tabs.js.map +1 -1
  268. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  269. package/cjs/components/Textarea/Textarea.js +38 -11
  270. package/cjs/components/Textarea/Textarea.js.map +1 -1
  271. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -1
  272. package/cjs/components/Textarea/TextareaCounter.js +2 -1
  273. package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
  274. package/cjs/components/Textarea/TextareaHelpers.d.ts +1 -1
  275. package/cjs/components/Textarea/TextareaHelpers.js +7 -2
  276. package/cjs/components/Textarea/TextareaHelpers.js.map +1 -1
  277. package/cjs/components/Textarea/TextareaWithSafari17Workaround.d.ts +6 -0
  278. package/cjs/components/Textarea/TextareaWithSafari17Workaround.js +20 -0
  279. package/cjs/components/Textarea/TextareaWithSafari17Workaround.js.map +1 -0
  280. package/cjs/components/Toast/Toast.d.ts +10 -3
  281. package/cjs/components/Toast/Toast.js +26 -8
  282. package/cjs/components/Toast/Toast.js.map +1 -1
  283. package/cjs/components/Toast/Toast.md +0 -105
  284. package/cjs/components/Toast/ToastStatic.js +4 -3
  285. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  286. package/cjs/components/Token/Token.js +1 -6
  287. package/cjs/components/Token/Token.js.map +1 -1
  288. package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
  289. package/cjs/components/TokenInput/TokenInput.js +42 -9
  290. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  291. package/cjs/components/TokenInput/TokenInput.md +71 -0
  292. package/cjs/components/Tooltip/Tooltip.d.ts +6 -1
  293. package/cjs/components/Tooltip/Tooltip.js +15 -5
  294. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  295. package/cjs/components/Tooltip/Tooltip.md +24 -0
  296. package/cjs/hooks/useDrop.js +3 -2
  297. package/cjs/hooks/useDrop.js.map +1 -1
  298. package/cjs/index.d.ts +5 -0
  299. package/cjs/index.js +5 -0
  300. package/cjs/index.js.map +1 -1
  301. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +2 -1
  302. package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  303. package/cjs/internal/ComponentCombinator.d.ts +7 -8
  304. package/cjs/internal/ComponentCombinator.js +2 -5
  305. package/cjs/internal/ComponentCombinator.js.map +1 -1
  306. package/cjs/internal/ComponentTable.d.ts +7 -19
  307. package/cjs/internal/ComponentTable.js +50 -77
  308. package/cjs/internal/ComponentTable.js.map +1 -1
  309. package/cjs/internal/CustomComboBox/CustomComboBox.js +4 -3
  310. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  311. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +3 -2
  312. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  313. package/cjs/internal/DateSelect/DateSelect.js +20 -16
  314. package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
  315. package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +0 -1
  316. package/cjs/internal/DropdownContainer/DropdownContainer.js +14 -13
  317. package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
  318. package/cjs/internal/DropdownContainer/getManualPosition.js +6 -4
  319. package/cjs/internal/DropdownContainer/getManualPosition.js.map +1 -1
  320. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -1
  321. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +2 -1
  322. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
  323. package/cjs/internal/FocusTrap/FocusTrap.js +8 -6
  324. package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
  325. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +19 -20
  326. package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  327. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +3 -1
  328. package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  329. package/cjs/internal/InputLikeText/InputLikeText.js +17 -16
  330. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  331. package/cjs/internal/{MaskedInput/MaskedInput.d.ts → InternalMaskedInput/InternalMaskedInput.d.ts} +8 -5
  332. package/cjs/internal/{MaskedInput/MaskedInput.js → InternalMaskedInput/InternalMaskedInput.js} +11 -8
  333. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -0
  334. package/cjs/internal/InternalMaskedInput/InternalMaskedInput.styles.js.map +1 -0
  335. package/cjs/internal/InternalMaskedInput/index.d.ts +1 -0
  336. package/cjs/internal/InternalMaskedInput/index.js +1 -0
  337. package/cjs/internal/InternalMaskedInput/index.js.map +1 -0
  338. package/cjs/internal/InternalMenu/InternalMenu.js +8 -7
  339. package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
  340. package/cjs/internal/MaskedInputElement/MaskedInputElement.d.ts +14 -0
  341. package/cjs/internal/MaskedInputElement/MaskedInputElement.helpers.d.ts +16 -0
  342. package/cjs/internal/MaskedInputElement/MaskedInputElement.helpers.js +52 -0
  343. package/cjs/internal/MaskedInputElement/MaskedInputElement.helpers.js.map +1 -0
  344. package/cjs/internal/MaskedInputElement/MaskedInputElement.js +196 -0
  345. package/cjs/internal/MaskedInputElement/MaskedInputElement.js.map +1 -0
  346. package/cjs/internal/MaskedInputElement/MaskedInputElement.styles.js +29 -0
  347. package/cjs/internal/MaskedInputElement/MaskedInputElement.styles.js.map +1 -0
  348. package/cjs/internal/MaskedInputElement/index.d.ts +1 -0
  349. package/cjs/internal/MaskedInputElement/index.js +1 -0
  350. package/cjs/internal/MaskedInputElement/index.js.map +1 -0
  351. package/cjs/internal/Menu/Menu.d.ts +6 -0
  352. package/cjs/internal/Menu/Menu.js +84 -16
  353. package/cjs/internal/Menu/Menu.js.map +1 -1
  354. package/cjs/internal/Menu/MenuContext.d.ts +10 -0
  355. package/cjs/internal/Menu/MenuContext.js +16 -0
  356. package/cjs/internal/Menu/MenuContext.js.map +1 -0
  357. package/cjs/internal/Menu/MenuNavigation.d.ts +26 -0
  358. package/cjs/internal/Menu/MenuNavigation.js +107 -0
  359. package/cjs/internal/Menu/MenuNavigation.js.map +1 -0
  360. package/cjs/internal/Menu/isActiveElement.js +1 -1
  361. package/cjs/internal/Menu/isActiveElement.js.map +1 -1
  362. package/cjs/internal/MenuMessage/MenuMessage.d.ts +1 -1
  363. package/cjs/internal/Popup/Popup.js +12 -8
  364. package/cjs/internal/Popup/Popup.js.map +1 -1
  365. package/cjs/internal/Popup/PopupHelper.js +9 -7
  366. package/cjs/internal/Popup/PopupHelper.js.map +1 -1
  367. package/cjs/internal/PopupMenu/PopupMenu.js +3 -2
  368. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  369. package/cjs/internal/RenderContainer/RenderContainer.d.ts +0 -1
  370. package/cjs/internal/RenderContainer/RenderContainer.js +18 -22
  371. package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
  372. package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -1
  373. package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
  374. package/cjs/internal/RenderLayer/RenderLayer.js +5 -3
  375. package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
  376. package/cjs/internal/ThemePlayground/VariableValue.js +1 -0
  377. package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
  378. package/cjs/internal/ThemePlayground/constants.js +1 -0
  379. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  380. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  381. package/cjs/internal/ThemeShowcase/VariablesCollector.js +6 -4
  382. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  383. package/cjs/internal/ZIndex/ZIndex.js +2 -2
  384. package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
  385. package/cjs/internal/ZIndex/ZIndexStorage.js +2 -2
  386. package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
  387. package/cjs/internal/icons/16px/index.d.ts +19 -19
  388. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.d.ts +1 -1
  389. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.d.ts +1 -1
  390. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.d.ts +1 -1
  391. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.d.ts +1 -1
  392. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.d.ts +1 -1
  393. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.d.ts +1 -1
  394. package/cjs/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.d.ts +1 -1
  395. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.d.ts +1 -1
  396. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.d.ts +1 -1
  397. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.d.ts +1 -1
  398. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.d.ts +1 -1
  399. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.d.ts +1 -1
  400. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.d.ts +1 -1
  401. package/cjs/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.d.ts +1 -1
  402. package/cjs/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.d.ts +1 -1
  403. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.d.ts +1 -1
  404. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.d.ts +1 -1
  405. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.d.ts +1 -1
  406. package/cjs/internal/icons2022/BaseIcon.d.ts +1 -1
  407. package/cjs/internal/icons2022/BaseIcon.js +3 -7
  408. package/cjs/internal/icons2022/BaseIcon.js.map +1 -1
  409. package/cjs/internal/icons2022/BaseIcon.styles.d.ts +3 -0
  410. package/cjs/internal/icons2022/BaseIcon.styles.js +14 -0
  411. package/cjs/internal/icons2022/BaseIcon.styles.js.map +1 -0
  412. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon16Light.d.ts +1 -1
  413. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon20Light.d.ts +1 -1
  414. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon24Regular.d.ts +1 -1
  415. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Light.d.ts +1 -1
  416. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Regular.d.ts +1 -1
  417. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Solid.d.ts +1 -1
  418. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Light.d.ts +1 -1
  419. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Solid.d.ts +1 -1
  420. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon24Regular.d.ts +1 -1
  421. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.d.ts +1 -1
  422. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.d.ts +1 -1
  423. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.d.ts +1 -1
  424. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.d.ts +1 -1
  425. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.d.ts +1 -1
  426. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.d.ts +1 -1
  427. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.d.ts +2 -0
  428. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js +20 -0
  429. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js.map +1 -0
  430. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.d.ts +1 -1
  431. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.d.ts +1 -1
  432. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.d.ts +1 -1
  433. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.d.ts +1 -1
  434. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.d.ts +1 -1
  435. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.d.ts +1 -1
  436. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.d.ts +1 -1
  437. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.d.ts +1 -1
  438. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.d.ts +1 -1
  439. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.d.ts +1 -1
  440. package/cjs/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.d.ts +1 -1
  441. package/cjs/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.d.ts +1 -1
  442. package/cjs/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.d.ts +1 -1
  443. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.d.ts +1 -1
  444. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.d.ts +1 -1
  445. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.d.ts +1 -1
  446. package/cjs/internal/icons2022/XIcon/XIcon16Light.d.ts +1 -1
  447. package/cjs/internal/icons2022/XIcon/XIcon16Regular.d.ts +1 -1
  448. package/cjs/internal/icons2022/XIcon/XIcon20Light.d.ts +1 -1
  449. package/cjs/internal/icons2022/XIcon/XIcon20Regular.d.ts +1 -1
  450. package/cjs/internal/icons2022/XIcon/XIcon24Regular.d.ts +1 -1
  451. package/cjs/internal/themes/DefaultTheme.d.ts +67 -2
  452. package/cjs/internal/themes/DefaultTheme.js +134 -7
  453. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  454. package/cjs/internal/themes/Theme2022.d.ts +22 -7
  455. package/cjs/internal/themes/Theme2022.js +40 -11
  456. package/cjs/internal/themes/Theme2022.js.map +1 -1
  457. package/cjs/internal/themes/Theme2022Dark.d.ts +5 -9
  458. package/cjs/internal/themes/Theme2022Dark.js +10 -10
  459. package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
  460. package/cjs/lib/LayoutEvents.js +5 -4
  461. package/cjs/lib/LayoutEvents.js.map +1 -1
  462. package/cjs/lib/ModalStack.js +2 -3
  463. package/cjs/lib/ModalStack.js.map +1 -1
  464. package/cjs/lib/SSRSafe.d.ts +1 -6
  465. package/cjs/lib/SSRSafe.js +4 -48
  466. package/cjs/lib/SSRSafe.js.map +1 -1
  467. package/cjs/lib/Upgrades.d.ts +1 -0
  468. package/cjs/lib/Upgrades.js +3 -1
  469. package/cjs/lib/Upgrades.js.map +1 -1
  470. package/cjs/lib/animation/index.js +6 -4
  471. package/cjs/lib/animation/index.js.map +1 -1
  472. package/cjs/lib/chars.d.ts +1 -1
  473. package/cjs/lib/chars.js +2 -2
  474. package/cjs/lib/chars.js.map +1 -1
  475. package/cjs/lib/client.d.ts +2 -7
  476. package/cjs/lib/client.js +9 -7
  477. package/cjs/lib/client.js.map +1 -1
  478. package/cjs/lib/dom/getScrollWidth.js +4 -4
  479. package/cjs/lib/dom/getScrollWidth.js.map +1 -1
  480. package/cjs/lib/dom/tabbableHelpers.d.ts +2 -1
  481. package/cjs/lib/dom/tabbableHelpers.js +8 -2
  482. package/cjs/lib/dom/tabbableHelpers.js.map +1 -1
  483. package/cjs/lib/events/MouseDrag.js +11 -11
  484. package/cjs/lib/events/MouseDrag.js.map +1 -1
  485. package/cjs/lib/events/fixClickFocusIE.js +6 -3
  486. package/cjs/lib/events/fixClickFocusIE.js.map +1 -1
  487. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +5 -2
  488. package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  489. package/cjs/lib/events/keyListener.js +9 -11
  490. package/cjs/lib/events/keyListener.js.map +1 -1
  491. package/cjs/lib/events/keyboard/identifiers.js +5 -2
  492. package/cjs/lib/events/keyboard/identifiers.js.map +1 -1
  493. package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +185 -0
  494. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +8 -0
  495. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.js +5 -0
  496. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.js.map +1 -0
  497. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +10 -0
  498. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +20 -0
  499. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -0
  500. package/cjs/lib/featureFlagsContext/index.d.ts +2 -0
  501. package/cjs/lib/featureFlagsContext/index.js +3 -0
  502. package/cjs/lib/featureFlagsContext/index.js.map +1 -0
  503. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  504. package/cjs/lib/forwardRefAndName.js +4 -1
  505. package/cjs/lib/forwardRefAndName.js.map +1 -1
  506. package/cjs/lib/isInstanceOf.d.ts +1 -0
  507. package/cjs/lib/isInstanceOf.js +6 -0
  508. package/cjs/lib/isInstanceOf.js.map +1 -0
  509. package/cjs/lib/listenFocusOutside.js +15 -15
  510. package/cjs/lib/listenFocusOutside.js.map +1 -1
  511. package/cjs/lib/needsPolyfillPlaceholder.js +5 -3
  512. package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -1
  513. package/cjs/lib/net/fetch.js +24 -18
  514. package/cjs/lib/net/fetch.js.map +1 -1
  515. package/cjs/lib/rootNode/getRootNode.js +6 -6
  516. package/cjs/lib/rootNode/getRootNode.js.map +1 -1
  517. package/cjs/lib/styles/ColorFactory.js +13 -11
  518. package/cjs/lib/styles/ColorFactory.js.map +1 -1
  519. package/cjs/lib/styles/ColorHelpers.d.ts +1 -1
  520. package/cjs/lib/styles/ColorHelpers.js +3 -7
  521. package/cjs/lib/styles/ColorHelpers.js.map +1 -1
  522. package/cjs/lib/taskWithDelayAndMinimalDuration.js +5 -5
  523. package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
  524. package/cjs/lib/theming/Emotion.js +4 -2
  525. package/cjs/lib/theming/Emotion.js.map +1 -1
  526. package/cjs/lib/utils.d.ts +7 -0
  527. package/cjs/lib/utils.js +29 -7
  528. package/cjs/lib/utils.js.map +1 -1
  529. package/cjs/typings/global.d.ts +3 -4
  530. package/cjs/typings/react-ref.d.ts +29 -0
  531. package/cjs/typings/utility-types.d.ts +2 -0
  532. package/components/Button/Button/Button.js +16 -3
  533. package/components/Button/Button/Button.js.map +1 -1
  534. package/components/Button/Button.d.ts +1 -0
  535. package/components/Button/Button.md +68 -0
  536. package/components/Button/Button.mixins/Button.mixins.js +58 -13
  537. package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
  538. package/components/Button/Button.mixins.d.ts +6 -6
  539. package/components/Button/Button.styles/Button.styles.js +210 -24
  540. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  541. package/components/Button/Button.styles.d.ts +2 -1
  542. package/components/Button/ButtonArrow/ButtonArrow.js +1 -1
  543. package/components/Button/ButtonArrow/ButtonArrow.js.map +1 -1
  544. package/components/Button/ButtonIcon/ButtonIcon.js +2 -4
  545. package/components/Button/ButtonIcon/ButtonIcon.js.map +1 -1
  546. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +1 -0
  547. package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
  548. package/components/Calendar/Calendar/Calendar.js +8 -6
  549. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  550. package/components/Checkbox/Checkbox/Checkbox.js +10 -5
  551. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  552. package/components/Clickable/ArrowLeftIcon/ArrowLeftIcon.js +17 -0
  553. package/components/Clickable/ArrowLeftIcon/ArrowLeftIcon.js.map +1 -0
  554. package/components/Clickable/ArrowLeftIcon/package.json +6 -0
  555. package/components/Clickable/ArrowLeftIcon.d.ts +3 -0
  556. package/components/Clickable/ArrowRightIcon/ArrowRightIcon.js +17 -0
  557. package/components/Clickable/ArrowRightIcon/ArrowRightIcon.js.map +1 -0
  558. package/components/Clickable/ArrowRightIcon/package.json +6 -0
  559. package/components/Clickable/ArrowRightIcon.d.ts +3 -0
  560. package/components/Clickable/Clickable/Clickable.js +165 -0
  561. package/components/Clickable/Clickable/Clickable.js.map +1 -0
  562. package/components/Clickable/Clickable/package.json +6 -0
  563. package/components/Clickable/Clickable.d.ts +95 -0
  564. package/components/Clickable/Clickable.md +210 -0
  565. package/components/Clickable/Clickable.styles/Clickable.styles.js +13 -0
  566. package/components/Clickable/Clickable.styles/Clickable.styles.js.map +1 -0
  567. package/components/Clickable/Clickable.styles/package.json +6 -0
  568. package/components/Clickable/Clickable.styles.d.ts +11 -0
  569. package/components/Clickable/ClickableButton/ClickableButton.js +31 -0
  570. package/components/Clickable/ClickableButton/ClickableButton.js.map +1 -0
  571. package/components/Clickable/ClickableButton/package.json +6 -0
  572. package/components/Clickable/ClickableButton.d.ts +5 -0
  573. package/components/Clickable/ClickableButton.mixins/ClickableButton.mixins.js +81 -0
  574. package/components/Clickable/ClickableButton.mixins/ClickableButton.mixins.js.map +1 -0
  575. package/components/Clickable/ClickableButton.mixins/package.json +6 -0
  576. package/components/Clickable/ClickableButton.mixins.d.ts +30 -0
  577. package/components/Clickable/ClickableButton.styles/ClickableButton.styles.js +313 -0
  578. package/components/Clickable/ClickableButton.styles/ClickableButton.styles.js.map +1 -0
  579. package/components/Clickable/ClickableButton.styles/package.json +6 -0
  580. package/components/Clickable/ClickableButton.styles.d.ts +63 -0
  581. package/components/Clickable/ClickableButtonArrow/ClickableButtonArrow.js +21 -0
  582. package/components/Clickable/ClickableButtonArrow/ClickableButtonArrow.js.map +1 -0
  583. package/components/Clickable/ClickableButtonArrow/package.json +6 -0
  584. package/components/Clickable/ClickableButtonArrow.d.ts +4 -0
  585. package/components/Clickable/ClickableButtonArrow.styles/ClickableButtonArrow.styles.js +22 -0
  586. package/components/Clickable/ClickableButtonArrow.styles/ClickableButtonArrow.styles.js.map +1 -0
  587. package/components/Clickable/ClickableButtonArrow.styles/package.json +6 -0
  588. package/components/Clickable/ClickableButtonArrow.styles.d.ts +8 -0
  589. package/components/Clickable/ClickableButtonCaption/ClickableButtonCaption.js +37 -0
  590. package/components/Clickable/ClickableButtonCaption/ClickableButtonCaption.js.map +1 -0
  591. package/components/Clickable/ClickableButtonCaption/package.json +6 -0
  592. package/components/Clickable/ClickableButtonCaption.d.ts +2 -0
  593. package/components/Clickable/ClickableButtonCaption.styles/ClickableButtonCaption.styles.js +16 -0
  594. package/components/Clickable/ClickableButtonCaption.styles/ClickableButtonCaption.styles.js.map +1 -0
  595. package/components/Clickable/ClickableButtonCaption.styles/package.json +6 -0
  596. package/components/Clickable/ClickableButtonCaption.styles.d.ts +5 -0
  597. package/components/Clickable/ClickableButtonIcon/ClickableButtonIcon.js +51 -0
  598. package/components/Clickable/ClickableButtonIcon/ClickableButtonIcon.js.map +1 -0
  599. package/components/Clickable/ClickableButtonIcon/package.json +6 -0
  600. package/components/Clickable/ClickableButtonIcon.d.ts +7 -0
  601. package/components/Clickable/ClickableButtonIcon.styles/ClickableButtonIcon.styles.js +58 -0
  602. package/components/Clickable/ClickableButtonIcon.styles/ClickableButtonIcon.styles.js.map +1 -0
  603. package/components/Clickable/ClickableButtonIcon.styles/package.json +6 -0
  604. package/components/Clickable/ClickableButtonIcon.styles.d.ts +19 -0
  605. package/components/Clickable/ClickableButtonLoadingIcon/ClickableButtonLoadingIcon.js +18 -0
  606. package/components/Clickable/ClickableButtonLoadingIcon/ClickableButtonLoadingIcon.js.map +1 -0
  607. package/components/Clickable/ClickableButtonLoadingIcon/package.json +6 -0
  608. package/components/Clickable/ClickableButtonLoadingIcon.d.ts +6 -0
  609. package/components/Clickable/ClickableButtonLoadingIcon.styles/ClickableButtonLoadingIcon.styles.js +10 -0
  610. package/components/Clickable/ClickableButtonLoadingIcon.styles/ClickableButtonLoadingIcon.styles.js.map +1 -0
  611. package/components/Clickable/ClickableButtonLoadingIcon.styles/package.json +6 -0
  612. package/components/Clickable/ClickableButtonLoadingIcon.styles.d.ts +3 -0
  613. package/components/Clickable/ClickableButtonOutline/ClickableButtonOutline.js +22 -0
  614. package/components/Clickable/ClickableButtonOutline/ClickableButtonOutline.js.map +1 -0
  615. package/components/Clickable/ClickableButtonOutline/package.json +6 -0
  616. package/components/Clickable/ClickableButtonOutline.d.ts +4 -0
  617. package/components/Clickable/ClickableButtonOutline.styles/ClickableButtonOutline.styles.js +16 -0
  618. package/components/Clickable/ClickableButtonOutline.styles/ClickableButtonOutline.styles.js.map +1 -0
  619. package/components/Clickable/ClickableButtonOutline.styles/package.json +6 -0
  620. package/components/Clickable/ClickableButtonOutline.styles.d.ts +6 -0
  621. package/components/Clickable/ClickableButtonWrapper/ClickableButtonWrapper.js +18 -0
  622. package/components/Clickable/ClickableButtonWrapper/ClickableButtonWrapper.js.map +1 -0
  623. package/components/Clickable/ClickableButtonWrapper/package.json +6 -0
  624. package/components/Clickable/ClickableButtonWrapper.d.ts +3 -0
  625. package/components/Clickable/ClickableButtonWrapper.styles/ClickableButtonWrapper.styles.js +19 -0
  626. package/components/Clickable/ClickableButtonWrapper.styles/ClickableButtonWrapper.styles.js.map +1 -0
  627. package/components/Clickable/ClickableButtonWrapper.styles/package.json +6 -0
  628. package/components/Clickable/ClickableButtonWrapper.styles.d.ts +7 -0
  629. package/components/Clickable/ClickableLink/ClickableLink.js +24 -0
  630. package/components/Clickable/ClickableLink/ClickableLink.js.map +1 -0
  631. package/components/Clickable/ClickableLink/package.json +6 -0
  632. package/components/Clickable/ClickableLink.d.ts +5 -0
  633. package/components/Clickable/ClickableLink.styles/ClickableLink.styles.js +52 -0
  634. package/components/Clickable/ClickableLink.styles/ClickableLink.styles.js.map +1 -0
  635. package/components/Clickable/ClickableLink.styles/package.json +6 -0
  636. package/components/Clickable/ClickableLink.styles.d.ts +21 -0
  637. package/components/Clickable/ClickableLinkChild/ClickableLinkChild.js +20 -0
  638. package/components/Clickable/ClickableLinkChild/ClickableLinkChild.js.map +1 -0
  639. package/components/Clickable/ClickableLinkChild/package.json +6 -0
  640. package/components/Clickable/ClickableLinkChild.d.ts +7 -0
  641. package/components/Clickable/ClickableLinkChild.styles/ClickableLinkChild.styles.js +24 -0
  642. package/components/Clickable/ClickableLinkChild.styles/ClickableLinkChild.styles.js.map +1 -0
  643. package/components/Clickable/ClickableLinkChild.styles/package.json +6 -0
  644. package/components/Clickable/ClickableLinkChild.styles.d.ts +7 -0
  645. package/components/Clickable/ClickableLinkIcon/ClickableLinkIcon.js +21 -0
  646. package/components/Clickable/ClickableLinkIcon/ClickableLinkIcon.js.map +1 -0
  647. package/components/Clickable/ClickableLinkIcon/package.json +6 -0
  648. package/components/Clickable/ClickableLinkIcon.d.ts +7 -0
  649. package/components/Clickable/ClickableLinkIcon.styles/ClickableLinkIcon.styles.js +16 -0
  650. package/components/Clickable/ClickableLinkIcon.styles/ClickableLinkIcon.styles.js.map +1 -0
  651. package/components/Clickable/ClickableLinkIcon.styles/package.json +6 -0
  652. package/components/Clickable/ClickableLinkIcon.styles.d.ts +6 -0
  653. package/components/Clickable/index/index.js +1 -0
  654. package/components/Clickable/index/index.js.map +1 -0
  655. package/{internal/MaskedInput → components/Clickable}/index/package.json +1 -1
  656. package/components/Clickable/index.d.ts +1 -0
  657. package/{internal/MaskedInput → components/Clickable}/package.json +1 -1
  658. package/components/Clickable/utils/package.json +6 -0
  659. package/components/Clickable/utils/utils.js +44 -0
  660. package/components/Clickable/utils/utils.js.map +1 -0
  661. package/components/Clickable/utils.d.ts +6 -0
  662. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +3 -1
  663. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  664. package/components/DateInput/DateFragmentsView/DateFragmentsView.js +4 -1
  665. package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
  666. package/components/DateInput/DateInput/DateInput.js +2 -1
  667. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  668. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js +10 -10
  669. package/components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map +1 -1
  670. package/components/Dropdown/getDropdownTheme/getDropdownTheme.js +21 -22
  671. package/components/Dropdown/getDropdownTheme/getDropdownTheme.js.map +1 -1
  672. package/components/FileUploader/FileUploader/FileUploader.js +5 -5
  673. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  674. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +2 -2
  675. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
  676. package/components/FileUploader/FileUploader.styles.d.ts +1 -1
  677. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +30 -34
  678. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  679. package/components/GlobalLoader/GlobalLoader.d.ts +1 -2
  680. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +2 -3
  681. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  682. package/components/GlobalLoader/GlobalLoaderView.d.ts +1 -2
  683. package/components/Group/Group/Group.js +9 -10
  684. package/components/Group/Group/Group.js.map +1 -1
  685. package/components/Group/Group.md +24 -0
  686. package/components/Hint/Hint/Hint.js +6 -7
  687. package/components/Hint/Hint/Hint.js.map +1 -1
  688. package/components/Input/Input/Input.js +28 -16
  689. package/components/Input/Input/Input.js.map +1 -1
  690. package/components/Input/Input.d.ts +22 -5
  691. package/components/Input/Input.typings/Input.typings.js +1 -0
  692. package/components/Input/Input.typings/Input.typings.js.map +1 -0
  693. package/components/Input/Input.typings/package.json +6 -0
  694. package/components/Input/Input.typings.d.ts +7 -0
  695. package/components/Input/InputLayout/InputLayout.d.ts +1 -1
  696. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -1
  697. package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
  698. package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js +1 -2
  699. package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js.map +1 -1
  700. package/components/Input/index/index.js +2 -1
  701. package/components/Input/index/index.js.map +1 -1
  702. package/components/Input/index.d.ts +1 -0
  703. package/components/Kebab/Kebab/Kebab.js +3 -2
  704. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  705. package/components/Link/Link/Link.js +5 -4
  706. package/components/Link/Link/Link.js.map +1 -1
  707. package/components/Link/Link.md +69 -0
  708. package/components/Link/Link.styles/Link.styles.js +25 -22
  709. package/components/Link/Link.styles/Link.styles.js.map +1 -1
  710. package/components/Link/Link.styles.d.ts +1 -0
  711. package/components/Loader/Loader/Loader.js +9 -6
  712. package/components/Loader/Loader/Loader.js.map +1 -1
  713. package/components/MaskedInput/MaskedInput/MaskedInput.js +62 -0
  714. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -0
  715. package/{internal → components}/MaskedInput/MaskedInput/package.json +1 -1
  716. package/components/MaskedInput/MaskedInput.d.ts +24 -0
  717. package/components/MaskedInput/MaskedInput.md +21 -0
  718. package/components/MaskedInput/index/index.js.map +1 -0
  719. package/components/MaskedInput/index/package.json +6 -0
  720. package/components/MaskedInput/package.json +6 -0
  721. package/components/MenuHeader/MenuHeader/MenuHeader.js +3 -1
  722. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  723. package/components/MenuItem/MenuItem/MenuItem.js +129 -19
  724. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  725. package/components/MenuItem/MenuItem.d.ts +21 -0
  726. package/components/MenuItem/MenuItem.md +20 -6
  727. package/components/MiniModal/MiniModal/MiniModal.js +38 -0
  728. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -0
  729. package/components/MiniModal/MiniModal/package.json +6 -0
  730. package/components/MiniModal/MiniModal.d.ts +18 -0
  731. package/components/MiniModal/MiniModal.md +233 -0
  732. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +41 -0
  733. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -0
  734. package/components/MiniModal/MiniModal.styles/package.json +6 -0
  735. package/components/MiniModal/MiniModal.styles.d.ts +14 -0
  736. package/components/MiniModal/MiniModalBody/MiniModalBody.js +23 -0
  737. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -0
  738. package/components/MiniModal/MiniModalBody/package.json +6 -0
  739. package/components/MiniModal/MiniModalBody.d.ts +7 -0
  740. package/components/MiniModal/MiniModalFooter/MiniModalFooter.js +35 -0
  741. package/components/MiniModal/MiniModalFooter/MiniModalFooter.js.map +1 -0
  742. package/components/MiniModal/MiniModalFooter/package.json +6 -0
  743. package/components/MiniModal/MiniModalFooter.d.ts +18 -0
  744. package/components/MiniModal/MiniModalHeader/MiniModalHeader.js +33 -0
  745. package/components/MiniModal/MiniModalHeader/MiniModalHeader.js.map +1 -0
  746. package/components/MiniModal/MiniModalHeader/package.json +6 -0
  747. package/components/MiniModal/MiniModalHeader.d.ts +17 -0
  748. package/components/MiniModal/MiniModalIndent/MiniModalIndent.js +27 -0
  749. package/components/MiniModal/MiniModalIndent/MiniModalIndent.js.map +1 -0
  750. package/components/MiniModal/MiniModalIndent/package.json +6 -0
  751. package/components/MiniModal/MiniModalIndent.d.ts +6 -0
  752. package/components/MiniModal/getMiniModalTheme/getMiniModalTheme.js +23 -0
  753. package/components/MiniModal/getMiniModalTheme/getMiniModalTheme.js.map +1 -0
  754. package/components/MiniModal/getMiniModalTheme/package.json +6 -0
  755. package/components/MiniModal/getMiniModalTheme.d.ts +16 -0
  756. package/components/MiniModal/index/index.js +5 -0
  757. package/components/MiniModal/index/index.js.map +1 -0
  758. package/components/MiniModal/index/package.json +6 -0
  759. package/components/MiniModal/index.d.ts +5 -0
  760. package/components/MiniModal/package.json +6 -0
  761. package/components/Modal/Modal/Modal.js +18 -14
  762. package/components/Modal/Modal/Modal.js.map +1 -1
  763. package/components/Modal/Modal.d.ts +6 -0
  764. package/components/Modal/Modal.styles/Modal.styles.js +44 -37
  765. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  766. package/components/Modal/Modal.styles.d.ts +5 -0
  767. package/components/Modal/ModalClose/ModalClose.js +2 -1
  768. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  769. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  770. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  771. package/components/Modal/ModalSeparator/ModalSeparator.js +6 -0
  772. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  773. package/components/Modal/ModalSeparator.d.ts +5 -0
  774. package/components/Modal/getModalTheme/getModalTheme.js +8 -3
  775. package/components/Modal/getModalTheme/getModalTheme.js.map +1 -1
  776. package/components/Modal/getModalTheme.d.ts +2 -2
  777. package/components/Paging/NavigationHelper/NavigationHelper.js +2 -1
  778. package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
  779. package/components/Paging/Paging/Paging.js +16 -10
  780. package/components/Paging/Paging/Paging.js.map +1 -1
  781. package/components/Paging/Paging.styles/Paging.styles.js +2 -5
  782. package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
  783. package/components/Paging/Paging.styles.d.ts +0 -1
  784. package/components/PasswordInput/PasswordInput/PasswordInput.js +4 -2
  785. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  786. package/components/Radio/Radio/Radio.js +2 -1
  787. package/components/Radio/Radio/Radio.js.map +1 -1
  788. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +5 -6
  789. package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
  790. package/components/ScrollContainer/ScrollBar/ScrollBar.js +17 -50
  791. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  792. package/components/ScrollContainer/ScrollBar.d.ts +4 -7
  793. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +109 -22
  794. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  795. package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js +1 -2
  796. package/components/ScrollContainer/ScrollContainer.constants/ScrollContainer.constants.js.map +1 -1
  797. package/components/ScrollContainer/ScrollContainer.d.ts +18 -3
  798. package/components/ScrollContainer/ScrollContainer.md +29 -2
  799. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +6 -18
  800. package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
  801. package/components/ScrollContainer/ScrollContainer.styles.d.ts +0 -4
  802. package/components/Select/Item/Item.js +3 -1
  803. package/components/Select/Item/Item.js.map +1 -1
  804. package/components/Select/Item.d.ts +1 -0
  805. package/components/Select/Select/Select.js +23 -16
  806. package/components/Select/Select/Select.js.map +1 -1
  807. package/components/Select/Select.d.ts +2 -0
  808. package/components/Select/Select.md +12 -0
  809. package/components/SidePage/SidePage/SidePage.js +34 -9
  810. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  811. package/components/SidePage/SidePage.d.ts +3 -1
  812. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +2 -1
  813. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
  814. package/components/SidePage/SidePageHeader/SidePageHeader.js +6 -4
  815. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  816. package/components/SidePage/SidePageHeader.d.ts +1 -0
  817. package/components/SingleToast/SingleToast/SingleToast.js +53 -0
  818. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -0
  819. package/components/SingleToast/SingleToast/package.json +6 -0
  820. package/components/SingleToast/SingleToast.d.ts +11 -0
  821. package/components/SingleToast/SingleToast.md +35 -0
  822. package/components/SingleToast/index/index.js +1 -0
  823. package/components/SingleToast/index/index.js.map +1 -0
  824. package/components/SingleToast/index/package.json +6 -0
  825. package/components/SingleToast/index.d.ts +1 -0
  826. package/components/SingleToast/package.json +6 -0
  827. package/components/Spinner/Spinner/Spinner.js +10 -4
  828. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  829. package/components/Spinner/Spinner.d.ts +1 -0
  830. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +5 -2
  831. package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
  832. package/components/Sticky/Sticky/Sticky.js +5 -6
  833. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  834. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  835. package/components/Switcher/Switcher.d.ts +1 -1
  836. package/components/Tabs/Indicator/Indicator.js +3 -1
  837. package/components/Tabs/Indicator/Indicator.js.map +1 -1
  838. package/components/Tabs/Tab/Tab.js +2 -1
  839. package/components/Tabs/Tab/Tab.js.map +1 -1
  840. package/components/Tabs/Tabs/Tabs.js +3 -1
  841. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  842. package/components/Textarea/Textarea/Textarea.js +33 -19
  843. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  844. package/components/Textarea/Textarea.d.ts +1 -0
  845. package/components/Textarea/TextareaCounter/TextareaCounter.js +2 -3
  846. package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
  847. package/components/Textarea/TextareaCounter.d.ts +1 -1
  848. package/components/Textarea/TextareaHelpers/TextareaHelpers.js +6 -1
  849. package/components/Textarea/TextareaHelpers/TextareaHelpers.js.map +1 -1
  850. package/components/Textarea/TextareaHelpers.d.ts +1 -1
  851. package/components/Textarea/TextareaWithSafari17Workaround/TextareaWithSafari17Workaround.js +21 -0
  852. package/components/Textarea/TextareaWithSafari17Workaround/TextareaWithSafari17Workaround.js.map +1 -0
  853. package/components/Textarea/TextareaWithSafari17Workaround/package.json +6 -0
  854. package/components/Textarea/TextareaWithSafari17Workaround.d.ts +6 -0
  855. package/components/Toast/Toast/Toast.js +16 -7
  856. package/components/Toast/Toast/Toast.js.map +1 -1
  857. package/components/Toast/Toast.d.ts +10 -3
  858. package/components/Toast/Toast.md +0 -105
  859. package/components/Toast/ToastStatic/ToastStatic.js +4 -4
  860. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  861. package/components/Token/Token/Token.js +4 -3
  862. package/components/Token/Token/Token.js.map +1 -1
  863. package/components/TokenInput/TokenInput/TokenInput.js +51 -11
  864. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  865. package/components/TokenInput/TokenInput.d.ts +2 -0
  866. package/components/TokenInput/TokenInput.md +71 -0
  867. package/components/Tooltip/Tooltip/Tooltip.js +10 -7
  868. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  869. package/components/Tooltip/Tooltip.d.ts +6 -1
  870. package/components/Tooltip/Tooltip.md +24 -0
  871. package/hooks/useDrop/useDrop.js +3 -2
  872. package/hooks/useDrop/useDrop.js.map +1 -1
  873. package/index.d.ts +5 -0
  874. package/index.js +5 -0
  875. package/index.js.map +1 -1
  876. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js +2 -1
  877. package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  878. package/internal/ComponentCombinator/ComponentCombinator.js +4 -8
  879. package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
  880. package/internal/ComponentCombinator.d.ts +7 -8
  881. package/internal/ComponentTable/ComponentTable.js +66 -103
  882. package/internal/ComponentTable/ComponentTable.js.map +1 -1
  883. package/internal/ComponentTable.d.ts +7 -19
  884. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +4 -3
  885. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  886. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +3 -2
  887. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  888. package/internal/DateSelect/DateSelect/DateSelect.js +20 -20
  889. package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
  890. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +19 -17
  891. package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
  892. package/internal/DropdownContainer/DropdownContainer.d.ts +0 -1
  893. package/internal/DropdownContainer/getManualPosition/getManualPosition.js +4 -3
  894. package/internal/DropdownContainer/getManualPosition/getManualPosition.js.map +1 -1
  895. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +2 -1
  896. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
  897. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -1
  898. package/internal/FocusTrap/FocusTrap/FocusTrap.js +9 -3
  899. package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
  900. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +25 -26
  901. package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
  902. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +3 -1
  903. package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
  904. package/internal/InputLikeText/InputLikeText/InputLikeText.js +29 -19
  905. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  906. package/internal/{MaskedInput/MaskedInput/MaskedInput.js → InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js} +13 -9
  907. package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -0
  908. package/internal/InternalMaskedInput/InternalMaskedInput/package.json +6 -0
  909. package/internal/{MaskedInput/MaskedInput.d.ts → InternalMaskedInput/InternalMaskedInput.d.ts} +8 -5
  910. package/{cjs/internal/MaskedInput/MaskedInput.styles.js.map → internal/InternalMaskedInput/InternalMaskedInput.styles/InternalMaskedInput.styles.js.map} +1 -1
  911. package/internal/InternalMaskedInput/InternalMaskedInput.styles/package.json +6 -0
  912. package/internal/InternalMaskedInput/InternalMaskedInput.styles.d.ts +6 -0
  913. package/internal/InternalMaskedInput/index/index.js +1 -0
  914. package/internal/InternalMaskedInput/index/index.js.map +1 -0
  915. package/internal/InternalMaskedInput/index/package.json +6 -0
  916. package/internal/InternalMaskedInput/index.d.ts +1 -0
  917. package/internal/InternalMaskedInput/package.json +6 -0
  918. package/internal/InternalMenu/InternalMenu/InternalMenu.js +10 -9
  919. package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
  920. package/internal/MaskedInputElement/MaskedInputElement/MaskedInputElement.js +206 -0
  921. package/internal/MaskedInputElement/MaskedInputElement/MaskedInputElement.js.map +1 -0
  922. package/internal/MaskedInputElement/MaskedInputElement/package.json +6 -0
  923. package/internal/MaskedInputElement/MaskedInputElement.d.ts +14 -0
  924. package/internal/MaskedInputElement/MaskedInputElement.helpers/MaskedInputElement.helpers.js +43 -0
  925. package/internal/MaskedInputElement/MaskedInputElement.helpers/MaskedInputElement.helpers.js.map +1 -0
  926. package/internal/MaskedInputElement/MaskedInputElement.helpers/package.json +6 -0
  927. package/internal/MaskedInputElement/MaskedInputElement.helpers.d.ts +16 -0
  928. package/internal/MaskedInputElement/MaskedInputElement.styles/MaskedInputElement.styles.js +16 -0
  929. package/internal/MaskedInputElement/MaskedInputElement.styles/MaskedInputElement.styles.js.map +1 -0
  930. package/internal/MaskedInputElement/MaskedInputElement.styles/package.json +6 -0
  931. package/internal/MaskedInputElement/MaskedInputElement.styles.d.ts +6 -0
  932. package/internal/MaskedInputElement/index/index.js +1 -0
  933. package/internal/MaskedInputElement/index/index.js.map +1 -0
  934. package/internal/MaskedInputElement/index/package.json +6 -0
  935. package/internal/MaskedInputElement/index.d.ts +1 -0
  936. package/internal/MaskedInputElement/package.json +6 -0
  937. package/internal/Menu/Menu/Menu.js +144 -62
  938. package/internal/Menu/Menu/Menu.js.map +1 -1
  939. package/internal/Menu/Menu.d.ts +6 -0
  940. package/internal/Menu/MenuContext/MenuContext.js +5 -0
  941. package/internal/Menu/MenuContext/MenuContext.js.map +1 -0
  942. package/internal/Menu/MenuContext/package.json +6 -0
  943. package/internal/Menu/MenuContext.d.ts +10 -0
  944. package/internal/Menu/MenuNavigation/MenuNavigation.js +123 -0
  945. package/internal/Menu/MenuNavigation/MenuNavigation.js.map +1 -0
  946. package/internal/Menu/MenuNavigation/package.json +6 -0
  947. package/internal/Menu/MenuNavigation.d.ts +26 -0
  948. package/internal/Menu/isActiveElement/isActiveElement.js +1 -1
  949. package/internal/Menu/isActiveElement/isActiveElement.js.map +1 -1
  950. package/internal/MenuMessage/MenuMessage.d.ts +1 -1
  951. package/internal/Popup/Popup/Popup.js +12 -13
  952. package/internal/Popup/Popup/Popup.js.map +1 -1
  953. package/internal/Popup/PopupHelper/PopupHelper.js +8 -5
  954. package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
  955. package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -2
  956. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  957. package/internal/RenderContainer/RenderContainer/RenderContainer.js +26 -16
  958. package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
  959. package/internal/RenderContainer/RenderContainer.d.ts +0 -1
  960. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
  961. package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
  962. package/internal/RenderLayer/RenderLayer/RenderLayer.js +11 -5
  963. package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
  964. package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
  965. package/internal/ThemePlayground/constants/constants.js +3 -0
  966. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  967. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +5 -2
  968. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  969. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  970. package/internal/ZIndex/ZIndex/ZIndex.js +2 -2
  971. package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
  972. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +2 -2
  973. package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
  974. package/internal/icons/16px/index.d.ts +19 -19
  975. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.d.ts +1 -1
  976. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.d.ts +1 -1
  977. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.d.ts +1 -1
  978. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.d.ts +1 -1
  979. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.d.ts +1 -1
  980. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.d.ts +1 -1
  981. package/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.d.ts +1 -1
  982. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.d.ts +1 -1
  983. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.d.ts +1 -1
  984. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.d.ts +1 -1
  985. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.d.ts +1 -1
  986. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.d.ts +1 -1
  987. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.d.ts +1 -1
  988. package/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.d.ts +1 -1
  989. package/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.d.ts +1 -1
  990. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.d.ts +1 -1
  991. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.d.ts +1 -1
  992. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.d.ts +1 -1
  993. package/internal/icons2022/BaseIcon/BaseIcon.js +3 -6
  994. package/internal/icons2022/BaseIcon/BaseIcon.js.map +1 -1
  995. package/internal/icons2022/BaseIcon.d.ts +1 -1
  996. package/internal/icons2022/BaseIcon.styles/BaseIcon.styles.js +11 -0
  997. package/internal/icons2022/BaseIcon.styles/BaseIcon.styles.js.map +1 -0
  998. package/internal/icons2022/BaseIcon.styles/package.json +6 -0
  999. package/internal/icons2022/BaseIcon.styles.d.ts +3 -0
  1000. package/internal/icons2022/CalendarIcon/CalendarIcon16Light.d.ts +1 -1
  1001. package/internal/icons2022/CalendarIcon/CalendarIcon20Light.d.ts +1 -1
  1002. package/internal/icons2022/CalendarIcon/CalendarIcon24Regular.d.ts +1 -1
  1003. package/internal/icons2022/CheckAIcon/CheckAIcon16Light.d.ts +1 -1
  1004. package/internal/icons2022/CheckAIcon/CheckAIcon16Regular.d.ts +1 -1
  1005. package/internal/icons2022/CheckAIcon/CheckAIcon16Solid.d.ts +1 -1
  1006. package/internal/icons2022/CheckAIcon/CheckAIcon20Light.d.ts +1 -1
  1007. package/internal/icons2022/CheckAIcon/CheckAIcon20Solid.d.ts +1 -1
  1008. package/internal/icons2022/CheckAIcon/CheckAIcon24Regular.d.ts +1 -1
  1009. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.d.ts +1 -1
  1010. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.d.ts +1 -1
  1011. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.d.ts +1 -1
  1012. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.d.ts +1 -1
  1013. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.d.ts +1 -1
  1014. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.d.ts +1 -1
  1015. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/InfoCircleIcon64Regular.js +18 -0
  1016. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/InfoCircleIcon64Regular.js.map +1 -0
  1017. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/package.json +6 -0
  1018. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.d.ts +2 -0
  1019. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.d.ts +1 -1
  1020. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.d.ts +1 -1
  1021. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.d.ts +1 -1
  1022. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.d.ts +1 -1
  1023. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.d.ts +1 -1
  1024. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.d.ts +1 -1
  1025. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.d.ts +1 -1
  1026. package/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.d.ts +1 -1
  1027. package/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.d.ts +1 -1
  1028. package/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.d.ts +1 -1
  1029. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.d.ts +1 -1
  1030. package/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.d.ts +1 -1
  1031. package/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.d.ts +1 -1
  1032. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.d.ts +1 -1
  1033. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.d.ts +1 -1
  1034. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.d.ts +1 -1
  1035. package/internal/icons2022/XIcon/XIcon16Light.d.ts +1 -1
  1036. package/internal/icons2022/XIcon/XIcon16Regular.d.ts +1 -1
  1037. package/internal/icons2022/XIcon/XIcon20Light.d.ts +1 -1
  1038. package/internal/icons2022/XIcon/XIcon20Regular.d.ts +1 -1
  1039. package/internal/icons2022/XIcon/XIcon24Regular.d.ts +1 -1
  1040. package/internal/themes/DefaultTheme/DefaultTheme.js +178 -6
  1041. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  1042. package/internal/themes/DefaultTheme.d.ts +67 -2
  1043. package/internal/themes/Theme2022/Theme2022.js +62 -15
  1044. package/internal/themes/Theme2022/Theme2022.js.map +1 -1
  1045. package/internal/themes/Theme2022.d.ts +22 -7
  1046. package/internal/themes/Theme2022Dark/Theme2022Dark.js +18 -13
  1047. package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
  1048. package/internal/themes/Theme2022Dark.d.ts +5 -9
  1049. package/lib/LayoutEvents/LayoutEvents.js +5 -4
  1050. package/lib/LayoutEvents/LayoutEvents.js.map +1 -1
  1051. package/lib/ModalStack/ModalStack.js +2 -2
  1052. package/lib/ModalStack/ModalStack.js.map +1 -1
  1053. package/lib/SSRSafe/SSRSafe.js +3 -35
  1054. package/lib/SSRSafe/SSRSafe.js.map +1 -1
  1055. package/lib/SSRSafe.d.ts +1 -6
  1056. package/lib/Upgrades/Upgrades.js +3 -1
  1057. package/lib/Upgrades/Upgrades.js.map +1 -1
  1058. package/lib/Upgrades.d.ts +1 -0
  1059. package/lib/animation/index/index.js +6 -3
  1060. package/lib/animation/index/index.js.map +1 -1
  1061. package/lib/chars/chars.js +1 -1
  1062. package/lib/chars/chars.js.map +1 -1
  1063. package/lib/chars.d.ts +1 -1
  1064. package/lib/client/client.js +9 -7
  1065. package/lib/client/client.js.map +1 -1
  1066. package/lib/client.d.ts +2 -7
  1067. package/lib/dom/getScrollWidth/getScrollWidth.js +4 -5
  1068. package/lib/dom/getScrollWidth/getScrollWidth.js.map +1 -1
  1069. package/lib/dom/tabbableHelpers/tabbableHelpers.js +4 -2
  1070. package/lib/dom/tabbableHelpers/tabbableHelpers.js.map +1 -1
  1071. package/lib/dom/tabbableHelpers.d.ts +2 -1
  1072. package/lib/events/MouseDrag/MouseDrag.js +15 -11
  1073. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  1074. package/lib/events/fixClickFocusIE/fixClickFocusIE.js +4 -2
  1075. package/lib/events/fixClickFocusIE/fixClickFocusIE.js.map +1 -1
  1076. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +7 -2
  1077. package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -1
  1078. package/lib/events/keyListener/keyListener.js +9 -12
  1079. package/lib/events/keyListener/keyListener.js.map +1 -1
  1080. package/lib/events/keyboard/identifiers/identifiers.js +3 -1
  1081. package/lib/events/keyboard/identifiers/identifiers.js.map +1 -1
  1082. package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +185 -0
  1083. package/lib/featureFlagsContext/FeatureFlagsHelpers/FeatureFlagsHelpers.js +5 -0
  1084. package/lib/featureFlagsContext/FeatureFlagsHelpers/FeatureFlagsHelpers.js.map +1 -0
  1085. package/lib/featureFlagsContext/FeatureFlagsHelpers/package.json +6 -0
  1086. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +8 -0
  1087. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +10 -0
  1088. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -0
  1089. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/package.json +6 -0
  1090. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +10 -0
  1091. package/lib/featureFlagsContext/index/index.js +2 -0
  1092. package/lib/featureFlagsContext/index/index.js.map +1 -0
  1093. package/lib/featureFlagsContext/index/package.json +6 -0
  1094. package/lib/featureFlagsContext/index.d.ts +2 -0
  1095. package/lib/featureFlagsContext/package.json +6 -0
  1096. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  1097. package/lib/forwardRefAndName.d.ts +1 -1
  1098. package/lib/isInstanceOf/isInstanceOf.js +3 -0
  1099. package/lib/isInstanceOf/isInstanceOf.js.map +1 -0
  1100. package/lib/isInstanceOf/package.json +6 -0
  1101. package/lib/isInstanceOf.d.ts +1 -0
  1102. package/lib/listenFocusOutside/listenFocusOutside.js +19 -10
  1103. package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
  1104. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +4 -3
  1105. package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -1
  1106. package/lib/net/fetch/fetch.js +29 -21
  1107. package/lib/net/fetch/fetch.js.map +1 -1
  1108. package/lib/rootNode/getRootNode/getRootNode.js +6 -6
  1109. package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
  1110. package/lib/styles/ColorFactory/ColorFactory.js +13 -9
  1111. package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
  1112. package/lib/styles/ColorHelpers/ColorHelpers.js +3 -7
  1113. package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
  1114. package/lib/styles/ColorHelpers.d.ts +1 -1
  1115. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +5 -4
  1116. package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
  1117. package/lib/theming/Emotion/Emotion.js +6 -1
  1118. package/lib/theming/Emotion/Emotion.js.map +1 -1
  1119. package/lib/utils/utils.js +31 -6
  1120. package/lib/utils/utils.js.map +1 -1
  1121. package/lib/utils.d.ts +7 -0
  1122. package/package.json +4 -4
  1123. package/typings/global.d.ts +3 -4
  1124. package/typings/react-ref.d.ts +29 -0
  1125. package/typings/utility-types.d.ts +2 -0
  1126. package/cjs/internal/MaskedInput/MaskedInput.js.map +0 -1
  1127. package/cjs/internal/MaskedInput/index.js.map +0 -1
  1128. package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +0 -1
  1129. package/internal/MaskedInput/MaskedInput.styles/MaskedInput.styles.js.map +0 -1
  1130. package/internal/MaskedInput/MaskedInput.styles/package.json +0 -6
  1131. package/internal/MaskedInput/index/index.js.map +0 -1
  1132. /package/cjs/{internal → components}/MaskedInput/index.d.ts +0 -0
  1133. /package/cjs/{internal → components}/MaskedInput/index.js +0 -0
  1134. /package/cjs/internal/{MaskedInput/MaskedInput.styles.d.ts → InternalMaskedInput/InternalMaskedInput.styles.d.ts} +0 -0
  1135. /package/cjs/internal/{MaskedInput/MaskedInput.styles.js → InternalMaskedInput/InternalMaskedInput.styles.js} +0 -0
  1136. /package/{internal/MaskedInput/MaskedInput.styles.d.ts → cjs/internal/MaskedInputElement/MaskedInputElement.styles.d.ts} +0 -0
  1137. /package/{internal → components}/MaskedInput/index/index.js +0 -0
  1138. /package/{internal → components}/MaskedInput/index.d.ts +0 -0
  1139. /package/internal/{MaskedInput/MaskedInput.styles/MaskedInput.styles.js → InternalMaskedInput/InternalMaskedInput.styles/InternalMaskedInput.styles.js} +0 -0
@@ -1,22 +1,10 @@
1
1
  import React from 'react';
2
- import { DefaultizeProps } from '../lib/utils';
3
- interface StatePropsObject<P, S> {
2
+ export declare type Props<P> = Array<{
4
3
  props?: Partial<P>;
5
- state?: Partial<S>;
4
+ }>;
5
+ export interface ComponentTableProps<P> {
6
+ rows?: Props<P>;
7
+ cols?: Props<P>;
8
+ children: React.ReactElement;
6
9
  }
7
- export declare type StatePropsCombinations<P, S> = Array<StatePropsObject<P, S>>;
8
- export declare type StateType<C> = C extends React.Component<any, infer S> | React.ComponentClass<any, infer S> ? S : never;
9
- export interface ComponentTableProps<C, P, S> {
10
- rows?: StatePropsCombinations<P, S>;
11
- cols?: StatePropsCombinations<P, S>;
12
- presetProps?: DefaultizeProps<C, P>;
13
- presetState?: Partial<S>;
14
- Component: C;
15
- }
16
- declare type DefaultProps<C, P, S> = Required<Pick<ComponentTableProps<C, P, S>, 'presetProps' | 'presetState'>>;
17
- export declare class ComponentTable<T extends React.Component<any, any, any>, C extends React.ComponentType<any>, P extends React.ComponentProps<C>> extends React.Component<ComponentTableProps<C extends React.ComponentClass<P, any> ? React.ClassType<P, T, C> : C, P, StateType<C>>> {
18
- static defaultProps: DefaultProps<unknown, Record<string | number | symbol, unknown>, unknown>;
19
- private getProps;
20
- render(): JSX.Element;
21
- }
22
- export {};
10
+ export declare function ComponentTable<P>({ rows, cols, children }: ComponentTableProps<P>): JSX.Element;
@@ -1,55 +1,38 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.ComponentTable = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
-
3
- var _utils = require("../lib/utils");
4
- var _createPropsGetter = require("../lib/createPropsGetter");
5
-
6
- // TODO We should output state too
7
- var renderPropsDesc = function renderPropsDesc(props) {
8
- return Object.keys(props).
9
- map(function (key) {
10
- var value = props[key];
11
- switch (typeof value) {
12
- case 'boolean':
13
- return value ? key : key + ": false";
14
- case 'string':
15
- return key + ": \"" + value + "\"";
16
- case 'object':
17
- if ( /*#__PURE__*/_react.default.isValidElement(value)) {
18
- return /*#__PURE__*/_react.default.createElement('span', {}, [key + ": ", value]);
19
- }
20
- return key + ": " + JSON.stringify(value);
21
- default:
22
- return key + ": " + value;}
23
-
24
- }).
25
- map(function (node, index, nodes) {return /*#__PURE__*/(
26
- _react.default.createElement("span", { key: index },
27
- node, " ", index + 1 < nodes.length ? ', ' : null));});
28
-
29
-
30
- };
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.ComponentTable = ComponentTable;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react = _interopRequireDefault(require("react"));
41
2
 
3
+ var convertData = function convertData(data) {
4
+ return Object.keys(data).map(function (key) {
5
+ var value = data[key];
42
6
 
7
+ if (typeof value === 'boolean') {
8
+ return value ? key : key + ": false";
9
+ }
43
10
 
11
+ if (typeof value === 'object') {
12
+ if ( /*#__PURE__*/_react.default.isValidElement(value)) {
13
+ return /*#__PURE__*/_react.default.createElement('span', {}, [key + ": ", value]);
14
+ }
44
15
 
16
+ return key + ": " + JSON.stringify(value);
17
+ }
45
18
 
19
+ return key + ": \"" + value + "\"";
20
+ });
21
+ };
46
22
 
23
+ var PropsList = function PropsList(_ref) {var rawData = _ref.rawData;
24
+ return /*#__PURE__*/(
25
+ _react.default.createElement(_react.default.Fragment, null,
26
+ convertData(rawData).map(function (node, index, nodes) {
27
+ return /*#__PURE__*/(
28
+ _react.default.createElement("span", { key: index },
29
+ node, " ", index + 1 < nodes.length ? ', ' : null));
47
30
 
48
31
 
32
+ })));
49
33
 
50
- // Known limitation: Don't work when component have `propTypes` static field
51
- var ComponentTable = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(ComponentTable, _React$Component);function ComponentTable() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
52
34
 
35
+ };
53
36
 
54
37
 
55
38
 
@@ -58,56 +41,46 @@ var ComponentTable = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoos
58
41
 
59
42
 
60
43
 
44
+ function ComponentTable(_ref2) {var _ref2$rows = _ref2.rows,rows = _ref2$rows === void 0 ? [] : _ref2$rows,_ref2$cols = _ref2.cols,cols = _ref2$cols === void 0 ? [] : _ref2$cols,children = _ref2.children;
45
+ var childrenProps = children == null ? void 0 : children.props;
61
46
 
47
+ return /*#__PURE__*/(
48
+ _react.default.createElement("table", { style: { borderSpacing: 10, marginBottom: 20 } }, /*#__PURE__*/
62
49
 
63
- getProps = (0, _createPropsGetter.createPropsGetter)(ComponentTable.defaultProps);return _this;}var _proto = ComponentTable.prototype;_proto.
50
+ _react.default.createElement("caption", { style: { captionSide: 'bottom' } }, /*#__PURE__*/
51
+ _react.default.createElement(PropsList, { rawData: childrenProps })), /*#__PURE__*/
64
52
 
65
- render = function render() {
66
- var _this$props = this.props,_this$props$rows = _this$props.rows,rows = _this$props$rows === void 0 ? [] : _this$props$rows,_this$props$cols = _this$props.cols,cols = _this$props$cols === void 0 ? [] : _this$props$cols,Component = _this$props.Component;
67
- var _this$getProps = this.getProps(),presetProps = _this$getProps.presetProps,presetState = _this$getProps.presetState;
68
- return /*#__PURE__*/(
69
- _react.default.createElement("table", { style: { borderSpacing: 10, marginBottom: 20 } }, /*#__PURE__*/
70
- _react.default.createElement("caption", { style: { captionSide: 'bottom' } }, renderPropsDesc(presetProps)), /*#__PURE__*/
71
- _react.default.createElement("thead", null, /*#__PURE__*/
72
- _react.default.createElement("tr", null, /*#__PURE__*/
73
- _react.default.createElement("th", null),
74
- cols.map(function (_ref, i) {var _ref$props = _ref.props,colProps = _ref$props === void 0 ? {} : _ref$props;return /*#__PURE__*/(
75
- _react.default.createElement("th", { style: { whiteSpace: 'nowrap' }, key: i },
76
- renderPropsDesc(colProps)));}))), /*#__PURE__*/
77
53
 
54
+ _react.default.createElement("thead", null, /*#__PURE__*/
55
+ _react.default.createElement("tr", null, /*#__PURE__*/
56
+ _react.default.createElement("th", null, ''),
57
+ cols.map(function (_ref3, i) {var _ref3$props = _ref3.props,colProps = _ref3$props === void 0 ? {} : _ref3$props;return /*#__PURE__*/(
58
+ _react.default.createElement("th", { style: { whiteSpace: 'nowrap' }, key: i }, /*#__PURE__*/
59
+ _react.default.createElement(PropsList, { rawData: colProps })));}))), /*#__PURE__*/
78
60
 
79
61
 
80
62
 
81
- _react.default.createElement("tbody", null,
82
- rows.map(function (_ref2, rowIndex) {var _ref2$props = _ref2.props,rowProps = _ref2$props === void 0 ? {} : _ref2$props,_ref2$state = _ref2.state,rowState = _ref2$state === void 0 ? {} : _ref2$state;return /*#__PURE__*/(
83
- _react.default.createElement("tr", { key: rowIndex }, /*#__PURE__*/
84
- _react.default.createElement("td", { style: { whiteSpace: 'nowrap' } }, renderPropsDesc(rowProps)),
85
- cols.map(function (_ref3, colIndex) {var _ref3$props = _ref3.props,colProps = _ref3$props === void 0 ? {} : _ref3$props,_ref3$state = _ref3.state,colState = _ref3$state === void 0 ? {} : _ref3$state;return /*#__PURE__*/(
86
- _react.default.createElement("td", { key: colIndex }, /*#__PURE__*/
87
63
 
88
- _react.default.createElement(Component, (0, _extends2.default)({},
89
- presetProps,
90
- rowProps,
91
- colProps, {
92
- ref:
93
- // NOTE Call setState from outside is bad practice, but here it needed for test state combinations
94
- (0, _utils.isFunctionalComponent)(Component) ?
95
- undefined :
96
- function (el) {return (
97
- el &&
98
- el.setState(function (state) {return (0, _extends2.default)({},
99
- state,
100
- presetState,
101
- rowState,
102
- colState);}));} }))));})));}))));
103
64
 
65
+ _react.default.createElement("tbody", null,
66
+ rows.map(function (_ref4, rowIndex) {var _ref4$props = _ref4.props,rowProps = _ref4$props === void 0 ? {} : _ref4$props;return /*#__PURE__*/(
67
+ _react.default.createElement("tr", { key: rowIndex }, /*#__PURE__*/
68
+ _react.default.createElement("td", { style: { whiteSpace: 'nowrap' } }, /*#__PURE__*/
69
+ _react.default.createElement(PropsList, { rawData: rowProps })),
104
70
 
71
+ cols.map(function (_ref5, colIndex) {var _ref5$props = _ref5.props,colProps = _ref5$props === void 0 ? {} : _ref5$props;
72
+ return /*#__PURE__*/(
73
+ _react.default.createElement("td", { key: colIndex }, /*#__PURE__*/
74
+ _react.default.cloneElement(children, (0, _extends2.default)({},
75
+ rowProps,
76
+ colProps))));
105
77
 
106
78
 
107
79
 
80
+ })));}))));
108
81
 
109
82
 
110
83
 
111
84
 
112
85
 
113
- };return ComponentTable;}(_react.default.Component);exports.ComponentTable = ComponentTable;ComponentTable.defaultProps = { presetProps: {}, presetState: {} };
86
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["ComponentTable.tsx"],"names":["renderPropsDesc","props","Object","keys","map","key","value","React","isValidElement","createElement","JSON","stringify","node","index","nodes","length","ComponentTable","getProps","defaultProps","render","rows","cols","Component","presetProps","presetState","borderSpacing","marginBottom","captionSide","i","colProps","whiteSpace","rowIndex","rowProps","state","rowState","colIndex","colState","undefined","el","setState"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isFunctionalComponent, DefaultizeProps } from '../lib/utils';\nimport { createPropsGetter } from '../lib/createPropsGetter';\n\n// TODO We should output state too\nconst renderPropsDesc = <P extends Record<string, any>>(props: P): React.ReactNode => {\n return Object.keys(props)\n .map((key) => {\n const value = props[key];\n switch (typeof value) {\n case 'boolean':\n return value ? key : `${key}: false`;\n case 'string':\n return `${key}: \"${value}\"`;\n case 'object':\n if (React.isValidElement(value)) {\n return React.createElement('span', {}, [`${key}: `, value]);\n }\n return `${key}: ${JSON.stringify(value)}`;\n default:\n return `${key}: ${value}`;\n }\n })\n .map((node, index, nodes) => (\n <span key={index}>\n {node} {index + 1 < nodes.length ? ', ' : null}\n </span>\n ));\n};\n\ninterface StatePropsObject<P, S> {\n props?: Partial<P>;\n state?: Partial<S>;\n}\nexport type StatePropsCombinations<P, S> = Array<StatePropsObject<P, S>>;\n\nexport type StateType<C> = C extends React.Component<any, infer S> | React.ComponentClass<any, infer S> ? S : never;\n\nexport interface ComponentTableProps<C, P, S> {\n rows?: StatePropsCombinations<P, S>;\n cols?: StatePropsCombinations<P, S>;\n presetProps?: DefaultizeProps<C, P>;\n presetState?: Partial<S>;\n Component: C;\n}\n\ntype DefaultProps<C, P, S> = Required<Pick<ComponentTableProps<C, P, S>, 'presetProps' | 'presetState'>>;\n\n// Known limitation: Don't work when component have `propTypes` static field\nexport class ComponentTable<\n T extends React.Component<any, any, any>,\n C extends React.ComponentType<any>,\n P extends React.ComponentProps<C>,\n> extends React.Component<\n ComponentTableProps<C extends React.ComponentClass<P, any> ? React.ClassType<P, T, C> : C, P, StateType<C>>\n> {\n public static defaultProps: DefaultProps<unknown, Record<string | number | symbol, unknown>, unknown> = {\n presetProps: {},\n presetState: {},\n };\n\n private getProps = createPropsGetter(ComponentTable.defaultProps);\n\n public render() {\n const { rows = [], cols = [], Component } = this.props;\n const { presetProps, presetState } = this.getProps();\n return (\n <table style={{ borderSpacing: 10, marginBottom: 20 }}>\n <caption style={{ captionSide: 'bottom' }}>{renderPropsDesc(presetProps)}</caption>\n <thead>\n <tr>\n <th />\n {cols.map(({ props: colProps = {} }, i) => (\n <th style={{ whiteSpace: 'nowrap' }} key={i}>\n {renderPropsDesc(colProps)}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map(({ props: rowProps = {}, state: rowState = {} }, rowIndex) => (\n <tr key={rowIndex}>\n <td style={{ whiteSpace: 'nowrap' }}>{renderPropsDesc(rowProps)}</td>\n {cols.map(({ props: colProps = {}, state: colState = {} }, colIndex) => (\n <td key={colIndex}>\n {/* @ts-expect-error: Defaultized props incompatible with JSX.LibraryManagedAttributes so just ignore it */}\n <Component\n {...presetProps}\n {...rowProps}\n {...colProps}\n ref={\n // NOTE Call setState from outside is bad practice, but here it needed for test state combinations\n isFunctionalComponent(Component)\n ? undefined\n : (el: React.Component<P, StateType<C>>) =>\n el &&\n el.setState((state: StateType<C>) => ({\n ...state,\n ...presetState,\n ...rowState,\n ...colState,\n }))\n }\n />\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["ComponentTable.tsx"],"names":["convertData","data","Object","keys","map","key","value","React","isValidElement","createElement","JSON","stringify","PropsList","rawData","node","index","nodes","length","ComponentTable","rows","cols","children","childrenProps","props","borderSpacing","marginBottom","captionSide","i","colProps","whiteSpace","rowIndex","rowProps","colIndex","cloneElement"],"mappings":"sPAAA;;AAEA,IAAMA,WAAW,GAAG,SAAdA,WAAc,CAACC,IAAD,EAAmC;AACrD,SAAOC,MAAM,CAACC,IAAP,CAAYF,IAAZ,EAAkBG,GAAlB,CAAsB,UAACC,GAAD,EAAS;AACpC,QAAMC,KAAK,GAAGL,IAAI,CAACI,GAAD,CAAlB;;AAEA,QAAI,OAAOC,KAAP,KAAiB,SAArB,EAAgC;AAC9B,aAAOA,KAAK,GAAGD,GAAH,GAAYA,GAAZ,YAAZ;AACD;;AAED,QAAI,OAAOC,KAAP,KAAiB,QAArB,EAA+B;AAC7B,wBAAIC,eAAMC,cAAN,CAAqBF,KAArB,CAAJ,EAAiC;AAC/B,4BAAOC,eAAME,aAAN,CAAoB,MAApB,EAA4B,EAA5B,EAAgC,CAAIJ,GAAJ,SAAaC,KAAb,CAAhC,CAAP;AACD;;AAED,aAAUD,GAAV,UAAkBK,IAAI,CAACC,SAAL,CAAeL,KAAf,CAAlB;AACD;;AAED,WAAUD,GAAV,YAAmBC,KAAnB;AACD,GAhBM,CAAP;AAiBD,CAlBD;;AAoBA,IAAMM,SAAS,GAAG,SAAZA,SAAY,OAAuD,KAApDC,OAAoD,QAApDA,OAAoD;AACvE;AACE;AACGb,IAAAA,WAAW,CAACa,OAAD,CAAX,CAAqBT,GAArB,CAAyB,UAACU,IAAD,EAAOC,KAAP,EAAcC,KAAd,EAAwB;AAChD;AACE,+CAAM,GAAG,EAAED,KAAX;AACGD,QAAAA,IADH,OACUC,KAAK,GAAG,CAAR,GAAYC,KAAK,CAACC,MAAlB,GAA2B,IAA3B,GAAkC,IAD5C,CADF;;;AAKD,KANA,CADH,CADF;;;AAWD,CAZD;;;;;;;;;AAqBO,SAASC,cAAT,QAAuF,wBAA1DC,IAA0D,CAA1DA,IAA0D,2BAAnD,EAAmD,iCAA/CC,IAA+C,CAA/CA,IAA+C,2BAAxC,EAAwC,cAApCC,QAAoC,SAApCA,QAAoC;AAC5F,MAAMC,aAAa,GAAGD,QAAH,oBAAGA,QAAQ,CAAEE,KAAhC;;AAEA;AACE,4CAAO,KAAK,EAAE,EAAEC,aAAa,EAAE,EAAjB,EAAqBC,YAAY,EAAE,EAAnC,EAAd;;AAEE,8CAAS,KAAK,EAAE,EAAEC,WAAW,EAAE,QAAf,EAAhB;AACE,iCAAC,SAAD,IAAW,OAAO,EAAEJ,aAApB,GADF,CAFF;;;AAME;AACE;AACE,6CAAK,EAAL,CADF;AAEGF,IAAAA,IAAI,CAAChB,GAAL,CAAS,iBAA2BuB,CAA3B,2BAAGJ,KAAH,CAAUK,QAAV,4BAAqB,EAArB;AACR,6CAAI,KAAK,EAAE,EAAEC,UAAU,EAAE,QAAd,EAAX,EAAqC,GAAG,EAAEF,CAA1C;AACE,qCAAC,SAAD,IAAW,OAAO,EAAEC,QAApB,GADF,CADQ,GAAT,CAFH,CADF,CANF;;;;;;AAiBE;AACGT,IAAAA,IAAI,CAACf,GAAL,CAAS,iBAA2B0B,QAA3B,2BAAGP,KAAH,CAAUQ,QAAV,4BAAqB,EAArB;AACR,6CAAI,GAAG,EAAED,QAAT;AACE,6CAAI,KAAK,EAAE,EAAED,UAAU,EAAE,QAAd,EAAX;AACE,qCAAC,SAAD,IAAW,OAAO,EAAEE,QAApB,GADF,CADF;;AAIGX,QAAAA,IAAI,CAAChB,GAAL,CAAS,iBAA2B4B,QAA3B,EAAwC,yBAArCT,KAAqC,CAA9BK,QAA8B,4BAAnB,EAAmB;AAChD;AACE,iDAAI,GAAG,EAAEI,QAAT;AACGzB,2BAAM0B,YAAN,CAAmBZ,QAAnB;AACIU,YAAAA,QADJ;AAEIH,YAAAA,QAFJ,EADH,CADF;;;;AAQD,SATA,CAJH,CADQ,GAAT,CADH,CAjBF,CADF;;;;;;AAuCD","sourcesContent":["import React from 'react';\n\nconst convertData = (data: Record<string, unknown>) => {\n return Object.keys(data).map((key) => {\n const value = data[key];\n\n if (typeof value === 'boolean') {\n return value ? key : `${key}: false`;\n }\n\n if (typeof value === 'object') {\n if (React.isValidElement(value)) {\n return React.createElement('span', {}, [`${key}: `, value]);\n }\n\n return `${key}: ${JSON.stringify(value)}`;\n }\n\n return `${key}: \"${value}\"`;\n });\n};\n\nconst PropsList = ({ rawData }: { rawData: Record<string, unknown> }) => {\n return (\n <>\n {convertData(rawData).map((node, index, nodes) => {\n return (\n <span key={index}>\n {node} {index + 1 < nodes.length ? ', ' : null}\n </span>\n );\n })}\n </>\n );\n};\n\nexport type Props<P> = Array<{ props?: Partial<P> }>;\nexport interface ComponentTableProps<P> {\n rows?: Props<P>;\n cols?: Props<P>;\n children: React.ReactElement;\n}\n\nexport function ComponentTable<P>({ rows = [], cols = [], children }: ComponentTableProps<P>) {\n const childrenProps = children?.props;\n\n return (\n <table style={{ borderSpacing: 10, marginBottom: 20 }}>\n {/* Caption under the table */}\n <caption style={{ captionSide: 'bottom' }}>\n <PropsList rawData={childrenProps} />\n </caption>\n {/* Props list at the top */}\n <thead>\n <tr>\n <th>{''}</th>\n {cols.map(({ props: colProps = {} }, i) => (\n <th style={{ whiteSpace: 'nowrap' }} key={i}>\n <PropsList rawData={colProps} />\n </th>\n ))}\n </tr>\n </thead>\n {/* Props list on the left and component states */}\n <tbody>\n {rows.map(({ props: rowProps = {} }, rowIndex) => (\n <tr key={rowIndex}>\n <td style={{ whiteSpace: 'nowrap' }}>\n <PropsList rawData={rowProps} />\n </td>\n {cols.map(({ props: colProps = {} }, colIndex) => {\n return (\n <td key={colIndex}>\n {React.cloneElement(children, {\n ...rowProps,\n ...colProps,\n })}\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.LOADER_SHOW_TIME = exports.DefaultState = exports.DELAY_BEFORE_SHOW_LOADER = exports.CustomComboBoxDataTids = exports.CustomComboBox = void 0;var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
2
2
  var _reactDom = _interopRequireDefault(require("react-dom"));
3
+ var _globalObject = require("@skbkontur/global-object");
3
4
 
4
5
 
5
6
 
@@ -407,9 +408,9 @@ CustomComboBox = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNod
407
408
  // workaround for the similar bug with focusout
408
409
  // in Firefox, Chrome and IE
409
410
  // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964
410
- setTimeout(function () {
411
+ _globalObject.globalObject.setTimeout(function () {
411
412
  _this.dispatch({ type: 'Blur' });
412
- });
413
+ }, 0);
413
414
  };_this.
414
415
 
415
416
  handleInputBlur = function () {
@@ -429,7 +430,7 @@ CustomComboBox = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNod
429
430
  }
430
431
  };return _this;}var _proto = CustomComboBox.prototype; /**
431
432
  * @public
432
- */_proto.search = /*#__PURE__*/function () {var _search = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(query) {var _this2 = this;var getItems, cancelPromise, expectingId, items;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:if (query === void 0) {query = this.state.textValue;}getItems = this.props.getItems;cancelPromise = new Promise(function (_, reject) {return _this2.cancelationToken = reject;});this.requestId += 1;expectingId = this.requestId;if (!this.loaderShowDelay) {this.loaderShowDelay = new Promise(function (resolve) {var cancelLoader = (0, _utils.taskWithDelay)(function () {_this2.dispatch({ type: 'RequestItems' });setTimeout(resolve, LOADER_SHOW_TIME);}, DELAY_BEFORE_SHOW_LOADER);cancelPromise.catch(function () {return cancelLoader();});_this2.cancelLoaderDelay = function () {cancelLoader();resolve();};});}_context.prev = 6;_context.next = 9;return Promise.race([getItems(query), cancelPromise]);case 9:items = _context.sent;if (!this.state.loading) {_context.next = 13;break;}_context.next = 13;return Promise.race([this.loaderShowDelay, cancelPromise]);case 13:if (expectingId === this.requestId) {this.dispatch({ type: 'ReceiveItems', items: items });}_context.next = 19;break;case 16:_context.prev = 16;_context.t0 = _context["catch"](6);if (_context.t0 && _context.t0.code === 'CancelationError') {this.dispatch({ type: 'CancelRequest' });} else if (expectingId === this.requestId) {this.dispatch({ type: 'RequestFailure', repeatRequest: function repeatRequest() {_this2.search(query);if (_this2.input) {_this2.input.focus();}} });}case 19:_context.prev = 19;if (expectingId === this.requestId) {if (!this.state.loading) {this.cancelLoaderDelay();}this.cancelationToken = null;this.loaderShowDelay = null;}return _context.finish(19);case 22:case "end":return _context.stop();}}}, _callee, this, [[6, 16, 19, 22]]);}));function search(_x) {return _search.apply(this, arguments);}return search;}() /**
433
+ */_proto.search = /*#__PURE__*/function () {var _search = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(query) {var _this2 = this;var getItems, cancelPromise, expectingId, items;return _regenerator.default.wrap(function _callee$(_context) {while (1) {switch (_context.prev = _context.next) {case 0:if (query === void 0) {query = this.state.textValue;}getItems = this.props.getItems;cancelPromise = new Promise(function (_, reject) {return _this2.cancelationToken = reject;});this.requestId += 1;expectingId = this.requestId;if (!this.loaderShowDelay) {this.loaderShowDelay = new Promise(function (resolve) {var cancelLoader = (0, _utils.taskWithDelay)(function () {_this2.dispatch({ type: 'RequestItems' });_globalObject.globalObject.setTimeout(resolve, LOADER_SHOW_TIME);}, DELAY_BEFORE_SHOW_LOADER);cancelPromise.catch(function () {return cancelLoader();});_this2.cancelLoaderDelay = function () {cancelLoader();resolve();};});}_context.prev = 6;_context.next = 9;return Promise.race([getItems(query), cancelPromise]);case 9:items = _context.sent;if (!this.state.loading) {_context.next = 13;break;}_context.next = 13;return Promise.race([this.loaderShowDelay, cancelPromise]);case 13:if (expectingId === this.requestId) {this.dispatch({ type: 'ReceiveItems', items: items });}_context.next = 19;break;case 16:_context.prev = 16;_context.t0 = _context["catch"](6);if (_context.t0 && _context.t0.code === 'CancelationError') {this.dispatch({ type: 'CancelRequest' });} else if (expectingId === this.requestId) {this.dispatch({ type: 'RequestFailure', repeatRequest: function repeatRequest() {_this2.search(query);if (_this2.input) {_this2.input.focus();}} });}case 19:_context.prev = 19;if (expectingId === this.requestId) {if (!this.state.loading) {this.cancelLoaderDelay();}this.cancelationToken = null;this.loaderShowDelay = null;}return _context.finish(19);case 22:case "end":return _context.stop();}}}, _callee, this, [[6, 16, 19, 22]]);}));function search(_x) {return _search.apply(this, arguments);}return search;}() /**
433
434
  * @public
434
435
  */;_proto.cancelSearch = function cancelSearch() {if (this.cancelationToken) {this.cancelationToken(new _utils.CancelationError());}} /**
435
436
  * @public
@@ -1 +1 @@
1
- {"version":3,"sources":["CustomComboBox.tsx"],"names":["DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","ComboBoxRequestStatus","Unknown","size","CustomComboBoxDataTids","comboBoxView","CustomComboBox","responsiveLayout","rootNode","state","requestId","cancelationToken","reducer","cancelLoaderDelay","focus","props","disabled","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","sync","updateState","effects","nextState","setState","stateAndEffect","Array","forEach","handleEffect","React","version","search","ReactDOM","flushSync","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","handleMobileClose","handleInputBlur","handleClickOutside","e","close","setTimeout","handleInputClick","query","getItems","cancelPromise","Promise","_","reject","expectingId","loaderShowDelay","resolve","cancelLoader","catch","race","code","cancelSearch","CancelationError","open","render","viewProps","align","borderless","disablePortal","error","menuAlign","drawArrow","menuPos","placeholder","totalCount","warning","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onMobileClose","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","itemWrapper","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","reset","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Input, InputIconType } from '../../components/Input';\nimport { Menu } from '../Menu';\nimport { InputLikeText } from '../InputLikeText';\nimport { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { DropdownContainerProps } from '../DropdownContainer';\nimport { ComboBoxExtendedItem } from '../../components/ComboBox';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { CustomComboBoxAction, CustomComboBoxEffect, reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport interface CustomComboBoxProps<T>\n extends Pick<DropdownContainerProps, 'menuPos'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: SizeProp;\n totalCount?: number;\n value?: Nullable<T>;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n itemWrapper?: (item: T) => React.ComponentType<unknown>;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<Array<ComboBoxExtendedItem<T>>>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n size: 'small',\n};\n\nexport const CustomComboBoxDataTids = {\n comboBoxView: 'ComboBoxView__root',\n} as const;\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n menuAlign: this.props.menuAlign,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n menuPos: this.props.menuPos,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n warning: this.props.warning,\n 'aria-describedby': this.props['aria-describedby'],\n 'aria-label': this.props['aria-label'],\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onMobileClose: this.handleMobileClose,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n itemWrapper: this.props.itemWrapper,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} size={this.props.size} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' }, false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch({ type: 'DidUpdate', prevProps, prevState }, false);\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>, sync = true) => {\n const updateState = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (sync && React.version.search('18') === 0) {\n ReactDOM.flushSync(() => updateState(action));\n } else {\n updateState(action);\n }\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.dispatch({ type: 'Focus' });\n };\n\n private handleMobileClose = () => {\n this.handleInputBlur();\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n });\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n if (this.state.opened && !this.isMobileLayout) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["CustomComboBox.tsx"],"names":["DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","ComboBoxRequestStatus","Unknown","size","CustomComboBoxDataTids","comboBoxView","CustomComboBox","responsiveLayout","rootNode","state","requestId","cancelationToken","reducer","cancelLoaderDelay","focus","props","disabled","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","sync","updateState","effects","nextState","setState","stateAndEffect","Array","forEach","handleEffect","React","version","search","ReactDOM","flushSync","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","handleMobileClose","handleInputBlur","handleClickOutside","e","close","globalObject","setTimeout","handleInputClick","query","getItems","cancelPromise","Promise","_","reject","expectingId","loaderShowDelay","resolve","cancelLoader","catch","race","code","cancelSearch","CancelationError","open","render","viewProps","align","borderless","disablePortal","error","menuAlign","drawArrow","menuPos","placeholder","totalCount","warning","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onMobileClose","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","itemWrapper","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","reset","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport ReactDOM from 'react-dom';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Input, InputIconType } from '../../components/Input';\nimport { Menu } from '../Menu';\nimport { InputLikeText } from '../InputLikeText';\nimport { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { DropdownContainerProps } from '../DropdownContainer';\nimport { ComboBoxExtendedItem } from '../../components/ComboBox';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { CustomComboBoxAction, CustomComboBoxEffect, reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport interface CustomComboBoxProps<T>\n extends Pick<DropdownContainerProps, 'menuPos'>,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: SizeProp;\n totalCount?: number;\n value?: Nullable<T>;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n itemWrapper?: (item: T) => React.ComponentType<unknown>;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<Array<ComboBoxExtendedItem<T>>>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n size: 'small',\n};\n\nexport const CustomComboBoxDataTids = {\n comboBoxView: 'ComboBoxView__root',\n} as const;\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n globalObject.setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n menuAlign: this.props.menuAlign,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n menuPos: this.props.menuPos,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n warning: this.props.warning,\n 'aria-describedby': this.props['aria-describedby'],\n 'aria-label': this.props['aria-label'],\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onMobileClose: this.handleMobileClose,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n itemWrapper: this.props.itemWrapper,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} size={this.props.size} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' }, false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch({ type: 'DidUpdate', prevProps, prevState }, false);\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>, sync = true) => {\n const updateState = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (sync && React.version.search('18') === 0) {\n ReactDOM.flushSync(() => updateState(action));\n } else {\n updateState(action);\n }\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.dispatch({ type: 'Focus' });\n };\n\n private handleMobileClose = () => {\n this.handleInputBlur();\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n globalObject.setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n }, 0);\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n if (this.state.opened && !this.isMobileLayout) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.Effect = void 0;exports.reducer = reducer;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
2
2
  var _lodash = _interopRequireDefault(require("lodash.debounce"));
3
3
  var _lodash2 = _interopRequireDefault(require("lodash.isequal"));
4
+ var _globalObject = require("@skbkontur/global-object");
4
5
 
5
6
  var _utils = require("../../lib/utils");
6
7
  var _identifiers = require("../../lib/events/keyboard/identifiers");
@@ -162,12 +163,12 @@ var Effect = {
162
163
 
163
164
  if (index >= 0) {
164
165
  // @ts-expect-error: Use of private property.
165
- requestAnimationFrame(function () {return menu && menu.scrollToSelected();});
166
+ _globalObject.globalObject.requestAnimationFrame == null ? void 0 : _globalObject.globalObject.requestAnimationFrame(function () {return menu && menu.scrollToSelected();});
166
167
  return;
167
168
  }
168
169
 
169
170
  if (textValue !== valueString || requestStatus === _CustomComboBoxTypes.ComboBoxRequestStatus.Failed) {
170
- requestAnimationFrame(function () {return menu && menu.down();});
171
+ _globalObject.globalObject.requestAnimationFrame == null ? void 0 : _globalObject.globalObject.requestAnimationFrame(function () {return menu && menu.down();});
171
172
  }
172
173
  },
173
174
  selectMenuItem: function selectMenuItem(event) {return function (dispatch, getState, getProps, getInstance) {
@@ -1 +1 @@
1
- {"version":3,"sources":["CustomComboBoxReducer.tsx"],"names":["DEBOUNCE_DELAY","getValueString","value","valueToString","Effect","search","query","dispatch","getState","getProps","getInstance","debouncedSearch","searchEffect","textValue","cancelRequest","cancel","cancelSearch","blur","onBlur","focus","onFocus","valueChange","onValueChange","unexpectedInput","items","onUnexpectedInput","Array","isArray","length","singleItem","valueContent","type","keepFocus","undefined","inputChange","onInputValueChange","returnedValue","inputFocus","input","highlightMenuItem","itemToValue","focused","requestStatus","menu","valueString","index","findIndex","x","highlightItem","requestAnimationFrame","scrollToSelected","ComboBoxRequestStatus","Failed","down","selectMenuItem","event","enter","moveMenuHighlight","direction","resetHighlightedMenuItem","combobox","hasHighlightedItem","reset","reflow","LayoutEvents","emit","selectInputText","inputKeyDown","onInputKeyDown","never","reducer","state","props","action","opened","inputChanged","editing","newState","searchOnFocus","e","effects","nextState","preventDefault","push","prevProps","DefaultState","loading","Pending","shouldResetMenuHighlight","Success","repeatRequest","Unknown"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport isEqual from 'lodash.isequal';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyArrowUp, isKeyArrowVertical, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { ComboBoxExtendedItem } from '../../components/ComboBox';\n\nimport { CustomComboBox, CustomComboBoxProps, CustomComboBoxState, DefaultState } from './CustomComboBox';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\n\nexport type CustomComboBoxAction<T> =\n | { type: 'ValueChange'; value: T; keepFocus: boolean }\n | { type: 'TextChange'; value: string }\n | { type: 'KeyPress'; event: React.KeyboardEvent }\n | {\n type: 'DidUpdate';\n prevProps: CustomComboBoxProps<T>;\n prevState: CustomComboBoxState<T>;\n }\n | { type: 'Mount' }\n | { type: 'Focus' }\n | { type: 'InputClick' }\n | { type: 'Blur' }\n | { type: 'Reset' }\n | { type: 'Open' }\n | { type: 'Close' }\n | { type: 'Search'; query: string }\n | { type: 'RequestItems' }\n | { type: 'ReceiveItems'; items: Array<ComboBoxExtendedItem<T>> }\n | { type: 'RequestFailure'; repeatRequest: () => void }\n | { type: 'CancelRequest' };\n\nexport type CustomComboBoxEffect<T> = (\n dispatch: (action: CustomComboBoxAction<T>) => void,\n getState: () => CustomComboBoxState<T>,\n getProps: () => CustomComboBoxProps<T>,\n getInstance: () => CustomComboBox<T>,\n) => void;\n\ntype Effect = CustomComboBoxEffect<any>;\n\ninterface EffectFactory {\n search: (query: string) => Effect;\n debouncedSearch: Effect & {\n cancel(): void;\n flush(): void;\n };\n cancelRequest: Effect;\n blur: Effect;\n focus: Effect;\n\n valueChange: (value: any) => Effect;\n unexpectedInput: (textValue: string, items: Nullable<any[]>) => Effect;\n inputChange: Effect;\n inputFocus: Effect;\n highlightMenuItem: Effect;\n selectMenuItem: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n inputKeyDown: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n moveMenuHighlight: (direction: 'up' | 'down') => Effect;\n resetHighlightedMenuItem: Effect;\n reflow: Effect;\n selectInputText: Effect;\n}\n\nconst DEBOUNCE_DELAY = 300;\n\nconst getValueString = (value: any, valueToString: CustomComboBoxProps<any>['valueToString']) => {\n return isNonNullable(value) ? valueToString(value) : '';\n};\n\nexport const Effect: EffectFactory = {\n search: (query) => (dispatch, getState, getProps, getInstance) => {\n getInstance().search(query);\n },\n debouncedSearch: debounce((dispatch, getState, getProps, getInstance) => {\n const searchEffect = Effect.search(getState().textValue);\n searchEffect(dispatch, getState, getProps, getInstance);\n }, DEBOUNCE_DELAY),\n cancelRequest: (dispatch, getState, getProps, getInstance) => {\n Effect.debouncedSearch.cancel();\n getInstance().cancelSearch();\n },\n blur: (dispatch, getState, getProps) => {\n const { onBlur } = getProps();\n if (onBlur) {\n onBlur();\n }\n },\n focus: (dispatch, getState, getProps) => {\n const { onFocus } = getProps();\n if (onFocus) {\n onFocus();\n }\n },\n valueChange: (value) => (dispatch, getState, getProps) => {\n const { onValueChange } = getProps();\n if (onValueChange) {\n onValueChange(value);\n }\n },\n unexpectedInput: (textValue, items) => (dispatch, getState, getProps) => {\n const { onUnexpectedInput, valueToString } = getProps();\n\n if (Array.isArray(items) && items.length === 1) {\n const singleItem = items[0];\n const valueContent = getValueString(singleItem, valueToString);\n\n if (valueContent === textValue) {\n dispatch({ type: 'ValueChange', value: singleItem, keepFocus: false });\n return;\n }\n }\n\n if (onUnexpectedInput) {\n const value = onUnexpectedInput(textValue);\n if (value !== undefined) {\n dispatch({ type: 'ValueChange', value, keepFocus: false });\n }\n }\n },\n inputChange: (dispatch, getState, getProps) => {\n const { onInputValueChange } = getProps();\n const { textValue } = getState();\n if (onInputValueChange) {\n const returnedValue = onInputValueChange(textValue);\n if (typeof returnedValue === 'string' && returnedValue !== textValue) {\n dispatch({ type: 'TextChange', value: returnedValue });\n }\n }\n },\n inputFocus: (dispatch, getState, getProps, getInstance) => {\n const { input } = getInstance();\n\n if (!input) {\n return;\n }\n\n input.focus();\n },\n highlightMenuItem: (dispatch, getState, getProps, getInstance) => {\n const { value, itemToValue, valueToString } = getProps();\n const { items, focused, textValue, requestStatus } = getState();\n const { menu } = getInstance();\n const valueString = getValueString(value, valueToString);\n\n if (!menu) {\n return;\n }\n\n if (!focused) {\n return;\n }\n\n let index = -1;\n if (items && items.length && isNonNullable(value)) {\n index = items.findIndex((x) => itemToValue(x) === itemToValue(value));\n }\n menu.highlightItem(index);\n\n if (index >= 0) {\n // @ts-expect-error: Use of private property.\n requestAnimationFrame(() => menu && menu.scrollToSelected());\n return;\n }\n\n if (textValue !== valueString || requestStatus === ComboBoxRequestStatus.Failed) {\n requestAnimationFrame(() => menu && menu.down());\n }\n },\n selectMenuItem: (event) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu.enter(event);\n }\n },\n moveMenuHighlight: (direction) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu[direction]();\n }\n },\n resetHighlightedMenuItem: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n\n if (combobox.menu && combobox.menu.hasHighlightedItem()) {\n combobox.menu.reset();\n }\n },\n reflow: () => {\n LayoutEvents.emit();\n },\n selectInputText: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n combobox.selectInputText();\n },\n inputKeyDown: (event) => (dispatch, getState, getProps) => {\n const { onInputKeyDown } = getProps();\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n },\n};\n\nconst never = () => null;\n\nexport function reducer<T>(\n state: CustomComboBoxState<T>,\n props: CustomComboBoxProps<T>,\n action: CustomComboBoxAction<T>,\n): Pick<CustomComboBoxState<T>, never> | [Pick<CustomComboBoxState<T>, never>, Array<CustomComboBoxEffect<T>>] {\n switch (action.type) {\n case 'ValueChange': {\n const { value, keepFocus } = action;\n const textValue = getValueString(value, props.valueToString);\n if (keepFocus) {\n return [\n {\n opened: false,\n inputChanged: false,\n editing: true,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest, Effect.inputFocus],\n ];\n }\n return [\n {\n opened: false,\n inputChanged: false,\n editing: false,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest],\n ];\n }\n case 'TextChange': {\n const newState = {\n inputChanged: true,\n textValue: action.value,\n };\n if (!action.value && !props.searchOnFocus) {\n return [\n {\n ...newState,\n opened: false,\n items: null,\n },\n [Effect.inputChange],\n ];\n }\n return [newState, [Effect.debouncedSearch, Effect.inputChange]];\n }\n case 'KeyPress': {\n const e = action.event as React.KeyboardEvent<HTMLElement>;\n const effects = [];\n let nextState = state;\n\n switch (true) {\n case isKeyEnter(e):\n if (!state.opened) {\n break;\n }\n e.preventDefault();\n effects.push(Effect.selectMenuItem(e));\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n effects.push(Effect.moveMenuHighlight(isKeyArrowUp(e) ? 'up' : 'down'));\n if (!state.opened) {\n effects.push(Effect.search(state.textValue));\n }\n break;\n case isKeyEscape(e):\n nextState = {\n ...state,\n items: null,\n opened: false,\n };\n break;\n }\n return [nextState, [...effects, Effect.inputKeyDown(e)]];\n }\n case 'DidUpdate': {\n if (isEqual(props.value, action.prevProps.value)) {\n return state;\n }\n\n return {\n opened: false,\n textValue: state.editing ? state.textValue : getValueString(props.value, props.valueToString),\n };\n }\n case 'Mount': {\n return {\n textValue: getValueString(props.value, props.valueToString),\n };\n }\n case 'Focus': {\n const newState = {\n focused: true,\n editing: true,\n };\n if (!props.searchOnFocus) {\n return [newState, [Effect.focus]];\n }\n if (state.editing) {\n return [newState, [Effect.search(state.textValue), Effect.focus]];\n }\n return [newState, [Effect.search(''), Effect.focus, Effect.selectInputText]];\n }\n case 'InputClick': {\n const newState = {\n inputChanged: false,\n };\n if (!state.opened && props.searchOnFocus) {\n return [newState, [Effect.search('')]];\n }\n return state;\n }\n case 'Blur': {\n const { inputChanged, items } = state;\n if (!inputChanged) {\n return [\n {\n focused: false,\n opened: false,\n items: null,\n editing: false,\n },\n [Effect.blur, Effect.cancelRequest],\n ];\n }\n\n return [\n {\n focused: false,\n opened: false,\n items: null,\n },\n [Effect.blur, Effect.cancelRequest, Effect.unexpectedInput(state.textValue, items)],\n ];\n }\n case 'Reset': {\n return DefaultState;\n }\n case 'Open': {\n return { opened: true };\n }\n case 'Close': {\n return { opened: false, items: null };\n }\n case 'Search': {\n return [state, [Effect.search(action.query)]];\n }\n case 'RequestItems': {\n return {\n loading: true,\n opened: true,\n requestStatus: ComboBoxRequestStatus.Pending,\n };\n }\n case 'ReceiveItems': {\n const shouldResetMenuHighlight = state.textValue === '';\n return [\n {\n loading: false,\n opened: true,\n items: action.items,\n requestStatus: ComboBoxRequestStatus.Success,\n },\n [shouldResetMenuHighlight ? Effect.resetHighlightedMenuItem : Effect.highlightMenuItem, Effect.reflow],\n ];\n }\n case 'RequestFailure': {\n return [\n {\n loading: false,\n opened: true,\n items: null,\n requestStatus: ComboBoxRequestStatus.Failed,\n repeatRequest: action.repeatRequest,\n },\n [Effect.highlightMenuItem],\n ];\n }\n case 'CancelRequest': {\n return {\n loading: false,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n }\n default: {\n never();\n }\n }\n return state;\n}\n"]}
1
+ {"version":3,"sources":["CustomComboBoxReducer.tsx"],"names":["DEBOUNCE_DELAY","getValueString","value","valueToString","Effect","search","query","dispatch","getState","getProps","getInstance","debouncedSearch","searchEffect","textValue","cancelRequest","cancel","cancelSearch","blur","onBlur","focus","onFocus","valueChange","onValueChange","unexpectedInput","items","onUnexpectedInput","Array","isArray","length","singleItem","valueContent","type","keepFocus","undefined","inputChange","onInputValueChange","returnedValue","inputFocus","input","highlightMenuItem","itemToValue","focused","requestStatus","menu","valueString","index","findIndex","x","highlightItem","globalObject","requestAnimationFrame","scrollToSelected","ComboBoxRequestStatus","Failed","down","selectMenuItem","event","enter","moveMenuHighlight","direction","resetHighlightedMenuItem","combobox","hasHighlightedItem","reset","reflow","LayoutEvents","emit","selectInputText","inputKeyDown","onInputKeyDown","never","reducer","state","props","action","opened","inputChanged","editing","newState","searchOnFocus","e","effects","nextState","preventDefault","push","prevProps","DefaultState","loading","Pending","shouldResetMenuHighlight","Success","repeatRequest","Unknown"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport isEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyArrowUp, isKeyArrowVertical, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable } from '../../typings/utility-types';\nimport { ComboBoxExtendedItem } from '../../components/ComboBox';\n\nimport { CustomComboBox, CustomComboBoxProps, CustomComboBoxState, DefaultState } from './CustomComboBox';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\n\nexport type CustomComboBoxAction<T> =\n | { type: 'ValueChange'; value: T; keepFocus: boolean }\n | { type: 'TextChange'; value: string }\n | { type: 'KeyPress'; event: React.KeyboardEvent }\n | {\n type: 'DidUpdate';\n prevProps: CustomComboBoxProps<T>;\n prevState: CustomComboBoxState<T>;\n }\n | { type: 'Mount' }\n | { type: 'Focus' }\n | { type: 'InputClick' }\n | { type: 'Blur' }\n | { type: 'Reset' }\n | { type: 'Open' }\n | { type: 'Close' }\n | { type: 'Search'; query: string }\n | { type: 'RequestItems' }\n | { type: 'ReceiveItems'; items: Array<ComboBoxExtendedItem<T>> }\n | { type: 'RequestFailure'; repeatRequest: () => void }\n | { type: 'CancelRequest' };\n\nexport type CustomComboBoxEffect<T> = (\n dispatch: (action: CustomComboBoxAction<T>) => void,\n getState: () => CustomComboBoxState<T>,\n getProps: () => CustomComboBoxProps<T>,\n getInstance: () => CustomComboBox<T>,\n) => void;\n\ntype Effect = CustomComboBoxEffect<any>;\n\ninterface EffectFactory {\n search: (query: string) => Effect;\n debouncedSearch: Effect & {\n cancel(): void;\n flush(): void;\n };\n cancelRequest: Effect;\n blur: Effect;\n focus: Effect;\n\n valueChange: (value: any) => Effect;\n unexpectedInput: (textValue: string, items: Nullable<any[]>) => Effect;\n inputChange: Effect;\n inputFocus: Effect;\n highlightMenuItem: Effect;\n selectMenuItem: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n inputKeyDown: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n moveMenuHighlight: (direction: 'up' | 'down') => Effect;\n resetHighlightedMenuItem: Effect;\n reflow: Effect;\n selectInputText: Effect;\n}\n\nconst DEBOUNCE_DELAY = 300;\n\nconst getValueString = (value: any, valueToString: CustomComboBoxProps<any>['valueToString']) => {\n return isNonNullable(value) ? valueToString(value) : '';\n};\n\nexport const Effect: EffectFactory = {\n search: (query) => (dispatch, getState, getProps, getInstance) => {\n getInstance().search(query);\n },\n debouncedSearch: debounce((dispatch, getState, getProps, getInstance) => {\n const searchEffect = Effect.search(getState().textValue);\n searchEffect(dispatch, getState, getProps, getInstance);\n }, DEBOUNCE_DELAY),\n cancelRequest: (dispatch, getState, getProps, getInstance) => {\n Effect.debouncedSearch.cancel();\n getInstance().cancelSearch();\n },\n blur: (dispatch, getState, getProps) => {\n const { onBlur } = getProps();\n if (onBlur) {\n onBlur();\n }\n },\n focus: (dispatch, getState, getProps) => {\n const { onFocus } = getProps();\n if (onFocus) {\n onFocus();\n }\n },\n valueChange: (value) => (dispatch, getState, getProps) => {\n const { onValueChange } = getProps();\n if (onValueChange) {\n onValueChange(value);\n }\n },\n unexpectedInput: (textValue, items) => (dispatch, getState, getProps) => {\n const { onUnexpectedInput, valueToString } = getProps();\n\n if (Array.isArray(items) && items.length === 1) {\n const singleItem = items[0];\n const valueContent = getValueString(singleItem, valueToString);\n\n if (valueContent === textValue) {\n dispatch({ type: 'ValueChange', value: singleItem, keepFocus: false });\n return;\n }\n }\n\n if (onUnexpectedInput) {\n const value = onUnexpectedInput(textValue);\n if (value !== undefined) {\n dispatch({ type: 'ValueChange', value, keepFocus: false });\n }\n }\n },\n inputChange: (dispatch, getState, getProps) => {\n const { onInputValueChange } = getProps();\n const { textValue } = getState();\n if (onInputValueChange) {\n const returnedValue = onInputValueChange(textValue);\n if (typeof returnedValue === 'string' && returnedValue !== textValue) {\n dispatch({ type: 'TextChange', value: returnedValue });\n }\n }\n },\n inputFocus: (dispatch, getState, getProps, getInstance) => {\n const { input } = getInstance();\n\n if (!input) {\n return;\n }\n\n input.focus();\n },\n highlightMenuItem: (dispatch, getState, getProps, getInstance) => {\n const { value, itemToValue, valueToString } = getProps();\n const { items, focused, textValue, requestStatus } = getState();\n const { menu } = getInstance();\n const valueString = getValueString(value, valueToString);\n\n if (!menu) {\n return;\n }\n\n if (!focused) {\n return;\n }\n\n let index = -1;\n if (items && items.length && isNonNullable(value)) {\n index = items.findIndex((x) => itemToValue(x) === itemToValue(value));\n }\n menu.highlightItem(index);\n\n if (index >= 0) {\n // @ts-expect-error: Use of private property.\n globalObject.requestAnimationFrame?.(() => menu && menu.scrollToSelected());\n return;\n }\n\n if (textValue !== valueString || requestStatus === ComboBoxRequestStatus.Failed) {\n globalObject.requestAnimationFrame?.(() => menu && menu.down());\n }\n },\n selectMenuItem: (event) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu.enter(event);\n }\n },\n moveMenuHighlight: (direction) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu[direction]();\n }\n },\n resetHighlightedMenuItem: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n\n if (combobox.menu && combobox.menu.hasHighlightedItem()) {\n combobox.menu.reset();\n }\n },\n reflow: () => {\n LayoutEvents.emit();\n },\n selectInputText: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n combobox.selectInputText();\n },\n inputKeyDown: (event) => (dispatch, getState, getProps) => {\n const { onInputKeyDown } = getProps();\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n },\n};\n\nconst never = () => null;\n\nexport function reducer<T>(\n state: CustomComboBoxState<T>,\n props: CustomComboBoxProps<T>,\n action: CustomComboBoxAction<T>,\n): Pick<CustomComboBoxState<T>, never> | [Pick<CustomComboBoxState<T>, never>, Array<CustomComboBoxEffect<T>>] {\n switch (action.type) {\n case 'ValueChange': {\n const { value, keepFocus } = action;\n const textValue = getValueString(value, props.valueToString);\n if (keepFocus) {\n return [\n {\n opened: false,\n inputChanged: false,\n editing: true,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest, Effect.inputFocus],\n ];\n }\n return [\n {\n opened: false,\n inputChanged: false,\n editing: false,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest],\n ];\n }\n case 'TextChange': {\n const newState = {\n inputChanged: true,\n textValue: action.value,\n };\n if (!action.value && !props.searchOnFocus) {\n return [\n {\n ...newState,\n opened: false,\n items: null,\n },\n [Effect.inputChange],\n ];\n }\n return [newState, [Effect.debouncedSearch, Effect.inputChange]];\n }\n case 'KeyPress': {\n const e = action.event as React.KeyboardEvent<HTMLElement>;\n const effects = [];\n let nextState = state;\n\n switch (true) {\n case isKeyEnter(e):\n if (!state.opened) {\n break;\n }\n e.preventDefault();\n effects.push(Effect.selectMenuItem(e));\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n effects.push(Effect.moveMenuHighlight(isKeyArrowUp(e) ? 'up' : 'down'));\n if (!state.opened) {\n effects.push(Effect.search(state.textValue));\n }\n break;\n case isKeyEscape(e):\n nextState = {\n ...state,\n items: null,\n opened: false,\n };\n break;\n }\n return [nextState, [...effects, Effect.inputKeyDown(e)]];\n }\n case 'DidUpdate': {\n if (isEqual(props.value, action.prevProps.value)) {\n return state;\n }\n\n return {\n opened: false,\n textValue: state.editing ? state.textValue : getValueString(props.value, props.valueToString),\n };\n }\n case 'Mount': {\n return {\n textValue: getValueString(props.value, props.valueToString),\n };\n }\n case 'Focus': {\n const newState = {\n focused: true,\n editing: true,\n };\n if (!props.searchOnFocus) {\n return [newState, [Effect.focus]];\n }\n if (state.editing) {\n return [newState, [Effect.search(state.textValue), Effect.focus]];\n }\n return [newState, [Effect.search(''), Effect.focus, Effect.selectInputText]];\n }\n case 'InputClick': {\n const newState = {\n inputChanged: false,\n };\n if (!state.opened && props.searchOnFocus) {\n return [newState, [Effect.search('')]];\n }\n return state;\n }\n case 'Blur': {\n const { inputChanged, items } = state;\n if (!inputChanged) {\n return [\n {\n focused: false,\n opened: false,\n items: null,\n editing: false,\n },\n [Effect.blur, Effect.cancelRequest],\n ];\n }\n\n return [\n {\n focused: false,\n opened: false,\n items: null,\n },\n [Effect.blur, Effect.cancelRequest, Effect.unexpectedInput(state.textValue, items)],\n ];\n }\n case 'Reset': {\n return DefaultState;\n }\n case 'Open': {\n return { opened: true };\n }\n case 'Close': {\n return { opened: false, items: null };\n }\n case 'Search': {\n return [state, [Effect.search(action.query)]];\n }\n case 'RequestItems': {\n return {\n loading: true,\n opened: true,\n requestStatus: ComboBoxRequestStatus.Pending,\n };\n }\n case 'ReceiveItems': {\n const shouldResetMenuHighlight = state.textValue === '';\n return [\n {\n loading: false,\n opened: true,\n items: action.items,\n requestStatus: ComboBoxRequestStatus.Success,\n },\n [shouldResetMenuHighlight ? Effect.resetHighlightedMenuItem : Effect.highlightMenuItem, Effect.reflow],\n ];\n }\n case 'RequestFailure': {\n return [\n {\n loading: false,\n opened: true,\n items: null,\n requestStatus: ComboBoxRequestStatus.Failed,\n repeatRequest: action.repeatRequest,\n },\n [Effect.highlightMenuItem],\n ];\n }\n case 'CancelRequest': {\n return {\n loading: false,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n }\n default: {\n never();\n }\n }\n return state;\n}\n"]}