@x-plat/design-system 0.2.4 → 0.3.2

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.
Files changed (80) hide show
  1. package/dist/{colors-cxE7RsuF.d.cts → colors-BgzpjYfN.d.cts} +3 -6
  2. package/dist/{colors-cxE7RsuF.d.ts → colors-BgzpjYfN.d.ts} +3 -6
  3. package/dist/components/Avatar/index.cjs +2 -14
  4. package/dist/components/Avatar/index.d.cts +3 -235
  5. package/dist/components/Avatar/index.d.ts +3 -235
  6. package/dist/components/Avatar/index.js +2 -14
  7. package/dist/components/Badge/index.cjs +2 -14
  8. package/dist/components/Badge/index.d.cts +3 -235
  9. package/dist/components/Badge/index.d.ts +3 -235
  10. package/dist/components/Badge/index.js +2 -14
  11. package/dist/components/Button/index.cjs +2 -14
  12. package/dist/components/Button/index.d.cts +3 -235
  13. package/dist/components/Button/index.d.ts +3 -235
  14. package/dist/components/Button/index.js +2 -14
  15. package/dist/components/CheckBox/index.cjs +2 -14
  16. package/dist/components/CheckBox/index.d.cts +3 -235
  17. package/dist/components/CheckBox/index.d.ts +3 -235
  18. package/dist/components/CheckBox/index.js +2 -14
  19. package/dist/components/Chip/index.cjs +2 -14
  20. package/dist/components/Chip/index.d.cts +3 -235
  21. package/dist/components/Chip/index.d.ts +3 -235
  22. package/dist/components/Chip/index.js +2 -14
  23. package/dist/components/DatePicker/index.cjs +9 -161
  24. package/dist/components/DatePicker/index.d.cts +5 -469
  25. package/dist/components/DatePicker/index.d.ts +5 -469
  26. package/dist/components/DatePicker/index.js +9 -161
  27. package/dist/components/Pagination/index.cjs +2 -14
  28. package/dist/components/Pagination/index.d.cts +3 -235
  29. package/dist/components/Pagination/index.d.ts +3 -235
  30. package/dist/components/Pagination/index.js +2 -14
  31. package/dist/components/Progress/index.cjs +2 -14
  32. package/dist/components/Progress/index.d.cts +3 -235
  33. package/dist/components/Progress/index.d.ts +3 -235
  34. package/dist/components/Progress/index.js +2 -14
  35. package/dist/components/Radio/index.cjs +2 -14
  36. package/dist/components/Radio/index.d.cts +3 -235
  37. package/dist/components/Radio/index.d.ts +3 -235
  38. package/dist/components/Radio/index.js +2 -14
  39. package/dist/components/Spinner/index.cjs +2 -14
  40. package/dist/components/Spinner/index.d.cts +3 -235
  41. package/dist/components/Spinner/index.d.ts +3 -235
  42. package/dist/components/Spinner/index.js +2 -14
  43. package/dist/components/Steps/index.cjs +2 -14
  44. package/dist/components/Steps/index.d.cts +3 -235
  45. package/dist/components/Steps/index.d.ts +3 -235
  46. package/dist/components/Steps/index.js +2 -14
  47. package/dist/components/Swiper/index.cjs +257 -5939
  48. package/dist/components/Swiper/index.css +52 -211
  49. package/dist/components/Swiper/index.d.cts +35 -16
  50. package/dist/components/Swiper/index.d.ts +35 -16
  51. package/dist/components/Swiper/index.js +251 -5944
  52. package/dist/components/Switch/index.cjs +2 -14
  53. package/dist/components/Switch/index.d.cts +3 -235
  54. package/dist/components/Switch/index.d.ts +3 -235
  55. package/dist/components/Switch/index.js +2 -14
  56. package/dist/components/Table/index.cjs +2 -16
  57. package/dist/components/Table/index.d.cts +3 -235
  58. package/dist/components/Table/index.d.ts +3 -235
  59. package/dist/components/Table/index.js +2 -16
  60. package/dist/components/Tag/index.cjs +2 -14
  61. package/dist/components/Tag/index.d.cts +3 -235
  62. package/dist/components/Tag/index.d.ts +3 -235
  63. package/dist/components/Tag/index.js +2 -14
  64. package/dist/components/Tooltip/index.cjs +2 -14
  65. package/dist/components/Tooltip/index.d.cts +3 -238
  66. package/dist/components/Tooltip/index.d.ts +3 -238
  67. package/dist/components/Tooltip/index.js +2 -14
  68. package/dist/components/index.cjs +390 -251
  69. package/dist/components/index.css +71 -0
  70. package/dist/components/index.d.cts +2 -1
  71. package/dist/components/index.d.ts +2 -1
  72. package/dist/components/index.js +390 -252
  73. package/dist/index.cjs +414 -275
  74. package/dist/index.css +71 -0
  75. package/dist/index.d.cts +2 -1
  76. package/dist/index.d.ts +2 -1
  77. package/dist/index.js +414 -276
  78. package/dist/tokens/index.d.cts +1 -1
  79. package/dist/tokens/index.d.ts +1 -1
  80. package/package.json +3 -9
