@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
@@ -1 +1 @@
1
- {"version":3,"sources":["GlobalLoader.tsx"],"names":["GlobalLoaderDataTids","root","currentGlobalLoader","GlobalLoader","rootNode","props","getProps","defaultProps","startTask","setState","visible","onStart","delayBeforeShow","stopTask","successAnimationInProgress","started","onDone","delayBeforeHide","setActive","rejected","cancel","state","successAnimationInProgressTimeout","globalObject","setTimeout","done","accept","setReject","setDone","reject","active","onReject","onAccept","kill","dead","expectedResponseTime","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","clearTimeout","render","status","dataState","disableAnimations","setRootNode","updateExpectedResponseTime","React","Component","isTestEnv","start"],"mappings":"udAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDO,IAAMA,oBAAoB,GAAG;AAClCC,EAAAA,IAAI,EAAE,cAD4B,EAA7B,C;;;;;;;;;;AAWP,IAAIC,mBAAJ,C;;AAEaC,Y,OADZC,kB;;;;;;;;;;;;;;;;;;;;;;;;AAyBC,wBAAYC,KAAZ,EAAsC;AACpC,wCAAMA,KAAN,UADoC,MArB9BC,QAqB8B,GArBnB,0CAAkBH,YAAY,CAACI,YAA/B,CAqBmB,OAnBrBC,SAmBqB,GAnBT,qBAAS,YAAM,CAC1C,MAAKC,QAAL,CAAc,EAAEC,OAAO,EAAE,IAAX,EAAd,EACA,MAAKL,KAAL,CAAWM,OAAX,0BAAKN,KAAL,CAAWM,OAAX,GACD,CAH4B,EAG1B,MAAKL,QAAL,GAAgBM,eAHU,CAmBS,OAdrBC,QAcqB,GAdV,qBAAS,YAAM,CACzC,MAAKJ,QAAL,CAAc,EAAEC,OAAO,EAAE,KAAX,EAAkBI,0BAA0B,EAAE,KAA9C,EAAqDC,OAAO,EAAE,KAA9D,EAAd,EACA,MAAKV,KAAL,CAAWW,MAAX,0BAAKX,KAAL,CAAWW,MAAX,GACD,CAH2B,EAGzB,MAAKV,QAAL,GAAgBW,eAHS,CAcU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyH/BC,IAAAA,SAzH+B,GAyHnB,YAAM;AACvB,2BAAsC,MAAKZ,QAAL,EAAtC,CAAQW,eAAR,kBAAQA,eAAR,CAAyBE,QAAzB,kBAAyBA,QAAzB;AACA,YAAKX,SAAL,CAAeY,MAAf;AACA,UAAI,MAAKC,KAAL,CAAWP,0BAAf,EAA2C;AACzC,cAAKQ,iCAAL,GAAyCC,2BAAaC,UAAb,CAAwB,YAAM;AACrE,gBAAKN,SAAL;AACD,SAFwC,EAEtCD,eAFsC,CAAzC;AAGD,OAJD,MAIO;AACL,cAAKR,QAAL,CAAc,EAAEC,OAAO,EAAE,KAAX,EAAkBe,IAAI,EAAE,KAAxB,EAA+BN,QAAQ,EAAE,KAAzC,EAAgDO,MAAM,EAAE,KAAxD,EAA+DX,OAAO,EAAE,IAAxE,EAAd;AACA,YAAII,QAAJ,EAAc;AACZ,gBAAKQ,SAAL,CAAe,IAAf;AACD,SAFD,MAEO;AACL,gBAAKd,QAAL,CAAcO,MAAd;AACA,gBAAKZ,SAAL;AACD;AACF;AACF,KAzIqC;;AA2I/BoB,IAAAA,OA3I+B,GA2IrB,YAAM;AACrB,YAAKnB,QAAL,CAAc,EAAEgB,IAAI,EAAE,IAAR,EAAcX,0BAA0B,EAAE,IAA1C,EAAd;AACA,YAAKN,SAAL,CAAeY,MAAf;AACA,YAAKP,QAAL;AACD,KA/IqC;;AAiJ/Bc,IAAAA,SAjJ+B,GAiJnB,UAACE,MAAD,EAAqB;AACtC,UAAI,CAAC,MAAKR,KAAL,CAAWX,OAAZ,KAAwB,MAAKW,KAAL,CAAWN,OAAX,IAAsB,MAAKT,QAAL,GAAgBwB,MAA9D,CAAJ,EAA2E;AACzE,cAAKrB,QAAL,CAAc,EAAEC,OAAO,EAAE,IAAX,EAAd;AACD;AACD,YAAKF,SAAL,CAAeY,MAAf;AACA,YAAKP,QAAL,CAAcO,MAAd;AACA,UAAIS,MAAJ,EAAY;AACV,cAAKxB,KAAL,CAAW0B,QAAX,0BAAK1B,KAAL,CAAW0B,QAAX;AACD,OAFD,MAEO,IAAI,MAAKV,KAAL,CAAWF,QAAf,EAAyB;AAC9B,cAAKV,QAAL,CAAc,EAAEiB,MAAM,EAAE,IAAV,EAAd;AACA,cAAKrB,KAAL,CAAW2B,QAAX,0BAAK3B,KAAL,CAAW2B,QAAX;AACD;AACD,YAAKvB,QAAL,CAAc,EAAEU,QAAQ,EAAEU,MAAZ,EAAd;AACD,KA9JqC;;;;;;AAoK/BI,IAAAA,IApK+B,GAoKxB,YAAM;AAClB,YAAKpB,QAAL,CAAcO,MAAd;AACA,YAAKZ,SAAL,CAAeY,MAAf;AACA,YAAKX,QAAL,CAAc;AACZyB,QAAAA,IAAI,EAAE,IADM,EAAd;;AAGD,KA1KqC,CAEpC,MAAKb,KAAL,GAAa,EACXN,OAAO,EAAE,KADE,EAEXL,OAAO,EAAE,KAFE,EAGXe,IAAI,EAAE,KAHK,EAIXN,QAAQ,EAAE,KAJC,EAKXO,MAAM,EAAE,KALG,EAMXQ,IAAI,EAAE,KANK,EAOXpB,0BAA0B,EAAE,KAPjB,EAQXqB,oBAAoB,EAAE,MAAK7B,QAAL,GAAgB6B,oBAR3B,EAAb,CAUA,MAAKb,iCAAL,GAAyC,IAAzC,CACA,wBAAApB,mBAAmB,SAAnB,iCAAqB+B,IAArB,GACA/B,mBAAmB,8CAAnB,CAdoC,aAerC,C,2CACDkC,iB,GAAA,6BAAoB,CAClB,sBAA6B,KAAK9B,QAAL,EAA7B,CAAQwB,MAAR,mBAAQA,MAAR,CAAgBX,QAAhB,mBAAgBA,QAAhB,CACA,IAAIW,MAAJ,EAAY,CACV,KAAKZ,SAAL,GACD,CACD,IAAIC,QAAJ,EAAc,CACZ,KAAKQ,SAAL,CAAe,IAAf,EACD,CACF,C,QAEDU,kB,GAAA,4BAAmBC,SAAnB,EAA2D,CACzD,sBAAmD,KAAKhC,QAAL,EAAnD,CAAQ6B,oBAAR,mBAAQA,oBAAR,CAA8BhB,QAA9B,mBAA8BA,QAA9B,CAAwCW,MAAxC,mBAAwCA,MAAxC,CACA,IAAIK,oBAAoB,KAAKG,SAAS,CAACH,oBAAvC,EAA6D,CAC3D,KAAK1B,QAAL,CAAc,EAAE0B,oBAAoB,EAApBA,oBAAF,EAAd,EACD,CACD,IAAIhB,QAAQ,KAAKmB,SAAS,CAACnB,QAA3B,EAAqC,CACnC,KAAKQ,SAAL,CAAe,CAAC,CAACR,QAAjB,EACD,CACD,IAAIW,MAAM,KAAKQ,SAAS,CAACR,MAAzB,EAAiC,CAC/B,IAAIA,MAAJ,EAAY,CACV,KAAKZ,SAAL,GACD,CAFD,MAEO,CACL,KAAKU,OAAL,GACD,CACF,CACF,C,QAEDW,oB,GAAA,gCAAuB,CACrB,KAAKjB,iCAAL,IAA0CC,2BAAaiB,YAAb,CAA0B,KAAKlB,iCAA/B,CAA1C,CACD,C,QAEMmB,M,GAAP,kBAAgB,CACd,IAAIC,MAAuC,GAAG,UAA9C,CACA,IAAIC,SAAJ,CAEA,IAAI,KAAKtB,KAAL,CAAWI,IAAf,EAAqB,CACnBiB,MAAM,GAAG,SAAT,CACAC,SAAS,GAAG,MAAZ,CACD,CAHD,MAGO,IAAI,KAAKtB,KAAL,CAAWF,QAAf,EAAyB,CAC9BuB,MAAM,GAAG,OAAT,CACAC,SAAS,GAAG,UAAZ,CACD,CAHM,MAGA,IAAI,KAAKtB,KAAL,CAAWK,MAAf,EAAuB,CAC5BgB,MAAM,GAAG,QAAT,CACD,CACD,sBAA+C,KAAKpC,QAAL,EAA/C,CAAQW,eAAR,mBAAQA,eAAR,CAAyB2B,iBAAzB,mBAAyBA,iBAAzB,CACA,OACE,CAAC,KAAKvB,KAAL,CAAWa,IAAZ,IACA,KAAKb,KAAL,CAAWX,OADX,iBAEE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKmC,WAAjC,IAAkD,KAAKxC,KAAvD,gBACE,6BAAC,kCAAD,IACE,oBAAoB,EAAE,KAAKgB,KAAL,CAAWc,oBADnC,EAEE,eAAe,EAAElB,eAFnB,EAGE,MAAM,EAAEyB,MAHV,EAIE,YAAU1C,oBAAoB,CAACC,IAJjC,EAKE,iBAAiB,EAAE2C,iBALrB,EAME,SAAS,EAAED,SANb,GADF,CAHJ,CAeD,C,CAED;AACF;AACA;AACA;AACA;AACA,K,QA6ESG,0B,GAAP,oCAAkCX,oBAAlC,EAAgE,CAC9D,KAAK1B,QAAL,CAAc,EAAE0B,oBAAoB,EAApBA,oBAAF,EAAd,EACD,C,uBA1L+BY,eAAMC,S,WAexBzC,Y,GAA6B,EACzC4B,oBAAoB,EAAE,IADmB,EAEzCvB,eAAe,EAAE,IAFwB,EAGzCK,eAAe,EAAE,IAHwB,EAIzCE,QAAQ,EAAE,KAJ+B,EAKzCW,MAAM,EAAE,KALiC,EAMzCc,iBAAiB,EAAEK,6BANsB,E,UA6F7BC,K,GAAQ,UAACf,oBAAD,EAAmC,CACvDjC,mBAAmB,CAACgB,SAApB,GACA,IAAI,OAAOiB,oBAAP,KAAgC,QAApC,EAA8C,CAC5CjC,mBAAmB,CAAC4C,0BAApB,CAA+CX,oBAA/C,EACD,CACF,C,UAQaV,I,GAAO,YAAM,CACzBvB,mBAAmB,CAAC0B,OAApB,GACD,C,UAQaC,M,GAAS,YAAM,CAC3B3B,mBAAmB,CAACyB,SAApB,CAA8B,IAA9B,EACD,C,UAQaD,M,GAAS,YAAM,CAC3BxB,mBAAmB,CAACyB,SAApB,CAA8B,KAA9B,EACD,C","sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { GlobalLoaderView, GlobalLoaderViewProps } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps {\n /**\n * Время(ms) до появления лоадера\n */\n delayBeforeShow?: number;\n /**\n * Время(ms) до исчезновения лоадера\n */\n delayBeforeHide?: number;\n /**\n * Ожидаемое время(ms) ответа сервера\n */\n expectedResponseTime?: number;\n /**\n * Анимация лоадера в виде спиннера\n */\n rejected?: boolean;\n /**\n * Показывать лоадер\n */\n active?: boolean;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Коллбек, вызывающийся после появления лоадера\n */\n onStart?(): void;\n /**\n * Коллбек, вызывающийся после исчезновения лоадера\n */\n onDone?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.reject()`.\n * Или после установки пропа `rejected = true`\n */\n onReject?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.accept()`.\n * Или после установки пропа `rejected = false`\n */\n onAccept?(): void;\n}\nexport interface GlobalLoaderState {\n visible: boolean;\n done: boolean;\n rejected: boolean;\n accept: boolean;\n dead: boolean;\n successAnimationInProgress: boolean;\n expectedResponseTime: number;\n started: boolean;\n}\n\nexport const GlobalLoaderDataTids = {\n root: 'GlobalLoader',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n GlobalLoaderProps,\n 'expectedResponseTime' | 'delayBeforeShow' | 'delayBeforeHide' | 'rejected' | 'active' | 'disableAnimations'\n >\n>;\n\nlet currentGlobalLoader: GlobalLoader;\n@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {\n private successAnimationInProgressTimeout: SafeTimer;\n private setRootNode!: TSetRootNode;\n private getProps = createPropsGetter(GlobalLoader.defaultProps);\n\n private readonly startTask = debounce(() => {\n this.setState({ visible: true });\n this.props.onStart?.();\n }, this.getProps().delayBeforeShow);\n\n private readonly stopTask = debounce(() => {\n this.setState({ visible: false, successAnimationInProgress: false, started: false });\n this.props.onDone?.();\n }, this.getProps().delayBeforeHide);\n\n public static defaultProps: DefaultProps = {\n expectedResponseTime: 1000,\n delayBeforeShow: 1000,\n delayBeforeHide: 1000,\n rejected: false,\n active: false,\n disableAnimations: isTestEnv,\n };\n\n constructor(props: GlobalLoaderProps) {\n super(props);\n this.state = {\n started: false,\n visible: false,\n done: false,\n rejected: false,\n accept: false,\n dead: false,\n successAnimationInProgress: false,\n expectedResponseTime: this.getProps().expectedResponseTime,\n };\n this.successAnimationInProgressTimeout = null;\n currentGlobalLoader?.kill();\n currentGlobalLoader = this;\n }\n componentDidMount() {\n const { active, rejected } = this.getProps();\n if (active) {\n this.setActive();\n }\n if (rejected) {\n this.setReject(true);\n }\n }\n\n componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>) {\n const { expectedResponseTime, rejected, active } = this.getProps();\n if (expectedResponseTime !== prevProps.expectedResponseTime) {\n this.setState({ expectedResponseTime });\n }\n if (rejected !== prevProps.rejected) {\n this.setReject(!!rejected);\n }\n if (active !== prevProps.active) {\n if (active) {\n this.setActive();\n } else {\n this.setDone();\n }\n }\n }\n\n componentWillUnmount() {\n this.successAnimationInProgressTimeout && globalObject.clearTimeout(this.successAnimationInProgressTimeout);\n }\n\n public render() {\n let status: GlobalLoaderViewProps['status'] = 'standard';\n let dataState: GlobalLoaderViewProps['dataState'];\n\n if (this.state.done) {\n status = 'success';\n dataState = 'done';\n } else if (this.state.rejected) {\n status = 'error';\n dataState = 'rejected';\n } else if (this.state.accept) {\n status = 'accept';\n }\n const { delayBeforeHide, disableAnimations } = this.getProps();\n return (\n !this.state.dead &&\n this.state.visible && (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <GlobalLoaderView\n expectedResponseTime={this.state.expectedResponseTime}\n delayBeforeHide={delayBeforeHide}\n status={status}\n data-tid={GlobalLoaderDataTids.root}\n disableAnimations={disableAnimations}\n dataState={dataState}\n />\n </CommonWrapper>\n )\n );\n }\n\n /**\n * Запускает анимацию лоадера <br />\n * Равносильно установке пропа `active = true`\n *\n * @public\n */\n public static start = (expectedResponseTime?: number) => {\n currentGlobalLoader.setActive();\n if (typeof expectedResponseTime === 'number') {\n currentGlobalLoader.updateExpectedResponseTime(expectedResponseTime);\n }\n };\n\n /**\n * Показывает анимацию успешного завершения загрузки <br />\n * Равносильно установке пропа `active = false`\n *\n * @public\n */\n public static done = () => {\n currentGlobalLoader.setDone();\n };\n\n /**\n * Переключает анимацию лоадера в состояние спиннера <br />\n * Равносильно установке пропа `rejected = true`\n *\n * @public\n */\n public static reject = () => {\n currentGlobalLoader.setReject(true);\n };\n\n /**\n * Возвращает лоадер из состояния спиннера в обычное и продолжает анимацию с того места, на котором она была прерван <br />\n * Равносильно установке пропа `rejected = false`\n *\n * @public\n */\n public static accept = () => {\n currentGlobalLoader.setReject(false);\n };\n\n public setActive = () => {\n const { delayBeforeHide, rejected } = this.getProps();\n this.startTask.cancel();\n if (this.state.successAnimationInProgress) {\n this.successAnimationInProgressTimeout = globalObject.setTimeout(() => {\n this.setActive();\n }, delayBeforeHide);\n } else {\n this.setState({ visible: false, done: false, rejected: false, accept: false, started: true });\n if (rejected) {\n this.setReject(true);\n } else {\n this.stopTask.cancel();\n this.startTask();\n }\n }\n };\n\n public setDone = () => {\n this.setState({ done: true, successAnimationInProgress: true });\n this.startTask.cancel();\n this.stopTask();\n };\n\n public setReject = (reject: boolean) => {\n if (!this.state.visible && (this.state.started || this.getProps().active)) {\n this.setState({ visible: true });\n }\n this.startTask.cancel();\n this.stopTask.cancel();\n if (reject) {\n this.props.onReject?.();\n } else if (this.state.rejected) {\n this.setState({ accept: true });\n this.props.onAccept?.();\n }\n this.setState({ rejected: reject });\n };\n\n public updateExpectedResponseTime(expectedResponseTime: number) {\n this.setState({ expectedResponseTime });\n }\n\n public kill = () => {\n this.stopTask.cancel();\n this.startTask.cancel();\n this.setState({\n dead: true,\n });\n };\n}\n"]}
1
+ {"version":3,"sources":["GlobalLoader.tsx"],"names":["GlobalLoaderDataTids","root","currentGlobalLoader","GlobalLoader","rootNode","props","getProps","defaultProps","startTask","setState","visible","onStart","delayBeforeShow","stopTask","successAnimationInProgress","started","onDone","delayBeforeHide","setActive","rejected","cancel","state","successAnimationInProgressTimeout","globalObject","setTimeout","done","accept","setReject","setDone","reject","active","onReject","onAccept","kill","dead","expectedResponseTime","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","clearTimeout","render","status","disableAnimations","setRootNode","updateExpectedResponseTime","React","Component","isTestEnv","start"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { GlobalLoaderView, GlobalLoaderViewProps } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps {\n /**\n * Время(ms) до появления лоадера\n */\n delayBeforeShow?: number;\n /**\n * Время(ms) до исчезновения лоадера\n */\n delayBeforeHide?: number;\n /**\n * Ожидаемое время(ms) ответа сервера\n */\n expectedResponseTime?: number;\n /**\n * Анимация лоадера в виде спиннера\n */\n rejected?: boolean;\n /**\n * Показывать лоадер\n */\n active?: boolean;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Коллбек, вызывающийся после появления лоадера\n */\n onStart?(): void;\n /**\n * Коллбек, вызывающийся после исчезновения лоадера\n */\n onDone?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.reject()`.\n * Или после установки пропа `rejected = true`\n */\n onReject?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.accept()`.\n * Или после установки пропа `rejected = false`\n */\n onAccept?(): void;\n}\nexport interface GlobalLoaderState {\n visible: boolean;\n done: boolean;\n rejected: boolean;\n accept: boolean;\n dead: boolean;\n successAnimationInProgress: boolean;\n expectedResponseTime: number;\n started: boolean;\n}\n\nexport const GlobalLoaderDataTids = {\n root: 'GlobalLoader',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n GlobalLoaderProps,\n 'expectedResponseTime' | 'delayBeforeShow' | 'delayBeforeHide' | 'rejected' | 'active' | 'disableAnimations'\n >\n>;\n\nlet currentGlobalLoader: GlobalLoader;\n@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {\n private successAnimationInProgressTimeout: SafeTimer;\n private setRootNode!: TSetRootNode;\n private getProps = createPropsGetter(GlobalLoader.defaultProps);\n\n private readonly startTask = debounce(() => {\n this.setState({ visible: true });\n this.props.onStart?.();\n }, this.getProps().delayBeforeShow);\n\n private readonly stopTask = debounce(() => {\n this.setState({ visible: false, successAnimationInProgress: false, started: false });\n this.props.onDone?.();\n }, this.getProps().delayBeforeHide);\n\n public static defaultProps: DefaultProps = {\n expectedResponseTime: 1000,\n delayBeforeShow: 1000,\n delayBeforeHide: 1000,\n rejected: false,\n active: false,\n disableAnimations: isTestEnv,\n };\n\n constructor(props: GlobalLoaderProps) {\n super(props);\n this.state = {\n started: false,\n visible: false,\n done: false,\n rejected: false,\n accept: false,\n dead: false,\n successAnimationInProgress: false,\n expectedResponseTime: this.getProps().expectedResponseTime,\n };\n this.successAnimationInProgressTimeout = null;\n currentGlobalLoader?.kill();\n currentGlobalLoader = this;\n }\n componentDidMount() {\n const { active, rejected } = this.getProps();\n if (active) {\n this.setActive();\n }\n if (rejected) {\n this.setReject(true);\n }\n }\n\n componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>) {\n const { expectedResponseTime, rejected, active } = this.getProps();\n if (expectedResponseTime !== prevProps.expectedResponseTime) {\n this.setState({ expectedResponseTime });\n }\n if (rejected !== prevProps.rejected) {\n this.setReject(!!rejected);\n }\n if (active !== prevProps.active) {\n if (active) {\n this.setActive();\n } else {\n this.setDone();\n }\n }\n }\n\n componentWillUnmount() {\n this.successAnimationInProgressTimeout && globalObject.clearTimeout(this.successAnimationInProgressTimeout);\n }\n\n public render() {\n let status: GlobalLoaderViewProps['status'] = 'standard';\n\n if (this.state.done) {\n status = 'success';\n } else if (this.state.rejected) {\n status = 'error';\n } else if (this.state.accept) {\n status = 'accept';\n }\n const { delayBeforeHide, disableAnimations } = this.getProps();\n return (\n !this.state.dead &&\n this.state.visible && (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <GlobalLoaderView\n expectedResponseTime={this.state.expectedResponseTime}\n delayBeforeHide={delayBeforeHide}\n status={status}\n data-tid={GlobalLoaderDataTids.root}\n disableAnimations={disableAnimations}\n />\n </CommonWrapper>\n )\n );\n }\n\n /**\n * Запускает анимацию лоадера <br />\n * Равносильно установке пропа `active = true`\n *\n * @public\n */\n public static start = (expectedResponseTime?: number) => {\n currentGlobalLoader.setActive();\n if (typeof expectedResponseTime === 'number') {\n currentGlobalLoader.updateExpectedResponseTime(expectedResponseTime);\n }\n };\n\n /**\n * Показывает анимацию успешного завершения загрузки <br />\n * Равносильно установке пропа `active = false`\n *\n * @public\n */\n public static done = () => {\n currentGlobalLoader.setDone();\n };\n\n /**\n * Переключает анимацию лоадера в состояние спиннера <br />\n * Равносильно установке пропа `rejected = true`\n *\n * @public\n */\n public static reject = () => {\n currentGlobalLoader.setReject(true);\n };\n\n /**\n * Возвращает лоадер из состояния спиннера в обычное и продолжает анимацию с того места, на котором она была прерван <br />\n * Равносильно установке пропа `rejected = false`\n *\n * @public\n */\n public static accept = () => {\n currentGlobalLoader.setReject(false);\n };\n\n public setActive = () => {\n const { delayBeforeHide, rejected } = this.getProps();\n this.startTask.cancel();\n if (this.state.successAnimationInProgress) {\n this.successAnimationInProgressTimeout = globalObject.setTimeout(() => {\n this.setActive();\n }, delayBeforeHide);\n } else {\n this.setState({ visible: false, done: false, rejected: false, accept: false, started: true });\n if (rejected) {\n this.setReject(true);\n } else {\n this.stopTask.cancel();\n this.startTask();\n }\n }\n };\n\n public setDone = () => {\n if (!this.state.started) {\n return;\n }\n this.setState({ done: true, successAnimationInProgress: true });\n this.startTask.cancel();\n this.stopTask();\n };\n\n public setReject = (reject: boolean) => {\n if (!this.state.visible && (this.state.started || this.getProps().active)) {\n this.setState({ visible: true });\n }\n this.startTask.cancel();\n this.stopTask.cancel();\n if (reject) {\n this.props.onReject?.();\n } else if (this.state.rejected) {\n this.setState({ accept: true });\n this.props.onAccept?.();\n }\n this.setState({ rejected: reject });\n };\n\n public updateExpectedResponseTime(expectedResponseTime: number) {\n this.setState({ expectedResponseTime });\n }\n\n public kill = () => {\n this.stopTask.cancel();\n this.startTask.cancel();\n this.setState({\n dead: true,\n });\n };\n}\n"]}
@@ -5,10 +5,9 @@ export interface GlobalLoaderViewProps extends Pick<CommonProps, 'data-tid'> {
5
5
  delayBeforeHide: number;
6
6
  status?: 'success' | 'error' | 'standard' | 'accept';
7
7
  disableAnimations: boolean;
8
- dataState?: 'done' | 'rejected';
9
8
  }
10
9
  export interface GlobalLoaderViewRef {
11
10
  element: HTMLDivElement;
12
11
  refObject: React.RefObject<GlobalLoaderViewRef['element']>;
13
12
  }
14
- export declare const GlobalLoaderView: ({ expectedResponseTime, delayBeforeHide, status, disableAnimations, dataState, ...rest }: GlobalLoaderViewProps) => JSX.Element;
13
+ export declare const GlobalLoaderView: ({ expectedResponseTime, delayBeforeHide, status, disableAnimations, ...rest }: GlobalLoaderViewProps) => JSX.Element;
@@ -6,8 +6,7 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
6
6
  var _CommonWrapper = require("../../internal/CommonWrapper");
7
7
 
8
8
  var _GlobalLoaderView = require("./GlobalLoaderView.styles");
9
- var _useParams = require("./useParams");var _excluded = ["expectedResponseTime", "delayBeforeHide", "status", "disableAnimations", "dataState"];function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}
10
-
9
+ var _useParams = require("./useParams");var _excluded = ["expectedResponseTime", "delayBeforeHide", "status", "disableAnimations"];function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}
11
10
 
