@skbkontur/react-ui 4.17.3 → 4.18.0-next.0

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 (268) hide show
  1. package/cjs/components/Button/Button.js +1 -1
  2. package/cjs/components/Button/Button.js.map +1 -1
  3. package/cjs/components/Button/Button.styles.d.ts +1 -0
  4. package/cjs/components/Button/Button.styles.js +1 -0
  5. package/cjs/components/Button/Button.styles.js.map +1 -1
  6. package/cjs/components/Button/ButtonArrow.js +1 -1
  7. package/cjs/components/Button/ButtonArrow.js.map +1 -1
  8. package/cjs/components/GlobalLoader/GlobalLoader.js +4 -5
  9. package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
  10. package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +1 -2
  11. package/cjs/components/GlobalLoader/GlobalLoaderView.js +3 -5
  12. package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
  13. package/cjs/components/Input/InputLayout/InputLayout.d.ts +1 -1
  14. package/cjs/components/MiniModal/MiniModal.d.ts +18 -0
  15. package/cjs/components/MiniModal/MiniModal.js +47 -0
  16. package/cjs/components/MiniModal/MiniModal.js.map +1 -0
  17. package/cjs/components/MiniModal/MiniModal.md +233 -0
  18. package/cjs/components/MiniModal/MiniModal.styles.d.ts +14 -0
  19. package/cjs/components/MiniModal/MiniModal.styles.js +87 -0
  20. package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -0
  21. package/cjs/components/MiniModal/MiniModalBody.d.ts +7 -0
  22. package/cjs/components/MiniModal/MiniModalBody.js +24 -0
  23. package/cjs/components/MiniModal/MiniModalBody.js.map +1 -0
  24. package/cjs/components/MiniModal/MiniModalFooter.d.ts +18 -0
  25. package/cjs/components/MiniModal/MiniModalFooter.js +60 -0
  26. package/cjs/components/MiniModal/MiniModalFooter.js.map +1 -0
  27. package/cjs/components/MiniModal/MiniModalHeader.d.ts +17 -0
  28. package/cjs/components/MiniModal/MiniModalHeader.js +47 -0
  29. package/cjs/components/MiniModal/MiniModalHeader.js.map +1 -0
  30. package/cjs/components/MiniModal/MiniModalIndent.d.ts +6 -0
  31. package/cjs/components/MiniModal/MiniModalIndent.js +29 -0
  32. package/cjs/components/MiniModal/MiniModalIndent.js.map +1 -0
  33. package/cjs/components/MiniModal/getMiniModalTheme.d.ts +16 -0
  34. package/cjs/components/MiniModal/getMiniModalTheme.js +24 -0
  35. package/cjs/components/MiniModal/getMiniModalTheme.js.map +1 -0
  36. package/cjs/components/MiniModal/index.d.ts +5 -0
  37. package/cjs/components/MiniModal/index.js +5 -0
  38. package/cjs/components/MiniModal/index.js.map +1 -0
  39. package/cjs/components/Modal/Modal.d.ts +6 -0
  40. package/cjs/components/Modal/Modal.js +14 -1
  41. package/cjs/components/Modal/Modal.js.map +1 -1
  42. package/cjs/components/Modal/Modal.styles.d.ts +5 -0
  43. package/cjs/components/Modal/Modal.styles.js +56 -39
  44. package/cjs/components/Modal/Modal.styles.js.map +1 -1
  45. package/cjs/components/Modal/ModalHeader.js +1 -1
  46. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  47. package/cjs/components/Modal/ModalSeparator.d.ts +5 -0
  48. package/cjs/components/Modal/ModalSeparator.js +5 -0
  49. package/cjs/components/Modal/ModalSeparator.js.map +1 -1
  50. package/cjs/components/Modal/getModalTheme.d.ts +2 -2
  51. package/cjs/components/Modal/getModalTheme.js +6 -2
  52. package/cjs/components/Modal/getModalTheme.js.map +1 -1
  53. package/cjs/components/Select/Select.d.ts +1 -0
  54. package/cjs/components/Select/Select.js +7 -6
  55. package/cjs/components/Select/Select.js.map +1 -1
  56. package/cjs/components/Textarea/TextareaCounter.d.ts +1 -1
  57. package/cjs/index.d.ts +1 -0
  58. package/cjs/index.js +1 -0
  59. package/cjs/index.js.map +1 -1
  60. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -1
  61. package/cjs/internal/MenuMessage/MenuMessage.d.ts +1 -1
  62. package/cjs/internal/ThemePlayground/constants.js +1 -0
  63. package/cjs/internal/ThemePlayground/constants.js.map +1 -1
  64. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  65. package/cjs/internal/icons/16px/index.d.ts +19 -19
  66. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.d.ts +1 -1
  67. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.d.ts +1 -1
  68. package/cjs/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.d.ts +1 -1
  69. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.d.ts +1 -1
  70. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.d.ts +1 -1
  71. package/cjs/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.d.ts +1 -1
  72. package/cjs/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.d.ts +1 -1
  73. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.d.ts +1 -1
  74. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.d.ts +1 -1
  75. package/cjs/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.d.ts +1 -1
  76. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.d.ts +1 -1
  77. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.d.ts +1 -1
  78. package/cjs/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.d.ts +1 -1
  79. package/cjs/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.d.ts +1 -1
  80. package/cjs/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.d.ts +1 -1
  81. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.d.ts +1 -1
  82. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.d.ts +1 -1
  83. package/cjs/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.d.ts +1 -1
  84. package/cjs/internal/icons2022/BaseIcon.d.ts +1 -1
  85. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon16Light.d.ts +1 -1
  86. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon20Light.d.ts +1 -1
  87. package/cjs/internal/icons2022/CalendarIcon/CalendarIcon24Regular.d.ts +1 -1
  88. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Light.d.ts +1 -1
  89. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Regular.d.ts +1 -1
  90. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon16Solid.d.ts +1 -1
  91. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Light.d.ts +1 -1
  92. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon20Solid.d.ts +1 -1
  93. package/cjs/internal/icons2022/CheckAIcon/CheckAIcon24Regular.d.ts +1 -1
  94. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.d.ts +1 -1
  95. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.d.ts +1 -1
  96. package/cjs/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.d.ts +1 -1
  97. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.d.ts +1 -1
  98. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.d.ts +1 -1
  99. package/cjs/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.d.ts +1 -1
  100. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.d.ts +2 -0
  101. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js +20 -0
  102. package/cjs/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js.map +1 -0
  103. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.d.ts +1 -1
  104. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.d.ts +1 -1
  105. package/cjs/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.d.ts +1 -1
  106. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.d.ts +1 -1
  107. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.d.ts +1 -1
  108. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.d.ts +1 -1
  109. package/cjs/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.d.ts +1 -1
  110. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.d.ts +1 -1
  111. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.d.ts +1 -1
  112. package/cjs/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.d.ts +1 -1
  113. package/cjs/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.d.ts +1 -1
  114. package/cjs/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.d.ts +1 -1
  115. package/cjs/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.d.ts +1 -1
  116. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.d.ts +1 -1
  117. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.d.ts +1 -1
  118. package/cjs/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.d.ts +1 -1
  119. package/cjs/internal/icons2022/XIcon/XIcon16Light.d.ts +1 -1
  120. package/cjs/internal/icons2022/XIcon/XIcon16Regular.d.ts +1 -1
  121. package/cjs/internal/icons2022/XIcon/XIcon20Light.d.ts +1 -1
  122. package/cjs/internal/icons2022/XIcon/XIcon20Regular.d.ts +1 -1
  123. package/cjs/internal/icons2022/XIcon/XIcon24Regular.d.ts +1 -1
  124. package/cjs/internal/themes/DefaultTheme.d.ts +22 -0
  125. package/cjs/internal/themes/DefaultTheme.js +26 -1
  126. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  127. package/cjs/lib/forwardRefAndName.d.ts +1 -1
  128. package/cjs/lib/forwardRefAndName.js +4 -1
  129. package/cjs/lib/forwardRefAndName.js.map +1 -1
  130. package/components/Button/Button/Button.js +1 -1
  131. package/components/Button/Button/Button.js.map +1 -1
  132. package/components/Button/Button.styles/Button.styles.js +1 -0
  133. package/components/Button/Button.styles/Button.styles.js.map +1 -1
  134. package/components/Button/Button.styles.d.ts +1 -0
  135. package/components/Button/ButtonArrow/ButtonArrow.js +1 -1
  136. package/components/Button/ButtonArrow/ButtonArrow.js.map +1 -1
  137. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -5
  138. package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
  139. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +2 -3
  140. package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
  141. package/components/GlobalLoader/GlobalLoaderView.d.ts +1 -2
  142. package/components/Input/InputLayout/InputLayout.d.ts +1 -1
  143. package/components/MiniModal/MiniModal/MiniModal.js +38 -0
  144. package/components/MiniModal/MiniModal/MiniModal.js.map +1 -0
  145. package/components/MiniModal/MiniModal/package.json +6 -0
  146. package/components/MiniModal/MiniModal.d.ts +18 -0
  147. package/components/MiniModal/MiniModal.md +233 -0
  148. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +41 -0
  149. package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -0
  150. package/components/MiniModal/MiniModal.styles/package.json +6 -0
  151. package/components/MiniModal/MiniModal.styles.d.ts +14 -0
  152. package/components/MiniModal/MiniModalBody/MiniModalBody.js +23 -0
  153. package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -0
  154. package/components/MiniModal/MiniModalBody/package.json +6 -0
  155. package/components/MiniModal/MiniModalBody.d.ts +7 -0
  156. package/components/MiniModal/MiniModalFooter/MiniModalFooter.js +35 -0
  157. package/components/MiniModal/MiniModalFooter/MiniModalFooter.js.map +1 -0
  158. package/components/MiniModal/MiniModalFooter/package.json +6 -0
  159. package/components/MiniModal/MiniModalFooter.d.ts +18 -0
  160. package/components/MiniModal/MiniModalHeader/MiniModalHeader.js +33 -0
  161. package/components/MiniModal/MiniModalHeader/MiniModalHeader.js.map +1 -0
  162. package/components/MiniModal/MiniModalHeader/package.json +6 -0
  163. package/components/MiniModal/MiniModalHeader.d.ts +17 -0
  164. package/components/MiniModal/MiniModalIndent/MiniModalIndent.js +27 -0
  165. package/components/MiniModal/MiniModalIndent/MiniModalIndent.js.map +1 -0
  166. package/components/MiniModal/MiniModalIndent/package.json +6 -0
  167. package/components/MiniModal/MiniModalIndent.d.ts +6 -0
  168. package/components/MiniModal/getMiniModalTheme/getMiniModalTheme.js +23 -0
  169. package/components/MiniModal/getMiniModalTheme/getMiniModalTheme.js.map +1 -0
  170. package/components/MiniModal/getMiniModalTheme/package.json +6 -0
  171. package/components/MiniModal/getMiniModalTheme.d.ts +16 -0
  172. package/components/MiniModal/index/index.js +5 -0
  173. package/components/MiniModal/index/index.js.map +1 -0
  174. package/components/MiniModal/index/package.json +6 -0
  175. package/components/MiniModal/index.d.ts +5 -0
  176. package/components/MiniModal/package.json +6 -0
  177. package/components/Modal/Modal/Modal.js +13 -10
  178. package/components/Modal/Modal/Modal.js.map +1 -1
  179. package/components/Modal/Modal.d.ts +6 -0
  180. package/components/Modal/Modal.styles/Modal.styles.js +44 -37
  181. package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
  182. package/components/Modal/Modal.styles.d.ts +5 -0
  183. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  184. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  185. package/components/Modal/ModalSeparator/ModalSeparator.js +6 -0
  186. package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
  187. package/components/Modal/ModalSeparator.d.ts +5 -0
  188. package/components/Modal/getModalTheme/getModalTheme.js +8 -3
  189. package/components/Modal/getModalTheme/getModalTheme.js.map +1 -1
  190. package/components/Modal/getModalTheme.d.ts +2 -2
  191. package/components/Select/Select/Select.js +6 -6
  192. package/components/Select/Select/Select.js.map +1 -1
  193. package/components/Select/Select.d.ts +1 -0
  194. package/components/Textarea/TextareaCounter.d.ts +1 -1
  195. package/index.d.ts +1 -0
  196. package/index.js +1 -0
  197. package/index.js.map +1 -1
  198. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -1
  199. package/internal/MenuMessage/MenuMessage.d.ts +1 -1
  200. package/internal/ThemePlayground/constants/constants.js +3 -0
  201. package/internal/ThemePlayground/constants/constants.js.map +1 -1
  202. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  203. package/internal/icons/16px/index.d.ts +19 -19
  204. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.d.ts +1 -1
  205. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.d.ts +1 -1
  206. package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.d.ts +1 -1
  207. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.d.ts +1 -1
  208. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.d.ts +1 -1
  209. package/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.d.ts +1 -1
  210. package/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.d.ts +1 -1
  211. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.d.ts +1 -1
  212. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.d.ts +1 -1
  213. package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.d.ts +1 -1
  214. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.d.ts +1 -1
  215. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.d.ts +1 -1
  216. package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.d.ts +1 -1
  217. package/internal/icons2022/ArrowCUpIcon/ArrowCUpIcon16Regular.d.ts +1 -1
  218. package/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.d.ts +1 -1
  219. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.d.ts +1 -1
  220. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.d.ts +1 -1
  221. package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.d.ts +1 -1
  222. package/internal/icons2022/BaseIcon.d.ts +1 -1
  223. package/internal/icons2022/CalendarIcon/CalendarIcon16Light.d.ts +1 -1
  224. package/internal/icons2022/CalendarIcon/CalendarIcon20Light.d.ts +1 -1
  225. package/internal/icons2022/CalendarIcon/CalendarIcon24Regular.d.ts +1 -1
  226. package/internal/icons2022/CheckAIcon/CheckAIcon16Light.d.ts +1 -1
  227. package/internal/icons2022/CheckAIcon/CheckAIcon16Regular.d.ts +1 -1
  228. package/internal/icons2022/CheckAIcon/CheckAIcon16Solid.d.ts +1 -1
  229. package/internal/icons2022/CheckAIcon/CheckAIcon20Light.d.ts +1 -1
  230. package/internal/icons2022/CheckAIcon/CheckAIcon20Solid.d.ts +1 -1
  231. package/internal/icons2022/CheckAIcon/CheckAIcon24Regular.d.ts +1 -1
  232. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.d.ts +1 -1
  233. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.d.ts +1 -1
  234. package/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.d.ts +1 -1
  235. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.d.ts +1 -1
  236. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.d.ts +1 -1
  237. package/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.d.ts +1 -1
  238. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/InfoCircleIcon64Regular.js +18 -0
  239. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/InfoCircleIcon64Regular.js.map +1 -0
  240. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular/package.json +6 -0
  241. package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.d.ts +2 -0
  242. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.d.ts +1 -1
  243. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.d.ts +1 -1
  244. package/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.d.ts +1 -1
  245. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Light.d.ts +1 -1
  246. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon16Regular.d.ts +1 -1
  247. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon20Light.d.ts +1 -1
  248. package/internal/icons2022/MinusCircleIcon/MinusCircleIcon24Regular.d.ts +1 -1
  249. package/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.d.ts +1 -1
  250. package/internal/icons2022/NetUploadIcon/NetUploadIcon20Light.d.ts +1 -1
  251. package/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.d.ts +1 -1
  252. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.d.ts +1 -1
  253. package/internal/icons2022/SearchLoupeIcon/SearchLoupeIcon16Regular.d.ts +1 -1
  254. package/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.d.ts +1 -1
  255. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.d.ts +1 -1
  256. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.d.ts +1 -1
  257. package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.d.ts +1 -1
  258. package/internal/icons2022/XIcon/XIcon16Light.d.ts +1 -1
  259. package/internal/icons2022/XIcon/XIcon16Regular.d.ts +1 -1
  260. package/internal/icons2022/XIcon/XIcon20Light.d.ts +1 -1
  261. package/internal/icons2022/XIcon/XIcon20Regular.d.ts +1 -1
  262. package/internal/icons2022/XIcon/XIcon24Regular.d.ts +1 -1
  263. package/internal/themes/DefaultTheme/DefaultTheme.js +23 -1
  264. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  265. package/internal/themes/DefaultTheme.d.ts +22 -0
  266. package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
  267. package/lib/forwardRefAndName.d.ts +1 -1
  268. package/package.json +3 -3
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/components/MiniModal/MiniModalFooter.js",
3
+ "module": "MiniModalFooter",
4
+ "types": "../MiniModalFooter.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,18 @@
1
+ import { ModalFooterProps } from '../Modal';
2
+ interface MiniModalFooterProps extends ModalFooterProps {
3
+ /**
4
+ * Направление позиционирования кнопок.
5
+ * `row` работает только для 2 элементов,
6
+ * в других случаях автоматически включиться `column`.
7
+ *
8
+ * @default row
9
+ */
10
+ direction?: 'row' | 'column';
11
+ }
12
+ /**
13
+ * Обёртка над Modal.Footer
14
+ *
15
+ * @visibleName MiniModal.Footer
16
+ */
17
+ export declare const MiniModalFooter: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLDivElement, MiniModalFooterProps> & Record<never, never>;
18
+ export {};
@@ -0,0 +1,33 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ var _excluded = ["icon", "children"];
3
+ import React, { useContext } from 'react';
4
+ import { Modal } from "../../Modal";
5
+ import { forwardRefAndName } from "../../../lib/forwardRefAndName";
6
+ import { InfoCircleIcon64Regular } from "../../../internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular";
7
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
8
+ import { cx } from "../../../lib/theming/Emotion";
9
+ import { styles } from "../MiniModal.styles";
10
+ import { MiniModalDataTids } from "../MiniModal";
11
+ /**
12
+ * Обёртка над Modal.Header
13
+ *
14
+ * @visibleName MiniModal.Header
15
+ */
16
+
17
+ export var MiniModalHeader = forwardRefAndName('MiniModalHeader', function (_ref, ref) {
18
+ var _ref$icon = _ref.icon,
19
+ icon = _ref$icon === void 0 ? /*#__PURE__*/React.createElement(InfoCircleIcon64Regular, null) : _ref$icon,
20
+ children = _ref.children,
21
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
22
+
23
+ var theme = useContext(ThemeContext);
24
+ return /*#__PURE__*/React.createElement(Modal.Header, rest, /*#__PURE__*/React.createElement("div", {
25
+ ref: ref
26
+ }, icon && /*#__PURE__*/React.createElement("div", {
27
+ "data-tid": MiniModalDataTids.icon,
28
+ className: styles.icon()
29
+ }, icon), children && /*#__PURE__*/React.createElement("div", {
30
+ "data-tid": MiniModalDataTids.title,
31
+ className: cx(styles.title(), icon && styles.titleWithIcon(theme))
32
+ }, children)));
33
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MiniModalHeader.tsx"],"names":["React","useContext","Modal","forwardRefAndName","InfoCircleIcon64Regular","ThemeContext","cx","styles","MiniModalDataTids","MiniModalHeader","ref","icon","children","rest","theme","title","titleWithIcon"],"mappings":"yIAAA,OAAOA,KAAP,IAA2BC,UAA3B,QAA6C,OAA7C;;AAEA,SAASC,KAAT,QAAwC,UAAxC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,uBAAT,QAAwC,iEAAxC;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,EAAT,QAAmB,2BAAnB;;AAEA,SAASC,MAAT,QAAuB,oBAAvB;AACA,SAASC,iBAAT,QAAkC,aAAlC;;;;;;;;;;;AAWA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAGN,iBAAiB;AAC9C,iBAD8C;AAE9C,gBAA4DO,GAA5D,EAAoE,sBAAjEC,IAAiE,CAAjEA,IAAiE,uCAA1D,oBAAC,uBAAD,OAA0D,aAA7BC,QAA6B,QAA7BA,QAA6B,CAAhBC,IAAgB;AAClE,MAAMC,KAAK,GAAGb,UAAU,CAACI,YAAD,CAAxB;;AAEA;AACE,wBAAC,KAAD,CAAO,MAAP,EAAkBQ,IAAlB;AACE,iCAAK,GAAG,EAAEH,GAAV;AACGC,IAAAA,IAAI;AACH,iCAAK,YAAUH,iBAAiB,CAACG,IAAjC,EAAuC,SAAS,EAAEJ,MAAM,CAACI,IAAP,EAAlD;AACGA,IAAAA,IADH,CAFJ;;;AAMGC,IAAAA,QAAQ;AACP,iCAAK,YAAUJ,iBAAiB,CAACO,KAAjC,EAAwC,SAAS,EAAET,EAAE,CAACC,MAAM,CAACQ,KAAP,EAAD,EAAiBJ,IAAI,IAAIJ,MAAM,CAACS,aAAP,CAAqBF,KAArB,CAAzB,CAArD;AACGF,IAAAA,QADH,CAPJ,CADF,CADF;;;;;;AAgBD,CArB6C,CAAzC","sourcesContent":["import React, { ReactNode, useContext } from 'react';\n\nimport { Modal, ModalHeaderProps } from '../Modal';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { InfoCircleIcon64Regular } from '../../internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MiniModal.styles';\nimport { MiniModalDataTids } from './MiniModal';\n\ninterface MiniModalHeaderProps extends ModalHeaderProps {\n /**\n * Пиктограмма в шапке компонента.\n *\n * @default InfoCircleIcon64Regular\n */\n icon?: ReactNode;\n}\n\n/**\n * Обёртка над Modal.Header\n *\n * @visibleName MiniModal.Header\n */\nexport const MiniModalHeader = forwardRefAndName<HTMLDivElement, MiniModalHeaderProps>(\n 'MiniModalHeader',\n ({ icon = <InfoCircleIcon64Regular />, children, ...rest }, ref) => {\n const theme = useContext(ThemeContext);\n\n return (\n <Modal.Header {...rest}>\n <div ref={ref}>\n {icon && (\n <div data-tid={MiniModalDataTids.icon} className={styles.icon()}>\n {icon}\n </div>\n )}\n {children && (\n <div data-tid={MiniModalDataTids.title} className={cx(styles.title(), icon && styles.titleWithIcon(theme))}>\n {children}\n </div>\n )}\n </div>\n </Modal.Header>\n );\n },\n);\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/components/MiniModal/MiniModalHeader.js",
3
+ "module": "MiniModalHeader",
4
+ "types": "../MiniModalHeader.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from 'react';
2
+ import { ModalHeaderProps } from '../Modal';
3
+ interface MiniModalHeaderProps extends ModalHeaderProps {
4
+ /**
5
+ * Пиктограмма в шапке компонента.
6
+ *
7
+ * @default InfoCircleIcon64Regular
8
+ */
9
+ icon?: ReactNode;
10
+ }
11
+ /**
12
+ * Обёртка над Modal.Header
13
+ *
14
+ * @visibleName MiniModal.Header
15
+ */
16
+ export declare const MiniModalHeader: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLDivElement, MiniModalHeaderProps> & Record<never, never>;
17
+ export {};
@@ -0,0 +1,27 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ var _excluded = ["children"];
4
+ import React, { useContext } from 'react';
5
+ import { forwardRefAndName } from "../../../lib/forwardRefAndName";
6
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
7
+ import { cx } from "../../../lib/theming/Emotion";
8
+ import { isIE11 } from "../../../lib/client";
9
+ import { styles } from "../MiniModal.styles";
10
+ import { MiniModalDataTids } from "../MiniModal";
11
+ /**
12
+ * Отступ между кнопками
13
+ *
14
+ * @visibleName MiniModal.Indent
15
+ */
16
+
17
+ export var MiniModalIndent = forwardRefAndName('MiniModalIndent', function (_ref, ref) {
18
+ var children = _ref.children,
19
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
20
+
21
+ var theme = useContext(ThemeContext);
22
+ return /*#__PURE__*/React.createElement("div", _extends({
23
+ "data-tid": MiniModalDataTids.indent,
24
+ ref: ref,
25
+ className: cx(!isIE11 ? styles.actionsIndent(theme) : styles.actionsIndentIE11Fallback(theme))
26
+ }, rest));
27
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MiniModalIndent.tsx"],"names":["React","useContext","forwardRefAndName","ThemeContext","cx","isIE11","styles","MiniModalDataTids","MiniModalIndent","ref","children","rest","theme","indent","actionsIndent","actionsIndentIE11Fallback"],"mappings":"2LAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,MAAT,QAAuB,kBAAvB;;AAEA,SAASC,MAAT,QAAuB,oBAAvB;AACA,SAASC,iBAAT,QAAkC,aAAlC;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAGN,iBAAiB;AAC9C,iBAD8C;AAE9C,gBAAwBO,GAAxB,EAAgC,KAA7BC,QAA6B,QAA7BA,QAA6B,CAAhBC,IAAgB;AAC9B,MAAMC,KAAK,GAAGX,UAAU,CAACE,YAAD,CAAxB;;AAEA;AACE;AACE,kBAAUI,iBAAiB,CAACM,MAD9B;AAEE,MAAA,GAAG,EAAEJ,GAFP;AAGE,MAAA,SAAS,EAAEL,EAAE,CAAC,CAACC,MAAD,GAAUC,MAAM,CAACQ,aAAP,CAAqBF,KAArB,CAAV,GAAwCN,MAAM,CAACS,yBAAP,CAAiCH,KAAjC,CAAzC,CAHf;AAIMD,IAAAA,IAJN,EADF;;;AAQD,CAb6C,CAAzC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\n\nimport { styles } from './MiniModal.styles';\nimport { MiniModalDataTids } from './MiniModal';\n\n/**\n * Отступ между кнопками\n *\n * @visibleName MiniModal.Indent\n */\nexport const MiniModalIndent = forwardRefAndName<HTMLDivElement, unknown>(\n 'MiniModalIndent',\n ({ children, ...rest }, ref) => {\n const theme = useContext(ThemeContext);\n\n return (\n <div\n data-tid={MiniModalDataTids.indent}\n ref={ref}\n className={cx(!isIE11 ? styles.actionsIndent(theme) : styles.actionsIndentIE11Fallback(theme))}\n {...rest}\n />\n );\n },\n);\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/components/MiniModal/MiniModalIndent.js",
3
+ "module": "MiniModalIndent",
4
+ "types": "../MiniModalIndent.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Отступ между кнопками
3
+ *
4
+ * @visibleName MiniModal.Indent
5
+ */
6
+ export declare const MiniModalIndent: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLDivElement, unknown> & Record<never, never>;
@@ -0,0 +1,23 @@
1
+ import { ThemeFactory } from "../../../lib/theming/ThemeFactory";
2
+ export var getMiniModalTheme = function getMiniModalTheme(contextTheme, propsTheme) {
3
+ if (propsTheme === void 0) {
4
+ propsTheme = {};
5
+ }
6
+
7
+ var theme = ThemeFactory.create(propsTheme, contextTheme);
8
+ return ThemeFactory.create({
9
+ modalBodyPaddingTop: theme.miniModalBodyPaddingTop,
10
+ modalBodyPaddingBottom: theme.miniModalBodyPaddingBottom,
11
+ modalHeaderPaddingTop: theme.miniModalHeaderPaddingTop,
12
+ modalHeaderPaddingBottom: theme.miniModalHeaderPaddingBottom,
13
+ modalFooterPaddingTop: theme.miniModalFooterPaddingTop,
14
+ modalFooterPaddingBottom: theme.miniModalFooterPaddingBottom,
15
+ mobileModalFooterPadding: theme.miniModalFooterPaddingMobile,
16
+ mobileModalHeaderPadding: theme.miniModalHeaderPaddingMobile,
17
+ mobileModalBodyPadding: theme.miniModalBodyPaddingMobile,
18
+ mobileModalContainerHeight: theme.miniModalHeightMobile,
19
+ mobileModalContainerMarginTop: theme.miniModalMarginTopMobile,
20
+ mobileModalContainerMarginRight: theme.miniModalMarginRightMobile,
21
+ mobileModalContainerMarginLeft: theme.miniModalMarginLeftMobile
22
+ }, theme);
23
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getMiniModalTheme.ts"],"names":["ThemeFactory","getMiniModalTheme","contextTheme","propsTheme","theme","create","modalBodyPaddingTop","miniModalBodyPaddingTop","modalBodyPaddingBottom","miniModalBodyPaddingBottom","modalHeaderPaddingTop","miniModalHeaderPaddingTop","modalHeaderPaddingBottom","miniModalHeaderPaddingBottom","modalFooterPaddingTop","miniModalFooterPaddingTop","modalFooterPaddingBottom","miniModalFooterPaddingBottom","mobileModalFooterPadding","miniModalFooterPaddingMobile","mobileModalHeaderPadding","miniModalHeaderPaddingMobile","mobileModalBodyPadding","miniModalBodyPaddingMobile","mobileModalContainerHeight","miniModalHeightMobile","mobileModalContainerMarginTop","miniModalMarginTopMobile","mobileModalContainerMarginRight","miniModalMarginRightMobile","mobileModalContainerMarginLeft","miniModalMarginLeftMobile"],"mappings":"AAAA,SAASA,YAAT,QAA6B,gCAA7B;;;AAGA,OAAO,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,YAAD,EAAsBC,UAAtB,EAAmD,KAA7BA,UAA6B,cAA7BA,UAA6B,GAAP,EAAO;AAClF,MAAMC,KAAK,GAAGJ,YAAY,CAACK,MAAb,CAAoBF,UAApB,EAAgCD,YAAhC,CAAd;AACA,SAAOF,YAAY,CAACK,MAAb;AACL;AACEC,IAAAA,mBAAmB,EAAEF,KAAK,CAACG,uBAD7B;AAEEC,IAAAA,sBAAsB,EAAEJ,KAAK,CAACK,0BAFhC;AAGEC,IAAAA,qBAAqB,EAAEN,KAAK,CAACO,yBAH/B;AAIEC,IAAAA,wBAAwB,EAAER,KAAK,CAACS,4BAJlC;AAKEC,IAAAA,qBAAqB,EAAEV,KAAK,CAACW,yBAL/B;AAMEC,IAAAA,wBAAwB,EAAEZ,KAAK,CAACa,4BANlC;AAOEC,IAAAA,wBAAwB,EAAEd,KAAK,CAACe,4BAPlC;AAQEC,IAAAA,wBAAwB,EAAEhB,KAAK,CAACiB,4BARlC;AASEC,IAAAA,sBAAsB,EAAElB,KAAK,CAACmB,0BAThC;AAUEC,IAAAA,0BAA0B,EAAEpB,KAAK,CAACqB,qBAVpC;AAWEC,IAAAA,6BAA6B,EAAEtB,KAAK,CAACuB,wBAXvC;AAYEC,IAAAA,+BAA+B,EAAExB,KAAK,CAACyB,0BAZzC;AAaEC,IAAAA,8BAA8B,EAAE1B,KAAK,CAAC2B,yBAbxC,EADK;;AAgBL3B,EAAAA,KAhBK,CAAP;;AAkBD,CApBM","sourcesContent":["import { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\n\nexport const getMiniModalTheme = (contextTheme: Theme, propsTheme: ThemeIn = {}) => {\n const theme = ThemeFactory.create(propsTheme, contextTheme);\n return ThemeFactory.create(\n {\n modalBodyPaddingTop: theme.miniModalBodyPaddingTop,\n modalBodyPaddingBottom: theme.miniModalBodyPaddingBottom,\n modalHeaderPaddingTop: theme.miniModalHeaderPaddingTop,\n modalHeaderPaddingBottom: theme.miniModalHeaderPaddingBottom,\n modalFooterPaddingTop: theme.miniModalFooterPaddingTop,\n modalFooterPaddingBottom: theme.miniModalFooterPaddingBottom,\n mobileModalFooterPadding: theme.miniModalFooterPaddingMobile,\n mobileModalHeaderPadding: theme.miniModalHeaderPaddingMobile,\n mobileModalBodyPadding: theme.miniModalBodyPaddingMobile,\n mobileModalContainerHeight: theme.miniModalHeightMobile,\n mobileModalContainerMarginTop: theme.miniModalMarginTopMobile,\n mobileModalContainerMarginRight: theme.miniModalMarginRightMobile,\n mobileModalContainerMarginLeft: theme.miniModalMarginLeftMobile,\n },\n theme,\n );\n};\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/components/MiniModal/getMiniModalTheme.js",
3
+ "module": "getMiniModalTheme",
4
+ "types": "../getMiniModalTheme.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,16 @@
1
+ import { Theme, ThemeIn } from '../../lib/theming/Theme';
2
+ export declare const getMiniModalTheme: (contextTheme: Theme, propsTheme?: ThemeIn) => Readonly<Readonly<typeof import("../../internal/themes/DefaultTheme").DefaultTheme> & {
3
+ modalBodyPaddingTop: string;
4
+ modalBodyPaddingBottom: string;
5
+ modalHeaderPaddingTop: string;
6
+ modalHeaderPaddingBottom: string;
7
+ modalFooterPaddingTop: string;
8
+ modalFooterPaddingBottom: string;
9
+ mobileModalFooterPadding: string;
10
+ mobileModalHeaderPadding: string;
11
+ mobileModalBodyPadding: string;
12
+ mobileModalContainerHeight: string;
13
+ mobileModalContainerMarginTop: string;
14
+ mobileModalContainerMarginRight: string;
15
+ mobileModalContainerMarginLeft: string;
16
+ }>;
@@ -0,0 +1,5 @@
1
+ export * from "../MiniModal";
2
+ export * from "../MiniModalHeader";
3
+ export * from "../MiniModalBody";
4
+ export * from "../MiniModalFooter";
5
+ export * from "../MiniModalIndent";
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAd;AACA,cAAc,mBAAd;AACA,cAAc,iBAAd;AACA,cAAc,mBAAd;AACA,cAAc,mBAAd","sourcesContent":["export * from './MiniModal';\nexport * from './MiniModalHeader';\nexport * from './MiniModalBody';\nexport * from './MiniModalFooter';\nexport * from './MiniModalIndent';\n"]}
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../../cjs/components/MiniModal/index.js",
3
+ "module": "index",
4
+ "types": "../index.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -0,0 +1,5 @@
1
+ export * from './MiniModal';
2
+ export * from './MiniModalHeader';
3
+ export * from './MiniModalBody';
4
+ export * from './MiniModalFooter';
5
+ export * from './MiniModalIndent';
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../../cjs/components/MiniModal/index.js",
3
+ "module": "index",
4
+ "types": "index.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -224,7 +224,7 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
224
224
  var _this2 = this;
225
225
 
226
226
  return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
227
- _this2.theme = getModalTheme(theme);
227
+ _this2.theme = getModalTheme(theme, _this2.props.theme);
228
228
  return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
229
229
  value: _this2.theme
230
230
  }, _this2.renderMain());
@@ -287,20 +287,23 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
287
287
  priority: 'Modal',
288
288
  className: styles.root()
289
289
  }, /*#__PURE__*/React.createElement(HideBodyVerticalScroll, null), this.state.hasBackground && /*#__PURE__*/React.createElement("div", {
290
- className: styles.bg(this.theme)
291
- }), /*#__PURE__*/React.createElement("div", {
292
- "aria-labelledby": ariaLabelledby,
293
- ref: this.refContainer,
294
- className: styles.container(),
295
290
  onMouseDown: this.handleContainerMouseDown,
296
291
  onMouseUp: this.handleContainerMouseUp,
297
292
  onClick: this.handleContainerClick,
298
- "data-tid": ModalDataTids.container
299
- }, /*#__PURE__*/React.createElement(ResponsiveLayout, null, function (_ref) {
293
+ className: styles.bg(this.theme)
294
+ }), /*#__PURE__*/React.createElement(ResponsiveLayout, null, function (_ref) {
300
295
  var _cx, _cx2, _cx3, _cx4, _cx5;
301
296
 
302
297
  var isMobile = _ref.isMobile;
303
298
  return /*#__PURE__*/React.createElement("div", {
299
+ "aria-labelledby": ariaLabelledby,
300
+ ref: _this3.refContainer,
301
+ className: cx(styles.container(), isMobile && styles.containerMobile(_this3.theme)),
302
+ onMouseDown: _this3.handleContainerMouseDown,
303
+ onMouseUp: _this3.handleContainerMouseUp,
304
+ onClick: _this3.handleContainerClick,
305
+ "data-tid": ModalDataTids.container
306
+ }, /*#__PURE__*/React.createElement("div", {
304
307
  "aria-modal": true,
305
308
  "aria-label": ariaLabel,
306
309
  role: role,
@@ -325,8 +328,8 @@ export var Modal = /*#__PURE__*/function (_React$Component) {
325
328
  disableClose: disableClose
326
329
  })), /*#__PURE__*/React.createElement(ModalContext.Provider, {
327
330
  value: modalContextProps
328
- }, children)))));
329
- })))));
331
+ }, children))))));
332
+ }))));
330
333
  };
