@sima-land/ui-nucleons 45.0.0-alpha.5 → 45.0.0-alpha.7

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 (441) hide show
  1. package/_internal/custom-scrollbar/index.js +3 -2
  2. package/_internal/custom-scrollbar/index.js.map +1 -0
  3. package/_internal/dropdown-loading/index.js +2 -1
  4. package/_internal/dropdown-loading/index.js.map +1 -0
  5. package/_internal/page-scroll-lock/adapters/body-scroll-lock.js +5 -1
  6. package/_internal/page-scroll-lock/adapters/body-scroll-lock.js.map +1 -0
  7. package/_internal/page-scroll-lock/adapters/ui-nucleons.js +1 -0
  8. package/_internal/page-scroll-lock/adapters/ui-nucleons.js.map +1 -0
  9. package/_internal/page-scroll-lock/context.js +2 -1
  10. package/_internal/page-scroll-lock/context.js.map +1 -0
  11. package/_internal/page-scroll-lock/hook.js +1 -0
  12. package/_internal/page-scroll-lock/hook.js.map +1 -0
  13. package/_internal/page-scroll-lock/index.js +1 -0
  14. package/_internal/page-scroll-lock/index.js.map +1 -0
  15. package/_internal/page-scroll-lock/types.js +1 -0
  16. package/_internal/page-scroll-lock/types.js.map +1 -0
  17. package/_internal/utils/dropdown.js +1 -0
  18. package/_internal/utils/dropdown.js.map +1 -0
  19. package/alert/index.js +3 -2
  20. package/alert/index.js.map +1 -0
  21. package/arrow-button/index.js +3 -14
  22. package/arrow-button/index.js.map +1 -0
  23. package/autocomplete/autocomplete.js +28 -36
  24. package/autocomplete/autocomplete.js.map +1 -0
  25. package/autocomplete/index.js +1 -0
  26. package/autocomplete/index.js.map +1 -0
  27. package/autocomplete/types.js +1 -0
  28. package/autocomplete/types.js.map +1 -0
  29. package/autocomplete-deprecated/index.js +5 -16
  30. package/autocomplete-deprecated/index.js.map +1 -0
  31. package/avatar/avatar.d.ts +8 -0
  32. package/avatar/avatar.js +26 -0
  33. package/avatar/avatar.js.map +1 -0
  34. package/avatar/avatar.module.scss +13 -36
  35. package/avatar/index.d.ts +3 -30
  36. package/avatar/index.js +9 -37
  37. package/avatar/index.js.map +1 -0
  38. package/avatar/types.d.ts +18 -0
  39. package/avatar/types.js +3 -0
  40. package/avatar/types.js.map +1 -0
  41. package/avatar/utils.d.ts +28 -4
  42. package/avatar/utils.js +77 -13
  43. package/avatar/utils.js.map +1 -0
  44. package/avatar/utils.module.scss +9 -0
  45. package/base-input/base-input.js +9 -20
  46. package/base-input/base-input.js.map +1 -0
  47. package/base-input/index.js +1 -0
  48. package/base-input/index.js.map +1 -0
  49. package/base-input/types.js +1 -0
  50. package/base-input/types.js.map +1 -0
  51. package/base-input/utils.js +2 -1
  52. package/base-input/utils.js.map +1 -0
  53. package/base-input-deprecated/index.js +5 -16
  54. package/base-input-deprecated/index.js.map +1 -0
  55. package/bordered-layout/index.js +2 -1
  56. package/bordered-layout/index.js.map +1 -0
  57. package/bottom-bar/bottom-bar.js +3 -14
  58. package/bottom-bar/bottom-bar.js.map +1 -0
  59. package/bottom-bar/index.js +1 -0
  60. package/bottom-bar/index.js.map +1 -0
  61. package/bottom-bar/types.js +1 -0
  62. package/bottom-bar/types.js.map +1 -0
  63. package/box/index.js +1 -0
  64. package/box/index.js.map +1 -0
  65. package/button/button-util.scss +46 -0
  66. package/button/button.module.scss +17 -26
  67. package/button/index.d.ts +12 -2
  68. package/button/index.js +6 -17
  69. package/button/index.js.map +1 -0
  70. package/card/index.js +3 -14
  71. package/card/index.js.map +1 -0
  72. package/card/slots.js +7 -19
  73. package/card/slots.js.map +1 -0
  74. package/card/utils.js +1 -0
  75. package/card/utils.js.map +1 -0
  76. package/carousel/draggable.js +4 -3
  77. package/carousel/draggable.js.map +1 -0
  78. package/carousel/helpers/draggable-event.js +1 -0
  79. package/carousel/helpers/draggable-event.js.map +1 -0
  80. package/carousel/index.js +9 -4
  81. package/carousel/index.js.map +1 -0
  82. package/checkbox/index.js +4 -17
  83. package/checkbox/index.js.map +1 -0
  84. package/checkbox-field/index.d.ts +1 -0
  85. package/checkbox-field/index.js +6 -17
  86. package/checkbox-field/index.js.map +1 -0
  87. package/chips/index.js +2 -15
  88. package/chips/index.js.map +1 -0
  89. package/chips/item.js +2 -1
  90. package/chips/item.js.map +1 -0
  91. package/clean-buttons/index.d.ts +1 -0
  92. package/clean-buttons/index.js +5 -16
  93. package/clean-buttons/index.js.map +1 -0
  94. package/clean-buttons/types.js +1 -0
  95. package/clean-buttons/types.js.map +1 -0
  96. package/clean-buttons/utils.js +1 -0
  97. package/clean-buttons/utils.js.map +1 -0
  98. package/colors/index.d.ts +6 -4
  99. package/colors/index.js +7 -3
  100. package/colors/index.js.map +1 -0
  101. package/colors.scss +2 -0
  102. package/context/viewport.js +1 -0
  103. package/context/viewport.js.map +1 -0
  104. package/dot-nav/index.js +3 -2
  105. package/dot-nav/index.js.map +1 -0
  106. package/dropdown/index.js +3 -14
  107. package/dropdown/index.js.map +1 -0
  108. package/dropdown/utils.js +1 -0
  109. package/dropdown/utils.js.map +1 -0
  110. package/dropdown-item/index.js +3 -14
  111. package/dropdown-item/index.js.map +1 -0
  112. package/dropdown-item/types.js +1 -0
  113. package/dropdown-item/types.js.map +1 -0
  114. package/dropdown-item/utils.js +1 -0
  115. package/dropdown-item/utils.js.map +1 -0
  116. package/expandable/expandable-group.module.scss +1 -5
  117. package/expandable/index.d.ts +4 -34
  118. package/expandable/index.js +78 -24
  119. package/expandable/index.js.map +1 -0
  120. package/expandable/types.d.ts +39 -0
  121. package/expandable/types.js +3 -0
  122. package/expandable/types.js.map +1 -0
  123. package/expandable/utils.d.ts +22 -23
  124. package/expandable/utils.js +66 -80
  125. package/expandable/utils.js.map +1 -0
  126. package/field-block/index.js +2 -1
  127. package/field-block/index.js.map +1 -0
  128. package/field-grid/index.d.ts +6 -0
  129. package/field-grid/index.js +10 -4
  130. package/field-grid/index.js.map +1 -0
  131. package/file-icon/index.js +3 -14
  132. package/file-icon/index.js.map +1 -0
  133. package/group-overflow/index.js +6 -17
  134. package/group-overflow/index.js.map +1 -0
  135. package/group-overflow/utils.js +1 -0
  136. package/group-overflow/utils.js.map +1 -0
  137. package/helpers/bounds-of.js +1 -0
  138. package/helpers/bounds-of.js.map +1 -0
  139. package/helpers/center-of.js +1 -0
  140. package/helpers/center-of.js.map +1 -0
  141. package/helpers/create-container.js +1 -0
  142. package/helpers/create-container.js.map +1 -0
  143. package/helpers/define-slots.js +1 -0
  144. package/helpers/define-slots.js.map +1 -0
  145. package/helpers/events.js +1 -0
  146. package/helpers/events.js.map +1 -0
  147. package/helpers/find-child-element.js +1 -0
  148. package/helpers/find-child-element.js.map +1 -0
  149. package/helpers/find-offset-parent.js +1 -0
  150. package/helpers/find-offset-parent.js.map +1 -0
  151. package/helpers/find-sibling-index.js +1 -0
  152. package/helpers/find-sibling-index.js.map +1 -0
  153. package/helpers/fit-element-height.js +1 -0
  154. package/helpers/fit-element-height.js.map +1 -0
  155. package/helpers/format-date.js +1 -0
  156. package/helpers/format-date.js.map +1 -0
  157. package/helpers/format-number.js +1 -0
  158. package/helpers/format-number.js.map +1 -0
  159. package/helpers/get-date-interval-data.js +1 -0
  160. package/helpers/get-date-interval-data.js.map +1 -0
  161. package/helpers/get-declination.js +1 -0
  162. package/helpers/get-declination.js.map +1 -0
  163. package/helpers/get-fraction-depth.js +1 -0
  164. package/helpers/get-fraction-depth.js.map +1 -0
  165. package/helpers/get-no-index.js +1 -0
  166. package/helpers/get-no-index.js.map +1 -0
  167. package/helpers/get-relative-pos.js +1 -0
  168. package/helpers/get-relative-pos.js.map +1 -0
  169. package/helpers/get-scroll-parent.js +1 -0
  170. package/helpers/get-scroll-parent.js.map +1 -0
  171. package/helpers/is-browser.js +1 -0
  172. package/helpers/is-browser.js.map +1 -0
  173. package/helpers/is-fully-scrolled.js +1 -0
  174. package/helpers/is-fully-scrolled.js.map +1 -0
  175. package/helpers/is-touch-device.js +1 -0
  176. package/helpers/is-touch-device.js.map +1 -0
  177. package/helpers/layer.js +1 -0
  178. package/helpers/layer.js.map +1 -0
  179. package/helpers/max-index-of.js +1 -0
  180. package/helpers/max-index-of.js.map +1 -0
  181. package/helpers/media-query-list.js +1 -0
  182. package/helpers/media-query-list.js.map +1 -0
  183. package/helpers/on.js +1 -0
  184. package/helpers/on.js.map +1 -0
  185. package/helpers/point.js +1 -0
  186. package/helpers/point.js.map +1 -0
  187. package/helpers/rename.js +1 -0
  188. package/helpers/rename.js.map +1 -0
  189. package/helpers/scroll-to-child.js +1 -0
  190. package/helpers/scroll-to-child.js.map +1 -0
  191. package/helpers/styles.js +1 -0
  192. package/helpers/styles.js.map +1 -0
  193. package/helpers/with-prevent.js +1 -0
  194. package/helpers/with-prevent.js.map +1 -0
  195. package/hint/hint-view.js +5 -17
  196. package/hint/hint-view.js.map +1 -0
  197. package/hint/hint.js +5 -17
  198. package/hint/hint.js.map +1 -0
  199. package/hint/index.js +1 -0
  200. package/hint/index.js.map +1 -0
  201. package/hint/utils.js +23 -4
  202. package/hint/utils.js.map +1 -0
  203. package/hint-deprecated/index.js +2 -15
  204. package/hint-deprecated/index.js.map +1 -0
  205. package/hooks/breakpoint/index.js +2 -1
  206. package/hooks/breakpoint/index.js.map +1 -0
  207. package/hooks/breakpoint/types.js +1 -0
  208. package/hooks/breakpoint/types.js.map +1 -0
  209. package/hooks/breakpoint/utils.js +1 -0
  210. package/hooks/breakpoint/utils.js.map +1 -0
  211. package/hooks/identity.js +1 -0
  212. package/hooks/identity.js.map +1 -0
  213. package/hooks/index.js +1 -0
  214. package/hooks/index.js.map +1 -0
  215. package/hooks/intersection/index.js +1 -0
  216. package/hooks/intersection/index.js.map +1 -0
  217. package/hooks/intersection/test-utils.js +6 -2
  218. package/hooks/intersection/test-utils.js.map +1 -0
  219. package/hooks/keydown.js +1 -0
  220. package/hooks/keydown.js.map +1 -0
  221. package/hooks/media.js +1 -0
  222. package/hooks/media.js.map +1 -0
  223. package/hooks/styles.js +1 -0
  224. package/hooks/styles.js.map +1 -0
  225. package/info-text/index.js +4 -3
  226. package/info-text/index.js.map +1 -0
  227. package/input/index.js +29 -31
  228. package/input/index.js.map +1 -0
  229. package/input/utils.js +1 -0
  230. package/input/utils.js.map +1 -0
  231. package/layout/index.js +1 -0
  232. package/layout/index.js.map +1 -0
  233. package/layout/layout.js +3 -14
  234. package/layout/layout.js.map +1 -0
  235. package/layout/legacy.js +2 -15
  236. package/layout/legacy.js.map +1 -0
  237. package/layout/types.js +1 -0
  238. package/layout/types.js.map +1 -0
  239. package/link/index.js +3 -14
  240. package/link/index.js.map +1 -0
  241. package/loading-overlay/index.js +2 -1
  242. package/loading-overlay/index.js.map +1 -0
  243. package/masked-field/index.js +9 -16
  244. package/masked-field/index.js.map +1 -0
  245. package/masked-input/hook.js +1 -0
  246. package/masked-input/hook.js.map +1 -0
  247. package/masked-input/index.js +1 -0
  248. package/masked-input/index.js.map +1 -0
  249. package/masked-input/masked-input.js +9 -17
  250. package/masked-input/masked-input.js.map +1 -0
  251. package/masked-input/types.js +1 -0
  252. package/masked-input/types.js.map +1 -0
  253. package/masked-input/utils.js +1 -0
  254. package/masked-input/utils.js.map +1 -0
  255. package/modal/index.js +3 -2
  256. package/modal/index.js.map +1 -0
  257. package/modal/slots.js +7 -19
  258. package/modal/slots.js.map +1 -0
  259. package/modal/utils.js +1 -0
  260. package/modal/utils.js.map +1 -0
  261. package/modal-overlay/index.js +6 -14
  262. package/modal-overlay/index.js.map +1 -0
  263. package/modal-overlay/utils.js +1 -0
  264. package/modal-overlay/utils.js.map +1 -0
  265. package/no-index/index.js +1 -0
  266. package/no-index/index.js.map +1 -0
  267. package/no-index-mark/index.js +1 -0
  268. package/no-index-mark/index.js.map +1 -0
  269. package/package.json +2 -4
  270. package/pagination/index.d.ts +1 -1
  271. package/pagination/index.js +3 -1
  272. package/pagination/index.js.map +1 -0
  273. package/pagination/pagination-item.js +3 -14
  274. package/pagination/pagination-item.js.map +1 -0
  275. package/pagination/pagination.d.ts +1 -1
  276. package/pagination/pagination.js +40 -20
  277. package/pagination/pagination.js.map +1 -0
  278. package/pagination/pagination.module.scss +5 -4
  279. package/pagination/types.js +1 -0
  280. package/pagination/types.js.map +1 -0
  281. package/pagination/utils.d.ts +12 -0
  282. package/pagination/utils.js +16 -1
  283. package/pagination/utils.js.map +1 -0
  284. package/pagination-deprecated/base-pagination.js +4 -17
  285. package/pagination-deprecated/base-pagination.js.map +1 -0
  286. package/pagination-deprecated/index.js +1 -0
  287. package/pagination-deprecated/index.js.map +1 -0
  288. package/pagination-deprecated/page-button.js +2 -15
  289. package/pagination-deprecated/page-button.js.map +1 -0
  290. package/pagination-deprecated/utils.js +1 -0
  291. package/pagination-deprecated/utils.js.map +1 -0
  292. package/panel/index.js +2 -1
  293. package/panel/index.js.map +1 -0
  294. package/phone-input/index.js +1 -0
  295. package/phone-input/index.js.map +1 -0
  296. package/phone-input/phone-input.js +19 -24
  297. package/phone-input/phone-input.js.map +1 -0
  298. package/phone-input/presets.js +2 -1
  299. package/phone-input/presets.js.map +1 -0
  300. package/phone-input/types.js +1 -0
  301. package/phone-input/types.js.map +1 -0
  302. package/phone-input/utils.js +1 -0
  303. package/phone-input/utils.js.map +1 -0
  304. package/phone-input-deprecated/index.js +20 -22
  305. package/phone-input-deprecated/index.js.map +1 -0
  306. package/plate/index.js +3 -14
  307. package/plate/index.js.map +1 -0
  308. package/popup/index.js +1 -0
  309. package/popup/index.js.map +1 -0
  310. package/popup/popup-view.js +3 -14
  311. package/popup/popup-view.js.map +1 -0
  312. package/popup/popup.js +9 -18
  313. package/popup/popup.js.map +1 -0
  314. package/popup/utils.js +1 -0
  315. package/popup/utils.js.map +1 -0
  316. package/portal/index.js +1 -0
  317. package/portal/index.js.map +1 -0
  318. package/price/index.js +2 -1
  319. package/price/index.js.map +1 -0
  320. package/price/utils.js +1 -0
  321. package/price/utils.js.map +1 -0
  322. package/radio-button/index.js +3 -14
  323. package/radio-button/index.js.map +1 -0
  324. package/range/index.js +3 -2
  325. package/range/index.js.map +1 -0
  326. package/rating/index.js +3 -16
  327. package/rating/index.js.map +1 -0
  328. package/rating/types.js +1 -0
  329. package/rating/types.js.map +1 -0
  330. package/rating/utils.js +1 -0
  331. package/rating/utils.js.map +1 -0
  332. package/screen/index.js +4 -3
  333. package/screen/index.js.map +1 -0
  334. package/screen/slots.js +26 -35
  335. package/screen/slots.js.map +1 -0
  336. package/screen/utils.js +1 -0
  337. package/screen/utils.js.map +1 -0
  338. package/select/index.js +1 -0
  339. package/select/index.js.map +1 -0
  340. package/select/parts/block.js +15 -5
  341. package/select/parts/block.js.map +1 -0
  342. package/select/parts/button.js +4 -15
  343. package/select/parts/button.js.map +1 -0
  344. package/select/parts/menu.js +3 -14
  345. package/select/parts/menu.js.map +1 -0
  346. package/select/select.js +25 -20
  347. package/select/select.js.map +1 -0
  348. package/select/types.js +1 -0
  349. package/select/types.js.map +1 -0
  350. package/select/utils.js +1 -0
  351. package/select/utils.js.map +1 -0
  352. package/select-deprecated/index.js +6 -17
  353. package/select-deprecated/index.js.map +1 -0
  354. package/side-page/index.js +10 -17
  355. package/side-page/index.js.map +1 -0
  356. package/side-page/slots.js +5 -17
  357. package/side-page/slots.js.map +1 -0
  358. package/spinner/index.js +3 -2
  359. package/spinner/index.js.map +1 -0
  360. package/stepper/index.js +5 -16
  361. package/stepper/index.js.map +1 -0
  362. package/stroked-svg/index.js +2 -15
  363. package/stroked-svg/index.js.map +1 -0
  364. package/styling/borders.js +1 -0
  365. package/styling/borders.js.map +1 -0
  366. package/styling/colors.d.ts +5 -5
  367. package/styling/colors.js +1 -0
  368. package/styling/colors.js.map +1 -0
  369. package/styling/fonts.js +1 -0
  370. package/styling/fonts.js.map +1 -0
  371. package/styling/shadows.js +1 -0
  372. package/styling/shadows.js.map +1 -0
  373. package/styling/shapes.js +1 -0
  374. package/styling/shapes.js.map +1 -0
  375. package/styling/sizes.js +1 -0
  376. package/styling/sizes.js.map +1 -0
  377. package/styling/utils.js +1 -0
  378. package/styling/utils.js.map +1 -0
  379. package/super-ellipse-clip-path/index.js +2 -1
  380. package/super-ellipse-clip-path/index.js.map +1 -0
  381. package/switcher-row/index.js +3 -2
  382. package/switcher-row/index.js.map +1 -0
  383. package/tabs/index.js +3 -2
  384. package/tabs/index.js.map +1 -0
  385. package/text/index.js +1 -0
  386. package/text/index.js.map +1 -0
  387. package/text-button/index.js +4 -15
  388. package/text-button/index.js.map +1 -0
  389. package/text-field/index.js +4 -3
  390. package/text-field/index.js.map +1 -0
  391. package/textarea/index.js +22 -24
  392. package/textarea/index.js.map +1 -0
  393. package/timer/index.js +1 -0
  394. package/timer/index.js.map +1 -0
  395. package/timer/types.js +1 -0
  396. package/timer/types.js.map +1 -0
  397. package/timer/utils.js +1 -0
  398. package/timer/utils.js.map +1 -0
  399. package/toggle/index.js +4 -17
  400. package/toggle/index.js.map +1 -0
  401. package/tooltip/index.js +2 -1
  402. package/tooltip/index.js.map +1 -0
  403. package/top-bar/index.js +1 -0
  404. package/top-bar/index.js.map +1 -0
  405. package/top-bar/top-bar.js +9 -16
  406. package/top-bar/top-bar.js.map +1 -0
  407. package/top-bar/types.js +1 -0
  408. package/top-bar/types.js.map +1 -0
  409. package/top-bar/utils.js +18 -13
  410. package/top-bar/utils.js.map +1 -0
  411. package/touch-slider/index.js +2 -1
  412. package/touch-slider/index.js.map +1 -0
  413. package/types.js +1 -0
  414. package/types.js.map +1 -0
  415. package/unknown-content/index.js +2 -1
  416. package/unknown-content/index.js.map +1 -0
  417. package/unknown-content/utils.js +1 -0
  418. package/unknown-content/utils.js.map +1 -0
  419. package/upload-area/index.js +1 -0
  420. package/upload-area/index.js.map +1 -0
  421. package/upload-area/types.js +1 -0
  422. package/upload-area/types.js.map +1 -0
  423. package/upload-area/upload-area.js +4 -3
  424. package/upload-area/upload-area.js.map +1 -0
  425. package/upload-area/utils.js +1 -0
  426. package/upload-area/utils.js.map +1 -0
  427. package/with-hint/index.js +1 -0
  428. package/with-hint/index.js.map +1 -0
  429. package/with-hint/positioning-hint.js +1 -0
  430. package/with-hint/positioning-hint.js.map +1 -0
  431. package/with-hint/utils.js +1 -0
  432. package/with-hint/utils.js.map +1 -0
  433. package/with-tooltip/index.js +3 -2
  434. package/with-tooltip/index.js.map +1 -0
  435. package/with-tooltip/positioning-tooltip.js +3 -2
  436. package/with-tooltip/positioning-tooltip.js.map +1 -0
  437. package/with-tooltip/utils.js +1 -0
  438. package/with-tooltip/utils.js.map +1 -0
  439. package/avatar/user.d.ts +0 -10
  440. package/avatar/user.js +0 -40
  441. package/readme.md +0 -120