12
11
 
13
12
 
@@ -27,8 +26,7 @@ var GlobalLoaderView = function GlobalLoaderView(_ref)
27
26
 
28
27
 
29
28
 
30
-
31
- {var expectedResponseTime = _ref.expectedResponseTime,delayBeforeHide = _ref.delayBeforeHide,status = _ref.status,disableAnimations = _ref.disableAnimations,dataState = _ref.dataState,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
29
+ {var expectedResponseTime = _ref.expectedResponseTime,delayBeforeHide = _ref.delayBeforeHide,status = _ref.status,disableAnimations = _ref.disableAnimations,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
32
30
  var ref = (0, _react.useRef)(null);
33
31
  var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
34
32
  var _useGlobalLoaderWidth = (0, _useParams.useGlobalLoaderWidth)(status, ref),width = _useGlobalLoaderWidth.width,startWidth = _useGlobalLoaderWidth.startWidth,fullWidth = _useGlobalLoaderWidth.fullWidth;
@@ -66,7 +64,7 @@ var GlobalLoaderView = function GlobalLoaderView(_ref)
66
64
  };
67
65
 
68
66
  return /*#__PURE__*/(
69
- _react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({}, rest, { "data-state": dataState }), /*#__PURE__*/
67
+ _react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({}, rest, { "data-status": status }), /*#__PURE__*/
70
68
  _react.default.createElement(_ZIndex.ZIndex, { priority: "GlobalLoader", className: _GlobalLoaderView.styles.outer(theme) }, /*#__PURE__*/
71
69
  _react.default.createElement("div", { ref: ref, className: (0, _Emotion.cx)(_GlobalLoaderView.styles.inner(theme), getAnimationClass(status)) }))));
