@skbkontur/react-ui 5.0.12 → 5.1.0-next.1

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 (907) hide show
  1. package/cjs/components/Autocomplete/Autocomplete.d.ts +16 -17
  2. package/cjs/components/Autocomplete/Autocomplete.js +13 -2
  3. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/cjs/components/Autocomplete/Autocomplete.md +9 -7
  5. package/cjs/components/Autocomplete/__docs__/Autocomplete.mdx +26 -0
  6. package/cjs/components/Autocomplete/locale/types.js +1 -1
  7. package/cjs/components/Button/Button.d.ts +20 -62
  8. package/cjs/components/Button/Button.js +0 -42
  9. package/cjs/components/Button/Button.js.map +1 -1
  10. package/cjs/components/Button/Button.md +40 -26
  11. package/cjs/components/Button/__docs__/Button.mdx +28 -0
  12. package/cjs/components/Calendar/Calendar.d.ts +22 -45
  13. package/cjs/components/Calendar/Calendar.js +1 -15
  14. package/cjs/components/Calendar/Calendar.js.map +1 -1
  15. package/cjs/components/Calendar/Calendar.md +12 -12
  16. package/cjs/components/Calendar/CalendarDay.d.ts +7 -0
  17. package/cjs/components/Calendar/CalendarDay.js +11 -0
  18. package/cjs/components/Calendar/CalendarDay.js.map +1 -1
  19. package/cjs/components/Calendar/CalendarDay.md +32 -32
  20. package/cjs/components/Calendar/__docs__/Calendar.mdx +28 -0
  21. package/cjs/components/Calendar/__docs__/CalendarDay.mdx +24 -0
  22. package/cjs/components/Calendar/locale/types.js +1 -1
  23. package/cjs/components/Center/Center.d.ts +4 -6
  24. package/cjs/components/Center/Center.js +3 -5
  25. package/cjs/components/Center/Center.js.map +1 -1
  26. package/cjs/components/Center/Center.md +1 -1
  27. package/cjs/components/Center/__docs__/Center.mdx +24 -0
  28. package/cjs/components/Checkbox/Checkbox.d.ts +20 -28
  29. package/cjs/components/Checkbox/Checkbox.js +7 -6
  30. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  31. package/cjs/components/Checkbox/Checkbox.md +6 -5
  32. package/cjs/components/Checkbox/__docs__/Checkbox.mdx +28 -0
  33. package/cjs/components/ComboBox/ComboBox.d.ts +67 -86
  34. package/cjs/components/ComboBox/ComboBox.js +12 -28
  35. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  36. package/cjs/components/ComboBox/ComboBox.md +41 -40
  37. package/cjs/components/ComboBox/__docs__/ComboBox.mdx +28 -0
  38. package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +4 -0
  39. package/cjs/components/CurrencyInput/CurrencyHelper.js +7 -0
  40. package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
  41. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +12 -12
  42. package/cjs/components/CurrencyInput/CurrencyInput.js +8 -2
  43. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  44. package/cjs/components/CurrencyInput/CurrencyInput.md +3 -1
  45. package/cjs/components/CurrencyInput/CurrencyInputHelper.d.ts +3 -0
  46. package/cjs/components/CurrencyInput/CurrencyInputHelper.js +5 -0
  47. package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
  48. package/cjs/components/CurrencyInput/__docs__/CurrencyInput.mdx +28 -0
  49. package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +8 -5
  50. package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -0
  51. package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
  52. package/cjs/components/CurrencyLabel/CurrencyLabel.md +5 -5
  53. package/cjs/components/CurrencyLabel/__docs__/CurrencyLabel.mdx +24 -0
  54. package/cjs/components/DateInput/DateInput.d.ts +21 -29
  55. package/cjs/components/DateInput/DateInput.js +14 -2
  56. package/cjs/components/DateInput/DateInput.js.map +1 -1
  57. package/cjs/components/DateInput/DateInput.md +7 -2
  58. package/cjs/components/DateInput/__docs__/DateInput.mdx +26 -0
  59. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -1
  60. package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
  61. package/cjs/components/DatePicker/DatePicker.d.ts +33 -23
  62. package/cjs/components/DatePicker/DatePicker.js +53 -4
  63. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  64. package/cjs/components/DatePicker/DatePicker.md +2 -2
  65. package/cjs/components/DatePicker/__docs__/DatePicker.mdx +28 -0
  66. package/cjs/components/DatePicker/locale/types.js +1 -1
  67. package/cjs/components/Dropdown/Dropdown.d.ts +25 -30
  68. package/cjs/components/Dropdown/Dropdown.js +8 -1
  69. package/cjs/components/Dropdown/Dropdown.js.map +1 -1
  70. package/cjs/components/Dropdown/Dropdown.md +2 -1
  71. package/cjs/components/Dropdown/__docs__/Dropdown.mdx +28 -0
  72. package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  73. package/cjs/components/DropdownMenu/DropdownMenu.js +1 -1
  74. package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  75. package/cjs/components/DropdownMenu/DropdownMenu.md +12 -10
  76. package/cjs/components/DropdownMenu/__docs__/DropdownMenu.mdx +28 -0
  77. package/cjs/components/FileUploader/FileUploader.d.ts +16 -20
  78. package/cjs/components/FileUploader/FileUploader.js +5 -3
  79. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  80. package/cjs/components/FileUploader/FileUploader.md +9 -9
  81. package/cjs/components/FileUploader/__docs__/FileUploader.mdx +28 -0
  82. package/cjs/components/FileUploader/locale/types.js +1 -1
  83. package/cjs/components/FxInput/FxInput.d.ts +15 -9
  84. package/cjs/components/FxInput/FxInput.js +14 -1
  85. package/cjs/components/FxInput/FxInput.js.map +1 -1
  86. package/cjs/components/FxInput/FxInput.md +2 -0
  87. package/cjs/components/FxInput/__docs__/FxInput.mdx +28 -0
  88. package/cjs/components/Gapped/Gapped.d.ts +6 -17
  89. package/cjs/components/Gapped/Gapped.js +1 -8
  90. package/cjs/components/Gapped/Gapped.js.map +1 -1
  91. package/cjs/components/Gapped/Gapped.md +3 -2
  92. package/cjs/components/Gapped/__docs__/Gapped.mdx +24 -0
  93. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +22 -32
  94. package/cjs/components/GlobalLoader/GlobalLoader.js +14 -14
  95. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  96. package/cjs/components/GlobalLoader/GlobalLoader.md +4 -5
  97. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +4 -0
  98. package/cjs/components/GlobalLoader/GlobalLoaderView.js +7 -0
  99. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  100. package/cjs/components/GlobalLoader/__docs__/GlobalLoader.mdx +28 -0
  101. package/cjs/components/Group/Group.d.ts +6 -0
  102. package/cjs/components/Group/Group.js +7 -1
  103. package/cjs/components/Group/Group.js.map +1 -1
  104. package/cjs/components/Group/Group.md +1 -0
  105. package/cjs/components/Group/__docs__/Group.mdx +24 -0
  106. package/cjs/components/Hint/Hint.d.ts +18 -40
  107. package/cjs/components/Hint/Hint.js +4 -16
  108. package/cjs/components/Hint/Hint.js.map +1 -1
  109. package/cjs/components/Hint/Hint.md +9 -8
  110. package/cjs/components/Hint/__docs__/Hint.mdx +29 -0
  111. package/cjs/components/Input/Input.d.ts +46 -68
  112. package/cjs/components/Input/Input.js +10 -9
  113. package/cjs/components/Input/Input.js.map +1 -1
  114. package/cjs/components/Input/Input.md +11 -2
  115. package/cjs/components/Input/Input.typings.js +1 -1
  116. package/cjs/components/Input/__docs__/Input.mdx +28 -0
  117. package/cjs/components/Kebab/Kebab.d.ts +12 -16
  118. package/cjs/components/Kebab/Kebab.js +4 -2
  119. package/cjs/components/Kebab/Kebab.js.map +1 -1
  120. package/cjs/components/Kebab/Kebab.md +9 -9
  121. package/cjs/components/Kebab/__docs__/Kebab.mdx +28 -0
  122. package/cjs/components/Link/Link.d.ts +13 -37
  123. package/cjs/components/Link/Link.js +0 -13
  124. package/cjs/components/Link/Link.js.map +1 -1
  125. package/cjs/components/Link/Link.md +12 -11
  126. package/cjs/components/Link/__docs__/Link.mdx +28 -0
  127. package/cjs/components/Loader/Loader.d.ts +13 -25
  128. package/cjs/components/Loader/Loader.js +2 -8
  129. package/cjs/components/Loader/Loader.js.map +1 -1
  130. package/cjs/components/Loader/Loader.md +1 -0
  131. package/cjs/components/Loader/__docs__/Loader.mdx +26 -0
  132. package/cjs/components/MaskedInput/MaskedInput.d.ts +13 -33
  133. package/cjs/components/MaskedInput/MaskedInput.js +0 -13
  134. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  135. package/cjs/components/MaskedInput/MaskedInput.md +7 -5
  136. package/cjs/components/MaskedInput/__docs__/MaskedInput.mdx +28 -0
  137. package/cjs/components/MenuFooter/MenuFooter.d.ts +6 -4
  138. package/cjs/components/MenuFooter/MenuFooter.js +7 -3
  139. package/cjs/components/MenuFooter/MenuFooter.js.map +1 -1
  140. package/cjs/components/MenuFooter/MenuFooter.md +2 -2
  141. package/cjs/components/MenuFooter/__docs__/MenuFooter.mdx +24 -0
  142. package/cjs/components/MenuHeader/MenuHeader.d.ts +6 -4
  143. package/cjs/components/MenuHeader/MenuHeader.js +7 -3
  144. package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
  145. package/cjs/components/MenuHeader/MenuHeader.md +2 -2
  146. package/cjs/components/MenuHeader/__docs__/MenuHeader.mdx +24 -0
  147. package/cjs/components/MenuItem/MenuItem.d.ts +22 -55
  148. package/cjs/components/MenuItem/MenuItem.js +1 -18
  149. package/cjs/components/MenuItem/MenuItem.js.map +1 -1
  150. package/cjs/components/MenuItem/MenuItem.md +34 -30
  151. package/cjs/components/MenuItem/__docs__/MenuItem.mdx +24 -0
  152. package/cjs/components/MenuSeparator/MenuSeparator.d.ts +2 -2
  153. package/cjs/components/MenuSeparator/MenuSeparator.js +3 -2
  154. package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
  155. package/cjs/components/MenuSeparator/MenuSeparator.md +1 -1
  156. package/cjs/components/MenuSeparator/__docs__/MenuSeparator.mdx +24 -0
  157. package/cjs/components/MiniModal/MiniModal.d.ts +6 -0
  158. package/cjs/components/MiniModal/MiniModal.js +6 -0
  159. package/cjs/components/MiniModal/MiniModal.js.map +1 -1
  160. package/cjs/components/MiniModal/MiniModal.md +1 -3
  161. package/cjs/components/MiniModal/MiniModalFooter.d.ts +2 -7
  162. package/cjs/components/MiniModal/MiniModalFooter.js +0 -5
  163. package/cjs/components/MiniModal/MiniModalFooter.js.map +1 -1
  164. package/cjs/components/MiniModal/MiniModalHeader.d.ts +2 -5
  165. package/cjs/components/MiniModal/MiniModalHeader.js +0 -3
  166. package/cjs/components/MiniModal/MiniModalHeader.js.map +1 -1
  167. package/cjs/components/MiniModal/__docs__/MiniModal.mdx +28 -0
  168. package/cjs/components/MiniModal/__docs__/MiniModalBody.mdx +17 -0
  169. package/cjs/components/MiniModal/__docs__/MiniModalFooter.mdx +17 -0
  170. package/cjs/components/MiniModal/__docs__/MiniModalHeader.mdx +18 -0
  171. package/cjs/components/MiniModal/__docs__/MiniModalIndent.mdx +11 -0
  172. package/cjs/components/MiniModal/getMiniModalTheme.d.ts +1 -1
  173. package/cjs/components/Modal/Modal.d.ts +12 -33
  174. package/cjs/components/Modal/Modal.js +4 -24
  175. package/cjs/components/Modal/Modal.js.map +1 -1
  176. package/cjs/components/Modal/Modal.md +3 -1
  177. package/cjs/components/Modal/Modal.styles.d.ts +4 -1
  178. package/cjs/components/Modal/Modal.styles.js +68 -31
  179. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  180. package/cjs/components/Modal/ModalBody.d.ts +2 -4
  181. package/cjs/components/Modal/ModalBody.js +1 -3
  182. package/cjs/components/Modal/ModalBody.js.map +1 -1
  183. package/cjs/components/Modal/ModalClose.js +7 -2
  184. package/cjs/components/Modal/ModalClose.js.map +1 -1
  185. package/cjs/components/Modal/ModalContext.d.ts +2 -0
  186. package/cjs/components/Modal/ModalContext.js +3 -0
  187. package/cjs/components/Modal/ModalContext.js.map +1 -1
  188. package/cjs/components/Modal/ModalFooter.d.ts +5 -15
  189. package/cjs/components/Modal/ModalFooter.js +0 -7
  190. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  191. package/cjs/components/Modal/ModalHeader.d.ts +3 -1
  192. package/cjs/components/Modal/ModalHeader.js +4 -1
  193. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  194. package/cjs/components/Modal/ModalSeparator.d.ts +1 -0
  195. package/cjs/components/Modal/ModalSeparator.js +1 -0
  196. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  197. package/cjs/components/Modal/__creevey__/Modal.creevey.mts +15 -1
  198. package/cjs/components/Modal/__docs__/Modal.mdx +28 -0
  199. package/cjs/components/Modal/__docs__/ModalBody.mdx +15 -0
  200. package/cjs/components/Modal/__docs__/ModalFooter.mdx +15 -0
  201. package/cjs/components/Modal/__docs__/ModalHeader.mdx +15 -0
  202. package/cjs/components/Modal/__docs__/ModalSeparator.mdx +15 -0
  203. package/cjs/components/Modal/locale/types.js +1 -1
  204. package/cjs/components/Paging/Paging.d.ts +20 -15
  205. package/cjs/components/Paging/Paging.js +17 -1
  206. package/cjs/components/Paging/Paging.js.map +1 -1
  207. package/cjs/components/Paging/Paging.md +3 -2
  208. package/cjs/components/Paging/PagingDefaultComponent.d.ts +2 -0
  209. package/cjs/components/Paging/PagingDefaultComponent.js +3 -0
  210. package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
  211. package/cjs/components/Paging/__docs__/Paging.mdx +28 -0
  212. package/cjs/components/Paging/locale/types.js +1 -1
  213. package/cjs/components/PasswordInput/PasswordInput.d.ts +10 -3
  214. package/cjs/components/PasswordInput/PasswordInput.js +35 -9
  215. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  216. package/cjs/components/PasswordInput/PasswordInput.md +3 -2
  217. package/cjs/components/PasswordInput/__docs__/PasswordInput.mdx +28 -0
  218. package/cjs/components/PasswordInput/locale/types.js +1 -1
  219. package/cjs/components/Radio/Radio.d.ts +13 -28
  220. package/cjs/components/Radio/Radio.js +1 -8
  221. package/cjs/components/Radio/Radio.js.map +1 -1
  222. package/cjs/components/Radio/Radio.md +3 -2
  223. package/cjs/components/Radio/__docs__/Radio.mdx +28 -0
  224. package/cjs/components/RadioGroup/RadioGroup.d.ts +28 -54
  225. package/cjs/components/RadioGroup/RadioGroup.js +4 -15
  226. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  227. package/cjs/components/RadioGroup/RadioGroup.md +1 -0
  228. package/cjs/components/RadioGroup/__docs__/RadioGroup.mdx +28 -0
  229. package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -1
  230. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +6 -2
  231. package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  232. package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +4 -3
  233. package/cjs/components/ResponsiveLayout/__docs__/ResponsiveLayout.mdx +97 -0
  234. package/cjs/components/ResponsiveLayout/types.js +1 -1
  235. package/cjs/components/ScrollContainer/ScrollBar.d.ts +7 -0
  236. package/cjs/components/ScrollContainer/ScrollBar.js +13 -0
  237. package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
  238. package/cjs/components/ScrollContainer/ScrollContainer.d.ts +23 -29
  239. package/cjs/components/ScrollContainer/ScrollContainer.js +8 -1
  240. package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
  241. package/cjs/components/ScrollContainer/ScrollContainer.md +5 -3
  242. package/cjs/components/ScrollContainer/__docs__/ScrollContainer.mdx +24 -0
  243. package/cjs/components/Select/Item.d.ts +2 -0
  244. package/cjs/components/Select/Item.js +3 -0
  245. package/cjs/components/Select/Item.js.map +1 -1
  246. package/cjs/components/Select/Select.d.ts +54 -38
  247. package/cjs/components/Select/Select.js +57 -1
  248. package/cjs/components/Select/Select.js.map +1 -1
  249. package/cjs/components/Select/Select.md +7 -6
  250. package/cjs/components/Select/__docs__/Select.mdx +28 -0
  251. package/cjs/components/Select/locale/types.js +1 -1
  252. package/cjs/components/SidePage/SidePage.d.ts +17 -38
  253. package/cjs/components/SidePage/SidePage.js +15 -28
  254. package/cjs/components/SidePage/SidePage.js.map +1 -1
  255. package/cjs/components/SidePage/SidePage.md +2 -1
  256. package/cjs/components/SidePage/SidePage.styles.d.ts +8 -1
  257. package/cjs/components/SidePage/SidePage.styles.js +83 -26
  258. package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
  259. package/cjs/components/SidePage/SidePageCloseButton.d.ts +6 -1
  260. package/cjs/components/SidePage/SidePageCloseButton.js +14 -2
  261. package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
  262. package/cjs/components/SidePage/SidePageFooter.d.ts +4 -9
  263. package/cjs/components/SidePage/SidePageFooter.js +0 -2
  264. package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
  265. package/cjs/components/SidePage/SidePageHeader.d.ts +2 -1
  266. package/cjs/components/SidePage/SidePageHeader.js +14 -7
  267. package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
  268. package/cjs/components/SidePage/__creevey__/SidePage.creevey.mts +103 -1
  269. package/cjs/components/SidePage/__docs__/SidePage.mdx +28 -0
  270. package/cjs/components/SidePage/__docs__/SidePageBody.mdx +15 -0
  271. package/cjs/components/SidePage/__docs__/SidePageContainer.mdx +15 -0
  272. package/cjs/components/SidePage/__docs__/SidePageFooter.mdx +15 -0
  273. package/cjs/components/SidePage/__docs__/SidePageHeader.mdx +15 -0
  274. package/cjs/components/SidePage/locale/types.js +1 -1
  275. package/cjs/components/SingleToast/SingleToast.d.ts +5 -1
  276. package/cjs/components/SingleToast/SingleToast.js +5 -1
  277. package/cjs/components/SingleToast/SingleToast.js.map +1 -1
  278. package/cjs/components/SingleToast/SingleToast.md +2 -1
  279. package/cjs/components/SingleToast/__docs__/SingleToast.mdx +28 -0
  280. package/cjs/components/Spinner/Spinner.d.ts +15 -20
  281. package/cjs/components/Spinner/Spinner.js +6 -7
  282. package/cjs/components/Spinner/Spinner.js.map +1 -1
  283. package/cjs/components/Spinner/Spinner.md +2 -1
  284. package/cjs/components/Spinner/__docs__/Spinner.mdx +28 -0
  285. package/cjs/components/Sticky/Sticky.d.ts +9 -4
  286. package/cjs/components/Sticky/Sticky.js +9 -1
  287. package/cjs/components/Sticky/Sticky.js.map +1 -1
  288. package/cjs/components/Sticky/Sticky.md +1 -0
  289. package/cjs/components/Sticky/__docs__/Sticky.mdx +24 -0
  290. package/cjs/components/Switcher/Switcher.d.ts +18 -7
  291. package/cjs/components/Switcher/Switcher.js +14 -3
  292. package/cjs/components/Switcher/Switcher.js.map +1 -1
  293. package/cjs/components/Switcher/Switcher.md +6 -2
  294. package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
  295. package/cjs/components/Switcher/Switcher.styles.js +20 -1
  296. package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
  297. package/cjs/components/Switcher/__docs__/Switcher.mdx +28 -0
  298. package/cjs/components/Tabs/Tab.d.ts +12 -31
  299. package/cjs/components/Tabs/Tab.js +1 -20
  300. package/cjs/components/Tabs/Tab.js.map +1 -1
  301. package/cjs/components/Tabs/Tab.md +2 -0
  302. package/cjs/components/Tabs/Tabs.d.ts +14 -25
  303. package/cjs/components/Tabs/Tabs.js +6 -17
  304. package/cjs/components/Tabs/Tabs.js.map +1 -1
  305. package/cjs/components/Tabs/Tabs.md +3 -2
  306. package/cjs/components/Tabs/__docs__/Tab.mdx +28 -0
  307. package/cjs/components/Tabs/__docs__/Tabs.mdx +28 -0
  308. package/cjs/components/Textarea/Textarea.d.ts +26 -52
  309. package/cjs/components/Textarea/Textarea.js +3 -23
  310. package/cjs/components/Textarea/Textarea.js.map +1 -1
  311. package/cjs/components/Textarea/Textarea.md +4 -2
  312. package/cjs/components/Textarea/__docs__/Textarea.mdx +28 -0
  313. package/cjs/components/Toast/Toast.d.ts +12 -9
  314. package/cjs/components/Toast/Toast.js +13 -5
  315. package/cjs/components/Toast/Toast.js.map +1 -1
  316. package/cjs/components/Toast/Toast.md +4 -4
  317. package/cjs/components/Toast/ToastStatic.d.ts +2 -2
  318. package/cjs/components/Toast/ToastStatic.js +15 -5
  319. package/cjs/components/Toast/ToastStatic.js.map +1 -1
  320. package/cjs/components/Toast/ToastView.d.ts +3 -6
  321. package/cjs/components/Toast/ToastView.js +3 -5
  322. package/cjs/components/Toast/ToastView.js.map +1 -1
  323. package/cjs/components/Toast/ToastView.styles.js +4 -4
  324. package/cjs/components/Toast/ToastView.styles.js.map +1 -1
  325. package/cjs/components/Toast/__creevey__/Toast.creevey.mts +23 -0
  326. package/cjs/components/Toast/__docs__/Toast.mdx +28 -0
  327. package/cjs/components/Toast/locale/types.js +1 -1
  328. package/cjs/components/Toggle/Toggle.d.ts +25 -48
  329. package/cjs/components/Toggle/Toggle.js +4 -12
  330. package/cjs/components/Toggle/Toggle.js.map +1 -1
  331. package/cjs/components/Toggle/Toggle.md +9 -9
  332. package/cjs/components/Toggle/__docs__/Toggle.mdx +28 -0
  333. package/cjs/components/Token/Token.d.ts +17 -9
  334. package/cjs/components/Token/Token.js +9 -1
  335. package/cjs/components/Token/Token.js.map +1 -1
  336. package/cjs/components/Token/Token.md +86 -3
  337. package/cjs/components/Token/TokenView.d.ts +3 -0
  338. package/cjs/components/Token/TokenView.js +3 -0
  339. package/cjs/components/Token/TokenView.js.map +1 -1
  340. package/cjs/components/Token/__docs__/Token.mdx +28 -0
  341. package/cjs/components/Token/locale/types.js +1 -1
  342. package/cjs/components/TokenInput/TextWidthHelper.d.ts +3 -0
  343. package/cjs/components/TokenInput/TextWidthHelper.js +5 -0
  344. package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
  345. package/cjs/components/TokenInput/TokenInput.d.ts +54 -97
  346. package/cjs/components/TokenInput/TokenInput.js +7 -18
  347. package/cjs/components/TokenInput/TokenInput.js.map +1 -1
  348. package/cjs/components/TokenInput/TokenInput.md +12 -10
  349. package/cjs/components/TokenInput/TokenInputMenu.d.ts +5 -5
  350. package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
  351. package/cjs/components/TokenInput/__docs__/TokenInput.mdx +28 -0
  352. package/cjs/components/TokenInput/locale/types.js +1 -1
  353. package/cjs/components/Tooltip/Tooltip.d.ts +28 -68
  354. package/cjs/components/Tooltip/Tooltip.js +9 -63
  355. package/cjs/components/Tooltip/Tooltip.js.map +1 -1
  356. package/cjs/components/Tooltip/Tooltip.md +5 -0
  357. package/cjs/components/Tooltip/__docs__/Tooltip.mdx +28 -0
  358. package/cjs/components/TooltipMenu/TooltipMenu.d.ts +13 -28
  359. package/cjs/components/TooltipMenu/TooltipMenu.js +1 -16
  360. package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
  361. package/cjs/components/TooltipMenu/TooltipMenu.md +13 -10
  362. package/cjs/components/TooltipMenu/__docs__/TooltipMenu.mdx +24 -0
  363. package/cjs/index.d.ts +1 -2
  364. package/cjs/index.js +1 -2
  365. package/cjs/index.js.map +1 -1
  366. package/cjs/internal/CommonWrapper/types.js +1 -1
  367. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +4 -1
  368. package/cjs/internal/CustomComboBox/CustomComboBox.js +12 -2
  369. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  370. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +1 -0
  371. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +1 -1
  372. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  373. package/cjs/internal/CustomComboBox/CustomComboBoxTypes.js +1 -1
  374. package/cjs/internal/CustomComboBox/CustomComboBoxTypes.js.map +1 -1
  375. package/cjs/internal/CustomComboBox/locale/types.js +1 -1
  376. package/cjs/internal/DateSelect/locale/types.js +1 -1
  377. package/cjs/internal/FileUploaderControl/fileUtils.js +1 -1
  378. package/cjs/internal/FileUploaderControl/fileUtils.js.map +1 -1
  379. package/cjs/internal/InputLikeText/InputLikeText.js +12 -11
  380. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  381. package/cjs/internal/Popup/types.js +1 -1
  382. package/cjs/internal/RenderContainer/RenderContainerTypes.js +1 -1
  383. package/cjs/internal/ThemePlayground/Playground.styles.js +2 -1
  384. package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
  385. package/cjs/internal/ThemePlayground/__creevey__/Theme5_0.creevey.mts +36 -0
  386. package/cjs/internal/ThemePlayground/__creevey__/Theme5_0.stories.d.ts +4 -0
  387. package/cjs/internal/ThemePlayground/constants.js +1 -1
  388. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  389. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  390. package/cjs/internal/ThemeShowcase/VariablesCollector.js +0 -1
  391. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  392. package/cjs/internal/themes/BasicLightTheme.d.ts +5 -1198
  393. package/cjs/internal/themes/BasicLightTheme.js +2 -2512
  394. package/cjs/internal/themes/BasicLightTheme.js.map +1 -1
  395. package/cjs/internal/themes/BasicTheme.d.ts +1217 -0
  396. package/cjs/internal/themes/BasicTheme.js +2536 -0
  397. package/cjs/internal/themes/BasicTheme.js.map +1 -0
  398. package/cjs/internal/themes/DarkTheme5_0.d.ts +1 -0
  399. package/cjs/internal/themes/DarkTheme5_0.js +556 -0
  400. package/cjs/internal/themes/DarkTheme5_0.js.map +1 -0
  401. package/cjs/internal/themes/DarkTheme5_1.d.ts +1 -0
  402. package/cjs/internal/themes/DarkTheme5_1.js +41 -0
  403. package/cjs/internal/themes/DarkTheme5_1.js.map +1 -0
  404. package/cjs/internal/themes/LightTheme5_0.d.ts +1 -0
  405. package/cjs/internal/themes/LightTheme5_0.js +9 -0
  406. package/cjs/internal/themes/LightTheme5_0.js.map +1 -0
  407. package/cjs/internal/themes/LightTheme5_1.d.ts +1 -0
  408. package/cjs/internal/themes/LightTheme5_1.js +41 -0
  409. package/cjs/internal/themes/LightTheme5_1.js.map +1 -0
  410. package/cjs/lib/ModalStack.d.ts +1 -0
  411. package/cjs/lib/ModalStack.js +6 -4
  412. package/cjs/lib/ModalStack.js.map +1 -1
  413. package/cjs/lib/date/types.js +6 -6
  414. package/cjs/lib/date/types.js.map +1 -1
  415. package/cjs/lib/events/MouseDrag.js +1 -1
  416. package/cjs/lib/events/MouseDrag.js.map +1 -1
  417. package/cjs/lib/events/keyboard/KeyboardEventCodes.js +1 -1
  418. package/cjs/lib/events/keyboard/KeyboardEventCodes.js.map +1 -1
  419. package/cjs/lib/locale/types.js +1 -1
  420. package/cjs/lib/locale/types.js.map +1 -1
  421. package/cjs/lib/theming/Theme.d.ts +4 -3
  422. package/cjs/lib/theming/Theme.js +1 -1
  423. package/cjs/lib/theming/Theme.js.map +1 -1
  424. package/cjs/lib/theming/ThemeContext.d.ts +1 -1
  425. package/cjs/lib/theming/ThemeContext.js +2 -2
  426. package/cjs/lib/theming/ThemeContext.js.map +1 -1
  427. package/cjs/lib/theming/ThemeFactory.d.ts +9 -0
  428. package/cjs/lib/theming/ThemeFactory.js +28 -9
  429. package/cjs/lib/theming/ThemeFactory.js.map +1 -1
  430. package/cjs/lib/theming/ThemeHelpers.d.ts +55 -8
  431. package/cjs/lib/theming/ThemeHelpers.js +94 -22
  432. package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
  433. package/cjs/lib/theming/ThemeVersions.d.ts +25 -0
  434. package/cjs/lib/theming/ThemeVersions.js +58 -0
  435. package/cjs/lib/theming/ThemeVersions.js.map +1 -0
  436. package/cjs/lib/theming/themes/DarkTheme.d.ts +3 -1
  437. package/cjs/lib/theming/themes/DarkTheme.js +6 -4
  438. package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
  439. package/cjs/lib/theming/themes/LightTheme.d.ts +3 -1
  440. package/cjs/lib/theming/themes/LightTheme.js +6 -4
  441. package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
  442. package/cjs/lib/theming/themes/LightThemeMobile.d.ts +1 -1
  443. package/cjs/lib/theming/useTheme.d.ts +1 -1
  444. package/cjs/lib/types/button-link.js +1 -1
  445. package/cjs/lib/types/polymorphic-component.js +1 -1
  446. package/cjs/lib/types/props.js +1 -1
  447. package/components/Autocomplete/Autocomplete/Autocomplete.js +3 -2
  448. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  449. package/components/Autocomplete/Autocomplete.d.ts +16 -17
  450. package/components/Autocomplete/Autocomplete.md +9 -7
  451. package/components/Autocomplete/__docs__/Autocomplete.mdx +26 -0
  452. package/components/Autocomplete/locale/types/types.js +0 -1
  453. package/components/Button/Button/Button.js.map +1 -1
  454. package/components/Button/Button.d.ts +20 -62
  455. package/components/Button/Button.md +40 -26
  456. package/components/Button/__docs__/Button.mdx +28 -0
  457. package/components/Calendar/Calendar/Calendar.js +1 -1
  458. package/components/Calendar/Calendar/Calendar.js.map +1 -1
  459. package/components/Calendar/Calendar.d.ts +22 -45
  460. package/components/Calendar/Calendar.md +12 -12
  461. package/components/Calendar/CalendarDay/CalendarDay.js +2 -0
  462. package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
  463. package/components/Calendar/CalendarDay.d.ts +7 -0
  464. package/components/Calendar/CalendarDay.md +32 -32
  465. package/components/Calendar/__docs__/Calendar.mdx +28 -0
  466. package/components/Calendar/__docs__/CalendarDay.mdx +24 -0
  467. package/components/Calendar/locale/types/types.js +0 -1
  468. package/components/Center/Center/Center.js +3 -1
  469. package/components/Center/Center/Center.js.map +1 -1
  470. package/components/Center/Center.d.ts +4 -6
  471. package/components/Center/Center.md +1 -1
  472. package/components/Center/__docs__/Center.mdx +24 -0
  473. package/components/Checkbox/Checkbox/Checkbox.js +7 -0
  474. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  475. package/components/Checkbox/Checkbox.d.ts +20 -28
  476. package/components/Checkbox/Checkbox.md +6 -5
  477. package/components/Checkbox/__docs__/Checkbox.mdx +28 -0
  478. package/components/ComboBox/ComboBox/ComboBox.js +13 -2
  479. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  480. package/components/ComboBox/ComboBox.d.ts +67 -86
  481. package/components/ComboBox/ComboBox.md +41 -40
  482. package/components/ComboBox/__docs__/ComboBox.mdx +28 -0
  483. package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
  484. package/components/CurrencyInput/CurrencyHelper.d.ts +4 -0
  485. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +5 -2
  486. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  487. package/components/CurrencyInput/CurrencyInput.d.ts +12 -12
  488. package/components/CurrencyInput/CurrencyInput.md +3 -1
  489. package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
  490. package/components/CurrencyInput/CurrencyInputHelper.d.ts +3 -0
  491. package/components/CurrencyInput/__docs__/CurrencyInput.mdx +28 -0
  492. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +4 -0
  493. package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
  494. package/components/CurrencyLabel/CurrencyLabel.d.ts +8 -5
  495. package/components/CurrencyLabel/CurrencyLabel.md +5 -5
  496. package/components/CurrencyLabel/__docs__/CurrencyLabel.mdx +24 -0
  497. package/components/DateInput/DateInput/DateInput.js +8 -1
  498. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  499. package/components/DateInput/DateInput.d.ts +21 -29
  500. package/components/DateInput/DateInput.md +7 -2
  501. package/components/DateInput/__docs__/DateInput.mdx +26 -0
  502. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +3 -3
  503. package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
  504. package/components/DatePicker/DatePicker/DatePicker.js +33 -5
  505. package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
  506. package/components/DatePicker/DatePicker.d.ts +33 -23
  507. package/components/DatePicker/DatePicker.md +2 -2
  508. package/components/DatePicker/__docs__/DatePicker.mdx +28 -0
  509. package/components/DatePicker/locale/types/types.js +0 -1
  510. package/components/Dropdown/Dropdown/Dropdown.js +7 -1
  511. package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
  512. package/components/Dropdown/Dropdown.d.ts +25 -30
  513. package/components/Dropdown/Dropdown.md +2 -1
  514. package/components/Dropdown/__docs__/Dropdown.mdx +28 -0
  515. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
  516. package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
  517. package/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  518. package/components/DropdownMenu/DropdownMenu.md +12 -10
  519. package/components/DropdownMenu/__docs__/DropdownMenu.mdx +28 -0
  520. package/components/FileUploader/FileUploader/FileUploader.js +6 -0
  521. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  522. package/components/FileUploader/FileUploader.d.ts +16 -20
  523. package/components/FileUploader/FileUploader.md +9 -9
  524. package/components/FileUploader/__docs__/FileUploader.mdx +28 -0
  525. package/components/FileUploader/locale/types/types.js +0 -1
  526. package/components/FxInput/FxInput/FxInput.js +7 -1
  527. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  528. package/components/FxInput/FxInput.d.ts +15 -9
  529. package/components/FxInput/FxInput.md +2 -0
  530. package/components/FxInput/__docs__/FxInput.mdx +28 -0
  531. package/components/Gapped/Gapped/Gapped.js +1 -1
  532. package/components/Gapped/Gapped/Gapped.js.map +1 -1
  533. package/components/Gapped/Gapped.d.ts +6 -17
  534. package/components/Gapped/Gapped.md +3 -2
  535. package/components/Gapped/__docs__/Gapped.mdx +24 -0
  536. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +13 -0
  537. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  538. package/components/GlobalLoader/GlobalLoader.d.ts +22 -32
  539. package/components/GlobalLoader/GlobalLoader.md +4 -5
  540. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  541. package/components/GlobalLoader/GlobalLoaderView.d.ts +4 -0
  542. package/components/GlobalLoader/__docs__/GlobalLoader.mdx +28 -0
  543. package/components/Group/Group/Group.js +6 -0
  544. package/components/Group/Group/Group.js.map +1 -1
  545. package/components/Group/Group.d.ts +6 -0
  546. package/components/Group/Group.md +1 -0
  547. package/components/Group/__docs__/Group.mdx +24 -0
  548. package/components/Hint/Hint/Hint.js +4 -1
  549. package/components/Hint/Hint/Hint.js.map +1 -1
  550. package/components/Hint/Hint.d.ts +18 -40
  551. package/components/Hint/Hint.md +9 -8
  552. package/components/Hint/__docs__/Hint.mdx +29 -0
  553. package/components/Input/Input/Input.js +10 -1
  554. package/components/Input/Input/Input.js.map +1 -1
  555. package/components/Input/Input.d.ts +46 -68
  556. package/components/Input/Input.md +11 -2
  557. package/components/Input/Input.typings/Input.typings.js +0 -1
  558. package/components/Input/__docs__/Input.mdx +28 -0
  559. package/components/Kebab/Kebab/Kebab.js +4 -0
  560. package/components/Kebab/Kebab/Kebab.js.map +1 -1
  561. package/components/Kebab/Kebab.d.ts +12 -16
  562. package/components/Kebab/Kebab.md +9 -9
  563. package/components/Kebab/__docs__/Kebab.mdx +28 -0
  564. package/components/Link/Link/Link.js.map +1 -1
  565. package/components/Link/Link.d.ts +13 -37
  566. package/components/Link/Link.md +12 -11
  567. package/components/Link/__docs__/Link.mdx +28 -0
  568. package/components/Loader/Loader/Loader.js +2 -2
  569. package/components/Loader/Loader/Loader.js.map +1 -1
  570. package/components/Loader/Loader.d.ts +13 -25
  571. package/components/Loader/Loader.md +1 -0
  572. package/components/Loader/__docs__/Loader.mdx +26 -0
  573. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  574. package/components/MaskedInput/MaskedInput.d.ts +13 -33
  575. package/components/MaskedInput/MaskedInput.md +7 -5
  576. package/components/MaskedInput/__docs__/MaskedInput.mdx +28 -0
  577. package/components/MenuFooter/MenuFooter/MenuFooter.js +3 -3
  578. package/components/MenuFooter/MenuFooter/MenuFooter.js.map +1 -1
  579. package/components/MenuFooter/MenuFooter.d.ts +6 -4
  580. package/components/MenuFooter/MenuFooter.md +2 -2
  581. package/components/MenuFooter/__docs__/MenuFooter.mdx +24 -0
  582. package/components/MenuHeader/MenuHeader/MenuHeader.js +3 -3
  583. package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
  584. package/components/MenuHeader/MenuHeader.d.ts +6 -4
  585. package/components/MenuHeader/MenuHeader.md +2 -2
  586. package/components/MenuHeader/__docs__/MenuHeader.mdx +24 -0
  587. package/components/MenuItem/MenuItem/MenuItem.js +1 -2
  588. package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
  589. package/components/MenuItem/MenuItem.d.ts +22 -55
  590. package/components/MenuItem/MenuItem.md +34 -30
  591. package/components/MenuItem/__docs__/MenuItem.mdx +24 -0
  592. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +3 -2
  593. package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
  594. package/components/MenuSeparator/MenuSeparator.d.ts +2 -2
  595. package/components/MenuSeparator/MenuSeparator.md +1 -1
  596. package/components/MenuSeparator/__docs__/MenuSeparator.mdx +24 -0
  597. package/components/MiniModal/MiniModal/MiniModal.js +7 -0
  598. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
  599. package/components/MiniModal/MiniModal.d.ts +6 -0
  600. package/components/MiniModal/MiniModal.md +1 -3
  601. package/components/MiniModal/MiniModalFooter/MiniModalFooter.js.map +1 -1
  602. package/components/MiniModal/MiniModalFooter.d.ts +2 -7
  603. package/components/MiniModal/MiniModalHeader/MiniModalHeader.js.map +1 -1
  604. package/components/MiniModal/MiniModalHeader.d.ts +2 -5
  605. package/components/MiniModal/__docs__/MiniModal.mdx +28 -0
  606. package/components/MiniModal/__docs__/MiniModalBody.mdx +17 -0
  607. package/components/MiniModal/__docs__/MiniModalFooter.mdx +17 -0
  608. package/components/MiniModal/__docs__/MiniModalHeader.mdx +18 -0
  609. package/components/MiniModal/__docs__/MiniModalIndent.mdx +11 -0
  610. package/components/MiniModal/getMiniModalTheme.d.ts +1 -1
  611. package/components/Modal/Modal/Modal.js +4 -9
  612. package/components/Modal/Modal/Modal.js.map +1 -1
  613. package/components/Modal/Modal.d.ts +12 -33
  614. package/components/Modal/Modal.md +3 -1
  615. package/components/Modal/Modal.styles/Modal.styles.js +40 -31
  616. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  617. package/components/Modal/Modal.styles.d.ts +4 -1
  618. package/components/Modal/ModalBody/ModalBody.js +1 -1
  619. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  620. package/components/Modal/ModalBody.d.ts +2 -4
  621. package/components/Modal/ModalClose/ModalClose.js +3 -1
  622. package/components/Modal/ModalClose/ModalClose.js.map +1 -1
  623. package/components/Modal/ModalContext/ModalContext.js.map +1 -1
  624. package/components/Modal/ModalContext.d.ts +2 -0
  625. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  626. package/components/Modal/ModalFooter.d.ts +5 -15
  627. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  628. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  629. package/components/Modal/ModalHeader.d.ts +3 -1
  630. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  631. package/components/Modal/ModalSeparator.d.ts +1 -0
  632. package/components/Modal/__creevey__/Modal.creevey.mts +15 -1
  633. package/components/Modal/__docs__/Modal.mdx +28 -0
  634. package/components/Modal/__docs__/ModalBody.mdx +15 -0
  635. package/components/Modal/__docs__/ModalFooter.mdx +15 -0
  636. package/components/Modal/__docs__/ModalHeader.mdx +15 -0
  637. package/components/Modal/__docs__/ModalSeparator.mdx +15 -0
  638. package/components/Modal/locale/types/types.js +0 -1
  639. package/components/Paging/Paging/Paging.js +4 -0
  640. package/components/Paging/Paging/Paging.js.map +1 -1
  641. package/components/Paging/Paging.d.ts +20 -15
  642. package/components/Paging/Paging.md +3 -2
  643. package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
  644. package/components/Paging/PagingDefaultComponent.d.ts +2 -0
  645. package/components/Paging/__docs__/Paging.mdx +28 -0
  646. package/components/Paging/locale/types/types.js +0 -1
  647. package/components/PasswordInput/PasswordInput/PasswordInput.js +32 -10
  648. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  649. package/components/PasswordInput/PasswordInput.d.ts +10 -3
  650. package/components/PasswordInput/PasswordInput.md +3 -2
  651. package/components/PasswordInput/__docs__/PasswordInput.mdx +28 -0
  652. package/components/PasswordInput/locale/types/types.js +0 -1
  653. package/components/Radio/Radio/Radio.js +1 -1
  654. package/components/Radio/Radio/Radio.js.map +1 -1
  655. package/components/Radio/Radio.d.ts +13 -28
  656. package/components/Radio/Radio.md +3 -2
  657. package/components/Radio/__docs__/Radio.mdx +28 -0
  658. package/components/RadioGroup/RadioGroup/RadioGroup.js +4 -5
  659. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  660. package/components/RadioGroup/RadioGroup.d.ts +28 -54
  661. package/components/RadioGroup/RadioGroup.md +1 -0
  662. package/components/RadioGroup/__docs__/RadioGroup.mdx +28 -0
  663. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +1 -2
  664. package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
  665. package/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -1
  666. package/components/ResponsiveLayout/ResponsiveLayout.md +4 -3
  667. package/components/ResponsiveLayout/__docs__/ResponsiveLayout.mdx +97 -0
  668. package/components/ResponsiveLayout/types/types.js +0 -1
  669. package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
  670. package/components/ScrollContainer/ScrollBar.d.ts +7 -0
  671. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +4 -0
  672. package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
  673. package/components/ScrollContainer/ScrollContainer.d.ts +23 -29
  674. package/components/ScrollContainer/ScrollContainer.md +5 -3
  675. package/components/ScrollContainer/__docs__/ScrollContainer.mdx +24 -0
  676. package/components/Select/Item/Item.js.map +1 -1
  677. package/components/Select/Item.d.ts +2 -0
  678. package/components/Select/Select/Select.js +11 -0
  679. package/components/Select/Select/Select.js.map +1 -1
  680. package/components/Select/Select.d.ts +54 -38
  681. package/components/Select/Select.md +7 -6
  682. package/components/Select/__docs__/Select.mdx +28 -0
  683. package/components/Select/locale/types/types.js +0 -1
  684. package/components/SidePage/SidePage/SidePage.js +28 -16
  685. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  686. package/components/SidePage/SidePage.d.ts +17 -38
  687. package/components/SidePage/SidePage.md +2 -1
  688. package/components/SidePage/SidePage.styles/SidePage.styles.js +48 -26
  689. package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
  690. package/components/SidePage/SidePage.styles.d.ts +8 -1
  691. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +6 -2
  692. package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
  693. package/components/SidePage/SidePageCloseButton.d.ts +6 -1
  694. package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
  695. package/components/SidePage/SidePageFooter.d.ts +4 -9
  696. package/components/SidePage/SidePageHeader/SidePageHeader.js +13 -5
  697. package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
  698. package/components/SidePage/SidePageHeader.d.ts +2 -1
  699. package/components/SidePage/__creevey__/SidePage.creevey.mts +103 -1
  700. package/components/SidePage/__docs__/SidePage.mdx +28 -0
  701. package/components/SidePage/__docs__/SidePageBody.mdx +15 -0
  702. package/components/SidePage/__docs__/SidePageContainer.mdx +15 -0
  703. package/components/SidePage/__docs__/SidePageFooter.mdx +15 -0
  704. package/components/SidePage/__docs__/SidePageHeader.mdx +15 -0
  705. package/components/SidePage/locale/types/types.js +0 -1
  706. package/components/SingleToast/SingleToast/SingleToast.js +5 -1
  707. package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
  708. package/components/SingleToast/SingleToast.d.ts +5 -1
  709. package/components/SingleToast/SingleToast.md +2 -1
  710. package/components/SingleToast/__docs__/SingleToast.mdx +28 -0
  711. package/components/Spinner/Spinner/Spinner.js +6 -2
  712. package/components/Spinner/Spinner/Spinner.js.map +1 -1
  713. package/components/Spinner/Spinner.d.ts +15 -20
  714. package/components/Spinner/Spinner.md +2 -1
  715. package/components/Spinner/__docs__/Spinner.mdx +28 -0
  716. package/components/Sticky/Sticky/Sticky.js +5 -0
  717. package/components/Sticky/Sticky/Sticky.js.map +1 -1
  718. package/components/Sticky/Sticky.d.ts +9 -4
  719. package/components/Sticky/Sticky.md +1 -0
  720. package/components/Sticky/__docs__/Sticky.mdx +24 -0
  721. package/components/Switcher/Switcher/Switcher.js +16 -6
  722. package/components/Switcher/Switcher/Switcher.js.map +1 -1
  723. package/components/Switcher/Switcher.d.ts +18 -7
  724. package/components/Switcher/Switcher.md +6 -2
  725. package/components/Switcher/Switcher.styles/Switcher.styles.js +4 -1
  726. package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
  727. package/components/Switcher/Switcher.styles.d.ts +1 -0
  728. package/components/Switcher/__docs__/Switcher.mdx +28 -0
  729. package/components/Tabs/Tab/Tab.js +1 -1
  730. package/components/Tabs/Tab/Tab.js.map +1 -1
  731. package/components/Tabs/Tab.d.ts +12 -31
  732. package/components/Tabs/Tab.md +2 -0
  733. package/components/Tabs/Tabs/Tabs.js +6 -1
  734. package/components/Tabs/Tabs/Tabs.js.map +1 -1
  735. package/components/Tabs/Tabs.d.ts +14 -25
  736. package/components/Tabs/Tabs.md +3 -2
  737. package/components/Tabs/__docs__/Tab.mdx +28 -0
  738. package/components/Tabs/__docs__/Tabs.mdx +28 -0
  739. package/components/Textarea/Textarea/Textarea.js +3 -4
  740. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  741. package/components/Textarea/Textarea.d.ts +26 -52
  742. package/components/Textarea/Textarea.md +4 -2
  743. package/components/Textarea/__docs__/Textarea.mdx +28 -0
  744. package/components/Toast/Toast/Toast.js +17 -12
  745. package/components/Toast/Toast/Toast.js.map +1 -1
  746. package/components/Toast/Toast.d.ts +12 -9
  747. package/components/Toast/Toast.md +4 -4
  748. package/components/Toast/ToastStatic/ToastStatic.js +5 -5
  749. package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
  750. package/components/Toast/ToastStatic.d.ts +2 -2
  751. package/components/Toast/ToastView/ToastView.js +2 -1
  752. package/components/Toast/ToastView/ToastView.js.map +1 -1
  753. package/components/Toast/ToastView.d.ts +3 -6
  754. package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
  755. package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
  756. package/components/Toast/__creevey__/Toast.creevey.mts +23 -0
  757. package/components/Toast/__docs__/Toast.mdx +28 -0
  758. package/components/Toast/locale/types/types.js +0 -1
  759. package/components/Toggle/Toggle/Toggle.js +4 -1
  760. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  761. package/components/Toggle/Toggle.d.ts +25 -48
  762. package/components/Toggle/Toggle.md +9 -9
  763. package/components/Toggle/__docs__/Toggle.mdx +28 -0
  764. package/components/Token/Token/Token.js +6 -0
  765. package/components/Token/Token/Token.js.map +1 -1
  766. package/components/Token/Token.d.ts +17 -9
  767. package/components/Token/Token.md +86 -3
  768. package/components/Token/TokenView/TokenView.js.map +1 -1
  769. package/components/Token/TokenView.d.ts +3 -0
  770. package/components/Token/__docs__/Token.mdx +28 -0
  771. package/components/Token/locale/types/types.js +0 -1
  772. package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
  773. package/components/TokenInput/TextWidthHelper.d.ts +3 -0
  774. package/components/TokenInput/TokenInput/TokenInput.js +9 -3
  775. package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
  776. package/components/TokenInput/TokenInput.d.ts +54 -97
  777. package/components/TokenInput/TokenInput.md +12 -10
  778. package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
  779. package/components/TokenInput/TokenInputMenu.d.ts +5 -5
  780. package/components/TokenInput/__docs__/TokenInput.mdx +28 -0
  781. package/components/TokenInput/locale/types/types.js +0 -1
  782. package/components/Tooltip/Tooltip/Tooltip.js +9 -0
  783. package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
  784. package/components/Tooltip/Tooltip.d.ts +28 -68
  785. package/components/Tooltip/Tooltip.md +5 -0
  786. package/components/Tooltip/__docs__/Tooltip.mdx +28 -0
  787. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +1 -1
  788. package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
  789. package/components/TooltipMenu/TooltipMenu.d.ts +13 -28
  790. package/components/TooltipMenu/TooltipMenu.md +13 -10
  791. package/components/TooltipMenu/__docs__/TooltipMenu.mdx +24 -0
  792. package/index.d.ts +1 -2
  793. package/index.js +1 -2
  794. package/index.js.map +1 -1
  795. package/internal/CommonWrapper/index/index.js +1 -2
  796. package/internal/CommonWrapper/index/index.js.map +1 -1
  797. package/internal/CommonWrapper/types/types.js +0 -1
  798. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +10 -2
  799. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  800. package/internal/CustomComboBox/CustomComboBox.d.ts +4 -1
  801. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +1 -1
  802. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  803. package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +1 -0
  804. package/internal/CustomComboBox/CustomComboBoxTypes/CustomComboBoxTypes.js +3 -3
  805. package/internal/CustomComboBox/CustomComboBoxTypes/CustomComboBoxTypes.js.map +1 -1
  806. package/internal/CustomComboBox/locale/types/types.js +0 -1
  807. package/internal/DateSelect/locale/types/types.js +0 -1
  808. package/internal/FileUploaderControl/fileUtils/fileUtils.js +3 -3
  809. package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +1 -1
  810. package/internal/InputLikeText/InputLikeText/InputLikeText.js +12 -6
  811. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  812. package/internal/Popup/types/types.js +0 -1
  813. package/internal/RenderContainer/RenderContainerTypes/RenderContainerTypes.js +0 -1
  814. package/internal/ThemePlayground/Playground.styles/Playground.styles.js +1 -1
  815. package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
  816. package/internal/ThemePlayground/__creevey__/Theme5_0.creevey.d.mts +1 -0
  817. package/internal/ThemePlayground/__creevey__/Theme5_0.creevey.mts +36 -0
  818. package/internal/ThemePlayground/__creevey__/Theme5_0.stories.d.ts +4 -0
  819. package/internal/ThemePlayground/constants/constants.js +3 -3
  820. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  821. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  822. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  823. package/internal/ZIndex/index/index.js +1 -2
  824. package/internal/ZIndex/index/index.js.map +1 -1
  825. package/internal/themes/BasicLightTheme/BasicLightTheme.js +5 -3338
  826. package/internal/themes/BasicLightTheme/BasicLightTheme.js.map +1 -1
  827. package/internal/themes/BasicLightTheme.d.ts +5 -1198
  828. package/internal/themes/BasicTheme/BasicTheme.js +3360 -0
  829. package/internal/themes/BasicTheme/BasicTheme.js.map +1 -0
  830. package/internal/themes/BasicTheme/package.json +6 -0
  831. package/internal/themes/BasicTheme.d.ts +1217 -0
  832. package/internal/themes/DarkTheme5_0/DarkTheme5_0.js +409 -0
  833. package/internal/themes/DarkTheme5_0/DarkTheme5_0.js.map +1 -0
  834. package/internal/themes/DarkTheme5_0/package.json +6 -0
  835. package/internal/themes/DarkTheme5_0.d.ts +1 -0
  836. package/internal/themes/DarkTheme5_1/DarkTheme5_1.js +52 -0
  837. package/internal/themes/DarkTheme5_1/DarkTheme5_1.js.map +1 -0
  838. package/internal/themes/DarkTheme5_1/package.json +6 -0
  839. package/internal/themes/DarkTheme5_1.d.ts +1 -0
  840. package/internal/themes/LightTheme5_0/LightTheme5_0.js +14 -0
  841. package/internal/themes/LightTheme5_0/LightTheme5_0.js.map +1 -0
  842. package/internal/themes/LightTheme5_0/package.json +6 -0
  843. package/internal/themes/LightTheme5_0.d.ts +1 -0
  844. package/internal/themes/LightTheme5_1/LightTheme5_1.js +52 -0
  845. package/internal/themes/LightTheme5_1/LightTheme5_1.js.map +1 -0
  846. package/internal/themes/LightTheme5_1/package.json +6 -0
  847. package/internal/themes/LightTheme5_1.d.ts +1 -0
  848. package/lib/ModalStack/ModalStack.js +8 -8
  849. package/lib/ModalStack/ModalStack.js.map +1 -1
  850. package/lib/ModalStack.d.ts +1 -0
  851. package/lib/date/types/types.js +18 -18
  852. package/lib/date/types/types.js.map +1 -1
  853. package/lib/events/MouseDrag/MouseDrag.js +3 -3
  854. package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
  855. package/lib/events/keyboard/KeyboardEventCodes/KeyboardEventCodes.js +3 -3
  856. package/lib/events/keyboard/KeyboardEventCodes/KeyboardEventCodes.js.map +1 -1
  857. package/lib/locale/types/types.js +3 -3
  858. package/lib/locale/types/types.js.map +1 -1
  859. package/lib/theming/Theme/Theme.js +2 -1
  860. package/lib/theming/Theme/Theme.js.map +1 -1
  861. package/lib/theming/Theme.d.ts +4 -3
  862. package/lib/theming/ThemeContext/ThemeContext.js +2 -2
  863. package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
  864. package/lib/theming/ThemeContext.d.ts +1 -1
  865. package/lib/theming/ThemeFactory/ThemeFactory.js +21 -7
  866. package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
  867. package/lib/theming/ThemeFactory.d.ts +9 -0
  868. package/lib/theming/ThemeHelpers/ThemeHelpers.js +85 -18
  869. package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
  870. package/lib/theming/ThemeHelpers.d.ts +55 -8
  871. package/lib/theming/ThemeVersions/ThemeVersions.js +50 -0
  872. package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -0
  873. package/lib/theming/ThemeVersions/package.json +6 -0
  874. package/lib/theming/ThemeVersions.d.ts +25 -0
  875. package/lib/theming/themes/DarkTheme/DarkTheme.js +5 -4
  876. package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
  877. package/lib/theming/themes/DarkTheme.d.ts +3 -1
  878. package/lib/theming/themes/LightTheme/LightTheme.js +5 -4
  879. package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
  880. package/lib/theming/themes/LightTheme.d.ts +3 -1
  881. package/lib/theming/themes/LightThemeMobile.d.ts +1 -1
  882. package/lib/theming/useTheme.d.ts +1 -1
  883. package/lib/types/button-link/button-link.js +0 -1
  884. package/lib/types/polymorphic-component/polymorphic-component.js +0 -1
  885. package/lib/types/props/props.js +0 -1
  886. package/package.json +9 -5
  887. package/cjs/internal/themes/BasicDarkTheme.d.ts +0 -289
  888. package/cjs/internal/themes/BasicDarkTheme.js +0 -597
  889. package/cjs/internal/themes/BasicDarkTheme.js.map +0 -1
  890. package/cjs/lib/theming/themes/DarkTheme2022_0.d.ts +0 -1
  891. package/cjs/lib/theming/themes/DarkTheme2022_0.js +0 -5
  892. package/cjs/lib/theming/themes/DarkTheme2022_0.js.map +0 -1
  893. package/cjs/lib/theming/themes/LightTheme2022_0.d.ts +0 -1
  894. package/cjs/lib/theming/themes/LightTheme2022_0.js +0 -5
  895. package/cjs/lib/theming/themes/LightTheme2022_0.js.map +0 -1
  896. package/internal/themes/BasicDarkTheme/BasicDarkTheme.js +0 -641
  897. package/internal/themes/BasicDarkTheme/BasicDarkTheme.js.map +0 -1
  898. package/internal/themes/BasicDarkTheme/package.json +0 -6
  899. package/internal/themes/BasicDarkTheme.d.ts +0 -289
  900. package/lib/theming/themes/DarkTheme2022_0/DarkTheme2022_0.js +0 -3
  901. package/lib/theming/themes/DarkTheme2022_0/DarkTheme2022_0.js.map +0 -1
  902. package/lib/theming/themes/DarkTheme2022_0/package.json +0 -6
  903. package/lib/theming/themes/DarkTheme2022_0.d.ts +0 -1
  904. package/lib/theming/themes/LightTheme2022_0/LightTheme2022_0.js +0 -3
  905. package/lib/theming/themes/LightTheme2022_0/LightTheme2022_0.js.map +0 -1
  906. package/lib/theming/themes/LightTheme2022_0/package.json +0 -6
  907. package/lib/theming/themes/LightTheme2022_0.d.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","PropTypes","debounce","globalObject","isBrowser","LayoutEvents","Spinner","ThemeContext","ZIndex","CommonWrapper","cx","isTestEnv","TaskWithDelayAndMinimalDuration","getTabbableElements","rootNode","getDOMRect","createPropsGetter","styles","types","LoaderDataTids","veil","spinner","Loader","_class","_Loader","_React$Component","props","_this","call","getProps","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","_getDOMRect","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","_globalObject$documen","_globalObject$documen2","makeUnobservable","Array","from","document","querySelectorAll","_el$getAttribute","getAttribute","removeAttribute","target","MutationObserver","config","childList","subtree","observer","observe","_this$childrenObserve","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","_inheritsLoose","_proto","prototype","componentDidMount","active","start","layoutEvents","addListener","componentDidUpdate","prevProps","prevState","component","_this$getProps","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","_this2","createElement","Consumer","theme","renderMain","_cx","_this$props","caption","type","_extends","rootNodeRef","setRootNode","className","loader","applyZIndex","coverChildren","style","wrapperRef","children","renderSpinner","_cx2","_this3","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","ref","undefined","Component","__KONTUR_REACT_UI__","displayName","propTypes","bool","node","string","oneOf","number"],"sources":["Loader.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Флаг переключения состояния лоадера\n * @default false\n */\n active?: boolean;\n /**\n * Подпись под спиннером\n */\n caption?: SpinnerProps['caption'];\n /**\n * Компонент заменяющий спиннер.\n */\n component?: React.ReactNode;\n /**\n * Размер спиннера и текста\n *\n * @default normal\n */\n type?: LoaderType;\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow?: number;\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер\n *\n * Если вам нужен только сам спиннер без дополнительнго функционала - используйте компонент [Spinner](https://tech.skbkontur.ru/react-ui/#/Components/Spinner)\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n */\n type: PropTypes.oneOf(types),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = globalObject.innerHeight;\n const windowWidth = globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(globalObject.document?.querySelectorAll('[origin-tabindex]') ?? []).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","PropTypes","debounce","globalObject","isBrowser","LayoutEvents","Spinner","ThemeContext","ZIndex","CommonWrapper","cx","isTestEnv","TaskWithDelayAndMinimalDuration","getTabbableElements","rootNode","getDOMRect","createPropsGetter","styles","types","LoaderDataTids","veil","spinner","Loader","_class","_Loader","_React$Component","props","_this","call","getProps","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","_getDOMRect","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","_globalObject$documen","_globalObject$documen2","makeUnobservable","Array","from","document","querySelectorAll","_el$getAttribute","getAttribute","removeAttribute","target","MutationObserver","config","childList","subtree","observer","observe","_this$childrenObserve","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","_inheritsLoose","_proto","prototype","componentDidMount","active","start","layoutEvents","addListener","componentDidUpdate","prevProps","prevState","component","_this$getProps","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","_this2","createElement","Consumer","theme","renderMain","_cx","_this$props","caption","type","_extends","rootNodeRef","setRootNode","className","loader","applyZIndex","coverChildren","style","wrapperRef","children","renderSpinner","_cx2","_this3","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","ref","undefined","Component","__KONTUR_REACT_UI__","displayName","propTypes","bool","node","string","oneOf","number"],"sources":["Loader.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Spinner, SpinnerProps } from '../Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает состояние лоадера.\n * @default false */\n active?: boolean;\n\n /** Задает подпись под спиннером. */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: LoaderType;\n\n /** Устанавливает время в миллисекундах для показа вуали без спиннера.\n * @default 30.0 */\n delayBeforeSpinnerShow?: number;\n\n /** Устанавливает минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер.\n *\n * Если вам нужен только сам спиннер без дополнительного функционала - используйте компонент Spinner.\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n */\n type: PropTypes.oneOf(types),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = globalObject.innerHeight;\n const windowWidth = globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(globalObject.document?.querySelectorAll('[origin-tabindex]') ?? []).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,35 +6,23 @@ import { CommonProps } from '../../internal/CommonWrapper';
6
6
  declare const types: readonly ["mini", "normal", "big"];
7
7
  export type LoaderType = (typeof types)[number];
8
8
  export interface LoaderProps extends CommonProps {
9
+ /** @ignore */
9
10
  children?: React.ReactNode;
10
- /**
11
- * Флаг переключения состояния лоадера
12
- * @default false
13
- */
11
+ /** Задает состояние лоадера.
12
+ * @default false */
14
13
  active?: boolean;
15
- /**
16
- * Подпись под спиннером
17
- */
14
+ /** Задает подпись под спиннером. */
18
15
  caption?: SpinnerProps['caption'];
19
- /**
20
- * Компонент заменяющий спиннер.
21
- */
16
+ /** Задает компонент, заменяющий спиннер. */
22
17
  component?: React.ReactNode;
23
- /**
24
- * Размер спиннера и текста
25
- *
26
- * @default normal
27
- */
18
+ /** Задает размер спиннера и текста.
19
+ * @default normal. */
28
20
  type?: LoaderType;
29
- /**
30
- * Время в миллисекундах для показа вуали без спиннера.
31
- * @default 300
32
- */
21
+ /** Устанавливает время в миллисекундах для показа вуали без спиннера.
22
+ * @default 30.0 */
33
23
  delayBeforeSpinnerShow?: number;
34
- /**
35
- * Минимальное время в миллисекундах для показа спиннера
36
- * @default 1000
37
- */
24
+ /** Устанавливает минимальное время в миллисекундах для показа спиннера.
25
+ * @default 1000. */
38
26
  minimalDelayBeforeSpinnerHide?: number;
39
27
  }
40
28
  export interface LoaderState {
@@ -49,9 +37,9 @@ export declare const LoaderDataTids: {
49
37
  };
50
38
  type DefaultProps = Required<Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>>;
51
39
  /**
52
- * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер
40
+ * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер.
53
41
  *
54
- * Если вам нужен только сам спиннер без дополнительнго функционала - используйте компонент [Spinner](https://tech.skbkontur.ru/react-ui/#/Components/Spinner)
42
+ * Если вам нужен только сам спиннер без дополнительного функционала - используйте компонент Spinner.
55
43
  */
56
44
  export declare class Loader extends React.Component<LoaderProps, LoaderState> {
57
45
  static __KONTUR_REACT_UI__: string;
@@ -1,3 +1,4 @@
1
+ ### Базовый пример
1
2
  ```jsx harmony
2
3
  import { Button } from '@skbkontur/react-ui';
3
4
 
@@ -0,0 +1,26 @@
1
+ import * as LoaderStories from './Loader.docs.stories.tsx';
2
+ import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
+ import { Meta } from '../../../.storybook/Meta';
4
+
5
+ <Meta of={LoaderStories} />
6
+
7
+ # Loader
8
+
9
+ [Компонент в Контур.Гайдах](https://guides.kontur.ru/components/progress-indicators/spinner/)
10
+
11
+ <Description />
12
+
13
+ ## Базовый пример
14
+
15
+ <Primary />
16
+
17
+ ## Пропы
18
+
19
+ <details>
20
+ <summary>Открыть таблицу с пропами</summary>
21
+ <ArgTypes />
22
+ </details>
23
+
24
+ ## Примеры использования
25
+
26
+ <Stories title="" includePrimary={false} />
@@ -1 +1 @@
1
- {"version":3,"names":["React","useImperativeHandle","useRef","useState","useEffect","forwardRefAndName","cx","uiFontGlobalClasses","Input","isKeyBackspace","isKeyDelete","globalClasses","getDefinitions","getMaskChar","ColorableInputElement","FixedIMaskInput","MaskedInput","props","ref","mask","maskChar","formatChars","_props$alwaysShowMask","alwaysShowMask","_props$colored","colored","_props$imaskProps","imaskProps","customIMaskProps","_props$unmask","unmask","onValueChange","onUnexpectedInput","onChange","element","className","inputProps","_objectWithoutPropertiesLoose","_excluded","inputRef","_useState","focused","setFocused","prevValue","value","String","defaultValue","prevSelectionStart","current","Object","assign","selectAll","_inputRef$current","_inputRef$current2","focus","delaySelectAll","_inputRef$current3","input","selectionStart","getCompatibleIMaskProps","createElement","_extends","onFocus","handleFocus","onBlur","handleBlur","onInput","handleInput","onKeyDown","handleKeyDown","root","showOnFocus","onAccept","handleAccept","replace","placeholderChar","definitions","eager","overwrite","lazy","disabled","_len","arguments","length","args","Array","_key","e","_e$currentTarget","currentTarget","handleUnexpectedInput","_inputRef$current4","selectAllOnFocus","_inputRef$current5","blink","bind","undefined","_e$currentTarget2","selectionEnd"],"sources":["MaskedInput.tsx"],"sourcesContent":["import React, { Ref, useImperativeHandle, useRef, useState, useEffect } from 'react';\nimport { IMaskInputProps } from 'react-imask';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { cx } from '../../lib/theming/Emotion';\nimport { uiFontGlobalClasses } from '../../lib/styles/UiFont';\nimport { Input, InputProps, InputType } from '../Input';\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers';\n\nimport { globalClasses } from './MaskedInput.styles';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers';\nimport { ColorableInputElement } from './ColorableInputElement';\nimport { FixedIMaskInput } from './FixedIMaskInput';\n\nexport interface MaskedProps {\n /** Паттерн маски */\n mask: string;\n /**\n * Символ маски\n *\n * @default _\n */\n maskChar?: string;\n /**\n * Словарь символов-регулярок для маски\n *\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }\n */\n formatChars?: Record<string, string>;\n /**\n * Всегда показывать символы маски\n *\n * @default false\n */\n alwaysShowMask?: boolean;\n /**\n * Обработчик неправильного ввода.\n * Вторым агрументом будет передан метод вспыхивания акцентным цветом.\n *\n * Если обработчик не задан, то инпут вспыхивает по-умолчанию.\n *\n * @param value значение инпута.\n * @param blink вспыхнуть акцентным цвтетом.\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n /**\n * Убирать из value символы, не введённые пользователем\n *\n * @default false\n */\n unmask?: boolean;\n /**\n * Раскрашивать символы маски\n *\n * @default true\n * @ignore\n */\n colored?: boolean;\n /**\n * Пропы для компонента `IMaskInput`. Необходимы для юнит-тестов\n *\n * @ignore\n */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nexport interface MaskedInputProps\n extends MaskedProps,\n Omit<InputProps, 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'> {\n type?: MaskInputType;\n}\n\n/**\n * Интерфейс пропсов наследуется от `Input`.\n * Из пропсов `Input` исключены некоторые не применимые к полю с маской пропсы и сокращен список возможных значений в type.\n */\nexport const MaskedInput = forwardRefAndName(\n 'MaskedInput',\n function MaskedInput(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n element,\n className,\n ...inputProps\n } = props;\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n className={cx(globalClasses.root, uiFontGlobalClasses.root, className)}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useImperativeHandle","useRef","useState","useEffect","forwardRefAndName","cx","uiFontGlobalClasses","Input","isKeyBackspace","isKeyDelete","globalClasses","getDefinitions","getMaskChar","ColorableInputElement","FixedIMaskInput","MaskedInput","props","ref","mask","maskChar","formatChars","_props$alwaysShowMask","alwaysShowMask","_props$colored","colored","_props$imaskProps","imaskProps","customIMaskProps","_props$unmask","unmask","onValueChange","onUnexpectedInput","onChange","element","className","inputProps","_objectWithoutPropertiesLoose","_excluded","inputRef","_useState","focused","setFocused","prevValue","value","String","defaultValue","prevSelectionStart","current","Object","assign","selectAll","_inputRef$current","_inputRef$current2","focus","delaySelectAll","_inputRef$current3","input","selectionStart","getCompatibleIMaskProps","createElement","_extends","onFocus","handleFocus","onBlur","handleBlur","onInput","handleInput","onKeyDown","handleKeyDown","root","showOnFocus","onAccept","handleAccept","replace","placeholderChar","definitions","eager","overwrite","lazy","disabled","_len","arguments","length","args","Array","_key","e","_e$currentTarget","currentTarget","handleUnexpectedInput","_inputRef$current4","selectAllOnFocus","_inputRef$current5","blink","bind","undefined","_e$currentTarget2","selectionEnd"],"sources":["MaskedInput.tsx"],"sourcesContent":["import React, { Ref, useImperativeHandle, useRef, useState, useEffect } from 'react';\nimport { IMaskInputProps } from 'react-imask';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { cx } from '../../lib/theming/Emotion';\nimport { uiFontGlobalClasses } from '../../lib/styles/UiFont';\nimport { Input, InputProps, InputType } from '../Input';\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers';\n\nimport { globalClasses } from './MaskedInput.styles';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers';\nimport { ColorableInputElement } from './ColorableInputElement';\nimport { FixedIMaskInput } from './FixedIMaskInput';\n\nexport interface MaskedProps {\n /** Паттерн маски */\n mask: string;\n\n /** Устанавливает символ маски\n * @default _ */\n maskChar?: string;\n\n /** Задает словарь символов-регулярок для задания маски.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Задает обработчик неправильного ввода.\n * Вторым агрументом будет передан метод вспыхивания акцентным цветом.\n *\n * Если обработчик не задан, то инпут вспыхивает по-умолчанию.\n * @param value значение инпута.\n * @param blink вспыхнуть акцентным цвтетом.\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /** Убирает из value символы, не введённые пользователем\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nexport interface MaskedInputProps\n extends MaskedProps,\n Omit<InputProps, 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'> {\n type?: MaskInputType;\n}\n\n/**\n * Интерфейс пропсов наследуется от `Input`.\n * Из пропсов `Input` исключены некоторые не применимые к полю с маской пропсы и сокращен список возможных значений в type.\n */\nexport const MaskedInput = forwardRefAndName(\n 'MaskedInput',\n function MaskedInput(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n element,\n className,\n ...inputProps\n } = props;\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n className={cx(globalClasses.root, uiFontGlobalClasses.root, className)}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"iVAAA,OAAOA,KAAK,IAASC,mBAAmB,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;;;AAGpF,SAASC,iBAAiB,QAAQ,6BAA6B;AAC/D,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,KAAK,QAA+B,UAAU;AACvD,SAASC,cAAc,EAAEC,WAAW,QAAQ,uCAAuC;;AAEnF,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,cAAc,EAAEC,WAAW,QAAQ,uBAAuB;AACnE,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,eAAe,QAAQ,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDnD;AACA;AACA;AACA;AACA,OAAO,IAAMC,WAAW,GAAGX,iBAAiB;EAC1C,aAAa;EACb,SAASW,WAAWA,CAACC,KAAuB,EAAEC,GAAsB,EAAE;IACpE;MACEC,IAAI;;;;;;;;;;;;;MAaFF,KAAK,CAbPE,IAAI,CACJC,QAAQ,GAYNH,KAAK,CAZPG,QAAQ,CACRC,WAAW,GAWTJ,KAAK,CAXPI,WAAW,CAAAC,qBAAA,GAWTL,KAAK,CAVPM,cAAc,CAAdA,cAAc,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAAAE,cAAA,GAUpBP,KAAK,CATPQ,OAAO,CAAPA,OAAO,GAAAD,cAAA,cAAG,IAAI,GAAAA,cAAA,CAAAE,iBAAA,GASZT,KAAK,CARPU,UAAU,CAAEC,gBAAgB,GAAAF,iBAAA,cAAG,CAAC,CAAC,GAAAA,iBAAA,CAAAG,aAAA,GAQ/BZ,KAAK,CAPPa,MAAM,CAANA,MAAM,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA,CACdE,aAAa,GAMXd,KAAK,CANPc,aAAa,CACbC,iBAAiB,GAKff,KAAK,CALPe,iBAAiB,CACjBC,QAAQ,GAINhB,KAAK,CAJPgB,QAAQ,CACRC,OAAO,GAGLjB,KAAK,CAHPiB,OAAO,CACPC,SAAS,GAEPlB,KAAK,CAFPkB,SAAS,CACNC,UAAU,GAAAC,6BAAA,CACXpB,KAAK,EAAAqB,SAAA;;IAET,IAAMC,QAAQ,GAAGrC,MAAM,CAAQ,IAAI,CAAC;;IAEpC,IAAAsC,SAAA,GAA8BrC,QAAQ,CAAC,KAAK,CAAC,CAAtCsC,OAAO,GAAAD,SAAA,IAAEE,UAAU,GAAAF,SAAA;IAC1B,IAAMG,SAAS,GAAGzC,MAAM,CAASe,KAAK,CAAC2B,KAAK,IAAIC,MAAM,CAAC5B,KAAK,CAAC6B,YAAY,CAAC,IAAI,EAAE,CAAC;IACjF,IAAMC,kBAAkB,GAAG7C,MAAM,CAAgB,IAAI,CAAC;;IAEtDD,mBAAmB;MACjBiB,GAAG;MACH;UACEqB,QAAQ,CAACS,OAAO;UAChBC,MAAM,CAACC,MAAM,CAACX,QAAQ,CAACS,OAAO,EAAE;YAC9BG,SAAS,EAAE,SAAAA,UAAA,EAAM,KAAAC,iBAAA,EAAAC,kBAAA;cACf,CAAAD,iBAAA,GAAAb,QAAQ,CAACS,OAAO,aAAhBI,iBAAA,CAAkBE,KAAK,CAAC,CAAC;cACzB,CAAAD,kBAAA,GAAAd,QAAQ,CAACS,OAAO,aAAhBK,kBAAA,CAAkBE,cAAc,CAAC,CAAC;YACpC;UACF,CAAC,CAAC;MACJ;IACF,CAAC;;IAEDnD,SAAS,CAAC,YAAM,KAAAoD,kBAAA;MACd;MACA;MACA;MACA,KAAAA,kBAAA,GAAIjB,QAAQ,CAACS,OAAO,aAAhBQ,kBAAA,CAAkBC,KAAK,EAAE;QAC3Bd,SAAS,CAACK,OAAO,GAAGT,QAAQ,CAACS,OAAO,CAACS,KAAK,CAACb,KAAK;QAChDG,kBAAkB,CAACC,OAAO,GAAGT,QAAQ,CAACS,OAAO,CAACS,KAAK,CAACC,cAAc;MACpE;IACF,CAAC,EAAE,EAAE,CAAC;;IAEN,IAAM/B,UAAU,GAAGgC,uBAAuB,CAAC,CAAC;;IAE5C;MACE3D,KAAA,CAAA4D,aAAA,CAACpD,KAAK,EAAAqD,QAAA;QACJ3C,GAAG,EAAEqB,QAAS;MACVH,UAAU;QACd0B,OAAO,EAAEC,WAAY;QACrBC,MAAM,EAAEC,UAAW;QACnBC,OAAO,EAAEC,WAAY;QACrBC,SAAS,EAAEC,aAAc;QACzBlC,SAAS,EAAE7B,EAAE,CAACK,aAAa,CAAC2D,IAAI,EAAE/D,mBAAmB,CAAC+D,IAAI,EAAEnC,SAAS,CAAE;QACvED,OAAO;QACLT,OAAO;QACLzB,KAAA,CAAA4D,aAAA,CAAC9C,qBAAqB,IAACyD,WAAW,EAAE,KAAM;QACxCvE,KAAA,CAAA4D,aAAA,CAAC7C,eAAe,EAAA8C,QAAA,KAAKlC,UAAU,IAAE6C,QAAQ,EAAEC,YAAa,GAAE;QACrC,CAAC;;QAExBzE,KAAA,CAAA4D,aAAA,CAAC7C,eAAe,EAAA8C,QAAA,KAAKlC,UAAU,IAAE6C,QAAQ,EAAEC,YAAa,GAAE,CAE7D;;;MACF,CAAC;;;IAGJ,SAASd,uBAAuBA,CAAA,EAAsC;MACpE,OAAAE,QAAA;QACE1C,IAAI,EAAEA,IAAI,CAACuD,OAAO,CAAC,IAAI,EAAE,OAAO,CAAQ;QACxCC,eAAe,EAAE9D,WAAW,CAACO,QAAQ,CAAC;QACtCwD,WAAW,EAAEhE,cAAc,CAACS,WAAW,CAAC;QACxC;QACAwD,KAAK,EAAE,QAAQ;QACfC,SAAS,EAAE,OAAO;QAClBC,IAAI,EAAE,CAACxD,cAAc,KAAKN,KAAK,CAAC+D,QAAQ,IAAI,CAACvC,OAAO,CAAC;QACrDX,MAAM,EAANA,MAAM;MACHF,gBAAgB;;IAEvB;;IAEA,SAAS6C,YAAYA,CAAA,EAA+E,UAAAQ,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAA3EC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAC3B,IAAO1C,KAAK,GAASwC,IAAI,IAATG,CAAC,GAAIH,IAAI;;MAEzB;MACA;MACA;MACA;MACA;MACAG,CAAC,KAAIxD,aAAa,oBAAbA,aAAa,CAAGa,KAAK,CAAC;MAC3B,CAAC2C,CAAC,KAAK5C,SAAS,CAACK,OAAO,GAAGJ,KAAK,CAAC;IACnC;;IAEA;AACJ;AACA;AACA;AACA;IACI,SAASuB,WAAWA,CAACoB,CAAsC,EAAE;MAC3D,IAAAC,gBAAA,GAAkCD,CAAC,CAACE,aAAa,CAAzC7C,KAAK,GAAA4C,gBAAA,CAAL5C,KAAK,CAAEc,cAAc,GAAA8B,gBAAA,CAAd9B,cAAc;;MAE7B;MACA;MACA,IAAIf,SAAS,CAACK,OAAO,KAAKJ,KAAK,IAAIc,cAAc,KAAKX,kBAAkB,CAACC,OAAO,EAAE;QAChF0C,qBAAqB,CAAC9C,KAAK,CAAC;MAC9B;MACAD,SAAS,CAACK,OAAO,GAAGJ,KAAK;MACzBG,kBAAkB,CAACC,OAAO,GAAGU,cAAc;;MAE3CzC,KAAK,CAACiD,OAAO,YAAbjD,KAAK,CAACiD,OAAO,CAAGqB,CAAC,CAAC;IACpB;;IAEA,SAASxB,WAAWA,CAACwB,CAAqC,EAAE,KAAAI,kBAAA;MAC1DjD,UAAU,CAAC,IAAI,CAAC;MAChBzB,KAAK,CAAC6C,OAAO,YAAb7C,KAAK,CAAC6C,OAAO,CAAGyB,CAAC,CAAC;;MAElB;MACA;MACAtE,KAAK,CAAC2E,gBAAgB,MAAAD,kBAAA,GAAIpD,QAAQ,CAACS,OAAO,qBAAhB2C,kBAAA,CAAkBpC,cAAc,CAAC,CAAC;IAC9D;;IAEA,SAASmC,qBAAqBA,CAAC9C,KAAa,EAAE,KAAAiD,kBAAA;MAC5C,IAAMC,KAAK,GAAG,EAAAD,kBAAA,GAAAtD,QAAQ,CAACS,OAAO,qBAAhB6C,kBAAA,CAAkBC,KAAK,CAACC,IAAI,CAACxD,QAAQ,CAACS,OAAO,CAAC,KAAK,oBAAMgD,SAAS,EAAC;MACjFhE,iBAAiB,GAAGA,iBAAiB,CAACY,KAAK,EAAEkD,KAAK,CAAC,GAAGA,KAAK,CAAC,CAAC;IAC/D;;IAEA,SAAS7B,UAAUA,CAACsB,CAAqC,EAAE;MACzD7C,UAAU,CAAC,KAAK,CAAC;MACjBzB,KAAK,CAAC+C,MAAM,YAAZ/C,KAAK,CAAC+C,MAAM,CAAGuB,CAAC,CAAC;IACnB;;IAEA,SAASlB,aAAaA,CAACkB,CAAwC,EAAE;MAC/D,IAAAU,iBAAA,GAAgDV,CAAC,CAACE,aAAa,CAAvD7C,KAAK,GAAAqD,iBAAA,CAALrD,KAAK,CAAEc,cAAc,GAAAuC,iBAAA,CAAdvC,cAAc,CAAEwC,YAAY,GAAAD,iBAAA,CAAZC,YAAY;;MAE3C;MACGzF,cAAc,CAAC8E,CAAC,CAAC,IAAI7B,cAAc,KAAK,CAAC,IAAIwC,YAAY,KAAK,CAAC;MAC/DxF,WAAW,CAAC6E,CAAC,CAAC,IAAIxC,kBAAkB,CAACC,OAAO,KAAKJ,KAAK,CAACuC,MAAO;MAC/D;QACA;QACAO,qBAAqB,CAAC9C,KAAK,CAAC;QAC5BD,SAAS,CAACK,OAAO,GAAGuC,CAAC,CAACE,aAAa,CAAC7C,KAAK;MAC3C;MACAG,kBAAkB,CAACC,OAAO,GAAGU,cAAc;;MAE3CzC,KAAK,CAACmD,SAAS,YAAfnD,KAAK,CAACmD,SAAS,CAAGmB,CAAC,CAAC;IACtB;EACF;AACF,CAAC","ignoreList":[]}
@@ -3,52 +3,32 @@ import { Input, InputProps, InputType } from '../Input';
3
3
  export interface MaskedProps {
4
4
  /** Паттерн маски */
5
5
  mask: string;
6
- /**
7
- * Символ маски
8
- *
9
- * @default _
10
- */
6
+ /** Устанавливает символ маски
7
+ * @default _ */
11
8
  maskChar?: string;
12
- /**
13
- * Словарь символов-регулярок для маски
14
- *
15
- * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }
16
- */
9
+ /** Задает словарь символов-регулярок для задания маски.
10
+ * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */
17
11
  formatChars?: Record<string, string>;
18
- /**
19
- * Всегда показывать символы маски
20
- *
21
- * @default false
22
- */
12
+ /** Включает показ символов маски.
13
+ * @default false */
23
14
  alwaysShowMask?: boolean;
24
- /**
25
- * Обработчик неправильного ввода.
15
+ /** Задает обработчик неправильного ввода.
26
16
  * Вторым агрументом будет передан метод вспыхивания акцентным цветом.
27
17
  *
28
18
  * Если обработчик не задан, то инпут вспыхивает по-умолчанию.
29
- *
30
19
  * @param value значение инпута.
31
20
  * @param blink вспыхнуть акцентным цвтетом.
32
21
  */
33
22
  onUnexpectedInput?: (value: string, blink: () => void) => void;
34
- /**
35
- * Убирать из value символы, не введённые пользователем
36
- *
37
- * @default false
38
- */
23
+ /** Убирает из value символы, не введённые пользователем
24
+ * @default false */
39
25
  unmask?: boolean;
40
- /**
41
- * Раскрашивать символы маски
42
- *
26
+ /** Раскрашивает символы маски.
43
27
  * @default true
44
- * @ignore
45
- */
28
+ * @ignore */
46
29
  colored?: boolean;
47
- /**
48
- * Пропы для компонента `IMaskInput`. Необходимы для юнит-тестов
49
- *
50
- * @ignore
51
- */
30
+ /** Задает пропы для компонента `IMaskInput`. Необходимы для юнит-тестов
31
+ * @ignore */
52
32
  imaskProps?: IMaskInputProps<HTMLInputElement>;
53
33
  }
54
34
  export type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;
@@ -1,4 +1,4 @@
1
- #### `mask`
1
+ ### Проп `mask`
2
2
 
3
3
  Паттерн ввода. Пример с номером телефона.
4
4
 
@@ -18,7 +18,7 @@ const [value, setValue] = React.useState('');
18
18
  </>
19
19
  ```
20
20
 
21
- #### `alwaysShowMask`
21
+ ### Проп `alwaysShowMask`
22
22
 
23
23
  Показывает маску всегда.
24
24
 
@@ -26,7 +26,7 @@ const [value, setValue] = React.useState('');
26
26
  <MaskedInput mask="+7 (999) 999-99-99" alwaysShowMask />
27
27
  ```
28
28
 
29
- #### `maskChar`
29
+ ### Проп `maskChar`
30
30
 
31
31
  Символом маски может быть любой символ.
32
32
 
@@ -48,7 +48,7 @@ const [value, setValue] = React.useState('');
48
48
  </>
49
49
  ```
50
50
 
51
- #### `formatChars`
51
+ ### Проп `formatChars`
52
52
 
53
53
  При необходимости можно настроить собственный словарь.
54
54
 
@@ -71,7 +71,7 @@ const [value, setValue] = React.useState('');
71
71
  />
72
72
  ```
73
73
 
74
- #### `unmask`
74
+ ### Проп `unmask`
75
75
 
76
76
  Можно сразу получать очищенный value, содержащий только введённый пользователем символы.
77
77
 
@@ -92,6 +92,8 @@ const [value, setValue] = React.useState('');
92
92
  </>
93
93
  ```
94
94
 
95
+ ### Проп `unmask` с фигурными скобками
96
+
95
97
  Если обернуть фиксированные символы в фигурные скобки, то они попадут в `value` при `unmask = true`.
96
98
 
97
99
  ```jsx harmony
@@ -0,0 +1,28 @@
1
+ import * as MaskedInputStories from './MaskedInput.docs.stories.tsx';
2
+ import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
+ import { Meta } from '../../../.storybook/Meta';
4
+
5
+ <Meta of={MaskedInputStories} />
6
+
7
+ # MaskedInput
8
+
9
+ [Компонент в Контур.Гайдах](https://guides.kontur.ru/components/input-fields/input/)
10
+
11
+ [Компонент в Figma](https://www.figma.com/file/87ScqxPzJpF9DcVBNYWOjM/%E2%9A%A1-Kontur-UI-Modern-Layout?node-id=203%3A1602)
12
+
13
+ <Description />
14
+
15
+ ## Базовый пример
16
+
17
+ <Primary />
18
+
19
+ ## Пропы
20
+
21
+ <details>
22
+ <summary>Открыть таблицу с пропами</summary>
23
+ <ArgTypes />
24
+ </details>
25
+
26
+ ## Примеры использования
27
+
28
+ <Stories title="" includePrimary={false} />
@@ -10,11 +10,11 @@ export var MenuFooterDataTids = {
10
10
  };
11
11
 
12
12
  /**
13
- * Футер меню.
13
+ * Футер меню `MenuFooter`.
14
14
  *
15
- * _Примечание_: `футер меню`, в отличие от `элемента меню` нельзя затаргетить с клавиатуры.
15
+ * `MenuFooter`, в отличие от `MenuItem` нельзя затаргетить с клавиатуры.
16
16
  *
17
- * Сущности в которых может быть использован `MenuFooter`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).
17
+ * Сущности, в которых может быть использован `MenuFooter`: DropdownMenu, Kebab, TooltipMenu и Select.
18
18
  */
19
19
  function MenuFooter(_ref) {
20
20
  var _cx;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","ThemeContext","CommonWrapper","cx","styles","MenuFooterDataTids","root","MenuFooter","_ref","_cx","id","_ref$_enableIconPaddi","_enableIconPadding","children","_ref$size","size","rest","_objectWithoutPropertiesLoose","_excluded","theme","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getWithLeftPaddingSizeClassName","withLeftPaddingSmall","withLeftPaddingMedium","createElement","className","__KONTUR_REACT_UI__","displayName","__MENU_FOOTER__","isMenuFooter","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"sources":["MenuFooter.tsx"],"sourcesContent":["import React, { HTMLAttributes, ReactNode, useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './MenuFooter.styles';\n\nexport interface MenuFooterProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n _enableIconPadding?: boolean;\n children: ReactNode;\n /** Размер */\n size?: SizeProp;\n}\n\nexport const MenuFooterDataTids = {\n root: 'MenuFooter__root',\n} as const;\n\n/**\n * Футер меню.\n *\n * _Примечание_: `футер меню`, в отличие от `элемента меню` нельзя затаргетить с клавиатуры.\n *\n * Сущности в которых может быть использован `MenuFooter`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\nfunction MenuFooter({ id, _enableIconPadding = false, children, size = 'small', ...rest }: MenuFooterProps) {\n const theme = useContext(ThemeContext);\n\n function getRootSizeClassName() {\n switch (size) {\n case 'large':\n return styles.rootLarge(theme);\n case 'medium':\n return styles.rootMedium(theme);\n case 'small':\n default:\n return styles.rootSmall(theme);\n }\n }\n function getWithLeftPaddingSizeClassName() {\n switch (size) {\n case 'large':\n return styles.withLeftPaddingSmall(theme);\n case 'medium':\n return styles.withLeftPaddingMedium(theme);\n case 'small':\n default:\n return styles.withLeftPaddingSmall(theme);\n }\n }\n\n return (\n <CommonWrapper {...rest}>\n <div\n id={id}\n data-tid={MenuFooterDataTids.root}\n className={cx(getRootSizeClassName(), {\n [styles.root(theme)]: true,\n [getWithLeftPaddingSizeClassName()]: _enableIconPadding,\n })}\n >\n {children}\n </div>\n </CommonWrapper>\n );\n}\n\nMenuFooter.__KONTUR_REACT_UI__ = 'MenuFooter';\nMenuFooter.displayName = 'MenuFooter';\nMenuFooter.__MENU_FOOTER__ = true;\n\nexport { MenuFooter };\n\nexport const isMenuFooter = (child: React.ReactNode): child is React.ReactElement<MenuFooterProps> => {\n return React.isValidElement<MenuFooterProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_FOOTER__')\n : false;\n};\n"],"mappings":"qKAAA,OAAOA,KAAK,IAA+BC,UAAU,QAAQ,OAAO;;AAEpE,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAAsBC,aAAa,QAAQ,8BAA8B;AACzE,SAASC,EAAE,QAAQ,2BAA2B;;;AAG9C,SAASC,MAAM,QAAQ,qBAAqB;;;;;;;;;AAS5C,OAAO,IAAMC,kBAAkB,GAAG;EAChCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAAAC,IAAA,EAAyF,KAAAC,GAAA,KAAtFC,EAAE,GAAAF,IAAA,CAAFE,EAAE,CAAAC,qBAAA,GAAAH,IAAA,CAAEI,kBAAkB,CAAlBA,kBAAkB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAAEE,QAAQ,GAAAL,IAAA,CAARK,QAAQ,CAAAC,SAAA,GAAAN,IAAA,CAAEO,IAAI,CAAJA,IAAI,GAAAD,SAAA,cAAG,OAAO,GAAAA,SAAA,CAAKE,IAAI,GAAAC,6BAAA,CAAAT,IAAA,EAAAU,SAAA;EACrF,IAAMC,KAAK,GAAGnB,UAAU,CAACC,YAAY,CAAC;;EAEtC,SAASmB,oBAAoBA,CAAA,EAAG;IAC9B,QAAQL,IAAI;MACV,KAAK,OAAO;QACV,OAAOX,MAAM,CAACiB,SAAS,CAACF,KAAK,CAAC;MAChC,KAAK,QAAQ;QACX,OAAOf,MAAM,CAACkB,UAAU,CAACH,KAAK,CAAC;MACjC,KAAK,OAAO;MACZ;QACE,OAAOf,MAAM,CAACmB,SAAS,CAACJ,KAAK,CAAC;IAClC;EACF;EACA,SAASK,+BAA+BA,CAAA,EAAG;IACzC,QAAQT,IAAI;MACV,KAAK,OAAO;QACV,OAAOX,MAAM,CAACqB,oBAAoB,CAACN,KAAK,CAAC;MAC3C,KAAK,QAAQ;QACX,OAAOf,MAAM,CAACsB,qBAAqB,CAACP,KAAK,CAAC;MAC5C,KAAK,OAAO;MACZ;QACE,OAAOf,MAAM,CAACqB,oBAAoB,CAACN,KAAK,CAAC;IAC7C;EACF;;EAEA;IACEpB,KAAA,CAAA4B,aAAA,CAACzB,aAAa,EAAKc,IAAI;IACrBjB,KAAA,CAAA4B,aAAA;MACEjB,EAAE,EAAEA,EAAG;MACP,YAAUL,kBAAkB,CAACC,IAAK;MAClCsB,SAAS,EAAEzB,EAAE,CAACiB,oBAAoB,CAAC,CAAC,GAAAX,GAAA,OAAAA,GAAA;MACjCL,MAAM,CAACE,IAAI,CAACa,KAAK,CAAC,IAAG,IAAI,EAAAV,GAAA;MACzBe,+BAA+B,CAAC,CAAC,IAAGZ,kBAAkB,EAAAH,GAAA;MACxD,CAAE;;IAEFI;IACE;IACQ,CAAC;;AAEpB;;AAEAN,UAAU,CAACsB,mBAAmB,GAAG,YAAY;AAC7CtB,UAAU,CAACuB,WAAW,GAAG,YAAY;AACrCvB,UAAU,CAACwB,eAAe,GAAG,IAAI;;AAEjC,SAASxB,UAAU;;AAEnB,OAAO,IAAMyB,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAsB,EAAmD;EACpG,OAAO,aAAAlC,KAAK,CAACmC,cAAc,CAAkBD,KAAK,CAAC;EAC/CE,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,KAAK,CAACM,IAAI,EAAE,iBAAiB,CAAC;EACnE,KAAK;AACX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useContext","ThemeContext","CommonWrapper","cx","styles","MenuFooterDataTids","root","MenuFooter","_ref","_cx","id","_ref$_enableIconPaddi","_enableIconPadding","children","_ref$size","size","rest","_objectWithoutPropertiesLoose","_excluded","theme","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getWithLeftPaddingSizeClassName","withLeftPaddingSmall","withLeftPaddingMedium","createElement","className","__KONTUR_REACT_UI__","displayName","__MENU_FOOTER__","isMenuFooter","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"sources":["MenuFooter.tsx"],"sourcesContent":["import React, { HTMLAttributes, ReactNode, useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './MenuFooter.styles';\n\nexport interface MenuFooterProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Добавляет отступ иконке. */\n _enableIconPadding?: boolean;\n\n /** @ignore */\n children: ReactNode;\n\n /** Задает размер. */\n size?: SizeProp;\n}\n\nexport const MenuFooterDataTids = {\n root: 'MenuFooter__root',\n} as const;\n\n/**\n * Футер меню `MenuFooter`.\n *\n * `MenuFooter`, в отличие от `MenuItem` нельзя затаргетить с клавиатуры.\n *\n * Сущности, в которых может быть использован `MenuFooter`: DropdownMenu, Kebab, TooltipMenu и Select.\n */\nfunction MenuFooter({ id, _enableIconPadding = false, children, size = 'small', ...rest }: MenuFooterProps) {\n const theme = useContext(ThemeContext);\n\n function getRootSizeClassName() {\n switch (size) {\n case 'large':\n return styles.rootLarge(theme);\n case 'medium':\n return styles.rootMedium(theme);\n case 'small':\n default:\n return styles.rootSmall(theme);\n }\n }\n function getWithLeftPaddingSizeClassName() {\n switch (size) {\n case 'large':\n return styles.withLeftPaddingSmall(theme);\n case 'medium':\n return styles.withLeftPaddingMedium(theme);\n case 'small':\n default:\n return styles.withLeftPaddingSmall(theme);\n }\n }\n\n return (\n <CommonWrapper {...rest}>\n <div\n id={id}\n data-tid={MenuFooterDataTids.root}\n className={cx(getRootSizeClassName(), {\n [styles.root(theme)]: true,\n [getWithLeftPaddingSizeClassName()]: _enableIconPadding,\n })}\n >\n {children}\n </div>\n </CommonWrapper>\n );\n}\n\nMenuFooter.__KONTUR_REACT_UI__ = 'MenuFooter';\nMenuFooter.displayName = 'MenuFooter';\nMenuFooter.__MENU_FOOTER__ = true;\n\nexport { MenuFooter };\n\nexport const isMenuFooter = (child: React.ReactNode): child is React.ReactElement<MenuFooterProps> => {\n return React.isValidElement<MenuFooterProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_FOOTER__')\n : false;\n};\n"],"mappings":"qKAAA,OAAOA,KAAK,IAA+BC,UAAU,QAAQ,OAAO;;AAEpE,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAAsBC,aAAa,QAAQ,8BAA8B;AACzE,SAASC,EAAE,QAAQ,2BAA2B;;;AAG9C,SAASC,MAAM,QAAQ,qBAAqB;;;;;;;;;;;;;AAa5C,OAAO,IAAMC,kBAAkB,GAAG;EAChCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAAAC,IAAA,EAAyF,KAAAC,GAAA,KAAtFC,EAAE,GAAAF,IAAA,CAAFE,EAAE,CAAAC,qBAAA,GAAAH,IAAA,CAAEI,kBAAkB,CAAlBA,kBAAkB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAAEE,QAAQ,GAAAL,IAAA,CAARK,QAAQ,CAAAC,SAAA,GAAAN,IAAA,CAAEO,IAAI,CAAJA,IAAI,GAAAD,SAAA,cAAG,OAAO,GAAAA,SAAA,CAAKE,IAAI,GAAAC,6BAAA,CAAAT,IAAA,EAAAU,SAAA;EACrF,IAAMC,KAAK,GAAGnB,UAAU,CAACC,YAAY,CAAC;;EAEtC,SAASmB,oBAAoBA,CAAA,EAAG;IAC9B,QAAQL,IAAI;MACV,KAAK,OAAO;QACV,OAAOX,MAAM,CAACiB,SAAS,CAACF,KAAK,CAAC;MAChC,KAAK,QAAQ;QACX,OAAOf,MAAM,CAACkB,UAAU,CAACH,KAAK,CAAC;MACjC,KAAK,OAAO;MACZ;QACE,OAAOf,MAAM,CAACmB,SAAS,CAACJ,KAAK,CAAC;IAClC;EACF;EACA,SAASK,+BAA+BA,CAAA,EAAG;IACzC,QAAQT,IAAI;MACV,KAAK,OAAO;QACV,OAAOX,MAAM,CAACqB,oBAAoB,CAACN,KAAK,CAAC;MAC3C,KAAK,QAAQ;QACX,OAAOf,MAAM,CAACsB,qBAAqB,CAACP,KAAK,CAAC;MAC5C,KAAK,OAAO;MACZ;QACE,OAAOf,MAAM,CAACqB,oBAAoB,CAACN,KAAK,CAAC;IAC7C;EACF;;EAEA;IACEpB,KAAA,CAAA4B,aAAA,CAACzB,aAAa,EAAKc,IAAI;IACrBjB,KAAA,CAAA4B,aAAA;MACEjB,EAAE,EAAEA,EAAG;MACP,YAAUL,kBAAkB,CAACC,IAAK;MAClCsB,SAAS,EAAEzB,EAAE,CAACiB,oBAAoB,CAAC,CAAC,GAAAX,GAAA,OAAAA,GAAA;MACjCL,MAAM,CAACE,IAAI,CAACa,KAAK,CAAC,IAAG,IAAI,EAAAV,GAAA;MACzBe,+BAA+B,CAAC,CAAC,IAAGZ,kBAAkB,EAAAH,GAAA;MACxD,CAAE;;IAEFI;IACE;IACQ,CAAC;;AAEpB;;AAEAN,UAAU,CAACsB,mBAAmB,GAAG,YAAY;AAC7CtB,UAAU,CAACuB,WAAW,GAAG,YAAY;AACrCvB,UAAU,CAACwB,eAAe,GAAG,IAAI;;AAEjC,SAASxB,UAAU;;AAEnB,OAAO,IAAMyB,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAsB,EAAmD;EACpG,OAAO,aAAAlC,KAAK,CAACmC,cAAc,CAAkBD,KAAK,CAAC;EAC/CE,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,KAAK,CAACM,IAAI,EAAE,iBAAiB,CAAC;EACnE,KAAK;AACX,CAAC","ignoreList":[]}
@@ -2,20 +2,22 @@ import React, { HTMLAttributes, ReactNode } from 'react';
2
2
  import { CommonProps } from '../../internal/CommonWrapper';
3
3
  import { SizeProp } from '../../lib/types/props';
4
4
  export interface MenuFooterProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {
5
+ /** Добавляет отступ иконке. */
5
6
  _enableIconPadding?: boolean;
7
+ /** @ignore */
6
8
  children: ReactNode;
7
- /** Размер */
9
+ /** Задает размер. */
8
10
  size?: SizeProp;
9
11
  }
10
12
  export declare const MenuFooterDataTids: {
11
13
  readonly root: "MenuFooter__root";
12
14
  };
13
15
  /**
14
- * Футер меню.
16
+ * Футер меню `MenuFooter`.
15
17
  *
16
- * _Примечание_: `футер меню`, в отличие от `элемента меню` нельзя затаргетить с клавиатуры.
18
+ * `MenuFooter`, в отличие от `MenuItem` нельзя затаргетить с клавиатуры.
17
19
  *
18
- * Сущности в которых может быть использован `MenuFooter`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).
20
+ * Сущности, в которых может быть использован `MenuFooter`: DropdownMenu, Kebab, TooltipMenu и Select.
19
21
  */
20
22
  declare function MenuFooter({ id, _enableIconPadding, children, size, ...rest }: MenuFooterProps): React.JSX.Element;
21
23
  declare namespace MenuFooter {
@@ -1,4 +1,4 @@
1
- Базовый пример меню с заголовками.
1
+ ### Базовый пример меню с заголовками
2
2
 
3
3
  ```jsx harmony
4
4
  import { Button, MenuItem, DropdownMenu } from '@skbkontur/react-ui';
@@ -14,7 +14,7 @@ import { Button, MenuItem, DropdownMenu } from '@skbkontur/react-ui';
14
14
  </DropdownMenu>
15
15
  ```
16
16
 
17
- У MenuFooter есть 3 стандартных размера.
17
+ ### Размер
18
18
 
19
19
  ```jsx harmony
20
20
  import { Gapped } from '@skbkontur/react-ui';
@@ -0,0 +1,24 @@
1
+ import * as MenuFooterStories from './MenuFooter.docs.stories.tsx';
2
+ import { Primary, ArgTypes, Stories, Description } from '@storybook/blocks';
3
+ import { Meta } from '../../../.storybook/Meta';
4
+
5
+ <Meta of={MenuFooterStories} />
6
+
7
+ # MenuFooter
8
+
9
+ <Description />
10
+
11
+ ## Базовый пример
12
+
13
+ <Primary />
14
+
15
+ ## Пропы
16
+
17
+ <details>
18
+ <summary>Открыть таблицу с пропами</summary>
19
+ <ArgTypes />
20
+ </details>
21
+
22
+ ## Примеры использования
23
+
24
+ <Stories title="" includePrimary={false} />
@@ -11,11 +11,11 @@ export var MenuHeaderDataTids = {
11
11
  };
12
12
 
13
13
  /**
14
- * `Заголовок меню` используется для того, чтобы разделить `элементы меню` на категории в рамках одного меню.
14
+ * Заголовок меню `MenuHeader` используется для того, чтобы разделить элементы меню на категории в рамках одного меню.
15
15
  *
16
- * _Примечание_: `заголовок меню`, в отличие от `элемента меню` нельзя затаргетить с клавиатуры.
16
+ * `MenuHeader`, в отличие от `MenuItem` нельзя затаргетить с клавиатуры.
17
17
  *
18
- * Сущности в которых может быть использован `MenuHeader`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).
18
+ * Сущности в которых может быть использован `MenuHeader`: DropdownMenu, Kebab, TooltipMenu и Select.
19
19
  */
20
20
  function MenuHeader(_ref) {
21
21
  var _cx;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","ThemeContext","CommonWrapper","cx","MenuContext","styles","MenuHeaderDataTids","root","MenuHeader","_ref","_cx","id","_ref$_enableIconPaddi","_enableIconPadding","children","_ref$size","size","rest","_objectWithoutPropertiesLoose","_excluded","theme","menuContext","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getWithLeftPaddingSizeClassName","withLeftPaddingSmall","withLeftPaddingMedium","createElement","className","enableIconPadding","__KONTUR_REACT_UI__","displayName","__MENU_HEADER__","isMenuHeader","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"sources":["MenuHeader.tsx"],"sourcesContent":["import React, { HTMLAttributes, ReactNode, useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { SizeProp } from '../../lib/types/props';\nimport { MenuContext } from '../../internal/Menu/MenuContext';\n\nimport { styles } from './MenuHeader.styles';\n\nexport interface MenuHeaderProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n _enableIconPadding?: boolean;\n children: ReactNode;\n /** Размер */\n size?: SizeProp;\n}\n\nexport const MenuHeaderDataTids = {\n root: 'MenuHeader__root',\n} as const;\n\n/**\n * `Заголовок меню` используется для того, чтобы разделить `элементы меню` на категории в рамках одного меню.\n *\n * _Примечание_: `заголовок меню`, в отличие от `элемента меню` нельзя затаргетить с клавиатуры.\n *\n * Сущности в которых может быть использован `MenuHeader`: [DropdownMenu](#/Components/DropdownMenu), [Kebab](#/Components/Kebab), [TooltipMenu](#/Components/TooltipMenu) и [Select](#/Components/Select).\n */\nfunction MenuHeader({ id, _enableIconPadding = false, children, size = 'small', ...rest }: MenuHeaderProps) {\n const theme = useContext(ThemeContext);\n const menuContext = useContext(MenuContext);\n\n function getRootSizeClassName() {\n switch (size) {\n case 'large':\n return styles.rootLarge(theme);\n case 'medium':\n return styles.rootMedium(theme);\n case 'small':\n default:\n return styles.rootSmall(theme);\n }\n }\n function getWithLeftPaddingSizeClassName() {\n switch (size) {\n case 'large':\n return styles.withLeftPaddingSmall(theme);\n case 'medium':\n return styles.withLeftPaddingMedium(theme);\n case 'small':\n default:\n return styles.withLeftPaddingSmall(theme);\n }\n }\n\n return (\n <CommonWrapper {...rest}>\n <div\n id={id}\n data-tid={MenuHeaderDataTids.root}\n className={cx(getRootSizeClassName(), {\n [styles.root(theme)]: true,\n [getWithLeftPaddingSizeClassName()]: menuContext.enableIconPadding || _enableIconPadding,\n })}\n >\n {children}\n </div>\n </CommonWrapper>\n );\n}\n\nMenuHeader.__KONTUR_REACT_UI__ = 'MenuHeader';\nMenuHeader.displayName = 'MenuHeader';\nMenuHeader.__MENU_HEADER__ = true;\n\nexport { MenuHeader };\n\nexport const isMenuHeader = (child: React.ReactNode): child is React.ReactElement<MenuHeaderProps> => {\n return React.isValidElement<MenuHeaderProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_HEADER__')\n : false;\n};\n"],"mappings":"qKAAA,OAAOA,KAAK,IAA+BC,UAAU,QAAQ,OAAO;;AAEpE,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAAsBC,aAAa,QAAQ,8BAA8B;AACzE,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,WAAW,QAAQ,iCAAiC;;AAE7D,SAASC,MAAM,QAAQ,qBAAqB;;;;;;;;;AAS5C,OAAO,IAAMC,kBAAkB,GAAG;EAChCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAAAC,IAAA,EAAyF,KAAAC,GAAA,KAAtFC,EAAE,GAAAF,IAAA,CAAFE,EAAE,CAAAC,qBAAA,GAAAH,IAAA,CAAEI,kBAAkB,CAAlBA,kBAAkB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAAEE,QAAQ,GAAAL,IAAA,CAARK,QAAQ,CAAAC,SAAA,GAAAN,IAAA,CAAEO,IAAI,CAAJA,IAAI,GAAAD,SAAA,cAAG,OAAO,GAAAA,SAAA,CAAKE,IAAI,GAAAC,6BAAA,CAAAT,IAAA,EAAAU,SAAA;EACrF,IAAMC,KAAK,GAAGpB,UAAU,CAACC,YAAY,CAAC;EACtC,IAAMoB,WAAW,GAAGrB,UAAU,CAACI,WAAW,CAAC;;EAE3C,SAASkB,oBAAoBA,CAAA,EAAG;IAC9B,QAAQN,IAAI;MACV,KAAK,OAAO;QACV,OAAOX,MAAM,CAACkB,SAAS,CAACH,KAAK,CAAC;MAChC,KAAK,QAAQ;QACX,OAAOf,MAAM,CAACmB,UAAU,CAACJ,KAAK,CAAC;MACjC,KAAK,OAAO;MACZ;QACE,OAAOf,MAAM,CAACoB,SAAS,CAACL,KAAK,CAAC;IAClC;EACF;EACA,SAASM,+BAA+BA,CAAA,EAAG;IACzC,QAAQV,IAAI;MACV,KAAK,OAAO;QACV,OAAOX,MAAM,CAACsB,oBAAoB,CAACP,KAAK,CAAC;MAC3C,KAAK,QAAQ;QACX,OAAOf,MAAM,CAACuB,qBAAqB,CAACR,KAAK,CAAC;MAC5C,KAAK,OAAO;MACZ;QACE,OAAOf,MAAM,CAACsB,oBAAoB,CAACP,KAAK,CAAC;IAC7C;EACF;;EAEA;IACErB,KAAA,CAAA8B,aAAA,CAAC3B,aAAa,EAAKe,IAAI;IACrBlB,KAAA,CAAA8B,aAAA;MACElB,EAAE,EAAEA,EAAG;MACP,YAAUL,kBAAkB,CAACC,IAAK;MAClCuB,SAAS,EAAE3B,EAAE,CAACmB,oBAAoB,CAAC,CAAC,GAAAZ,GAAA,OAAAA,GAAA;MACjCL,MAAM,CAACE,IAAI,CAACa,KAAK,CAAC,IAAG,IAAI,EAAAV,GAAA;MACzBgB,+BAA+B,CAAC,CAAC,IAAGL,WAAW,CAACU,iBAAiB,IAAIlB,kBAAkB,EAAAH,GAAA;MACzF,CAAE;;IAEFI;IACE;IACQ,CAAC;;AAEpB;;AAEAN,UAAU,CAACwB,mBAAmB,GAAG,YAAY;AAC7CxB,UAAU,CAACyB,WAAW,GAAG,YAAY;AACrCzB,UAAU,CAAC0B,eAAe,GAAG,IAAI;;AAEjC,SAAS1B,UAAU;;AAEnB,OAAO,IAAM2B,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAsB,EAAmD;EACpG,OAAO,aAAArC,KAAK,CAACsC,cAAc,CAAkBD,KAAK,CAAC;EAC/CE,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,KAAK,CAACM,IAAI,EAAE,iBAAiB,CAAC;EACnE,KAAK;AACX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useContext","ThemeContext","CommonWrapper","cx","MenuContext","styles","MenuHeaderDataTids","root","MenuHeader","_ref","_cx","id","_ref$_enableIconPaddi","_enableIconPadding","children","_ref$size","size","rest","_objectWithoutPropertiesLoose","_excluded","theme","menuContext","getRootSizeClassName","rootLarge","rootMedium","rootSmall","getWithLeftPaddingSizeClassName","withLeftPaddingSmall","withLeftPaddingMedium","createElement","className","enableIconPadding","__KONTUR_REACT_UI__","displayName","__MENU_HEADER__","isMenuHeader","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"sources":["MenuHeader.tsx"],"sourcesContent":["import React, { HTMLAttributes, ReactNode, useContext } from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { SizeProp } from '../../lib/types/props';\nimport { MenuContext } from '../../internal/Menu/MenuContext';\n\nimport { styles } from './MenuHeader.styles';\n\nexport interface MenuHeaderProps extends CommonProps, Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Добавляет отступ иконке. */\n _enableIconPadding?: boolean;\n\n /** @ignore */\n children: ReactNode;\n\n /** Задает размер. */\n size?: SizeProp;\n}\n\nexport const MenuHeaderDataTids = {\n root: 'MenuHeader__root',\n} as const;\n\n/**\n * Заголовок меню `MenuHeader` используется для того, чтобы разделить элементы меню на категории в рамках одного меню.\n *\n * `MenuHeader`, в отличие от `MenuItem` нельзя затаргетить с клавиатуры.\n *\n * Сущности в которых может быть использован `MenuHeader`: DropdownMenu, Kebab, TooltipMenu и Select.\n */\nfunction MenuHeader({ id, _enableIconPadding = false, children, size = 'small', ...rest }: MenuHeaderProps) {\n const theme = useContext(ThemeContext);\n const menuContext = useContext(MenuContext);\n\n function getRootSizeClassName() {\n switch (size) {\n case 'large':\n return styles.rootLarge(theme);\n case 'medium':\n return styles.rootMedium(theme);\n case 'small':\n default:\n return styles.rootSmall(theme);\n }\n }\n function getWithLeftPaddingSizeClassName() {\n switch (size) {\n case 'large':\n return styles.withLeftPaddingSmall(theme);\n case 'medium':\n return styles.withLeftPaddingMedium(theme);\n case 'small':\n default:\n return styles.withLeftPaddingSmall(theme);\n }\n }\n\n return (\n <CommonWrapper {...rest}>\n <div\n id={id}\n data-tid={MenuHeaderDataTids.root}\n className={cx(getRootSizeClassName(), {\n [styles.root(theme)]: true,\n [getWithLeftPaddingSizeClassName()]: menuContext.enableIconPadding || _enableIconPadding,\n })}\n >\n {children}\n </div>\n </CommonWrapper>\n );\n}\n\nMenuHeader.__KONTUR_REACT_UI__ = 'MenuHeader';\nMenuHeader.displayName = 'MenuHeader';\nMenuHeader.__MENU_HEADER__ = true;\n\nexport { MenuHeader };\n\nexport const isMenuHeader = (child: React.ReactNode): child is React.ReactElement<MenuHeaderProps> => {\n return React.isValidElement<MenuHeaderProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_HEADER__')\n : false;\n};\n"],"mappings":"qKAAA,OAAOA,KAAK,IAA+BC,UAAU,QAAQ,OAAO;;AAEpE,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAAsBC,aAAa,QAAQ,8BAA8B;AACzE,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,WAAW,QAAQ,iCAAiC;;AAE7D,SAASC,MAAM,QAAQ,qBAAqB;;;;;;;;;;;;;AAa5C,OAAO,IAAMC,kBAAkB,GAAG;EAChCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAAAC,IAAA,EAAyF,KAAAC,GAAA,KAAtFC,EAAE,GAAAF,IAAA,CAAFE,EAAE,CAAAC,qBAAA,GAAAH,IAAA,CAAEI,kBAAkB,CAAlBA,kBAAkB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAAEE,QAAQ,GAAAL,IAAA,CAARK,QAAQ,CAAAC,SAAA,GAAAN,IAAA,CAAEO,IAAI,CAAJA,IAAI,GAAAD,SAAA,cAAG,OAAO,GAAAA,SAAA,CAAKE,IAAI,GAAAC,6BAAA,CAAAT,IAAA,EAAAU,SAAA;EACrF,IAAMC,KAAK,GAAGpB,UAAU,CAACC,YAAY,CAAC;EACtC,IAAMoB,WAAW,GAAGrB,UAAU,CAACI,WAAW,CAAC;;EAE3C,SAASkB,oBAAoBA,CAAA,EAAG;IAC9B,QAAQN,IAAI;MACV,KAAK,OAAO;QACV,OAAOX,MAAM,CAACkB,SAAS,CAACH,KAAK,CAAC;MAChC,KAAK,QAAQ;QACX,OAAOf,MAAM,CAACmB,UAAU,CAACJ,KAAK,CAAC;MACjC,KAAK,OAAO;MACZ;QACE,OAAOf,MAAM,CAACoB,SAAS,CAACL,KAAK,CAAC;IAClC;EACF;EACA,SAASM,+BAA+BA,CAAA,EAAG;IACzC,QAAQV,IAAI;MACV,KAAK,OAAO;QACV,OAAOX,MAAM,CAACsB,oBAAoB,CAACP,KAAK,CAAC;MAC3C,KAAK,QAAQ;QACX,OAAOf,MAAM,CAACuB,qBAAqB,CAACR,KAAK,CAAC;MAC5C,KAAK,OAAO;MACZ;QACE,OAAOf,MAAM,CAACsB,oBAAoB,CAACP,KAAK,CAAC;IAC7C;EACF;;EAEA;IACErB,KAAA,CAAA8B,aAAA,CAAC3B,aAAa,EAAKe,IAAI;IACrBlB,KAAA,CAAA8B,aAAA;MACElB,EAAE,EAAEA,EAAG;MACP,YAAUL,kBAAkB,CAACC,IAAK;MAClCuB,SAAS,EAAE3B,EAAE,CAACmB,oBAAoB,CAAC,CAAC,GAAAZ,GAAA,OAAAA,GAAA;MACjCL,MAAM,CAACE,IAAI,CAACa,KAAK,CAAC,IAAG,IAAI,EAAAV,GAAA;MACzBgB,+BAA+B,CAAC,CAAC,IAAGL,WAAW,CAACU,iBAAiB,IAAIlB,kBAAkB,EAAAH,GAAA;MACzF,CAAE;;IAEFI;IACE;IACQ,CAAC;;AAEpB;;AAEAN,UAAU,CAACwB,mBAAmB,GAAG,YAAY;AAC7CxB,UAAU,CAACyB,WAAW,GAAG,YAAY;AACrCzB,UAAU,CAAC0B,eAAe,GAAG,IAAI;;AAEjC,SAAS1B,UAAU;;AAEnB,OAAO,IAAM2B,YAAY,GAAG,SAAfA,YAAYA,CAAIC,KAAsB,EAAmD;EACpG,OAAO,aAAArC,KAAK,CAACsC,cAAc,CAAkBD,KAAK,CAAC;EAC/CE,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,KAAK,CAACM,IAAI,EAAE,iBAAiB,CAAC;EACnE,KAAK;AACX,CAAC","ignoreList":[]}