331
334
 
332
335
  return Modal;
@@ -1 +1 @@
1
- {"version":3,"sources":["Modal.tsx"],"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","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","componentDidMount","add","addEventListener","componentWillUnmount","removeEventListener","remove","render","theme","renderMain","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","root","bg","isMobile","centerContainer","mobileCenterContainer","Boolean","undefined","window","mobileWindow","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","Component","__KONTUR_REACT_UI__","Header","Body","Footer"],"mappings":"4JAAA,OAAOA,KAAP,MAAsD,OAAtD;AACA,OAAOC,SAAP,MAAsB,kBAAtB;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,SAASC,YAAT,QAA6B,0BAA7B;;AAEA,SAASC,aAAT,QAA8B,iBAA9B;AACA,SAASC,WAAT,QAA4B,uCAA5B;AACA,OAAO,KAAKC,YAAZ,MAA8B,wBAA9B;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,eAAT,QAAgC,kCAAhC;AACA,SAASC,sBAAT,QAAuC,uCAAvC;AACA,SAASC,UAAT,QAAmD,sBAAnD;AACA,SAASC,cAAT,QAA+B,+BAA/B;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,MAAT,QAAuB,kBAAvB;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,gBAAT,QAAiC,qBAAjC;;AAEA,SAASC,YAAT,QAAgD,gBAAhD;AACA,SAASC,WAAT,QAA4B,eAA5B;AACA,SAASC,WAAT,QAA4B,eAA5B;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,MAAT,QAAuB,gBAAvB;AACA,SAASC,aAAT,QAA8B,iBAA9B;;AAEA,IAAIC,kBAAkB,GAAG,CAAzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,OAAO,IAAMC,aAAa,GAAG;AAC3BC,EAAAA,SAAS,EAAE,iBADgB;AAE3BC,EAAAA,OAAO,EAAE,eAFkB;AAG3BC,EAAAA,KAAK,EAAE,aAHoB,EAAtB;;;;;AAQP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAaC,KAAb;;;;;;;;;;;;;AAaUC,IAAAA,QAbV,GAaqBf,iBAAiB,CAACc,KAAK,CAACE,YAAP,CAbtC;;AAeSC,IAAAA,KAfT,GAe6B;AACzBC,MAAAA,aAAa,EAAE,CADU;AAEzBC,MAAAA,aAAa,EAAE,IAFU;AAGzBC,MAAAA,gBAAgB,EAAE,KAHO;AAIzBC,MAAAA,SAAS,EAAE,KAJc;AAKzBC,MAAAA,SAAS,EAAE,KALc;AAMzBC,MAAAA,QAAQ,EAAE,KANe,EAf7B;;;;AAyBUC,IAAAA,iBAzBV,GAyB6D,IAzB7D;AA0BUC,IAAAA,aA1BV,GA0BiD,IA1BjD;AA2BUC,IAAAA,eA3BV,GA2BgD,IA3BhD;AA4BUC,IAAAA,aA5BV,GA4B8C,IA5B9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyLUC,IAAAA,YAzLV,GAyLyB,YAAM;AAC3B,UAAI,MAAKC,KAAL,CAAWC,YAAf,EAA6B;AAC3B;AACD;AACD,UAAI,MAAKD,KAAL,CAAWE,OAAf,EAAwB;AACtB,cAAKF,KAAL,CAAWE,OAAX;AACD;AACF,KAhMH;;AAkMUC,IAAAA,YAlMV,GAkMyB,UAACC,MAAD,EAAmC;AACxD,YAAKR,aAAL,GAAqBQ,MAArB;AACD,KApMH;;AAsMUC,IAAAA,iBAtMV,GAsM8B,UAACC,KAAD,EAAuC;AACjE,YAAKC,QAAL,CAAc,EAAElB,aAAa,EAAEiB,KAAK,CAACE,OAAN,+BAAjB,EAAsClB,aAAa,EAAEzB,UAAU,CAAC4C,UAAX,+BAArD,EAAd;AACD,KAxMH;;AA0MUC,IAAAA,wBA1MV,GA0MqC,UAACC,KAAD,EAA6B;AAC9D,YAAKd,eAAL,GAAuBc,KAAK,CAACC,MAA7B;AACD,KA5MH;;AA8MUC,IAAAA,sBA9MV,GA8MmC,UAACF,KAAD,EAA6B;AAC5D,YAAKb,aAAL,GAAqBa,KAAK,CAACC,MAA3B;AACD,KAhNH;;AAkNUE,IAAAA,oBAlNV,GAkNiC,UAACH,KAAD,EAA6C;AAC1E,UAAI,CAAC,MAAKX,KAAL,CAAWe,qBAAhB,EAAuC;AACrC,YAAQH,MAAR,GAAkCD,KAAlC,CAAQC,MAAR,CAAgBI,aAAhB,GAAkCL,KAAlC,CAAgBK,aAAhB;AACA,YAAIJ,MAAM,KAAKI,aAAX,IAA4B,MAAKnB,eAAL,KAAyBmB,aAArD,IAAsE,MAAKlB,aAAL,KAAuBkB,aAAjG,EAAgH;AAC9G,gBAAKjB,YAAL;AACD;AACF;AACF,KAzNH;;AA2NUkB,IAAAA,aA3NV,GA2N0B,UAACC,CAAD,EAAsB;AAC5C,UAAI,MAAK9B,KAAL,CAAWC,aAAX,KAA6B,CAAjC,EAAoC;AAClC;AACD;AACD,UAAI9B,WAAW,CAAC2D,CAAD,CAAf,EAAoB;AAClBvD,QAAAA,eAAe,CAACuD,CAAD,CAAf;AACA,cAAKnB,YAAL;AACD;AACF,KAnOH;;AAqOUoB,IAAAA,+BArOV,GAqO4C,YAAM;AAC9C,UAAIC,SAAS,GAAG,KAAhB;;AAEA,UAAI,MAAKxB,aAAT,EAAwB;AACtB,YAAMyB,oBAAoB,GAAG,MAAKzB,aAAL,CAAmB0B,WAAhD;AACA,YAAMC,oBAAoB,GAAG,MAAK3B,aAAL,CAAmB4B,WAAhD;AACAJ,QAAAA,SAAS,GAAGC,oBAAoB,GAAGE,oBAAnC;AACD;AACD,UAAIH,SAAS,IAAI,CAAC,MAAKhC,KAAL,CAAWG,gBAA7B,EAA+C;AAC7C,cAAKgB,QAAL,CAAc,EAAEhB,gBAAgB,EAAE,IAApB,EAAd;AACD,OAFD,MAEO,IAAI,MAAKH,KAAL,CAAWG,gBAAf,EAAiC;AACtC,cAAKgB,QAAL,CAAc,EAAEhB,gBAAgB,EAAE,KAApB,EAAd;AACD;AACF,KAlPH;;AAoPUkC,IAAAA,8BApPV,GAoP2CrE,QAAQ,CAAC,MAAK+D,+BAAN,EAAuC,GAAvC,CApPnD;;AAsPUO,IAAAA,YAtPV,GAsPyB,YAAM;AAC3BlE,MAAAA,YAAY,CAACmE,IAAb;AACD,KAxPH;;AA0PUC,IAAAA,YA1PV,GA0PyB,UAACpC,SAAD,EAAsB,KAArBA,SAAqB,cAArBA,SAAqB,GAAT,IAAS;AAC3C,YAAKJ,KAAL,CAAWI,SAAX,KAAyBA,SAAzB,IAAsC,MAAKe,QAAL,CAAc,EAAEf,SAAS,EAATA,SAAF,EAAd,CAAtC;AACD,KA5PH;;AA8PUqC,IAAAA,YA9PV,GA8PyB,UAACpC,SAAD,EAAsB,KAArBA,SAAqB,cAArBA,SAAqB,GAAT,IAAS;AAC3C,YAAKL,KAAL,CAAWK,SAAX,KAAyBA,SAAzB,IAAsC,MAAKc,QAAL,CAAc,EAAEd,SAAS,EAATA,SAAF,EAAd,CAAtC;AACD,KAhQH;;AAkQUqC,IAAAA,WAlQV,GAkQwB,UAACpC,QAAD,EAAsB,KAArBA,QAAqB,cAArBA,QAAqB,GAAV,KAAU;AAC1C,YAAKN,KAAL,CAAWM,QAAX,KAAwBA,QAAxB,IAAoC,MAAKa,QAAL,CAAc,EAAEb,QAAQ,EAARA,QAAF,EAAd,CAApC;AACD,KApQH,mDA8BSqC,iBA9BT,GA8BE,6BAA2B,CACzB,KAAKpC,iBAAL,GAAyB9B,UAAU,CAACmE,GAAX,CAAe,IAAf,EAAqB,KAAK3B,iBAA1B,CAAzB,CAEA,IAAIzB,kBAAkB,KAAK,CAA3B,EAA8B,CAC5BvB,YAAY,CAAC4E,gBAAb,oBAAA5E,YAAY,CAAC4E,gBAAb,CAAgC,QAAhC,EAA0C,KAAKR,8BAA/C,EACD,CAED7C,kBAAkB,GAClBvB,YAAY,CAAC4E,gBAAb,oBAAA5E,YAAY,CAAC4E,gBAAb,CAAgC,SAAhC,EAA2C,KAAKhB,aAAhD,EACA,KAAKE,+BAAL,GAEA,IAAI,KAAKvB,aAAT,EAAwB,CACtB,KAAKA,aAAL,CAAmBqC,gBAAnB,CAAoC,QAApC,EAA8CzE,YAAY,CAACmE,IAA3D,EACD,CACF,CA5CH,QA8CSO,oBA9CT,GA8CE,gCAA8B,CAC5B,IAAI,EAAEtD,kBAAF,KAAyB,CAA7B,EAAgC,CAC9BvB,YAAY,CAAC8E,mBAAb,oBAAA9E,YAAY,CAAC8E,mBAAb,CAAmC,QAAnC,EAA6C,KAAKV,8BAAlD,EACAjE,YAAY,CAACmE,IAAb,GACD,CAEDtE,YAAY,CAAC8E,mBAAb,oBAAA9E,YAAY,CAAC8E,mBAAb,CAAmC,SAAnC,EAA8C,KAAKlB,aAAnD,EACA,IAAI3D,aAAa,CAAC,KAAKqC,iBAAN,CAAjB,EAA2C,CACzC,KAAKA,iBAAL,CAAuByC,MAAvB,GACD,CACDvE,UAAU,CAACuE,MAAX,CAAkB,IAAlB,EAEA,IAAI,KAAKxC,aAAT,EAAwB,CACtB,KAAKA,aAAL,CAAmBuC,mBAAnB,CAAuC,QAAvC,EAAiD3E,YAAY,CAACmE,IAA9D,EACD,CACF,CA7DH,QA+DSU,MA/DT,GA+DE,kBAA6B,mBAC3B,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAa3D,aAAa,CAAC2D,KAAD,CAA1B,CACA,oBAAO,oBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAE,MAAI,CAACA,KAAnC,IAA2C,MAAI,CAACC,UAAL,EAA3C,CAAP,CACD,CAJH,CADF,CAQD,CAxEH,QA0EUA,UA1EV,GA0EE,sBAAqB,mBACnB,kBAQI,KAAKvC,KART,CACEwC,OADF,eACEA,OADF,CAEEvC,YAFF,eAEEA,YAFF,CAGEwC,KAHF,eAGEA,KAHF,CAIEC,QAJF,eAIEA,QAJF,CAKEC,QALF,eAKEA,QALF,CAMgBC,SANhB,eAME,YANF,EAOqBC,cAPrB,eAOE,iBAPF,EASA,kBAA2C,KAAKzD,KAAhD,CAAQI,SAAR,eAAQA,SAAR,CAAmBC,SAAnB,eAAmBA,SAAnB,CAA8BC,QAA9B,eAA8BA,QAA9B,CACA,qBAAmC,KAAKR,QAAL,EAAnC,CAAQ4D,IAAR,kBAAQA,IAAR,CAAcC,gBAAd,kBAAcA,gBAAd,CAEA,IAAMC,iBAAoC,GAAG,EAC3CxD,SAAS,EAATA,SAD2C,EAE3CD,gBAAgB,EAAE,KAAKH,KAAL,CAAWG,gBAFc,EAG3CqC,YAAY,EAAE,KAAKA,YAHwB,EAI3CC,YAAY,EAAE,KAAKA,YAJwB,EAK3CC,WAAW,EAAE,KAAKA,WALyB,EAA7C,CAOA,IAAI,CAACU,OAAL,EAAc,CACZQ,iBAAiB,CAAChE,KAAlB,GAA0B,EACxBiB,YAAY,EAAZA,YADwB,EAExBF,YAAY,EAAE,KAAKA,YAFK,EAA1B,CAID,CACD,IAAI,CAACN,SAAL,EAAgB,CACduD,iBAAiB,CAACC,iBAAlB,GAAsC,IAAtC,CACD,CACD,IAAIxD,SAAS,IAAIC,QAAjB,EAA2B,CACzBsD,iBAAiB,CAACC,iBAAlB,GAAsC,IAAtC,CACD,CAED,IAAMC,KAAkC,GAAG,EAA3C,CACA,IAAMC,cAA2C,GAAG,EAApD,CAEA,IAAIV,KAAJ,EAAW,CACTS,KAAK,CAACT,KAAN,GAAcA,KAAd,CACD,CAFD,MAEO,CACLU,cAAc,CAACV,KAAf,GAAuB,MAAvB,CACD,CAED,oBACE,oBAAC,eAAD,qBACE,oBAAC,aAAD,EAAmB,KAAKzC,KAAxB,eACE,oBAAC,MAAD,IAAQ,QAAQ,EAAE,OAAlB,EAA2B,SAAS,EAAEtB,MAAM,CAAC0E,IAAP,EAAtC,iBACE,oBAAC,sBAAD,OADF,EAEG,KAAKhE,KAAL,CAAWE,aAAX,iBAA4B,6BAAK,SAAS,EAAEZ,MAAM,CAAC2E,EAAP,CAAU,KAAKf,KAAf,CAAhB,GAF/B,eAGE,6BACE,mBAAiBO,cADnB,EAEE,GAAG,EAAE,KAAK1C,YAFZ,EAGE,SAAS,EAAEzB,MAAM,CAACI,SAAP,EAHb,EAIE,WAAW,EAAE,KAAK4B,wBAJpB,EAKE,SAAS,EAAE,KAAKG,sBALlB,EAME,OAAO,EAAE,KAAKC,oBANhB,EAOE,YAAUjC,aAAa,CAACC,SAP1B,iBASE,oBAAC,gBAAD,QACG,qDAAGwE,QAAH,QAAGA,QAAH,qBACC,6BACE,kBADF,EAEE,cAAYV,SAFd,EAGE,IAAI,EAAEE,IAHR,EAIE,SAAS,EAAE5E,EAAE,gBACVQ,MAAM,CAAC6E,eAAP,EADU,IACiB,IADjB,MAEV7E,MAAM,CAAC8E,qBAAP,EAFU,IAEuBF,QAFvB,MAGV5E,MAAM,CAACgE,QAAP,EAHU,IAGUe,OAAO,CAACf,QAAD,CAHjB,OAJf,EASE,KAAK,EAAEY,QAAQ,GAAGI,SAAH,GAAeP,cAThC,EAUE,YAAUtE,aAAa,CAACE,OAV1B,iBAYE,6BACE,SAAS,EAAEb,EAAE,kBAAIQ,MAAM,CAACiF,MAAP,CAAc,MAAI,CAACrB,KAAnB,CAAJ,IAAgC,IAAhC,OAAuC5D,MAAM,CAACkF,YAAP,EAAvC,IAA+DN,QAA/D,QADf,EAEE,KAAK,EAAEA,QAAQ,GAAGI,SAAH,GAAeR,KAFhC,iBAIE,oBAAC,cAAD,IAAgB,QAAQ,EAAE,MAAI,CAACxB,YAA/B,EAA6C,UAAU,EAAE4B,QAAzD,iBACE,oBAAC,SAAD,IACE,QAAQ,EAAEP,gBADZ,EAEE,SAAS,EAAE,KAFb,EAGE,SAAS,EAAE7E,EAAE,kBAAIQ,MAAM,CAACmF,mBAAP,EAAJ,IAAmCP,QAAnC,SAA+C,sBAA/C,CAHf,IAKG,CAAC9D,SAAD,IAAc,CAACgD,OAAf,iBACC,oBAAC,MAAD,IACE,SAAS,EAAEtE,EAAE,kBACVQ,MAAM,CAACoF,YAAP,CAAoB,MAAI,CAACxB,KAAzB,CADU,IACwB,IADxB,OAEV5D,MAAM,CAACqF,kBAAP,CAA0B,MAAI,CAACzB,KAA/B,CAFU,IAE8BgB,QAF9B,QADf,iBAME,oBAAC,UAAD,IACE,SAAS,EAAEpF,EAAE,kBACVQ,MAAM,CAACsF,wBAAP,EADU,IAC0BV,QAAQ,IAAI,CAAC,MAAI,CAAClE,KAAL,CAAWI,SADlD,QADf,EAIE,YAAY,EAAE,MAAI,CAACO,YAJrB,EAKE,YAAY,EAAEE,YALhB,GANF,CANJ,eAqBE,oBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAE+C,iBAA9B,IAAkDL,QAAlD,CArBF,CADF,CAJF,CAZF,CADD,EADH,CATF,CAHF,CADF,CADF,CADF,CAmED,CAvLH,gBAA2BzF,KAAK,CAAC+G,SAAjC,EAAahF,K,CACGiF,mB,GAAsB,O,CADzBjF,K,CAGGkF,M,GAAS5F,W,CAHZU,K,CAIGmF,I,GAAO5F,S,CAJVS,K,CAKGoF,M,GAAS/F,W,CALZW,K,CAOGE,Y,GAA6B,EACzC;AACA4D,EAAAA,gBAAgB,EAAE/E,MAFuB,EAGzC8E,IAAI,EAAE,QAHmC,E","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 } 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\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\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);\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 && <div className={styles.bg(this.theme)} />}\n <div\n aria-labelledby={ariaLabelledby}\n ref={this.refContainer}\n className={styles.container()}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid={ModalDataTids.container}\n >\n <ResponsiveLayout>\n {({ isMobile }) => (\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 )}\n </ResponsiveLayout>\n </div>\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"]}
1
+ {"version":3,"sources":["Modal.tsx"],"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","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","componentDidMount","add","addEventListener","componentWillUnmount","removeEventListener","remove","render","theme","renderMain","noClose","width","alignTop","children","ariaLabel","ariaLabelledby","role","disableFocusLock","modalContextProps","additionalPadding","style","containerStyle","root","bg","isMobile","containerMobile","centerContainer","mobileCenterContainer","Boolean","undefined","window","mobileWindow","columnFlexContainer","closeWrapper","mobileCloseWrapper","mobileCloseWithoutHeader","Component","__KONTUR_REACT_UI__","Header","Body","Footer"],"mappings":"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","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\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"]}
@@ -1,4 +1,5 @@
1
1
  import React, { AriaAttributes, HTMLAttributes } from 'react';
2
+ import { ThemeIn } from '../../lib/theming/Theme';
2
3
  import { CommonProps } from '../../internal/CommonWrapper';
3
4
  import { ModalFooter } from './ModalFooter';
4
5
  import { ModalHeader } from './ModalHeader';
@@ -31,6 +32,11 @@ export interface ModalProps extends CommonProps, Pick<HTMLAttributes<unknown>, '
31
32
  * По умолчанию true для IE11.
32
33
  */
33
34
  disableFocusLock?: boolean;
35
+ /**
36
+ * Обычный объект с переменными темы.
37
+ * Он будет объединён с темой из контекста.
38
+ */
39
+ theme?: ThemeIn;
34
40
  }
35
41
  export interface ModalState {
36
42
  stackPosition: number;