72
70
 
@@ -1 +1 @@
1
- {"version":3,"sources":["GlobalLoaderView.tsx"],"names":["GlobalLoaderView","expectedResponseTime","delayBeforeHide","status","disableAnimations","dataState","rest","ref","theme","ThemeContext","width","startWidth","fullWidth","left","getAnimationClass","animations","successAnimation","acceptAnimation","slowAcceptAnimation","errorAnimation","standardAnimation","styles","successWithoutAnimation","acceptWithoutAnimation","errorWithoutAnimation","standardWithoutAnimation","outer","inner"],"mappings":"4WAAA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wC;;;;;;;;;;;;;;;AAeO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB;;;;;;;AAOH,KAN3BC,oBAM2B,QAN3BA,oBAM2B,CAL3BC,eAK2B,QAL3BA,eAK2B,CAJ3BC,MAI2B,QAJ3BA,MAI2B,CAH3BC,iBAG2B,QAH3BA,iBAG2B,CAF3BC,SAE2B,QAF3BA,SAE2B,CADxBC,IACwB;AAC3B,MAAMC,GAAG,GAAG,mBAAuC,IAAvC,CAAZ;AACA,MAAMC,KAAK,GAAG,uBAAWC,0BAAX,CAAd;AACA,8BAAyC,qCAAqBN,MAArB,EAA6BI,GAA7B,CAAzC,CAAQG,KAAR,yBAAQA,KAAR,CAAeC,UAAf,yBAAeA,UAAf,CAA2BC,SAA3B,yBAA2BA,SAA3B;AACA,8BAAiB,wCAAwBL,GAAxB,CAAjB,CAAQM,IAAR,yBAAQA,IAAR;;AAEA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACX,MAAD,EAA6C;AACrE,QAAI,CAACC,iBAAL,EAAwB;AACtB,cAAQD,MAAR;AACE,aAAK,SAAL;AACE,iBAAOY,6BAAWC,gBAAX,CAA4Bd,eAA5B,EAA6CQ,KAA7C,EAAoDG,IAApD,CAAP;AACF,aAAK,QAAL;AACE,cAAIF,UAAU,GAAGC,SAAS,GAAG,GAA7B,EAAkC;AAChC,mBAAOG,6BAAWE,eAAX,CAA2BT,KAA3B,EAAkCG,UAAlC,EAA8CV,oBAA9C,EAAoES,KAApE,EAA2EG,IAA3E,CAAP;AACD;AACD,iBAAOE,6BAAWG,mBAAX,CAA+BV,KAA/B,EAAsCG,UAAtC,EAAkDD,KAAlD,EAAyDG,IAAzD,CAAP;AACF,aAAK,OAAL;AACE,iBAAOE,6BAAWI,cAAX,CAA0BX,KAA1B,CAAP;AACF,aAAK,UAAL;AACE,iBAAOO,6BAAWK,iBAAX,CAA6BZ,KAA7B,EAAoCP,oBAApC,CAAP,CAXJ;;AAaD;;AAED,QAAIG,iBAAJ,EAAuB;AACrB,cAAQD,MAAR;AACE,aAAK,SAAL;AACE,iBAAOkB,yBAAOC,uBAAP,EAAP;AACF,aAAK,QAAL;AACE,iBAAOP,6BAAWQ,sBAAX,CAAkCZ,UAAlC,CAAP;AACF,aAAK,OAAL;AACE,iBAAOU,yBAAOG,qBAAP,EAAP;AACF,aAAK,UAAL;AACE,iBAAOH,yBAAOI,wBAAP,EAAP,CARJ;;AAUD;AACF,GA7BD;;AA+BA;AACE,iCAAC,4BAAD,6BAAmBnB,IAAnB,IAAyB,cAAYD,SAArC;AACE,iCAAC,cAAD,IAAQ,QAAQ,EAAC,cAAjB,EAAgC,SAAS,EAAEgB,yBAAOK,KAAP,CAAalB,KAAb,CAA3C;AACE,0CAAK,GAAG,EAAED,GAAV,EAAe,SAAS,EAAE,iBAAGc,yBAAOM,KAAP,CAAanB,KAAb,CAAH,EAAwBM,iBAAiB,CAACX,MAAD,CAAzC,CAA1B,GADF,CADF,CADF;;;;AAOD,CAnDM,C","sourcesContent":["import React, { useContext, useRef } from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\n\nimport { animations, styles } from './GlobalLoaderView.styles';\nimport { useGlobalLoaderPosition, useGlobalLoaderWidth } from './useParams';\n\nexport interface GlobalLoaderViewProps extends Pick<CommonProps, 'data-tid'> {\n expectedResponseTime: number;\n delayBeforeHide: number;\n status?: 'success' | 'error' | 'standard' | 'accept';\n disableAnimations: boolean;\n dataState?: 'done' | 'rejected';\n}\n\nexport interface GlobalLoaderViewRef {\n element: HTMLDivElement;\n refObject: React.RefObject<GlobalLoaderViewRef['element']>;\n}\n\nexport const GlobalLoaderView = ({\n expectedResponseTime,\n delayBeforeHide,\n status,\n disableAnimations,\n dataState,\n ...rest\n}: GlobalLoaderViewProps) => {\n const ref = useRef<GlobalLoaderViewRef['element']>(null);\n const theme = useContext(ThemeContext);\n const { width, startWidth, fullWidth } = useGlobalLoaderWidth(status, ref);\n const { left } = useGlobalLoaderPosition(ref);\n\n const getAnimationClass = (status: GlobalLoaderViewProps['status']) => {\n if (!disableAnimations) {\n switch (status) {\n case 'success':\n return animations.successAnimation(delayBeforeHide, width, left);\n case 'accept':\n if (startWidth < fullWidth * 0.8) {\n return animations.acceptAnimation(theme, startWidth, expectedResponseTime, width, left);\n }\n return animations.slowAcceptAnimation(theme, startWidth, width, left);\n case 'error':\n return animations.errorAnimation(theme);\n case 'standard':\n return animations.standardAnimation(theme, expectedResponseTime);\n }\n }\n\n if (disableAnimations) {\n switch (status) {\n case 'success':\n return styles.successWithoutAnimation();\n case 'accept':\n return animations.acceptWithoutAnimation(startWidth);\n case 'error':\n return styles.errorWithoutAnimation();\n case 'standard':\n return styles.standardWithoutAnimation();\n }\n }\n };\n\n return (\n <CommonWrapper {...rest} data-state={dataState}>\n <ZIndex priority=\"GlobalLoader\" className={styles.outer(theme)}>\n <div ref={ref} className={cx(styles.inner(theme), getAnimationClass(status))} />\n </ZIndex>\n </CommonWrapper>\n );\n};\n"]}
1
+ {"version":3,"sources":["GlobalLoaderView.tsx"],"names":["GlobalLoaderView","expectedResponseTime","delayBeforeHide","status","disableAnimations","rest","ref","theme","ThemeContext","width","startWidth","fullWidth","left","getAnimationClass","animations","successAnimation","acceptAnimation","slowAcceptAnimation","errorAnimation","standardAnimation","styles","successWithoutAnimation","acceptWithoutAnimation","errorWithoutAnimation","standardWithoutAnimation","outer","inner"],"mappings":"4WAAA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wC;;;;;;;;;;;;;;AAcO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB;;;;;;AAMH,KAL3BC,oBAK2B,QAL3BA,oBAK2B,CAJ3BC,eAI2B,QAJ3BA,eAI2B,CAH3BC,MAG2B,QAH3BA,MAG2B,CAF3BC,iBAE2B,QAF3BA,iBAE2B,CADxBC,IACwB;AAC3B,MAAMC,GAAG,GAAG,mBAAuC,IAAvC,CAAZ;AACA,MAAMC,KAAK,GAAG,uBAAWC,0BAAX,CAAd;AACA,8BAAyC,qCAAqBL,MAArB,EAA6BG,GAA7B,CAAzC,CAAQG,KAAR,yBAAQA,KAAR,CAAeC,UAAf,yBAAeA,UAAf,CAA2BC,SAA3B,yBAA2BA,SAA3B;AACA,8BAAiB,wCAAwBL,GAAxB,CAAjB,CAAQM,IAAR,yBAAQA,IAAR;;AAEA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACV,MAAD,EAA6C;AACrE,QAAI,CAACC,iBAAL,EAAwB;AACtB,cAAQD,MAAR;AACE,aAAK,SAAL;AACE,iBAAOW,6BAAWC,gBAAX,CAA4Bb,eAA5B,EAA6CO,KAA7C,EAAoDG,IAApD,CAAP;AACF,aAAK,QAAL;AACE,cAAIF,UAAU,GAAGC,SAAS,GAAG,GAA7B,EAAkC;AAChC,mBAAOG,6BAAWE,eAAX,CAA2BT,KAA3B,EAAkCG,UAAlC,EAA8CT,oBAA9C,EAAoEQ,KAApE,EAA2EG,IAA3E,CAAP;AACD;AACD,iBAAOE,6BAAWG,mBAAX,CAA+BV,KAA/B,EAAsCG,UAAtC,EAAkDD,KAAlD,EAAyDG,IAAzD,CAAP;AACF,aAAK,OAAL;AACE,iBAAOE,6BAAWI,cAAX,CAA0BX,KAA1B,CAAP;AACF,aAAK,UAAL;AACE,iBAAOO,6BAAWK,iBAAX,CAA6BZ,KAA7B,EAAoCN,oBAApC,CAAP,CAXJ;;AAaD;;AAED,QAAIG,iBAAJ,EAAuB;AACrB,cAAQD,MAAR;AACE,aAAK,SAAL;AACE,iBAAOiB,yBAAOC,uBAAP,EAAP;AACF,aAAK,QAAL;AACE,iBAAOP,6BAAWQ,sBAAX,CAAkCZ,UAAlC,CAAP;AACF,aAAK,OAAL;AACE,iBAAOU,yBAAOG,qBAAP,EAAP;AACF,aAAK,UAAL;AACE,iBAAOH,yBAAOI,wBAAP,EAAP,CARJ;;AAUD;AACF,GA7BD;;AA+BA;AACE,iCAAC,4BAAD,6BAAmBnB,IAAnB,IAAyB,eAAaF,MAAtC;AACE,iCAAC,cAAD,IAAQ,QAAQ,EAAC,cAAjB,EAAgC,SAAS,EAAEiB,yBAAOK,KAAP,CAAalB,KAAb,CAA3C;AACE,0CAAK,GAAG,EAAED,GAAV,EAAe,SAAS,EAAE,iBAAGc,yBAAOM,KAAP,CAAanB,KAAb,CAAH,EAAwBM,iBAAiB,CAACV,MAAD,CAAzC,CAA1B,GADF,CADF,CADF;;;;AAOD,CAlDM,C","sourcesContent":["import React, { useContext, useRef } from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\n\nimport { animations, styles } from './GlobalLoaderView.styles';\nimport { useGlobalLoaderPosition, useGlobalLoaderWidth } from './useParams';\n\nexport interface GlobalLoaderViewProps extends Pick<CommonProps, 'data-tid'> {\n expectedResponseTime: number;\n delayBeforeHide: number;\n status?: 'success' | 'error' | 'standard' | 'accept';\n disableAnimations: boolean;\n}\n\nexport interface GlobalLoaderViewRef {\n element: HTMLDivElement;\n refObject: React.RefObject<GlobalLoaderViewRef['element']>;\n}\n\nexport const GlobalLoaderView = ({\n expectedResponseTime,\n delayBeforeHide,\n status,\n disableAnimations,\n ...rest\n}: GlobalLoaderViewProps) => {\n const ref = useRef<GlobalLoaderViewRef['element']>(null);\n const theme = useContext(ThemeContext);\n const { width, startWidth, fullWidth } = useGlobalLoaderWidth(status, ref);\n const { left } = useGlobalLoaderPosition(ref);\n\n const getAnimationClass = (status: GlobalLoaderViewProps['status']) => {\n if (!disableAnimations) {\n switch (status) {\n case 'success':\n return animations.successAnimation(delayBeforeHide, width, left);\n case 'accept':\n if (startWidth < fullWidth * 0.8) {\n return animations.acceptAnimation(theme, startWidth, expectedResponseTime, width, left);\n }\n return animations.slowAcceptAnimation(theme, startWidth, width, left);\n case 'error':\n return animations.errorAnimation(theme);\n case 'standard':\n return animations.standardAnimation(theme, expectedResponseTime);\n }\n }\n\n if (disableAnimations) {\n switch (status) {\n case 'success':\n return styles.successWithoutAnimation();\n case 'accept':\n return animations.acceptWithoutAnimation(startWidth);\n case 'error':\n return styles.errorWithoutAnimation();\n case 'standard':\n return styles.standardWithoutAnimation();\n }\n }\n };\n\n return (\n <CommonWrapper {...rest} data-status={status}>\n <ZIndex priority=\"GlobalLoader\" className={styles.outer(theme)}>\n <div ref={ref} className={cx(styles.inner(theme), getAnimationClass(status))} />\n </ZIndex>\n </CommonWrapper>\n );\n};\n"]}
@@ -7,5 +7,5 @@ export interface InputLayoutRootProps extends InputLayoutRootFromInputProps, Com
7
7
  labelProps: React.LabelHTMLAttributes<HTMLLabelElement>;
