@sima-land/ui-nucleons 44.2.10 → 45.0.0-alpha.1

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 (378) hide show
  1. package/_internal/custom-scrollbar/index.d.ts +13 -7
  2. package/_internal/custom-scrollbar/index.js +29 -15
  3. package/_internal/dropdown-loading/index.d.ts +3 -3
  4. package/_internal/dropdown-loading/index.js +4 -2
  5. package/_internal/page-scroll-lock/adapters/body-scroll-lock.d.ts +39 -0
  6. package/_internal/page-scroll-lock/adapters/body-scroll-lock.js +62 -0
  7. package/_internal/page-scroll-lock/adapters/ui-nucleons.d.ts +25 -0
  8. package/_internal/page-scroll-lock/adapters/ui-nucleons.js +103 -0
  9. package/_internal/page-scroll-lock/context.d.ts +13 -0
  10. package/_internal/page-scroll-lock/context.js +54 -0
  11. package/_internal/page-scroll-lock/hook.d.ts +12 -0
  12. package/_internal/page-scroll-lock/hook.js +26 -0
  13. package/_internal/page-scroll-lock/index.d.ts +4 -0
  14. package/_internal/page-scroll-lock/index.js +9 -0
  15. package/_internal/page-scroll-lock/types.d.ts +22 -0
  16. package/_internal/readme.md +2 -0
  17. package/_internal/utils/dropdown.d.ts +1 -0
  18. package/_internal/utils/dropdown.js +1 -0
  19. package/alert/alert.module.scss +1 -24
  20. package/alert/index.d.ts +11 -17
  21. package/alert/index.js +33 -16
  22. package/arrow-button/arrow-button.module.scss +2 -0
  23. package/arrow-button/index.d.ts +2 -2
  24. package/autocomplete/autocomplete.d.ts +8 -0
  25. package/autocomplete/autocomplete.js +190 -0
  26. package/autocomplete/autocomplete.module.scss +2 -15
  27. package/autocomplete/index.d.ts +2 -27
  28. package/autocomplete/index.js +2 -126
  29. package/autocomplete/types.d.ts +19 -0
  30. package/autocomplete/types.js +2 -0
  31. package/autocomplete-deprecated/autocomplete.module.scss +20 -0
  32. package/autocomplete-deprecated/index.d.ts +28 -0
  33. package/autocomplete-deprecated/index.js +130 -0
  34. package/avatar/index.d.ts +2 -2
  35. package/avatar/user.d.ts +1 -1
  36. package/base-input/base-input.d.ts +11 -0
  37. package/base-input/base-input.js +96 -0
  38. package/base-input/base-input.module.scss +3 -3
  39. package/base-input/index.d.ts +2 -23
  40. package/base-input/index.js +2 -76
  41. package/base-input/types.d.ts +31 -0
  42. package/base-input/types.js +2 -0
  43. package/base-input/utils.d.ts +6 -0
  44. package/base-input/utils.js +14 -0
  45. package/base-input-deprecated/base-input.module.scss +66 -0
  46. package/base-input-deprecated/index.d.ts +24 -0
  47. package/base-input-deprecated/index.js +80 -0
  48. package/bordered-layout/index.d.ts +1 -0
  49. package/bordered-layout/index.js +1 -0
  50. package/bottom-bar/bottom-bar-util.scss +20 -0
  51. package/bottom-bar/bottom-bar.d.ts +12 -0
  52. package/bottom-bar/bottom-bar.js +47 -0
  53. package/bottom-bar/bottom-bar.module.scss +14 -0
  54. package/bottom-bar/index.d.ts +2 -21
  55. package/bottom-bar/index.js +5 -44
  56. package/bottom-bar/types.d.ts +10 -0
  57. package/bottom-bar/types.js +2 -0
  58. package/box/index.d.ts +1 -1
  59. package/breakpoints.scss +34 -3
  60. package/button/button.module.scss +70 -53
  61. package/button/index.d.ts +26 -41
  62. package/button/index.js +22 -46
  63. package/card/index.d.ts +2 -1
  64. package/card/index.js +23 -6
  65. package/card/slots.d.ts +17 -3
  66. package/card/slots.js +15 -13
  67. package/carousel/draggable.d.ts +7 -3
  68. package/carousel/draggable.js +10 -3
  69. package/carousel/helpers/draggable-event.d.ts +5 -2
  70. package/carousel/helpers/draggable-event.js +5 -0
  71. package/carousel/index.d.ts +1 -1
  72. package/carousel/index.js +24 -24
  73. package/checkbox/checkbox.module.scss +1 -0
  74. package/checkbox/index.d.ts +3 -3
  75. package/checkbox-field/index.d.ts +3 -0
  76. package/checkbox-field/index.js +3 -0
  77. package/clean-buttons/clean-buttons-util.scss +15 -0
  78. package/clean-buttons/clean-buttons.module.scss +5 -3
  79. package/clean-buttons/index.d.ts +16 -7
  80. package/clean-buttons/index.js +17 -14
  81. package/clean-buttons/types.d.ts +1 -1
  82. package/clean-buttons/utils.d.ts +5 -1
  83. package/clean-buttons/utils.js +4 -0
  84. package/{colors.d.ts → colors/index.d.ts} +2 -2
  85. package/{colors.js → colors/index.js} +2 -1
  86. package/colors.scss +2 -0
  87. package/dot-nav/index.d.ts +1 -1
  88. package/dropdown/index.d.ts +1 -0
  89. package/dropdown/utils.d.ts +19 -0
  90. package/dropdown/utils.js +47 -0
  91. package/dropdown-item/dropdown-item.module.scss +80 -15
  92. package/dropdown-item/index.d.ts +20 -9
  93. package/dropdown-item/index.js +12 -9
  94. package/dropdown-item/types.d.ts +3 -0
  95. package/dropdown-item/types.js +2 -0
  96. package/dropdown-item/utils.d.ts +45 -0
  97. package/dropdown-item/utils.js +89 -0
  98. package/expandable/utils.js +3 -3
  99. package/field-block/field-block.module.scss +155 -0
  100. package/field-block/index.d.ts +63 -0
  101. package/field-block/index.js +43 -0
  102. package/field-grid/index.d.ts +5 -4
  103. package/field-grid/index.js +1 -0
  104. package/helpers/bounds-of.d.ts +5 -1
  105. package/helpers/bounds-of.js +5 -0
  106. package/helpers/center-of.d.ts +4 -1
  107. package/helpers/center-of.js +8 -1
  108. package/helpers/create-container.d.ts +5 -2
  109. package/helpers/create-container.js +7 -2
  110. package/helpers/define-slots.d.ts +3 -3
  111. package/helpers/define-slots.js +5 -3
  112. package/helpers/events.d.ts +16 -8
  113. package/helpers/events.js +41 -15
  114. package/helpers/find-child-element.d.ts +12 -9
  115. package/helpers/find-child-element.js +9 -5
  116. package/helpers/find-offset-parent.d.ts +1 -2
  117. package/helpers/find-offset-parent.js +2 -2
  118. package/helpers/find-sibling-index.d.ts +11 -8
  119. package/helpers/find-sibling-index.js +8 -3
  120. package/helpers/fit-element-height.d.ts +5 -5
  121. package/helpers/fit-element-height.js +9 -7
  122. package/helpers/format-date.d.ts +11 -11
  123. package/helpers/format-date.js +15 -13
  124. package/helpers/format-number.d.ts +1 -1
  125. package/helpers/format-number.js +2 -2
  126. package/helpers/get-date-interval-data.d.ts +4 -1
  127. package/helpers/get-date-interval-data.js +7 -2
  128. package/helpers/get-declination.d.ts +5 -1
  129. package/helpers/get-declination.js +5 -0
  130. package/helpers/get-fraction-depth.d.ts +1 -1
  131. package/helpers/get-fraction-depth.js +2 -2
  132. package/helpers/get-no-index.d.ts +2 -2
  133. package/helpers/get-no-index.js +4 -3
  134. package/helpers/get-relative-pos.d.ts +4 -1
  135. package/helpers/get-relative-pos.js +7 -2
  136. package/helpers/get-scroll-parent.d.ts +1 -2
  137. package/helpers/get-scroll-parent.js +5 -5
  138. package/helpers/is-browser.d.ts +4 -1
  139. package/helpers/is-browser.js +8 -1
  140. package/helpers/is-fully-scrolled.d.ts +3 -3
  141. package/helpers/is-fully-scrolled.js +2 -2
  142. package/helpers/is-touch-device.d.ts +1 -1
  143. package/helpers/is-touch-device.js +4 -5
  144. package/helpers/layer.d.ts +1 -1
  145. package/helpers/layer.js +2 -2
  146. package/helpers/max-index-of.d.ts +4 -1
  147. package/helpers/max-index-of.js +7 -2
  148. package/helpers/media-query-list.d.ts +1 -1
  149. package/helpers/media-query-list.js +2 -2
  150. package/helpers/on.d.ts +4 -1
  151. package/helpers/on.js +7 -2
  152. package/helpers/point.d.ts +4 -1
  153. package/helpers/point.js +8 -1
  154. package/helpers/rename.d.ts +3 -1
  155. package/helpers/rename.js +1 -0
  156. package/helpers/scroll-to-child.d.ts +1 -1
  157. package/helpers/scroll-to-child.js +3 -2
  158. package/helpers/styles.d.ts +8 -2
  159. package/helpers/styles.js +18 -4
  160. package/helpers/with-prevent.d.ts +9 -6
  161. package/helpers/with-prevent.js +16 -9
  162. package/hint/hint-view.d.ts +26 -0
  163. package/hint/hint-view.js +43 -0
  164. package/hint/hint-view.module.scss +32 -0
  165. package/hint/hint.d.ts +14 -0
  166. package/hint/hint.js +41 -0
  167. package/hint/index.d.ts +5 -8
  168. package/hint/index.js +13 -48
  169. package/hint/utils.d.ts +61 -0
  170. package/hint/utils.js +161 -0
  171. package/hint-deprecated/index.d.ts +11 -0
  172. package/hint-deprecated/index.js +53 -0
  173. package/hooks/breakpoint/index.d.ts +7 -4
  174. package/hooks/breakpoint/index.js +21 -13
  175. package/hooks/breakpoint/types.d.ts +3 -4
  176. package/hooks/breakpoint/utils.d.ts +2 -1
  177. package/hooks/breakpoint/utils.js +2 -1
  178. package/hooks/index.d.ts +8 -8
  179. package/hooks/index.js +27 -19
  180. package/hooks/intersection/test-utils.d.ts +1 -1
  181. package/hooks/intersection/test-utils.js +2 -1
  182. package/hooks/styles.d.ts +6 -0
  183. package/hooks/styles.js +26 -0
  184. package/info-text/index.d.ts +23 -0
  185. package/info-text/index.js +60 -0
  186. package/info-text/info-text.module.scss +28 -0
  187. package/input/index.d.ts +32 -0
  188. package/input/index.js +96 -0
  189. package/input/input.module.scss +20 -0
  190. package/input/utils.d.ts +36 -0
  191. package/input/utils.js +71 -0
  192. package/layout/index.d.ts +6 -11
  193. package/layout/index.js +6 -60
  194. package/layout/layout.d.ts +10 -0
  195. package/layout/layout.js +32 -0
  196. package/layout/layout.module.scss +33 -26
  197. package/layout/legacy.d.ts +15 -0
  198. package/layout/legacy.js +68 -0
  199. package/layout/legacy.module.scss +49 -0
  200. package/layout/types.d.ts +6 -0
  201. package/layout/types.js +2 -0
  202. package/link/index.d.ts +4 -1
  203. package/link/index.js +2 -2
  204. package/link/link-util.scss +37 -0
  205. package/link/link.module.scss +19 -12
  206. package/loading-overlay/index.d.ts +1 -0
  207. package/loading-overlay/index.js +1 -0
  208. package/masked-field/index.d.ts +1 -0
  209. package/masked-field/index.js +1 -0
  210. package/masked-input/hook.d.ts +8 -0
  211. package/masked-input/hook.js +72 -0
  212. package/masked-input/index.d.ts +5 -0
  213. package/masked-input/index.js +7 -0
  214. package/masked-input/masked-input.d.ts +8 -0
  215. package/masked-input/masked-input.js +73 -0
  216. package/masked-input/types.d.ts +51 -0
  217. package/masked-input/types.js +2 -0
  218. package/masked-input/utils.d.ts +15 -0
  219. package/masked-input/utils.js +49 -0
  220. package/modal/index.d.ts +10 -12
  221. package/modal/index.js +27 -64
  222. package/modal/modal.module.scss +98 -55
  223. package/modal/slots.d.ts +13 -10
  224. package/modal/slots.js +30 -28
  225. package/modal/utils.d.ts +8 -10
  226. package/modal/utils.js +2 -26
  227. package/modal-overlay/index.d.ts +13 -0
  228. package/modal-overlay/index.js +60 -0
  229. package/modal-overlay/modal-overlay-util.scss +1 -0
  230. package/modal-overlay/modal-overlay.module.scss +14 -0
  231. package/modal-overlay/utils.d.ts +14 -0
  232. package/modal-overlay/utils.js +32 -0
  233. package/package.json +49 -41
  234. package/pagination/utils.d.ts +2 -2
  235. package/panel/index.d.ts +27 -13
  236. package/panel/index.js +43 -9
  237. package/panel/panel.module.scss +49 -8
  238. package/phone-input/index.d.ts +4 -28
  239. package/phone-input/index.js +2 -121
  240. package/phone-input/phone-input.d.ts +8 -0
  241. package/phone-input/phone-input.js +133 -0
  242. package/phone-input/phone-input.module.scss +8 -32
  243. package/phone-input/presets.d.ts +21 -22
  244. package/phone-input/presets.js +1 -2
  245. package/phone-input/types.d.ts +6 -0
  246. package/phone-input/types.js +2 -0
  247. package/phone-input/utils.d.ts +30 -1
  248. package/phone-input/utils.js +52 -3
  249. package/phone-input-deprecated/index.d.ts +29 -0
  250. package/phone-input-deprecated/index.js +124 -0
  251. package/phone-input-deprecated/phone-input.module.scss +41 -0
  252. package/plate/index.d.ts +3 -3
  253. package/plate/index.js +2 -2
  254. package/plate/plate.module.scss +3 -0
  255. package/popup/index.d.ts +5 -0
  256. package/popup/index.js +12 -0
  257. package/popup/popup-view.d.ts +14 -0
  258. package/popup/popup-view.js +35 -0
  259. package/popup/popup-view.module.scss +40 -0
  260. package/popup/popup.d.ts +17 -0
  261. package/popup/popup.js +73 -0
  262. package/popup/utils.d.ts +38 -0
  263. package/popup/utils.js +83 -0
  264. package/price/index.d.ts +1 -1
  265. package/price/index.js +3 -3
  266. package/price/utils.d.ts +5 -5
  267. package/price/utils.js +33 -23
  268. package/radio-button/index.d.ts +10 -0
  269. package/radio-button/index.js +33 -0
  270. package/radio-button/radio-button.module.scss +46 -0
  271. package/rating/index.d.ts +2 -1
  272. package/rating/types.d.ts +1 -1
  273. package/readme.md +56 -65
  274. package/screen/index.d.ts +4 -2
  275. package/screen/index.js +34 -3
  276. package/screen/screen.module.scss +0 -2
  277. package/screen/slots.d.ts +2 -8
  278. package/screen/slots.js +8 -9
  279. package/screen/utils.d.ts +2 -1
  280. package/select/index.d.ts +2 -33
  281. package/select/index.js +3 -109
  282. package/select/parts/block.d.ts +8 -0
  283. package/select/parts/block.js +70 -0
  284. package/select/parts/block.module.scss +7 -0
  285. package/select/parts/button.d.ts +8 -0
  286. package/select/parts/button.js +69 -0
  287. package/select/parts/menu.d.ts +8 -0
  288. package/select/parts/menu.js +105 -0
  289. package/select/parts/menu.module.scss +4 -0
  290. package/select/select.d.ts +14 -0
  291. package/select/select.js +145 -0
  292. package/select/types.d.ts +55 -0
  293. package/select/types.js +2 -0
  294. package/select/utils.d.ts +3 -0
  295. package/select/utils.js +13 -0
  296. package/select-deprecated/index.d.ts +34 -0
  297. package/select-deprecated/index.js +112 -0
  298. package/shadows.scss +18 -0
  299. package/side-page/index.d.ts +11 -26
  300. package/side-page/index.js +21 -26
  301. package/side-page/side-page.module.scss +35 -29
  302. package/side-page/slots.d.ts +12 -20
  303. package/side-page/slots.js +16 -28
  304. package/spinner/index.d.ts +18 -6
  305. package/spinner/index.js +25 -12
  306. package/spinner/spinner.module.scss +8 -0
  307. package/stepper/index.d.ts +18 -10
  308. package/stepper/index.js +17 -8
  309. package/stepper/stepper.module.scss +14 -15
  310. package/styling/fonts.d.ts +3 -3
  311. package/switcher-row/index.d.ts +42 -0
  312. package/switcher-row/index.js +59 -0
  313. package/switcher-row/switcher-row.module.scss +59 -0
  314. package/text/index.d.ts +1 -1
  315. package/text-button/index.d.ts +42 -0
  316. package/text-button/index.js +46 -0
  317. package/text-button/text-button.module.scss +96 -0
  318. package/text-field/index.d.ts +7 -6
  319. package/text-field/index.js +3 -2
  320. package/textarea/index.d.ts +21 -0
  321. package/textarea/index.js +85 -0
  322. package/textarea/textarea.module.scss +15 -0
  323. package/toggle/index.d.ts +3 -3
  324. package/toggle/toggle.module.scss +17 -8
  325. package/tooltip/index.d.ts +1 -0
  326. package/tooltip/index.js +1 -0
  327. package/top-bar/index.d.ts +3 -40
  328. package/top-bar/index.js +4 -60
  329. package/top-bar/top-bar-util.scss +29 -0
  330. package/top-bar/top-bar.d.ts +9 -0
  331. package/top-bar/top-bar.js +101 -0
  332. package/top-bar/top-bar.module.scss +129 -67
  333. package/top-bar/types.d.ts +31 -0
  334. package/top-bar/types.js +2 -0
  335. package/top-bar/utils.d.ts +14 -0
  336. package/top-bar/utils.js +56 -0
  337. package/touch-slider/index.d.ts +1 -0
  338. package/touch-slider/index.js +3 -2
  339. package/types.d.ts +18 -0
  340. package/types.js +2 -0
  341. package/unknown-content/index.d.ts +3 -3
  342. package/unknown-content/index.js +3 -3
  343. package/unknown-content/unknown-content.module.scss +16 -12
  344. package/upload-area/index.d.ts +2 -0
  345. package/upload-area/index.js +5 -0
  346. package/upload-area/types.d.ts +32 -0
  347. package/upload-area/types.js +2 -0
  348. package/upload-area/upload-area-util.scss +17 -0
  349. package/upload-area/upload-area.d.ts +8 -0
  350. package/upload-area/upload-area.js +105 -0
  351. package/upload-area/upload-area.module.scss +78 -0
  352. package/upload-area/utils.d.ts +17 -0
  353. package/upload-area/utils.js +48 -0
  354. package/utils.scss +74 -1
  355. package/with-hint/index.d.ts +3 -2
  356. package/with-hint/index.js +1 -0
  357. package/with-hint/positioning-hint.d.ts +1 -1
  358. package/with-hint/positioning-hint.js +2 -2
  359. package/with-tooltip/index.d.ts +2 -1
  360. package/with-tooltip/index.js +1 -0
  361. package/with-tooltip/utils.d.ts +2 -2
  362. package/_internal/body-scroll.d.ts +0 -23
  363. package/_internal/body-scroll.js +0 -41
  364. package/_internal/checkbox/index.d.ts +0 -5
  365. package/constants.d.ts +0 -6
  366. package/constants.js +0 -9
  367. package/nav-bar/index.d.ts +0 -46
  368. package/nav-bar/index.js +0 -76
  369. package/nav-bar/nav-bar.module.scss +0 -95
  370. package/upload/area.d.ts +0 -25
  371. package/upload/area.js +0 -65
  372. package/upload/area.module.scss +0 -44
  373. package/upload/utils.d.ts +0 -29
  374. package/upload/utils.js +0 -45
  375. /package/_internal/{checkbox/index.js → page-scroll-lock/types.js} +0 -0
  376. /package/{hint → hint-deprecated}/hint.module.scss +0 -0
  377. /package/{select → select-deprecated}/select.module.scss +0 -0
  378. /package/{upload → upload-area}/upload.svg +0 -0
