@salutejs/plasma-new-hope 0.326.0-canary.2013.15538813402.0 → 0.326.0-canary.2013.15558438626.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/cjs/components/Carousel/CarouselNew/Carousel.css +5 -7
- package/cjs/components/Carousel/CarouselNew/Carousel.js +7 -12
- package/cjs/components/Carousel/CarouselNew/Carousel.js.map +1 -1
- package/cjs/components/Carousel/CarouselNew/Carousel.styles.js +4 -13
- package/cjs/components/Carousel/CarouselNew/Carousel.styles.js.map +1 -1
- package/cjs/components/Carousel/CarouselNew/{Carousel.styles_1fs4wwn.css → Carousel.styles_a2t6qm.css} +2 -2
- package/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +17 -61
- package/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js.map +1 -1
- package/cjs/components/Carousel/CarouselOld/CarouselItem.js +1 -1
- package/cjs/components/Carousel/CarouselOld/CarouselItem.js.map +1 -1
- package/{es/components/Carousel/CarouselOld/CarouselItem_uvoxfy.css → cjs/components/Carousel/CarouselOld/CarouselItem_1meatnt.css} +1 -1
- package/cjs/index.css +6 -8
- package/cjs/index.js +1 -1
- package/emotion/cjs/components/Carousel/CarouselNew/Carousel.js +7 -12
- package/emotion/cjs/components/Carousel/CarouselNew/Carousel.styles.js +17 -12
- package/emotion/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +17 -60
- package/emotion/cjs/components/Carousel/CarouselNew/ui/index.js +0 -11
- package/emotion/cjs/components/Carousel/CarouselOld/CarouselItem.js +1 -1
- package/emotion/cjs/components/Carousel/index.js +4 -4
- package/emotion/cjs/examples/plasma_b2c/components/Carousel/Carousel.config.js +3 -3
- package/emotion/cjs/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +22 -16
- package/emotion/cjs/examples/plasma_web/components/Carousel/Carousel.config.js +14 -2
- package/emotion/cjs/examples/plasma_web/components/Carousel/Carousel.js +1 -1
- package/emotion/cjs/examples/plasma_web/components/Carousel/Carousel.stories.tsx +92 -32
- package/emotion/es/components/Carousel/CarouselNew/Carousel.js +7 -12
- package/emotion/es/components/Carousel/CarouselNew/Carousel.styles.js +17 -12
- package/emotion/es/components/Carousel/CarouselNew/hooks/useCarousel.js +17 -60
- package/emotion/es/components/Carousel/CarouselNew/ui/index.js +0 -1
- package/emotion/es/components/Carousel/CarouselOld/CarouselItem.js +1 -1
- package/emotion/es/components/Carousel/index.js +1 -1
- package/emotion/es/examples/plasma_b2c/components/Carousel/Carousel.config.js +4 -4
- package/emotion/es/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +22 -16
- package/emotion/es/examples/plasma_web/components/Carousel/Carousel.config.js +14 -2
- package/emotion/es/examples/plasma_web/components/Carousel/Carousel.js +2 -2
- package/emotion/es/examples/plasma_web/components/Carousel/Carousel.stories.tsx +92 -32
- package/es/components/Carousel/CarouselNew/Carousel.css +5 -7
- package/es/components/Carousel/CarouselNew/Carousel.js +7 -12
- package/es/components/Carousel/CarouselNew/Carousel.js.map +1 -1
- package/es/components/Carousel/CarouselNew/Carousel.styles.js +4 -13
- package/es/components/Carousel/CarouselNew/Carousel.styles.js.map +1 -1
- package/es/components/Carousel/CarouselNew/{Carousel.styles_1fs4wwn.css → Carousel.styles_a2t6qm.css} +2 -2
- package/es/components/Carousel/CarouselNew/hooks/useCarousel.js +17 -61
- package/es/components/Carousel/CarouselNew/hooks/useCarousel.js.map +1 -1
- package/es/components/Carousel/CarouselOld/CarouselItem.js +1 -1
- package/es/components/Carousel/CarouselOld/CarouselItem.js.map +1 -1
- package/{cjs/components/Carousel/CarouselOld/CarouselItem_uvoxfy.css → es/components/Carousel/CarouselOld/CarouselItem_1meatnt.css} +1 -1
- package/es/index.css +6 -8
- package/es/index.js +1 -1
- package/package.json +5 -5
- package/styled-components/cjs/components/Carousel/CarouselNew/Carousel.js +7 -12
- package/styled-components/cjs/components/Carousel/CarouselNew/Carousel.styles.js +2 -5
- package/styled-components/cjs/components/Carousel/CarouselNew/hooks/useCarousel.js +17 -60
- package/styled-components/cjs/components/Carousel/CarouselNew/ui/index.js +0 -11
- package/styled-components/cjs/components/Carousel/CarouselOld/CarouselItem.js +1 -1
- package/styled-components/cjs/components/Carousel/index.js +4 -4
- package/styled-components/cjs/examples/plasma_b2c/components/Carousel/Carousel.config.js +2 -2
- package/styled-components/cjs/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +22 -16
- package/styled-components/cjs/examples/plasma_web/components/Carousel/Carousel.config.js +14 -2
- package/styled-components/cjs/examples/plasma_web/components/Carousel/Carousel.js +1 -1
- package/styled-components/cjs/examples/plasma_web/components/Carousel/Carousel.stories.tsx +92 -32
- package/styled-components/es/components/Carousel/CarouselNew/Carousel.js +7 -12
- package/styled-components/es/components/Carousel/CarouselNew/Carousel.styles.js +2 -5
- package/styled-components/es/components/Carousel/CarouselNew/hooks/useCarousel.js +17 -60
- package/styled-components/es/components/Carousel/CarouselNew/ui/index.js +0 -1
- package/styled-components/es/components/Carousel/CarouselOld/CarouselItem.js +1 -1
- package/styled-components/es/components/Carousel/index.js +1 -1
- package/styled-components/es/examples/plasma_b2c/components/Carousel/Carousel.config.js +2 -2
- package/styled-components/es/examples/plasma_b2c/components/Carousel/Carousel.stories.tsx +22 -16
- package/styled-components/es/examples/plasma_web/components/Carousel/Carousel.config.js +14 -2
- package/styled-components/es/examples/plasma_web/components/Carousel/Carousel.js +2 -2
- package/styled-components/es/examples/plasma_web/components/Carousel/Carousel.stories.tsx +92 -32
- package/types/components/Carousel/CarouselNew/Carousel.d.ts.map +1 -1
- package/types/components/Carousel/CarouselNew/Carousel.styles.d.ts +1 -4
- package/types/components/Carousel/CarouselNew/Carousel.styles.d.ts.map +1 -1
- package/types/components/Carousel/CarouselNew/Carousel.types.d.ts +18 -67
- package/types/components/Carousel/CarouselNew/Carousel.types.d.ts.map +1 -1
- package/types/components/Carousel/CarouselNew/hooks/useCarousel.d.ts +4 -6
- package/types/components/Carousel/CarouselNew/hooks/useCarousel.d.ts.map +1 -1
- package/types/components/Carousel/CarouselNew/ui/index.d.ts +0 -1
- package/types/components/Carousel/CarouselNew/ui/index.d.ts.map +1 -1
- package/types/components/Carousel/CarouselOld/CarouselItem.d.ts.map +1 -1
- package/types/components/Carousel/index.d.ts +1 -1
- package/types/components/Carousel/index.d.ts.map +1 -1
- package/cjs/components/Carousel/CarouselNew/hooks/useDragScroll.js +0 -62
- package/cjs/components/Carousel/CarouselNew/hooks/useDragScroll.js.map +0 -1
- package/emotion/cjs/components/Carousel/CarouselNew/hooks/useDragScroll.js +0 -65
- package/emotion/cjs/components/Carousel/CarouselNew/ui/Item/Item.js +0 -38
- package/emotion/es/components/Carousel/CarouselNew/hooks/useDragScroll.js +0 -59
- package/emotion/es/components/Carousel/CarouselNew/ui/Item/Item.js +0 -31
- package/es/components/Carousel/CarouselNew/hooks/useDragScroll.js +0 -58
- package/es/components/Carousel/CarouselNew/hooks/useDragScroll.js.map +0 -1
- package/styled-components/cjs/components/Carousel/CarouselNew/hooks/useDragScroll.js +0 -65
- package/styled-components/cjs/components/Carousel/CarouselNew/ui/Item/Item.js +0 -37
- package/styled-components/es/components/Carousel/CarouselNew/hooks/useDragScroll.js +0 -59
- package/styled-components/es/components/Carousel/CarouselNew/ui/Item/Item.js +0 -30
- package/types/components/Carousel/CarouselNew/hooks/useDragScroll.d.ts +0 -2
- package/types/components/Carousel/CarouselNew/hooks/useDragScroll.d.ts.map +0 -1
- package/types/components/Carousel/CarouselNew/ui/Item/Item.d.ts +0 -4
- package/types/components/Carousel/CarouselNew/ui/Item/Item.d.ts.map +0 -1
@@ -28,13 +28,11 @@
|
|
28
28
|
|
29
29
|
.IconButton_styles_403on7_b1ua728l__d34a8ea7{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;box-sizing:border-box;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);--plasma_private-btn-br:var(--plasma_computed-btn-br);border-radius:var(--plasma_private-btn-br);color:var(--plasma-button-color);background:var(--plasma-button-background-color);height:var(--plasma-button-height);width:var(--plasma-button-width);padding:0 var(--plasma-button-padding,calc(var(--plasma-button-height) * 1.618 / 4));font-family:var(--plasma-button-font-family);font-size:var(--plasma-button-font-size);font-style:var(--plasma-button-font-style);font-weight:var(--plasma-button-font-weight);-webkit-letter-spacing:var(--plasma-button-letter-spacing);-moz-letter-spacing:var(--plasma-button-letter-spacing);-ms-letter-spacing:var(--plasma-button-letter-spacing);letter-spacing:var(--plasma-button-letter-spacing);line-height:var(--plasma-button-line-height);--plasma_private-btn-outline-size:var(--plasma-button-outline-size,0.0625rem);position:relative;--plasma-button-padding:0;--plasma-button-color:var(--plasma-icon-button-color);--plasma-button-background-color:var(--plasma-icon-button-background-color);--plasma-button-color-hover:var(--plasma-icon-button-color-hover);--plasma-button-background-color-hover:var(--plasma-icon-button-background-color-hover);--plasma-button-color-active:var(--plasma-icon-button-color-active);--plasma-button-background-color-active:var(--plasma-icon-button-background-color-active);--plasma-button-loading-background-color:var(--plasma-icon-button-loading-background-color);--plasma-button-font-family:var(--plasma-icon-button-font-family);--plasma-button-font-size:var(--plasma-icon-button-font-size);--plasma-button-font-style:var(--plasma-icon-button-font-style);--plasma-button-font-weight:var(--plasma-icon-button-font-weight);--plasma-button-letter-spacing:var(--plasma-icon-button-letter-spacing);--plasma-button-line-height:var(--plasma-icon-button-line-height);--plasma-button-width:var(--plasma-icon-button-width);--plasma-button-height:var(--plasma-icon-button-height);--plasma-button-radius:var(--plasma-icon-button-radius);--plasma-button-disabled-opacity:var(--plasma-icon-button-disabled-opacity);--plasma-button-focus-color:var(--plasma-icon-button-focus-color);--plasma-button-spinner-size:var(--plasma-icon-button-spinner-size);--plasma-button-spinner-color:var(--plasma-icon-button-spinner-color);}a.IconButton_styles_403on7_b1ua728l__d34a8ea7{-webkit-text-decoration:none;text-decoration:none;}.IconButton_styles_403on7_b1ua728l__d34a8ea7.IconButton_styles_403on7_b1ua728l__d34a8ea7.IconButton_styles_403on7_buttonSquare__d34a8ea7{width:var(--plasma-button-height);padding:0;}.IconButton_styles_403on7_b1ua728l__d34a8ea7:hover{color:var(--plasma-button-color-hover,var(--plasma-button-color));background:var(--plasma-button-background-color-hover,var(--plasma-button-background-color));scale:var(--plasma-button-scale-hover);}.IconButton_styles_403on7_b1ua728l__d34a8ea7:active{color:var(--plasma-button-color-active,var(--plasma-button-color));background:var(--plasma-button-background-color-active,var(--plasma-button-background-color));scale:var(---plasma-button-scale-active);}.IconButton_styles_403on7_b1ua728l__d34a8ea7:focus{outline:none;}.IconButton_styles_403on7_b1ua728l__d34a8ea7::before{content:'';position:absolute;top:-0.125rem;left:-0.125rem;right:-0.125rem;bottom:-0.125rem;z-index:1;display:block;box-sizing:content-box;border:var(--plasma_private-btn-outline-size) solid transparent;border-radius:calc(0.125rem + var(--plasma_private-btn-br));-webkit-transition:box-shadow 0.2s ease-in-out;transition:box-shadow 0.2s ease-in-out;pointer-events:none;}.IconButton_styles_403on7_b1ua728l__d34a8ea7.IconButton_styles_403on7_focusVisible__d34a8ea7:focus::before,.IconButton_styles_403on7_b1ua728l__d34a8ea7[data-focus-visible-added]::before{outline:none;box-shadow:0 0 0 var(--plasma_private-btn-outline-size) var(--plasma-button-focus-color);}.IconButton_styles_403on7_b1ua728l__d34a8ea7[disabled]{opacity:var(--plasma-button-disabled-opacity);cursor:not-allowed;}.IconButton_styles_403on7_b1ua728l__d34a8ea7[disabled]:hover,.IconButton_styles_403on7_b1ua728l__d34a8ea7[disabled]:active{scale:none;color:var(--plasma-button-color);background:var(--plasma-button-background-color);}.IconButton_styles_403on7_b1ua728l__d34a8ea7.IconButton_styles_403on7_buttonStretchingFixed__d34a8ea7{width:var(--plasma-button-width);}.IconButton_styles_403on7_b1ua728l__d34a8ea7.IconButton_styles_403on7_buttonStretchingFilled__d34a8ea7{width:100%;}.IconButton_styles_403on7_b1ua728l__d34a8ea7.IconButton_styles_403on7_buttonStretchingAuto__d34a8ea7{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;}
|
30
30
|
|
31
|
-
.
|
32
|
-
.
|
33
|
-
.
|
34
|
-
.
|
35
|
-
.
|
36
|
-
|
37
|
-
.Item_1qz9bfn_sfwcury__aad46e58{-webkit-scroll-snap-align:var(--sfwcury-0);-moz-scroll-snap-align:var(--sfwcury-0);-ms-scroll-snap-align:var(--sfwcury-0);scroll-snap-align:var(--sfwcury-0);-webkit-scroll-snap-stop:var(--sfwcury-1);-moz-scroll-snap-stop:var(--sfwcury-1);-ms-scroll-snap-stop:var(--sfwcury-1);scroll-snap-stop:var(--sfwcury-1);}
|
31
|
+
.Carousel_styles_a2t6qm_b13uu57o__25de5594{position:relative;}
|
32
|
+
.Carousel_styles_a2t6qm_c1gygdut__25de5594{position:relative;margin-left:calc(var(--temporary-carousel-padding) * -1);margin-right:calc(var(--temporary-carousel-padding) * -1);padding:0;list-style:none;-ms-overflow-style:none;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none;overflow-x:auto;overflow-y:hidden;-webkit-scroll-behavior:smooth;-moz-scroll-behavior:smooth;-ms-scroll-behavior:smooth;scroll-behavior:smooth;-webkit-scroll-snap-type:x mandatory;-moz-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);--temporary-carousel-padding:0.625rem;}.Carousel_styles_a2t6qm_c1gygdut__25de5594::-webkit-scrollbar{display:none;}
|
33
|
+
.Carousel_styles_a2t6qm_c76zbfp__25de5594{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}
|
34
|
+
.Carousel_styles_a2t6qm_i1cnnvc1__25de5594{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0.75rem;z-index:10;--plasma-icon-button-color:var(--text-primary);--plasma-icon-button-background-color:var(--surface-transparent-secondary);--plasma-icon-button-loading-background-color:var(--plasma-icon-button-background-color);--plasma-icon-button-background-color-hover:var(--surface-transparent-secondary-hover);--plasma-icon-button-background-color-active:var(--surface-transparent-secondary-active);--plasma-icon-button-height:2.5rem;--plasma-icon-button-width:2.5rem;--plasma-icon-button-padding:1rem;--plasma-icon-button-radius:0.625rem;}.Carousel_styles_a2t6qm_i1cnnvc1__25de5594.Carousel_styles_a2t6qm_carouselRightControlButton__25de5594{left:auto;right:0.75rem;}
|
35
|
+
.Carousel_styles_a2t6qm_c1ff2k98__25de5594{position:relative;}
|
38
36
|
|
39
37
|
.Dots_styles_ea836d_wn5xio__3fa33efc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-top:0.75rem;--duration:0.3s;--half-duration:0.15s;}
|
40
38
|
.Dots_styles_ea836d_tnn1xpa__3fa33efc{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-transition:-webkit-transform 0s ease;-webkit-transition:transform 0s ease;transition:transform 0s ease;}.Dots_styles_ea836d_tnn1xpa__3fa33efc.Dots_styles_ea836d_dotAnimating__3fa33efc{-webkit-transition:-webkit-transform var(--duration) ease;-webkit-transition:transform var(--duration) ease;transition:transform var(--duration) ease;}.Dots_styles_ea836d_tnn1xpa__3fa33efc .Dots_styles_ea836d_dot__3fa33efc{width:0.5rem;height:0.5rem;margin:0 0.25rem;cursor:pointer;background-color:var(--plasma-carousel-pagination-dot-background);border-radius:100%;}.Dots_styles_ea836d_tnn1xpa__3fa33efc .Dots_styles_ea836d_dot__3fa33efc.Dots_styles_ea836d_dotActive__3fa33efc{background-color:var(--plasma-carousel-pagination-dot-active-background);}@-webkit-keyframes Dots_styles_ea836d_fadeOutTnn1xpa__3fa33efc{from{-webkit-transform:scale(0.75);-ms-transform:scale(0.75);transform:scale(0.75);opacity:1;}to{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);opacity:0;}}@keyframes Dots_styles_ea836d_fadeOutTnn1xpa__3fa33efc{from{-webkit-transform:scale(0.75);-ms-transform:scale(0.75);transform:scale(0.75);opacity:1;}to{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);opacity:0;}}.Dots_styles_ea836d_tnn1xpa__3fa33efc .Dots_styles_ea836d_dot__3fa33efc.Dots_styles_ea836d_dotAnimateOut__3fa33efc{-webkit-animation:Dots_styles_ea836d_fadeOutTnn1xpa__3fa33efc var(--half-duration) ease forwards;animation:Dots_styles_ea836d_fadeOutTnn1xpa__3fa33efc var(--half-duration) ease forwards;}@-webkit-keyframes Dots_styles_ea836d_shrinkingTnn1xpa__3fa33efc{from{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}to{-webkit-transform:scale(0.75);-ms-transform:scale(0.75);transform:scale(0.75);}}@keyframes Dots_styles_ea836d_shrinkingTnn1xpa__3fa33efc{from{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}to{-webkit-transform:scale(0.75);-ms-transform:scale(0.75);transform:scale(0.75);}}.Dots_styles_ea836d_tnn1xpa__3fa33efc .Dots_styles_ea836d_dot__3fa33efc.Dots_styles_ea836d_dotShrinking__3fa33efc{-webkit-animation:Dots_styles_ea836d_shrinkingTnn1xpa__3fa33efc var(--half-duration) var(--half-duration) ease forwards;animation:Dots_styles_ea836d_shrinkingTnn1xpa__3fa33efc var(--half-duration) var(--half-duration) ease forwards;}
|
@@ -9,7 +9,6 @@ var base$1 = require('./variations/_size/base.js');
|
|
9
9
|
var base = require('./variations/_view/base.js');
|
10
10
|
var Carousel_styles = require('./Carousel.styles.js');
|
11
11
|
var useCarousel = require('./hooks/useCarousel.js');
|
12
|
-
var useDragScroll = require('./hooks/useDragScroll.js');
|
13
12
|
var IconDisclosureLeft = require('../../_Icon/Icons/IconDisclosureLeft.js');
|
14
13
|
var IconDisclosureRight = require('../../_Icon/Icons/IconDisclosureRight.js');
|
15
14
|
var Dots = require('./ui/Dots/Dots.js');
|
@@ -27,11 +26,11 @@ var carouselNewRoot = function carouselNewRoot(Root) {
|
|
27
26
|
return /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
28
27
|
var view = _ref.view,
|
29
28
|
size = _ref.size,
|
30
|
-
scrollAlign = _ref.scrollAlign,
|
29
|
+
_ref$scrollAlign = _ref.scrollAlign,
|
30
|
+
scrollAlign = _ref$scrollAlign === void 0 ? 'center' : _ref$scrollAlign,
|
31
31
|
children = _ref.children,
|
32
|
-
_ref$
|
33
|
-
|
34
|
-
gap = _ref.gap,
|
32
|
+
_ref$controlArrowsDis = _ref.controlArrowsDisabled,
|
33
|
+
controlArrowsDisabled = _ref$controlArrowsDis === void 0 ? 'false' : _ref$controlArrowsDis,
|
35
34
|
paginationOptions = _ref.paginationOptions,
|
36
35
|
className = _ref.className,
|
37
36
|
style = _ref.style;
|
@@ -53,14 +52,13 @@ var carouselNewRoot = function carouselNewRoot(Root) {
|
|
53
52
|
}),
|
54
53
|
scrollRef = _useCarousel.scrollRef,
|
55
54
|
trackRef = _useCarousel.trackRef;
|
56
|
-
useDragScroll.useDragScroll(scrollRef, isDragScrollDisabled);
|
57
55
|
return /*#__PURE__*/React__default.default.createElement(Root, {
|
58
56
|
className: className,
|
59
57
|
style: style,
|
60
58
|
size: size,
|
61
59
|
view: view,
|
62
60
|
ref: ref
|
63
|
-
}, /*#__PURE__*/React__default.default.createElement(Carousel_styles.ControlsWrapper, null, index !== 0 && /*#__PURE__*/React__default.default.createElement(Carousel_styles.IconButton, {
|
61
|
+
}, /*#__PURE__*/React__default.default.createElement(Carousel_styles.ControlsWrapper, null, index !== 0 && !controlArrowsDisabled && /*#__PURE__*/React__default.default.createElement(Carousel_styles.IconButton, {
|
64
62
|
pin: "circle-circle",
|
65
63
|
onClick: handleClickLeft
|
66
64
|
}, _IconDisclosureLeft || (_IconDisclosureLeft = /*#__PURE__*/React__default.default.createElement(IconDisclosureLeft.IconDisclosureLeft, {
|
@@ -70,10 +68,7 @@ var carouselNewRoot = function carouselNewRoot(Root) {
|
|
70
68
|
ref: scrollRef
|
71
69
|
}, /*#__PURE__*/React__default.default.createElement(Carousel_styles.CarouselTrack, {
|
72
70
|
ref: trackRef
|
73
|
-
|
74
|
-
,
|
75
|
-
gap: gap
|
76
|
-
}, children)), index !== slidesAmount - 1 && /*#__PURE__*/React__default.default.createElement(Carousel_styles.IconButton, {
|
71
|
+
}, children)), index !== slidesAmount - 1 && !controlArrowsDisabled && /*#__PURE__*/React__default.default.createElement(Carousel_styles.IconButton, {
|
77
72
|
className: Carousel_tokens.classes.rightControlButton,
|
78
73
|
pin: "circle-circle",
|
79
74
|
onClick: handleClickRight
|
@@ -83,7 +78,7 @@ var carouselNewRoot = function carouselNewRoot(Root) {
|
|
83
78
|
})))), !(paginationOptions !== null && paginationOptions !== void 0 && paginationOptions.disabled) && /*#__PURE__*/React__default.default.createElement(Dots.Dots, {
|
84
79
|
index: index,
|
85
80
|
onChange: setIndex,
|
86
|
-
visibleCount: (paginationOptions === null || paginationOptions === void 0 ? void 0 : paginationOptions.visibleDots) ||
|
81
|
+
visibleCount: (paginationOptions === null || paginationOptions === void 0 ? void 0 : paginationOptions.visibleDots) || 10,
|
87
82
|
count: slidesAmount,
|
88
83
|
centered: (paginationOptions === null || paginationOptions === void 0 ? void 0 : paginationOptions.centered) || false
|
89
84
|
}));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Carousel.js","sources":["../../../../src/components/Carousel/CarouselNew/Carousel.tsx"],"sourcesContent":["import { RootProps } from 'src/engines';\nimport React, { forwardRef, useState, Children } from 'react';\nimport { IconDisclosureLeft, IconDisclosureRight } from 'src/components/_Icon';\n\nimport { classes } from './Carousel.tokens';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base, CarouselWrapper, CarouselTrack, ControlsWrapper, IconButton } from './Carousel.styles';\nimport { CarouselNewProps } from './Carousel.types';\nimport { useCarousel } from './hooks/useCarousel';\nimport {
|
1
|
+
{"version":3,"file":"Carousel.js","sources":["../../../../src/components/Carousel/CarouselNew/Carousel.tsx"],"sourcesContent":["import { RootProps } from 'src/engines';\nimport React, { forwardRef, useState, Children } from 'react';\nimport { IconDisclosureLeft, IconDisclosureRight } from 'src/components/_Icon';\n\nimport { classes } from './Carousel.tokens';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base, CarouselWrapper, CarouselTrack, ControlsWrapper, IconButton } from './Carousel.styles';\nimport { CarouselNewProps } from './Carousel.types';\nimport { useCarousel } from './hooks/useCarousel';\nimport { Dots } from './ui';\n\n/**\n * Компонент для создания списков с прокруткой.\n */\nexport const carouselNewRoot = (Root: RootProps<HTMLDivElement, CarouselNewProps>) =>\n forwardRef<HTMLDivElement, CarouselNewProps>(\n (\n {\n view,\n size,\n scrollAlign = 'center',\n children,\n controlArrowsDisabled = 'false',\n paginationOptions,\n className,\n style,\n },\n ref,\n ) => {\n const [index, setIndex] = useState(0);\n\n const slidesAmount = Children.count(children);\n\n const handleClickLeft = () => {\n setIndex(Math.max(0, index - 1));\n };\n\n const handleClickRight = () => {\n setIndex(Math.min(slidesAmount - 1, index + 1));\n };\n\n const { scrollRef, trackRef } = useCarousel({\n index,\n scrollAlign,\n onIndexChange: setIndex,\n });\n\n return (\n <Root className={className} style={style} size={size} view={view} ref={ref}>\n <ControlsWrapper>\n {index !== 0 && !controlArrowsDisabled && (\n <IconButton pin=\"circle-circle\" onClick={handleClickLeft}>\n <IconDisclosureLeft size=\"m\" color=\"inherit\" />\n </IconButton>\n )}\n\n <CarouselWrapper ref={scrollRef}>\n <CarouselTrack ref={trackRef}>{children}</CarouselTrack>\n </CarouselWrapper>\n\n {index !== slidesAmount - 1 && !controlArrowsDisabled && (\n <IconButton\n className={classes.rightControlButton}\n pin=\"circle-circle\"\n onClick={handleClickRight}\n >\n <IconDisclosureRight size=\"m\" color=\"inherit\" />\n </IconButton>\n )}\n </ControlsWrapper>\n\n {!paginationOptions?.disabled && (\n <Dots\n index={index}\n onChange={setIndex}\n visibleCount={paginationOptions?.visibleDots || 10}\n count={slidesAmount}\n centered={paginationOptions?.centered || false}\n />\n )}\n </Root>\n );\n },\n );\n\nexport const carouselNewConfig = {\n name: 'Carousel',\n tag: 'div',\n layout: carouselNewRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n },\n defaults: {\n view: 'default',\n size: 's',\n },\n};\n"],"names":["carouselNewRoot","Root","forwardRef","_ref","ref","view","size","_ref$scrollAlign","scrollAlign","children","_ref$controlArrowsDis","controlArrowsDisabled","paginationOptions","className","style","_useState","useState","_useState2","_slicedToArray","index","setIndex","slidesAmount","Children","count","handleClickLeft","Math","max","handleClickRight","min","_useCarousel","useCarousel","onIndexChange","scrollRef","trackRef","React","createElement","ControlsWrapper","IconButton","pin","onClick","_IconDisclosureLeft","IconDisclosureLeft","color","CarouselWrapper","CarouselTrack","classes","rightControlButton","_IconDisclosureRight","IconDisclosureRight","disabled","Dots","onChange","visibleCount","visibleDots","centered","carouselNewConfig","name","tag","layout","base","variations","css","viewCSS","sizeCSS","defaults"],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require('./Carousel.
|
1
|
+
require('./Carousel.styles_a2t6qm.css');
|
2
2
|
'use strict';
|
3
3
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
@@ -15,24 +15,15 @@ var CarouselWrapper = /*#__PURE__*/react.styled('div')({
|
|
15
15
|
"class": "c1gygdut",
|
16
16
|
propsAsIs: false
|
17
17
|
});
|
18
|
-
var _exp = function _exp() {
|
19
|
-
return function (_ref) {
|
20
|
-
var gap = _ref.gap;
|
21
|
-
return gap || 0;
|
22
|
-
};
|
23
|
-
};
|
24
18
|
var CarouselTrack = /*#__PURE__*/react.styled('div')({
|
25
19
|
name: "CarouselTrack",
|
26
20
|
"class": "c76zbfp",
|
27
|
-
propsAsIs: false
|
28
|
-
vars: {
|
29
|
-
"c76zbfp-0": [/*#__PURE__*/_exp()]
|
30
|
-
}
|
21
|
+
propsAsIs: false
|
31
22
|
});
|
32
|
-
var
|
23
|
+
var _exp = function _exp() {
|
33
24
|
return IconButtonComponent;
|
34
25
|
};
|
35
|
-
var IconButton = /*#__PURE__*/react.styled(
|
26
|
+
var IconButton = /*#__PURE__*/react.styled(_exp())({
|
36
27
|
name: "IconButton",
|
37
28
|
"class": "i1cnnvc1",
|
38
29
|
propsAsIs: true
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Carousel.styles.js","sources":["../../../../src/components/Carousel/CarouselNew/Carousel.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { css } from '@linaria/core';\nimport {
|
1
|
+
{"version":3,"file":"Carousel.styles.js","sources":["../../../../src/components/Carousel/CarouselNew/Carousel.styles.ts"],"sourcesContent":["import { styled } from '@linaria/react';\nimport { css } from '@linaria/core';\nimport { component, mergeConfig } from 'src/engines';\nimport { iconButtonConfig, iconButtonTokens } from 'src/components/IconButton';\n\nimport { classes } from './Carousel.tokens';\n\nconst mergedConfig = mergeConfig(iconButtonConfig);\nexport const IconButtonComponent = component(mergedConfig);\n\nexport const base = css`\n position: relative;\n`;\n\nexport const CarouselWrapper = styled.div`\n position: relative;\n margin-left: calc(var(--temporary-carousel-padding) * -1);\n margin-right: calc(var(--temporary-carousel-padding) * -1);\n padding: 0;\n list-style: none;\n\n -ms-overflow-style: none;\n scrollbar-width: none;\n ::-webkit-scrollbar {\n display: none;\n }\n\n overflow-x: auto;\n overflow-y: hidden;\n\n scroll-behavior: smooth;\n scroll-snap-type: x mandatory;\n\n user-select: none;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n\n --temporary-carousel-padding: 0.625rem;\n`;\n\nexport const CarouselTrack = styled.div`\n display: inline-flex;\n flex-direction: row;\n`;\n\nexport const IconButton = styled(IconButtonComponent)`\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n left: 0.75rem;\n z-index: 10;\n\n ${iconButtonTokens.iconButtonColor}: var(--text-primary);\n ${iconButtonTokens.iconButtonBackgroundColor}: var(--surface-transparent-secondary);\n ${iconButtonTokens.iconButtonLoadingBackgroundColor}: var(${iconButtonTokens.iconButtonBackgroundColor});\n ${iconButtonTokens.iconButtonBackgroundColorHover}: var(--surface-transparent-secondary-hover);\n ${iconButtonTokens.iconButtonBackgroundColorActive}: var(--surface-transparent-secondary-active);\n\n ${iconButtonTokens.iconButtonHeight}: 2.5rem;\n ${iconButtonTokens.iconButtonWidth}: 2.5rem;\n ${iconButtonTokens.iconButtonPadding}: 1rem;\n ${iconButtonTokens.iconButtonRadius}: 0.625rem;\n\n &.${classes.rightControlButton} {\n left: auto;\n right: 0.75rem;\n }\n`;\n\nexport const ControlsWrapper = styled.div`\n position: relative;\n`;\n"],"names":["mergedConfig","mergeConfig","iconButtonConfig","IconButtonComponent","component","base","CarouselWrapper","styled","name","class","propsAsIs","CarouselTrack","_exp","IconButton","ControlsWrapper"],"mappings":";;;;;;;;AAOA,IAAMA,YAAY,gBAAGC,kBAAW,CAACC,6BAAgB,CAAC,CAAA;IACrCC,mBAAmB,gBAAGC,gBAAS,CAACJ,YAAY,EAAC;AAEnD,IAAMK,IAAI,GAEhB,WAAA;AAEM,IAAMC,eAAe,gBAAGC,YAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,iBAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAuBpC,EAAA;AAEM,IAAMC,aAAa,gBAAGJ,YAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,eAAA;AAAAC,EAAAA,OAAAA,EAAA,SAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAGlC,EAAA;AAAC,IAAAE,IAAA,GAzCgBA,SAyChBA,IAAAA,GAAA;AAAA,EAAA,OAE+BT,mBAAmB,CAAA;AAAA,CAAA,CAAA;AAA7C,IAAMU,UAAU,gBAAGN,YAAM,CAAAK,IAAA,EAAA,CAAA,CAAA;AAAAJ,EAAAA,IAAA,EAAA,YAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,IAAA;AAAA,CAsB/B,EAAA;AAEM,IAAMI,eAAe,gBAAGP,YAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,iBAAA;AAAAC,EAAAA,OAAAA,EAAA,UAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAA,CAEpC;;;;;;;;;"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
.b13uu57o{position:relative;}
|
2
|
-
.c1gygdut{position:relative;margin:
|
3
|
-
.c76zbfp{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;
|
2
|
+
.c1gygdut{position:relative;margin-left:calc(var(--temporary-carousel-padding) * -1);margin-right:calc(var(--temporary-carousel-padding) * -1);padding:0;list-style:none;-ms-overflow-style:none;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none;overflow-x:auto;overflow-y:hidden;-webkit-scroll-behavior:smooth;-moz-scroll-behavior:smooth;-ms-scroll-behavior:smooth;scroll-behavior:smooth;-webkit-scroll-snap-type:x mandatory;-moz-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);--temporary-carousel-padding:0.625rem;}.c1gygdut::-webkit-scrollbar{display:none;}
|
3
|
+
.c76zbfp{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}
|
4
4
|
.i1cnnvc1{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0.75rem;z-index:10;--plasma-icon-button-color:var(--text-primary);--plasma-icon-button-background-color:var(--surface-transparent-secondary);--plasma-icon-button-loading-background-color:var(--plasma-icon-button-background-color);--plasma-icon-button-background-color-hover:var(--surface-transparent-secondary-hover);--plasma-icon-button-background-color-active:var(--surface-transparent-secondary-active);--plasma-icon-button-height:2.5rem;--plasma-icon-button-width:2.5rem;--plasma-icon-button-padding:1rem;--plasma-icon-button-radius:0.625rem;}.i1cnnvc1.carousel-right-control-button{left:auto;right:0.75rem;}
|
5
5
|
.c1ff2k98{position:relative;}
|
@@ -12,8 +12,8 @@ var throttle__default = /*#__PURE__*/_interopDefault(throttle);
|
|
12
12
|
/**
|
13
13
|
* Подсчет смещения из-за паддингов.
|
14
14
|
*/
|
15
|
-
var getCalculatedOffset = function getCalculatedOffset(scrollEl, trackEl
|
16
|
-
var paddingProp =
|
15
|
+
var getCalculatedOffset = function getCalculatedOffset(scrollEl, trackEl) {
|
16
|
+
var paddingProp = 'paddingLeft';
|
17
17
|
return parseInt(getComputedStyle(scrollEl)[paddingProp], 10) + parseInt(getComputedStyle(trackEl)[paddingProp], 10);
|
18
18
|
};
|
19
19
|
var positionModByScrollAlign = function positionModByScrollAlign(_ref) {
|
@@ -22,11 +22,9 @@ var positionModByScrollAlign = function positionModByScrollAlign(_ref) {
|
|
22
22
|
carouselSize = _ref.carouselSize,
|
23
23
|
itemSize = _ref.itemSize,
|
24
24
|
offset = _ref.offset,
|
25
|
-
scrollStart = _ref.scrollStart
|
26
|
-
axis = _ref.axis;
|
25
|
+
scrollStart = _ref.scrollStart;
|
27
26
|
if (scrollAlign === 'start') {
|
28
|
-
var
|
29
|
-
var paddingOffset = axis === 'y' ? offset - itemSize / 2 + inaccuracy : 0;
|
27
|
+
var paddingOffset = 0;
|
30
28
|
return position + paddingOffset;
|
31
29
|
}
|
32
30
|
if (scrollAlign === 'center') {
|
@@ -50,47 +48,30 @@ var positionModByScrollAlign = function positionModByScrollAlign(_ref) {
|
|
50
48
|
* Подсчет скролла до переданного индекса.
|
51
49
|
*/
|
52
50
|
var getCalculatedPos = function getCalculatedPos(_ref2) {
|
51
|
+
var _items$item$offsetWid2, _items$item2;
|
53
52
|
var scrollEl = _ref2.scrollEl,
|
54
53
|
items = _ref2.items,
|
55
|
-
axis = _ref2.axis,
|
56
54
|
index = _ref2.index,
|
57
55
|
offset = _ref2.offset,
|
58
56
|
scrollAlign = _ref2.scrollAlign;
|
59
57
|
var position = scrollAlign === 'center' ? offset : 0;
|
60
|
-
var carouselSize;
|
61
|
-
var itemSize;
|
62
|
-
var scrollStart;
|
63
58
|
if (items.item(index) === null) {
|
64
59
|
return position;
|
65
60
|
}
|
66
61
|
for (var i = 0; i < index; i++) {
|
67
|
-
|
68
|
-
|
69
|
-
position += (_items$item$offsetWid = (_items$item = items.item(i)) === null || _items$item === void 0 ? void 0 : _items$item.offsetWidth) !== null && _items$item$offsetWid !== void 0 ? _items$item$offsetWid : 0;
|
70
|
-
} else {
|
71
|
-
var _items$item$offsetHei, _items$item2;
|
72
|
-
position += (_items$item$offsetHei = (_items$item2 = items.item(i)) === null || _items$item2 === void 0 ? void 0 : _items$item2.offsetHeight) !== null && _items$item$offsetHei !== void 0 ? _items$item$offsetHei : 0;
|
73
|
-
}
|
74
|
-
}
|
75
|
-
if (axis === 'x') {
|
76
|
-
var _items$item$offsetWid2, _items$item3;
|
77
|
-
carouselSize = scrollEl.offsetWidth;
|
78
|
-
itemSize = (_items$item$offsetWid2 = (_items$item3 = items.item(index)) === null || _items$item3 === void 0 ? void 0 : _items$item3.offsetWidth) !== null && _items$item$offsetWid2 !== void 0 ? _items$item$offsetWid2 : 0;
|
79
|
-
scrollStart = scrollEl.scrollLeft;
|
80
|
-
} else {
|
81
|
-
var _items$item$offsetHei2, _items$item4;
|
82
|
-
carouselSize = scrollEl.offsetHeight;
|
83
|
-
itemSize = (_items$item$offsetHei2 = (_items$item4 = items.item(index)) === null || _items$item4 === void 0 ? void 0 : _items$item4.offsetHeight) !== null && _items$item$offsetHei2 !== void 0 ? _items$item$offsetHei2 : 0;
|
84
|
-
scrollStart = scrollEl.scrollTop;
|
62
|
+
var _items$item$offsetWid, _items$item;
|
63
|
+
position += (_items$item$offsetWid = (_items$item = items.item(i)) === null || _items$item === void 0 ? void 0 : _items$item.offsetWidth) !== null && _items$item$offsetWid !== void 0 ? _items$item$offsetWid : 0;
|
85
64
|
}
|
65
|
+
var carouselSize = scrollEl.offsetWidth;
|
66
|
+
var itemSize = (_items$item$offsetWid2 = (_items$item2 = items.item(index)) === null || _items$item2 === void 0 ? void 0 : _items$item2.offsetWidth) !== null && _items$item$offsetWid2 !== void 0 ? _items$item$offsetWid2 : 0;
|
67
|
+
var scrollStart = scrollEl.scrollLeft;
|
86
68
|
return positionModByScrollAlign({
|
87
69
|
scrollAlign: scrollAlign,
|
88
70
|
position: position,
|
89
71
|
carouselSize: carouselSize,
|
90
72
|
itemSize: itemSize,
|
91
73
|
offset: offset,
|
92
|
-
scrollStart: scrollStart
|
93
|
-
axis: axis
|
74
|
+
scrollStart: scrollStart
|
94
75
|
});
|
95
76
|
};
|
96
77
|
var DEFAULT_DURATION = 300;
|
@@ -144,11 +125,10 @@ var animatedScrollToX = function animatedScrollToX(elem, pos) {
|
|
144
125
|
var scrollToPos = function scrollToPos(_ref3) {
|
145
126
|
var scrollEl = _ref3.scrollEl,
|
146
127
|
pos = _ref3.pos,
|
147
|
-
axis = _ref3.axis,
|
148
128
|
animated = _ref3.animated,
|
149
129
|
duration = _ref3.duration,
|
150
130
|
timingFunction = _ref3.timingFunction;
|
151
|
-
if (
|
131
|
+
if (Math.abs(pos - scrollEl.scrollLeft) > 1) {
|
152
132
|
if (animated) {
|
153
133
|
animatedScrollToX(scrollEl, pos, duration, timingFunction);
|
154
134
|
} else {
|
@@ -250,7 +230,6 @@ var useCarousel = function useCarousel(_ref4) {
|
|
250
230
|
var offset = React.useRef(0);
|
251
231
|
var scrollRef = React.useRef(null);
|
252
232
|
var trackRef = React.useRef(null);
|
253
|
-
var axis = 'x';
|
254
233
|
|
255
234
|
/**
|
256
235
|
* Для того, чтобы не спамить изменениями индекса.
|
@@ -336,7 +315,7 @@ var useCarousel = function useCarousel(_ref4) {
|
|
336
315
|
}
|
337
316
|
}
|
338
317
|
}, throttleMs);
|
339
|
-
}, [
|
318
|
+
}, [debouncedOnIndexChange, detectActive, detectThreshold, scrollAlign, throttleMs]);
|
340
319
|
|
341
320
|
/**
|
342
321
|
* Прокрутка до нужной позиции индекса.
|
@@ -350,21 +329,19 @@ var useCarousel = function useCarousel(_ref4) {
|
|
350
329
|
pos: getCalculatedPos({
|
351
330
|
scrollEl: scrollEl,
|
352
331
|
items: items,
|
353
|
-
axis: axis,
|
354
332
|
index: i,
|
355
333
|
offset: offset.current,
|
356
334
|
scrollAlign: scrollAlign
|
357
|
-
})
|
358
|
-
axis: axis
|
335
|
+
})
|
359
336
|
});
|
360
337
|
prevIndex.current = i;
|
361
338
|
}
|
362
|
-
}, [
|
339
|
+
}, [scrollAlign]);
|
363
340
|
React.useEffect(function () {
|
364
341
|
if (scrollRef.current && trackRef.current) {
|
365
|
-
offset.current = getCalculatedOffset(scrollRef.current, trackRef.current
|
342
|
+
offset.current = getCalculatedOffset(scrollRef.current, trackRef.current);
|
366
343
|
}
|
367
|
-
}, [
|
344
|
+
}, []);
|
368
345
|
|
369
346
|
/**
|
370
347
|
* Операции на маунте/анмаунте компонента.
|
@@ -382,27 +359,6 @@ var useCarousel = function useCarousel(_ref4) {
|
|
382
359
|
};
|
383
360
|
}, [throttledDetectActiveItem]);
|
384
361
|
|
385
|
-
/**
|
386
|
-
* Нужно вызвать только при первом рендере
|
387
|
-
*/
|
388
|
-
// useEffect(() => {
|
389
|
-
// requestAnimationFrame(() => {
|
390
|
-
// /**
|
391
|
-
// * Прокрутка до начального индекса.
|
392
|
-
// */
|
393
|
-
// toIndex(index);
|
394
|
-
//
|
395
|
-
// /**
|
396
|
-
// * Если на момент запуска карусель уже находится на нужной позиции,
|
397
|
-
// * событие скролла не произойдет, не сработает и определение центра,
|
398
|
-
// * необходимо вызвать его вручную.
|
399
|
-
// */
|
400
|
-
// throttledDetectActiveItem();
|
401
|
-
// });
|
402
|
-
//
|
403
|
-
// // eslint-disable-next-line react-hooks/exhaustive-deps
|
404
|
-
// }, []);
|
405
|
-
|
406
362
|
/**
|
407
363
|
* Прокрутка до нужной позиции индекса, если индекс изменился.
|
408
364
|
*/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useCarousel.js","sources":["../../../../../src/components/Carousel/CarouselNew/hooks/useCarousel.tsx"],"sourcesContent":["import React, { useEffect, useCallback, useRef, useMemo } from 'react';\nimport throttle from 'lodash.throttle';\n\nimport { CarouselNewProps as CarouselProps, ScrollAlign, ScrollAxis } from '../Carousel.types';\n\n/**\n * Подсчет смещения из-за паддингов.\n */\nexport const getCalculatedOffset = (scrollEl: Element, trackEl: Element, axis: ScrollAxis) => {\n const paddingProp = axis === 'x' ? 'paddingLeft' : 'paddingTop';\n return parseInt(getComputedStyle(scrollEl)[paddingProp], 10) + parseInt(getComputedStyle(trackEl)[paddingProp], 10);\n};\n\nconst positionModByScrollAlign = ({\n scrollAlign,\n position,\n carouselSize,\n itemSize,\n offset,\n scrollStart,\n axis,\n}: {\n scrollAlign: ScrollAlign;\n position: number;\n carouselSize: number;\n itemSize: number;\n offset: number;\n scrollStart: number;\n axis: ScrollAxis;\n}) => {\n if (scrollAlign === 'start') {\n const inaccuracy = 1;\n const paddingOffset = axis === 'y' ? offset - itemSize / 2 + inaccuracy : 0;\n return position + paddingOffset;\n }\n if (scrollAlign === 'center') {\n return position - carouselSize / 2 + itemSize / 2;\n }\n if (scrollAlign === 'end') {\n return position - carouselSize + itemSize + offset;\n }\n if (scrollAlign === 'activeDirection') {\n if (position >= scrollStart + carouselSize - itemSize) {\n return position - carouselSize + itemSize + offset;\n }\n if (position > scrollStart) {\n return scrollStart;\n }\n }\n return position;\n};\n\n/**\n * Подсчет скролла до переданного индекса.\n */\nexport const getCalculatedPos = ({\n scrollEl,\n items,\n axis,\n index,\n offset,\n scrollAlign,\n}: {\n scrollEl: HTMLElement;\n items: HTMLCollectionOf<HTMLElement>;\n axis: ScrollAxis;\n index: number;\n offset: number;\n scrollAlign: ScrollAlign;\n}) => {\n let position = scrollAlign === 'center' ? offset : 0;\n let carouselSize: number;\n let itemSize: number;\n let scrollStart: number;\n\n if (items.item(index) === null) {\n return position;\n }\n\n for (let i = 0; i < index; i++) {\n if (axis === 'x') {\n position += items.item(i)?.offsetWidth ?? 0;\n } else {\n position += items.item(i)?.offsetHeight ?? 0;\n }\n }\n\n if (axis === 'x') {\n carouselSize = scrollEl.offsetWidth;\n itemSize = items.item(index)?.offsetWidth ?? 0;\n scrollStart = scrollEl.scrollLeft;\n } else {\n carouselSize = scrollEl.offsetHeight;\n itemSize = items.item(index)?.offsetHeight ?? 0;\n scrollStart = scrollEl.scrollTop;\n }\n\n return positionModByScrollAlign({\n scrollAlign,\n position,\n carouselSize,\n itemSize,\n offset,\n scrollStart,\n axis,\n });\n};\n\nconst DEFAULT_DURATION = 300;\n\n// https://css-tricks.com/emulating-css-timing-functions-javascript/\nconst tfs = {\n linear: (t: number) => t,\n // eslint-disable-next-line\n easeIn: (t: number) => Math.pow(t, 1.675),\n // eslint-disable-next-line\n easeOut: (t: number) => 1 - Math.pow(1 - t, 1.675),\n easeInOut: (t: number) => 0.5 * (Math.sin((t - 0.5) * Math.PI) + 1),\n};\n\nexport type TimingFunction = keyof typeof tfs;\n\n/**\n * Плавная прокрутка по горизонтали\n * @param {Element} elem\n * @param {number} pos\n * @param {number} duration\n * @param {string} timingFunction\n */\nexport const animatedScrollToX = (\n elem: Element,\n pos: number,\n duration: number = DEFAULT_DURATION,\n timingFunction: TimingFunction = 'easeInOut',\n): void => {\n let startTime: number;\n const startX = elem.scrollLeft;\n const endX = Math.max(0, Math.min(elem.scrollWidth - elem.clientWidth, pos));\n\n const handleNewAnimationFrame = (): void => {\n startTime = startTime || Date.now();\n const timePos = Math.min(1, Math.max(1, Date.now() - startTime) / duration);\n const scrollPos = tfs[timingFunction](timePos);\n const left = startX + (endX - startX) * scrollPos;\n elem.scrollTo({ left });\n if (timePos !== 1) window.requestAnimationFrame(handleNewAnimationFrame);\n };\n\n window.requestAnimationFrame(handleNewAnimationFrame);\n};\n\n/**\n * Прокрутка к указанной позиции с анимацией или без.\n */\nexport const scrollToPos = ({\n scrollEl,\n pos,\n axis,\n animated,\n duration,\n timingFunction,\n}: {\n scrollEl: HTMLElement;\n pos: number;\n axis: ScrollAxis;\n animated?: boolean;\n duration?: number;\n timingFunction?: TimingFunction;\n}) => {\n if (axis === 'x' && Math.abs(pos - scrollEl.scrollLeft) > 1) {\n if (animated) {\n animatedScrollToX(scrollEl, pos, duration, timingFunction);\n } else {\n scrollEl.scrollTo({ left: pos });\n }\n }\n};\n\nconst round = (n: number) => Math.round(n * 100) / 100;\n\n/**\n * Получить позицию (слот) айтема в каруселе.\n * Каждый айтем имеет свой слот относительно вьюпорта карусели.\n */\nexport const getItemSlot = (\n itemIndex: number,\n itemEnd: number,\n itemSize: number,\n scrollStart: number,\n scrollSize: number,\n scrollAlign: ScrollAlign,\n prevIndex = 0,\n offset = 0,\n) => {\n /**\n * Граница и центр скролла (видимой части).\n * Смещение + размер.\n */\n const scrollEnd = scrollStart + scrollSize;\n const scrollCenter = scrollStart + scrollSize / 2;\n const itemCenter = itemEnd - itemSize / 2;\n\n if (scrollAlign === 'center') {\n return round((itemCenter - scrollCenter) / itemSize);\n }\n if (scrollAlign === 'start') {\n return round((itemEnd - itemSize - scrollStart) / itemSize);\n }\n if (scrollAlign === 'end') {\n return round((itemEnd - (scrollSize + scrollStart)) / itemSize);\n }\n if (scrollAlign === 'activeDirection') {\n const prevStart = offset + itemSize * prevIndex;\n const prevEnd = prevStart + itemSize;\n const prevVisible = prevEnd > scrollStart && prevStart < scrollEnd;\n\n if (!prevVisible) {\n if (prevIndex < itemIndex) {\n return round((itemEnd - (scrollSize + scrollStart)) / itemSize);\n }\n return round((itemEnd - itemSize - scrollStart) / itemSize);\n }\n }\n return null;\n};\n\nexport function getCarouselItems(track: HTMLElement): HTMLCollectionOf<HTMLElement> {\n return track.children as HTMLCollectionOf<HTMLElement>;\n}\n\nexport function useDebouncedFunction(func: (...args: any) => any, delay: number, cleanUp?: boolean) {\n const timeoutRef = useRef<number>();\n\n /**\n * Очистка таймера\n */\n function clearTimer() {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }\n\n /**\n * Очищаем таймер при анмаунте компонента, если cleanUp выставлен в true\n * и тем самым отменяем последний запланированный вызов\n */\n useEffect(() => (cleanUp ? clearTimer : undefined), [cleanUp]);\n\n return (...args: any[]) => {\n clearTimer();\n timeoutRef.current = setTimeout(() => func(...args), delay);\n };\n}\n\ntype UseCarouselOptions = Pick<CarouselProps, 'scrollAlign'> & {\n index: number;\n throttleMs?: number;\n debounceMs?: number;\n detectActive?: boolean;\n detectThreshold?: number;\n onIndexChange?: (e: any) => void;\n};\n\ntype UseCarouselHookResult = {\n scrollRef: React.RefObject<HTMLDivElement>;\n trackRef: React.RefObject<HTMLDivElement>;\n};\n\nconst THROTTLE_DEFAULT_MS = 100;\nconst DEBOUNCE_DEFAULT_MS = 150;\n\nexport const useCarousel = ({\n index,\n onIndexChange,\n detectActive = false,\n detectThreshold = 0.5,\n scrollAlign = 'center',\n throttleMs = THROTTLE_DEFAULT_MS,\n debounceMs = DEBOUNCE_DEFAULT_MS,\n}: UseCarouselOptions): UseCarouselHookResult => {\n const prevIndex = useRef<number | null>(null);\n const offset = useRef(0);\n const scrollRef = useRef<HTMLDivElement>(null);\n const trackRef = useRef<HTMLDivElement>(null);\n const axis = 'x';\n\n /**\n * Для того, чтобы не спамить изменениями индекса.\n * Задержка дебаунса слегка больше, чем у тротлинга.\n * Таким образом, событие срабатывает при завершении скролла.\n */\n const debouncedOnIndexChange = useDebouncedFunction((i: number) => onIndexChange?.(i), debounceMs);\n\n /**\n * Вычисление центрального элемента.\n * Подсчет: от 0 до 1, какое количество ширины/высоты\n * каждого элемента находится по центру скролла.\n */\n const throttledDetectActiveItem = useMemo(() => {\n return throttle(() => {\n if (!detectActive || scrollRef.current === null || trackRef.current === null) {\n return;\n }\n\n /**\n * Правая (или нижняя для Оу) граница элемента.\n */\n let itemEdge = offset.current;\n\n /**\n * Смещение (отрицательный или положительный отступ)\n * и размер карусели (для Ox - ширина, для Oy - высота).\n */\n const scrollPos = scrollRef.current[axis === 'x' ? 'scrollLeft' : 'scrollTop'];\n const scrollSize = scrollRef.current[axis === 'x' ? 'offsetWidth' : 'offsetHeight'];\n\n /**\n * Граница скролла (видимой части).\n * Смещение + размер.\n */\n const scrollEdge = scrollPos + scrollSize;\n\n const items = getCarouselItems(trackRef.current);\n\n /**\n * Проходим по всему списку, суммируя ширины элементов,\n * пока не найдем один элемент, чей центр будет в центре карусели.\n */\n for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {\n const item = items.item(itemIndex);\n\n if (item === null) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n /**\n * Для Ox - ширина, для Oy - высота.\n */\n const itemSize = item[axis === 'x' ? 'offsetWidth' : 'offsetHeight'];\n\n /**\n * Все элементы правее вьюпорта выпадают из процедуры.\n * Сравниваем по предыдущему элементу.\n * [ ... ] ...|n| <- Левый край элемента за пределами начала видимой части\n */\n if (itemEdge > scrollEdge) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n itemEdge += itemSize;\n\n /**\n * Все элементы левее вьюпорта выпадают из процедуры.\n * Сравниваем по текущему элементу.\n * Правый край элемента за пределами начала видимой части -> |p|... [ ... ]\n */\n if (scrollPos > itemEdge) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n const itemSlot = getItemSlot(\n itemIndex,\n itemEdge,\n itemSize,\n scrollPos,\n scrollSize,\n scrollAlign,\n prevIndex.current ?? 0,\n offset.current,\n );\n\n if (itemSlot !== null) {\n if (detectThreshold && Math.abs(itemSlot) <= detectThreshold) {\n debouncedOnIndexChange?.(itemIndex);\n }\n }\n }\n }, throttleMs);\n }, [axis, debouncedOnIndexChange, detectActive, detectThreshold, scrollAlign, throttleMs]);\n\n /**\n * Прокрутка до нужной позиции индекса.\n */\n const toIndex = useCallback(\n (i: number) => {\n const scrollEl = scrollRef.current;\n const items = trackRef.current ? getCarouselItems(trackRef.current) : null;\n\n if (scrollEl && items && items.length > 0 && i >= 0) {\n scrollToPos({\n scrollEl,\n pos: getCalculatedPos({\n scrollEl,\n items,\n axis,\n index: i,\n offset: offset.current,\n scrollAlign,\n }),\n axis,\n });\n prevIndex.current = i;\n }\n },\n [axis, scrollAlign],\n );\n\n useEffect(() => {\n if (scrollRef.current && trackRef.current) {\n offset.current = getCalculatedOffset(scrollRef.current, trackRef.current, axis);\n }\n }, [axis]);\n\n /**\n * Операции на маунте/анмаунте компонента.\n * Создать слушатели событи и т.п.\n */\n useEffect(() => {\n const carouselElement = scrollRef.current;\n\n if (carouselElement) {\n carouselElement.addEventListener('scroll', throttledDetectActiveItem);\n }\n\n return () => {\n if (carouselElement) {\n carouselElement.removeEventListener('scroll', throttledDetectActiveItem);\n }\n };\n }, [throttledDetectActiveItem]);\n\n /**\n * Нужно вызвать только при первом рендере\n */\n // useEffect(() => {\n // requestAnimationFrame(() => {\n // /**\n // * Прокрутка до начального индекса.\n // */\n // toIndex(index);\n //\n // /**\n // * Если на момент запуска карусель уже находится на нужной позиции,\n // * событие скролла не произойдет, не сработает и определение центра,\n // * необходимо вызвать его вручную.\n // */\n // throttledDetectActiveItem();\n // });\n //\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // }, []);\n\n /**\n * Прокрутка до нужной позиции индекса, если индекс изменился.\n */\n useEffect(() => {\n if (index !== prevIndex.current) {\n toIndex(index);\n }\n }, [index, toIndex]);\n\n return {\n scrollRef,\n trackRef,\n };\n};\n"],"names":["getCalculatedOffset","scrollEl","trackEl","axis","paddingProp","parseInt","getComputedStyle","positionModByScrollAlign","_ref","scrollAlign","position","carouselSize","itemSize","offset","scrollStart","inaccuracy","paddingOffset","getCalculatedPos","_ref2","items","index","item","i","_items$item$offsetWid","_items$item","offsetWidth","_items$item$offsetHei","_items$item2","offsetHeight","_items$item$offsetWid2","_items$item3","scrollLeft","_items$item$offsetHei2","_items$item4","scrollTop","DEFAULT_DURATION","tfs","linear","t","easeIn","Math","pow","easeOut","easeInOut","sin","PI","animatedScrollToX","elem","pos","duration","arguments","length","undefined","timingFunction","startTime","startX","endX","max","min","scrollWidth","clientWidth","handleNewAnimationFrame","Date","now","timePos","scrollPos","left","scrollTo","window","requestAnimationFrame","scrollToPos","_ref3","animated","abs","round","n","getItemSlot","itemIndex","itemEnd","scrollSize","prevIndex","scrollEnd","scrollCenter","itemCenter","prevStart","prevEnd","prevVisible","getCarouselItems","track","children","useDebouncedFunction","func","delay","cleanUp","timeoutRef","useRef","clearTimer","current","clearTimeout","useEffect","_len","args","Array","_key","setTimeout","apply","THROTTLE_DEFAULT_MS","DEBOUNCE_DEFAULT_MS","useCarousel","_ref4","onIndexChange","_ref4$detectActive","detectActive","_ref4$detectThreshold","detectThreshold","_ref4$scrollAlign","_ref4$throttleMs","throttleMs","_ref4$debounceMs","debounceMs","scrollRef","trackRef","debouncedOnIndexChange","throttledDetectActiveItem","useMemo","throttle","itemEdge","scrollEdge","_prevIndex$current","itemSlot","toIndex","useCallback","carouselElement","addEventListener","removeEventListener"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useCarousel.js","sources":["../../../../../src/components/Carousel/CarouselNew/hooks/useCarousel.tsx"],"sourcesContent":["import React, { useEffect, useCallback, useRef, useMemo } from 'react';\nimport throttle from 'lodash.throttle';\n\nimport { CarouselNewProps as CarouselProps, ScrollAlign } from '../Carousel.types';\n\n/**\n * Подсчет смещения из-за паддингов.\n */\nexport const getCalculatedOffset = (scrollEl: Element, trackEl: Element) => {\n const paddingProp = 'paddingLeft';\n return parseInt(getComputedStyle(scrollEl)[paddingProp], 10) + parseInt(getComputedStyle(trackEl)[paddingProp], 10);\n};\n\nconst positionModByScrollAlign = ({\n scrollAlign,\n position,\n carouselSize,\n itemSize,\n offset,\n scrollStart,\n}: {\n scrollAlign: ScrollAlign;\n position: number;\n carouselSize: number;\n itemSize: number;\n offset: number;\n scrollStart: number;\n}) => {\n if (scrollAlign === 'start') {\n const paddingOffset = 0;\n return position + paddingOffset;\n }\n if (scrollAlign === 'center') {\n return position - carouselSize / 2 + itemSize / 2;\n }\n if (scrollAlign === 'end') {\n return position - carouselSize + itemSize + offset;\n }\n if (scrollAlign === 'activeDirection') {\n if (position >= scrollStart + carouselSize - itemSize) {\n return position - carouselSize + itemSize + offset;\n }\n if (position > scrollStart) {\n return scrollStart;\n }\n }\n return position;\n};\n\n/**\n * Подсчет скролла до переданного индекса.\n */\nexport const getCalculatedPos = ({\n scrollEl,\n items,\n index,\n offset,\n scrollAlign,\n}: {\n scrollEl: HTMLElement;\n items: HTMLCollectionOf<HTMLElement>;\n index: number;\n offset: number;\n scrollAlign: ScrollAlign;\n}) => {\n let position = scrollAlign === 'center' ? offset : 0;\n\n if (items.item(index) === null) {\n return position;\n }\n\n for (let i = 0; i < index; i++) {\n position += items.item(i)?.offsetWidth ?? 0;\n }\n\n const carouselSize = scrollEl.offsetWidth;\n const itemSize = items.item(index)?.offsetWidth ?? 0;\n const scrollStart = scrollEl.scrollLeft;\n\n return positionModByScrollAlign({\n scrollAlign,\n position,\n carouselSize,\n itemSize,\n offset,\n scrollStart,\n });\n};\n\nconst DEFAULT_DURATION = 300;\n\n// https://css-tricks.com/emulating-css-timing-functions-javascript/\nconst tfs = {\n linear: (t: number) => t,\n // eslint-disable-next-line\n easeIn: (t: number) => Math.pow(t, 1.675),\n // eslint-disable-next-line\n easeOut: (t: number) => 1 - Math.pow(1 - t, 1.675),\n easeInOut: (t: number) => 0.5 * (Math.sin((t - 0.5) * Math.PI) + 1),\n};\n\nexport type TimingFunction = keyof typeof tfs;\n\n/**\n * Плавная прокрутка по горизонтали\n * @param {Element} elem\n * @param {number} pos\n * @param {number} duration\n * @param {string} timingFunction\n */\nexport const animatedScrollToX = (\n elem: Element,\n pos: number,\n duration: number = DEFAULT_DURATION,\n timingFunction: TimingFunction = 'easeInOut',\n): void => {\n let startTime: number;\n const startX = elem.scrollLeft;\n const endX = Math.max(0, Math.min(elem.scrollWidth - elem.clientWidth, pos));\n\n const handleNewAnimationFrame = (): void => {\n startTime = startTime || Date.now();\n const timePos = Math.min(1, Math.max(1, Date.now() - startTime) / duration);\n const scrollPos = tfs[timingFunction](timePos);\n const left = startX + (endX - startX) * scrollPos;\n elem.scrollTo({ left });\n if (timePos !== 1) window.requestAnimationFrame(handleNewAnimationFrame);\n };\n\n window.requestAnimationFrame(handleNewAnimationFrame);\n};\n\n/**\n * Прокрутка к указанной позиции с анимацией или без.\n */\nexport const scrollToPos = ({\n scrollEl,\n pos,\n animated,\n duration,\n timingFunction,\n}: {\n scrollEl: HTMLElement;\n pos: number;\n animated?: boolean;\n duration?: number;\n timingFunction?: TimingFunction;\n}) => {\n if (Math.abs(pos - scrollEl.scrollLeft) > 1) {\n if (animated) {\n animatedScrollToX(scrollEl, pos, duration, timingFunction);\n } else {\n scrollEl.scrollTo({ left: pos });\n }\n }\n};\n\nconst round = (n: number) => Math.round(n * 100) / 100;\n\n/**\n * Получить позицию (слот) айтема в каруселе.\n * Каждый айтем имеет свой слот относительно вьюпорта карусели.\n */\nexport const getItemSlot = (\n itemIndex: number,\n itemEnd: number,\n itemSize: number,\n scrollStart: number,\n scrollSize: number,\n scrollAlign: ScrollAlign,\n prevIndex = 0,\n offset = 0,\n) => {\n /**\n * Граница и центр скролла (видимой части).\n * Смещение + размер.\n */\n const scrollEnd = scrollStart + scrollSize;\n const scrollCenter = scrollStart + scrollSize / 2;\n const itemCenter = itemEnd - itemSize / 2;\n\n if (scrollAlign === 'center') {\n return round((itemCenter - scrollCenter) / itemSize);\n }\n if (scrollAlign === 'start') {\n return round((itemEnd - itemSize - scrollStart) / itemSize);\n }\n if (scrollAlign === 'end') {\n return round((itemEnd - (scrollSize + scrollStart)) / itemSize);\n }\n if (scrollAlign === 'activeDirection') {\n const prevStart = offset + itemSize * prevIndex;\n const prevEnd = prevStart + itemSize;\n const prevVisible = prevEnd > scrollStart && prevStart < scrollEnd;\n\n if (!prevVisible) {\n if (prevIndex < itemIndex) {\n return round((itemEnd - (scrollSize + scrollStart)) / itemSize);\n }\n return round((itemEnd - itemSize - scrollStart) / itemSize);\n }\n }\n return null;\n};\n\nexport function getCarouselItems(track: HTMLElement): HTMLCollectionOf<HTMLElement> {\n return track.children as HTMLCollectionOf<HTMLElement>;\n}\n\nexport function useDebouncedFunction(func: (...args: any) => any, delay: number, cleanUp?: boolean) {\n const timeoutRef = useRef<number>();\n\n /**\n * Очистка таймера\n */\n function clearTimer() {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = undefined;\n }\n }\n\n /**\n * Очищаем таймер при анмаунте компонента, если cleanUp выставлен в true\n * и тем самым отменяем последний запланированный вызов\n */\n useEffect(() => (cleanUp ? clearTimer : undefined), [cleanUp]);\n\n return (...args: any[]) => {\n clearTimer();\n timeoutRef.current = setTimeout(() => func(...args), delay);\n };\n}\n\ntype UseCarouselOptions = Pick<CarouselProps, 'scrollAlign'> & {\n index: number;\n throttleMs?: number;\n debounceMs?: number;\n detectActive?: boolean;\n detectThreshold?: number;\n onIndexChange?: (e: any) => void;\n};\n\ntype UseCarouselHookResult = {\n scrollRef: React.RefObject<HTMLDivElement>;\n trackRef: React.RefObject<HTMLDivElement>;\n};\n\nconst THROTTLE_DEFAULT_MS = 100;\nconst DEBOUNCE_DEFAULT_MS = 150;\n\nexport const useCarousel = ({\n index,\n onIndexChange,\n detectActive = false,\n detectThreshold = 0.5,\n scrollAlign = 'center',\n throttleMs = THROTTLE_DEFAULT_MS,\n debounceMs = DEBOUNCE_DEFAULT_MS,\n}: UseCarouselOptions): UseCarouselHookResult => {\n const prevIndex = useRef<number | null>(null);\n const offset = useRef(0);\n const scrollRef = useRef<HTMLDivElement>(null);\n const trackRef = useRef<HTMLDivElement>(null);\n const axis = 'x';\n\n /**\n * Для того, чтобы не спамить изменениями индекса.\n * Задержка дебаунса слегка больше, чем у тротлинга.\n * Таким образом, событие срабатывает при завершении скролла.\n */\n const debouncedOnIndexChange = useDebouncedFunction((i: number) => onIndexChange?.(i), debounceMs);\n\n /**\n * Вычисление центрального элемента.\n * Подсчет: от 0 до 1, какое количество ширины/высоты\n * каждого элемента находится по центру скролла.\n */\n const throttledDetectActiveItem = useMemo(() => {\n return throttle(() => {\n if (!detectActive || scrollRef.current === null || trackRef.current === null) {\n return;\n }\n\n /**\n * Правая (или нижняя для Оу) граница элемента.\n */\n let itemEdge = offset.current;\n\n /**\n * Смещение (отрицательный или положительный отступ)\n * и размер карусели (для Ox - ширина, для Oy - высота).\n */\n const scrollPos = scrollRef.current[axis === 'x' ? 'scrollLeft' : 'scrollTop'];\n const scrollSize = scrollRef.current[axis === 'x' ? 'offsetWidth' : 'offsetHeight'];\n\n /**\n * Граница скролла (видимой части).\n * Смещение + размер.\n */\n const scrollEdge = scrollPos + scrollSize;\n\n const items = getCarouselItems(trackRef.current);\n\n /**\n * Проходим по всему списку, суммируя ширины элементов,\n * пока не найдем один элемент, чей центр будет в центре карусели.\n */\n for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {\n const item = items.item(itemIndex);\n\n if (item === null) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n /**\n * Для Ox - ширина, для Oy - высота.\n */\n const itemSize = item[axis === 'x' ? 'offsetWidth' : 'offsetHeight'];\n\n /**\n * Все элементы правее вьюпорта выпадают из процедуры.\n * Сравниваем по предыдущему элементу.\n * [ ... ] ...|n| <- Левый край элемента за пределами начала видимой части\n */\n if (itemEdge > scrollEdge) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n itemEdge += itemSize;\n\n /**\n * Все элементы левее вьюпорта выпадают из процедуры.\n * Сравниваем по текущему элементу.\n * Правый край элемента за пределами начала видимой части -> |p|... [ ... ]\n */\n if (scrollPos > itemEdge) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n const itemSlot = getItemSlot(\n itemIndex,\n itemEdge,\n itemSize,\n scrollPos,\n scrollSize,\n scrollAlign,\n prevIndex.current ?? 0,\n offset.current,\n );\n\n if (itemSlot !== null) {\n if (detectThreshold && Math.abs(itemSlot) <= detectThreshold) {\n debouncedOnIndexChange?.(itemIndex);\n }\n }\n }\n }, throttleMs);\n }, [debouncedOnIndexChange, detectActive, detectThreshold, scrollAlign, throttleMs]);\n\n /**\n * Прокрутка до нужной позиции индекса.\n */\n const toIndex = useCallback(\n (i: number) => {\n const scrollEl = scrollRef.current;\n const items = trackRef.current ? getCarouselItems(trackRef.current) : null;\n\n if (scrollEl && items && items.length > 0 && i >= 0) {\n scrollToPos({\n scrollEl,\n pos: getCalculatedPos({\n scrollEl,\n items,\n index: i,\n offset: offset.current,\n scrollAlign,\n }),\n });\n prevIndex.current = i;\n }\n },\n [scrollAlign],\n );\n\n useEffect(() => {\n if (scrollRef.current && trackRef.current) {\n offset.current = getCalculatedOffset(scrollRef.current, trackRef.current);\n }\n }, []);\n\n /**\n * Операции на маунте/анмаунте компонента.\n * Создать слушатели событи и т.п.\n */\n useEffect(() => {\n const carouselElement = scrollRef.current;\n\n if (carouselElement) {\n carouselElement.addEventListener('scroll', throttledDetectActiveItem);\n }\n\n return () => {\n if (carouselElement) {\n carouselElement.removeEventListener('scroll', throttledDetectActiveItem);\n }\n };\n }, [throttledDetectActiveItem]);\n\n /**\n * Прокрутка до нужной позиции индекса, если индекс изменился.\n */\n useEffect(() => {\n if (index !== prevIndex.current) {\n toIndex(index);\n }\n }, [index, toIndex]);\n\n return {\n scrollRef,\n trackRef,\n };\n};\n"],"names":["getCalculatedOffset","scrollEl","trackEl","paddingProp","parseInt","getComputedStyle","positionModByScrollAlign","_ref","scrollAlign","position","carouselSize","itemSize","offset","scrollStart","paddingOffset","getCalculatedPos","_ref2","_items$item$offsetWid2","_items$item2","items","index","item","i","_items$item$offsetWid","_items$item","offsetWidth","scrollLeft","DEFAULT_DURATION","tfs","linear","t","easeIn","Math","pow","easeOut","easeInOut","sin","PI","animatedScrollToX","elem","pos","duration","arguments","length","undefined","timingFunction","startTime","startX","endX","max","min","scrollWidth","clientWidth","handleNewAnimationFrame","Date","now","timePos","scrollPos","left","scrollTo","window","requestAnimationFrame","scrollToPos","_ref3","animated","abs","round","n","getItemSlot","itemIndex","itemEnd","scrollSize","prevIndex","scrollEnd","scrollCenter","itemCenter","prevStart","prevEnd","prevVisible","getCarouselItems","track","children","useDebouncedFunction","func","delay","cleanUp","timeoutRef","useRef","clearTimer","current","clearTimeout","useEffect","_len","args","Array","_key","setTimeout","apply","THROTTLE_DEFAULT_MS","DEBOUNCE_DEFAULT_MS","useCarousel","_ref4","onIndexChange","_ref4$detectActive","detectActive","_ref4$detectThreshold","detectThreshold","_ref4$scrollAlign","_ref4$throttleMs","throttleMs","_ref4$debounceMs","debounceMs","scrollRef","trackRef","debouncedOnIndexChange","throttledDetectActiveItem","useMemo","throttle","itemEdge","scrollEdge","_prevIndex$current","itemSlot","toIndex","useCallback","carouselElement","addEventListener","removeEventListener"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CarouselItem.js","sources":["../../../../src/components/Carousel/CarouselOld/CarouselItem.tsx"],"sourcesContent":["import React from 'react';\nimport { styled } from '@linaria/react';\n\nimport { SnapAlign, SnapStop, CarouselItemProps } from './Carousel.types';\n\nconst StyledItem = styled.div<{ scrollSnapAlign: SnapAlign; scrollSnapStop: SnapStop }>`\n scroll-snap-align: ${({ scrollSnapAlign }) => scrollSnapAlign || 'none'};\n scroll-snap-stop: ${({ scrollSnapAlign, scrollSnapStop }) => (scrollSnapAlign ? scrollSnapStop : 'normal')};\n`;\n\nexport const CarouselItem: React.FC<CarouselItemProps> = ({\n scrollSnapAlign = 'center',\n scrollSnapStop = 'always',\n children,\n ...rest\n}) => {\n return (\n <StyledItem\n scrollSnapAlign={scrollSnapAlign}\n scrollSnapStop={scrollSnapStop}\n role=\"group\"\n aria-roledescription=\"slide\"\n {...rest}\n >\n {children}\n </StyledItem>\n );\n};\n"],"names":["_exp","_ref","scrollSnapAlign","_exp2","_ref2","scrollSnapStop","StyledItem","styled","name","class","propsAsIs","vars","CarouselItem","_ref3","_ref3$scrollSnapAlign","_ref3$scrollSnapStop","children","rest","React","createElement","_extends","role"],"mappings":";;;;;;;;;;;;;AAG0E,IAAAA,IAAA,GAFxDA,SAEwDA,IAAAA,GAAA;AAAA,EAAA,OAGjD,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAGC,eAAAA,GAAAA,IAAAA,CAAAA,eAAAA,CAAAA;IAAAA,OAAsBA,eAAe,IAAI,MAAM,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAAA,IAAAC,KAAA,GALzDA,SAKyDA,KAAAA,GAAA;AAAA,EAAA,OACnD,UAAAC,KAAA,EAAA;AAAA,IAAA,IAAGF,eAAe,GAAAE,KAAA,CAAfF,eAAe;MAAEG,cAAAA,GAAAA,KAAAA,CAAAA,cAAAA,CAAAA;AAAAA,IAAAA,OAAsBH,eAAe,GAAGG,cAAc,GAAG,QAAS,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAF9G,IAAMC,UAAU,gBAAGC,YAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,YAAA;AAAAC,EAAAA,OAAAA,EAAA,SAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAAC,EAAAA,IAAA,EAAA;AAAA,IAAA,WAAA,EAAA,cACAX,IAAkD,EAAA,CAAA;AAAA,IAAA,WAAA,EAAA,cACnDG,KAAsF,EAAA,CAAA;AAAA,GAAA;AAAA,
|
1
|
+
{"version":3,"file":"CarouselItem.js","sources":["../../../../src/components/Carousel/CarouselOld/CarouselItem.tsx"],"sourcesContent":["import React from 'react';\nimport { styled } from '@linaria/react';\n\nimport { SnapAlign, SnapStop, CarouselItemProps } from './Carousel.types';\n\nconst StyledItem = styled.div<{ scrollSnapAlign: SnapAlign; scrollSnapStop: SnapStop }>`\n scroll-snap-align: ${({ scrollSnapAlign }) => scrollSnapAlign || 'none'};\n scroll-snap-stop: ${({ scrollSnapAlign, scrollSnapStop }) => (scrollSnapAlign ? scrollSnapStop : 'normal')};\n padding: 0 var(--temporary-carousel-padding);\n`;\n\nexport const CarouselItem: React.FC<CarouselItemProps> = ({\n scrollSnapAlign = 'center',\n scrollSnapStop = 'always',\n children,\n ...rest\n}) => {\n return (\n <StyledItem\n scrollSnapAlign={scrollSnapAlign}\n scrollSnapStop={scrollSnapStop}\n role=\"group\"\n aria-roledescription=\"slide\"\n {...rest}\n >\n {children}\n </StyledItem>\n );\n};\n"],"names":["_exp","_ref","scrollSnapAlign","_exp2","_ref2","scrollSnapStop","StyledItem","styled","name","class","propsAsIs","vars","CarouselItem","_ref3","_ref3$scrollSnapAlign","_ref3$scrollSnapStop","children","rest","React","createElement","_extends","role"],"mappings":";;;;;;;;;;;;;AAG0E,IAAAA,IAAA,GAFxDA,SAEwDA,IAAAA,GAAA;AAAA,EAAA,OAGjD,UAAAC,IAAA,EAAA;AAAA,IAAA,IAAGC,eAAAA,GAAAA,IAAAA,CAAAA,eAAAA,CAAAA;IAAAA,OAAsBA,eAAe,IAAI,MAAM,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAAA,IAAAC,KAAA,GALzDA,SAKyDA,KAAAA,GAAA;AAAA,EAAA,OACnD,UAAAC,KAAA,EAAA;AAAA,IAAA,IAAGF,eAAe,GAAAE,KAAA,CAAfF,eAAe;MAAEG,cAAAA,GAAAA,KAAAA,CAAAA,cAAAA,CAAAA;AAAAA,IAAAA,OAAsBH,eAAe,GAAGG,cAAc,GAAG,QAAS,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAF9G,IAAMC,UAAU,gBAAGC,YAAM,CAAA,KAAA,CAAA,CAAA;AAAAC,EAAAA,IAAA,EAAA,YAAA;AAAAC,EAAAA,OAAAA,EAAA,SAAA;AAAAC,EAAAA,SAAA,EAAA,KAAA;AAAAC,EAAAA,IAAA,EAAA;AAAA,IAAA,WAAA,EAAA,cACAX,IAAkD,EAAA,CAAA;AAAA,IAAA,WAAA,EAAA,cACnDG,KAAsF,EAAA,CAAA;AAAA,GAAA;AAAA,CAE7G,CAAA,CAAA;IAEYS,YAAyC,GAAGA,SAA5CA,YAAyCA,CAAAC,KAAA,EAKhD;AAAA,EAAA,IAAAC,qBAAA,GAAAD,KAAA,CAJFX,eAAe;AAAfA,IAAAA,eAAe,GAAAY,qBAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,qBAAA;IAAAC,oBAAA,GAAAF,KAAA,CAC1BR,cAAc;AAAdA,IAAAA,cAAc,GAAAU,oBAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,oBAAA;IACzBC,QAAQ,GAAAH,KAAA,CAARG,QAAQ;AACLC,IAAAA,IAAAA,GAAAA,iDAAAA,CAAAA,KAAAA,EAAAA,SAAAA,CAAAA,CAAAA;AAEH,EAAA,oBACIC,sBAAA,CAAAC,aAAA,CAACb,UAAU,EAAAc,iCAAA,CAAA;AACPlB,IAAAA,eAAe,EAAEA,eAAgB;AACjCG,IAAAA,cAAc,EAAEA,cAAe;AAC/BgB,IAAAA,IAAI,EAAC,OAAO;IACZ,sBAAqB,EAAA,OAAA;GACjBJ,EAAAA,IAAI,CAEPD,EAAAA,QACO,CAAC,CAAA;AAErB;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
.sossdp0{-webkit-scroll-snap-align:var(--sossdp0-0);-moz-scroll-snap-align:var(--sossdp0-0);-ms-scroll-snap-align:var(--sossdp0-0);scroll-snap-align:var(--sossdp0-0);-webkit-scroll-snap-stop:var(--sossdp0-1);-moz-scroll-snap-stop:var(--sossdp0-1);-ms-scroll-snap-stop:var(--sossdp0-1);scroll-snap-stop:var(--sossdp0-1);}
|
1
|
+
.sossdp0{-webkit-scroll-snap-align:var(--sossdp0-0);-moz-scroll-snap-align:var(--sossdp0-0);-ms-scroll-snap-align:var(--sossdp0-0);scroll-snap-align:var(--sossdp0-0);-webkit-scroll-snap-stop:var(--sossdp0-1);-moz-scroll-snap-stop:var(--sossdp0-1);-ms-scroll-snap-stop:var(--sossdp0-1);scroll-snap-stop:var(--sossdp0-1);padding:0 var(--temporary-carousel-padding);}
|
package/cjs/index.css
CHANGED
@@ -988,15 +988,13 @@
|
|
988
988
|
.Carousel_styles_12r304j_csrgq3h__0c59c01e{position:relative;margin:0;padding:0;list-style:none;-ms-overflow-style:none;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none;overflow-x:auto;overflow-y:hidden;-webkit-scroll-behavior:smooth;-moz-scroll-behavior:smooth;-ms-scroll-behavior:smooth;scroll-behavior:smooth;-webkit-scroll-snap-type:var(--csrgq3h-0);-moz-scroll-snap-type:var(--csrgq3h-0);-ms-scroll-snap-type:var(--csrgq3h-0);scroll-snap-type:var(--csrgq3h-0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);}.Carousel_styles_12r304j_csrgq3h__0c59c01e::-webkit-scrollbar{display:none;}.Carousel_styles_12r304j_cupvf9e__0c59c01e .Carousel_styles_12r304j_csrgq3h__0c59c01e{-webkit-scroll-padding:0 var(--plasma-grid-margin);-moz-scroll-padding:0 var(--plasma-grid-margin);-ms-scroll-padding:0 var(--plasma-grid-margin);scroll-padding:0 var(--plasma-grid-margin);padding-left:var(--plasma-grid-margin);}
|
989
989
|
.Carousel_styles_12r304j_ciqx3je__0c59c01e{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-left:var(--ciqx3je-0);padding-right:var(--ciqx3je-1);}.Carousel_styles_12r304j_cupvf9e__0c59c01e .Carousel_styles_12r304j_ciqx3je__0c59c01e{padding-right:var(--ciqx3je-2);}
|
990
990
|
|
991
|
-
.
|
991
|
+
.CarouselItem_1meatnt_sossdp0__3394b79e{-webkit-scroll-snap-align:var(--sossdp0-0);-moz-scroll-snap-align:var(--sossdp0-0);-ms-scroll-snap-align:var(--sossdp0-0);scroll-snap-align:var(--sossdp0-0);-webkit-scroll-snap-stop:var(--sossdp0-1);-moz-scroll-snap-stop:var(--sossdp0-1);-ms-scroll-snap-stop:var(--sossdp0-1);scroll-snap-stop:var(--sossdp0-1);padding:0 var(--temporary-carousel-padding);}
|
992
992
|
|
993
|
-
.
|
994
|
-
.
|
995
|
-
.
|
996
|
-
.
|
997
|
-
.
|
998
|
-
|
999
|
-
.Item_1qz9bfn_sfwcury__aad46e58{-webkit-scroll-snap-align:var(--sfwcury-0);-moz-scroll-snap-align:var(--sfwcury-0);-ms-scroll-snap-align:var(--sfwcury-0);scroll-snap-align:var(--sfwcury-0);-webkit-scroll-snap-stop:var(--sfwcury-1);-moz-scroll-snap-stop:var(--sfwcury-1);-ms-scroll-snap-stop:var(--sfwcury-1);scroll-snap-stop:var(--sfwcury-1);}
|
993
|
+
.Carousel_styles_a2t6qm_b13uu57o__25de5594{position:relative;}
|
994
|
+
.Carousel_styles_a2t6qm_c1gygdut__25de5594{position:relative;margin-left:calc(var(--temporary-carousel-padding) * -1);margin-right:calc(var(--temporary-carousel-padding) * -1);padding:0;list-style:none;-ms-overflow-style:none;-webkit-scrollbar-width:none;-moz-scrollbar-width:none;-ms-scrollbar-width:none;scrollbar-width:none;overflow-x:auto;overflow-y:hidden;-webkit-scroll-behavior:smooth;-moz-scroll-behavior:smooth;-ms-scroll-behavior:smooth;scroll-behavior:smooth;-webkit-scroll-snap-type:x mandatory;-moz-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0);--temporary-carousel-padding:0.625rem;}.Carousel_styles_a2t6qm_c1gygdut__25de5594::-webkit-scrollbar{display:none;}
|
995
|
+
.Carousel_styles_a2t6qm_c76zbfp__25de5594{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}
|
996
|
+
.Carousel_styles_a2t6qm_i1cnnvc1__25de5594{position:absolute;top:50%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);left:0.75rem;z-index:10;--plasma-icon-button-color:var(--text-primary);--plasma-icon-button-background-color:var(--surface-transparent-secondary);--plasma-icon-button-loading-background-color:var(--plasma-icon-button-background-color);--plasma-icon-button-background-color-hover:var(--surface-transparent-secondary-hover);--plasma-icon-button-background-color-active:var(--surface-transparent-secondary-active);--plasma-icon-button-height:2.5rem;--plasma-icon-button-width:2.5rem;--plasma-icon-button-padding:1rem;--plasma-icon-button-radius:0.625rem;}.Carousel_styles_a2t6qm_i1cnnvc1__25de5594.Carousel_styles_a2t6qm_carouselRightControlButton__25de5594{left:auto;right:0.75rem;}
|
997
|
+
.Carousel_styles_a2t6qm_c1ff2k98__25de5594{position:relative;}
|
1000
998
|
|
1001
999
|
.Dots_styles_ea836d_wn5xio__3fa33efc{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;margin-top:0.75rem;--duration:0.3s;--half-duration:0.15s;}
|
1002
1000
|
.Dots_styles_ea836d_tnn1xpa__3fa33efc{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-transition:-webkit-transform 0s ease;-webkit-transition:transform 0s ease;transition:transform 0s ease;}.Dots_styles_ea836d_tnn1xpa__3fa33efc.Dots_styles_ea836d_dotAnimating__3fa33efc{-webkit-transition:-webkit-transform var(--duration) ease;-webkit-transition:transform var(--duration) ease;transition:transform var(--duration) ease;}.Dots_styles_ea836d_tnn1xpa__3fa33efc .Dots_styles_ea836d_dot__3fa33efc{width:0.5rem;height:0.5rem;margin:0 0.25rem;cursor:pointer;background-color:var(--plasma-carousel-pagination-dot-background);border-radius:100%;}.Dots_styles_ea836d_tnn1xpa__3fa33efc .Dots_styles_ea836d_dot__3fa33efc.Dots_styles_ea836d_dotActive__3fa33efc{background-color:var(--plasma-carousel-pagination-dot-active-background);}@-webkit-keyframes Dots_styles_ea836d_fadeOutTnn1xpa__3fa33efc{from{-webkit-transform:scale(0.75);-ms-transform:scale(0.75);transform:scale(0.75);opacity:1;}to{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);opacity:0;}}@keyframes Dots_styles_ea836d_fadeOutTnn1xpa__3fa33efc{from{-webkit-transform:scale(0.75);-ms-transform:scale(0.75);transform:scale(0.75);opacity:1;}to{-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);opacity:0;}}.Dots_styles_ea836d_tnn1xpa__3fa33efc .Dots_styles_ea836d_dot__3fa33efc.Dots_styles_ea836d_dotAnimateOut__3fa33efc{-webkit-animation:Dots_styles_ea836d_fadeOutTnn1xpa__3fa33efc var(--half-duration) ease forwards;animation:Dots_styles_ea836d_fadeOutTnn1xpa__3fa33efc var(--half-duration) ease forwards;}@-webkit-keyframes Dots_styles_ea836d_shrinkingTnn1xpa__3fa33efc{from{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}to{-webkit-transform:scale(0.75);-ms-transform:scale(0.75);transform:scale(0.75);}}@keyframes Dots_styles_ea836d_shrinkingTnn1xpa__3fa33efc{from{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1);}to{-webkit-transform:scale(0.75);-ms-transform:scale(0.75);transform:scale(0.75);}}.Dots_styles_ea836d_tnn1xpa__3fa33efc .Dots_styles_ea836d_dot__3fa33efc.Dots_styles_ea836d_dotShrinking__3fa33efc{-webkit-animation:Dots_styles_ea836d_shrinkingTnn1xpa__3fa33efc var(--half-duration) var(--half-duration) ease forwards;animation:Dots_styles_ea836d_shrinkingTnn1xpa__3fa33efc var(--half-duration) var(--half-duration) ease forwards;}
|
package/cjs/index.js
CHANGED
@@ -696,7 +696,7 @@ exports.CarouselGridWrapper = Carousel_styles.CarouselGridWrapper;
|
|
696
696
|
exports.CarouselItem = CarouselItem.CarouselItem;
|
697
697
|
exports.carouselNewConfig = Carousel$1.carouselNewConfig;
|
698
698
|
exports.carouselNewRoot = Carousel$1.carouselNewRoot;
|
699
|
-
exports.
|
699
|
+
exports.carouselNewTokens = Carousel_tokens.tokens;
|
700
700
|
exports.SmartPaginationDots = SmartPaginationDots.SmartPaginationDots;
|
701
701
|
exports.PaginationDots = PaginationDots.PaginationDots;
|
702
702
|
exports.PaginationDot = PaginationDot.PaginationDot;
|