@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":["React","debounce","globalObject","isTestEnv","CommonWrapper","rootNode","createPropsGetter","GlobalLoaderView","GlobalLoaderDataTids","root","currentGlobalLoader","GlobalLoader","props","getProps","defaultProps","startTask","setState","visible","onStart","delayBeforeShow","stopTask","successAnimationInProgress","started","onDone","delayBeforeHide","setActive","rejected","cancel","state","successAnimationInProgressTimeout","setTimeout","done","accept","setReject","setDone","reject","active","onReject","onAccept","kill","dead","expectedResponseTime","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","clearTimeout","render","status","dataState","disableAnimations","setRootNode","updateExpectedResponseTime","Component","start"],"mappings":"iPAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,SAASC,YAAT,QAAwC,0BAAxC;;AAEA,SAASC,SAAT,QAA0B,8BAA1B;AACA,SAASC,aAAT,QAA8B,8BAA9B;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,gBAAT,QAAwD,oBAAxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDA,OAAO,IAAMC,oBAAoB,GAAG;AAClCC,EAAAA,IAAI,EAAE,cAD4B,EAA7B;;;;;;;;;;AAWP,IAAIC,mBAAJ;;AAEA,WAAaC,YAAb,GADCN,QACD;;;;;;;;;;;;;;;;;;;;;;;;AAwBE,wBAAYO,KAAZ,EAAsC;AACpC,wCAAMA,KAAN,UADoC,MArB9BC,QAqB8B,GArBnBP,iBAAiB,CAACK,YAAY,CAACG,YAAd,CAqBE,OAnBrBC,SAmBqB,GAnBTd,QAAQ,CAAC,YAAM,CAC1C,MAAKe,QAAL,CAAc,EAAEC,OAAO,EAAE,IAAX,EAAd,EACA,MAAKL,KAAL,CAAWM,OAAX,0BAAKN,KAAL,CAAWM,OAAX,GACD,CAHoC,EAGlC,MAAKL,QAAL,GAAgBM,eAHkB,CAmBC,OAdrBC,QAcqB,GAdVnB,QAAQ,CAAC,YAAM,CACzC,MAAKe,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,CAHmC,EAGjC,MAAKV,QAAL,GAAgBW,eAHiB,CAcE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,GAAyC3B,YAAY,CAAC4B,UAAb,CAAwB,YAAM;AACrE,gBAAKL,SAAL;AACD,SAFwC,EAEtCD,eAFsC,CAAzC;AAGD,OAJD,MAIO;AACL,cAAKR,QAAL,CAAc,EAAEC,OAAO,EAAE,KAAX,EAAkBc,IAAI,EAAE,KAAxB,EAA+BL,QAAQ,EAAE,KAAzC,EAAgDM,MAAM,EAAE,KAAxD,EAA+DV,OAAO,EAAE,IAAxE,EAAd;AACA,YAAII,QAAJ,EAAc;AACZ,gBAAKO,SAAL,CAAe,IAAf;AACD,SAFD,MAEO;AACL,gBAAKb,QAAL,CAAcO,MAAd;AACA,gBAAKZ,SAAL;AACD;AACF;AACF,KAzIqC;;AA2I/BmB,IAAAA,OA3I+B,GA2IrB,YAAM;AACrB,YAAKlB,QAAL,CAAc,EAAEe,IAAI,EAAE,IAAR,EAAcV,0BAA0B,EAAE,IAA1C,EAAd;AACA,YAAKN,SAAL,CAAeY,MAAf;AACA,YAAKP,QAAL;AACD,KA/IqC;;AAiJ/Ba,IAAAA,SAjJ+B,GAiJnB,UAACE,MAAD,EAAqB;AACtC,UAAI,CAAC,MAAKP,KAAL,CAAWX,OAAZ,KAAwB,MAAKW,KAAL,CAAWN,OAAX,IAAsB,MAAKT,QAAL,GAAgBuB,MAA9D,CAAJ,EAA2E;AACzE,cAAKpB,QAAL,CAAc,EAAEC,OAAO,EAAE,IAAX,EAAd;AACD;AACD,YAAKF,SAAL,CAAeY,MAAf;AACA,YAAKP,QAAL,CAAcO,MAAd;AACA,UAAIQ,MAAJ,EAAY;AACV,cAAKvB,KAAL,CAAWyB,QAAX,0BAAKzB,KAAL,CAAWyB,QAAX;AACD,OAFD,MAEO,IAAI,MAAKT,KAAL,CAAWF,QAAf,EAAyB;AAC9B,cAAKV,QAAL,CAAc,EAAEgB,MAAM,EAAE,IAAV,EAAd;AACA,cAAKpB,KAAL,CAAW0B,QAAX,0BAAK1B,KAAL,CAAW0B,QAAX;AACD;AACD,YAAKtB,QAAL,CAAc,EAAEU,QAAQ,EAAES,MAAZ,EAAd;AACD,KA9JqC;;;;;;AAoK/BI,IAAAA,IApK+B,GAoKxB,YAAM;AAClB,YAAKnB,QAAL,CAAcO,MAAd;AACA,YAAKZ,SAAL,CAAeY,MAAf;AACA,YAAKX,QAAL,CAAc;AACZwB,QAAAA,IAAI,EAAE,IADM,EAAd;;AAGD,KA1KqC,CAEpC,MAAKZ,KAAL,GAAa,EACXN,OAAO,EAAE,KADE,EAEXL,OAAO,EAAE,KAFE,EAGXc,IAAI,EAAE,KAHK,EAIXL,QAAQ,EAAE,KAJC,EAKXM,MAAM,EAAE,KALG,EAMXQ,IAAI,EAAE,KANK,EAOXnB,0BAA0B,EAAE,KAPjB,EAQXoB,oBAAoB,EAAE,MAAK5B,QAAL,GAAgB4B,oBAR3B,EAAb,CAUA,MAAKZ,iCAAL,GAAyC,IAAzC,CACA,wBAAAnB,mBAAmB,SAAnB,iCAAqB6B,IAArB,GACA7B,mBAAmB,gCAAnB,CAdoC,aAerC,CAvCH,2CAwCEgC,iBAxCF,GAwCE,6BAAoB,CAClB,sBAA6B,KAAK7B,QAAL,EAA7B,CAAQuB,MAAR,mBAAQA,MAAR,CAAgBV,QAAhB,mBAAgBA,QAAhB,CACA,IAAIU,MAAJ,EAAY,CACV,KAAKX,SAAL,GACD,CACD,IAAIC,QAAJ,EAAc,CACZ,KAAKO,SAAL,CAAe,IAAf,EACD,CACF,CAhDH,QAkDEU,kBAlDF,GAkDE,4BAAmBC,SAAnB,EAA2D,CACzD,sBAAmD,KAAK/B,QAAL,EAAnD,CAAQ4B,oBAAR,mBAAQA,oBAAR,CAA8Bf,QAA9B,mBAA8BA,QAA9B,CAAwCU,MAAxC,mBAAwCA,MAAxC,CACA,IAAIK,oBAAoB,KAAKG,SAAS,CAACH,oBAAvC,EAA6D,CAC3D,KAAKzB,QAAL,CAAc,EAAEyB,oBAAoB,EAApBA,oBAAF,EAAd,EACD,CACD,IAAIf,QAAQ,KAAKkB,SAAS,CAAClB,QAA3B,EAAqC,CACnC,KAAKO,SAAL,CAAe,CAAC,CAACP,QAAjB,EACD,CACD,IAAIU,MAAM,KAAKQ,SAAS,CAACR,MAAzB,EAAiC,CAC/B,IAAIA,MAAJ,EAAY,CACV,KAAKX,SAAL,GACD,CAFD,MAEO,CACL,KAAKS,OAAL,GACD,CACF,CACF,CAjEH,QAmEEW,oBAnEF,GAmEE,gCAAuB,CACrB,KAAKhB,iCAAL,IAA0C3B,YAAY,CAAC4C,YAAb,CAA0B,KAAKjB,iCAA/B,CAA1C,CACD,CArEH,QAuESkB,MAvET,GAuEE,kBAAgB,CACd,IAAIC,MAAuC,GAAG,UAA9C,CACA,IAAIC,SAAJ,CAEA,IAAI,KAAKrB,KAAL,CAAWG,IAAf,EAAqB,CACnBiB,MAAM,GAAG,SAAT,CACAC,SAAS,GAAG,MAAZ,CACD,CAHD,MAGO,IAAI,KAAKrB,KAAL,CAAWF,QAAf,EAAyB,CAC9BsB,MAAM,GAAG,OAAT,CACAC,SAAS,GAAG,UAAZ,CACD,CAHM,MAGA,IAAI,KAAKrB,KAAL,CAAWI,MAAf,EAAuB,CAC5BgB,MAAM,GAAG,QAAT,CACD,CACD,sBAA+C,KAAKnC,QAAL,EAA/C,CAAQW,eAAR,mBAAQA,eAAR,CAAyB0B,iBAAzB,mBAAyBA,iBAAzB,CACA,OACE,CAAC,KAAKtB,KAAL,CAAWY,IAAZ,IACA,KAAKZ,KAAL,CAAWX,OADX,iBAEE,oBAAC,aAAD,aAAe,WAAW,EAAE,KAAKkC,WAAjC,IAAkD,KAAKvC,KAAvD,gBACE,oBAAC,gBAAD,IACE,oBAAoB,EAAE,KAAKgB,KAAL,CAAWa,oBADnC,EAEE,eAAe,EAAEjB,eAFnB,EAGE,MAAM,EAAEwB,MAHV,EAIE,YAAUxC,oBAAoB,CAACC,IAJjC,EAKE,iBAAiB,EAAEyC,iBALrB,EAME,SAAS,EAAED,SANb,GADF,CAHJ,CAeD,CApGH,CAsGE;AACF;AACA;AACA;AACA;AACA,KA3GA,QAwLSG,0BAxLT,GAwLE,oCAAkCX,oBAAlC,EAAgE,CAC9D,KAAKzB,QAAL,CAAc,EAAEyB,oBAAoB,EAApBA,oBAAF,EAAd,EACD,CA1LH,uBAAkCzC,KAAK,CAACqD,SAAxC,WAegBvC,YAfhB,GAe6C,EACzC2B,oBAAoB,EAAE,IADmB,EAEzCtB,eAAe,EAAE,IAFwB,EAGzCK,eAAe,EAAE,IAHwB,EAIzCE,QAAQ,EAAE,KAJ+B,EAKzCU,MAAM,EAAE,KALiC,EAMzCc,iBAAiB,EAAE/C,SANsB,EAf7C,UA4GgBmD,KA5GhB,GA4GwB,UAACb,oBAAD,EAAmC,CACvD/B,mBAAmB,CAACe,SAApB,GACA,IAAI,OAAOgB,oBAAP,KAAgC,QAApC,EAA8C,CAC5C/B,mBAAmB,CAAC0C,0BAApB,CAA+CX,oBAA/C,EACD,CACF,CAjHH,UAyHgBV,IAzHhB,GAyHuB,YAAM,CACzBrB,mBAAmB,CAACwB,OAApB,GACD,CA3HH,UAmIgBC,MAnIhB,GAmIyB,YAAM,CAC3BzB,mBAAmB,CAACuB,SAApB,CAA8B,IAA9B,EACD,CArIH,UA6IgBD,MA7IhB,GA6IyB,YAAM,CAC3BtB,mBAAmB,CAACuB,SAApB,CAA8B,KAA9B,EACD,CA/IH","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":["React","debounce","globalObject","isTestEnv","CommonWrapper","rootNode","createPropsGetter","GlobalLoaderView","GlobalLoaderDataTids","root","currentGlobalLoader","GlobalLoader","props","getProps","defaultProps","startTask","setState","visible","onStart","delayBeforeShow","stopTask","successAnimationInProgress","started","onDone","delayBeforeHide","setActive","rejected","cancel","state","successAnimationInProgressTimeout","setTimeout","done","accept","setReject","setDone","reject","active","onReject","onAccept","kill","dead","expectedResponseTime","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","clearTimeout","render","status","disableAnimations","setRootNode","updateExpectedResponseTime","Component","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"]}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["expectedResponseTime", "delayBeforeHide", "status", "disableAnimations", "dataState"];
3
+ var _excluded = ["expectedResponseTime", "delayBeforeHide", "status", "disableAnimations"];
4
4
  import React, { useContext, useRef } from 'react';