@@ -1,8 +1,11 @@
1
- import React from 'react';
1
+ import { SyntheticEvent } from 'react';
2
2
  /**
3
- * Декорирует переданную функцию-обработчик события останавливая его при перехвате.
4
- * @param callback Функция перехвата события.
5
- * @return Декорированная функция.
3
+ * Декорирует переданную функцию-обработчик события вызывая preventDefault и stopPropagation.
4
+ * @param callback Функция-обработчик.
5
+ * @return Декорированная функция-обработчик.
6
6
  */
7
- declare const withPrevent: <T extends Event | React.SyntheticEvent<Element, Event>>(callback?: ((e: T) => void) | undefined) => (event: T) => void;
8
- export default withPrevent;
7
+ export declare function withEventMute<T extends Event | SyntheticEvent>(callback?: (event: T) => void): (event: T) => void;
8
+ /**
9
+ * @deprecated Следует использовать именованный экспорт. Экспорт по умолчанию будет удалён в будущем.
10
+ */
11
+ export default withEventMute;
@@ -1,13 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withEventMute = void 0;
3
4
  /**
4
- * Декорирует переданную функцию-обработчик события останавливая его при перехвате.
5
- * @param callback Функция перехвата события.
6
- * @return Декорированная функция.
5
+ * Декорирует переданную функцию-обработчик события вызывая preventDefault и stopPropagation.
6
+ * @param callback Функция-обработчик.
7
+ * @return Декорированная функция-обработчик.
7
8
  */
