@loword/loword-design-system 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/dist/index.css +9 -0
  2. package/package.json +6 -3
  3. package/src/styles/carousel.css +9 -0
  4. package/src/styles/color.css +185 -0
  5. package/src/styles/components/badge.css +41 -0
  6. package/src/styles/components/bread-crumb.css +23 -0
  7. package/src/styles/components/button.css +183 -0
  8. package/src/styles/components/editor.css +147 -0
  9. package/src/styles/components/icon.css +29 -0
  10. package/src/styles/components/index.css +9 -0
  11. package/src/styles/components/input.css +52 -0
  12. package/src/styles/components/modal.css +25 -0
  13. package/src/styles/components/shared.css +52 -0
  14. package/src/styles/components/spinner.css +38 -0
  15. package/src/styles/focus.css +12 -0
  16. package/src/styles/gradient.css +41 -0
  17. package/src/styles/layout.css +19 -0
  18. package/src/styles/motion.css +235 -0
  19. package/src/styles/radius.css +8 -0
  20. package/src/styles/responsive.css +42 -0
  21. package/src/styles/scrollbar.css +59 -0
  22. package/src/styles/slider.css +65 -0
  23. package/src/styles/spacing.css +592 -0
  24. package/src/styles/text-utils.css +7 -0
  25. package/src/styles/typography.css +171 -0
  26. package/src/theme.css +19 -0
  27. package/dist/components/Avatar/Avatar.d.ts +0 -11
  28. package/dist/components/Avatar/Avatar.d.ts.map +0 -1
  29. package/dist/components/Avatar/Avatar.js +0 -24
  30. package/dist/components/Avatar/AvatarBase.d.ts +0 -32
  31. package/dist/components/Avatar/AvatarBase.d.ts.map +0 -1
  32. package/dist/components/Avatar/AvatarBase.js +0 -49
  33. package/dist/components/Badge/Badge.d.ts +0 -25
  34. package/dist/components/Badge/Badge.d.ts.map +0 -1
  35. package/dist/components/Badge/Badge.js +0 -36
  36. package/dist/components/Badge/BadgeBase.d.ts +0 -10
  37. package/dist/components/Badge/BadgeBase.d.ts.map +0 -1
  38. package/dist/components/Badge/BadgeBase.js +0 -9
  39. package/dist/components/BreadCrumb/BreadCrumb.d.ts +0 -17
  40. package/dist/components/BreadCrumb/BreadCrumb.d.ts.map +0 -1
  41. package/dist/components/BreadCrumb/BreadCrumb.js +0 -37
  42. package/dist/components/BreadCrumb/BreadCrumbBase.d.ts +0 -9
  43. package/dist/components/BreadCrumb/BreadCrumbBase.d.ts.map +0 -1
  44. package/dist/components/BreadCrumb/BreadCrumbBase.js +0 -17
  45. package/dist/components/Button/Button.d.ts +0 -26
  46. package/dist/components/Button/Button.d.ts.map +0 -1
  47. package/dist/components/Button/Button.js +0 -102
  48. package/dist/components/Button/ButtonBase.d.ts +0 -5
  49. package/dist/components/Button/ButtonBase.d.ts.map +0 -1
  50. package/dist/components/Button/ButtonBase.js +0 -10
  51. package/dist/components/Button/ButtonSpinner.d.ts +0 -8
  52. package/dist/components/Button/ButtonSpinner.d.ts.map +0 -1
  53. package/dist/components/Button/ButtonSpinner.js +0 -15
  54. package/dist/components/Calendar/Calendar.d.ts +0 -16
  55. package/dist/components/Calendar/Calendar.d.ts.map +0 -1
  56. package/dist/components/Calendar/Calendar.js +0 -75
  57. package/dist/components/Callout/Callout.d.ts +0 -10
  58. package/dist/components/Callout/Callout.d.ts.map +0 -1
  59. package/dist/components/Callout/Callout.js +0 -6
  60. package/dist/components/Callout/CalloutBase.d.ts +0 -18
  61. package/dist/components/Callout/CalloutBase.d.ts.map +0 -1
  62. package/dist/components/Callout/CalloutBase.js +0 -21
  63. package/dist/components/Carousel/Carousel.d.ts +0 -50
  64. package/dist/components/Carousel/Carousel.d.ts.map +0 -1
  65. package/dist/components/Carousel/Carousel.js +0 -22
  66. package/dist/components/Carousel/CarouselBase.d.ts +0 -98
  67. package/dist/components/Carousel/CarouselBase.d.ts.map +0 -1
  68. package/dist/components/Carousel/CarouselBase.js +0 -144
  69. package/dist/components/Checkbox/Checkbox.d.ts +0 -27
  70. package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
  71. package/dist/components/Checkbox/Checkbox.js +0 -30
  72. package/dist/components/Checkbox/CheckboxBase.d.ts +0 -40
  73. package/dist/components/Checkbox/CheckboxBase.d.ts.map +0 -1
  74. package/dist/components/Checkbox/CheckboxBase.js +0 -57
  75. package/dist/components/Checkbox/CheckboxGroup.d.ts +0 -22
  76. package/dist/components/Checkbox/CheckboxGroup.d.ts.map +0 -1
  77. package/dist/components/Checkbox/CheckboxGroup.js +0 -13
  78. package/dist/components/Checkbox/FormCheckbox.d.ts +0 -14
  79. package/dist/components/Checkbox/FormCheckbox.d.ts.map +0 -1
  80. package/dist/components/Checkbox/FormCheckbox.js +0 -9
  81. package/dist/components/Checkbox/FormCheckboxGroup.d.ts +0 -13
  82. package/dist/components/Checkbox/FormCheckboxGroup.d.ts.map +0 -1
  83. package/dist/components/Checkbox/FormCheckboxGroup.js +0 -9
  84. package/dist/components/DataCalendar/DataCalendar.d.ts +0 -12
  85. package/dist/components/DataCalendar/DataCalendar.d.ts.map +0 -1
  86. package/dist/components/DataCalendar/DataCalendar.js +0 -13
  87. package/dist/components/DataCalendar/DataCalendarBase.d.ts +0 -45
  88. package/dist/components/DataCalendar/DataCalendarBase.d.ts.map +0 -1
  89. package/dist/components/DataCalendar/DataCalendarBase.js +0 -57
  90. package/dist/components/DatePicker/DatePicker.d.ts +0 -34
  91. package/dist/components/DatePicker/DatePicker.d.ts.map +0 -1
  92. package/dist/components/DatePicker/DatePicker.js +0 -44
  93. package/dist/components/DatePicker/FormDatePicker.d.ts +0 -12
  94. package/dist/components/DatePicker/FormDatePicker.d.ts.map +0 -1
  95. package/dist/components/DatePicker/FormDatePicker.js +0 -12
  96. package/dist/components/DateRangePicker/DateRangePicker.d.ts +0 -49
  97. package/dist/components/DateRangePicker/DateRangePicker.d.ts.map +0 -1
  98. package/dist/components/DateRangePicker/DateRangePicker.js +0 -197
  99. package/dist/components/DateRangePicker/FormDateRangePicker.d.ts +0 -12
  100. package/dist/components/DateRangePicker/FormDateRangePicker.d.ts.map +0 -1
  101. package/dist/components/DateRangePicker/FormDateRangePicker.js +0 -10
  102. package/dist/components/Divider/Divider.d.ts +0 -9
  103. package/dist/components/Divider/Divider.d.ts.map +0 -1
  104. package/dist/components/Divider/Divider.js +0 -11
  105. package/dist/components/Divider/DividerBase.d.ts +0 -9
  106. package/dist/components/Divider/DividerBase.d.ts.map +0 -1
  107. package/dist/components/Divider/DividerBase.js +0 -9
  108. package/dist/components/Drawer/Drawer.d.ts +0 -51
  109. package/dist/components/Drawer/Drawer.d.ts.map +0 -1
  110. package/dist/components/Drawer/Drawer.js +0 -30
  111. package/dist/components/Drawer/DrawerBase.d.ts +0 -52
  112. package/dist/components/Drawer/DrawerBase.d.ts.map +0 -1
  113. package/dist/components/Drawer/DrawerBase.js +0 -38
  114. package/dist/components/Editor/Editor.d.ts +0 -12
  115. package/dist/components/Editor/Editor.d.ts.map +0 -1
  116. package/dist/components/Editor/Editor.js +0 -162
  117. package/dist/components/Editor/EditorBase.d.ts +0 -52
  118. package/dist/components/Editor/EditorBase.d.ts.map +0 -1
  119. package/dist/components/Editor/EditorBase.js +0 -89
  120. package/dist/components/Editor/Viewer.d.ts +0 -7
  121. package/dist/components/Editor/Viewer.d.ts.map +0 -1
  122. package/dist/components/Editor/Viewer.js +0 -9
  123. package/dist/components/Editor/extensions.d.ts +0 -6
  124. package/dist/components/Editor/extensions.d.ts.map +0 -1
  125. package/dist/components/Editor/extensions.js +0 -38
  126. package/dist/components/FileUpload/FileUploadBase.d.ts +0 -50
  127. package/dist/components/FileUpload/FileUploadBase.d.ts.map +0 -1
  128. package/dist/components/FileUpload/FileUploadBase.js +0 -102
  129. package/dist/components/Input/FormInput.d.ts +0 -15
  130. package/dist/components/Input/FormInput.d.ts.map +0 -1
  131. package/dist/components/Input/FormInput.js +0 -19
  132. package/dist/components/Input/Input.d.ts +0 -24
  133. package/dist/components/Input/Input.d.ts.map +0 -1
  134. package/dist/components/Input/Input.js +0 -71
  135. package/dist/components/Input/InputBase.d.ts +0 -22
  136. package/dist/components/Input/InputBase.d.ts.map +0 -1
  137. package/dist/components/Input/InputBase.js +0 -17
  138. package/dist/components/LNB/LNBBase.d.ts +0 -82
  139. package/dist/components/LNB/LNBBase.d.ts.map +0 -1
  140. package/dist/components/LNB/LNBBase.js +0 -108
  141. package/dist/components/LoadingDots/LoadingDots.d.ts +0 -8
  142. package/dist/components/LoadingDots/LoadingDots.d.ts.map +0 -1
  143. package/dist/components/LoadingDots/LoadingDots.js +0 -29
  144. package/dist/components/MenuBar/MenuBar.d.ts +0 -21
  145. package/dist/components/MenuBar/MenuBar.d.ts.map +0 -1
  146. package/dist/components/MenuBar/MenuBar.js +0 -33
  147. package/dist/components/MenuBar/MenuBarBase.d.ts +0 -43
  148. package/dist/components/MenuBar/MenuBarBase.d.ts.map +0 -1
  149. package/dist/components/MenuBar/MenuBarBase.js +0 -69
  150. package/dist/components/Modal/Modal.d.ts +0 -51
  151. package/dist/components/Modal/Modal.d.ts.map +0 -1
  152. package/dist/components/Modal/Modal.js +0 -72
  153. package/dist/components/Modal/ModalBase.d.ts +0 -42
  154. package/dist/components/Modal/ModalBase.d.ts.map +0 -1
  155. package/dist/components/Modal/ModalBase.js +0 -30
  156. package/dist/components/Modal/openModal.d.ts +0 -24
  157. package/dist/components/Modal/openModal.d.ts.map +0 -1
  158. package/dist/components/Modal/openModal.js +0 -52
  159. package/dist/components/OTPInput/OTPInput.d.ts +0 -46
  160. package/dist/components/OTPInput/OTPInput.d.ts.map +0 -1
  161. package/dist/components/OTPInput/OTPInput.js +0 -87
  162. package/dist/components/Pagination/Pagination.d.ts +0 -12
  163. package/dist/components/Pagination/Pagination.d.ts.map +0 -1
  164. package/dist/components/Pagination/Pagination.js +0 -5
  165. package/dist/components/Pagination/PaginationBase.d.ts +0 -36
  166. package/dist/components/Pagination/PaginationBase.d.ts.map +0 -1
  167. package/dist/components/Pagination/PaginationBase.js +0 -44
  168. package/dist/components/Pagination/paginationUtils.d.ts +0 -2
  169. package/dist/components/Pagination/paginationUtils.d.ts.map +0 -1
  170. package/dist/components/Pagination/paginationUtils.js +0 -18
  171. package/dist/components/Popover/Popover.d.ts +0 -42
  172. package/dist/components/Popover/Popover.d.ts.map +0 -1
  173. package/dist/components/Popover/Popover.js +0 -31
  174. package/dist/components/Popover/PopoverBase.d.ts +0 -31
  175. package/dist/components/Popover/PopoverBase.d.ts.map +0 -1
  176. package/dist/components/Popover/PopoverBase.js +0 -18
  177. package/dist/components/Radio/FormRadioGroup.d.ts +0 -13
  178. package/dist/components/Radio/FormRadioGroup.d.ts.map +0 -1
  179. package/dist/components/Radio/FormRadioGroup.js +0 -9
  180. package/dist/components/Radio/Radio.d.ts +0 -24
  181. package/dist/components/Radio/Radio.d.ts.map +0 -1
  182. package/dist/components/Radio/Radio.js +0 -39
  183. package/dist/components/Radio/RadioBase.d.ts +0 -38
  184. package/dist/components/Radio/RadioBase.d.ts.map +0 -1
  185. package/dist/components/Radio/RadioBase.js +0 -46
  186. package/dist/components/Radio/RadioGroup.d.ts +0 -22
  187. package/dist/components/Radio/RadioGroup.d.ts.map +0 -1
  188. package/dist/components/Radio/RadioGroup.js +0 -7
  189. package/dist/components/ScrollArea/ScrollArea.d.ts +0 -15
  190. package/dist/components/ScrollArea/ScrollArea.d.ts.map +0 -1
  191. package/dist/components/ScrollArea/ScrollArea.js +0 -10
  192. package/dist/components/Select/FormMultiSelect.d.ts +0 -13
  193. package/dist/components/Select/FormMultiSelect.d.ts.map +0 -1
  194. package/dist/components/Select/FormMultiSelect.js +0 -14
  195. package/dist/components/Select/FormSelect.d.ts +0 -13
  196. package/dist/components/Select/FormSelect.d.ts.map +0 -1
  197. package/dist/components/Select/FormSelect.js +0 -10
  198. package/dist/components/Select/MultiSelect.d.ts +0 -31
  199. package/dist/components/Select/MultiSelect.d.ts.map +0 -1
  200. package/dist/components/Select/MultiSelect.js +0 -59
  201. package/dist/components/Select/Select.d.ts +0 -41
  202. package/dist/components/Select/Select.d.ts.map +0 -1
  203. package/dist/components/Select/Select.js +0 -55
  204. package/dist/components/Select/SelectBase.d.ts +0 -59
  205. package/dist/components/Select/SelectBase.d.ts.map +0 -1
  206. package/dist/components/Select/SelectBase.js +0 -211
  207. package/dist/components/Skeleton/Skeleton.d.ts +0 -10
  208. package/dist/components/Skeleton/Skeleton.d.ts.map +0 -1
  209. package/dist/components/Skeleton/Skeleton.js +0 -8
  210. package/dist/components/Slider/Slider.d.ts +0 -23
  211. package/dist/components/Slider/Slider.d.ts.map +0 -1
  212. package/dist/components/Slider/Slider.js +0 -195
  213. package/dist/components/Spinner/Spinner.d.ts +0 -25
  214. package/dist/components/Spinner/Spinner.d.ts.map +0 -1
  215. package/dist/components/Spinner/Spinner.js +0 -20
  216. package/dist/components/Table/Table.d.ts +0 -34
  217. package/dist/components/Table/Table.d.ts.map +0 -1
  218. package/dist/components/Table/Table.js +0 -29
  219. package/dist/components/Table/TableBase.d.ts +0 -37
  220. package/dist/components/Table/TableBase.d.ts.map +0 -1
  221. package/dist/components/Table/TableBase.js +0 -39
  222. package/dist/components/Table/TableField.d.ts +0 -64
  223. package/dist/components/Table/TableField.d.ts.map +0 -1
  224. package/dist/components/Table/TableField.js +0 -87
  225. package/dist/components/Table/TanstackTable.d.ts +0 -23
  226. package/dist/components/Table/TanstackTable.d.ts.map +0 -1
  227. package/dist/components/Table/TanstackTable.js +0 -35
  228. package/dist/components/TimePicker/FormTimePicker.d.ts +0 -12
  229. package/dist/components/TimePicker/FormTimePicker.d.ts.map +0 -1
  230. package/dist/components/TimePicker/FormTimePicker.js +0 -12
  231. package/dist/components/TimePicker/TimePicker.d.ts +0 -27
  232. package/dist/components/TimePicker/TimePicker.d.ts.map +0 -1
  233. package/dist/components/TimePicker/TimePicker.js +0 -120
  234. package/dist/components/Toast/Toast.d.ts +0 -18
  235. package/dist/components/Toast/Toast.d.ts.map +0 -1
  236. package/dist/components/Toast/Toast.js +0 -42
  237. package/dist/components/Toast/Toaster.d.ts +0 -7
  238. package/dist/components/Toast/Toaster.d.ts.map +0 -1
  239. package/dist/components/Toast/Toaster.js +0 -7
  240. package/dist/components/ToggleButton/FormToggleButton.d.ts +0 -12
  241. package/dist/components/ToggleButton/FormToggleButton.d.ts.map +0 -1
  242. package/dist/components/ToggleButton/FormToggleButton.js +0 -9
  243. package/dist/components/ToggleButton/ToggleButton.d.ts +0 -31
  244. package/dist/components/ToggleButton/ToggleButton.d.ts.map +0 -1
  245. package/dist/components/ToggleButton/ToggleButton.js +0 -42
  246. package/dist/components/ToggleButton/ToggleButtonBase.d.ts +0 -41
  247. package/dist/components/ToggleButton/ToggleButtonBase.d.ts.map +0 -1
  248. package/dist/components/ToggleButton/ToggleButtonBase.js +0 -59
  249. package/dist/components/Tooltip/Tooltip.d.ts +0 -18
  250. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  251. package/dist/components/Tooltip/Tooltip.js +0 -13
  252. package/dist/components/Tooltip/TooltipBase.d.ts +0 -39
  253. package/dist/components/Tooltip/TooltipBase.d.ts.map +0 -1
  254. package/dist/components/Tooltip/TooltipBase.js +0 -46
