@loword/loword-design-system 0.0.15 → 0.0.16
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
|
-
{"version":3,"file":"LDCarousel.d.ts","sourceRoot":"","sources":["../../../src/components/LDCarousel/LDCarousel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACrE,OAAqB,EACnB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,gCAAgC;IAChC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,sBAAsB;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,0DAA0D;IAC1D,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,sCAAsC;IACtC,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,8FAA8F;IAC9F,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3C;+EAC2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL;8DACsD;QACtD,IAAI,EAAE,MAAM,CAAC;QACb,8EAA8E;QAC9E,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;KACtB,CAAC;IACF,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,QAAA,MAAM,UAAU;+MAmBb,eAAe;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"LDCarousel.d.ts","sourceRoot":"","sources":["../../../src/components/LDCarousel/LDCarousel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACrE,OAAqB,EACnB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,gCAAgC;IAChC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,sBAAsB;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,0DAA0D;IAC1D,UAAU,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IACrC,sCAAsC;IACtC,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,8FAA8F;IAC9F,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3C;+EAC2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL;8DACsD;QACtD,IAAI,EAAE,MAAM,CAAC;QACb,8EAA8E;QAC9E,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;KACtB,CAAC;IACF,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,QAAA,MAAM,UAAU;+MAmBb,eAAe;;;;;;;;;;CAyFjB,CAAC;AAYF,eAAe,UAAU,CAAC"}
|
|
@@ -14,11 +14,9 @@ const LDCarousel = ({ slides, orientation = 'horizontal', loop = false, autoplay
|
|
|
14
14
|
const columns = rows <= 1
|
|
15
15
|
? slides.map((_, i) => [i])
|
|
16
16
|
: Array.from({ length: columnCount }, (_, col) => Array.from({ length: rows }, (_, row) => grid?.fill === 'col' ? col * rows + row : row * columnCount + col).filter((i) => i < slides.length));
|
|
17
|
-
return (_jsx(CarouselBase.Root, { orientation: orientation, loop: loop, autoplay: autoplay, autoScroll: autoScroll, align: align, containScroll: containScroll, options: options, gap: gap, className: className, style: style, children: _jsxs("div", { className: "flex flex-col gap-3", children: [arrowPosition === 'top' && _jsx(CarouselBase.TopArrows, {}), _jsxs("div", { className: cn('flex items-center gap-3 w-full relative', isVertical && 'flex-col'
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
// items-start: 위치만 맞추고 카드 높이는 콘텐츠대로 둔다.
|
|
21
|
-
_jsx("div", { className: "grid h-full items-start", style: {
|
|
17
|
+
return (_jsx(CarouselBase.Root, { orientation: orientation, loop: loop, autoplay: autoplay, autoScroll: autoScroll, align: align, containScroll: containScroll, options: options, gap: gap, className: cn(arrowPosition === 'side' && !isVertical && 'ld-carousel--nav-gutter-x', className), style: style, children: _jsxs("div", { className: "flex flex-col gap-3", children: [arrowPosition === 'top' && _jsx(CarouselBase.TopArrows, {}), _jsxs("div", { className: cn('flex items-center gap-3 w-full relative', isVertical && 'flex-col', isVertical &&
|
|
18
|
+
arrowPosition === 'side' &&
|
|
19
|
+
'ld-carousel__nav-clearance-y'), children: [arrowPosition === 'side' && _jsx(CarouselBase.Prev, {}), _jsx(CarouselBase.Viewport, { className: cn('w-full', viewportClassName), children: _jsx(CarouselBase.Container, { children: columns.map((column, i) => (_jsx(CarouselBase.Slide, { slidesPerView: slidesPerView, index: i, total: columns.length, className: slideClassName, children: rows <= 1 ? (slides[i]) : (_jsx("div", { className: "grid h-full items-start", style: {
|
|
22
20
|
gridTemplateRows: `repeat(${rows}, minmax(0, 1fr))`,
|
|
23
21
|
rowGap: gap,
|
|
24
22
|
}, children: column.map((slideIndex) => (_jsx(Fragment, { children: slides[slideIndex] }, slideIndex))) })) }, i))) }) }), arrowPosition === 'side' && _jsx(CarouselBase.Next, {})] }), (showDots || showCounter) && (_jsxs("div", { className: "flex items-center justify-center gap-3", children: [showDots && (_jsx(CarouselBase.Dots, { className: isVertical ? 'flex-col' : undefined })), showCounter && _jsx(CarouselBase.Counter, {})] }))] }) }));
|
package/dist/index.css
CHANGED
|
@@ -5402,6 +5402,15 @@
|
|
|
5402
5402
|
}
|
|
5403
5403
|
}
|
|
5404
5404
|
@layer components {
|
|
5405
|
+
.ld-carousel {
|
|
5406
|
+
--ld-carousel-nav-size: 50px;
|
|
5407
|
+
}
|
|
5408
|
+
.ld-carousel--nav-gutter-x {
|
|
5409
|
+
padding-inline: calc(var(--ld-carousel-nav-size) / 2);
|
|
5410
|
+
}
|
|
5411
|
+
.ld-carousel__nav-clearance-y {
|
|
5412
|
+
margin-block: calc(var(--ld-carousel-nav-size) / 2);
|
|
5413
|
+
}
|
|
5405
5414
|
.ld-carousel__viewport {
|
|
5406
5415
|
overflow: hidden;
|
|
5407
5416
|
}
|
|
@@ -5409,6 +5418,9 @@
|
|
|
5409
5418
|
height: 100%;
|
|
5410
5419
|
}
|
|
5411
5420
|
.ld-carousel__nav {
|
|
5421
|
+
position: absolute;
|
|
5422
|
+
top: 50%;
|
|
5423
|
+
z-index: 10;
|
|
5412
5424
|
display: flex;
|
|
5413
5425
|
align-items: center;
|
|
5414
5426
|
justify-content: center;
|
|
@@ -5416,16 +5428,15 @@
|
|
|
5416
5428
|
cursor: pointer;
|
|
5417
5429
|
border-radius: 9999px;
|
|
5418
5430
|
flex-shrink: 0;
|
|
5419
|
-
width:
|
|
5420
|
-
height:
|
|
5431
|
+
width: var(--ld-carousel-nav-size);
|
|
5432
|
+
height: var(--ld-carousel-nav-size);
|
|
5421
5433
|
transition: all 300ms ease-out;
|
|
5422
5434
|
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
5423
5435
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
5424
5436
|
}
|
|
5425
5437
|
@media (max-width: calc(768px - 1px)) {
|
|
5426
|
-
.ld-
|
|
5427
|
-
|
|
5428
|
-
height: 40px;
|
|
5438
|
+
.ld-carousel {
|
|
5439
|
+
--ld-carousel-nav-size: 40px;
|
|
5429
5440
|
}
|
|
5430
5441
|
.ld-carousel__nav svg {
|
|
5431
5442
|
width: 20px;
|
|
@@ -5433,29 +5444,29 @@
|
|
|
5433
5444
|
}
|
|
5434
5445
|
}
|
|
5435
5446
|
.ld-carousel__nav:disabled {
|
|
5436
|
-
opacity: 0.4;
|
|
5437
5447
|
cursor: not-allowed;
|
|
5448
|
+
color: var(--color-neutral400);
|
|
5438
5449
|
}
|
|
5439
5450
|
.ld-carousel__nav:first-child {
|
|
5440
|
-
left:
|
|
5451
|
+
left: 0;
|
|
5452
|
+
transform: translate(-50%, -50%);
|
|
5441
5453
|
}
|
|
5442
5454
|
.ld-carousel__nav:last-child {
|
|
5443
|
-
right:
|
|
5444
|
-
|
|
5445
|
-
.ld-carousel__nav--vertical {
|
|
5446
|
-
transform: translateX(-50%);
|
|
5455
|
+
right: 0;
|
|
5456
|
+
transform: translate(50%, -50%);
|
|
5447
5457
|
}
|
|
5448
5458
|
.ld-carousel__nav--vertical:first-child {
|
|
5449
|
-
top:
|
|
5450
|
-
bottom: auto;
|
|
5459
|
+
top: 0;
|
|
5451
5460
|
left: 50%;
|
|
5452
5461
|
right: auto;
|
|
5462
|
+
transform: translate(-50%, -50%);
|
|
5453
5463
|
}
|
|
5454
5464
|
.ld-carousel__nav--vertical:last-child {
|
|
5455
5465
|
top: auto;
|
|
5456
|
-
bottom:
|
|
5466
|
+
bottom: 0;
|
|
5457
5467
|
left: 50%;
|
|
5458
5468
|
right: auto;
|
|
5469
|
+
transform: translate(-50%, 50%);
|
|
5459
5470
|
}
|
|
5460
5471
|
}
|
|
5461
5472
|
@property --tw-translate-x {
|
package/package.json
CHANGED
package/src/styles/carousel.css
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
@layer components {
|
|
2
|
+
.ld-carousel {
|
|
3
|
+
--ld-carousel-nav-size: 50px;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.ld-carousel--nav-gutter-x {
|
|
7
|
+
padding-inline: calc(var(--ld-carousel-nav-size) / 2);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.ld-carousel__nav-clearance-y {
|
|
11
|
+
margin-block: calc(var(--ld-carousel-nav-size) / 2);
|
|
12
|
+
}
|
|
13
|
+
|
|
2
14
|
.ld-carousel__viewport {
|
|
3
15
|
overflow: hidden;
|
|
4
16
|
}
|
|
@@ -8,6 +20,9 @@
|
|
|
8
20
|
}
|
|
9
21
|
|
|
10
22
|
.ld-carousel__nav {
|
|
23
|
+
position: absolute;
|
|
24
|
+
top: 50%;
|
|
25
|
+
z-index: 10;
|
|
11
26
|
display: flex;
|
|
12
27
|
align-items: center;
|
|
13
28
|
justify-content: center;
|
|
@@ -15,16 +30,15 @@
|
|
|
15
30
|
cursor: pointer;
|
|
16
31
|
border-radius: 9999px;
|
|
17
32
|
flex-shrink: 0;
|
|
18
|
-
width:
|
|
19
|
-
height:
|
|
33
|
+
width: var(--ld-carousel-nav-size);
|
|
34
|
+
height: var(--ld-carousel-nav-size);
|
|
20
35
|
transition: all 300ms ease-out;
|
|
21
36
|
@apply shadow-lg;
|
|
22
37
|
}
|
|
23
38
|
|
|
24
39
|
@variant mobile {
|
|
25
|
-
.ld-
|
|
26
|
-
|
|
27
|
-
height: 40px;
|
|
40
|
+
.ld-carousel {
|
|
41
|
+
--ld-carousel-nav-size: 40px;
|
|
28
42
|
}
|
|
29
43
|
|
|
30
44
|
.ld-carousel__nav svg {
|
|
@@ -34,33 +48,32 @@
|
|
|
34
48
|
}
|
|
35
49
|
|
|
36
50
|
.ld-carousel__nav:disabled {
|
|
37
|
-
opacity: 0.4;
|
|
38
51
|
cursor: not-allowed;
|
|
52
|
+
color: var(--color-neutral400);
|
|
39
53
|
}
|
|
40
54
|
|
|
41
55
|
.ld-carousel__nav:first-child {
|
|
42
|
-
left:
|
|
56
|
+
left: 0;
|
|
57
|
+
transform: translate(-50%, -50%);
|
|
43
58
|
}
|
|
44
59
|
|
|
45
60
|
.ld-carousel__nav:last-child {
|
|
46
|
-
right:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
.ld-carousel__nav--vertical {
|
|
50
|
-
transform: translateX(-50%);
|
|
61
|
+
right: 0;
|
|
62
|
+
transform: translate(50%, -50%);
|
|
51
63
|
}
|
|
52
64
|
|
|
53
65
|
.ld-carousel__nav--vertical:first-child {
|
|
54
|
-
top:
|
|
55
|
-
bottom: auto;
|
|
66
|
+
top: 0;
|
|
56
67
|
left: 50%;
|
|
57
68
|
right: auto;
|
|
69
|
+
transform: translate(-50%, -50%);
|
|
58
70
|
}
|
|
59
71
|
|
|
60
72
|
.ld-carousel__nav--vertical:last-child {
|
|
61
73
|
top: auto;
|
|
62
|
-
bottom:
|
|
74
|
+
bottom: 0;
|
|
63
75
|
left: 50%;
|
|
64
76
|
right: auto;
|
|
77
|
+
transform: translate(-50%, 50%);
|
|
65
78
|
}
|
|
66
79
|
}
|