@sberbusiness/triplex-next 1.43.0 → 1.45.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.
- package/chunks/{AlertProcessSpoiler-Dw-s37ux.js → AlertProcessSpoiler-54gQMEAr.js} +16 -16
- package/chunks/{AlertProcessSpoiler-Dw-s37ux.js.map → AlertProcessSpoiler-54gQMEAr.js.map} +1 -1
- package/chunks/{CalendarViewItem-DdKK7cTU.js → CalendarViewItem-cQjxsIMh.js} +20 -20
- package/chunks/{CalendarViewItem-DdKK7cTU.js.map → CalendarViewItem-cQjxsIMh.js.map} +1 -1
- package/chunks/Card.module-CNOChUdZ.js +32 -0
- package/chunks/Card.module-CNOChUdZ.js.map +1 -0
- package/chunks/Carousel.module-BpVAzSjh.js +34 -0
- package/chunks/Carousel.module-BpVAzSjh.js.map +1 -0
- package/chunks/CheckboxTreeExtended.module-BqOLLHuh.js +24 -0
- package/chunks/CheckboxTreeExtended.module-BqOLLHuh.js.map +1 -0
- package/chunks/{Chip-DMOFGadD.js → Chip-CWaqKk62.js} +16 -16
- package/chunks/{Chip-DMOFGadD.js.map → Chip-CWaqKk62.js.map} +1 -1
- package/chunks/Confirm.module-Dw5sV0a8.js +24 -0
- package/chunks/Confirm.module-Dw5sV0a8.js.map +1 -0
- package/chunks/{DropdownListItem-hLJFQ_q0.js → DropdownListItem-kMroiHoh.js} +10 -10
- package/chunks/{DropdownListItem-hLJFQ_q0.js.map → DropdownListItem-kMroiHoh.js.map} +1 -1
- package/chunks/DropdownMobile.module-ljfYoQZP.js +40 -0
- package/chunks/DropdownMobile.module-ljfYoQZP.js.map +1 -0
- package/chunks/Footer.module-DgSEqR3M.js +12 -0
- package/chunks/Footer.module-DgSEqR3M.js.map +1 -0
- package/chunks/{HeaderLayoutSidebar.module-Du7oNhcA.js → HeaderLayoutSidebar.module-k_1rIXs0.js} +4 -4
- package/chunks/HeaderLayoutSidebar.module-k_1rIXs0.js.map +1 -0
- package/chunks/HeaderTabs.module-Dm__bdlz.js +12 -0
- package/chunks/HeaderTabs.module-Dm__bdlz.js.map +1 -0
- package/chunks/{HeaderTitle.module-BpjoBzW6.js → HeaderTitle.module-BbIcVzwx.js} +4 -4
- package/chunks/HeaderTitle.module-BbIcVzwx.js.map +1 -0
- package/chunks/ImageGalleryExtendedMain.module--816bwiO.js +28 -0
- package/chunks/ImageGalleryExtendedMain.module--816bwiO.js.map +1 -0
- package/chunks/{ImageGalleryExtendedThumb-2kNnHEuL.js → ImageGalleryExtendedThumb-DlJrbeiX.js} +5 -5
- package/chunks/{ImageGalleryExtendedThumb-2kNnHEuL.js.map → ImageGalleryExtendedThumb-DlJrbeiX.js.map} +1 -1
- package/chunks/IslandAccordion.module-4rzQ8p9D.js +44 -0
- package/chunks/IslandAccordion.module-4rzQ8p9D.js.map +1 -0
- package/chunks/IslandWidgetFooter.module-Dxb05X44.js +18 -0
- package/chunks/IslandWidgetFooter.module-Dxb05X44.js.map +1 -0
- package/chunks/IslandWidgetHeader.module-K8SbMdcg.js +28 -0
- package/chunks/IslandWidgetHeader.module-K8SbMdcg.js.map +1 -0
- package/chunks/{LightBoxContent-D9EyEoR0.js → LightBoxContent-DDevHCAQ.js} +21 -17
- package/chunks/{LightBoxContent-D9EyEoR0.js.map → LightBoxContent-DDevHCAQ.js.map} +1 -1
- package/chunks/LightBoxControls.module-DsLaGx4X.js +26 -0
- package/chunks/LightBoxControls.module-DsLaGx4X.js.map +1 -0
- package/chunks/{LightBoxSideOverlayClose.module-B0uNmLho.js → LightBoxSideOverlayClose.module-B_RmH_Zj.js} +4 -4
- package/chunks/LightBoxSideOverlayClose.module-B_RmH_Zj.js.map +1 -0
- package/chunks/{ListItemControlsButton-CgcAyPtd.js → ListItemControlsButton-BGHyQIXE.js} +9 -9
- package/chunks/{ListItemControlsButton-CgcAyPtd.js.map → ListItemControlsButton-BGHyQIXE.js.map} +1 -1
- package/chunks/ListItemTail.module-CwDNx9W5.js +18 -0
- package/chunks/ListItemTail.module-CwDNx9W5.js.map +1 -0
- package/chunks/ListMasterFooter.module-D7b9ZUqR.js +14 -0
- package/chunks/ListMasterFooter.module-D7b9ZUqR.js.map +1 -0
- package/chunks/ModalWindow.module-urBVReGQ.js +28 -0
- package/chunks/ModalWindow.module-urBVReGQ.js.map +1 -0
- package/chunks/Notification.module-BgjNhU2P.js +34 -0
- package/chunks/Notification.module-BgjNhU2P.js.map +1 -0
- package/chunks/Overlay.module-DlzZBVdp.js +30 -0
- package/chunks/Overlay.module-DlzZBVdp.js.map +1 -0
- package/chunks/Page.module-CEeCuq1n.js +15 -0
- package/chunks/Page.module-CEeCuq1n.js.map +1 -0
- package/chunks/SMSField.module-CGuPONeF.js +30 -0
- package/chunks/SMSField.module-CGuPONeF.js.map +1 -0
- package/chunks/SliderExtendedMarks.module-SGdABaf_.js +24 -0
- package/chunks/SliderExtendedMarks.module-SGdABaf_.js.map +1 -0
- package/chunks/{SliderExtendedRail-BrLpOwFy.js → SliderExtendedRail-VEYm3CWM.js} +5 -5
- package/chunks/{SliderExtendedRail-BrLpOwFy.js.map → SliderExtendedRail-VEYm3CWM.js.map} +1 -1
- package/chunks/StatusTracker.module-oLJmSAgs.js +44 -0
- package/chunks/StatusTracker.module-oLJmSAgs.js.map +1 -0
- package/chunks/{StepperStepArrowBorder-Cp0G1HTs.js → StepperStepArrowBorder-B8OziF77.js} +16 -16
- package/chunks/{StepperStepArrowBorder-Cp0G1HTs.js.map → StepperStepArrowBorder-B8OziF77.js.map} +1 -1
- package/chunks/{SuggestFieldMobileDropdownHint-BLnAqUOu.js → SuggestFieldMobileDropdownHint-CEHlClB5.js} +3 -3
- package/chunks/{SuggestFieldMobileDropdownHint-BLnAqUOu.js.map → SuggestFieldMobileDropdownHint-CEHlClB5.js.map} +1 -1
- package/chunks/TableFooter.module-DOL7cRaV.js +22 -0
- package/chunks/TableFooter.module-DOL7cRaV.js.map +1 -0
- package/chunks/TabsExtended.module-DveIh7_v.js +26 -0
- package/chunks/TabsExtended.module-DveIh7_v.js.map +1 -0
- package/chunks/TabsLine.module-CFuF3nRE.js +36 -0
- package/chunks/TabsLine.module-CFuF3nRE.js.map +1 -0
- package/chunks/TooltipDesktop.module-Bay9M-y1.js +32 -0
- package/chunks/TooltipDesktop.module-Bay9M-y1.js.map +1 -0
- package/chunks/TreeView.module-B1mjvRWg.js +12 -0
- package/chunks/TreeView.module-B1mjvRWg.js.map +1 -0
- package/chunks/{UploadZoneInput-BU3nt7wc.js → UploadZoneInput-DW4bcKms.js} +5 -5
- package/chunks/{UploadZoneInput-BU3nt7wc.js.map → UploadZoneInput-DW4bcKms.js.map} +1 -1
- package/chunks/{constants-BxSYvMoV.js → constants-C-g_SxPw.js} +27 -27
- package/chunks/{constants-BxSYvMoV.js.map → constants-C-g_SxPw.js.map} +1 -1
- package/chunks/{utils-B25Ic6iq.js → utils-CRgskx0c.js} +28 -28
- package/chunks/{utils-B25Ic6iq.js.map → utils-CRgskx0c.js.map} +1 -1
- package/chunks/{utils-Cc9JBJpf.js → utils-DogucNlz.js} +11 -11
- package/chunks/{utils-Cc9JBJpf.js.map → utils-DogucNlz.js.map} +1 -1
- package/chunks/{utils-CLqTYw8x.js → utils-oLO5Fak1.js} +9 -9
- package/chunks/utils-oLO5Fak1.js.map +1 -0
- package/chunks/{utils-DjmAjzcV.js → utils-vSmFPvz4.js} +12 -10
- package/chunks/{utils-DjmAjzcV.js.map → utils-vSmFPvz4.js.map} +1 -1
- package/components/Alert/AlertContext/AlertContext.js +7 -7
- package/components/Alert/AlertProcess/AlertProcess.js +2 -2
- package/components/Alert/AlertProcess/components/AlertProcessSpoiler.js +1 -1
- package/components/Amount/Amount.js +2 -2
- package/components/AmountField/AmountField.js +89 -48
- package/components/AmountField/AmountField.js.map +1 -1
- package/components/Avatar/Avatar.js +13 -13
- package/components/Badge/Badge.js +4 -4
- package/components/Badge/BadgeDot.js +4 -4
- package/components/Badge/components/BadgeContent.js +6 -6
- package/components/Badge/components/BadgePostfix.js +1 -1
- package/components/Badge/components/BadgePrefix.js +1 -1
- package/components/Body/Body.js +3 -3
- package/components/Button/Button.js +20 -20
- package/components/Button/ButtonBase.js +1 -1
- package/components/Button/ButtonDropdown.js +8 -8
- package/components/Button/ButtonDropdownExtended.js +72 -56
- package/components/Button/ButtonDropdownExtended.js.map +1 -1
- package/components/Button/ButtonIcon.js +3 -3
- package/components/Calendar/Calendar.js +4 -4
- package/components/Calendar/components/CalendarControls.js +1 -1
- package/components/Calendar/components/CalendarFooter.js +1 -1
- package/components/Calendar/components/CalendarViewDays.js +1 -1
- package/components/Calendar/components/CalendarViewItem.js +1 -1
- package/components/Calendar/components/CalendarViewMonths.js +1 -1
- package/components/Calendar/components/CalendarViewYears.js +1 -1
- package/components/Card/CardAction.js +5 -5
- package/components/Card/CardStatic.js +2 -2
- package/components/Card/components/CardContent/CardContent.js +1 -1
- package/components/Card/components/CardContent/components/CardContentBody.js +1 -1
- package/components/Card/components/CardContent/components/CardContentFooter.js +1 -1
- package/components/Card/components/CardContent/components/CardContentHeader.js +1 -1
- package/components/Card/components/CardMedia.js +1 -1
- package/components/Card/utils.js +1 -1
- package/components/Carousel/Carousel.js +1 -1
- package/components/Carousel/Carousel.js.map +1 -1
- package/components/Carousel/CarouselButton.js +5 -5
- package/components/Carousel/CarouselButton.js.map +1 -1
- package/components/Carousel/CarouselIndicators.js +24 -7
- package/components/Carousel/CarouselIndicators.js.map +1 -1
- package/components/Carousel/CarouselItem.js +1 -1
- package/components/Carousel/CarouselTrack.js +1 -1
- package/components/Carousel/CarouselViewport.js +1 -1
- package/components/CarouselExtended/CarouselExtended.js +1 -1
- package/components/Checkbox/Checkbox.js +10 -10
- package/components/Checkbox/CheckboxXGroup.js +8 -8
- package/components/Checkbox/CheckboxYGroup.js +1 -1
- package/components/CheckboxTreeExtended/CheckboxTreeExtended.js +1 -1
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedArrow.js +1 -1
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedCheckbox.js +1 -1
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedNode.js +1 -1
- package/components/Chip/Chip.js +1 -1
- package/components/Chip/ChipClearButton.js +1 -1
- package/components/Chip/ChipDatePicker/ChipDatePicker.js +1 -1
- package/components/Chip/ChipDatePicker/ChipDatePickerTarget.js +1 -1
- package/components/Chip/ChipDropdownArrow.js +2 -2
- package/components/Chip/ChipIcon.js +1 -1
- package/components/Chip/ChipMultiselect.js +1 -1
- package/components/Chip/ChipOptions.js +2 -2
- package/components/Chip/ChipSelect/ChipSelect.js +1 -1
- package/components/Chip/ChipSelect/ChipSelectTarget.js +1 -1
- package/components/Chip/ChipSort.js +1 -1
- package/components/Chip/ChipSuggest/ChipSuggest.js +1 -1
- package/components/Chip/ChipSuggest/ChipSuggestDropdown.js +1 -1
- package/components/Chip/ChipSuggest/ChipSuggestTarget.js +1 -1
- package/components/Chip/ChipSuggest/desktop/ChipSuggestDesktopDropdownField.js +1 -1
- package/components/Chip/index.js +1 -1
- package/components/ChipGroup/ChipGroup.js +7 -7
- package/components/Col/Col.js +132 -132
- package/components/CollapsibleTree/CollapsibleTree.js +1 -1
- package/components/CollapsibleTree/components/CollapsibleTreeLeafContent.js +1 -1
- package/components/CollapsibleTree/components/CollapsibleTreeLeafNode.js +1 -1
- package/components/CollapsibleTree/components/CollapsibleTreeNodeHeader.js +4 -4
- package/components/CollapsibleTreeExtended/components/CollapsibleTreeExtendedNode.js +1 -1
- package/components/Confirm/Confirm.js +1 -1
- package/components/Confirm/components/ConfirmCloseButton.js +1 -1
- package/components/Confirm/components/ConfirmContent.js +1 -1
- package/components/Confirm/components/ConfirmContentTitle.js +1 -1
- package/components/Confirm/components/ConfirmControls.js +1 -1
- package/components/DateField/DateFieldTarget.js +5 -6
- package/components/DateField/DateFieldTarget.js.map +1 -1
- package/components/DatePickerExtended/DatePickerExtended.js +28 -23
- package/components/DatePickerExtended/DatePickerExtended.js.map +1 -1
- package/components/DatePickerExtended/DatePickerExtendedContext.js.map +1 -1
- package/components/DatePickerExtended/DatePickerExtendedDropdown.js +12 -5
- package/components/DatePickerExtended/DatePickerExtendedDropdown.js.map +1 -1
- package/components/DatePickerExtended/index.js +3 -1
- package/components/DatePickerExtended/index.js.map +1 -1
- package/components/DateRange/DateRange.js +3 -3
- package/components/DesignTokens/DesignTokenUtils.js +1 -1
- package/components/DesignTokens/components/Button.js +1 -1
- package/components/DesignTokens/components/Button.js.map +1 -1
- package/components/DesignTokens/components/ImageGallery.js +0 -6
- package/components/DesignTokens/components/ImageGallery.js.map +1 -1
- package/components/DesignTokens/components/Skeleton.js +18 -12
- package/components/DesignTokens/components/Skeleton.js.map +1 -1
- package/components/Divider/Divider.js +17 -17
- package/components/DocumentNumberEdit/DocumentNumberEdit.js +3 -3
- package/components/Dropdown/desktop/DropdownDesktop.js +6 -6
- package/components/Dropdown/desktop/DropdownList.js +1 -1
- package/components/Dropdown/desktop/DropdownListItem.js +1 -1
- package/components/Dropdown/desktop/index.js +1 -1
- package/components/Dropdown/index.js +1 -1
- package/components/Dropdown/mobile/DropdownMobile.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileBody.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileClose.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileFooter.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileHeader.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileInner.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileInput.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileList.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileListItem.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileLoader.js +1 -1
- package/components/Dropdown/mobile/DropdownMobileMaskedInput.js +1 -1
- package/components/Ellipsis/Ellipsis.js +3 -3
- package/components/EmptyView/EmptyView.js +6 -10
- package/components/EmptyView/EmptyView.js.map +1 -1
- package/components/ExpandAnimation/ExpandAnimation.js +15 -10
- package/components/ExpandAnimation/ExpandAnimation.js.map +1 -1
- package/components/Footer/Footer.js +1 -1
- package/components/Footer/Footer.js.map +1 -1
- package/components/Footer/components/FooterDescription.js +1 -1
- package/components/Footer/components/FooterDescription.js.map +1 -1
- package/components/Footer/components/FooterDescriptionContent.js +1 -1
- package/components/Footer/components/FooterDescriptionContent.js.map +1 -1
- package/components/Footer/components/FooterDescriptionControls.js +1 -1
- package/components/FormField/FormField.js +11 -11
- package/components/FormField/components/FormFieldClear.js +1 -1
- package/components/FormField/components/FormFieldCounter.js +1 -1
- package/components/FormField/components/FormFieldDescription.js +2 -2
- package/components/FormField/components/FormFieldInput.js +6 -6
- package/components/FormField/components/FormFieldInput.js.map +1 -1
- package/components/FormField/components/FormFieldLabel.js +7 -7
- package/components/FormField/components/FormFieldMaskedInput.js +29 -24
- package/components/FormField/components/FormFieldMaskedInput.js.map +1 -1
- package/components/FormField/components/FormFieldPostfix.js +1 -1
- package/components/FormField/components/FormFieldPrefix.js +1 -1
- package/components/FormField/components/FormFieldTarget.js +8 -8
- package/components/FormField/components/FormFieldTextarea.js +4 -4
- package/components/FormGroup/FormGroup.js +1 -1
- package/components/FormGroup/FormGroup.js.map +1 -1
- package/components/Gap/Gap.js +8 -8
- package/components/Header/Header.js +1 -1
- package/components/Header/Header.js.map +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js.map +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js.map +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js.map +1 -1
- package/components/Header/components/HeaderSubheader/HeaderSubheader.js +3 -3
- package/components/Header/components/HeaderSubheader/HeaderSubheader.js.map +1 -1
- package/components/Header/components/HeaderTabs/HeaderTabs.js +1 -1
- package/components/Header/components/HeaderTabs/HeaderTabs.js.map +1 -1
- package/components/Header/components/HeaderTabs/HeaderTabsContent.js +2 -4
- package/components/Header/components/HeaderTabs/HeaderTabsContent.js.map +1 -1
- package/components/Header/components/HeaderTabs/HeaderTabsControls.js +1 -1
- package/components/Header/components/HeaderTabs/HeaderTabsControls.js.map +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitle.js +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitle.js.map +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitleContent.js +10 -12
- package/components/Header/components/HeaderTitle/HeaderTitleContent.js.map +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitleControls.js +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitleControls.js.map +1 -1
- package/components/HelpBox/HelpBox.js +1 -1
- package/components/IconWrapper/IconWrapper.js +2 -2
- package/components/ImageGallery/ImageGallery.js +1 -1
- package/components/ImageGalleryExtended/ImageGalleryExtended.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedArrow.js +1 -1
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedDots.js +3 -3
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedMain.js +1 -1
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedSlide.js +1 -1
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedSwipeTrack.js +1 -1
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumb.js +1 -1
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumbnails.js +1 -1
- package/components/ImageGalleryExtended/components/index.js +1 -1
- package/components/ImageGalleryExtended/index.js +1 -1
- package/components/Island/Island.js +9 -2
- package/components/Island/Island.js.map +1 -1
- package/components/Island/components/IslandBody.js +1 -1
- package/components/Island/components/IslandFooter.js +1 -1
- package/components/Island/components/IslandHeader.js +1 -1
- package/components/Island/utils.js +1 -1
- package/components/IslandAccordion/IslandAccordion.js +2 -2
- package/components/IslandAccordion/components/IslandAccordionContent.js +1 -1
- package/components/IslandAccordion/components/IslandAccordionFooter.js +1 -1
- package/components/IslandAccordion/components/IslandAccordionItem.js +2 -2
- package/components/IslandWidget/IslandWidget.js +8 -18
- package/components/IslandWidget/IslandWidget.js.map +1 -1
- package/components/IslandWidget/IslandWidgetContext.js +3 -1
- package/components/IslandWidget/IslandWidgetContext.js.map +1 -1
- package/components/IslandWidget/components/IslandWidgetBody.js +14 -3
- package/components/IslandWidget/components/IslandWidgetBody.js.map +1 -1
- package/components/IslandWidget/components/IslandWidgetExtraFooter.js +1 -1
- package/components/IslandWidget/components/IslandWidgetFooter.js +14 -2
- package/components/IslandWidget/components/IslandWidgetFooter.js.map +1 -1
- package/components/IslandWidget/components/IslandWidgetFooterContent.js +1 -1
- package/components/IslandWidget/components/IslandWidgetFooterControls.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeader.js +7 -4
- package/components/IslandWidget/components/IslandWidgetHeader.js.map +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderContent.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderControls.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderDescription.js +25 -13
- package/components/IslandWidget/components/IslandWidgetHeaderDescription.js.map +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderTitle.js +1 -1
- package/components/IslandWidget/components/IslandWidgetWrapper.js +1 -1
- package/components/LightBox/LightBox.js +6 -5
- package/components/LightBox/LightBox.js.map +1 -1
- package/components/LightBox/LightBoxContent.js +1 -1
- package/components/LightBox/LightBoxControls/LightBoxArrow.js +1 -1
- package/components/LightBox/LightBoxControls/LightBoxClose.js +1 -1
- package/components/LightBox/LightBoxControls/LightBoxControls.js +1 -1
- package/components/LightBox/LightBoxControls/LightBoxNext.js +1 -1
- package/components/LightBox/LightBoxControls/LightBoxPrev.js +1 -1
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js +12 -12
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseDesktop.js +1 -1
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseMobile.js +1 -1
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayLoader.js +1 -1
- package/components/LightBox/LightBoxSidebars/LightBoxLeftSidebar.js +3 -3
- package/components/LightBox/LightBoxSidebars/LightBoxRightSidebar.js +3 -3
- package/components/Link/Link.js +38 -40
- package/components/Link/Link.js.map +1 -1
- package/components/List/List.js +3 -3
- package/components/List/components/ListActionItem.js +1 -1
- package/components/List/components/ListEmptyState.js +1 -1
- package/components/List/components/ListItem.js +1 -1
- package/components/List/components/ListItemContent.js +4 -4
- package/components/List/components/ListItemControls.js +1 -1
- package/components/List/components/ListItemControlsButton.js +1 -1
- package/components/List/components/ListItemControlsButtonDropdown.js +1 -1
- package/components/List/components/ListItemLoading.js +1 -1
- package/components/List/components/ListItemSelectable.js +6 -6
- package/components/List/components/ListItemTailLeft.js +1 -1
- package/components/List/components/ListItemTailRight.js +1 -1
- package/components/List/components/ListSortableItem.js +2 -2
- package/components/List/components/ListSortableItemControls.js +1 -1
- package/components/List/components/ListSortableItemTarget.js +4 -4
- package/components/List/components/ListTableItem.js +3 -3
- package/components/List/index.js +1 -1
- package/components/ListMaster/ListMaster.js +1 -1
- package/components/ListMaster/components/ListMasterBody.js +1 -1
- package/components/ListMaster/components/ListMasterChipGroup.js +1 -1
- package/components/ListMaster/components/ListMasterFooter.js +1 -1
- package/components/ListMaster/components/ListMasterFooterControls.js +1 -1
- package/components/ListMaster/components/ListMasterFooterDescription.js +1 -1
- package/components/ListMaster/components/ListMasterHeader.js +2 -2
- package/components/ListMaster/components/SelectionControls.js +2 -2
- package/components/Loader/LoaderMiddle/LoaderMiddle.js +8 -8
- package/components/Loader/LoaderSmall/LoaderSmall.js +10 -10
- package/components/LoaderScreen/LoaderScreen.js +5 -5
- package/components/Marker/Marker.js +3 -2
- package/components/Marker/Marker.js.map +1 -1
- package/components/Marker/enums.js.map +1 -1
- package/components/Marker/utils.js +2 -2
- package/components/MarkerStatus/MarkerStatus.js +20 -14
- package/components/MarkerStatus/MarkerStatus.js.map +1 -1
- package/components/{TextField → MaskedField}/MaskedField.js +1 -1
- package/components/MaskedField/MaskedField.js.map +1 -0
- package/components/MaskedField/index.js +5 -0
- package/components/MaskedField/index.js.map +1 -0
- package/components/ModalWindow/ModalWindow.js +1 -1
- package/components/ModalWindow/components/ModalWindowBody.js +1 -1
- package/components/ModalWindow/components/ModalWindowClose.js +1 -1
- package/components/ModalWindow/components/ModalWindowContent.js +1 -1
- package/components/ModalWindow/components/ModalWindowHeader.js +1 -1
- package/components/ModalWindow/components/ModalWindowViewManager.js +1 -1
- package/components/MonthYearField/MonthYearFieldTarget.js +4 -5
- package/components/MonthYearField/MonthYearFieldTarget.js.map +1 -1
- package/components/MonthYearRange/MonthYearRange.js +3 -3
- package/components/MultiselectField/MultiselectField.js +10 -6
- package/components/MultiselectField/MultiselectField.js.map +1 -1
- package/components/MultiselectField/MultiselectFieldContext.js.map +1 -1
- package/components/MultiselectField/components/MultiselectFieldDropdown.js +5 -5
- package/components/MultiselectField/components/MultiselectFieldDropdown.js.map +1 -1
- package/components/MultiselectField/components/MultiselectFieldDropdownContent.js +5 -5
- package/components/MultiselectField/components/MultiselectFieldDropdownContent.js.map +1 -1
- package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js +1 -1
- package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js.map +1 -1
- package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js +1 -1
- package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js.map +1 -1
- package/components/Notification/Notification.js +2 -2
- package/components/Notification/NotificationGrouped.js +1 -1
- package/components/Notification/components/NotificationBody.js +1 -1
- package/components/Notification/components/NotificationBodyList.js +1 -1
- package/components/Notification/components/NotificationClose.js +1 -1
- package/components/Notification/components/NotificationFooter.js +1 -1
- package/components/Notification/components/NotificationGroupedFooter.js +1 -1
- package/components/Notification/components/NotificationHeader.js +1 -1
- package/components/Notification/components/NotificationIcon.js +1 -1
- package/components/Notification/components/NotificationTime.js +1 -1
- package/components/OrderedList/OrderedList.js +2 -2
- package/components/OrderedList/OrderedListItem.js +2 -2
- package/components/Overlay/Overlay.js +1 -1
- package/components/Overlay/OverlayBase.js +4 -0
- package/components/Overlay/OverlayBase.js.map +1 -1
- package/components/Overlay/OverlayMask.js +1 -1
- package/components/Overlay/OverlayPanel.js +1 -1
- package/components/Page/Page.js +1 -1
- package/components/Page/components/BodyPage.js +36 -9
- package/components/Page/components/BodyPage.js.map +1 -1
- package/components/Page/components/FooterPage.js +1 -1
- package/components/Page/components/HeaderPage.js +1 -1
- package/components/Page/components/enums.js +1 -0
- package/components/Page/components/enums.js.map +1 -1
- package/components/Pagination/Pagination.js +1 -1
- package/components/Pagination/Pagination.js.map +1 -1
- package/components/Pagination/components/PaginationExtended.js +2 -2
- package/components/Pagination/components/PaginationNavigation.js +4 -3
- package/components/Pagination/components/PaginationNavigation.js.map +1 -1
- package/components/Pagination/components/PaginationNavigationButton.js +2 -2
- package/components/Pagination/components/PaginationNavigationExtended.js +1 -1
- package/components/Pagination/components/PaginationPageButton.js +2 -2
- package/components/Pagination/components/PaginationPageEllipsis.js +1 -1
- package/components/Pagination/components/PaginationSelect.js +17 -8
- package/components/Pagination/components/PaginationSelect.js.map +1 -1
- package/components/Radio/Radio.js +9 -9
- package/components/Radio/RadioXGroup.js +8 -8
- package/components/Radio/RadioYGroup.js +1 -1
- package/components/Row/Row.js +4 -4
- package/components/SMSField/SMSField.js +25 -5
- package/components/SMSField/SMSField.js.map +1 -1
- package/components/SMSField/SMSFieldContext.js +13 -2
- package/components/SMSField/SMSFieldContext.js.map +1 -1
- package/components/SMSField/components/RefreshIcon.js +1 -1
- package/components/SMSField/components/SMSFieldInput.js +38 -24
- package/components/SMSField/components/SMSFieldInput.js.map +1 -1
- package/components/SMSField/components/SMSFieldRefresh.js +20 -7
- package/components/SMSField/components/SMSFieldRefresh.js.map +1 -1
- package/components/SMSField/components/SMSFieldSubmit.js +16 -10
- package/components/SMSField/components/SMSFieldSubmit.js.map +1 -1
- package/components/SegmentedControl/SegmentedControl.js +9 -9
- package/components/SegmentedControl/SegmentedControlSegment.js +3 -3
- package/components/SelectExtendedField/SelectExtendedField.js +1 -1
- package/components/SelectExtendedField/components/SelectExtendedFieldDropdown.js +1 -1
- package/components/SelectExtendedField/components/SelectExtendedFieldDropdownDefault.js +1 -1
- package/components/SelectExtendedField/components/SelectExtendedFieldTarget.js +7 -7
- package/components/SelectField/SelectField.js +12 -19
- package/components/SelectField/SelectField.js.map +1 -1
- package/components/Skeleton/Skeleton.js +19 -11
- package/components/Skeleton/Skeleton.js.map +1 -1
- package/components/Skeleton/enums.js +3 -2
- package/components/Skeleton/enums.js.map +1 -1
- package/components/SliderExtended/SliderExtended.js +2 -2
- package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js +5 -5
- package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMark.js +1 -1
- package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMarks.js +1 -1
- package/components/SliderExtended/components/SliderExtendedRail.js +1 -1
- package/components/SliderExtended/components/SliderExtendedTooltip/SliderExtendedTooltip.js +4 -4
- package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js +6 -6
- package/components/SmallInput/SmallInput.js +5 -2
- package/components/SmallInput/SmallInput.js.map +1 -1
- package/components/Spoiler/Spoiler.js +10 -10
- package/components/StatusTracker/StatusTracker.js +2 -2
- package/components/StatusTracker/components/StatusTrackerAlert.js +1 -1
- package/components/StatusTracker/components/StatusTrackerBody.js +1 -1
- package/components/StatusTracker/components/StatusTrackerButton.js +1 -1
- package/components/StatusTracker/components/StatusTrackerDescription.js +1 -1
- package/components/StatusTracker/components/StatusTrackerFooter.js +1 -1
- package/components/StatusTracker/components/StatusTrackerHeader.js +1 -1
- package/components/StatusTracker/components/StatusTrackerMedia.js +1 -1
- package/components/StatusTracker/components/StatusTrackerStatus.js +1 -1
- package/components/StatusTracker/components/StatusTrackerStatusGroup.js +1 -1
- package/components/StatusTracker/components/StatusTrackerSum.js +1 -1
- package/components/StatusTracker/components/StatusTrackerTitle.js +1 -1
- package/components/Step/Step.js +10 -10
- package/components/Stepper/Stepper.js +8 -8
- package/components/Stepper/StepperExtended.js +1 -1
- package/components/Stepper/StepperStep.js +2 -2
- package/components/Stepper/StepperStepArrowBorder.js +1 -1
- package/components/Suggest/Suggest.js +6 -4
- package/components/Suggest/Suggest.js.map +1 -1
- package/components/Suggest/SuggestContext.js.map +1 -1
- package/components/Suggest/SuggestMobileDropdownContent.js +6 -7
- package/components/Suggest/SuggestMobileDropdownContent.js.map +1 -1
- package/components/Suggest/useSuggest.js +4 -4
- package/components/Suggest/useSuggest.js.map +1 -1
- package/components/SuggestField/SuggestField.js +1 -1
- package/components/SuggestField/desktop/SuggestFieldDesktop.js +1 -2
- package/components/SuggestField/desktop/SuggestFieldDesktop.js.map +1 -1
- package/components/SuggestField/desktop/SuggestFieldDesktopDropdown.js +1 -1
- package/components/SuggestField/index.js +1 -1
- package/components/SuggestField/mobile/SuggestFieldMobile.js +1 -1
- package/components/SuggestField/mobile/SuggestFieldMobileDropdown.js +2 -2
- package/components/SuggestField/mobile/SuggestFieldMobileDropdownHint.js +1 -1
- package/components/SuggestField/mobile/index.js +1 -1
- package/components/SwipeableArea/SwipeableArea.js +73 -116
- package/components/SwipeableArea/SwipeableArea.js.map +1 -1
- package/components/SwipeableArea/utils.js +72 -0
- package/components/SwipeableArea/utils.js.map +1 -0
- package/components/Table/ChipPanel.js +8 -3
- package/components/Table/ChipPanel.js.map +1 -1
- package/components/Table/ChipPanelLinks.js +15 -11
- package/components/Table/ChipPanelLinks.js.map +1 -1
- package/components/Table/FilterPanel.js +13 -9
- package/components/Table/FilterPanel.js.map +1 -1
- package/components/Table/MasterTable.js +30 -31
- package/components/Table/MasterTable.js.map +1 -1
- package/components/Table/NoColumns.js +10 -7
- package/components/Table/NoColumns.js.map +1 -1
- package/components/Table/PaginationPanel.js +13 -9
- package/components/Table/PaginationPanel.js.map +1 -1
- package/components/Table/TableBasic/TableBasic.js +58 -58
- package/components/Table/TableBasic/TableBasic.js.map +1 -1
- package/components/Table/TableBasic/components/TableBasicBody.js +2 -3
- package/components/Table/TableBasic/components/TableBasicBody.js.map +1 -1
- package/components/Table/TableBasic/components/TableBasicHeader.js +48 -65
- package/components/Table/TableBasic/components/TableBasicHeader.js.map +1 -1
- package/components/Table/TableBasic/components/TableBasicRow.js +24 -27
- package/components/Table/TableBasic/components/TableBasicRow.js.map +1 -1
- package/components/Table/TableBasicSettings/TableBasicSettings.js +51 -46
- package/components/Table/TableBasicSettings/TableBasicSettings.js.map +1 -1
- package/components/Table/TableBasicSettings/components/ColumnSettingsSortableListItemTarget.js +2 -2
- package/components/Table/TableBasicSettings/components/ColumnSettingsStaticListItem.js +1 -1
- package/components/Table/TableBasicSettings/components/TableBasicSettingsBody.js +1 -1
- package/components/Table/TableBasicSettings/components/TableBasicSettingsFooter.js +1 -1
- package/components/Table/TableBasicSettings/components/TableBasicSettingsHeader.js +1 -1
- package/components/Table/TableFooter/TableFooter.js +12 -7
- package/components/Table/TableFooter/TableFooter.js.map +1 -1
- package/components/Table/TableFooter/components/TableFooterSummary.js +1 -1
- package/components/Table/TableFooter/components/TableFooterSummaryAmount.js +1 -1
- package/components/Table/TableFooter/components/TableFooterSummarySelectAllButton.js +1 -1
- package/components/Table/TableFooter/components/TableFooterSummarySelectedCount.js +1 -1
- package/components/Table/utils.js +1 -1
- package/components/Tabs/Tabs.js +25 -9
- package/components/Tabs/Tabs.js.map +1 -1
- package/components/TabsExtended/TabsExtended.js +2 -2
- package/components/TabsExtended/components/TabsExtendedContent.js +1 -1
- package/components/TabsExtended/components/TabsExtendedDropdownWrapper.js +1 -1
- package/components/TabsExtended/components/TabsExtendedTab.js +1 -1
- package/components/TabsExtended/components/TabsExtendedTabButton.js +1 -1
- package/components/TabsExtended/components/TabsExtendedTabsWrapper.js +1 -1
- package/components/TabsExtended/utils.js +1 -1
- package/components/TabsLine/TabsLine.js +1 -1
- package/components/TabsLine/components/TabsLineDesktop.js +1 -1
- package/components/TabsLine/components/TabsLineDropdown.js +2 -2
- package/components/TabsLine/components/TabsLineItem.js +1 -1
- package/components/TabsLine/components/TabsLineMobile.js +2 -2
- package/components/Tag/Tag.js +50 -55
- package/components/Tag/Tag.js.map +1 -1
- package/components/TagColor/TagColor.js +10 -10
- package/components/TagGroup/TagGroup.js +4 -4
- package/components/TextField/TextField.js.map +1 -1
- package/components/TextField/index.js +0 -2
- package/components/TextField/index.js.map +1 -1
- package/components/Tooltip/components/common/TooltipBody.js +1 -1
- package/components/Tooltip/components/common/TooltipLink.js +4 -4
- package/components/Tooltip/components/common/TooltipXButton.js +1 -1
- package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js +1 -1
- package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js +1 -1
- package/components/Tooltip/components/mobile/TooltipMobile.js +4 -4
- package/components/TopOverlay/TopOverlay.js +106 -97
- package/components/TopOverlay/TopOverlay.js.map +1 -1
- package/components/TopOverlay/utils.js +8 -0
- package/components/TopOverlay/utils.js.map +1 -0
- package/components/TreeView/TreeView.js +41 -16
- package/components/TreeView/TreeView.js.map +1 -1
- package/components/TreeView/TreeViewAbstractNodeUtils.js +30 -34
- package/components/TreeView/TreeViewAbstractNodeUtils.js.map +1 -1
- package/components/TreeView/TreeViewContext.js +0 -2
- package/components/TreeView/TreeViewContext.js.map +1 -1
- package/components/TreeView/components/TreeViewGroup.js +10 -2
- package/components/TreeView/components/TreeViewGroup.js.map +1 -1
- package/components/TreeView/components/TreeViewNode.js +8 -10
- package/components/TreeView/components/TreeViewNode.js.map +1 -1
- package/components/Typography/Caption.js +7 -7
- package/components/Typography/CodeText.js +2 -2
- package/components/Typography/Text.js +9 -9
- package/components/Typography/Title.js +9 -9
- package/components/Typography/constants.js +1 -1
- package/components/UnorderedListExtended/UnorderedListExtended.js +2 -2
- package/components/UnorderedListExtended/UnorderedListExtendedItem.js +2 -2
- package/components/UnorderedListExtended/UnorderedListExtendedItemMarker.js +3 -3
- package/components/UploadZone/UploadZone.js +2 -2
- package/components/UploadZone/components/UploadZoneInput.js +1 -1
- package/components/UploadZone/index.js +1 -1
- package/components/index.js +9 -25
- package/components/index.js.map +1 -1
- package/index.d.ts +388 -162
- package/index.js +9 -7
- package/index.js.map +1 -1
- package/package.json +5 -1
- package/styles/triplex-next.css +6327 -6144
- package/chunks/Card.module-CJKLM6En.js +0 -32
- package/chunks/Card.module-CJKLM6En.js.map +0 -1
- package/chunks/Carousel.module-g5TYfNRR.js +0 -30
- package/chunks/Carousel.module-g5TYfNRR.js.map +0 -1
- package/chunks/CheckboxTreeExtended.module-3Qs071eq.js +0 -24
- package/chunks/CheckboxTreeExtended.module-3Qs071eq.js.map +0 -1
- package/chunks/Confirm.module-fkOpZSTz.js +0 -24
- package/chunks/Confirm.module-fkOpZSTz.js.map +0 -1
- package/chunks/DropdownMobile.module-Ddqns0Cv.js +0 -40
- package/chunks/DropdownMobile.module-Ddqns0Cv.js.map +0 -1
- package/chunks/Footer.module-Drrxy-6W.js +0 -12
- package/chunks/Footer.module-Drrxy-6W.js.map +0 -1
- package/chunks/HeaderLayoutSidebar.module-Du7oNhcA.js.map +0 -1
- package/chunks/HeaderTabs.module-DuLER5cV.js +0 -12
- package/chunks/HeaderTabs.module-DuLER5cV.js.map +0 -1
- package/chunks/HeaderTitle.module-BpjoBzW6.js.map +0 -1
- package/chunks/ImageGalleryExtendedMain.module-DdtxKZVk.js +0 -28
- package/chunks/ImageGalleryExtendedMain.module-DdtxKZVk.js.map +0 -1
- package/chunks/IslandAccordion.module-BSKYPAWV.js +0 -44
- package/chunks/IslandAccordion.module-BSKYPAWV.js.map +0 -1
- package/chunks/IslandWidgetFooter.module-Iynlil69.js +0 -12
- package/chunks/IslandWidgetFooter.module-Iynlil69.js.map +0 -1
- package/chunks/IslandWidgetHeader.module-DhLpsPi3.js +0 -20
- package/chunks/IslandWidgetHeader.module-DhLpsPi3.js.map +0 -1
- package/chunks/LightBoxControls.module-DrWaO0Tw.js +0 -26
- package/chunks/LightBoxControls.module-DrWaO0Tw.js.map +0 -1
- package/chunks/LightBoxSideOverlayClose.module-B0uNmLho.js.map +0 -1
- package/chunks/ListItemTail.module-BJTp-HUl.js +0 -18
- package/chunks/ListItemTail.module-BJTp-HUl.js.map +0 -1
- package/chunks/ListMasterFooter.module-CPTuou5-.js +0 -14
- package/chunks/ListMasterFooter.module-CPTuou5-.js.map +0 -1
- package/chunks/ModalWindow.module-ClLy376h.js +0 -28
- package/chunks/ModalWindow.module-ClLy376h.js.map +0 -1
- package/chunks/Notification.module-DAhgj_4u.js +0 -34
- package/chunks/Notification.module-DAhgj_4u.js.map +0 -1
- package/chunks/Overlay.module-DstpCyQx.js +0 -30
- package/chunks/Overlay.module-DstpCyQx.js.map +0 -1
- package/chunks/Page.module-BlMfM_F-.js +0 -15
- package/chunks/Page.module-BlMfM_F-.js.map +0 -1
- package/chunks/SMSField.module-e3cgZTSU.js +0 -26
- package/chunks/SMSField.module-e3cgZTSU.js.map +0 -1
- package/chunks/SliderExtendedMarks.module-DpSsY-cL.js +0 -24
- package/chunks/SliderExtendedMarks.module-DpSsY-cL.js.map +0 -1
- package/chunks/StatusTracker.module-D4AWWtIs.js +0 -44
- package/chunks/StatusTracker.module-D4AWWtIs.js.map +0 -1
- package/chunks/TableFooter.module-BNzWbmoH.js +0 -22
- package/chunks/TableFooter.module-BNzWbmoH.js.map +0 -1
- package/chunks/TabsExtended.module-X9j6lOjE.js +0 -26
- package/chunks/TabsExtended.module-X9j6lOjE.js.map +0 -1
- package/chunks/TabsLine.module-ChL37SLq.js +0 -36
- package/chunks/TabsLine.module-ChL37SLq.js.map +0 -1
- package/chunks/TooltipDesktop.module-CnBq_TZS.js +0 -32
- package/chunks/TooltipDesktop.module-CnBq_TZS.js.map +0 -1
- package/chunks/TreeView.module-C5KrbQR8.js +0 -12
- package/chunks/TreeView.module-C5KrbQR8.js.map +0 -1
- package/chunks/utils-CLqTYw8x.js.map +0 -1
- package/components/TextField/MaskedField.js.map +0 -1
|
@@ -1,70 +1,86 @@
|
|
|
1
1
|
import { jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useRef,
|
|
2
|
+
import React__default, { useRef, useCallback, useState, useEffect } from "react";
|
|
3
3
|
import { Dropdown } from "../Dropdown/Dropdown.js";
|
|
4
4
|
import { isKey } from "../../utils/keyboard.js";
|
|
5
5
|
import { DropdownList } from "../Dropdown/desktop/DropdownList.js";
|
|
6
6
|
import { c as clsx } from "../../chunks/vendor-D4wvHis9.js";
|
|
7
|
-
const buttonDropdownExtended = "
|
|
8
|
-
const buttonDropdownExtendedBlock = "
|
|
7
|
+
const buttonDropdownExtended = "buttonDropdownExtended__c53f5d30";
|
|
8
|
+
const buttonDropdownExtendedBlock = "buttonDropdownExtendedBlock__dc0085a2";
|
|
9
9
|
const styles = {
|
|
10
10
|
buttonDropdownExtended,
|
|
11
11
|
buttonDropdownExtendedBlock
|
|
12
12
|
};
|
|
13
|
-
const ButtonDropdownExtended = (
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
13
|
+
const ButtonDropdownExtended = Object.assign(
|
|
14
|
+
React__default.forwardRef(function ButtonDropdownExtended2(props, ref) {
|
|
15
|
+
const { className, opened, setOpened, renderButton, renderDropdown, dropdownRef, closeOnTab, ...rest } = props;
|
|
16
|
+
const containerRef = useRef(null);
|
|
17
|
+
const setContainerRef = useCallback(
|
|
18
|
+
(instance) => {
|
|
19
|
+
containerRef.current = instance;
|
|
20
|
+
if (typeof ref === "function") {
|
|
21
|
+
ref(instance);
|
|
22
|
+
} else if (ref) {
|
|
23
|
+
ref.current = instance;
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
[ref]
|
|
27
|
+
);
|
|
28
|
+
const [isControlled] = useState(() => opened !== void 0);
|
|
29
|
+
const [uncontrolledOpened, setUncontrolledOpened] = useState(false);
|
|
30
|
+
const computedOpened = isControlled ? !!opened : uncontrolledOpened;
|
|
31
|
+
const handleOpenedChange = useCallback(
|
|
32
|
+
(nextOpened) => {
|
|
33
|
+
if (isControlled) {
|
|
34
|
+
setOpened == null ? void 0 : setOpened(nextOpened);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
setUncontrolledOpened(nextOpened);
|
|
38
|
+
},
|
|
39
|
+
[isControlled, setOpened]
|
|
40
|
+
);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (!computedOpened) {
|
|
23
43
|
return;
|
|
24
44
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
] });
|
|
65
|
-
};
|
|
66
|
-
ButtonDropdownExtended.Dropdown = Dropdown;
|
|
67
|
-
ButtonDropdownExtended.DropdownList = DropdownList;
|
|
45
|
+
const handleKeyDown = (event) => {
|
|
46
|
+
const key = event.code || event.keyCode;
|
|
47
|
+
if (isKey(key, "ESCAPE") || closeOnTab && isKey(key, "TAB")) {
|
|
48
|
+
handleOpenedChange(false);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const handleClickOutside = (event) => {
|
|
52
|
+
const button = containerRef.current;
|
|
53
|
+
const dropdown = dropdownRef.current;
|
|
54
|
+
const targetNode = event.target;
|
|
55
|
+
if (targetNode && !(button == null ? void 0 : button.contains(targetNode)) && !(dropdown == null ? void 0 : dropdown.contains(targetNode))) {
|
|
56
|
+
handleOpenedChange(false);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
60
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
61
|
+
document.addEventListener("touchstart", handleClickOutside);
|
|
62
|
+
return () => {
|
|
63
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
64
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
65
|
+
document.removeEventListener("touchstart", handleClickOutside);
|
|
66
|
+
};
|
|
67
|
+
}, [computedOpened, closeOnTab, dropdownRef, handleOpenedChange]);
|
|
68
|
+
const classNames = clsx(styles.buttonDropdownExtended, className);
|
|
69
|
+
return /* @__PURE__ */ jsxs("div", { className: classNames, ref: setContainerRef, ...rest, children: [
|
|
70
|
+
renderButton({ opened: computedOpened, setOpened: handleOpenedChange }),
|
|
71
|
+
renderDropdown({
|
|
72
|
+
className: styles.buttonDropdownExtendedBlock,
|
|
73
|
+
opened: computedOpened,
|
|
74
|
+
setOpened: handleOpenedChange
|
|
75
|
+
})
|
|
76
|
+
] });
|
|
77
|
+
}),
|
|
78
|
+
{
|
|
79
|
+
Dropdown,
|
|
80
|
+
DropdownList
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
ButtonDropdownExtended.displayName = "ButtonDropdownExtended";
|
|
68
84
|
export {
|
|
69
85
|
ButtonDropdownExtended
|
|
70
86
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonDropdownExtended.js","sources":["../../../src/components/Button/ButtonDropdownExtended.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { Dropdown } from \"@sberbusiness/triplex-next/components/Dropdown/Dropdown\";\nimport { isKey } from \"@sberbusiness/triplex-next/utils/keyboard\";\nimport { DropdownList } from \"@sberbusiness/triplex-next/components/Dropdown/desktop/DropdownList\";\nimport clsx from \"clsx\";\nimport styles from \"./styles/ButtonDropdownExtended.module.less\";\n\n/** Свойства встроенной кнопки. */\nexport interface IButtonDropdownExtendedButtonProvideProps {\n /** Контролируемое состояние открытости. */\n opened: boolean;\n /** Функция, контролирующая состояние открытости. */\n setOpened: (opened: boolean) => void;\n}\n\n/** Свойства встроенного выпадающего блока. */\nexport interface IButtonDropdownExtendedDropdownProvideProps {\n /** Контролируемое состояние открытости. */\n opened: boolean;\n /** Функция, контролирующая состояние открытости. */\n setOpened: (opened: boolean) => void;\n /** Пробрасываемый стилевой класс. */\n className: string;\n}\n\n/** Свойства кнопки с выпадающим блоком. */\nexport interface IButtonDropdownExtendedProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Контролируемое состояние открытости. Если передан на первом рендере, компонент работает в контролируемом режиме. */\n opened?: boolean;\n /** Функция, контролирующая состояние открытости. Вызывается только в контролируемом режиме. */\n setOpened?: (opened: boolean) => void;\n /** Функция, отрисовывающая кнопку. */\n renderButton: (props: IButtonDropdownExtendedButtonProvideProps) => React.ReactNode;\n /** Функция, отрисовывающая выпадающий блок. */\n renderDropdown: (props: IButtonDropdownExtendedDropdownProvideProps) => React.ReactNode;\n /** Ссылка на выпадающий блок. Нужна, чтобы клик внутри блока не считался кликом снаружи. */\n dropdownRef: React.RefObject<HTMLElement>;\n /** Закрытие выпадающего блока при нажатии клавиши Tab. */\n closeOnTab?: boolean;\n}\n\n
|
|
1
|
+
{"version":3,"file":"ButtonDropdownExtended.js","sources":["../../../src/components/Button/ButtonDropdownExtended.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport { Dropdown } from \"@sberbusiness/triplex-next/components/Dropdown/Dropdown\";\nimport { isKey } from \"@sberbusiness/triplex-next/utils/keyboard\";\nimport { DropdownList } from \"@sberbusiness/triplex-next/components/Dropdown/desktop/DropdownList\";\nimport clsx from \"clsx\";\nimport styles from \"./styles/ButtonDropdownExtended.module.less\";\n\n/** Свойства встроенной кнопки. */\nexport interface IButtonDropdownExtendedButtonProvideProps {\n /** Контролируемое состояние открытости. */\n opened: boolean;\n /** Функция, контролирующая состояние открытости. */\n setOpened: (opened: boolean) => void;\n}\n\n/** Свойства встроенного выпадающего блока. */\nexport interface IButtonDropdownExtendedDropdownProvideProps {\n /** Контролируемое состояние открытости. */\n opened: boolean;\n /** Функция, контролирующая состояние открытости. */\n setOpened: (opened: boolean) => void;\n /** Пробрасываемый стилевой класс. */\n className: string;\n}\n\n/** Свойства кнопки с выпадающим блоком. */\nexport interface IButtonDropdownExtendedProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Контролируемое состояние открытости. Если передан на первом рендере, компонент работает в контролируемом режиме. */\n opened?: boolean;\n /** Функция, контролирующая состояние открытости. Вызывается только в контролируемом режиме. */\n setOpened?: (opened: boolean) => void;\n /** Функция, отрисовывающая кнопку. */\n renderButton: (props: IButtonDropdownExtendedButtonProvideProps) => React.ReactNode;\n /** Функция, отрисовывающая выпадающий блок. */\n renderDropdown: (props: IButtonDropdownExtendedDropdownProvideProps) => React.ReactNode;\n /** Ссылка на выпадающий блок. Нужна, чтобы клик внутри блока не считался кликом снаружи. */\n dropdownRef: React.RefObject<HTMLElement>;\n /** Закрытие выпадающего блока при нажатии клавиши Tab. */\n closeOnTab?: boolean;\n}\n\n/**\n * Тип компонента \"Кнопка с выпадающим блоком\" со статическими субкомпонентами.\n *\n * Явная аннотация снимает проверку лишних свойств у Object.assign, поэтому при добавлении\n * или удалении статики этот интерфейс нужно править синхронно: иначе новая статика окажется\n * в рантайме, но не попадёт в публичный тип, и TypeScript промолчит.\n */\nexport interface IButtonDropdownExtendedComponent extends React.ForwardRefExoticComponent<\n IButtonDropdownExtendedProps & React.RefAttributes<HTMLDivElement>\n> {\n /** Выпадающий блок. */\n Dropdown: typeof Dropdown;\n /** Список опций для выпадающего блока. */\n DropdownList: typeof DropdownList;\n}\n\n/**\n * Компонент \"Кнопка с выпадающим блоком\".\n * Позволяет кастомизировать кнопку открытия Dropdown и сам Dropdown через render-функции.\n * Пока блок открыт, слушает документ и закрывает его по Escape, по Tab (при closeOnTab)\n * и по клику вне кнопки и вне выпадающего блока.\n */\nexport const ButtonDropdownExtended: IButtonDropdownExtendedComponent = Object.assign(\n React.forwardRef<HTMLDivElement, IButtonDropdownExtendedProps>(function ButtonDropdownExtended(props, ref) {\n const { className, opened, setOpened, renderButton, renderDropdown, dropdownRef, closeOnTab, ...rest } = props;\n\n // Корневой элемент нужен самому компоненту (клик снаружи) и потребителю через forwarded ref.\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n const setContainerRef = useCallback(\n (instance: HTMLDivElement | null) => {\n containerRef.current = instance;\n\n if (typeof ref === \"function\") {\n ref(instance);\n } else if (ref) {\n ref.current = instance;\n }\n },\n [ref],\n );\n\n // Режим управления фиксируется на монтировании и дальше не меняется.\n const [isControlled] = useState<boolean>(() => opened !== undefined);\n const [uncontrolledOpened, setUncontrolledOpened] = useState<boolean>(false);\n\n const computedOpened = isControlled ? !!opened : uncontrolledOpened;\n\n const handleOpenedChange = useCallback(\n (nextOpened: boolean) => {\n if (isControlled) {\n setOpened?.(nextOpened);\n return;\n }\n setUncontrolledOpened(nextOpened);\n },\n [isControlled, setOpened],\n );\n\n useEffect(() => {\n if (!computedOpened) {\n return;\n }\n\n const handleKeyDown = (event: KeyboardEvent) => {\n const key: string | number = event.code || event.keyCode;\n\n if (isKey(key, \"ESCAPE\") || (closeOnTab && isKey(key, \"TAB\"))) {\n handleOpenedChange(false);\n }\n };\n\n const handleClickOutside = (event: Event) => {\n const button = containerRef.current;\n const dropdown = dropdownRef.current;\n const targetNode = event.target as Node | null;\n\n if (targetNode && !button?.contains(targetNode) && !dropdown?.contains(targetNode)) {\n handleOpenedChange(false);\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n document.addEventListener(\"mousedown\", handleClickOutside);\n document.addEventListener(\"touchstart\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.removeEventListener(\"mousedown\", handleClickOutside);\n document.removeEventListener(\"touchstart\", handleClickOutside);\n };\n }, [computedOpened, closeOnTab, dropdownRef, handleOpenedChange]);\n\n const classNames = clsx(styles.buttonDropdownExtended, className);\n\n return (\n <div className={classNames} ref={setContainerRef} {...rest}>\n {renderButton({ opened: computedOpened, setOpened: handleOpenedChange })}\n {renderDropdown({\n className: styles.buttonDropdownExtendedBlock,\n opened: computedOpened,\n setOpened: handleOpenedChange,\n })}\n </div>\n );\n }),\n {\n Dropdown,\n DropdownList,\n },\n);\n\nButtonDropdownExtended.displayName = \"ButtonDropdownExtended\";\n"],"names":["React","ButtonDropdownExtended"],"mappings":";;;;;;;;;;;;AA+DO,MAAM,yBAA2D,OAAO;AAAA,EAC3EA,eAAM,WAAyD,SAASC,wBAAuB,OAAO,KAAK;AACvG,UAAM,EAAE,WAAW,QAAQ,WAAW,cAAc,gBAAgB,aAAa,YAAY,GAAG,KAAA,IAAS;AAGzG,UAAM,eAAe,OAA8B,IAAI;AAEvD,UAAM,kBAAkB;AAAA,MACpB,CAAC,aAAoC;AACjC,qBAAa,UAAU;AAEvB,YAAI,OAAO,QAAQ,YAAY;AAC3B,cAAI,QAAQ;AAAA,QAChB,WAAW,KAAK;AACZ,cAAI,UAAU;AAAA,QAClB;AAAA,MACJ;AAAA,MACA,CAAC,GAAG;AAAA,IAAA;AAIR,UAAM,CAAC,YAAY,IAAI,SAAkB,MAAM,WAAW,MAAS;AACnE,UAAM,CAAC,oBAAoB,qBAAqB,IAAI,SAAkB,KAAK;AAE3E,UAAM,iBAAiB,eAAe,CAAC,CAAC,SAAS;AAEjD,UAAM,qBAAqB;AAAA,MACvB,CAAC,eAAwB;AACrB,YAAI,cAAc;AACd,iDAAY;AACZ;AAAA,QACJ;AACA,8BAAsB,UAAU;AAAA,MACpC;AAAA,MACA,CAAC,cAAc,SAAS;AAAA,IAAA;AAG5B,cAAU,MAAM;AACZ,UAAI,CAAC,gBAAgB;AACjB;AAAA,MACJ;AAEA,YAAM,gBAAgB,CAAC,UAAyB;AAC5C,cAAM,MAAuB,MAAM,QAAQ,MAAM;AAEjD,YAAI,MAAM,KAAK,QAAQ,KAAM,cAAc,MAAM,KAAK,KAAK,GAAI;AAC3D,6BAAmB,KAAK;AAAA,QAC5B;AAAA,MACJ;AAEA,YAAM,qBAAqB,CAAC,UAAiB;AACzC,cAAM,SAAS,aAAa;AAC5B,cAAM,WAAW,YAAY;AAC7B,cAAM,aAAa,MAAM;AAEzB,YAAI,cAAc,EAAC,iCAAQ,SAAS,gBAAe,EAAC,qCAAU,SAAS,cAAa;AAChF,6BAAmB,KAAK;AAAA,QAC5B;AAAA,MACJ;AAEA,eAAS,iBAAiB,WAAW,aAAa;AAClD,eAAS,iBAAiB,aAAa,kBAAkB;AACzD,eAAS,iBAAiB,cAAc,kBAAkB;AAE1D,aAAO,MAAM;AACT,iBAAS,oBAAoB,WAAW,aAAa;AACrD,iBAAS,oBAAoB,aAAa,kBAAkB;AAC5D,iBAAS,oBAAoB,cAAc,kBAAkB;AAAA,MACjE;AAAA,IACJ,GAAG,CAAC,gBAAgB,YAAY,aAAa,kBAAkB,CAAC;AAEhE,UAAM,aAAa,KAAK,OAAO,wBAAwB,SAAS;AAEhE,gCACK,OAAA,EAAI,WAAW,YAAY,KAAK,iBAAkB,GAAG,MACjD,UAAA;AAAA,MAAA,aAAa,EAAE,QAAQ,gBAAgB,WAAW,oBAAoB;AAAA,MACtE,eAAe;AAAA,QACZ,WAAW,OAAO;AAAA,QAClB,QAAQ;AAAA,QACR,WAAW;AAAA,MAAA,CACd;AAAA,IAAA,GACL;AAAA,EAER,CAAC;AAAA,EACD;AAAA,IACI;AAAA,IACA;AAAA,EAAA;AAER;AAEA,uBAAuB,cAAc;"}
|
|
@@ -3,9 +3,9 @@ import React__default from "react";
|
|
|
3
3
|
import { c as clsx } from "../../chunks/vendor-D4wvHis9.js";
|
|
4
4
|
import { EButtonIconShape } from "./enums.js";
|
|
5
5
|
import { IconWrapper } from "../IconWrapper/IconWrapper.js";
|
|
6
|
-
const buttonIcon = "
|
|
7
|
-
const circle = "
|
|
8
|
-
const squircle = "
|
|
6
|
+
const buttonIcon = "buttonIcon__99f93361";
|
|
7
|
+
const circle = "circle__2ef0bafd";
|
|
8
|
+
const squircle = "squircle__f9ab37f9";
|
|
9
9
|
const styles = {
|
|
10
10
|
buttonIcon,
|
|
11
11
|
circle,
|
|
@@ -14,9 +14,9 @@ import { CalendarView } from "./components/CalendarView.js";
|
|
|
14
14
|
import { CalendarFooter } from "./components/CalendarFooter.js";
|
|
15
15
|
import { CalendarFooterButton } from "./components/CalendarFooterButton.js";
|
|
16
16
|
import { parsePickedDate, formatDate } from "./utils.js";
|
|
17
|
-
const calendar = "
|
|
18
|
-
const extraBottom = "
|
|
19
|
-
const adaptive = "
|
|
17
|
+
const calendar = "calendar__f14df2a9";
|
|
18
|
+
const extraBottom = "extraBottom__b3b9f3d9";
|
|
19
|
+
const adaptive = "adaptive__bb5eb75a";
|
|
20
20
|
const styles = {
|
|
21
21
|
calendar,
|
|
22
22
|
extraBottom,
|
|
@@ -179,7 +179,7 @@ class Calendar extends React__default.PureComponent {
|
|
|
179
179
|
this.props.adaptiveMode ? styles.adaptive : (viewMode !== ECalendarViewMode.DAYS || todayButtonProps) && styles.extraBottom
|
|
180
180
|
);
|
|
181
181
|
const pickedDate = parsePickedDate(this.props.pickedDate, format);
|
|
182
|
-
return /* @__PURE__ */ jsx("div", { className: classNames, "data-tx": "1.
|
|
182
|
+
return /* @__PURE__ */ jsx("div", { className: classNames, "data-tx": "1.45.0", children: /* @__PURE__ */ jsxs(
|
|
183
183
|
CalendarContext.Provider,
|
|
184
184
|
{
|
|
185
185
|
value: {
|
|
@@ -9,7 +9,7 @@ import { EButtonIconShape, EButtonTheme } from "../../Button/enums.js";
|
|
|
9
9
|
import { ECalendarViewMode } from "../enums.js";
|
|
10
10
|
import { globalLimitRange } from "../../../consts/DateConst.js";
|
|
11
11
|
import { EComponentSize } from "../../../enums/EComponentSize.js";
|
|
12
|
-
const calendarControls = "
|
|
12
|
+
const calendarControls = "calendarControls__75239b75";
|
|
13
13
|
const styles = {
|
|
14
14
|
calendarControls
|
|
15
15
|
};
|
|
@@ -5,7 +5,7 @@ import { c as clsx } from "../../../chunks/vendor-D4wvHis9.js";
|
|
|
5
5
|
import { isDateOutOfRange, isDayDisabled, getFirstEnabledDate, getNavigationShift, shiftDate } from "../utils.js";
|
|
6
6
|
import { WEEKDAYS_SET, WEEKS_SET } from "../../../consts/DateConst.js";
|
|
7
7
|
import { CalendarViewContext } from "../CalendarViewContext.js";
|
|
8
|
-
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-
|
|
8
|
+
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-cQjxsIMh.js";
|
|
9
9
|
import { ECalendarDateMarkType, ECalendarViewMode } from "../enums.js";
|
|
10
10
|
import { CalendarContext } from "../CalendarContext.js";
|
|
11
11
|
const NAVIGATION_STEPS = {
|
|
@@ -4,7 +4,7 @@ import "../../../chunks/vendor-D4wvHis9.js";
|
|
|
4
4
|
import "../enums.js";
|
|
5
5
|
import "../CalendarViewContext.js";
|
|
6
6
|
import "../../../utils/keyboard.js";
|
|
7
|
-
import { C } from "../../../chunks/CalendarViewItem-
|
|
7
|
+
import { C } from "../../../chunks/CalendarViewItem-cQjxsIMh.js";
|
|
8
8
|
export {
|
|
9
9
|
C as CalendarViewItem
|
|
10
10
|
};
|
|
@@ -4,7 +4,7 @@ import moment from "moment";
|
|
|
4
4
|
import { CalendarContext } from "../CalendarContext.js";
|
|
5
5
|
import { CalendarViewContext } from "../CalendarViewContext.js";
|
|
6
6
|
import { isDateOutOfRange, getFirstEnabledDate, VIEW_GRID_ROWS, VIEW_GRID_COLUMNS, getNavigationShift, shiftDate, getShiftedDateInRange } from "../utils.js";
|
|
7
|
-
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-
|
|
7
|
+
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-cQjxsIMh.js";
|
|
8
8
|
import { ECalendarPickType, ECalendarViewMode } from "../enums.js";
|
|
9
9
|
const NAVIGATION_STEPS = {
|
|
10
10
|
horizontal: { amount: 1, unit: "month" },
|
|
@@ -3,7 +3,7 @@ import { useContext, useCallback, useState, useEffect } from "react";
|
|
|
3
3
|
import { CalendarContext } from "../CalendarContext.js";
|
|
4
4
|
import { CalendarViewContext } from "../CalendarViewContext.js";
|
|
5
5
|
import { isDateOutOfRange, getFirstEnabledDate, VIEW_GRID_ROWS, VIEW_GRID_COLUMNS, getNavigationShift, shiftDate, getShiftedDateInRange } from "../utils.js";
|
|
6
|
-
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-
|
|
6
|
+
import { s as styles, C as CalendarViewItem } from "../../../chunks/CalendarViewItem-cQjxsIMh.js";
|
|
7
7
|
import { ECalendarViewMode } from "../enums.js";
|
|
8
8
|
const YEARS_BEFORE_VIEW_DATE = 5;
|
|
9
9
|
const YEARS_AFTER_VIEW_DATE = 6;
|
|
@@ -10,10 +10,10 @@ import { EFocusSource } from "../../enums/EFocusSource.js";
|
|
|
10
10
|
import { mapCardRoundingSizeToCssClass, mapCardThemeToCssClass } from "./utils.js";
|
|
11
11
|
import { isKey } from "../../utils/keyboard.js";
|
|
12
12
|
import { c as clsx } from "../../chunks/vendor-D4wvHis9.js";
|
|
13
|
-
import { c as cardStyles } from "../../chunks/Card.module-
|
|
14
|
-
const action = "
|
|
15
|
-
const selected = "
|
|
16
|
-
const focusVisible = "
|
|
13
|
+
import { c as cardStyles } from "../../chunks/Card.module-CNOChUdZ.js";
|
|
14
|
+
const action = "action__e1c947f1";
|
|
15
|
+
const selected = "selected__843ffd5b";
|
|
16
|
+
const focusVisible = "focusVisible__2bae9b76";
|
|
17
17
|
const actionStyles = {
|
|
18
18
|
action,
|
|
19
19
|
selected,
|
|
@@ -128,7 +128,7 @@ class CardAction extends React__default.Component {
|
|
|
128
128
|
role: "button",
|
|
129
129
|
...attributes,
|
|
130
130
|
ref: this.ref,
|
|
131
|
-
"data-tx": "1.
|
|
131
|
+
"data-tx": "1.45.0",
|
|
132
132
|
children
|
|
133
133
|
}
|
|
134
134
|
);
|
|
@@ -3,7 +3,7 @@ import { CardContent } from "./components/CardContent/CardContent.js";
|
|
|
3
3
|
import { CardMedia } from "./components/CardMedia.js";
|
|
4
4
|
import { mapCardRoundingSizeToCssClass, mapCardThemeToCssClass } from "./utils.js";
|
|
5
5
|
import { c as clsx } from "../../chunks/vendor-D4wvHis9.js";
|
|
6
|
-
import { c as cardStyles } from "../../chunks/Card.module-
|
|
6
|
+
import { c as cardStyles } from "../../chunks/Card.module-CNOChUdZ.js";
|
|
7
7
|
import { ECardRoundingSize, ECardTheme } from "./enums.js";
|
|
8
8
|
const CardStatic = ({
|
|
9
9
|
children,
|
|
@@ -21,7 +21,7 @@ const CardStatic = ({
|
|
|
21
21
|
className
|
|
22
22
|
),
|
|
23
23
|
...rest,
|
|
24
|
-
"data-tx": "1.
|
|
24
|
+
"data-tx": "1.45.0",
|
|
25
25
|
children
|
|
26
26
|
}
|
|
27
27
|
);
|
|
@@ -4,7 +4,7 @@ import { CardContentHeader } from "./components/CardContentHeader.js";
|
|
|
4
4
|
import { CardContentFooter } from "./components/CardContentFooter.js";
|
|
5
5
|
import { ECardContentPaddingSize } from "../../enums.js";
|
|
6
6
|
import { c as clsx } from "../../../../chunks/vendor-D4wvHis9.js";
|
|
7
|
-
import { c as cardStyles } from "../../../../chunks/Card.module-
|
|
7
|
+
import { c as cardStyles } from "../../../../chunks/Card.module-CNOChUdZ.js";
|
|
8
8
|
const mapCardContentPaddingSizeToCssClass = {
|
|
9
9
|
[ECardContentPaddingSize.MD]: cardStyles.paddingMD,
|
|
10
10
|
[ECardContentPaddingSize.SM]: cardStyles.paddingSM
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c as clsx } from "../../../../../chunks/vendor-D4wvHis9.js";
|
|
3
|
-
import { c as cardStyles } from "../../../../../chunks/Card.module-
|
|
3
|
+
import { c as cardStyles } from "../../../../../chunks/Card.module-CNOChUdZ.js";
|
|
4
4
|
const CardContentBody = ({ children, className, ...rest }) => /* @__PURE__ */ jsx("div", { className: clsx(cardStyles.cardContentBody, className), ...rest, children });
|
|
5
5
|
CardContentBody.displayName = "CardContentBody";
|
|
6
6
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c as clsx } from "../../../../../chunks/vendor-D4wvHis9.js";
|
|
3
|
-
import { c as cardStyles } from "../../../../../chunks/Card.module-
|
|
3
|
+
import { c as cardStyles } from "../../../../../chunks/Card.module-CNOChUdZ.js";
|
|
4
4
|
const CardContentFooter = ({ children, className, ...rest }) => /* @__PURE__ */ jsx("div", { className: clsx(cardStyles.cardContentFooter, className), ...rest, children });
|
|
5
5
|
CardContentFooter.displayName = "CardContentFooter";
|
|
6
6
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c as clsx } from "../../../../../chunks/vendor-D4wvHis9.js";
|
|
3
|
-
import { c as cardStyles } from "../../../../../chunks/Card.module-
|
|
3
|
+
import { c as cardStyles } from "../../../../../chunks/Card.module-CNOChUdZ.js";
|
|
4
4
|
const CardContentHeader = ({ children, className, ...rest }) => /* @__PURE__ */ jsx("div", { className: clsx(cardStyles.cardContentHeader, className), ...rest, children });
|
|
5
5
|
CardContentHeader.displayName = "CardContentHeader";
|
|
6
6
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { c as clsx } from "../../../chunks/vendor-D4wvHis9.js";
|
|
3
|
-
import { c as cardStyles } from "../../../chunks/Card.module-
|
|
3
|
+
import { c as cardStyles } from "../../../chunks/Card.module-CNOChUdZ.js";
|
|
4
4
|
const CardMedia = ({ children, className, ...attributes }) => {
|
|
5
5
|
const classNames = clsx(cardStyles.cardMedia, className);
|
|
6
6
|
return /* @__PURE__ */ jsx("div", { className: classNames, ...attributes, children });
|
package/components/Card/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ECardRoundingSize, ECardTheme } from "./enums.js";
|
|
2
|
-
import { c as cardStyles } from "../../chunks/Card.module-
|
|
2
|
+
import { c as cardStyles } from "../../chunks/Card.module-CNOChUdZ.js";
|
|
3
3
|
const mapCardRoundingSizeToCssClass = {
|
|
4
4
|
[ECardRoundingSize.LG]: cardStyles.roundingLG,
|
|
5
5
|
[ECardRoundingSize.MD]: cardStyles.roundingMD,
|
|
@@ -4,7 +4,7 @@ import { c as clsx } from "../../chunks/vendor-D4wvHis9.js";
|
|
|
4
4
|
import { CarouselContext } from "./CarouselContext.js";
|
|
5
5
|
import { ECarouselOrientation, ECarouselScrollMode } from "./enums.js";
|
|
6
6
|
import { resolveViewportPadding, useLatestRef } from "./utils.js";
|
|
7
|
-
import { s as styles } from "../../chunks/Carousel.module-
|
|
7
|
+
import { s as styles } from "../../chunks/Carousel.module-BpVAzSjh.js";
|
|
8
8
|
import { CarouselViewport } from "./CarouselViewport.js";
|
|
9
9
|
import { CarouselTrack } from "./CarouselTrack.js";
|
|
10
10
|
import { CarouselItem } from "./CarouselItem.js";
|
|
@@ -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 { ECarouselOrientation, ECarouselScrollMode } from \"./enums\";\nimport { resolveViewportPadding, useLatestRef } from \"./utils\";\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 [ECarouselOrientation.HORIZONTAL]: { start: \"left\", end: \"right\" },\n [ECarouselOrientation.VERTICAL]: { start: \"top\", end: \"bottom\" },\n} as const;\n\nconst ORIENTATION_TO_RECT_SIZE_KEY = {\n [ECarouselOrientation.HORIZONTAL]: \"width\",\n [ECarouselOrientation.VERTICAL]: \"height\",\n} as const;\n\nconst ORIENTATION_TO_CLIENT_SIZE_KEY = {\n [ECarouselOrientation.HORIZONTAL]: \"clientWidth\",\n [ECarouselOrientation.VERTICAL]: \"clientHeight\",\n} as const;\n\nconst CarouselRoot = React.forwardRef<HTMLDivElement, ICarouselProps>(\n (\n {\n children,\n orientation = ECarouselOrientation.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 currentIndexRef,\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/**\n * Карусель.\n * @beta\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":["React"],"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 { ECarouselOrientation, ECarouselScrollMode } from \"./enums\";\nimport { resolveViewportPadding, useLatestRef } from \"./utils\";\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 [ECarouselOrientation.HORIZONTAL]: { start: \"left\", end: \"right\" },\n [ECarouselOrientation.VERTICAL]: { start: \"top\", end: \"bottom\" },\n} as const;\n\nconst ORIENTATION_TO_RECT_SIZE_KEY = {\n [ECarouselOrientation.HORIZONTAL]: \"width\",\n [ECarouselOrientation.VERTICAL]: \"height\",\n} as const;\n\nconst ORIENTATION_TO_CLIENT_SIZE_KEY = {\n [ECarouselOrientation.HORIZONTAL]: \"clientWidth\",\n [ECarouselOrientation.VERTICAL]: \"clientHeight\",\n} as const;\n\nconst CarouselRoot = React.forwardRef<HTMLDivElement, ICarouselProps>(\n (\n {\n children,\n orientation = ECarouselOrientation.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 currentIndexRef,\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":["React"],"mappings":"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"}
|
|
@@ -6,14 +6,14 @@ 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 { ECarouselOrientation } from "./enums.js";
|
|
9
|
-
import { s as styles } from "../../chunks/Carousel.module-
|
|
9
|
+
import { s as styles } from "../../chunks/Carousel.module-BpVAzSjh.js";
|
|
10
10
|
const ORIENTATION_TO_PREV_ICON_MAP = {
|
|
11
11
|
[ECarouselOrientation.HORIZONTAL]: /* @__PURE__ */ jsx(CaretleftStrokeSrvIcon20, { paletteIndex: 7 }),
|
|
12
12
|
[ECarouselOrientation.VERTICAL]: /* @__PURE__ */ jsx(CaretupStrokeSrvIcon20, { paletteIndex: 7 })
|
|
13
13
|
};
|
|
14
14
|
const CarouselPrevButton = React__default.forwardRef(
|
|
15
15
|
({ children, className, onClick, ...restProps }, ref) => {
|
|
16
|
-
const { atStart, prevSlide
|
|
16
|
+
const { orientation, atStart, prevSlide } = useContext(CarouselContext);
|
|
17
17
|
const touchDevice = useMatchMedia("(pointer: coarse)");
|
|
18
18
|
const handleClick = useCallback(
|
|
19
19
|
(event) => {
|
|
@@ -33,7 +33,7 @@ const CarouselPrevButton = React__default.forwardRef(
|
|
|
33
33
|
"aria-disabled": atStart,
|
|
34
34
|
onClick: handleClick,
|
|
35
35
|
ref,
|
|
36
|
-
children: children || ORIENTATION_TO_PREV_ICON_MAP[
|
|
36
|
+
children: children || ORIENTATION_TO_PREV_ICON_MAP[orientation]
|
|
37
37
|
}
|
|
38
38
|
);
|
|
39
39
|
}
|
|
@@ -45,7 +45,7 @@ const ORIENTATION_TO_NEXT_ICON_MAP = {
|
|
|
45
45
|
};
|
|
46
46
|
const CarouselNextButton = React__default.forwardRef(
|
|
47
47
|
({ children, className, onClick, ...restProps }, ref) => {
|
|
48
|
-
const { atEnd, nextSlide
|
|
48
|
+
const { orientation, atEnd, nextSlide } = useContext(CarouselContext);
|
|
49
49
|
const touchDevice = useMatchMedia("(pointer: coarse)");
|
|
50
50
|
const handleClick = useCallback(
|
|
51
51
|
(event) => {
|
|
@@ -65,7 +65,7 @@ const CarouselNextButton = React__default.forwardRef(
|
|
|
65
65
|
"aria-disabled": atEnd,
|
|
66
66
|
onClick: handleClick,
|
|
67
67
|
ref,
|
|
68
|
-
children: children || ORIENTATION_TO_NEXT_ICON_MAP[
|
|
68
|
+
children: children || ORIENTATION_TO_NEXT_ICON_MAP[orientation]
|
|
69
69
|
}
|
|
70
70
|
);
|
|
71
71
|
}
|