@sberbusiness/triplex-next 0.39.0 → 0.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-DRoHuVl6.js → AlertProcessSpoiler-BtnKN4rB.js} +17 -17
- package/chunks/{AlertProcessSpoiler-DRoHuVl6.js.map → AlertProcessSpoiler-BtnKN4rB.js.map} +1 -1
- package/chunks/{CalendarViewItem-AChLlz4N.js → CalendarViewItem-RCL-JeQJ.js} +31 -29
- package/chunks/CalendarViewItem-RCL-JeQJ.js.map +1 -0
- package/chunks/Card.module-CoOqpkwS.js +32 -0
- package/chunks/Card.module-CoOqpkwS.js.map +1 -0
- package/chunks/Carousel.module-DvV8MD7r.js +30 -0
- package/chunks/Carousel.module-DvV8MD7r.js.map +1 -0
- package/chunks/CheckboxTreeExtended.module-Clecba-z.js +24 -0
- package/chunks/CheckboxTreeExtended.module-Clecba-z.js.map +1 -0
- package/chunks/{Chip-DGvjOx0y.js → Chip-Cp08qRYJ.js} +28 -28
- package/chunks/Chip-Cp08qRYJ.js.map +1 -0
- package/chunks/Confirm.module-DM72PYpZ.js +24 -0
- package/chunks/Confirm.module-DM72PYpZ.js.map +1 -0
- package/chunks/{DropdownListItem-COR0eOzM.js → DropdownListItem-BVmaxhUL.js} +21 -23
- package/chunks/DropdownListItem-BVmaxhUL.js.map +1 -0
- package/chunks/DropdownMobile.module-CZWR3s0W.js +40 -0
- package/chunks/DropdownMobile.module-CZWR3s0W.js.map +1 -0
- package/chunks/Footer.module-BVlnkdmW.js +12 -0
- package/chunks/Footer.module-BVlnkdmW.js.map +1 -0
- package/chunks/{HeaderLayoutSidebar.module-o5cCUCGl.js → HeaderLayoutSidebar.module-BucgINex.js} +4 -4
- package/chunks/HeaderLayoutSidebar.module-BucgINex.js.map +1 -0
- package/chunks/HeaderTabs.module-C_a4JHKH.js +12 -0
- package/chunks/HeaderTabs.module-C_a4JHKH.js.map +1 -0
- package/chunks/{HeaderTitle.module-CUVjwVW7.js → HeaderTitle.module-CcCkeiqR.js} +4 -4
- package/chunks/HeaderTitle.module-CcCkeiqR.js.map +1 -0
- package/chunks/ImageGalleryExtendedMain.module-rFvyNDtg.js +28 -0
- package/chunks/ImageGalleryExtendedMain.module-rFvyNDtg.js.map +1 -0
- package/chunks/{ImageGalleryExtendedThumb-B7xjP3UP.js → ImageGalleryExtendedThumb-DHoiTDGV.js} +6 -6
- package/chunks/{ImageGalleryExtendedThumb-B7xjP3UP.js.map → ImageGalleryExtendedThumb-DHoiTDGV.js.map} +1 -1
- package/chunks/IslandAccordion.module-Bpxl1nou.js +44 -0
- package/chunks/IslandAccordion.module-Bpxl1nou.js.map +1 -0
- package/chunks/IslandWidgetFooter.module-Gq4r6MKf.js +12 -0
- package/chunks/IslandWidgetFooter.module-Gq4r6MKf.js.map +1 -0
- package/chunks/IslandWidgetHeader.module-60ngN9Fp.js +20 -0
- package/chunks/IslandWidgetHeader.module-60ngN9Fp.js.map +1 -0
- package/chunks/{LightBoxContent-blTzF5vv.js → LightBoxContent-faIO64ku.js} +15 -15
- package/chunks/{LightBoxContent-blTzF5vv.js.map → LightBoxContent-faIO64ku.js.map} +1 -1
- package/chunks/LightBoxControls.module-zALKUa-L.js +26 -0
- package/chunks/LightBoxControls.module-zALKUa-L.js.map +1 -0
- package/chunks/{LightBoxSideOverlayClose.module-BVuB53vM.js → LightBoxSideOverlayClose.module-BJOafmhE.js} +4 -4
- package/chunks/LightBoxSideOverlayClose.module-BJOafmhE.js.map +1 -0
- package/chunks/{ListItemControlsButton-DulKpjwV.js → ListItemControlsButton-Cgn5z-4-.js} +10 -10
- package/chunks/{ListItemControlsButton-DulKpjwV.js.map → ListItemControlsButton-Cgn5z-4-.js.map} +1 -1
- package/chunks/ListItemTail.module-SH-k_8bE.js +18 -0
- package/chunks/ListItemTail.module-SH-k_8bE.js.map +1 -0
- package/chunks/ListMasterFooter.module-B7KHgt78.js +14 -0
- package/chunks/ListMasterFooter.module-B7KHgt78.js.map +1 -0
- package/chunks/ModalWindow.module-g4fzzLBJ.js +28 -0
- package/chunks/ModalWindow.module-g4fzzLBJ.js.map +1 -0
- package/chunks/Notification.module-GuNThi0F.js +34 -0
- package/chunks/Notification.module-GuNThi0F.js.map +1 -0
- package/chunks/Overlay.module-Bz905CUE.js +30 -0
- package/chunks/Overlay.module-Bz905CUE.js.map +1 -0
- package/chunks/Page.module-Cew9zu6t.js +15 -0
- package/chunks/Page.module-Cew9zu6t.js.map +1 -0
- package/chunks/SMSField.module-DF_16zDO.js +26 -0
- package/chunks/SMSField.module-DF_16zDO.js.map +1 -0
- package/chunks/SliderExtendedMarks.module-DuovwuEN.js +24 -0
- package/chunks/SliderExtendedMarks.module-DuovwuEN.js.map +1 -0
- package/chunks/{SliderExtendedRail-kRXLpNwt.js → SliderExtendedRail-52OucNYf.js} +6 -6
- package/chunks/{SliderExtendedRail-kRXLpNwt.js.map → SliderExtendedRail-52OucNYf.js.map} +1 -1
- package/chunks/StatusTracker.module-BeFh9DCu.js +44 -0
- package/chunks/StatusTracker.module-BeFh9DCu.js.map +1 -0
- package/chunks/{StepperStepArrowBorder-CsES9yvO.js → StepperStepArrowBorder-0d-ly-A8.js} +16 -16
- package/chunks/{StepperStepArrowBorder-CsES9yvO.js.map → StepperStepArrowBorder-0d-ly-A8.js.map} +1 -1
- package/chunks/{SuggestFieldMobileDropdownHint-YOB5F8TH.js → SuggestFieldMobileDropdownHint-CPo1oKCp.js} +3 -3
- package/chunks/{SuggestFieldMobileDropdownHint-YOB5F8TH.js.map → SuggestFieldMobileDropdownHint-CPo1oKCp.js.map} +1 -1
- package/chunks/TableFooter.module-CceBkCov.js +22 -0
- package/chunks/TableFooter.module-CceBkCov.js.map +1 -0
- package/chunks/TabsExtended.module-BV1A2Ngf.js +26 -0
- package/chunks/TabsExtended.module-BV1A2Ngf.js.map +1 -0
- package/chunks/TabsLine.module-CpjGY1fI.js +36 -0
- package/chunks/TabsLine.module-CpjGY1fI.js.map +1 -0
- package/chunks/TooltipDesktop.module-D22gy-42.js +32 -0
- package/chunks/TooltipDesktop.module-D22gy-42.js.map +1 -0
- package/chunks/TreeView.module-uRhEW69Z.js +12 -0
- package/chunks/TreeView.module-uRhEW69Z.js.map +1 -0
- package/chunks/{UploadZoneInput-Dc9Z6NrZ.js → UploadZoneInput-CkHsnEn0.js} +6 -6
- package/chunks/{UploadZoneInput-Dc9Z6NrZ.js.map → UploadZoneInput-CkHsnEn0.js.map} +1 -1
- package/chunks/{constants-b3mFJcdx.js → constants-CroH6kNa.js} +27 -27
- package/chunks/{constants-b3mFJcdx.js.map → constants-CroH6kNa.js.map} +1 -1
- package/chunks/{utils-BXgC_I8P.js → utils-B4HVj8oI.js} +8 -8
- package/chunks/utils-B4HVj8oI.js.map +1 -0
- package/chunks/{utils-DdrwqT9t.js → utils-CVWtdPuN.js} +6 -6
- package/chunks/{utils-DdrwqT9t.js.map → utils-CVWtdPuN.js.map} +1 -1
- package/chunks/{utils-Bv8Gz_QY.js → utils-DI2WUTKf.js} +27 -27
- package/chunks/{utils-Bv8Gz_QY.js.map → utils-DI2WUTKf.js.map} +1 -1
- package/chunks/{utils-B1pi9Ckc.js → utils-f5ZO_GR2.js} +11 -11
- package/chunks/{utils-B1pi9Ckc.js.map → utils-f5ZO_GR2.js.map} +1 -1
- package/chunks/vendor-BtZO8a0z.js +17814 -0
- package/chunks/vendor-BtZO8a0z.js.map +1 -0
- package/components/AbstractTree/AbstractTreeNode.js +1 -1
- package/components/AccordionBase/protected/AccordionBase.js +1 -1
- package/components/Alert/AlertContext/AlertContext.js +8 -8
- package/components/Alert/AlertProcess/AlertProcess.js +3 -3
- package/components/Alert/AlertProcess/components/AlertProcessSpoiler.js +2 -2
- package/components/Amount/Amount.js +3 -3
- package/components/Avatar/Avatar.js +14 -14
- package/components/Badge/Badge.js +5 -5
- package/components/Badge/BadgeDot.js +5 -5
- package/components/Badge/components/BadgeContent.js +7 -7
- package/components/Badge/components/BadgePostfix.js +2 -2
- package/components/Badge/components/BadgePrefix.js +2 -2
- package/components/Body/Body.js +4 -4
- package/components/Button/Button.js +21 -21
- package/components/Button/ButtonBase.js +1 -1
- package/components/Button/ButtonDropdown.js +9 -9
- package/components/Button/ButtonDropdownExtended.js +18 -22
- package/components/Button/ButtonDropdownExtended.js.map +1 -1
- package/components/Button/ButtonIcon.js +4 -4
- package/components/Button/ButtonIcon.js.map +1 -1
- package/components/Calendar/Calendar.js +17 -17
- 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 +32 -56
- package/components/Calendar/components/CalendarViewDays.js.map +1 -1
- package/components/Calendar/components/CalendarViewItem.js +2 -2
- 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 +6 -6
- package/components/Card/CardStatic.js +3 -3
- package/components/Card/components/CardContent/CardContent.js +2 -2
- package/components/Card/components/CardContent/components/CardContentBody.js +2 -2
- package/components/Card/components/CardContent/components/CardContentFooter.js +2 -2
- package/components/Card/components/CardContent/components/CardContentHeader.js +2 -2
- package/components/Card/components/CardMedia.js +2 -2
- 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 +2 -2
- package/components/Carousel/CarouselButton.js +2 -2
- package/components/Carousel/CarouselIndicators.js +2 -2
- package/components/Carousel/CarouselItem.js +2 -2
- package/components/Carousel/CarouselTrack.js +2 -2
- package/components/Carousel/CarouselViewport.js +2 -2
- package/components/CarouselExtended/CarouselExtended.js +2 -2
- package/components/Checkbox/Checkbox.js +11 -11
- package/components/Checkbox/CheckboxXGroup.js +9 -9
- package/components/Checkbox/CheckboxYGroup.js +2 -2
- package/components/CheckboxTreeExtended/CheckboxTreeExtended.js +2 -2
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedArrow.js +1 -1
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedCheckbox.js +2 -2
- package/components/CheckboxTreeExtended/components/CheckboxTreeExtendedNode.js +2 -2
- package/components/Chip/Chip.js +2 -2
- package/components/Chip/ChipClearButton.js +2 -2
- package/components/Chip/ChipDatePicker/ChipDatePicker.js +1 -1
- package/components/Chip/ChipDatePicker/ChipDatePickerTarget.js +1 -1
- package/components/Chip/ChipDropdownArrow.js +3 -3
- package/components/Chip/ChipIcon.js +1 -1
- package/components/Chip/ChipMultiselect.js +2 -2
- package/components/Chip/ChipOptions.js +2 -2
- package/components/Chip/ChipSelect/ChipSelect.js +2 -2
- package/components/Chip/ChipSelect/ChipSelectTarget.js +1 -1
- package/components/Chip/ChipSort.js +2 -2
- package/components/Chip/ChipSuggest/ChipSuggest.js +2 -2
- package/components/Chip/ChipSuggest/ChipSuggestDropdown.js +2 -2
- 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 +8 -8
- package/components/Col/Col.js +133 -133
- package/components/CollapsibleTree/CollapsibleTree.js +2 -2
- package/components/CollapsibleTree/components/CollapsibleTreeLeafContent.js +2 -2
- package/components/CollapsibleTree/components/CollapsibleTreeLeafNode.js +2 -2
- package/components/CollapsibleTree/components/CollapsibleTreeNodeHeader.js +5 -5
- package/components/CollapsibleTreeExtended/components/CollapsibleTreeExtendedNode.js +2 -2
- package/components/Confirm/Confirm.js +2 -2
- package/components/Confirm/components/ConfirmCloseButton.js +2 -2
- package/components/Confirm/components/ConfirmContent.js +2 -2
- package/components/Confirm/components/ConfirmContentTitle.js +2 -2
- package/components/Confirm/components/ConfirmControls.js +2 -2
- 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 +2 -2
- package/components/DateRange/DateRange.js +4 -4
- package/components/DesignTokens/DesignTokenUtils.js +26 -21
- 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 +18 -18
- package/components/DocumentNumberEdit/DocumentNumberEdit.js +4 -4
- package/components/Dropdown/Dropdown.js +14 -7
- package/components/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/desktop/DropdownDesktop.js +21 -25
- package/components/Dropdown/desktop/DropdownDesktop.js.map +1 -1
- package/components/Dropdown/desktop/DropdownList.js +38 -73
- package/components/Dropdown/desktop/DropdownList.js.map +1 -1
- package/components/Dropdown/desktop/DropdownListItem.js +2 -2
- package/components/Dropdown/desktop/index.js +1 -1
- package/components/Dropdown/desktop/utils.js +34 -0
- package/components/Dropdown/desktop/utils.js.map +1 -0
- package/components/Dropdown/index.js +1 -1
- package/components/Dropdown/mobile/DropdownMobile.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileBody.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileClose.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileFooter.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileHeader.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileInner.js +6 -4
- package/components/Dropdown/mobile/DropdownMobileInner.js.map +1 -1
- package/components/Dropdown/mobile/DropdownMobileInput.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileList.js +3 -3
- package/components/Dropdown/mobile/DropdownMobileList.js.map +1 -1
- package/components/Dropdown/mobile/DropdownMobileListItem.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileListItem.js.map +1 -1
- package/components/Dropdown/mobile/DropdownMobileLoader.js +2 -2
- package/components/Dropdown/mobile/DropdownMobileMaskedInput.js +2 -2
- package/components/Ellipsis/Ellipsis.js +4 -4
- package/components/EmptyView/EmptyView.js +5 -5
- package/components/ExpandAnimation/ExpandAnimation.js +2 -2
- package/components/FocusTrapExtended/FocusTrapExtended.js +21 -9
- package/components/FocusTrapExtended/FocusTrapExtended.js.map +1 -1
- package/components/Footer/Footer.js +1 -1
- package/components/Footer/components/FooterDescription.js +2 -2
- package/components/Footer/components/FooterDescriptionContent.js +2 -2
- package/components/Footer/components/FooterDescriptionControls.js +2 -2
- package/components/FormField/FormField.js +21 -21
- 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 +2 -2
- 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 +14 -6
- package/components/FormField/components/FormFieldDescription.js.map +1 -1
- package/components/FormField/components/FormFieldInput.js +8 -9
- package/components/FormField/components/FormFieldInput.js.map +1 -1
- package/components/FormField/components/FormFieldLabel.js +11 -12
- package/components/FormField/components/FormFieldLabel.js.map +1 -1
- package/components/FormField/components/FormFieldMaskedInput.js +7 -7
- package/components/FormField/components/FormFieldPostfix.js +6 -30
- package/components/FormField/components/FormFieldPostfix.js.map +1 -1
- package/components/FormField/components/FormFieldPrefix.js +6 -30
- package/components/FormField/components/FormFieldPrefix.js.map +1 -1
- package/components/FormField/components/FormFieldTarget.js +9 -9
- package/components/FormField/components/FormFieldTextarea.js +5 -5
- 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 +9 -9
- package/components/Header/Header.js +1 -1
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebar.js +2 -2
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarContent.js +2 -2
- package/components/Header/components/HeaderLayoutSidebar/HeaderLayoutSidebarSidebar.js +2 -2
- package/components/Header/components/HeaderSubheader/HeaderSubheader.js +3 -3
- package/components/Header/components/HeaderTabs/HeaderTabs.js +2 -2
- package/components/Header/components/HeaderTabs/HeaderTabsContent.js +2 -2
- package/components/Header/components/HeaderTabs/HeaderTabsControls.js +2 -2
- package/components/Header/components/HeaderTitle/HeaderTitle.js +2 -2
- package/components/Header/components/HeaderTitle/HeaderTitleContent.js +2 -2
- package/components/Header/components/HeaderTitle/HeaderTitleControls.js +2 -2
- package/components/HelpBox/HelpBox.js +2 -2
- package/components/IconWrapper/IconWrapper.js +8 -8
- package/components/IconWrapper/IconWrapper.js.map +1 -1
- package/components/ImageGallery/ImageGallery.js +1 -1
- package/components/ImageGalleryExtended/ImageGalleryExtended.js +3 -3
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedArrow.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedDots.js +4 -4
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedMain.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedSlide.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedSwipeTrack.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumb.js +2 -2
- package/components/ImageGalleryExtended/components/ImageGalleryExtendedThumbnails.js +2 -2
- package/components/ImageGalleryExtended/components/index.js +1 -1
- package/components/ImageGalleryExtended/index.js +1 -1
- package/components/Island/Island.js +4 -4
- package/components/Island/Island.js.map +1 -1
- package/components/Island/components/IslandBody.js +3 -2
- package/components/Island/components/IslandBody.js.map +1 -1
- package/components/Island/components/IslandFooter.js +8 -5
- package/components/Island/components/IslandFooter.js.map +1 -1
- package/components/Island/components/IslandHeader.js +8 -5
- 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 +3 -3
- package/components/IslandAccordion/components/IslandAccordionContent.js +1 -1
- package/components/IslandAccordion/components/IslandAccordionFooter.js +2 -2
- package/components/IslandAccordion/components/IslandAccordionItem.js +3 -3
- package/components/IslandWidget/IslandWidget.js +5 -5
- package/components/IslandWidget/components/IslandWidgetBody.js +2 -2
- package/components/IslandWidget/components/IslandWidgetExtraFooter.js +2 -2
- package/components/IslandWidget/components/IslandWidgetFooter.js +2 -2
- package/components/IslandWidget/components/IslandWidgetFooterContent.js +1 -1
- package/components/IslandWidget/components/IslandWidgetFooterControls.js +1 -1
- package/components/IslandWidget/components/IslandWidgetHeader.js +2 -2
- package/components/IslandWidget/components/IslandWidgetHeaderContent.js +2 -2
- package/components/IslandWidget/components/IslandWidgetHeaderControls.js +2 -2
- package/components/IslandWidget/components/IslandWidgetHeaderDescription.js +2 -2
- package/components/IslandWidget/components/IslandWidgetHeaderTitle.js +2 -2
- package/components/IslandWidget/components/IslandWidgetWrapper.js +2 -2
- 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 +6 -6
- package/components/LightBox/LightBoxContent.js +2 -2
- package/components/LightBox/LightBoxControls/LightBoxArrow.js +2 -2
- package/components/LightBox/LightBoxControls/LightBoxClose.js +2 -2
- package/components/LightBox/LightBoxControls/LightBoxControls.js +2 -2
- package/components/LightBox/LightBoxControls/LightBoxNext.js +2 -2
- package/components/LightBox/LightBoxControls/LightBoxPrev.js +2 -2
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js +13 -14
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlay.js.map +1 -1
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseDesktop.js +2 -2
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayCloseMobile.js +2 -2
- package/components/LightBox/LightBoxSideOverlay/LightBoxSideOverlayLoader.js +1 -1
- package/components/LightBox/LightBoxSidebars/LightBoxLeftSidebar.js +4 -4
- package/components/LightBox/LightBoxSidebars/LightBoxRightSidebar.js +4 -4
- package/components/LightBox/LightBoxViewManager/LightBoxViewManager.js +1 -1
- package/components/Link/Link.js +6 -6
- package/components/List/List.js +4 -4
- package/components/List/ListSortable.js +1 -1
- package/components/List/components/ListActionItem.js +2 -2
- package/components/List/components/ListEmptyState.js +2 -2
- package/components/List/components/ListItem.js +1 -1
- package/components/List/components/ListItemContent.js +5 -5
- package/components/List/components/ListItemControls.js +2 -2
- package/components/List/components/ListItemControlsButton.js +2 -2
- package/components/List/components/ListItemControlsButtonDropdown.js +2 -2
- package/components/List/components/ListItemLoading.js +2 -2
- package/components/List/components/ListItemSelectable.js +7 -7
- package/components/List/components/ListItemTailLeft.js +2 -2
- package/components/List/components/ListItemTailRight.js +2 -2
- package/components/List/components/ListSortableItem.js +3 -3
- package/components/List/components/ListSortableItemControls.js +2 -2
- package/components/List/components/ListSortableItemTarget.js +5 -5
- package/components/List/components/ListTableItem.js +4 -4
- 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 +2 -2
- package/components/ListMaster/components/ListMasterFooter.js +2 -2
- package/components/ListMaster/components/ListMasterFooterControls.js +2 -2
- package/components/ListMaster/components/ListMasterFooterDescription.js +2 -2
- package/components/ListMaster/components/ListMasterHeader.js +3 -3
- package/components/ListMaster/components/SelectionControls.js +3 -3
- package/components/Loader/LoaderMiddle/LoaderMiddle.js +11 -11
- package/components/Loader/LoaderMiddle/LoaderMiddle.js.map +1 -1
- package/components/Loader/LoaderSmall/LoaderSmall.js +11 -11
- package/components/LoaderScreen/LoaderScreen.js +13 -12
- package/components/LoaderScreen/LoaderScreen.js.map +1 -1
- package/components/Marker/Marker.js +2 -2
- package/components/Marker/utils.js +1 -1
- package/components/MarkerStatus/MarkerStatus.js +8 -8
- package/components/ModalWindow/ModalWindow.js +2 -2
- package/components/ModalWindow/components/ModalWindowBody.js +2 -2
- package/components/ModalWindow/components/ModalWindowClose.js +1 -1
- package/components/ModalWindow/components/ModalWindowContent.js +2 -2
- package/components/ModalWindow/components/ModalWindowHeader.js +2 -2
- package/components/ModalWindow/components/ModalWindowViewManager.js +2 -2
- package/components/MonthYearField/utils.js +2 -1
- package/components/MonthYearField/utils.js.map +1 -1
- package/components/MonthYearRange/MonthYearRange.js +4 -4
- package/components/MultiselectField/components/MultiselectFieldDropdown.js +2 -2
- package/components/MultiselectField/components/MultiselectFieldDropdownContent.js +6 -6
- package/components/MultiselectField/components/MultiselectFieldDropdownFooter.js +2 -2
- package/components/MultiselectField/components/MultiselectFieldDropdownHeader.js +2 -2
- package/components/Notification/Notification.js +3 -3
- package/components/Notification/NotificationGrouped.js +1 -1
- package/components/Notification/components/NotificationBody.js +1 -1
- package/components/Notification/components/NotificationBodyList.js +2 -2
- package/components/Notification/components/NotificationClose.js +1 -1
- package/components/Notification/components/NotificationFooter.js +1 -1
- package/components/Notification/components/NotificationGroupedFooter.js +2 -2
- 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 +3 -3
- package/components/OrderedList/OrderedListItem.js +3 -3
- package/components/Overlay/Overlay.js +2 -2
- package/components/Overlay/OverlayMask.js +2 -2
- package/components/Overlay/OverlayPanel.js +2 -2
- package/components/Page/Page.js +2 -2
- package/components/Page/components/BodyPage.js +4 -4
- package/components/Page/components/FooterPage.js +2 -2
- package/components/Page/components/HeaderPage.js +2 -2
- package/components/Pagination/components/PaginationExtended.js +3 -3
- 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 +2 -2
- package/components/Pagination/components/PaginationPageButton.js +3 -3
- package/components/Pagination/components/PaginationPageEllipsis.js +2 -2
- package/components/Pagination/components/PaginationSelect.js +3 -3
- package/components/Pagination/{utils/paginationUtils.js → utils.js} +2 -2
- package/components/Pagination/utils.js.map +1 -0
- package/components/Portal/Portal.js.map +1 -1
- package/components/Radio/Radio.js +10 -10
- package/components/Radio/RadioXGroup.js +9 -9
- package/components/Radio/RadioYGroup.js +2 -2
- package/components/Row/Row.js +5 -5
- package/components/SMSField/SMSField.js +3 -3
- package/components/SMSField/components/RefreshIcon.js +2 -2
- package/components/SMSField/components/SMSFieldInput.js +2 -2
- package/components/SMSField/components/SMSFieldRefresh.js +2 -2
- package/components/SMSField/components/SMSFieldSubmit.js +2 -2
- package/components/SMSField/components/SMSFieldTooltip.js +1 -1
- package/components/SegmentedControl/SegmentedControl.js +10 -10
- package/components/SegmentedControl/SegmentedControlSegment.js +4 -4
- package/components/SelectExtendedField/SelectExtendedField.js +3 -2
- 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 +8 -8
- package/components/SelectField/SelectField.js +2 -2
- package/components/Skeleton/Skeleton.js +5 -5
- package/components/SliderExtended/SliderExtended.js +3 -3
- package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js +7 -6
- package/components/SliderExtended/components/SliderExtendedDot/SliderExtendedDot.js.map +1 -1
- package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMark.js +2 -2
- package/components/SliderExtended/components/SliderExtendedMarks/SliderExtendedMarks.js +2 -2
- package/components/SliderExtended/components/SliderExtendedRail.js +2 -2
- package/components/SliderExtended/components/SliderExtendedTooltip/SliderExtendedTooltip.js +5 -5
- package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js +8 -7
- package/components/SliderExtended/components/SliderExtendedTrack/SliderExtendedTrack.js.map +1 -1
- package/components/SmallInput/SmallInput.js +2 -2
- package/components/Spoiler/Spoiler.js +11 -11
- package/components/StatusTracker/StatusTracker.js +8 -7
- package/components/StatusTracker/StatusTracker.js.map +1 -1
- package/components/StatusTracker/components/StatusTrackerAlert.js +2 -2
- package/components/StatusTracker/components/StatusTrackerBody.js +2 -2
- package/components/StatusTracker/components/StatusTrackerButton.js +2 -2
- package/components/StatusTracker/components/StatusTrackerDescription.js +2 -2
- package/components/StatusTracker/components/StatusTrackerFooter.js +2 -2
- package/components/StatusTracker/components/StatusTrackerHeader.js +2 -2
- package/components/StatusTracker/components/StatusTrackerMedia.js +2 -2
- package/components/StatusTracker/components/StatusTrackerStatus.js +2 -2
- package/components/StatusTracker/components/StatusTrackerStatusGroup.js +2 -2
- package/components/StatusTracker/components/StatusTrackerSum.js +2 -2
- package/components/StatusTracker/components/StatusTrackerTitle.js +2 -2
- package/components/Step/Step.js +11 -11
- package/components/Stepper/Stepper.js +9 -9
- package/components/Stepper/StepperExtended.js +2 -2
- package/components/Stepper/StepperStep.js +3 -3
- package/components/Stepper/StepperStepArrowBorder.js +1 -1
- package/components/Suggest/SuggestMobileDropdownContent.js +3 -3
- package/components/Suggest/useSuggest.js +1 -1
- package/components/SuggestField/SuggestField.js +1 -1
- package/components/SuggestField/desktop/SuggestFieldDesktop.js +2 -2
- 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 +9 -9
- package/components/Table/ChipPanel.js +2 -2
- package/components/Table/ChipPanelLinks.js +2 -2
- package/components/Table/FilterPanel.js +3 -3
- package/components/Table/MasterTable.js +3 -3
- package/components/Table/NoColumns.js +3 -3
- package/components/Table/PaginationPanel.js +3 -3
- package/components/Table/TableBasic/TableBasic.js +2 -2
- package/components/Table/TableBasic/components/TableBasicBody.js +2 -2
- package/components/Table/TableBasic/components/TableBasicHeader.js +2 -2
- package/components/Table/TableBasic/components/TableBasicRow.js +2 -2
- package/components/Table/TableBasicSettings/TableBasicSettings.js +3 -3
- package/components/Table/TableBasicSettings/components/ColumnSettingsSortableListItemTarget.js +3 -3
- package/components/Table/TableBasicSettings/components/ColumnSettingsStaticListItem.js +2 -2
- package/components/Table/TableBasicSettings/components/TableBasicSettingsBody.js +2 -2
- package/components/Table/TableBasicSettings/components/TableBasicSettingsFooter.js +2 -2
- package/components/Table/TableBasicSettings/components/TableBasicSettingsHeader.js +2 -2
- package/components/Table/TableFooter/TableFooter.js +2 -2
- 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 +6 -6
- package/components/TabsExtended/TabsExtended.js +3 -3
- package/components/TabsExtended/components/TabsExtendedContent.js +2 -2
- package/components/TabsExtended/components/TabsExtendedDropdownWrapper.js +2 -2
- package/components/TabsExtended/components/TabsExtendedTab.js +2 -2
- package/components/TabsExtended/components/TabsExtendedTabButton.js +2 -2
- package/components/TabsExtended/components/TabsExtendedTabsWrapper.js +2 -2
- package/components/TabsExtended/utils.js +1 -1
- package/components/TabsLine/TabsLine.js +2 -2
- package/components/TabsLine/components/TabsLineDesktop.js +2 -2
- package/components/TabsLine/components/TabsLineDropdown.js +3 -3
- package/components/TabsLine/components/TabsLineItem.js +2 -2
- package/components/TabsLine/components/TabsLineMobile.js +2 -2
- package/components/Tag/Tag.js +6 -6
- package/components/TagColor/TagColor.js +11 -11
- package/components/TagGroup/TagGroup.js +5 -5
- package/components/ThemeProvider/ETriplexNextTheme.js.map +1 -1
- package/components/ThemeProvider/ThemeProvider.js +6 -4
- package/components/ThemeProvider/ThemeProvider.js.map +1 -1
- package/components/ThemeProvider/ThemeProviderContext.js.map +1 -1
- package/components/ThemeProvider/components/ThemeProviderView.js +7 -10
- 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 +2 -2
- package/components/Tooltip/components/common/TooltipLink.js +8 -19
- 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 +26 -25
- package/components/Tooltip/components/desktop/components/TooltipDesktopBase.js.map +1 -1
- package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js +9 -18
- package/components/Tooltip/components/desktop/components/TooltipDesktopTip.js.map +1 -1
- package/components/Tooltip/components/mobile/TooltipMobile.js +11 -7
- 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 +7 -7
- package/components/TreeView/TreeView.js +2 -2
- package/components/TreeView/components/TreeViewGroup.js +1 -1
- package/components/TreeView/components/TreeViewNode.js +2 -2
- package/components/Typography/Caption.js +8 -8
- package/components/Typography/CodeText.js +3 -3
- package/components/Typography/Text.js +10 -10
- package/components/Typography/Title.js +11 -11
- package/components/Typography/Title.js.map +1 -1
- package/components/Typography/constants.js +1 -1
- package/components/UnorderedList/UnorderedList.js +3 -3
- package/components/UnorderedList/UnorderedListItem.js +3 -3
- package/components/UploadZone/UploadZone.js +3 -3
- package/components/UploadZone/components/UploadZoneInput.js +2 -2
- package/components/UploadZone/index.js +1 -1
- package/components/WindowResizeListener/WindowResizeListener.js +1 -1
- package/components/index.js +7 -8
- package/consts/DateConst.js.map +1 -1
- package/index.d.ts +254 -110
- package/index.js +7 -8
- package/package.json +1 -1
- package/styles/triplex-next.css +2949 -2939
- package/utils/amountUtils.js +1 -1
- package/chunks/CalendarViewItem-AChLlz4N.js.map +0 -1
- package/chunks/Card.module-CZ1_wRdI.js +0 -30
- package/chunks/Card.module-CZ1_wRdI.js.map +0 -1
- package/chunks/Carousel.module-COe08s01.js +0 -30
- package/chunks/Carousel.module-COe08s01.js.map +0 -1
- package/chunks/CheckboxTreeExtended.module-CsB5Xz5K.js +0 -24
- package/chunks/CheckboxTreeExtended.module-CsB5Xz5K.js.map +0 -1
- package/chunks/Chip-DGvjOx0y.js.map +0 -1
- package/chunks/Confirm.module-CEJR1txO.js +0 -24
- package/chunks/Confirm.module-CEJR1txO.js.map +0 -1
- package/chunks/DropdownListItem-COR0eOzM.js.map +0 -1
- package/chunks/DropdownMobile.module-DUiUSr13.js +0 -40
- package/chunks/DropdownMobile.module-DUiUSr13.js.map +0 -1
- package/chunks/Footer.module-DUTwBl0x.js +0 -12
- package/chunks/Footer.module-DUTwBl0x.js.map +0 -1
- package/chunks/HeaderLayoutSidebar.module-o5cCUCGl.js.map +0 -1
- package/chunks/HeaderTabs.module-Ch5Mbe7q.js +0 -12
- package/chunks/HeaderTabs.module-Ch5Mbe7q.js.map +0 -1
- package/chunks/HeaderTitle.module-CUVjwVW7.js.map +0 -1
- package/chunks/ImageGalleryExtendedMain.module-BMoLBevi.js +0 -28
- package/chunks/ImageGalleryExtendedMain.module-BMoLBevi.js.map +0 -1
- package/chunks/IslandAccordion.module-YxGUkwAy.js +0 -44
- package/chunks/IslandAccordion.module-YxGUkwAy.js.map +0 -1
- package/chunks/IslandWidgetFooter.module-Bk3x1llO.js +0 -12
- package/chunks/IslandWidgetFooter.module-Bk3x1llO.js.map +0 -1
- package/chunks/IslandWidgetHeader.module-BcrHca9Y.js +0 -20
- package/chunks/IslandWidgetHeader.module-BcrHca9Y.js.map +0 -1
- package/chunks/LightBoxControls.module-DisqspyG.js +0 -26
- package/chunks/LightBoxControls.module-DisqspyG.js.map +0 -1
- package/chunks/LightBoxSideOverlayClose.module-BVuB53vM.js.map +0 -1
- package/chunks/ListItemTail.module-B24d99yc.js +0 -18
- package/chunks/ListItemTail.module-B24d99yc.js.map +0 -1
- package/chunks/ListMasterFooter.module-XwfScyft.js +0 -14
- package/chunks/ListMasterFooter.module-XwfScyft.js.map +0 -1
- package/chunks/ModalWindow.module-CAccCwuD.js +0 -28
- package/chunks/ModalWindow.module-CAccCwuD.js.map +0 -1
- package/chunks/Notification.module-yXlyaoAB.js +0 -34
- package/chunks/Notification.module-yXlyaoAB.js.map +0 -1
- package/chunks/Overlay.module-gnmqM0Mg.js +0 -30
- package/chunks/Overlay.module-gnmqM0Mg.js.map +0 -1
- package/chunks/Page.module-CyuFcFEq.js +0 -15
- package/chunks/Page.module-CyuFcFEq.js.map +0 -1
- package/chunks/SMSField.module-By9uV96A.js +0 -26
- package/chunks/SMSField.module-By9uV96A.js.map +0 -1
- package/chunks/SliderExtendedMarks.module-DwGOsapl.js +0 -24
- package/chunks/SliderExtendedMarks.module-DwGOsapl.js.map +0 -1
- package/chunks/StatusTracker.module-DSfmXNxw.js +0 -42
- package/chunks/StatusTracker.module-DSfmXNxw.js.map +0 -1
- package/chunks/TableFooter.module-DM5tgc_b.js +0 -22
- package/chunks/TableFooter.module-DM5tgc_b.js.map +0 -1
- package/chunks/TabsExtended.module-91rJFYMk.js +0 -26
- package/chunks/TabsExtended.module-91rJFYMk.js.map +0 -1
- package/chunks/TabsLine.module-DAe_P2wh.js +0 -36
- package/chunks/TabsLine.module-DAe_P2wh.js.map +0 -1
- package/chunks/TooltipDesktop.module-BW_tN5pN.js +0 -32
- package/chunks/TooltipDesktop.module-BW_tN5pN.js.map +0 -1
- package/chunks/TreeView.module-BheprFto.js +0 -12
- package/chunks/TreeView.module-BheprFto.js.map +0 -1
- package/chunks/utils-BXgC_I8P.js.map +0 -1
- package/chunks/vendor-DKrjZZwJ.js +0 -36109
- package/chunks/vendor-DKrjZZwJ.js.map +0 -1
- package/components/Carousel/__tests__/utils.js +0 -92
- package/components/Carousel/__tests__/utils.js.map +0 -1
- package/components/Pagination/utils/paginationUtils.js.map +0 -1
|
@@ -5,11 +5,11 @@ import { Portal } from "../../../Portal/Portal.js";
|
|
|
5
5
|
import { DropdownMobile } from "../../../Dropdown/mobile/DropdownMobile.js";
|
|
6
6
|
import { DropdownMobileBody } from "../../../Dropdown/mobile/DropdownMobileBody.js";
|
|
7
7
|
import { TooltipMobileCloseButton } from "./components/TooltipMobileCloseButton.js";
|
|
8
|
-
import { c as clsx } from "../../../../chunks/vendor-
|
|
9
|
-
const tooltipMobile = "
|
|
10
|
-
const tooltipMobileContent = "
|
|
11
|
-
const headerless = "
|
|
12
|
-
const closeButton = "
|
|
8
|
+
import { c as clsx } from "../../../../chunks/vendor-BtZO8a0z.js";
|
|
9
|
+
const tooltipMobile = "tooltipMobile__644b4b48";
|
|
10
|
+
const tooltipMobileContent = "tooltipMobileContent__abce4d18";
|
|
11
|
+
const headerless = "headerless__5c050718";
|
|
12
|
+
const closeButton = "closeButton__70b48034";
|
|
13
13
|
const styles = {
|
|
14
14
|
tooltipMobile,
|
|
15
15
|
tooltipMobileContent,
|
|
@@ -17,11 +17,15 @@ const styles = {
|
|
|
17
17
|
closeButton
|
|
18
18
|
};
|
|
19
19
|
const TooltipMobile = ({
|
|
20
|
+
// children, renderContainer, targetRef, disableAdaptiveMode, size и alignTip не нужны мобильной
|
|
21
|
+
// версии и не должны попадать в DOM — исключаются из rest, который спредится на DropdownMobile.
|
|
20
22
|
children,
|
|
21
|
-
className,
|
|
22
23
|
renderContainer,
|
|
23
24
|
targetRef,
|
|
24
25
|
disableAdaptiveMode,
|
|
26
|
+
size,
|
|
27
|
+
alignTip,
|
|
28
|
+
className,
|
|
25
29
|
isOpen,
|
|
26
30
|
onShow,
|
|
27
31
|
...rest
|
|
@@ -30,7 +34,7 @@ const TooltipMobile = ({
|
|
|
30
34
|
const tooltipRef = useRef(null);
|
|
31
35
|
const classNames = clsx(styles.tooltipMobile, { [styles.headerless]: elements.mobileHeader === null }, className);
|
|
32
36
|
useEffect(() => {
|
|
33
|
-
if (isOpen) {
|
|
37
|
+
if (isOpen && tooltipRef.current) {
|
|
34
38
|
onShow == null ? void 0 : onShow(tooltipRef.current);
|
|
35
39
|
}
|
|
36
40
|
}, [isOpen]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipMobile.js","sources":["../../../../../src/components/Tooltip/components/mobile/TooltipMobile.tsx"],"sourcesContent":["import React, { useEffect, useContext, useRef } from \"react\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { Portal } from \"@sberbusiness/triplex-next/components/Portal/Portal\";\nimport { DropdownMobile } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobile\";\nimport { DropdownMobileBody } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobileBody\";\nimport { TooltipMobileCloseButton } from \"@sberbusiness/triplex-next/components/Tooltip/components/mobile/components/TooltipMobileCloseButton\";\nimport clsx from \"clsx\";\nimport styles from \"@sberbusiness/triplex-next/components/Tooltip/styles/TooltipMobile.module.less\";\nimport { ITooltipProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Свойства компонента TooltipMobile. */\nexport interface ITooltipMobileProps extends Omit<ITooltipProps, \"preferPlace\" | \"toggle\"> {\n /** Признак открыт ли TooltipMobile. */\n isOpen: boolean;\n /** Дочерние элементы. */\n children?: never;\n}\n\n
|
|
1
|
+
{"version":3,"file":"TooltipMobile.js","sources":["../../../../../src/components/Tooltip/components/mobile/TooltipMobile.tsx"],"sourcesContent":["import React, { useEffect, useContext, useRef } from \"react\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { Portal } from \"@sberbusiness/triplex-next/components/Portal/Portal\";\nimport { DropdownMobile } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobile\";\nimport { DropdownMobileBody } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobileBody\";\nimport { TooltipMobileCloseButton } from \"@sberbusiness/triplex-next/components/Tooltip/components/mobile/components/TooltipMobileCloseButton\";\nimport clsx from \"clsx\";\nimport styles from \"@sberbusiness/triplex-next/components/Tooltip/styles/TooltipMobile.module.less\";\nimport { ITooltipProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/** Свойства компонента TooltipMobile. */\nexport interface ITooltipMobileProps extends Omit<ITooltipProps, \"preferPlace\" | \"toggle\"> {\n /** Признак открыт ли TooltipMobile. */\n isOpen: boolean;\n /** Дочерние элементы. */\n children?: never;\n}\n\n/**\n * Мобильная версия Tooltip.\n * Рендерится в document.body поверх страницы как нижний оверлей (DropdownMobile).\n */\nexport const TooltipMobile: React.FC<ITooltipMobileProps> = ({\n // children, renderContainer, targetRef, disableAdaptiveMode, size и alignTip не нужны мобильной\n // версии и не должны попадать в DOM — исключаются из rest, который спредится на DropdownMobile.\n children,\n renderContainer,\n targetRef,\n disableAdaptiveMode,\n size,\n alignTip,\n className,\n isOpen,\n onShow,\n ...rest\n}) => {\n const { elements, setTooltipOpen } = useContext(TooltipContext);\n const tooltipRef = useRef<HTMLDivElement | null>(null);\n const classNames = clsx(styles.tooltipMobile, { [styles.headerless]: elements.mobileHeader === null }, className);\n\n useEffect(() => {\n if (isOpen && tooltipRef.current) {\n onShow?.(tooltipRef.current);\n }\n // onShow намеренно вне зависимостей: колбэк вызывается только на открытие подсказки,\n // иначе нестабильная inline-функция вызывала бы его на каждый рендер.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n /** Рендер кнопки закрытия. */\n const renderCloseButton = () => {\n return (\n <div className={styles.closeButton}>\n <TooltipMobileCloseButton {...elements.closeButton?.props} />\n </div>\n );\n };\n\n return (\n <>\n {elements.target}\n <Portal container={document.body}>\n <DropdownMobile\n className={classNames}\n tabIndex={-1}\n opened={isOpen}\n setOpened={setTooltipOpen}\n {...rest}\n ref={tooltipRef}\n >\n {elements.mobileHeader}\n <DropdownMobileBody className={styles.tooltipMobileContent}>\n {elements.body}\n {elements.link}\n {elements.mobileHeader === null && renderCloseButton()}\n </DropdownMobileBody>\n </DropdownMobile>\n </Portal>\n </>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAsBO,MAAM,gBAA+C,CAAC;AAAA;AAAA;AAAA,EAGzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAM;AACF,QAAM,EAAE,UAAU,mBAAmB,WAAW,cAAc;AAC9D,QAAM,aAAa,OAA8B,IAAI;AACrD,QAAM,aAAa,KAAK,OAAO,eAAe,EAAE,CAAC,OAAO,UAAU,GAAG,SAAS,iBAAiB,KAAA,GAAQ,SAAS;AAEhH,YAAU,MAAM;AACZ,QAAI,UAAU,WAAW,SAAS;AAC9B,uCAAS,WAAW;AAAA,IACxB;AAAA,EAIJ,GAAG,CAAC,MAAM,CAAC;AAGX,QAAM,oBAAoB,MAAM;;AAC5B,WACI,oBAAC,OAAA,EAAI,WAAW,OAAO,aACnB,UAAA,oBAAC,0BAAA,EAA0B,IAAG,cAAS,gBAAT,mBAAsB,MAAA,CAAO,EAAA,CAC/D;AAAA,EAER;AAEA,SACI,qBAAA,UAAA,EACK,UAAA;AAAA,IAAA,SAAS;AAAA,IACV,oBAAC,QAAA,EAAO,WAAW,SAAS,MACxB,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,WAAW;AAAA,QACX,UAAU;AAAA,QACV,QAAQ;AAAA,QACR,WAAW;AAAA,QACV,GAAG;AAAA,QACJ,KAAK;AAAA,QAEJ,UAAA;AAAA,UAAA,SAAS;AAAA,UACV,qBAAC,oBAAA,EAAmB,WAAW,OAAO,sBACjC,UAAA;AAAA,YAAA,SAAS;AAAA,YACT,SAAS;AAAA,YACT,SAAS,iBAAiB,QAAQ,kBAAA;AAAA,UAAkB,EAAA,CACzD;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EACJ,CACJ;AAAA,EAAA,GACJ;AAER;"}
|
|
@@ -8,8 +8,8 @@ import { EFontType, ETextSize } from "../../../../Typography/enums.js";
|
|
|
8
8
|
const TooltipMobileHeader = ({ children, ...rest }) => {
|
|
9
9
|
var _a;
|
|
10
10
|
const { elements } = useContext(TooltipContext);
|
|
11
|
-
const
|
|
12
|
-
return /* @__PURE__ */ jsx(DropdownMobileHeader, { controlButtons:
|
|
11
|
+
const closeButton = /* @__PURE__ */ jsx(TooltipMobileCloseButton, { ...(_a = elements.closeButton) == null ? void 0 : _a.props });
|
|
12
|
+
return /* @__PURE__ */ jsx(DropdownMobileHeader, { controlButtons: closeButton, ...rest, children: /* @__PURE__ */ jsx(Text, { size: ETextSize.B3, type: EFontType.PRIMARY, tag: "div", children }) });
|
|
13
13
|
};
|
|
14
14
|
export {
|
|
15
15
|
TooltipMobileHeader
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TooltipMobileHeader.js","sources":["../../../../../../src/components/Tooltip/components/mobile/components/TooltipMobileHeader.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { DropdownMobileHeader } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobileHeader\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { TooltipMobileCloseButton } from \"@sberbusiness/triplex-next/components/Tooltip/components/mobile/components/TooltipMobileCloseButton\";\nimport { Text } from \"@sberbusiness/triplex-next/components/Typography/Text\";\nimport { EFontType, ETextSize } from \"@sberbusiness/triplex-next/components/Typography/enums\";\nimport { ITooltipMobileHeaderProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n
|
|
1
|
+
{"version":3,"file":"TooltipMobileHeader.js","sources":["../../../../../../src/components/Tooltip/components/mobile/components/TooltipMobileHeader.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { DropdownMobileHeader } from \"@sberbusiness/triplex-next/components/Dropdown/mobile/DropdownMobileHeader\";\nimport { TooltipContext } from \"@sberbusiness/triplex-next/components/Tooltip/TootlipContext\";\nimport { TooltipMobileCloseButton } from \"@sberbusiness/triplex-next/components/Tooltip/components/mobile/components/TooltipMobileCloseButton\";\nimport { Text } from \"@sberbusiness/triplex-next/components/Typography/Text\";\nimport { EFontType, ETextSize } from \"@sberbusiness/triplex-next/components/Typography/enums\";\nimport { ITooltipMobileHeaderProps } from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/**\n * Заголовок компонента TooltipMobile.\n * Кнопку закрытия подставляет сам, наследуя props переданного в Tooltip TooltipXButton.\n */\nexport const TooltipMobileHeader: React.FC<ITooltipMobileHeaderProps> = ({ children, ...rest }) => {\n const { elements } = useContext(TooltipContext);\n\n /** Кнопка закрытия мобильной версии подсказки. */\n const closeButton = <TooltipMobileCloseButton {...elements.closeButton?.props} />;\n\n return (\n <DropdownMobileHeader controlButtons={closeButton} {...rest}>\n <Text size={ETextSize.B3} type={EFontType.PRIMARY} tag=\"div\">\n {children}\n </Text>\n </DropdownMobileHeader>\n );\n};\n"],"names":[],"mappings":";;;;;;;AAYO,MAAM,sBAA2D,CAAC,EAAE,UAAU,GAAG,WAAW;;AAC/F,QAAM,EAAE,SAAA,IAAa,WAAW,cAAc;AAG9C,QAAM,cAAc,oBAAC,0BAAA,EAA0B,IAAG,cAAS,gBAAT,mBAAsB,OAAO;AAE/E,6BACK,sBAAA,EAAqB,gBAAgB,aAAc,GAAG,MACnD,UAAA,oBAAC,MAAA,EAAK,MAAM,UAAU,IAAI,MAAM,UAAU,SAAS,KAAI,OAClD,UACL,GACJ;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enums.js","sources":["../../../src/components/Tooltip/enums.ts"],"sourcesContent":["/**\n * Параметры размера.\n *\n * H Высота.\n * W Ширина.\n */\nexport enum ETooltipSizeParameter {\n H = \"h\",\n W = \"w\",\n}\n\n/**\n * Начало координат (первые координаты).\n *\n * X икс.\n * Y игрек.\n */\nexport enum ETooltipStartCoordinates {\n X = \"x\",\n Y = \"y\",\n}\n\n/**\n * Конец координат (конечные координаты).\n *\n * X икс.\n * Y игрек.\n */\nexport enum ETooltipEndCoordinates {\n X = \"x2\",\n Y = \"y2\",\n}\n\n/**\n * Enum типов осей.\n *\n * MAIN Главная ось.\n * CROSS Вспомогательная, поперечная, перекрестная.\n */\nexport enum ETooltipAxesType {\n MAIN = \"main\",\n CROSS = \"cross\",\n}\n\n/**\n * Enum типов расположения элементов (flow) для flex.\n *\n * COLUMN Столбец.\n * ROW Ряд.\n */\nexport enum ETooltipFlowTypes {\n COLUMN = \"column\",\n ROW = \"row\",\n}\n\n/**\n * Enum типов настроек позиционирования.\n *\n * SIDE
|
|
1
|
+
{"version":3,"file":"enums.js","sources":["../../../src/components/Tooltip/enums.ts"],"sourcesContent":["/**\n * Параметры размера.\n *\n * H Высота.\n * W Ширина.\n */\nexport enum ETooltipSizeParameter {\n H = \"h\",\n W = \"w\",\n}\n\n/**\n * Начало координат (первые координаты).\n *\n * X икс.\n * Y игрек.\n */\nexport enum ETooltipStartCoordinates {\n X = \"x\",\n Y = \"y\",\n}\n\n/**\n * Конец координат (конечные координаты).\n *\n * X икс.\n * Y игрек.\n */\nexport enum ETooltipEndCoordinates {\n X = \"x2\",\n Y = \"y2\",\n}\n\n/**\n * Enum типов осей.\n *\n * MAIN Главная ось.\n * CROSS Вспомогательная, поперечная, перекрестная.\n */\nexport enum ETooltipAxesType {\n MAIN = \"main\",\n CROSS = \"cross\",\n}\n\n/**\n * Enum типов расположения элементов (flow) для flex.\n *\n * COLUMN Столбец.\n * ROW Ряд.\n */\nexport enum ETooltipFlowTypes {\n COLUMN = \"column\",\n ROW = \"row\",\n}\n\n/**\n * Enum типов настроек позиционирования.\n *\n * SIDE Выравнивание подсказки вдоль основной оси зоны.\n * STANDING Положение подсказки относительно целевого элемента.\n * FLOW Расположение элементов (направление flex).\n */\nexport enum ETooltipTypeName {\n SIDE = \"side\",\n STANDING = \"standing\",\n FLOW = \"flow\",\n}\n\n/**\n * Предпочитаемое место для поповера.\n *\n * ABOVE Сверху.\n * BELOW Снизу.\n * RIGHT Справа.\n * LEFT Слева.\n */\nexport enum ETooltipPreferPlace {\n ABOVE = \"above\",\n BELOW = \"below\",\n RIGHT = \"right\",\n LEFT = \"left\",\n}\n\n/**\n * Выравнивание указателя (стрелочки) подсказки относительно целевого элемента.\n *\n * END В конце.\n * CENTER По центру.\n * START В начале.\n */\nexport enum ETooltipAlign {\n END = \"end\",\n CENTER = \"center\",\n START = \"start\",\n}\n\n/**\n * Направление указателя поповера.\n *\n * UP Сверху.\n * DOWN Снизу.\n * RIGHT Справа.\n * LEFT Слева.\n */\nexport enum ETooltipDirection {\n UP = \"up\",\n DOWN = \"down\",\n LEFT = \"left\",\n RIGHT = \"right\",\n}\n\n/**\n * Размер подсказки (ширина тела в десктопной версии).\n *\n * SM Узкая подсказка, 192px.\n * LG Широкая подсказка, 384px.\n */\nexport enum ETooltipSize {\n SM = \"sm\",\n LG = \"lg\",\n}\n"],"names":["ETooltipSizeParameter","ETooltipStartCoordinates","ETooltipEndCoordinates","ETooltipAxesType","ETooltipFlowTypes","ETooltipTypeName","ETooltipPreferPlace","ETooltipAlign","ETooltipDirection","ETooltipSize"],"mappings":"AAMO,IAAK,0CAAAA,2BAAL;AACHA,yBAAA,GAAA,IAAI;AACJA,yBAAA,GAAA,IAAI;AAFI,SAAAA;AAAA,GAAA,yBAAA,CAAA,CAAA;AAWL,IAAK,6CAAAC,8BAAL;AACHA,4BAAA,GAAA,IAAI;AACJA,4BAAA,GAAA,IAAI;AAFI,SAAAA;AAAA,GAAA,4BAAA,CAAA,CAAA;AAWL,IAAK,2CAAAC,4BAAL;AACHA,0BAAA,GAAA,IAAI;AACJA,0BAAA,GAAA,IAAI;AAFI,SAAAA;AAAA,GAAA,0BAAA,CAAA,CAAA;AAWL,IAAK,qCAAAC,sBAAL;AACHA,oBAAA,MAAA,IAAO;AACPA,oBAAA,OAAA,IAAQ;AAFA,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AAWL,IAAK,sCAAAC,uBAAL;AACHA,qBAAA,QAAA,IAAS;AACTA,qBAAA,KAAA,IAAM;AAFE,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;AAYL,IAAK,qCAAAC,sBAAL;AACHA,oBAAA,MAAA,IAAO;AACPA,oBAAA,UAAA,IAAW;AACXA,oBAAA,MAAA,IAAO;AAHC,SAAAA;AAAA,GAAA,oBAAA,CAAA,CAAA;AAcL,IAAK,wCAAAC,yBAAL;AACHA,uBAAA,OAAA,IAAQ;AACRA,uBAAA,OAAA,IAAQ;AACRA,uBAAA,OAAA,IAAQ;AACRA,uBAAA,MAAA,IAAO;AAJC,SAAAA;AAAA,GAAA,uBAAA,CAAA,CAAA;AAcL,IAAK,kCAAAC,mBAAL;AACHA,iBAAA,KAAA,IAAM;AACNA,iBAAA,QAAA,IAAS;AACTA,iBAAA,OAAA,IAAQ;AAHA,SAAAA;AAAA,GAAA,iBAAA,CAAA,CAAA;AAcL,IAAK,sCAAAC,uBAAL;AACHA,qBAAA,IAAA,IAAK;AACLA,qBAAA,MAAA,IAAO;AACPA,qBAAA,MAAA,IAAO;AACPA,qBAAA,OAAA,IAAQ;AAJA,SAAAA;AAAA,GAAA,qBAAA,CAAA,CAAA;AAaL,IAAK,iCAAAC,kBAAL;AACHA,gBAAA,IAAA,IAAK;AACLA,gBAAA,IAAA,IAAK;AAFG,SAAAA;AAAA,GAAA,gBAAA,CAAA,CAAA;"}
|
|
@@ -36,17 +36,14 @@ const place = (flow, axis, align, bounds, size) => {
|
|
|
36
36
|
const axisProps = axes[flow][axis];
|
|
37
37
|
if (align === ETooltipAlign.CENTER) {
|
|
38
38
|
return centerOfBounds(flow, axis, bounds) - centerOfSize(flow, axis, size);
|
|
39
|
-
} else {
|
|
40
|
-
if (align === ETooltipAlign.END) {
|
|
41
|
-
return bounds[axisProps.end];
|
|
42
|
-
} else {
|
|
43
|
-
if (align === ETooltipAlign.START) {
|
|
44
|
-
return bounds[axisProps.start] - size[axisProps.size];
|
|
45
|
-
} else {
|
|
46
|
-
return 0;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
39
|
}
|
|
40
|
+
if (align === ETooltipAlign.END) {
|
|
41
|
+
return bounds[axisProps.end];
|
|
42
|
+
}
|
|
43
|
+
if (align === ETooltipAlign.START) {
|
|
44
|
+
return bounds[axisProps.start] - size[axisProps.size];
|
|
45
|
+
}
|
|
46
|
+
return 0;
|
|
50
47
|
};
|
|
51
48
|
const calcBounds = (el) => {
|
|
52
49
|
if (el === window) {
|
|
@@ -139,15 +136,19 @@ const calcRelPos = (zone, targetBounds, tooltipSize) => {
|
|
|
139
136
|
const mainSize = tooltipSize[main.size];
|
|
140
137
|
const crossStart = place(zone.flow, ETooltipAxesType.CROSS, crossAlign, targetBounds, tooltipSize);
|
|
141
138
|
const crossSize = tooltipSize[cross.size];
|
|
142
|
-
const
|
|
143
|
-
[
|
|
139
|
+
const position = {
|
|
140
|
+
[ETooltipStartCoordinates.X]: 0,
|
|
141
|
+
[ETooltipEndCoordinates.X]: 0,
|
|
142
|
+
[ETooltipStartCoordinates.Y]: 0,
|
|
143
|
+
[ETooltipEndCoordinates.Y]: 0,
|
|
144
144
|
crossLength: crossSize,
|
|
145
|
-
|
|
146
|
-
[main.start]: mainStart,
|
|
147
|
-
mainLength: mainSize,
|
|
148
|
-
[main.end]: mainStart + mainSize
|
|
145
|
+
mainLength: mainSize
|
|
149
146
|
};
|
|
150
|
-
|
|
147
|
+
position[cross.start] = crossStart;
|
|
148
|
+
position[cross.end] = crossStart + crossSize;
|
|
149
|
+
position[main.start] = mainStart;
|
|
150
|
+
position[main.end] = mainStart + mainSize;
|
|
151
|
+
return position;
|
|
151
152
|
};
|
|
152
153
|
export {
|
|
153
154
|
axes,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Positioning.js","sources":["../../../../src/components/Tooltip/utils/Positioning.ts"],"sourcesContent":["import {\n ETooltipAlign,\n ETooltipAxesType,\n ETooltipEndCoordinates,\n ETooltipFlowTypes,\n ETooltipPreferPlace,\n ETooltipSizeParameter,\n ETooltipStartCoordinates,\n ETooltipTypeName,\n} from \"@sberbusiness/triplex-next/components/Tooltip/enums\";\nimport {\n ITooltipAxes,\n ITooltipBounds,\n ITooltipDomainSize,\n ITooltipRelPosition,\n ITooltipSize,\n} from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/**\n * Значение на которое должен отступать тултип от границы экрана сверху и снизу.\n */\nconst WINDOW_OFFSET = 8;\n\n/**\n * Сравнивает координаты. По сути shadowEqual, но она делает лишние проверки, здесь мы ограничваемся только обьектом\n * координат.\n * @param {ITooltipBounds} o1 Сравниваемые координаты.\n * @param {ITooltipBounds} o2 Координаты для сравнения.\n */\nconst equalCoords = (o1: ITooltipBounds, o2: ITooltipBounds) => {\n return o1.h === o2.h && o1.w === o2.w && o1.x === o2.x && o1.y === o2.y && o1.x2 === o2.x2 && o1.y2 === o2.y2;\n};\n\n/**\n * Система осей\n * Позволяет работать в разных ориентациях без необходимости вручную отслеживать используется x или y координаты.\n */\nconst axes: ITooltipAxes = {\n column: {\n cross: {\n end: ETooltipEndCoordinates.X,\n size: ETooltipSizeParameter.W,\n start: ETooltipStartCoordinates.X,\n },\n main: {\n end: ETooltipEndCoordinates.Y,\n size: ETooltipSizeParameter.H,\n start: ETooltipStartCoordinates.Y,\n },\n },\n row: {\n cross: {\n end: ETooltipEndCoordinates.Y,\n size: ETooltipSizeParameter.H,\n start: ETooltipStartCoordinates.Y,\n },\n main: {\n end: ETooltipEndCoordinates.X,\n size: ETooltipSizeParameter.W,\n start: ETooltipStartCoordinates.X,\n },\n },\n};\n\n/**\n * Найти центр для заданного размера.\n *\n * @param {ETooltipFlowTypes} flow Тип flow в flex.\n * @param {ETooltipAxesType} axis Тип оси.\n * @param {ITooltipSize} size размер.\n *\n * @return {number} Середина размера.\n */\nconst centerOfSize = (flow: ETooltipFlowTypes, axis: ETooltipAxesType, size: ITooltipSize): number =>\n size[axes[flow][axis].size] / 2;\n\n/**\n * Найти центр для заданных границ.\n *\n * @param {ETooltipFlowTypes} flow Тип flow в flex.\n * @param {ETooltipAxesType} axis Тип оси.\n * @param {ITooltipBounds} bounds Границы.\n */\nconst centerOfBounds = (flow: ETooltipFlowTypes, axis: ETooltipAxesType, bounds: ITooltipBounds): number =>\n bounds[axes[flow][axis].start] + bounds[axes[flow][axis].size] / 2;\n\n/**\n * Расстояние от центра до центра границ.\n *\n * @param {ETooltipFlowTypes} flow Тип flow в flex.\n * @param {ETooltipAxesType} axis Тип оси.\n * @param {ITooltipBounds} boundsTo Границы от.\n * @param {ITooltipBounds} boundsFrom Границы до.\n */\nconst centerOfBoundsFromBounds = (\n flow: ETooltipFlowTypes,\n axis: ETooltipAxesType,\n boundsTo: ITooltipBounds,\n boundsFrom: ITooltipRelPosition,\n): number => centerOfBounds(flow, axis, boundsTo) - boundsFrom[axes[flow][axis].start];\n\n/**\n * Возвращет координаты для выравнивания.\n *\n * @param {ETooltipFlowTypes} flow Тип flow в flex.\n * @param {ETooltipAxesType} axis Тип оси.\n * @param {ETooltipAlign} align Выравнивание для позиционирования.\n * @param {ITooltipBounds} bounds Границы.\n * @param {ITooltipSize} size размер.\n */\nconst place = (\n flow: ETooltipFlowTypes,\n axis: ETooltipAxesType,\n align: ETooltipAlign,\n bounds: ITooltipBounds,\n size: ITooltipSize,\n): number => {\n const axisProps = axes[flow][axis];\n\n if (align === ETooltipAlign.CENTER) {\n return centerOfBounds(flow, axis, bounds) - centerOfSize(flow, axis, size);\n } else {\n if (align === ETooltipAlign.END) {\n return bounds[axisProps.end];\n } else {\n /* Рендеринг дома левосторонний. Поэтому если вспомогательный элемент спозиционирован перед основным, то\n расположение вспомогательного должно быть с дополнительным отступом на его (вспомогательного) длину.*/\n if (align === ETooltipAlign.START) {\n return bounds[axisProps.start] - size[axisProps.size];\n } else {\n return 0;\n }\n }\n }\n};\n\n// Расчеты размеров элемента\n/**\n * Поиск границ элемента.\n * @param {HTMLElement | Window} el Элемент, для которого ищутся границы.\n */\nconst calcBounds = (el: HTMLElement | Window): ITooltipBounds => {\n if (el === window) {\n return {\n h: el.innerHeight,\n w: el.innerWidth,\n x: 0,\n x2: el.innerWidth,\n y: 0,\n y2: el.innerHeight,\n };\n }\n\n const b = (el as HTMLElement).getBoundingClientRect();\n\n return {\n h: b.bottom - b.top,\n w: b.right - b.left,\n x: b.left,\n x2: b.right,\n y: b.top,\n y2: b.bottom,\n };\n};\n\n/**\n * Проверка помещается ли элемент в область.\n * @param {ETooltipSizeParameter} dimension Тип координаты для сравнения (высота/ширина).\n */\nconst fitWithinChecker =\n (dimension: ETooltipSizeParameter) =>\n (domainSize: ITooltipDomainSize, itemSize: ITooltipSize): boolean =>\n domainSize[dimension] >= itemSize[dimension];\n\nconst doesWidthFitWithin = fitWithinChecker(ETooltipSizeParameter.W);\nconst doesHeightFitWithin = fitWithinChecker(ETooltipSizeParameter.H);\n\nconst doesFitWithin = (domainSize: ITooltipDomainSize, itemSize: ITooltipSize): boolean =>\n doesWidthFitWithin(domainSize, itemSize) && doesHeightFitWithin(domainSize, itemSize);\n\n/**\n * Алгоритм выбора наиболее подходящей зоны для тултипа. Текущий подход: в цикле пройти все зоны и выбрать\n * последнюю, что подходит, если ни одна не походит, выбрать наименее непоходящую.\n *\n * @param {ETooltipPreferPlace | undefined} preferPlace Предпочитаемое место расположение тултипа.\n * @param {ITooltipBounds} windowBounds Границы окна.\n * @param {ITooltipBounds} targetBounds Границы элемента, который обернут в тултип.\n * @param {number} tipHeight Высота Tip (стрелочки), px.\n * @param {number} maxFromEdgeForTip Уголок бегает по периметру максимально на 16 px от края.\n * @param {ITooltipSize} tooltipSize Размеры тултипа.\n *\n * @return {ITooltipDomainSize} Размеры области с параметрами.\n */\nconst pickZone = (\n preferPlace: ETooltipPreferPlace | undefined,\n windowBounds: ITooltipBounds,\n targetBounds: ITooltipBounds,\n tipHeight: number,\n maxFromEdgeForTip: number,\n tooltipSize: ITooltipSize,\n): ITooltipDomainSize => {\n // В случае горизонтального расположения доступное место по высоте расчитывается по формуле:\n // минимальная высота от центра таргета до границы окна по Y плюс максимальный возможный остаток высота тултипа и учитывается отступ от границы окна,\n // чтобы тултип не прилигал к границе.\n let targetMiddleY = targetBounds.y + (targetBounds.y2 - targetBounds.y) / 2; // расстояние от верхней границы окна до середина таргета по Y\n const fromTargetMiddleToWindowY2 = windowBounds[ETooltipEndCoordinates.Y] - targetMiddleY; // расстояние от нижней границы окна до середина таргета по Y\n // берем наименьшее расстояние от границы окна до середины таргета\n if (fromTargetMiddleToWindowY2 < targetMiddleY) {\n targetMiddleY = fromTargetMiddleToWindowY2;\n }\n const zoneHeight =\n targetMiddleY + tooltipSize[ETooltipSizeParameter.H] - tipHeight - maxFromEdgeForTip - WINDOW_OFFSET;\n const zones: ITooltipDomainSize[] = [\n {\n [ETooltipTypeName.SIDE]: ETooltipAlign.START,\n [ETooltipTypeName.STANDING]: ETooltipPreferPlace.ABOVE,\n [ETooltipTypeName.FLOW]: ETooltipFlowTypes.COLUMN,\n h: targetBounds.y,\n order: -1,\n w: windowBounds.x2,\n },\n {\n [ETooltipTypeName.SIDE]: ETooltipAlign.END,\n [ETooltipTypeName.STANDING]: ETooltipPreferPlace.RIGHT,\n [ETooltipTypeName.FLOW]: ETooltipFlowTypes.ROW,\n h: zoneHeight,\n order: 1,\n w: windowBounds.x2 - targetBounds.x2,\n },\n {\n [ETooltipTypeName.SIDE]: ETooltipAlign.END,\n [ETooltipTypeName.STANDING]: ETooltipPreferPlace.BELOW,\n [ETooltipTypeName.FLOW]: ETooltipFlowTypes.COLUMN,\n h: windowBounds.y2 - targetBounds.y2,\n order: 1,\n w: windowBounds.x2,\n },\n {\n [ETooltipTypeName.SIDE]: ETooltipAlign.START,\n [ETooltipTypeName.STANDING]: ETooltipPreferPlace.LEFT,\n [ETooltipTypeName.FLOW]: ETooltipFlowTypes.ROW,\n h: zoneHeight,\n order: -1,\n w: targetBounds.x,\n },\n ];\n\n /* Упорядочивает зоны по количеству popup которые будут обрезаны, если использовать зону. Первый элемент в\n массиве режет наименьшее количество\n const area = size.w * size.h // Площадь popup постоянная и не меняет порядок\n */\n zones.forEach((zone) => {\n zone.cutOff =\n /* area */ -Math.max(0, Math.min(zone.w, tooltipSize.w)) * Math.max(0, Math.min(zone.h, tooltipSize.h));\n });\n zones.sort((a, b) => (a.cutOff ?? 0) - (b.cutOff ?? 0));\n\n const availZones = zones.filter((zone) => doesFitWithin(zone, tooltipSize));\n\n if (preferPlace) {\n // Поиск доступных предпочитаемых зон\n const preferredAvailZones = availZones.filter((zone) => zone[ETooltipTypeName.STANDING] === preferPlace);\n if (preferredAvailZones.length) {\n return preferredAvailZones[0];\n }\n\n // Если нет доступных предпочитаемых зон, то используем ту, что подходит лучше всего\n const preferredZones = zones.filter((zone) => zone[ETooltipTypeName.STANDING] === preferPlace);\n if (!availZones.length && preferredZones.length) {\n return preferredZones[0];\n }\n }\n // Возвращаем зону, которая подходит полностью либо лучше всего\n return availZones.length ? availZones[0] : zones[0];\n};\n\n/**\n * Высчитывает относительные координаты\n * @param {ITooltipDomainSize} zone Зона с параметрами.\n * @param {ITooltipBounds} targetBounds Границы элемента, который обернут в тултип.\n * @param {ITooltipBounds} tooltipSize Размеры тултипа.\n */\nconst calcRelPos = (\n zone: ITooltipDomainSize,\n targetBounds: ITooltipBounds,\n tooltipSize: ITooltipSize,\n): ITooltipRelPosition => {\n const { main, cross } = axes[zone.flow];\n const crossAlign = ETooltipAlign.CENTER;\n const mainStart = place(zone.flow, ETooltipAxesType.MAIN, zone.side, targetBounds, tooltipSize);\n const mainSize = tooltipSize[main.size];\n const crossStart = place(zone.flow, ETooltipAxesType.CROSS, crossAlign, targetBounds, tooltipSize);\n\n const crossSize = tooltipSize[cross.size];\n const result = {\n [cross.start]: crossStart,\n crossLength: crossSize,\n [cross.end]: crossStart + crossSize,\n [main.start]: mainStart,\n mainLength: mainSize,\n [main.end]: mainStart + mainSize,\n };\n return result as unknown as ITooltipRelPosition;\n};\n\nexport {\n calcRelPos,\n place,\n pickZone,\n axes,\n centerOfSize,\n centerOfBounds,\n centerOfBoundsFromBounds,\n doesFitWithin,\n equalCoords,\n calcBounds,\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Positioning.js","sources":["../../../../src/components/Tooltip/utils/Positioning.ts"],"sourcesContent":["import {\n ETooltipAlign,\n ETooltipAxesType,\n ETooltipEndCoordinates,\n ETooltipFlowTypes,\n ETooltipPreferPlace,\n ETooltipSizeParameter,\n ETooltipStartCoordinates,\n ETooltipTypeName,\n} from \"@sberbusiness/triplex-next/components/Tooltip/enums\";\nimport {\n ITooltipAxes,\n ITooltipBounds,\n ITooltipDomainSize,\n ITooltipRelPosition,\n ITooltipSize,\n} from \"@sberbusiness/triplex-next/components/Tooltip/types\";\n\n/**\n * Значение на которое должен отступать тултип от границы экрана сверху и снизу.\n */\nconst WINDOW_OFFSET = 8;\n\n/**\n * Сравнивает координаты. По сути shallowEqual, но он делает лишние проверки — здесь достаточно сравнить\n * только поля объекта координат.\n * @param {ITooltipBounds} o1 Сравниваемые координаты.\n * @param {ITooltipBounds} o2 Координаты для сравнения.\n */\nconst equalCoords = (o1: ITooltipBounds, o2: ITooltipBounds) => {\n return o1.h === o2.h && o1.w === o2.w && o1.x === o2.x && o1.y === o2.y && o1.x2 === o2.x2 && o1.y2 === o2.y2;\n};\n\n/**\n * Система осей\n * Позволяет работать в разных ориентациях без необходимости вручную отслеживать используется x или y координаты.\n */\nconst axes: ITooltipAxes = {\n column: {\n cross: {\n end: ETooltipEndCoordinates.X,\n size: ETooltipSizeParameter.W,\n start: ETooltipStartCoordinates.X,\n },\n main: {\n end: ETooltipEndCoordinates.Y,\n size: ETooltipSizeParameter.H,\n start: ETooltipStartCoordinates.Y,\n },\n },\n row: {\n cross: {\n end: ETooltipEndCoordinates.Y,\n size: ETooltipSizeParameter.H,\n start: ETooltipStartCoordinates.Y,\n },\n main: {\n end: ETooltipEndCoordinates.X,\n size: ETooltipSizeParameter.W,\n start: ETooltipStartCoordinates.X,\n },\n },\n};\n\n/**\n * Найти центр для заданного размера.\n *\n * @param {ETooltipFlowTypes} flow Тип flow в flex.\n * @param {ETooltipAxesType} axis Тип оси.\n * @param {ITooltipSize} size размер.\n *\n * @return {number} Середина размера.\n */\nconst centerOfSize = (flow: ETooltipFlowTypes, axis: ETooltipAxesType, size: ITooltipSize): number =>\n size[axes[flow][axis].size] / 2;\n\n/**\n * Найти центр для заданных границ.\n *\n * @param {ETooltipFlowTypes} flow Тип flow в flex.\n * @param {ETooltipAxesType} axis Тип оси.\n * @param {ITooltipBounds} bounds Границы.\n */\nconst centerOfBounds = (flow: ETooltipFlowTypes, axis: ETooltipAxesType, bounds: ITooltipBounds): number =>\n bounds[axes[flow][axis].start] + bounds[axes[flow][axis].size] / 2;\n\n/**\n * Расстояние от центра до центра границ.\n *\n * @param {ETooltipFlowTypes} flow Тип flow в flex.\n * @param {ETooltipAxesType} axis Тип оси.\n * @param {ITooltipBounds} boundsTo Границы от.\n * @param {ITooltipBounds} boundsFrom Границы до.\n */\nconst centerOfBoundsFromBounds = (\n flow: ETooltipFlowTypes,\n axis: ETooltipAxesType,\n boundsTo: ITooltipBounds,\n boundsFrom: ITooltipRelPosition,\n): number => centerOfBounds(flow, axis, boundsTo) - boundsFrom[axes[flow][axis].start];\n\n/**\n * Возвращет координаты для выравнивания.\n *\n * @param {ETooltipFlowTypes} flow Тип flow в flex.\n * @param {ETooltipAxesType} axis Тип оси.\n * @param {ETooltipAlign} align Выравнивание для позиционирования.\n * @param {ITooltipBounds} bounds Границы.\n * @param {ITooltipSize} size размер.\n */\nconst place = (\n flow: ETooltipFlowTypes,\n axis: ETooltipAxesType,\n align: ETooltipAlign,\n bounds: ITooltipBounds,\n size: ITooltipSize,\n): number => {\n const axisProps = axes[flow][axis];\n\n if (align === ETooltipAlign.CENTER) {\n return centerOfBounds(flow, axis, bounds) - centerOfSize(flow, axis, size);\n }\n\n if (align === ETooltipAlign.END) {\n return bounds[axisProps.end];\n }\n\n if (align === ETooltipAlign.START) {\n /* Рендеринг дома левосторонний. Поэтому если вспомогательный элемент спозиционирован перед основным, то\n расположение вспомогательного должно быть с дополнительным отступом на его (вспомогательного) длину.*/\n return bounds[axisProps.start] - size[axisProps.size];\n }\n\n return 0;\n};\n\n// Расчеты размеров элемента\n/**\n * Поиск границ элемента.\n * @param {HTMLElement | Window} el Элемент, для которого ищутся границы.\n */\nconst calcBounds = (el: HTMLElement | Window): ITooltipBounds => {\n if (el === window) {\n return {\n h: el.innerHeight,\n w: el.innerWidth,\n x: 0,\n x2: el.innerWidth,\n y: 0,\n y2: el.innerHeight,\n };\n }\n\n const b = (el as HTMLElement).getBoundingClientRect();\n\n return {\n h: b.bottom - b.top,\n w: b.right - b.left,\n x: b.left,\n x2: b.right,\n y: b.top,\n y2: b.bottom,\n };\n};\n\n/**\n * Проверка помещается ли элемент в область.\n * @param {ETooltipSizeParameter} dimension Тип координаты для сравнения (высота/ширина).\n */\nconst fitWithinChecker =\n (dimension: ETooltipSizeParameter) =>\n (domainSize: ITooltipDomainSize, itemSize: ITooltipSize): boolean =>\n domainSize[dimension] >= itemSize[dimension];\n\nconst doesWidthFitWithin = fitWithinChecker(ETooltipSizeParameter.W);\nconst doesHeightFitWithin = fitWithinChecker(ETooltipSizeParameter.H);\n\nconst doesFitWithin = (domainSize: ITooltipDomainSize, itemSize: ITooltipSize): boolean =>\n doesWidthFitWithin(domainSize, itemSize) && doesHeightFitWithin(domainSize, itemSize);\n\n/**\n * Алгоритм выбора наиболее подходящей зоны для тултипа. Текущий подход: в цикле пройти все зоны и выбрать\n * последнюю, что подходит, если ни одна не походит, выбрать наименее непоходящую.\n *\n * @param {ETooltipPreferPlace | undefined} preferPlace Предпочитаемое место расположение тултипа.\n * @param {ITooltipBounds} windowBounds Границы окна.\n * @param {ITooltipBounds} targetBounds Границы элемента, который обернут в тултип.\n * @param {number} tipHeight Высота Tip (стрелочки), px.\n * @param {number} maxFromEdgeForTip Уголок бегает по периметру максимально на 16 px от края.\n * @param {ITooltipSize} tooltipSize Размеры тултипа.\n *\n * @return {ITooltipDomainSize} Размеры области с параметрами.\n */\nconst pickZone = (\n preferPlace: ETooltipPreferPlace | undefined,\n windowBounds: ITooltipBounds,\n targetBounds: ITooltipBounds,\n tipHeight: number,\n maxFromEdgeForTip: number,\n tooltipSize: ITooltipSize,\n): ITooltipDomainSize => {\n // В случае горизонтального расположения доступное место по высоте расчитывается по формуле:\n // минимальная высота от центра таргета до границы окна по Y плюс максимальный возможный остаток высота тултипа и учитывается отступ от границы окна,\n // чтобы тултип не прилигал к границе.\n let targetMiddleY = targetBounds.y + (targetBounds.y2 - targetBounds.y) / 2; // расстояние от верхней границы окна до середина таргета по Y\n const fromTargetMiddleToWindowY2 = windowBounds[ETooltipEndCoordinates.Y] - targetMiddleY; // расстояние от нижней границы окна до середина таргета по Y\n // берем наименьшее расстояние от границы окна до середины таргета\n if (fromTargetMiddleToWindowY2 < targetMiddleY) {\n targetMiddleY = fromTargetMiddleToWindowY2;\n }\n const zoneHeight =\n targetMiddleY + tooltipSize[ETooltipSizeParameter.H] - tipHeight - maxFromEdgeForTip - WINDOW_OFFSET;\n const zones: ITooltipDomainSize[] = [\n {\n [ETooltipTypeName.SIDE]: ETooltipAlign.START,\n [ETooltipTypeName.STANDING]: ETooltipPreferPlace.ABOVE,\n [ETooltipTypeName.FLOW]: ETooltipFlowTypes.COLUMN,\n h: targetBounds.y,\n order: -1,\n w: windowBounds.x2,\n },\n {\n [ETooltipTypeName.SIDE]: ETooltipAlign.END,\n [ETooltipTypeName.STANDING]: ETooltipPreferPlace.RIGHT,\n [ETooltipTypeName.FLOW]: ETooltipFlowTypes.ROW,\n h: zoneHeight,\n order: 1,\n w: windowBounds.x2 - targetBounds.x2,\n },\n {\n [ETooltipTypeName.SIDE]: ETooltipAlign.END,\n [ETooltipTypeName.STANDING]: ETooltipPreferPlace.BELOW,\n [ETooltipTypeName.FLOW]: ETooltipFlowTypes.COLUMN,\n h: windowBounds.y2 - targetBounds.y2,\n order: 1,\n w: windowBounds.x2,\n },\n {\n [ETooltipTypeName.SIDE]: ETooltipAlign.START,\n [ETooltipTypeName.STANDING]: ETooltipPreferPlace.LEFT,\n [ETooltipTypeName.FLOW]: ETooltipFlowTypes.ROW,\n h: zoneHeight,\n order: -1,\n w: targetBounds.x,\n },\n ];\n\n /* Упорядочивает зоны по количеству popup которые будут обрезаны, если использовать зону. Первый элемент в\n массиве режет наименьшее количество\n const area = size.w * size.h // Площадь popup постоянная и не меняет порядок\n */\n zones.forEach((zone) => {\n zone.cutOff =\n /* area */ -Math.max(0, Math.min(zone.w, tooltipSize.w)) * Math.max(0, Math.min(zone.h, tooltipSize.h));\n });\n zones.sort((a, b) => (a.cutOff ?? 0) - (b.cutOff ?? 0));\n\n const availZones = zones.filter((zone) => doesFitWithin(zone, tooltipSize));\n\n if (preferPlace) {\n // Поиск доступных предпочитаемых зон\n const preferredAvailZones = availZones.filter((zone) => zone[ETooltipTypeName.STANDING] === preferPlace);\n if (preferredAvailZones.length) {\n return preferredAvailZones[0];\n }\n\n // Если нет доступных предпочитаемых зон, то используем ту, что подходит лучше всего\n const preferredZones = zones.filter((zone) => zone[ETooltipTypeName.STANDING] === preferPlace);\n if (!availZones.length && preferredZones.length) {\n return preferredZones[0];\n }\n }\n // Возвращаем зону, которая подходит полностью либо лучше всего\n return availZones.length ? availZones[0] : zones[0];\n};\n\n/**\n * Высчитывает относительные координаты\n * @param {ITooltipDomainSize} zone Зона с параметрами.\n * @param {ITooltipBounds} targetBounds Границы элемента, который обернут в тултип.\n * @param {ITooltipBounds} tooltipSize Размеры тултипа.\n */\nconst calcRelPos = (\n zone: ITooltipDomainSize,\n targetBounds: ITooltipBounds,\n tooltipSize: ITooltipSize,\n): ITooltipRelPosition => {\n const { main, cross } = axes[zone.flow];\n const crossAlign = ETooltipAlign.CENTER;\n const mainStart = place(zone.flow, ETooltipAxesType.MAIN, zone.side, targetBounds, tooltipSize);\n const mainSize = tooltipSize[main.size];\n const crossStart = place(zone.flow, ETooltipAxesType.CROSS, crossAlign, targetBounds, tooltipSize);\n const crossSize = tooltipSize[cross.size];\n\n // Главная и вспомогательная оси вместе покрывают все четыре координаты, поэтому нули — это заглушки,\n // которые перезаписываются ниже.\n const position: ITooltipRelPosition = {\n [ETooltipStartCoordinates.X]: 0,\n [ETooltipEndCoordinates.X]: 0,\n [ETooltipStartCoordinates.Y]: 0,\n [ETooltipEndCoordinates.Y]: 0,\n crossLength: crossSize,\n mainLength: mainSize,\n };\n\n position[cross.start] = crossStart;\n position[cross.end] = crossStart + crossSize;\n position[main.start] = mainStart;\n position[main.end] = mainStart + mainSize;\n\n return position;\n};\n\nexport {\n calcRelPos,\n place,\n pickZone,\n axes,\n centerOfSize,\n centerOfBounds,\n centerOfBoundsFromBounds,\n doesFitWithin,\n equalCoords,\n calcBounds,\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +1,79 @@
|
|
|
1
|
-
import { useEffect } from "react";
|
|
1
|
+
import { useRef, useEffect } from "react";
|
|
2
2
|
import "../../DesignTokens/DesignTokensComponents.js";
|
|
3
3
|
import "../../DesignTokens/DesignTokensComponentsThemeDark.js";
|
|
4
4
|
import "../../ThemeProvider/ThemeProviderContext.js";
|
|
5
5
|
import { useToken } from "../../ThemeProvider/useToken.js";
|
|
6
|
+
const THEME_CLEANUP_DELAY_MS = 500;
|
|
7
|
+
const getUsageCounterAttrName = (scopeClassName) => `data-tooltip-theme-${scopeClassName}-counter`;
|
|
6
8
|
function useTooltipTheme(open, renderContainer) {
|
|
7
9
|
const { scopeClassName } = useToken();
|
|
10
|
+
const hasUsageRef = useRef(false);
|
|
11
|
+
const cleanupTimeoutRef = useRef(void 0);
|
|
8
12
|
useEffect(() => {
|
|
9
13
|
if (scopeClassName && renderContainer) {
|
|
10
14
|
const cl = renderContainer.classList;
|
|
11
15
|
if (open) {
|
|
16
|
+
if (cleanupTimeoutRef.current !== void 0) {
|
|
17
|
+
window.clearTimeout(cleanupTimeoutRef.current);
|
|
18
|
+
cleanupTimeoutRef.current = void 0;
|
|
19
|
+
}
|
|
12
20
|
if (!cl.contains(scopeClassName)) {
|
|
13
21
|
cl.add(scopeClassName);
|
|
14
22
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
if (!hasUsageRef.current) {
|
|
24
|
+
incTooltipThemeUsage(renderContainer, scopeClassName);
|
|
25
|
+
hasUsageRef.current = true;
|
|
26
|
+
}
|
|
27
|
+
} else if (hasUsageRef.current) {
|
|
28
|
+
hasUsageRef.current = false;
|
|
29
|
+
const usage = decTooltipThemeUsage(renderContainer, scopeClassName);
|
|
30
|
+
if (usage <= 0) {
|
|
31
|
+
cleanupTimeoutRef.current = window.setTimeout(() => {
|
|
32
|
+
cleanupTimeoutRef.current = void 0;
|
|
33
|
+
if (getTooltipThemeUsage(renderContainer, scopeClassName) <= 0) {
|
|
21
34
|
cl.remove(scopeClassName);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
35
|
+
}
|
|
36
|
+
}, THEME_CLEANUP_DELAY_MS);
|
|
24
37
|
}
|
|
25
38
|
}
|
|
26
39
|
}
|
|
27
40
|
}, [scopeClassName, open, renderContainer]);
|
|
28
41
|
useEffect(() => {
|
|
29
42
|
return () => {
|
|
43
|
+
const hasPendingCleanup = cleanupTimeoutRef.current !== void 0;
|
|
44
|
+
if (hasPendingCleanup) {
|
|
45
|
+
window.clearTimeout(cleanupTimeoutRef.current);
|
|
46
|
+
cleanupTimeoutRef.current = void 0;
|
|
47
|
+
}
|
|
48
|
+
if (!scopeClassName || !renderContainer) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
30
51
|
const cl = renderContainer.classList;
|
|
31
|
-
if (
|
|
52
|
+
if (hasUsageRef.current) {
|
|
53
|
+
hasUsageRef.current = false;
|
|
32
54
|
const usage = decTooltipThemeUsage(renderContainer, scopeClassName);
|
|
33
55
|
if (usage <= 0) {
|
|
34
56
|
cl.remove(scopeClassName);
|
|
35
57
|
}
|
|
58
|
+
} else if (hasPendingCleanup && getTooltipThemeUsage(renderContainer, scopeClassName) <= 0) {
|
|
59
|
+
cl.remove(scopeClassName);
|
|
36
60
|
}
|
|
37
61
|
};
|
|
38
62
|
}, [renderContainer, scopeClassName]);
|
|
39
63
|
}
|
|
64
|
+
function getTooltipThemeUsage(node, scopeClassName) {
|
|
65
|
+
const counterAttr = node.getAttribute(getUsageCounterAttrName(scopeClassName));
|
|
66
|
+
return counterAttr ? parseInt(counterAttr, 10) : 0;
|
|
67
|
+
}
|
|
40
68
|
function incTooltipThemeUsage(node, scopeClassName) {
|
|
41
|
-
const counterAttrName =
|
|
69
|
+
const counterAttrName = getUsageCounterAttrName(scopeClassName);
|
|
42
70
|
const counterAttr = node.getAttribute(counterAttrName);
|
|
43
71
|
const counter = counterAttr ? parseInt(counterAttr, 10) + 1 : 1;
|
|
44
72
|
node.setAttribute(counterAttrName, counter.toString());
|
|
45
73
|
return counter;
|
|
46
74
|
}
|
|
47
75
|
function decTooltipThemeUsage(node, scopeClassName) {
|
|
48
|
-
const counterAttrName =
|
|
76
|
+
const counterAttrName = getUsageCounterAttrName(scopeClassName);
|
|
49
77
|
const counterAttr = node.getAttribute(counterAttrName);
|
|
50
78
|
const counter = counterAttr ? parseInt(counterAttr, 10) - 1 : 0;
|
|
51
79
|
if (counter > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTooltipTheme.js","sources":["../../../../src/components/Tooltip/utils/useTooltipTheme.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { useToken } from \"@sberbusiness/triplex-next/components/ThemeProvider\";\n\n/**\n * Хук для установки css-класса текущей темы на контейнер tooltip-а.\n * @param open Флаг отображения тултипа.\n * @param renderContainer DOM-элемент, куда рендерится тултип\n */\nexport function useTooltipTheme(open: boolean, renderContainer: Element) {\n const { scopeClassName } = useToken();\n\n useEffect(() => {\n if (scopeClassName && renderContainer) {\n const cl = renderContainer.classList;\n\n if (open) {\n if (!cl.contains(scopeClassName)) {\n cl.add(scopeClassName);\n }\n incTooltipThemeUsage(renderContainer, scopeClassName);\n } else
|
|
1
|
+
{"version":3,"file":"useTooltipTheme.js","sources":["../../../../src/components/Tooltip/utils/useTooltipTheme.ts"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { useToken } from \"@sberbusiness/triplex-next/components/ThemeProvider\";\n\n/**\n * Задержка снятия класса темы после закрытия подсказки, мс.\n * Закрытие идёт с анимацией, поэтому стили нужно придержать на это время.\n * См. ENTER_EXIT_TRANSITION_DURATION_MS в TooltipDesktopBase.\n */\nconst THEME_CLEANUP_DELAY_MS = 500;\n\n/**\n * Имя data-атрибута со счётчиком подсказок, которые сейчас используют класс темы на контейнере.\n * @param scopeClassName Класс темы.\n */\nconst getUsageCounterAttrName = (scopeClassName: string) => `data-tooltip-theme-${scopeClassName}-counter`;\n\n/**\n * Хук для установки css-класса текущей темы на контейнер tooltip-а.\n * @param open Флаг отображения тултипа.\n * @param renderContainer DOM-элемент, куда рендерится тултип\n */\nexport function useTooltipTheme(open: boolean, renderContainer: Element) {\n const { scopeClassName } = useToken();\n /** Держит ли эта подсказка сейчас инкремент счётчика — чтобы не декрементировать чужой. */\n const hasUsageRef = useRef(false);\n /** Идентификатор отложенного снятия класса темы, запланированного этой подсказкой. */\n const cleanupTimeoutRef = useRef<number | undefined>(undefined);\n\n useEffect(() => {\n if (scopeClassName && renderContainer) {\n const cl = renderContainer.classList;\n\n if (open) {\n // Подсказку открыли снова до истечения задержки — снятие класса больше не нужно.\n if (cleanupTimeoutRef.current !== undefined) {\n window.clearTimeout(cleanupTimeoutRef.current);\n cleanupTimeoutRef.current = undefined;\n }\n\n if (!cl.contains(scopeClassName)) {\n cl.add(scopeClassName);\n }\n\n if (!hasUsageRef.current) {\n incTooltipThemeUsage(renderContainer, scopeClassName);\n hasUsageRef.current = true;\n }\n } else if (hasUsageRef.current) {\n hasUsageRef.current = false;\n\n const usage = decTooltipThemeUsage(renderContainer, scopeClassName);\n if (usage <= 0) {\n cleanupTimeoutRef.current = window.setTimeout(() => {\n cleanupTimeoutRef.current = undefined;\n\n // За время задержки контейнер могла занять эта же или другая подсказка — класс ещё нужен.\n if (getTooltipThemeUsage(renderContainer, scopeClassName) <= 0) {\n cl.remove(scopeClassName);\n }\n }, THEME_CLEANUP_DELAY_MS);\n }\n }\n }\n\n // очистка эффекта нам нужна только на unmount, тут она мешает, удаляя css класс темы раньше времени\n }, [scopeClassName, open, renderContainer]);\n\n // unmount, если тултип еще отображался в этот момент\n useEffect(() => {\n return () => {\n const hasPendingCleanup = cleanupTimeoutRef.current !== undefined;\n\n if (hasPendingCleanup) {\n window.clearTimeout(cleanupTimeoutRef.current);\n cleanupTimeoutRef.current = undefined;\n }\n\n if (!scopeClassName || !renderContainer) {\n return;\n }\n\n const cl = renderContainer.classList;\n\n if (hasUsageRef.current) {\n hasUsageRef.current = false;\n\n const usage = decTooltipThemeUsage(renderContainer, scopeClassName);\n if (usage <= 0) {\n cl.remove(scopeClassName);\n }\n } else if (hasPendingCleanup && getTooltipThemeUsage(renderContainer, scopeClassName) <= 0) {\n // Снятие класса было отложено, но ждать больше нечему — снимаем сразу.\n cl.remove(scopeClassName);\n }\n };\n }, [renderContainer, scopeClassName]);\n}\n\n/**\n * Текущее значение счётчика подсказок, использующих класс темы на контейнере.\n * @param node Контейнер рендера подсказки.\n * @param scopeClassName Класс темы.\n */\nfunction getTooltipThemeUsage(node: Element, scopeClassName: string): number {\n const counterAttr = node.getAttribute(getUsageCounterAttrName(scopeClassName));\n\n return counterAttr ? parseInt(counterAttr, 10) : 0;\n}\n\n/**\n * Увеличивает счётчик подсказок, использующих класс темы на контейнере.\n * @param node Контейнер рендера подсказки.\n * @param scopeClassName Класс темы.\n * @returns Новое значение счётчика.\n */\nfunction incTooltipThemeUsage(node: Element, scopeClassName: string): number {\n const counterAttrName = getUsageCounterAttrName(scopeClassName);\n const counterAttr = node.getAttribute(counterAttrName);\n const counter = counterAttr ? parseInt(counterAttr, 10) + 1 : 1;\n node.setAttribute(counterAttrName, counter.toString());\n\n return counter;\n}\n\n/**\n * Уменьшает счётчик подсказок, использующих класс темы на контейнере.\n * Когда счётчик доходит до нуля, атрибут удаляется.\n * @param node Контейнер рендера подсказки.\n * @param scopeClassName Класс темы.\n * @returns Новое значение счётчика.\n */\nfunction decTooltipThemeUsage(node: Element, scopeClassName: string): number {\n const counterAttrName = getUsageCounterAttrName(scopeClassName);\n const counterAttr = node.getAttribute(counterAttrName);\n const counter = counterAttr ? parseInt(counterAttr, 10) - 1 : 0;\n\n if (counter > 0) {\n node.setAttribute(counterAttrName, counter.toString());\n } else {\n node.removeAttribute(counterAttrName);\n }\n\n return counter;\n}\n"],"names":[],"mappings":";;;;;AAQA,MAAM,yBAAyB;AAM/B,MAAM,0BAA0B,CAAC,mBAA2B,sBAAsB,cAAc;AAOzF,SAAS,gBAAgB,MAAe,iBAA0B;AACrE,QAAM,EAAE,eAAA,IAAmB,SAAA;AAE3B,QAAM,cAAc,OAAO,KAAK;AAEhC,QAAM,oBAAoB,OAA2B,MAAS;AAE9D,YAAU,MAAM;AACZ,QAAI,kBAAkB,iBAAiB;AACnC,YAAM,KAAK,gBAAgB;AAE3B,UAAI,MAAM;AAEN,YAAI,kBAAkB,YAAY,QAAW;AACzC,iBAAO,aAAa,kBAAkB,OAAO;AAC7C,4BAAkB,UAAU;AAAA,QAChC;AAEA,YAAI,CAAC,GAAG,SAAS,cAAc,GAAG;AAC9B,aAAG,IAAI,cAAc;AAAA,QACzB;AAEA,YAAI,CAAC,YAAY,SAAS;AACtB,+BAAqB,iBAAiB,cAAc;AACpD,sBAAY,UAAU;AAAA,QAC1B;AAAA,MACJ,WAAW,YAAY,SAAS;AAC5B,oBAAY,UAAU;AAEtB,cAAM,QAAQ,qBAAqB,iBAAiB,cAAc;AAClE,YAAI,SAAS,GAAG;AACZ,4BAAkB,UAAU,OAAO,WAAW,MAAM;AAChD,8BAAkB,UAAU;AAG5B,gBAAI,qBAAqB,iBAAiB,cAAc,KAAK,GAAG;AAC5D,iBAAG,OAAO,cAAc;AAAA,YAC5B;AAAA,UACJ,GAAG,sBAAsB;AAAA,QAC7B;AAAA,MACJ;AAAA,IACJ;AAAA,EAGJ,GAAG,CAAC,gBAAgB,MAAM,eAAe,CAAC;AAG1C,YAAU,MAAM;AACZ,WAAO,MAAM;AACT,YAAM,oBAAoB,kBAAkB,YAAY;AAExD,UAAI,mBAAmB;AACnB,eAAO,aAAa,kBAAkB,OAAO;AAC7C,0BAAkB,UAAU;AAAA,MAChC;AAEA,UAAI,CAAC,kBAAkB,CAAC,iBAAiB;AACrC;AAAA,MACJ;AAEA,YAAM,KAAK,gBAAgB;AAE3B,UAAI,YAAY,SAAS;AACrB,oBAAY,UAAU;AAEtB,cAAM,QAAQ,qBAAqB,iBAAiB,cAAc;AAClE,YAAI,SAAS,GAAG;AACZ,aAAG,OAAO,cAAc;AAAA,QAC5B;AAAA,MACJ,WAAW,qBAAqB,qBAAqB,iBAAiB,cAAc,KAAK,GAAG;AAExF,WAAG,OAAO,cAAc;AAAA,MAC5B;AAAA,IACJ;AAAA,EACJ,GAAG,CAAC,iBAAiB,cAAc,CAAC;AACxC;AAOA,SAAS,qBAAqB,MAAe,gBAAgC;AACzE,QAAM,cAAc,KAAK,aAAa,wBAAwB,cAAc,CAAC;AAE7E,SAAO,cAAc,SAAS,aAAa,EAAE,IAAI;AACrD;AAQA,SAAS,qBAAqB,MAAe,gBAAgC;AACzE,QAAM,kBAAkB,wBAAwB,cAAc;AAC9D,QAAM,cAAc,KAAK,aAAa,eAAe;AACrD,QAAM,UAAU,cAAc,SAAS,aAAa,EAAE,IAAI,IAAI;AAC9D,OAAK,aAAa,iBAAiB,QAAQ,SAAA,CAAU;AAErD,SAAO;AACX;AASA,SAAS,qBAAqB,MAAe,gBAAgC;AACzE,QAAM,kBAAkB,wBAAwB,cAAc;AAC9D,QAAM,cAAc,KAAK,aAAa,eAAe;AACrD,QAAM,UAAU,cAAc,SAAS,aAAa,EAAE,IAAI,IAAI;AAE9D,MAAI,UAAU,GAAG;AACb,SAAK,aAAa,iBAAiB,QAAQ,SAAA,CAAU;AAAA,EACzD,OAAO;AACH,SAAK,gBAAgB,eAAe;AAAA,EACxC;AAEA,SAAO;AACX;"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useRef, useEffect } from "react";
|
|
3
|
-
import { c as clsx } from "../../chunks/vendor-
|
|
3
|
+
import { c as clsx } from "../../chunks/vendor-BtZO8a0z.js";
|
|
4
4
|
import { FocusTrapExtended } from "../FocusTrapExtended/FocusTrapExtended.js";
|
|
5
5
|
import { Overlay } from "../Overlay/Overlay.js";
|
|
6
6
|
import { EOverlayDirection } from "../Overlay/OverlayBase.js";
|
|
7
|
-
const topOverlayMask = "
|
|
8
|
-
const topOverlayWrapper = "
|
|
9
|
-
const closing = "
|
|
10
|
-
const opened = "
|
|
11
|
-
const topOverlayPanel = "
|
|
12
|
-
const topOverlay = "
|
|
7
|
+
const topOverlayMask = "topOverlayMask__e2a825d4";
|
|
8
|
+
const topOverlayWrapper = "topOverlayWrapper__7ed52c7b";
|
|
9
|
+
const closing = "closing__7f9793af";
|
|
10
|
+
const opened = "opened__7a650451";
|
|
11
|
+
const topOverlayPanel = "topOverlayPanel__12e58e6e";
|
|
12
|
+
const topOverlay = "topOverlay__031a4317";
|
|
13
13
|
const styles = {
|
|
14
14
|
topOverlayMask,
|
|
15
15
|
topOverlayWrapper,
|
|
@@ -9,8 +9,8 @@ import { TreeViewContext } from "./TreeViewContext.js";
|
|
|
9
9
|
import { TreeViewAbstractNode } from "./TreeViewAbstractNode.js";
|
|
10
10
|
import { TreeViewNode } from "./components/TreeViewNode.js";
|
|
11
11
|
import { TreeViewGroup } from "./components/TreeViewGroup.js";
|
|
12
|
-
import { c as clsx } from "../../chunks/vendor-
|
|
13
|
-
import { s as styles } from "../../chunks/TreeView.module-
|
|
12
|
+
import { c as clsx } from "../../chunks/vendor-BtZO8a0z.js";
|
|
13
|
+
import { s as styles } from "../../chunks/TreeView.module-uRhEW69Z.js";
|
|
14
14
|
const rootNodeId = "rootNode";
|
|
15
15
|
class TreeView extends React.Component {
|
|
16
16
|
constructor(props) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { s as styles } from "../../../chunks/TreeView.module-
|
|
2
|
+
import { s as styles } from "../../../chunks/TreeView.module-uRhEW69Z.js";
|
|
3
3
|
const TreeViewGroup = ({ children, ...props }) => /* @__PURE__ */ jsx("ul", { role: "group", className: styles.treeViewGroup, ...props, children });
|
|
4
4
|
export {
|
|
5
5
|
TreeViewGroup
|
|
@@ -6,8 +6,8 @@ import React from "react";
|
|
|
6
6
|
import { TreeViewContext, withTreeViewContext } from "../TreeViewContext.js";
|
|
7
7
|
import { TreeViewAbstractNode } from "../TreeViewAbstractNode.js";
|
|
8
8
|
import { TreeViewAbstractNodeUtils } from "../TreeViewAbstractNodeUtils.js";
|
|
9
|
-
import { c as clsx } from "../../../chunks/vendor-
|
|
10
|
-
import { s as styles } from "../../../chunks/TreeView.module-
|
|
9
|
+
import { c as clsx } from "../../../chunks/vendor-BtZO8a0z.js";
|
|
10
|
+
import { s as styles } from "../../../chunks/TreeView.module-uRhEW69Z.js";
|
|
11
11
|
class TreeViewNodeWithContext extends React.Component {
|
|
12
12
|
constructor(props) {
|
|
13
13
|
super(props);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import { c as clsx } from "../../chunks/vendor-
|
|
3
|
+
import { c as clsx } from "../../chunks/vendor-BtZO8a0z.js";
|
|
4
4
|
import { ECaptionSize, EFontWeightCaption, EFontType } from "./enums.js";
|
|
5
|
-
import { t as typographyStyles, F as FONT_TYPE_TO_CLASS_NAME_MAP } from "../../chunks/constants-
|
|
5
|
+
import { t as typographyStyles, F as FONT_TYPE_TO_CLASS_NAME_MAP } from "../../chunks/constants-CroH6kNa.js";
|
|
6
6
|
import { getTextDecorationClassName } from "./utils.js";
|
|
7
|
-
const caption = "
|
|
8
|
-
const regular = "
|
|
9
|
-
const semibold = "
|
|
10
|
-
const c1 = "
|
|
11
|
-
const c2 = "
|
|
12
|
-
const d1 = "
|
|
7
|
+
const caption = "caption__662b9e4a";
|
|
8
|
+
const regular = "regular__f77b1cc0";
|
|
9
|
+
const semibold = "semibold__92c5296f";
|
|
10
|
+
const c1 = "c1__89cf3b92";
|
|
11
|
+
const c2 = "c2__75dad325";
|
|
12
|
+
const d1 = "d1__29b4e284";
|
|
13
13
|
const styles = {
|
|
14
14
|
caption,
|
|
15
15
|
regular,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef } from "react";
|
|
3
|
-
import { c as clsx } from "../../chunks/vendor-
|
|
3
|
+
import { c as clsx } from "../../chunks/vendor-BtZO8a0z.js";
|
|
4
4
|
import { EFontType } from "./enums.js";
|
|
5
|
-
import { t as typographyStyles, F as FONT_TYPE_TO_CLASS_NAME_MAP } from "../../chunks/constants-
|
|
5
|
+
import { t as typographyStyles, F as FONT_TYPE_TO_CLASS_NAME_MAP } from "../../chunks/constants-CroH6kNa.js";
|
|
6
6
|
import { getTextDecorationClassName } from "./utils.js";
|
|
7
|
-
const codeText = "
|
|
7
|
+
const codeText = "codeText__a49068ce";
|
|
8
8
|
const styles = {
|
|
9
9
|
codeText
|
|
10
10
|
};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef } from "react";
|
|
3
|
-
import { c as clsx } from "../../chunks/vendor-
|
|
3
|
+
import { c as clsx } from "../../chunks/vendor-BtZO8a0z.js";
|
|
4
4
|
import { ETextSize, EFontWeightText, ELineType, EFontType } from "./enums.js";
|
|
5
|
-
import { t as typographyStyles, F as FONT_TYPE_TO_CLASS_NAME_MAP } from "../../chunks/constants-
|
|
5
|
+
import { t as typographyStyles, F as FONT_TYPE_TO_CLASS_NAME_MAP } from "../../chunks/constants-CroH6kNa.js";
|
|
6
6
|
import { getTextDecorationClassName } from "./utils.js";
|
|
7
|
-
const text = "
|
|
8
|
-
const regular = "
|
|
9
|
-
const semibold = "
|
|
10
|
-
const b1 = "
|
|
11
|
-
const b2 = "
|
|
12
|
-
const b3 = "
|
|
13
|
-
const compact = "
|
|
14
|
-
const b4 = "
|
|
7
|
+
const text = "text__cb8938b2";
|
|
8
|
+
const regular = "regular__f77b1cc0";
|
|
9
|
+
const semibold = "semibold__92c5296f";
|
|
10
|
+
const b1 = "b1__db2d5436";
|
|
11
|
+
const b2 = "b2__00910ba7";
|
|
12
|
+
const b3 = "b3__60777065";
|
|
13
|
+
const compact = "compact__e4960728";
|
|
14
|
+
const b4 = "b4__c0e6181a";
|
|
15
15
|
const styles = {
|
|
16
16
|
text,
|
|
17
17
|
regular,
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import { c as clsx } from "../../chunks/vendor-
|
|
3
|
+
import { c as clsx } from "../../chunks/vendor-BtZO8a0z.js";
|
|
4
4
|
import { ETitleSize, EFontWeightTitle, EFontType } from "./enums.js";
|
|
5
|
-
import { t as typographyStyles, F as FONT_TYPE_TO_CLASS_NAME_MAP } from "../../chunks/constants-
|
|
5
|
+
import { t as typographyStyles, F as FONT_TYPE_TO_CLASS_NAME_MAP } from "../../chunks/constants-CroH6kNa.js";
|
|
6
6
|
import { getTextDecorationClassName } from "./utils.js";
|
|
7
|
-
const title = "
|
|
8
|
-
const regular = "
|
|
9
|
-
const medium = "
|
|
10
|
-
const semibold = "
|
|
11
|
-
const bold = "
|
|
12
|
-
const h1 = "
|
|
13
|
-
const h2 = "
|
|
14
|
-
const h3 = "
|
|
7
|
+
const title = "title__ec6ba2c3";
|
|
8
|
+
const regular = "regular__f77b1cc0";
|
|
9
|
+
const medium = "medium__37f633f1";
|
|
10
|
+
const semibold = "semibold__92c5296f";
|
|
11
|
+
const bold = "bold__fbda34f1";
|
|
12
|
+
const h1 = "h1__f84b28aa";
|
|
13
|
+
const h2 = "h2__4ec8f311";
|
|
14
|
+
const h3 = "h3__e811ebcd";
|
|
15
15
|
const styles = {
|
|
16
16
|
title,
|
|
17
17
|
regular,
|
|
@@ -54,7 +54,7 @@ const Title = React.forwardRef(
|
|
|
54
54
|
getTextDecorationClassName(typographyStyles, underline, strikethrough),
|
|
55
55
|
className
|
|
56
56
|
);
|
|
57
|
-
const Tag = tag ||
|
|
57
|
+
const Tag = tag || size;
|
|
58
58
|
return /* @__PURE__ */ jsx(Tag, { ref, className: classes, ...props, children });
|
|
59
59
|
}
|
|
60
60
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Title.js","sources":["../../../src/components/Typography/Title.tsx"],"sourcesContent":["import React from \"react\";\nimport { clsx } from \"clsx\";\nimport { EFontType, EFontWeightTitle, ETitleSize } from \"./enums\";\nimport { ITypographyProps } from \"./types\";\nimport { FONT_TYPE_TO_CLASS_NAME_MAP } from \"./constants\";\nimport { getTextDecorationClassName } from \"./utils\";\nimport { PolymorphicComponentPropsWithRef } from \"../../types/CoreTypes\";\nimport styles from \"./styles/Title.module.less\";\nimport typographyStyles from \"./styles/Typography.module.less\";\n\n/** Соответствие размера имени класса. */\nconst SIZE_TO_CLASS_NAME_MAP: Record<ETitleSize, string> = {\n [ETitleSize.H1]: styles.h1,\n [ETitleSize.H2]: styles.h2,\n [ETitleSize.H3]: styles.h3,\n};\n\n/** Соответствие веса шрифта имени класса. */\nconst FONT_WEIGHT_TO_CLASS_NAME_MAP: Record<EFontWeightTitle, string> = {\n [EFontWeightTitle.MEDIUM]: styles.medium,\n [EFontWeightTitle.REGULAR]: styles.regular,\n [EFontWeightTitle.SEMIBOLD]: styles.semibold,\n [EFontWeightTitle.BOLD]: styles.bold,\n};\n\ninterface ITitleProps extends ITypographyProps {\n /** Размер текста. */\n size: ETitleSize;\n /** Толщина шрифта. */\n weight?: EFontWeightTitle;\n}\n\n/** Свойства компонента Text. */\nexport type TTitleProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, ITitleProps>;\n\ntype TitleComponent = (<T extends React.ElementType = \"span\">(props: TTitleProps<T>) => React.ReactElement | null) & {\n displayName?: string;\n};\n\n/** Заголовок (типографика). */\nexport const Title: TitleComponent = React.forwardRef(\n <T extends React.ElementType = `h1`>(\n {\n children,\n className,\n size,\n tag,\n weight = EFontWeightTitle.SEMIBOLD,\n type = EFontType.PRIMARY,\n underline,\n strikethrough,\n ...props\n }: TTitleProps<T>,\n ref: React.ForwardedRef<HTMLElement>,\n ) => {\n const classes = clsx(\n typographyStyles.typography,\n styles.title,\n SIZE_TO_CLASS_NAME_MAP[size],\n FONT_WEIGHT_TO_CLASS_NAME_MAP[weight],\n FONT_TYPE_TO_CLASS_NAME_MAP[type],\n getTextDecorationClassName(typographyStyles, underline, strikethrough),\n className,\n );\n\n const Tag: React.ElementType = tag ||
|
|
1
|
+
{"version":3,"file":"Title.js","sources":["../../../src/components/Typography/Title.tsx"],"sourcesContent":["import React from \"react\";\nimport { clsx } from \"clsx\";\nimport { EFontType, EFontWeightTitle, ETitleSize } from \"./enums\";\nimport { ITypographyProps } from \"./types\";\nimport { FONT_TYPE_TO_CLASS_NAME_MAP } from \"./constants\";\nimport { getTextDecorationClassName } from \"./utils\";\nimport { PolymorphicComponentPropsWithRef } from \"../../types/CoreTypes\";\nimport styles from \"./styles/Title.module.less\";\nimport typographyStyles from \"./styles/Typography.module.less\";\n\n/** Соответствие размера имени класса. */\nconst SIZE_TO_CLASS_NAME_MAP: Record<ETitleSize, string> = {\n [ETitleSize.H1]: styles.h1,\n [ETitleSize.H2]: styles.h2,\n [ETitleSize.H3]: styles.h3,\n};\n\n/** Соответствие веса шрифта имени класса. */\nconst FONT_WEIGHT_TO_CLASS_NAME_MAP: Record<EFontWeightTitle, string> = {\n [EFontWeightTitle.MEDIUM]: styles.medium,\n [EFontWeightTitle.REGULAR]: styles.regular,\n [EFontWeightTitle.SEMIBOLD]: styles.semibold,\n [EFontWeightTitle.BOLD]: styles.bold,\n};\n\ninterface ITitleProps extends ITypographyProps {\n /** Размер текста. */\n size: ETitleSize;\n /** Толщина шрифта. */\n weight?: EFontWeightTitle;\n}\n\n/** Свойства компонента Text. */\nexport type TTitleProps<T extends React.ElementType> = PolymorphicComponentPropsWithRef<T, ITitleProps>;\n\ntype TitleComponent = (<T extends React.ElementType = \"span\">(props: TTitleProps<T>) => React.ReactElement | null) & {\n displayName?: string;\n};\n\n/** Заголовок (типографика). */\nexport const Title: TitleComponent = React.forwardRef(\n <T extends React.ElementType = `h1`>(\n {\n children,\n className,\n size,\n tag,\n weight = EFontWeightTitle.SEMIBOLD,\n type = EFontType.PRIMARY,\n underline,\n strikethrough,\n ...props\n }: TTitleProps<T>,\n ref: React.ForwardedRef<HTMLElement>,\n ) => {\n const classes = clsx(\n typographyStyles.typography,\n styles.title,\n SIZE_TO_CLASS_NAME_MAP[size],\n FONT_WEIGHT_TO_CLASS_NAME_MAP[weight],\n FONT_TYPE_TO_CLASS_NAME_MAP[type],\n getTextDecorationClassName(typographyStyles, underline, strikethrough),\n className,\n );\n\n // Значения ETitleSize совпадают с именами тегов (h1/h2/h3), поэтому по умолчанию\n // уровень заголовка следует за размером — как в React 18-ветке.\n const Tag: React.ElementType = tag || size;\n\n return (\n <Tag ref={ref} className={classes} {...props}>\n {children}\n </Tag>\n );\n },\n);\n\nTitle.displayName = \"Title\";\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,yBAAqD;AAAA,EACvD,CAAC,WAAW,EAAE,GAAG,OAAO;AAAA,EACxB,CAAC,WAAW,EAAE,GAAG,OAAO;AAAA,EACxB,CAAC,WAAW,EAAE,GAAG,OAAO;AAC5B;AAGA,MAAM,gCAAkE;AAAA,EACpE,CAAC,iBAAiB,MAAM,GAAG,OAAO;AAAA,EAClC,CAAC,iBAAiB,OAAO,GAAG,OAAO;AAAA,EACnC,CAAC,iBAAiB,QAAQ,GAAG,OAAO;AAAA,EACpC,CAAC,iBAAiB,IAAI,GAAG,OAAO;AACpC;AAiBO,MAAM,QAAwB,MAAM;AAAA,EACvC,CACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS,iBAAiB;AAAA,IAC1B,OAAO,UAAU;AAAA,IACjB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,GAEP,QACC;AACD,UAAM,UAAU;AAAA,MACZ,iBAAiB;AAAA,MACjB,OAAO;AAAA,MACP,uBAAuB,IAAI;AAAA,MAC3B,8BAA8B,MAAM;AAAA,MACpC,4BAA4B,IAAI;AAAA,MAChC,2BAA2B,kBAAkB,WAAW,aAAa;AAAA,MACrE;AAAA,IAAA;AAKJ,UAAM,MAAyB,OAAO;AAEtC,+BACK,KAAA,EAAI,KAAU,WAAW,SAAU,GAAG,OAClC,UACL;AAAA,EAER;AACJ;AAEA,MAAM,cAAc;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import { c as clsx } from "../../chunks/vendor-
|
|
3
|
+
import { c as clsx } from "../../chunks/vendor-BtZO8a0z.js";
|
|
4
4
|
import { UnorderedListItem } from "./UnorderedListItem.js";
|
|
5
|
-
const unorderedList = "
|
|
5
|
+
const unorderedList = "unorderedList__fbea280c";
|
|
6
6
|
const styles = {
|
|
7
7
|
unorderedList
|
|
8
8
|
};
|
|
@@ -12,7 +12,7 @@ const UnorderedList = Object.assign(
|
|
|
12
12
|
{
|
|
13
13
|
className: clsx(styles.unorderedList, className),
|
|
14
14
|
...restProps,
|
|
15
|
-
"data-tx": "0.
|
|
15
|
+
"data-tx": "0.41.0",
|
|
16
16
|
ref
|
|
17
17
|
}
|
|
18
18
|
)),
|