package/colors/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
  // GENERATED FILE - DO NOT CHANGE IT MANUALLY
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.COLORS = void 0;
5
- const collection = {
4
+ exports.COLORS = exports.COLOR = void 0;
5
+ /** Цвета дизайн-системы. */
6
+ exports.COLOR = {
6
7
  // basic
7
8
  'basic-blue': '#1f84db',
8
9
  'basic-gray87': '#212121',
@@ -20,6 +21,7 @@ const collection = {
20
21
  'additional-deep-red': '#d50000',
21
22
  'additional-red': '#fb3a2f',
22
23
  'additional-light-red': '#feebea',
24
+ 'additional-dark-teal': '#089176',
23
25
  'additional-teal': '#09ab8b',
24
26
  'additional-green': '#00c853',
25
27
  'additional-light-green': '#64dd17',
@@ -41,5 +43,7 @@ const collection = {
41
43
  'additional-blue-gray': '#607d8b',
42
44
  'additional-deep-blue': '#00599d',
43
45
  'additional-dark-blue': '#002b41',
46
+ 'additional-unlit-blue': '#1b75c2',
44
47
  };
45
- exports.COLORS = new Map(Object.entries(collection));
48
+ exports.COLORS = new Map(Object.entries(exports.COLOR));
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/colors/index.ts"],"names":[],"mappings":";AAAA,6CAA6C;;;AAE7C,4BAA4B;AACf,QAAA,KAAK,GAAG;IACnB,QAAQ;IACR,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,cAAc,EAAE,SAAS;IACzB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,SAAS;IACxB,aAAa,EAAE,MAAM;IAErB,aAAa;IACb,qBAAqB,EAAE,SAAS;IAChC,gBAAgB,EAAE,SAAS;IAC3B,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,iBAAiB,EAAE,SAAS;IAC5B,kBAAkB,EAAE,SAAS;IAC7B,wBAAwB,EAAE,SAAS;IACnC,iBAAiB,EAAE,SAAS;IAC5B,wBAAwB,EAAE,SAAS;IACnC,iBAAiB,EAAE,SAAS;IAC5B,mBAAmB,EAAE,SAAS;IAC9B,mBAAmB,EAAE,SAAS;IAC9B,wBAAwB,EAAE,SAAS;IACnC,0BAA0B,EAAE,SAAS;IACrC,uBAAuB,EAAE,SAAS;IAClC,iBAAiB,EAAE,SAAS;IAC5B,gBAAgB,EAAE,SAAS;IAC3B,wBAAwB,EAAE,SAAS;IACnC,kBAAkB,EAAE,SAAS;IAC7B,mBAAmB,EAAE,SAAS;IAC9B,iBAAiB,EAAE,SAAS;IAC5B,kBAAkB,EAAE,SAAS;IAC7B,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,sBAAsB,EAAE,SAAS;IACjC,uBAAuB,EAAE,SAAS;CAC1B,CAAC;AAGE,QAAA,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,aAAK,CAAC,CAAuB,CAAC"}
package/colors.scss CHANGED
@@ -18,6 +18,7 @@ $basic-white: #fff;
18
18
  $additional-deep-red: #d50000;
19
19
  $additional-red: #fb3a2f;
20
20
  $additional-light-red: #feebea;
21
+ $additional-dark-teal: #089176;
21
22
  $additional-teal: #09ab8b;
22
23
  $additional-green: #00c853;
23
24
  $additional-light-green: #64dd17;
@@ -39,3 +40,4 @@ $additional-brown: #795548;
39
40
  $additional-blue-gray: #607d8b;
40
41
  $additional-deep-blue: #00599d;
41
42
  $additional-dark-blue: #002b41;
43
+ $additional-unlit-blue: #1b75c2;
@@ -7,3 +7,4 @@ const react_1 = require("react");
7
7
  * внутри компонентов формирующих свою область видимости (например Modal).
8
8
  */
9
9
  exports.ViewportContext = (0, react_1.createContext)((0, react_1.createRef)());
10
+ //# sourceMappingURL=viewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../src/context/viewport.ts"],"names":[],"mappings":";;;AAAA,iCAA4D;AAE5D;;;GAGG;AACU,QAAA,eAAe,GAAG,IAAA,qBAAa,EAAyB,IAAA,iBAAS,GAAE,CAAC,CAAC"}
package/dot-nav/index.js CHANGED
@@ -23,12 +23,12 @@ function DotNav({ size = 's', current = 0, total = 1, onSelect }) {
23
23
  const totalWidth = itemSize * total + itemGutter * (total - 1);
24
24
  const shift = useShift(current, total);
25
25
  const correction = withShift ? itemSize + itemGutter : (maxWidth - totalWidth) / 2;
26
- return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: cx('root', `size-${size}`), style: { width: maxWidth, height: itemSize } }, { children: (0, lodash_1.times)(total).map(index => {
26
+ return ((0, jsx_runtime_1.jsx)("div", { className: cx('root', `size-${size}`), style: { width: maxWidth, height: itemSize }, children: (0, lodash_1.times)(total).map(index => {
27
27
  const position = index - shift + 1;
28
28
  return ((0, jsx_runtime_1.jsx)("div", { style: {
29
29
  left: `${correction + (index - shift) * (itemSize + itemGutter)}px`,
30
30
  }, onClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(index), className: cx('item', index === current && 'active', withShift && (position <= 0 || position >= 4) && 'distant') }, index));
31
- }) })));
31
+ }) }));
32
32
  }
