@skbkontur/react-ui 5.0.8 → 5.0.10

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 (474) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/cjs/components/Autocomplete/__creevey__/Autocomplete.creevey.mts +239 -0
  3. package/cjs/components/Button/__creevey__/Button.creevey.mts +251 -0
  4. package/cjs/components/Calendar/__creevey__/Calendar.creevey.mts +74 -0
  5. package/cjs/components/Checkbox/__creevey__/Checkbox.creevey.mts +243 -0
  6. package/cjs/components/ComboBox/__creevey__/ComboBox.creevey.mts +541 -0
  7. package/cjs/components/CurrencyInput/__creevey__/CurrencyInput.creevey.mts +81 -0
  8. package/cjs/components/DateInput/__creevey__/DateInput.creevey.mts +156 -0
  9. package/cjs/components/DatePicker/__creevey__/DatePicker.creevey.mts +209 -0
  10. package/cjs/components/Dropdown/__creevey__/Dropdown.creevey.mts +184 -0
  11. package/cjs/components/DropdownMenu/__creevey__/DropdownMenu.creevey.mts +263 -0
  12. package/cjs/components/FxInput/__creevey__/FxInput.creevey.mts +21 -0
  13. package/cjs/components/GlobalLoader/GlobalLoader.d.ts +1 -0
  14. package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
  15. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  16. package/cjs/components/Group/__creevey__/Group.creevey.mts +19 -0
  17. package/cjs/components/Hint/__creevey__/Hint.creevey.mts +68 -0
  18. package/cjs/components/Input/__creevey__/Input.creevey.mts +239 -0
  19. package/cjs/components/Kebab/__creevey__/Kebab.creevey.mts +147 -0
  20. package/cjs/components/Link/__creevey__/Link.creevey.mts +162 -0
  21. package/cjs/components/Loader/__creevey__/Loader.creevey.mts +35 -0
  22. package/cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.mts +216 -0
  23. package/cjs/components/Modal/Modal.js +7 -10
  24. package/cjs/components/Modal/Modal.js.map +1 -1
  25. package/cjs/components/Modal/ModalContext.d.ts +3 -3
  26. package/cjs/components/Modal/ModalContext.js.map +1 -1
  27. package/cjs/components/Modal/ModalFooter.js +2 -2
  28. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  29. package/cjs/components/Modal/ModalHeader.js +1 -1
  30. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  31. package/cjs/components/Modal/__creevey__/Modal.creevey.mts +281 -0
  32. package/cjs/components/Paging/__creevey__/Paging.creevey.mts +97 -0
  33. package/cjs/components/PasswordInput/__creevey__/PasswordInput.creevey.mts +38 -0
  34. package/cjs/components/Radio/__creevey__/Radio.creevey.mts +28 -0
  35. package/cjs/components/RadioGroup/__creevey__/RadioGroup.creevey.mts +86 -0
  36. package/cjs/components/ScrollContainer/__creevey__/ScrollContainer.creevey.mts +247 -0
  37. package/cjs/components/Select/Select.d.ts +1 -6
  38. package/cjs/components/Select/Select.js +7 -10
  39. package/cjs/components/Select/Select.js.map +1 -1
  40. package/cjs/components/Select/__creevey__/Select.creevey.mts +293 -0
  41. package/cjs/components/Select/tids.d.ts +5 -0
  42. package/cjs/components/Select/tids.js +5 -0
  43. package/cjs/components/Select/tids.js.map +1 -0
  44. package/cjs/components/SidePage/__creevey__/SidePage.creevey.mts +319 -0
  45. package/cjs/components/Sticky/__creevey__/Sticky.creevey.mts +98 -0
  46. package/cjs/components/Switcher/__creevey__/Switcher.creevey.mts +24 -0
  47. package/cjs/components/Tabs/__creevey__/Tabs.creevey.mts +239 -0
  48. package/cjs/components/Textarea/__creevey__/Textarea.creevey.mts +177 -0
  49. package/cjs/components/Toast/__creevey__/Toast.creevey.mts +54 -0
  50. package/cjs/components/Toggle/__creevey__/Toggle.creevey.mts +87 -0
  51. package/cjs/components/TokenInput/__creevey__/TokenInput.creevey.mts +414 -0
  52. package/cjs/components/Tooltip/__creevey__/Tooltip.creevey.mts +533 -0
  53. package/cjs/components/TooltipMenu/__creevey__/TooltipMenu.creevey.mts +131 -0
  54. package/cjs/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.mts +48 -0
  55. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -3
  56. package/cjs/internal/CustomComboBox/CustomComboBox.js +4 -6
  57. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  58. package/cjs/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.mts +30 -0
  59. package/cjs/internal/CustomComboBox/tids.d.ts +3 -0
  60. package/cjs/internal/CustomComboBox/tids.js +3 -0
  61. package/cjs/internal/CustomComboBox/tids.js.map +1 -0
  62. package/cjs/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.mts +25 -0
  63. package/cjs/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.mts +83 -0
  64. package/cjs/internal/Menu/__creevey__/Menu.creevey.mts +90 -0
  65. package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -5
  66. package/cjs/internal/PopupMenu/PopupMenu.js +8 -10
  67. package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
  68. package/cjs/internal/PopupMenu/__creevey__/PopupMenu.creevey.mts +37 -0
  69. package/cjs/internal/PopupMenu/tids.d.ts +4 -0
  70. package/cjs/internal/PopupMenu/tids.js +4 -0
  71. package/cjs/internal/PopupMenu/tids.js.map +1 -0
  72. package/cjs/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.mts +68 -0
  73. package/cjs/internal/ThemeShowcase/VariablesCollector.js +1 -0
  74. package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
  75. package/cjs/internal/ZIndex/__creevey__/ZIndex.creevey.mts +228 -0
  76. package/cjs/lib/delay.d.ts +1 -0
  77. package/cjs/lib/delay.js +3 -0
  78. package/cjs/lib/delay.js.map +1 -0
  79. package/cjs/lib/utils.d.ts +3 -3
  80. package/cjs/lib/utils.js +5 -4
  81. package/cjs/lib/utils.js.map +1 -1
  82. package/components/Autocomplete/__creevey__/Autocomplete.creevey.mts +239 -0
  83. package/components/Button/__creevey__/Button.creevey.mts +251 -0
  84. package/components/Calendar/__creevey__/Calendar.creevey.mts +74 -0
  85. package/components/Checkbox/__creevey__/Checkbox.creevey.mts +243 -0
  86. package/components/ComboBox/__creevey__/ComboBox.creevey.mts +541 -0
  87. package/components/CurrencyInput/__creevey__/CurrencyInput.creevey.mts +81 -0
  88. package/components/DateInput/__creevey__/DateInput.creevey.mts +156 -0
  89. package/components/DatePicker/__creevey__/DatePicker.creevey.mts +209 -0
  90. package/components/Dropdown/__creevey__/Dropdown.creevey.mts +184 -0
  91. package/components/DropdownMenu/__creevey__/DropdownMenu.creevey.mts +263 -0
  92. package/components/FxInput/__creevey__/FxInput.creevey.mts +21 -0
  93. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +13 -5
  94. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  95. package/components/GlobalLoader/GlobalLoader.d.ts +1 -0
  96. package/components/Group/__creevey__/Group.creevey.mts +19 -0
  97. package/components/Hint/__creevey__/Hint.creevey.mts +68 -0
  98. package/components/Input/__creevey__/Input.creevey.mts +239 -0
  99. package/components/Kebab/__creevey__/Kebab.creevey.mts +147 -0
  100. package/components/Link/__creevey__/Link.creevey.mts +162 -0
  101. package/components/Loader/__creevey__/Loader.creevey.mts +35 -0
  102. package/components/MaskedInput/__creevey__/MaskedInput.creevey.mts +216 -0
  103. package/components/Modal/Modal/Modal.js +4 -16
  104. package/components/Modal/Modal/Modal.js.map +1 -1
  105. package/components/Modal/ModalContext/ModalContext.js.map +1 -1
  106. package/components/Modal/ModalContext.d.ts +3 -3
  107. package/components/Modal/ModalFooter/ModalFooter.js +2 -2
  108. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  109. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  110. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  111. package/components/Modal/__creevey__/Modal.creevey.mts +281 -0
  112. package/components/Paging/__creevey__/Paging.creevey.mts +97 -0
  113. package/components/PasswordInput/__creevey__/PasswordInput.creevey.mts +38 -0
  114. package/components/Radio/__creevey__/Radio.creevey.mts +28 -0
  115. package/components/RadioGroup/__creevey__/RadioGroup.creevey.mts +86 -0
  116. package/components/ScrollContainer/__creevey__/ScrollContainer.creevey.mts +247 -0
  117. package/components/Select/Select/Select.js +2 -5
  118. package/components/Select/Select/Select.js.map +1 -1
  119. package/components/Select/Select.d.ts +1 -6
  120. package/components/Select/__creevey__/Select.creevey.mts +293 -0
  121. package/components/Select/tids/package.json +6 -0
  122. package/components/Select/tids/tids.js +5 -0
  123. package/components/Select/tids/tids.js.map +1 -0
  124. package/components/Select/tids.d.ts +5 -0
  125. package/components/SidePage/__creevey__/SidePage.creevey.mts +319 -0
  126. package/components/Sticky/__creevey__/Sticky.creevey.mts +98 -0
  127. package/components/Switcher/__creevey__/Switcher.creevey.mts +24 -0
  128. package/components/Tabs/__creevey__/Tabs.creevey.mts +239 -0
  129. package/components/Textarea/__creevey__/Textarea.creevey.mts +177 -0
  130. package/components/Toast/__creevey__/Toast.creevey.mts +54 -0
  131. package/components/Toggle/__creevey__/Toggle.creevey.mts +87 -0
  132. package/components/TokenInput/__creevey__/TokenInput.creevey.mts +414 -0
  133. package/components/Tooltip/__creevey__/Tooltip.creevey.mts +533 -0
  134. package/components/TooltipMenu/__creevey__/TooltipMenu.creevey.mts +131 -0
  135. package/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.mts +48 -0
  136. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -3
  137. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  138. package/internal/CustomComboBox/CustomComboBox.d.ts +1 -3
  139. package/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.mts +30 -0
  140. package/internal/CustomComboBox/tids/package.json +6 -0
  141. package/internal/CustomComboBox/tids/tids.js +3 -0
  142. package/internal/CustomComboBox/tids/tids.js.map +1 -0
  143. package/internal/CustomComboBox/tids.d.ts +3 -0
  144. package/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.mts +25 -0
  145. package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.mts +83 -0
  146. package/internal/Menu/__creevey__/Menu.creevey.mts +90 -0
  147. package/internal/PopupMenu/PopupMenu/PopupMenu.js +2 -4
  148. package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
  149. package/internal/PopupMenu/PopupMenu.d.ts +1 -5
  150. package/internal/PopupMenu/__creevey__/PopupMenu.creevey.mts +37 -0
  151. package/internal/PopupMenu/tids/package.json +6 -0
  152. package/internal/PopupMenu/tids/tids.js +4 -0
  153. package/internal/PopupMenu/tids/tids.js.map +1 -0
  154. package/internal/PopupMenu/tids.d.ts +4 -0
  155. package/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.mts +68 -0
  156. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +2 -0
  157. package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
  158. package/internal/ZIndex/__creevey__/ZIndex.creevey.mts +228 -0
  159. package/lib/delay/delay.js +6 -0
  160. package/lib/delay/delay.js.map +1 -0
  161. package/lib/delay/package.json +6 -0
  162. package/lib/delay.d.ts +1 -0
  163. package/lib/utils/utils.js +3 -7
  164. package/lib/utils/utils.js.map +1 -1
  165. package/lib/utils.d.ts +3 -3
  166. package/package.json +6 -5
  167. package/cjs/components/Autocomplete/__creevey__/Autocomplete.creevey.js +0 -239
  168. package/cjs/components/Autocomplete/__creevey__/Autocomplete.creevey.js.map +0 -1
  169. package/cjs/components/Button/__creevey__/Button.creevey.js +0 -250
  170. package/cjs/components/Button/__creevey__/Button.creevey.js.map +0 -1
  171. package/cjs/components/Calendar/__creevey__/Calendar.creevey.js +0 -74
  172. package/cjs/components/Calendar/__creevey__/Calendar.creevey.js.map +0 -1
  173. package/cjs/components/Checkbox/__creevey__/Checkbox.creevey.js +0 -242
  174. package/cjs/components/Checkbox/__creevey__/Checkbox.creevey.js.map +0 -1
  175. package/cjs/components/ComboBox/__creevey__/ComboBox.creevey.js +0 -540
  176. package/cjs/components/ComboBox/__creevey__/ComboBox.creevey.js.map +0 -1
  177. package/cjs/components/CurrencyInput/__creevey__/CurrencyInput.creevey.js +0 -81
  178. package/cjs/components/CurrencyInput/__creevey__/CurrencyInput.creevey.js.map +0 -1
  179. package/cjs/components/DateInput/__creevey__/DateInput.creevey.js +0 -155
  180. package/cjs/components/DateInput/__creevey__/DateInput.creevey.js.map +0 -1
  181. package/cjs/components/DatePicker/__creevey__/DatePicker.creevey.js +0 -209
  182. package/cjs/components/DatePicker/__creevey__/DatePicker.creevey.js.map +0 -1
  183. package/cjs/components/Dropdown/__creevey__/Dropdown.creevey.js +0 -184
  184. package/cjs/components/Dropdown/__creevey__/Dropdown.creevey.js.map +0 -1
  185. package/cjs/components/DropdownMenu/__creevey__/DropdownMenu.creevey.js +0 -262
  186. package/cjs/components/DropdownMenu/__creevey__/DropdownMenu.creevey.js.map +0 -1
  187. package/cjs/components/FxInput/__creevey__/FxInput.creevey.js +0 -21
  188. package/cjs/components/FxInput/__creevey__/FxInput.creevey.js.map +0 -1
  189. package/cjs/components/Group/__creevey__/Group.creevey.js +0 -19
  190. package/cjs/components/Group/__creevey__/Group.creevey.js.map +0 -1
  191. package/cjs/components/Hint/__creevey__/Hint.creevey.js +0 -68
  192. package/cjs/components/Hint/__creevey__/Hint.creevey.js.map +0 -1
  193. package/cjs/components/Input/__creevey__/Input.creevey.js +0 -239
  194. package/cjs/components/Input/__creevey__/Input.creevey.js.map +0 -1
  195. package/cjs/components/Kebab/__creevey__/Kebab.creevey.js +0 -146
  196. package/cjs/components/Kebab/__creevey__/Kebab.creevey.js.map +0 -1
  197. package/cjs/components/Link/__creevey__/Link.creevey.js +0 -161
  198. package/cjs/components/Link/__creevey__/Link.creevey.js.map +0 -1
  199. package/cjs/components/Loader/__creevey__/Loader.creevey.js +0 -34
  200. package/cjs/components/Loader/__creevey__/Loader.creevey.js.map +0 -1
  201. package/cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.js +0 -219
  202. package/cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.js.map +0 -1
  203. package/cjs/components/Modal/__creevey__/Modal.creevey.js +0 -258
  204. package/cjs/components/Modal/__creevey__/Modal.creevey.js.map +0 -1
  205. package/cjs/components/Paging/__creevey__/Paging.creevey.js +0 -96
  206. package/cjs/components/Paging/__creevey__/Paging.creevey.js.map +0 -1
  207. package/cjs/components/PasswordInput/__creevey__/PasswordInput.creevey.js +0 -38
  208. package/cjs/components/PasswordInput/__creevey__/PasswordInput.creevey.js.map +0 -1
  209. package/cjs/components/Radio/__creevey__/Radio.creevey.js +0 -27
  210. package/cjs/components/Radio/__creevey__/Radio.creevey.js.map +0 -1
  211. package/cjs/components/RadioGroup/__creevey__/RadioGroup.creevey.js +0 -85
  212. package/cjs/components/RadioGroup/__creevey__/RadioGroup.creevey.js.map +0 -1
  213. package/cjs/components/ScrollContainer/__creevey__/ScrollContainer.creevey.js +0 -247
  214. package/cjs/components/ScrollContainer/__creevey__/ScrollContainer.creevey.js.map +0 -1
  215. package/cjs/components/Select/__creevey__/Select.creevey.js +0 -284
  216. package/cjs/components/Select/__creevey__/Select.creevey.js.map +0 -1
  217. package/cjs/components/SidePage/__creevey__/SidePage.creevey.js +0 -313
  218. package/cjs/components/SidePage/__creevey__/SidePage.creevey.js.map +0 -1
  219. package/cjs/components/Sticky/__creevey__/Sticky.creevey.js +0 -98
  220. package/cjs/components/Sticky/__creevey__/Sticky.creevey.js.map +0 -1
  221. package/cjs/components/Switcher/__creevey__/Switcher.creevey.js +0 -24
  222. package/cjs/components/Switcher/__creevey__/Switcher.creevey.js.map +0 -1
  223. package/cjs/components/Tabs/__creevey__/Tabs.creevey.js +0 -238
  224. package/cjs/components/Tabs/__creevey__/Tabs.creevey.js.map +0 -1
  225. package/cjs/components/Textarea/__creevey__/Textarea.creevey.js +0 -176
  226. package/cjs/components/Textarea/__creevey__/Textarea.creevey.js.map +0 -1
  227. package/cjs/components/Toast/__creevey__/Toast.creevey.js +0 -54
  228. package/cjs/components/Toast/__creevey__/Toast.creevey.js.map +0 -1
  229. package/cjs/components/Toggle/__creevey__/Toggle.creevey.js +0 -87
  230. package/cjs/components/Toggle/__creevey__/Toggle.creevey.js.map +0 -1
  231. package/cjs/components/TokenInput/__creevey__/TokenInput.creevey.js +0 -413
  232. package/cjs/components/TokenInput/__creevey__/TokenInput.creevey.js.map +0 -1
  233. package/cjs/components/Tooltip/__creevey__/Tooltip.creevey.js +0 -534
  234. package/cjs/components/Tooltip/__creevey__/Tooltip.creevey.js.map +0 -1
  235. package/cjs/components/TooltipMenu/__creevey__/TooltipMenu.creevey.js +0 -130
  236. package/cjs/components/TooltipMenu/__creevey__/TooltipMenu.creevey.js.map +0 -1
  237. package/cjs/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.js +0 -47
  238. package/cjs/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.js.map +0 -1
  239. package/cjs/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.js +0 -30
  240. package/cjs/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.js.map +0 -1
  241. package/cjs/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.js +0 -25
  242. package/cjs/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.js.map +0 -1
  243. package/cjs/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.js +0 -83
  244. package/cjs/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.js.map +0 -1
  245. package/cjs/internal/Menu/__creevey__/Menu.creevey.js +0 -90
  246. package/cjs/internal/Menu/__creevey__/Menu.creevey.js.map +0 -1
  247. package/cjs/internal/PopupMenu/__creevey__/PopupMenu.creevey.js +0 -37
  248. package/cjs/internal/PopupMenu/__creevey__/PopupMenu.creevey.js.map +0 -1
  249. package/cjs/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.js +0 -68
  250. package/cjs/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.js.map +0 -1
  251. package/cjs/internal/ZIndex/__creevey__/ZIndex.creevey.js +0 -228
  252. package/cjs/internal/ZIndex/__creevey__/ZIndex.creevey.js.map +0 -1
  253. package/cjs/lib/styles/HoldSelectionColor.d.ts +0 -1
  254. package/cjs/lib/styles/HoldSelectionColor.js +0 -9
  255. package/cjs/lib/styles/HoldSelectionColor.js.map +0 -1
  256. package/components/Autocomplete/__creevey__/Autocomplete.creevey/Autocomplete.creevey.js +0 -506
  257. package/components/Autocomplete/__creevey__/Autocomplete.creevey/Autocomplete.creevey.js.map +0 -1
  258. package/components/Autocomplete/__creevey__/Autocomplete.creevey/package.json +0 -6
  259. package/components/Autocomplete/__creevey__/Autocomplete.creevey.d.ts +0 -1
  260. package/components/Button/__creevey__/Button.creevey/Button.creevey.js +0 -396
  261. package/components/Button/__creevey__/Button.creevey/Button.creevey.js.map +0 -1
  262. package/components/Button/__creevey__/Button.creevey/package.json +0 -6
  263. package/components/Button/__creevey__/Button.creevey.d.ts +0 -1
  264. package/components/Calendar/__creevey__/Calendar.creevey/Calendar.creevey.js +0 -138
  265. package/components/Calendar/__creevey__/Calendar.creevey/Calendar.creevey.js.map +0 -1
  266. package/components/Calendar/__creevey__/Calendar.creevey/package.json +0 -6
  267. package/components/Calendar/__creevey__/Calendar.creevey.d.ts +0 -1
  268. package/components/Checkbox/__creevey__/Checkbox.creevey/Checkbox.creevey.js +0 -487
  269. package/components/Checkbox/__creevey__/Checkbox.creevey/Checkbox.creevey.js.map +0 -1
  270. package/components/Checkbox/__creevey__/Checkbox.creevey/package.json +0 -6
  271. package/components/Checkbox/__creevey__/Checkbox.creevey.d.ts +0 -1
  272. package/components/ComboBox/__creevey__/ComboBox.creevey/ComboBox.creevey.js +0 -1043
  273. package/components/ComboBox/__creevey__/ComboBox.creevey/ComboBox.creevey.js.map +0 -1
  274. package/components/ComboBox/__creevey__/ComboBox.creevey/package.json +0 -6
  275. package/components/ComboBox/__creevey__/ComboBox.creevey.d.ts +0 -1
  276. package/components/CurrencyInput/__creevey__/CurrencyInput.creevey/CurrencyInput.creevey.js +0 -114
  277. package/components/CurrencyInput/__creevey__/CurrencyInput.creevey/CurrencyInput.creevey.js.map +0 -1
  278. package/components/CurrencyInput/__creevey__/CurrencyInput.creevey/package.json +0 -6
  279. package/components/CurrencyInput/__creevey__/CurrencyInput.creevey.d.ts +0 -1
  280. package/components/DateInput/__creevey__/DateInput.creevey/DateInput.creevey.js +0 -367
  281. package/components/DateInput/__creevey__/DateInput.creevey/DateInput.creevey.js.map +0 -1
  282. package/components/DateInput/__creevey__/DateInput.creevey/package.json +0 -6
  283. package/components/DateInput/__creevey__/DateInput.creevey.d.ts +0 -1
  284. package/components/DatePicker/__creevey__/DatePicker.creevey/DatePicker.creevey.js +0 -395
  285. package/components/DatePicker/__creevey__/DatePicker.creevey/DatePicker.creevey.js.map +0 -1
  286. package/components/DatePicker/__creevey__/DatePicker.creevey/package.json +0 -6
  287. package/components/DatePicker/__creevey__/DatePicker.creevey.d.ts +0 -1
  288. package/components/Dropdown/__creevey__/Dropdown.creevey/Dropdown.creevey.js +0 -417
  289. package/components/Dropdown/__creevey__/Dropdown.creevey/Dropdown.creevey.js.map +0 -1
  290. package/components/Dropdown/__creevey__/Dropdown.creevey/package.json +0 -6
  291. package/components/Dropdown/__creevey__/Dropdown.creevey.d.ts +0 -1
  292. package/components/DropdownMenu/__creevey__/DropdownMenu.creevey/DropdownMenu.creevey.js +0 -534
  293. package/components/DropdownMenu/__creevey__/DropdownMenu.creevey/DropdownMenu.creevey.js.map +0 -1
  294. package/components/DropdownMenu/__creevey__/DropdownMenu.creevey/package.json +0 -6
  295. package/components/DropdownMenu/__creevey__/DropdownMenu.creevey.d.ts +0 -1
  296. package/components/FxInput/__creevey__/FxInput.creevey/FxInput.creevey.js +0 -62
  297. package/components/FxInput/__creevey__/FxInput.creevey/FxInput.creevey.js.map +0 -1
  298. package/components/FxInput/__creevey__/FxInput.creevey/package.json +0 -6
  299. package/components/FxInput/__creevey__/FxInput.creevey.d.ts +0 -1
  300. package/components/Group/__creevey__/Group.creevey/Group.creevey.js +0 -48
  301. package/components/Group/__creevey__/Group.creevey/Group.creevey.js.map +0 -1
  302. package/components/Group/__creevey__/Group.creevey/package.json +0 -6
  303. package/components/Group/__creevey__/Group.creevey.d.ts +0 -1
  304. package/components/Hint/__creevey__/Hint.creevey/Hint.creevey.js +0 -127
  305. package/components/Hint/__creevey__/Hint.creevey/Hint.creevey.js.map +0 -1
  306. package/components/Hint/__creevey__/Hint.creevey/package.json +0 -6
  307. package/components/Hint/__creevey__/Hint.creevey.d.ts +0 -1
  308. package/components/Input/__creevey__/Input.creevey/Input.creevey.js +0 -517
  309. package/components/Input/__creevey__/Input.creevey/Input.creevey.js.map +0 -1
  310. package/components/Input/__creevey__/Input.creevey/package.json +0 -6
  311. package/components/Input/__creevey__/Input.creevey.d.ts +0 -1
  312. package/components/Kebab/__creevey__/Kebab.creevey/Kebab.creevey.js +0 -278
  313. package/components/Kebab/__creevey__/Kebab.creevey/Kebab.creevey.js.map +0 -1
  314. package/components/Kebab/__creevey__/Kebab.creevey/package.json +0 -6
  315. package/components/Kebab/__creevey__/Kebab.creevey.d.ts +0 -1
  316. package/components/Link/__creevey__/Link.creevey/Link.creevey.js +0 -238
  317. package/components/Link/__creevey__/Link.creevey/Link.creevey.js.map +0 -1
  318. package/components/Link/__creevey__/Link.creevey/package.json +0 -6
  319. package/components/Link/__creevey__/Link.creevey.d.ts +0 -1
  320. package/components/Loader/__creevey__/Loader.creevey/Loader.creevey.js +0 -129
  321. package/components/Loader/__creevey__/Loader.creevey/Loader.creevey.js.map +0 -1
  322. package/components/Loader/__creevey__/Loader.creevey/package.json +0 -6
  323. package/components/Loader/__creevey__/Loader.creevey.d.ts +0 -1
  324. package/components/MaskedInput/__creevey__/MaskedInput.creevey/MaskedInput.creevey.js +0 -405
  325. package/components/MaskedInput/__creevey__/MaskedInput.creevey/MaskedInput.creevey.js.map +0 -1
  326. package/components/MaskedInput/__creevey__/MaskedInput.creevey/package.json +0 -6
  327. package/components/MaskedInput/__creevey__/MaskedInput.creevey.d.ts +0 -1
  328. package/components/Modal/__creevey__/Modal.creevey/Modal.creevey.js +0 -565
  329. package/components/Modal/__creevey__/Modal.creevey/Modal.creevey.js.map +0 -1
  330. package/components/Modal/__creevey__/Modal.creevey/package.json +0 -6
  331. package/components/Modal/__creevey__/Modal.creevey.d.ts +0 -1
  332. package/components/Paging/__creevey__/Paging.creevey/Paging.creevey.js +0 -190
  333. package/components/Paging/__creevey__/Paging.creevey/Paging.creevey.js.map +0 -1
  334. package/components/Paging/__creevey__/Paging.creevey/package.json +0 -6
  335. package/components/Paging/__creevey__/Paging.creevey.d.ts +0 -1
  336. package/components/PasswordInput/__creevey__/PasswordInput.creevey/PasswordInput.creevey.js +0 -83
  337. package/components/PasswordInput/__creevey__/PasswordInput.creevey/PasswordInput.creevey.js.map +0 -1
  338. package/components/PasswordInput/__creevey__/PasswordInput.creevey/package.json +0 -6
  339. package/components/PasswordInput/__creevey__/PasswordInput.creevey.d.ts +0 -1
  340. package/components/Radio/__creevey__/Radio.creevey/Radio.creevey.js +0 -56
  341. package/components/Radio/__creevey__/Radio.creevey/Radio.creevey.js.map +0 -1
  342. package/components/Radio/__creevey__/Radio.creevey/package.json +0 -6
  343. package/components/Radio/__creevey__/Radio.creevey.d.ts +0 -1
  344. package/components/RadioGroup/__creevey__/RadioGroup.creevey/RadioGroup.creevey.js +0 -167
  345. package/components/RadioGroup/__creevey__/RadioGroup.creevey/RadioGroup.creevey.js.map +0 -1
  346. package/components/RadioGroup/__creevey__/RadioGroup.creevey/package.json +0 -6
  347. package/components/RadioGroup/__creevey__/RadioGroup.creevey.d.ts +0 -1
  348. package/components/ScrollContainer/__creevey__/ScrollContainer.creevey/ScrollContainer.creevey.js +0 -488
  349. package/components/ScrollContainer/__creevey__/ScrollContainer.creevey/ScrollContainer.creevey.js.map +0 -1
  350. package/components/ScrollContainer/__creevey__/ScrollContainer.creevey/package.json +0 -6
  351. package/components/ScrollContainer/__creevey__/ScrollContainer.creevey.d.ts +0 -1
  352. package/components/Select/__creevey__/Select.creevey/Select.creevey.js +0 -541
  353. package/components/Select/__creevey__/Select.creevey/Select.creevey.js.map +0 -1
  354. package/components/Select/__creevey__/Select.creevey/package.json +0 -6
  355. package/components/Select/__creevey__/Select.creevey.d.ts +0 -1
  356. package/components/SidePage/__creevey__/SidePage.creevey/SidePage.creevey.js +0 -697
  357. package/components/SidePage/__creevey__/SidePage.creevey/SidePage.creevey.js.map +0 -1
  358. package/components/SidePage/__creevey__/SidePage.creevey/package.json +0 -6
  359. package/components/SidePage/__creevey__/SidePage.creevey.d.ts +0 -1
  360. package/components/Sticky/__creevey__/Sticky.creevey/Sticky.creevey.js +0 -215
  361. package/components/Sticky/__creevey__/Sticky.creevey/Sticky.creevey.js.map +0 -1
  362. package/components/Sticky/__creevey__/Sticky.creevey/package.json +0 -6
  363. package/components/Sticky/__creevey__/Sticky.creevey.d.ts +0 -1
  364. package/components/Switcher/__creevey__/Switcher.creevey/Switcher.creevey.js +0 -58
  365. package/components/Switcher/__creevey__/Switcher.creevey/Switcher.creevey.js.map +0 -1
  366. package/components/Switcher/__creevey__/Switcher.creevey/package.json +0 -6
  367. package/components/Switcher/__creevey__/Switcher.creevey.d.ts +0 -1
  368. package/components/Tabs/__creevey__/Tabs.creevey/Tabs.creevey.js +0 -391
  369. package/components/Tabs/__creevey__/Tabs.creevey/Tabs.creevey.js.map +0 -1
  370. package/components/Tabs/__creevey__/Tabs.creevey/package.json +0 -6
  371. package/components/Tabs/__creevey__/Tabs.creevey.d.ts +0 -1
  372. package/components/Textarea/__creevey__/Textarea.creevey/Textarea.creevey.js +0 -404
  373. package/components/Textarea/__creevey__/Textarea.creevey/Textarea.creevey.js.map +0 -1
  374. package/components/Textarea/__creevey__/Textarea.creevey/package.json +0 -6
  375. package/components/Textarea/__creevey__/Textarea.creevey.d.ts +0 -1
  376. package/components/Toast/__creevey__/Toast.creevey/Toast.creevey.js +0 -70
  377. package/components/Toast/__creevey__/Toast.creevey/Toast.creevey.js.map +0 -1
  378. package/components/Toast/__creevey__/Toast.creevey/package.json +0 -6
  379. package/components/Toast/__creevey__/Toast.creevey.d.ts +0 -1
  380. package/components/Toggle/__creevey__/Toggle.creevey/Toggle.creevey.js +0 -195
  381. package/components/Toggle/__creevey__/Toggle.creevey/Toggle.creevey.js.map +0 -1
  382. package/components/Toggle/__creevey__/Toggle.creevey/package.json +0 -6
  383. package/components/Toggle/__creevey__/Toggle.creevey.d.ts +0 -1
  384. package/components/TokenInput/__creevey__/TokenInput.creevey/TokenInput.creevey.js +0 -635
  385. package/components/TokenInput/__creevey__/TokenInput.creevey/TokenInput.creevey.js.map +0 -1
  386. package/components/TokenInput/__creevey__/TokenInput.creevey/package.json +0 -6
  387. package/components/TokenInput/__creevey__/TokenInput.creevey.d.ts +0 -1
  388. package/components/Tooltip/__creevey__/Tooltip.creevey/Tooltip.creevey.js +0 -1171
  389. package/components/Tooltip/__creevey__/Tooltip.creevey/Tooltip.creevey.js.map +0 -1
  390. package/components/Tooltip/__creevey__/Tooltip.creevey/package.json +0 -6
  391. package/components/Tooltip/__creevey__/Tooltip.creevey.d.ts +0 -1
  392. package/components/TooltipMenu/__creevey__/TooltipMenu.creevey/TooltipMenu.creevey.js +0 -277
  393. package/components/TooltipMenu/__creevey__/TooltipMenu.creevey/TooltipMenu.creevey.js.map +0 -1
  394. package/components/TooltipMenu/__creevey__/TooltipMenu.creevey/package.json +0 -6
  395. package/components/TooltipMenu/__creevey__/TooltipMenu.creevey.d.ts +0 -1
  396. package/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey/CloseButtonIcon.creevey.js +0 -78
  397. package/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey/CloseButtonIcon.creevey.js.map +0 -1
  398. package/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey/package.json +0 -6
  399. package/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.d.ts +0 -1
  400. package/internal/CustomComboBox/__creevey__/ComboBoxView.creevey/ComboBoxView.creevey.js +0 -58
  401. package/internal/CustomComboBox/__creevey__/ComboBoxView.creevey/ComboBoxView.creevey.js.map +0 -1
  402. package/internal/CustomComboBox/__creevey__/ComboBoxView.creevey/package.json +0 -6
  403. package/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.d.ts +0 -1
  404. package/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey/FileUploaderFile.creevey.js +0 -41
  405. package/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey/FileUploaderFile.creevey.js.map +0 -1
  406. package/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey/package.json +0 -6
  407. package/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.d.ts +0 -1
  408. package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey/HideBodyVerticalScroll.creevey.js +0 -199
  409. package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey/HideBodyVerticalScroll.creevey.js.map +0 -1
  410. package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey/package.json +0 -6
  411. package/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.d.ts +0 -1
  412. package/internal/Menu/__creevey__/Menu.creevey/Menu.creevey.js +0 -196
  413. package/internal/Menu/__creevey__/Menu.creevey/Menu.creevey.js.map +0 -1
  414. package/internal/Menu/__creevey__/Menu.creevey/package.json +0 -6
  415. package/internal/Menu/__creevey__/Menu.creevey.d.ts +0 -1
  416. package/internal/PopupMenu/__creevey__/PopupMenu.creevey/PopupMenu.creevey.js +0 -69
  417. package/internal/PopupMenu/__creevey__/PopupMenu.creevey/PopupMenu.creevey.js.map +0 -1
  418. package/internal/PopupMenu/__creevey__/PopupMenu.creevey/package.json +0 -6
  419. package/internal/PopupMenu/__creevey__/PopupMenu.creevey.d.ts +0 -1
  420. package/internal/ThemePlayground/__creevey__/ThemeProvider.creevey/ThemeProvider.creevey.js +0 -145
  421. package/internal/ThemePlayground/__creevey__/ThemeProvider.creevey/ThemeProvider.creevey.js.map +0 -1
  422. package/internal/ThemePlayground/__creevey__/ThemeProvider.creevey/package.json +0 -6
  423. package/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.d.ts +0 -1
  424. package/internal/ZIndex/__creevey__/ZIndex.creevey/ZIndex.creevey.js +0 -550
  425. package/internal/ZIndex/__creevey__/ZIndex.creevey/ZIndex.creevey.js.map +0 -1
  426. package/internal/ZIndex/__creevey__/ZIndex.creevey/package.json +0 -6
  427. package/internal/ZIndex/__creevey__/ZIndex.creevey.d.ts +0 -1
  428. package/lib/styles/HoldSelectionColor/HoldSelectionColor.js +0 -8
  429. package/lib/styles/HoldSelectionColor/HoldSelectionColor.js.map +0 -1
  430. package/lib/styles/HoldSelectionColor/package.json +0 -6
  431. package/lib/styles/HoldSelectionColor.d.ts +0 -1
  432. /package/{cjs/components/Autocomplete/__creevey__/Autocomplete.creevey.d.ts → components/Autocomplete/__creevey__/Autocomplete.creevey.d.mts} +0 -0
  433. /package/{cjs/components/Button/__creevey__/Button.creevey.d.ts → components/Button/__creevey__/Button.creevey.d.mts} +0 -0
  434. /package/{cjs/components/Calendar/__creevey__/Calendar.creevey.d.ts → components/Calendar/__creevey__/Calendar.creevey.d.mts} +0 -0
  435. /package/{cjs/components/Checkbox/__creevey__/Checkbox.creevey.d.ts → components/Checkbox/__creevey__/Checkbox.creevey.d.mts} +0 -0
  436. /package/{cjs/components/ComboBox/__creevey__/ComboBox.creevey.d.ts → components/ComboBox/__creevey__/ComboBox.creevey.d.mts} +0 -0
  437. /package/{cjs/components/CurrencyInput/__creevey__/CurrencyInput.creevey.d.ts → components/CurrencyInput/__creevey__/CurrencyInput.creevey.d.mts} +0 -0
  438. /package/{cjs/components/DateInput/__creevey__/DateInput.creevey.d.ts → components/DateInput/__creevey__/DateInput.creevey.d.mts} +0 -0
  439. /package/{cjs/components/DatePicker/__creevey__/DatePicker.creevey.d.ts → components/DatePicker/__creevey__/DatePicker.creevey.d.mts} +0 -0
  440. /package/{cjs/components/Dropdown/__creevey__/Dropdown.creevey.d.ts → components/Dropdown/__creevey__/Dropdown.creevey.d.mts} +0 -0
  441. /package/{cjs/components/DropdownMenu/__creevey__/DropdownMenu.creevey.d.ts → components/DropdownMenu/__creevey__/DropdownMenu.creevey.d.mts} +0 -0
  442. /package/{cjs/components/FxInput/__creevey__/FxInput.creevey.d.ts → components/FxInput/__creevey__/FxInput.creevey.d.mts} +0 -0
  443. /package/{cjs/components/Group/__creevey__/Group.creevey.d.ts → components/Group/__creevey__/Group.creevey.d.mts} +0 -0
  444. /package/{cjs/components/Hint/__creevey__/Hint.creevey.d.ts → components/Hint/__creevey__/Hint.creevey.d.mts} +0 -0
  445. /package/{cjs/components/Input/__creevey__/Input.creevey.d.ts → components/Input/__creevey__/Input.creevey.d.mts} +0 -0
  446. /package/{cjs/components/Kebab/__creevey__/Kebab.creevey.d.ts → components/Kebab/__creevey__/Kebab.creevey.d.mts} +0 -0
  447. /package/{cjs/components/Link/__creevey__/Link.creevey.d.ts → components/Link/__creevey__/Link.creevey.d.mts} +0 -0
  448. /package/{cjs/components/Loader/__creevey__/Loader.creevey.d.ts → components/Loader/__creevey__/Loader.creevey.d.mts} +0 -0
  449. /package/{cjs/components/MaskedInput/__creevey__/MaskedInput.creevey.d.ts → components/MaskedInput/__creevey__/MaskedInput.creevey.d.mts} +0 -0
  450. /package/{cjs/components/Modal/__creevey__/Modal.creevey.d.ts → components/Modal/__creevey__/Modal.creevey.d.mts} +0 -0
  451. /package/{cjs/components/Paging/__creevey__/Paging.creevey.d.ts → components/Paging/__creevey__/Paging.creevey.d.mts} +0 -0
  452. /package/{cjs/components/PasswordInput/__creevey__/PasswordInput.creevey.d.ts → components/PasswordInput/__creevey__/PasswordInput.creevey.d.mts} +0 -0
  453. /package/{cjs/components/Radio/__creevey__/Radio.creevey.d.ts → components/Radio/__creevey__/Radio.creevey.d.mts} +0 -0
  454. /package/{cjs/components/RadioGroup/__creevey__/RadioGroup.creevey.d.ts → components/RadioGroup/__creevey__/RadioGroup.creevey.d.mts} +0 -0
  455. /package/{cjs/components/ScrollContainer/__creevey__/ScrollContainer.creevey.d.ts → components/ScrollContainer/__creevey__/ScrollContainer.creevey.d.mts} +0 -0
  456. /package/{cjs/components/Select/__creevey__/Select.creevey.d.ts → components/Select/__creevey__/Select.creevey.d.mts} +0 -0
  457. /package/{cjs/components/SidePage/__creevey__/SidePage.creevey.d.ts → components/SidePage/__creevey__/SidePage.creevey.d.mts} +0 -0
  458. /package/{cjs/components/Sticky/__creevey__/Sticky.creevey.d.ts → components/Sticky/__creevey__/Sticky.creevey.d.mts} +0 -0
  459. /package/{cjs/components/Switcher/__creevey__/Switcher.creevey.d.ts → components/Switcher/__creevey__/Switcher.creevey.d.mts} +0 -0
  460. /package/{cjs/components/Tabs/__creevey__/Tabs.creevey.d.ts → components/Tabs/__creevey__/Tabs.creevey.d.mts} +0 -0
  461. /package/{cjs/components/Textarea/__creevey__/Textarea.creevey.d.ts → components/Textarea/__creevey__/Textarea.creevey.d.mts} +0 -0
  462. /package/{cjs/components/Toast/__creevey__/Toast.creevey.d.ts → components/Toast/__creevey__/Toast.creevey.d.mts} +0 -0
  463. /package/{cjs/components/Toggle/__creevey__/Toggle.creevey.d.ts → components/Toggle/__creevey__/Toggle.creevey.d.mts} +0 -0
  464. /package/{cjs/components/TokenInput/__creevey__/TokenInput.creevey.d.ts → components/TokenInput/__creevey__/TokenInput.creevey.d.mts} +0 -0
  465. /package/{cjs/components/Tooltip/__creevey__/Tooltip.creevey.d.ts → components/Tooltip/__creevey__/Tooltip.creevey.d.mts} +0 -0
  466. /package/{cjs/components/TooltipMenu/__creevey__/TooltipMenu.creevey.d.ts → components/TooltipMenu/__creevey__/TooltipMenu.creevey.d.mts} +0 -0
  467. /package/{cjs/internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.d.ts → internal/CloseButtonIcon/__creevey__/CloseButtonIcon.creevey.d.mts} +0 -0
  468. /package/{cjs/internal/CustomComboBox/__creevey__/ComboBoxView.creevey.d.ts → internal/CustomComboBox/__creevey__/ComboBoxView.creevey.d.mts} +0 -0
  469. /package/{cjs/internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.d.ts → internal/FileUploaderControl/__creevey__/FileUploaderFile.creevey.d.mts} +0 -0
  470. /package/{cjs/internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.d.ts → internal/HideBodyVerticalScroll/__creevey__/HideBodyVerticalScroll.creevey.d.mts} +0 -0
  471. /package/{cjs/internal/Menu/__creevey__/Menu.creevey.d.ts → internal/Menu/__creevey__/Menu.creevey.d.mts} +0 -0
  472. /package/{cjs/internal/PopupMenu/__creevey__/PopupMenu.creevey.d.ts → internal/PopupMenu/__creevey__/PopupMenu.creevey.d.mts} +0 -0
  473. /package/{cjs/internal/ThemePlayground/__creevey__/ThemeProvider.creevey.d.ts → internal/ThemePlayground/__creevey__/ThemeProvider.creevey.d.mts} +0 -0
  474. /package/{cjs/internal/ZIndex/__creevey__/ZIndex.creevey.d.ts → internal/ZIndex/__creevey__/ZIndex.creevey.d.mts} +0 -0