8
- const withPrevent = (callback) => (event) => {
9
- event.preventDefault();
10
- event.stopPropagation();
11
- callback === null || callback === void 0 ? void 0 : callback(event);
12
- };
13
- exports.default = withPrevent;
9
+ function withEventMute(callback) {
10
+ return (event) => {
11
+ event.preventDefault();
12
+ event.stopPropagation(); // @todo придумать как вынести
13
+ callback === null || callback === void 0 ? void 0 : callback(event);
14
+ };
15
+ }
16
+ exports.withEventMute = withEventMute;
17
+ /**
18
+ * @deprecated Следует использовать именованный экспорт. Экспорт по умолчанию будет удалён в будущем.
19
+ */
20
+ exports.default = withEventMute;
@@ -0,0 +1,26 @@
1
+ import { HTMLAttributes, Ref } from 'react';
2
+ import { WithTestId } from '../types';
3
+ export interface HintViewProps extends HTMLAttributes<HTMLDivElement>, WithTestId {
4
+ /** Ref корневого элемента. */
5
+ hintRef?: Ref<HTMLDivElement>;
6
+ }
7
+ /** Длина стороны квадрата, составленного из двух стрелок (треугольников). */
8
+ export declare const arrowSquareSize: number;
9
+ /**
10
+ * "Хинт" - всплывающая подсказка.
11
+ * @param props Свойства.
12
+ * @return Элемент.
13
+ */
14
+ export declare function HintView({ hintRef, className, children, 'data-testid': testId, ...rest }: HintViewProps): JSX.Element;
15
+ export declare namespace HintView {
16
+ var Arrow: typeof HintArrow;
17
+ }
18
+ /**
19
+ * Стрелка хинта.
20
+ * @param props Свойства.
21
+ * @return Элемент.
22
+ */
23
+ declare function HintArrow({ arrowRef, className, ...rest }: Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
24
+ arrowRef?: Ref<HTMLDivElement>;
25
+ }): JSX.Element;
26
+ export {};
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.HintView = exports.arrowSquareSize = void 0;
18
+ const react_1 = __importDefault(require("react"));
19
+ const bind_1 = __importDefault(require("classnames/bind"));
20
+ const hint_view_module_scss_1 = __importDefault(require("./hint-view.module.scss"));
21
+ const cx = bind_1.default.bind(hint_view_module_scss_1.default);
22
+ /** Длина стороны квадрата, составленного из двух стрелок (треугольников). */
23
+ exports.arrowSquareSize = Math.sqrt(4 * 4 + 4 * 4);
24
+ /**
25
+ * "Хинт" - всплывающая подсказка.
26
+ * @param props Свойства.
27
+ * @return Элемент.
28
+ */
29
+ function HintView(_a) {
30
+ var { hintRef, className, children, 'data-testid': testId = 'hint' } = _a, rest = __rest(_a, ["hintRef", "className", "children", 'data-testid']);
31
+ return (react_1.default.createElement("div", Object.assign({ ref: hintRef, className: cx('root', className), "data-testid": testId }, rest), children));
32
+ }
33
+ exports.HintView = HintView;
34
+ /**
35
+ * Стрелка хинта.
36
+ * @param props Свойства.
37
+ * @return Элемент.
38
+ */
39
+ function HintArrow(_a) {
40
+ var { arrowRef, className } = _a, rest = __rest(_a, ["arrowRef", "className"]);
41
+ return react_1.default.createElement("div", Object.assign({ ref: arrowRef, className: cx('arrow', className) }, rest));
42
+ }
43
+ HintView.Arrow = HintArrow;
@@ -0,0 +1,32 @@
1
+ @use 'sass:math';
2
+ @use '../colors';
3
+
4
+ .root {
5
+ border-radius: 4px;
6
+ background: colors.$basic-gray76;
7
+ padding: 8px;
8
+ max-width: 280px;
9
+ min-width: 36px;
10
+ min-height: 36px;
11
+ display: inline-flex;
12
+ align-items: center;
13
+ color: #fff;
14
+ font-size: 14px;
15
+ line-height: 20px;
16
+ font-weight: 400;
17
+ text-align: center;
18
+ overflow-wrap: break-word;
19
+ }
20
+
21
+ .arrow {
22
+ position: absolute;
23
+ width: 1px * math.sqrt((4 * 4) + (4 * 4));
24
+ height: 1px * math.sqrt((4 * 4) + (4 * 4));
25
+ transform: rotate(45deg);
26
+ background: colors.$basic-gray76;
27
+ top: var(--hint-arrow-top);
28
+ left: var(--hint-arrow-left);
29
+ right: var(--hint-arrow-right);
30
+ bottom: var(--hint-arrow-bottom);
31
+ z-index: -1; // чтобы был скрыт при отсутствии позиционирования
32
+ }
package/hint/hint.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import { Ref } from 'react';
2
+ import { HintViewProps } from './hint-view';
3
+ export interface HintProps extends HintViewProps {
4
+ /** Нужно ли показать хинт. */
5
+ open?: boolean;
6
+ /** Ref элемента "стрелки". */
7
+ arrowRef?: Ref<HTMLDivElement>;
8
+ }
9
+ /**
10
+ * Всплывающий хинт.
11
+ * @param props Свойства.
12
+ * @return Элемент.
13
+ */
14
+ export declare function Hint({ open, ...rest }: HintProps): JSX.Element;
package/hint/hint.js ADDED
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Hint = void 0;
18
+ const react_1 = __importDefault(require("react"));
19
+ const portal_1 = require("../portal");
20
+ const hint_view_1 = require("./hint-view");
21
+ /**
22
+ * Всплывающий хинт.
23
+ * @param props Свойства.
24
+ * @return Элемент.
25
+ */
26
+ function Hint(_a) {
27
+ var { open } = _a, rest = __rest(_a, ["open"]);
28
+ return react_1.default.createElement(portal_1.Portal, null, open && react_1.default.createElement(HintInner, Object.assign({}, rest)));
29
+ }
30
+ exports.Hint = Hint;
31
+ /**
32
+ * Внутренний компонент, необходим из-за использования портала.
33
+ * @param props Свойства.
34
+ * @return Элемент.
35
+ */
36
+ function HintInner(_a) {
37
+ var { arrowRef, children } = _a, rest = __rest(_a, ["arrowRef", "children"]);
38
+ return (react_1.default.createElement(hint_view_1.HintView, Object.assign({}, rest),
39
+ children,
40
+ react_1.default.createElement(hint_view_1.HintView.Arrow, { arrowRef: arrowRef })));
41
+ }
package/hint/index.d.ts CHANGED
@@ -1,8 +1,5 @@
1
- import React from 'react';
2
- declare type Direction = 'top' | 'left' | 'bottom' | 'right';
3
- export interface HintProps extends React.HTMLAttributes<HTMLDivElement> {
4
- /** С какой стороны появляется хинт. */
5
- direction: Direction;
6
- }
7
- export declare const Hint: React.ForwardRefExoticComponent<HintProps & React.RefAttributes<HTMLDivElement | null>>;
8
- export {};
1
+ import { HintView, type HintViewProps } from './hint-view';
2
+ import { Hint, type HintProps } from './hint';
3
+ import { hintFloatingConfig, useHintFloating, useHintOnHover, useHintOnClick, useTempHintState, useHintFloatingStyle, getArrowFloatingStyle } from './utils';
4
+ export type { HintProps, HintViewProps };
5
+ export { Hint, HintView, hintFloatingConfig, useHintFloating, useHintOnHover, useHintOnClick, useTempHintState, useHintFloatingStyle, getArrowFloatingStyle, };
package/hint/index.js CHANGED
@@ -1,50 +1,15 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __rest = (this && this.__rest) || function (s, e) {
26
- var t = {};
27
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
- t[p] = s[p];
29
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
- t[p[i]] = s[p[i]];
33
- }
34
- return t;
35
- };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
2
  Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.Hint = void 0;