5
5
  import { cx } from "../../../lib/theming/Emotion";
6
6
  import { ZIndex } from "../../../internal/ZIndex";
@@ -13,7 +13,6 @@ export var GlobalLoaderView = function GlobalLoaderView(_ref) {
13
13
  delayBeforeHide = _ref.delayBeforeHide,
14
14
  status = _ref.status,
15
15
  disableAnimations = _ref.disableAnimations,
16
- dataState = _ref.dataState,
17
16
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
18
17
 
19
18
  var ref = useRef(null);
@@ -66,7 +65,7 @@ export var GlobalLoaderView = function GlobalLoaderView(_ref) {
66
65
  };
67
66
 
68
67
  return /*#__PURE__*/React.createElement(CommonWrapper, _extends({}, rest, {
69
- "data-state": dataState
68
+ "data-status": status
70
69
  }), /*#__PURE__*/React.createElement(ZIndex, {
71
70
  priority: "GlobalLoader",
72
71
  className: styles.outer(theme)
@@ -1 +1 @@
1
- {"version":3,"sources":["GlobalLoaderView.tsx"],"names":["React","useContext","useRef","cx","ZIndex","ThemeContext","CommonWrapper","animations","styles","useGlobalLoaderPosition","useGlobalLoaderWidth","GlobalLoaderView","expectedResponseTime","delayBeforeHide","status","disableAnimations","dataState","rest","ref","theme","width","startWidth","fullWidth","left","getAnimationClass","successAnimation","acceptAnimation","slowAcceptAnimation","errorAnimation","standardAnimation","successWithoutAnimation","acceptWithoutAnimation","errorWithoutAnimation","standardWithoutAnimation","outer","inner"],"mappings":"sQAAA,OAAOA,KAAP,IAAgBC,UAAhB,EAA4BC,MAA5B,QAA0C,OAA1C;;AAEA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,aAAT,QAA2C,8BAA3C;;AAEA,SAASC,UAAT,EAAqBC,MAArB,QAAmC,2BAAnC;AACA,SAASC,uBAAT,EAAkCC,oBAAlC,QAA8D,aAA9D;;;;;;;;;;;;;;;AAeA,OAAO,IAAMC,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,GAAGhB,MAAM,CAAiC,IAAjC,CAAlB;AACA,MAAMiB,KAAK,GAAGlB,UAAU,CAACI,YAAD,CAAxB;AACA,8BAAyCK,oBAAoB,CAACI,MAAD,EAASI,GAAT,CAA7D,CAAQE,KAAR,yBAAQA,KAAR,CAAeC,UAAf,yBAAeA,UAAf,CAA2BC,SAA3B,yBAA2BA,SAA3B;AACA,8BAAiBb,uBAAuB,CAACS,GAAD,CAAxC,CAAQK,IAAR,yBAAQA,IAAR;;AAEA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACV,MAAD,EAA6C;AACrE,QAAI,CAACC,iBAAL,EAAwB;AACtB,cAAQD,MAAR;AACE,aAAK,SAAL;AACE,iBAAOP,UAAU,CAACkB,gBAAX,CAA4BZ,eAA5B,EAA6CO,KAA7C,EAAoDG,IAApD,CAAP;AACF,aAAK,QAAL;AACE,cAAIF,UAAU,GAAGC,SAAS,GAAG,GAA7B,EAAkC;AAChC,mBAAOf,UAAU,CAACmB,eAAX,CAA2BP,KAA3B,EAAkCE,UAAlC,EAA8CT,oBAA9C,EAAoEQ,KAApE,EAA2EG,IAA3E,CAAP;AACD;AACD,iBAAOhB,UAAU,CAACoB,mBAAX,CAA+BR,KAA/B,EAAsCE,UAAtC,EAAkDD,KAAlD,EAAyDG,IAAzD,CAAP;AACF,aAAK,OAAL;AACE,iBAAOhB,UAAU,CAACqB,cAAX,CAA0BT,KAA1B,CAAP;AACF,aAAK,UAAL;AACE,iBAAOZ,UAAU,CAACsB,iBAAX,CAA6BV,KAA7B,EAAoCP,oBAApC,CAAP,CAXJ;;AAaD;;AAED,QAAIG,iBAAJ,EAAuB;AACrB,cAAQD,MAAR;AACE,aAAK,SAAL;AACE,iBAAON,MAAM,CAACsB,uBAAP,EAAP;AACF,aAAK,QAAL;AACE,iBAAOvB,UAAU,CAACwB,sBAAX,CAAkCV,UAAlC,CAAP;AACF,aAAK,OAAL;AACE,iBAAOb,MAAM,CAACwB,qBAAP,EAAP;AACF,aAAK,UAAL;AACE,iBAAOxB,MAAM,CAACyB,wBAAP,EAAP,CARJ;;AAUD;AACF,GA7BD;;AA+BA;AACE,wBAAC,aAAD,eAAmBhB,IAAnB,IAAyB,cAAYD,SAArC;AACE,wBAAC,MAAD,IAAQ,QAAQ,EAAC,cAAjB,EAAgC,SAAS,EAAER,MAAM,CAAC0B,KAAP,CAAaf,KAAb,CAA3C;AACE,iCAAK,GAAG,EAAED,GAAV,EAAe,SAAS,EAAEf,EAAE,CAACK,MAAM,CAAC2B,KAAP,CAAahB,KAAb,CAAD,EAAsBK,iBAAiB,CAACV,MAAD,CAAvC,CAA5B,GADF,CADF,CADF;;;;AAOD,CAnDM","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":["React","useContext","useRef","cx","ZIndex","ThemeContext","CommonWrapper","animations","styles","useGlobalLoaderPosition","useGlobalLoaderWidth","GlobalLoaderView","expectedResponseTime","delayBeforeHide","status","disableAnimations","rest","ref","theme","width","startWidth","fullWidth","left","getAnimationClass","successAnimation","acceptAnimation","slowAcceptAnimation","errorAnimation","standardAnimation","successWithoutAnimation","acceptWithoutAnimation","errorWithoutAnimation","standardWithoutAnimation","outer","inner"],"mappings":"yPAAA,OAAOA,KAAP,IAAgBC,UAAhB,EAA4BC,MAA5B,QAA0C,OAA1C;;AAEA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,MAAT,QAAuB,uBAAvB;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,aAAT,QAA2C,8BAA3C;;AAEA,SAASC,UAAT,EAAqBC,MAArB,QAAmC,2BAAnC;AACA,SAASC,uBAAT,EAAkCC,oBAAlC,QAA8D,aAA9D;;;;;;;;;;;;;;AAcA,OAAO,IAAMC,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,GAAGf,MAAM,CAAiC,IAAjC,CAAlB;AACA,MAAMgB,KAAK,GAAGjB,UAAU,CAACI,YAAD,CAAxB;AACA,8BAAyCK,oBAAoB,CAACI,MAAD,EAASG,GAAT,CAA7D,CAAQE,KAAR,yBAAQA,KAAR,CAAeC,UAAf,yBAAeA,UAAf,CAA2BC,SAA3B,yBAA2BA,SAA3B;AACA,8BAAiBZ,uBAAuB,CAACQ,GAAD,CAAxC,CAAQK,IAAR,yBAAQA,IAAR;;AAEA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACT,MAAD,EAA6C;AACrE,QAAI,CAACC,iBAAL,EAAwB;AACtB,cAAQD,MAAR;AACE,aAAK,SAAL;AACE,iBAAOP,UAAU,CAACiB,gBAAX,CAA4BX,eAA5B,EAA6CM,KAA7C,EAAoDG,IAApD,CAAP;AACF,aAAK,QAAL;AACE,cAAIF,UAAU,GAAGC,SAAS,GAAG,GAA7B,EAAkC;AAChC,mBAAOd,UAAU,CAACkB,eAAX,CAA2BP,KAA3B,EAAkCE,UAAlC,EAA8CR,oBAA9C,EAAoEO,KAApE,EAA2EG,IAA3E,CAAP;AACD;AACD,iBAAOf,UAAU,CAACmB,mBAAX,CAA+BR,KAA/B,EAAsCE,UAAtC,EAAkDD,KAAlD,EAAyDG,IAAzD,CAAP;AACF,aAAK,OAAL;AACE,iBAAOf,UAAU,CAACoB,cAAX,CAA0BT,KAA1B,CAAP;AACF,aAAK,UAAL;AACE,iBAAOX,UAAU,CAACqB,iBAAX,CAA6BV,KAA7B,EAAoCN,oBAApC,CAAP,CAXJ;;AAaD;;AAED,QAAIG,iBAAJ,EAAuB;AACrB,cAAQD,MAAR;AACE,aAAK,SAAL;AACE,iBAAON,MAAM,CAACqB,uBAAP,EAAP;AACF,aAAK,QAAL;AACE,iBAAOtB,UAAU,CAACuB,sBAAX,CAAkCV,UAAlC,CAAP;AACF,aAAK,OAAL;AACE,iBAAOZ,MAAM,CAACuB,qBAAP,EAAP;AACF,aAAK,UAAL;AACE,iBAAOvB,MAAM,CAACwB,wBAAP,EAAP,CARJ;;AAUD;AACF,GA7BD;;AA+BA;AACE,wBAAC,aAAD,eAAmBhB,IAAnB,IAAyB,eAAaF,MAAtC;AACE,wBAAC,MAAD,IAAQ,QAAQ,EAAC,cAAjB,EAAgC,SAAS,EAAEN,MAAM,CAACyB,KAAP,CAAaf,KAAb,CAA3C;AACE,iCAAK,GAAG,EAAED,GAAV,EAAe,SAAS,EAAEd,EAAE,CAACK,MAAM,CAAC0B,KAAP,CAAahB,KAAb,CAAD,EAAsBK,iBAAiB,CAACT,MAAD,CAAvC,CAA5B,GADF,CADF,CADF;;;;AAOD,CAlDM","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"]}
@@ -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;
@@ -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,38 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ var _excluded = ["children", "theme"];
4
+ import React, { useContext } from 'react';
5
+ import { Modal } from "../../Modal";
6
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
7
+ import { forwardRefAndName } from "../../../lib/forwardRefAndName";
8
+ import { getMiniModalTheme } from "../getMiniModalTheme";
9
+ import { MiniModalFooter } from "../MiniModalFooter";
10
+ import { MiniModalHeader } from "../MiniModalHeader";
11
+ import { MiniModalBody } from "../MiniModalBody";
12
+ import { MiniModalIndent } from "../MiniModalIndent";
13
+ export var MiniModalDataTids = {
14
+ icon: 'MiniModal__icon',
15
+ title: 'MiniModal__title',
16
+ description: 'MiniModal__description',
17
+ actions: 'MiniModal__actions',
18
+ indent: 'MiniModal__indent'
19
+ };
20
+ export var MiniModal = forwardRefAndName('MiniModal', function (_ref, ref) {
21
+ var children = _ref.children,
22
+ propsTheme = _ref.theme,
23
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
24
+
25
+ var contextTheme = useContext(ThemeContext);
26
+ return /*#__PURE__*/React.createElement(ThemeContext.Provider, {
27
+ value: getMiniModalTheme(contextTheme, propsTheme)
28
+ }, /*#__PURE__*/React.createElement(Modal, _extends({
29
+ width: 400,
30
+ noClose: true,
31
+ ref: ref
32
+ }, rest), children));
33
+ });
34
+ MiniModal.__KONTUR_REACT_UI__ = 'MiniModal';
35
+ MiniModal.Header = MiniModalHeader;
36
+ MiniModal.Footer = MiniModalFooter;
37
+ MiniModal.Indent = MiniModalIndent;
38
+ MiniModal.Body = MiniModalBody;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MiniModal.tsx"],"names":["React","useContext","Modal","ThemeContext","forwardRefAndName","getMiniModalTheme","MiniModalFooter","MiniModalHeader","MiniModalBody","MiniModalIndent","MiniModalDataTids","icon","title","description","actions","indent","MiniModal","ref","children","propsTheme","theme","rest","contextTheme","__KONTUR_REACT_UI__","Header","Footer","Indent","Body"],"mappings":"oMAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,KAAT,QAAkC,UAAlC;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,iBAAT,QAAkC,qBAAlC;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,eAAT,QAAgC,mBAAhC;AACA,SAASC,aAAT,QAA8B,iBAA9B;AACA,SAASC,eAAT,QAAgC,mBAAhC;;AAEA,OAAO,IAAMC,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;;;AAQP,OAAO,IAAMC,SAAS,GAAGZ,iBAAiB;;;;;;;;;AASxC,WATwC,EAS3B,gBAA2Ca,GAA3C,EAAmD,KAAhDC,QAAgD,QAAhDA,QAAgD,CAA/BC,UAA+B,QAAtCC,KAAsC,CAAhBC,IAAgB;AAChE,MAAMC,YAAY,GAAGrB,UAAU,CAACE,YAAD,CAA/B;;AAEA;AACE,wBAAC,YAAD,CAAc,QAAd,IAAuB,KAAK,EAAEE,iBAAiB,CAACiB,YAAD,EAAeH,UAAf,CAA/C;AACE,wBAAC,KAAD,aAAO,KAAK,EAAE,GAAd,EAAmB,OAAO,MAA1B,EAA2B,GAAG,EAAEF,GAAhC,IAAyCI,IAAzC;AACGH,IAAAA,QADH,CADF,CADF;;;;AAOD,CAnByC,CAAnC;;AAqBPF,SAAS,CAACO,mBAAV,GAAgC,WAAhC;;AAEAP,SAAS,CAACQ,MAAV,GAAmBjB,eAAnB;AACAS,SAAS,CAACS,MAAV,GAAmBnB,eAAnB;AACAU,SAAS,CAACU,MAAV,GAAmBjB,eAAnB;AACAO,SAAS,CAACW,IAAV,GAAiBnB,aAAjB","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,6 @@
1
+ {
2
+ "main": "../../../cjs/components/MiniModal/MiniModal.js",
3
+ "module": "MiniModal",
4
+ "types": "../MiniModal.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -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,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,41 @@
1
+ import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
+
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
4
+
5
+ import { css, memoizeStyle } from "../../../lib/theming/Emotion";
6
+ import { globalClasses as buttonGlobalClasses } from "../../Button/Button.styles";
7
+ export var styles = memoizeStyle({
8
+ icon: function icon() {
9
+ return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n text-align: center;\n "])));
10
+ },
11
+ description: function description() {
12
+ return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n text-align: center;\n "])));
13
+ },
14
+ title: function title() {
15
+ return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n text-align: center;\n "])));
16
+ },
17
+ titleWithIcon: function titleWithIcon(t) {
18
+ return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n margin-top: ", ";\n "])), t.miniModalTitleMarginTop);
19
+ },
20
+ actions: function actions(t) {
21
+ return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n display: flex;\n justify-content: stretch;\n text-align: center;\n gap: ", ";\n\n .", " {\n width: 100%;\n }\n "])), t.miniModalActionGap, buttonGlobalClasses.root);
22
+ },
23
+ actionsIndent: function actionsIndent(t) {
24
+ return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n height: ", ";\n "])), t.miniModalCancelIndent);
25
+ },
26
+ actionsIndentIE11Fallback: function actionsIndentIE11Fallback(t) {
27
+ return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n padding: ", " 0;\n "])), t.miniModalCancelIndent);
28
+ },
29
+ actionsRow: function actionsRow() {
30
+ return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n flex-direction: row;\n "])));
31
+ },
32
+ actionsColumn: function actionsColumn() {
33
+ return css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteralLoose(["\n flex-direction: column;\n "])));
34
+ },
35
+ actionsRowIE11Fallback: function actionsRowIE11Fallback(t) {
36
+ return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n > *:nth-of-type(1) {\n margin-right: calc(", " / 2);\n }\n > *:nth-of-type(2) {\n margin-left: calc(", " / 2);\n }\n "])), t.miniModalActionGap, t.miniModalActionGap);
37
+ },
38
+ actionsColumnIE11Fallback: function actionsColumnIE11Fallback(t) {
39
+ return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n > *:nth-of-type(2) {\n margin-top: ", ";\n }\n > *:nth-of-type(3) {\n margin-top: ", ";\n }\n "])), t.miniModalActionGap, t.miniModalActionGap);
40
+ }
41
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MiniModal.styles.ts"],"names":["css","memoizeStyle","globalClasses","buttonGlobalClasses","styles","icon","description","title","titleWithIcon","t","miniModalTitleMarginTop","actions","miniModalActionGap","root","actionsIndent","miniModalCancelIndent","actionsIndentIE11Fallback","actionsRow","actionsColumn","actionsRowIE11Fallback","actionsColumnIE11Fallback"],"mappings":"0SAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,2BAAlC;;AAEA,SAASC,aAAa,IAAIC,mBAA1B,QAAqD,yBAArD;;AAEA,OAAO,IAAMC,MAAM,GAAGH,YAAY,CAAC;AACjCI,EAAAA,IADiC,kBAC1B;AACL,WAAOL,GAAP;;;AAGD,GALgC;;AAOjCM,EAAAA,WAPiC,yBAOnB;AACZ,WAAON,GAAP;;;AAGD,GAXgC;;AAajCO,EAAAA,KAbiC,mBAazB;AACN,WAAOP,GAAP;;;AAGD,GAjBgC;;AAmBjCQ,EAAAA,aAnBiC,yBAmBnBC,CAnBmB,EAmBT;AACtB,WAAOT,GAAP;AACgBS,IAAAA,CAAC,CAACC,uBADlB;;AAGD,GAvBgC;;AAyBjCC,EAAAA,OAzBiC,mBAyBzBF,CAzByB,EAyBf;AAChB,WAAOT,GAAP;;;;AAISS,IAAAA,CAAC,CAACG,kBAJX;;AAMKT,IAAAA,mBAAmB,CAACU,IANzB;;;;AAUD,GApCgC;;AAsCjCC,EAAAA,aAtCiC,yBAsCnBL,CAtCmB,EAsCT;AACtB,WAAOT,GAAP;AACYS,IAAAA,CAAC,CAACM,qBADd;;AAGD,GA1CgC;;AA4CjCC,EAAAA,yBA5CiC,qCA4CPP,CA5CO,EA4CG;AAClC,WAAOT,GAAP;AACaS,IAAAA,CAAC,CAACM,qBADf;;AAGD,GAhDgC;;AAkDjCE,EAAAA,UAlDiC,wBAkDpB;AACX,WAAOjB,GAAP;;;AAGD,GAtDgC;;AAwDjCkB,EAAAA,aAxDiC,2BAwDjB;AACd,WAAOlB,GAAP;;;AAGD,GA5DgC;;AA8DjCmB,EAAAA,sBA9DiC,kCA8DVV,CA9DU,EA8DA;AAC/B,WAAOT,GAAP;;AAEyBS,IAAAA,CAAC,CAACG,kBAF3B;;;AAKwBH,IAAAA,CAAC,CAACG,kBAL1B;;;AAQD,GAvEgC;;AAyEjCQ,EAAAA,yBAzEiC,qCAyEPX,CAzEO,EAyEG;AAClC,WAAOT,GAAP;;AAEkBS,IAAAA,CAAC,CAACG,kBAFpB;;;AAKkBH,IAAAA,CAAC,CAACG,kBALpB;;;AAQD,GAlFgC,EAAD,CAA3B","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,6 @@
1
+ {
2
+ "main": "../../../cjs/components/MiniModal/MiniModal.styles.js",
3
+ "module": "MiniModal.styles",
4
+ "types": "../MiniModal.styles.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -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,23 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ var _excluded = ["children"];
3
+ import React from 'react';
4
+ import { forwardRefAndName } from "../../../lib/forwardRefAndName";
5
+ import { Modal } from "../../Modal";
6
+ import { MiniModalDataTids } from "../MiniModal";
7
+ import { styles } from "../MiniModal.styles";
8
+ /**
9
+ * Обёртка над Modal.Body
10
+ *
11
+ * @visibleName MiniModal.Body
12
+ */
13
+
14
+ export var MiniModalBody = forwardRefAndName('MiniModalBody', function (_ref, ref) {
15
+ var children = _ref.children,
16
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
17
+
18
+ return /*#__PURE__*/React.createElement(Modal.Body, rest, /*#__PURE__*/React.createElement("div", {
19
+ "data-tid": MiniModalDataTids.description,
20
+ ref: ref,
21
+ className: styles.description()
22
+ }, children));
23
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MiniModalBody.tsx"],"names":["React","forwardRefAndName","Modal","MiniModalDataTids","styles","MiniModalBody","ref","children","rest","description"],"mappings":"iIAAA,OAAOA,KAAP,MAAkB,OAAlB;;AAEA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,KAAT,QAAsC,UAAtC;;AAEA,SAASC,iBAAT,QAAkC,aAAlC;AACA,SAASC,MAAT,QAAuB,oBAAvB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,aAAa,GAAGJ,iBAAiB;AAC5C,eAD4C;AAE5C,gBAAwBK,GAAxB,EAAgC,KAA7BC,QAA6B,QAA7BA,QAA6B,CAAhBC,IAAgB;AAC9B;AACE,wBAAC,KAAD,CAAO,IAAP,EAAgBA,IAAhB;AACE,iCAAK,YAAUL,iBAAiB,CAACM,WAAjC,EAA8C,GAAG,EAAEH,GAAnD,EAAwD,SAAS,EAAEF,MAAM,CAACK,WAAP,EAAnE;AACGF,IAAAA,QADH,CADF,CADF;;;;AAOD,CAV2C,CAAvC","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,6 @@
1
+ {
2
+ "main": "../../../cjs/components/MiniModal/MiniModalBody.js",
3
+ "module": "MiniModalBody",
4
+ "types": "../MiniModalBody.d.ts",
5
+ "sideEffects": false
6
+ }
@@ -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,35 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ var _excluded = ["direction", "children"];
3
+ import React, { useContext } from 'react';
4
+ import { Modal } from "../../Modal";
5
+ import { forwardRefAndName } from "../../../lib/forwardRefAndName";
6
+ import { ThemeContext } from "../../../lib/theming/ThemeContext";
7
+ import { isIE11 } from "../../../lib/client";
8
+ import { cx } from "../../../lib/theming/Emotion";
9
+ import { styles } from "../MiniModal.styles";
10
+ import { MiniModalDataTids } from "../MiniModal";
11
+ /**
12
+ * Обёртка над Modal.Footer
13
+ *
14
+ * @visibleName MiniModal.Footer
15
+ */
16
+
17
+ export var MiniModalFooter = forwardRefAndName('MiniModalFooter', function (_ref, ref) {
18
+ var _ref$direction = _ref.direction,
19
+ direction = _ref$direction === void 0 ? 'row' : _ref$direction,
20
+ children = _ref.children,
21
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
22
+
23
+ var theme = useContext(ThemeContext);
24
+ var childrenCount = React.Children.count(children);
25
+
26
+ var _direction = childrenCount > 2 || childrenCount === 1 ? 'column' : direction; // IE11 does not support CSS property `gap`
27
+
28
+
29
+ var IE11FallbackClasses = isIE11 && cx(_direction === 'row' && styles.actionsRowIE11Fallback(theme), _direction === 'column' && styles.actionsColumnIE11Fallback(theme));
30
+ return /*#__PURE__*/React.createElement(Modal.Footer, rest, /*#__PURE__*/React.createElement("div", {
31
+ ref: ref,
32
+ "data-tid": MiniModalDataTids.actions,
33
+ className: cx(styles.actions(theme), _direction === 'row' && styles.actionsRow(), _direction === 'column' && styles.actionsColumn(), IE11FallbackClasses)
34
+ }, children));
35
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MiniModalFooter.tsx"],"names":["React","useContext","Modal","forwardRefAndName","ThemeContext","isIE11","cx","styles","MiniModalDataTids","MiniModalFooter","ref","direction","children","rest","theme","childrenCount","Children","count","_direction","IE11FallbackClasses","actionsRowIE11Fallback","actionsColumnIE11Fallback","actions","actionsRow","actionsColumn"],"mappings":"8IAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,KAAT,QAAwC,UAAxC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,MAAT,QAAuB,kBAAvB;AACA,SAASC,EAAT,QAAmB,2BAAnB;;AAEA,SAASC,MAAT,QAAuB,oBAAvB;AACA,SAASC,iBAAT,QAAkC,aAAlC;;;;;;;;;;;;;AAaA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,eAAe,GAAGN,iBAAiB;AAC9C,iBAD8C;AAE9C,gBAA2CO,GAA3C,EAAmD,2BAAhDC,SAAgD,CAAhDA,SAAgD,+BAApC,KAAoC,kBAA7BC,QAA6B,QAA7BA,QAA6B,CAAhBC,IAAgB;AACjD,MAAMC,KAAK,GAAGb,UAAU,CAACG,YAAD,CAAxB;;AAEA,MAAMW,aAAa,GAAGf,KAAK,CAACgB,QAAN,CAAeC,KAAf,CAAqBL,QAArB,CAAtB;AACA,MAAMM,UAAU,GAAGH,aAAa,GAAG,CAAhB,IAAqBA,aAAa,KAAK,CAAvC,GAA2C,QAA3C,GAAsDJ,SAAzE;;AAEA;AACA,MAAMQ,mBAAmB;AACvBd,EAAAA,MAAM;AACNC,EAAAA,EAAE;AACAY,EAAAA,UAAU,KAAK,KAAf,IAAwBX,MAAM,CAACa,sBAAP,CAA8BN,KAA9B,CADxB;AAEAI,EAAAA,UAAU,KAAK,QAAf,IAA2BX,MAAM,CAACc,yBAAP,CAAiCP,KAAjC,CAF3B,CAFJ;;;AAOA;AACE,wBAAC,KAAD,CAAO,MAAP,EAAkBD,IAAlB;AACE;AACE,MAAA,GAAG,EAAEH,GADP;AAEE,kBAAUF,iBAAiB,CAACc,OAF9B;AAGE,MAAA,SAAS,EAAEhB,EAAE;AACXC,MAAAA,MAAM,CAACe,OAAP,CAAeR,KAAf,CADW;AAEXI,MAAAA,UAAU,KAAK,KAAf,IAAwBX,MAAM,CAACgB,UAAP,EAFb;AAGXL,MAAAA,UAAU,KAAK,QAAf,IAA2BX,MAAM,CAACiB,aAAP,EAHhB;AAIXL,MAAAA,mBAJW,CAHf;;;AAUGP,IAAAA,QAVH,CADF,CADF;;;;AAgBD,CAhC6C,CAAzC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { Modal, ModalFooterProps } from '../Modal';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isIE11 } from '../../lib/client';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MiniModal.styles';\nimport { MiniModalDataTids } from './MiniModal';\n\ninterface MiniModalFooterProps extends ModalFooterProps {\n /**\n * Направление позиционирования кнопок.\n * `row` работает только для 2 элементов,\n * в других случаях автоматически включиться `column`.\n *\n * @default row\n */\n direction?: 'row' | 'column';\n}\n\n/**\n * Обёртка над Modal.Footer\n *\n * @visibleName MiniModal.Footer\n */\nexport const MiniModalFooter = forwardRefAndName<HTMLDivElement, MiniModalFooterProps>(\n 'MiniModalFooter',\n ({ direction = 'row', children, ...rest }, ref) => {\n const theme = useContext(ThemeContext);\n\n const childrenCount = React.Children.count(children);\n const _direction = childrenCount > 2 || childrenCount === 1 ? 'column' : direction;\n\n // IE11 does not support CSS property `gap`\n const IE11FallbackClasses =\n isIE11 &&\n cx(\n _direction === 'row' && styles.actionsRowIE11Fallback(theme),\n _direction === 'column' && styles.actionsColumnIE11Fallback(theme),\n );\n\n return (\n <Modal.Footer {...rest}>\n <div\n ref={ref}\n data-tid={MiniModalDataTids.actions}\n className={cx(\n styles.actions(theme),\n _direction === 'row' && styles.actionsRow(),\n _direction === 'column' && styles.actionsColumn(),\n IE11FallbackClasses,\n )}\n >\n {children}\n </div>\n </Modal.Footer>\n );\n },\n);\n"]}