@iyulab/components 0.2.2 → 0.3.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/CHANGELOG.md +133 -118
- package/LICENSE +20 -20
- package/README.md +283 -283
- package/dist/assets/icons/arrow-down.svg.js +1 -1
- package/dist/assets/icons/arrow-repeat.svg.js +1 -1
- package/dist/assets/icons/arrow-up.svg.js +1 -1
- package/dist/assets/icons/ban.svg.js +1 -1
- package/dist/assets/icons/bell-fill.svg.js +1 -1
- package/dist/assets/icons/box-arrow-up-right.svg.js +1 -1
- package/dist/assets/icons/check-circle-fill.svg.js +1 -1
- package/dist/assets/icons/check-lg.svg.js +1 -1
- package/dist/assets/icons/chevron-down.svg.js +1 -1
- package/dist/assets/icons/chevron-left.svg.js +1 -1
- package/dist/assets/icons/chevron-right.svg.js +1 -1
- package/dist/assets/icons/chevron-up.svg.js +1 -1
- package/dist/assets/icons/copy.svg.js +1 -1
- package/dist/assets/icons/dash-lg.svg.js +1 -1
- package/dist/assets/icons/exclamation-circle-fill.svg.js +1 -1
- package/dist/assets/icons/exclamation-triangle-fill.svg.js +1 -1
- package/dist/assets/icons/eye-slash.svg.js +1 -1
- package/dist/assets/icons/eye.svg.js +1 -1
- package/dist/assets/icons/file-earmark.svg.js +1 -1
- package/dist/assets/icons/flag.svg.js +1 -1
- package/dist/assets/icons/globe.svg.js +1 -1
- package/dist/assets/icons/hand-thumbs-down-fill.svg.js +1 -1
- package/dist/assets/icons/hand-thumbs-down.svg.js +1 -1
- package/dist/assets/icons/hand-thumbs-up-fill.svg.js +1 -1
- package/dist/assets/icons/hand-thumbs-up.svg.js +1 -1
- package/dist/assets/icons/info-circle-fill.svg.js +1 -1
- package/dist/assets/icons/lightbulb-fill.svg.js +1 -1
- package/dist/assets/icons/lightbulb-off.svg.js +1 -1
- package/dist/assets/icons/lightbulb.svg.js +1 -1
- package/dist/assets/icons/mic-fill.svg.js +1 -1
- package/dist/assets/icons/mic-mute-fill.svg.js +1 -1
- package/dist/assets/icons/paperclip.svg.js +1 -1
- package/dist/assets/icons/pencil-square.svg.js +1 -1
- package/dist/assets/icons/plus-lg.svg.js +1 -1
- package/dist/assets/icons/search.svg.js +1 -1
- package/dist/assets/icons/share.svg.js +1 -1
- package/dist/assets/icons/stop-circle.svg.js +1 -1
- package/dist/assets/icons/tools.svg.js +1 -1
- package/dist/assets/icons/x-lg.svg.js +1 -1
- package/dist/assets/styles/dark.css +129 -129
- package/dist/assets/styles/dark.css.js +1 -1
- package/dist/assets/styles/light.css +129 -129
- package/dist/assets/styles/light.css.js +1 -1
- package/dist/components/card/UCard.component.d.ts +21 -0
- package/dist/components/card/UCard.component.js +66 -0
- package/dist/components/card/UCard.d.ts +7 -0
- package/dist/components/card/UCard.js +5 -0
- package/dist/components/card/UCard.styles.d.ts +1 -0
- package/dist/components/card/UCard.styles.js +76 -0
- package/dist/components/carousel/UCarousel.component.d.ts +67 -0
- package/dist/components/carousel/UCarousel.component.js +243 -0
- package/dist/components/carousel/UCarousel.d.ts +7 -0
- package/dist/components/carousel/UCarousel.js +5 -0
- package/dist/components/carousel/UCarousel.styles.d.ts +1 -0
- package/dist/components/carousel/UCarousel.styles.js +113 -0
- package/dist/components/icon/UIcon.component.d.ts +4 -1
- package/dist/components/input/UInput.component.d.ts +8 -0
- package/dist/components/input/UInput.component.js +17 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +4 -0
- package/dist/react-components/UCard.d.ts +8 -0
- package/dist/react-components/UCard.js +10 -0
- package/dist/react-components/UCarousel.d.ts +8 -0
- package/dist/react-components/UCarousel.js +10 -0
- package/dist/react-components/index.d.ts +2 -0
- package/dist/react-components/index.js +2 -0
- package/package.json +71 -60
|
@@ -1,130 +1,130 @@
|
|
|
1
|
-
:root {
|
|
2
|
-
color-scheme: light;
|
|
3
|
-
|
|
4
|
-
/* Neutral Colors */
|
|
5
|
-
--u-neutral-0: #FFFFFF;
|
|
6
|
-
--u-neutral-50: #FAFAFA;
|
|
7
|
-
--u-neutral-100: #F5F5F5;
|
|
8
|
-
--u-neutral-200: #EEEEEE;
|
|
9
|
-
--u-neutral-300: #E0E0E0;
|
|
10
|
-
--u-neutral-400: #BDBDBD;
|
|
11
|
-
--u-neutral-500: #9E9E9E;
|
|
12
|
-
--u-neutral-600: #757575;
|
|
13
|
-
--u-neutral-700: #616161;
|
|
14
|
-
--u-neutral-800: #424242;
|
|
15
|
-
--u-neutral-900: #212121;
|
|
16
|
-
--u-neutral-1000: #000000;
|
|
17
|
-
|
|
18
|
-
/* Blue Colors */
|
|
19
|
-
--u-blue-0: #E3F2FD;
|
|
20
|
-
--u-blue-100: #BBDEFB;
|
|
21
|
-
--u-blue-200: #90CAF9;
|
|
22
|
-
--u-blue-300: #64B5F6;
|
|
23
|
-
--u-blue-400: #42A5F5;
|
|
24
|
-
--u-blue-500: #2196F3;
|
|
25
|
-
--u-blue-600: #1E88E5;
|
|
26
|
-
--u-blue-700: #1976D2;
|
|
27
|
-
--u-blue-800: #1565C0;
|
|
28
|
-
--u-blue-900: #0D47A1;
|
|
29
|
-
--u-blue-1000: #062A5E;
|
|
30
|
-
|
|
31
|
-
/* Green Colors */
|
|
32
|
-
--u-green-0: #E8F5E9;
|
|
33
|
-
--u-green-100: #C8E6C9;
|
|
34
|
-
--u-green-200: #A5D6A7;
|
|
35
|
-
--u-green-300: #81C784;
|
|
36
|
-
--u-green-400: #66BB6A;
|
|
37
|
-
--u-green-500: #4CAF50;
|
|
38
|
-
--u-green-600: #43A047;
|
|
39
|
-
--u-green-700: #388E3C;
|
|
40
|
-
--u-green-800: #2E7D32;
|
|
41
|
-
--u-green-900: #1B5E20;
|
|
42
|
-
--u-green-1000: #0F3A12;
|
|
43
|
-
|
|
44
|
-
/* Yellow Colors */
|
|
45
|
-
--u-yellow-0: #FFFDE7;
|
|
46
|
-
--u-yellow-100: #FFF9C4;
|
|
47
|
-
--u-yellow-200: #FFF59D;
|
|
48
|
-
--u-yellow-300: #FFF176;
|
|
49
|
-
--u-yellow-400: #FFEE58;
|
|
50
|
-
--u-yellow-500: #FFEB3B;
|
|
51
|
-
--u-yellow-600: #FDD835;
|
|
52
|
-
--u-yellow-700: #FBC02D;
|
|
53
|
-
--u-yellow-800: #F9A825;
|
|
54
|
-
--u-yellow-900: #F57F17;
|
|
55
|
-
--u-yellow-1000: #8A4A00;
|
|
56
|
-
|
|
57
|
-
/* Red Colors */
|
|
58
|
-
--u-red-0: #FFEBEE;
|
|
59
|
-
--u-red-100: #FFCDD2;
|
|
60
|
-
--u-red-200: #EF9A9A;
|
|
61
|
-
--u-red-300: #E57373;
|
|
62
|
-
--u-red-400: #EF5350;
|
|
63
|
-
--u-red-500: #F44336;
|
|
64
|
-
--u-red-600: #E53935;
|
|
65
|
-
--u-red-700: #D32F2F;
|
|
66
|
-
--u-red-800: #C62828;
|
|
67
|
-
--u-red-900: #B71C1C;
|
|
68
|
-
--u-red-1000: #6B0F0F;
|
|
69
|
-
|
|
70
|
-
/* text Colors */
|
|
71
|
-
--u-txt-color: var(--u-neutral-900);
|
|
72
|
-
--u-txt-color-inverse: var(--u-neutral-0);
|
|
73
|
-
--u-txt-color-hover: var(--u-blue-600);
|
|
74
|
-
--u-txt-color-active: var(--u-blue-600);
|
|
75
|
-
--u-txt-color-disabled: var(--u-neutral-400);
|
|
76
|
-
--u-txt-color-weak: var(--u-neutral-700);
|
|
77
|
-
--u-txt-color-strong: var(--u-neutral-1000);
|
|
78
|
-
|
|
79
|
-
--u-link-txt-color: var(--u-blue-700);
|
|
80
|
-
--u-tooltip-txt-color: var(--u-neutral-0);
|
|
81
|
-
|
|
82
|
-
/* Icon Colors */
|
|
83
|
-
--u-icon-color: var(--u-neutral-700);
|
|
84
|
-
--u-icon-color-inverse: var(--u-neutral-0);
|
|
85
|
-
--u-icon-color-hover: var(--u-blue-600);
|
|
86
|
-
--u-icon-color-active: var(--u-blue-600);
|
|
87
|
-
--u-icon-color-disabled: var(--u-neutral-400);
|
|
88
|
-
|
|
89
|
-
/* border Colors */
|
|
90
|
-
--u-border-color: var(--u-neutral-300);
|
|
91
|
-
--u-border-color-weak: var(--u-neutral-200);
|
|
92
|
-
--u-border-color-strong: var(--u-neutral-400);
|
|
93
|
-
|
|
94
|
-
--u-input-border-color: var(--u-neutral-300);
|
|
95
|
-
--u-input-border-color-hover: var(--u-neutral-400);
|
|
96
|
-
--u-input-border-color-focus: var(--u-blue-600);
|
|
97
|
-
--u-input-border-color-invalid: var(--u-red-600);
|
|
98
|
-
|
|
99
|
-
/* background Colors */
|
|
100
|
-
--u-bg-color: var(--u-neutral-0);
|
|
101
|
-
--u-bg-color-inverse: var(--u-neutral-900);
|
|
102
|
-
--u-bg-color-hover: var(--u-neutral-100);
|
|
103
|
-
--u-bg-color-active: var(--u-neutral-200);
|
|
104
|
-
--u-bg-color-disabled: var(--u-neutral-50);
|
|
105
|
-
|
|
106
|
-
--u-input-bg-color: var(--u-neutral-0);
|
|
107
|
-
--u-panel-bg-color: var(--u-neutral-0);
|
|
108
|
-
--u-overlay-bg-color: rgba(0, 0, 0, 0.5);
|
|
109
|
-
--u-tooltip-bg-color: rgba(0, 0, 0, 0.75);
|
|
110
|
-
|
|
111
|
-
/* Shadow Colors */
|
|
112
|
-
--u-shadow-color-weaker: rgba(0, 0, 0, 0.04);
|
|
113
|
-
--u-shadow-color-weak: rgba(0, 0, 0, 0.08);
|
|
114
|
-
--u-shadow-color-normal: rgba(0, 0, 0, 0.12);
|
|
115
|
-
--u-shadow-color-strong: rgba(0, 0, 0, 0.16);
|
|
116
|
-
--u-shadow-color-stronger: rgba(0, 0, 0, 0.24);
|
|
117
|
-
|
|
118
|
-
/* Scrollbar Colors */
|
|
119
|
-
--u-scrollbar-color: var(--u-neutral-400);
|
|
120
|
-
--u-scrollbar-color-hover: var(--u-neutral-500);
|
|
121
|
-
--u-scrollbar-track-color: transparent;
|
|
122
|
-
|
|
123
|
-
/* Font Styles */
|
|
124
|
-
--u-font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
|
|
125
|
-
--u-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'Courier New', monospace;
|
|
126
|
-
--u-font-serif: 'Georgia', 'Times New Roman', Times, serif;
|
|
127
|
-
--u-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
|
|
128
|
-
--u-font-modern: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
129
|
-
--u-font-rounded: 'Nunito', 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
1
|
+
:root {
|
|
2
|
+
color-scheme: light;
|
|
3
|
+
|
|
4
|
+
/* Neutral Colors */
|
|
5
|
+
--u-neutral-0: #FFFFFF;
|
|
6
|
+
--u-neutral-50: #FAFAFA;
|
|
7
|
+
--u-neutral-100: #F5F5F5;
|
|
8
|
+
--u-neutral-200: #EEEEEE;
|
|
9
|
+
--u-neutral-300: #E0E0E0;
|
|
10
|
+
--u-neutral-400: #BDBDBD;
|
|
11
|
+
--u-neutral-500: #9E9E9E;
|
|
12
|
+
--u-neutral-600: #757575;
|
|
13
|
+
--u-neutral-700: #616161;
|
|
14
|
+
--u-neutral-800: #424242;
|
|
15
|
+
--u-neutral-900: #212121;
|
|
16
|
+
--u-neutral-1000: #000000;
|
|
17
|
+
|
|
18
|
+
/* Blue Colors */
|
|
19
|
+
--u-blue-0: #E3F2FD;
|
|
20
|
+
--u-blue-100: #BBDEFB;
|
|
21
|
+
--u-blue-200: #90CAF9;
|
|
22
|
+
--u-blue-300: #64B5F6;
|
|
23
|
+
--u-blue-400: #42A5F5;
|
|
24
|
+
--u-blue-500: #2196F3;
|
|
25
|
+
--u-blue-600: #1E88E5;
|
|
26
|
+
--u-blue-700: #1976D2;
|
|
27
|
+
--u-blue-800: #1565C0;
|
|
28
|
+
--u-blue-900: #0D47A1;
|
|
29
|
+
--u-blue-1000: #062A5E;
|
|
30
|
+
|
|
31
|
+
/* Green Colors */
|
|
32
|
+
--u-green-0: #E8F5E9;
|
|
33
|
+
--u-green-100: #C8E6C9;
|
|
34
|
+
--u-green-200: #A5D6A7;
|
|
35
|
+
--u-green-300: #81C784;
|
|
36
|
+
--u-green-400: #66BB6A;
|
|
37
|
+
--u-green-500: #4CAF50;
|
|
38
|
+
--u-green-600: #43A047;
|
|
39
|
+
--u-green-700: #388E3C;
|
|
40
|
+
--u-green-800: #2E7D32;
|
|
41
|
+
--u-green-900: #1B5E20;
|
|
42
|
+
--u-green-1000: #0F3A12;
|
|
43
|
+
|
|
44
|
+
/* Yellow Colors */
|
|
45
|
+
--u-yellow-0: #FFFDE7;
|
|
46
|
+
--u-yellow-100: #FFF9C4;
|
|
47
|
+
--u-yellow-200: #FFF59D;
|
|
48
|
+
--u-yellow-300: #FFF176;
|
|
49
|
+
--u-yellow-400: #FFEE58;
|
|
50
|
+
--u-yellow-500: #FFEB3B;
|
|
51
|
+
--u-yellow-600: #FDD835;
|
|
52
|
+
--u-yellow-700: #FBC02D;
|
|
53
|
+
--u-yellow-800: #F9A825;
|
|
54
|
+
--u-yellow-900: #F57F17;
|
|
55
|
+
--u-yellow-1000: #8A4A00;
|
|
56
|
+
|
|
57
|
+
/* Red Colors */
|
|
58
|
+
--u-red-0: #FFEBEE;
|
|
59
|
+
--u-red-100: #FFCDD2;
|
|
60
|
+
--u-red-200: #EF9A9A;
|
|
61
|
+
--u-red-300: #E57373;
|
|
62
|
+
--u-red-400: #EF5350;
|
|
63
|
+
--u-red-500: #F44336;
|
|
64
|
+
--u-red-600: #E53935;
|
|
65
|
+
--u-red-700: #D32F2F;
|
|
66
|
+
--u-red-800: #C62828;
|
|
67
|
+
--u-red-900: #B71C1C;
|
|
68
|
+
--u-red-1000: #6B0F0F;
|
|
69
|
+
|
|
70
|
+
/* text Colors */
|
|
71
|
+
--u-txt-color: var(--u-neutral-900);
|
|
72
|
+
--u-txt-color-inverse: var(--u-neutral-0);
|
|
73
|
+
--u-txt-color-hover: var(--u-blue-600);
|
|
74
|
+
--u-txt-color-active: var(--u-blue-600);
|
|
75
|
+
--u-txt-color-disabled: var(--u-neutral-400);
|
|
76
|
+
--u-txt-color-weak: var(--u-neutral-700);
|
|
77
|
+
--u-txt-color-strong: var(--u-neutral-1000);
|
|
78
|
+
|
|
79
|
+
--u-link-txt-color: var(--u-blue-700);
|
|
80
|
+
--u-tooltip-txt-color: var(--u-neutral-0);
|
|
81
|
+
|
|
82
|
+
/* Icon Colors */
|
|
83
|
+
--u-icon-color: var(--u-neutral-700);
|
|
84
|
+
--u-icon-color-inverse: var(--u-neutral-0);
|
|
85
|
+
--u-icon-color-hover: var(--u-blue-600);
|
|
86
|
+
--u-icon-color-active: var(--u-blue-600);
|
|
87
|
+
--u-icon-color-disabled: var(--u-neutral-400);
|
|
88
|
+
|
|
89
|
+
/* border Colors */
|
|
90
|
+
--u-border-color: var(--u-neutral-300);
|
|
91
|
+
--u-border-color-weak: var(--u-neutral-200);
|
|
92
|
+
--u-border-color-strong: var(--u-neutral-400);
|
|
93
|
+
|
|
94
|
+
--u-input-border-color: var(--u-neutral-300);
|
|
95
|
+
--u-input-border-color-hover: var(--u-neutral-400);
|
|
96
|
+
--u-input-border-color-focus: var(--u-blue-600);
|
|
97
|
+
--u-input-border-color-invalid: var(--u-red-600);
|
|
98
|
+
|
|
99
|
+
/* background Colors */
|
|
100
|
+
--u-bg-color: var(--u-neutral-0);
|
|
101
|
+
--u-bg-color-inverse: var(--u-neutral-900);
|
|
102
|
+
--u-bg-color-hover: var(--u-neutral-100);
|
|
103
|
+
--u-bg-color-active: var(--u-neutral-200);
|
|
104
|
+
--u-bg-color-disabled: var(--u-neutral-50);
|
|
105
|
+
|
|
106
|
+
--u-input-bg-color: var(--u-neutral-0);
|
|
107
|
+
--u-panel-bg-color: var(--u-neutral-0);
|
|
108
|
+
--u-overlay-bg-color: rgba(0, 0, 0, 0.5);
|
|
109
|
+
--u-tooltip-bg-color: rgba(0, 0, 0, 0.75);
|
|
110
|
+
|
|
111
|
+
/* Shadow Colors */
|
|
112
|
+
--u-shadow-color-weaker: rgba(0, 0, 0, 0.04);
|
|
113
|
+
--u-shadow-color-weak: rgba(0, 0, 0, 0.08);
|
|
114
|
+
--u-shadow-color-normal: rgba(0, 0, 0, 0.12);
|
|
115
|
+
--u-shadow-color-strong: rgba(0, 0, 0, 0.16);
|
|
116
|
+
--u-shadow-color-stronger: rgba(0, 0, 0, 0.24);
|
|
117
|
+
|
|
118
|
+
/* Scrollbar Colors */
|
|
119
|
+
--u-scrollbar-color: var(--u-neutral-400);
|
|
120
|
+
--u-scrollbar-color-hover: var(--u-neutral-500);
|
|
121
|
+
--u-scrollbar-track-color: transparent;
|
|
122
|
+
|
|
123
|
+
/* Font Styles */
|
|
124
|
+
--u-font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
|
|
125
|
+
--u-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'Courier New', monospace;
|
|
126
|
+
--u-font-serif: 'Georgia', 'Times New Roman', Times, serif;
|
|
127
|
+
--u-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
|
|
128
|
+
--u-font-modern: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
129
|
+
--u-font-rounded: 'Nunito', 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
130
130
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const light = ":root {\
|
|
1
|
+
const light = ":root {\n color-scheme: light;\n\n /* Neutral Colors */\n --u-neutral-0: #FFFFFF;\n --u-neutral-50: #FAFAFA;\n --u-neutral-100: #F5F5F5;\n --u-neutral-200: #EEEEEE;\n --u-neutral-300: #E0E0E0;\n --u-neutral-400: #BDBDBD;\n --u-neutral-500: #9E9E9E;\n --u-neutral-600: #757575;\n --u-neutral-700: #616161;\n --u-neutral-800: #424242;\n --u-neutral-900: #212121;\n --u-neutral-1000: #000000;\n\n /* Blue Colors */\n --u-blue-0: #E3F2FD;\n --u-blue-100: #BBDEFB;\n --u-blue-200: #90CAF9;\n --u-blue-300: #64B5F6;\n --u-blue-400: #42A5F5;\n --u-blue-500: #2196F3;\n --u-blue-600: #1E88E5;\n --u-blue-700: #1976D2;\n --u-blue-800: #1565C0;\n --u-blue-900: #0D47A1;\n --u-blue-1000: #062A5E;\n\n /* Green Colors */\n --u-green-0: #E8F5E9;\n --u-green-100: #C8E6C9;\n --u-green-200: #A5D6A7;\n --u-green-300: #81C784;\n --u-green-400: #66BB6A;\n --u-green-500: #4CAF50;\n --u-green-600: #43A047;\n --u-green-700: #388E3C;\n --u-green-800: #2E7D32;\n --u-green-900: #1B5E20;\n --u-green-1000: #0F3A12;\n\n /* Yellow Colors */\n --u-yellow-0: #FFFDE7;\n --u-yellow-100: #FFF9C4;\n --u-yellow-200: #FFF59D;\n --u-yellow-300: #FFF176;\n --u-yellow-400: #FFEE58;\n --u-yellow-500: #FFEB3B;\n --u-yellow-600: #FDD835;\n --u-yellow-700: #FBC02D;\n --u-yellow-800: #F9A825;\n --u-yellow-900: #F57F17;\n --u-yellow-1000: #8A4A00;\n\n /* Red Colors */\n --u-red-0: #FFEBEE;\n --u-red-100: #FFCDD2;\n --u-red-200: #EF9A9A;\n --u-red-300: #E57373;\n --u-red-400: #EF5350;\n --u-red-500: #F44336;\n --u-red-600: #E53935;\n --u-red-700: #D32F2F;\n --u-red-800: #C62828;\n --u-red-900: #B71C1C;\n --u-red-1000: #6B0F0F;\n\n /* text Colors */\n --u-txt-color: var(--u-neutral-900);\n --u-txt-color-inverse: var(--u-neutral-0);\n --u-txt-color-hover: var(--u-blue-600);\n --u-txt-color-active: var(--u-blue-600);\n --u-txt-color-disabled: var(--u-neutral-400);\n --u-txt-color-weak: var(--u-neutral-700);\n --u-txt-color-strong: var(--u-neutral-1000);\n\n --u-link-txt-color: var(--u-blue-700);\n --u-tooltip-txt-color: var(--u-neutral-0);\n\n /* Icon Colors */\n --u-icon-color: var(--u-neutral-700);\n --u-icon-color-inverse: var(--u-neutral-0);\n --u-icon-color-hover: var(--u-blue-600);\n --u-icon-color-active: var(--u-blue-600);\n --u-icon-color-disabled: var(--u-neutral-400);\n\n /* border Colors */\n --u-border-color: var(--u-neutral-300);\n --u-border-color-weak: var(--u-neutral-200);\n --u-border-color-strong: var(--u-neutral-400);\n\n --u-input-border-color: var(--u-neutral-300);\n --u-input-border-color-hover: var(--u-neutral-400);\n --u-input-border-color-focus: var(--u-blue-600);\n --u-input-border-color-invalid: var(--u-red-600);\n\n /* background Colors */\n --u-bg-color: var(--u-neutral-0);\n --u-bg-color-inverse: var(--u-neutral-900);\n --u-bg-color-hover: var(--u-neutral-100);\n --u-bg-color-active: var(--u-neutral-200);\n --u-bg-color-disabled: var(--u-neutral-50);\n \n --u-input-bg-color: var(--u-neutral-0);\n --u-panel-bg-color: var(--u-neutral-0);\n --u-overlay-bg-color: rgba(0, 0, 0, 0.5);\n --u-tooltip-bg-color: rgba(0, 0, 0, 0.75);\n\n /* Shadow Colors */\n --u-shadow-color-weaker: rgba(0, 0, 0, 0.04);\n --u-shadow-color-weak: rgba(0, 0, 0, 0.08);\n --u-shadow-color-normal: rgba(0, 0, 0, 0.12);\n --u-shadow-color-strong: rgba(0, 0, 0, 0.16);\n --u-shadow-color-stronger: rgba(0, 0, 0, 0.24);\n\n /* Scrollbar Colors */\n --u-scrollbar-color: var(--u-neutral-400);\n --u-scrollbar-color-hover: var(--u-neutral-500);\n --u-scrollbar-track-color: transparent;\n\n /* Font Styles */\n --u-font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';\n --u-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'Courier New', monospace;\n --u-font-serif: 'Georgia', 'Times New Roman', Times, serif;\n --u-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\n --u-font-modern: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n --u-font-rounded: 'Nunito', 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n}";
|
|
2
2
|
|
|
3
3
|
export { light as default };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseElement } from '../BaseElement.js';
|
|
2
|
+
/**
|
|
3
|
+
* Card 컴포넌트는 콘텐츠를 카드 형태로 표시합니다.
|
|
4
|
+
* @slot - 카드의 메인 콘텐츠를 삽입합니다.
|
|
5
|
+
* @slot header - 카드 상단의 헤더 영역에 표시할 콘텐츠를 삽입합니다.
|
|
6
|
+
* @slot footer - 카드 하단의 푸터 영역에 표시할 콘텐츠를 삽입합니다.
|
|
7
|
+
* @slot media - 카드의 미디어 영역에 표시할 이미지, 비디오 등을 삽입합니다.
|
|
8
|
+
*/
|
|
9
|
+
export declare class UCard extends BaseElement {
|
|
10
|
+
static styles: import('lit').CSSResultGroup[];
|
|
11
|
+
/** 카드의 그림자 효과를 제거할지 여부를 설정합니다. */
|
|
12
|
+
shadowless: boolean;
|
|
13
|
+
/** 카드의 경계선을 제거할지 여부를 설정합니다. */
|
|
14
|
+
borderless: boolean;
|
|
15
|
+
/** 카드에 호버 효과를 적용할지 여부를 설정합니다. */
|
|
16
|
+
hoverable: boolean;
|
|
17
|
+
/** 카드의 레이아웃 방향을 설정합니다. 'vertical'(세로) 또는 'horizontal'(가로) */
|
|
18
|
+
orientation: 'vertical' | 'horizontal';
|
|
19
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
20
|
+
private handleSlotChange;
|
|
21
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { html } from 'lit';
|
|
2
|
+
import { property } from 'lit/decorators.js';
|
|
3
|
+
import { BaseElement } from '../BaseElement.js';
|
|
4
|
+
import { styles } from './UCard.styles.js';
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
8
|
+
var result = void 0 ;
|
|
9
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
10
|
+
if (decorator = decorators[i])
|
|
11
|
+
result = (decorator(target, key, result) ) || result;
|
|
12
|
+
if (result) __defProp(target, key, result);
|
|
13
|
+
return result;
|
|
14
|
+
};
|
|
15
|
+
class UCard extends BaseElement {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.shadowless = false;
|
|
19
|
+
this.borderless = false;
|
|
20
|
+
this.hoverable = false;
|
|
21
|
+
this.orientation = "vertical";
|
|
22
|
+
}
|
|
23
|
+
static {
|
|
24
|
+
this.styles = [super.styles, styles];
|
|
25
|
+
}
|
|
26
|
+
render() {
|
|
27
|
+
return html`
|
|
28
|
+
<div part="media" class="media">
|
|
29
|
+
<slot name="media" @slotchange=${this.handleSlotChange}></slot>
|
|
30
|
+
</div>
|
|
31
|
+
<div class="content">
|
|
32
|
+
<header part="header" class="header">
|
|
33
|
+
<slot name="header" @slotchange=${this.handleSlotChange}></slot>
|
|
34
|
+
</header>
|
|
35
|
+
<div part="body" class="body">
|
|
36
|
+
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
37
|
+
</div>
|
|
38
|
+
<footer part="footer" class="footer">
|
|
39
|
+
<slot name="footer" @slotchange=${this.handleSlotChange}></slot>
|
|
40
|
+
</footer>
|
|
41
|
+
</div>
|
|
42
|
+
`;
|
|
43
|
+
}
|
|
44
|
+
handleSlotChange(e) {
|
|
45
|
+
const slot = e.target;
|
|
46
|
+
const container = slot.parentElement;
|
|
47
|
+
const hasContent = slot.assignedNodes({ flatten: true }).length > 0;
|
|
48
|
+
if (container) {
|
|
49
|
+
container.classList.toggle("has-content", hasContent);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
__decorateClass([
|
|
54
|
+
property({ type: Boolean, reflect: true })
|
|
55
|
+
], UCard.prototype, "shadowless");
|
|
56
|
+
__decorateClass([
|
|
57
|
+
property({ type: Boolean, reflect: true })
|
|
58
|
+
], UCard.prototype, "borderless");
|
|
59
|
+
__decorateClass([
|
|
60
|
+
property({ type: Boolean, reflect: true })
|
|
61
|
+
], UCard.prototype, "hoverable");
|
|
62
|
+
__decorateClass([
|
|
63
|
+
property({ type: String, reflect: true })
|
|
64
|
+
], UCard.prototype, "orientation");
|
|
65
|
+
|
|
66
|
+
export { UCard };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import('lit').CSSResult;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
|
|
3
|
+
const styles = css`
|
|
4
|
+
:host {
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
background-color: var(--u-panel-bg-color);
|
|
8
|
+
border-radius: 8px;
|
|
9
|
+
overflow: hidden;
|
|
10
|
+
border: 1px solid var(--u-border-color);
|
|
11
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
12
|
+
}
|
|
13
|
+
:host([borderless]) {
|
|
14
|
+
border: none;
|
|
15
|
+
}
|
|
16
|
+
:host([shadowless]) {
|
|
17
|
+
box-shadow: none;
|
|
18
|
+
}
|
|
19
|
+
:host([hoverable]) {
|
|
20
|
+
cursor: pointer;
|
|
21
|
+
transition: all 0.2s ease;
|
|
22
|
+
}
|
|
23
|
+
:host([hoverable]:hover) {
|
|
24
|
+
transform: translateY(-2px);
|
|
25
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
26
|
+
}
|
|
27
|
+
:host([orientation="horizontal"]) {
|
|
28
|
+
flex-direction: row;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.media {
|
|
32
|
+
display: none;
|
|
33
|
+
flex-shrink: 0;
|
|
34
|
+
overflow: hidden;
|
|
35
|
+
}
|
|
36
|
+
.media.has-content {
|
|
37
|
+
display: block;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.content {
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: column;
|
|
43
|
+
flex: 1;
|
|
44
|
+
min-width: 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.header {
|
|
48
|
+
display: none;
|
|
49
|
+
padding: 16px;
|
|
50
|
+
border-bottom: 1px solid var(--u-border-color);
|
|
51
|
+
}
|
|
52
|
+
.header.has-content {
|
|
53
|
+
display: block;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.body {
|
|
57
|
+
display: none;
|
|
58
|
+
flex: 1;
|
|
59
|
+
padding: 16px;
|
|
60
|
+
}
|
|
61
|
+
.body.has-content {
|
|
62
|
+
display: block;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.footer {
|
|
66
|
+
display: none;
|
|
67
|
+
padding: 16px;
|
|
68
|
+
border-top: 1px solid var(--u-border-color);
|
|
69
|
+
}
|
|
70
|
+
.footer.has-content {
|
|
71
|
+
display: block;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
`;
|
|
75
|
+
|
|
76
|
+
export { styles };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { PropertyValues } from 'lit';
|
|
2
|
+
import { BaseElement } from '../BaseElement.js';
|
|
3
|
+
/**
|
|
4
|
+
* Carousel 컴포넌트는 여러 슬라이드를 회전하며 표시합니다.
|
|
5
|
+
*
|
|
6
|
+
* @slot - 슬라이드로 표시할 콘텐츠. 각 자식 요소가 하나의 슬라이드.
|
|
7
|
+
* @event u-change - 슬라이드 변경 시. detail: { currentIndex: number }
|
|
8
|
+
*
|
|
9
|
+
* @csspart slides - 슬라이드 컨테이너 (aspect-ratio 등 외부 스타일링)
|
|
10
|
+
* @csspart prev-button - 이전 버튼
|
|
11
|
+
* @csspart next-button - 다음 버튼
|
|
12
|
+
* @csspart indicator - 인디케이터 컨테이너
|
|
13
|
+
* @csspart dot - 인디케이터 도트
|
|
14
|
+
*/
|
|
15
|
+
export declare class UCarousel extends BaseElement {
|
|
16
|
+
static styles: import('lit').CSSResultGroup[];
|
|
17
|
+
static dependencies: Record<string, typeof BaseElement>;
|
|
18
|
+
/** 현재 활성 슬라이드 인덱스 */
|
|
19
|
+
currentIndex: number;
|
|
20
|
+
/** 자동 재생 활성화 */
|
|
21
|
+
autoplay: boolean;
|
|
22
|
+
/** 자동 재생 간격 (ms) */
|
|
23
|
+
autoplayInterval: number;
|
|
24
|
+
/** 이전/다음 네비게이션 버튼 표시 */
|
|
25
|
+
navigation: boolean;
|
|
26
|
+
/** 페이지 인디케이터 표시 */
|
|
27
|
+
pagination: boolean;
|
|
28
|
+
/** 처음/끝에서 순환 이동 */
|
|
29
|
+
loop: boolean;
|
|
30
|
+
/** 드래그로 슬라이드 전환 */
|
|
31
|
+
draggable: boolean;
|
|
32
|
+
/** 한 화면에 표시할 슬라이드 수 */
|
|
33
|
+
slidesPerView: number;
|
|
34
|
+
/** 한 번에 이동할 슬라이드 수 */
|
|
35
|
+
slidesPerMove: number;
|
|
36
|
+
/** 슬라이드 간 간격 (px) */
|
|
37
|
+
gap: number;
|
|
38
|
+
private _slideCount;
|
|
39
|
+
private _isDragging;
|
|
40
|
+
private _dragOffset;
|
|
41
|
+
private _autoplayTimer?;
|
|
42
|
+
private _dragStartX;
|
|
43
|
+
private _dragStartTime;
|
|
44
|
+
private get _perView();
|
|
45
|
+
private get _perMove();
|
|
46
|
+
private get _maxIndex();
|
|
47
|
+
private get _pageCount();
|
|
48
|
+
private get _currentPage();
|
|
49
|
+
connectedCallback(): void;
|
|
50
|
+
disconnectedCallback(): void;
|
|
51
|
+
protected willUpdate(changedProperties: PropertyValues): void;
|
|
52
|
+
protected updated(changedProperties: PropertyValues): void;
|
|
53
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
54
|
+
/** 이전 슬라이드로 이동 */
|
|
55
|
+
prev(): void;
|
|
56
|
+
/** 다음 슬라이드로 이동 */
|
|
57
|
+
next(): void;
|
|
58
|
+
/** 지정한 인덱스로 이동 */
|
|
59
|
+
goTo(index: number): void;
|
|
60
|
+
private handleSlotChange;
|
|
61
|
+
private startAutoplay;
|
|
62
|
+
private stopAutoplay;
|
|
63
|
+
private handleDragStart;
|
|
64
|
+
private handlePointerDown;
|
|
65
|
+
private handlePointerMove;
|
|
66
|
+
private handlePointerUp;
|
|
67
|
+
}
|