@bigtablet/design-system 1.21.1 → 1.22.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/README.md +13 -9
- package/dist/index.css +120 -0
- package/dist/index.d.ts +152 -1
- package/dist/index.js +175 -1
- package/dist/next.css +8 -0
- package/dist/styles/scss/_skeleton.scss +16 -15
- package/dist/styles/scss/token.scss +1 -0
- package/dist/vanilla/bigtablet.min.css +1 -1
- package/package.json +10 -9
package/README.md
CHANGED
|
@@ -40,21 +40,25 @@ The official design system of Bigtablet — a unified UI library composed of Fou
|
|
|
40
40
|
|
|
41
41
|
## Installation
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
# npm
|
|
45
|
-
npm install @bigtablet/design-system
|
|
43
|
+
### One-line setup (recommended)
|
|
46
44
|
|
|
47
|
-
|
|
48
|
-
yarn add @bigtablet/design-system
|
|
45
|
+
Auto-detects your package manager (npm / yarn / pnpm / bun) and environment (React / Next.js), installs the package + peer deps, and prints CSS/Provider setup instructions.
|
|
49
46
|
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
```bash
|
|
48
|
+
curl -fsSL https://raw.githubusercontent.com/Bigtablet/bigtablet-design-system/main/scripts/setup.sh | sh
|
|
52
49
|
```
|
|
53
50
|
|
|
54
|
-
|
|
51
|
+
### Manual
|
|
55
52
|
|
|
56
53
|
```bash
|
|
57
|
-
npm
|
|
54
|
+
# npm
|
|
55
|
+
npm install @bigtablet/design-system react@^19 react-dom@^19 lucide-react
|
|
56
|
+
|
|
57
|
+
# yarn
|
|
58
|
+
yarn add @bigtablet/design-system react@^19 react-dom@^19 lucide-react
|
|
59
|
+
|
|
60
|
+
# pnpm
|
|
61
|
+
pnpm add @bigtablet/design-system react@^19 react-dom@^19 lucide-react
|
|
58
62
|
```
|
|
59
63
|
|
|
60
64
|
> Requires **React 19** and **lucide-react ≥ 0.552.0**. Compatible with **Next.js 13+**.
|
package/dist/index.css
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
/* src/ui/display/card/style.scss */
|
|
2
|
+
@keyframes skeleton_loading {
|
|
3
|
+
0% {
|
|
4
|
+
background-position: 100% 0;
|
|
5
|
+
}
|
|
6
|
+
100% {
|
|
7
|
+
background-position: 0 0;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
2
10
|
.card {
|
|
3
11
|
background: #ffffff;
|
|
4
12
|
border-radius: 12px;
|
|
@@ -42,6 +50,14 @@
|
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
/* src/ui/feedback/alert/style.scss */
|
|
53
|
+
@keyframes skeleton_loading {
|
|
54
|
+
0% {
|
|
55
|
+
background-position: 100% 0;
|
|
56
|
+
}
|
|
57
|
+
100% {
|
|
58
|
+
background-position: 0 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
45
61
|
@keyframes alert_fade_in {
|
|
46
62
|
from {
|
|
47
63
|
opacity: 0;
|
|
@@ -192,6 +208,14 @@
|
|
|
192
208
|
}
|
|
193
209
|
|
|
194
210
|
/* src/ui/feedback/spinner/style.scss */
|
|
211
|
+
@keyframes skeleton_loading {
|
|
212
|
+
0% {
|
|
213
|
+
background-position: 100% 0;
|
|
214
|
+
}
|
|
215
|
+
100% {
|
|
216
|
+
background-position: 0 0;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
195
219
|
@keyframes spinner_spin {
|
|
196
220
|
to {
|
|
197
221
|
transform: rotate(360deg);
|
|
@@ -207,6 +231,14 @@
|
|
|
207
231
|
}
|
|
208
232
|
|
|
209
233
|
/* src/ui/feedback/top-loading/style.scss */
|
|
234
|
+
@keyframes skeleton_loading {
|
|
235
|
+
0% {
|
|
236
|
+
background-position: 100% 0;
|
|
237
|
+
}
|
|
238
|
+
100% {
|
|
239
|
+
background-position: 0 0;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
210
242
|
.top_loading {
|
|
211
243
|
position: fixed;
|
|
212
244
|
top: 0;
|
|
@@ -235,6 +267,14 @@
|
|
|
235
267
|
}
|
|
236
268
|
|
|
237
269
|
/* src/ui/feedback/toast/style.scss */
|
|
270
|
+
@keyframes skeleton_loading {
|
|
271
|
+
0% {
|
|
272
|
+
background-position: 100% 0;
|
|
273
|
+
}
|
|
274
|
+
100% {
|
|
275
|
+
background-position: 0 0;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
238
278
|
@keyframes toast_slide_in {
|
|
239
279
|
from {
|
|
240
280
|
opacity: 0;
|
|
@@ -370,6 +410,14 @@
|
|
|
370
410
|
}
|
|
371
411
|
|
|
372
412
|
/* src/ui/general/button/style.scss */
|
|
413
|
+
@keyframes skeleton_loading {
|
|
414
|
+
0% {
|
|
415
|
+
background-position: 100% 0;
|
|
416
|
+
}
|
|
417
|
+
100% {
|
|
418
|
+
background-position: 0 0;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
373
421
|
.button {
|
|
374
422
|
display: inline-flex;
|
|
375
423
|
align-items: center;
|
|
@@ -450,6 +498,14 @@
|
|
|
450
498
|
}
|
|
451
499
|
|
|
452
500
|
/* src/ui/form/checkbox/style.scss */
|
|
501
|
+
@keyframes skeleton_loading {
|
|
502
|
+
0% {
|
|
503
|
+
background-position: 100% 0;
|
|
504
|
+
}
|
|
505
|
+
100% {
|
|
506
|
+
background-position: 0 0;
|
|
507
|
+
}
|
|
508
|
+
}
|
|
453
509
|
.checkbox {
|
|
454
510
|
display: inline-flex;
|
|
455
511
|
align-items: center;
|
|
@@ -562,6 +618,14 @@
|
|
|
562
618
|
}
|
|
563
619
|
|
|
564
620
|
/* src/ui/form/file/style.scss */
|
|
621
|
+
@keyframes skeleton_loading {
|
|
622
|
+
0% {
|
|
623
|
+
background-position: 100% 0;
|
|
624
|
+
}
|
|
625
|
+
100% {
|
|
626
|
+
background-position: 0 0;
|
|
627
|
+
}
|
|
628
|
+
}
|
|
565
629
|
.file_input {
|
|
566
630
|
position: relative;
|
|
567
631
|
display: inline-flex;
|
|
@@ -618,6 +682,14 @@
|
|
|
618
682
|
}
|
|
619
683
|
|
|
620
684
|
/* src/ui/form/radio/style.scss */
|
|
685
|
+
@keyframes skeleton_loading {
|
|
686
|
+
0% {
|
|
687
|
+
background-position: 100% 0;
|
|
688
|
+
}
|
|
689
|
+
100% {
|
|
690
|
+
background-position: 0 0;
|
|
691
|
+
}
|
|
692
|
+
}
|
|
621
693
|
.radio {
|
|
622
694
|
position: relative;
|
|
623
695
|
display: inline-flex;
|
|
@@ -697,6 +769,14 @@
|
|
|
697
769
|
}
|
|
698
770
|
|
|
699
771
|
/* src/ui/general/select/style.scss */
|
|
772
|
+
@keyframes skeleton_loading {
|
|
773
|
+
0% {
|
|
774
|
+
background-position: 100% 0;
|
|
775
|
+
}
|
|
776
|
+
100% {
|
|
777
|
+
background-position: 0 0;
|
|
778
|
+
}
|
|
779
|
+
}
|
|
700
780
|
.select {
|
|
701
781
|
position: relative;
|
|
702
782
|
display: inline-flex;
|
|
@@ -871,6 +951,14 @@
|
|
|
871
951
|
}
|
|
872
952
|
|
|
873
953
|
/* src/ui/form/switch/style.scss */
|
|
954
|
+
@keyframes skeleton_loading {
|
|
955
|
+
0% {
|
|
956
|
+
background-position: 100% 0;
|
|
957
|
+
}
|
|
958
|
+
100% {
|
|
959
|
+
background-position: 0 0;
|
|
960
|
+
}
|
|
961
|
+
}
|
|
874
962
|
.switch {
|
|
875
963
|
position: relative;
|
|
876
964
|
display: inline-flex;
|
|
@@ -931,6 +1019,14 @@
|
|
|
931
1019
|
}
|
|
932
1020
|
|
|
933
1021
|
/* src/ui/form/textfield/style.scss */
|
|
1022
|
+
@keyframes skeleton_loading {
|
|
1023
|
+
0% {
|
|
1024
|
+
background-position: 100% 0;
|
|
1025
|
+
}
|
|
1026
|
+
100% {
|
|
1027
|
+
background-position: 0 0;
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
934
1030
|
.text_field {
|
|
935
1031
|
display: flex;
|
|
936
1032
|
flex-direction: column;
|
|
@@ -1067,6 +1163,14 @@
|
|
|
1067
1163
|
}
|
|
1068
1164
|
|
|
1069
1165
|
/* src/ui/form/date-picker/style.scss */
|
|
1166
|
+
@keyframes skeleton_loading {
|
|
1167
|
+
0% {
|
|
1168
|
+
background-position: 100% 0;
|
|
1169
|
+
}
|
|
1170
|
+
100% {
|
|
1171
|
+
background-position: 0 0;
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1070
1174
|
.date_picker {
|
|
1071
1175
|
display: flex;
|
|
1072
1176
|
flex-direction: column;
|
|
@@ -1173,6 +1277,14 @@
|
|
|
1173
1277
|
}
|
|
1174
1278
|
|
|
1175
1279
|
/* src/ui/navigation/pagination/style.scss */
|
|
1280
|
+
@keyframes skeleton_loading {
|
|
1281
|
+
0% {
|
|
1282
|
+
background-position: 100% 0;
|
|
1283
|
+
}
|
|
1284
|
+
100% {
|
|
1285
|
+
background-position: 0 0;
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1176
1288
|
.pagination {
|
|
1177
1289
|
display: flex;
|
|
1178
1290
|
align-items: center;
|
|
@@ -1238,6 +1350,14 @@
|
|
|
1238
1350
|
}
|
|
1239
1351
|
|
|
1240
1352
|
/* src/ui/overlay/modal/style.scss */
|
|
1353
|
+
@keyframes skeleton_loading {
|
|
1354
|
+
0% {
|
|
1355
|
+
background-position: 100% 0;
|
|
1356
|
+
}
|
|
1357
|
+
100% {
|
|
1358
|
+
background-position: 0 0;
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1241
1361
|
.modal {
|
|
1242
1362
|
position: fixed;
|
|
1243
1363
|
inset: 0;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,157 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
|
|
4
|
+
declare const colors: {
|
|
5
|
+
readonly primary: "#000000";
|
|
6
|
+
readonly primaryHover: "#333333";
|
|
7
|
+
readonly background: "#ffffff";
|
|
8
|
+
readonly backgroundSecondary: "#fafafa";
|
|
9
|
+
readonly backgroundNeutral: "#f3f3f3";
|
|
10
|
+
readonly backgroundMuted: "#f0f0f0";
|
|
11
|
+
readonly textPrimary: "#1a1a1a";
|
|
12
|
+
readonly textSecondary: "#666666";
|
|
13
|
+
readonly textTertiary: "#999999";
|
|
14
|
+
readonly border: "#e5e5e5";
|
|
15
|
+
readonly borderLight: "rgba(0, 0, 0, 0.08)";
|
|
16
|
+
readonly success: "#10b981";
|
|
17
|
+
readonly error: "#ef4444";
|
|
18
|
+
readonly warning: "#f59e0b";
|
|
19
|
+
readonly info: "#3b82f6";
|
|
20
|
+
readonly overlay: "rgba(0, 0, 0, 0.5)";
|
|
21
|
+
readonly hoverSubtle: "rgba(0, 0, 0, 0.03)";
|
|
22
|
+
readonly hoverLight: "rgba(0, 0, 0, 0.05)";
|
|
23
|
+
readonly textStrong: "#1F2937";
|
|
24
|
+
readonly textNormal: "#3B3B3B";
|
|
25
|
+
readonly textSubtle: "#6B7280";
|
|
26
|
+
readonly textDisabled: "#9CA3AF";
|
|
27
|
+
readonly textInverse: "#FFFFFF";
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
declare const spacing: {
|
|
31
|
+
readonly xs: "0.25rem";
|
|
32
|
+
readonly sm: "0.5rem";
|
|
33
|
+
readonly md: "0.75rem";
|
|
34
|
+
readonly lg: "1rem";
|
|
35
|
+
readonly xl: "1.25rem";
|
|
36
|
+
readonly "2xl": "1.5rem";
|
|
37
|
+
readonly "3xl": "2rem";
|
|
38
|
+
readonly "4xl": "2.5rem";
|
|
39
|
+
readonly "5xl": "3rem";
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
declare const typography: {
|
|
43
|
+
readonly fontFamily: {
|
|
44
|
+
readonly primary: "'Pretendard', sans-serif";
|
|
45
|
+
};
|
|
46
|
+
readonly fontSize: {
|
|
47
|
+
readonly xs: "0.75rem";
|
|
48
|
+
readonly sm: "0.875rem";
|
|
49
|
+
readonly base: "0.9375rem";
|
|
50
|
+
readonly md: "1rem";
|
|
51
|
+
readonly lg: "1.125rem";
|
|
52
|
+
readonly xl: "1.25rem";
|
|
53
|
+
readonly "2xl": "1.5rem";
|
|
54
|
+
readonly "3xl": "2rem";
|
|
55
|
+
readonly "4xl": "2.5rem";
|
|
56
|
+
};
|
|
57
|
+
readonly fontWeight: {
|
|
58
|
+
readonly thin: 100;
|
|
59
|
+
readonly extralight: 200;
|
|
60
|
+
readonly light: 300;
|
|
61
|
+
readonly regular: 400;
|
|
62
|
+
readonly medium: 500;
|
|
63
|
+
readonly semibold: 600;
|
|
64
|
+
readonly bold: 700;
|
|
65
|
+
readonly extrabold: 800;
|
|
66
|
+
readonly black: 900;
|
|
67
|
+
};
|
|
68
|
+
readonly lineHeight: {
|
|
69
|
+
readonly tight: 1.25;
|
|
70
|
+
readonly snug: 1.3;
|
|
71
|
+
readonly normal: 1.5;
|
|
72
|
+
readonly relaxed: 1.75;
|
|
73
|
+
};
|
|
74
|
+
readonly letterSpacing: {
|
|
75
|
+
readonly tight: "-0.02em";
|
|
76
|
+
readonly normal: "0";
|
|
77
|
+
readonly wide: "0.02em";
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
declare const radius: {
|
|
82
|
+
readonly sm: "6px";
|
|
83
|
+
readonly md: "8px";
|
|
84
|
+
readonly lg: "12px";
|
|
85
|
+
readonly xl: "16px";
|
|
86
|
+
readonly full: "9999px";
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
declare const shadows: {
|
|
90
|
+
readonly sm: "0 2px 4px rgba(0, 0, 0, 0.04)";
|
|
91
|
+
readonly md: "0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04)";
|
|
92
|
+
readonly lg: "0 8px 20px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06)";
|
|
93
|
+
readonly xl: "0 20px 25px -5px rgba(0,0,0,0.1), 0 10px 10px -5px rgba(0,0,0,0.04)";
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
declare const motion: {
|
|
97
|
+
readonly transition: {
|
|
98
|
+
readonly fast: "0.1s ease-in-out";
|
|
99
|
+
readonly base: "0.2s ease-in-out";
|
|
100
|
+
readonly slow: "0.3s ease-in-out";
|
|
101
|
+
readonly emphasized: "0.25s cubic-bezier(0.4, 0, 0.2, 1)";
|
|
102
|
+
readonly bounce: "0.3s cubic-bezier(0.16, 1, 0.3, 1)";
|
|
103
|
+
readonly fade: "0.15s ease-in-out";
|
|
104
|
+
readonly slide: "0.25s ease-in-out";
|
|
105
|
+
readonly scale: "0.2s cubic-bezier(0.2, 0.8, 0.2, 1)";
|
|
106
|
+
readonly state: "0.18s ease-in-out";
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
declare const skeleton: {
|
|
111
|
+
readonly color: {
|
|
112
|
+
readonly base: "#f3f3f3";
|
|
113
|
+
readonly wave: "#f0f0f0";
|
|
114
|
+
readonly highlight: "#fafafa";
|
|
115
|
+
};
|
|
116
|
+
readonly gradient: "linear-gradient(90deg, #f3f3f3 25%, #fafafa 37%, #f0f0f0 63%)";
|
|
117
|
+
readonly radius: {
|
|
118
|
+
readonly sm: "6px";
|
|
119
|
+
readonly md: "8px";
|
|
120
|
+
readonly lg: "12px";
|
|
121
|
+
};
|
|
122
|
+
readonly height: {
|
|
123
|
+
readonly xs: "0.25rem";
|
|
124
|
+
readonly sm: "0.5rem";
|
|
125
|
+
readonly md: "0.75rem";
|
|
126
|
+
readonly lg: "1rem";
|
|
127
|
+
readonly xl: "1.25rem";
|
|
128
|
+
};
|
|
129
|
+
readonly animation: {
|
|
130
|
+
readonly duration: "1.4s";
|
|
131
|
+
readonly timing: "ease-in-out";
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
declare const breakpoints: {
|
|
136
|
+
readonly mobile: 0;
|
|
137
|
+
readonly tablet: 768;
|
|
138
|
+
readonly laptop: 1024;
|
|
139
|
+
readonly desktop: 1440;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
declare const zIndex: {
|
|
143
|
+
readonly loading: 9999;
|
|
144
|
+
readonly modal: 10000;
|
|
145
|
+
readonly toast: 10001;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
declare const a11y: {
|
|
149
|
+
readonly focusRing: "0 0 0 3px rgba(0, 0, 0, 0.15)";
|
|
150
|
+
readonly focusRingError: "0 0 0 3px rgba(239, 68, 68, 0.15)";
|
|
151
|
+
readonly focusRingSuccess: "0 0 0 3px rgba(16, 185, 129, 0.15)";
|
|
152
|
+
readonly tapMinSize: "44px";
|
|
153
|
+
};
|
|
154
|
+
|
|
4
155
|
interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
5
156
|
/** 카드 상단에 표시할 제목 */
|
|
6
157
|
heading?: React.ReactNode;
|
|
@@ -399,4 +550,4 @@ interface ModalProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title">
|
|
|
399
550
|
*/
|
|
400
551
|
declare const Modal: ({ open, onClose, closeOnOverlay, width, title, children, className, ariaLabel, ...props }: ModalProps) => react_jsx_runtime.JSX.Element | null;
|
|
401
552
|
|
|
402
|
-
export { AlertProvider, Button, Card, Checkbox, DatePicker, FileInput, Modal, Pagination, Radio, Select, type SelectOption, Spinner, Switch, TextField, ToastProvider, TopLoading, useAlert, useToast };
|
|
553
|
+
export { AlertProvider, Button, Card, Checkbox, DatePicker, FileInput, Modal, Pagination, Radio, Select, type SelectOption, Spinner, Switch, TextField, ToastProvider, TopLoading, a11y, breakpoints, colors, motion, radius, shadows, skeleton, spacing, typography, useAlert, useToast, zIndex };
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,180 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
6
6
|
import { createPortal } from 'react-dom';
|
|
7
7
|
import { ChevronDown, Check, X, Bell, Info, AlertTriangle, XCircle, CheckCircle2 } from 'lucide-react';
|
|
8
8
|
|
|
9
|
+
// src/styles/ts/colors.ts
|
|
10
|
+
var colors = {
|
|
11
|
+
primary: "#000000",
|
|
12
|
+
primaryHover: "#333333",
|
|
13
|
+
background: "#ffffff",
|
|
14
|
+
backgroundSecondary: "#fafafa",
|
|
15
|
+
backgroundNeutral: "#f3f3f3",
|
|
16
|
+
backgroundMuted: "#f0f0f0",
|
|
17
|
+
textPrimary: "#1a1a1a",
|
|
18
|
+
textSecondary: "#666666",
|
|
19
|
+
textTertiary: "#999999",
|
|
20
|
+
border: "#e5e5e5",
|
|
21
|
+
borderLight: "rgba(0, 0, 0, 0.08)",
|
|
22
|
+
success: "#10b981",
|
|
23
|
+
error: "#ef4444",
|
|
24
|
+
warning: "#f59e0b",
|
|
25
|
+
info: "#3b82f6",
|
|
26
|
+
overlay: "rgba(0, 0, 0, 0.5)",
|
|
27
|
+
hoverSubtle: "rgba(0, 0, 0, 0.03)",
|
|
28
|
+
hoverLight: "rgba(0, 0, 0, 0.05)",
|
|
29
|
+
textStrong: "#1F2937",
|
|
30
|
+
textNormal: "#3B3B3B",
|
|
31
|
+
textSubtle: "#6B7280",
|
|
32
|
+
textDisabled: "#9CA3AF",
|
|
33
|
+
textInverse: "#FFFFFF"
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
// src/styles/ts/spacing.ts
|
|
37
|
+
var spacing = {
|
|
38
|
+
xs: "0.25rem",
|
|
39
|
+
// 4px
|
|
40
|
+
sm: "0.5rem",
|
|
41
|
+
// 8px
|
|
42
|
+
md: "0.75rem",
|
|
43
|
+
// 12px
|
|
44
|
+
lg: "1rem",
|
|
45
|
+
// 16px
|
|
46
|
+
xl: "1.25rem",
|
|
47
|
+
// 20px
|
|
48
|
+
"2xl": "1.5rem",
|
|
49
|
+
// 24px
|
|
50
|
+
"3xl": "2rem",
|
|
51
|
+
// 32px
|
|
52
|
+
"4xl": "2.5rem",
|
|
53
|
+
// 40px
|
|
54
|
+
"5xl": "3rem"
|
|
55
|
+
// 48px
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// src/styles/ts/typography.ts
|
|
59
|
+
var typography = {
|
|
60
|
+
fontFamily: {
|
|
61
|
+
primary: "'Pretendard', sans-serif"
|
|
62
|
+
},
|
|
63
|
+
fontSize: {
|
|
64
|
+
xs: "0.75rem",
|
|
65
|
+
sm: "0.875rem",
|
|
66
|
+
base: "0.9375rem",
|
|
67
|
+
md: "1rem",
|
|
68
|
+
lg: "1.125rem",
|
|
69
|
+
xl: "1.25rem",
|
|
70
|
+
"2xl": "1.5rem",
|
|
71
|
+
"3xl": "2rem",
|
|
72
|
+
"4xl": "2.5rem"
|
|
73
|
+
},
|
|
74
|
+
fontWeight: {
|
|
75
|
+
thin: 100,
|
|
76
|
+
extralight: 200,
|
|
77
|
+
light: 300,
|
|
78
|
+
regular: 400,
|
|
79
|
+
medium: 500,
|
|
80
|
+
semibold: 600,
|
|
81
|
+
bold: 700,
|
|
82
|
+
extrabold: 800,
|
|
83
|
+
black: 900
|
|
84
|
+
},
|
|
85
|
+
lineHeight: {
|
|
86
|
+
tight: 1.25,
|
|
87
|
+
snug: 1.3,
|
|
88
|
+
normal: 1.5,
|
|
89
|
+
relaxed: 1.75
|
|
90
|
+
},
|
|
91
|
+
letterSpacing: {
|
|
92
|
+
tight: "-0.02em",
|
|
93
|
+
normal: "0",
|
|
94
|
+
wide: "0.02em"
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// src/styles/ts/radius.ts
|
|
99
|
+
var radius = {
|
|
100
|
+
sm: "6px",
|
|
101
|
+
md: "8px",
|
|
102
|
+
lg: "12px",
|
|
103
|
+
xl: "16px",
|
|
104
|
+
full: "9999px"
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
// src/styles/ts/shadows.ts
|
|
108
|
+
var shadows = {
|
|
109
|
+
sm: "0 2px 4px rgba(0, 0, 0, 0.04)",
|
|
110
|
+
md: "0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04)",
|
|
111
|
+
lg: "0 8px 20px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06)",
|
|
112
|
+
xl: "0 20px 25px -5px rgba(0,0,0,0.1), 0 10px 10px -5px rgba(0,0,0,0.04)"
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
// src/styles/ts/motion.ts
|
|
116
|
+
var motion = {
|
|
117
|
+
transition: {
|
|
118
|
+
fast: "0.1s ease-in-out",
|
|
119
|
+
base: "0.2s ease-in-out",
|
|
120
|
+
slow: "0.3s ease-in-out",
|
|
121
|
+
emphasized: "0.25s cubic-bezier(0.4, 0, 0.2, 1)",
|
|
122
|
+
bounce: "0.3s cubic-bezier(0.16, 1, 0.3, 1)",
|
|
123
|
+
fade: "0.15s ease-in-out",
|
|
124
|
+
slide: "0.25s ease-in-out",
|
|
125
|
+
scale: "0.2s cubic-bezier(0.2, 0.8, 0.2, 1)",
|
|
126
|
+
state: "0.18s ease-in-out"
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// src/styles/ts/skeleton.ts
|
|
131
|
+
var skeleton = {
|
|
132
|
+
color: {
|
|
133
|
+
base: colors.backgroundNeutral,
|
|
134
|
+
wave: colors.backgroundMuted,
|
|
135
|
+
highlight: colors.backgroundSecondary
|
|
136
|
+
},
|
|
137
|
+
gradient: `linear-gradient(90deg, ${colors.backgroundNeutral} 25%, ${colors.backgroundSecondary} 37%, ${colors.backgroundMuted} 63%)`,
|
|
138
|
+
radius: {
|
|
139
|
+
sm: radius.sm,
|
|
140
|
+
md: radius.md,
|
|
141
|
+
lg: radius.lg
|
|
142
|
+
},
|
|
143
|
+
height: {
|
|
144
|
+
xs: spacing.xs,
|
|
145
|
+
sm: spacing.sm,
|
|
146
|
+
md: spacing.md,
|
|
147
|
+
lg: spacing.lg,
|
|
148
|
+
xl: spacing.xl
|
|
149
|
+
},
|
|
150
|
+
animation: {
|
|
151
|
+
duration: "1.4s",
|
|
152
|
+
timing: "ease-in-out"
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
// src/styles/ts/breakpoints.ts
|
|
157
|
+
var breakpoints = {
|
|
158
|
+
mobile: 0,
|
|
159
|
+
// ~767
|
|
160
|
+
tablet: 768,
|
|
161
|
+
// 768 ~ 1023
|
|
162
|
+
laptop: 1024,
|
|
163
|
+
// 1024 ~ 1439
|
|
164
|
+
desktop: 1440
|
|
165
|
+
// 1440+
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
// src/styles/ts/z-index.ts
|
|
169
|
+
var zIndex = {
|
|
170
|
+
loading: 9999,
|
|
171
|
+
modal: 1e4,
|
|
172
|
+
toast: 10001
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
// src/styles/ts/a11y.ts
|
|
176
|
+
var a11y = {
|
|
177
|
+
focusRing: "0 0 0 3px rgba(0, 0, 0, 0.15)",
|
|
178
|
+
focusRingError: "0 0 0 3px rgba(239, 68, 68, 0.15)",
|
|
179
|
+
focusRingSuccess: "0 0 0 3px rgba(16, 185, 129, 0.15)",
|
|
180
|
+
tapMinSize: "44px"
|
|
181
|
+
};
|
|
182
|
+
|
|
9
183
|
// src/utils/cn.ts
|
|
10
184
|
var cn = (...classes) => {
|
|
11
185
|
const classNames = [];
|
|
@@ -1081,4 +1255,4 @@ var Modal = ({
|
|
|
1081
1255
|
);
|
|
1082
1256
|
};
|
|
1083
1257
|
|
|
1084
|
-
export { AlertProvider, Button, Card, Checkbox, DatePicker, FileInput, Modal, Pagination, Radio, Select, Spinner, Switch, TextField, ToastProvider, TopLoading, useAlert, useToast };
|
|
1258
|
+
export { AlertProvider, Button, Card, Checkbox, DatePicker, FileInput, Modal, Pagination, Radio, Select, Spinner, Switch, TextField, ToastProvider, TopLoading, a11y, breakpoints, colors, motion, radius, shadows, skeleton, spacing, typography, useAlert, useToast, zIndex };
|
package/dist/next.css
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
@use
|
|
1
|
+
// Standalone skeleton tokens — no external @use so consumers can import
|
|
2
|
+
// this file directly without needing the design system's src/ in their loadPaths.
|
|
2
3
|
|
|
3
|
-
$color_skeleton_base:
|
|
4
|
-
$color_skeleton_wave:
|
|
5
|
-
$color_skeleton_highlight:
|
|
4
|
+
$color_skeleton_base: #F3F3F3;
|
|
5
|
+
$color_skeleton_wave: #f0f0f0;
|
|
6
|
+
$color_skeleton_highlight: #fafafa;
|
|
6
7
|
|
|
7
8
|
$skeleton_gradient: linear-gradient(
|
|
8
9
|
90deg,
|
|
@@ -11,15 +12,15 @@ $skeleton_gradient: linear-gradient(
|
|
|
11
12
|
$color_skeleton_wave 63%
|
|
12
13
|
);
|
|
13
14
|
|
|
14
|
-
$skeleton_radius_sm:
|
|
15
|
-
$skeleton_radius_md:
|
|
16
|
-
$skeleton_radius_lg:
|
|
15
|
+
$skeleton_radius_sm: 6px;
|
|
16
|
+
$skeleton_radius_md: 8px;
|
|
17
|
+
$skeleton_radius_lg: 12px;
|
|
17
18
|
|
|
18
|
-
$skeleton_height_xs:
|
|
19
|
-
$skeleton_height_sm:
|
|
20
|
-
$skeleton_height_md:
|
|
21
|
-
$skeleton_height_lg:
|
|
22
|
-
$skeleton_height_xl:
|
|
19
|
+
$skeleton_height_xs: 0.25rem; // 4px
|
|
20
|
+
$skeleton_height_sm: 0.5rem; // 8px
|
|
21
|
+
$skeleton_height_md: 0.75rem; // 12px
|
|
22
|
+
$skeleton_height_lg: 1rem; // 16px
|
|
23
|
+
$skeleton_height_xl: 1.25rem; // 20px
|
|
23
24
|
|
|
24
25
|
$skeleton_animation_duration: 1.4s;
|
|
25
26
|
$skeleton_animation_timing: ease-in-out;
|
|
@@ -48,13 +49,13 @@ $skeleton_animation_timing: ease-in-out;
|
|
|
48
49
|
@include skeleton(100%, $skeleton_height_xl);
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
@mixin skeleton_avatar($size:
|
|
52
|
+
@mixin skeleton_avatar($size: 2.5rem) {
|
|
52
53
|
@include skeleton($size, $size, $skeleton_radius_lg);
|
|
53
54
|
}
|
|
54
55
|
|
|
55
56
|
@mixin skeleton_rect(
|
|
56
57
|
$width: 100%,
|
|
57
|
-
$height:
|
|
58
|
+
$height: 5rem
|
|
58
59
|
) {
|
|
59
60
|
@include skeleton($width, $height, $skeleton_radius_md);
|
|
60
61
|
}
|
|
@@ -66,4 +67,4 @@ $skeleton_animation_timing: ease-in-out;
|
|
|
66
67
|
100% {
|
|
67
68
|
background-position: 0 0;
|
|
68
69
|
}
|
|
69
|
-
}
|
|
70
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--bt-color-primary: #000000;--bt-color-primary-hover: #333333;--bt-color-background: #ffffff;--bt-color-background-secondary: #fafafa;--bt-color-background-neutral: #F3F3F3;--bt-color-background-muted: #f0f0f0;--bt-color-text-primary: #1a1a1a;--bt-color-text-secondary: #666666;--bt-color-text-tertiary: #999999;--bt-text-inverse: #ffffff;--bt-text-disabled: #9ca3af;--bt-color-border: #e5e5e5;--bt-color-border-light: rgba(0, 0, 0, 0.08);--bt-color-success: #10b981;--bt-color-error: #ef4444;--bt-color-warning: #f59e0b;--bt-color-info: #3b82f6;--bt-color-overlay: rgba(0, 0, 0, 0.5);--bt-spacing-xs: 0.25rem;--bt-spacing-sm: 0.5rem;--bt-spacing-md: 0.75rem;--bt-spacing-lg: 1rem;--bt-spacing-xl: 1.25rem;--bt-spacing-2xl: 1.5rem;--bt-spacing-3xl: 1.75rem;--bt-font-family: Pretendard, sans-serif;--bt-font-size-xs: 0.75rem;--bt-font-size-sm: 0.875rem;--bt-font-size-base: 0.9375rem;--bt-font-size-md: 1rem;--bt-font-size-lg: 1.125rem;--bt-font-size-xl: 1.25rem;--bt-font-weight-regular: 400;--bt-font-weight-medium: 500;--bt-font-weight-semibold: 600;--bt-font-weight-bold: 700;--bt-line-height-normal: 1.5;--bt-radius-sm: 6px;--bt-radius-md: 8px;--bt-radius-lg: 12px;--bt-radius-full: 9999px;--bt-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.04);--bt-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);--bt-shadow-lg: 0 8px 20px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);--bt-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);--bt-transition-fast: 0.1s ease-in-out;--bt-transition-base: 0.2s ease-in-out;--bt-transition-slow: 0.3s ease-in-out;--bt-z-modal: 10000;--bt-z-toast: 10001}.bt-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--bt-spacing-sm);border-radius:var(--bt-radius-md);border:none;cursor:pointer;font-family:var(--bt-font-family);font-weight:var(--bt-font-weight-medium);transition:background var(--bt-transition-base),color var(--bt-transition-base),box-shadow var(--bt-transition-base),transform var(--bt-transition-base)}.bt-button:disabled{cursor:not-allowed;opacity:.6}.bt-button--sm{padding:var(--bt-spacing-sm) var(--bt-spacing-lg);font-size:var(--bt-font-size-sm)}.bt-button--md{padding:var(--bt-spacing-md) var(--bt-spacing-xl);font-size:var(--bt-font-size-base)}.bt-button--lg{padding:var(--bt-spacing-lg) var(--bt-spacing-2xl);font-size:var(--bt-font-size-md)}.bt-button--primary{background:var(--bt-color-primary);color:var(--bt-color-background)}.bt-button--primary:hover:not(:disabled){background:var(--bt-color-primary-hover)}.bt-button--primary:active:not(:disabled){transform:scale(0.98)}.bt-button--secondary{background:rgba(0,0,0,0);border:1px solid var(--bt-color-border);color:var(--bt-color-text-primary)}.bt-button--secondary:hover:not(:disabled){background:var(--bt-color-background-secondary)}.bt-button--secondary:active:not(:disabled){transform:scale(0.98)}.bt-button--ghost{background:rgba(0,0,0,0);color:var(--bt-color-text-primary)}.bt-button--ghost:hover:not(:disabled){background:rgba(0,0,0,.05)}.bt-button--ghost:active:not(:disabled){transform:scale(0.96)}.bt-button--danger{background:var(--bt-color-error);color:var(--bt-color-background)}.bt-button--danger:hover:not(:disabled){background:rgb(235.7842364532, 30.4157635468, 30.4157635468)}.bt-button--danger:active:not(:disabled){transform:scale(0.98)}.bt-button--full-width{width:100%}.bt-text-field{display:flex;flex-direction:column}.bt-text-field--full-width{width:100%}.bt-text-field__label{margin-bottom:var(--bt-spacing-xs);color:var(--bt-color-text-primary);font-size:var(--bt-font-size-sm);font-weight:var(--bt-font-weight-medium);line-height:var(--bt-line-height-normal)}.bt-text-field__wrap{position:relative;display:inline-flex;width:100%;align-items:center}.bt-text-field__input{width:100%;border-radius:var(--bt-radius-md);font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);line-height:var(--bt-line-height-normal);color:var(--bt-color-text-primary);background:var(--bt-color-background);transition:border-color var(--bt-transition-base),box-shadow var(--bt-transition-base),background var(--bt-transition-base)}.bt-text-field__input::placeholder{color:var(--bt-color-text-tertiary)}.bt-text-field__input:disabled{cursor:not-allowed;background:var(--bt-color-background-secondary);color:var(--bt-color-text-tertiary);opacity:.7}.bt-text-field__input--outline{border:1px solid var(--bt-color-border)}.bt-text-field__input--outline:hover:not(:disabled){border-color:var(--bt-color-border-light)}.bt-text-field__input--outline:focus-visible{outline:none;border-color:var(--bt-color-primary);box-shadow:0 0 0 3px rgba(0,0,0,.15)}.bt-text-field__input--filled{background:var(--bt-color-background-secondary);border:1px solid rgba(0,0,0,0)}.bt-text-field__input--filled:focus-visible{outline:none;border-color:var(--bt-color-primary);background:var(--bt-color-background);box-shadow:0 0 0 3px rgba(0,0,0,.15)}.bt-text-field__input--sm{padding:var(--bt-spacing-sm) var(--bt-spacing-lg);font-size:var(--bt-font-size-sm)}.bt-text-field__input--md{padding:var(--bt-spacing-md) var(--bt-spacing-xl);font-size:var(--bt-font-size-base)}.bt-text-field__input--lg{padding:var(--bt-spacing-lg) var(--bt-spacing-2xl);font-size:var(--bt-font-size-md)}.bt-text-field__input--error{border-color:var(--bt-color-error) !important;box-shadow:0 0 0 3px rgba(239,68,68,.15) !important}.bt-text-field__input--success{border-color:var(--bt-color-success) !important;box-shadow:0 0 0 3px rgba(16,185,129,.15) !important}.bt-text-field__helper{margin-top:var(--bt-spacing-xs);font-size:var(--bt-font-size-sm);color:var(--bt-color-text-secondary)}.bt-text-field__helper--error{color:var(--bt-color-error)}.bt-text-field__helper--success{color:var(--bt-color-success)}.bt-text-field__icon{position:absolute;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;color:var(--bt-color-text-secondary)}.bt-text-field__icon--left{left:var(--bt-spacing-md)}.bt-text-field__icon--right{right:var(--bt-spacing-md)}.bt-checkbox{display:inline-flex;align-items:center;gap:var(--bt-spacing-sm);cursor:pointer;user-select:none;position:relative}.bt-checkbox__input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.bt-checkbox__box{width:1.125rem;height:1.125rem;box-sizing:border-box;border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-sm);background:var(--bt-color-background);transition:background var(--bt-transition-base),border-color var(--bt-transition-base),box-shadow var(--bt-transition-base);display:inline-block;position:relative}.bt-checkbox__label{font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);line-height:var(--bt-line-height-normal);color:var(--bt-color-text-primary)}.bt-checkbox--sm .bt-checkbox__box{width:1rem;height:1rem}.bt-checkbox--sm .bt-checkbox__label{font-size:var(--bt-font-size-sm)}.bt-checkbox--lg .bt-checkbox__box{width:1.25rem;height:1.25rem}.bt-checkbox--lg .bt-checkbox__label{font-size:var(--bt-font-size-md)}.bt-checkbox__input:focus-visible+.bt-checkbox__box{box-shadow:0 0 0 3px var(--bt-color-border-light);border-color:var(--bt-color-primary)}.bt-checkbox__input:disabled+.bt-checkbox__box,.bt-checkbox__input:disabled~.bt-checkbox__label{opacity:.6;cursor:not-allowed}.bt-checkbox__input:checked+.bt-checkbox__box{background:var(--bt-color-primary);border-color:var(--bt-color-primary)}.bt-checkbox__input:checked+.bt-checkbox__box::after{content:"";position:absolute;left:50%;top:50%;width:.28rem;height:.55rem;border:2px solid var(--bt-color-background);border-top:0;border-left:0;transform:translate(-50%, -58%) rotate(45deg)}.bt-radio{position:relative;display:inline-flex;align-items:center;gap:var(--bt-spacing-sm);cursor:pointer;user-select:none}.bt-radio__input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}.bt-radio__dot{width:1.125rem;height:1.125rem;box-sizing:border-box;border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-full);background:var(--bt-color-background);transition:background var(--bt-transition-base),border-color var(--bt-transition-base),box-shadow var(--bt-transition-base);position:relative;display:inline-block}.bt-radio__label{font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);line-height:var(--bt-line-height-normal);color:var(--bt-color-text-primary)}.bt-radio--sm .bt-radio__dot{width:1rem;height:1rem}.bt-radio--sm .bt-radio__label{font-size:var(--bt-font-size-sm)}.bt-radio--lg .bt-radio__dot{width:1.25rem;height:1.25rem}.bt-radio--lg .bt-radio__label{font-size:var(--bt-font-size-md)}.bt-radio__input:focus-visible+.bt-radio__dot{box-shadow:0 0 0 3px var(--bt-color-border-light);border-color:var(--bt-color-primary)}.bt-radio__input:checked+.bt-radio__dot{border-color:var(--bt-color-primary)}.bt-radio__input:checked+.bt-radio__dot::after{content:"";position:absolute;left:50%;top:50%;width:60%;height:60%;transform:translate(-50%, -50%);background:var(--bt-color-primary);border-radius:9999px}.bt-radio__input:disabled+.bt-radio__dot,.bt-radio__input:disabled~.bt-radio__label{opacity:.6;cursor:not-allowed}.bt-switch{position:relative;display:inline-flex;align-items:center;width:40px;height:22px;padding:2px;border-radius:var(--bt-radius-full);background:var(--bt-color-border);transition:background var(--bt-transition-base);cursor:pointer;border:none}.bt-switch__thumb{width:18px;height:18px;background:var(--bt-color-background);border-radius:var(--bt-radius-full);transition:transform var(--bt-transition-base);transform:translateX(0)}.bt-switch--on{background:var(--bt-color-primary)}.bt-switch--on .bt-switch__thumb{transform:translateX(18px)}.bt-switch--sm{width:34px;height:18px}.bt-switch--sm .bt-switch__thumb{width:14px;height:14px}.bt-switch--sm.bt-switch--on .bt-switch__thumb{transform:translateX(16px)}.bt-switch--lg{width:48px;height:26px}.bt-switch--lg .bt-switch__thumb{width:22px;height:22px}.bt-switch--lg.bt-switch--on .bt-switch__thumb{transform:translateX(22px)}.bt-switch--disabled{opacity:.6;cursor:not-allowed}.bt-select{position:relative;display:inline-flex;flex-direction:column;width:100%;gap:var(--bt-spacing-xs);font-family:var(--bt-font-family)}.bt-select__label{font-size:var(--bt-font-size-sm);font-weight:var(--bt-font-weight-medium);line-height:var(--bt-line-height-normal);color:var(--bt-color-text-primary)}.bt-select__control{width:100%;display:inline-flex;align-items:center;justify-content:space-between;gap:var(--bt-spacing-sm);cursor:pointer;color:var(--bt-color-text-primary);background:var(--bt-color-background);border-radius:var(--bt-radius-md);transition:border-color var(--bt-transition-base),box-shadow var(--bt-transition-base),background var(--bt-transition-base);font-size:var(--bt-font-size-base);line-height:var(--bt-line-height-normal);border:none;text-align:left}.bt-select__control:disabled,.bt-select__control.is-disabled{cursor:not-allowed;opacity:.7;background:var(--bt-color-background-secondary);color:var(--bt-color-text-tertiary)}.bt-select__control--outline{border:1px solid var(--bt-color-border)}.bt-select__control--outline:hover:not(.is-disabled){border-color:var(--bt-color-border-light)}.bt-select__control--outline.is-open{border-color:var(--bt-color-primary);box-shadow:0 0 0 3px rgba(0,0,0,.15)}.bt-select__control--filled{background:var(--bt-color-background-secondary);border:1px solid rgba(0,0,0,0)}.bt-select__control--filled.is-open{background:var(--bt-color-background);border-color:var(--bt-color-primary);box-shadow:0 0 0 3px rgba(0,0,0,.15)}.bt-select__control--sm{padding:var(--bt-spacing-sm) var(--bt-spacing-lg);font-size:var(--bt-font-size-sm)}.bt-select__control--md{padding:var(--bt-spacing-md) var(--bt-spacing-xl);font-size:var(--bt-font-size-base)}.bt-select__control--lg{padding:var(--bt-spacing-lg) var(--bt-spacing-2xl);font-size:var(--bt-font-size-md)}.bt-select__value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bt-select__placeholder{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--bt-color-text-tertiary)}.bt-select__icon{display:inline-flex;align-items:center;justify-content:center;color:var(--bt-color-text-secondary);transition:transform var(--bt-transition-base)}.bt-select__icon.is-open{transform:rotate(180deg)}.bt-select__list{position:absolute;z-index:var(--bt-z-modal);top:100%;left:0;width:100%;min-width:100%;box-sizing:border-box;margin-top:var(--bt-spacing-xs);background:var(--bt-color-background);border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-md);box-shadow:var(--bt-shadow-md);max-height:18rem;overflow-y:auto;overflow-x:hidden;padding:var(--bt-spacing-xs) 0;list-style:none;margin:var(--bt-spacing-xs) 0 0 0}.bt-select__list--up{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bt-spacing-xs)}.bt-select__option{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:var(--bt-spacing-sm);padding:var(--bt-spacing-sm) var(--bt-spacing-lg);cursor:pointer;color:var(--bt-color-text-primary);background:rgba(0,0,0,0);font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);line-height:var(--bt-line-height-normal)}.bt-select__option:hover,.bt-select__option.is-active{background:var(--bt-color-background-secondary)}.bt-select__option.is-selected{font-weight:var(--bt-font-weight-medium)}.bt-select__option.is-disabled{cursor:not-allowed;color:var(--bt-color-text-tertiary)}.bt-modal{position:fixed;inset:0;display:none;place-items:center;background:var(--bt-color-overlay);z-index:var(--bt-z-modal)}.bt-modal.is-open{display:grid}.bt-modal__panel{background:var(--bt-color-background);border-radius:var(--bt-radius-lg);box-shadow:var(--bt-shadow-lg);max-width:calc(100% - 32px);overflow:hidden}.bt-modal__header{padding:var(--bt-spacing-lg);border-bottom:1px solid var(--bt-color-border);color:var(--bt-color-text-primary);font-size:var(--bt-font-size-xl);font-weight:var(--bt-font-weight-semibold);line-height:1.3}.bt-modal__body{padding:var(--bt-spacing-lg)}.bt-modal__footer{padding:var(--bt-spacing-lg);border-top:1px solid var(--bt-color-border);display:flex;justify-content:flex-end;gap:var(--bt-spacing-sm)}@keyframes bt-alert-fade-in{from{opacity:0}to{opacity:1}}@keyframes bt-alert-slide-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.bt-alert__overlay{position:fixed;inset:0;background:var(--bt-color-overlay);display:none;align-items:center;justify-content:center;z-index:var(--bt-z-modal);animation:bt-alert-fade-in var(--bt-transition-base)}.bt-alert__overlay.is-open{display:flex}.bt-alert__modal{background:var(--bt-color-background);border-radius:var(--bt-radius-lg);min-width:320px;max-width:480px;box-shadow:var(--bt-shadow-xl);animation:bt-alert-slide-up var(--bt-transition-slow);overflow:hidden}.bt-alert__title{font-size:var(--bt-font-size-lg);font-weight:var(--bt-font-weight-semibold);line-height:var(--bt-line-height-normal);color:var(--bt-color-info);padding:var(--bt-spacing-md) var(--bt-spacing-xl) var(--bt-spacing-xs)}.bt-alert__message{font-size:var(--bt-font-size-base);color:var(--bt-color-text-secondary);padding:var(--bt-spacing-xl);line-height:1.75}.bt-alert__actions{display:flex;gap:var(--bt-spacing-sm);align-items:center;padding:0 var(--bt-spacing-xl) var(--bt-spacing-xl);justify-content:flex-end}.bt-alert--info .bt-alert__title{color:var(--bt-color-info)}.bt-alert--success .bt-alert__title{color:var(--bt-color-success)}.bt-alert--warning .bt-alert__title{color:var(--bt-color-warning)}.bt-alert--error .bt-alert__title{color:var(--bt-color-error)}.bt-card{background:var(--bt-color-background);border-radius:var(--bt-radius-lg)}.bt-card--bordered{border:1px solid var(--bt-color-border)}.bt-card--shadow-sm{box-shadow:var(--bt-shadow-sm)}.bt-card--shadow-md{box-shadow:var(--bt-shadow-md)}.bt-card--shadow-lg{box-shadow:var(--bt-shadow-lg)}.bt-card--p-sm{padding:var(--bt-spacing-sm)}.bt-card--p-md{padding:var(--bt-spacing-lg)}.bt-card--p-lg{padding:var(--bt-spacing-2xl)}.bt-card__title{font-size:var(--bt-font-size-xl);font-weight:var(--bt-font-weight-semibold);line-height:1.3;margin-bottom:var(--bt-spacing-md);color:var(--bt-color-text-primary)}@keyframes bt-spinner-spin{to{transform:rotate(360deg)}}.bt-spinner{display:inline-block;box-sizing:border-box;border-radius:50%;border:2px solid var(--bt-color-border);border-top-color:var(--bt-color-primary);animation:bt-spinner-spin .8s linear infinite}.bt-spinner--sm{width:16px;height:16px}.bt-spinner--md{width:24px;height:24px}.bt-spinner--lg{width:32px;height:32px}.bt-spinner--xl{width:48px;height:48px}.bt-pagination{display:flex;align-items:center;justify-content:center;gap:var(--bt-spacing-sm);margin-top:var(--bt-spacing-3xl)}.bt-pagination__item{border:1px solid var(--bt-color-border);background:var(--bt-color-background);border-radius:var(--bt-radius-md);padding:6px 10px;min-width:36px;font-family:var(--bt-font-family);font-size:var(--bt-font-size-sm);color:var(--bt-color-text-primary);cursor:pointer;transition:background var(--bt-transition-base),border-color var(--bt-transition-base)}.bt-pagination__item:hover:not(:disabled){background:var(--bt-color-background-secondary)}.bt-pagination__item:disabled{opacity:.5;cursor:not-allowed}.bt-pagination__pages{display:flex;align-items:center;gap:6px}.bt-pagination__page{border:0;background:rgba(0,0,0,0);min-width:36px;height:36px;border-radius:var(--bt-radius-md);font-family:var(--bt-font-family);font-size:var(--bt-font-size-sm);color:var(--bt-color-text-secondary);cursor:pointer;transition:background var(--bt-transition-base),color var(--bt-transition-base)}.bt-pagination__page:hover{background:var(--bt-color-background-secondary);color:var(--bt-color-text-primary)}.bt-pagination__page--active{color:var(--bt-color-text-primary);font-weight:var(--bt-font-weight-semibold)}.bt-pagination__ellipsis{min-width:20px;text-align:center;font-size:var(--bt-font-size-sm);color:var(--bt-color-text-tertiary)}.bt-date-picker{display:flex;flex-direction:column;gap:var(--bt-spacing-xs)}.bt-date-picker__label{color:var(--bt-color-text-primary);margin-bottom:var(--bt-spacing-xs);font-weight:var(--bt-font-weight-medium);font-size:var(--bt-font-size-sm);line-height:var(--bt-line-height-normal)}.bt-date-picker__label-required{margin-left:var(--bt-spacing-xs);color:var(--bt-color-error)}.bt-date-picker__fields{display:flex;gap:var(--bt-spacing-sm)}.bt-date-picker__select{min-width:88px;height:44px;padding:0 var(--bt-spacing-md);font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);color:var(--bt-color-text-primary);background-color:var(--bt-color-background);border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-sm);cursor:pointer;transition:border-color var(--bt-transition-fast),box-shadow var(--bt-transition-fast),background-color var(--bt-transition-fast);appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--bt-color-text-secondary) 50%),linear-gradient(135deg, var(--bt-color-text-secondary) 50%, transparent 50%);background-position:calc(100% - 16px) calc(50% - 3px),calc(100% - 11px) calc(50% - 3px);background-size:5px 5px;background-repeat:no-repeat}.bt-date-picker__select:hover:not(:disabled){border-color:var(--bt-color-primary);background-color:var(--bt-color-background-secondary)}.bt-date-picker__select:focus-visible{outline:none;border-color:var(--bt-color-primary);box-shadow:0 0 0 3px rgba(0,0,0,.15)}.bt-date-picker__select:disabled{cursor:not-allowed;color:var(--bt-text-disabled);background-color:var(--bt-color-background-secondary);border-color:var(--bt-color-border-light)}.bt-date-picker--full-width{width:100%}.bt-date-picker--full-width .bt-date-picker__fields{width:100%}.bt-date-picker--full-width .bt-date-picker__select{flex:1;min-width:0}.bt-file-input{position:relative;display:inline-flex;align-items:center}.bt-file-input:hover .bt-file-input__label{border-color:var(--bt-color-border-light)}.bt-file-input__control{position:absolute;inset:0;opacity:0;cursor:pointer}.bt-file-input__label{border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-md);background:var(--bt-color-background);padding:var(--bt-spacing-sm) var(--bt-spacing-lg);font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);color:var(--bt-color-text-primary);transition:background var(--bt-transition-base),border-color var(--bt-transition-base),box-shadow var(--bt-transition-base)}.bt-file-input__control:focus-visible+.bt-file-input__label{box-shadow:0 0 0 3px var(--bt-color-border-light);border-color:var(--bt-color-primary)}.bt-file-input--disabled{cursor:not-allowed}.bt-file-input--disabled .bt-file-input__control{cursor:not-allowed}.bt-file-input--disabled .bt-file-input__label{opacity:.6;cursor:not-allowed}.bt-file-input--disabled:hover .bt-file-input__label{border-color:var(--bt-color-border)}.bt-toast{font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);border-radius:var(--bt-radius-md);box-shadow:var(--bt-shadow-lg)}.bt-hidden{display:none !important}.bt-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}
|
|
1
|
+
@keyframes skeleton_loading{0%{background-position:100% 0}100%{background-position:0 0}}:root{--bt-color-primary: #000000;--bt-color-primary-hover: #333333;--bt-color-background: #ffffff;--bt-color-background-secondary: #fafafa;--bt-color-background-neutral: #F3F3F3;--bt-color-background-muted: #f0f0f0;--bt-color-text-primary: #1a1a1a;--bt-color-text-secondary: #666666;--bt-color-text-tertiary: #999999;--bt-text-inverse: #ffffff;--bt-text-disabled: #9ca3af;--bt-color-border: #e5e5e5;--bt-color-border-light: rgba(0, 0, 0, 0.08);--bt-color-success: #10b981;--bt-color-error: #ef4444;--bt-color-warning: #f59e0b;--bt-color-info: #3b82f6;--bt-color-overlay: rgba(0, 0, 0, 0.5);--bt-spacing-xs: 0.25rem;--bt-spacing-sm: 0.5rem;--bt-spacing-md: 0.75rem;--bt-spacing-lg: 1rem;--bt-spacing-xl: 1.25rem;--bt-spacing-2xl: 1.5rem;--bt-spacing-3xl: 1.75rem;--bt-font-family: Pretendard, sans-serif;--bt-font-size-xs: 0.75rem;--bt-font-size-sm: 0.875rem;--bt-font-size-base: 0.9375rem;--bt-font-size-md: 1rem;--bt-font-size-lg: 1.125rem;--bt-font-size-xl: 1.25rem;--bt-font-weight-regular: 400;--bt-font-weight-medium: 500;--bt-font-weight-semibold: 600;--bt-font-weight-bold: 700;--bt-line-height-normal: 1.5;--bt-radius-sm: 6px;--bt-radius-md: 8px;--bt-radius-lg: 12px;--bt-radius-full: 9999px;--bt-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.04);--bt-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);--bt-shadow-lg: 0 8px 20px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.06);--bt-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);--bt-transition-fast: 0.1s ease-in-out;--bt-transition-base: 0.2s ease-in-out;--bt-transition-slow: 0.3s ease-in-out;--bt-z-modal: 10000;--bt-z-toast: 10001}.bt-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--bt-spacing-sm);border-radius:var(--bt-radius-md);border:none;cursor:pointer;font-family:var(--bt-font-family);font-weight:var(--bt-font-weight-medium);transition:background var(--bt-transition-base),color var(--bt-transition-base),box-shadow var(--bt-transition-base),transform var(--bt-transition-base)}.bt-button:disabled{cursor:not-allowed;opacity:.6}.bt-button--sm{padding:var(--bt-spacing-sm) var(--bt-spacing-lg);font-size:var(--bt-font-size-sm)}.bt-button--md{padding:var(--bt-spacing-md) var(--bt-spacing-xl);font-size:var(--bt-font-size-base)}.bt-button--lg{padding:var(--bt-spacing-lg) var(--bt-spacing-2xl);font-size:var(--bt-font-size-md)}.bt-button--primary{background:var(--bt-color-primary);color:var(--bt-color-background)}.bt-button--primary:hover:not(:disabled){background:var(--bt-color-primary-hover)}.bt-button--primary:active:not(:disabled){transform:scale(0.98)}.bt-button--secondary{background:rgba(0,0,0,0);border:1px solid var(--bt-color-border);color:var(--bt-color-text-primary)}.bt-button--secondary:hover:not(:disabled){background:var(--bt-color-background-secondary)}.bt-button--secondary:active:not(:disabled){transform:scale(0.98)}.bt-button--ghost{background:rgba(0,0,0,0);color:var(--bt-color-text-primary)}.bt-button--ghost:hover:not(:disabled){background:rgba(0,0,0,.05)}.bt-button--ghost:active:not(:disabled){transform:scale(0.96)}.bt-button--danger{background:var(--bt-color-error);color:var(--bt-color-background)}.bt-button--danger:hover:not(:disabled){background:rgb(235.7842364532, 30.4157635468, 30.4157635468)}.bt-button--danger:active:not(:disabled){transform:scale(0.98)}.bt-button--full-width{width:100%}.bt-text-field{display:flex;flex-direction:column}.bt-text-field--full-width{width:100%}.bt-text-field__label{margin-bottom:var(--bt-spacing-xs);color:var(--bt-color-text-primary);font-size:var(--bt-font-size-sm);font-weight:var(--bt-font-weight-medium);line-height:var(--bt-line-height-normal)}.bt-text-field__wrap{position:relative;display:inline-flex;width:100%;align-items:center}.bt-text-field__input{width:100%;border-radius:var(--bt-radius-md);font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);line-height:var(--bt-line-height-normal);color:var(--bt-color-text-primary);background:var(--bt-color-background);transition:border-color var(--bt-transition-base),box-shadow var(--bt-transition-base),background var(--bt-transition-base)}.bt-text-field__input::placeholder{color:var(--bt-color-text-tertiary)}.bt-text-field__input:disabled{cursor:not-allowed;background:var(--bt-color-background-secondary);color:var(--bt-color-text-tertiary);opacity:.7}.bt-text-field__input--outline{border:1px solid var(--bt-color-border)}.bt-text-field__input--outline:hover:not(:disabled){border-color:var(--bt-color-border-light)}.bt-text-field__input--outline:focus-visible{outline:none;border-color:var(--bt-color-primary);box-shadow:0 0 0 3px rgba(0,0,0,.15)}.bt-text-field__input--filled{background:var(--bt-color-background-secondary);border:1px solid rgba(0,0,0,0)}.bt-text-field__input--filled:focus-visible{outline:none;border-color:var(--bt-color-primary);background:var(--bt-color-background);box-shadow:0 0 0 3px rgba(0,0,0,.15)}.bt-text-field__input--sm{padding:var(--bt-spacing-sm) var(--bt-spacing-lg);font-size:var(--bt-font-size-sm)}.bt-text-field__input--md{padding:var(--bt-spacing-md) var(--bt-spacing-xl);font-size:var(--bt-font-size-base)}.bt-text-field__input--lg{padding:var(--bt-spacing-lg) var(--bt-spacing-2xl);font-size:var(--bt-font-size-md)}.bt-text-field__input--error{border-color:var(--bt-color-error) !important;box-shadow:0 0 0 3px rgba(239,68,68,.15) !important}.bt-text-field__input--success{border-color:var(--bt-color-success) !important;box-shadow:0 0 0 3px rgba(16,185,129,.15) !important}.bt-text-field__helper{margin-top:var(--bt-spacing-xs);font-size:var(--bt-font-size-sm);color:var(--bt-color-text-secondary)}.bt-text-field__helper--error{color:var(--bt-color-error)}.bt-text-field__helper--success{color:var(--bt-color-success)}.bt-text-field__icon{position:absolute;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;color:var(--bt-color-text-secondary)}.bt-text-field__icon--left{left:var(--bt-spacing-md)}.bt-text-field__icon--right{right:var(--bt-spacing-md)}.bt-checkbox{display:inline-flex;align-items:center;gap:var(--bt-spacing-sm);cursor:pointer;user-select:none;position:relative}.bt-checkbox__input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.bt-checkbox__box{width:1.125rem;height:1.125rem;box-sizing:border-box;border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-sm);background:var(--bt-color-background);transition:background var(--bt-transition-base),border-color var(--bt-transition-base),box-shadow var(--bt-transition-base);display:inline-block;position:relative}.bt-checkbox__label{font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);line-height:var(--bt-line-height-normal);color:var(--bt-color-text-primary)}.bt-checkbox--sm .bt-checkbox__box{width:1rem;height:1rem}.bt-checkbox--sm .bt-checkbox__label{font-size:var(--bt-font-size-sm)}.bt-checkbox--lg .bt-checkbox__box{width:1.25rem;height:1.25rem}.bt-checkbox--lg .bt-checkbox__label{font-size:var(--bt-font-size-md)}.bt-checkbox__input:focus-visible+.bt-checkbox__box{box-shadow:0 0 0 3px var(--bt-color-border-light);border-color:var(--bt-color-primary)}.bt-checkbox__input:disabled+.bt-checkbox__box,.bt-checkbox__input:disabled~.bt-checkbox__label{opacity:.6;cursor:not-allowed}.bt-checkbox__input:checked+.bt-checkbox__box{background:var(--bt-color-primary);border-color:var(--bt-color-primary)}.bt-checkbox__input:checked+.bt-checkbox__box::after{content:"";position:absolute;left:50%;top:50%;width:.28rem;height:.55rem;border:2px solid var(--bt-color-background);border-top:0;border-left:0;transform:translate(-50%, -58%) rotate(45deg)}.bt-radio{position:relative;display:inline-flex;align-items:center;gap:var(--bt-spacing-sm);cursor:pointer;user-select:none}.bt-radio__input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}.bt-radio__dot{width:1.125rem;height:1.125rem;box-sizing:border-box;border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-full);background:var(--bt-color-background);transition:background var(--bt-transition-base),border-color var(--bt-transition-base),box-shadow var(--bt-transition-base);position:relative;display:inline-block}.bt-radio__label{font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);line-height:var(--bt-line-height-normal);color:var(--bt-color-text-primary)}.bt-radio--sm .bt-radio__dot{width:1rem;height:1rem}.bt-radio--sm .bt-radio__label{font-size:var(--bt-font-size-sm)}.bt-radio--lg .bt-radio__dot{width:1.25rem;height:1.25rem}.bt-radio--lg .bt-radio__label{font-size:var(--bt-font-size-md)}.bt-radio__input:focus-visible+.bt-radio__dot{box-shadow:0 0 0 3px var(--bt-color-border-light);border-color:var(--bt-color-primary)}.bt-radio__input:checked+.bt-radio__dot{border-color:var(--bt-color-primary)}.bt-radio__input:checked+.bt-radio__dot::after{content:"";position:absolute;left:50%;top:50%;width:60%;height:60%;transform:translate(-50%, -50%);background:var(--bt-color-primary);border-radius:9999px}.bt-radio__input:disabled+.bt-radio__dot,.bt-radio__input:disabled~.bt-radio__label{opacity:.6;cursor:not-allowed}.bt-switch{position:relative;display:inline-flex;align-items:center;width:40px;height:22px;padding:2px;border-radius:var(--bt-radius-full);background:var(--bt-color-border);transition:background var(--bt-transition-base);cursor:pointer;border:none}.bt-switch__thumb{width:18px;height:18px;background:var(--bt-color-background);border-radius:var(--bt-radius-full);transition:transform var(--bt-transition-base);transform:translateX(0)}.bt-switch--on{background:var(--bt-color-primary)}.bt-switch--on .bt-switch__thumb{transform:translateX(18px)}.bt-switch--sm{width:34px;height:18px}.bt-switch--sm .bt-switch__thumb{width:14px;height:14px}.bt-switch--sm.bt-switch--on .bt-switch__thumb{transform:translateX(16px)}.bt-switch--lg{width:48px;height:26px}.bt-switch--lg .bt-switch__thumb{width:22px;height:22px}.bt-switch--lg.bt-switch--on .bt-switch__thumb{transform:translateX(22px)}.bt-switch--disabled{opacity:.6;cursor:not-allowed}.bt-select{position:relative;display:inline-flex;flex-direction:column;width:100%;gap:var(--bt-spacing-xs);font-family:var(--bt-font-family)}.bt-select__label{font-size:var(--bt-font-size-sm);font-weight:var(--bt-font-weight-medium);line-height:var(--bt-line-height-normal);color:var(--bt-color-text-primary)}.bt-select__control{width:100%;display:inline-flex;align-items:center;justify-content:space-between;gap:var(--bt-spacing-sm);cursor:pointer;color:var(--bt-color-text-primary);background:var(--bt-color-background);border-radius:var(--bt-radius-md);transition:border-color var(--bt-transition-base),box-shadow var(--bt-transition-base),background var(--bt-transition-base);font-size:var(--bt-font-size-base);line-height:var(--bt-line-height-normal);border:none;text-align:left}.bt-select__control:disabled,.bt-select__control.is-disabled{cursor:not-allowed;opacity:.7;background:var(--bt-color-background-secondary);color:var(--bt-color-text-tertiary)}.bt-select__control--outline{border:1px solid var(--bt-color-border)}.bt-select__control--outline:hover:not(.is-disabled){border-color:var(--bt-color-border-light)}.bt-select__control--outline.is-open{border-color:var(--bt-color-primary);box-shadow:0 0 0 3px rgba(0,0,0,.15)}.bt-select__control--filled{background:var(--bt-color-background-secondary);border:1px solid rgba(0,0,0,0)}.bt-select__control--filled.is-open{background:var(--bt-color-background);border-color:var(--bt-color-primary);box-shadow:0 0 0 3px rgba(0,0,0,.15)}.bt-select__control--sm{padding:var(--bt-spacing-sm) var(--bt-spacing-lg);font-size:var(--bt-font-size-sm)}.bt-select__control--md{padding:var(--bt-spacing-md) var(--bt-spacing-xl);font-size:var(--bt-font-size-base)}.bt-select__control--lg{padding:var(--bt-spacing-lg) var(--bt-spacing-2xl);font-size:var(--bt-font-size-md)}.bt-select__value{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bt-select__placeholder{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--bt-color-text-tertiary)}.bt-select__icon{display:inline-flex;align-items:center;justify-content:center;color:var(--bt-color-text-secondary);transition:transform var(--bt-transition-base)}.bt-select__icon.is-open{transform:rotate(180deg)}.bt-select__list{position:absolute;z-index:var(--bt-z-modal);top:100%;left:0;width:100%;min-width:100%;box-sizing:border-box;margin-top:var(--bt-spacing-xs);background:var(--bt-color-background);border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-md);box-shadow:var(--bt-shadow-md);max-height:18rem;overflow-y:auto;overflow-x:hidden;padding:var(--bt-spacing-xs) 0;list-style:none;margin:var(--bt-spacing-xs) 0 0 0}.bt-select__list--up{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bt-spacing-xs)}.bt-select__option{width:100%;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:var(--bt-spacing-sm);padding:var(--bt-spacing-sm) var(--bt-spacing-lg);cursor:pointer;color:var(--bt-color-text-primary);background:rgba(0,0,0,0);font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);line-height:var(--bt-line-height-normal)}.bt-select__option:hover,.bt-select__option.is-active{background:var(--bt-color-background-secondary)}.bt-select__option.is-selected{font-weight:var(--bt-font-weight-medium)}.bt-select__option.is-disabled{cursor:not-allowed;color:var(--bt-color-text-tertiary)}.bt-modal{position:fixed;inset:0;display:none;place-items:center;background:var(--bt-color-overlay);z-index:var(--bt-z-modal)}.bt-modal.is-open{display:grid}.bt-modal__panel{background:var(--bt-color-background);border-radius:var(--bt-radius-lg);box-shadow:var(--bt-shadow-lg);max-width:calc(100% - 32px);overflow:hidden}.bt-modal__header{padding:var(--bt-spacing-lg);border-bottom:1px solid var(--bt-color-border);color:var(--bt-color-text-primary);font-size:var(--bt-font-size-xl);font-weight:var(--bt-font-weight-semibold);line-height:1.3}.bt-modal__body{padding:var(--bt-spacing-lg)}.bt-modal__footer{padding:var(--bt-spacing-lg);border-top:1px solid var(--bt-color-border);display:flex;justify-content:flex-end;gap:var(--bt-spacing-sm)}@keyframes bt-alert-fade-in{from{opacity:0}to{opacity:1}}@keyframes bt-alert-slide-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.bt-alert__overlay{position:fixed;inset:0;background:var(--bt-color-overlay);display:none;align-items:center;justify-content:center;z-index:var(--bt-z-modal);animation:bt-alert-fade-in var(--bt-transition-base)}.bt-alert__overlay.is-open{display:flex}.bt-alert__modal{background:var(--bt-color-background);border-radius:var(--bt-radius-lg);min-width:320px;max-width:480px;box-shadow:var(--bt-shadow-xl);animation:bt-alert-slide-up var(--bt-transition-slow);overflow:hidden}.bt-alert__title{font-size:var(--bt-font-size-lg);font-weight:var(--bt-font-weight-semibold);line-height:var(--bt-line-height-normal);color:var(--bt-color-info);padding:var(--bt-spacing-md) var(--bt-spacing-xl) var(--bt-spacing-xs)}.bt-alert__message{font-size:var(--bt-font-size-base);color:var(--bt-color-text-secondary);padding:var(--bt-spacing-xl);line-height:1.75}.bt-alert__actions{display:flex;gap:var(--bt-spacing-sm);align-items:center;padding:0 var(--bt-spacing-xl) var(--bt-spacing-xl);justify-content:flex-end}.bt-alert--info .bt-alert__title{color:var(--bt-color-info)}.bt-alert--success .bt-alert__title{color:var(--bt-color-success)}.bt-alert--warning .bt-alert__title{color:var(--bt-color-warning)}.bt-alert--error .bt-alert__title{color:var(--bt-color-error)}.bt-card{background:var(--bt-color-background);border-radius:var(--bt-radius-lg)}.bt-card--bordered{border:1px solid var(--bt-color-border)}.bt-card--shadow-sm{box-shadow:var(--bt-shadow-sm)}.bt-card--shadow-md{box-shadow:var(--bt-shadow-md)}.bt-card--shadow-lg{box-shadow:var(--bt-shadow-lg)}.bt-card--p-sm{padding:var(--bt-spacing-sm)}.bt-card--p-md{padding:var(--bt-spacing-lg)}.bt-card--p-lg{padding:var(--bt-spacing-2xl)}.bt-card__title{font-size:var(--bt-font-size-xl);font-weight:var(--bt-font-weight-semibold);line-height:1.3;margin-bottom:var(--bt-spacing-md);color:var(--bt-color-text-primary)}@keyframes bt-spinner-spin{to{transform:rotate(360deg)}}.bt-spinner{display:inline-block;box-sizing:border-box;border-radius:50%;border:2px solid var(--bt-color-border);border-top-color:var(--bt-color-primary);animation:bt-spinner-spin .8s linear infinite}.bt-spinner--sm{width:16px;height:16px}.bt-spinner--md{width:24px;height:24px}.bt-spinner--lg{width:32px;height:32px}.bt-spinner--xl{width:48px;height:48px}.bt-pagination{display:flex;align-items:center;justify-content:center;gap:var(--bt-spacing-sm);margin-top:var(--bt-spacing-3xl)}.bt-pagination__item{border:1px solid var(--bt-color-border);background:var(--bt-color-background);border-radius:var(--bt-radius-md);padding:6px 10px;min-width:36px;font-family:var(--bt-font-family);font-size:var(--bt-font-size-sm);color:var(--bt-color-text-primary);cursor:pointer;transition:background var(--bt-transition-base),border-color var(--bt-transition-base)}.bt-pagination__item:hover:not(:disabled){background:var(--bt-color-background-secondary)}.bt-pagination__item:disabled{opacity:.5;cursor:not-allowed}.bt-pagination__pages{display:flex;align-items:center;gap:6px}.bt-pagination__page{border:0;background:rgba(0,0,0,0);min-width:36px;height:36px;border-radius:var(--bt-radius-md);font-family:var(--bt-font-family);font-size:var(--bt-font-size-sm);color:var(--bt-color-text-secondary);cursor:pointer;transition:background var(--bt-transition-base),color var(--bt-transition-base)}.bt-pagination__page:hover{background:var(--bt-color-background-secondary);color:var(--bt-color-text-primary)}.bt-pagination__page--active{color:var(--bt-color-text-primary);font-weight:var(--bt-font-weight-semibold)}.bt-pagination__ellipsis{min-width:20px;text-align:center;font-size:var(--bt-font-size-sm);color:var(--bt-color-text-tertiary)}.bt-date-picker{display:flex;flex-direction:column;gap:var(--bt-spacing-xs)}.bt-date-picker__label{color:var(--bt-color-text-primary);margin-bottom:var(--bt-spacing-xs);font-weight:var(--bt-font-weight-medium);font-size:var(--bt-font-size-sm);line-height:var(--bt-line-height-normal)}.bt-date-picker__label-required{margin-left:var(--bt-spacing-xs);color:var(--bt-color-error)}.bt-date-picker__fields{display:flex;gap:var(--bt-spacing-sm)}.bt-date-picker__select{min-width:88px;height:44px;padding:0 var(--bt-spacing-md);font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);color:var(--bt-color-text-primary);background-color:var(--bt-color-background);border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-sm);cursor:pointer;transition:border-color var(--bt-transition-fast),box-shadow var(--bt-transition-fast),background-color var(--bt-transition-fast);appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--bt-color-text-secondary) 50%),linear-gradient(135deg, var(--bt-color-text-secondary) 50%, transparent 50%);background-position:calc(100% - 16px) calc(50% - 3px),calc(100% - 11px) calc(50% - 3px);background-size:5px 5px;background-repeat:no-repeat}.bt-date-picker__select:hover:not(:disabled){border-color:var(--bt-color-primary);background-color:var(--bt-color-background-secondary)}.bt-date-picker__select:focus-visible{outline:none;border-color:var(--bt-color-primary);box-shadow:0 0 0 3px rgba(0,0,0,.15)}.bt-date-picker__select:disabled{cursor:not-allowed;color:var(--bt-text-disabled);background-color:var(--bt-color-background-secondary);border-color:var(--bt-color-border-light)}.bt-date-picker--full-width{width:100%}.bt-date-picker--full-width .bt-date-picker__fields{width:100%}.bt-date-picker--full-width .bt-date-picker__select{flex:1;min-width:0}.bt-file-input{position:relative;display:inline-flex;align-items:center}.bt-file-input:hover .bt-file-input__label{border-color:var(--bt-color-border-light)}.bt-file-input__control{position:absolute;inset:0;opacity:0;cursor:pointer}.bt-file-input__label{border:1px solid var(--bt-color-border);border-radius:var(--bt-radius-md);background:var(--bt-color-background);padding:var(--bt-spacing-sm) var(--bt-spacing-lg);font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);color:var(--bt-color-text-primary);transition:background var(--bt-transition-base),border-color var(--bt-transition-base),box-shadow var(--bt-transition-base)}.bt-file-input__control:focus-visible+.bt-file-input__label{box-shadow:0 0 0 3px var(--bt-color-border-light);border-color:var(--bt-color-primary)}.bt-file-input--disabled{cursor:not-allowed}.bt-file-input--disabled .bt-file-input__control{cursor:not-allowed}.bt-file-input--disabled .bt-file-input__label{opacity:.6;cursor:not-allowed}.bt-file-input--disabled:hover .bt-file-input__label{border-color:var(--bt-color-border)}.bt-toast{font-family:var(--bt-font-family);font-size:var(--bt-font-size-base);border-radius:var(--bt-radius-md);box-shadow:var(--bt-shadow-lg)}.bt-hidden{display:none !important}.bt-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigtablet/design-system",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.22.0",
|
|
4
4
|
"description": "Bigtablet Design System UI Components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
],
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsup && pnpm run copy:scss && pnpm run build:vanilla",
|
|
45
|
-
"build:vanilla": "
|
|
46
|
-
"copy:scss": "
|
|
45
|
+
"build:vanilla": "sh scripts/build-vanilla.sh",
|
|
46
|
+
"copy:scss": "sh scripts/copy-scss.sh",
|
|
47
47
|
"dev": "tsup --watch",
|
|
48
48
|
"storybook": "storybook dev -p 6006",
|
|
49
49
|
"build:sb": "storybook build",
|
|
@@ -51,10 +51,10 @@
|
|
|
51
51
|
"test:watch": "vitest --project unit",
|
|
52
52
|
"test:coverage": "vitest run --project unit --coverage",
|
|
53
53
|
"chromatic": "npx chromatic --project-token=$CHROMATIC_TOKEN --build-script-name=build:sb",
|
|
54
|
-
"figma:test": "
|
|
55
|
-
"figma:snapshot": "
|
|
56
|
-
"figma:diff": "
|
|
57
|
-
"figma:apply": "
|
|
54
|
+
"figma:test": "tsx scripts/figma-connect.ts",
|
|
55
|
+
"figma:snapshot": "tsx scripts/figma-snapshot.ts",
|
|
56
|
+
"figma:diff": "tsx scripts/figma-diff.ts",
|
|
57
|
+
"figma:apply": "tsx scripts/figma-apply.ts",
|
|
58
58
|
"size": "size-limit",
|
|
59
59
|
"prepare": "husky"
|
|
60
60
|
},
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"esbuild-sass-plugin": "^3",
|
|
107
107
|
"husky": "^9.1.7",
|
|
108
108
|
"jsdom": "^28.0.0",
|
|
109
|
-
"lucide-react": "^0.
|
|
109
|
+
"lucide-react": "^0.577.0",
|
|
110
110
|
"next": "16.1.6",
|
|
111
111
|
"playwright": "^1.57.0",
|
|
112
112
|
"react": "19.2.0",
|
|
@@ -114,8 +114,9 @@
|
|
|
114
114
|
"sass-embedded": "^1.93.3",
|
|
115
115
|
"semantic-release": "^25.0.1",
|
|
116
116
|
"size-limit": "^12.0.1",
|
|
117
|
-
"storybook": "10.2.
|
|
117
|
+
"storybook": "10.2.19",
|
|
118
118
|
"tsup": "^8.5.0",
|
|
119
|
+
"tsx": "^4.21.0",
|
|
119
120
|
"typescript": "^5",
|
|
120
121
|
"vite": "^5",
|
|
121
122
|
"vitest": "^4.0.17"
|