33
33
  exports.DotNav = DotNav;
34
34
  /**
@@ -58,3 +58,4 @@ function useShift(current, total) {
58
58
  prevCurrentRef.current = current;
59
59
  return shiftRef.current;
60
60
  }
61
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dot-nav/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAA+B;AAC/B,mCAA+B;AAC/B,2DAAyC;AACzC,gFAA2C;AAkB3C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,6BAAM,CAAC,CAAC;AAEnC;;;;GAIG;AACH,SAAgB,MAAM,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAe;IAClF,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;IAE5B,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,QAAQ,GAAG,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,UAAU,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAE/D,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAEnF,OAAO,CACL,gCAAK,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YACrF,IAAA,cAAK,EAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;YAEnC,OAAO,CACL,gCAEE,KAAK,EAAE;oBACL,IAAI,EAAE,GAAG,UAAU,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,IAAI;iBACpE,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,CAAC,EAChC,SAAS,EAAE,EAAE,CACX,MAAM,EACN,KAAK,KAAK,OAAO,IAAI,QAAQ,EAC7B,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,SAAS,CAC3D,IATI,KAAK,CAUV,CACH,CAAC;QACJ,CAAC,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAjCD,wBAiCC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAa;IAC9C,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,cAAc,GAAG,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC9C,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;QAC3C,MAAM,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC;QAEtD,IAAI,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;QAEhC,IAAI,UAAU,GAAG,CAAC,EAAE;YAClB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC;YAChF,QAAQ,IAAI,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;SAChD;aAAM,IAAI,UAAU,GAAG,CAAC,EAAE;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,OAAO,GAAG,WAAW,CAAC;YAChF,QAAQ,IAAI,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;SAChD;QAED,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;KAC7B;IAED,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC;IAEjC,OAAO,QAAQ,CAAC,OAAO,CAAC;AAC1B,CAAC"}
package/dropdown/index.js CHANGED
@@ -1,15 +1,4 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
@@ -26,7 +15,7 @@ const cx = bind_1.default.bind(dropdown_module_scss_1.default);
26
15
  /**
27
16
  * Компонент выпадающего блока с контентом, например списком.
28
17
  */