@@ -0,0 +1,171 @@
1
+ @theme {
2
+ --font-pretendard: 'var(--font-pretendard)', sans-serif;
3
+
4
+ /* typography */
5
+ --text-display10: 10px;
6
+ --leading-display10: 14px;
7
+ --tracking-display10: -1px;
8
+
9
+ --text-display12: 12px;
10
+ --leading-display12: 16px;
11
+ --tracking-display12: -1px;
12
+
13
+ --text-display14: 14px;
14
+ --leading-display14: 18px;
15
+ --tracking-display14: -1px;
16
+
17
+ --text-display16: 16px;
18
+ --leading-display16: 20px;
19
+ --tracking-display16: -1px;
20
+
21
+ --text-display18: 18px;
22
+ --leading-display18: 22px;
23
+ --tracking-display18: -1px;
24
+
25
+ --text-display20: 20px;
26
+ --leading-display20: 24px;
27
+ --tracking-display20: -1px;
28
+
29
+ --text-display24: 24px;
30
+ --leading-display24: 28px;
31
+ --tracking-display24: -1px;
32
+
33
+ --text-display28: 28px;
34
+ --leading-display28: 32px;
35
+ --tracking-display28: -1px;
36
+
37
+ --text-display30: 30px;
38
+ --leading-display30: 36px;
39
+ --tracking-display30: -1px;
40
+
41
+ --text-display32: 32px;
42
+ --leading-display32: 38px;
43
+ --tracking-display32: -1px;
44
+
45
+ --text-display36: 36px;
46
+ --leading-display36: 42px;
47
+ --tracking-display36: -1px;
48
+
49
+ --text-display40: 40px;
50
+ --leading-display40: 48px;
51
+ --tracking-display40: -1px;
52
+
53
+ --text-display64: 64px;
54
+ --leading-display64: 72px;
55
+ --tracking-display64: -1px;
56
+
57
+ --text-display80: 80px;
58
+ --leading-display80: 88px;
59
+ --tracking-display80: -1px;
60
+
61
+ --text-display120: 120px;
62
+ --leading-display120: 128px;
63
+ --tracking-display120: -1px;
64
+
65
+ /* font-weight */
66
+ --font-light: 300;
67
+ --font-regular: 400;
68
+ --font-medium: 500;
69
+ --font-semibold: 550;
70
+ --font-bold: 600;
71
+ --font-extrabold: 700;
72
+ --font-black: 900;
73
+ }
74
+
75
+ @utility display10 {
76
+ font-size: var(--text-display10);
77
+ line-height: var(--leading-display10);
78
+ letter-spacing: var(--tracking-display10);
79
+ }
80
+ @utility display12 {
81
+ font-size: var(--text-display12);
82
+ line-height: var(--leading-display12);
83
+ letter-spacing: var(--tracking-display12);
84
+ }
85
+ @utility display14 {
86
+ font-size: var(--text-display14);
87
+ line-height: var(--leading-display14);
88
+ letter-spacing: var(--tracking-display14);
89
+ }
90
+ @utility display16 {
91
+ font-size: var(--text-display16);
92
+ line-height: var(--leading-display16);
93
+ letter-spacing: var(--tracking-display16);
94
+ }
95
+ @utility display18 {
96
+ font-size: var(--text-display18);
97
+ line-height: var(--leading-display18);
98
+ letter-spacing: var(--tracking-display18);
99
+ }
100
+ @utility display20 {
101
+ font-size: var(--text-display20);
102
+ line-height: var(--leading-display20);
103
+ letter-spacing: var(--tracking-display20);
104
+ }
105
+ @utility display24 {
106
+ font-size: var(--text-display24);
107
+ line-height: var(--leading-display24);
108
+ letter-spacing: var(--tracking-display24);
109
+ }
110
+ @utility display28 {
111
+ font-size: var(--text-display28);
112
+ line-height: var(--leading-display28);
113
+ letter-spacing: var(--tracking-display28);
114
+ }
115
+ @utility display30 {
116
+ font-size: var(--text-display30);
117
+ line-height: var(--leading-display30);
118
+ letter-spacing: var(--tracking-display30);
119
+ }
120
+ @utility display32 {
121
+ font-size: var(--text-display32);
122
+ line-height: var(--leading-display32);
123
+ letter-spacing: var(--tracking-display32);
124
+ }
125
+ @utility display36 {
126
+ font-size: var(--text-display36);
127
+ line-height: var(--leading-display36);
128
+ letter-spacing: var(--tracking-display36);
129
+ }
130
+ @utility display40 {
131
+ font-size: var(--text-display40);
132
+ line-height: var(--leading-display40);
133
+ letter-spacing: var(--tracking-display40);
134
+ }
135
+ @utility display64 {
136
+ font-size: var(--text-display64);
137
+ line-height: var(--leading-display64);
138
+ letter-spacing: var(--tracking-display64);
139
+ }
140
+ @utility display80 {
141
+ font-size: var(--text-display80);
142
+ line-height: var(--leading-display80);
143
+ letter-spacing: var(--tracking-display80);
144
+ }
145
+ @utility display120 {
146
+ font-size: var(--text-display120);
147
+ line-height: var(--leading-display120);
148
+ letter-spacing: var(--tracking-display120);
149
+ }
150
+
151
+ @utility light {
152
+ font-weight: var(--font-light);
153
+ }
154
+ @utility regular {
155
+ font-weight: var(--font-regular);
156
+ }
157
+ @utility medium {
158
+ font-weight: var(--font-medium);
159
+ }
160
+ @utility semibold {
161
+ font-weight: var(--font-semibold);
162
+ }
163
+ @utility bold {
164
+ font-weight: var(--font-bold);
165
+ }
166
+ @utility extrabold {
167
+ font-weight: var(--font-extrabold);
168
+ }
169
+ @utility black {
170
+ font-weight: var(--font-black);
171
+ }
package/src/theme.css ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * theme.css — 소비처(ledu-mono 등)의 Tailwind 컴파일러가 직접 처리하는
3
+ * raw @theme/@utility 진입점.
4
+ *
5
+ * 컴파일된 dist/index.css(styles.css)와 달리 토큰·유틸 정의가 원문 그대로 남아있어,
6
+ * 소비처가 자기 코드에 대해 `display40`, `bg-mono600` 같은 클래스를 on-demand로 생성할 수 있다.
7
+ *
8
+ * 주의:
9
+ * - `@import 'tailwindcss'`를 넣지 않는다. 소비처가 이미 import하므로 중복되면 충돌난다.
10
+ * - 컴포넌트 스타일(components/*, slider/carousel 등)은 포함하지 않는다 — styles.css가 담당.
11
+ */
12
+ @import './styles/color.css';
13
+ @import './styles/typography.css';
14
+ @import './styles/text-utils.css';
15
+ @import './styles/radius.css';
16
+ @import './styles/spacing.css';
17
+ @import './styles/layout.css';
18
+ @import './styles/gradient.css';
19
+ @import './styles/motion.css';
@@ -1,11 +0,0 @@
1
- type AvatarSize = 'sm' | 'md' | 'lg';
2
- export interface AvatarProps {
3
- src?: string | null;
4
- alt?: string;
5
- size?: AvatarSize;
6
- className?: string;
7
- style?: React.CSSProperties;
8
- }
9
- declare const Avatar: ({ src, alt, size, className, style, }: AvatarProps) => import("react/jsx-runtime").JSX.Element;
10
- export default Avatar;
11
- //# sourceMappingURL=Avatar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":"AAKA,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAqBrC,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,MAAM,GAAI,uCAMb,WAAW,4CAeb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,24 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { UserRound } from 'lucide-react';
3
- import AvatarBase from './AvatarBase.js';
4
- import cn from '../../utils/cn.js';
5
- const SIZE_MAP = {
6
- sm: 'w-8 h-8',
7
- md: 'w-12 h-12',
8
- lg: 'w-16 h-16',
9
- };
10
- const IMAGE_SIZE_MAP = {
11
- sm: 32,
12
- md: 48,
13
- lg: 64,
14
- };
15
- const ICON_SIZE_MAP = {
16
- sm: 24,
17
- md: 32,
18
- lg: 40,
19
- };
20
- const Avatar = ({ src, alt = 'avatar', size = 'sm', className, style, }) => {
21
- const px = IMAGE_SIZE_MAP[size];
22
- return (_jsxs(AvatarBase.Root, { src: src, style: style, className: cn(SIZE_MAP[size], className), children: [_jsx(AvatarBase.Image, { alt: alt, width: px, height: px }), _jsx(AvatarBase.Fallback, { className: "bg-mono100", children: _jsx(UserRound, { size: ICON_SIZE_MAP[size], className: "text-mono400" }) })] }));
23
- };
24
- export default Avatar;
@@ -1,32 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- interface AvatarContextType {
3
- src?: string | null;
4
- status: 'idle' | 'loading' | 'loaded' | 'error';
5
- setStatus: (status: 'idle' | 'loading' | 'loaded' | 'error') => void;
6
- }
7
- export declare const useAvatarContext: () => AvatarContextType;
8
- interface RootProps {
9
- src?: string | null;
10
- className?: string;
11
- style?: React.CSSProperties;
12
- children?: ReactNode;
13
- }
14
- interface ImageProps {
15
- alt?: string;
16
- width?: number;
17
- height?: number;
18
- className?: string;
19
- }
20
- interface FallbackProps {
21
- className?: string;
22
- children?: ReactNode;
23
- /** 이미지 로드 지연 처리용 딜레이(ms). 기본값 0 (즉시 표시) */
24
- delayMs?: number;
25
- }
26
- export declare const AvatarBase: {
27
- Root: ({ src, className, style, children }: RootProps) => import("react/jsx-runtime").JSX.Element;
28
- Image: ({ alt, width, height, className }: ImageProps) => import("react/jsx-runtime").JSX.Element | null;
29
- Fallback: ({ className, children, delayMs }: FallbackProps) => import("react/jsx-runtime").JSX.Element | null;
30
- };
31
- export default AvatarBase;
32
- //# sourceMappingURL=AvatarBase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AvatarBase.d.ts","sourceRoot":"","sources":["../../../src/components/Avatar/AvatarBase.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAIf,UAAU,iBAAiB;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAChD,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,KAAK,IAAI,CAAC;CACtE;AAID,eAAO,MAAM,gBAAgB,yBAO5B,CAAC;AAGF,UAAU,SAAS;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAiCD,UAAU,UAAU;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAqBD,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA6BD,eAAO,MAAM,UAAU;gDA3F4B,SAAS;+CAsCC,UAAU;iDA0Bf,aAAa;CA+BpE,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,49 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { createContext, useContext, useState, useEffect, } from 'react';
4
- import cn from '../../utils/cn.js';
5
- const AvatarContext = createContext(null);
6
- export const useAvatarContext = () => {
7
- const ctx = useContext(AvatarContext);
8
- if (!ctx)
9
- throw new Error('AvatarBase 하위 컴포넌트는 Root 내부에서 사용해야 합니다.');
10
- return ctx;
11
- };
12
- const Root = ({ src, className, style, children }) => {
13
- const [status, setStatus] = useState(src ? 'loading' : 'error');
14
- useEffect(() => {
15
- setStatus(src ? 'loading' : 'error');
16
- }, [src]);
17
- return (_jsx(AvatarContext, { value: {
18
- src,
19
- status,
20
- setStatus,
21
- }, children: _jsx("span", { style: style, className: cn('relative flex shrink-0 overflow-hidden rounded-full', className), children: children }) }));
22
- };
23
- const Image = ({ alt = 'avatar', width, height, className }) => {
24
- const { src, status, setStatus } = useAvatarContext();
25
- if (!src || status === 'error')
26
- return null;
27
- return (_jsx("img", { src: src, alt: alt, width: width, height: height, onLoad: () => setStatus('loaded'), onError: () => setStatus('error'), className: cn('aspect-square h-full w-full object-cover', className) }));
28
- };
29
- const Fallback = ({ className, children, delayMs = 0 }) => {
30
- const { status } = useAvatarContext();
31
- const [show, setShow] = useState(delayMs === 0);
32
- useEffect(() => {
33
- if (delayMs === 0) {
34
- setShow(true);
35
- return;
36
- }
37
- const timer = setTimeout(() => setShow(true), delayMs);
38
- return () => clearTimeout(timer);
39
- }, [delayMs]);
40
- if (status === 'loaded' || !show)
41
- return null;
42
- return (_jsx("span", { className: cn('flex h-full w-full items-center justify-center rounded-full', className), children: children }));
43
- };
44
- export const AvatarBase = {
45
- Root,
46
- Image,
47
- Fallback,
48
- };
49
- export default AvatarBase;
@@ -1,25 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- import { type IconName } from '../Icon/LucideIcon.js';
3
- type BadgeSize = 'xsmall' | 'small' | 'medium' | 'large';
4
- type BadgeColor = 'orange' | 'fillOrange' | 'red' | 'fillRed' | 'green' | 'fillGreen' | 'blue' | 'fillBlue' | 'yellow' | 'fillYellow' | 'gray' | 'fillGray';
5
- export interface BadgeProps<T extends string> {
6
- /** 뱃지 유형 키 (colorsMap의 키와 매칭) */
7
- type: T;
8
- /** 뱃지 사이즈 */
9
- size?: BadgeSize;
10
- /** type별 색상 매핑 객체 (프리셋 BadgeColor 또는 커스텀 Tailwind 클래스) */
11
- colorsMap: Record<T, BadgeColor | string>;
12
- /** 뱃지 내용 */
13
- children?: ReactNode;
14
- /** 왼쪽 아이콘 (IconName 또는 ReactNode) */
15
- leftIcon?: IconName | ReactNode;
16
- /** 오른쪽 아이콘 (IconName 또는 ReactNode) */
17
- rightIcon?: IconName | ReactNode;
18
- /** 추가 CSS 클래스 */
19
- className?: string;
20
- /** 인라인 스타일 */
21
- style?: React.CSSProperties;
22
- }
23
- declare const Badge: <T extends string>({ type, size, colorsMap, children, leftIcon, rightIcon, className, style, }: BadgeProps<T>) => import("react/jsx-runtime").JSX.Element;
24
- export default Badge;
25
- //# sourceMappingURL=Badge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAInD,KAAK,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACzD,KAAK,UAAU,GACX,QAAQ,GACR,YAAY,GACZ,KAAK,GACL,SAAS,GACT,OAAO,GACP,WAAW,GACX,MAAM,GACN,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,MAAM,GACN,UAAU,CAAC;AAEf,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM;IAC1C,iCAAiC;IACjC,IAAI,EAAE,CAAC,CAAC;IACR,aAAa;IACb,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC;IAC1C,YAAY;IACZ,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,sCAAsC;IACtC,SAAS,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AA+BD,QAAA,MAAM,KAAK,GAAI,CAAC,SAAS,MAAM,EAAE,6EAS9B,UAAU,CAAC,CAAC,CAAC,4CAmBf,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -1,36 +0,0 @@
1
- import { jsxs as _jsxs } from "react/jsx-runtime";
2
- import BadgeBase from './BadgeBase.js';
3
- import { renderIcon } from '../../utils/renderIcon.js';
4
- import cn from '../../utils/cn.js';
5
- const colorClasses = {
6
- orange: 'bg-tintOrange text-orange500',
7
- fillOrange: 'bg-orange400 text-white',
8
- green: 'bg-tintGreen text-green700',
9
- fillGreen: 'bg-success600 text-white',
10
- red: 'bg-tintRed text-red200',
11
- fillRed: 'bg-danger600 text-white',
12
- blue: 'bg-tintBlue text-blue200',
13
- fillBlue: 'bg-accept600 text-white',
14
- yellow: 'bg-tintYellow text-yellow700',
15
- fillYellow: 'bg-warning600 text-white',
16
- gray: 'bg-mono200 text-neutral800',
17
- fillGray: 'bg-neutral200 text-white',
18
- };
19
- const sizeClasses = {
20
- xsmall: 'badge-xs',
21
- small: 'badge-sm',
22
- medium: 'badge-md',
23
- large: 'badge-lg',
24
- };
25
- const iconSizes = {
26
- xsmall: 'icon-xs',
27
- small: 'icon-sm',
28
- medium: 'icon-md',
29
- large: 'icon-lg',
30
- };
31
- const Badge = ({ type, size = 'small', colorsMap, children, leftIcon, rightIcon, className, style, }) => {
32
- const color = colorsMap[type];
33
- const iconSize = iconSizes[size];
34
- return (_jsxs(BadgeBase.Root, { className: cn('w-auto text-center whitespace-nowrap border border-transparent', colorClasses[color] ?? color, sizeClasses[size], className), style: style, children: [renderIcon(leftIcon, iconSize), children, renderIcon(rightIcon, iconSize)] }));
35
- };
36
- export default Badge;
@@ -1,10 +0,0 @@
1
- import { type HTMLAttributes, type ReactNode, type Ref } from 'react';
2
- interface RootProps extends HTMLAttributes<HTMLSpanElement> {
3
- children?: ReactNode;
4
- ref?: Ref<HTMLSpanElement>;
5
- }
6
- export declare const BadgeBase: {
7
- Root: ({ className, children, ref, ...props }: RootProps) => import("react/jsx-runtime").JSX.Element;
8
- };
9
- export default BadgeBase;
10
- //# sourceMappingURL=BadgeBase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BadgeBase.d.ts","sourceRoot":"","sources":["../../../src/components/Badge/BadgeBase.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAItE,UAAU,SAAU,SAAQ,cAAc,CAAC,eAAe,CAAC;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;CAC5B;AAcD,eAAO,MAAM,SAAS;mDAZgC,SAAS;CAc9D,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -1,9 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import cn from '../../utils/cn.js';
3
- const Root = ({ className, children, ref, ...props }) => {
4
- return (_jsx("span", { ref: ref, className: cn('inline-flex items-center justify-center', className), ...props, children: children }));
5
- };
6
- export const BadgeBase = {
7
- Root,
8
- };
9
- export default BadgeBase;
@@ -1,17 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- import { type ButtonSize } from '../Button/Button.js';
3
- import { type IconName } from '../Icon/LucideIcon.js';
4
- export interface BreadCrumbItem {
5
- label: string;
6
- href?: string;
7
- icon?: IconName | ReactNode;
8
- }
9
- export interface BreadCrumbProps {
10
- items: BreadCrumbItem[];
11
- size?: ButtonSize;
12
- separator?: ReactNode;
13
- className?: string;
14
- }
15
- declare const BreadCrumb: ({ items, size, separator, className, }: BreadCrumbProps) => import("react/jsx-runtime").JSX.Element;
16
- export default BreadCrumb;
17
- //# sourceMappingURL=BreadCrumb.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadCrumb.d.ts","sourceRoot":"","sources":["../../../src/components/BreadCrumb/BreadCrumb.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAe,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAInD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6BD,QAAA,MAAM,UAAU,GAAI,wCAKjB,eAAe,4CAiDjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,37 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
- import * as React from 'react';
3
- import BreadCrumbBase from './BreadCrumbBase.js';
4
- import Button from '../Button/Button.js';
5
- import { renderIcon } from '../../utils/renderIcon.js';
6
- import cn from '../../utils/cn.js';
7
- const textSizeClasses = {
8
- '2xsmall': 'bread-crumb-2xs',
9
- xsmall: 'bread-crumb-xs',
10
- small: 'bread-crumb-sm',
11
- medium: 'bread-crumb-md',
12
- large: 'bread-crumb-lg',
13
- xlarge: 'bread-crumb-xl',
14
- };
15
- const iconSizeClasses = {
16
- '2xsmall': 'icon-2xs',
17
- xsmall: 'icon-xs',
18
- small: 'icon-sm',
19
- medium: 'icon-md',
20
- large: 'icon-lg',
21
- xlarge: 'icon-xl',
22
- };
23
- const separatorIconSizeClasses = {
24
- '2xsmall': '[&>svg]:icon-2xs',
25
- xsmall: '[&>svg]:icon-xs',
26
- small: '[&>svg]:icon-sm',
27
- medium: '[&>svg]:icon-md',
28
- large: '[&>svg]:icon-lg',
29
- xlarge: '[&>svg]:icon-xl',
30
- };
31
- const BreadCrumb = ({ items, size = 'small', separator, className, }) => {
32
- return (_jsx(BreadCrumbBase.Root, { children: _jsx(BreadCrumbBase.List, { className: className, children: items.map((item, index) => {
33
- const isCurrent = index === items.length - 1;
34
- return (_jsxs(React.Fragment, { children: [_jsx(BreadCrumbBase.Item, { className: "gap-xs", children: !item.href ? (_jsxs("span", { "aria-current": "page", className: cn(textSizeClasses[size], 'flex items-center text-neutral700 gap-0.5'), children: [renderIcon(item.icon, iconSizeClasses[size]), item.label] })) : (_jsx(Button, { as: "a", href: item.href, variant: "ghost", color: "neutral", size: size, leftIcon: item.icon, className: "h-auto! px-0! min-w-0 hover:bg-transparent active:bg-transparent text-neutral700 regular flex flex-row gap-0.5", children: item.label })) }), !isCurrent && (_jsx(BreadCrumbBase.Separator, { className: separatorIconSizeClasses[size], children: separator }))] }, `${item.label}-${index}`));
35
- }) }) }));
36
- };
37
- export default BreadCrumb;
@@ -1,9 +0,0 @@
1
- import * as React from 'react';
2
- export declare const BreadCrumb: {
3
- Root: ({ className, ...props }: React.ComponentProps<"nav">) => import("react/jsx-runtime").JSX.Element;
4
- List: ({ className, ...props }: React.ComponentProps<"ol">) => import("react/jsx-runtime").JSX.Element;
5
- Item: ({ className, children, ...props }: React.ComponentProps<"li">) => import("react/jsx-runtime").JSX.Element;
6
- Separator: ({ children, className, ...props }: React.ComponentProps<"li">) => import("react/jsx-runtime").JSX.Element;
7
- };
8
- export default BreadCrumb;
9
- //# sourceMappingURL=BreadCrumbBase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadCrumbBase.d.ts","sourceRoot":"","sources":["../../../src/components/BreadCrumb/BreadCrumbBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA8C/B,eAAO,MAAM,UAAU;oCA1CgB,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;oCAI3B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;8CAU9D,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;mDAY1B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;CAgB4B,CAAC;AAE1D,eAAe,UAAU,CAAC"}
@@ -1,17 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { ChevronRightIcon } from 'lucide-react';
3
- import cn from '../../utils/cn.js';
4
- const Root = ({ className, ...props }) => {
5
- return _jsx("nav", { "aria-label": "breadcrumb", className: cn(className), ...props });
6
- };
7
- const List = ({ className, ...props }) => {
8
- return (_jsx("ol", { className: cn('flex flex-wrap items-center', className), ...props }));
9
- };
10
- const Item = ({ className, children, ...props }) => {
11
- return (_jsx("li", { className: cn('inline-flex items-center', className), ...props, children: children }));
12
- };
13
- const Separator = ({ children, className, ...props }) => {
14
- return (_jsx("li", { role: "presentation", "aria-hidden": "true", className: cn('inline-flex items-center justify-center text-neutral700 [&>svg]:shrink-0', className), ...props, children: children ?? _jsx(ChevronRightIcon, {}) }));
15
- };
16
- export const BreadCrumb = { Root, List, Item, Separator };
17
- export default BreadCrumb;
@@ -1,26 +0,0 @@
1
- import * as React from 'react';
2
- import { type ElementType } from 'react';
3
- import { PolymorphicComponentProps } from '../../types/polymorphic.js';
4
- import { type IconName } from '../Icon/LucideIcon.js';
5
- type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'link';
6
- type ButtonColor = 'neutral' | 'point' | 'danger';
7
- export type ButtonSize = '2xsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
8
- type ButtonShape = 'default' | 'capsule';
9
- type ButtonAlign = 'left' | 'center' | 'right';
10
- type _ButtonProps = {
11
- variant?: ButtonVariant;
12
- color?: ButtonColor;
13
- size?: ButtonSize;
14
- shape?: ButtonShape;
15
- align?: ButtonAlign;
16
- loading?: boolean;
17
- block?: boolean;
18
- leftIcon?: IconName | React.ReactNode;
19
- rightIcon?: IconName | React.ReactNode;
20
- compact?: boolean;
21
- };
22
- export type ButtonProps<T extends ElementType> = PolymorphicComponentProps<T, _ButtonProps>;
23
- type ButtonComponent = <T extends React.ElementType = 'button'>(props: ButtonProps<T>) => React.ReactElement | null;
24
- declare const Button: ButtonComponent;
25
- export default Button;
26
- //# sourceMappingURL=Button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../src/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQnD,KAAK,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAC5D,KAAK,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,OAAO,GACP,QAAQ,CAAC;AACb,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AACzC,KAAK,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAkG/C,KAAK,YAAY,GAAG;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,IAAI,yBAAyB,CACxE,CAAC,EACD,YAAY,CACb,CAAC;AAEF,KAAK,eAAe,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,EAC5D,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAClB,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,QAAA,MAAM,MAAM,EAAE,eAoEb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,102 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import cn from '../../utils/cn.js';
3
- import ButtonBase from './ButtonBase.js';
4
- import { renderIcon } from '../../utils/renderIcon.js';
5
- import ButtonSpinner from './ButtonSpinner.js';
6
- // ── 스타일 매핑 (static) ──
7
- const variantBaseClasses = {
8
- solid: {
9
- neutral: 'bg-neutral800 text-white',
10
- point: 'bg-lb500 text-white',
11
- danger: 'bg-danger500 text-white',
12
- },
13
- outline: {
14
- neutral: 'bg-white outline outline-neutral200',
15
- point: 'bg-white outline outline-lb500 text-lb500',
16
- danger: 'bg-white outline outline-danger500 text-danger500',
17
- },
18
- ghost: {
19
- neutral: 'bg-transparent',
20
- point: 'bg-transparent text-lb500',
21
- danger: 'bg-transparent text-danger500',
22
- },
23
- link: {
24
- neutral: 'bg-transparent underline underline-offset-[4px]',
25
- point: 'bg-transparent text-lb500 underline underline-offset-[4px]',
26
- danger: 'bg-transparent text-danger500 underline underline-offset-[4px]',
27
- },
28
- };
29
- const variantHoverClasses = {
30
- solid: {
31
- neutral: 'hover:bg-neutral900 active:bg-neutral900',
32
- point: 'hover:bg-lb700 active:bg-lb700',
33
- danger: 'hover:bg-danger700 active:bg-danger700',
34
- },
35
- outline: {
36
- neutral: 'hover:bg-mono100 active:bg-mono100',
37
- point: 'hover:bg-accept50 active:bg-accept50',
38
- danger: 'hover:bg-danger50 active:bg-danger50',
39
- },
40
- ghost: {
41
- neutral: 'hover:bg-mono100',
42
- point: 'hover:bg-accept50',
43
- danger: 'hover:bg-danger50',
44
- },
45
- link: {
46
- neutral: 'hover:text-neutral700 active:text-neutral700',
47
- point: 'hover:text-lb700 active:text-lb700',
48
- danger: 'hover:text-danger600 active:text-danger600',
49
- },
50
- };
51
- const variantDisabledClasses = {
52
- solid: 'bg-mono300 text-white',
53
- outline: 'text-mono300 outline outline-neutral100',
54
- ghost: 'text-mono300',
55
- link: 'text-mono300 underline underline-offset-[4px]',
56
- };
57
- const colorFocusClasses = {
58
- neutral: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral800',
59
- point: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-lb500',
60
- danger: 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-danger500',
61
- };
62
- const sizeClasses = {
63
- '2xsmall': 'btn-2xs',
64
- xsmall: 'btn-xs',
65
- small: 'btn-sm',
66
- medium: 'btn-md',
67
- large: 'btn-lg',
68
- xlarge: 'btn-xl',
69
- };
70
- const iconSizeClasses = {
71
- '2xsmall': 'icon-2xs',
72
- xsmall: 'icon-xs',
73
- small: 'icon-sm',
74
- medium: 'icon-md',
75
- large: 'icon-lg',
76
- xlarge: 'icon-xl',
77
- };
78
- const alignClasses = {
79
- left: 'justify-start',
80
- center: 'justify-center',
81
- right: 'justify-end',
82
- };
83
- const shapeClasses = {
84
- default: 'rounded-[5px]',
85
- capsule: 'rounded-full',
86
- };
87
- const Button = ({ as, variant = 'solid', color = 'point', size = 'small', shape = 'default', align = 'center', loading = false, block = false, children, className, leftIcon, rightIcon, compact = false, ref, ...props }) => {
88
- const iconSize = iconSizeClasses[size];
89
- return (_jsxs(ButtonBase.Root, { as: as, ref: ref, className: cn('relative ld-transition', {
90
- [variantBaseClasses[variant][color]]: !props.disabled,
91
- [variantHoverClasses[variant][color]]: !props.disabled && !loading,
92
- [variantDisabledClasses[variant]]: props.disabled,
93
- }, {
94
- [`${colorFocusClasses[color]} focus-visible:ring-offset-2`]: variant === 'solid',
95
- [`${colorFocusClasses[color]} focus-visible:ring-inset`]: variant !== 'solid',
96
- }, {
97
- ['cursor-pointer']: !props.disabled && !loading,
98
- ['cursor-wait']: !props.disabled && loading,
99
- ['cursor-not-allowed']: props.disabled,
100
- }, block && 'w-full', sizeClasses[size], shapeClasses[shape], alignClasses[align], compact && 'px-0 min-w-0 aspect-square', className), ...props, disabled: props.disabled || loading, children: [loading ? (_jsx(ButtonSpinner, { size: size, className: "mobile:absolute mobile:left-1/2 mobile:top-1/2 mobile:-translate-x-1/2 mobile:-translate-y-1/2" })) : (renderIcon(leftIcon, iconSize)), children && (_jsx("span", { className: cn('shrink-0', loading && 'mobile:invisible'), children: children })), renderIcon(rightIcon, iconSize, loading && 'mobile:invisible')] }));
101
- };
102
- export default Button;
@@ -1,5 +0,0 @@
1
- export declare const ButtonBase: {
2
- Root: React.ElementType;
3
- };
4
- export default ButtonBase;
5
- //# sourceMappingURL=ButtonBase.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ButtonBase.d.ts","sourceRoot":"","sources":["../../../src/components/Button/ButtonBase.tsx"],"names":[],"mappings":"AA0BA,eAAO,MAAM,UAAU;UACP,KAAK,CAAC,WAAW;CAChC,CAAC;AAEF,eAAe,UAAU,CAAC"}