@cntrl-site/components 0.1.6-18 → 0.1.6-20

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.
@@ -1 +1 @@
1
- .ControlSlider-module__wrapper___sHEkd{position:relative;width:100%;height:100%}.ControlSlider-module__slider___R3i9-{width:100%;height:100%}.ControlSlider-module__sliderItems___1MgPL{display:flex;overflow:hidden;width:100%;height:100%;transition:transform .3s ease-in-out}.ControlSlider-module__sliderItem___QQSkR{width:100%;height:100%;display:flex;position:relative}.ControlSlider-module__sliderImage___9hRl-{width:100%;height:100%;object-fit:cover}.ControlSlider-module__arrow___05ghY{position:absolute;display:flex;align-items:center;justify-content:center;border:none;background-color:transparent;top:50%;left:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);z-index:1;transform:translate(-50%,-50%);padding:0;width:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw);height:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw)}.ControlSlider-module__arrow___05ghY.ControlSlider-module__arrowVertical___tBfVN{left:50%;top:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(-50%,-50%)}.ControlSlider-module__nextArrow___-30Yc{left:unset;right:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(50%,-50%)}.ControlSlider-module__nextArrow___-30Yc.ControlSlider-module__arrowVertical___tBfVN{left:50%;right:unset;top:unset;bottom:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(-50%,50%)}.ControlSlider-module__arrowInner___aEra3{all:unset;cursor:pointer;width:100%;height:100%}.ControlSlider-module__arrowInner___aEra3:hover .ControlSlider-module__arrowIcon___S4ztF path{fill:var(--arrow-hover-color)!important}.ControlSlider-module__arrowImg___2dwJW{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ControlSlider-module__arrowIcon___S4ztF{width:100%;height:100%}.ControlSlider-module__arrowIcon___S4ztF path{transition:fill .15s ease-in-out}.ControlSlider-module__mirror___brd6U{transform:translate(-50%,-50%) scaleX(-1)!important}.ControlSlider-module__arrowVertical___tBfVN.ControlSlider-module__mirror___brd6U{transform:translate(-50%,-50%) scaleY(-1)!important}.ControlSlider-module__pagination___bicLF{position:absolute;z-index:1;border-radius:50%}.ControlSlider-module__paginationInner___bT-P-{display:flex;gap:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);padding-top:calc(var(--is-editor, 0) * .6944444444vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * .6944444444vw);padding-bottom:calc(var(--is-editor, 0) * .6944444444vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * .6944444444vw);padding-left:calc(var(--is-editor, 0) * 1.25vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.25vw);padding-right:calc(var(--is-editor, 0) * 1.25vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.25vw);border-radius:calc(var(--is-editor, 0) * 2.3611111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.3611111111vw)}.ControlSlider-module__paginationVertical___zYqKw{flex-direction:column}.ControlSlider-module__paginationItem___nTRbk{all:unset;flex-shrink:0;position:relative;width:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);height:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);cursor:pointer}.ControlSlider-module__paginationItem___nTRbk:hover .ControlSlider-module__dot___p1Qun{background-color:var(--pagination-hover-color)!important}.ControlSlider-module__dot___p1Qun{border-radius:50%;scale:.5;transition:background-color .3s ease-in-out,transform .3s ease-in-out;width:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);height:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw)}.ControlSlider-module__activeDot___LHFaj{transform:scale(2)}.ControlSlider-module__paginationInsideBottom___R3FWn{bottom:0;left:50%;transform:translate(-50%)}.ControlSlider-module__paginationInsideTop___V-qb-{left:50%;transform:translate(-50%);top:0}.ControlSlider-module__paginationOutsideBottom___14w8D{left:50%;transform:translate(-50%);bottom:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationOutsideTop___SCLqB{left:50%;transform:translate(-50%);top:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationInsideLeft___yOBRZ{top:50%;transform:translateY(-50%);left:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationInsideRight___Rtt3o{top:50%;transform:translateY(-50%);right:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationOutsideLeft___lahaw{top:50%;transform:translateY(-50%);left:calc(var(--is-editor, 0) * -5.4861111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -5.4861111111vw)}.ControlSlider-module__paginationOutsideRight___EtuQa{top:50%;transform:translateY(-50%);right:calc(var(--is-editor, 0) * -5.4861111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -5.4861111111vw)}.ControlSlider-module__imgWrapper___UjEgB,.ControlSlider-module__wrapperInner___DLAWV{width:100%;height:100%}.ControlSlider-module__captionBlock___dJ6-j{pointer-events:none;position:absolute;top:0;z-index:1;left:0;right:0;bottom:0}.ControlSlider-module__captionTextWrapper___HFlpf{position:relative;width:100%;height:100%}.ControlSlider-module__captionText___uGBVc{pointer-events:none;max-width:100%;transition-property:opacity;transition-timing-function:ease-in-out;position:absolute;display:inline-block;white-space:pre-wrap;overflow-wrap:break-word;opacity:0}.ControlSlider-module__captionText___uGBVc.ControlSlider-module__active___WZK4G{opacity:1}.ControlSlider-module__withPointerEvents___t-18M{pointer-events:auto}.ControlSlider-module__absolute___KxmYB{position:absolute}.ControlSlider-module__topLeftAlignment___zjnGM{top:0;left:0}.ControlSlider-module__topCenterAlignment___gD1xW{top:0;left:50%;transform:translate(-50%)}.ControlSlider-module__topRightAlignment___NMapS{top:0;right:0}.ControlSlider-module__middleLeftAlignment___OnUrY{top:50%;transform:translateY(-50%);left:0}.ControlSlider-module__middleCenterAlignment___Tdkl0{top:50%;transform:translate(-50%,-50%);left:50%}.ControlSlider-module__middleRightAlignment___wEbfX{top:50%;transform:translateY(-50%);right:0}.ControlSlider-module__bottomLeftAlignment___cTP2-{bottom:0;left:0}.ControlSlider-module__bottomCenterAlignment___c54fB{bottom:0;left:50%;transform:translate(-50%)}.ControlSlider-module__bottomRightAlignment___kEwrz{bottom:0;right:0}.ControlSlider-module__clickOverlay___DZA28{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.ControlSlider-module__contain___pLyq7{object-fit:contain}.ControlSlider-module__cover___KdDat{object-fit:cover}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}.RichTextRenderer-module__link___BWeZ2{color:inherit;cursor:pointer;pointer-events:auto;transition:color .2s ease}.RichTextRenderer-module__link___BWeZ2:hover{color:var(--link-hover-color)}.SvgImage-module__svg___q3xE-{width:100%;height:100%;color:transparent;display:inline-block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--fill);transition:background-color .2s;-webkit-mask:var(--svg) no-repeat center/contain;mask:var(--svg) no-repeat center/contain}.SvgImage-module__svg___q3xE-:hover{background-color:var(--hover-fill)}.SvgImage-module__img___VsTm-{width:100%;height:100%;object-fit:contain}.ImageRevealSlider-module__imageRevealSlider___UE5Ob{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.ImageRevealSlider-module__image___Qjt-e{width:100%;height:100%;object-fit:cover;position:relative;-webkit-user-select:none;user-select:none;pointer-events:none}.ImageRevealSlider-module__link___N-iLG{width:100%;height:100%;display:block}.ImageRevealSlider-module__cursor___2U03d{position:absolute;top:0;left:0;pointer-events:none}.LightBox-module__heroImage___sTxNF{width:100%;height:100%;cursor:pointer;object-fit:cover}.LightBox-module__background___rm9ml{position:fixed;z-index:9997;top:0;left:0;right:0;bottom:0;width:100%;height:100%}.LightBox-module__editor___4ACaY{width:var(--cntrl-article-width)!important;margin-left:auto;margin-right:auto}.LightBox-module__contentStyle___Bgnsq{position:fixed;z-index:9999;top:0;left:0;right:0;bottom:0;overflow:auto;background:transparent;box-sizing:border-box}.LightBox-module__imageStyle___tLIlB{position:relative;display:block;cursor:pointer;background-color:transparent;max-width:100%;max-height:100%;width:auto;height:auto}.LightBox-module__imgWrapper___LuFUp{position:relative;display:flex;width:100%;height:100%;overflow:hidden;box-sizing:border-box}.LightBox-module__contain___8-yaS{object-fit:contain;max-width:100%;max-height:100%}.LightBox-module__cover___hNvOG{width:100%;height:100%;object-fit:cover}.LightBox-module__caption___b6L2I{z-index:9999;position:absolute;display:flex}.LightBox-module__captionTextInner___rCGNH{position:relative}.LightBox-module__lightboxSplide___XFuWC.splide,.LightBox-module__lightboxSplide___XFuWC .splide__track{height:100%}.LightBox-module__arrow___iz38X{position:absolute;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;background-color:transparent;top:50%;z-index:1;transform:translate(-50%,-50%);padding:0;left:calc(var(--is-editor, 0) * 1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.3888888889vw);width:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw);height:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw)}.LightBox-module__arrow___iz38X.LightBox-module__arrowVertical___Zfz81{left:50%;top:calc(var(--is-editor, 0) * 1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.3888888889vw);transform:translate(-50%,-50%)}.LightBox-module__nextArrow___zkAQN{left:unset;right:calc(var(--is-editor, 0) * 1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.3888888889vw);transform:translate(50%,-50%)}.LightBox-module__nextArrow___zkAQN.LightBox-module__arrowVertical___Zfz81{left:50%;right:unset;top:unset;bottom:calc(var(--is-editor, 0) * 1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.3888888889vw);transform:translate(-50%,50%)}.LightBox-module__arrowInner___p48sW{all:unset;cursor:pointer;width:100%;height:100%}.LightBox-module__arrowInner___p48sW:hover .LightBox-module__arrowIcon___3VaFf path{fill:var(--arrow-hover-color)!important}.LightBox-module__arrowImg___pNV88{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.LightBox-module__mirror___pjeXc{transform:translate(-50%,-50%) scaleX(-1)!important}.LightBox-module__arrowVertical___Zfz81.LightBox-module__mirror___pjeXc{transform:translate(-50%,-50%) scaleY(-1)!important}.LightBox-module__thumbsContainerVertical___wttk5{flex-direction:column;display:flex}.LightBox-module__thumbsContainer___osSma{display:flex;align-items:center;justify-content:center;pointer-events:auto}.LightBox-module__thumbsAlignStart___MO6tY{align-items:flex-start}.LightBox-module__thumbsAlignCenter___Q4sUx{align-items:center}.LightBox-module__thumbsAlignEnd___p4y9R{align-items:flex-end}.LightBox-module__thumbItem___HvnF3{all:unset;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;transition:transform .1s ease,opacity .1s ease}.LightBox-module__thumbItem___HvnF3:hover{opacity:var(--thumb-hover)!important}.LightBox-module__closeButton___g2khP{all:unset;cursor:pointer;position:absolute;width:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw);height:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw)}@keyframes LightBox-module__lbFadeIn___P8mx0{0%{opacity:0}to{opacity:1}}.LightBox-module__fadeIn___0m5GW{animation-name:LightBox-module__lbFadeIn___P8mx0}@keyframes LightBox-module__lbSlideInLeft___ygsXZ{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes LightBox-module__lbSlideInRight___w2YKV{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes LightBox-module__lbSlideInTop___W7CSQ{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes LightBox-module__lbSlideInBottom___7kiT2{0%{transform:translateY(100%)}to{transform:translateY(0)}}.LightBox-module__slideInLeft___gPYwC{animation-name:LightBox-module__lbSlideInLeft___ygsXZ}.LightBox-module__slideInRight___S-pPp{animation-name:LightBox-module__lbSlideInRight___w2YKV}.LightBox-module__slideInTop___DFdAj{animation-name:LightBox-module__lbSlideInTop___W7CSQ}.LightBox-module__slideInBottom___m27kZ{animation-name:LightBox-module__lbSlideInBottom___7kiT2}@keyframes LightBox-module__lbFadeOut___MhEeN{0%{opacity:1}to{opacity:0}}.LightBox-module__fadeOut___55qBR{animation-name:LightBox-module__lbFadeOut___MhEeN!important}@keyframes LightBox-module__lbSlideOutLeft___xM4sO{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes LightBox-module__lbSlideOutRight___Jppgj{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes LightBox-module__lbSlideOutTop___pvscE{0%{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes LightBox-module__lbSlideOutBottom___oFjPG{0%{transform:translateY(0)}to{transform:translateY(100%)}}.LightBox-module__slideOutLeft___NvU7P{animation-name:LightBox-module__lbSlideOutLeft___xM4sO!important}.LightBox-module__slideOutRight___SK7eC{animation-name:LightBox-module__lbSlideOutRight___Jppgj!important}.LightBox-module__slideOutTop___Vgg0z{animation-name:LightBox-module__lbSlideOutTop___pvscE!important}.LightBox-module__slideOutBottom___nJ0Ef{animation-name:LightBox-module__lbSlideOutBottom___oFjPG!important}.LightBox-module__lightboxSplide___XFuWC.splide--fade .LightBox-module__scaleSlide___vZriG{opacity:0!important;transform:var(--position-transform, none) scale(.9)!important;transition:opacity var(--splide-speed, .5s) ease,transform var(--splide-speed, .5s) ease!important}.LightBox-module__lightboxSplide___XFuWC.splide--fade .splide__slide.is-active .LightBox-module__scaleSlide___vZriG{opacity:1!important;transform:var(--position-transform, none) scale(1)!important}.LightBox-module__lightboxSplide___XFuWC.splide--fade .splide__slide:not(.is-active) .LightBox-module__scaleSlide___vZriG{opacity:0!important;transform:var(--position-transform, none) scale(1.1)!important}
1
+ .ControlSlider-module__wrapper___sHEkd{position:relative;width:100%;height:100%}.ControlSlider-module__slider___R3i9-{width:100%;height:100%}.ControlSlider-module__sliderItems___1MgPL{display:flex;overflow:hidden;width:100%;height:100%;transition:transform .3s ease-in-out}.ControlSlider-module__sliderItem___QQSkR{width:100%;height:100%;display:flex;position:relative}.ControlSlider-module__sliderImage___9hRl-{width:100%;height:100%;object-fit:cover}.ControlSlider-module__arrow___05ghY{position:absolute;display:flex;align-items:center;justify-content:center;border:none;background-color:transparent;top:50%;left:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);z-index:1;transform:translate(-50%,-50%);padding:0;width:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw);height:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw)}.ControlSlider-module__arrow___05ghY.ControlSlider-module__arrowVertical___tBfVN{left:50%;top:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(-50%,-50%)}.ControlSlider-module__nextArrow___-30Yc{left:unset;right:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(50%,-50%)}.ControlSlider-module__nextArrow___-30Yc.ControlSlider-module__arrowVertical___tBfVN{left:50%;right:unset;top:unset;bottom:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(-50%,50%)}.ControlSlider-module__arrowInner___aEra3{all:unset;cursor:pointer;width:100%;height:100%}.ControlSlider-module__arrowInner___aEra3:hover .ControlSlider-module__arrowIcon___S4ztF path{fill:var(--arrow-hover-color)!important}.ControlSlider-module__arrowImg___2dwJW{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ControlSlider-module__arrowIcon___S4ztF{width:100%;height:100%}.ControlSlider-module__arrowIcon___S4ztF path{transition:fill .15s ease-in-out}.ControlSlider-module__mirror___brd6U{transform:translate(-50%,-50%) scaleX(-1)!important}.ControlSlider-module__arrowVertical___tBfVN.ControlSlider-module__mirror___brd6U{transform:translate(-50%,-50%) scaleY(-1)!important}.ControlSlider-module__pagination___bicLF{position:absolute;z-index:1;border-radius:50%}.ControlSlider-module__paginationInner___bT-P-{display:flex;gap:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);padding-top:calc(var(--is-editor, 0) * .6944444444vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * .6944444444vw);padding-bottom:calc(var(--is-editor, 0) * .6944444444vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * .6944444444vw);padding-left:calc(var(--is-editor, 0) * 1.25vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.25vw);padding-right:calc(var(--is-editor, 0) * 1.25vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.25vw);border-radius:calc(var(--is-editor, 0) * 2.3611111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.3611111111vw)}.ControlSlider-module__paginationVertical___zYqKw{flex-direction:column}.ControlSlider-module__paginationItem___nTRbk{all:unset;flex-shrink:0;position:relative;width:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);height:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);cursor:pointer}.ControlSlider-module__paginationItem___nTRbk:hover .ControlSlider-module__dot___p1Qun{background-color:var(--pagination-hover-color)!important}.ControlSlider-module__dot___p1Qun{border-radius:50%;scale:.5;transition:background-color .3s ease-in-out,transform .3s ease-in-out;width:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);height:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw)}.ControlSlider-module__activeDot___LHFaj{transform:scale(2)}.ControlSlider-module__paginationInsideBottom___R3FWn{bottom:0;left:50%;transform:translate(-50%)}.ControlSlider-module__paginationInsideTop___V-qb-{left:50%;transform:translate(-50%);top:0}.ControlSlider-module__paginationOutsideBottom___14w8D{left:50%;transform:translate(-50%);bottom:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationOutsideTop___SCLqB{left:50%;transform:translate(-50%);top:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationInsideLeft___yOBRZ{top:50%;transform:translateY(-50%);left:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationInsideRight___Rtt3o{top:50%;transform:translateY(-50%);right:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationOutsideLeft___lahaw{top:50%;transform:translateY(-50%);left:calc(var(--is-editor, 0) * -5.4861111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -5.4861111111vw)}.ControlSlider-module__paginationOutsideRight___EtuQa{top:50%;transform:translateY(-50%);right:calc(var(--is-editor, 0) * -5.4861111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -5.4861111111vw)}.ControlSlider-module__imgWrapper___UjEgB,.ControlSlider-module__wrapperInner___DLAWV{width:100%;height:100%}.ControlSlider-module__captionBlock___dJ6-j{pointer-events:none;position:absolute;top:0;z-index:1;left:0;right:0;bottom:0}.ControlSlider-module__captionTextWrapper___HFlpf{position:relative;width:100%;height:100%}.ControlSlider-module__captionText___uGBVc{pointer-events:none;max-width:100%;transition-property:opacity;transition-timing-function:ease-in-out;position:absolute;display:inline-block;white-space:pre-wrap;overflow-wrap:break-word;opacity:0}.ControlSlider-module__captionText___uGBVc.ControlSlider-module__active___WZK4G{opacity:1}.ControlSlider-module__withPointerEvents___t-18M{pointer-events:auto}.ControlSlider-module__absolute___KxmYB{position:absolute}.ControlSlider-module__topLeftAlignment___zjnGM{top:0;left:0}.ControlSlider-module__topCenterAlignment___gD1xW{top:0;left:50%;transform:translate(-50%)}.ControlSlider-module__topRightAlignment___NMapS{top:0;right:0}.ControlSlider-module__middleLeftAlignment___OnUrY{top:50%;transform:translateY(-50%);left:0}.ControlSlider-module__middleCenterAlignment___Tdkl0{top:50%;transform:translate(-50%,-50%);left:50%}.ControlSlider-module__middleRightAlignment___wEbfX{top:50%;transform:translateY(-50%);right:0}.ControlSlider-module__bottomLeftAlignment___cTP2-{bottom:0;left:0}.ControlSlider-module__bottomCenterAlignment___c54fB{bottom:0;left:50%;transform:translate(-50%)}.ControlSlider-module__bottomRightAlignment___kEwrz{bottom:0;right:0}.ControlSlider-module__clickOverlay___DZA28{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.ControlSlider-module__contain___pLyq7{object-fit:contain}.ControlSlider-module__cover___KdDat{object-fit:cover}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}.RichTextRenderer-module__link___BWeZ2{color:inherit;cursor:pointer;pointer-events:auto;transition:color .2s ease}.RichTextRenderer-module__link___BWeZ2:hover{color:var(--link-hover-color)}.SvgImage-module__svg___q3xE-{width:100%;height:100%;color:transparent;display:inline-block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--fill);transition:background-color .2s;-webkit-mask:var(--svg) no-repeat center/contain;mask:var(--svg) no-repeat center/contain}.SvgImage-module__svg___q3xE-:hover{background-color:var(--hover-fill)}.SvgImage-module__img___VsTm-{width:100%;height:100%;object-fit:contain}.ImageRevealSlider-module__imageRevealSlider___UE5Ob{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.ImageRevealSlider-module__image___Qjt-e{display:block;width:100%;height:100%;object-fit:cover;position:relative;-webkit-user-select:none;user-select:none;pointer-events:none}.ImageRevealSlider-module__link___N-iLG{width:100%;height:100%;display:block}.ImageRevealSlider-module__cursor___2U03d{position:absolute;top:0;left:0;pointer-events:none}.LightBox-module__heroImage___sTxNF{width:100%;height:100%;cursor:pointer;object-fit:cover}.LightBox-module__background___rm9ml{position:fixed;z-index:9997;top:0;left:0;right:0;bottom:0;width:100%;height:100%}.LightBox-module__editor___4ACaY{width:var(--cntrl-article-width)!important;margin-left:auto;margin-right:auto}.LightBox-module__contentStyle___Bgnsq{position:fixed;z-index:9999;top:0;left:0;right:0;bottom:0;overflow:auto;background:transparent;box-sizing:border-box}.LightBox-module__imageStyle___tLIlB{position:relative;display:block;cursor:pointer;background-color:transparent;max-width:100%;max-height:100%;width:auto;height:auto}.LightBox-module__imgWrapper___LuFUp{position:relative;display:flex;width:100%;height:100%;overflow:hidden;box-sizing:border-box}.LightBox-module__contain___8-yaS{object-fit:contain;max-width:100%;max-height:100%}.LightBox-module__cover___hNvOG{width:100%;height:100%;object-fit:cover}.LightBox-module__caption___b6L2I{z-index:9999;position:absolute;display:flex}.LightBox-module__captionTextInner___rCGNH{position:relative}.LightBox-module__lightboxSplide___XFuWC.splide,.LightBox-module__lightboxSplide___XFuWC .splide__track{height:100%}.LightBox-module__arrow___iz38X{position:absolute;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;background-color:transparent;top:50%;z-index:1;transform:translate(-50%,-50%);padding:0;left:calc(var(--is-editor, 0) * 1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.3888888889vw);width:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw);height:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw)}.LightBox-module__arrow___iz38X.LightBox-module__arrowVertical___Zfz81{left:50%;top:calc(var(--is-editor, 0) * 1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.3888888889vw);transform:translate(-50%,-50%)}.LightBox-module__nextArrow___zkAQN{left:unset;right:calc(var(--is-editor, 0) * 1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.3888888889vw);transform:translate(50%,-50%)}.LightBox-module__nextArrow___zkAQN.LightBox-module__arrowVertical___Zfz81{left:50%;right:unset;top:unset;bottom:calc(var(--is-editor, 0) * 1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.3888888889vw);transform:translate(-50%,50%)}.LightBox-module__arrowInner___p48sW{all:unset;cursor:pointer;width:100%;height:100%}.LightBox-module__arrowInner___p48sW:hover .LightBox-module__arrowIcon___3VaFf path{fill:var(--arrow-hover-color)!important}.LightBox-module__arrowImg___pNV88{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.LightBox-module__mirror___pjeXc{transform:translate(-50%,-50%) scaleX(-1)!important}.LightBox-module__arrowVertical___Zfz81.LightBox-module__mirror___pjeXc{transform:translate(-50%,-50%) scaleY(-1)!important}.LightBox-module__thumbsContainerVertical___wttk5{flex-direction:column;display:flex}.LightBox-module__thumbsContainer___osSma{display:flex;align-items:center;justify-content:center;pointer-events:auto}.LightBox-module__thumbsAlignStart___MO6tY{align-items:flex-start}.LightBox-module__thumbsAlignCenter___Q4sUx{align-items:center}.LightBox-module__thumbsAlignEnd___p4y9R{align-items:flex-end}.LightBox-module__thumbItem___HvnF3{all:unset;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;transition:transform .1s ease,opacity .1s ease}.LightBox-module__thumbItem___HvnF3:hover{opacity:var(--thumb-hover)!important}.LightBox-module__closeButton___g2khP{all:unset;cursor:pointer;position:absolute;width:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw);height:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw)}@keyframes LightBox-module__lbFadeIn___P8mx0{0%{opacity:0}to{opacity:1}}.LightBox-module__fadeIn___0m5GW{animation-name:LightBox-module__lbFadeIn___P8mx0}@keyframes LightBox-module__lbSlideInLeft___ygsXZ{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes LightBox-module__lbSlideInRight___w2YKV{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes LightBox-module__lbSlideInTop___W7CSQ{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes LightBox-module__lbSlideInBottom___7kiT2{0%{transform:translateY(100%)}to{transform:translateY(0)}}.LightBox-module__slideInLeft___gPYwC{animation-name:LightBox-module__lbSlideInLeft___ygsXZ}.LightBox-module__slideInRight___S-pPp{animation-name:LightBox-module__lbSlideInRight___w2YKV}.LightBox-module__slideInTop___DFdAj{animation-name:LightBox-module__lbSlideInTop___W7CSQ}.LightBox-module__slideInBottom___m27kZ{animation-name:LightBox-module__lbSlideInBottom___7kiT2}@keyframes LightBox-module__lbFadeOut___MhEeN{0%{opacity:1}to{opacity:0}}.LightBox-module__fadeOut___55qBR{animation-name:LightBox-module__lbFadeOut___MhEeN!important}@keyframes LightBox-module__lbSlideOutLeft___xM4sO{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes LightBox-module__lbSlideOutRight___Jppgj{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes LightBox-module__lbSlideOutTop___pvscE{0%{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes LightBox-module__lbSlideOutBottom___oFjPG{0%{transform:translateY(0)}to{transform:translateY(100%)}}.LightBox-module__slideOutLeft___NvU7P{animation-name:LightBox-module__lbSlideOutLeft___xM4sO!important}.LightBox-module__slideOutRight___SK7eC{animation-name:LightBox-module__lbSlideOutRight___Jppgj!important}.LightBox-module__slideOutTop___Vgg0z{animation-name:LightBox-module__lbSlideOutTop___pvscE!important}.LightBox-module__slideOutBottom___nJ0Ef{animation-name:LightBox-module__lbSlideOutBottom___oFjPG!important}.LightBox-module__lightboxSplide___XFuWC.splide--fade .LightBox-module__scaleSlide___vZriG{opacity:0!important;transform:var(--position-transform, none) scale(.9)!important;transition:opacity var(--splide-speed, .5s) ease,transform var(--splide-speed, .5s) ease!important}.LightBox-module__lightboxSplide___XFuWC.splide--fade .splide__slide.is-active .LightBox-module__scaleSlide___vZriG{opacity:1!important;transform:var(--position-transform, none) scale(1)!important}.LightBox-module__lightboxSplide___XFuWC.splide--fade .splide__slide:not(.is-active) .LightBox-module__scaleSlide___vZriG{opacity:0!important;transform:var(--position-transform, none) scale(1.1)!important}
package/dist/index.js CHANGED
@@ -4,7 +4,6 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
5
  const reactSplide = require("@splidejs/react-splide");
6
6
  const cn = require("classnames");
7
- const framerMotion = require("framer-motion");
8
7
  const reactDom = require("react-dom");
9
8
  const wrapper = "ControlSlider-module__wrapper___sHEkd";
10
9
  const sliderItem = "ControlSlider-module__sliderItem___QQSkR";
@@ -1041,16 +1040,13 @@ const ControlSliderComponent = {
1041
1040
  const imageRevealSlider = "ImageRevealSlider-module__imageRevealSlider___UE5Ob";
1042
1041
  const image = "ImageRevealSlider-module__image___Qjt-e";
1043
1042
  const link = "ImageRevealSlider-module__link___N-iLG";
1044
- const cursor = "ImageRevealSlider-module__cursor___2U03d";
1045
1043
  const styles = {
1046
1044
  imageRevealSlider,
1047
1045
  image,
1048
- link,
1049
- cursor
1046
+ link
1050
1047
  };
1051
1048
  function isMouseOverImage(mouseX, mouseY, placedImages) {
1052
- for (let i = placedImages.length - 1; i >= 0; i--) {
1053
- const img2 = placedImages[i];
1049
+ for (const img2 of placedImages) {
1054
1050
  const imgEl = new Image();
1055
1051
  imgEl.src = img2.url;
1056
1052
  const imgWidth = img2.width ? Number.parseFloat(img2.width) : imgEl.naturalWidth;
@@ -1058,10 +1054,10 @@ function isMouseOverImage(mouseX, mouseY, placedImages) {
1058
1054
  const halfW = imgWidth / 2;
1059
1055
  const halfH = imgHeight / 2;
1060
1056
  if (mouseX >= img2.x - halfW && mouseX <= img2.x + halfW && mouseY >= img2.y - halfH && mouseY <= img2.y + halfH) {
1061
- return { isOverImage: true, hasLink: img2.link.length > 0 };
1057
+ return true;
1062
1058
  }
1063
1059
  }
1064
- return { isOverImage: false, hasLink: false };
1060
+ return false;
1065
1061
  }
1066
1062
  function getImageSize(url) {
1067
1063
  return new Promise((resolve) => {
@@ -1095,75 +1091,79 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1095
1091
  const [placedImages, setPlacedImages] = React.useState([]);
1096
1092
  const [counter, setCounter] = React.useState(0);
1097
1093
  const imageIdCounter = React.useRef(0);
1098
- const defaultImageCount = 1;
1099
- const cursorX = framerMotion.useMotionValue(0);
1100
- const cursorY = framerMotion.useMotionValue(0);
1101
1094
  const defaultScale = 32;
1102
- const cursorW = framerMotion.useMotionValue(32);
1103
- const cursorH = framerMotion.useMotionValue(32);
1095
+ const [cursorPos, setCursorPos] = React.useState({ x: -100, y: -100 });
1096
+ const [cursorSize, setCursorSize] = React.useState({ w: 32, h: 32 });
1104
1097
  const [customCursorImg, setCustomCursorImg] = React.useState("none");
1098
+ const lastMousePos = React.useRef({ x: 0, y: 0 });
1099
+ const [isInside, setIsInside] = React.useState(false);
1105
1100
  React.useEffect(() => {
1106
1101
  if (!divRef) return;
1102
+ const updateCursorPosition = (clientX, clientY) => {
1103
+ const rect = divRef.getBoundingClientRect();
1104
+ setCursorPos({
1105
+ x: clientX - cursorSize.w / 2 - rect.left,
1106
+ y: clientY - cursorSize.h / 2 - rect.top
1107
+ });
1108
+ };
1107
1109
  const mouseMove = (e) => {
1108
1110
  e.stopPropagation();
1109
- const divRect = divRef.getBoundingClientRect();
1110
- cursorX.set(e.clientX - cursorW.get() / 2 - divRect.left);
1111
- cursorY.set(e.clientY - cursorH.get() / 2 - divRect.top);
1112
- console.log(e);
1111
+ lastMousePos.current = { x: e.clientX, y: e.clientY };
1112
+ updateCursorPosition(e.clientX, e.clientY);
1113
+ };
1114
+ const handleScroll = () => {
1115
+ if (!isInside) return;
1116
+ updateCursorPosition(lastMousePos.current.x, lastMousePos.current.y);
1113
1117
  };
1114
1118
  divRef.addEventListener("mousemove", mouseMove);
1115
- return () => divRef.removeEventListener("mousemove", mouseMove);
1116
- }, [cursorX, cursorY, cursorW, cursorH, divRef]);
1119
+ window.addEventListener("scroll", handleScroll, true);
1120
+ return () => {
1121
+ divRef.removeEventListener("mousemove", mouseMove);
1122
+ window.removeEventListener("scroll", handleScroll, true);
1123
+ };
1124
+ }, [divRef, cursorSize, isInside]);
1125
+ React.useEffect(() => {
1126
+ if (!isInside) {
1127
+ setCustomCursorImg("none");
1128
+ setCursorSize({ w: 0, h: 0 });
1129
+ }
1130
+ }, [isInside]);
1117
1131
  const { sizeType, imageWidth: customWidth, randomRangeImageWidth: randomRange } = settings.imageSize;
1118
1132
  const { revealPosition, visible, target } = settings.position;
1119
1133
  const { cursorType, defaultCursorScale, defaultCursor, hoverCursorScale, hoverCursor } = settings.cursor;
1120
1134
  React.useEffect(() => {
1121
1135
  const updateCursor = () => {
1136
+ if (!divRef) return;
1122
1137
  if (cursorType === "system") {
1123
1138
  setCustomCursorImg("none");
1124
- cursorW.set(defaultScale);
1125
- cursorH.set(defaultScale);
1139
+ setCursorSize({ w: defaultScale, h: defaultScale });
1126
1140
  return;
1127
1141
  }
1128
- const elUnderCursor = document.elementFromPoint(cursorX.get() + cursorW.get() / 2, cursorY.get() + cursorH.get() / 2);
1129
- if (elUnderCursor && elUnderCursor.closest("a.link")) {
1142
+ const cx = cursorPos.x + cursorSize.w / 2;
1143
+ const cy = cursorPos.y + cursorSize.h / 2;
1144
+ const rect = divRef.getBoundingClientRect();
1145
+ const el = document.elementFromPoint(
1146
+ rect.left + cx,
1147
+ rect.top + cy
1148
+ );
1149
+ if (el && el.closest("a")) {
1130
1150
  setCustomCursorImg("none");
1131
- cursorW.set(defaultScale);
1132
- cursorH.set(defaultScale);
1151
+ setCursorSize({ w: defaultScale, h: defaultScale });
1133
1152
  return;
1134
1153
  }
1135
- if (target === "area") {
1136
- setCustomCursorImg(hoverCursor || "none");
1137
- cursorW.set(defaultScale * hoverCursorScale || 1);
1138
- cursorH.set(defaultScale * hoverCursorScale || 1);
1139
- } else if (isMouseOverImage(cursorX.get() + cursorW.get() / 2, cursorY.get() + cursorH.get() / 2, placedImages)) {
1140
- setCustomCursorImg(hoverCursor || "none");
1141
- cursorW.set(defaultScale * hoverCursorScale || 1);
1142
- cursorH.set(defaultScale * hoverCursorScale || 1);
1143
- } else {
1144
- setCustomCursorImg(defaultCursor || "none");
1145
- cursorW.set(defaultScale * defaultCursorScale || 1);
1146
- cursorH.set(defaultScale * defaultCursorScale || 1);
1147
- }
1154
+ const next = isMouseOverImage(cx, cy, placedImages) || target === "area" ? { img: hoverCursor ?? "none", w: defaultScale * (hoverCursorScale || 1), h: defaultScale * (hoverCursorScale || 1) } : { img: defaultCursor ?? "none", w: defaultScale * (defaultCursorScale || 1), h: defaultScale * (defaultCursorScale || 1) };
1155
+ setCustomCursorImg(next.img);
1156
+ setCursorSize({ w: next.w, h: next.h });
1148
1157
  };
1149
- const unsubscribeX = cursorX.onChange(updateCursor);
1150
- const unsubscribeY = cursorY.onChange(updateCursor);
1151
1158
  updateCursor();
1152
- return () => {
1153
- unsubscribeX();
1154
- unsubscribeY();
1155
- };
1156
1159
  }, [
1160
+ cursorPos,
1157
1161
  cursorType,
1158
1162
  target,
1159
1163
  hoverCursor,
1160
1164
  defaultCursor,
1161
1165
  hoverCursorScale,
1162
1166
  defaultCursorScale,
1163
- cursorX,
1164
- cursorY,
1165
- cursorW,
1166
- cursorH,
1167
1167
  placedImages
1168
1168
  ]);
1169
1169
  const createNewImage = async (imgData, containerWidth, containerHeight, position = {}) => {
@@ -1194,7 +1194,7 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1194
1194
  };
1195
1195
  };
1196
1196
  const defaultContentUrls = React.useMemo(() => {
1197
- const defaultContentLength = Math.min(content.length, defaultImageCount);
1197
+ const defaultContentLength = Math.min(content.length, 1);
1198
1198
  return content.filter((_, i) => i < defaultContentLength).map((c) => c.image.url).join("-");
1199
1199
  }, [content]);
1200
1200
  React.useEffect(() => {
@@ -1204,13 +1204,13 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1204
1204
  const containerHeight = rect.height;
1205
1205
  const defaultPlaced = [];
1206
1206
  const placeImages = async () => {
1207
- for (let i = 0; i < defaultImageCount && i < content.length; i++) {
1207
+ for (let i = 0; i < 1 && i < content.length; i++) {
1208
1208
  const imgData = content[i];
1209
1209
  const newImg = await createNewImage(imgData, containerWidth, containerHeight);
1210
1210
  defaultPlaced.push(newImg);
1211
1211
  }
1212
1212
  setPlacedImages(defaultPlaced);
1213
- setCounter(defaultImageCount % content.length);
1213
+ setCounter(1 % content.length);
1214
1214
  };
1215
1215
  placeImages();
1216
1216
  }, [defaultContentUrls, sizeType, customWidth, randomRange, revealPosition, divRef]);
@@ -1246,6 +1246,8 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1246
1246
  {
1247
1247
  ref: setDivRef,
1248
1248
  onClick: handleClick,
1249
+ onMouseEnter: () => setIsInside(true),
1250
+ onMouseLeave: () => setIsInside(false),
1249
1251
  className: styles.imageRevealSlider,
1250
1252
  style: { cursor: customCursorImg === "none" ? "default" : "none" },
1251
1253
  children: [
@@ -1282,18 +1284,21 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1282
1284
  },
1283
1285
  img2.id
1284
1286
  )),
1285
- /* @__PURE__ */ jsxRuntime.jsx(
1286
- framerMotion.motion.div,
1287
+ isInside && /* @__PURE__ */ jsxRuntime.jsx(
1288
+ "div",
1287
1289
  {
1288
- className: styles.cursor,
1290
+ className: "cursor",
1289
1291
  style: {
1290
- x: cursorX,
1291
- y: cursorY,
1292
- width: cursorW.get(),
1293
- height: cursorH.get(),
1292
+ transform: `translate(${cursorPos.x}px, ${cursorPos.y}px)`,
1293
+ width: cursorSize.w,
1294
+ height: cursorSize.h,
1294
1295
  backgroundImage: `url('${customCursorImg}')`,
1295
1296
  backgroundSize: "cover",
1296
- backgroundPosition: "center"
1297
+ backgroundPosition: "center",
1298
+ position: "absolute",
1299
+ top: 0,
1300
+ left: 0,
1301
+ pointerEvents: "none"
1297
1302
  }
1298
1303
  }
1299
1304
  )
package/dist/index.mjs CHANGED
@@ -2,7 +2,6 @@ import { jsx, Fragment, jsxs } from "react/jsx-runtime";
2
2
  import React, { useState, useEffect, useRef, useMemo, useCallback } from "react";
3
3
  import { Splide, SplideSlide } from "@splidejs/react-splide";
4
4
  import cn from "classnames";
5
- import { useMotionValue, motion } from "framer-motion";
6
5
  import { createPortal } from "react-dom";
7
6
  const wrapper = "ControlSlider-module__wrapper___sHEkd";
8
7
  const sliderItem = "ControlSlider-module__sliderItem___QQSkR";
@@ -1039,16 +1038,13 @@ const ControlSliderComponent = {
1039
1038
  const imageRevealSlider = "ImageRevealSlider-module__imageRevealSlider___UE5Ob";
1040
1039
  const image = "ImageRevealSlider-module__image___Qjt-e";
1041
1040
  const link = "ImageRevealSlider-module__link___N-iLG";
1042
- const cursor = "ImageRevealSlider-module__cursor___2U03d";
1043
1041
  const styles = {
1044
1042
  imageRevealSlider,
1045
1043
  image,
1046
- link,
1047
- cursor
1044
+ link
1048
1045
  };
1049
1046
  function isMouseOverImage(mouseX, mouseY, placedImages) {
1050
- for (let i = placedImages.length - 1; i >= 0; i--) {
1051
- const img2 = placedImages[i];
1047
+ for (const img2 of placedImages) {
1052
1048
  const imgEl = new Image();
1053
1049
  imgEl.src = img2.url;
1054
1050
  const imgWidth = img2.width ? Number.parseFloat(img2.width) : imgEl.naturalWidth;
@@ -1056,10 +1052,10 @@ function isMouseOverImage(mouseX, mouseY, placedImages) {
1056
1052
  const halfW = imgWidth / 2;
1057
1053
  const halfH = imgHeight / 2;
1058
1054
  if (mouseX >= img2.x - halfW && mouseX <= img2.x + halfW && mouseY >= img2.y - halfH && mouseY <= img2.y + halfH) {
1059
- return { isOverImage: true, hasLink: img2.link.length > 0 };
1055
+ return true;
1060
1056
  }
1061
1057
  }
1062
- return { isOverImage: false, hasLink: false };
1058
+ return false;
1063
1059
  }
1064
1060
  function getImageSize(url) {
1065
1061
  return new Promise((resolve) => {
@@ -1093,75 +1089,79 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1093
1089
  const [placedImages, setPlacedImages] = useState([]);
1094
1090
  const [counter, setCounter] = useState(0);
1095
1091
  const imageIdCounter = useRef(0);
1096
- const defaultImageCount = 1;
1097
- const cursorX = useMotionValue(0);
1098
- const cursorY = useMotionValue(0);
1099
1092
  const defaultScale = 32;
1100
- const cursorW = useMotionValue(32);
1101
- const cursorH = useMotionValue(32);
1093
+ const [cursorPos, setCursorPos] = useState({ x: -100, y: -100 });
1094
+ const [cursorSize, setCursorSize] = useState({ w: 32, h: 32 });
1102
1095
  const [customCursorImg, setCustomCursorImg] = useState("none");
1096
+ const lastMousePos = useRef({ x: 0, y: 0 });
1097
+ const [isInside, setIsInside] = useState(false);
1103
1098
  useEffect(() => {
1104
1099
  if (!divRef) return;
1100
+ const updateCursorPosition = (clientX, clientY) => {
1101
+ const rect = divRef.getBoundingClientRect();
1102
+ setCursorPos({
1103
+ x: clientX - cursorSize.w / 2 - rect.left,
1104
+ y: clientY - cursorSize.h / 2 - rect.top
1105
+ });
1106
+ };
1105
1107
  const mouseMove = (e) => {
1106
1108
  e.stopPropagation();
1107
- const divRect = divRef.getBoundingClientRect();
1108
- cursorX.set(e.clientX - cursorW.get() / 2 - divRect.left);
1109
- cursorY.set(e.clientY - cursorH.get() / 2 - divRect.top);
1110
- console.log(e);
1109
+ lastMousePos.current = { x: e.clientX, y: e.clientY };
1110
+ updateCursorPosition(e.clientX, e.clientY);
1111
+ };
1112
+ const handleScroll = () => {
1113
+ if (!isInside) return;
1114
+ updateCursorPosition(lastMousePos.current.x, lastMousePos.current.y);
1111
1115
  };
1112
1116
  divRef.addEventListener("mousemove", mouseMove);
1113
- return () => divRef.removeEventListener("mousemove", mouseMove);
1114
- }, [cursorX, cursorY, cursorW, cursorH, divRef]);
1117
+ window.addEventListener("scroll", handleScroll, true);
1118
+ return () => {
1119
+ divRef.removeEventListener("mousemove", mouseMove);
1120
+ window.removeEventListener("scroll", handleScroll, true);
1121
+ };
1122
+ }, [divRef, cursorSize, isInside]);
1123
+ useEffect(() => {
1124
+ if (!isInside) {
1125
+ setCustomCursorImg("none");
1126
+ setCursorSize({ w: 0, h: 0 });
1127
+ }
1128
+ }, [isInside]);
1115
1129
  const { sizeType, imageWidth: customWidth, randomRangeImageWidth: randomRange } = settings.imageSize;
1116
1130
  const { revealPosition, visible, target } = settings.position;
1117
1131
  const { cursorType, defaultCursorScale, defaultCursor, hoverCursorScale, hoverCursor } = settings.cursor;
1118
1132
  useEffect(() => {
1119
1133
  const updateCursor = () => {
1134
+ if (!divRef) return;
1120
1135
  if (cursorType === "system") {
1121
1136
  setCustomCursorImg("none");
1122
- cursorW.set(defaultScale);
1123
- cursorH.set(defaultScale);
1137
+ setCursorSize({ w: defaultScale, h: defaultScale });
1124
1138
  return;
1125
1139
  }
1126
- const elUnderCursor = document.elementFromPoint(cursorX.get() + cursorW.get() / 2, cursorY.get() + cursorH.get() / 2);
1127
- if (elUnderCursor && elUnderCursor.closest("a.link")) {
1140
+ const cx = cursorPos.x + cursorSize.w / 2;
1141
+ const cy = cursorPos.y + cursorSize.h / 2;
1142
+ const rect = divRef.getBoundingClientRect();
1143
+ const el = document.elementFromPoint(
1144
+ rect.left + cx,
1145
+ rect.top + cy
1146
+ );
1147
+ if (el && el.closest("a")) {
1128
1148
  setCustomCursorImg("none");
1129
- cursorW.set(defaultScale);
1130
- cursorH.set(defaultScale);
1149
+ setCursorSize({ w: defaultScale, h: defaultScale });
1131
1150
  return;
1132
1151
  }
1133
- if (target === "area") {
1134
- setCustomCursorImg(hoverCursor || "none");
1135
- cursorW.set(defaultScale * hoverCursorScale || 1);
1136
- cursorH.set(defaultScale * hoverCursorScale || 1);
1137
- } else if (isMouseOverImage(cursorX.get() + cursorW.get() / 2, cursorY.get() + cursorH.get() / 2, placedImages)) {
1138
- setCustomCursorImg(hoverCursor || "none");
1139
- cursorW.set(defaultScale * hoverCursorScale || 1);
1140
- cursorH.set(defaultScale * hoverCursorScale || 1);
1141
- } else {
1142
- setCustomCursorImg(defaultCursor || "none");
1143
- cursorW.set(defaultScale * defaultCursorScale || 1);
1144
- cursorH.set(defaultScale * defaultCursorScale || 1);
1145
- }
1152
+ const next = isMouseOverImage(cx, cy, placedImages) || target === "area" ? { img: hoverCursor ?? "none", w: defaultScale * (hoverCursorScale || 1), h: defaultScale * (hoverCursorScale || 1) } : { img: defaultCursor ?? "none", w: defaultScale * (defaultCursorScale || 1), h: defaultScale * (defaultCursorScale || 1) };
1153
+ setCustomCursorImg(next.img);
1154
+ setCursorSize({ w: next.w, h: next.h });
1146
1155
  };
1147
- const unsubscribeX = cursorX.onChange(updateCursor);
1148
- const unsubscribeY = cursorY.onChange(updateCursor);
1149
1156
  updateCursor();
1150
- return () => {
1151
- unsubscribeX();
1152
- unsubscribeY();
1153
- };
1154
1157
  }, [
1158
+ cursorPos,
1155
1159
  cursorType,
1156
1160
  target,
1157
1161
  hoverCursor,
1158
1162
  defaultCursor,
1159
1163
  hoverCursorScale,
1160
1164
  defaultCursorScale,
1161
- cursorX,
1162
- cursorY,
1163
- cursorW,
1164
- cursorH,
1165
1165
  placedImages
1166
1166
  ]);
1167
1167
  const createNewImage = async (imgData, containerWidth, containerHeight, position = {}) => {
@@ -1192,7 +1192,7 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1192
1192
  };
1193
1193
  };
1194
1194
  const defaultContentUrls = useMemo(() => {
1195
- const defaultContentLength = Math.min(content.length, defaultImageCount);
1195
+ const defaultContentLength = Math.min(content.length, 1);
1196
1196
  return content.filter((_, i) => i < defaultContentLength).map((c) => c.image.url).join("-");
1197
1197
  }, [content]);
1198
1198
  useEffect(() => {
@@ -1202,13 +1202,13 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1202
1202
  const containerHeight = rect.height;
1203
1203
  const defaultPlaced = [];
1204
1204
  const placeImages = async () => {
1205
- for (let i = 0; i < defaultImageCount && i < content.length; i++) {
1205
+ for (let i = 0; i < 1 && i < content.length; i++) {
1206
1206
  const imgData = content[i];
1207
1207
  const newImg = await createNewImage(imgData, containerWidth, containerHeight);
1208
1208
  defaultPlaced.push(newImg);
1209
1209
  }
1210
1210
  setPlacedImages(defaultPlaced);
1211
- setCounter(defaultImageCount % content.length);
1211
+ setCounter(1 % content.length);
1212
1212
  };
1213
1213
  placeImages();
1214
1214
  }, [defaultContentUrls, sizeType, customWidth, randomRange, revealPosition, divRef]);
@@ -1244,6 +1244,8 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1244
1244
  {
1245
1245
  ref: setDivRef,
1246
1246
  onClick: handleClick,
1247
+ onMouseEnter: () => setIsInside(true),
1248
+ onMouseLeave: () => setIsInside(false),
1247
1249
  className: styles.imageRevealSlider,
1248
1250
  style: { cursor: customCursorImg === "none" ? "default" : "none" },
1249
1251
  children: [
@@ -1280,18 +1282,21 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1280
1282
  },
1281
1283
  img2.id
1282
1284
  )),
1283
- /* @__PURE__ */ jsx(
1284
- motion.div,
1285
+ isInside && /* @__PURE__ */ jsx(
1286
+ "div",
1285
1287
  {
1286
- className: styles.cursor,
1288
+ className: "cursor",
1287
1289
  style: {
1288
- x: cursorX,
1289
- y: cursorY,
1290
- width: cursorW.get(),
1291
- height: cursorH.get(),
1290
+ transform: `translate(${cursorPos.x}px, ${cursorPos.y}px)`,
1291
+ width: cursorSize.w,
1292
+ height: cursorSize.h,
1292
1293
  backgroundImage: `url('${customCursorImg}')`,
1293
1294
  backgroundSize: "cover",
1294
- backgroundPosition: "center"
1295
+ backgroundPosition: "center",
1296
+ position: "absolute",
1297
+ top: 0,
1298
+ left: 0,
1299
+ pointerEvents: "none"
1295
1300
  }
1296
1301
  }
1297
1302
  )
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cntrl-site/components",
3
- "version": "0.1.6-18",
3
+ "version": "0.1.6-20",
4
4
  "description": "Custom components for control editor and public websites.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -47,7 +47,6 @@
47
47
  "@antfu/eslint-config": "^3.16.0",
48
48
  "@splidejs/react-splide": "^0.7.12",
49
49
  "classnames": "^2.5.1",
50
- "framer-motion": "^12.23.27",
51
50
  "ts-node": "^10.9.1"
52
51
  },
53
52
  "devDependencies": {