29
- exports.Dropdown = (0, react_1.forwardRef)(function Dropdown(_a, ref) {
30
- var { className, children, 'data-testid': testId = 'dropdown', customScrollbarProps } = _a, restProps = __rest(_a, ["className", "children", 'data-testid', "customScrollbarProps"]);
31
- return ((0, jsx_runtime_1.jsx)("div", Object.assign({ ref: ref, className: cx('root', className, shadows_1.BoxShadow.z4, shapes_1.MediumRounds.all) }, restProps, { "data-testid": testId }, { children: (0, jsx_runtime_1.jsx)(custom_scrollbar_1.CustomScrollbar, Object.assign({}, customScrollbarProps, { className: cx('inner'), overflow: { x: 'h', y: 's' } }, { children: children })) })));
18
+ exports.Dropdown = (0, react_1.forwardRef)(function Dropdown({ className, children, 'data-testid': testId = 'dropdown', customScrollbarProps, ...restProps }, ref) {
19
+ return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: cx('root', className, shadows_1.BoxShadow.z4, shapes_1.MediumRounds.all), ...restProps, "data-testid": testId, children: (0, jsx_runtime_1.jsx)(custom_scrollbar_1.CustomScrollbar, { ...customScrollbarProps, className: cx('inner'), overflow: { x: 'h', y: 's' }, children: children }) }));
32
20
  });
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dropdown/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAAmC;AACnC,gDAA+C;AAC/C,8CAAiD;AACjD,oEAAsF;AACtF,2DAAyC;AACzC,kFAA4C;AAiB5C,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,8BAAM,CAAC,CAAC;AAEnC;;GAEG;AACU,QAAA,QAAQ,GAAG,IAAA,kBAAU,EAAuC,SAAS,QAAQ,CACxF,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,UAAU,EAAE,oBAAoB,EAAE,GAAG,SAAS,EAAE,EAC/F,GAAG;IAEH,OAAO,CACL,gCACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,mBAAS,CAAC,EAAE,EAAE,qBAAY,CAAC,GAAG,CAAC,KAC5D,SAAS,iBACA,MAAM,YAEnB,uBAAC,kCAAe,OACV,oBAAoB,EACxB,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,EACtB,QAAQ,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,YAE3B,QAAQ,GACO,GACd,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
package/dropdown/utils.js CHANGED
@@ -45,3 +45,4 @@ function useDropdownFloatingStyle({ strategy, x, y, refs, }) {
45
45
  };
