@sberbusiness/triplex-next 1.40.0 → 1.41.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-BNrk1vyk.js → AlertProcessSpoiler-BjbtoDeJ.js} +16 -16
- package/chunks/{AlertProcessSpoiler-BNrk1vyk.js.map → AlertProcessSpoiler-BjbtoDeJ.js.map} +1 -1
- package/chunks/{CalendarViewItem-knPscTce.js → CalendarViewItem-_CpmPhgO.js} +30 -28
- package/chunks/CalendarViewItem-_CpmPhgO.js.map +1 -0
- package/chunks/Card.module-DROOoa1I.js +32 -0
- package/chunks/Card.module-DROOoa1I.js.map +1 -0
- package/chunks/Carousel.module-CYqc9TvG.js +30 -0
- package/chunks/Carousel.module-CYqc9TvG.js.map +1 -0
- package/chunks/CheckboxTreeExtended.module-DLgZtzeR.js +24 -0
- package/chunks/CheckboxTreeExtended.module-DLgZtzeR.js.map +1 -0
- package/chunks/{Chip-CI8ALCUS.js → Chip-BpQdbkKh.js} +27 -27
- package/chunks/Chip-BpQdbkKh.js.map +1 -0
- package/chunks/Confirm.module-DSL8UGz1.js +24 -0
- package/chunks/Confirm.module-DSL8UGz1.js.map +1 -0
- package/chunks/{DropdownListItem-BqOoPFSx.js → DropdownListItem-C2A5QJs2.js} +10 -10
- package/chunks/{DropdownListItem-BqOoPFSx.js.map → DropdownListItem-C2A5QJs2.js.map} +1 -1
- package/chunks/DropdownMobile.module-DzRRyaX7.js +40 -0
- package/chunks/DropdownMobile.module-DzRRyaX7.js.map +1 -0
- package/chunks/Footer.module-5k57klu0.js +12 -0
- package/chunks/Footer.module-5k57klu0.js.map +1 -0
- package/chunks/{HeaderLayoutSidebar.module-MnhSBdiv.js → HeaderLayoutSidebar.module-DZeFuoug.js} +4 -4
- package/chunks/HeaderLayoutSidebar.module-DZeFuoug.js.map +1 -0
- package/chunks/HeaderTabs.module-CgMRh_ys.js +12 -0
- package/chunks/HeaderTabs.module-CgMRh_ys.js.map +1 -0
- package/chunks/{HeaderTitle.module-BGOYMt6r.js → HeaderTitle.module-D0AhXiBS.js} +4 -4
- package/chunks/HeaderTitle.module-D0AhXiBS.js.map +1 -0
- package/chunks/ImageGalleryExtendedMain.module-DIQlXnyT.js +28 -0
- package/chunks/ImageGalleryExtendedMain.module-DIQlXnyT.js.map +1 -0
- package/chunks/{ImageGalleryExtendedThumb-D6RAJpt8.js → ImageGalleryExtendedThumb-DkJtr4Hx.js} +5 -5
- package/chunks/{ImageGalleryExtendedThumb-D6RAJpt8.js.map → ImageGalleryExtendedThumb-DkJtr4Hx.js.map} +1 -1
- package/chunks/IslandAccordion.module-DDX8tbtb.js +44 -0
- package/chunks/IslandAccordion.module-DDX8tbtb.js.map +1 -0
- package/chunks/IslandWidgetFooter.module-sDy1EclD.js +12 -0
- package/chunks/IslandWidgetFooter.module-sDy1EclD.js.map +1 -0
- package/chunks/IslandWidgetHeader.module-nJ_lt8_M.js +20 -0
- package/chunks/IslandWidgetHeader.module-nJ_lt8_M.js.map +1 -0
- package/chunks/{LightBoxContent-d_LBU_ZW.js → LightBoxContent-B1KBUT90.js} +14 -14
- package/chunks/{LightBoxContent-d_LBU_ZW.js.map → LightBoxContent-B1KBUT90.js.map} +1 -1
- package/chunks/LightBoxControls.module-TooI22q5.js +26 -0
- package/chunks/LightBoxControls.module-TooI22q5.js.map +1 -0
- package/chunks/{LightBoxSideOverlayClose.module-eTdxNvSz.js → LightBoxSideOverlayClose.module-CKA2SSDt.js} +4 -4
- package/chunks/LightBoxSideOverlayClose.module-CKA2SSDt.js.map +1 -0
- package/chunks/{ListItemControlsButton-D2ONoqII.js → ListItemControlsButton-mh3tmBtz.js} +9 -9
- package/chunks/{ListItemControlsButton-D2ONoqII.js.map → ListItemControlsButton-mh3tmBtz.js.map} +1 -1
- package/chunks/ListItemTail.module-C7mDty9h.js +18 -0
- package/chunks/ListItemTail.module-C7mDty9h.js.map +1 -0
- package/chunks/ListMasterFooter.module-0T0paIyY.js +14 -0
- package/chunks/ListMasterFooter.module-0T0paIyY.js.map +1 -0
- package/chunks/ModalWindow.module-Bp4oQKoa.js +28 -0
- package/chunks/ModalWindow.module-Bp4oQKoa.js.map +1 -0
- package/chunks/Notification.module-Be8nXM5D.js +34 -0
- package/chunks/Notification.module-Be8nXM5D.js.map +1 -0
- package/chunks/Overlay.module-D8ixOPRE.js +30 -0
- package/chunks/Overlay.module-D8ixOPRE.js.map +1 -0
- package/chunks/Page.module-BkjdT16T.js +15 -0
- package/chunks/Page.module-BkjdT16T.js.map +1 -0
- package/chunks/SMSField.module-ryKCPxNS.js +26 -0
- package/chunks/SMSField.module-ryKCPxNS.js.map +1 -0
- package/chunks/SliderExtendedMarks.module-Zcavk5hB.js +24 -0
- package/chunks/SliderExtendedMarks.module-Zcavk5hB.js.map +1 -0
- package/chunks/{SliderExtendedRail-CVEwe6OK.js → SliderExtendedRail-t3p4pk5Y.js} +5 -5
- package/chunks/{SliderExtendedRail-CVEwe6OK.js.map → SliderExtendedRail-t3p4pk5Y.js.map} +1 -1
- package/chunks/StatusTracker.module-B5l6M5fR.js +44 -0
- package/chunks/StatusTracker.module-B5l6M5fR.js.map +1 -0
- package/chunks/{StepperStepArrowBorder-BO_ItxMh.js → StepperStepArrowBorder-DLBwu9Pe.js} +16 -16
- package/chunks/{StepperStepArrowBorder-BO_ItxMh.js.map → StepperStepArrowBorder-DLBwu9Pe.js.map} +1 -1
- package/chunks/{SuggestFieldMobileDropdownHint-DyfJuyUe.js → SuggestFieldMobileDropdownHint-CD9CQkCW.js} +3 -3
- package/chunks/{SuggestFieldMobileDropdownHint-DyfJuyUe.js.map → SuggestFieldMobileDropdownHint-CD9CQkCW.js.map} +1 -1
- package/chunks/TableFooter.module-q3JRqYCP.js +22 -0
- package/chunks/TableFooter.module-q3JRqYCP.js.map +1 -0
- package/chunks/TabsExtended.module-btXrsifk.js +26 -0
- package/chunks/TabsExtended.module-btXrsifk.js.map +1 -0
- package/chunks/TabsLine.module-BsnnLIOF.js +36 -0
- package/chunks/TabsLine.module-BsnnLIOF.js.map +1 -0
- package/chunks/TooltipDesktop.module-V0gGAoBE.js +32 -0
- package/chunks/TooltipDesktop.module-V0gGAoBE.js.map +1 -0
- package/chunks/TreeView.module-CCsUTogj.js +12 -0
- package/chunks/TreeView.module-CCsUTogj.js.map +1 -0
- package/chunks/{UploadZoneInput-BHUONqVR.js → UploadZoneInput-CipHc_ua.js} +5 -5
- package/chunks/{UploadZoneInput-BHUONqVR.js.map → UploadZoneInput-CipHc_ua.js.map} +1 -1
- package/chunks/{constants-C-WrqYH6.js → constants-DXoLzXAh.js} +27 -27
- package/chunks/{constants-C-WrqYH6.js.map → constants-DXoLzXAh.js.map} +1 -1
- package/chunks/{utils-g0xZYVuS.js → utils-B-YL1v1D.js} +11 -11
- package/chunks/{utils-g0xZYVuS.js.map → utils-B-YL1v1D.js.map} +1 -1
- package/chunks/{utils-BaakoACO.js → utils-BSk7AAAR.js} +6 -6
- package/chunks/{utils-BaakoACO.js.map → utils-BSk7AAAR.js.map} +1 -1
- package/chunks/{utils-BHxrQbA6.js → utils-Dfah6DTV.js} +8 -8
- package/chunks/utils-Dfah6DTV.js.map +1 -0
- package/chunks/{utils-D4UOxU49.js → utils-Va-aYj5A.js} +27 -27
- package/chunks/{utils-D4UOxU49.js.map → utils-Va-aYj5A.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/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 +2 -2
- package/components/Button/ButtonIcon.js +3 -3
- package/components/Calendar/Calendar.js +16 -16
- package/components/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/CalendarContext.js.map +1 -1
- package/components/Calendar/CalendarViewContext.js.map +1 -1
- package/components/Calendar/components/CalendarControls.js +12 -32
- package/components/Calendar/components/CalendarControls.js.map +1 -1
- package/components/Calendar/components/CalendarFooter.js +3 -2
- package/components/Calendar/components/CalendarFooter.js.map +1 -1
- package/components/Calendar/components/CalendarView.js +1 -0
- package/components/Calendar/components/CalendarView.js.map +1 -1
- package/components/Calendar/components/CalendarViewDays.js +31 -55
- package/components/Calendar/components/CalendarViewDays.js.map +1 -1
- package/components/Calendar/components/CalendarViewItem.js +1 -1
- package/components/Calendar/components/CalendarViewMonths.js +30 -52
- package/components/Calendar/components/CalendarViewMonths.js.map +1 -1
- package/components/Calendar/components/CalendarViewYears.js +34 -55
- package/components/Calendar/components/CalendarViewYears.js.map +1 -1
- package/components/Calendar/utils.js +43 -10
- package/components/Calendar/utils.js.map +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/enums.js +1 -0
- package/components/Card/enums.js.map +1 -1
- package/components/Card/utils.js +2 -1
- package/components/Card/utils.js.map +1 -1
- package/components/Carousel/Carousel.js +1 -1
- package/components/Carousel/CarouselButton.js +1 -1
- package/components/Carousel/CarouselIndicators.js +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/utils.js +2 -2
- package/components/DateField/utils.js.map +1 -1
- package/components/DatePickerExtended/DatePickerExtended.js +2 -2
- package/components/DatePickerExtended/DatePickerExtendedDropdown.js +1 -1
- package/components/DateRange/DateRange.js +3 -3
- package/components/DesignTokens/DesignTokenUtils.js +25 -20
- package/components/DesignTokens/DesignTokenUtils.js.map +1 -1
- package/components/DesignTokens/components/Calendar.js +2 -2
- package/components/DesignTokens/components/Calendar.js.map +1 -1
- package/components/DesignTokens/components/StatusTracker.js +8 -2
- package/components/DesignTokens/components/StatusTracker.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 +4 -4
- package/components/ExpandAnimation/ExpandAnimation.js +1 -1
- package/components/FocusTrapExtended/FocusTrapExtended.js +20 -8
- package/components/FocusTrapExtended/FocusTrapExtended.js.map +1 -1
- package/components/Footer/Footer.js +1 -1
- package/components/Footer/components/FooterDescription.js +1 -1
- package/components/Footer/components/FooterDescriptionContent.js +1 -1
- package/components/Footer/components/FooterDescriptionControls.js +1 -1
- package/components/FormField/FormField.js +20 -20
- package/components/FormField/FormField.js.map +1 -1
- package/components/FormField/FormFieldContext.js.map +1 -1
- package/components/FormField/FormFieldDescriptionContext.js.map +1 -1
- package/components/FormField/components/FormFieldClear.js +1 -1
- package/components/FormField/components/FormFieldClear.js.map +1 -1
- package/components/FormField/components/FormFieldCounter.js +5 -4
- package/components/FormField/components/FormFieldCounter.js.map +1 -1
- package/components/FormField/components/FormFieldDescription.js +13 -5
- package/components/FormField/components/FormFieldDescription.js.map +1 -1
- package/components/FormField/components/FormFieldInput.js +7 -8
- package/components/FormField/components/FormFieldInput.js.map +1 -1
- package/components/FormField/components/FormFieldLabel.js +10 -11
- package/components/FormField/components/FormFieldLabel.js.map +1 -1
- package/components/FormField/components/FormFieldMaskedInput.js +6 -6
- package/components/FormField/components/FormFieldPostfix.js +5 -29
- package/components/FormField/components/FormFieldPostfix.js.map +1 -1
- package/components/FormField/components/FormFieldPrefix.js +5 -29
- package/components/FormField/components/FormFieldPrefix.js.map +1 -1
- package/components/FormField/components/FormFieldTarget.js +8 -8
- package/components/FormField/components/FormFieldTextarea.js +4 -4
- package/components/FormField/components/useFormFieldAffixWidth.js +33 -0
- package/components/FormField/components/useFormFieldAffixWidth.js.map +1 -0
- package/components/FormField/components/utils.js +9 -1
- package/components/FormField/components/utils.js.map +1 -1
- package/components/FormField/consts.js.map +1 -1
- package/components/FormField/enums.js.map +1 -1
- package/components/FormField/index.js +2 -3
- package/components/Gap/Gap.js +8 -8
- package/components/Header/Header.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js +1 -1
- package/components/Header/components/HeaderSubheader/HeaderSubheader.js +2 -2
- package/components/Header/components/HeaderTabs/HeaderTabs.js +1 -1
- package/components/Header/components/HeaderTabs/HeaderTabsContent.js +1 -1
- package/components/Header/components/HeaderTabs/HeaderTabsControls.js +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitle.js +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitleContent.js +1 -1
- package/components/Header/components/HeaderTitle/HeaderTitleControls.js +1 -1
- package/components/HelpBox/HelpBox.js +1 -1
- package/components/IconWrapper/IconWrapper.js +7 -7
- package/components/IconWrapper/IconWrapper.js.map +1 -1
- 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 +3 -3
- package/components/Island/Island.js.map +1 -1
- package/components/Island/components/IslandBody.js +2 -1
- package/components/Island/components/IslandBody.js.map +1 -1
- package/components/Island/components/IslandFooter.js +7 -4
- package/components/Island/components/IslandFooter.js.map +1 -1
- package/components/Island/components/IslandHeader.js +7 -4
- package/components/Island/components/IslandHeader.js.map +1 -1
- package/components/Island/enums.js.map +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 +4 -4
- package/components/IslandWidget/components/IslandWidgetBody.js +1 -1
- package/components/IslandWidget/components/IslandWidgetExtraFooter.js +1 -1
- package/components/IslandWidget/components/IslandWidgetFooter.js +1 -1
- package/components/IslandWidget/components/IslandWidgetFooterContent.js +1 -1
- package/components/IslandWidget/components/IslandWidgetFooterControls.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeader.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderContent.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderControls.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderDescription.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeaderTitle.js +1 -1
- package/components/IslandWidget/components/IslandWidgetWrapper.js +1 -1
- package/components/KeyDownListener/ComposedKeyDownListener.js +7 -8
- package/components/KeyDownListener/ComposedKeyDownListener.js.map +1 -1
- package/components/KeyDownListener/KeyDownListener.js +3 -4
- package/components/KeyDownListener/KeyDownListener.js.map +1 -1
- package/components/LightBox/LightBox.js +5 -5
- 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 -13
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js.map +1 -1
- 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 +5 -5
- 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 +10 -10
- package/components/Loader/LoaderMiddle/LoaderMiddle.js.map +1 -1
- package/components/Loader/LoaderSmall/LoaderSmall.js +10 -10
- package/components/LoaderScreen/LoaderScreen.js +13 -12
- package/components/LoaderScreen/LoaderScreen.js.map +1 -1
- package/components/Marker/Marker.js +1 -1
- package/components/Marker/utils.js +1 -1
- package/components/MarkerStatus/MarkerStatus.js +7 -7
- 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/utils.js +2 -1
- package/components/MonthYearField/utils.js.map +1 -1
- package/components/MonthYearRange/MonthYearRange.js +3 -3
- package/components/MultiselectField/components/MultiselectFieldDropdown.js +1 -1
- package/components/MultiselectField/components/MultiselectFieldDropdownContent.js +5 -5
- package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js +1 -1
- package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js +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/OverlayMask.js +1 -1
- package/components/Overlay/OverlayPanel.js +1 -1
- package/components/Page/Page.js +1 -1
- package/components/Page/components/BodyPage.js +3 -3
- package/components/Page/components/FooterPage.js +1 -1
- package/components/Page/components/HeaderPage.js +1 -1
- package/components/Pagination/components/PaginationExtended.js +2 -2
- package/components/Pagination/components/PaginationNavigation.js +1 -1
- 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 +2 -2
- package/components/Pagination/{utils/paginationUtils.js → utils.js} +2 -2
- package/components/Pagination/utils.js.map +1 -0
- 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 +2 -2
- package/components/SMSField/components/RefreshIcon.js +1 -1
- package/components/SMSField/components/SMSFieldInput.js +1 -1
- package/components/SMSField/components/SMSFieldRefresh.js +1 -1
- package/components/SMSField/components/SMSFieldSubmit.js +1 -1
- package/components/SegmentedControl/SegmentedControl.js +9 -9
- package/components/SegmentedControl/SegmentedControlSegment.js +3 -3
- package/components/SelectExtendedField/SelectExtendedField.js +2 -1
- package/components/SelectExtendedField/SelectExtendedField.js.map +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 +1 -1
- package/components/Skeleton/Skeleton.js +4 -4
- package/components/SliderExtended/SliderExtended.js +2 -2
- package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js +6 -5
- package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js.map +1 -1
- 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 +7 -6
- package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js.map +1 -1
- package/components/SmallInput/SmallInput.js +1 -1
- package/components/Spoiler/Spoiler.js +10 -10
- package/components/StatusTracker/StatusTracker.js +7 -6
- package/components/StatusTracker/StatusTracker.js.map +1 -1
- 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/SuggestMobileDropdownContent.js +3 -3
- package/components/SuggestField/SuggestField.js +1 -1
- package/components/SuggestField/desktop/SuggestFieldDesktop.js +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 +8 -8
- package/components/Table/ChipPanel.js +1 -1
- package/components/Table/ChipPanelLinks.js +1 -1
- package/components/Table/FilterPanel.js +2 -2
- package/components/Table/MasterTable.js +2 -2
- package/components/Table/NoColumns.js +2 -2
- package/components/Table/PaginationPanel.js +2 -2
- package/components/Table/TableBasic/TableBasic.js +1 -1
- package/components/Table/TableBasic/components/TableBasicBody.js +1 -1
- package/components/Table/TableBasic/components/TableBasicHeader.js +1 -1
- package/components/Table/TableBasic/components/TableBasicRow.js +1 -1
- package/components/Table/TableBasicSettings/TableBasicSettings.js +2 -2
- 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 +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 +5 -5
- 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 +5 -5
- package/components/TagColor/TagColor.js +10 -10
- package/components/TagGroup/TagGroup.js +4 -4
- package/components/ThemeProvider/ETriplexNextTheme.js.map +1 -1
- package/components/ThemeProvider/ThemeProvider.js +5 -3
- package/components/ThemeProvider/ThemeProvider.js.map +1 -1
- package/components/ThemeProvider/ThemeProviderContext.js.map +1 -1
- package/components/ThemeProvider/components/ThemeProviderView.js +6 -9
- package/components/ThemeProvider/components/ThemeProviderView.js.map +1 -1
- package/components/ThemeProvider/useToken.js.map +1 -1
- package/components/Tooltip/Tooltip.js +49 -52
- package/components/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/TootlipContext.js.map +1 -1
- package/components/Tooltip/components/common/TooltipBody.js +1 -1
- package/components/Tooltip/components/common/TooltipLink.js +7 -18
- package/components/Tooltip/components/common/TooltipLink.js.map +1 -1
- package/components/Tooltip/components/common/TooltipTarget.js.map +1 -1
- package/components/Tooltip/components/common/TooltipXButton.js +1 -1
- package/components/Tooltip/components/desktop/TooltipDesktop.js +24 -12
- package/components/Tooltip/components/desktop/TooltipDesktop.js.map +1 -1
- package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js +25 -24
- package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js.map +1 -1
- package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js +8 -17
- package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js.map +1 -1
- package/components/Tooltip/components/mobile/TooltipMobile.js +10 -6
- package/components/Tooltip/components/mobile/TooltipMobile.js.map +1 -1
- package/components/Tooltip/components/mobile/components/TooltipMobileHeader.js +2 -2
- package/components/Tooltip/components/mobile/components/TooltipMobileHeader.js.map +1 -1
- package/components/Tooltip/enums.js.map +1 -1
- package/components/Tooltip/utils/Positioning.js +18 -17
- package/components/Tooltip/utils/Positioning.js.map +1 -1
- package/components/Tooltip/utils/useTooltipTheme.js +40 -12
- package/components/Tooltip/utils/useTooltipTheme.js.map +1 -1
- package/components/TopOverlay/TopOverlay.js +6 -6
- package/components/TreeView/TreeView.js +1 -1
- package/components/TreeView/components/TreeViewGroup.js +1 -1
- package/components/TreeView/components/TreeViewNode.js +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/UnorderedList/UnorderedList.js +2 -2
- package/components/UnorderedList/UnorderedListItem.js +2 -2
- 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 +7 -8
- package/consts/DateConst.js.map +1 -1
- package/index.d.ts +202 -91
- package/index.js +7 -8
- package/package.json +1 -1
- package/styles/triplex-next.css +2945 -2936
- package/chunks/CalendarViewItem-knPscTce.js.map +0 -1
- package/chunks/Card.module-Dd2_zoXF.js +0 -30
- package/chunks/Card.module-Dd2_zoXF.js.map +0 -1
- package/chunks/Carousel.module-LNo8o3qn.js +0 -30
- package/chunks/Carousel.module-LNo8o3qn.js.map +0 -1
- package/chunks/CheckboxTreeExtended.module-CKUO50mv.js +0 -24
- package/chunks/CheckboxTreeExtended.module-CKUO50mv.js.map +0 -1
- package/chunks/Chip-CI8ALCUS.js.map +0 -1
- package/chunks/Confirm.module-BtnLGqBz.js +0 -24
- package/chunks/Confirm.module-BtnLGqBz.js.map +0 -1
- package/chunks/DropdownMobile.module-xbkYiPM1.js +0 -40
- package/chunks/DropdownMobile.module-xbkYiPM1.js.map +0 -1
- package/chunks/Footer.module-CYELL0O7.js +0 -12
- package/chunks/Footer.module-CYELL0O7.js.map +0 -1
- package/chunks/HeaderLayoutSidebar.module-MnhSBdiv.js.map +0 -1
- package/chunks/HeaderTabs.module-D9u9xuSn.js +0 -12
- package/chunks/HeaderTabs.module-D9u9xuSn.js.map +0 -1
- package/chunks/HeaderTitle.module-BGOYMt6r.js.map +0 -1
- package/chunks/ImageGalleryExtendedMain.module-CQNClbso.js +0 -28
- package/chunks/ImageGalleryExtendedMain.module-CQNClbso.js.map +0 -1
- package/chunks/IslandAccordion.module-nyPnHohH.js +0 -44
- package/chunks/IslandAccordion.module-nyPnHohH.js.map +0 -1
- package/chunks/IslandWidgetFooter.module-CNyLawMh.js +0 -12
- package/chunks/IslandWidgetFooter.module-CNyLawMh.js.map +0 -1
- package/chunks/IslandWidgetHeader.module-ChE5SXll.js +0 -20
- package/chunks/IslandWidgetHeader.module-ChE5SXll.js.map +0 -1
- package/chunks/LightBoxControls.module-Buvm7RbG.js +0 -26
- package/chunks/LightBoxControls.module-Buvm7RbG.js.map +0 -1
- package/chunks/LightBoxSideOverlayClose.module-eTdxNvSz.js.map +0 -1
- package/chunks/ListItemTail.module-BhSOptJB.js +0 -18
- package/chunks/ListItemTail.module-BhSOptJB.js.map +0 -1
- package/chunks/ListMasterFooter.module-DrlO_YrT.js +0 -14
- package/chunks/ListMasterFooter.module-DrlO_YrT.js.map +0 -1
- package/chunks/ModalWindow.module-DrJpRuNK.js +0 -28
- package/chunks/ModalWindow.module-DrJpRuNK.js.map +0 -1
- package/chunks/Notification.module-tEh-vvv0.js +0 -34
- package/chunks/Notification.module-tEh-vvv0.js.map +0 -1
- package/chunks/Overlay.module-CPNLKKsF.js +0 -30
- package/chunks/Overlay.module-CPNLKKsF.js.map +0 -1
- package/chunks/Page.module-Dru0rPA5.js +0 -15
- package/chunks/Page.module-Dru0rPA5.js.map +0 -1
- package/chunks/SMSField.module-CjGkO6u6.js +0 -26
- package/chunks/SMSField.module-CjGkO6u6.js.map +0 -1
- package/chunks/SliderExtendedMarks.module-CAeqmSQq.js +0 -24
- package/chunks/SliderExtendedMarks.module-CAeqmSQq.js.map +0 -1
- package/chunks/StatusTracker.module-BD5zJfbg.js +0 -42
- package/chunks/StatusTracker.module-BD5zJfbg.js.map +0 -1
- package/chunks/TableFooter.module-DhudGmzN.js +0 -22
- package/chunks/TableFooter.module-DhudGmzN.js.map +0 -1
- package/chunks/TabsExtended.module-DNjJIne-.js +0 -26
- package/chunks/TabsExtended.module-DNjJIne-.js.map +0 -1
- package/chunks/TabsLine.module-CbVAypRw.js +0 -36
- package/chunks/TabsLine.module-CbVAypRw.js.map +0 -1
- package/chunks/TooltipDesktop.module-DBiY8cJJ.js +0 -32
- package/chunks/TooltipDesktop.module-DBiY8cJJ.js.map +0 -1
- package/chunks/TreeView.module-GA-NyzjK.js +0 -12
- package/chunks/TreeView.module-GA-NyzjK.js.map +0 -1
- package/chunks/utils-BHxrQbA6.js.map +0 -1
- package/components/Pagination/utils/paginationUtils.js.map +0 -1
|
@@ -3,21 +3,21 @@ import React__default from "react";
|
|
|
3
3
|
import { c as clsx } from "../../chunks/vendor-CtuAQuEN.js";
|
|
4
4
|
import { createSizeToClassNameMap } from "../../utils/classNameMaps.js";
|
|
5
5
|
import { ETagColorStatus } from "./enums.js";
|
|
6
|
-
const tagColor = "
|
|
7
|
-
const sm = "
|
|
8
|
-
const md = "
|
|
9
|
-
const lg = "
|
|
10
|
-
const success = "
|
|
11
|
-
const info = "
|
|
12
|
-
const warning = "
|
|
13
|
-
const error = "
|
|
14
|
-
const content = "
|
|
6
|
+
const tagColor = "tagColor__70ec5a3d";
|
|
7
|
+
const sm = "sm__6c90d431";
|
|
8
|
+
const md = "md__cd2c6487";
|
|
9
|
+
const lg = "lg__362f08ae";
|
|
10
|
+
const success = "success__62aa7ba1";
|
|
11
|
+
const info = "info__1eeba22d";
|
|
12
|
+
const warning = "warning__fd98f655";
|
|
13
|
+
const error = "error__c7f47cb4";
|
|
14
|
+
const content = "content__da75d8b8";
|
|
15
15
|
const styles = {
|
|
16
16
|
tagColor,
|
|
17
17
|
sm,
|
|
18
18
|
md,
|
|
19
19
|
lg,
|
|
20
|
-
"default": "
|
|
20
|
+
"default": "default__bf2d9ac0",
|
|
21
21
|
success,
|
|
22
22
|
info,
|
|
23
23
|
warning,
|
|
@@ -2,10 +2,10 @@ import { jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import React__default from "react";
|
|
3
3
|
import { c as clsx } from "../../chunks/vendor-CtuAQuEN.js";
|
|
4
4
|
import { createSizeToClassNameMap } from "../../utils/classNameMaps.js";
|
|
5
|
-
const tagGroup = "
|
|
6
|
-
const sm = "
|
|
7
|
-
const md = "
|
|
8
|
-
const lg = "
|
|
5
|
+
const tagGroup = "tagGroup__fa0b63c8";
|
|
6
|
+
const sm = "sm__6cd92352";
|
|
7
|
+
const md = "md__9730afd2";
|
|
8
|
+
const lg = "lg__0cf64a8c";
|
|
9
9
|
const styles = {
|
|
10
10
|
tagGroup,
|
|
11
11
|
sm,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ETriplexNextTheme.js","sources":["../../../src/components/ThemeProvider/ETriplexNextTheme.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"ETriplexNextTheme.js","sources":["../../../src/components/ThemeProvider/ETriplexNextTheme.ts"],"sourcesContent":["/** Темы Triplex Next. Тема определяет значения дизайн-токенов. */\nexport enum ETriplexNextTheme {\n /** Светлая тема. Используется по умолчанию. */\n LIGHT = \"light\",\n /** Тёмная тема. */\n DARK = \"dark\",\n}\n"],"names":["ETriplexNextTheme"],"mappings":"AACO,IAAK,sCAAAA,uBAAL;AAEHA,qBAAA,OAAA,IAAQ;AAERA,qBAAA,MAAA,IAAO;AAJC,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;"}
|
|
@@ -5,6 +5,8 @@ import { DesignTokenUtils } from "../DesignTokens/DesignTokenUtils.js";
|
|
|
5
5
|
import { ThemeProviderView } from "./components/ThemeProviderView.js";
|
|
6
6
|
import { ETriplexNextTheme } from "./ETriplexNextTheme.js";
|
|
7
7
|
const uniqueId = (prefix) => `${prefix}${Date.now()}${Math.floor(Math.random() * 1e6)}`;
|
|
8
|
+
const SCOPE_CLASS_NAME_PREFIX = "triplex-next-theme-";
|
|
9
|
+
const getStyleTagKey = (scopeClassName) => `triplex-next-dynamic-tokens-${scopeClassName}`;
|
|
8
10
|
const ThemeProvider = ({
|
|
9
11
|
children,
|
|
10
12
|
scopeClassName,
|
|
@@ -12,16 +14,16 @@ const ThemeProvider = ({
|
|
|
12
14
|
theme = ETriplexNextTheme.LIGHT,
|
|
13
15
|
tokens
|
|
14
16
|
}) => {
|
|
15
|
-
const scopeCssClassName = useMemo(() => scopeClassName || uniqueId(
|
|
17
|
+
const scopeCssClassName = useMemo(() => scopeClassName || uniqueId(SCOPE_CLASS_NAME_PREFIX), [scopeClassName]);
|
|
16
18
|
useLayoutEffect(() => {
|
|
17
19
|
if (canUseDom()) {
|
|
18
20
|
const style = `.${scopeCssClassName} {${DesignTokenUtils.getStyle(theme, tokens || {})}}`;
|
|
19
|
-
updateCSS(style,
|
|
21
|
+
updateCSS(style, getStyleTagKey(scopeCssClassName));
|
|
20
22
|
} else {
|
|
21
23
|
console.warn("ThemeProvider", "SSR do not support dynamic theme with css variables.");
|
|
22
24
|
}
|
|
23
25
|
}, [scopeCssClassName, theme, tokens]);
|
|
24
|
-
useLayoutEffect(() => () => removeCSS(
|
|
26
|
+
useLayoutEffect(() => () => removeCSS(getStyleTagKey(scopeCssClassName)), [scopeCssClassName]);
|
|
25
27
|
return /* @__PURE__ */ jsx(ThemeProviderView, { scopeClassName: scopeCssClassName, scopeRef, theme, tokens, children });
|
|
26
28
|
};
|
|
27
29
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProvider.js","sources":["../../../scripts/uniqueId.ts","../../../src/components/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["export const uniqueId = (prefix?: string): string =>\n `${prefix ? prefix : \"\"}${Date.now()}${Math.floor(Math.random() * 1000000)}`;\n","import React, { useLayoutEffect, useMemo } from \"react\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { TDesignTokensPartial } from \"../DesignTokens/types/DesignTokensTypes\";\nimport { DesignTokenUtils } from \"../DesignTokens/DesignTokenUtils\";\nimport { ThemeProviderView } from \"./components/ThemeProviderView\";\nimport { uniqueId } from \"../../../scripts/uniqueId\";\nimport { ETriplexNextTheme } from \"./ETriplexNextTheme\";\n\nexport interface IThemeProviderProps {\n children: React.ReactNode;\n /** Classname, который добавлен к элементу из scopeRef для создания области видимости css-переменных. */\n scopeClassName?: string;\n /** Ref на HTML элемент, внутри которого будет действовать текущий конфиг. */\n scopeRef: React.RefObject<HTMLElement>;\n /** Дизайн-тема Triplex Next. */\n theme?: ETriplexNextTheme;\n /** Переопределяемые токены. */\n tokens?: TDesignTokensPartial;\n}\n\nexport const ThemeProvider: React.FC<IThemeProviderProps> = ({\n children,\n scopeClassName,\n scopeRef,\n theme = ETriplexNextTheme.LIGHT,\n tokens,\n}) => {\n // ClassName, добавляемый к HTML элементу, для определения области видимости CSS-переменных.\n const scopeCssClassName = useMemo(() => scopeClassName || uniqueId(
|
|
1
|
+
{"version":3,"file":"ThemeProvider.js","sources":["../../../scripts/uniqueId.ts","../../../src/components/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["export const uniqueId = (prefix?: string): string =>\n `${prefix ? prefix : \"\"}${Date.now()}${Math.floor(Math.random() * 1000000)}`;\n","import React, { useLayoutEffect, useMemo } from \"react\";\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { removeCSS, updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport { TDesignTokensPartial } from \"../DesignTokens/types/DesignTokensTypes\";\nimport { DesignTokenUtils } from \"../DesignTokens/DesignTokenUtils\";\nimport { ThemeProviderView } from \"./components/ThemeProviderView\";\nimport { uniqueId } from \"../../../scripts/uniqueId\";\nimport { ETriplexNextTheme } from \"./ETriplexNextTheme\";\n\n/** Префикс автогенерируемого scopeClassName. */\nconst SCOPE_CLASS_NAME_PREFIX = \"triplex-next-theme-\";\n\n/**\n * Возвращает ключ тега style с css-переменными темы. По этому ключу стили обновляются\n * и удаляются, поэтому ключ вычисляется в одном месте.\n */\nconst getStyleTagKey = (scopeClassName: string): string => `triplex-next-dynamic-tokens-${scopeClassName}`;\n\nexport interface IThemeProviderProps {\n /** Контент, внутри которого действуют тема и токены. */\n children: React.ReactNode;\n /** Classname, который добавлен к элементу из scopeRef для создания области видимости css-переменных. */\n scopeClassName?: string;\n /** Ref на HTML элемент, внутри которого будет действовать текущий конфиг. */\n scopeRef: React.RefObject<HTMLElement>;\n /** Дизайн-тема Triplex Next. @default ETriplexNextTheme.LIGHT */\n theme?: ETriplexNextTheme;\n /** Переопределяемые токены. */\n tokens?: TDesignTokensPartial;\n}\n\n/**\n * Провайдер темы. Рендерит css-переменные дизайн-токенов выбранной темы в тег style,\n * ограничивает их областью видимости элемента из scopeRef и передаёт тему и токены\n * дочерним компонентам через контекст (см. useToken).\n */\nexport const ThemeProvider: React.FC<IThemeProviderProps> = ({\n children,\n scopeClassName,\n scopeRef,\n theme = ETriplexNextTheme.LIGHT,\n tokens,\n}) => {\n // ClassName, добавляемый к HTML элементу, для определения области видимости CSS-переменных.\n const scopeCssClassName = useMemo(() => scopeClassName || uniqueId(SCOPE_CLASS_NAME_PREFIX), [scopeClassName]);\n\n useLayoutEffect(() => {\n if (canUseDom()) {\n const style = `.${scopeCssClassName} {${DesignTokenUtils.getStyle(theme, tokens || {})}}`;\n // Создание или обновление тега style с css-переменными текущей темы.\n updateCSS(style, getStyleTagKey(scopeCssClassName));\n } else {\n console.warn(\"ThemeProvider\", \"SSR do not support dynamic theme with css variables.\");\n }\n }, [scopeCssClassName, theme, tokens]);\n\n // Удаляет стили при размонтировании компонента.\n useLayoutEffect(() => () => removeCSS(getStyleTagKey(scopeCssClassName)), [scopeCssClassName]);\n\n return (\n <ThemeProviderView scopeClassName={scopeCssClassName} scopeRef={scopeRef} theme={theme} tokens={tokens}>\n {children}\n </ThemeProviderView>\n );\n};\n"],"names":[],"mappings":";;;;;;AAAO,MAAM,WAAW,CAAC,WACrB,GAAY,MAAW,GAAG,KAAK,IAAA,CAAK,GAAG,KAAK,MAAM,KAAK,OAAA,IAAW,GAAO,CAAC;ACS9E,MAAM,0BAA0B;AAMhC,MAAM,iBAAiB,CAAC,mBAAmC,+BAA+B,cAAc;AAoBjG,MAAM,gBAA+C,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ,kBAAkB;AAAA,EAC1B;AACJ,MAAM;AAEF,QAAM,oBAAoB,QAAQ,MAAM,kBAAkB,SAAS,uBAAuB,GAAG,CAAC,cAAc,CAAC;AAE7G,kBAAgB,MAAM;AAClB,QAAI,aAAa;AACb,YAAM,QAAQ,IAAI,iBAAiB,KAAK,iBAAiB,SAAS,OAAO,UAAU,CAAA,CAAE,CAAC;AAEtF,gBAAU,OAAO,eAAe,iBAAiB,CAAC;AAAA,IACtD,OAAO;AACH,cAAQ,KAAK,iBAAiB,sDAAsD;AAAA,IACxF;AAAA,EACJ,GAAG,CAAC,mBAAmB,OAAO,MAAM,CAAC;AAGrC,kBAAgB,MAAM,MAAM,UAAU,eAAe,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAE7F,6BACK,mBAAA,EAAkB,gBAAgB,mBAAmB,UAAoB,OAAc,QACnF,UACL;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProviderContext.js","sources":["../../../src/components/ThemeProvider/ThemeProviderContext.ts"],"sourcesContent":["import React from \"react\";\nimport { TDesignTokens } from \"../DesignTokens/types/DesignTokensTypes\";\nimport { ETriplexNextTheme } from \"./ETriplexNextTheme\";\nimport { DesignTokensCore, DesignTokensComponents } from \"../DesignTokens\";\n\nexport interface IThemeProviderContext {\n scopeClassName: string;\n theme: ETriplexNextTheme;\n tokens: TDesignTokens;\n}\n\nconst contextInitial: IThemeProviderContext = {\n scopeClassName: \"\",\n theme: ETriplexNextTheme.LIGHT,\n tokens: { ...DesignTokensCore, ...DesignTokensComponents },\n};\n\nexport const ThemeProviderContext = React.createContext<IThemeProviderContext>(contextInitial);\n"],"names":["React"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"ThemeProviderContext.js","sources":["../../../src/components/ThemeProvider/ThemeProviderContext.ts"],"sourcesContent":["import React from \"react\";\nimport { TDesignTokens } from \"../DesignTokens/types/DesignTokensTypes\";\nimport { ETriplexNextTheme } from \"./ETriplexNextTheme\";\nimport { DesignTokensCore, DesignTokensComponents } from \"../DesignTokens\";\n\nexport interface IThemeProviderContext {\n /** Classname, задающий область видимости css-переменных темы. Пустая строка вне ThemeProvider. */\n scopeClassName: string;\n /** Текущая дизайн-тема Triplex Next. */\n theme: ETriplexNextTheme;\n /** Итоговые токены: переопределения потребителя поверх токенов темы. */\n tokens: TDesignTokens;\n}\n\n/** Значение контекста вне ThemeProvider: светлая тема и токены по умолчанию. */\nconst contextInitial: IThemeProviderContext = {\n scopeClassName: \"\",\n theme: ETriplexNextTheme.LIGHT,\n tokens: { ...DesignTokensCore, ...DesignTokensComponents },\n};\n\n/** Контекст темы. Значение читается хуком useToken. */\nexport const ThemeProviderContext = React.createContext<IThemeProviderContext>(contextInitial);\n"],"names":["React"],"mappings":";;;;;AAeA,MAAM,iBAAwC;AAAA,EAC1C,gBAAgB;AAAA,EAChB,OAAO,kBAAkB;AAAA,EACzB,QAAQ,EAAE,GAAG,kBAAkB,GAAG,uBAAA;AACtC;AAGO,MAAM,uBAAuBA,eAAM,cAAqC,cAAc;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { useEffect, useMemo } from "react";
|
|
3
3
|
import { ThemeProviderContext } from "../ThemeProviderContext.js";
|
|
4
4
|
import { ETriplexNextTheme } from "../ETriplexNextTheme.js";
|
|
5
5
|
import { DesignTokensCore } from "../../DesignTokens/DesignTokensCore.js";
|
|
@@ -14,17 +14,14 @@ const ThemeProviderView = ({
|
|
|
14
14
|
theme,
|
|
15
15
|
tokens: tokensProps
|
|
16
16
|
}) => {
|
|
17
|
-
const prevScopeClassName = useRef("");
|
|
18
17
|
useEffect(() => {
|
|
19
|
-
const
|
|
20
|
-
if (scopeClassName) {
|
|
21
|
-
|
|
18
|
+
const scopeElement = scopeRef.current;
|
|
19
|
+
if (!scopeClassName) {
|
|
20
|
+
return;
|
|
22
21
|
}
|
|
23
|
-
|
|
22
|
+
scopeElement == null ? void 0 : scopeElement.classList.add(scopeClassName);
|
|
24
23
|
return () => {
|
|
25
|
-
|
|
26
|
-
scopeRefCurrent == null ? void 0 : scopeRefCurrent.classList.remove(prevScopeClassName.current);
|
|
27
|
-
}
|
|
24
|
+
scopeElement == null ? void 0 : scopeElement.classList.remove(scopeClassName);
|
|
28
25
|
};
|
|
29
26
|
}, [scopeClassName, scopeRef]);
|
|
30
27
|
const value = useMemo(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeProviderView.js","sources":["../../../../src/components/ThemeProvider/components/ThemeProviderView.tsx"],"sourcesContent":["import React, { useEffect, useMemo
|
|
1
|
+
{"version":3,"file":"ThemeProviderView.js","sources":["../../../../src/components/ThemeProvider/components/ThemeProviderView.tsx"],"sourcesContent":["import React, { useEffect, useMemo } from \"react\";\nimport { defaultsDeep } from \"lodash-es\";\nimport { TDesignTokens, TDesignTokensPartial } from \"../../DesignTokens/types/DesignTokensTypes\";\nimport { ThemeProviderContext } from \"../ThemeProviderContext\";\nimport { ETriplexNextTheme } from \"../ETriplexNextTheme\";\nimport {\n DesignTokensCore,\n DesignTokensCoreThemeDark,\n DesignTokensComponents,\n DesignTokensComponentsThemeDark,\n} from \"../../DesignTokens\";\n\ninterface IThemeProviderViewProps {\n /** Дизайн-тема Triplex Next. */\n theme: ETriplexNextTheme;\n /** Переопределяемые токены. */\n tokens?: TDesignTokensPartial;\n /** Classname, который добавлен к элементу из scopeRef для создания области видимости css-переменных. */\n scopeClassName: string;\n /** Ref на HTML элемент, внутри которого будет действовать текущий конфиг. */\n scopeRef: React.RefObject<HTMLElement>;\n /** Контент, внутри которого действуют тема и токены. */\n children?: React.ReactNode;\n}\n\n/**\n * Создаёт провайдер темы: навешивает scopeClassName на элемент из scopeRef (область видимости\n * css-переменных) и отдаёт тему вместе с итоговыми токенами в контекст.\n */\nexport const ThemeProviderView: React.FC<IThemeProviderViewProps> = ({\n children,\n scopeClassName,\n scopeRef,\n theme,\n tokens: tokensProps,\n}) => {\n useEffect(() => {\n const scopeElement = scopeRef.current;\n\n if (!scopeClassName) {\n return;\n }\n\n scopeElement?.classList.add(scopeClassName);\n\n return () => {\n scopeElement?.classList.remove(scopeClassName);\n };\n }, [scopeClassName, scopeRef]);\n\n const value = useMemo(() => {\n // Не менять порядок, иначе токены темы будут переопределять пользовательские значения.\n const tokens: TDesignTokens = defaultsDeep(\n {},\n tokensProps,\n theme === ETriplexNextTheme.LIGHT ? DesignTokensCore : DesignTokensCoreThemeDark,\n theme === ETriplexNextTheme.LIGHT ? DesignTokensComponents : DesignTokensComponentsThemeDark,\n );\n\n return { scopeClassName, theme, tokens };\n }, [scopeClassName, theme, tokensProps]);\n\n return <ThemeProviderContext.Provider value={value}>{children}</ThemeProviderContext.Provider>;\n};\n"],"names":[],"mappings":";;;;;;;;;AA6BO,MAAM,oBAAuD,CAAC;AAAA,EACjE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AACZ,MAAM;AACF,YAAU,MAAM;AACZ,UAAM,eAAe,SAAS;AAE9B,QAAI,CAAC,gBAAgB;AACjB;AAAA,IACJ;AAEA,iDAAc,UAAU,IAAI;AAE5B,WAAO,MAAM;AACT,mDAAc,UAAU,OAAO;AAAA,IACnC;AAAA,EACJ,GAAG,CAAC,gBAAgB,QAAQ,CAAC;AAE7B,QAAM,QAAQ,QAAQ,MAAM;AAExB,UAAM,SAAwB;AAAA,MAC1B,CAAA;AAAA,MACA;AAAA,MACA,UAAU,kBAAkB,QAAQ,mBAAmB;AAAA,MACvD,UAAU,kBAAkB,QAAQ,yBAAyB;AAAA,IAAA;AAGjE,WAAO,EAAE,gBAAgB,OAAO,OAAA;AAAA,EACpC,GAAG,CAAC,gBAAgB,OAAO,WAAW,CAAC;AAEvC,SAAO,oBAAC,qBAAqB,UAArB,EAA8B,OAAe,SAAA,CAAS;AAClE;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToken.js","sources":["../../../src/components/ThemeProvider/useToken.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { TDesignTokens } from \"../DesignTokens/types/DesignTokensTypes\";\nimport { ThemeProviderContext } from \"@sberbusiness/triplex-next/components/ThemeProvider/ThemeProviderContext\";\nimport { ETriplexNextTheme } from \"./ETriplexNextTheme\";\n\n/**\n * Хук, возвращающий текущую тему и
|
|
1
|
+
{"version":3,"file":"useToken.js","sources":["../../../src/components/ThemeProvider/useToken.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { TDesignTokens } from \"../DesignTokens/types/DesignTokensTypes\";\nimport { ThemeProviderContext } from \"@sberbusiness/triplex-next/components/ThemeProvider/ThemeProviderContext\";\nimport { ETriplexNextTheme } from \"./ETriplexNextTheme\";\n\n/**\n * Хук, возвращающий текущую тему и токены ближайшего ThemeProvider.\n * Вне ThemeProvider возвращает светлую тему, токены по умолчанию и пустой scopeClassName.\n */\nexport const useToken = (): { scopeClassName: string; theme: ETriplexNextTheme; tokens: TDesignTokens } => {\n const { scopeClassName, theme, tokens } = useContext(ThemeProviderContext);\n\n return { scopeClassName, theme, tokens };\n};\n"],"names":[],"mappings":";;AASO,MAAM,WAAW,MAAmF;AACvG,QAAM,EAAE,gBAAgB,OAAO,OAAA,IAAW,WAAW,oBAAoB;AAEzE,SAAO,EAAE,gBAAgB,OAAO,OAAA;AACpC;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import React__default, { useState, useRef, useEffect, useCallback } from "react";
|
|
2
|
+
import React__default, { useState, useRef, useEffect, useMemo, useCallback } from "react";
|
|
3
3
|
import { TooltipContext } from "./TootlipContext.js";
|
|
4
4
|
import { MobileView } from "../MobileView/MobileView.js";
|
|
5
5
|
import { TooltipDesktop } from "./components/desktop/TooltipDesktop.js";
|
|
@@ -12,6 +12,29 @@ import { TooltipMobileHeader } from "./components/mobile/components/TooltipMobil
|
|
|
12
12
|
import { useTooltipTheme } from "./utils/useTooltipTheme.js";
|
|
13
13
|
import { useMobileView } from "../MobileView/useMobileView.js";
|
|
14
14
|
import "./enums.js";
|
|
15
|
+
const collectTooltipElements = (children) => {
|
|
16
|
+
const elements = {
|
|
17
|
+
body: null,
|
|
18
|
+
link: null,
|
|
19
|
+
closeButton: null,
|
|
20
|
+
mobileHeader: null,
|
|
21
|
+
target: null
|
|
22
|
+
};
|
|
23
|
+
React__default.Children.forEach(children, (child) => {
|
|
24
|
+
if (React__default.isValidElement(child) && child.type === TooltipTarget) {
|
|
25
|
+
elements.target = child;
|
|
26
|
+
} else if (React__default.isValidElement(child) && child.type === TooltipBody) {
|
|
27
|
+
elements.body = child;
|
|
28
|
+
} else if (React__default.isValidElement(child) && child.type === TooltipLink) {
|
|
29
|
+
elements.link = child;
|
|
30
|
+
} else if (React__default.isValidElement(child) && child.type === TooltipXButton) {
|
|
31
|
+
elements.closeButton = child;
|
|
32
|
+
} else if (React__default.isValidElement(child) && child.type === TooltipMobileHeader) {
|
|
33
|
+
elements.mobileHeader = child;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return elements;
|
|
37
|
+
};
|
|
15
38
|
const Tooltip = ({
|
|
16
39
|
children,
|
|
17
40
|
toggleType,
|
|
@@ -26,65 +49,39 @@ const Tooltip = ({
|
|
|
26
49
|
const targetHoveredRef = useRef(false);
|
|
27
50
|
const open = openProp ?? openState;
|
|
28
51
|
const isBodyOnlyRenderContainer = isMobileScreenWidth && !disableAdaptiveMode;
|
|
29
|
-
|
|
52
|
+
const themeContainer = isBodyOnlyRenderContainer ? document.body : rest.renderContainer ?? document.body;
|
|
53
|
+
useTooltipTheme(open, themeContainer);
|
|
30
54
|
useEffect(() => {
|
|
31
55
|
if (openProp === false) {
|
|
32
56
|
targetHoveredRef.current = false;
|
|
33
57
|
}
|
|
34
58
|
}, [openProp]);
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
target: null
|
|
42
|
-
};
|
|
43
|
-
React__default.Children.map(children, (child) => {
|
|
44
|
-
if (React__default.isValidElement(child)) {
|
|
45
|
-
if (child.type === TooltipTarget) {
|
|
46
|
-
elements.target = child;
|
|
47
|
-
} else if (child.type === TooltipBody) {
|
|
48
|
-
elements.body = child;
|
|
49
|
-
} else if (child.type === TooltipLink) {
|
|
50
|
-
elements.link = child;
|
|
51
|
-
} else if (child.type === TooltipXButton) {
|
|
52
|
-
elements.closeButton = child;
|
|
53
|
-
} else if (child.type === TooltipMobileHeader) {
|
|
54
|
-
elements.mobileHeader = child;
|
|
59
|
+
const elements = useMemo(() => collectTooltipElements(children), [children]);
|
|
60
|
+
const handleOpen = useCallback(
|
|
61
|
+
(nextOpen) => {
|
|
62
|
+
if (openProp === void 0) {
|
|
63
|
+
if (!nextOpen) {
|
|
64
|
+
targetHoveredRef.current = false;
|
|
55
65
|
}
|
|
66
|
+
setOpenState(nextOpen);
|
|
56
67
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return /* @__PURE__ */ jsx(TooltipDesktop, { isOpen: open, toggleType, preferPlace, ...rest });
|
|
71
|
-
};
|
|
72
|
-
const renderMobileTooltip = () => {
|
|
73
|
-
return /* @__PURE__ */ jsx(TooltipMobile, { isOpen: open, ...rest });
|
|
74
|
-
};
|
|
75
|
-
return /* @__PURE__ */ jsx(
|
|
76
|
-
TooltipContext.Provider,
|
|
77
|
-
{
|
|
78
|
-
value: {
|
|
79
|
-
elements: getChildrenElements(),
|
|
80
|
-
setTooltipOpen: handleOpen,
|
|
81
|
-
targetHoveredRef,
|
|
82
|
-
toggleType,
|
|
83
|
-
tooltipOpen: open
|
|
84
|
-
},
|
|
85
|
-
children: disableAdaptiveMode ? renderDesktopTooltip() : /* @__PURE__ */ jsx(MobileView, { fallback: renderDesktopTooltip(), children: renderMobileTooltip() })
|
|
86
|
-
}
|
|
68
|
+
toggle == null ? void 0 : toggle(nextOpen);
|
|
69
|
+
},
|
|
70
|
+
[openProp, toggle]
|
|
71
|
+
);
|
|
72
|
+
const contextValue = useMemo(
|
|
73
|
+
() => ({
|
|
74
|
+
elements,
|
|
75
|
+
setTooltipOpen: handleOpen,
|
|
76
|
+
targetHoveredRef,
|
|
77
|
+
toggleType,
|
|
78
|
+
tooltipOpen: open
|
|
79
|
+
}),
|
|
80
|
+
[elements, handleOpen, toggleType, open]
|
|
87
81
|
);
|
|
82
|
+
const renderDesktopTooltip = () => /* @__PURE__ */ jsx(TooltipDesktop, { isOpen: open, toggleType, preferPlace, ...rest });
|
|
83
|
+
const renderMobileTooltip = () => /* @__PURE__ */ jsx(TooltipMobile, { isOpen: open, ...rest });
|
|
84
|
+
return /* @__PURE__ */ jsx(TooltipContext.Provider, { value: contextValue, children: disableAdaptiveMode ? renderDesktopTooltip() : /* @__PURE__ */ jsx(MobileView, { fallback: renderDesktopTooltip(), children: renderMobileTooltip() }) });
|
|
88
85
|
};
|
|
89
86
|
Tooltip.Target = TooltipTarget;
|
|
90
87
|
Tooltip.Body = TooltipBody;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useRef } from \"react\";\nimport { TooltipContext } from \"./TootlipContext\";\nimport { MobileView } from \"../MobileView/MobileView\";\nimport { TooltipDesktop } from \"./components/desktop/TooltipDesktop\";\nimport { TooltipMobile } from \"./components/mobile/TooltipMobile\";\nimport { TooltipBody } from \"./components/common/TooltipBody\";\nimport { TooltipLink } from \"./components/common/TooltipLink\";\nimport { TooltipTarget } from \"./components/common/TooltipTarget\";\nimport { TooltipXButton } from \"./components/common/TooltipXButton\";\nimport { TooltipMobileHeader } from \"./components/mobile/components/TooltipMobileHeader\";\nimport {
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback, useMemo, useRef } from \"react\";\nimport { TooltipContext } from \"./TootlipContext\";\nimport { MobileView } from \"../MobileView/MobileView\";\nimport { TooltipDesktop } from \"./components/desktop/TooltipDesktop\";\nimport { TooltipMobile } from \"./components/mobile/TooltipMobile\";\nimport { TooltipBody } from \"./components/common/TooltipBody\";\nimport { TooltipLink } from \"./components/common/TooltipLink\";\nimport { TooltipTarget } from \"./components/common/TooltipTarget\";\nimport { TooltipXButton } from \"./components/common/TooltipXButton\";\nimport { TooltipMobileHeader } from \"./components/mobile/components/TooltipMobileHeader\";\nimport {\n ITooltipBodyProps,\n ITooltipElements,\n ITooltipLinkProps,\n ITooltipMobileHeaderProps,\n ITooltipProps,\n ITooltipTargetProps,\n ITooltipXButtonProps,\n} from \"./types\";\nimport { useTooltipTheme } from \"./utils/useTooltipTheme\";\nimport { useMobileView } from \"../MobileView\";\n\n/** Внутренние составляющие компонента Tooltip. */\ninterface ITooltipComposition {\n /** Целевой элемент, к которому привязана подсказка. */\n Target: typeof TooltipTarget;\n /** Содержимое подсказки. */\n Body: typeof TooltipBody;\n /** Гиперссылка внутри подсказки. */\n Link: typeof TooltipLink;\n /** Кнопка закрытия подсказки. */\n XButton: typeof TooltipXButton;\n /** Заголовок мобильной (адаптивной) версии подсказки. */\n MobileHeader: typeof TooltipMobileHeader;\n}\n\n/**\n * Разбирает children на именованные слоты Tooltip.\n * Узлы, не являющиеся субкомпонентами Tooltip, игнорируются.\n */\nconst collectTooltipElements = (children: React.ReactNode): ITooltipElements => {\n const elements: ITooltipElements = {\n body: null,\n link: null,\n closeButton: null,\n mobileHeader: null,\n target: null,\n };\n\n React.Children.forEach(children, (child) => {\n if (React.isValidElement<ITooltipTargetProps>(child) && child.type === TooltipTarget) {\n elements.target = child;\n } else if (React.isValidElement<ITooltipBodyProps>(child) && child.type === TooltipBody) {\n elements.body = child;\n } else if (React.isValidElement<ITooltipLinkProps>(child) && child.type === TooltipLink) {\n elements.link = child;\n } else if (React.isValidElement<ITooltipXButtonProps>(child) && child.type === TooltipXButton) {\n elements.closeButton = child;\n } else if (React.isValidElement<ITooltipMobileHeaderProps>(child) && child.type === TooltipMobileHeader) {\n elements.mobileHeader = child;\n }\n });\n\n return elements;\n};\n\n/** Всплывающая подсказка. */\nexport const Tooltip: React.FC<ITooltipProps> & ITooltipComposition = ({\n children,\n toggleType,\n preferPlace,\n disableAdaptiveMode,\n isOpen: openProp,\n toggle,\n ...rest\n}) => {\n const isMobileScreenWidth = useMobileView();\n const [openState, setOpenState] = useState(false);\n const targetHoveredRef = useRef(false);\n const open = openProp ?? openState;\n // renderContainer для mobile режима только document.body\n const isBodyOnlyRenderContainer = isMobileScreenWidth && !disableAdaptiveMode;\n const themeContainer = isBodyOnlyRenderContainer ? document.body : (rest.renderContainer ?? document.body);\n\n useTooltipTheme(open, themeContainer);\n\n useEffect(() => {\n if (openProp === false) {\n targetHoveredRef.current = false;\n }\n }, [openProp]);\n\n const elements = useMemo(() => collectTooltipElements(children), [children]);\n\n /** Обработчик изменения состояния компонента. */\n const handleOpen = useCallback(\n (nextOpen: boolean) => {\n if (openProp === undefined) {\n if (!nextOpen) {\n targetHoveredRef.current = false;\n }\n setOpenState(nextOpen);\n }\n\n toggle?.(nextOpen);\n },\n [openProp, toggle],\n );\n\n const contextValue = useMemo(\n () => ({\n elements,\n setTooltipOpen: handleOpen,\n targetHoveredRef,\n toggleType,\n tooltipOpen: open,\n }),\n [elements, handleOpen, toggleType, open],\n );\n\n /** Рендер десктоп версии компонента. */\n const renderDesktopTooltip = () => (\n <TooltipDesktop isOpen={open} toggleType={toggleType} preferPlace={preferPlace} {...rest} />\n );\n\n /** Рендер мобильной версии компонента. */\n const renderMobileTooltip = () => <TooltipMobile isOpen={open} {...rest} />;\n\n return (\n <TooltipContext.Provider value={contextValue}>\n {disableAdaptiveMode ? (\n renderDesktopTooltip()\n ) : (\n <MobileView fallback={renderDesktopTooltip()}>{renderMobileTooltip()}</MobileView>\n )}\n </TooltipContext.Provider>\n );\n};\n\nTooltip.Target = TooltipTarget;\nTooltip.Body = TooltipBody;\nTooltip.Link = TooltipLink;\nTooltip.XButton = TooltipXButton;\nTooltip.MobileHeader = TooltipMobileHeader;\n"],"names":["React"],"mappings":";;;;;;;;;;;;;;AAwCA,MAAM,yBAAyB,CAAC,aAAgD;AAC5E,QAAM,WAA6B;AAAA,IAC/B,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,cAAc;AAAA,IACd,QAAQ;AAAA,EAAA;AAGZA,iBAAM,SAAS,QAAQ,UAAU,CAAC,UAAU;AACxC,QAAIA,eAAM,eAAoC,KAAK,KAAK,MAAM,SAAS,eAAe;AAClF,eAAS,SAAS;AAAA,IACtB,WAAWA,eAAM,eAAkC,KAAK,KAAK,MAAM,SAAS,aAAa;AACrF,eAAS,OAAO;AAAA,IACpB,WAAWA,eAAM,eAAkC,KAAK,KAAK,MAAM,SAAS,aAAa;AACrF,eAAS,OAAO;AAAA,IACpB,WAAWA,eAAM,eAAqC,KAAK,KAAK,MAAM,SAAS,gBAAgB;AAC3F,eAAS,cAAc;AAAA,IAC3B,WAAWA,eAAM,eAA0C,KAAK,KAAK,MAAM,SAAS,qBAAqB;AACrG,eAAS,eAAe;AAAA,IAC5B;AAAA,EACJ,CAAC;AAED,SAAO;AACX;AAGO,MAAM,UAAyD,CAAC;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA,GAAG;AACP,MAAM;AACF,QAAM,sBAAsB,cAAA;AAC5B,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,mBAAmB,OAAO,KAAK;AACrC,QAAM,OAAO,YAAY;AAEzB,QAAM,4BAA4B,uBAAuB,CAAC;AAC1D,QAAM,iBAAiB,4BAA4B,SAAS,OAAQ,KAAK,mBAAmB,SAAS;AAErG,kBAAgB,MAAM,cAAc;AAEpC,YAAU,MAAM;AACZ,QAAI,aAAa,OAAO;AACpB,uBAAiB,UAAU;AAAA,IAC/B;AAAA,EACJ,GAAG,CAAC,QAAQ,CAAC;AAEb,QAAM,WAAW,QAAQ,MAAM,uBAAuB,QAAQ,GAAG,CAAC,QAAQ,CAAC;AAG3E,QAAM,aAAa;AAAA,IACf,CAAC,aAAsB;AACnB,UAAI,aAAa,QAAW;AACxB,YAAI,CAAC,UAAU;AACX,2BAAiB,UAAU;AAAA,QAC/B;AACA,qBAAa,QAAQ;AAAA,MACzB;AAEA,uCAAS;AAAA,IACb;AAAA,IACA,CAAC,UAAU,MAAM;AAAA,EAAA;AAGrB,QAAM,eAAe;AAAA,IACjB,OAAO;AAAA,MACH;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA,MACA;AAAA,MACA,aAAa;AAAA,IAAA;AAAA,IAEjB,CAAC,UAAU,YAAY,YAAY,IAAI;AAAA,EAAA;AAI3C,QAAM,uBAAuB,MACzB,oBAAC,gBAAA,EAAe,QAAQ,MAAM,YAAwB,aAA2B,GAAG,MAAM;AAI9F,QAAM,sBAAsB,MAAM,oBAAC,iBAAc,QAAQ,MAAO,GAAG,MAAM;AAEzE,6BACK,eAAe,UAAf,EAAwB,OAAO,cAC3B,UAAA,sBACG,qBAAA,IAEA,oBAAC,cAAW,UAAU,qBAAA,GAAyB,UAAA,oBAAA,GAAsB,GAE7E;AAER;AAEA,QAAQ,SAAS;AACjB,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,UAAU;AAClB,QAAQ,eAAe;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TootlipContext.js","sources":["../../../src/components/Tooltip/TootlipContext.ts"],"sourcesContent":["import React from \"react\";\nimport { TTooltipToggleType, ITooltipElements } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Свойства контекста Tooltip. */\nexport interface ITooltipContext {\n toggleType?: TTooltipToggleType;\n elements: ITooltipElements;\n tooltipOpen: boolean;\n targetHoveredRef: React.MutableRefObject<boolean>;\n setTooltipOpen: (open: boolean) => void;\n}\n\n/** Контекст компонента Tooltip. */\nexport const TooltipContext = React.createContext<ITooltipContext>({\n elements: {\n body: null,\n link: null,\n closeButton: null,\n mobileHeader: null,\n target: null,\n },\n setTooltipOpen: () => {},\n targetHoveredRef: { current: false },\n tooltipOpen: false,\n});\n"],"names":["React"],"mappings":";
|
|
1
|
+
{"version":3,"file":"TootlipContext.js","sources":["../../../src/components/Tooltip/TootlipContext.ts"],"sourcesContent":["import React from \"react\";\nimport { TTooltipToggleType, ITooltipElements } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Свойства контекста Tooltip. */\nexport interface ITooltipContext {\n /** Способ открытия подсказки: по клику или по наведению. */\n toggleType?: TTooltipToggleType;\n /** Субкомпоненты, разобранные из children Tooltip. */\n elements: ITooltipElements;\n /** Признак того, что подсказка открыта. */\n tooltipOpen: boolean;\n /** Признак того, что открытие было инициировано наведением на целевой элемент. */\n targetHoveredRef: React.MutableRefObject<boolean>;\n /** Изменение состояния открытости подсказки. */\n setTooltipOpen: (open: boolean) => void;\n}\n\n/** Контекст компонента Tooltip. */\nexport const TooltipContext = React.createContext<ITooltipContext>({\n elements: {\n body: null,\n link: null,\n closeButton: null,\n mobileHeader: null,\n target: null,\n },\n setTooltipOpen: () => {},\n targetHoveredRef: { current: false },\n tooltipOpen: false,\n});\n"],"names":["React"],"mappings":";AAkBO,MAAM,iBAAiBA,eAAM,cAA+B;AAAA,EAC/D,UAAU;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,cAAc;AAAA,IACd,QAAQ;AAAA,EAAA;AAAA,EAEZ,gBAAgB,MAAM;AAAA,EAAC;AAAA,EACvB,kBAAkB,EAAE,SAAS,MAAA;AAAA,EAC7B,aAAa;AACjB,CAAC;"}
|
|
@@ -4,7 +4,7 @@ import { c as clsx } from "../../../../chunks/vendor-CtuAQuEN.js";
|
|
|
4
4
|
import { MobileView } from "../../../MobileView/MobileView.js";
|
|
5
5
|
import { Text } from "../../../Typography/Text.js";
|
|
6
6
|
import { ELineType, ETextSize } from "../../../Typography/enums.js";
|
|
7
|
-
import { s as styles } from "../../../../chunks/TooltipDesktop.module-
|
|
7
|
+
import { s as styles } from "../../../../chunks/TooltipDesktop.module-V0gGAoBE.js";
|
|
8
8
|
const TooltipBody = React__default.forwardRef(({ className, ...rest }, ref) => {
|
|
9
9
|
const classNames = clsx(styles.tooltipBody, className);
|
|
10
10
|
return /* @__PURE__ */ jsx(MobileView, { fallback: /* @__PURE__ */ jsx("div", { className: classNames, ...rest, ref }), children: /* @__PURE__ */ jsx(Text, { className: classNames, size: ETextSize.B3, line: ELineType.NORMAL, tag: "div", ...rest, ref }) });
|
|
@@ -3,9 +3,9 @@ import React__default from "react";
|
|
|
3
3
|
import { c as clsx } from "../../../../chunks/vendor-CtuAQuEN.js";
|
|
4
4
|
import { MobileView } from "../../../MobileView/MobileView.js";
|
|
5
5
|
import { getSafeRel } from "../../../../utils/html/anchorSecurity.js";
|
|
6
|
-
const tooltipLink = "
|
|
7
|
-
const desktop = "
|
|
8
|
-
const mobile = "
|
|
6
|
+
const tooltipLink = "tooltipLink__ce876724";
|
|
7
|
+
const desktop = "desktop__6d50958e";
|
|
8
|
+
const mobile = "mobile__5c189448";
|
|
9
9
|
const styles = {
|
|
10
10
|
tooltipLink,
|
|
11
11
|
desktop,
|
|
@@ -14,30 +14,19 @@ const styles = {
|
|
|
14
14
|
const TooltipLink = React__default.forwardRef(
|
|
15
15
|
({ children, className, target, rel, ...rest }, ref) => {
|
|
16
16
|
const safeRel = getSafeRel(target, rel);
|
|
17
|
-
const
|
|
17
|
+
const renderLink = (variantClassName) => /* @__PURE__ */ jsx(
|
|
18
18
|
"a",
|
|
19
19
|
{
|
|
20
|
-
className: clsx(styles.tooltipLink,
|
|
20
|
+
className: clsx(styles.tooltipLink, variantClassName, className),
|
|
21
21
|
...rest,
|
|
22
22
|
target,
|
|
23
23
|
rel: safeRel,
|
|
24
|
-
"data-tx": "1.
|
|
24
|
+
"data-tx": "1.41.0",
|
|
25
25
|
ref,
|
|
26
26
|
children
|
|
27
27
|
}
|
|
28
28
|
);
|
|
29
|
-
return /* @__PURE__ */ jsx(MobileView, { fallback:
|
|
30
|
-
"a",
|
|
31
|
-
{
|
|
32
|
-
className: clsx(styles.tooltipLink, styles.mobile, className),
|
|
33
|
-
...rest,
|
|
34
|
-
target,
|
|
35
|
-
rel: safeRel,
|
|
36
|
-
"data-tx": "1.40.0",
|
|
37
|
-
ref,
|
|
38
|
-
children
|
|
39
|
-
}
|
|
40
|
-
) });
|
|
29
|
+
return /* @__PURE__ */ jsx(MobileView, { fallback: renderLink(styles.desktop), children: renderLink(styles.mobile) });
|
|
41
30
|
}
|
|
42
31
|
);
|
|
43
32
|
TooltipLink.displayName = "TooltipLink";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipLink.js","sources":["../../../../../src/components/Tooltip/components/common/TooltipLink.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport { MobileView } from \"@sberbusiness/triplex-next/components/MobileView/MobileView\";\nimport { getSafeRel } from \"@sberbusiness/triplex-next/utils/html/anchorSecurity\";\nimport styles from \"@sberbusiness/triplex-next/components/Tooltip/styles/TooltipLink.module.less\";\nimport { ITooltipLinkProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Гиперссылка в Tooltip. */\nexport const TooltipLink = React.forwardRef<HTMLAnchorElement, ITooltipLinkProps>(\n ({ children, className, target, rel, ...rest }, ref) => {\n // Защита от reverse tabnabbing при target=\"_blank\".\n const safeRel = getSafeRel(target, rel);\n\n /** Рендер
|
|
1
|
+
{"version":3,"file":"TooltipLink.js","sources":["../../../../../src/components/Tooltip/components/common/TooltipLink.tsx"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport { MobileView } from \"@sberbusiness/triplex-next/components/MobileView/MobileView\";\nimport { getSafeRel } from \"@sberbusiness/triplex-next/utils/html/anchorSecurity\";\nimport styles from \"@sberbusiness/triplex-next/components/Tooltip/styles/TooltipLink.module.less\";\nimport { ITooltipLinkProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Гиперссылка в Tooltip. */\nexport const TooltipLink = React.forwardRef<HTMLAnchorElement, ITooltipLinkProps>(\n ({ children, className, target, rel, ...rest }, ref) => {\n // Защита от reverse tabnabbing при target=\"_blank\".\n const safeRel = getSafeRel(target, rel);\n\n /** Рендер ссылки с классом варианта отображения (десктопный или мобильный). */\n const renderLink = (variantClassName: string) => (\n <a\n className={clsx(styles.tooltipLink, variantClassName, className)}\n {...rest}\n target={target}\n rel={safeRel}\n data-tx={process.env.npm_package_version}\n ref={ref}\n >\n {children}\n </a>\n );\n\n return <MobileView fallback={renderLink(styles.desktop)}>{renderLink(styles.mobile)}</MobileView>;\n },\n);\n\nTooltipLink.displayName = \"TooltipLink\";\n"],"names":["React"],"mappings":";;;;;;;;;;;;;AAQO,MAAM,cAAcA,eAAM;AAAA,EAC7B,CAAC,EAAE,UAAU,WAAW,QAAQ,KAAK,GAAG,KAAA,GAAQ,QAAQ;AAEpD,UAAM,UAAU,WAAW,QAAQ,GAAG;AAGtC,UAAM,aAAa,CAAC,qBAChB;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW,KAAK,OAAO,aAAa,kBAAkB,SAAS;AAAA,QAC9D,GAAG;AAAA,QACJ;AAAA,QACA,KAAK;AAAA,QACL,WAAS;AAAA,QACT;AAAA,QAEC;AAAA,MAAA;AAAA,IAAA;AAIT,WAAO,oBAAC,YAAA,EAAW,UAAU,WAAW,OAAO,OAAO,GAAI,UAAA,WAAW,OAAO,MAAM,GAAE;AAAA,EACxF;AACJ;AAEA,YAAY,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipTarget.js","sources":["../../../../../src/components/Tooltip/components/common/TooltipTarget.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { isKey } from \"@sberbusiness/triplex-next/utils/keyboard\";\nimport { ITooltipTargetProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n
|
|
1
|
+
{"version":3,"file":"TooltipTarget.js","sources":["../../../../../src/components/Tooltip/components/common/TooltipTarget.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { isKey } from \"@sberbusiness/triplex-next/utils/keyboard\";\nimport { ITooltipTargetProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/**\n * Целевой элемент компонента Tooltip.\n * Не рендерит собственную разметку: клонирует единственный дочерний элемент,\n * добавляя ему обработчики открытия подсказки. Собственные onClick/onKeyDown ребёнка сохраняются.\n */\nexport const TooltipTarget: React.FC<ITooltipTargetProps> = ({ children }) => {\n const { toggleType, tooltipOpen, targetHoveredRef, setTooltipOpen } = useContext(TooltipContext);\n const child = React.Children.only(children);\n\n /** Обработчик нажатия клавиши. */\n const handleKeyDown = (onKeyDown?: React.KeyboardEventHandler) => (event: React.KeyboardEvent) => {\n const key = event.code || event.keyCode;\n\n if (isKey(key, \"TAB\")) {\n if (tooltipOpen) {\n setTooltipOpen(false);\n }\n }\n onKeyDown?.(event);\n };\n\n /** Обработчик клика. */\n const handleClick = (onClick?: React.MouseEventHandler) => (event: React.MouseEvent) => {\n if (\n toggleType === \"click\" ||\n (toggleType === \"hover\" && !targetHoveredRef.current && event.currentTarget.contains(event.target as Node))\n ) {\n setTooltipOpen(!tooltipOpen);\n }\n onClick?.(event);\n };\n\n if (React.isValidElement<React.HTMLAttributes<Element>>(child)) {\n return React.cloneElement(child, {\n onClick: handleClick(child.props.onClick),\n onKeyDown: handleKeyDown(child.props.onKeyDown),\n });\n }\n\n return child;\n};\n"],"names":["React"],"mappings":";;;AAUO,MAAM,gBAA+C,CAAC,EAAE,eAAe;AAC1E,QAAM,EAAE,YAAY,aAAa,kBAAkB,eAAA,IAAmB,WAAW,cAAc;AAC/F,QAAM,QAAQA,eAAM,SAAS,KAAK,QAAQ;AAG1C,QAAM,gBAAgB,CAAC,cAA2C,CAAC,UAA+B;AAC9F,UAAM,MAAM,MAAM,QAAQ,MAAM;AAEhC,QAAI,MAAM,KAAK,KAAK,GAAG;AACnB,UAAI,aAAa;AACb,uBAAe,KAAK;AAAA,MACxB;AAAA,IACJ;AACA,2CAAY;AAAA,EAChB;AAGA,QAAM,cAAc,CAAC,YAAsC,CAAC,UAA4B;AACpF,QACI,eAAe,WACd,eAAe,WAAW,CAAC,iBAAiB,WAAW,MAAM,cAAc,SAAS,MAAM,MAAc,GAC3G;AACE,qBAAe,CAAC,WAAW;AAAA,IAC/B;AACA,uCAAU;AAAA,EACd;AAEA,MAAIA,eAAM,eAA8C,KAAK,GAAG;AAC5D,WAAOA,eAAM,aAAa,OAAO;AAAA,MAC7B,SAAS,YAAY,MAAM,MAAM,OAAO;AAAA,MACxC,WAAW,cAAc,MAAM,MAAM,SAAS;AAAA,IAAA,CACjD;AAAA,EACL;AAEA,SAAO;AACX;"}
|
|
@@ -3,7 +3,7 @@ import { useContext } from "react";
|
|
|
3
3
|
import { CrossStrokeSrvIcon16 } from "@sberbusiness/icons-next";
|
|
4
4
|
import { TooltipContext } from "../../TootlipContext.js";
|
|
5
5
|
import { ButtonIcon } from "../../../Button/ButtonIcon.js";
|
|
6
|
-
import { s as styles } from "../../../../chunks/TooltipDesktop.module-
|
|
6
|
+
import { s as styles } from "../../../../chunks/TooltipDesktop.module-V0gGAoBE.js";
|
|
7
7
|
const TooltipXButton = ({ onClick, ...rest }) => {
|
|
8
8
|
const { setTooltipOpen } = useContext(TooltipContext);
|
|
9
9
|
const handleClick = (event) => {
|
|
@@ -6,11 +6,13 @@ import React__default from "react";
|
|
|
6
6
|
import { TooltipDesktopBase } from "./components/TooltipDesktopBase.js";
|
|
7
7
|
import { TooltipContext } from "../../TootlipContext.js";
|
|
8
8
|
import { isKey } from "../../../../utils/keyboard.js";
|
|
9
|
+
const HOVER_CLOSE_DELAY_MS = 500;
|
|
9
10
|
class TooltipDesktop extends React__default.Component {
|
|
10
11
|
constructor() {
|
|
11
12
|
super(...arguments);
|
|
12
13
|
__publicField(this, "tooltip", null);
|
|
13
14
|
__publicField(this, "timeout");
|
|
15
|
+
/** Сохранение ноды подсказки и подписка её на события наведения. */
|
|
14
16
|
__publicField(this, "setTooltipRef", (node) => {
|
|
15
17
|
const { toggleType } = this.props;
|
|
16
18
|
if (node && toggleType === "hover") {
|
|
@@ -18,7 +20,7 @@ class TooltipDesktop extends React__default.Component {
|
|
|
18
20
|
}
|
|
19
21
|
this.tooltip = node;
|
|
20
22
|
});
|
|
21
|
-
|
|
23
|
+
/** Закрытие подсказки при действии мышью за её пределами. */
|
|
22
24
|
__publicField(this, "closeIfOuterAction", (event) => {
|
|
23
25
|
const { targetRef } = this.props;
|
|
24
26
|
const { setTooltipOpen } = this.context;
|
|
@@ -30,21 +32,24 @@ class TooltipDesktop extends React__default.Component {
|
|
|
30
32
|
}
|
|
31
33
|
}
|
|
32
34
|
});
|
|
33
|
-
|
|
35
|
+
/** Закрытие подсказки по нажатию Escape. */
|
|
34
36
|
__publicField(this, "closeIfEscapeKey", (event) => {
|
|
35
37
|
const key = event.code || event.keyCode;
|
|
36
38
|
if (isKey(key, "ESCAPE")) {
|
|
37
39
|
this.context.setTooltipOpen(false);
|
|
38
40
|
}
|
|
39
41
|
});
|
|
42
|
+
/** Подписка элемента на события наведения. */
|
|
40
43
|
__publicField(this, "addHoverListeners", (element) => {
|
|
41
44
|
element.addEventListener("mouseenter", this.handleMouseEnter);
|
|
42
45
|
element.addEventListener("mouseleave", this.handleMouseLeave);
|
|
43
46
|
});
|
|
47
|
+
/** Отписка элемента от событий наведения. */
|
|
44
48
|
__publicField(this, "removeHoverListeners", (element) => {
|
|
45
49
|
element.removeEventListener("mouseenter", this.handleMouseEnter);
|
|
46
50
|
element.removeEventListener("mouseleave", this.handleMouseLeave);
|
|
47
51
|
});
|
|
52
|
+
/** Обработчик наведения курсора на целевой элемент или на саму подсказку. */
|
|
48
53
|
__publicField(this, "handleMouseEnter", () => {
|
|
49
54
|
const { tooltipOpen, targetHoveredRef, setTooltipOpen } = this.context;
|
|
50
55
|
if (!tooltipOpen) {
|
|
@@ -53,11 +58,12 @@ class TooltipDesktop extends React__default.Component {
|
|
|
53
58
|
}
|
|
54
59
|
clearTimeout(this.timeout);
|
|
55
60
|
});
|
|
61
|
+
/** Обработчик ухода курсора: подсказка закрывается с задержкой, чтобы курсор успел дойти до неё. */
|
|
56
62
|
__publicField(this, "handleMouseLeave", () => {
|
|
57
63
|
const { setTooltipOpen } = this.context;
|
|
58
64
|
this.timeout = window.setTimeout(() => {
|
|
59
65
|
setTooltipOpen(false);
|
|
60
|
-
},
|
|
66
|
+
}, HOVER_CLOSE_DELAY_MS);
|
|
61
67
|
});
|
|
62
68
|
}
|
|
63
69
|
render() {
|
|
@@ -65,9 +71,9 @@ class TooltipDesktop extends React__default.Component {
|
|
|
65
71
|
return /* @__PURE__ */ jsx(TooltipDesktopBase, { ...rest, setTooltipRef: this.setTooltipRef });
|
|
66
72
|
}
|
|
67
73
|
componentDidMount() {
|
|
68
|
-
const { toggleType, targetRef } = this.props;
|
|
69
|
-
if (
|
|
70
|
-
document.addEventListener("
|
|
74
|
+
const { toggleType, targetRef, isOpen } = this.props;
|
|
75
|
+
if (isOpen) {
|
|
76
|
+
document.addEventListener("mousedown", this.closeIfOuterAction);
|
|
71
77
|
document.addEventListener("keydown", this.closeIfEscapeKey);
|
|
72
78
|
}
|
|
73
79
|
if (targetRef.current && toggleType === "hover") {
|
|
@@ -85,15 +91,16 @@ class TooltipDesktop extends React__default.Component {
|
|
|
85
91
|
if (isClosed) {
|
|
86
92
|
document.removeEventListener("mousedown", this.closeIfOuterAction);
|
|
87
93
|
document.removeEventListener("keydown", this.closeIfEscapeKey);
|
|
88
|
-
if (this.props.toggleType === "hover") {
|
|
94
|
+
if (this.props.toggleType === "hover" && this.tooltip) {
|
|
89
95
|
this.removeHoverListeners(this.tooltip);
|
|
90
96
|
}
|
|
91
97
|
}
|
|
92
|
-
if (
|
|
98
|
+
if (prevProps.toggleType !== this.props.toggleType) {
|
|
99
|
+
const elements = [targetRef.current, this.tooltip];
|
|
93
100
|
if (this.props.toggleType === "hover") {
|
|
94
|
-
this.addHoverListeners(
|
|
101
|
+
elements.forEach((element) => element && this.addHoverListeners(element));
|
|
95
102
|
} else if (prevProps.toggleType === "hover") {
|
|
96
|
-
this.removeHoverListeners(
|
|
103
|
+
elements.forEach((element) => element && this.removeHoverListeners(element));
|
|
97
104
|
}
|
|
98
105
|
}
|
|
99
106
|
}
|
|
@@ -101,8 +108,13 @@ class TooltipDesktop extends React__default.Component {
|
|
|
101
108
|
const { toggleType, targetRef } = this.props;
|
|
102
109
|
document.removeEventListener("mousedown", this.closeIfOuterAction);
|
|
103
110
|
document.removeEventListener("keydown", this.closeIfEscapeKey);
|
|
104
|
-
if (
|
|
105
|
-
|
|
111
|
+
if (toggleType === "hover") {
|
|
112
|
+
if (targetRef.current) {
|
|
113
|
+
this.removeHoverListeners(targetRef.current);
|
|
114
|
+
}
|
|
115
|
+
if (this.tooltip) {
|
|
116
|
+
this.removeHoverListeners(this.tooltip);
|
|
117
|
+
}
|
|
106
118
|
}
|
|
107
119
|
clearTimeout(this.timeout);
|
|
108
120
|
}
|