@@ -0,0 +1,216 @@
1
+ import { story, kind, test } from 'creevey';
2
+ import { Key } from 'selenium-webdriver';
3
+
4
+ import { delay } from '../../../lib/delay';
5
+
6
+ const testIdleFocusEditBlur = () => {
7
+ test('idle, focus, edit, blur', async (context) => {
8
+ const click = (css: string) => {
9
+ return context.webdriver
10
+ .actions({
11
+ bridge: true,
12
+ })
13
+ .click(context.webdriver.findElement({ css }));
14
+ };
15
+ const idle = await context.takeScreenshot();
16
+
17
+ await click('input').pause(500).perform();
18
+ const focused = await context.takeScreenshot();
19
+
20
+ await click('input').sendKeys('953').perform();
21
+ const edited = await context.takeScreenshot();
22
+
23
+ await click('body').perform();
24
+ const blured = await context.takeScreenshot();
25
+
26
+ await context.matchImages({ idle, focused, edited, blured });
27
+ });
28
+ };
29
+
30
+ const testIdleFocusAppendRemoveBlur = () => {
31
+ test('idle, focus, edit, blur', async (context) => {
32
+ const click = (css: string) => {
33
+ return context.webdriver
34
+ .actions({
35
+ bridge: true,
36
+ })
37
+ .click(context.webdriver.findElement({ css }));
38
+ };
39
+
40
+ const idle = await context.takeScreenshot();
41
+
42
+ await click('input').pause(500).perform();
43
+ const focused = await context.takeScreenshot();
44
+
45
+ await click('input').sendKeys('953').perform();
46
+ const appended = await context.takeScreenshot();
47
+
48
+ await click('input').sendKeys(Key.BACK_SPACE).sendKeys(Key.BACK_SPACE).sendKeys(Key.BACK_SPACE).perform();
49
+ const restored = await context.takeScreenshot();
50
+
51
+ await click('body').perform();
52
+ const blured = await context.takeScreenshot();
53
+
54
+ await context.matchImages({ idle, focused, appended, restored, blured });
55
+ });
56
+ };
57
+
58
+ const testIdleFocusBlur = () => {
59
+ test('idle, focus, blur', async (context) => {
60
+ const click = (css: string) => {
61
+ return context.webdriver
62
+ .actions({
63
+ bridge: true,
64
+ })
65
+ .click(context.webdriver.findElement({ css }));
66
+ };
67
+
68
+ const idle = await context.takeScreenshot();
69
+
70
+ await click('input').pause(500).perform();
71
+ const focused = await context.takeScreenshot();
72
+
73
+ await click('body').perform();
74
+ const blured = await context.takeScreenshot();
75
+
76
+ await context.matchImages({ idle, focused, blured });
77
+ });
78
+ };
79
+
80
+ const testRewriteInMiddle = () => {
81
+ test('idle, shift, rewrite', async (context) => {
82
+ const click = (css: string) => {
83
+ return context.webdriver
84
+ .actions({
85
+ bridge: true,
86
+ })
87
+ .click(context.webdriver.findElement({ css }))
88
+ .pause(500);
89
+ };
90
+
91
+ const idle = await context.takeScreenshot();
92
+
93
+ click('input').keyDown(Key.ARROW_LEFT).keyDown(Key.ARROW_LEFT).sendKeys('12').perform();
94
+ const shift = await context.takeScreenshot();
95
+
96
+ click('body');
97
+
98
+ click('input').keyDown(Key.ARROW_LEFT).keyDown(Key.ARROW_LEFT).sendKeys('56').perform();
99
+ const rewrite = await context.takeScreenshot();
100
+
101
+ await context.matchImages({ idle, shift, rewrite });
102
+ });
103
+ };
104
+
105
+ kind('MaskedInput', () => {
106
+ story('Default', ({ setStoryParameters }) => {
107
+ setStoryParameters({
108
+ skip: { 'enough basic themes': { in: /^(?!^(?:chrome2022|firefox2022)$)/ } },
109
+ });
110
+ testIdleFocusEditBlur();
111
+ });
112
+
113
+ story('IdleFocusEditBlurWithPlaceholder', ({ setStoryParameters }) => {
114
+ setStoryParameters({
115
+ skip: { 'enough basic themes': { in: /^(?!^(?:chrome2022|firefox2022)$)/ } },
116
+ });
117
+ testIdleFocusEditBlur();
118
+ });
119
+
120
+ story('IdleFocusBlurWithPlaceholder', ({ setStoryParameters }) => {
121
+ setStoryParameters({
122
+ skip: { 'enough basic themes': { in: /^(?!^(?:chrome2022|firefox2022)$)/ } },
123
+ });
124
+ testIdleFocusBlur();
125
+ });
126
+
127
+ story('IdleFocusAppendRemoveBlurWithPlaceholder', ({ setStoryParameters }) => {
128
+ setStoryParameters({
129
+ skip: { 'enough basic themes': { in: /^(?!^(?:chrome2022|firefox2022)$)/ } },
130
+ });
131
+ testIdleFocusAppendRemoveBlur();
132
+ });
133
+
134
+ story('IdleFocusBlurWithPrefix', ({ setStoryParameters }) => {
135
+ setStoryParameters({
136
+ skip: { 'enough basic themes': { in: /^(?!^(?:chrome2022|firefox2022)$)/ } },
137
+ });
138
+ testIdleFocusBlur();
139
+ });
140
+
141
+ story('WithCustomUnmaskedValue', ({ setStoryParameters }) => {
142
+ setStoryParameters({
143
+ skip: { 'enough basic themes': { in: /^(?!^(?:chrome2022|firefox2022)$)/ } },
144
+ });
145
+ testIdleFocusEditBlur();
146
+ });
147
+
148
+ story('WithUnmaskedAndFixedValue', ({ setStoryParameters }) => {
149
+ setStoryParameters({
150
+ skip: { 'enough basic themes': { in: /^(?!^(?:chrome2022|firefox2022)$)/ } },
151
+ });
152
+ testIdleFocusAppendRemoveBlur();
153
+ });
154
+
155
+ story('IdleFocusBlurAndUncontrolled', ({ setStoryParameters }) => {
156
+ setStoryParameters({
157
+ skip: { 'enough basic themes': { in: /^(?!^(?:chrome2022|firefox2022)$)/ } },
158
+ });
159
+ testIdleFocusEditBlur();
160
+ });
161
+
162
+ story('RewriteInMiddle', ({ setStoryParameters }) => {
163
+ setStoryParameters({
164
+ skip: { 'enough basic themes': { in: /^(?!^(?:chrome2022|firefox2022)$)/ } },
165
+ });
166
+ testRewriteInMiddle();
167
+ });
168
+
169
+ story('SelectAllByProp', ({ setStoryParameters }) => {
170
+ setStoryParameters({
171
+ skip: { 'enough basic themes': { in: /^(?!^(?:chrome2022|firefox2022)$)/ } },
172
+ });
173
+ test('Plain focused', async (context) => {
174
+ const idle = await context.takeScreenshot();
175
+ await context.webdriver
176
+ .actions({
177
+ bridge: true,
178
+ })
179
+ .click(context.webdriver.findElement({ css: 'input' }))
180
+ .pause(500)
181
+ .perform();
182
+ const select_half = await context.takeScreenshot();
183
+ await context.webdriver
184
+ .actions({
185
+ bridge: true,
186
+ })
187
+ .click(context.webdriver.findElement({ css: 'body' }))
188
+ .click(context.webdriver.findElement({ css: 'input' }))
189
+ .sendKeys('1234')
190
+ .click(context.webdriver.findElement({ css: 'body' }))
191
+ .click(context.webdriver.findElement({ css: 'input' }))
192
+ .pause(500)
193
+ .perform();
194
+ const select_all = await context.takeScreenshot();
195
+ await context.matchImages({ idle, select_half, select_all });
196
+ });
197
+ });
198
+
199
+ story('SelectAllByButton', ({ setStoryParameters }) => {
200
+ setStoryParameters({
201
+ skip: true, // flaky
202
+ });
203
+ test('Plain focused', async (context) => {
204
+ const plain = await context.takeScreenshot();
205
+ await context.webdriver
206
+ .actions({
207
+ bridge: true,
208
+ })
209
+ .click(context.webdriver.findElement({ css: '[data-tid~="select-all"]' }))
210
+ .perform();
211
+ await delay(500);
212
+ const select_all = await context.takeScreenshot();
213
+ await context.matchImages({ plain, select_all });
214
+ });
215
+ });
216
+ });
@@ -129,26 +129,17 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
129
129
  LayoutEvents.emit();