46
46
  }
47
47
  exports.useDropdownFloatingStyle = useDropdownFloatingStyle;
48
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/dropdown/utils.ts"],"names":[],"mappings":";;;AAAA,8CAAkG;AAClG,4CAA4C;AAE5C;;;GAGG;AACH,SAAgB,sBAAsB;IACpC,OAAO;QACL,oBAAoB,EAAE,kBAAU;QAChC,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE;YACV,wEAAwE;YACxE,iFAAiF;YACjF,IAAA,YAAI,EAAC;gBACH,OAAO,EAAE,EAAE;aACZ,CAAC;YACF,IAAA,aAAK,EAAC;gBACJ,OAAO,EAAE,EAAE;aACZ,CAAC;SACH;KACF,CAAC;AACJ,CAAC;AAfD,wDAeC;AAED;;;;GAIG;AACH,SAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,CAAC,EACD,CAAC,EACD,IAAI,GACqD;IACzD,MAAM,KAAK,GAAG,IAAA,gBAAQ,GAAE,CAAC;IAEzB,MAAM,WAAW,GAAuB,IAAI,CAAC,SAAS,CAAC,OAAO;QAC5D,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,IAAI;QAC7D,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,CAAC;QACX,IAAI,EAAE,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,CAAC;QACZ,QAAQ,EAAE,WAAW;QACrB,MAAM,EAAE,KAAK,GAAG,CAAC;QAEjB,6BAA6B;QAC7B,gBAAgB,EAAE,WAAW;KAC9B,CAAC;AACJ,CAAC;AAtBD,4DAsBC"}
@@ -1,15 +1,4 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
@@ -24,11 +13,11 @@ const cx = bind_1.default.bind(dropdown_item_module_scss_1.default);
24
13
  * @param props Свойства.
25
14
  * @return Элемент.
26
15
  */
27
- function DropdownItem(_a) {
28
- var { size = 'm', children, className, selected, disabled, noHover, checked, startContent, startIcon: StartIcon, endContent, endIcon: EndIcon, comment, dangerouslySetInnerHTML, 'data-testid': testId = 'dropdown-item' } = _a, restProps = __rest(_a, ["size", "children", "className", "selected", "disabled", "noHover", "checked", "startContent", "startIcon", "endContent", "endIcon", "comment", "dangerouslySetInnerHTML", 'data-testid']);
16
+ function DropdownItem({ size = 'm', children, className, selected, disabled, noHover, checked, startContent, startIcon: StartIcon, endContent, endIcon: EndIcon, comment, dangerouslySetInnerHTML, 'data-testid': testId = 'dropdown-item', ...restProps }) {
29
17
  const start = StartIcon ? (0, jsx_runtime_1.jsx)(StartIcon, { className: cx('icon') }) : startContent;
30
18
  const end = EndIcon ? (0, jsx_runtime_1.jsx)(EndIcon, { className: cx('icon') }) : endContent;
31
19
  const hasChildren = [start, children, end].some(item => typeof item !== 'undefined');
32
- return ((0, jsx_runtime_1.jsx)("div", Object.assign({}, restProps, { className: cx('root', `size-${size}`, selected && 'selected', checked && 'checked', disabled && 'disabled', noHover && 'no-hover', className), dangerouslySetInnerHTML: dangerouslySetInnerHTML, "data-testid": testId }, { children: hasChildren ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [start && (0, jsx_runtime_1.jsx)("div", Object.assign({ className: cx('col', 'col-start') }, { children: start })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: cx('col', 'col-center') }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: cx('row-main') }, { children: children })), size === 'xl' && comment && (0, jsx_runtime_1.jsx)("div", Object.assign({ className: cx('row-comment') }, { children: comment }))] })), end && (0, jsx_runtime_1.jsx)("div", Object.assign({ className: cx('col', 'col-end') }, { children: end }))] })) : undefined })));
20
+ return ((0, jsx_runtime_1.jsx)("div", { ...restProps, className: cx('root', `size-${size}`, selected && 'selected', checked && 'checked', disabled && 'disabled', noHover && 'no-hover', className), dangerouslySetInnerHTML: dangerouslySetInnerHTML, "data-testid": testId, children: hasChildren ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [start && (0, jsx_runtime_1.jsx)("div", { className: cx('col', 'col-start'), children: start }), (0, jsx_runtime_1.jsxs)("div", { className: cx('col', 'col-center'), children: [(0, jsx_runtime_1.jsx)("div", { className: cx('row-main'), children: children }), size === 'xl' && comment && (0, jsx_runtime_1.jsx)("div", { className: cx('row-comment'), children: comment })] }), end && (0, jsx_runtime_1.jsx)("div", { className: cx('col', 'col-end'), children: end })] })) : undefined }));
33
21
  }
