@skbkontur/react-ui 6.1.4 → 6.1.6-00fed.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 (264) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/components/Button/Button.classes.d.ts +8 -0
  3. package/components/Button/Button.classes.js +10 -0
  4. package/components/Button/Button.classes.js.map +1 -0
  5. package/components/Button/Button.mixins.js +1 -1
  6. package/components/Button/Button.mixins.js.map +1 -1
  7. package/components/Button/Button.styles.d.ts +2 -8
  8. package/components/Button/Button.styles.js +3 -9
  9. package/components/Button/Button.styles.js.map +1 -1
  10. package/components/Calendar/Calendar.d.ts +2 -8
  11. package/components/Calendar/Calendar.js +2 -7
  12. package/components/Calendar/Calendar.js.map +1 -1
  13. package/components/Calendar/CalendarDay.js +1 -1
  14. package/components/Calendar/CalendarDay.js.map +1 -1
  15. package/components/Calendar/MonthView.js +1 -1
  16. package/components/Calendar/MonthView.js.map +1 -1
  17. package/components/Calendar/MonthViewModel.js +1 -2
  18. package/components/Calendar/MonthViewModel.js.map +1 -1
  19. package/components/Calendar/tids.d.ts +7 -0
  20. package/components/Calendar/tids.js +8 -0
  21. package/components/Calendar/tids.js.map +1 -0
  22. package/components/FileUploader/FileUploaderFile.d.ts +1 -1
  23. package/components/FileUploader/FileUploaderFile.js +1 -1
  24. package/components/FileUploader/FileUploaderFile.js.map +1 -1
  25. package/components/FxInput/FxInput.d.ts +1 -1
  26. package/components/FxInput/FxInput.js.map +1 -1
  27. package/components/MaskedInput/MaskedInput.d.ts +6 -2
  28. package/components/MaskedInput/MaskedInput.js +10 -126
  29. package/components/MaskedInput/MaskedInput.js.map +1 -1
  30. package/components/MaskedInput/MaskedInputLegacy.d.ts +3 -0
  31. package/components/MaskedInput/MaskedInputLegacy.js +142 -0
  32. package/components/MaskedInput/MaskedInputLegacy.js.map +1 -0
  33. package/components/MaskedInput/index.d.ts +1 -0
  34. package/components/MaskedInput/index.js +1 -0
  35. package/components/MaskedInput/index.js.map +1 -1
  36. package/components/MaskedInputV2/MaskedInputV2.d.ts +62 -0
  37. package/components/MaskedInputV2/MaskedInputV2.helpers.d.ts +9 -0
  38. package/components/MaskedInputV2/MaskedInputV2.helpers.js +17 -0
  39. package/components/MaskedInputV2/MaskedInputV2.helpers.js.map +1 -0
  40. package/components/MaskedInputV2/MaskedInputV2.js +307 -0
  41. package/components/MaskedInputV2/MaskedInputV2.js.map +1 -0
  42. package/components/MaskedInputV2/MaskedInputV2.phone.d.ts +28 -0
  43. package/components/MaskedInputV2/MaskedInputV2.phone.js +38 -0
  44. package/components/MaskedInputV2/MaskedInputV2.phone.js.map +1 -0
  45. package/components/MaskedInputV2/MaskedInputV2.styles.d.ts +7 -0
  46. package/components/MaskedInputV2/MaskedInputV2.styles.js +19 -0
  47. package/components/MaskedInputV2/MaskedInputV2.styles.js.map +1 -0
  48. package/components/MaskedInputV2/index.d.ts +2 -0
  49. package/components/MaskedInputV2/index.js +3 -0
  50. package/components/MaskedInputV2/index.js.map +1 -0
  51. package/components/MaskedInputV2/internal/MaskOverlay.d.ts +19 -0
  52. package/components/MaskedInputV2/internal/MaskOverlay.js +54 -0
  53. package/components/MaskedInputV2/internal/MaskOverlay.js.map +1 -0
  54. package/components/MaskedInputV2/internal/MaskedCore.d.ts +8 -0
  55. package/components/MaskedInputV2/internal/MaskedCore.js +186 -0
  56. package/components/MaskedInputV2/internal/MaskedCore.js.map +1 -0
  57. package/components/MaskedInputV2/internal/MaskedCore.types.d.ts +37 -0
  58. package/components/MaskedInputV2/internal/MaskedCore.types.js +2 -0
  59. package/components/MaskedInputV2/internal/MaskedCore.types.js.map +1 -0
  60. package/components/MaskedInputV2/internal/MaskedInternal.styles.d.ts +15 -0
  61. package/components/MaskedInputV2/internal/MaskedInternal.styles.js +34 -0
  62. package/components/MaskedInputV2/internal/MaskedInternal.styles.js.map +1 -0
  63. package/components/MaskedInputV2/internal/buildSlotMap.d.ts +11 -0
  64. package/components/MaskedInputV2/internal/buildSlotMap.js +37 -0
  65. package/components/MaskedInputV2/internal/buildSlotMap.js.map +1 -0
  66. package/components/MaskedInputV2/internal/computeMaskAlignPadding.d.ts +6 -0
  67. package/components/MaskedInputV2/internal/computeMaskAlignPadding.js +47 -0
  68. package/components/MaskedInputV2/internal/computeMaskAlignPadding.js.map +1 -0
  69. package/components/MaskedInputV2/internal/computePasteMaskedCursor.d.ts +3 -0
  70. package/components/MaskedInputV2/internal/computePasteMaskedCursor.js +11 -0
  71. package/components/MaskedInputV2/internal/computePasteMaskedCursor.js.map +1 -0
  72. package/components/MaskedInputV2/internal/extractRaw.d.ts +10 -0
  73. package/components/MaskedInputV2/internal/extractRaw.js +16 -0
  74. package/components/MaskedInputV2/internal/extractRaw.js.map +1 -0
  75. package/components/MaskedInputV2/internal/findNearestRawLeft.d.ts +10 -0
  76. package/components/MaskedInputV2/internal/findNearestRawLeft.js +18 -0
  77. package/components/MaskedInputV2/internal/findNearestRawLeft.js.map +1 -0
  78. package/components/MaskedInputV2/internal/helpers.d.ts +8 -0
  79. package/components/MaskedInputV2/internal/helpers.js +9 -0
  80. package/components/MaskedInputV2/internal/helpers.js.map +1 -0
  81. package/components/MaskedInputV2/internal/maskedCoreClipboard.d.ts +37 -0
  82. package/components/MaskedInputV2/internal/maskedCoreClipboard.js +52 -0
  83. package/components/MaskedInputV2/internal/maskedCoreClipboard.js.map +1 -0
  84. package/components/MaskedInputV2/internal/maskedCoreDeletion.d.ts +28 -0
  85. package/components/MaskedInputV2/internal/maskedCoreDeletion.js +70 -0
  86. package/components/MaskedInputV2/internal/maskedCoreDeletion.js.map +1 -0
  87. package/components/MaskedInputV2/internal/maskedCoreInputChange.d.ts +38 -0
  88. package/components/MaskedInputV2/internal/maskedCoreInputChange.js +49 -0
  89. package/components/MaskedInputV2/internal/maskedCoreInputChange.js.map +1 -0
  90. package/components/MaskedInputV2/internal/maskedCoreNavigation.d.ts +13 -0
  91. package/components/MaskedInputV2/internal/maskedCoreNavigation.js +79 -0
  92. package/components/MaskedInputV2/internal/maskedCoreNavigation.js.map +1 -0
  93. package/components/MaskedInputV2/internal/measureInputTextWidth.d.ts +2 -0
  94. package/components/MaskedInputV2/internal/measureInputTextWidth.js +30 -0
  95. package/components/MaskedInputV2/internal/measureInputTextWidth.js.map +1 -0
  96. package/components/MaskedInputV2/internal/setMaskInputSelectionRange.d.ts +2 -0
  97. package/components/MaskedInputV2/internal/setMaskInputSelectionRange.js +25 -0
  98. package/components/MaskedInputV2/internal/setMaskInputSelectionRange.js.map +1 -0
  99. package/components/MaskedInputV2/internal/showOverlay.d.ts +3 -0
  100. package/components/MaskedInputV2/internal/showOverlay.js +16 -0
  101. package/components/MaskedInputV2/internal/showOverlay.js.map +1 -0
  102. package/components/MaskedInputV2/internal/stripMaskChars.d.ts +11 -0
  103. package/components/MaskedInputV2/internal/stripMaskChars.js +20 -0
  104. package/components/MaskedInputV2/internal/stripMaskChars.js.map +1 -0
  105. package/components/MaskedInputV2/internal/types.d.ts +74 -0
  106. package/components/MaskedInputV2/internal/types.js +2 -0
  107. package/components/MaskedInputV2/internal/types.js.map +1 -0
  108. package/components/MaskedInputV2/internal/useInputOverflow.d.ts +4 -0
  109. package/components/MaskedInputV2/internal/useInputOverflow.js +34 -0
  110. package/components/MaskedInputV2/internal/useInputOverflow.js.map +1 -0
  111. package/components/MaskedInputV2/internal/useMaskAlignPadding.d.ts +2 -0
  112. package/components/MaskedInputV2/internal/useMaskAlignPadding.js +33 -0
  113. package/components/MaskedInputV2/internal/useMaskAlignPadding.js.map +1 -0
  114. package/components/MaskedInputV2/internal/useMaskEngine.d.ts +42 -0
  115. package/components/MaskedInputV2/internal/useMaskEngine.js +128 -0
  116. package/components/MaskedInputV2/internal/useMaskEngine.js.map +1 -0
  117. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.d.ts +34 -0
  118. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js +335 -0
  119. package/components/MaskedInputV2/internal/useMaskedCoreHandlers.js.map +1 -0
  120. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.d.ts +16 -0
  121. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js +59 -0
  122. package/components/MaskedInputV2/react-imask/imask/controls/html-input-mask-element.js.map +1 -0
  123. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.d.ts +20 -0
  124. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js +106 -0
  125. package/components/MaskedInputV2/react-imask/imask/controls/html-mask-element.js.map +1 -0
  126. package/components/MaskedInputV2/react-imask/imask/controls/input-history.d.ts +17 -0
  127. package/components/MaskedInputV2/react-imask/imask/controls/input-history.js +49 -0
  128. package/components/MaskedInputV2/react-imask/imask/controls/input-history.js.map +1 -0
  129. package/components/MaskedInputV2/react-imask/imask/controls/input.d.ts +95 -0
  130. package/components/MaskedInputV2/react-imask/imask/controls/input.js +420 -0
  131. package/components/MaskedInputV2/react-imask/imask/controls/input.js.map +1 -0
  132. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.d.ts +30 -0
  133. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js +59 -0
  134. package/components/MaskedInputV2/react-imask/imask/controls/mask-element.js.map +1 -0
  135. package/components/MaskedInputV2/react-imask/imask/core/action-details.d.ts +30 -0
  136. package/components/MaskedInputV2/react-imask/imask/core/action-details.js +100 -0
  137. package/components/MaskedInputV2/react-imask/imask/core/action-details.js.map +1 -0
  138. package/components/MaskedInputV2/react-imask/imask/core/change-details.d.ts +20 -0
  139. package/components/MaskedInputV2/react-imask/imask/core/change-details.js +46 -0
  140. package/components/MaskedInputV2/react-imask/imask/core/change-details.js.map +1 -0
  141. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.d.ts +21 -0
  142. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js +52 -0
  143. package/components/MaskedInputV2/react-imask/imask/core/continuous-tail-details.js.map +1 -0
  144. package/components/MaskedInputV2/react-imask/imask/core/holder.d.ts +34 -0
  145. package/components/MaskedInputV2/react-imask/imask/core/holder.js +38 -0
  146. package/components/MaskedInputV2/react-imask/imask/core/holder.js.map +1 -0
  147. package/components/MaskedInputV2/react-imask/imask/core/tail-details.d.ts +20 -0
  148. package/components/MaskedInputV2/react-imask/imask/core/tail-details.js +2 -0
  149. package/components/MaskedInputV2/react-imask/imask/core/tail-details.js.map +1 -0
  150. package/components/MaskedInputV2/react-imask/imask/core/utils.d.ts +24 -0
  151. package/components/MaskedInputV2/react-imask/imask/core/utils.js +100 -0
  152. package/components/MaskedInputV2/react-imask/imask/core/utils.js.map +1 -0
  153. package/components/MaskedInputV2/react-imask/imask/imask.d.ts +5 -0
  154. package/components/MaskedInputV2/react-imask/imask/imask.js +7 -0
  155. package/components/MaskedInputV2/react-imask/imask/imask.js.map +1 -0
  156. package/components/MaskedInputV2/react-imask/imask/index.d.ts +17 -0
  157. package/components/MaskedInputV2/react-imask/imask/index.js +16 -0
  158. package/components/MaskedInputV2/react-imask/imask/index.js.map +1 -0
  159. package/components/MaskedInputV2/react-imask/imask/masked/base.d.ts +114 -0
  160. package/components/MaskedInputV2/react-imask/imask/masked/base.js +411 -0
  161. package/components/MaskedInputV2/react-imask/imask/masked/base.js.map +1 -0
  162. package/components/MaskedInputV2/react-imask/imask/masked/create.d.ts +14 -0
  163. package/components/MaskedInputV2/react-imask/imask/masked/create.js +11 -0
  164. package/components/MaskedInputV2/react-imask/imask/masked/create.js.map +1 -0
  165. package/components/MaskedInputV2/react-imask/imask/masked/factory.d.ts +62 -0
  166. package/components/MaskedInputV2/react-imask/imask/masked/factory.js +107 -0
  167. package/components/MaskedInputV2/react-imask/imask/masked/factory.js.map +1 -0
  168. package/components/MaskedInputV2/react-imask/imask/masked/pattern.d.ts +101 -0
  169. package/components/MaskedInputV2/react-imask/imask/masked/pattern.js +549 -0
  170. package/components/MaskedInputV2/react-imask/imask/masked/pattern.js.map +1 -0
  171. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.d.ts +30 -0
  172. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js +2 -0
  173. package/components/MaskedInputV2/react-imask/imask/masked/patterns/block.js.map +1 -0
  174. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.d.ts +20 -0
  175. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js +182 -0
  176. package/components/MaskedInputV2/react-imask/imask/masked/patterns/chunk-tail-details.js.map +1 -0
  177. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.d.ts +31 -0
  178. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js +163 -0
  179. package/components/MaskedInputV2/react-imask/imask/masked/patterns/cursor.js.map +1 -0
  180. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.d.ts +42 -0
  181. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js +158 -0
  182. package/components/MaskedInputV2/react-imask/imask/masked/patterns/fixed-definition.js.map +1 -0
  183. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.d.ts +56 -0
  184. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js +185 -0
  185. package/components/MaskedInputV2/react-imask/imask/masked/patterns/input-definition.js.map +1 -0
  186. package/components/MaskedInputV2/react-imask/imask/masked/regexp.d.ts +17 -0
  187. package/components/MaskedInputV2/react-imask/imask/masked/regexp.js +36 -0
  188. package/components/MaskedInputV2/react-imask/imask/masked/regexp.js.map +1 -0
  189. package/components/MaskedInputV2/react-imask/index.d.ts +3 -0
  190. package/components/MaskedInputV2/react-imask/index.js +4 -0
  191. package/components/MaskedInputV2/react-imask/index.js.map +1 -0
  192. package/components/MaskedInputV2/react-imask/input.d.ts +8 -0
  193. package/components/MaskedInputV2/react-imask/input.js +35 -0
  194. package/components/MaskedInputV2/react-imask/input.js.map +1 -0
  195. package/components/MaskedInputV2/react-imask/mixin.d.ts +31 -0
  196. package/components/MaskedInputV2/react-imask/mixin.js +246 -0
  197. package/components/MaskedInputV2/react-imask/mixin.js.map +1 -0
  198. package/components/MenuItem/MenuItem.mixins.d.ts +1 -0
  199. package/components/MenuItem/MenuItem.mixins.js +6 -1
  200. package/components/MenuItem/MenuItem.mixins.js.map +1 -1
  201. package/components/MenuItem/MenuItem.styles.d.ts +2 -1
  202. package/components/MenuItem/MenuItem.styles.js +2 -7
  203. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  204. package/components/MiniModal/MiniModal.d.ts +2 -16
  205. package/components/MiniModal/MiniModal.js +2 -16
  206. package/components/MiniModal/MiniModal.js.map +1 -1
  207. package/components/MiniModal/MiniModalBody.js +1 -1
  208. package/components/MiniModal/MiniModalBody.js.map +1 -1
  209. package/components/MiniModal/MiniModalFooter.js +1 -1
  210. package/components/MiniModal/MiniModalFooter.js.map +1 -1
  211. package/components/MiniModal/MiniModalHeader.js +1 -1
  212. package/components/MiniModal/MiniModalHeader.js.map +1 -1
  213. package/components/MiniModal/MiniModalIndent.js +1 -1
  214. package/components/MiniModal/MiniModalIndent.js.map +1 -1
  215. package/components/MiniModal/tids.d.ts +7 -0
  216. package/components/MiniModal/tids.js +8 -0
  217. package/components/MiniModal/tids.js.map +1 -0
  218. package/components/Modal/Modal.constants.d.ts +9 -0
  219. package/components/Modal/Modal.constants.js +10 -0
  220. package/components/Modal/Modal.constants.js.map +1 -0
  221. package/components/Modal/Modal.d.ts +2 -15
  222. package/components/Modal/Modal.js +2 -14
  223. package/components/Modal/Modal.js.map +1 -1
  224. package/components/Modal/ModalBody.js +1 -1
  225. package/components/Modal/ModalBody.js.map +1 -1
  226. package/components/Modal/ModalClose.js +1 -1
  227. package/components/Modal/ModalClose.js.map +1 -1
  228. package/components/Switcher/Switcher.d.ts +3 -3
  229. package/components/Switcher/Switcher.js +1 -1
  230. package/components/Switcher/Switcher.js.map +1 -1
  231. package/components/Tabs/Tab.d.ts +4 -5
  232. package/components/Tabs/Tab.js +0 -1
  233. package/components/Tabs/Tab.js.map +1 -1
  234. package/components/Tabs/Tabs.d.ts +2 -2
  235. package/components/Tabs/Tabs.js +1 -1
  236. package/components/Tabs/Tabs.js.map +1 -1
  237. package/components/Toggle/Toggle.classes.d.ts +8 -0
  238. package/components/Toggle/Toggle.classes.js +10 -0
  239. package/components/Toggle/Toggle.classes.js.map +1 -0
  240. package/components/Toggle/Toggle.mixins.js +1 -1
  241. package/components/Toggle/Toggle.mixins.js.map +1 -1
  242. package/components/Toggle/Toggle.styles.d.ts +2 -8
  243. package/components/Toggle/Toggle.styles.js +3 -9
  244. package/components/Toggle/Toggle.styles.js.map +1 -1
  245. package/components/Token/Token.d.ts +1 -1
  246. package/components/Token/Token.js +1 -1
  247. package/components/Token/Token.js.map +1 -1
  248. package/components/TokenInput/TokenInput.d.ts +1 -1
  249. package/components/TokenInput/TokenInput.js +1 -1
  250. package/components/TokenInput/TokenInput.js.map +1 -1
  251. package/lib/date/InternalDateValidator.js +1 -2
  252. package/lib/date/InternalDateValidator.js.map +1 -1
  253. package/lib/events/keyboard/KeyboardEventCodes.d.ts +2 -0
  254. package/lib/events/keyboard/KeyboardEventCodes.js +2 -0
  255. package/lib/events/keyboard/KeyboardEventCodes.js.map +1 -1
  256. package/lib/events/keyboard/KeyboardMapKeys.js +2 -0
  257. package/lib/events/keyboard/KeyboardMapKeys.js.map +1 -1
  258. package/lib/events/keyboard/identifiers.d.ts +2 -0
  259. package/lib/events/keyboard/identifiers.js +6 -0
  260. package/lib/events/keyboard/identifiers.js.map +1 -1
  261. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  262. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +1 -0
  263. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  264. package/package.json +4 -1