8
8
  context: Partial<InputLayoutContextProps>;
9
9
  }
10
- export declare const InputLayout: import("../../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLLabelElement, InputLayoutRootProps>;
10
+ export declare const InputLayout: import("../../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLLabelElement, InputLayoutRootProps> & Record<never, never>;
11
11
  export {};
@@ -0,0 +1,18 @@
1
+ import { Modal, ModalProps } from '../Modal';
2
+ import { MiniModalFooter } from './MiniModalFooter';
3
+ import { MiniModalHeader } from './MiniModalHeader';
4
+ import { MiniModalBody } from './MiniModalBody';
5
+ import { MiniModalIndent } from './MiniModalIndent';
6
+ export declare const MiniModalDataTids: {
7
+ readonly icon: "MiniModal__icon";
8
+ readonly title: "MiniModal__title";
9
+ readonly description: "MiniModal__description";
10
+ readonly actions: "MiniModal__actions";
11
+ readonly indent: "MiniModal__indent";
12
+ };
13
+ export declare const MiniModal: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<Modal, ModalProps> & {
14
+ Header: typeof MiniModalHeader;
15
+ Indent: typeof MiniModalIndent;
16
+ Footer: typeof MiniModalFooter;
17
+ Body: typeof MiniModalBody;
18
+ };
@@ -0,0 +1,47 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MiniModalDataTids = exports.MiniModal = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _react = _interopRequireWildcard(require("react"));
2
+
3
+ var _Modal = require("../Modal");
4
+ var _ThemeContext = require("../../lib/theming/ThemeContext");
5
+ var _forwardRefAndName = require("../../lib/forwardRefAndName");
6
+
7
+ var _getMiniModalTheme = require("./getMiniModalTheme");
8
+ var _MiniModalFooter = require("./MiniModalFooter");
9
+ var _MiniModalHeader = require("./MiniModalHeader");
10
+ var _MiniModalBody = require("./MiniModalBody");
11
+ var _MiniModalIndent = require("./MiniModalIndent");var _excluded = ["children", "theme"];function _getRequireWildcardCache(nodeInterop) {if (typeof WeakMap !== "function") return null;var cacheBabelInterop = new WeakMap();var cacheNodeInterop = new WeakMap();return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {return nodeInterop ? cacheNodeInterop : cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;}
12
+
13
+ var MiniModalDataTids = {
14
+ icon: 'MiniModal__icon',
15
+ title: 'MiniModal__title',
16
+ description: 'MiniModal__description',
17
+ actions: 'MiniModal__actions',
18
+ indent: 'MiniModal__indent' };exports.MiniModalDataTids = MiniModalDataTids;
19
+
20
+
21
+ var MiniModal = (0, _forwardRefAndName.forwardRefAndName)(
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+ 'MiniModal', function (_ref, ref) {var children = _ref.children,propsTheme = _ref.theme,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
31
+ var contextTheme = (0, _react.useContext)(_ThemeContext.ThemeContext);
32
+
33
+ return /*#__PURE__*/(
34
+ _react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: (0, _getMiniModalTheme.getMiniModalTheme)(contextTheme, propsTheme) }, /*#__PURE__*/
35
+ _react.default.createElement(_Modal.Modal, (0, _extends2.default)({ width: 400, noClose: true, ref: ref }, rest),
36
+ children)));
37
+
38
+
39
+
40
+ });exports.MiniModal = MiniModal;
41
+
42
+ MiniModal.__KONTUR_REACT_UI__ = 'MiniModal';
43
+
44
+ MiniModal.Header = _MiniModalHeader.MiniModalHeader;
45
+ MiniModal.Footer = _MiniModalFooter.MiniModalFooter;
46
+ MiniModal.Indent = _MiniModalIndent.MiniModalIndent;
47
+ MiniModal.Body = _MiniModalBody.MiniModalBody;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MiniModal.tsx"],"names":["MiniModalDataTids","icon","title","description","actions","indent","MiniModal","ref","children","propsTheme","theme","rest","contextTheme","ThemeContext","__KONTUR_REACT_UI__","Header","MiniModalHeader","Footer","MiniModalFooter","Indent","MiniModalIndent","Body","MiniModalBody"],"mappings":"iYAAA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oD;;AAEO,IAAMA,iBAAiB,GAAG;AAC/BC,EAAAA,IAAI,EAAE,iBADyB;AAE/BC,EAAAA,KAAK,EAAE,kBAFwB;AAG/BC,EAAAA,WAAW,EAAE,wBAHkB;AAI/BC,EAAAA,OAAO,EAAE,oBAJsB;AAK/BC,EAAAA,MAAM,EAAE,mBALuB,EAA1B,C;;;AAQA,IAAMC,SAAS,GAAG;;;;;;;;;AASvB,WATuB,EASV,gBAA2CC,GAA3C,EAAmD,KAAhDC,QAAgD,QAAhDA,QAAgD,CAA/BC,UAA+B,QAAtCC,KAAsC,CAAhBC,IAAgB;AAChE,MAAMC,YAAY,GAAG,uBAAWC,0BAAX,CAArB;;AAEA;AACE,iCAAC,0BAAD,CAAc,QAAd,IAAuB,KAAK,EAAE,0CAAkBD,YAAlB,EAAgCH,UAAhC,CAA9B;AACE,iCAAC,YAAD,2BAAO,KAAK,EAAE,GAAd,EAAmB,OAAO,MAA1B,EAA2B,GAAG,EAAEF,GAAhC,IAAyCI,IAAzC;AACGH,IAAAA,QADH,CADF,CADF;;;;AAOD,CAnBwB,CAAlB,C;;AAqBPF,SAAS,CAACQ,mBAAV,GAAgC,WAAhC;;AAEAR,SAAS,CAACS,MAAV,GAAmBC,gCAAnB;AACAV,SAAS,CAACW,MAAV,GAAmBC,gCAAnB;AACAZ,SAAS,CAACa,MAAV,GAAmBC,gCAAnB;AACAd,SAAS,CAACe,IAAV,GAAiBC,4BAAjB","sourcesContent":["import React, { useContext } from 'react';\n\nimport { Modal, ModalProps } from '../Modal';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { getMiniModalTheme } from './getMiniModalTheme';\nimport { MiniModalFooter } from './MiniModalFooter';\nimport { MiniModalHeader } from './MiniModalHeader';\nimport { MiniModalBody } from './MiniModalBody';\nimport { MiniModalIndent } from './MiniModalIndent';\n\nexport const MiniModalDataTids = {\n icon: 'MiniModal__icon',\n title: 'MiniModal__title',\n description: 'MiniModal__description',\n actions: 'MiniModal__actions',\n indent: 'MiniModal__indent',\n} as const;\n\nexport const MiniModal = forwardRefAndName<\n Modal,\n ModalProps,\n {\n Header: typeof MiniModalHeader;\n Indent: typeof MiniModalIndent;\n Footer: typeof MiniModalFooter;\n Body: typeof MiniModalBody;\n }\n>('MiniModal', ({ children, theme: propsTheme, ...rest }, ref) => {\n const contextTheme = useContext(ThemeContext);\n\n return (\n <ThemeContext.Provider value={getMiniModalTheme(contextTheme, propsTheme)}>\n <Modal width={400} noClose ref={ref} {...rest}>\n {children}\n </Modal>\n </ThemeContext.Provider>\n );\n});\n\nMiniModal.__KONTUR_REACT_UI__ = 'MiniModal';\n\nMiniModal.Header = MiniModalHeader;\nMiniModal.Footer = MiniModalFooter;\nMiniModal.Indent = MiniModalIndent;\nMiniModal.Body = MiniModalBody;\n"]}
@@ -0,0 +1,233 @@
1
+ Этот компонент обёртка над [Modal](#/Components/Modal/Modal).
2
+
3
+ `MiniModal` — модальное диалоговое окно, которое предполагает обязательный отклик пользователя по одному из доступных действий.
4
+ Закрытие окна по клику на фон или "крестик" не рекомендуется, т.к. у этих действий нет однозначного описания в
5
+ отличие от кнопок с названиями, наподобие "Сохранить", "Подтвердить" и т.п.
6
+
7
+ 👉 По макету предполагается, что все кнопки должны быть среднего размера `size = medium`.
8
+
9
+ Примеры использования:
10
+
11
+ ### Уведомление
12
+
13
+ Самый простой вариант использования:
14
+
15
+ ```jsx harmony
16
+ import { MiniModal, Button, Gapped } from '@skbkontur/react-ui';
17
+ import { MoneyTypeCoinsIcon } from '@skbkontur/icons/MoneyTypeCoinsIcon';
18
+
19
+ const PayNotifice = () => {
20
+
21
+ const [isOpened, setIsOpened] = React.useState(false);
22
+
23
+ const open = () => setIsOpened(true);
24
+ const close = () => setIsOpened(false);
25
+
26
+ return (
27
+ <>
28
+ {isOpened && (
29
+ <MiniModal>
30
+ <MiniModal.Header>
31
+ Простое уведомление
32
+ </MiniModal.Header>
33
+ <MiniModal.Body>
34
+ Это простое, но достаточное важное уведомление, чтобы его показать в МиниМодалке
35
+ </MiniModal.Body>
36
+ <MiniModal.Footer>
37
+ <Button size="medium" use="primary" onClick={close}>Понятно</Button>
38
+ </MiniModal.Footer>
39
+ </MiniModal>
40
+ )}
41
+ <Button use="pay" onClick={open} icon={<MoneyTypeCoinsIcon/>}>Оплата</Button>
42
+ </>
43
+ );
44
+ }
45
+
46
+ <PayNotifice />
47
+ ```
48
+
49
+ ### Подтверждение
50
+
51
+ Иногда от пользователя требуется выбрать одно из доступных действий.
52
+
53
+ Например, подтвердить важное действие или отклонить его:
54
+
55
+ ```jsx harmony
56
+ import { MiniModal, Button, Gapped, ThemeContext } from '@skbkontur/react-ui';
57
+ import { TrashCanIcon } from '@skbkontur/icons/TrashCanIcon';
58
+
59
+ const ConfirmDelete = ({ name, handleDelete }) => {
60
+ const theme = React.useContext(ThemeContext);
61
+
62
+ const [isOpened, setIsOpened] = React.useState(false);
63
+
64
+ const open = () => setIsOpened(true);
65
+ const close = () => setIsOpened(false);
66
+
67
+ const mainAction = () => {
68
+ handleDelete();
69
+ close();
70
+ };
71
+
72
+ return (
73
+ <>
74
+ {isOpened && (
75
+ <MiniModal>
76
+ <MiniModal.Header icon={<TrashCanIcon size={64} color={theme.btnDangerBg}/>}>
77
+ Удалить "{name}"?
78
+ </MiniModal.Header>
79
+ <MiniModal.Footer direction="column">
80
+ <Button use="danger" size="medium" onClick={mainAction}>Удалить</Button>
81
+ <Button size="medium" onClick={close}>Отменить</Button>
82
+ </MiniModal.Footer>
83
+ </MiniModal>
84
+ )}
85
+ <Button onClick={open} icon={<TrashCanIcon weight="light"/>}/>
86
+ </>
87
+ );
88
+ }
89
+
90
+ const list = ['Отчёт № 111', 'Отчёт № 222', 'Отчёт № 333'];
91
+
92
+ <Gapped vertical>
93
+ {list.map((name) => (
94
+ <Gapped key={name}>
95
+ <div style={{ width: 200, borderBottom: 'dashed 1px' }}>
96
+ {name}
97
+ </div>
98
+ <span>
99
+ <ConfirmDelete name={name} handleDelete={() => alert(`${name} удалён`)}/>
100
+ </span>
101
+ </Gapped>
102
+ ))}
103
+ </Gapped>
104
+ ```
105
+
106
+ ### Синглтон
107
+
108
+ Одно и то же диалоговое окно может вызываться в разных частях приложения.
109
+
110
+ В таком случае стоит реализовать паттерн синглтона:
111
+
112
+ ```jsx harmony
113
+ import { MiniModal, Button, Gapped } from '@skbkontur/react-ui';
114
+ import { NotificationBellAlarmIcon16Solid } from '@skbkontur/icons/NotificationBellAlarmIcon16Solid';
115
+ import { NotificationBellAlarmIcon64Regular } from '@skbkontur/icons/NotificationBellAlarmIcon64Regular';
116
+
117
+ const EnableNotification = React.forwardRef(({ setStatus }, ref) => {
118
+ const [isOpened, setIsOpened] = React.useState(false);
119
+
120
+ const open = () => setIsOpened(true);
121
+ const close = () => setIsOpened(false);
122
+
123
+ const handleAllowAll = () => {
124
+ setStatus('Разрешить все');
125
+ close();
126
+ };
127
+ const handleAllowBasic = () => {
128
+ setStatus('Разрешить только основные');
129
+ close();
130
+ };
131
+ const handleDenyAll = () => {
132
+ setStatus('Запретить');
133
+ close();
134
+ };
135
+
136
+ React.useImperativeHandle(ref, () => ({ open, close }), []);
137
+
138
+ return isOpened && (
139
+ <MiniModal>
140
+ <MiniModal.Header icon={<NotificationBellAlarmIcon64Regular/>}>
141
+ Разрешить уведомления?
142
+ </MiniModal.Header>
143
+ <MiniModal.Footer direction="column">
144
+ <Button use="primary" size="medium" onClick={handleAllowAll}>Разрешить все</Button>
145
+ <Button size="medium" onClick={handleAllowBasic}>Разрешить только основные</Button>
146
+ <MiniModal.Indent/>
147
+ <Button size="medium" onClick={handleDenyAll}>Запретить</Button>
148
+ </MiniModal.Footer>
149
+ </MiniModal>
150
+ );
151
+ });
152
+
153
+ const [status, setStatus] = React.useState('-не выбрано-');
154
+
155
+ const NotificationEnableRef = React.useRef(null);
156
+
157
+ const NotificationEnableOpen = () => NotificationEnableRef.current && NotificationEnableRef.current.open();
158
+
159
+ <>
160
+ <EnableNotification ref={NotificationEnableRef} setStatus={setStatus}/>
161
+ <Gapped vertical>
162
+ <span>
163
+ <NotificationBellAlarmIcon16Solid/> Статус уведомлений: {status}
164
+ </span>
165
+ <Button use="text" theme={{ btnTextBg: '#D6D6D6' }} onClick={NotificationEnableOpen}>Разрешить уведомления?</Button>
166
+ <Button use="text" theme={{ btnTextBg: '#E6E6E6' }} onClick={NotificationEnableOpen}>Разрешить уведомления?</Button>
167
+ <Button use="text" theme={{ btnTextBg: '#F0F0F0' }} onClick={NotificationEnableOpen}>Разрешить уведомления?</Button>
168
+ </Gapped>
169
+ </>
170
+ ```
171
+
172
+ ### Ожидание
173
+
174
+ Некоторые действия для корректного исполнения требуют блокировки других действий пользователя.
175
+
176
+ В таких случаях можно, например, использовать проп `loading` для `Button`, и не позволять закрыть окно до конца исполнения:
177
+
178
+ ```jsx harmony
179
+ import { Button, Gapped } from '@skbkontur/react-ui';
180
+
181
+ const WaitingUpdate = ({ handleUpdate, setLastUpdated }) => {
182
+
183
+ const [isLoading, setIsLoading] = React.useState(false);
184
+ const [isOpened, setIsOpened] = React.useState(false);
185
+
186
+ const open = () => setIsOpened(true);
187
+ const close = () => setIsOpened(false);
188
+
189
+ const handleMainClick = () => {
190
+ setIsLoading(true);
191
+ handleUpdate()
192
+ .then(() => {
193
+ setIsLoading(false);
194
+ setIsOpened(false);
195
+ setLastUpdated(new Date());
196
+ });
197
+ };
198
+
199
+ return (
200
+ <>
201
+ {isOpened && (
202
+ <MiniModal>
203
+ <MiniModal.Header>
204
+ Обновить?
205
+ </MiniModal.Header>
206
+ <MiniModal.Body>
207
+ После вашего подтверждения другие действия на странице будут заблокированы на несколько секунд.
208
+ </MiniModal.Body>
209
+ <MiniModal.Footer>
210
+ <Button use="success" size="medium" onClick={handleMainClick} loading={isLoading}>Обновить</Button>
211
+ <Button size="medium" onClick={close} disabled={isLoading}>Отменить</Button>
212
+ </MiniModal.Footer>
213
+
214
+ </MiniModal>
215
+ )}
216
+ <Button onClick={open} use="success">Обновить</Button>
217
+ </>
218
+ );
219
+ }
220
+
221
+ const dateTimeFormat = new Intl.DateTimeFormat('nu', { hour: '2-digit', minute: '2-digit', second: '2-digit' });
222
+
223
+ const [lastUpdated, setLastUpdated] = React.useState(new Date());
224
+
225
+ const handleUpdate = () => new Promise((resolve) => setTimeout(resolve, 1500));
226
+
227
+ <Gapped>
228
+ <WaitingUpdate handleUpdate={handleUpdate} setLastUpdated={setLastUpdated} />
229
+ <span>
230
+ Последнее обновление: {dateTimeFormat.format(lastUpdated)}
231
+ </span>
232
+ </Gapped>
233
+ ```
@@ -0,0 +1,14 @@
1
+ import { Theme } from '../../lib/theming/Theme';
2
+ export declare const styles: {
3
+ icon(): string;
4
+ description(): string;
5
+ title(): string;
6
+ titleWithIcon(t: Theme): string;
7
+ actions(t: Theme): string;
8
+ actionsIndent(t: Theme): string;
9
+ actionsIndentIE11Fallback(t: Theme): string;
10
+ actionsRow(): string;
11
+ actionsColumn(): string;
12
+ actionsRowIE11Fallback(t: Theme): string;
13
+ actionsColumnIE11Fallback(t: Theme): string;
14
+ };
@@ -0,0 +1,87 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");
2
+
3
+ var _Button = require("../Button/Button.styles");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
4
+
5
+ var styles = (0, _Emotion.memoizeStyle)({
6
+ icon: function icon() {
7
+ return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n text-align: center;\n "])));
8
+
9
+
10
+ },
11
+
12
+ description: function description() {
13
+ return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n text-align: center;\n "])));
14
+
15
+
16
+ },
17
+
18
+ title: function title() {
19
+ return (0, _Emotion.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n text-align: center;\n "])));
20
+
21
+
22
+ },
23
+
24
+ titleWithIcon: function titleWithIcon(t) {
25
+ return (0, _Emotion.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin-top: ", ";\n "])),
26
+ t.miniModalTitleMarginTop);
27
+
28
+ },
29
+
30
+ actions: function actions(t) {
31
+ return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: flex;\n justify-content: stretch;\n text-align: center;\n gap: ", ";\n\n .", " {\n width: 100%;\n }\n "])),
32
+
33
+
34
+
35
+ t.miniModalActionGap,
36
+
37
+ _Button.globalClasses.root);
38
+
39
+
40
+
41
+ },
42
+
43
+ actionsIndent: function actionsIndent(t) {
44
+ return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n height: ", ";\n "])),
45
+ t.miniModalCancelIndent);
46
+
47
+ },
48
+
49
+ actionsIndentIE11Fallback: function actionsIndentIE11Fallback(t) {
50
+ return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n padding: ", " 0;\n "])),
51
+ t.miniModalCancelIndent);
52
+
53
+ },
54
+
55
+ actionsRow: function actionsRow() {
56
+ return (0, _Emotion.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteralLoose2.default)(["\n flex-direction: row;\n "])));
57
+
58
+
59
+ },
60
+
61
+ actionsColumn: function actionsColumn() {
62
+ return (0, _Emotion.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteralLoose2.default)(["\n flex-direction: column;\n "])));
63
+
64
+
65
+ },
66
+
67
+ actionsRowIE11Fallback: function actionsRowIE11Fallback(t) {
68
+ return (0, _Emotion.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteralLoose2.default)(["\n > *:nth-of-type(1) {\n margin-right: calc(", " / 2);\n }\n > *:nth-of-type(2) {\n margin-left: calc(", " / 2);\n }\n "])),
69
+
70
+ t.miniModalActionGap,
71
+
72
+
73
+ t.miniModalActionGap);
74
+
75
+
76
+ },
77
+
78
+ actionsColumnIE11Fallback: function actionsColumnIE11Fallback(t) {
79
+ return (0, _Emotion.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteralLoose2.default)(["\n > *:nth-of-type(2) {\n margin-top: ", ";\n }\n > *:nth-of-type(3) {\n margin-top: ", ";\n }\n "])),
80
+
81
+ t.miniModalActionGap,
82
+
83
+
84
+ t.miniModalActionGap);
85
+
86
+
87
+ } });exports.styles = styles;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MiniModal.styles.ts"],"names":["styles","icon","css","description","title","titleWithIcon","t","miniModalTitleMarginTop","actions","miniModalActionGap","buttonGlobalClasses","root","actionsIndent","miniModalCancelIndent","actionsIndentIE11Fallback","actionsRow","actionsColumn","actionsRowIE11Fallback","actionsColumnIE11Fallback"],"mappings":"4QAAA;;AAEA,iD;;AAEO,IAAMA,MAAM,GAAG,2BAAa;AACjCC,EAAAA,IADiC,kBAC1B;AACL,eAAOC,YAAP;;;AAGD,GALgC;;AAOjCC,EAAAA,WAPiC,yBAOnB;AACZ,eAAOD,YAAP;;;AAGD,GAXgC;;AAajCE,EAAAA,KAbiC,mBAazB;AACN,eAAOF,YAAP;;;AAGD,GAjBgC;;AAmBjCG,EAAAA,aAnBiC,yBAmBnBC,CAnBmB,EAmBT;AACtB,eAAOJ,YAAP;AACgBI,IAAAA,CAAC,CAACC,uBADlB;;AAGD,GAvBgC;;AAyBjCC,EAAAA,OAzBiC,mBAyBzBF,CAzByB,EAyBf;AAChB,eAAOJ,YAAP;;;;AAISI,IAAAA,CAAC,CAACG,kBAJX;;AAMKC,0BAAoBC,IANzB;;;;AAUD,GApCgC;;AAsCjCC,EAAAA,aAtCiC,yBAsCnBN,CAtCmB,EAsCT;AACtB,eAAOJ,YAAP;AACYI,IAAAA,CAAC,CAACO,qBADd;;AAGD,GA1CgC;;AA4CjCC,EAAAA,yBA5CiC,qCA4CPR,CA5CO,EA4CG;AAClC,eAAOJ,YAAP;AACaI,IAAAA,CAAC,CAACO,qBADf;;AAGD,GAhDgC;;AAkDjCE,EAAAA,UAlDiC,wBAkDpB;AACX,eAAOb,YAAP;;;AAGD,GAtDgC;;AAwDjCc,EAAAA,aAxDiC,2BAwDjB;AACd,eAAOd,YAAP;;;AAGD,GA5DgC;;AA8DjCe,EAAAA,sBA9DiC,kCA8DVX,CA9DU,EA8DA;AAC/B,eAAOJ,YAAP;;AAEyBI,IAAAA,CAAC,CAACG,kBAF3B;;;AAKwBH,IAAAA,CAAC,CAACG,kBAL1B;;;AAQD,GAvEgC;;AAyEjCS,EAAAA,yBAzEiC,qCAyEPZ,CAzEO,EAyEG;AAClC,eAAOJ,YAAP;;AAEkBI,IAAAA,CAAC,CAACG,kBAFpB;;;AAKkBH,IAAAA,CAAC,CAACG,kBALpB;;;AAQD,GAlFgC,EAAb,CAAf,C","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { globalClasses as buttonGlobalClasses } from '../Button/Button.styles';\n\nexport const styles = memoizeStyle({\n icon() {\n return css`\n text-align: center;\n `;\n },\n\n description() {\n return css`\n text-align: center;\n `;\n },\n\n title() {\n return css`\n text-align: center;\n `;\n },\n\n titleWithIcon(t: Theme) {\n return css`\n margin-top: ${t.miniModalTitleMarginTop};\n `;\n },\n\n actions(t: Theme) {\n return css`\n display: flex;\n justify-content: stretch;\n text-align: center;\n gap: ${t.miniModalActionGap};\n\n .${buttonGlobalClasses.root} {\n width: 100%;\n }\n `;\n },\n\n actionsIndent(t: Theme) {\n return css`\n height: ${t.miniModalCancelIndent};\n `;\n },\n\n actionsIndentIE11Fallback(t: Theme) {\n return css`\n padding: ${t.miniModalCancelIndent} 0;\n `;\n },\n\n actionsRow() {\n return css`\n flex-direction: row;\n `;\n },\n\n actionsColumn() {\n return css`\n flex-direction: column;\n `;\n },\n\n actionsRowIE11Fallback(t: Theme) {\n return css`\n > *:nth-of-type(1) {\n margin-right: calc(${t.miniModalActionGap} / 2);\n }\n > *:nth-of-type(2) {\n margin-left: calc(${t.miniModalActionGap} / 2);\n }\n `;\n },\n\n actionsColumnIE11Fallback(t: Theme) {\n return css`\n > *:nth-of-type(2) {\n margin-top: ${t.miniModalActionGap};\n }\n > *:nth-of-type(3) {\n margin-top: ${t.miniModalActionGap};\n }\n `;\n },\n});\n"]}
@@ -0,0 +1,7 @@
1
+ import { ModalBodyProps } from '../Modal';
2
+ /**
3
+ * Обёртка над Modal.Body
4
+ *
5
+ * @visibleName MiniModal.Body
6
+ */
7
+ export declare const MiniModalBody: import("../../lib/forwardRefAndName").ReactUIComponentWithRef<HTMLDivElement, ModalBodyProps> & Record<never, never>;
@@ -0,0 +1,24 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.MiniModalBody = void 0;var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _react = _interopRequireDefault(require("react"));
2
+
3
+ var _forwardRefAndName = require("../../lib/forwardRefAndName");
4
+ var _Modal = require("../Modal");
5
+
6
+ var _MiniModal = require("./MiniModal");
7
+ var _MiniModal2 = require("./MiniModal.styles");var _excluded = ["children"];
8
+
9
+ /**
10
+ * Обёртка над Modal.Body
11
+ *
12
+ * @visibleName MiniModal.Body
13
+ */
14
+ var MiniModalBody = (0, _forwardRefAndName.forwardRefAndName)(
15
+ 'MiniModalBody',
16
+ function (_ref, ref) {var children = _ref.children,rest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
17
+ return /*#__PURE__*/(
18
+ _react.default.createElement(_Modal.Modal.Body, rest, /*#__PURE__*/
19
+ _react.default.createElement("div", { "data-tid": _MiniModal.MiniModalDataTids.description, ref: ref, className: _MiniModal2.styles.description() },
20
+ children)));
21
+
22
+
23
+
24
+ });exports.MiniModalBody = MiniModalBody;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MiniModalBody.tsx"],"names":["MiniModalBody","ref","children","rest","MiniModalDataTids","description","styles"],"mappings":"uRAAA;;AAEA;AACA;;AAEA;AACA,gD;;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,aAAa,GAAG;AAC3B,eAD2B;AAE3B,gBAAwBC,GAAxB,EAAgC,KAA7BC,QAA6B,QAA7BA,QAA6B,CAAhBC,IAAgB;AAC9B;AACE,iCAAC,YAAD,CAAO,IAAP,EAAgBA,IAAhB;AACE,0CAAK,YAAUC,6BAAkBC,WAAjC,EAA8C,GAAG,EAAEJ,GAAnD,EAAwD,SAAS,EAAEK,mBAAOD,WAAP,EAAnE;AACGH,IAAAA,QADH,CADF,CADF;;;;AAOD,CAV0B,CAAtB,C","sourcesContent":["import React from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { Modal, ModalBodyProps } from '../Modal';\n\nimport { MiniModalDataTids } from './MiniModal';\nimport { styles } from './MiniModal.styles';\n\n/**\n * Обёртка над Modal.Body\n *\n * @visibleName MiniModal.Body\n */\nexport const MiniModalBody = forwardRefAndName<HTMLDivElement, ModalBodyProps>(\n 'MiniModalBody',\n ({ children, ...rest }, ref) => {\n return (\n <Modal.Body {...rest}>\n <div data-tid={MiniModalDataTids.description} ref={ref} className={styles.description()}>\n {children}\n </div>\n </Modal.Body>\n );\n },\n);\n"]}
@@ -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 {};