34
22
  exports.DropdownItem = DropdownItem;
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dropdown-item/index.tsx"],"names":[],"mappings":";;;;;;;AACA,2DAAyC;AACzC,4FAAiD;AAEjD,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,mCAAM,CAAC,CAAC;AA0CnC;;;;GAIG;AACH,SAAgB,YAAY,CAAC,EAC3B,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,OAAO,EACP,YAAY,EACZ,SAAS,EAAE,SAAS,EACpB,UAAU,EACV,OAAO,EAAE,OAAO,EAChB,OAAO,EACP,uBAAuB,EACvB,aAAa,EAAE,MAAM,GAAG,eAAe,EACvC,GAAG,SAAS,EACM;IAClB,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,uBAAC,SAAS,IAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,uBAAC,OAAO,IAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAI,CAAC,CAAC,CAAC,UAAU,CAAC;IAEtE,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC;IAErF,OAAO,CACL,mCACM,SAAS,EACb,SAAS,EAAE,EAAE,CACX,MAAM,EACN,QAAQ,IAAI,EAAE,EACd,QAAQ,IAAI,UAAU,EACtB,OAAO,IAAI,SAAS,EACpB,QAAQ,IAAI,UAAU,EACtB,OAAO,IAAI,UAAU,EACrB,SAAS,CACV,EACD,uBAAuB,EAAE,uBAAuB,iBACnC,MAAM,YAMlB,WAAW,CAAC,CAAC,CAAC,CACb,6DACG,KAAK,IAAI,gCAAK,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,YAAG,KAAK,GAAO,EAE/D,iCAAK,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,aACrC,gCAAK,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,YAAG,QAAQ,GAAO,EAC/C,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,gCAAK,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,YAAG,OAAO,GAAO,IAC3E,EAEL,GAAG,IAAI,gCAAK,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,YAAG,GAAG,GAAO,IACxD,CACJ,CAAC,CAAC,CAAC,SAAS,GACT,CACP,CAAC;AACJ,CAAC;AAvDD,oCAuDC"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/dropdown-item/types.ts"],"names":[],"mappings":""}
@@ -87,3 +87,4 @@ class LoopedIterator {
87
87
  }
88
88
  }
89
89
  exports.LoopedIterator = LoopedIterator;