@@ -0,0 +1,246 @@
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ if (typeof b !== "function" && b !== null)
10
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
11
+ extendStatics(d, b);
12
+ function __() { this.constructor = d; }
13
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14
+ };
15
+ })();
16
+ var __assign = (this && this.__assign) || function () {
17
+ __assign = Object.assign || function(t) {
18
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
19
+ s = arguments[i];
20
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21
+ t[p] = s[p];
22
+ }
23
+ return t;
24
+ };
25
+ return __assign.apply(this, arguments);
26
+ };
27
+ var __rest = (this && this.__rest) || function (s, e) {
28
+ var t = {};
29
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
30
+ t[p] = s[p];
31
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
32
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
33
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
34
+ t[p[i]] = s[p[i]];
35
+ }
36
+ return t;
37
+ };
38
+ import React from 'react';
39
+ import { IMask } from './imask/core/holder.js';
40
+ var MASK_PROPS_NAMES = [
41
+ // common
42
+ 'mask',
43
+ 'unmask',
44
+ 'prepare',
45
+ 'prepareChar',
46
+ 'validate',
47
+ 'commit',
48
+ 'overwrite',
49
+ 'eager',
50
+ 'skipInvalid',
51
+ 'autofix',
52
+ // events
53
+ 'onAccept',
54
+ 'onComplete',
55
+ // pattern
56
+ 'placeholderChar',
57
+ 'displayChar',
58
+ 'lazy',
59
+ 'definitions',
60
+ 'blocks',
61
+ // ref
62
+ 'inputRef',
63
+ ];
64
+ var NON_MASK_OPTIONS_NAMES = ['value', 'unmask', 'onAccept', 'onComplete', 'inputRef'];
65
+ var MASK_OPTIONS_NAMES = MASK_PROPS_NAMES.filter(function (pName) { return NON_MASK_OPTIONS_NAMES.indexOf(pName) < 0; });
66
+ export function IMaskMixin(ComposedComponent) {
67
+ var MaskedComponent = /** @class */ (function (_super) {
68
+ __extends(class_1, _super);
69
+ function class_1(props) {
70
+ var _this = _super.call(this, props) || this;
71
+ _this._inputRef = _this._inputRef.bind(_this);
72
+ _this.prevMaskProp = props.mask;
73
+ _this.prevUnmaskProp = props.unmask;
74
+ return _this;
75
+ }
76
+ class_1.prototype.componentDidMount = function () {
77
+ if (!this.props.mask) {
78
+ return;
79
+ }
80
+ this.initMask();
81
+ };
82
+ class_1.prototype.componentDidUpdate = function () {
83
+ var _a, _b, _c, _d;
84
+ var props = this.props;
85
+ var maskOptions = this._extractMaskOptionsFromProps(props);
86
+ if (maskOptions.mask) {
87
+ if (this.maskRef) {
88
+ var maskPropChanged = this.prevMaskProp !== props.mask || this.prevUnmaskProp !== props.unmask;
89
+ var elementAsUnknown = this.element;
90
+ var isNativeInputField = elementAsUnknown instanceof HTMLInputElement || elementAsUnknown instanceof HTMLTextAreaElement;
91
+ var shouldKeepSelection = maskPropChanged && isNativeInputField && document.activeElement === this.element;
92
+ var prevSelection_1 = shouldKeepSelection
93
+ ? {
94
+ start: (_a = this.element.selectionStart) !== null && _a !== void 0 ? _a : 0,
95
+ end: (_b = this.element.selectionEnd) !== null && _b !== void 0 ? _b : 0,
96
+ direction: (_c = this.element.selectionDirection) !== null && _c !== void 0 ? _c : 'none',
97
+ }
98
+ : null;
99
+ this.maskRef.updateOptions(maskOptions);
100
+ if ('value' in props && props.value !== undefined) {
101
+ var nextValue = props.value;
102
+ if (this.maskValue !== nextValue) {
103
+ this.maskValue = nextValue;
104
+ }
105
+ }
106
+ if (prevSelection_1 && isNativeInputField) {
107
+ var inputElement_1 = this.element;
108
+ var restoreSelection = function () {
109
+ if (!inputElement_1.isConnected) {
110
+ return;
111
+ }
112
+ var valueLength = inputElement_1.value.length;
113
+ var nextStart = Math.min(prevSelection_1.start, valueLength);
114
+ var nextEnd = Math.min(prevSelection_1.end, valueLength);
115
+ inputElement_1.setSelectionRange(nextStart, nextEnd, prevSelection_1.direction);
116
+ };
117
+ restoreSelection();
118
+ setTimeout(restoreSelection, 0);
119
+ }
120
+ }
121
+ else {
122
+ this.initMask(maskOptions);
123
+ }
124
+ }
125
+ else {
126
+ this.destroyMask();
127
+ if ('value' in props && props.value !== undefined) {
128
+ if (((_d = this.element) === null || _d === void 0 ? void 0 : _d.isContentEditable) &&
129
+ this.element.tagName !== 'INPUT' &&
130
+ this.element.tagName !== 'TEXTAREA') {
131
+ this.element.textContent = props.value;
132
+ }
133
+ else {
134
+ this.element.value = props.value;
135
+ }
136
+ }
137
+ }
138
+ // Keep prev props in sync for next update
139
+ this.prevMaskProp = this.props.mask;
140
+ this.prevUnmaskProp = this.props.unmask;
141
+ };
142
+ class_1.prototype.componentWillUnmount = function () {
143
+ this.destroyMask();
144
+ };
145
+ class_1.prototype._inputRef = function (el) {
146
+ this.element = el;
147
+ if (this.props.inputRef) {
148
+ if (Object.prototype.hasOwnProperty.call(this.props.inputRef, 'current')) {
149
+ this.props.inputRef.current = el;
150
+ }
151
+ else {
152
+ this.props.inputRef(el);
153
+ }
154
+ }
155
+ };
156
+ class_1.prototype.initMask = function (maskOptions) {
157
+ if (maskOptions === void 0) { maskOptions = this._extractMaskOptionsFromProps(this.props); }
158
+ // eslint-disable-next-line new-cap
159
+ this.maskRef = IMask(this.element, maskOptions)
160
+ .on('accept', this._onAccept.bind(this))
161
+ .on('complete', this._onComplete.bind(this));
162
+ if ('value' in this.props && this.props.value !== undefined) {
163
+ this.maskValue = this.props.value;
164
+ }
165
+ };
166
+ class_1.prototype.destroyMask = function () {
167
+ if (this.maskRef) {
168
+ this.maskRef.destroy();
169
+ delete this.maskRef;
170
+ }
171
+ };
172
+ class_1.prototype._extractMaskOptionsFromProps = function (props) {
173
+ var cloneProps = __rest(props, []);
174
+ // keep only mask options
175
+ Object.keys(cloneProps)
176
+ .filter(function (prop) { return MASK_OPTIONS_NAMES.indexOf(prop) < 0; })
177
+ .forEach(function (nonMaskProp) {
178
+ delete cloneProps[nonMaskProp];
179
+ });
180
+ return cloneProps;
181
+ };
182
+ class_1.prototype._extractNonMaskProps = function (props) {
183
+ var cloneProps = __rest(props, []);
184
+ MASK_PROPS_NAMES.forEach(function (maskProp) {
185
+ delete cloneProps[maskProp];
186
+ });
187
+ if (!('defaultValue' in cloneProps)) {
188
+ cloneProps.defaultValue = props.mask ? '' : cloneProps.value;
189
+ }
190
+ delete cloneProps.value;
191
+ return cloneProps;
192
+ };
193
+ Object.defineProperty(class_1.prototype, "maskValue", {
194
+ get: function () {
195
+ if (!this.maskRef) {
196
+ return '';
197
+ }
198
+ if (this.props.unmask === 'typed') {
199
+ return this.maskRef.typedValue;
200
+ }
201
+ if (this.props.unmask) {
202
+ return this.maskRef.unmaskedValue;
203
+ }
204
+ return this.maskRef.value;
205
+ },
206
+ set: function (value) {
207
+ if (!this.maskRef) {
208
+ return;
209
+ }
210
+ // eslint-disable-next-line no-param-reassign, eqeqeq
211
+ value = (value == null && this.props.unmask !== 'typed' ? '' : value);
212
+ if (this.props.unmask === 'typed') {
213
+ this.maskRef.typedValue = value;
214
+ }
215
+ else if (this.props.unmask) {
216
+ this.maskRef.unmaskedValue = value;
217
+ }
218
+ else {
219
+ this.maskRef.value = value;
220
+ }
221
+ },
222
+ enumerable: false,
223
+ configurable: true
224
+ });
225
+ class_1.prototype._onAccept = function (e) {
226
+ if (this.props.onAccept && this.maskRef) {
227
+ this.props.onAccept(this.maskValue, this.maskRef, e);
228
+ }
229
+ };
230
+ class_1.prototype._onComplete = function (e) {
231
+ if (this.props.onComplete && this.maskRef) {
232
+ this.props.onComplete(this.maskValue, this.maskRef, e);
233
+ }
234
+ };
235
+ class_1.prototype.render = function () {
236
+ return React.createElement(ComposedComponent, __assign(__assign({}, this._extractNonMaskProps(this.props)), { inputRef: this._inputRef }));
237
+ };
238
+ return class_1;
239
+ }(React.Component));
240
+ var nestedComponentName = ComposedComponent.displayName || ComposedComponent.name || 'Component';
241
+ MaskedComponent.displayName = "IMask(".concat(nestedComponentName, ")");
242
+ return React.forwardRef(function (props, ref) {
243
+ return React.createElement(MaskedComponent, __assign(__assign({}, props), { ref: ref }));
244
+ });
245
+ }
246
+ //# sourceMappingURL=mixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mixin.js","sourceRoot":"","sources":["mixin.ts"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { IMask } from './imask/core/holder.js';\nimport { type InputMask, type InputMaskElement, type FactoryOpts, type UpdateOpts } from './imask/index.js';\nimport { type MaskedPatternOptions } from './imask/masked/pattern.js';\n\ntype AnyProps = Record<string, unknown>;\n\nexport type Falsy = false | 0 | '' | null | undefined;\n\n// Плоский (не union) тип для публичного API — устраняет union-распределение в JSX.\n// Опирается только на MaskedPatternOptions, т.к. проект использует исключительно строковые маски.\nexport type ReactMaskOpts = MaskedPatternOptions & { unmask?: 'typed' | boolean };\n\nexport type UnmaskValue<Opts extends ReactMaskOpts> = Opts['unmask'] extends 'typed'\n ? InputMask<Opts>['typedValue']\n : Opts['unmask'] extends Falsy\n ? InputMask<Opts>['value']\n : InputMask<Opts>['unmaskedValue'];\n\nexport type ExtractReactMaskOpts<\n MaskElement extends InputMaskElement,\n Props extends IMaskInputProps<MaskElement>,\n> = Extract<Props, ReactMaskOpts>;\n\nexport interface ReactMaskProps<\n MaskElement extends InputMaskElement,\n Props extends IMaskInputProps<MaskElement> = AnyProps,\n> {\n onAccept?: (\n value: UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>,\n maskRef: InputMask<ExtractMaskOpts<MaskElement, Props>>,\n e?: InputEvent,\n ) => void;\n onComplete?: (\n value: UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>,\n maskRef: InputMask<ExtractMaskOpts<MaskElement, Props>>,\n e?: InputEvent,\n ) => void;\n unmask?: ExtractReactMaskOpts<MaskElement, Props>['unmask'];\n value?: UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>;\n inputRef?: React.Ref<MaskElement>;\n ref?: React.Ref<React.ComponentType<Props>>;\n}\n\nconst MASK_PROPS_NAMES = [\n // common\n 'mask',\n 'unmask',\n 'prepare',\n 'prepareChar',\n 'validate',\n 'commit',\n 'overwrite',\n 'eager',\n 'skipInvalid',\n 'autofix',\n\n // events\n 'onAccept',\n 'onComplete',\n\n // pattern\n 'placeholderChar',\n 'displayChar',\n 'lazy',\n 'definitions',\n 'blocks',\n\n // ref\n 'inputRef',\n] as const;\nconst NON_MASK_OPTIONS_NAMES = ['value', 'unmask', 'onAccept', 'onComplete', 'inputRef'] as const;\n\nexport type ReactElementProps<MaskElement extends InputMaskElement> = Omit<\n React.HTMLProps<MaskElement>,\n (typeof MASK_PROPS_NAMES)[number] | 'value' | (typeof NON_MASK_OPTIONS_NAMES)[number] | 'ref'\n>;\n\ntype NonMaskProps<MaskElement extends InputMaskElement, Props extends IMaskMixinProps<MaskElement> = AnyProps> = Omit<\n Props,\n keyof FactoryOpts\n>;\n\nexport type ReactMixinComponent<\n MaskElement extends InputMaskElement,\n Props extends IMaskMixinProps<MaskElement> = AnyProps,\n> = React.ComponentType<\n ReactElementProps<MaskElement> & { inputRef: React.Ref<MaskElement> } & NonMaskProps<MaskElement, Props>\n>;\n\nexport type MaskPropsKeys = Exclude<(typeof MASK_PROPS_NAMES)[number], (typeof NON_MASK_OPTIONS_NAMES)[number]>;\nconst MASK_OPTIONS_NAMES = MASK_PROPS_NAMES.filter(\n (pName) => NON_MASK_OPTIONS_NAMES.indexOf(pName as (typeof NON_MASK_OPTIONS_NAMES)[number]) < 0,\n) as MaskPropsKeys[];\n\nexport type ExtractMaskOpts<MaskElement extends InputMaskElement, Props extends IMaskInputProps<MaskElement>> = Extract<\n Props,\n FactoryOpts\n>;\n\nexport type IMaskMixinProps<MaskElement extends InputMaskElement> = Omit<ReactMaskProps<MaskElement>, 'ref'> &\n MaskedPatternOptions;\n\nexport type IMaskInputProps<MaskElement extends InputMaskElement> = ReactElementProps<MaskElement> &\n IMaskMixinProps<MaskElement>;\n\nexport function IMaskMixin<MaskElement extends InputMaskElement, Props extends IMaskInputProps<MaskElement> = AnyProps>(\n ComposedComponent: ReactMixinComponent<MaskElement, Props>,\n): React.ComponentType<Props> {\n const MaskedComponent = class extends React.Component<Props> {\n static displayName: string;\n\n element!: MaskElement;\n maskRef?: InputMask<ExtractMaskOpts<MaskElement, Props>>;\n private prevMaskProp?: unknown;\n private prevUnmaskProp?: unknown;\n\n constructor(props: Props) {\n super(props);\n this._inputRef = this._inputRef.bind(this);\n this.prevMaskProp = props.mask;\n this.prevUnmaskProp = props.unmask;\n }\n\n componentDidMount() {\n if (!this.props.mask) {\n return;\n }\n\n this.initMask();\n }\n\n componentDidUpdate() {\n const props = this.props;\n const maskOptions = this._extractMaskOptionsFromProps(props);\n if (maskOptions.mask) {\n if (this.maskRef) {\n const maskPropChanged = this.prevMaskProp !== props.mask || this.prevUnmaskProp !== props.unmask;\n const elementAsUnknown = this.element as unknown;\n const isNativeInputField =\n elementAsUnknown instanceof HTMLInputElement || elementAsUnknown instanceof HTMLTextAreaElement;\n const shouldKeepSelection = maskPropChanged && isNativeInputField && document.activeElement === this.element;\n const prevSelection = shouldKeepSelection\n ? {\n start: (this.element as HTMLInputElement | HTMLTextAreaElement).selectionStart ?? 0,\n end: (this.element as HTMLInputElement | HTMLTextAreaElement).selectionEnd ?? 0,\n direction: (this.element as HTMLInputElement | HTMLTextAreaElement).selectionDirection ?? 'none',\n }\n : null;\n\n this.maskRef.updateOptions(maskOptions as unknown as UpdateOpts<ExtractMaskOpts<MaskElement, Props>>);\n if ('value' in props && props.value !== undefined) {\n const nextValue = props.value as UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>;\n if (this.maskValue !== nextValue) {\n this.maskValue = nextValue;\n }\n }\n\n if (prevSelection && isNativeInputField) {\n const inputElement = this.element as HTMLInputElement | HTMLTextAreaElement;\n const restoreSelection = () => {\n if (!inputElement.isConnected) {\n return;\n }\n const valueLength = inputElement.value.length;\n const nextStart = Math.min(prevSelection.start, valueLength);\n const nextEnd = Math.min(prevSelection.end, valueLength);\n inputElement.setSelectionRange(nextStart, nextEnd, prevSelection.direction);\n };\n restoreSelection();\n setTimeout(restoreSelection, 0);\n }\n } else {\n this.initMask(maskOptions);\n }\n } else {\n this.destroyMask();\n if ('value' in props && props.value !== undefined) {\n if (\n (this.element as HTMLElement)?.isContentEditable &&\n (this.element as HTMLElement).tagName !== 'INPUT' &&\n (this.element as HTMLElement).tagName !== 'TEXTAREA'\n ) {\n (this.element as HTMLElement).textContent = props.value;\n } else {\n (this.element as HTMLInputElement).value = props.value;\n }\n }\n }\n\n // Keep prev props in sync for next update\n this.prevMaskProp = (this.props as Props).mask;\n this.prevUnmaskProp = (this.props as Props).unmask;\n }\n\n componentWillUnmount() {\n this.destroyMask();\n }\n\n _inputRef(el: MaskElement) {\n this.element = el;\n if (this.props.inputRef) {\n if (Object.prototype.hasOwnProperty.call(this.props.inputRef, 'current')) {\n (this.props.inputRef as React.MutableRefObject<MaskElement>).current = el;\n } else {\n (this.props.inputRef as React.RefCallback<MaskElement>)(el);\n }\n }\n }\n\n initMask(maskOptions: ExtractMaskOpts<MaskElement, Props> = this._extractMaskOptionsFromProps(this.props)) {\n // eslint-disable-next-line new-cap\n this.maskRef = IMask(this.element, maskOptions)\n .on('accept', this._onAccept.bind(this))\n .on('complete', this._onComplete.bind(this));\n\n if ('value' in this.props && this.props.value !== undefined) {\n this.maskValue = this.props.value;\n }\n }\n\n destroyMask() {\n if (this.maskRef) {\n this.maskRef.destroy();\n delete this.maskRef;\n }\n }\n\n _extractMaskOptionsFromProps(props: Readonly<Props>): ExtractMaskOpts<MaskElement, Props> {\n const { ...cloneProps }: Readonly<Props> = props;\n\n // keep only mask options\n (Object.keys(cloneProps) as Array<keyof Props>)\n .filter((prop) => MASK_OPTIONS_NAMES.indexOf(prop as MaskPropsKeys) < 0)\n .forEach((nonMaskProp) => {\n delete cloneProps[nonMaskProp];\n });\n\n return cloneProps as ExtractMaskOpts<MaskElement, Props>;\n }\n\n _extractNonMaskProps(props: Readonly<Props>): NonMaskProps<MaskElement, Props> {\n const { ...cloneProps } = props as Props;\n\n (MASK_PROPS_NAMES as unknown as Array<keyof Props>).forEach((maskProp) => {\n delete cloneProps[maskProp];\n });\n if (!('defaultValue' in cloneProps)) {\n cloneProps.defaultValue = props.mask ? '' : cloneProps.value;\n }\n delete cloneProps.value;\n\n return cloneProps as NonMaskProps<MaskElement, Props>;\n }\n\n get maskValue(): UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>> {\n if (!this.maskRef) {\n return '' as UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>;\n }\n\n if (this.props.unmask === 'typed') {\n return this.maskRef.typedValue;\n }\n if (this.props.unmask) {\n return this.maskRef.unmaskedValue;\n }\n return this.maskRef.value;\n }\n\n set maskValue(value: UnmaskValue<ExtractReactMaskOpts<MaskElement, Props>>) {\n if (!this.maskRef) {\n return;\n }\n\n // eslint-disable-next-line no-param-reassign, eqeqeq\n value = (value == null && this.props.unmask !== 'typed' ? '' : value) as UnmaskValue<\n ExtractReactMaskOpts<MaskElement, Props>\n >;\n if (this.props.unmask === 'typed') {\n this.maskRef.typedValue = value;\n } else if (this.props.unmask) {\n this.maskRef.unmaskedValue = value;\n } else {\n this.maskRef.value = value;\n }\n }\n\n _onAccept(e?: InputEvent) {\n if (this.props.onAccept && this.maskRef) {\n this.props.onAccept(this.maskValue, this.maskRef, e);\n }\n }\n\n _onComplete(e?: InputEvent) {\n if (this.props.onComplete && this.maskRef) {\n this.props.onComplete(this.maskValue, this.maskRef, e);\n }\n }\n\n render() {\n return React.createElement(ComposedComponent, {\n ...this._extractNonMaskProps(this.props),\n inputRef: this._inputRef,\n });\n }\n };\n\n const nestedComponentName = ComposedComponent.displayName || ComposedComponent.name || 'Component';\n MaskedComponent.displayName = `IMask(${nestedComponentName})`;\n\n return React.forwardRef<InstanceType<typeof MaskedComponent>, Props>((props, ref) =>\n React.createElement(MaskedComponent, { ...(props as Props), ref }),\n ) as unknown as React.ComponentType<Props>;\n}\n"]}
@@ -1,3 +1,4 @@
1
+ export declare const getMenuItemPaddings: ({ menuItemPaddingX, menuItemPaddingY, }: Record<"menuItemPaddingX" | "menuItemPaddingY", string>) => Record<"paddingX" | "paddingY", string>;
1
2
  export declare const menuItemSizeMixin: (menuItemPaddingX: string, menuItemPaddingY: string, menuItemLineHeight: string, menuItemFontSize: string) => string;