@@ -1,229 +1,70 @@
1
- /* ../../node_modules/swiper/swiper.css */
2
- :root {
3
- --swiper-theme-color: #007aff;
4
- }
5
- :host {
1
+ /* src/components/Swiper/swiper.scss */
2
+ .lib-xplat-swiper {
3
+ width: 100%;
6
4
  position: relative;
7
- display: block;
8
- margin-left: auto;
9
- margin-right: auto;
10
- z-index: 1;
11
5
  }
12
- .swiper {
13
- margin-left: auto;
14
- margin-right: auto;
15
- position: relative;
6
+ .lib-xplat-swiper__viewport {
16
7
  overflow: hidden;
17
- list-style: none;
18
- padding: 0;
19
- z-index: 1;
20
- display: block;
8
+ cursor: grab;
9
+ user-select: none;
21
10
  }
22
- .swiper-vertical > .swiper-wrapper {
23
- flex-direction: column;
11
+ .lib-xplat-swiper__viewport:active {
12
+ cursor: grabbing;
24
13
  }
25
- .swiper-wrapper {
26
- position: relative;
27
- width: 100%;
28
- height: 100%;
29
- z-index: 1;
14
+ .lib-xplat-swiper__track {
30
15
  display: flex;
31
- transition-property: transform;
32
- transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
33
- box-sizing: content-box;
16
+ will-change: transform;
34
17
  }
35
- .swiper-android .swiper-slide,
36
- .swiper-ios .swiper-slide,
37
- .swiper-wrapper {
38
- transform: translate3d(0px, 0, 0);
39
- }
40
- .swiper-horizontal {
41
- touch-action: pan-y;
42
- }
43
- .swiper-vertical {
44
- touch-action: pan-x;
45
- }
46
- .swiper-slide {
47
- flex-shrink: 0;
48
- width: 100%;
49
- height: 100%;
50
- position: relative;
18
+ .lib-xplat-swiper__track.transitioning {
51
19
  transition-property: transform;
52
- display: block;
53
- }
54
- .swiper-slide-invisible-blank {
55
- visibility: hidden;
20
+ transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
56
21
  }
57
- .swiper-autoheight,
58
- .swiper-autoheight .swiper-slide {
59
- height: auto;
60
- }
61
- .swiper-autoheight .swiper-wrapper {
62
- align-items: flex-start;
63
- transition-property: transform, height;
64
- }
65
- .swiper-backface-hidden .swiper-slide {
66
- transform: translateZ(0);
67
- backface-visibility: hidden;
68
- }
69
- .swiper-3d.swiper-css-mode .swiper-wrapper {
70
- perspective: 1200px;
71
- }
72
- .swiper-3d .swiper-wrapper {
73
- transform-style: preserve-3d;
74
- }
75
- .swiper-3d {
76
- perspective: 1200px;
77
- .swiper-slide,
78
- .swiper-cube-shadow {
79
- transform-style: preserve-3d;
80
- }
22
+ .lib-xplat-swiper__slide {
23
+ flex-shrink: 0;
24
+ overflow: hidden;
81
25
  }
82
- .swiper-css-mode {
83
- > .swiper-wrapper {
84
- overflow: auto;
85
- scrollbar-width: none;
86
- -ms-overflow-style: none;
87
- &::-webkit-scrollbar {
88
- display: none;
89
- }
90
- }
91
- > .swiper-wrapper > .swiper-slide {
92
- scroll-snap-align: start start;
93
- }
94
- &.swiper-horizontal {
95
- > .swiper-wrapper {
96
- scroll-snap-type: x mandatory;
97
- }
98
- }
99
- &.swiper-vertical {
100
- > .swiper-wrapper {
101
- scroll-snap-type: y mandatory;
102
- }
103
- }
104
- &.swiper-free-mode {
105
- > .swiper-wrapper {
106
- scroll-snap-type: none;
107
- }
108
- > .swiper-wrapper > .swiper-slide {
109
- scroll-snap-align: none;
110
- }
111
- }
112
- &.swiper-centered {
113
- > .swiper-wrapper::before {
114
- content: "";
115
- flex-shrink: 0;
116
- order: 9999;
117
- }
118
- > .swiper-wrapper > .swiper-slide {
119
- scroll-snap-align: center center;
120
- scroll-snap-stop: always;
121
- }
122
- }
123
- &.swiper-centered.swiper-horizontal {
124
- > .swiper-wrapper > .swiper-slide:first-child {
125
- margin-inline-start: var(--swiper-centered-offset-before);
126
- }
127
- > .swiper-wrapper::before {
128
- height: 100%;
129
- min-height: 1px;
130
- width: var(--swiper-centered-offset-after);
131
- }
132
- }
133
- &.swiper-centered.swiper-vertical {
134
- > .swiper-wrapper > .swiper-slide:first-child {
135
- margin-block-start: var(--swiper-centered-offset-before);
136
- }
137
- > .swiper-wrapper::before {
138
- width: 100%;
139
- min-width: 1px;
140
- height: var(--swiper-centered-offset-after);
141
- }
142
- }
26
+ .lib-xplat-swiper__progress {
27
+ margin-top: 1rem;
28
+ display: flex;
29
+ justify-content: center;
143
30
  }
144
- .swiper-3d {
145
- .swiper-slide-shadow,
146
- .swiper-slide-shadow-left,
147
- .swiper-slide-shadow-right,
148
- .swiper-slide-shadow-top,
149
- .swiper-slide-shadow-bottom,
150
- .swiper-slide-shadow,
151
- .swiper-slide-shadow-left,
152
- .swiper-slide-shadow-right,
153
- .swiper-slide-shadow-top,
154
- .swiper-slide-shadow-bottom {
155
- position: absolute;
156
- left: 0;
157
- top: 0;
158
- width: 100%;
159
- height: 100%;
160
- pointer-events: none;
161
- z-index: 10;
162
- }
163
- .swiper-slide-shadow {
164
- background: rgba(0, 0, 0, 0.15);
165
- }
166
- .swiper-slide-shadow-left {
167
- background-image:
168
- linear-gradient(
169
- to left,
170
- rgba(0, 0, 0, 0.5),
171
- rgba(0, 0, 0, 0));
172
- }
173
- .swiper-slide-shadow-right {
174
- background-image:
175
- linear-gradient(
176
- to right,
177
- rgba(0, 0, 0, 0.5),
178
- rgba(0, 0, 0, 0));
179
- }
180
- .swiper-slide-shadow-top {
181
- background-image:
182
- linear-gradient(
183
- to top,
184
- rgba(0, 0, 0, 0.5),
185
- rgba(0, 0, 0, 0));
186
- }
187
- .swiper-slide-shadow-bottom {
188
- background-image:
189
- linear-gradient(
190
- to bottom,
191
- rgba(0, 0, 0, 0.5),
192
- rgba(0, 0, 0, 0));
193
- }
31
+ .lib-xplat-swiper__progress-track {
32
+ position: relative;
33
+ width: 100%;
34
+ max-width: 580px;
35
+ height: 2px;
36
+ background-color: var(--xplat-neutral-200);
37
+ border-radius: 1px;
194
38
  }
195
- .swiper-lazy-preloader {
196
- width: 42px;
197
- height: 42px;
39
+ .lib-xplat-swiper__progress-fill {
198
40
  position: absolute;
199
- left: 50%;
200
- top: 50%;
201
- margin-left: -21px;
202
- margin-top: -21px;
203
- z-index: 10;
204
- transform-origin: 50%;
205
- box-sizing: border-box;
206
- border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
207
- border-radius: 50%;
208
- border-top-color: transparent;
41
+ top: 0;
42
+ left: 0;
43
+ height: 100%;
44
+ background-color: var(--xplat-neutral-500);
45
+ border-radius: 1px;
46
+ transition-property: width;
47
+ transition-timing-function: ease;
209
48
  }
210
- .swiper:not(.swiper-watch-progress),
211
- .swiper-watch-progress .swiper-slide-visible {
212
- .swiper-lazy-preloader {
213
- animation: swiper-preloader-spin 1s infinite linear;
214
- }
49
+ .lib-xplat-swiper__dots {
50
+ display: flex;
51
+ justify-content: center;
52
+ gap: 6px;
53
+ margin-top: 1rem;
215
54
  }
216
- .swiper-lazy-preloader-white {
217
- --swiper-preloader-color: #fff;
55
+ .lib-xplat-swiper__dot {
56
+ width: 8px;
57
+ height: 8px;
58
+ border-radius: 50%;
59
+ border: none;
60
+ padding: 0;
61
+ cursor: pointer;
62
+ background-color: var(--xplat-neutral-300);
63
+ transition: background-color 0.2s;
218
64
  }
219
- .swiper-lazy-preloader-black {
220
- --swiper-preloader-color: #000;
65
+ .lib-xplat-swiper__dot.active {
66
+ background-color: var(--xplat-neutral-700);
221
67
  }
222
- @keyframes swiper-preloader-spin {
223
- 0% {
224
- transform: rotate(0deg);
225
- }
226
- 100% {
227
- transform: rotate(360deg);
228
- }
68
+ .lib-xplat-swiper__dot:hover:not(.active) {
69
+ background-color: var(--xplat-neutral-400);
229
70
  }
@@ -1,24 +1,43 @@
1
- import React, { MutableRefObject, ReactNode } from 'react';
2
- import { SwiperClass } from 'swiper/react';
3
- import { SwiperOptions } from 'swiper/types';
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React from 'react';
4
3
 
5
- interface SwiperComponentProps {
4
+ interface SwiperHandle {
5
+ slidePrev: () => void;
6
+ slideNext: () => void;
7
+ slideTo: (index: number) => void;
8
+ }
9
+ interface SwiperProps {
10
+ /** 자동 슬라이딩 */
6
11
  auto?: boolean;
7
- swiperRef?: MutableRefObject<SwiperClass | null>;
8
- renderItems?: Array<ReactNode>;
9
- viewItemCount?: number | "auto";
12
+ /** 외부에서 제어할 ref */
13
+ swiperRef?: React.RefObject<SwiperHandle | null>;
14
+ /** 슬라이드 아이템 */
15
+ renderItems?: React.ReactNode[];
16
+ /** 한 번에 보이는 아이템 수 */
17
+ viewItemCount?: number;
18
+ /** 최대 아이템 수 */
10
19
  maxItems?: number;
11
- freeMode?: boolean;
12
- options?: SwiperOptions;
20
+ /** 루프 */
13
21
  loop?: boolean;
22
+ /** 슬라이드 간격 (px) */
14
23
  spaceBetween?: number;
15
- centeredSlides?: boolean;
16
- loopSlides?: number;
17
- isProgress?: boolean;
18
- totalItemCount?: number;
19
- showAutoplayProgress?: boolean;
24
+ /** 진행바 표시 */
25
+ showProgress?: boolean;
26
+ /** 오토플레이 딜레이 (ms) */
20
27
  autoplayDelay?: number;
28
+ /** 슬라이드 전환 속도 (ms) */
29
+ speed?: number;
30
+ /** 한 번에 이동할 슬라이드 수 (기본: 1) */
31
+ slideBy?: number;
32
+ /** 현재 슬라이드 인덱스 (controlled) */
33
+ index?: number;
34
+ /** 슬라이드 변경 콜백 */
35
+ onChange?: (index: number) => void;
36
+ className?: string;
21
37
  }
22
- declare const SwiperContentComponent: React.FC<SwiperComponentProps>;
38
+ declare const Swiper: {
39
+ (props: SwiperProps): react_jsx_runtime.JSX.Element;
40
+ displayName: string;
41
+ };
23
42
 
24
- export { SwiperContentComponent as default };
43
+ export { Swiper, type SwiperHandle, type SwiperProps };
@@ -1,24 +1,43 @@
1
- import React, { MutableRefObject, ReactNode } from 'react';
2
- import { SwiperClass } from 'swiper/react';
3
- import { SwiperOptions } from 'swiper/types';
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React from 'react';
4
3
 
5
- interface SwiperComponentProps {
4
+ interface SwiperHandle {
5
+ slidePrev: () => void;
6
+ slideNext: () => void;
7
+ slideTo: (index: number) => void;
8
+ }
9
+ interface SwiperProps {
10
+ /** 자동 슬라이딩 */
6
11
  auto?: boolean;
7
- swiperRef?: MutableRefObject<SwiperClass | null>;
8
- renderItems?: Array<ReactNode>;
9
- viewItemCount?: number | "auto";
12
+ /** 외부에서 제어할 ref */
13
+ swiperRef?: React.RefObject<SwiperHandle | null>;
14
+ /** 슬라이드 아이템 */
15
+ renderItems?: React.ReactNode[];
16
+ /** 한 번에 보이는 아이템 수 */
17
+ viewItemCount?: number;
18
+ /** 최대 아이템 수 */
10
19
  maxItems?: number;
11
- freeMode?: boolean;
12
- options?: SwiperOptions;
20
+ /** 루프 */
13
21
  loop?: boolean;
22
+ /** 슬라이드 간격 (px) */
14
23
  spaceBetween?: number;
15
- centeredSlides?: boolean;
16
- loopSlides?: number;
17
- isProgress?: boolean;
18
- totalItemCount?: number;
19
- showAutoplayProgress?: boolean;
24
+ /** 진행바 표시 */
25
+ showProgress?: boolean;
26
+ /** 오토플레이 딜레이 (ms) */
20
27
  autoplayDelay?: number;
28
+ /** 슬라이드 전환 속도 (ms) */
29
+ speed?: number;
30
+ /** 한 번에 이동할 슬라이드 수 (기본: 1) */
31
+ slideBy?: number;
32
+ /** 현재 슬라이드 인덱스 (controlled) */
33
+ index?: number;
34
+ /** 슬라이드 변경 콜백 */
35
+ onChange?: (index: number) => void;
36
+ className?: string;
21
37
  }
22
- declare const SwiperContentComponent: React.FC<SwiperComponentProps>;
38
+ declare const Swiper: {
39
+ (props: SwiperProps): react_jsx_runtime.JSX.Element;
40
+ displayName: string;
41
+ };
23
42
 
24
- export { SwiperContentComponent as default };
43
+ export { Swiper, type SwiperHandle, type SwiperProps };