90
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/dropdown-item/utils.ts"],"names":[],"mappings":";;;AAAA,iCAAuC;AACvC,wBAAiC;AAGjC,yCAAyC;AACzC,MAAa,iBAAiB;IAC5B;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,KAA2C;QACnD,OAAO,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,eAAY,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,QAA6B;QAC3C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE3C,4FAA4F;QAC5F,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CACrB,SAAgC,EAChC,YAAoB;QAEpB,IAAI,eAAe,GAAG,CAAC,CAAC,CAAC;QAEzB,MAAM,gBAAgB,GAAkB,SAAS,CAAC,MAAM,CAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YACtF,IAAI,KAAK,KAAK,YAAY,EAAE;gBAC1B,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC;aAC9B;YAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACxB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACjB;YAED,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,IAAI,cAAc,CAAS,gBAAgB,EAAE,eAAe,CAAC,CAAC;IACvE,CAAC;CACF;AAhDD,8CAgDC;AAED,0EAA0E;AAC1E,MAAa,cAAc;IAIzB;;;;OAIG;IACH,YAAY,MAAW,EAAE,aAAa,GAAG,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElC,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACnC,SAAS,GAAG,CAAC,CAAC;SACf;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElC,IAAI,SAAS,GAAG,CAAC,EAAE;YACjB,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;SACpC;QAED,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;CACF;AArDD,wCAqDC"}
@@ -12,16 +12,12 @@
12
12
  .item {
13
13
  display: block;
14
14
  padding: 0;
15
- max-width: 100%;
15
+ max-width: calc(100% - var(--expandable-gap, 0));
16
16
  height: var(--expandable-item-height);
17
17
  margin: 0 (var(--expandable-gap)) var(--expandable-gap) 0;
18
18
  &.hidden {
19
19
  display: none;
20
20
  }
21
- &.invisible {
22
- opacity: 0;
23
- pointer-events: none;
24
- }
25
21
  &.opener {
26
22
  width: var(--expandable-opener-width);
27
23
  }
@@ -1,42 +1,12 @@
1
- import { ReactNode, MouseEventHandler, CSSProperties } from 'react';
2
- export interface ExpandableGroupProps {
3
- /** Расстояние между элементами группы в пикселях. */
4
- gap?: number;
5
- /** Высота каждого элемента группы в пикселях. */
6
- itemHeight?: number;
7
- /** Развернут ли список по умолчанию. */
8
- defaultExpanded?: boolean;
9
- /** Количество строк в свернутом состоянии группы. */
10
- lineLimit?: number;
11
- /** Содержимое. */
12
- children?: ReactNode;
13
- /** Функция, возвращающая содержимое кнопки разворачивания списка. */
14
- opener?: (data: {
15
- hiddenCount: number;
16
- }) => ReactNode;
17
- /** Сработает при разворачивании списка. */
18
- onExpand?: () => void;
19
- /** CSS-класс корневого элемента. */
20
- className?: string;
21
- /** Стили корневого элемента. */
22
- style?: CSSProperties;
23
- /** Нужно ли выводить список развернутым. */
24
- expanded?: boolean;
25
- /** Ширина открывающего элемента. */
26
- openerWidth?: number;
27
- }
28
- export interface GroupItemProps {
29
- children?: ReactNode;
30
- onClick?: MouseEventHandler;
31
- 'data-testid'?: string;
32
- }
1
+ /// <reference types="react" />
2
+ import { ExpandableGroupProps, ExpandableGroupItemProps } from './types';
33
3
  /**
34
4
  * Группа элементов с ограничением на число выводимых строк и возможностью показать все.
35
5
  * @param props Свойства.
36
6
  * @return Элемент.
37
7
  */
38
- export declare function ExpandableGroup({ gap, itemHeight, lineLimit, defaultExpanded, children, onExpand, opener, className, style, expanded: expandedProp, openerWidth, }: ExpandableGroupProps): JSX.Element;
8
+ export declare function ExpandableGroup(props: ExpandableGroupProps): JSX.Element;
39
9
  export declare const Expandable: {
40
10
  readonly Group: typeof ExpandableGroup;
41
- readonly Item: import("react").ForwardRefExoticComponent<GroupItemProps & import("react").RefAttributes<HTMLLIElement>>;
11
+ readonly Item: import("react").ForwardRefExoticComponent<ExpandableGroupItemProps & import("react").RefAttributes<HTMLLIElement>>;
42
12
  };
@@ -6,52 +6,106 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Expandable = exports.ExpandableGroup = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_1 = require("react");
9
+ const hooks_1 = require("../hooks");
9
10
  const utils_1 = require("./utils");
10
11
  const bind_1 = __importDefault(require("classnames/bind"));
11
12
  const expandable_group_module_scss_1 = __importDefault(require("./expandable-group.module.scss"));
12
13
  const cx = bind_1.default.bind(expandable_group_module_scss_1.default);
13
14
  const ItemContext = (0, react_1.createContext)({});
15
+ const initialState = {
16
+ status: 'initial',
17
+ lastVisibleIndex: -1,
18
+ };
19
+ const expandedState = {
20
+ status: 'expanded',
21
+ lastVisibleIndex: -1,
22
+ };
14
23
  /**
15
24
  * Группа элементов с ограничением на число выводимых строк и возможностью показать все.
16
25
  * @param props Свойства.
17
26
  * @return Элемент.
18
27
  */
19
- function ExpandableGroup({ gap = 8, itemHeight = 32, lineLimit = 2, defaultExpanded = false, children, onExpand, opener = data => (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["\u0415\u0449\u0451 ", data.hiddenCount] }), className, style, expanded: expandedProp, openerWidth = 72, }) {
20
- const wrapperRef = (0, react_1.useRef)(null);
21
- const containerRef = (0, react_1.useRef)(null);
28
+ function ExpandableGroup(props) {
29
+ const time = (0, react_1.useRef)(1);
30
+ // @todo зациклить если каким-то невероятным образом уйдет за границу number
31
+ time.current = time.current + 1;
32
+ // ВАЖНО: рендер вызванный родительским компонентом должен приводить к пересчету, поэтому передаем уникальный time
33
+ return (0, jsx_runtime_1.jsx)(ExpandableGroupInner, { ...props, time: time.current });
34
+ }
35
+ exports.ExpandableGroup = ExpandableGroup;
36
+ /**
37
+ * Внутренний компонент, необходимый для корректной обработки повторных render'ов.
38
+ * @param props Свойства.
39
+ * @return Элемент.
40
+ */
41
+ function ExpandableGroupInner({ gap = 8, itemHeight = 32, lineLimit = 2, defaultExpanded = false, children, opener: renderOpener = data => (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["\u0415\u0449\u0451 ", data.hiddenCount] }), className, style, expanded: expandedProp, onExpand, openerWidth = 72, time, }) {
42
+ const outerRef = (0, react_1.useRef)(null);
43
+ const innerRef = (0, react_1.useRef)(null);
22
44
  const openerRef = (0, react_1.useRef)(null);
23
45
  const [mounted, setMounted] = (0, react_1.useState)(false);
24
- const [expanded, setExpanded] = (0, react_1.useState)(defaultExpanded);
25
- const items = react_1.Children.toArray(children).reduce((result, child) => {
26
- if ((0, react_1.isValidElement)(child) && child.type === ExpandableItem) {
27
- result.push(child);
28
- }
29
- return result;
30
- }, []);
46
+ const [state, setState] = (0, react_1.useState)(() => (defaultExpanded ? expandedState : initialState));
31
47
  (0, react_1.useEffect)(() => {
32
48
  setMounted(true);
33
49
  }, []);
50
+ // даем возможность управлять состоянием с помощью пропса "expanded"
34
51
  (0, react_1.useEffect)(() => {
35
- expandedProp !== undefined && setExpanded(expandedProp);
52
+ if (typeof expandedProp === 'boolean') {
53
+ setState(expandedProp ? expandedState : initialState);
54
+ }
36
55
  }, [expandedProp]);
37
- const { hiddenCount } = (0, utils_1.useExpandable)({
38
- expanded,
39
- wrapperRef,
40
- containerRef,
41
- openerRef,
42
- gap,
56
+ // если "time" обновился - это сигнал о том что надо пересчитать состояние
57
+ (0, react_1.useEffect)(() => {
58
+ setState(current => (current.status === 'expanded' ? current : initialState));
59
+ }, [time]);
60
+ // следим за изменением ширины чтобы запустить перерасчет
61
+ (0, utils_1.useObserveWidth)(outerRef, () => {
62
+ setState(current => (current.status === 'expanded' ? current : initialState));
43
63
  });
44
- return ((0, jsx_runtime_1.jsx)("div", Object.assign({ ref: wrapperRef, className: cx('root', className), style: Object.assign(Object.assign({}, style), { maxHeight: expanded ? undefined : `${itemHeight * lineLimit + gap * (lineLimit - 1)}px`, '--expandable-item-height': `${itemHeight}px`, '--expandable-opener-width': `${openerWidth}px`, '--expandable-gap': `${gap}px` }) }, { children: (0, jsx_runtime_1.jsxs)("ul", Object.assign({ ref: containerRef, className: expandable_group_module_scss_1.default.inner }, { children: [items, mounted && !expanded && ((0, jsx_runtime_1.jsx)(ItemContext.Provider, Object.assign({ value: { invisible: hiddenCount === 0, opener: true } }, { children: (0, jsx_runtime_1.jsx)(ExpandableItem, Object.assign({ ref: openerRef, onClick: () => {
45
- setExpanded(true);
46
- onExpand === null || onExpand === void 0 ? void 0 : onExpand();
47
- }, "data-testid": 'expandable:opener' }, { children: opener({ hiddenCount }) })) })))] })) })));
64
+ // выполняем расчет
65
+ (0, hooks_1.useIsomorphicLayoutEffect)(() => {
66
+ if (state.status === 'initial') {
67
+ const outer = outerRef.current;
68
+ const inner = innerRef.current;
69
+ const opener = openerRef.current;
70
+ if (outer && inner && opener) {
71
+ const { lastVisibleIndex } = (0, utils_1.defineLastVisible)({ outer, inner, gap, opener, openerWidth });
72
+ setState({
73
+ status: lastVisibleIndex !== -1 ? 'some-hidden' : 'all-visible',
74
+ lastVisibleIndex,
75
+ });
76
+ }
77
+ }
78
+ }, [state, mounted]);
79
+ const rootStyle = {
80
+ ...style,
81
+ maxHeight: state.status === 'expanded'
82
+ ? undefined
83
+ : `${itemHeight * lineLimit + gap * (lineLimit - 1)}px`,
84
+ '--expandable-gap': `${gap}px`,
85
+ '--expandable-item-height': `${itemHeight}px`,
86
+ '--expandable-opener-width': `${openerWidth}px`,
87
+ };
88
+ const handleExpand = (0, react_1.useCallback)(() => {
89
+ setState(expandedState);
90
+ onExpand === null || onExpand === void 0 ? void 0 : onExpand();
91
+ }, [onExpand]);
92
+ const items = react_1.Children.toArray(children).reduce((result, child, index) => {
93
+ if ((0, react_1.isValidElement)(child) && child.type === ExpandableItem) {
94
+ result.push((0, jsx_runtime_1.jsx)(ItemContext.Provider, { value: {
95
+ hidden: state.status === 'some-hidden' && index > state.lastVisibleIndex,
96
+ }, children: child }, child.key));
97
+ }
98
+ return result;
99
+ }, []);
100
+ // ВАЖНО: root нужен для того чтобы формировать ограничение по высоте
101
+ return ((0, jsx_runtime_1.jsx)("div", { ref: outerRef, className: cx('root', className), style: rootStyle, children: (0, jsx_runtime_1.jsxs)("ul", { ref: innerRef, className: cx('inner'), children: [items, mounted && state.status !== 'expanded' && ((0, jsx_runtime_1.jsx)(ItemContext.Provider, { value: { hidden: state.status !== 'some-hidden' }, children: (0, jsx_runtime_1.jsx)(ExpandableItem, { ref: openerRef, onClick: handleExpand, "data-testid": 'expandable:opener', children: renderOpener({ hiddenCount: items.length - state.lastVisibleIndex - 1 }) }) }))] }) }));
48
102
  }
49
- exports.ExpandableGroup = ExpandableGroup;
50
103
  const ExpandableItem = (0, react_1.forwardRef)(({ children, onClick, 'data-testid': testId = 'expandable:item' }, ref) => {
51
- const context = (0, react_1.useContext)(ItemContext);
52
- return ((0, jsx_runtime_1.jsx)("li", Object.assign({ ref: ref, className: cx('item', context), "data-testid": testId, onClick: onClick }, { children: children })));
104
+ const { hidden } = (0, react_1.useContext)(ItemContext);
105
+ return ((0, jsx_runtime_1.jsx)("li", { ref: ref, className: cx('item', { hidden }), "data-testid": testId, onClick: onClick, children: children }));
53
106
  });
54
107
  exports.Expandable = {
55
108
  Group: ExpandableGroup,
56
109
  Item: ExpandableItem,
57
110
  };
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expandable/index.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAWe;AAEf,oCAAqD;AACrD,mCAA6D;AAC7D,2DAAyC;AACzC,kGAAoD;AAEpD,MAAM,EAAE,GAAG,cAAU,CAAC,IAAI,CAAC,sCAAM,CAAC,CAAC;AAEnC,MAAM,WAAW,GAAG,IAAA,qBAAa,EAAuB,EAAE,CAAC,CAAC;AAO5D,MAAM,YAAY,GAAU;IAC1B,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,CAAC,CAAC;CACrB,CAAC;AAEF,MAAM,aAAa,GAAU;IAC3B,MAAM,EAAE,UAAU;IAClB,gBAAgB,EAAE,CAAC,CAAC;CACrB,CAAC;AAEF;;;;GAIG;AACH,SAAgB,eAAe,CAAC,KAA2B;IACzD,MAAM,IAAI,GAAG,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC;IAEvB,4EAA4E;IAC5E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IAEhC,kHAAkH;IAClH,OAAO,uBAAC,oBAAoB,OAAK,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,GAAI,CAAC;AACjE,CAAC;AARD,0CAQC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,EAC5B,GAAG,GAAG,CAAC,EACP,UAAU,GAAG,EAAE,EACf,SAAS,GAAG,CAAC,EACb,eAAe,GAAG,KAAK,EACvB,QAAQ,EACR,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,oFAAO,IAAI,CAAC,WAAW,IAAI,EAC1D,SAAS,EACT,KAAK,EACL,QAAQ,EAAE,YAAY,EACtB,QAAQ,EACR,WAAW,GAAG,EAAE,EAChB,IAAI,GACoC;IACxC,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAA,cAAM,EAAgB,IAAI,CAAC,CAAC;IAE9C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAU,KAAK,CAAC,CAAC;IACvD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAQ,GAAG,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAElG,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,oEAAoE;IACpE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE;YACrC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;SACvD;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,0EAA0E;IAC1E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAChF,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,yDAAyD;IACzD,IAAA,uBAAe,EAAC,QAAQ,EAAE,GAAG,EAAE;QAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,IAAA,iCAAyB,EAAC,GAAG,EAAE;QAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;YAC9B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC/B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;YAEjC,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;gBAC5B,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAA,yBAAiB,EAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBAE3F,QAAQ,CAAC;oBACP,MAAM,EAAE,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa;oBAC/D,gBAAgB;iBACjB,CAAC,CAAC;aACJ;SACF;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAErB,MAAM,SAAS,GAA8B;QAC3C,GAAG,KAAK;QACR,SAAS,EACP,KAAK,CAAC,MAAM,KAAK,UAAU;YACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,GAAG,UAAU,GAAG,SAAS,GAAG,GAAG,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI;QAC3D,kBAAkB,EAAE,GAAG,GAAG,IAAI;QAC9B,0BAA0B,EAAE,GAAG,UAAU,IAAI;QAC7C,2BAA2B,EAAE,GAAG,WAAW,IAAI;KAChD,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACpC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACxB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,EAAI,CAAC;IACf,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,KAAK,GAAG,gBAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAc,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACpF,IAAI,IAAA,sBAAc,EAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE;YAC1D,MAAM,CAAC,IAAI,CACT,uBAAC,WAAW,CAAC,QAAQ,IAEnB,KAAK,EAAE;oBACL,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,aAAa,IAAI,KAAK,GAAG,KAAK,CAAC,gBAAgB;iBACzE,YAEA,KAAK,IALD,KAAK,CAAC,GAAG,CAMO,CACxB,CAAC;SACH;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,qEAAqE;IACrE,OAAO,CACL,gCAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,YACpE,gCAAI,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,aACtC,KAAK,EAGL,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU,IAAI,CACzC,uBAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,YACrE,uBAAC,cAAc,IAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,iBAAc,mBAAmB,YACnF,YAAY,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC,GAC1D,GACI,CACxB,IACE,GACD,CACP,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,IAAA,kBAAU,EAC/B,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,iBAAiB,EAAE,EAAE,GAAG,EAAE,EAAE;IACxE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IAE3C,OAAO,CACL,+BAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,iBAAe,MAAM,EAAE,OAAO,EAAE,OAAO,YACnF,QAAQ,GACN,CACN,CAAC;AACJ,CAAC,CACF,CAAC;AAEW,QAAA,UAAU,GAAG;IACxB,KAAK,EAAE,eAAe;IACtB,IAAI,EAAE,cAAc;CACZ,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { CSSProperties, MouseEventHandler, ReactNode } from 'react';
2
+ import type { WithTestId } from '../types';
3
+ export interface ExpandableGroupInnerStyle extends CSSProperties {
4
+ '--expandable-item-height'?: string;
5
+ '--expandable-opener-width'?: string;
6
+ '--expandable-gap'?: string;
7
+ }
8
+ export interface ExpandableGroupProps {
9
+ /** Расстояние между элементами группы в пикселях. */
10
+ gap?: number;
11
+ /** Высота каждого элемента группы в пикселях. */
12
+ itemHeight?: number;
13
+ /** Развернут ли список по умолчанию. */
14
+ defaultExpanded?: boolean;
15
+ /** Количество строк в свернутом состоянии группы. */
16
+ lineLimit?: number;
17
+ /** Содержимое. */
18
+ children?: ReactNode;
19
+ /** Функция, возвращающая содержимое кнопки разворачивания списка. */
20
+ opener?: (data: {
21
+ hiddenCount: number;
22
+ }) => ReactNode;
23
+ /** Сработает при разворачивании списка. */
24
+ onExpand?: () => void;
25
+ /** CSS-класс корневого элемента. */
26
+ className?: string;
27
+ /** Стили корневого элемента. */
28
+ style?: CSSProperties;
29
+ /** Нужно ли выводить список развернутым. */
30
+ expanded?: boolean;
31
+ /** Ширина открывающего элемента. */
32
+ openerWidth?: number;
33
+ }
34
+ export interface ExpandableGroupItemProps extends WithTestId {
35
+ /** Содержимое. */
36
+ children?: ReactNode;
37
+ /** Сработает при клике. */
38
+ onClick?: MouseEventHandler;
39
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/expandable/types.ts"],"names":[],"mappings":""}
@@ -1,31 +1,30 @@
1
1
  import { RefObject } from 'react';
2
- export interface ViewState {
3
- lastVisibleIndex: number;
4
- }
5
2
  /**
6
- * Хук состояния группы элементов ограниченных несколькими строками с возможностью показать все.
7
- * @param options.expanded Развернут ли список.
8
- * @param options.wrapperRef Реф элемента, формирующего ограничение по высоте.
9
- * @param options.containerRef Реф элемента, содержащего список.
10
- * @param options.openerRef Реф элемента "открывашки".
11
- * @param options.gap Расстояние между элементами списка.
12
- * @return Рассчитанные данные: кол-во скрытых элементов.
3
+ * Определяет последний дочерний элемент который должен быть виден чтобы влезла "открывашка".
4
+ * @param payload Данные.
5
+ * @return Результат.
6
+ *
7
+ * ВАЖНО: lastVisibleIndex: -1 означает что все элементы видны и "открывашка" не нужна.
13
8
  */
14
- export declare function useExpandable({ expanded, wrapperRef, containerRef, openerRef, gap, }: {
15
- expanded: boolean;
16
- wrapperRef: RefObject<HTMLElement>;
17
- containerRef: RefObject<HTMLElement>;
18
- openerRef: RefObject<HTMLElement>;
9
+ export declare function defineLastVisible({ outer, inner, gap, opener, openerWidth, }: {
10
+ outer: Element;
11
+ inner: Element;
19
12
  gap: number;
13
+ opener: Element;
14
+ openerWidth: number;
20
15
  }): {
21
- hiddenCount: number;
16
+ lastVisibleIndex: number;
22
17
  };
23
18
  /**
24
- * Определяет индекс последнего видимого элемента для свернутого списка.
25
- * @param wrapper Элемент, формирующий ограничение по высоте.
26
- * @param items Элементы, все кроме "закрывашки".
27
- * @param opener Элемент "закрывашки".
28
- * @param gap Расстояние между элементами списка.
29
- * @return Состояние.
19
+ * Регистрирует обработчик изменения ширины элемента.
20
+ * @param element Элемент.
21
+ * @param callback Callback.
22
+ * @return Функция отписки.
23
+ */
24
+ export declare function observeWidth(element: Element, callback: VoidFunction): () => void;
25
+ /**
26
+ * Хук для регистрации обработчика изменения ширины элемента.
27
+ * @param ref Ref элемента.
28
+ * @param callback Callback.
30
29
  */
31
- export declare function defineViewState(wrapper: HTMLElement, items: Element[], opener: HTMLElement, gap: number): ViewState;
30
+ export declare function useObserveWidth(ref: RefObject<Element>, callback: VoidFunction): void;