@sberbusiness/triplex-next 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/chunks/{AlertProcessSpoiler-Ctx-2wgy.js → AlertProcessSpoiler-DnTjWmas.js} +16 -16
  2. package/chunks/{AlertProcessSpoiler-Ctx-2wgy.js.map → AlertProcessSpoiler-DnTjWmas.js.map} +1 -1
  3. package/chunks/{CalendarViewItem-CvdMWlYm.js → CalendarViewItem-xXwJrr0s.js} +20 -20
  4. package/chunks/{CalendarViewItem-CvdMWlYm.js.map → CalendarViewItem-xXwJrr0s.js.map} +1 -1
  5. package/chunks/Card.module-CMJPW-BS.js +32 -0
  6. package/chunks/Card.module-CMJPW-BS.js.map +1 -0
  7. package/chunks/Carousel.module-D6e_v_nx.js +26 -0
  8. package/chunks/Carousel.module-D6e_v_nx.js.map +1 -0
  9. package/chunks/CheckboxTreeExtended.module-CcMn-i5_.js +24 -0
  10. package/chunks/CheckboxTreeExtended.module-CcMn-i5_.js.map +1 -0
  11. package/chunks/{Chip-SVIdZjNC.js → Chip-KA-wuCSC.js} +16 -16
  12. package/chunks/{Chip-SVIdZjNC.js.map → Chip-KA-wuCSC.js.map} +1 -1
  13. package/chunks/Confirm.module-CQVT-_Lm.js +24 -0
  14. package/chunks/Confirm.module-CQVT-_Lm.js.map +1 -0
  15. package/chunks/{DropdownListItem-DbG8a_Rw.js → DropdownListItem-B220hwlD.js} +10 -10
  16. package/chunks/{DropdownListItem-DbG8a_Rw.js.map → DropdownListItem-B220hwlD.js.map} +1 -1
  17. package/chunks/DropdownMobile.module-vfc3HyCT.js +40 -0
  18. package/chunks/DropdownMobile.module-vfc3HyCT.js.map +1 -0
  19. package/chunks/Footer.module-BWVOlnUk.js +12 -0
  20. package/chunks/Footer.module-BWVOlnUk.js.map +1 -0
  21. package/chunks/{HeaderLayoutSidebar.module-BvCPxkNk.js → HeaderLayoutSidebar.module-CE0LxXbe.js} +4 -4
  22. package/chunks/HeaderLayoutSidebar.module-CE0LxXbe.js.map +1 -0
  23. package/chunks/HeaderTabs.module-CBdJ4AFG.js +12 -0
  24. package/chunks/HeaderTabs.module-CBdJ4AFG.js.map +1 -0
  25. package/chunks/{HeaderTitle.module-gbla84yG.js → HeaderTitle.module-CWenCgpG.js} +4 -4
  26. package/chunks/HeaderTitle.module-CWenCgpG.js.map +1 -0
  27. package/chunks/ImageGalleryExtendedMain.module-DRjv2Iel.js +28 -0
  28. package/chunks/ImageGalleryExtendedMain.module-DRjv2Iel.js.map +1 -0
  29. package/chunks/{ImageGalleryExtendedThumb-eZ1U9hun.js → ImageGalleryExtendedThumb-CQlr8khU.js} +5 -5
  30. package/chunks/{ImageGalleryExtendedThumb-eZ1U9hun.js.map → ImageGalleryExtendedThumb-CQlr8khU.js.map} +1 -1
  31. package/chunks/IslandAccordion.module-B1SEnKBs.js +44 -0
  32. package/chunks/IslandAccordion.module-B1SEnKBs.js.map +1 -0
  33. package/chunks/IslandWidgetFooter.module-pFppe-BY.js +18 -0
  34. package/chunks/IslandWidgetFooter.module-pFppe-BY.js.map +1 -0
  35. package/chunks/IslandWidgetHeader.module-DS2_pnOs.js +28 -0
  36. package/chunks/IslandWidgetHeader.module-DS2_pnOs.js.map +1 -0
  37. package/chunks/{LightBoxContent-CWtp-PJm.js → LightBoxContent-Bt1siyfK.js} +16 -16
  38. package/chunks/{LightBoxContent-CWtp-PJm.js.map → LightBoxContent-Bt1siyfK.js.map} +1 -1
  39. package/chunks/LightBoxControls.module-Cf-a5oBp.js +26 -0
  40. package/chunks/LightBoxControls.module-Cf-a5oBp.js.map +1 -0
  41. package/chunks/{LightBoxSideOverlayClose.module-Bu0mbQ2E.js → LightBoxSideOverlayClose.module-Bb-xpkRE.js} +4 -4
  42. package/chunks/LightBoxSideOverlayClose.module-Bb-xpkRE.js.map +1 -0
  43. package/chunks/{ListItemControlsButton-EF-ovU6G.js → ListItemControlsButton-CgtvTyfP.js} +9 -9
  44. package/chunks/{ListItemControlsButton-EF-ovU6G.js.map → ListItemControlsButton-CgtvTyfP.js.map} +1 -1
  45. package/chunks/ListItemTail.module-X8wcPJCV.js +18 -0
  46. package/chunks/ListItemTail.module-X8wcPJCV.js.map +1 -0
  47. package/chunks/ListMasterFooter.module-DX-njGHK.js +14 -0
  48. package/chunks/ListMasterFooter.module-DX-njGHK.js.map +1 -0
  49. package/chunks/ModalWindow.module-H8Ipau-g.js +28 -0
  50. package/chunks/ModalWindow.module-H8Ipau-g.js.map +1 -0
  51. package/chunks/Notification.module-CcAy4EUy.js +34 -0
  52. package/chunks/Notification.module-CcAy4EUy.js.map +1 -0
  53. package/chunks/Overlay.module-kM4tpNCp.js +30 -0
  54. package/chunks/Overlay.module-kM4tpNCp.js.map +1 -0
  55. package/chunks/Page.module-CB9AR5aS.js +17 -0
  56. package/chunks/Page.module-CB9AR5aS.js.map +1 -0
  57. package/chunks/SMSField.module-BEYAnwKA.js +30 -0
  58. package/chunks/SMSField.module-BEYAnwKA.js.map +1 -0
  59. package/chunks/SliderExtendedMarks.module-B6XjVddO.js +24 -0
  60. package/chunks/SliderExtendedMarks.module-B6XjVddO.js.map +1 -0
  61. package/chunks/{SliderExtendedRail-BLBXp_mr.js → SliderExtendedRail-Sh_HJZLB.js} +5 -5
  62. package/chunks/{SliderExtendedRail-BLBXp_mr.js.map → SliderExtendedRail-Sh_HJZLB.js.map} +1 -1
  63. package/chunks/StatusTracker.module-Cp5iXG8R.js +44 -0
  64. package/chunks/StatusTracker.module-Cp5iXG8R.js.map +1 -0
  65. package/chunks/{StepperStepArrowBorder-BAh7ttCH.js → StepperStepArrowBorder-bOAXSOQS.js} +16 -16
  66. package/chunks/{StepperStepArrowBorder-BAh7ttCH.js.map → StepperStepArrowBorder-bOAXSOQS.js.map} +1 -1
  67. package/chunks/{SuggestFieldMobileDropdownHint-Dwl6zzq8.js → SuggestFieldMobileDropdownHint-DZe-DRxO.js} +3 -3
  68. package/chunks/{SuggestFieldMobileDropdownHint-Dwl6zzq8.js.map → SuggestFieldMobileDropdownHint-DZe-DRxO.js.map} +1 -1
  69. package/chunks/TableFooter.module-B1L_40rW.js +22 -0
  70. package/chunks/TableFooter.module-B1L_40rW.js.map +1 -0
  71. package/chunks/TabsExtended.module-DM3VmPaJ.js +26 -0
  72. package/chunks/TabsExtended.module-DM3VmPaJ.js.map +1 -0
  73. package/chunks/TabsLine.module-CGbe2c_G.js +36 -0
  74. package/chunks/TabsLine.module-CGbe2c_G.js.map +1 -0
  75. package/chunks/TooltipDesktop.module-DxDDgDG1.js +32 -0
  76. package/chunks/TooltipDesktop.module-DxDDgDG1.js.map +1 -0
  77. package/chunks/TreeView.module-CN5lZ_rt.js +12 -0
  78. package/chunks/TreeView.module-CN5lZ_rt.js.map +1 -0
  79. package/chunks/{UploadZoneInput-dlRcClcR.js → UploadZoneInput-RMFLKjj0.js} +5 -5
  80. package/chunks/{UploadZoneInput-dlRcClcR.js.map → UploadZoneInput-RMFLKjj0.js.map} +1 -1
  81. package/chunks/{constants-D9y0PXCn.js → constants-mNYX4XB4.js} +27 -27
  82. package/chunks/{constants-D9y0PXCn.js.map → constants-mNYX4XB4.js.map} +1 -1
  83. package/chunks/{utils-EB3nf6Gq.js → utils-DOcB0e7N.js} +10 -10
  84. package/chunks/{utils-EB3nf6Gq.js.map → utils-DOcB0e7N.js.map} +1 -1
  85. package/chunks/{utils-C5ANP-lJ.js → utils-DeHzDxOr.js} +6 -6
  86. package/chunks/{utils-C5ANP-lJ.js.map → utils-DeHzDxOr.js.map} +1 -1
  87. package/chunks/{utils-TRZEn9vv.js → utils-oTkgQe3Q.js} +27 -27
  88. package/chunks/{utils-TRZEn9vv.js.map → utils-oTkgQe3Q.js.map} +1 -1
  89. package/chunks/{utils-NWb0RM-6.js → utils-x0Sgh0RL.js} +11 -11
  90. package/chunks/{utils-NWb0RM-6.js.map → utils-x0Sgh0RL.js.map} +1 -1
  91. package/components/Alert/AlertContext/AlertContext.js +7 -7
  92. package/components/Alert/AlertProcess/AlertProcess.js +2 -2
  93. package/components/Alert/AlertProcess/components/AlertProcessSpoiler.js +1 -1
  94. package/components/Amount/Amount.js +2 -2
  95. package/components/AmountField/AmountField.js +8 -8
  96. package/components/Avatar/Avatar.js +13 -13
  97. package/components/Badge/Badge.js +4 -4
  98. package/components/Badge/BadgeDot.js +4 -4
  99. package/components/Badge/components/BadgeContent.js +6 -6
  100. package/components/Badge/components/BadgePostfix.js +1 -1
  101. package/components/Badge/components/BadgePrefix.js +1 -1
  102. package/components/Body/Body.js +3 -3
  103. package/components/Button/Button.js +20 -20
  104. package/components/Button/ButtonBase.js +1 -1
  105. package/components/Button/ButtonDropdown.js +8 -8
  106. package/components/Button/ButtonDropdownExtended.js +2 -2
  107. package/components/Button/ButtonIcon.js +3 -3
  108. package/components/Calendar/Calendar.js +4 -4
  109. package/components/Calendar/components/CalendarControls.js +1 -1
  110. package/components/Calendar/components/CalendarFooter.js +1 -1
  111. package/components/Calendar/components/CalendarViewDays.js +1 -1
  112. package/components/Calendar/components/CalendarViewItem.js +1 -1
  113. package/components/Calendar/components/CalendarViewMonths.js +1 -1
  114. package/components/Calendar/components/CalendarViewYears.js +1 -1
  115. package/components/Card/CardAction.js +5 -5
  116. package/components/Card/CardStatic.js +2 -2
  117. package/components/Card/components/CardContent/CardContent.js +1 -1
  118. package/components/Card/components/CardContent/components/CardContentBody.js +1 -1
  119. package/components/Card/components/CardContent/components/CardContentFooter.js +1 -1
  120. package/components/Card/components/CardContent/components/CardContentHeader.js +1 -1
  121. package/components/Card/components/CardMedia.js +1 -1
  122. package/components/Card/utils.js +1 -1
  123. package/components/Carousel/Carousel.js +10 -6
  124. package/components/Carousel/Carousel.js.map +1 -1
  125. package/components/Carousel/CarouselButton.js +1 -1
  126. package/components/Carousel/CarouselIndicators.js +1 -1
  127. package/components/Carousel/CarouselItem.js +2 -2
  128. package/components/Carousel/CarouselItem.js.map +1 -1
  129. package/components/Carousel/CarouselTrack.js +1 -1
  130. package/components/Carousel/CarouselViewport.js +1 -1
  131. package/components/CarouselExtended/CarouselExtended.js +1 -1
  132. package/components/Checkbox/Checkbox.js +10 -10
  133. package/components/Checkbox/CheckboxXGroup.js +8 -8
  134. package/components/Checkbox/CheckboxYGroup.js +1 -1
  135. package/components/CheckboxTreeExtended/CheckboxTreeExtended.js +1 -1
  136. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedArrow.js +1 -1
  137. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedCheckbox.js +1 -1
  138. package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedNode.js +1 -1
  139. package/components/Chip/Chip.js +1 -1
  140. package/components/Chip/ChipClearButton.js +1 -1
  141. package/components/Chip/ChipDatePicker/ChipDatePicker.js +2 -2
  142. package/components/Chip/ChipDatePicker/ChipDatePicker.js.map +1 -1
  143. package/components/Chip/ChipDatePicker/ChipDatePickerTarget.js +1 -1
  144. package/components/Chip/ChipDatePicker/ChipDatePickerTarget.js.map +1 -1
  145. package/components/Chip/ChipDropdownArrow.js +2 -2
  146. package/components/Chip/ChipIcon.js +1 -1
  147. package/components/Chip/ChipMonthYearPicker/ChipMonthYearPicker.js +1 -1
  148. package/components/Chip/ChipMonthYearPicker/ChipMonthYearPickerTarget.js +1 -1
  149. package/components/Chip/ChipMultiselect.js +1 -1
  150. package/components/Chip/ChipOptions.js +2 -2
  151. package/components/Chip/ChipSelect/ChipSelect.js +1 -1
  152. package/components/Chip/ChipSelect/ChipSelect.js.map +1 -1
  153. package/components/Chip/ChipSelect/ChipSelectTarget.js +1 -1
  154. package/components/Chip/ChipSort.js +1 -1
  155. package/components/Chip/ChipSuggest/ChipSuggest.js +1 -1
  156. package/components/Chip/ChipSuggest/ChipSuggestDropdown.js +1 -1
  157. package/components/Chip/ChipSuggest/ChipSuggestTarget.js +1 -1
  158. package/components/Chip/ChipSuggest/desktop/ChipSuggestDesktopDropdownField.js +1 -1
  159. package/components/Chip/index.js +1 -1
  160. package/components/ChipGroup/ChipGroup.js +7 -7
  161. package/components/Col/Col.js +132 -132
  162. package/components/CollapsibleTree/CollapsibleTree.js +1 -1
  163. package/components/CollapsibleTree/components/CollapsibleTreeLeafContent.js +1 -1
  164. package/components/CollapsibleTree/components/CollapsibleTreeLeafNode.js +1 -1
  165. package/components/CollapsibleTree/components/CollapsibleTreeNodeHeader.js +4 -4
  166. package/components/CollapsibleTreeExtended/components/CollapsibleTreeExtendedNode.js +1 -1
  167. package/components/Confirm/Confirm.js +1 -1
  168. package/components/Confirm/components/ConfirmCloseButton.js +1 -1
  169. package/components/Confirm/components/ConfirmContent.js +1 -1
  170. package/components/Confirm/components/ConfirmContentTitle.js +1 -1
  171. package/components/Confirm/components/ConfirmControls.js +1 -1
  172. package/components/DateField/DateFieldTarget.js +4 -4
  173. package/components/DatePickerExtended/DatePickerExtended.js +2 -2
  174. package/components/DatePickerExtended/DatePickerExtendedDropdown.js +1 -1
  175. package/components/DateRange/DateRange.js +20 -16
  176. package/components/DateRange/DateRange.js.map +1 -1
  177. package/components/DateRange/utils.js +10 -3
  178. package/components/DateRange/utils.js.map +1 -1
  179. package/components/DesignTokens/DesignTokenUtils.js +1 -1
  180. package/components/Divider/Divider.js +17 -17
  181. package/components/DocumentNumberEdit/DocumentNumberEdit.js +3 -3
  182. package/components/Dropdown/desktop/DropdownDesktop.js +6 -6
  183. package/components/Dropdown/desktop/DropdownList.js +1 -1
  184. package/components/Dropdown/desktop/DropdownListItem.js +1 -1
  185. package/components/Dropdown/desktop/index.js +1 -1
  186. package/components/Dropdown/index.js +1 -1
  187. package/components/Dropdown/mobile/DropdownMobile.js +2 -2
  188. package/components/Dropdown/mobile/DropdownMobileBody.js +1 -1
  189. package/components/Dropdown/mobile/DropdownMobileClose.js +1 -1
  190. package/components/Dropdown/mobile/DropdownMobileFooter.js +1 -1
  191. package/components/Dropdown/mobile/DropdownMobileHeader.js +1 -1
  192. package/components/Dropdown/mobile/DropdownMobileInner.js +1 -1
  193. package/components/Dropdown/mobile/DropdownMobileInput.js +1 -1
  194. package/components/Dropdown/mobile/DropdownMobileList.js +1 -1
  195. package/components/Dropdown/mobile/DropdownMobileListItem.js +1 -1
  196. package/components/Dropdown/mobile/DropdownMobileLoader.js +1 -1
  197. package/components/Dropdown/mobile/DropdownMobileMaskedInput.js +1 -1
  198. package/components/Ellipsis/Ellipsis.js +3 -3
  199. package/components/EmptyView/EmptyView.js +4 -4
  200. package/components/ExpandAnimation/ExpandAnimation.js +1 -1
  201. package/components/Footer/Footer.js +1 -1
  202. package/components/Footer/components/FooterDescription.js +1 -1
  203. package/components/Footer/components/FooterDescriptionContent.js +1 -1
  204. package/components/Footer/components/FooterDescriptionControls.js +1 -1
  205. package/components/FormField/FormField.js +11 -11
  206. package/components/FormField/components/FormFieldClear.js +1 -1
  207. package/components/FormField/components/FormFieldCounter.js +1 -1
  208. package/components/FormField/components/FormFieldDescription.js +2 -2
  209. package/components/FormField/components/FormFieldInput.js +4 -4
  210. package/components/FormField/components/FormFieldLabel.js +7 -7
  211. package/components/FormField/components/FormFieldMaskedInput.js +8 -8
  212. package/components/FormField/components/FormFieldPostfix.js +1 -1
  213. package/components/FormField/components/FormFieldPrefix.js +1 -1
  214. package/components/FormField/components/FormFieldTarget.js +8 -8
  215. package/components/FormField/components/FormFieldTextarea.js +4 -4
  216. package/components/Gap/Gap.js +8 -8
  217. package/components/Header/Header.js +1 -1
  218. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js +1 -1
  219. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js +1 -1
  220. package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js +1 -1
  221. package/components/Header/components/HeaderSubheader/HeaderSubheader.js +2 -2
  222. package/components/Header/components/HeaderTabs/HeaderTabs.js +1 -1
  223. package/components/Header/components/HeaderTabs/HeaderTabsContent.js +1 -1
  224. package/components/Header/components/HeaderTabs/HeaderTabsControls.js +1 -1
  225. package/components/Header/components/HeaderTitle/HeaderTitle.js +1 -1
  226. package/components/Header/components/HeaderTitle/HeaderTitleContent.js +1 -1
  227. package/components/Header/components/HeaderTitle/HeaderTitleControls.js +1 -1
  228. package/components/HelpBox/HelpBox.js +1 -1
  229. package/components/IconWrapper/IconWrapper.js +2 -2
  230. package/components/ImageGallery/ImageGallery.js +1 -1
  231. package/components/ImageGalleryExtended/ImageGalleryExtended.js +2 -2
  232. package/components/ImageGalleryExtended/components/ImageGalleryExtendedArrow.js +1 -1
  233. package/components/ImageGalleryExtended/components/ImageGalleryExtendedMain.js +1 -1
  234. package/components/ImageGalleryExtended/components/ImageGalleryExtendedPageIndicators.js +1 -1
  235. package/components/ImageGalleryExtended/components/ImageGalleryExtendedSlide.js +1 -1
  236. package/components/ImageGalleryExtended/components/ImageGalleryExtendedSwipeTrack.js +1 -1
  237. package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumb.js +1 -1
  238. package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumbnails.js +1 -1
  239. package/components/ImageGalleryExtended/components/index.js +1 -1
  240. package/components/ImageGalleryExtended/index.js +1 -1
  241. package/components/Island/Island.js +1 -1
  242. package/components/Island/components/IslandBody.js +1 -1
  243. package/components/Island/components/IslandFooter.js +1 -1
  244. package/components/Island/components/IslandHeader.js +1 -1
  245. package/components/Island/utils.js +1 -1
  246. package/components/IslandAccordion/IslandAccordion.js +2 -2
  247. package/components/IslandAccordion/components/IslandAccordionContent.js +1 -1
  248. package/components/IslandAccordion/components/IslandAccordionFooter.js +1 -1
  249. package/components/IslandAccordion/components/IslandAccordionItem.js +2 -2
  250. package/components/IslandWidget/IslandWidget.js +3 -3
  251. package/components/IslandWidget/components/IslandWidgetBody.js +4 -4
  252. package/components/IslandWidget/components/IslandWidgetExtraFooter.js +1 -1
  253. package/components/IslandWidget/components/IslandWidgetFooter.js +1 -1
  254. package/components/IslandWidget/components/IslandWidgetFooterContent.js +1 -1
  255. package/components/IslandWidget/components/IslandWidgetFooterControls.js +1 -1
  256. package/components/IslandWidget/components/IslandWidgetHeader.js +1 -1
  257. package/components/IslandWidget/components/IslandWidgetHeaderControls.js +1 -1
  258. package/components/IslandWidget/components/IslandWidgetHeaderDescription.js +1 -1
  259. package/components/IslandWidget/components/IslandWidgetHeaderTitle.js +1 -1
  260. package/components/IslandWidget/components/IslandWidgetWrapper.js +1 -1
  261. package/components/LightBox/LightBox.js +5 -5
  262. package/components/LightBox/LightBoxContent.js +1 -1
  263. package/components/LightBox/LightBoxControls/LightBoxArrow.js +1 -1
  264. package/components/LightBox/LightBoxControls/LightBoxClose.js +1 -1
  265. package/components/LightBox/LightBoxControls/LightBoxControls.js +1 -1
  266. package/components/LightBox/LightBoxControls/LightBoxNext.js +1 -1
  267. package/components/LightBox/LightBoxControls/LightBoxPrev.js +1 -1
  268. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js +12 -12
  269. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseDesktop.js +1 -1
  270. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseMobile.js +1 -1
  271. package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayLoader.js +1 -1
  272. package/components/LightBox/LightBoxSidebars/LightBoxLeftSidebar.js +3 -3
  273. package/components/LightBox/LightBoxSidebars/LightBoxRightSidebar.js +3 -3
  274. package/components/Link/Link.js +5 -5
  275. package/components/List/List.js +3 -3
  276. package/components/List/components/ListActionItem.js +1 -1
  277. package/components/List/components/ListEmptyState.js +1 -1
  278. package/components/List/components/ListItem.js +1 -1
  279. package/components/List/components/ListItemContent.js +4 -4
  280. package/components/List/components/ListItemControls.js +1 -1
  281. package/components/List/components/ListItemControlsButton.js +1 -1
  282. package/components/List/components/ListItemControlsButtonDropdown.js +1 -1
  283. package/components/List/components/ListItemLoading.js +1 -1
  284. package/components/List/components/ListItemSelectable.js +6 -6
  285. package/components/List/components/ListItemTailLeft.js +1 -1
  286. package/components/List/components/ListItemTailRight.js +1 -1
  287. package/components/List/components/ListSortableItem.js +2 -2
  288. package/components/List/components/ListSortableItemControls.js +1 -1
  289. package/components/List/components/ListSortableItemTarget.js +4 -4
  290. package/components/List/components/ListTableItem.js +3 -3
  291. package/components/List/index.js +1 -1
  292. package/components/ListMaster/ListMaster.js +1 -1
  293. package/components/ListMaster/components/ListMasterBody.js +1 -1
  294. package/components/ListMaster/components/ListMasterChipGroup.js +1 -1
  295. package/components/ListMaster/components/ListMasterFooter.js +1 -1
  296. package/components/ListMaster/components/ListMasterFooterControls.js +1 -1
  297. package/components/ListMaster/components/ListMasterFooterDescription.js +1 -1
  298. package/components/ListMaster/components/ListMasterHeader.js +2 -2
  299. package/components/ListMaster/components/SelectionControls.js +2 -2
  300. package/components/Loader/LoaderMiddle/LoaderMiddle.js +8 -8
  301. package/components/Loader/LoaderSmall/LoaderSmall.js +10 -10
  302. package/components/LoaderScreen/LoaderScreen.js +5 -5
  303. package/components/Marker/Marker.js +1 -1
  304. package/components/Marker/utils.js +1 -1
  305. package/components/MarkerStatus/MarkerStatus.js +7 -7
  306. package/components/ModalWindow/ModalWindow.js +1 -1
  307. package/components/ModalWindow/components/ModalWindowBody.js +1 -1
  308. package/components/ModalWindow/components/ModalWindowClose.js +1 -1
  309. package/components/ModalWindow/components/ModalWindowContent.js +1 -1
  310. package/components/ModalWindow/components/ModalWindowHeader.js +1 -1
  311. package/components/ModalWindow/components/ModalWindowViewManager.js +1 -1
  312. package/components/MonthYearField/MonthYearFieldTarget.js +4 -4
  313. package/components/MonthYearRange/MonthYearRange.js +19 -24
  314. package/components/MonthYearRange/MonthYearRange.js.map +1 -1
  315. package/components/MonthYearRange/types.js +2 -0
  316. package/components/MonthYearRange/types.js.map +1 -0
  317. package/components/MultiselectField/components/MultiselectFieldDropdown.js +1 -1
  318. package/components/MultiselectField/components/MultiselectFieldDropdownContent.js +5 -5
  319. package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js +1 -1
  320. package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js +1 -1
  321. package/components/Notification/Notification.js +2 -2
  322. package/components/Notification/NotificationGrouped.js +1 -1
  323. package/components/Notification/components/NotificationBody.js +1 -1
  324. package/components/Notification/components/NotificationBodyList.js +1 -1
  325. package/components/Notification/components/NotificationClose.js +1 -1
  326. package/components/Notification/components/NotificationFooter.js +1 -1
  327. package/components/Notification/components/NotificationGroupedFooter.js +1 -1
  328. package/components/Notification/components/NotificationHeader.js +1 -1
  329. package/components/Notification/components/NotificationIcon.js +1 -1
  330. package/components/Notification/components/NotificationTime.js +1 -1
  331. package/components/OrderedList/OrderedList.js +2 -2
  332. package/components/OrderedList/OrderedListItem.js +2 -2
  333. package/components/Overlay/Overlay.js +1 -1
  334. package/components/Overlay/OverlayMask.js +1 -1
  335. package/components/Overlay/OverlayPanel.js +1 -1
  336. package/components/Page/Page.js +1 -1
  337. package/components/Page/components/BodyPage.js +7 -7
  338. package/components/Page/components/FooterPage.js +1 -1
  339. package/components/Page/components/HeaderPage.js +1 -1
  340. package/components/PageIndicators/PageIndicators.js +5 -5
  341. package/components/Pagination/components/PaginationExtended.js +2 -2
  342. package/components/Pagination/components/PaginationNavigationButton.js +2 -2
  343. package/components/Pagination/components/PaginationNavigationExtended.js +1 -1
  344. package/components/Pagination/components/PaginationPageButton.js +2 -2
  345. package/components/Pagination/components/PaginationPageEllipsis.js +1 -1
  346. package/components/Pagination/components/PaginationSelect.js +2 -2
  347. package/components/Radio/Radio.js +9 -9
  348. package/components/Radio/RadioXGroup.js +8 -8
  349. package/components/Radio/RadioYGroup.js +1 -1
  350. package/components/Row/Row.js +4 -4
  351. package/components/SMSField/SMSField.js +2 -2
  352. package/components/SMSField/components/RefreshIcon.js +1 -1
  353. package/components/SMSField/components/SMSFieldInput.js +1 -1
  354. package/components/SMSField/components/SMSFieldRefresh.js +1 -1
  355. package/components/SMSField/components/SMSFieldSubmit.js +1 -1
  356. package/components/SegmentedControl/SegmentedControl.js +9 -9
  357. package/components/SegmentedControl/SegmentedControlSegment.js +3 -3
  358. package/components/SelectExtendedField/SelectExtendedField.js +1 -1
  359. package/components/SelectExtendedField/components/SelectExtendedFieldDropdown.js +1 -1
  360. package/components/SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js +1 -1
  361. package/components/SelectExtendedField/components/SelectExtendedFieldTarget.js +7 -7
  362. package/components/SelectField/SelectField.js +1 -1
  363. package/components/Skeleton/Skeleton.js +5 -5
  364. package/components/SliderExtended/SliderExtended.js +2 -2
  365. package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js +5 -5
  366. package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMark.js +1 -1
  367. package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMarks.js +1 -1
  368. package/components/SliderExtended/components/SliderExtendedRail.js +1 -1
  369. package/components/SliderExtended/components/SliderExtendedTooltip/SliderExtendedTooltip.js +4 -4
  370. package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js +6 -6
  371. package/components/SmallInput/SmallInput.js +1 -1
  372. package/components/Spoiler/Spoiler.js +10 -10
  373. package/components/StatusTracker/StatusTracker.js +2 -2
  374. package/components/StatusTracker/components/StatusTrackerAlert.js +1 -1
  375. package/components/StatusTracker/components/StatusTrackerBody.js +1 -1
  376. package/components/StatusTracker/components/StatusTrackerButton.js +1 -1
  377. package/components/StatusTracker/components/StatusTrackerDescription.js +1 -1
  378. package/components/StatusTracker/components/StatusTrackerFooter.js +1 -1
  379. package/components/StatusTracker/components/StatusTrackerHeader.js +1 -1
  380. package/components/StatusTracker/components/StatusTrackerMedia.js +1 -1
  381. package/components/StatusTracker/components/StatusTrackerStatus.js +1 -1
  382. package/components/StatusTracker/components/StatusTrackerStatusGroup.js +1 -1
  383. package/components/StatusTracker/components/StatusTrackerSum.js +1 -1
  384. package/components/StatusTracker/components/StatusTrackerTitle.js +1 -1
  385. package/components/Step/Step.js +10 -10
  386. package/components/Stepper/Stepper.js +8 -8
  387. package/components/Stepper/StepperExtended.js +1 -1
  388. package/components/Stepper/StepperStep.js +2 -2
  389. package/components/Stepper/StepperStepArrowBorder.js +1 -1
  390. package/components/Suggest/SuggestMobileDropdownContent.js +3 -3
  391. package/components/SuggestField/SuggestField.js +1 -1
  392. package/components/SuggestField/desktop/SuggestFieldDesktop.js +1 -1
  393. package/components/SuggestField/desktop/SuggestFieldDesktopDropdown.js +1 -1
  394. package/components/SuggestField/index.js +1 -1
  395. package/components/SuggestField/mobile/SuggestFieldMobile.js +1 -1
  396. package/components/SuggestField/mobile/SuggestFieldMobileDropdown.js +2 -2
  397. package/components/SuggestField/mobile/SuggestFieldMobileDropdownHint.js +1 -1
  398. package/components/SuggestField/mobile/index.js +1 -1
  399. package/components/SwipeableArea/SwipeableArea.js +8 -8
  400. package/components/Table/ChipPanel.js +1 -1
  401. package/components/Table/ChipPanelLinks.js +1 -1
  402. package/components/Table/FilterPanel.js +2 -2
  403. package/components/Table/MasterTable.js +2 -2
  404. package/components/Table/NoColumns.js +2 -2
  405. package/components/Table/PaginationPanel.js +2 -2
  406. package/components/Table/TableBasic/TableBasic.js +1 -1
  407. package/components/Table/TableBasic/components/TableBasicBody.js +1 -1
  408. package/components/Table/TableBasic/components/TableBasicHeader.js +1 -1
  409. package/components/Table/TableBasic/components/TableBasicRow.js +1 -1
  410. package/components/Table/TableBasicSettings/TableBasicSettings.js +2 -2
  411. package/components/Table/TableBasicSettings/components/ColumnSettingsSortableListItemTarget.js +2 -2
  412. package/components/Table/TableBasicSettings/components/ColumnSettingsStaticListItem.js +1 -1
  413. package/components/Table/TableBasicSettings/components/TableBasicSettingsBody.js +1 -1
  414. package/components/Table/TableBasicSettings/components/TableBasicSettingsFooter.js +1 -1
  415. package/components/Table/TableBasicSettings/components/TableBasicSettingsHeader.js +1 -1
  416. package/components/Table/TableFooter/TableFooter.js +1 -1
  417. package/components/Table/TableFooter/components/TableFooterSummary.js +1 -1
  418. package/components/Table/TableFooter/components/TableFooterSummaryAmount.js +1 -1
  419. package/components/Table/TableFooter/components/TableFooterSummarySelectAllButton.js +1 -1
  420. package/components/Table/TableFooter/components/TableFooterSummarySelectedCount.js +1 -1
  421. package/components/Table/utils.js +1 -1
  422. package/components/Tabs/Tabs.js +8 -8
  423. package/components/TabsExtended/TabsExtended.js +2 -2
  424. package/components/TabsExtended/components/TabsExtendedContent.js +1 -1
  425. package/components/TabsExtended/components/TabsExtendedDropdownWrapper.js +1 -1
  426. package/components/TabsExtended/components/TabsExtendedTab.js +1 -1
  427. package/components/TabsExtended/components/TabsExtendedTabButton.js +1 -1
  428. package/components/TabsExtended/components/TabsExtendedTabsWrapper.js +1 -1
  429. package/components/TabsExtended/utils.js +1 -1
  430. package/components/TabsLine/TabsLine.js +1 -1
  431. package/components/TabsLine/components/TabsLineDesktop.js +1 -1
  432. package/components/TabsLine/components/TabsLineDropdown.js +2 -2
  433. package/components/TabsLine/components/TabsLineItem.js +1 -1
  434. package/components/TabsLine/components/TabsLineMobile.js +2 -2
  435. package/components/Tag/Tag.js +5 -5
  436. package/components/TagColor/TagColor.js +10 -10
  437. package/components/TagGroup/TagGroup.js +4 -4
  438. package/components/Tooltip/components/common/TooltipBody.js +1 -1
  439. package/components/Tooltip/components/common/TooltipLink.js +4 -4
  440. package/components/Tooltip/components/common/TooltipXButton.js +1 -1
  441. package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js +1 -1
  442. package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js +1 -1
  443. package/components/Tooltip/components/mobile/TooltipMobile.js +4 -4
  444. package/components/TopOverlay/TopOverlay.js +6 -6
  445. package/components/TreeView/TreeView.js +1 -1
  446. package/components/TreeView/components/TreeViewGroup.js +1 -1
  447. package/components/TreeView/components/TreeViewNode.js +1 -1
  448. package/components/Typography/Caption.js +7 -7
  449. package/components/Typography/CodeText.js +2 -2
  450. package/components/Typography/Text.js +9 -9
  451. package/components/Typography/Title.js +9 -9
  452. package/components/Typography/constants.js +1 -1
  453. package/components/UnorderedListExtended/UnorderedListExtended.js +2 -2
  454. package/components/UnorderedListExtended/UnorderedListExtendedItem.js +2 -2
  455. package/components/UnorderedListExtended/UnorderedListExtendedItemMarker.js +3 -3
  456. package/components/UploadZone/UploadZone.js +2 -2
  457. package/components/UploadZone/components/UploadZoneInput.js +1 -1
  458. package/components/UploadZone/index.js +1 -1
  459. package/components/index.js +6 -6
  460. package/index.d.ts +42 -18
  461. package/index.js +6 -6
  462. package/package.json +1 -1
  463. package/styles/triplex-next.css +3019 -3017
  464. package/chunks/Card.module-C7xz0eKx.js +0 -32
  465. package/chunks/Card.module-C7xz0eKx.js.map +0 -1
  466. package/chunks/Carousel.module-CXIfk_97.js +0 -26
  467. package/chunks/Carousel.module-CXIfk_97.js.map +0 -1
  468. package/chunks/CheckboxTreeExtended.module-DLKb2rTf.js +0 -24
  469. package/chunks/CheckboxTreeExtended.module-DLKb2rTf.js.map +0 -1
  470. package/chunks/Confirm.module-YWhb2Ve3.js +0 -24
  471. package/chunks/Confirm.module-YWhb2Ve3.js.map +0 -1
  472. package/chunks/DropdownMobile.module-CHJp6QN5.js +0 -40
  473. package/chunks/DropdownMobile.module-CHJp6QN5.js.map +0 -1
  474. package/chunks/Footer.module-52DeBs5u.js +0 -12
  475. package/chunks/Footer.module-52DeBs5u.js.map +0 -1
  476. package/chunks/HeaderLayoutSidebar.module-BvCPxkNk.js.map +0 -1
  477. package/chunks/HeaderTabs.module-DcnxvYN-.js +0 -12
  478. package/chunks/HeaderTabs.module-DcnxvYN-.js.map +0 -1
  479. package/chunks/HeaderTitle.module-gbla84yG.js.map +0 -1
  480. package/chunks/ImageGalleryExtendedMain.module-DEMmSVQp.js +0 -28
  481. package/chunks/ImageGalleryExtendedMain.module-DEMmSVQp.js.map +0 -1
  482. package/chunks/IslandAccordion.module-bwQFP0tP.js +0 -44
  483. package/chunks/IslandAccordion.module-bwQFP0tP.js.map +0 -1
  484. package/chunks/IslandWidgetFooter.module-CP5njAOS.js +0 -18
  485. package/chunks/IslandWidgetFooter.module-CP5njAOS.js.map +0 -1
  486. package/chunks/IslandWidgetHeader.module-Czxumpj0.js +0 -28
  487. package/chunks/IslandWidgetHeader.module-Czxumpj0.js.map +0 -1
  488. package/chunks/LightBoxControls.module-CCqAYXOp.js +0 -26
  489. package/chunks/LightBoxControls.module-CCqAYXOp.js.map +0 -1
  490. package/chunks/LightBoxSideOverlayClose.module-Bu0mbQ2E.js.map +0 -1
  491. package/chunks/ListItemTail.module-DNcipOgP.js +0 -18
  492. package/chunks/ListItemTail.module-DNcipOgP.js.map +0 -1
  493. package/chunks/ListMasterFooter.module-BO7_lx0S.js +0 -14
  494. package/chunks/ListMasterFooter.module-BO7_lx0S.js.map +0 -1
  495. package/chunks/ModalWindow.module-Bb8wLMOR.js +0 -28
  496. package/chunks/ModalWindow.module-Bb8wLMOR.js.map +0 -1
  497. package/chunks/Notification.module-C27U0YZV.js +0 -34
  498. package/chunks/Notification.module-C27U0YZV.js.map +0 -1
  499. package/chunks/Overlay.module-BzjO-w78.js +0 -30
  500. package/chunks/Overlay.module-BzjO-w78.js.map +0 -1
  501. package/chunks/Page.module-BkhV9GYk.js +0 -17
  502. package/chunks/Page.module-BkhV9GYk.js.map +0 -1
  503. package/chunks/SMSField.module-ro6oGp6K.js +0 -30
  504. package/chunks/SMSField.module-ro6oGp6K.js.map +0 -1
  505. package/chunks/SliderExtendedMarks.module-kZFbIl0G.js +0 -24
  506. package/chunks/SliderExtendedMarks.module-kZFbIl0G.js.map +0 -1
  507. package/chunks/StatusTracker.module-C20aPMTU.js +0 -44
  508. package/chunks/StatusTracker.module-C20aPMTU.js.map +0 -1
  509. package/chunks/TableFooter.module-0fRaQavw.js +0 -22
  510. package/chunks/TableFooter.module-0fRaQavw.js.map +0 -1
  511. package/chunks/TabsExtended.module-edmUKSS3.js +0 -26
  512. package/chunks/TabsExtended.module-edmUKSS3.js.map +0 -1
  513. package/chunks/TabsLine.module-0jeKJFx6.js +0 -36
  514. package/chunks/TabsLine.module-0jeKJFx6.js.map +0 -1
  515. package/chunks/TooltipDesktop.module-B4l074WB.js +0 -32
  516. package/chunks/TooltipDesktop.module-B4l074WB.js.map +0 -1
  517. package/chunks/TreeView.module-6Cj379Bu.js +0 -12
  518. package/chunks/TreeView.module-6Cj379Bu.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.js","sources":["../../../src/components/Carousel/Carousel.tsx"],"sourcesContent":["import React, { useState, useMemo, useRef, useLayoutEffect, useCallback, useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport { CarouselContext } from \"./CarouselContext\";\nimport { ICarouselProps } from \"./types\";\nimport { ECarouselScrollMode } from \"./enums\";\nimport { EOrientation } from \"../../enums\";\nimport { resolveViewportPadding } from \"./utils\";\nimport { useLatestRef } from \"../../utils/refs\";\nimport styles from \"./styles/Carousel.module.less\";\nimport { CarouselViewport } from \"./CarouselViewport\";\nimport { CarouselTrack } from \"./CarouselTrack\";\nimport { CarouselItem } from \"./CarouselItem\";\nimport { CarouselPrevButton, CarouselNextButton } from \"./CarouselButton\";\nimport { CarouselIndicators } from \"./CarouselIndicators\";\n\nconst ORIENTATION_TO_PADDING_KEY = {\n [EOrientation.HORIZONTAL]: { start: \"left\", end: \"right\" },\n [EOrientation.VERTICAL]: { start: \"top\", end: \"bottom\" },\n} as const;\n\nconst ORIENTATION_TO_RECT_SIZE_KEY = {\n [EOrientation.HORIZONTAL]: \"width\",\n [EOrientation.VERTICAL]: \"height\",\n} as const;\n\nconst ORIENTATION_TO_CLIENT_SIZE_KEY = {\n [EOrientation.HORIZONTAL]: \"clientWidth\",\n [EOrientation.VERTICAL]: \"clientHeight\",\n} as const;\n\nconst CarouselRoot = React.forwardRef<HTMLDivElement, ICarouselProps>(\n (\n {\n children,\n orientation = EOrientation.HORIZONTAL,\n scrollMode = ECarouselScrollMode.ITEM,\n gap = 16,\n viewportPadding = 0,\n className,\n ...restProps\n },\n ref,\n ) => {\n const [offset, setOffset] = useState(0);\n const [maxOffset, setMaxOffset] = useState(0);\n const [activeIndices, setActiveIndices] = useState<number[]>([]);\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const paddingKey = Array.isArray(viewportPadding) ? viewportPadding.join(\",\") : String(viewportPadding);\n const { metrics: normalizedPadding, style: viewportPaddingStyle } = useMemo(\n () => resolveViewportPadding(viewportPadding),\n // eslint-disable-next-line react-hooks/exhaustive-deps -- мемоизация по значению, а не по ссылке\n [paddingKey],\n );\n\n // Защита от пересоздания обработчиков жестов во Viewport при смене ориентации\n const orientationRef = useLatestRef(orientation);\n // Защита от бесконечного цикла рендеров в updateOffsetAndPages\n const offsetRef = useLatestRef(offset);\n // Защита от stale closures в ResizeObserver\n const currentIndexRef = useLatestRef(currentIndex);\n\n const viewportRef = useRef<HTMLDivElement | null>(null);\n const trackRef = useRef<HTMLDivElement | null>(null);\n const slideRefs = useRef<Map<number, HTMLDivElement>>(new Map());\n const maxOffsetRef = useRef(maxOffset);\n\n // Реф для отслеживания запланированного кадра анимации\n const pageRafIdRef = useRef<number | null>(null);\n // Хранит настройки предыдущего успешного расчёта для авто-сброса кэша\n const lastConfigRef = useRef({ gap, scrollMode, orientation });\n\n const geometryCacheRef = useRef<{\n sizes: Map<number, number>;\n starts: Map<number, number>;\n }>({ sizes: new Map(), starts: new Map() });\n\n const pageMode = scrollMode === ECarouselScrollMode.PAGE;\n\n const getSlideSize = useCallback(\n (index: number) => {\n if (geometryCacheRef.current.sizes.has(index)) {\n // Безопасно: строка выше гарантирует наличие значения в кэше.\n return geometryCacheRef.current.sizes.get(index)!;\n }\n\n const slide = slideRefs.current.get(index);\n if (!slide) return 0;\n\n const rect = slide.getBoundingClientRect();\n const key = ORIENTATION_TO_RECT_SIZE_KEY[orientation];\n const size = rect[key];\n\n geometryCacheRef.current.sizes.set(index, size);\n return size;\n },\n [orientation],\n );\n\n const getSlidesCount = useCallback(() => slideRefs.current.size, []);\n\n const getSlideStart = useCallback(\n (index: number): number => {\n if (index <= 0) {\n return 0;\n }\n\n if (geometryCacheRef.current.starts.has(index)) {\n // Безопасно: строка выше гарантирует наличие значения в кэше.\n return geometryCacheRef.current.starts.get(index)!;\n }\n\n const prevIndex = index - 1;\n const start = getSlideStart(prevIndex) + getSlideSize(prevIndex) + gap;\n\n geometryCacheRef.current.starts.set(index, start);\n return start;\n },\n [gap, getSlideSize],\n );\n\n const getSlideEnd = useCallback(\n (index: number) => {\n return getSlideStart(index) + getSlideSize(index);\n },\n [getSlideStart, getSlideSize],\n );\n\n const getViewportSize = useCallback(() => {\n if (!viewportRef.current) return 0;\n const key = ORIENTATION_TO_CLIENT_SIZE_KEY[orientation];\n return viewportRef.current[key];\n }, [orientation]);\n\n const updateOffsetAndPages = useCallback(\n (index: number) => {\n const lastConfig = lastConfigRef.current;\n if (\n lastConfig.gap !== gap ||\n lastConfig.scrollMode !== scrollMode ||\n lastConfig.orientation !== orientation\n ) {\n geometryCacheRef.current.sizes.clear();\n geometryCacheRef.current.starts.clear();\n lastConfigRef.current = { gap, scrollMode, orientation };\n }\n\n const slidesCount = getSlidesCount();\n if (slidesCount === 0) {\n maxOffsetRef.current = 0;\n setOffset((prev) => (prev !== 0 ? 0 : prev));\n setMaxOffset((prev) => (prev !== 0 ? 0 : prev));\n setActiveIndices(Array.of());\n return;\n }\n\n const totalContentSize = getSlideEnd(slidesCount - 1);\n const containerSize = getViewportSize();\n\n const { start: startKey, end: endKey } = ORIENTATION_TO_PADDING_KEY[orientation];\n const startP = normalizedPadding[startKey];\n const endP = normalizedPadding[endKey];\n\n const calculatedMaxOffset = Math.max(0, totalContentSize + startP + endP - containerSize);\n maxOffsetRef.current = calculatedMaxOffset;\n\n let targetOffset = 0;\n\n if (pageMode && containerSize > 0) {\n const pagesMatrix: number[][] = [];\n let currentPage: number[] = [];\n let currentGroupSize = 0;\n\n for (let i = 0; i < slidesCount; i++) {\n const slideSize = getSlideSize(i);\n const addedSize = currentPage.length > 0 ? slideSize + gap : slideSize;\n\n if (currentGroupSize + addedSize <= containerSize + 1) {\n currentPage.push(i);\n currentGroupSize += addedSize;\n } else {\n if (currentPage.length > 0) pagesMatrix.push(currentPage);\n currentPage = [i];\n currentGroupSize = slideSize;\n }\n }\n\n if (currentPage.length > 0) pagesMatrix.push(currentPage);\n\n const clampedIndex = Math.max(0, Math.min(index, pagesMatrix.length - 1));\n\n if (clampedIndex !== index) {\n if (pageRafIdRef.current !== null) {\n cancelAnimationFrame(pageRafIdRef.current);\n }\n\n pageRafIdRef.current = requestAnimationFrame(() => {\n setCurrentIndex(clampedIndex);\n pageRafIdRef.current = null;\n });\n }\n\n const validPageIndices = Array.from({ length: pagesMatrix.length }, (_, i) => i);\n\n setActiveIndices((prev) => {\n if (prev.length === validPageIndices.length) return prev;\n return validPageIndices;\n });\n\n const currentGroup = pagesMatrix[clampedIndex];\n if (currentGroup && currentGroup.length > 0) {\n const firstSlideIndex = currentGroup[0];\n const lastSlideIndex = currentGroup[currentGroup.length - 1];\n const groupStart = getSlideStart(firstSlideIndex);\n\n const lastSlideSize = getSlideSize(lastSlideIndex);\n const groupEnd = getSlideStart(lastSlideIndex) + lastSlideSize;\n const groupSize = groupEnd - groupStart;\n\n targetOffset = groupStart - (containerSize - groupSize) / 2;\n }\n } else {\n setActiveIndices((prev) => (prev.length === 0 ? prev : []));\n\n const slideStart = getSlideStart(index);\n const slideEnd = getSlideEnd(index);\n\n const currentOffset = offsetRef.current;\n const containerEnd = currentOffset + containerSize;\n\n // Ситуация 1: Слайд шире, чем сам контейнер (огромный слайд)\n if (slideEnd - slideStart > containerSize) {\n if (currentOffset < slideStart - startP) {\n targetOffset = slideStart - startP;\n } else if (currentOffset + containerSize > slideEnd + endP) {\n targetOffset = slideEnd - containerSize + endP;\n } else {\n targetOffset = currentOffset;\n }\n }\n // Ситуация 2: Стандартный слайд (меньше или равен размеру контейнера)\n else {\n if (slideEnd > containerEnd + 1) {\n targetOffset = slideEnd - containerSize + startP + endP;\n } else if (slideStart < currentOffset - 1) {\n targetOffset = slideStart - startP;\n } else {\n targetOffset = currentOffset;\n }\n }\n }\n\n if (targetOffset <= 0 || calculatedMaxOffset === 0) {\n setOffset(0);\n } else if (targetOffset >= calculatedMaxOffset) {\n setOffset(calculatedMaxOffset);\n } else {\n setOffset(targetOffset);\n }\n\n // Обновляем реактивный стейт для синхронизации с кнопками (стрелками)\n setMaxOffset((prev) => (prev !== calculatedMaxOffset ? calculatedMaxOffset : prev));\n },\n [\n gap,\n scrollMode,\n orientation,\n getSlidesCount,\n getSlideEnd,\n getViewportSize,\n normalizedPadding,\n pageMode,\n getSlideSize,\n getSlideStart,\n ],\n );\n\n const nextSlide = useCallback(() => {\n if (pageMode) {\n setCurrentIndex((prev) => (prev === activeIndices.length - 1 ? prev : prev + 1));\n return;\n }\n\n const slidesCount = getSlidesCount();\n const containerSize = getViewportSize();\n\n const currentSlideEnd = getSlideEnd(currentIndex);\n\n const { end: endKey } = ORIENTATION_TO_PADDING_KEY[orientation];\n const endP = normalizedPadding[endKey];\n\n // Случай 1: Мы на огромном слайде, и его правый край всё еще скрыт за экраном\n if (currentSlideEnd + endP > offset + containerSize + 1) {\n // Вычисляем следующий шаг (не дальше, чем правый край слайда с учётом endP)\n const maxSlideOffset = currentSlideEnd - containerSize + endP;\n const nextOffset = Math.min(offset + containerSize, maxSlideOffset);\n const clampedOffset = Math.min(nextOffset, maxOffsetRef.current);\n\n setOffset(clampedOffset);\n return; // Индекс не меняем, просто продвинули скролл внутри слайда\n }\n\n // Случай 2: Текущий слайд закончился, ищем следующий скрытый элемент\n for (let i = currentIndex + 1; i < slidesCount; i++) {\n const slideEnd = getSlideEnd(i);\n\n if (slideEnd + endP > offset + containerSize + 1) {\n setCurrentIndex(i);\n return;\n }\n }\n setCurrentIndex(Math.max(0, slidesCount - 1));\n }, [\n pageMode,\n activeIndices.length,\n getSlidesCount,\n getViewportSize,\n getSlideEnd,\n orientation,\n normalizedPadding,\n offset,\n currentIndex,\n ]);\n\n const prevSlide = useCallback(() => {\n if (pageMode) {\n setCurrentIndex((prev) => (prev === 0 ? prev : prev - 1));\n return;\n }\n\n const containerSize = getViewportSize();\n const currentSlideStart = getSlideStart(currentIndex);\n\n const { start: startKey } = ORIENTATION_TO_PADDING_KEY[orientation];\n const startP = normalizedPadding[startKey];\n\n // Случай 1: Мы на огромном слайде, и его левый край скрыт слева за экраном\n if (currentSlideStart - startP < offset - 1) {\n // Вычисляем шаг назад (не дальше, чем левый край слайда с учётом startP)\n const minSlideOffset = currentSlideStart - startP;\n const prevOffset = Math.max(offset - containerSize, minSlideOffset);\n const clampedOffset = Math.max(0, prevOffset);\n\n setOffset(clampedOffset);\n return; // Индекс не меняем, скроллим назад внутри слайда\n }\n\n // Случай 2: Левый край текущего слайда полностью виден, ищем предыдущие скрытые элементы\n for (let i = currentIndex - 1; i >= 0; i--) {\n const slideStart = getSlideStart(i);\n\n if (slideStart - startP < offset - 1) {\n setCurrentIndex(i);\n return;\n }\n }\n\n setCurrentIndex(0);\n }, [pageMode, getViewportSize, getSlideStart, orientation, normalizedPadding, offset, currentIndex]);\n\n const goToSlide = useCallback(\n (slideIndex: number) => {\n const slidesCount = getSlidesCount();\n if (slidesCount === 0) {\n setCurrentIndex(0);\n return;\n }\n\n const clampedIndex = Math.max(0, Math.min(slideIndex, slidesCount - 1));\n setCurrentIndex(clampedIndex);\n },\n [getSlidesCount],\n );\n\n // ResizeObserver для адаптивности при изменении размеров экрана или контента\n useLayoutEffect(() => {\n if (!viewportRef.current || !trackRef.current) return;\n\n const observer = new ResizeObserver(() => {\n geometryCacheRef.current.sizes.clear();\n geometryCacheRef.current.starts.clear();\n\n updateOffsetAndPages(currentIndexRef.current);\n });\n\n observer.observe(viewportRef.current);\n observer.observe(trackRef.current);\n\n return () => observer.disconnect();\n }, [updateOffsetAndPages]);\n\n // Сброс индекса при изменении ключевых настроек карусели\n useEffect(() => {\n setCurrentIndex(0);\n }, [gap, scrollMode, orientation]);\n\n // Синхронизация смещения при изменении индекса\n useEffect(() => {\n updateOffsetAndPages(currentIndex);\n }, [currentIndex, updateOffsetAndPages]);\n\n // Очистка запланированных анимационных фреймов при размонтировании карусели\n useEffect(() => {\n return () => {\n if (pageRafIdRef.current !== null) {\n cancelAnimationFrame(pageRafIdRef.current);\n }\n };\n }, []);\n\n // Вычисление граничных состояний (актуально для отключения стрелок навигации)\n const atStart = pageMode ? currentIndex === 0 : offset <= 1;\n const atEnd = pageMode\n ? activeIndices.length === 0 || currentIndex >= activeIndices.length - 1\n : maxOffset > 0\n ? offset >= maxOffset - 1\n : true;\n\n const classNames = clsx(styles.carousel, styles[orientation], className);\n\n const contextValue = useMemo(\n () => ({\n gap,\n orientation,\n scrollMode,\n offset,\n activeIndices,\n currentIndex,\n viewportPaddingStyle,\n atStart,\n atEnd,\n nextSlide,\n prevSlide,\n goToSlide,\n orientationRef,\n offsetRef,\n maxOffsetRef,\n viewportRef,\n trackRef,\n slideRefs,\n }),\n [\n gap,\n orientation,\n scrollMode,\n offset,\n activeIndices,\n currentIndex,\n viewportPaddingStyle,\n atStart,\n atEnd,\n nextSlide,\n prevSlide,\n goToSlide,\n ],\n );\n\n return (\n <CarouselContext.Provider value={contextValue}>\n <div className={classNames} {...restProps} ref={ref}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\n\nCarouselRoot.displayName = \"Carousel\";\n\n/** Карусель. */\nexport const Carousel = Object.assign(CarouselRoot, {\n Viewport: CarouselViewport,\n Track: CarouselTrack,\n Item: CarouselItem,\n PrevButton: CarouselPrevButton,\n NextButton: CarouselNextButton,\n Indicators: CarouselIndicators,\n});\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Carousel.js","sources":["../../../src/components/Carousel/Carousel.tsx"],"sourcesContent":["import React, { useState, useMemo, useRef, useLayoutEffect, useCallback, useEffect } from \"react\";\nimport clsx from \"clsx\";\nimport { CarouselContext } from \"./CarouselContext\";\nimport { ICarouselProps } from \"./types\";\nimport { ECarouselScrollMode } from \"./enums\";\nimport { EOrientation } from \"../../enums\";\nimport { resolveViewportPadding } from \"./utils\";\nimport { useLatestRef } from \"../../utils/refs\";\nimport styles from \"./styles/Carousel.module.less\";\nimport { CarouselViewport } from \"./CarouselViewport\";\nimport { CarouselTrack } from \"./CarouselTrack\";\nimport { CarouselItem } from \"./CarouselItem\";\nimport { CarouselPrevButton, CarouselNextButton } from \"./CarouselButton\";\nimport { CarouselIndicators } from \"./CarouselIndicators\";\n\nconst ORIENTATION_TO_PADDING_KEY = {\n [EOrientation.HORIZONTAL]: { start: \"left\", end: \"right\" },\n [EOrientation.VERTICAL]: { start: \"top\", end: \"bottom\" },\n} as const;\n\nconst ORIENTATION_TO_RECT_SIZE_KEY = {\n [EOrientation.HORIZONTAL]: \"width\",\n [EOrientation.VERTICAL]: \"height\",\n} as const;\n\nconst ORIENTATION_TO_CLIENT_SIZE_KEY = {\n [EOrientation.HORIZONTAL]: \"clientWidth\",\n [EOrientation.VERTICAL]: \"clientHeight\",\n} as const;\n\n/** Контейнер составной карусели: управляет геометрией, текущим слайдом и состоянием навигации. */\nconst CarouselRoot = React.forwardRef<HTMLDivElement, ICarouselProps>(\n (\n {\n children,\n orientation = EOrientation.HORIZONTAL,\n scrollMode = ECarouselScrollMode.ITEM,\n gap = 16,\n viewportPadding = 0,\n className,\n ...restProps\n },\n ref,\n ) => {\n const [offset, setOffset] = useState(0);\n const [maxOffset, setMaxOffset] = useState(0);\n const [activeIndices, setActiveIndices] = useState<number[]>([]);\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const paddingKey = Array.isArray(viewportPadding) ? viewportPadding.join(\",\") : String(viewportPadding);\n const { metrics: normalizedPadding, style: viewportPaddingStyle } = useMemo(\n () => resolveViewportPadding(viewportPadding),\n // eslint-disable-next-line react-hooks/exhaustive-deps -- мемоизация по значению, а не по ссылке\n [paddingKey],\n );\n\n // Защита от пересоздания обработчиков жестов во Viewport при смене ориентации\n const orientationRef = useLatestRef(orientation);\n // Защита от бесконечного цикла рендеров в updateOffsetAndPages\n const offsetRef = useLatestRef(offset);\n // Защита от stale closures в ResizeObserver\n const currentIndexRef = useLatestRef(currentIndex);\n\n const viewportRef = useRef<HTMLDivElement | null>(null);\n const trackRef = useRef<HTMLDivElement | null>(null);\n const slideRefs = useRef<Map<number, HTMLDivElement>>(new Map());\n const maxOffsetRef = useRef(maxOffset);\n\n // Реф для отслеживания запланированного кадра анимации\n const pageRafIdRef = useRef<number | null>(null);\n // Хранит настройки предыдущего успешного расчёта для авто-сброса кэша\n const lastConfigRef = useRef({ gap, scrollMode, orientation });\n\n const geometryCacheRef = useRef<{\n sizes: Map<number, number>;\n starts: Map<number, number>;\n }>({ sizes: new Map(), starts: new Map() });\n\n const pageMode = scrollMode === ECarouselScrollMode.PAGE;\n\n const getSlideSize = useCallback(\n (index: number) => {\n if (geometryCacheRef.current.sizes.has(index)) {\n // Безопасно: строка выше гарантирует наличие значения в кэше.\n return geometryCacheRef.current.sizes.get(index)!;\n }\n\n const slide = slideRefs.current.get(index);\n if (!slide) return 0;\n\n const rect = slide.getBoundingClientRect();\n const key = ORIENTATION_TO_RECT_SIZE_KEY[orientation];\n const size = rect[key];\n\n geometryCacheRef.current.sizes.set(index, size);\n return size;\n },\n [orientation],\n );\n\n const getSlidesCount = useCallback(() => slideRefs.current.size, []);\n\n const getSlideStart = useCallback(\n (index: number): number => {\n if (index <= 0) {\n return 0;\n }\n\n if (geometryCacheRef.current.starts.has(index)) {\n // Безопасно: строка выше гарантирует наличие значения в кэше.\n return geometryCacheRef.current.starts.get(index)!;\n }\n\n const prevIndex = index - 1;\n const start = getSlideStart(prevIndex) + getSlideSize(prevIndex) + gap;\n\n geometryCacheRef.current.starts.set(index, start);\n return start;\n },\n [gap, getSlideSize],\n );\n\n const getSlideEnd = useCallback(\n (index: number) => {\n return getSlideStart(index) + getSlideSize(index);\n },\n [getSlideStart, getSlideSize],\n );\n\n const getViewportSize = useCallback(() => {\n if (!viewportRef.current) return 0;\n const key = ORIENTATION_TO_CLIENT_SIZE_KEY[orientation];\n return viewportRef.current[key];\n }, [orientation]);\n\n const updateOffsetAndPages = useCallback(\n (index: number) => {\n const lastConfig = lastConfigRef.current;\n if (\n lastConfig.gap !== gap ||\n lastConfig.scrollMode !== scrollMode ||\n lastConfig.orientation !== orientation\n ) {\n geometryCacheRef.current.sizes.clear();\n geometryCacheRef.current.starts.clear();\n lastConfigRef.current = { gap, scrollMode, orientation };\n }\n\n const slidesCount = getSlidesCount();\n if (slidesCount === 0) {\n maxOffsetRef.current = 0;\n setOffset((prev) => (prev !== 0 ? 0 : prev));\n setMaxOffset((prev) => (prev !== 0 ? 0 : prev));\n setActiveIndices(Array.of());\n return;\n }\n\n const totalContentSize = getSlideEnd(slidesCount - 1);\n const containerSize = getViewportSize();\n\n const { start: startKey, end: endKey } = ORIENTATION_TO_PADDING_KEY[orientation];\n const startP = normalizedPadding[startKey];\n const endP = normalizedPadding[endKey];\n // Видимая область для группировки и центрирования страниц — без отступов Viewport\n const pageSize = Math.max(0, containerSize - startP - endP);\n\n const calculatedMaxOffset = Math.max(0, totalContentSize + startP + endP - containerSize);\n maxOffsetRef.current = calculatedMaxOffset;\n\n let targetOffset = 0;\n\n if (pageMode && containerSize > 0) {\n const pagesMatrix: number[][] = [];\n let currentPage: number[] = [];\n let currentGroupSize = 0;\n\n for (let i = 0; i < slidesCount; i++) {\n const slideSize = getSlideSize(i);\n const addedSize = currentPage.length > 0 ? slideSize + gap : slideSize;\n\n if (currentGroupSize + addedSize <= pageSize + 1) {\n currentPage.push(i);\n currentGroupSize += addedSize;\n } else {\n if (currentPage.length > 0) pagesMatrix.push(currentPage);\n currentPage = [i];\n currentGroupSize = slideSize;\n }\n }\n\n if (currentPage.length > 0) pagesMatrix.push(currentPage);\n\n const clampedIndex = Math.max(0, Math.min(index, pagesMatrix.length - 1));\n\n if (clampedIndex !== index) {\n if (pageRafIdRef.current !== null) {\n cancelAnimationFrame(pageRafIdRef.current);\n }\n\n pageRafIdRef.current = requestAnimationFrame(() => {\n setCurrentIndex(clampedIndex);\n pageRafIdRef.current = null;\n });\n }\n\n const validPageIndices = Array.from({ length: pagesMatrix.length }, (_, i) => i);\n\n setActiveIndices((prev) => {\n if (prev.length === validPageIndices.length) return prev;\n return validPageIndices;\n });\n\n const currentGroup = pagesMatrix[clampedIndex];\n if (currentGroup && currentGroup.length > 0) {\n const firstSlideIndex = currentGroup[0];\n const lastSlideIndex = currentGroup[currentGroup.length - 1];\n const groupStart = getSlideStart(firstSlideIndex);\n\n const lastSlideSize = getSlideSize(lastSlideIndex);\n const groupEnd = getSlideStart(lastSlideIndex) + lastSlideSize;\n const groupSize = groupEnd - groupStart;\n\n targetOffset = groupStart - (pageSize - groupSize) / 2;\n }\n } else {\n setActiveIndices((prev) => (prev.length === 0 ? prev : []));\n\n const slideStart = getSlideStart(index);\n const slideEnd = getSlideEnd(index);\n\n const currentOffset = offsetRef.current;\n const containerEnd = currentOffset + containerSize;\n\n // Ситуация 1: Слайд шире, чем сам контейнер (огромный слайд)\n if (slideEnd - slideStart > containerSize) {\n if (currentOffset < slideStart - startP) {\n targetOffset = slideStart - startP;\n } else if (currentOffset + containerSize > slideEnd + endP) {\n targetOffset = slideEnd - containerSize + endP;\n } else {\n targetOffset = currentOffset;\n }\n }\n // Ситуация 2: Стандартный слайд (меньше или равен размеру контейнера)\n else {\n if (slideEnd > containerEnd + 1) {\n targetOffset = slideEnd - containerSize + startP + endP;\n } else if (slideStart < currentOffset - 1) {\n targetOffset = slideStart - startP;\n } else {\n targetOffset = currentOffset;\n }\n }\n }\n\n if (targetOffset <= 0 || calculatedMaxOffset === 0) {\n setOffset(0);\n } else if (targetOffset >= calculatedMaxOffset) {\n setOffset(calculatedMaxOffset);\n } else {\n setOffset(targetOffset);\n }\n\n // Обновляем реактивный стейт для синхронизации с кнопками (стрелками)\n setMaxOffset((prev) => (prev !== calculatedMaxOffset ? calculatedMaxOffset : prev));\n },\n [\n gap,\n scrollMode,\n orientation,\n getSlidesCount,\n getSlideEnd,\n getViewportSize,\n normalizedPadding,\n pageMode,\n getSlideSize,\n getSlideStart,\n offsetRef,\n ],\n );\n\n const nextSlide = useCallback(() => {\n if (pageMode) {\n setCurrentIndex((prev) => (prev === activeIndices.length - 1 ? prev : prev + 1));\n return;\n }\n\n const slidesCount = getSlidesCount();\n const containerSize = getViewportSize();\n\n const currentSlideEnd = getSlideEnd(currentIndex);\n\n const { end: endKey } = ORIENTATION_TO_PADDING_KEY[orientation];\n const endP = normalizedPadding[endKey];\n\n // Случай 1: Мы на огромном слайде, и его правый край всё еще скрыт за экраном\n if (currentSlideEnd + endP > offset + containerSize + 1) {\n // Вычисляем следующий шаг (не дальше, чем правый край слайда с учётом endP)\n const maxSlideOffset = currentSlideEnd - containerSize + endP;\n const nextOffset = Math.min(offset + containerSize, maxSlideOffset);\n const clampedOffset = Math.min(nextOffset, maxOffsetRef.current);\n\n setOffset(clampedOffset);\n return; // Индекс не меняем, просто продвинули скролл внутри слайда\n }\n\n // Случай 2: Текущий слайд закончился, ищем следующий скрытый элемент\n for (let i = currentIndex + 1; i < slidesCount; i++) {\n const slideEnd = getSlideEnd(i);\n\n if (slideEnd + endP > offset + containerSize + 1) {\n setCurrentIndex(i);\n return;\n }\n }\n setCurrentIndex(Math.max(0, slidesCount - 1));\n }, [\n pageMode,\n activeIndices.length,\n getSlidesCount,\n getViewportSize,\n getSlideEnd,\n orientation,\n normalizedPadding,\n offset,\n currentIndex,\n ]);\n\n const prevSlide = useCallback(() => {\n if (pageMode) {\n setCurrentIndex((prev) => (prev === 0 ? prev : prev - 1));\n return;\n }\n\n const containerSize = getViewportSize();\n const currentSlideStart = getSlideStart(currentIndex);\n\n const { start: startKey } = ORIENTATION_TO_PADDING_KEY[orientation];\n const startP = normalizedPadding[startKey];\n\n // Случай 1: Мы на огромном слайде, и его левый край скрыт слева за экраном\n if (currentSlideStart - startP < offset - 1) {\n // Вычисляем шаг назад (не дальше, чем левый край слайда с учётом startP)\n const minSlideOffset = currentSlideStart - startP;\n const prevOffset = Math.max(offset - containerSize, minSlideOffset);\n const clampedOffset = Math.max(0, prevOffset);\n\n setOffset(clampedOffset);\n return; // Индекс не меняем, скроллим назад внутри слайда\n }\n\n // Случай 2: Левый край текущего слайда полностью виден, ищем предыдущие скрытые элементы\n for (let i = currentIndex - 1; i >= 0; i--) {\n const slideStart = getSlideStart(i);\n\n if (slideStart - startP < offset - 1) {\n setCurrentIndex(i);\n return;\n }\n }\n\n setCurrentIndex(0);\n }, [pageMode, getViewportSize, getSlideStart, orientation, normalizedPadding, offset, currentIndex]);\n\n const goToSlide = useCallback(\n (slideIndex: number) => {\n const slidesCount = getSlidesCount();\n if (slidesCount === 0) {\n setCurrentIndex(0);\n return;\n }\n\n const clampedIndex = Math.max(0, Math.min(slideIndex, slidesCount - 1));\n setCurrentIndex(clampedIndex);\n },\n [getSlidesCount],\n );\n\n // ResizeObserver для адаптивности при изменении размеров экрана или контента\n useLayoutEffect(() => {\n if (!viewportRef.current || !trackRef.current) return;\n\n const observer = new ResizeObserver(() => {\n geometryCacheRef.current.sizes.clear();\n geometryCacheRef.current.starts.clear();\n\n updateOffsetAndPages(currentIndexRef.current);\n });\n\n observer.observe(viewportRef.current);\n observer.observe(trackRef.current);\n\n return () => observer.disconnect();\n }, [updateOffsetAndPages, currentIndexRef]);\n\n // Сброс индекса при изменении ключевых настроек карусели\n useEffect(() => {\n setCurrentIndex(0);\n }, [gap, scrollMode, orientation]);\n\n // Синхронизация смещения при изменении индекса\n useEffect(() => {\n updateOffsetAndPages(currentIndex);\n }, [currentIndex, updateOffsetAndPages]);\n\n // Очистка запланированных анимационных фреймов при размонтировании карусели\n useEffect(() => {\n return () => {\n if (pageRafIdRef.current !== null) {\n cancelAnimationFrame(pageRafIdRef.current);\n }\n };\n }, []);\n\n // Вычисление граничных состояний (актуально для отключения стрелок навигации)\n const atStart = pageMode ? currentIndex === 0 : offset <= 1;\n const atEnd = pageMode\n ? activeIndices.length === 0 || currentIndex >= activeIndices.length - 1\n : maxOffset > 0\n ? offset >= maxOffset - 1\n : true;\n\n const classNames = clsx(styles.carousel, styles[orientation], className);\n\n const contextValue = useMemo(\n () => ({\n gap,\n orientation,\n scrollMode,\n offset,\n activeIndices,\n currentIndex,\n viewportPaddingStyle,\n atStart,\n atEnd,\n nextSlide,\n prevSlide,\n goToSlide,\n orientationRef,\n offsetRef,\n maxOffsetRef,\n viewportRef,\n trackRef,\n slideRefs,\n }),\n [\n gap,\n orientation,\n scrollMode,\n offset,\n activeIndices,\n currentIndex,\n viewportPaddingStyle,\n atStart,\n atEnd,\n nextSlide,\n prevSlide,\n goToSlide,\n orientationRef,\n offsetRef,\n ],\n );\n\n return (\n <CarouselContext.Provider value={contextValue}>\n <div className={classNames} {...restProps} ref={ref}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\n\nCarouselRoot.displayName = \"Carousel\";\n\n/** Составная карусель с прокруткой по элементам или страницам в горизонтальной или вертикальной ориентации. */\nexport const Carousel = Object.assign(CarouselRoot, {\n Viewport: CarouselViewport,\n Track: CarouselTrack,\n Item: CarouselItem,\n PrevButton: CarouselPrevButton,\n NextButton: CarouselNextButton,\n Indicators: CarouselIndicators,\n});\n"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { useMatchMedia } from "../MediaWidth/useMatchMedia.js";
6
6
  import { ButtonIcon } from "../Button/ButtonIcon.js";
7
7
  import { CaretupStrokeSrvIcon20, CaretleftStrokeSrvIcon20, CaretdownStrokeSrvIcon20, CaretrightStrokeSrvIcon20 } from "@sberbusiness/icons-next";
8
8
  import { EOrientation } from "../../enums/EOrientation.js";
9
- import { s as styles } from "../../chunks/Carousel.module-CXIfk_97.js";
9
+ import { s as styles } from "../../chunks/Carousel.module-D6e_v_nx.js";
10
10
  const ORIENTATION_TO_PREV_ICON_MAP = {
11
11
  [EOrientation.HORIZONTAL]: /* @__PURE__ */ jsx(CaretleftStrokeSrvIcon20, { paletteIndex: 7 }),
12
12
  [EOrientation.VERTICAL]: /* @__PURE__ */ jsx(CaretupStrokeSrvIcon20, { paletteIndex: 7 })
@@ -4,7 +4,7 @@ import { c as clsx } from "../../chunks/vendor-Bf_-FiU6.js";
4
4
  import { CarouselContext } from "./CarouselContext.js";
5
5
  import { ECarouselScrollMode } from "./enums.js";
6
6
  import { PageIndicators } from "../PageIndicators/PageIndicators.js";
7
- import { s as styles } from "../../chunks/Carousel.module-CXIfk_97.js";
7
+ import { s as styles } from "../../chunks/Carousel.module-D6e_v_nx.js";
8
8
  const CarouselIndicators = React.forwardRef(
9
9
  ({ className, ...restProps }, ref) => {
10
10
  const { currentIndex, orientation, scrollMode, activeIndices, goToSlide } = useContext(CarouselContext);
@@ -3,7 +3,7 @@ import React, { useContext, useRef, useCallback } from "react";
3
3
  import { c as clsx } from "../../chunks/vendor-Bf_-FiU6.js";
4
4
  import { CarouselContext } from "./CarouselContext.js";
5
5
  import { mergeRefs } from "../../utils/refs.js";
6
- import { s as styles } from "../../chunks/Carousel.module-CXIfk_97.js";
6
+ import { s as styles } from "../../chunks/Carousel.module-D6e_v_nx.js";
7
7
  const CarouselItem = React.forwardRef(
8
8
  ({ children, className, index, ...restProps }, ref) => {
9
9
  const { slideRefs } = useContext(CarouselContext);
@@ -21,7 +21,7 @@ const CarouselItem = React.forwardRef(
21
21
  lastRegisteredIndexRef.current = null;
22
22
  }
23
23
  },
24
- [index]
24
+ [index, slideRefs]
25
25
  );
26
26
  const combinedRef = mergeRefs(ref, registerItemRef);
27
27
  return /* @__PURE__ */ jsx("div", { className: clsx(styles.slide, className), role: "group", ...restProps, ref: combinedRef, children });
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselItem.js","sources":["../../../src/components/Carousel/CarouselItem.tsx"],"sourcesContent":["import React, { useContext, useRef, useCallback } from \"react\";\nimport clsx from \"clsx\";\nimport { ICarouselItemProps } from \"./types\";\nimport { CarouselContext } from \"./CarouselContext\";\nimport { mergeRefs } from \"../../utils/refs\";\nimport styles from \"./styles/Carousel.module.less\";\n\nexport const CarouselItem = React.forwardRef<HTMLDivElement, ICarouselItemProps>(\n ({ children, className, index, ...restProps }, ref) => {\n const { slideRefs } = useContext(CarouselContext);\n\n const lastRegisteredIndexRef = useRef<number | null>(null);\n\n const registerItemRef = useCallback(\n (node: HTMLDivElement | null) => {\n if (node) {\n if (lastRegisteredIndexRef.current !== null && lastRegisteredIndexRef.current !== index) {\n slideRefs.current.delete(lastRegisteredIndexRef.current);\n }\n slideRefs.current.set(index, node);\n lastRegisteredIndexRef.current = index;\n } else if (lastRegisteredIndexRef.current !== null) {\n slideRefs.current.delete(lastRegisteredIndexRef.current);\n lastRegisteredIndexRef.current = null;\n }\n },\n [index],\n );\n\n const combinedRef = mergeRefs(ref, registerItemRef);\n\n return (\n <div className={clsx(styles.slide, className)} role=\"group\" {...restProps} ref={combinedRef}>\n {children}\n </div>\n );\n },\n);\n\nCarouselItem.displayName = \"Carousel.Item\";\n"],"names":[],"mappings":";;;;;;AAOO,MAAM,eAAe,MAAM;AAAA,EAC9B,CAAC,EAAE,UAAU,WAAW,OAAO,GAAG,UAAA,GAAa,QAAQ;AACnD,UAAM,EAAE,UAAA,IAAc,WAAW,eAAe;AAEhD,UAAM,yBAAyB,OAAsB,IAAI;AAEzD,UAAM,kBAAkB;AAAA,MACpB,CAAC,SAAgC;AAC7B,YAAI,MAAM;AACN,cAAI,uBAAuB,YAAY,QAAQ,uBAAuB,YAAY,OAAO;AACrF,sBAAU,QAAQ,OAAO,uBAAuB,OAAO;AAAA,UAC3D;AACA,oBAAU,QAAQ,IAAI,OAAO,IAAI;AACjC,iCAAuB,UAAU;AAAA,QACrC,WAAW,uBAAuB,YAAY,MAAM;AAChD,oBAAU,QAAQ,OAAO,uBAAuB,OAAO;AACvD,iCAAuB,UAAU;AAAA,QACrC;AAAA,MACJ;AAAA,MACA,CAAC,KAAK;AAAA,IAAA;AAGV,UAAM,cAAc,UAAU,KAAK,eAAe;AAElD,WACI,oBAAC,OAAA,EAAI,WAAW,KAAK,OAAO,OAAO,SAAS,GAAG,MAAK,SAAS,GAAG,WAAW,KAAK,aAC3E,UACL;AAAA,EAER;AACJ;AAEA,aAAa,cAAc;"}
1
+ {"version":3,"file":"CarouselItem.js","sources":["../../../src/components/Carousel/CarouselItem.tsx"],"sourcesContent":["import React, { useContext, useRef, useCallback } from \"react\";\nimport clsx from \"clsx\";\nimport { ICarouselItemProps } from \"./types\";\nimport { CarouselContext } from \"./CarouselContext\";\nimport { mergeRefs } from \"../../utils/refs\";\nimport styles from \"./styles/Carousel.module.less\";\n\n/** Слайд карусели: регистрирует свой DOM-узел по индексу для измерения и навигации. */\nexport const CarouselItem = React.forwardRef<HTMLDivElement, ICarouselItemProps>(\n ({ children, className, index, ...restProps }, ref) => {\n const { slideRefs } = useContext(CarouselContext);\n\n const lastRegisteredIndexRef = useRef<number | null>(null);\n\n const registerItemRef = useCallback(\n (node: HTMLDivElement | null) => {\n if (node) {\n if (lastRegisteredIndexRef.current !== null && lastRegisteredIndexRef.current !== index) {\n slideRefs.current.delete(lastRegisteredIndexRef.current);\n }\n slideRefs.current.set(index, node);\n lastRegisteredIndexRef.current = index;\n } else if (lastRegisteredIndexRef.current !== null) {\n slideRefs.current.delete(lastRegisteredIndexRef.current);\n lastRegisteredIndexRef.current = null;\n }\n },\n [index, slideRefs],\n );\n\n const combinedRef = mergeRefs(ref, registerItemRef);\n\n return (\n <div className={clsx(styles.slide, className)} role=\"group\" {...restProps} ref={combinedRef}>\n {children}\n </div>\n );\n },\n);\n\nCarouselItem.displayName = \"Carousel.Item\";\n"],"names":[],"mappings":";;;;;;AAQO,MAAM,eAAe,MAAM;AAAA,EAC9B,CAAC,EAAE,UAAU,WAAW,OAAO,GAAG,UAAA,GAAa,QAAQ;AACnD,UAAM,EAAE,UAAA,IAAc,WAAW,eAAe;AAEhD,UAAM,yBAAyB,OAAsB,IAAI;AAEzD,UAAM,kBAAkB;AAAA,MACpB,CAAC,SAAgC;AAC7B,YAAI,MAAM;AACN,cAAI,uBAAuB,YAAY,QAAQ,uBAAuB,YAAY,OAAO;AACrF,sBAAU,QAAQ,OAAO,uBAAuB,OAAO;AAAA,UAC3D;AACA,oBAAU,QAAQ,IAAI,OAAO,IAAI;AACjC,iCAAuB,UAAU;AAAA,QACrC,WAAW,uBAAuB,YAAY,MAAM;AAChD,oBAAU,QAAQ,OAAO,uBAAuB,OAAO;AACvD,iCAAuB,UAAU;AAAA,QACrC;AAAA,MACJ;AAAA,MACA,CAAC,OAAO,SAAS;AAAA,IAAA;AAGrB,UAAM,cAAc,UAAU,KAAK,eAAe;AAElD,WACI,oBAAC,OAAA,EAAI,WAAW,KAAK,OAAO,OAAO,SAAS,GAAG,MAAK,SAAS,GAAG,WAAW,KAAK,aAC3E,UACL;AAAA,EAER;AACJ;AAEA,aAAa,cAAc;"}
@@ -4,7 +4,7 @@ import { c as clsx } from "../../chunks/vendor-Bf_-FiU6.js";
4
4
  import { CarouselContext } from "./CarouselContext.js";
5
5
  import { mergeRefs } from "../../utils/refs.js";
6
6
  import { ORIENTATION_TRANSFORM } from "./constants.js";
7
- import { s as styles } from "../../chunks/Carousel.module-CXIfk_97.js";
7
+ import { s as styles } from "../../chunks/Carousel.module-D6e_v_nx.js";
8
8
  const CarouselTrack = React.forwardRef(
9
9
  ({ children, className, style, ...restProps }, ref) => {
10
10
  const { gap, orientation, offset, trackRef } = useContext(CarouselContext);
@@ -5,7 +5,7 @@ import { CarouselContext } from "./CarouselContext.js";
5
5
  import { mergeRefs } from "../../utils/refs.js";
6
6
  import { ORIENTATION_TRANSFORM } from "./constants.js";
7
7
  import { EOrientation } from "../../enums/EOrientation.js";
8
- import { s as styles } from "../../chunks/Carousel.module-CXIfk_97.js";
8
+ import { s as styles } from "../../chunks/Carousel.module-D6e_v_nx.js";
9
9
  const ORIENTATION_TO_TOUCH_KEY = {
10
10
  [EOrientation.HORIZONTAL]: "clientX",
11
11
  [EOrientation.VERTICAL]: "clientY"
@@ -2,7 +2,7 @@ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import React, { useState, useRef, useCallback, useEffect } from "react";
3
3
  import { scrollSmoothHorizontally } from "../../utils/scroll.js";
4
4
  import { i as isEqual } from "../../chunks/vendor-Bf_-FiU6.js";
5
- const carouselExtended = "carouselExtended__993bbe7e";
5
+ const carouselExtended = "carouselExtended__d6309f5a";
6
6
  const styles = {
7
7
  carouselExtended
8
8
  };
@@ -9,15 +9,15 @@ import { Text } from "../Typography/Text.js";
9
9
  import "../Typography/Title.js";
10
10
  import { EComponentSize } from "../../enums/EComponentSize.js";
11
11
  import { createSizeToClassNameMap } from "../../utils/classNameMaps.js";
12
- const label = "label__6c819875";
13
- const sm = "sm__7f39e848";
14
- const nonempty = "nonempty__7439b7aa";
15
- const md = "md__acb6691e";
16
- const lg = "lg__17204a10";
17
- const disabled = "disabled__784c4247";
18
- const checkbox = "checkbox__021be195";
19
- const checkboxIcon = "checkboxIcon__8f407fed";
20
- const checkmarkIcon = "checkmarkIcon__f31dcfc9";
12
+ const label = "label__1a6853cb";
13
+ const sm = "sm__5cfbe66b";
14
+ const nonempty = "nonempty__b6727651";
15
+ const md = "md__4a8c3ca6";
16
+ const lg = "lg__52d212cf";
17
+ const disabled = "disabled__72ebba07";
18
+ const checkbox = "checkbox__079fba8c";
19
+ const checkboxIcon = "checkboxIcon__ff2cdbc1";
20
+ const checkmarkIcon = "checkmarkIcon__9b866755";
21
21
  const styles = {
22
22
  label,
23
23
  sm,
@@ -53,7 +53,7 @@ const Checkbox = React.forwardRef((props, ref) => {
53
53
  labelAttributes == null ? void 0 : labelAttributes.className
54
54
  );
55
55
  const CheckmarkIcon = bulk ? CheckboxbulkStrokeSrvIcon24 : CheckboxtickStrokeSrvIcon24;
56
- return /* @__PURE__ */ jsxs("label", { ...labelAttributes, className: labelClassName, "data-tx": "0.51.0", children: [
56
+ return /* @__PURE__ */ jsxs("label", { ...labelAttributes, className: labelClassName, "data-tx": "0.52.0", children: [
57
57
  /* @__PURE__ */ jsx("input", { type: "checkbox", className: styles.checkbox, disabled: disabled2, ...inputAttributes, ref }),
58
58
  /* @__PURE__ */ jsx("span", { className: styles.checkboxIcon }),
59
59
  /* @__PURE__ */ jsx(CheckmarkIcon, { className: styles.checkmarkIcon, paletteIndex: 7 }),
@@ -1,17 +1,17 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import React from "react";
3
3
  import { c as clsx } from "../../chunks/vendor-Bf_-FiU6.js";
4
- const checkboxXGroup = "checkboxXGroup__cc0b2fac";
5
- const label = "label__6c819875";
4
+ const checkboxXGroup = "checkboxXGroup__0d43fae1";
5
+ const label = "label__1a6853cb";
6
6
  const styles = {
7
7
  checkboxXGroup,
8
- "indent-12": "indent-12__3bfd8ae6",
8
+ "indent-12": "indent-12__f2825b3e",
9
9
  label,
10
- "indent-16": "indent-16__213a91d8",
11
- "indent-20": "indent-20__52407a39",
12
- "indent-24": "indent-24__ac32a827",
13
- "indent-28": "indent-28__6677e09a",
14
- "indent-32": "indent-32__31368569"
10
+ "indent-16": "indent-16__16af8a9f",
11
+ "indent-20": "indent-20__99816cfc",
12
+ "indent-24": "indent-24__263bb2b4",
13
+ "indent-28": "indent-28__f7b0d461",
14
+ "indent-32": "indent-32__ebc8f6c4"
15
15
  };
16
16
  const CheckboxXGroup = React.forwardRef((props, ref) => {
17
17
  const { children, className, indent = 12, ...rest } = props;
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import React from "react";
3
3
  import { c as clsx } from "../../chunks/vendor-Bf_-FiU6.js";
4
- const checkboxYGroup = "checkboxYGroup__5d9f27b4";
4
+ const checkboxYGroup = "checkboxYGroup__fc49852a";
5
5
  const styles = {
6
6
  checkboxYGroup
7
7
  };
@@ -8,7 +8,7 @@ import { useMobileView } from "../MobileView/useMobileView.js";
8
8
  import { CheckboxTreeExtendedContext } from "./CheckboxTreeExtendedContext.js";
9
9
  import { CheckboxTreeExtendedCheckbox } from "./components/CheckboxTreeExtendedCheckbox.js";
10
10
  import { CheckboxTreeExtendedNode } from "./components/CheckboxTreeExtendedNode.js";
11
- import { s as styles } from "../../chunks/CheckboxTreeExtended.module-DLKb2rTf.js";
11
+ import { s as styles } from "../../chunks/CheckboxTreeExtended.module-CcMn-i5_.js";
12
12
  const CheckboxTreeExtended = Object.assign(
13
13
  React.forwardRef(
14
14
  ({ className, size = EComponentSize.MD, ...rest }, ref) => {
@@ -2,7 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { useRef, useEffect } from "react";
3
3
  import { CaretdownStrokeSrvIcon16 } from "@sberbusiness/icons-next";
4
4
  import { EVENT_KEY_CODES } from "../../../utils/keyboard.js";
5
- import { s as styles } from "../../../chunks/CheckboxTreeExtended.module-DLKb2rTf.js";
5
+ import { s as styles } from "../../../chunks/CheckboxTreeExtended.module-CcMn-i5_.js";
6
6
  const CheckboxTreeExtendedArrow = ({ active, opened, toggle }) => {
7
7
  const arrowNode = useRef(null);
8
8
  const prevActive = useRef(active);
@@ -3,7 +3,7 @@ import { useRef, useContext, useEffect } from "react";
3
3
  import { c as clsx } from "../../../chunks/vendor-Bf_-FiU6.js";
4
4
  import { Checkbox } from "../../Checkbox/Checkbox.js";
5
5
  import { CheckboxTreeExtendedContext } from "../CheckboxTreeExtendedContext.js";
6
- import { s as styles } from "../../../chunks/CheckboxTreeExtended.module-DLKb2rTf.js";
6
+ import { s as styles } from "../../../chunks/CheckboxTreeExtended.module-CcMn-i5_.js";
7
7
  const CheckboxTreeExtendedCheckbox = ({
8
8
  active,
9
9
  className,
@@ -6,7 +6,7 @@ import { CollapsibleTreeExtended } from "../../CollapsibleTreeExtended/Collapsib
6
6
  import { CheckboxTreeExtendedContext } from "../CheckboxTreeExtendedContext.js";
7
7
  import { isStaticCheckboxTreeExtended } from "../isStaticCheckboxTreeExtended.js";
8
8
  import "./CheckboxTreeExtendedArrow.js";
9
- import { s as styles } from "../../../chunks/CheckboxTreeExtended.module-DLKb2rTf.js";
9
+ import { s as styles } from "../../../chunks/CheckboxTreeExtended.module-CcMn-i5_.js";
10
10
  const sizeToClassNameMap = createSizeToClassNameMap(styles);
11
11
  const CheckboxTreeExtendedNode = ({
12
12
  children,
@@ -7,7 +7,7 @@ import "../../utils/keyboard.js";
7
7
  import "../Badge/Badge.js";
8
8
  import "../IconWrapper/IconWrapper.js";
9
9
  import "./enums.js";
10
- import { C } from "../../chunks/Chip-SVIdZjNC.js";
10
+ import { C } from "../../chunks/Chip-KA-wuCSC.js";
11
11
  export {
12
12
  C as Chip
13
13
  };
@@ -4,7 +4,7 @@ import { c as clsx } from "../../chunks/vendor-Bf_-FiU6.js";
4
4
  import { CrossStrokeSrvIcon24, CrossStrokeSrvIcon20, CrossStrokeSrvIcon16 } from "@sberbusiness/icons-next";
5
5
  import { EComponentSize } from "../../enums/EComponentSize.js";
6
6
  import { ButtonIcon } from "../Button/ButtonIcon.js";
7
- const chipClearButton = "chipClearButton__d4893f70";
7
+ const chipClearButton = "chipClearButton__164fa046";
8
8
  const styles = {
9
9
  chipClearButton
10
10
  };
@@ -7,7 +7,7 @@ import { DatePickerExtended } from "../../DatePickerExtended/DatePickerExtended.
7
7
  import { ChipDatePickerTarget } from "./ChipDatePickerTarget.js";
8
8
  import { inputDateFormat } from "../../DateField/constants.js";
9
9
  import { DropdownMobileMaskedInput } from "../../Dropdown/mobile/DropdownMobileMaskedInput.js";
10
- import { s as styles } from "../../../chunks/Chip-SVIdZjNC.js";
10
+ import { s as styles } from "../../../chunks/Chip-KA-wuCSC.js";
11
11
  const ChipDatePicker = React.forwardRef((props, ref) => {
12
12
  const {
13
13
  size,
@@ -26,7 +26,7 @@ const ChipDatePicker = React.forwardRef((props, ref) => {
26
26
  ...rest
27
27
  } = props;
28
28
  const [pickerValues, setPickerValues] = useState(
29
- DateFieldUtils.getPickerValues(value, format, limitRange, disabledDays)
29
+ () => DateFieldUtils.getPickerValues(value, format, limitRange, disabledDays)
30
30
  );
31
31
  const lastValidPickerValuesRef = useRef(pickerValues);
32
32
  const dropdownOpenRef = useRef(false);
@@ -1 +1 @@
1
- {"version":3,"file":"ChipDatePicker.js","sources":["../../../../src/components/Chip/ChipDatePicker/ChipDatePicker.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from \"react\";\nimport moment from \"moment\";\nimport { IDateFieldProps } from \"../../DateField\";\nimport { IChipProps } from \"../Chip\";\nimport { dateFormatYYYYMMDD, globalLimitRange } from \"../../../consts/DateConst\";\nimport { DateFieldUtils } from \"../../DateField/utils\";\nimport { DatePickerExtended } from \"../../DatePickerExtended/DatePickerExtended\";\nimport { ChipDatePickerTarget } from \"./ChipDatePickerTarget\";\nimport { inputDateFormat } from \"../../DateField/constants\";\nimport { DropdownMobileMaskedInput } from \"../../Dropdown/mobile/DropdownMobileMaskedInput\";\nimport styles from \"../styles/Chip.module.less\";\n\n/** Свойства компонента ChipDatePicker. */\nexport interface IChipDatePickerProps\n extends Omit<IDateFieldProps, \"status\" | \"invalidDateHint\">, Pick<IChipProps, \"type\" | \"disabled\"> {\n /** Название поля, когда не выбрано значение. */\n label: React.ReactNode;\n /** Лейбл, отображаемый вместо выбранного значения. */\n displayedValue?: React.ReactNode;\n}\n\n/** DatePicker с видом компонента Chip. */\nexport const ChipDatePicker = React.forwardRef<HTMLDivElement, IChipDatePickerProps>((props, ref) => {\n const {\n size,\n value,\n placeholderMask,\n format = dateFormatYYYYMMDD,\n limitRange = globalLimitRange,\n disabledDays,\n type,\n label,\n displayedValue,\n disabled,\n onChange,\n onDropdownOpen,\n onDropdownClose,\n ...rest\n } = props;\n const [pickerValues, setPickerValues] = useState(\n DateFieldUtils.getPickerValues(value, format, limitRange, disabledDays),\n );\n const lastValidPickerValuesRef = useRef(pickerValues);\n const dropdownOpenRef = useRef(false);\n const dropdownClosedByCalendarRef = useRef(false); // Dropdown закрылся от выбора даты в календаре\n\n useEffect(() => {\n const newPickerValues = DateFieldUtils.getPickerValues(value, format, limitRange, disabledDays);\n\n lastValidPickerValuesRef.current = newPickerValues;\n\n if (newPickerValues.inputString !== pickerValues.inputString) {\n setPickerValues(newPickerValues);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, format, limitRange, disabledDays]);\n\n const renderTarget = () => {\n const currentPickerValues = dropdownOpenRef.current ? lastValidPickerValuesRef.current : pickerValues;\n const selected = currentPickerValues.calendarDate !== null;\n\n return (\n <ChipDatePickerTarget type={type} size={size} selected={selected} disabled={disabled} onClear={handleClear}>\n {selected ? (displayedValue ?? currentPickerValues.inputString) : label}\n </ChipDatePickerTarget>\n );\n };\n\n const handleClear = () => {\n onChange(\"\");\n };\n\n const handleDropdownOpen = () => {\n dropdownOpenRef.current = true;\n\n onDropdownOpen?.();\n };\n\n const handleDropdownClose = () => {\n dropdownOpenRef.current = false;\n\n if (dropdownClosedByCalendarRef.current) {\n dropdownClosedByCalendarRef.current = false;\n } else if (pickerValues.inputString !== lastValidPickerValuesRef.current.inputString) {\n triggerChangeFromInput();\n }\n\n onDropdownClose?.();\n };\n\n const renderDropdownHeaderTarget = () => (\n <DropdownMobileMaskedInput\n value={pickerValues.inputString}\n mask={DropdownMobileMaskedInput.presets.masks.date}\n placeholderMask={placeholderMask}\n onChange={handleInputChange}\n autoFocus={true}\n />\n );\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n let date: moment.Moment | null = null;\n\n if (event.target.value.length === inputDateFormat.length) {\n date = moment(event.target.value, inputDateFormat, true);\n\n if (\n !date.isValid() ||\n !DateFieldUtils.isAvailableDate(date, date.format(format), limitRange, disabledDays)\n ) {\n date = null;\n }\n }\n\n setPickerValues({ calendarDate: date, inputString: event.target.value });\n };\n\n const triggerChangeFromInput = () => {\n if (pickerValues.inputString.length === 0 && value.length !== 0) {\n return onChange(pickerValues.inputString);\n }\n\n const date = moment(pickerValues.inputString, inputDateFormat, true);\n\n if (date.isValid()) {\n const newValue = date.format(format);\n\n if (newValue === value) {\n return;\n }\n\n if (DateFieldUtils.isAvailableDate(date, newValue, limitRange, disabledDays)) {\n return onChange(newValue);\n }\n }\n\n if (pickerValues.inputString !== lastValidPickerValuesRef.current.inputString) {\n setPickerValues(lastValidPickerValuesRef.current);\n }\n };\n\n const handleDateChange = (date: moment.Moment) => {\n dropdownClosedByCalendarRef.current = true;\n\n onChange(date.format(format));\n };\n\n return (\n <DatePickerExtended\n className={styles.chipGroupItem}\n renderTarget={renderTarget}\n pickedDate={pickerValues.calendarDate}\n renderDropdownHeaderTarget={renderDropdownHeaderTarget}\n format={format}\n limitRange={limitRange}\n onDropdownOpen={handleDropdownOpen}\n onDropdownClose={handleDropdownClose}\n onDateChange={handleDateChange}\n disabledDays={disabledDays}\n {...rest}\n ref={ref}\n />\n );\n});\n\nChipDatePicker.displayName = \"ChipDatePicker\";\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChipDatePicker.js","sources":["../../../../src/components/Chip/ChipDatePicker/ChipDatePicker.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef } from \"react\";\nimport moment from \"moment\";\nimport { IDateFieldProps } from \"../../DateField\";\nimport { IChipProps } from \"../Chip\";\nimport { dateFormatYYYYMMDD, globalLimitRange } from \"../../../consts/DateConst\";\nimport { DateFieldUtils } from \"../../DateField/utils\";\nimport { DatePickerExtended } from \"../../DatePickerExtended/DatePickerExtended\";\nimport { ChipDatePickerTarget } from \"./ChipDatePickerTarget\";\nimport { inputDateFormat } from \"../../DateField/constants\";\nimport { DropdownMobileMaskedInput } from \"../../Dropdown/mobile/DropdownMobileMaskedInput\";\nimport styles from \"../styles/Chip.module.less\";\n\n/** Свойства компонента ChipDatePicker. */\nexport interface IChipDatePickerProps\n extends Omit<IDateFieldProps, \"status\" | \"invalidDateHint\">, Pick<IChipProps, \"type\" | \"disabled\"> {\n /** Название поля, когда не выбрано значение. */\n label: React.ReactNode;\n /** Контент вместо выбранной даты; при пустом или недоступном value отображается label. */\n displayedValue?: React.ReactNode;\n}\n\n/** DatePicker с видом компонента Chip. */\nexport const ChipDatePicker = React.forwardRef<HTMLDivElement, IChipDatePickerProps>((props, ref) => {\n const {\n size,\n value,\n placeholderMask,\n format = dateFormatYYYYMMDD,\n limitRange = globalLimitRange,\n disabledDays,\n type,\n label,\n displayedValue,\n disabled,\n onChange,\n onDropdownOpen,\n onDropdownClose,\n ...rest\n } = props;\n const [pickerValues, setPickerValues] = useState(() =>\n DateFieldUtils.getPickerValues(value, format, limitRange, disabledDays),\n );\n const lastValidPickerValuesRef = useRef(pickerValues);\n const dropdownOpenRef = useRef(false);\n const dropdownClosedByCalendarRef = useRef(false); // Dropdown закрылся от выбора даты в календаре\n\n useEffect(() => {\n const newPickerValues = DateFieldUtils.getPickerValues(value, format, limitRange, disabledDays);\n\n lastValidPickerValuesRef.current = newPickerValues;\n\n if (newPickerValues.inputString !== pickerValues.inputString) {\n setPickerValues(newPickerValues);\n }\n // pickerValues намеренно не в зависимостях: эффект синхронизирует внешнее value,\n // а не промежуточный ввод мобильного поля — иначе он затирал бы ввод пользователя.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, format, limitRange, disabledDays]);\n\n const renderTarget = () => {\n const currentPickerValues = dropdownOpenRef.current ? lastValidPickerValuesRef.current : pickerValues;\n const selected = currentPickerValues.calendarDate !== null;\n\n return (\n <ChipDatePickerTarget type={type} size={size} selected={selected} disabled={disabled} onClear={handleClear}>\n {selected ? (displayedValue ?? currentPickerValues.inputString) : label}\n </ChipDatePickerTarget>\n );\n };\n\n const handleClear = () => {\n onChange(\"\");\n };\n\n const handleDropdownOpen = () => {\n dropdownOpenRef.current = true;\n\n onDropdownOpen?.();\n };\n\n const handleDropdownClose = () => {\n dropdownOpenRef.current = false;\n\n if (dropdownClosedByCalendarRef.current) {\n dropdownClosedByCalendarRef.current = false;\n } else if (pickerValues.inputString !== lastValidPickerValuesRef.current.inputString) {\n triggerChangeFromInput();\n }\n\n onDropdownClose?.();\n };\n\n const renderDropdownHeaderTarget = () => (\n <DropdownMobileMaskedInput\n value={pickerValues.inputString}\n mask={DropdownMobileMaskedInput.presets.masks.date}\n placeholderMask={placeholderMask}\n onChange={handleInputChange}\n autoFocus={true}\n />\n );\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n let date: moment.Moment | null = null;\n\n if (event.target.value.length === inputDateFormat.length) {\n date = moment(event.target.value, inputDateFormat, true);\n\n if (\n !date.isValid() ||\n !DateFieldUtils.isAvailableDate(date, date.format(format), limitRange, disabledDays)\n ) {\n date = null;\n }\n }\n\n setPickerValues({ calendarDate: date, inputString: event.target.value });\n };\n\n const triggerChangeFromInput = () => {\n if (pickerValues.inputString.length === 0 && value.length !== 0) {\n return onChange(pickerValues.inputString);\n }\n\n const date = moment(pickerValues.inputString, inputDateFormat, true);\n\n if (date.isValid()) {\n const newValue = date.format(format);\n\n if (newValue === value) {\n return;\n }\n\n if (DateFieldUtils.isAvailableDate(date, newValue, limitRange, disabledDays)) {\n return onChange(newValue);\n }\n }\n\n if (pickerValues.inputString !== lastValidPickerValuesRef.current.inputString) {\n setPickerValues(lastValidPickerValuesRef.current);\n }\n };\n\n const handleDateChange = (date: moment.Moment) => {\n dropdownClosedByCalendarRef.current = true;\n\n onChange(date.format(format));\n };\n\n return (\n <DatePickerExtended\n className={styles.chipGroupItem}\n renderTarget={renderTarget}\n pickedDate={pickerValues.calendarDate}\n renderDropdownHeaderTarget={renderDropdownHeaderTarget}\n format={format}\n limitRange={limitRange}\n onDropdownOpen={handleDropdownOpen}\n onDropdownClose={handleDropdownClose}\n onDateChange={handleDateChange}\n disabledDays={disabledDays}\n {...rest}\n ref={ref}\n />\n );\n});\n\nChipDatePicker.displayName = \"ChipDatePicker\";\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import React, { useContext } from "react";
3
- import { C as Chip } from "../../../chunks/Chip-SVIdZjNC.js";
3
+ import { C as Chip } from "../../../chunks/Chip-KA-wuCSC.js";
4
4
  import { ChipDropdownArrow } from "../ChipDropdownArrow.js";
5
5
  import { ChipClearButton } from "../ChipClearButton.js";
6
6
  import { DatePickerExtendedContext } from "../../DatePickerExtended/DatePickerExtendedContext.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ChipDatePickerTarget.js","sources":["../../../../src/components/Chip/ChipDatePicker/ChipDatePickerTarget.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { Chip, IChipProps } from \"../Chip\";\nimport { ChipDropdownArrow } from \"../ChipDropdownArrow\";\nimport { ChipClearButton } from \"../ChipClearButton\";\nimport { DatePickerExtendedContext } from \"../../DatePickerExtended/DatePickerExtendedContext\";\nimport { isKey } from \"../../../utils/keyboard\";\n\nexport interface IChipDatePickerTargetProps extends IChipProps {\n onClear: () => void;\n}\n\nexport const ChipDatePickerTarget = React.forwardRef<HTMLSpanElement, IChipDatePickerTargetProps>((props, ref) => {\n const { children, size, selected, onKeyDown, onClick, onClear, ...restProps } = props;\n const { dropdownOpen, setDropdownOpen } = useContext(DatePickerExtendedContext);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n if (isKey(event.code, \"ENTER\") || isKey(event.code, \"SPACE\")) {\n event.preventDefault();\n setDropdownOpen(!dropdownOpen);\n onKeyDown?.(event);\n }\n };\n\n const handleClick = (event: React.MouseEvent<HTMLSpanElement>) => {\n setDropdownOpen(!dropdownOpen);\n onClick?.(event);\n };\n\n const renderTargetPostfix = () => {\n if (selected) {\n return <ChipClearButton size={size} onClick={handleClearButtonClick} />;\n } else {\n return <ChipDropdownArrow size={size} rotated={dropdownOpen} />;\n }\n };\n\n const handleClearButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n onClear();\n };\n\n return (\n <Chip\n size={size}\n selected={selected}\n aria-expanded={dropdownOpen}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n postfix={renderTargetPostfix()}\n {...restProps}\n ref={ref}\n >\n {children}\n </Chip>\n );\n});\n\nChipDatePickerTarget.displayName = \"ChipDatePickerTarget\";\n"],"names":[],"mappings":";;;;;;;AAWO,MAAM,uBAAuB,MAAM,WAAwD,CAAC,OAAO,QAAQ;AAC9G,QAAM,EAAE,UAAU,MAAM,UAAU,WAAW,SAAS,SAAS,GAAG,UAAA,IAAc;AAChF,QAAM,EAAE,cAAc,oBAAoB,WAAW,yBAAyB;AAE9E,QAAM,gBAAgB,CAAC,UAAgD;AACnE,QAAI,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,MAAM,MAAM,OAAO,GAAG;AAC1D,YAAM,eAAA;AACN,sBAAgB,CAAC,YAAY;AAC7B,6CAAY;AAAA,IAChB;AAAA,EACJ;AAEA,QAAM,cAAc,CAAC,UAA6C;AAC9D,oBAAgB,CAAC,YAAY;AAC7B,uCAAU;AAAA,EACd;AAEA,QAAM,sBAAsB,MAAM;AAC9B,QAAI,UAAU;AACV,aAAO,oBAAC,iBAAA,EAAgB,MAAY,SAAS,uBAAA,CAAwB;AAAA,IACzE,OAAO;AACH,aAAO,oBAAC,mBAAA,EAAkB,MAAY,SAAS,aAAA,CAAc;AAAA,IACjE;AAAA,EACJ;AAEA,QAAM,yBAAyB,CAAC,UAA+C;AAC3E,UAAM,gBAAA;AACN,YAAA;AAAA,EACJ;AAEA,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA;AAAA,MACA,iBAAe;AAAA,MACf,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS,oBAAA;AAAA,MACR,GAAG;AAAA,MACJ;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAGb,CAAC;AAED,qBAAqB,cAAc;"}
1
+ {"version":3,"file":"ChipDatePickerTarget.js","sources":["../../../../src/components/Chip/ChipDatePicker/ChipDatePickerTarget.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { Chip, IChipProps } from \"../Chip\";\nimport { ChipDropdownArrow } from \"../ChipDropdownArrow\";\nimport { ChipClearButton } from \"../ChipClearButton\";\nimport { DatePickerExtendedContext } from \"../../DatePickerExtended/DatePickerExtendedContext\";\nimport { isKey } from \"../../../utils/keyboard\";\n\n/** Свойства компонента ChipDatePickerTarget. */\nexport interface IChipDatePickerTargetProps extends IChipProps {\n /** Вызывается без аргументов при нажатии кнопки очистки; выбранное значение сбрасывает потребитель. */\n onClear: () => void;\n}\n\n/** Чипс-таргет DatePickerExtended: переключает календарь через контекст и отображает очистку при selected. */\nexport const ChipDatePickerTarget = React.forwardRef<HTMLSpanElement, IChipDatePickerTargetProps>((props, ref) => {\n const { children, size, selected, onKeyDown, onClick, onClear, ...restProps } = props;\n const { dropdownOpen, setDropdownOpen } = useContext(DatePickerExtendedContext);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLSpanElement>) => {\n if (isKey(event.code, \"ENTER\") || isKey(event.code, \"SPACE\")) {\n event.preventDefault();\n setDropdownOpen(!dropdownOpen);\n onKeyDown?.(event);\n }\n };\n\n const handleClick = (event: React.MouseEvent<HTMLSpanElement>) => {\n setDropdownOpen(!dropdownOpen);\n onClick?.(event);\n };\n\n const renderTargetPostfix = () => {\n if (selected) {\n return <ChipClearButton size={size} onClick={handleClearButtonClick} />;\n } else {\n return <ChipDropdownArrow size={size} rotated={dropdownOpen} />;\n }\n };\n\n const handleClearButtonClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n onClear();\n };\n\n return (\n <Chip\n size={size}\n selected={selected}\n aria-expanded={dropdownOpen}\n onKeyDown={handleKeyDown}\n onClick={handleClick}\n postfix={renderTargetPostfix()}\n {...restProps}\n ref={ref}\n >\n {children}\n </Chip>\n );\n});\n\nChipDatePickerTarget.displayName = \"ChipDatePickerTarget\";\n"],"names":[],"mappings":";;;;;;;AAcO,MAAM,uBAAuB,MAAM,WAAwD,CAAC,OAAO,QAAQ;AAC9G,QAAM,EAAE,UAAU,MAAM,UAAU,WAAW,SAAS,SAAS,GAAG,UAAA,IAAc;AAChF,QAAM,EAAE,cAAc,oBAAoB,WAAW,yBAAyB;AAE9E,QAAM,gBAAgB,CAAC,UAAgD;AACnE,QAAI,MAAM,MAAM,MAAM,OAAO,KAAK,MAAM,MAAM,MAAM,OAAO,GAAG;AAC1D,YAAM,eAAA;AACN,sBAAgB,CAAC,YAAY;AAC7B,6CAAY;AAAA,IAChB;AAAA,EACJ;AAEA,QAAM,cAAc,CAAC,UAA6C;AAC9D,oBAAgB,CAAC,YAAY;AAC7B,uCAAU;AAAA,EACd;AAEA,QAAM,sBAAsB,MAAM;AAC9B,QAAI,UAAU;AACV,aAAO,oBAAC,iBAAA,EAAgB,MAAY,SAAS,uBAAA,CAAwB;AAAA,IACzE,OAAO;AACH,aAAO,oBAAC,mBAAA,EAAkB,MAAY,SAAS,aAAA,CAAc;AAAA,IACjE;AAAA,EACJ;AAEA,QAAM,yBAAyB,CAAC,UAA+C;AAC3E,UAAM,gBAAA;AACN,YAAA;AAAA,EACJ;AAEA,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA;AAAA,MACA,iBAAe;AAAA,MACf,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS,oBAAA;AAAA,MACR,GAAG;AAAA,MACJ;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAGb,CAAC;AAED,qBAAqB,cAAc;"}
@@ -2,8 +2,8 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { CaretdownStrokeSrvIcon24, CaretdownStrokeSrvIcon20, CaretdownStrokeSrvIcon16 } from "@sberbusiness/icons-next";
3
3
  import { c as clsx } from "../../chunks/vendor-Bf_-FiU6.js";
4
4
  import { EComponentSize } from "../../enums/EComponentSize.js";
5
- const chipDropdownArrow = "chipDropdownArrow__2aecee01";
6
- const rotated = "rotated__f4287eba";
5
+ const chipDropdownArrow = "chipDropdownArrow__8d81b049";
6
+ const rotated = "rotated__1f92f51b";
7
7
  const styles = {
8
8
  chipDropdownArrow,
9
9
  rotated
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import React from "react";
3
- import { C as Chip } from "../../chunks/Chip-SVIdZjNC.js";
3
+ import { C as Chip } from "../../chunks/Chip-KA-wuCSC.js";
4
4
  const ChipIcon = React.forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsx(Chip, { ...rest, prefix: children, postfix: /* @__PURE__ */ jsx("span", {}), ref }));
5
5
  ChipIcon.displayName = "ChipIcon";
6
6
  export {
@@ -11,7 +11,7 @@ import "../../Typography/CodeText.js";
11
11
  import { Text } from "../../Typography/Text.js";
12
12
  import "../../Typography/Title.js";
13
13
  import { ECalendarPickType } from "../../Calendar/enums.js";
14
- import { s as styles } from "../../../chunks/Chip-SVIdZjNC.js";
14
+ import { s as styles } from "../../../chunks/Chip-KA-wuCSC.js";
15
15
  const ChipMonthYearPicker = React.forwardRef((props, ref) => {
16
16
  const {
17
17
  className,
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import React, { useContext } from "react";
3
- import { C as Chip } from "../../../chunks/Chip-SVIdZjNC.js";
3
+ import { C as Chip } from "../../../chunks/Chip-KA-wuCSC.js";
4
4
  import { ChipDropdownArrow } from "../ChipDropdownArrow.js";
5
5
  import { ChipClearButton } from "../ChipClearButton.js";
6
6
  import { DatePickerExtendedContext } from "../../DatePickerExtended/DatePickerExtendedContext.js";
@@ -3,7 +3,7 @@ import React, { useCallback } from "react";
3
3
  import { c as clsx } from "../../chunks/vendor-Bf_-FiU6.js";
4
4
  import { MultiselectField } from "../MultiselectField/MultiselectField.js";
5
5
  import { isKey } from "../../utils/keyboard.js";
6
- import { s as styles, C as Chip } from "../../chunks/Chip-SVIdZjNC.js";
6
+ import { s as styles, C as Chip } from "../../chunks/Chip-KA-wuCSC.js";
7
7
  import { ChipClearButton } from "./ChipClearButton.js";
8
8
  import { ChipDropdownArrow } from "./ChipDropdownArrow.js";
9
9
  const ChipMultiselect = React.forwardRef(
@@ -2,9 +2,9 @@ import { jsx } from "react/jsx-runtime";
2
2
  import React from "react";
3
3
  import { OptionsStrokeSrvIcon24 } from "@sberbusiness/icons-next";
4
4
  import { isKey } from "../../utils/keyboard.js";
5
- import { C as Chip } from "../../chunks/Chip-SVIdZjNC.js";
5
+ import { C as Chip } from "../../chunks/Chip-KA-wuCSC.js";
6
6
  import { ChipClearButton } from "./ChipClearButton.js";
7
- const chipOptionsContent = "chipOptionsContent__87e3b785";
7
+ const chipOptionsContent = "chipOptionsContent__a98bffc3";
8
8
  const styles = {
9
9
  chipOptionsContent
10
10
  };
@@ -6,7 +6,7 @@ import "../../SelectExtendedField/components/SelectExtendedFieldDropdown.js";
6
6
  import "../../SelectExtendedField/components/SelectExtendedFieldTarget.js";
7
7
  import { SelectExtendedFieldDropdownDefault } from "../../SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js";
8
8
  import { ChipSelectTarget } from "./ChipSelectTarget.js";
9
- import { s as styles } from "../../../chunks/Chip-SVIdZjNC.js";
9
+ import { s as styles } from "../../../chunks/Chip-KA-wuCSC.js";
10
10
  const ChipSelect = React.forwardRef(
11
11
  ({
12
12
  className,
@@ -1 +1 @@
1
- {"version":3,"file":"ChipSelect.js","sources":["../../../../src/components/Chip/ChipSelect/ChipSelect.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport {\n ISelectExtendedFieldDropdownProvideProps,\n ISelectExtendedFieldTargetProvideProps,\n SelectExtendedField,\n} from \"../../SelectExtendedField\";\nimport { IChipProps } from \"../Chip\";\nimport { SelectExtendedFieldDropdownDefault } from \"../../SelectExtendedField/components/SelectExtendedFieldDropdownDefault\";\nimport { ISelectFieldProps } from \"../../SelectField\";\nimport { ChipSelectTarget } from \"./ChipSelectTarget\";\nimport styles from \"../styles/Chip.module.less\";\n\nexport interface IChipSelectProps\n extends\n Pick<IChipProps, \"className\" | \"disabled\" | \"type\">,\n Omit<\n ISelectFieldProps,\n | \"children\"\n | \"targetProps\"\n | \"dropdownListItemClassName\"\n | \"mobileTitle\"\n | \"loading\"\n | \"status\"\n | \"placeholder\"\n > {\n /* Функция отмены выбора. */\n clearSelected: () => void;\n /* Название поля. */\n label?: React.ReactNode;\n /* Лейбл, отображаемый вместо выбранного значения. */\n displayedValue?: React.ReactNode;\n}\n\n/**\n * Компонент выбора одного значения из списка.\n * Выбранное значение отображается компонентом Chip.\n */\nexport const ChipSelect = React.forwardRef<HTMLDivElement, IChipSelectProps>(\n (\n {\n className,\n disabled,\n value,\n options,\n onChange,\n type,\n size,\n clearSelected,\n label,\n displayedValue,\n ...restProps\n },\n ref,\n ) => {\n const renderDropdown = (props: ISelectExtendedFieldDropdownProvideProps) => (\n <SelectExtendedFieldDropdownDefault\n {...props}\n mobileTitle={label}\n size={size}\n onChange={onChange}\n options={options}\n value={value}\n />\n );\n\n const renderTarget = ({ opened, setOpened }: ISelectExtendedFieldTargetProvideProps) => {\n const selected = value !== undefined;\n\n return (\n <ChipSelectTarget\n type={type}\n size={size}\n selected={selected}\n disabled={disabled}\n onClear={clearSelected}\n opened={opened}\n setOpened={setOpened}\n >\n {value ? (displayedValue ?? value.label) : label}\n </ChipSelectTarget>\n );\n };\n\n return (\n <SelectExtendedField\n className={clsx(styles.chipGroupItem, className)}\n renderTarget={renderTarget}\n {...restProps}\n ref={ref}\n >\n {renderDropdown}\n </SelectExtendedField>\n );\n },\n);\n\nChipSelect.displayName = \"ChipSelect\";\n"],"names":[],"mappings":";;;;;;;;;AAsCO,MAAM,aAAa,MAAM;AAAA,EAC5B,CACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,GAEP,QACC;AACD,UAAM,iBAAiB,CAAC,UACpB;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAG;AAAA,QACJ,aAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAAA;AAIR,UAAM,eAAe,CAAC,EAAE,QAAQ,gBAAwD;AACpF,YAAM,WAAW,UAAU;AAE3B,aACI;AAAA,QAAC;AAAA,QAAA;AAAA,UACG;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT;AAAA,UACA;AAAA,UAEC,UAAA,QAAS,kBAAkB,MAAM,QAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAGvD;AAEA,WACI;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW,KAAK,OAAO,eAAe,SAAS;AAAA,QAC/C;AAAA,QACC,GAAG;AAAA,QACJ;AAAA,QAEC,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGb;AACJ;AAEA,WAAW,cAAc;"}
1
+ {"version":3,"file":"ChipSelect.js","sources":["../../../../src/components/Chip/ChipSelect/ChipSelect.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport {\n ISelectExtendedFieldDropdownProvideProps,\n ISelectExtendedFieldTargetProvideProps,\n SelectExtendedField,\n} from \"../../SelectExtendedField\";\nimport { IChipProps } from \"../Chip\";\nimport { SelectExtendedFieldDropdownDefault } from \"../../SelectExtendedField/components/SelectExtendedFieldDropdownDefault\";\nimport { ISelectFieldProps } from \"../../SelectField\";\nimport { ChipSelectTarget } from \"./ChipSelectTarget\";\nimport styles from \"../styles/Chip.module.less\";\n\n/** Свойства компонента ChipSelect. */\nexport interface IChipSelectProps\n extends\n Pick<IChipProps, \"className\" | \"disabled\" | \"type\">,\n Omit<\n ISelectFieldProps,\n | \"children\"\n | \"targetProps\"\n | \"dropdownListItemClassName\"\n | \"mobileTitle\"\n | \"loading\"\n | \"status\"\n | \"placeholder\"\n > {\n /** Обработчик сброса выбора. Потребитель самостоятельно очищает value. */\n clearSelected: () => void;\n /** Название чипса без выбранного значения и заголовок мобильного списка. */\n label?: React.ReactNode;\n /** Контент вместо label выбранной опции. Без value не отображается. */\n displayedValue?: React.ReactNode;\n}\n\n/**\n * Компонент выбора одного значения из списка.\n * Выбранное значение отображается компонентом Chip.\n */\nexport const ChipSelect = React.forwardRef<HTMLDivElement, IChipSelectProps>(\n (\n {\n className,\n disabled,\n value,\n options,\n onChange,\n type,\n size,\n clearSelected,\n label,\n displayedValue,\n ...restProps\n },\n ref,\n ) => {\n const renderDropdown = (props: ISelectExtendedFieldDropdownProvideProps) => (\n <SelectExtendedFieldDropdownDefault\n {...props}\n mobileTitle={label}\n size={size}\n onChange={onChange}\n options={options}\n value={value}\n />\n );\n\n const renderTarget = ({ opened, setOpened }: ISelectExtendedFieldTargetProvideProps) => {\n const selected = value !== undefined;\n\n return (\n <ChipSelectTarget\n type={type}\n size={size}\n selected={selected}\n disabled={disabled}\n onClear={clearSelected}\n opened={opened}\n setOpened={setOpened}\n >\n {value ? (displayedValue ?? value.label) : label}\n </ChipSelectTarget>\n );\n };\n\n return (\n <SelectExtendedField\n className={clsx(styles.chipGroupItem, className)}\n renderTarget={renderTarget}\n {...restProps}\n ref={ref}\n >\n {renderDropdown}\n </SelectExtendedField>\n );\n },\n);\n\nChipSelect.displayName = \"ChipSelect\";\n"],"names":[],"mappings":";;;;;;;;;AAuCO,MAAM,aAAa,MAAM;AAAA,EAC5B,CACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,GAEP,QACC;AACD,UAAM,iBAAiB,CAAC,UACpB;AAAA,MAAC;AAAA,MAAA;AAAA,QACI,GAAG;AAAA,QACJ,aAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAAA;AAIR,UAAM,eAAe,CAAC,EAAE,QAAQ,gBAAwD;AACpF,YAAM,WAAW,UAAU;AAE3B,aACI;AAAA,QAAC;AAAA,QAAA;AAAA,UACG;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT;AAAA,UACA;AAAA,UAEC,UAAA,QAAS,kBAAkB,MAAM,QAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAGvD;AAEA,WACI;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW,KAAK,OAAO,eAAe,SAAS;AAAA,QAC/C;AAAA,QACC,GAAG;AAAA,QACJ;AAAA,QAEC,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGb;AACJ;AAEA,WAAW,cAAc;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import React, { useCallback } from "react";
3
- import { C as Chip } from "../../../chunks/Chip-SVIdZjNC.js";
3
+ import { C as Chip } from "../../../chunks/Chip-KA-wuCSC.js";
4
4
  import { ChipDropdownArrow } from "../ChipDropdownArrow.js";
5
5
  import { ChipClearButton } from "../ChipClearButton.js";
6
6
  import { isKey } from "../../../utils/keyboard.js";
@@ -9,7 +9,7 @@ import "../SelectExtendedField/components/SelectExtendedFieldDropdown.js";
9
9
  import "../SelectExtendedField/components/SelectExtendedFieldTarget.js";
10
10
  import { SelectExtendedFieldDropdownDefault } from "../SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js";
11
11
  import { isKey } from "../../utils/keyboard.js";
12
- import { s as styles } from "../../chunks/Chip-SVIdZjNC.js";
12
+ import { s as styles } from "../../chunks/Chip-KA-wuCSC.js";
13
13
  const ICON_PALETTE_INDEX_DEFAULT = 5;
14
14
  const ICON_PALETTE_INDEX_SELECTED = 6;
15
15
  const ChipSort = React.forwardRef(
@@ -6,7 +6,7 @@ import "../../Suggest/SuggestContext.js";
6
6
  import { Suggest } from "../../Suggest/Suggest.js";
7
7
  import { ChipSuggestDropdown } from "./ChipSuggestDropdown.js";
8
8
  import { setForwardedRef } from "../../../helpers/setForwardedRef.js";
9
- import { s as styles } from "../../../chunks/Chip-SVIdZjNC.js";
9
+ import { s as styles } from "../../../chunks/Chip-KA-wuCSC.js";
10
10
  const ChipSuggestBase = ({
11
11
  className,
12
12
  type,
@@ -6,7 +6,7 @@ import { useSuggestContext } from "../../Suggest/SuggestContext.js";
6
6
  import "../../Dropdown/DropdownListContext.js";
7
7
  import "../../Dropdown/desktop/DropdownDesktop.js";
8
8
  import { DropdownList } from "../../Dropdown/desktop/DropdownList.js";
9
- import { D as DropdownListItem } from "../../../chunks/DropdownListItem-DbG8a_Rw.js";
9
+ import { D as DropdownListItem } from "../../../chunks/DropdownListItem-B220hwlD.js";
10
10
  import "../../Dropdown/mobile/DropdownMobile.js";
11
11
  import "../../Dropdown/mobile/DropdownMobileBody.js";
12
12
  import "../../Dropdown/mobile/DropdownMobileClose.js";