2
3
  export declare const iconSizeMixin: (menuItemIconWidth: string, menuItemPaddingX: string) => string;
3
4
  export declare const withIconSizeMixin: (menuItemPaddingForIcon: string) => string;
@@ -1,4 +1,9 @@
1
- import { getMenuItemPaddings } from './MenuItem.styles.js';
1
+ export var getMenuItemPaddings = function (_a) {
2
+ var menuItemPaddingX = _a.menuItemPaddingX, menuItemPaddingY = _a.menuItemPaddingY;
3
+ var paddingX = menuItemPaddingX;
4
+ var paddingY = menuItemPaddingY;
5
+ return { paddingX: paddingX, paddingY: paddingY };
6
+ };
2
7
  export var menuItemSizeMixin = function (menuItemPaddingX, menuItemPaddingY, menuItemLineHeight, menuItemFontSize) {
3
8
  var _a = getMenuItemPaddings({
4
9
  menuItemPaddingX: menuItemPaddingX,
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.mixins.js","sourceRoot":"","sources":["MenuItem.mixins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAC/B,gBAAwB,EACxB,gBAAwB,EACxB,kBAA0B,EAC1B,gBAAwB;IAElB,IAAA,KAAyB,mBAAmB,CAAC;QACjD,gBAAgB,kBAAA;QAChB,gBAAgB,kBAAA;KACjB,CAAC,EAHM,QAAQ,cAAA,EAAE,QAAQ,cAGxB,CAAC;IAEH,OAAO,6BACU,kBAAkB,+BACpB,gBAAgB,6BAClB,gBAAgB,cAAI,QAAQ,cAAI,QAAQ,cAAI,gBAAgB,UACxE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,iBAAyB,EAAE,gBAAwB;IAC/E,OAAO,uBACI,iBAAiB,0BAClB,QAAQ,CAAC,gBAAgB,CAAC,YACnC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,sBAA8B;IAC9D,OAAO,8BACW,sBAAsB,UACvC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { getMenuItemPaddings } from './MenuItem.styles.js';\n\nexport const menuItemSizeMixin = (\n menuItemPaddingX: string,\n menuItemPaddingY: string,\n menuItemLineHeight: string,\n menuItemFontSize: string,\n): string => {\n const { paddingX, paddingY } = getMenuItemPaddings({\n menuItemPaddingX,\n menuItemPaddingY,\n });\n\n return `\n line-height: ${menuItemLineHeight};\n font-size: ${menuItemFontSize};\n padding: ${menuItemPaddingY} ${paddingX} ${paddingY} ${menuItemPaddingX};\n `;\n};\n\nexport const iconSizeMixin = (menuItemIconWidth: string, menuItemPaddingX: string): string => {\n return `\n width: ${menuItemIconWidth};\n left: ${parseInt(menuItemPaddingX)}px;\n `;\n};\n\nexport const withIconSizeMixin = (menuItemPaddingForIcon: string): string => {\n return `\n padding-left: ${menuItemPaddingForIcon};\n `;\n};\n"]}
1
+ {"version":3,"file":"MenuItem.mixins.js","sourceRoot":"","sources":["MenuItem.mixins.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,EAGsB;QAFxD,gBAAgB,sBAAA,EAChB,gBAAgB,sBAAA;IAEhB,IAAM,QAAQ,GAAG,gBAAgB,CAAC;IAClC,IAAM,QAAQ,GAAG,gBAAgB,CAAC;IAElC,OAAO,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAC/B,gBAAwB,EACxB,gBAAwB,EACxB,kBAA0B,EAC1B,gBAAwB;IAElB,IAAA,KAAyB,mBAAmB,CAAC;QACjD,gBAAgB,kBAAA;QAChB,gBAAgB,kBAAA;KACjB,CAAC,EAHM,QAAQ,cAAA,EAAE,QAAQ,cAGxB,CAAC;IAEH,OAAO,6BACU,kBAAkB,+BACpB,gBAAgB,6BAClB,gBAAgB,cAAI,QAAQ,cAAI,QAAQ,cAAI,gBAAgB,UACxE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,iBAAyB,EAAE,gBAAwB;IAC/E,OAAO,uBACI,iBAAiB,0BAClB,QAAQ,CAAC,gBAAgB,CAAC,YACnC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,iBAAiB,GAAG,UAAC,sBAA8B;IAC9D,OAAO,8BACW,sBAAsB,UACvC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["export const getMenuItemPaddings = ({\n menuItemPaddingX,\n menuItemPaddingY,\n}: Record<'menuItemPaddingX' | 'menuItemPaddingY', string>): Record<'paddingX' | 'paddingY', string> => {\n const paddingX = menuItemPaddingX;\n const paddingY = menuItemPaddingY;\n\n return { paddingX, paddingY };\n};\n\nexport const menuItemSizeMixin = (\n menuItemPaddingX: string,\n menuItemPaddingY: string,\n menuItemLineHeight: string,\n menuItemFontSize: string,\n): string => {\n const { paddingX, paddingY } = getMenuItemPaddings({\n menuItemPaddingX,\n menuItemPaddingY,\n });\n\n return `\n line-height: ${menuItemLineHeight};\n font-size: ${menuItemFontSize};\n padding: ${menuItemPaddingY} ${paddingX} ${paddingY} ${menuItemPaddingX};\n `;\n};\n\nexport const iconSizeMixin = (menuItemIconWidth: string, menuItemPaddingX: string): string => {\n return `\n width: ${menuItemIconWidth};\n left: ${parseInt(menuItemPaddingX)}px;\n `;\n};\n\nexport const withIconSizeMixin = (menuItemPaddingForIcon: string): string => {\n return `\n padding-left: ${menuItemPaddingForIcon};\n `;\n};\n"]}
@@ -1,5 +1,6 @@
1
1
  import type { Theme } from '../../lib/theming/Theme.js';
2
- export declare const getMenuItemPaddings: ({ menuItemPaddingX, menuItemPaddingY, }: Record<"menuItemPaddingX" | "menuItemPaddingY", string>) => Record<"paddingX" | "paddingY", string>;
2
+ import { getMenuItemPaddings } from './MenuItem.mixins.js';
3
+ export { getMenuItemPaddings };
3
4
  export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGetter<{
4
5
  root(t: Theme): string;
5
6
  rootSmall(t: Theme): string;
@@ -4,13 +4,8 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
4
4
  };
5
5
  import { resetButton } from '../../lib/styles/Mixins.js';
6
6
  import { memoizeGetStyles } from '../../lib/theming/Emotion.js';
7
- import { iconSizeMixin, menuItemSizeMixin, withIconSizeMixin } from './MenuItem.mixins.js';
8
- export var getMenuItemPaddings = function (_a) {
9
- var menuItemPaddingX = _a.menuItemPaddingX, menuItemPaddingY = _a.menuItemPaddingY;
10
- var paddingX = menuItemPaddingX;
11
- var paddingY = menuItemPaddingY;
12
- return { paddingX: paddingX, paddingY: paddingY };
13
- };
7
+ import { getMenuItemPaddings, iconSizeMixin, menuItemSizeMixin, withIconSizeMixin } from './MenuItem.mixins.js';
8
+ export { getMenuItemPaddings };
14
9
  export var getStyles = memoizeGetStyles(function (_a) {
15
10
  var css = _a.css;
16
11
  return ({
@@ -1 +1 @@
1
- {"version":3,"file":"MenuItem.styles.js","sourceRoot":"","sources":["MenuItem.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { resetButton } from '../../lib/styles/Mixins.js';\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { iconSizeMixin, menuItemSizeMixin, withIconSizeMixin } from './MenuItem.mixins.js';\n\nexport const getMenuItemPaddings = ({\n menuItemPaddingX,\n menuItemPaddingY,\n}: Record<'menuItemPaddingX' | 'menuItemPaddingY', string>): Record<'paddingX' | 'paddingY', string> => {\n const paddingX = menuItemPaddingX;\n const paddingY = menuItemPaddingY;\n\n return { paddingX, paddingY };\n};\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root(t: Theme) {\n return css`\n ${resetButton()};\n\n cursor: pointer;\n display: ${t.menuItemDisplay};\n position: relative;\n text-decoration: none;\n color: ${t.menuItemTextColor};\n border-radius: ${t.menuItemBorderRadius};\n\n button& {\n min-width: 100%;\n }\n\n &:nth-last-of-type(n + 2) {\n margin-bottom: ${t.menuItemGap};\n }\n `;\n },\n\n rootSmall(t: Theme) {\n return css`\n ${menuItemSizeMixin(\n t.menuItemPaddingXSmall,\n t.menuItemPaddingYSmall,\n t.menuItemLineHeightSmall,\n t.menuItemFontSizeSmall,\n )};\n `;\n },\n rootMedium(t: Theme) {\n return css`\n ${menuItemSizeMixin(\n t.menuItemPaddingXMedium,\n t.menuItemPaddingYMedium,\n t.menuItemLineHeightMedium,\n t.menuItemFontSizeMedium,\n )};\n `;\n },\n rootLarge(t: Theme) {\n return css`\n ${menuItemSizeMixin(\n t.menuItemPaddingXLarge,\n t.menuItemPaddingYLarge,\n t.menuItemLineHeightLarge,\n t.menuItemFontSizeLarge,\n )};\n `;\n },\n\n rootMobile(t: Theme) {\n return css`\n font-size: ${t.menuItemFontSizeMobile};\n line-height: ${t.menuItemLineHeightMobile};\n padding: ${t.menuItemPaddingMobile};\n `;\n },\n\n rootMobileLarge(t: Theme) {\n return css`\n font-size: ${t.mobileMenuItemFontSizeLarge};\n line-height: ${t.mobileMenuItemLineHeightLarge};\n padding: ${t.mobileMenuItemPaddingLarge};\n `;\n },\n rootMobileMedium(t: Theme) {\n return css`\n font-size: ${t.mobileMenuItemFontSizeMedium};\n line-height: ${t.mobileMenuItemLineHeightMedium};\n padding: ${t.mobileMenuItemPaddingMedium};\n `;\n },\n rootMobileSmall(t: Theme) {\n return css`\n font-size: ${t.mobileMenuItemFontSizeSmall};\n line-height: ${t.mobileMenuItemLineHeightSmall};\n padding: ${t.mobileMenuItemPaddingSmall};\n `;\n },\n\n hover(t: Theme) {\n // Color with !important in purpose to override `a:hover`\n return css`\n background: ${t.menuItemHoverBg} !important;\n color: ${t.menuItemHoverColor} !important;\n `;\n },\n selected(t: Theme) {\n return css`\n background: ${t.menuItemSelectedBg} !important;\n `;\n },\n disabled(t: Theme) {\n return css`\n background: ${t.menuItemDisabledBg};\n color: ${t.menuItemDisabledColor};\n cursor: default;\n `;\n },\n nonSelectable() {\n return css`\n cursor: default;\n `;\n },\n loose() {\n return css`\n padding-left: 15px;\n `;\n },\n withIconSmall(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconSmall)}\n `;\n },\n withIconMedium(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconMedium)}\n `;\n },\n withIconLarge(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconLarge)}\n `;\n },\n comment(t: Theme) {\n return css`\n color: ${t.menuItemCommentColor};\n opacity: ${t.menuItemCommentOpacity};\n white-space: normal;\n padding-top: 4px;\n `;\n },\n commentHover(t: Theme) {\n return css`\n color: ${t.menuItemCommentColorHover};\n opacity: ${t.menuItemCommentOpacityHover};\n `;\n },\n icon() {\n return css`\n display: inline-block;\n position: absolute;\n transform: translateY(0px); // icon shifts one pixel up in firefox on medium size without this property\n `;\n },\n iconSmall(t: Theme) {\n return css`\n ${iconSizeMixin(t.menuItemIconWidthSmall, t.menuItemPaddingXSmall)};\n `;\n },\n iconMedium(t: Theme) {\n return css`\n ${iconSizeMixin(t.menuItemIconWidthMedium, t.menuItemPaddingXMedium)};\n `;\n },\n iconLarge(t: Theme) {\n return css`\n ${iconSizeMixin(t.menuItemIconWidthLarge, t.menuItemPaddingXLarge)};\n `;\n },\n mobileContentWithIcon() {\n return css`\n margin-left: 8px;\n `;\n },\n}));\n"]}
1
+ {"version":3,"file":"MenuItem.styles.js","sourceRoot":"","sources":["MenuItem.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { resetButton } from '../../lib/styles/Mixins.js';\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { getMenuItemPaddings, iconSizeMixin, menuItemSizeMixin, withIconSizeMixin } from './MenuItem.mixins.js';\n\nexport { getMenuItemPaddings };\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n root(t: Theme) {\n return css`\n ${resetButton()};\n\n cursor: pointer;\n display: ${t.menuItemDisplay};\n position: relative;\n text-decoration: none;\n color: ${t.menuItemTextColor};\n border-radius: ${t.menuItemBorderRadius};\n\n button& {\n min-width: 100%;\n }\n\n &:nth-last-of-type(n + 2) {\n margin-bottom: ${t.menuItemGap};\n }\n `;\n },\n\n rootSmall(t: Theme) {\n return css`\n ${menuItemSizeMixin(\n t.menuItemPaddingXSmall,\n t.menuItemPaddingYSmall,\n t.menuItemLineHeightSmall,\n t.menuItemFontSizeSmall,\n )};\n `;\n },\n rootMedium(t: Theme) {\n return css`\n ${menuItemSizeMixin(\n t.menuItemPaddingXMedium,\n t.menuItemPaddingYMedium,\n t.menuItemLineHeightMedium,\n t.menuItemFontSizeMedium,\n )};\n `;\n },\n rootLarge(t: Theme) {\n return css`\n ${menuItemSizeMixin(\n t.menuItemPaddingXLarge,\n t.menuItemPaddingYLarge,\n t.menuItemLineHeightLarge,\n t.menuItemFontSizeLarge,\n )};\n `;\n },\n\n rootMobile(t: Theme) {\n return css`\n font-size: ${t.menuItemFontSizeMobile};\n line-height: ${t.menuItemLineHeightMobile};\n padding: ${t.menuItemPaddingMobile};\n `;\n },\n\n rootMobileLarge(t: Theme) {\n return css`\n font-size: ${t.mobileMenuItemFontSizeLarge};\n line-height: ${t.mobileMenuItemLineHeightLarge};\n padding: ${t.mobileMenuItemPaddingLarge};\n `;\n },\n rootMobileMedium(t: Theme) {\n return css`\n font-size: ${t.mobileMenuItemFontSizeMedium};\n line-height: ${t.mobileMenuItemLineHeightMedium};\n padding: ${t.mobileMenuItemPaddingMedium};\n `;\n },\n rootMobileSmall(t: Theme) {\n return css`\n font-size: ${t.mobileMenuItemFontSizeSmall};\n line-height: ${t.mobileMenuItemLineHeightSmall};\n padding: ${t.mobileMenuItemPaddingSmall};\n `;\n },\n\n hover(t: Theme) {\n // Color with !important in purpose to override `a:hover`\n return css`\n background: ${t.menuItemHoverBg} !important;\n color: ${t.menuItemHoverColor} !important;\n `;\n },\n selected(t: Theme) {\n return css`\n background: ${t.menuItemSelectedBg} !important;\n `;\n },\n disabled(t: Theme) {\n return css`\n background: ${t.menuItemDisabledBg};\n color: ${t.menuItemDisabledColor};\n cursor: default;\n `;\n },\n nonSelectable() {\n return css`\n cursor: default;\n `;\n },\n loose() {\n return css`\n padding-left: 15px;\n `;\n },\n withIconSmall(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconSmall)}\n `;\n },\n withIconMedium(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconMedium)}\n `;\n },\n withIconLarge(t: Theme) {\n return css`\n ${withIconSizeMixin(t.menuItemPaddingForIconLarge)}\n `;\n },\n comment(t: Theme) {\n return css`\n color: ${t.menuItemCommentColor};\n opacity: ${t.menuItemCommentOpacity};\n white-space: normal;\n padding-top: 4px;\n `;\n },\n commentHover(t: Theme) {\n return css`\n color: ${t.menuItemCommentColorHover};\n opacity: ${t.menuItemCommentOpacityHover};\n `;\n },\n icon() {\n return css`\n display: inline-block;\n position: absolute;\n transform: translateY(0px); // icon shifts one pixel up in firefox on medium size without this property\n `;\n },\n iconSmall(t: Theme) {\n return css`\n ${iconSizeMixin(t.menuItemIconWidthSmall, t.menuItemPaddingXSmall)};\n `;\n },\n iconMedium(t: Theme) {\n return css`\n ${iconSizeMixin(t.menuItemIconWidthMedium, t.menuItemPaddingXMedium)};\n `;\n },\n iconLarge(t: Theme) {\n return css`\n ${iconSizeMixin(t.menuItemIconWidthLarge, t.menuItemPaddingXLarge)};\n `;\n },\n mobileContentWithIcon() {\n return css`\n margin-left: 8px;\n `;\n },\n}));\n"]}
@@ -4,24 +4,10 @@ import { MiniModalBody } from './MiniModalBody.js';
4
4
  import { MiniModalFooter } from './MiniModalFooter.js';
5
5
  import { MiniModalHeader } from './MiniModalHeader.js';
6
6
  import { MiniModalIndent } from './MiniModalIndent.js';
7
- export declare const MiniModalDataTids: {
8
- readonly icon: "MiniModal__icon";
9
- readonly title: "MiniModal__title";
10
- readonly description: "MiniModal__description";
11
- readonly actions: "MiniModal__actions";
12
- readonly indent: "MiniModal__indent";
13
- };
7
+ import { MiniModalDataTids } from './tids.js';
8
+ export { MiniModalDataTids };
14
9
  /**
15
10
  * Модальное диалоговое окно, которое предполагает обязательный отклик пользователя по одному из доступных действий. Обёртка над Modal.
16
- *
17
- * Состоит из набора подкомпонентов:
18
- * - `MiniModal.Header`
19
- * - `MiniModal.Body`
20
- * - `MiniModal.Footer`
21
- * - `MiniModal.Indent`
22
- *
23
- * Тот же набор доступен как `MiniModalHeader`, `MiniModalBody`, `MiniModalFooter`, `MiniModalIndent`.
24
- *
25
11
  */
26
12
  export declare const MiniModal: import("../../lib/forwardRefAndName.js").ReactUIComponentWithRef<Modal, ModalProps> & {
27
13
  Header: typeof MiniModalHeader;
@@ -29,24 +29,10 @@ import { MiniModalBody } from './MiniModalBody.js';
29
29
  import { MiniModalFooter } from './MiniModalFooter.js';
30
30
  import { MiniModalHeader } from './MiniModalHeader.js';
31
31
  import { MiniModalIndent } from './MiniModalIndent.js';
32
- export var MiniModalDataTids = {
33
- icon: 'MiniModal__icon',
34
- title: 'MiniModal__title',
35
- description: 'MiniModal__description',
36
- actions: 'MiniModal__actions',
37
- indent: 'MiniModal__indent',
38
- };
32
+ import { MiniModalDataTids } from './tids.js';
33
+ export { MiniModalDataTids };
39
34
  /**
40
35
  * Модальное диалоговое окно, которое предполагает обязательный отклик пользователя по одному из доступных действий. Обёртка над Modal.
41
- *
42
- * Состоит из набора подкомпонентов:
43
- * - `MiniModal.Header`
44
- * - `MiniModal.Body`
45
- * - `MiniModal.Footer`
46
- * - `MiniModal.Indent`
47
- *
48
- * Тот же набор доступен как `MiniModalHeader`, `MiniModalBody`, `MiniModalFooter`, `MiniModalIndent`.
49
- *
50
36
  */
51
37
  export var MiniModal = forwardRefAndName('MiniModal', function (_a, ref) {
52
38
  var children = _a.children, propsTheme = _a.theme, mobileAppearance = _a.mobileAppearance, width = _a.width, rest = __rest(_a, ["children", "theme", "mobileAppearance", "width"]);
@@ -1 +1 @@
1
- {"version":3,"file":"MiniModal.js","sourceRoot":"","sources":["MiniModal.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,IAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE,oBAAoB;IAC7B,MAAM,EAAE,mBAAmB;CACnB,CAAC;AAEX;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,IAAM,SAAS,GAAG,iBAAiB,CASxC,WAAW,EAAE,UAAC,EAAiE,EAAE,GAAG;IAApE,IAAA,QAAQ,cAAA,EAAS,UAAU,WAAA,EAAE,gBAAgB,sBAAA,EAAE,KAAK,WAAA,EAAK,IAAI,cAA/D,kDAAiE,CAAF;IAC7E,IAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAE9C,OAAO,CACL,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC;QACvE,oBAAC,KAAK,aAAC,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,QAAQ,EAAE,OAAO,QAAC,GAAG,EAAE,GAAG,IAAM,IAAI,GACnG,QAAQ,CACH,CACc,CACzB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;AACnC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;AACnC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;AACnC,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Modal } from '../Modal/index.js';\nimport type { ModalProps } from '../Modal/index.js';\nimport { getMiniModalTheme } from './getMiniModalTheme.js';\nimport { MiniModalBody } from './MiniModalBody.js';\nimport { MiniModalFooter } from './MiniModalFooter.js';\nimport { MiniModalHeader } from './MiniModalHeader.js';\nimport { MiniModalIndent } from './MiniModalIndent.js';\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\n/**\n * Модальное диалоговое окно, которое предполагает обязательный отклик пользователя по одному из доступных действий. Обёртка над Modal.\n *\n * Состоит из набора подкомпонентов:\n * - `MiniModal.Header`\n * - `MiniModal.Body`\n * - `MiniModal.Footer`\n * - `MiniModal.Indent`\n *\n * Тот же набор доступен как `MiniModalHeader`, `MiniModalBody`, `MiniModalFooter`, `MiniModalIndent`.\n *\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, mobileAppearance, width, ...rest }, ref) => {\n const contextTheme = useContext(ThemeContext);\n\n return (\n <ThemeContext.Provider value={getMiniModalTheme(contextTheme, propsTheme)}>\n <Modal width={width ?? 400} mobileAppearance={mobileAppearance ?? 'center'} noClose ref={ref} {...rest}>\n {children}\n </Modal>\n </ThemeContext.Provider>\n );\n});\n\nMiniModal.Header = MiniModalHeader;\nMiniModal.Footer = MiniModalFooter;\nMiniModal.Indent = MiniModalIndent;\nMiniModal.Body = MiniModalBody;\n"]}
1
+ {"version":3,"file":"MiniModal.js","sourceRoot":"","sources":["MiniModal.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,IAAM,SAAS,GAAG,iBAAiB,CASxC,WAAW,EAAE,UAAC,EAAiE,EAAE,GAAG;IAApE,IAAA,QAAQ,cAAA,EAAS,UAAU,WAAA,EAAE,gBAAgB,sBAAA,EAAE,KAAK,WAAA,EAAK,IAAI,cAA/D,kDAAiE,CAAF;IAC7E,IAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAE9C,OAAO,CACL,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC;QACvE,oBAAC,KAAK,aAAC,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,QAAQ,EAAE,OAAO,QAAC,GAAG,EAAE,GAAG,IAAM,IAAI,GACnG,QAAQ,CACH,CACc,CACzB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;AACnC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;AACnC,SAAS,CAAC,MAAM,GAAG,eAAe,CAAC;AACnC,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Modal } from '../Modal/index.js';\nimport type { ModalProps } from '../Modal/index.js';\nimport { getMiniModalTheme } from './getMiniModalTheme.js';\nimport { MiniModalBody } from './MiniModalBody.js';\nimport { MiniModalFooter } from './MiniModalFooter.js';\nimport { MiniModalHeader } from './MiniModalHeader.js';\nimport { MiniModalIndent } from './MiniModalIndent.js';\nimport { MiniModalDataTids } from './tids.js';\n\nexport { MiniModalDataTids };\n\n/**\n * Модальное диалоговое окно, которое предполагает обязательный отклик пользователя по одному из доступных действий. Обёртка над Modal.\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, mobileAppearance, width, ...rest }, ref) => {\n const contextTheme = useContext(ThemeContext);\n\n return (\n <ThemeContext.Provider value={getMiniModalTheme(contextTheme, propsTheme)}>\n <Modal width={width ?? 400} mobileAppearance={mobileAppearance ?? 'center'} noClose ref={ref} {...rest}>\n {children}\n </Modal>\n </ThemeContext.Provider>\n );\n});\n\nMiniModal.Header = MiniModalHeader;\nMiniModal.Footer = MiniModalFooter;\nMiniModal.Indent = MiniModalIndent;\nMiniModal.Body = MiniModalBody;\n"]}
@@ -25,8 +25,8 @@ import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
25
25
  import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
26
26
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
27
27
  import { Modal } from '../Modal/index.js';
28
- import { MiniModalDataTids } from './MiniModal.js';
29
28
  import { getStyles } from './MiniModal.styles.js';
29
+ import { MiniModalDataTids } from './tids.js';
30
30
  /**
31
31
  * Текстовый блок пояснения в мини-модалке.
32
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MiniModalBody.js","sourceRoot":"","sources":["MiniModalBody.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,IAAM,aAAa,GAAG,iBAAiB,CAC5C,eAAe,EACf,UAAC,EAAqB,EAAE,GAAG;IAAxB,IAAA,QAAQ,cAAA,EAAK,IAAI,cAAnB,YAAqB,CAAF;IACV,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,oBAAC,KAAK,CAAC,IAAI,eAAK,IAAI;QAClB,oBAAC,YAAY,CAAC,QAAQ,QACnB,UAAC,KAAK;YACL,OAAO,CACL,yCAAe,iBAAiB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAC7F,QAAQ,CACL,CACP,CAAC;QACJ,CAAC,CACqB,CACb,CACd,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["import React from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Modal } from '../Modal/index.js';\nimport type { ModalBodyProps } from '../Modal/index.js';\nimport { MiniModalDataTids } from './MiniModal.js';\nimport { getStyles } from './MiniModal.styles.js';\n\n/**\n * Текстовый блок пояснения в мини-модалке.\n *\n * @visibleName MiniModal.Body\n */\nexport const MiniModalBody = forwardRefAndName<HTMLDivElement, ModalBodyProps>(\n 'MiniModalBody',\n ({ children, ...rest }, ref) => {\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n return (\n <Modal.Body {...rest}>\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <div data-tid={MiniModalDataTids.description} ref={ref} className={cx(styles.description(theme))}>\n {children}\n </div>\n );\n }}\n </ThemeContext.Consumer>\n </Modal.Body>\n );\n },\n);\n"]}
1
+ {"version":3,"file":"MiniModalBody.js","sourceRoot":"","sources":["MiniModalBody.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,IAAM,aAAa,GAAG,iBAAiB,CAC5C,eAAe,EACf,UAAC,EAAqB,EAAE,GAAG;IAAxB,IAAA,QAAQ,cAAA,EAAK,IAAI,cAAnB,YAAqB,CAAF;IACV,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,oBAAC,KAAK,CAAC,IAAI,eAAK,IAAI;QAClB,oBAAC,YAAY,CAAC,QAAQ,QACnB,UAAC,KAAK;YACL,OAAO,CACL,yCAAe,iBAAiB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAC7F,QAAQ,CACL,CACP,CAAC;QACJ,CAAC,CACqB,CACb,CACd,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["import React from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Modal } from '../Modal/index.js';\nimport type { ModalBodyProps } from '../Modal/index.js';\nimport { getStyles } from './MiniModal.styles.js';\nimport { MiniModalDataTids } from './tids.js';\n\n/**\n * Текстовый блок пояснения в мини-модалке.\n *\n * @visibleName MiniModal.Body\n */\nexport const MiniModalBody = forwardRefAndName<HTMLDivElement, ModalBodyProps>(\n 'MiniModalBody',\n ({ children, ...rest }, ref) => {\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n return (\n <Modal.Body {...rest}>\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <div data-tid={MiniModalDataTids.description} ref={ref} className={cx(styles.description(theme))}>\n {children}\n </div>\n );\n }}\n </ThemeContext.Consumer>\n </Modal.Body>\n );\n },\n);\n"]}
@@ -25,8 +25,8 @@ import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
25
25
  import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
26
26
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
27
27
  import { Modal } from '../Modal/index.js';
28
- import { MiniModalDataTids } from './MiniModal.js';
29
28
  import { getStyles } from './MiniModal.styles.js';
29
+ import { MiniModalDataTids } from './tids.js';
30
30
  /**
31
31
  * Футер мини-модалки: зона действий с раскладкой кнопок.
32
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MiniModalFooter.js","sourceRoot":"","sources":["MiniModalFooter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQlD;;;;GAIG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,iBAAiB,CAC9C,iBAAiB,EACjB,UAAC,EAAwC,EAAE,GAAG;IAA3C,IAAA,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA,EAAE,QAAQ,cAAA,EAAK,IAAI,cAAtC,yBAAwC,CAAF;IACrC,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,IAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAM,UAAU,GAAG,aAAa,GAAG,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnF,OAAO,CACL,oBAAC,KAAK,CAAC,MAAM,eAAK,IAAI;QACpB,6BACE,GAAG,EAAE,GAAG,cACE,iBAAiB,CAAC,OAAO,EACnC,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,OAAO,EAAE,EAChB,UAAU,KAAK,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAChD,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CACvD,IAEA,QAAQ,CACL,CACO,CAChB,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Modal } from '../Modal/index.js';\nimport type { ModalFooterProps } from '../Modal/index.js';\nimport { MiniModalDataTids } from './MiniModal.js';\nimport { getStyles } from './MiniModal.styles.js';\n\ninterface MiniModalFooterProps extends ModalFooterProps {\n /** Задает направление позиционирования кнопок. `row` работает только для 2 элементов, в других случаях автоматически включиться `column`.\n * @default row */\n direction?: 'row' | 'column';\n}\n\n/**\n * Футер мини-модалки: зона действий с раскладкой кнопок.\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 const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const childrenCount = React.Children.count(children);\n const _direction = childrenCount > 2 || childrenCount === 1 ? 'column' : direction;\n\n return (\n <Modal.Footer {...rest}>\n <div\n ref={ref}\n data-tid={MiniModalDataTids.actions}\n className={cx(\n styles.actions(),\n _direction === 'row' && styles.actionsRow(theme),\n _direction === 'column' && styles.actionsColumn(theme),\n )}\n >\n {children}\n </div>\n </Modal.Footer>\n );\n },\n);\n"]}
1
+ {"version":3,"file":"MiniModalFooter.js","sourceRoot":"","sources":["MiniModalFooter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAQ9C;;;;GAIG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,iBAAiB,CAC9C,iBAAiB,EACjB,UAAC,EAAwC,EAAE,GAAG;IAA3C,IAAA,iBAAiB,EAAjB,SAAS,mBAAG,KAAK,KAAA,EAAE,QAAQ,cAAA,EAAK,IAAI,cAAtC,yBAAwC,CAAF;IACrC,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,IAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAM,UAAU,GAAG,aAAa,GAAG,CAAC,IAAI,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnF,OAAO,CACL,oBAAC,KAAK,CAAC,MAAM,eAAK,IAAI;QACpB,6BACE,GAAG,EAAE,GAAG,cACE,iBAAiB,CAAC,OAAO,EACnC,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,OAAO,EAAE,EAChB,UAAU,KAAK,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAChD,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CACvD,IAEA,QAAQ,CACL,CACO,CAChB,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Modal } from '../Modal/index.js';\nimport type { ModalFooterProps } from '../Modal/index.js';\nimport { getStyles } from './MiniModal.styles.js';\nimport { MiniModalDataTids } from './tids.js';\n\ninterface MiniModalFooterProps extends ModalFooterProps {\n /** Задает направление позиционирования кнопок. `row` работает только для 2 элементов, в других случаях автоматически включиться `column`.\n * @default row */\n direction?: 'row' | 'column';\n}\n\n/**\n * Футер мини-модалки: зона действий с раскладкой кнопок.\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 const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n const childrenCount = React.Children.count(children);\n const _direction = childrenCount > 2 || childrenCount === 1 ? 'column' : direction;\n\n return (\n <Modal.Footer {...rest}>\n <div\n ref={ref}\n data-tid={MiniModalDataTids.actions}\n className={cx(\n styles.actions(),\n _direction === 'row' && styles.actionsRow(theme),\n _direction === 'column' && styles.actionsColumn(theme),\n )}\n >\n {children}\n </div>\n </Modal.Footer>\n );\n },\n);\n"]}
@@ -26,8 +26,8 @@ import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
26
26
  import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
27
27
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
28
28
  import { Modal } from '../Modal/index.js';
29
- import { MiniModalDataTids } from './MiniModal.js';
30
29
  import { getStyles } from './MiniModal.styles.js';
30
+ import { MiniModalDataTids } from './tids.js';
31
31
  /**
32
32
  * Шапка мини-модалки: заголовок и опциональная иконка.
33
33
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MiniModalHeader.js","sourceRoot":"","sources":["MiniModalHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQlD;;;;GAIG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,iBAAiB,CAC9C,iBAAiB,EACjB,UAAC,EAAyD,EAAE,GAAG;;IAA5D,IAAA,YAAkC,EAAlC,IAAI,mBAAG,oBAAC,uBAAuB,OAAG,KAAA,EAAE,QAAQ,cAAA,EAAK,IAAI,cAAvD,oBAAyD,CAAF;IACtD,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,oBAAC,KAAK,CAAC,MAAM,eAAK,IAAI;QACpB,6BAAK,GAAG,EAAE,GAAG;YACV,IAAI,IAAI,CACP,yCAAe,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,IAC5D,IAAI,CACD,CACP;YACA,QAAQ,IAAI,CACX,yCACY,iBAAiB,CAAC,KAAK,EACjC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;oBAC1B,GAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAG,CAAC,CAAC,IAAI;wBACrC,IAED,QAAQ,CACL,CACP,CACG,CACO,CAChB,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["import React, { useContext } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { InfoCircleIcon64Regular } from '../../internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Modal } from '../Modal/index.js';\nimport type { ModalHeaderProps } from '../Modal/index.js';\nimport { MiniModalDataTids } from './MiniModal.js';\nimport { getStyles } from './MiniModal.styles.js';\n\ninterface MiniModalHeaderProps extends ModalHeaderProps {\n /** Задает иконку в шапку компонента.\n * @default InfoCircleIcon64Regular */\n icon?: ReactNode;\n}\n\n/**\n * Шапка мини-модалки: заголовок и опциональная иконка.\n *\n * @visibleName MiniModal.Header\n */\nexport const MiniModalHeader = forwardRefAndName<HTMLDivElement, MiniModalHeaderProps>(\n 'MiniModalHeader',\n ({ icon = <InfoCircleIcon64Regular />, children, ...rest }, ref) => {\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n return (\n <Modal.Header {...rest}>\n <div ref={ref}>\n {icon && (\n <div data-tid={MiniModalDataTids.icon} className={styles.icon()}>\n {icon}\n </div>\n )}\n {children && (\n <div\n data-tid={MiniModalDataTids.title}\n className={cx(styles.title(), {\n [styles.titleWithIcon(theme)]: !!icon,\n })}\n >\n {children}\n </div>\n )}\n </div>\n </Modal.Header>\n );\n },\n);\n"]}
1
+ {"version":3,"file":"MiniModalHeader.js","sourceRoot":"","sources":["MiniModalHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAQ9C;;;;GAIG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,iBAAiB,CAC9C,iBAAiB,EACjB,UAAC,EAAyD,EAAE,GAAG;;IAA5D,IAAA,YAAkC,EAAlC,IAAI,mBAAG,oBAAC,uBAAuB,OAAG,KAAA,EAAE,QAAQ,cAAA,EAAK,IAAI,cAAvD,oBAAyD,CAAF;IACtD,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,oBAAC,KAAK,CAAC,MAAM,eAAK,IAAI;QACpB,6BAAK,GAAG,EAAE,GAAG;YACV,IAAI,IAAI,CACP,yCAAe,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,IAC5D,IAAI,CACD,CACP;YACA,QAAQ,IAAI,CACX,yCACY,iBAAiB,CAAC,KAAK,EACjC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;oBAC1B,GAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAG,CAAC,CAAC,IAAI;wBACrC,IAED,QAAQ,CACL,CACP,CACG,CACO,CAChB,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["import React, { useContext } from 'react';\nimport type { ReactNode } from 'react';\n\nimport { InfoCircleIcon64Regular } from '../../internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { Modal } from '../Modal/index.js';\nimport type { ModalHeaderProps } from '../Modal/index.js';\nimport { getStyles } from './MiniModal.styles.js';\nimport { MiniModalDataTids } from './tids.js';\n\ninterface MiniModalHeaderProps extends ModalHeaderProps {\n /** Задает иконку в шапку компонента.\n * @default InfoCircleIcon64Regular */\n icon?: ReactNode;\n}\n\n/**\n * Шапка мини-модалки: заголовок и опциональная иконка.\n *\n * @visibleName MiniModal.Header\n */\nexport const MiniModalHeader = forwardRefAndName<HTMLDivElement, MiniModalHeaderProps>(\n 'MiniModalHeader',\n ({ icon = <InfoCircleIcon64Regular />, children, ...rest }, ref) => {\n const theme = useContext(ThemeContext);\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n return (\n <Modal.Header {...rest}>\n <div ref={ref}>\n {icon && (\n <div data-tid={MiniModalDataTids.icon} className={styles.icon()}>\n {icon}\n </div>\n )}\n {children && (\n <div\n data-tid={MiniModalDataTids.title}\n className={cx(styles.title(), {\n [styles.titleWithIcon(theme)]: !!icon,\n })}\n >\n {children}\n </div>\n )}\n </div>\n </Modal.Header>\n );\n },\n);\n"]}
@@ -24,8 +24,8 @@ import React, { useContext } from 'react';
24
24
  import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
25
25
  import { useStyles } from '../../lib/renderEnvironment/index.js';
26
26
  import { ThemeContext } from '../../lib/theming/ThemeContext.js';
27
- import { MiniModalDataTids } from './MiniModal.js';
28
27
  import { getStyles } from './MiniModal.styles.js';
28
+ import { MiniModalDataTids } from './tids.js';
29
29
  /**
30
30
  * Вертикальный отступ между группами элементов в зоне футера мини-модалки.
31
31
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MiniModalIndent.js","sourceRoot":"","sources":["MiniModalIndent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,iBAAiB,CAC9C,iBAAiB,EACjB,UAAC,EAAqB,EAAE,GAAG;IAAxB,IAAA,QAAQ,cAAA,EAAK,IAAI,cAAnB,YAAqB,CAAF;IAClB,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAEvC,OAAO,kDAAe,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAM,IAAI,EAAI,CAAC;AACjH,CAAC,CACF,CAAC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { MiniModalDataTids } from './MiniModal.js';\nimport { getStyles } from './MiniModal.styles.js';\n\n/**\n * Вертикальный отступ между группами элементов в зоне футера мини-модалки.\n *\n * @visibleName MiniModal.Indent\n */\nexport const MiniModalIndent = forwardRefAndName<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n 'MiniModalIndent',\n ({ children, ...rest }, ref) => {\n const styles = useStyles(getStyles);\n const theme = useContext(ThemeContext);\n\n return <div data-tid={MiniModalDataTids.indent} ref={ref} className={styles.actionsIndent(theme)} {...rest} />;\n },\n);\n"]}
1
+ {"version":3,"file":"MiniModalIndent.js","sourceRoot":"","sources":["MiniModalIndent.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,IAAM,eAAe,GAAG,iBAAiB,CAC9C,iBAAiB,EACjB,UAAC,EAAqB,EAAE,GAAG;IAAxB,IAAA,QAAQ,cAAA,EAAK,IAAI,cAAnB,YAAqB,CAAF;IAClB,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAEvC,OAAO,kDAAe,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAM,IAAI,EAAI,CAAC;AACjH,CAAC,CACF,CAAC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { getStyles } from './MiniModal.styles.js';\nimport { MiniModalDataTids } from './tids.js';\n\n/**\n * Вертикальный отступ между группами элементов в зоне футера мини-модалки.\n *\n * @visibleName MiniModal.Indent\n */\nexport const MiniModalIndent = forwardRefAndName<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n 'MiniModalIndent',\n ({ children, ...rest }, ref) => {\n const styles = useStyles(getStyles);\n const theme = useContext(ThemeContext);\n\n return <div data-tid={MiniModalDataTids.indent} ref={ref} className={styles.actionsIndent(theme)} {...rest} />;\n },\n);\n"]}
@@ -0,0 +1,7 @@
1
+ export declare const MiniModalDataTids: {
2
+ readonly icon: "MiniModal__icon";
3
+ readonly title: "MiniModal__title";
4
+ readonly description: "MiniModal__description";
5
+ readonly actions: "MiniModal__actions";
6
+ readonly indent: "MiniModal__indent";
7
+ };
@@ -0,0 +1,8 @@
1
+ export var MiniModalDataTids = {
2
+ icon: 'MiniModal__icon',
3
+ title: 'MiniModal__title',
4
+ description: 'MiniModal__description',
5
+ actions: 'MiniModal__actions',
6
+ indent: 'MiniModal__indent',
7
+ };
8
+ //# sourceMappingURL=tids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tids.js","sourceRoot":"","sources":["tids.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE,oBAAoB;IAC7B,MAAM,EAAE,mBAAmB;CACnB,CAAC","sourcesContent":["export 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"]}
@@ -0,0 +1,9 @@
1
+ export declare const ModalDataTids: {
2
+ readonly container: "modal-container";
3
+ readonly content: "modal-content";
4
+ readonly close: "modal-close";
5
+ };
6
+ export declare const ModalZIndexPriority: {
7
+ readonly Cross: 2;
8
+ readonly Content: 1;
9
+ };
@@ -0,0 +1,10 @@
1
+ export var ModalDataTids = {
2
+ container: 'modal-container',
3
+ content: 'modal-content',
4
+ close: 'modal-close',
5
+ };
6
+ export var ModalZIndexPriority = {
7
+ Cross: 2,
8
+ Content: 1,
9
+ };
10
+ //# sourceMappingURL=Modal.constants.js.map