130
130
  };
131
131
  _this.setHasHeader = function (hasHeader) {
132
- if (hasHeader === void 0) {
133
- hasHeader = true;
134
- }
135
- _this.state.hasHeader !== hasHeader && _this.setState({
132
+ _this.setState({
136
133
  hasHeader: hasHeader
137
134
  });
138
135
  };
139
136
  _this.setHasFooter = function (hasFooter) {
140
- if (hasFooter === void 0) {
141
- hasFooter = true;
142
- }
143
- _this.state.hasFooter !== hasFooter && _this.setState({
137
+ _this.setState({
144
138
  hasFooter: hasFooter
145
139
  });
146
140
  };
147
141
  _this.setHasPanel = function (hasPanel) {
148
- if (hasPanel === void 0) {
149
- hasPanel = false;
150
- }
151
- _this.state.hasPanel !== hasPanel && _this.setState({
142
+ _this.setState({
152
143
  hasPanel: hasPanel
153
144
  });
154
145
  };
@@ -221,10 +212,7 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
221
212
  requestClose: this.requestClose
222
213
  };
223
214
  }
224
- if (!hasFooter) {
225
- modalContextProps.additionalPadding = true;
226
- }
227
- if (hasFooter && hasPanel) {
215
+ if (!hasFooter || hasPanel) {
228
216
  modalContextProps.additionalPadding = true;
229
217
  }
230
218
  var style = {};
@@ -1 +1 @@
1
- {"version":3,"names":["React","FocusLock","throttle","globalObject","isNonNullable","isKeyEscape","LayoutEvents","RenderContainer","ZIndex","stopPropagation","HideBodyVerticalScroll","ModalStack","ResizeDetector","ThemeContext","isIE11","CommonWrapper","cx","createPropsGetter","ResponsiveLayout","ModalContext","ModalFooter","ModalHeader","ModalBody","ModalClose","styles","getModalTheme","mountedModalsCount","ModalDataTids","container","content","close","Modal","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","_inheritsLoose","_proto","prototype","componentDidMount","add","addEventListener","componentWillUnmount","removeEventListener","remove","render","_this2","createElement","Consumer","theme","Provider","value","renderMain","_this3","_this$props","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","_this$state","_this$getProps","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","priority","className","root","onMouseDown","onMouseUp","onClick","bg","_ref","_cx","_cx2","_cx3","_cx4","_cx5","isMobile","ref","containerMobile","centerContainer","mobileCenterContainer","Boolean","undefined","window","mobileWindow","onResize","fullHeight","disabled","autoFocus","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","Component","__KONTUR_REACT_UI__","displayName","Header","Body","Footer"],"sources":["Modal.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={cx(styles.container(), isMobile && styles.containerMobile(this.theme))}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({ [styles.window(this.theme)]: true, [styles.mobileWindow()]: isMobile })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","FocusLock","throttle","globalObject","isNonNullable","isKeyEscape","LayoutEvents","RenderContainer","ZIndex","stopPropagation","HideBodyVerticalScroll","ModalStack","ResizeDetector","ThemeContext","isIE11","CommonWrapper","cx","createPropsGetter","ResponsiveLayout","ModalContext","ModalFooter","ModalHeader","ModalBody","ModalClose","styles","getModalTheme","mountedModalsCount","ModalDataTids","container","content","close","Modal","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","throttledCheckHorizontalScroll","handleResize","emit","setHasHeader","setHasFooter","setHasPanel","_inheritsLoose","_proto","prototype","componentDidMount","add","addEventListener","componentWillUnmount","removeEventListener","remove","render","_this2","createElement","Consumer","theme","Provider","value","renderMain","_this3","_this$props","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","_this$state","_this$getProps","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","priority","className","root","onMouseDown","onMouseUp","onClick","bg","_ref","_cx","_cx2","_cx3","_cx4","_cx5","isMobile","ref","containerMobile","centerContainer","mobileCenterContainer","Boolean","undefined","window","mobileWindow","onResize","fullHeight","disabled","autoFocus","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","Component","__KONTUR_REACT_UI__","displayName","Header","Body","Footer"],"sources":["Modal.tsx"],"sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport FocusLock from 'react-focus-lock';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\nimport { getModalTheme } from './getModalTheme';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label' | 'aria-labelledby'> {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const ModalDataTids = {\n container: 'modal-container',\n content: 'modal-content',\n close: 'modal-close',\n} as const;\n\ntype DefaultProps = Required<Pick<ModalProps, 'disableFocusLock' | 'role'>>;\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонент нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n public static displayName = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps: DefaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(Modal.defaultProps);\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n globalObject.addEventListener?.('resize', this.throttledCheckHorizontalScroll);\n }\n\n mountedModalsCount++;\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n globalObject.removeEventListener?.('resize', this.throttledCheckHorizontalScroll);\n LayoutEvents.emit();\n }\n\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getModalTheme(theme, this.props.theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n noClose,\n disableClose,\n width,\n alignTop,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n } = this.props;\n const { hasHeader, hasFooter, hasPanel } = this.state;\n const { role, disableFocusLock } = this.getProps();\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (!noClose) {\n modalContextProps.close = {\n disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter || hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (width) {\n style.width = width;\n } else {\n containerStyle.width = 'auto';\n }\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && (\n <div\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n className={styles.bg(this.theme)}\n />\n )}\n <ResponsiveLayout>\n {({ isMobile }) => (\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={cx(styles.container(), isMobile && styles.containerMobile(this.theme))}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <div\n aria-modal\n aria-label={ariaLabel}\n role={role}\n className={cx({\n [styles.centerContainer()]: true,\n [styles.mobileCenterContainer()]: isMobile,\n [styles.alignTop()]: Boolean(alignTop),\n })}\n style={isMobile ? undefined : containerStyle}\n data-tid={ModalDataTids.content}\n >\n <div\n className={cx({ [styles.window(this.theme)]: true, [styles.mobileWindow()]: isMobile })}\n style={isMobile ? undefined : style}\n >\n <ResizeDetector onResize={this.handleResize} fullHeight={isMobile}>\n <FocusLock\n disabled={disableFocusLock}\n autoFocus={false}\n className={cx({ [styles.columnFlexContainer()]: isMobile }, 'focus-lock-container')}\n >\n {!hasHeader && !noClose && (\n <ZIndex\n className={cx({\n [styles.closeWrapper(this.theme)]: true,\n [styles.mobileCloseWrapper(this.theme)]: isMobile,\n })}\n >\n <ModalClose\n className={cx({\n [styles.mobileCloseWithoutHeader()]: isMobile && !this.state.hasHeader,\n })}\n requestClose={this.requestClose}\n disableClose={disableClose}\n />\n </ZIndex>\n )}\n <ModalContext.Provider value={modalContextProps}>{children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n )}\n </ResponsiveLayout>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private throttledCheckHorizontalScroll = throttle(this.checkHorizontalScrollAppearance, 100);\n\n private handleResize = () => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader: boolean) => {\n this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter: boolean) => {\n this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel: boolean) => {\n this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","ModalContext","createContext","displayName"],"sources":["ModalContext.tsx"],"sourcesContent":["import React from 'react';\n\nimport { CommonProps } from '../../internal/CommonWrapper';\n\nexport interface CloseProps extends CommonProps {\n disableClose?: boolean;\n requestClose: () => void;\n}\n\nexport interface ModalContextProps {\n additionalPadding?: boolean;\n hasHeader?: boolean;\n close?: CloseProps;\n horizontalScroll?: boolean;\n setHasHeader?: (value?: boolean) => void;\n setHasFooter?: (value?: boolean) => void;\n setHasPanel?: (value?: boolean) => void;\n}\n\nexport const ModalContext = React.createContext<ModalContextProps>({});\n\nModalContext.displayName = 'ModalContext';\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;;;;;;;;;;;;;;;;;;;AAmBzB,OAAO,IAAMC,YAAY,gBAAGD,KAAK,CAACE,aAAa,CAAoB,CAAC,CAAC,CAAC;;AAEtED,YAAY,CAACE,WAAW,GAAG,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["React","ModalContext","createContext","displayName"],"sources":["ModalContext.tsx"],"sourcesContent":["import React from 'react';\n\nimport { CommonProps } from '../../internal/CommonWrapper';\n\nexport interface CloseProps extends CommonProps {\n disableClose?: boolean;\n requestClose: () => void;\n}\n\nexport interface ModalContextProps {\n additionalPadding?: boolean;\n hasHeader?: boolean;\n close?: CloseProps;\n horizontalScroll?: boolean;\n setHasHeader?: (value: boolean) => void;\n setHasFooter?: (value: boolean) => void;\n setHasPanel?: (value: boolean) => void;\n}\n\nexport const ModalContext = React.createContext<ModalContextProps>({});\n\nModalContext.displayName = 'ModalContext';\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;;;;;;;;;;;;;;;;;;;AAmBzB,OAAO,IAAMC,YAAY,gBAAGD,KAAK,CAACE,aAAa,CAAoB,CAAC,CAAC,CAAC;;AAEtED,YAAY,CAACE,WAAW,GAAG,cAAc","ignoreList":[]}
@@ -9,8 +9,8 @@ export interface ModalContextProps {
9
9
  hasHeader?: boolean;
10
10
  close?: CloseProps;
11
11
  horizontalScroll?: boolean;
12
- setHasHeader?: (value?: boolean) => void;
13
- setHasFooter?: (value?: boolean) => void;
14
- setHasPanel?: (value?: boolean) => void;
12
+ setHasHeader?: (value: boolean) => void;
13
+ setHasFooter?: (value: boolean) => void;
14
+ setHasPanel?: (value: boolean) => void;
15
15
  }
16
16
  export declare const ModalContext: React.Context<ModalContextProps>;
@@ -29,8 +29,8 @@ function ModalFooter(props) {
29
29
  panel = props.panel,
30
30
  children = props.children;
31
31
  useLayoutEffect(function () {
32
- modal.setHasFooter == null || modal.setHasFooter();
33
- modal.setHasPanel == null || modal.setHasPanel(panel);
32
+ modal.setHasFooter == null || modal.setHasFooter(true);
33
+ modal.setHasPanel == null || modal.setHasPanel(panel || false);
34
34
  return function () {
35
35
  modal.setHasFooter == null || modal.setHasFooter(false);
36
36
  modal.setHasPanel == null || modal.setHasPanel(false);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","useLayoutEffect","getScrollWidth","Sticky","ThemeContext","CommonWrapper","cx","useResponsiveLayout","Gapped","isNonNullable","styles","ModalContext","ModalSeparator","ModalFooterDataTids","root","ModalFooter","props","theme","modal","layout","_props$sticky","sticky","isMobile","gap","panel","children","setHasFooter","setHasPanel","renderContent","fixed","createElement","className","footer","fixedFooter","Boolean","fixedPanel","mobileFooter","vertical","side","offset","horizontalScroll","__KONTUR_REACT_UI__","displayName","__MODAL_FOOTER__"],"sources":["ModalFooter.tsx"],"sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { Gapped, GappedProps } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { styles } from './Modal.styles';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalFooterProps extends CommonProps {\n /**\n * Включает серый цвет в футере\n */\n panel?: boolean;\n /**\n * Закрепляет футер снизу модального окна\n *\n * На десктопе по умолчанию равен `true`\n * На мобильных по умолчанию равен `false`\n */\n sticky?: boolean;\n /**\n * Контент футера\n */\n children?: ReactNode;\n /**\n * Задаёт отступ между элементами футера\n */\n gap?: GappedProps['gap'];\n}\n\nexport const ModalFooterDataTids = {\n root: 'ModalFooter__root',\n} as const;\n\n/**\n * Футер модального окна.\n *\n * @visibleName Modal.Footer\n */\nfunction ModalFooter(props: ModalFooterProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, gap, panel, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasFooter?.();\n modal.setHasPanel?.(panel);\n\n return () => {\n modal.setHasFooter?.(false);\n modal.setHasPanel?.(false);\n };\n }, [panel]);\n\n const renderContent = (fixed = false) => {\n return (\n <div>\n {(panel || fixed) && <ModalSeparator fixed={fixed} />}\n <div\n data-tid={ModalFooterDataTids.root}\n className={cx(\n styles.footer(theme),\n fixed && styles.fixedFooter(theme),\n Boolean(panel) && styles.panel(theme),\n fixed && Boolean(panel) && styles.fixedPanel(theme),\n layout.isMobile && styles.mobileFooter(theme),\n )}\n >\n {isNonNullable(gap) ? (\n <Gapped vertical={layout.isMobile} gap={gap}>\n {children}\n </Gapped>\n ) : (\n children\n )}\n </div>\n </div>\n );\n };\n\n return (\n <CommonWrapper {...props}>\n {sticky ? (\n <Sticky side=\"bottom\" offset={modal.horizontalScroll ? getScrollWidth() : 0}>\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </CommonWrapper>\n );\n}\n\nModalFooter.__KONTUR_REACT_UI__ = 'ModalFooter';\nModalFooter.displayName = 'ModalFooter';\nModalFooter.__MODAL_FOOTER__ = true;\n\nexport { ModalFooter };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useContext","useLayoutEffect","getScrollWidth","Sticky","ThemeContext","CommonWrapper","cx","useResponsiveLayout","Gapped","isNonNullable","styles","ModalContext","ModalSeparator","ModalFooterDataTids","root","ModalFooter","props","theme","modal","layout","_props$sticky","sticky","isMobile","gap","panel","children","setHasFooter","setHasPanel","renderContent","fixed","createElement","className","footer","fixedFooter","Boolean","fixedPanel","mobileFooter","vertical","side","offset","horizontalScroll","__KONTUR_REACT_UI__","displayName","__MODAL_FOOTER__"],"sources":["ModalFooter.tsx"],"sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { getScrollWidth } from '../../lib/dom/getScrollWidth';\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\nimport { Gapped, GappedProps } from '../Gapped';\nimport { isNonNullable } from '../../lib/utils';\n\nimport { styles } from './Modal.styles';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalFooterProps extends CommonProps {\n /**\n * Включает серый цвет в футере\n */\n panel?: boolean;\n /**\n * Закрепляет футер снизу модального окна\n *\n * На десктопе по умолчанию равен `true`\n * На мобильных по умолчанию равен `false`\n */\n sticky?: boolean;\n /**\n * Контент футера\n */\n children?: ReactNode;\n /**\n * Задаёт отступ между элементами футера\n */\n gap?: GappedProps['gap'];\n}\n\nexport const ModalFooterDataTids = {\n root: 'ModalFooter__root',\n} as const;\n\n/**\n * Футер модального окна.\n *\n * @visibleName Modal.Footer\n */\nfunction ModalFooter(props: ModalFooterProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, gap, panel, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasFooter?.(true);\n modal.setHasPanel?.(panel || false);\n\n return () => {\n modal.setHasFooter?.(false);\n modal.setHasPanel?.(false);\n };\n }, [panel]);\n\n const renderContent = (fixed = false) => {\n return (\n <div>\n {(panel || fixed) && <ModalSeparator fixed={fixed} />}\n <div\n data-tid={ModalFooterDataTids.root}\n className={cx(\n styles.footer(theme),\n fixed && styles.fixedFooter(theme),\n Boolean(panel) && styles.panel(theme),\n fixed && Boolean(panel) && styles.fixedPanel(theme),\n layout.isMobile && styles.mobileFooter(theme),\n )}\n >\n {isNonNullable(gap) ? (\n <Gapped vertical={layout.isMobile} gap={gap}>\n {children}\n </Gapped>\n ) : (\n children\n )}\n </div>\n </div>\n );\n };\n\n return (\n <CommonWrapper {...props}>\n {sticky ? (\n <Sticky side=\"bottom\" offset={modal.horizontalScroll ? getScrollWidth() : 0}>\n {renderContent}\n </Sticky>\n ) : (\n renderContent()\n )}\n </CommonWrapper>\n );\n}\n\nModalFooter.__KONTUR_REACT_UI__ = 'ModalFooter';\nModalFooter.displayName = 'ModalFooter';\nModalFooter.__MODAL_FOOTER__ = true;\n\nexport { ModalFooter };\n"],"mappings":"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","ignoreList":[]}
@@ -25,7 +25,7 @@ function ModalHeader(props) {
25
25
  sticky = _props$sticky === void 0 ? !layout.isMobile : _props$sticky,
26
26
  children = props.children;
27
27
  useLayoutEffect(function () {
28
- modal.setHasHeader == null || modal.setHasHeader();
28
+ modal.setHasHeader == null || modal.setHasHeader(true);
29
29
  return function () {
30
30
  return modal.setHasHeader == null ? void 0 : modal.setHasHeader(false);
31
31
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","useLayoutEffect","Sticky","ThemeContext","CommonWrapper","cx","useResponsiveLayout","styles","ModalClose","ModalContext","ModalSeparator","ModalHeaderDataTids","root","ModalHeader","props","theme","modal","layout","_props$sticky","sticky","isMobile","children","setHasHeader","renderContent","fixed","createElement","className","header","mobileHeader","Boolean","additionalPadding","headerAddPadding","fixedHeader","mobileFixedHeader","close","headerWithClose","mobileHeaderWithClose","requestClose","disableClose","side","__KONTUR_REACT_UI__","displayName","__MODAL_HEADER__"],"sources":["ModalHeader.tsx"],"sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './Modal.styles';\nimport { ModalClose } from './ModalClose';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalHeaderProps extends CommonProps {\n sticky?: boolean;\n children?: ReactNode;\n}\n\nexport const ModalHeaderDataTids = {\n root: 'ModalHeader__root',\n} as const;\n\n/**\n * Шапка модального окна\n *\n * @visibleName Modal.Header\n */\nfunction ModalHeader(props: ModalHeaderProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasHeader?.();\n\n return () => modal.setHasHeader?.(false);\n }, []);\n\n const renderContent = (fixed = false) => {\n return (\n <div>\n <div\n data-tid={ModalHeaderDataTids.root}\n className={cx(\n styles.header(theme),\n layout.isMobile && styles.mobileHeader(theme),\n Boolean(modal.additionalPadding) && styles.headerAddPadding(theme),\n fixed && styles.fixedHeader(theme),\n fixed && layout.isMobile && styles.mobileFixedHeader(theme),\n Boolean(modal.close) && styles.headerWithClose(theme),\n Boolean(modal.close) && layout.isMobile && styles.mobileHeaderWithClose(theme),\n )}\n >\n {modal.close && (\n <ModalClose requestClose={modal.close.requestClose} disableClose={modal.close.disableClose} />\n )}\n {children}\n </div>\n {fixed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n return (\n <CommonWrapper {...props}>{sticky ? <Sticky side=\"top\">{renderContent}</Sticky> : renderContent()}</CommonWrapper>\n );\n}\n\nModalHeader.__KONTUR_REACT_UI__ = 'ModalHeader';\nModalHeader.displayName = 'ModalHeader';\nModalHeader.__MODAL_HEADER__ = true;\n\nexport { ModalHeader };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useContext","useLayoutEffect","Sticky","ThemeContext","CommonWrapper","cx","useResponsiveLayout","styles","ModalClose","ModalContext","ModalSeparator","ModalHeaderDataTids","root","ModalHeader","props","theme","modal","layout","_props$sticky","sticky","isMobile","children","setHasHeader","renderContent","fixed","createElement","className","header","mobileHeader","Boolean","additionalPadding","headerAddPadding","fixedHeader","mobileFixedHeader","close","headerWithClose","mobileHeaderWithClose","requestClose","disableClose","side","__KONTUR_REACT_UI__","displayName","__MODAL_HEADER__"],"sources":["ModalHeader.tsx"],"sourcesContent":["import React, { ReactNode, useContext, useLayoutEffect } from 'react';\n\nimport { Sticky } from '../Sticky';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { useResponsiveLayout } from '../ResponsiveLayout';\n\nimport { styles } from './Modal.styles';\nimport { ModalClose } from './ModalClose';\nimport { ModalContext } from './ModalContext';\nimport { ModalSeparator } from './ModalSeparator';\n\nexport interface ModalHeaderProps extends CommonProps {\n sticky?: boolean;\n children?: ReactNode;\n}\n\nexport const ModalHeaderDataTids = {\n root: 'ModalHeader__root',\n} as const;\n\n/**\n * Шапка модального окна\n *\n * @visibleName Modal.Header\n */\nfunction ModalHeader(props: ModalHeaderProps) {\n const theme = useContext(ThemeContext);\n const modal = useContext(ModalContext);\n const layout = useResponsiveLayout();\n\n const { sticky = !layout.isMobile, children } = props;\n\n useLayoutEffect(() => {\n modal.setHasHeader?.(true);\n\n return () => modal.setHasHeader?.(false);\n }, []);\n\n const renderContent = (fixed = false) => {\n return (\n <div>\n <div\n data-tid={ModalHeaderDataTids.root}\n className={cx(\n styles.header(theme),\n layout.isMobile && styles.mobileHeader(theme),\n Boolean(modal.additionalPadding) && styles.headerAddPadding(theme),\n fixed && styles.fixedHeader(theme),\n fixed && layout.isMobile && styles.mobileFixedHeader(theme),\n Boolean(modal.close) && styles.headerWithClose(theme),\n Boolean(modal.close) && layout.isMobile && styles.mobileHeaderWithClose(theme),\n )}\n >\n {modal.close && (\n <ModalClose requestClose={modal.close.requestClose} disableClose={modal.close.disableClose} />\n )}\n {children}\n </div>\n {fixed && <ModalSeparator fixed={fixed} />}\n </div>\n );\n };\n\n return (\n <CommonWrapper {...props}>{sticky ? <Sticky side=\"top\">{renderContent}</Sticky> : renderContent()}</CommonWrapper>\n );\n}\n\nModalHeader.__KONTUR_REACT_UI__ = 'ModalHeader';\nModalHeader.displayName = 'ModalHeader';\nModalHeader.__MODAL_HEADER__ = true;\n\nexport { ModalHeader };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAeC,UAAU,EAAEC,eAAe,QAAQ,OAAO;;AAErE,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,gCAAgC;AAC7D,SAASC,aAAa,QAAqB,8BAA8B;AACzE,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,SAASC,mBAAmB,QAAQ,qBAAqB;;AAEzD,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAASC,cAAc,QAAQ,kBAAkB;;;;;;;AAOjD,OAAO,IAAMC,mBAAmB,GAAG;EACjCC,IAAI,EAAE;AACR,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA,SAASC,WAAWA,CAACC,KAAuB,EAAE;EAC5C,IAAMC,KAAK,GAAGf,UAAU,CAACG,YAAY,CAAC;EACtC,IAAMa,KAAK,GAAGhB,UAAU,CAACS,YAAY,CAAC;EACtC,IAAMQ,MAAM,GAAGX,mBAAmB,CAAC,CAAC;;EAEpC,IAAAY,aAAA,GAAgDJ,KAAK,CAA7CK,MAAM,CAANA,MAAM,GAAAD,aAAA,cAAG,CAACD,MAAM,CAACG,QAAQ,GAAAF,aAAA,CAAEG,QAAQ,GAAKP,KAAK,CAAlBO,QAAQ;;EAE3CpB,eAAe,CAAC,YAAM;IACpBe,KAAK,CAACM,YAAY,YAAlBN,KAAK,CAACM,YAAY,CAAG,IAAI,CAAC;;IAE1B,OAAO,oBAAMN,KAAK,CAACM,YAAY,oBAAlBN,KAAK,CAACM,YAAY,CAAG,KAAK,CAAC;EAC1C,CAAC,EAAE,EAAE,CAAC;;EAEN,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAK,EAAa,KAAlBA,KAAK,cAALA,KAAK,GAAG,KAAK;IAClC;MACEzB,KAAA,CAAA0B,aAAA;MACE1B,KAAA,CAAA0B,aAAA;QACE,YAAUd,mBAAmB,CAACC,IAAK;QACnCc,SAAS,EAAErB,EAAE;UACXE,MAAM,CAACoB,MAAM,CAACZ,KAAK,CAAC;UACpBE,MAAM,CAACG,QAAQ,IAAIb,MAAM,CAACqB,YAAY,CAACb,KAAK,CAAC;UAC7Cc,OAAO,CAACb,KAAK,CAACc,iBAAiB,CAAC,IAAIvB,MAAM,CAACwB,gBAAgB,CAAChB,KAAK,CAAC;UAClES,KAAK,IAAIjB,MAAM,CAACyB,WAAW,CAACjB,KAAK,CAAC;UAClCS,KAAK,IAAIP,MAAM,CAACG,QAAQ,IAAIb,MAAM,CAAC0B,iBAAiB,CAAClB,KAAK,CAAC;UAC3Dc,OAAO,CAACb,KAAK,CAACkB,KAAK,CAAC,IAAI3B,MAAM,CAAC4B,eAAe,CAACpB,KAAK,CAAC;UACrDc,OAAO,CAACb,KAAK,CAACkB,KAAK,CAAC,IAAIjB,MAAM,CAACG,QAAQ,IAAIb,MAAM,CAAC6B,qBAAqB,CAACrB,KAAK;QAC/E,CAAE;;MAEDC,KAAK,CAACkB,KAAK;MACVnC,KAAA,CAAA0B,aAAA,CAACjB,UAAU,IAAC6B,YAAY,EAAErB,KAAK,CAACkB,KAAK,CAACG,YAAa,EAACC,YAAY,EAAEtB,KAAK,CAACkB,KAAK,CAACI,YAAa,EAAE,CAC9F;;MACAjB;MACE,CAAC;MACLG,KAAK,iBAAIzB,KAAA,CAAA0B,aAAA,CAACf,cAAc,IAACc,KAAK,EAAEA,KAAM,EAAE;MACtC,CAAC;;EAEV,CAAC;;EAED;IACEzB,KAAA,CAAA0B,aAAA,CAACrB,aAAa,EAAKU,KAAK,EAAGK,MAAM,gBAAGpB,KAAA,CAAA0B,aAAA,CAACvB,MAAM,IAACqC,IAAI,EAAC,KAAK,IAAEhB,aAAsB,CAAC,GAAGA,aAAa,CAAC,CAAiB,CAAC;;AAEtH;;AAEAV,WAAW,CAAC2B,mBAAmB,GAAG,aAAa;AAC/C3B,WAAW,CAAC4B,WAAW,GAAG,aAAa;AACvC5B,WAAW,CAAC6B,gBAAgB,GAAG,IAAI;;AAEnC,SAAS7B,WAAW","ignoreList":[]}