41
- const react_1 = __importStar(require("react"));
42
- const shadows_1 = require("../styling/shadows");
43
- const bind_1 = __importDefault(require("classnames/bind"));
44
- const hint_module_scss_1 = __importDefault(require("./hint.module.scss"));
45
- const cx = bind_1.default.bind(hint_module_scss_1.default);
46
- exports.Hint = (0, react_1.forwardRef)((_a, ref) => {
47
- var { children, className, direction } = _a, restProps = __rest(_a, ["children", "className", "direction"]);
48
- return (react_1.default.createElement("div", Object.assign({}, restProps, { ref: ref, className: cx('root', className, direction), "data-testid": 'hint' }),
49
- react_1.default.createElement("div", { className: cx('body', shadows_1.BoxShadow.z4) }, children)));
50
- });
3
+ exports.getArrowFloatingStyle = exports.useHintFloatingStyle = exports.useTempHintState = exports.useHintOnClick = exports.useHintOnHover = exports.useHintFloating = exports.hintFloatingConfig = exports.HintView = exports.Hint = void 0;
4
+ const hint_view_1 = require("./hint-view");
5
+ Object.defineProperty(exports, "HintView", { enumerable: true, get: function () { return hint_view_1.HintView; } });
6
+ const hint_1 = require("./hint");
7
+ Object.defineProperty(exports, "Hint", { enumerable: true, get: function () { return hint_1.Hint; } });
8
+ const utils_1 = require("./utils");
9
+ Object.defineProperty(exports, "hintFloatingConfig", { enumerable: true, get: function () { return utils_1.hintFloatingConfig; } });
10
+ Object.defineProperty(exports, "useHintFloating", { enumerable: true, get: function () { return utils_1.useHintFloating; } });
11
+ Object.defineProperty(exports, "useHintOnHover", { enumerable: true, get: function () { return utils_1.useHintOnHover; } });
12
+ Object.defineProperty(exports, "useHintOnClick", { enumerable: true, get: function () { return utils_1.useHintOnClick; } });
13
+ Object.defineProperty(exports, "useTempHintState", { enumerable: true, get: function () { return utils_1.useTempHintState; } });
14
+ Object.defineProperty(exports, "useHintFloatingStyle", { enumerable: true, get: function () { return utils_1.useHintFloatingStyle; } });
15
+ Object.defineProperty(exports, "getArrowFloatingStyle", { enumerable: true, get: function () { return utils_1.getArrowFloatingStyle; } });
@@ -0,0 +1,61 @@
1
+ import { CSSProperties, Dispatch, MutableRefObject, SetStateAction } from 'react';
2
+ import { ExtendedRefs, ReferenceType, UseFloatingProps, UseFloatingReturn } from '@floating-ui/react';
3
+ interface HintExtendedRefs<RT> extends ExtendedRefs<RT> {
4
+ setArrow: (el: HTMLElement | null) => void;
5
+ }
6
+ interface UseHintFloatingReturn<RT extends ReferenceType = ReferenceType> extends UseFloatingReturn<RT> {
7
+ refs: HintExtendedRefs<RT>;
8
+ }
9
+ /**
10
+ * Возвращает конфигурацию для `useFloating` по дизайн-гайдам.
11
+ * @param options Опции.
12
+ * @return Конфигурация для `useFloating` по дизайн-гайдам.
13
+ */
14
+ export declare function hintFloatingConfig({ arrowRef, }?: {
15
+ arrowRef?: MutableRefObject<HTMLElement | null>;
16
+ }): Partial<UseFloatingProps>;
17
+ /**
18
+ * Расширенная версия `useFloating` для использования с `Hint`.
19
+ * @param props Свойства useFloating.
20
+ * @return Результат useFloating.
21
+ */
22
+ export declare function useHintFloating<RT extends ReferenceType = ReferenceType>(props?: Partial<UseFloatingProps>): UseHintFloatingReturn<RT>;
23
+ /**
24
+ * Возвращает стили для всплывающего хинта с учетом "слоя".
25
+ * @param floating Результат вызова useFloating.
26
+ * @return Стили для элемента с учетом "слоя".
27
+ */
28
+ export declare function useHintFloatingStyle(floating: Pick<UseFloatingReturn, 'strategy' | 'x' | 'y' | 'placement' | 'middlewareData'>): CSSProperties;
29
+ /**
30
+ * Возвращает стили для стрелки между хинтом и триггером.
31
+ * @param floating Результат вызова useFloating.
32
+ * @return Стили для элемента с учетом "слоя".
33
+ */
34
+ export declare function getArrowFloatingStyle({ placement, middlewareData, }: Pick<UseFloatingReturn, 'placement' | 'middlewareData'>): CSSProperties;
35
+ /**
36
+ * Показ всплывающего хинта при наведении.
37
+ * @param floating Результат вызова useFloating.
38
+ * @return Опции для открывающего и всплывающего элемента.
39
+ */
40
+ export declare function useHintOnHover(floating: Pick<UseFloatingReturn, 'context' | 'strategy' | 'placement' | 'x' | 'y' | 'middlewareData'>): {
41
+ getReferenceProps: (userProps?: import("react").HTMLProps<Element> | undefined) => Record<string, unknown>;
42
+ getFloatingProps: (userProps?: import("react").HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
43
+ getItemProps: (userProps?: import("react").HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
44
+ };
45
+ /**
46
+ * Показ всплывающего хинта при клике.
47
+ * @param floating Результат вызова useFloating.
48
+ * @return Опции для открывающего и всплывающего элемента.
49
+ */
50
+ export declare function useHintOnClick(floating: Pick<UseFloatingReturn, 'context' | 'strategy' | 'placement' | 'x' | 'y' | 'middlewareData'>): {
51
+ getReferenceProps: (userProps?: import("react").HTMLProps<Element> | undefined) => Record<string, unknown>;
52
+ getFloatingProps: (userProps?: import("react").HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
53
+ getItemProps: (userProps?: import("react").HTMLProps<HTMLElement> | undefined) => Record<string, unknown>;
54
+ };
55
+ /**
56
+ * Состояние хинта с автоматическим скрытием по таймауту.
57
+ * @param initialState Начальное состояние.
58
+ * @return Результат вызова `useState`.
59
+ */
60
+ export declare function useTempHintState(initialState: boolean): readonly [boolean, Dispatch<SetStateAction<boolean>>];
61
+ export {};
package/hint/utils.js ADDED
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTempHintState = exports.useHintOnClick = exports.useHintOnHover = exports.getArrowFloatingStyle = exports.useHintFloatingStyle = exports.useHintFloating = exports.hintFloatingConfig = void 0;
4
+ const react_1 = require("react");
5
+ const react_2 = require("@floating-ui/react");
6
+ const lodash_1 = require("lodash");
7
+ const layer_1 = require("../helpers/layer");
8
+ const hint_view_1 = require("./hint-view");
9
+ const identity_1 = require("../hooks/identity");
10
+ /**
11
+ * Возвращает конфигурацию для `useFloating` по дизайн-гайдам.
12
+ * @param options Опции.
13
+ * @return Конфигурация для `useFloating` по дизайн-гайдам.
14
+ */
15
+ function hintFloatingConfig({ arrowRef, } = {}) {
16
+ return {
17
+ placement: 'top',
18
+ middleware: [
19
+ (0, react_2.offset)(4 + (arrowRef ? 4 : 0)),
20
+ (0, react_2.flip)({
21
+ padding: 16,
22
+ crossAxis: false,
23
+ fallbackAxisSideDirection: 'start',
24
+ }),
25
+ (0, react_2.shift)({
26
+ padding: 16,
27
+ }),
28
+ arrowRef &&
29
+ (0, react_2.arrow)({
30
+ element: arrowRef,
31
+ padding: 4,
32
+ }),
33
+ ],
34
+ whileElementsMounted: react_2.autoUpdate,
35
+ };
36
+ }
37
+ exports.hintFloatingConfig = hintFloatingConfig;
38
+ /**
39
+ * Расширенная версия `useFloating` для использования с `Hint`.
40
+ * @param props Свойства useFloating.
41
+ * @return Результат useFloating.
42
+ */
43
+ function useHintFloating(props) {
44
+ const [arrowEl, setArrowEl] = (0, react_1.useState)(null);
45
+ const arrowRef = (0, identity_1.useIdentityRef)(arrowEl);
46
+ const floating = (0, react_2.useFloating)(Object.assign(Object.assign({}, hintFloatingConfig(arrowEl ? { arrowRef } : undefined)), props));
47
+ return Object.assign(Object.assign({}, floating), { refs: Object.assign(Object.assign({}, floating.refs), { setArrow: setArrowEl }) });
48
+ }
49
+ exports.useHintFloating = useHintFloating;
50
+ /**
51
+ * Возвращает стили для всплывающего хинта с учетом "слоя".
52
+ * @param floating Результат вызова useFloating.
53
+ * @return Стили для элемента с учетом "слоя".
54
+ */
55
+ function useHintFloatingStyle(floating) {
56
+ var _a, _b;
57
+ const layer = (0, layer_1.useLayer)();
58
+ return Object.assign({ position: floating.strategy, top: (_a = floating.y) !== null && _a !== void 0 ? _a : 0, left: (_b = floating.x) !== null && _b !== void 0 ? _b : 0, zIndex: layer + 2 }, (0, lodash_1.mapKeys)(getArrowFloatingStyle(floating), (value, key) => `--hint-arrow-${key}`));
59
+ }
60
+ exports.useHintFloatingStyle = useHintFloatingStyle;
61
+ /**
62
+ * Возвращает стили для стрелки между хинтом и триггером.
63
+ * @param floating Результат вызова useFloating.
64
+ * @return Стили для элемента с учетом "слоя".
65
+ */
66
+ function getArrowFloatingStyle({ placement, middlewareData, }) {
67
+ const { arrow: arrowData } = middlewareData;
68
+ if (!arrowData) {
69
+ return {};
70
+ }
71
+ const side = placement.split('-')[0];
72
+ // eslint-disable-next-line require-jsdoc
73
+ const maybe = (value) => (value ? `${value}px` : '');
74
+ // eslint-disable-next-line require-jsdoc
75
+ const arrowShift = () => `${-hint_view_1.arrowSquareSize / 2}px`;
76
+ let arrowStyle = {};
77
+ switch (side) {
78
+ case 'top': {
79
+ arrowStyle = {
80
+ left: maybe(arrowData === null || arrowData === void 0 ? void 0 : arrowData.x),
81
+ bottom: arrowShift(),
82
+ };
83
+ break;
84
+ }
85
+ case 'bottom': {
86
+ arrowStyle = {
87
+ left: maybe(arrowData === null || arrowData === void 0 ? void 0 : arrowData.x),
88
+ top: arrowShift(),
89
+ };
90
+ break;
91
+ }
92
+ case 'left': {
93
+ arrowStyle = {
94
+ top: maybe(arrowData === null || arrowData === void 0 ? void 0 : arrowData.y),
95
+ right: arrowShift(),
96
+ };
97
+ break;
98
+ }
99
+ case 'right': {
100
+ arrowStyle = {
101
+ top: maybe(arrowData === null || arrowData === void 0 ? void 0 : arrowData.y),
102
+ left: arrowShift(),
103
+ };
104
+ break;
105
+ }
106
+ }
107
+ return arrowStyle;
108
+ }
109
+ exports.getArrowFloatingStyle = getArrowFloatingStyle;
110
+ /**
111
+ * Показ всплывающего хинта при наведении.
112
+ * @param floating Результат вызова useFloating.
113
+ * @return Опции для открывающего и всплывающего элемента.
114
+ */
115
+ function useHintOnHover(floating) {
116
+ const style = useHintFloatingStyle(floating);
117
+ const hover = (0, react_2.useHover)(floating.context, { delay: { close: 120 } });
118
+ return (0, react_2.useInteractions)([hover, { floating: { style } }]);
119
+ }
120
+ exports.useHintOnHover = useHintOnHover;
121
+ /**
122
+ * Показ всплывающего хинта при клике.
123
+ * @param floating Результат вызова useFloating.
124
+ * @return Опции для открывающего и всплывающего элемента.
125
+ */
126
+ function useHintOnClick(floating) {
127
+ const style = useHintFloatingStyle(floating);
128
+ const click = (0, react_2.useClick)(floating.context);
129
+ const dismiss = (0, react_2.useDismiss)(floating.context);
130
+ return (0, react_2.useInteractions)([click, dismiss, { floating: { style } }]);
131
+ }
132
+ exports.useHintOnClick = useHintOnClick;
133
+ /**
134
+ * Состояние хинта с автоматическим скрытием по таймауту.
135
+ * @param initialState Начальное состояние.
136
+ * @return Результат вызова `useState`.
137
+ */
138
+ function useTempHintState(initialState) {
139
+ const [open, setOpen] = (0, react_1.useState)(initialState);
140
+ const timerRef = (0, react_1.useRef)(null);
141
+ const updateTimer = (0, react_1.useCallback)((value) => {
142
+ // сбрасываем предыдущий таймер если был
143
+ if (timerRef.current !== null) {
144
+ window.clearTimeout(timerRef.current);
145
+ }
146
+ // запускаем новый таймер если надо
147
+ if (value) {
148
+ timerRef.current = window.setTimeout(() => setOpen(false), 2000);
149
+ }
150
+ }, []);
151
+ (0, react_1.useEffect)(() => {
152
+ updateTimer(open);
153
+ }, []);
154
+ const toggle = (0, react_1.useCallback)(next => {
155
+ const state = typeof next === 'function' ? next(open) : next;
156
+ updateTimer(state);
157
+ setOpen(state);
158
+ }, [open, setOpen, updateTimer]);
159
+ return [open, toggle];
160
+ }
161
+ exports.useTempHintState = useTempHintState;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ type Direction = 'top' | 'left' | 'bottom' | 'right';
3
+ export interface HintProps extends React.HTMLAttributes<HTMLDivElement> {
4
+ /** С какой стороны появляется хинт. */
5
+ direction: Direction;
6
+ }
7
+ /**
8
+ * @deprecated Теперь нужно использовать `hint`.
9
+ */
10
+ export declare const Hint: React.ForwardRefExoticComponent<HintProps & React.RefAttributes<HTMLDivElement | null>>;
11
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.Hint = void 0;
41
+ const react_1 = __importStar(require("react"));
42
+ const shadows_1 = require("../styling/shadows");
43
+ const bind_1 = __importDefault(require("classnames/bind"));
44
+ const hint_module_scss_1 = __importDefault(require("./hint.module.scss"));
45
+ const cx = bind_1.default.bind(hint_module_scss_1.default);
46
+ /**
47
+ * @deprecated Теперь нужно использовать `hint`.
48
+ */
49
+ exports.Hint = (0, react_1.forwardRef)((_a, ref) => {
50
+ var { children, className, direction } = _a, restProps = __rest(_a, ["children", "className", "direction"]);
51
+ return (react_1.default.createElement("div", Object.assign({}, restProps, { ref: ref, className: cx('root', className, direction), "data-testid": 'hint' }),
52
+ react_1.default.createElement("div", { className: cx('body', shadows_1.BoxShadow.z4) }, children)));
53
+ });
@@ -1,13 +1,16 @@
1
- import React from 'react';
1
+ import { ReactNode } from 'react';
2
2
  /**
3
- * Провайдер, необходимый для использования useBreakpoint.
3
+ * Провайдер, предоставляющий контекст для использования хуком useBreakpoint.
4
+ * Не является обязательным, используется в целях оптимизации.
4
5
  * @param props Свойства.
5
6
  * @return Элемент.
6
7
  */
7
- export declare const BreakpointProvider: React.FC;
8
+ export declare function BreakpointProvider({ children }: {
9
+ children: ReactNode;
10
+ }): JSX.Element;
8
11
  /**
9
12
  * Хук обработки медиа-запроса на основе breakpoint'а дизайн-системы.
10
13
  * @param query Запрос, например "xs+".
11
14
  * @return Соответствует ли ширина экрана заданному запросу.
12
15
  */
13
- export declare const useBreakpoint: (query: string) => boolean;
16
+ export declare function useBreakpoint(query: string): boolean;