@weing-dev/ui-kit-primitive 0.0.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.
Files changed (328) hide show
  1. package/README.md +50 -0
  2. package/eslint.config.js +29 -0
  3. package/index.html +13 -0
  4. package/package.json +75 -0
  5. package/public/static/icon/Add.svg +1 -0
  6. package/public/static/icon/ApprovalInactive.svg +1 -0
  7. package/public/static/icon/ArrowRight.svg +5 -0
  8. package/public/static/icon/Cancle Filled.svg +1 -0
  9. package/public/static/icon/Cancle.svg +1 -0
  10. package/public/static/icon/Cart Filled.svg +1 -0
  11. package/public/static/icon/Cart.svg +1 -0
  12. package/public/static/icon/Check.svg +1 -0
  13. package/public/static/icon/CheckBoxRound.svg +3 -0
  14. package/public/static/icon/Company.svg +1 -0
  15. package/public/static/icon/DragHandle.svg +1 -0
  16. package/public/static/icon/Eco.svg +1 -0
  17. package/public/static/icon/EditSquare.svg +1 -0
  18. package/public/static/icon/Error Filled.svg +1 -0
  19. package/public/static/icon/Error.svg +1 -0
  20. package/public/static/icon/File Upload.svg +1 -0
  21. package/public/static/icon/FilecheckInactive.svg +1 -0
  22. package/public/static/icon/Go Before.svg +1 -0
  23. package/public/static/icon/Go Next.svg +1 -0
  24. package/public/static/icon/Hamburger Menu.svg +1 -0
  25. package/public/static/icon/ImagecheckPlay.svg +4 -0
  26. package/public/static/icon/Kakao Talk.svg +1 -0
  27. package/public/static/icon/Minus.svg +1 -0
  28. package/public/static/icon/Naver Blog.svg +1 -0
  29. package/public/static/icon/Naver.svg +1 -0
  30. package/public/static/icon/OrderApprove.svg +1 -0
  31. package/public/static/icon/OrderInactive.svg +1 -0
  32. package/public/static/icon/OrderPlay.svg +1 -0
  33. package/public/static/icon/PayApprove.svg +1 -0
  34. package/public/static/icon/PayInactive.svg +1 -0
  35. package/public/static/icon/PrintInactive.svg +1 -0
  36. package/public/static/icon/PrintPlay.svg +1 -0
  37. package/public/static/icon/Search.svg +1 -0
  38. package/public/static/icon/ShippingDone.svg +1 -0
  39. package/public/static/icon/Support Agent.svg +1 -0
  40. package/public/static/icon/Task.svg +1 -0
  41. package/public/static/icon/User.svg +1 -0
  42. package/public/static/icon/Warning Filled.svg +1 -0
  43. package/public/static/icon/Warning.svg +1 -0
  44. package/public/static/icon/add_a_photo.svg +3 -0
  45. package/public/static/icon/attach_file.svg +1 -0
  46. package/public/static/icon/check_circle.svg +1 -0
  47. package/public/static/icon/close.svg +1 -0
  48. package/public/static/icon/download.svg +1 -0
  49. package/public/static/icon/expand all.svg +1 -0
  50. package/public/static/icon/expand_less.svg +1 -0
  51. package/public/static/icon/expand_more.svg +1 -0
  52. package/public/static/icon/factory.svg +1 -0
  53. package/public/static/icon/inventory.svg +1 -0
  54. package/public/static/icon/listAll.svg +1 -0
  55. package/public/static/icon/local_shipping.svg +1 -0
  56. package/public/static/icon/logout.svg +1 -0
  57. package/public/static/icon/menu.svg +1 -0
  58. package/public/static/icon/mode_edit.svg +4 -0
  59. package/public/static/icon/more.svg +1 -0
  60. package/public/static/icon/outward.svg +1 -0
  61. package/public/static/icon/personcard.svg +1 -0
  62. package/public/static/icon/product.svg +1 -0
  63. package/public/static/icon/settings.svg +1 -0
  64. package/public/static/icon/swap_vert.svg +3 -0
  65. package/public/static/icon/upload.svg +1 -0
  66. package/public/static/icon/warning_amber.svg +3 -0
  67. package/public/static/image/Thumbnail.png +0 -0
  68. package/public/vite.svg +1 -0
  69. package/public/weing_logo_final.png +0 -0
  70. package/scripts/icons/setIcon.cjs +151 -0
  71. package/scripts/icons/svg-template.cjs +18 -0
  72. package/scripts/icons/svgo-config.json +9 -0
  73. package/scripts/icons/svgr-config.json +16 -0
  74. package/src/@types/color.d.ts +51 -0
  75. package/src/@types/common.d.ts +6 -0
  76. package/src/@types/extends/react.extends.d.ts +7 -0
  77. package/src/@types/quill-image-resize-module-react/index.d.ts +1 -0
  78. package/src/App.css +0 -0
  79. package/src/App.tsx +84 -0
  80. package/src/assets/react.svg +1 -0
  81. package/src/components/Accordion/Accordion.context.tsx +62 -0
  82. package/src/components/Accordion/Accordion.module.scss +163 -0
  83. package/src/components/Accordion/Accordion.tsx +242 -0
  84. package/src/components/Accordion/README.md +408 -0
  85. package/src/components/Accordion/images/as_trigger.gif +0 -0
  86. package/src/components/Accordion/images/closed.png +0 -0
  87. package/src/components/Accordion/images/open.png +0 -0
  88. package/src/components/Accordion/images/thumbnail1.png +0 -0
  89. package/src/components/Accordion/images/thumbnail2.png +0 -0
  90. package/src/components/Accordion/images/thumbnail3.png +0 -0
  91. package/src/components/Avatar/Avatar.module.scss +47 -0
  92. package/src/components/Avatar/Avatar.tsx +230 -0
  93. package/src/components/Avatar/README.md +333 -0
  94. package/src/components/Badge/Badge.module.scss +49 -0
  95. package/src/components/Badge/Badge.tsx +87 -0
  96. package/src/components/Badge/README.md +223 -0
  97. package/src/components/BarCode/BarCode.module.scss +0 -0
  98. package/src/components/BarCode/BarCode.tsx +153 -0
  99. package/src/components/Breadcrumb/Breadcrumb.module.scss +36 -0
  100. package/src/components/Breadcrumb/Breadcrumb.tsx +114 -0
  101. package/src/components/Breadcrumb/README.md +339 -0
  102. package/src/components/Button/Button.colors.tsx +322 -0
  103. package/src/components/Button/Button.context.tsx +47 -0
  104. package/src/components/Button/Button.module.scss +156 -0
  105. package/src/components/Button/Button.tsx +190 -0
  106. package/src/components/Button/Button.type.ts +11 -0
  107. package/src/components/Calendar/Calendar.context.tsx +138 -0
  108. package/src/components/Calendar/Calendar.module.scss +116 -0
  109. package/src/components/Calendar/Calendar.tsx +440 -0
  110. package/src/components/Calendar/dayjs.util.ts +312 -0
  111. package/src/components/Cascader/Cacader.data.ts +1185 -0
  112. package/src/components/Cascader/Cascader.context.tsx +61 -0
  113. package/src/components/Cascader/Cascader.hook.ts +502 -0
  114. package/src/components/Cascader/Cascader.module.scss +143 -0
  115. package/src/components/Cascader/Cascader.tsx +281 -0
  116. package/src/components/Cascader/README.md +735 -0
  117. package/src/components/Chart/Chart.module.scss +0 -0
  118. package/src/components/Chart/Chart.tsx +230 -0
  119. package/src/components/Chart/README.md +85 -0
  120. package/src/components/Chart/images/barChart.png +0 -0
  121. package/src/components/Chips/Chips.colors.tsx +185 -0
  122. package/src/components/Chips/Chips.module.scss +49 -0
  123. package/src/components/Chips/Chips.tsx +78 -0
  124. package/src/components/Comment/Comment.module.scss +14 -0
  125. package/src/components/Comment/Comment.tsx +105 -0
  126. package/src/components/Dialog/Dialog.module.scss +0 -0
  127. package/src/components/Dialog/Dialog.tsx +12 -0
  128. package/src/components/Divider/Divider.module.scss +12 -0
  129. package/src/components/Divider/Divider.tsx +33 -0
  130. package/src/components/Editor/Editor.context.tsx +12 -0
  131. package/src/components/Editor/Editor.module.scss +40 -0
  132. package/src/components/Editor/Editor.tsx +174 -0
  133. package/src/components/Form/CheckBox/CheckBox.context.tsx +56 -0
  134. package/src/components/Form/CheckBox/CheckBox.module.scss +81 -0
  135. package/src/components/Form/CheckBox/CheckBox.tsx +196 -0
  136. package/src/components/Form/CheckBox/Checkbox.colors.tsx +42 -0
  137. package/src/components/Form/Dropdown/Dropdown.colors.tsx +125 -0
  138. package/src/components/Form/Dropdown/Dropdown.context.tsx +62 -0
  139. package/src/components/Form/Dropdown/Dropdown.module.scss +133 -0
  140. package/src/components/Form/Dropdown/Dropdown.tsx +404 -0
  141. package/src/components/Form/OTPInput/OTPInput.context.tsx +104 -0
  142. package/src/components/Form/OTPInput/OTPInput.module.scss +22 -0
  143. package/src/components/Form/OTPInput/OTPInput.tsx +67 -0
  144. package/src/components/Form/Radio/Radio.colors.tsx +42 -0
  145. package/src/components/Form/Radio/Radio.context.tsx +40 -0
  146. package/src/components/Form/Radio/Radio.module.scss +61 -0
  147. package/src/components/Form/Radio/Radio.tsx +174 -0
  148. package/src/components/Form/Switch/Switch.colors.tsx +42 -0
  149. package/src/components/Form/Switch/Switch.context.tsx +50 -0
  150. package/src/components/Form/Switch/Switch.module.scss +53 -0
  151. package/src/components/Form/Switch/Switch.tsx +151 -0
  152. package/src/components/Form/TextArea/TextArea.colors.tsx +76 -0
  153. package/src/components/Form/TextArea/TextArea.context.tsx +97 -0
  154. package/src/components/Form/TextArea/TextArea.module.scss +138 -0
  155. package/src/components/Form/TextArea/TextArea.tsx +246 -0
  156. package/src/components/Form/TextInput/TextInput.colors.tsx +76 -0
  157. package/src/components/Form/TextInput/TextInput.context.tsx +106 -0
  158. package/src/components/Form/TextInput/TextInput.module.scss +160 -0
  159. package/src/components/Form/TextInput/TextInput.tsx +225 -0
  160. package/src/components/GlobalStyle/GlobalStyle.tsx +20 -0
  161. package/src/components/HelperText/HelperText.module.scss +28 -0
  162. package/src/components/HelperText/HelperText.tsx +130 -0
  163. package/src/components/Icon/Icon.tsx +29 -0
  164. package/src/components/Icons/Add.tsx +20 -0
  165. package/src/components/Icons/AddAPhoto.tsx +21 -0
  166. package/src/components/Icons/ApprovalInactive.tsx +26 -0
  167. package/src/components/Icons/ArrowRight.tsx +24 -0
  168. package/src/components/Icons/AttachFile.tsx +20 -0
  169. package/src/components/Icons/Cancle.tsx +20 -0
  170. package/src/components/Icons/CancleFilled.tsx +20 -0
  171. package/src/components/Icons/Cart.tsx +20 -0
  172. package/src/components/Icons/CartFilled.tsx +20 -0
  173. package/src/components/Icons/Check.tsx +20 -0
  174. package/src/components/Icons/CheckBoxRound.tsx +21 -0
  175. package/src/components/Icons/CheckCircle.tsx +35 -0
  176. package/src/components/Icons/Close.tsx +20 -0
  177. package/src/components/Icons/Company.tsx +20 -0
  178. package/src/components/Icons/Download.tsx +20 -0
  179. package/src/components/Icons/DragHandle.tsx +20 -0
  180. package/src/components/Icons/Eco.tsx +20 -0
  181. package/src/components/Icons/EditSquare.tsx +20 -0
  182. package/src/components/Icons/Error.tsx +20 -0
  183. package/src/components/Icons/ErrorFilled.tsx +20 -0
  184. package/src/components/Icons/ExpandAll.tsx +20 -0
  185. package/src/components/Icons/ExpandLess.tsx +20 -0
  186. package/src/components/Icons/ExpandMore.tsx +20 -0
  187. package/src/components/Icons/Factory.tsx +20 -0
  188. package/src/components/Icons/FileUpload.tsx +20 -0
  189. package/src/components/Icons/FilecheckInactive.tsx +22 -0
  190. package/src/components/Icons/GoBefore.tsx +20 -0
  191. package/src/components/Icons/GoNext.tsx +20 -0
  192. package/src/components/Icons/HamburgerMenu.tsx +20 -0
  193. package/src/components/Icons/ImagecheckPlay.tsx +27 -0
  194. package/src/components/Icons/Inventory.tsx +20 -0
  195. package/src/components/Icons/KakaoTalk.tsx +22 -0
  196. package/src/components/Icons/ListAll.tsx +20 -0
  197. package/src/components/Icons/LocalShipping.tsx +20 -0
  198. package/src/components/Icons/Logout.tsx +20 -0
  199. package/src/components/Icons/Menu.tsx +20 -0
  200. package/src/components/Icons/Minus.tsx +18 -0
  201. package/src/components/Icons/ModeEdit.tsx +25 -0
  202. package/src/components/Icons/More.tsx +20 -0
  203. package/src/components/Icons/Naver.tsx +20 -0
  204. package/src/components/Icons/NaverBlog.tsx +22 -0
  205. package/src/components/Icons/OrderApprove.tsx +20 -0
  206. package/src/components/Icons/OrderInactive.tsx +20 -0
  207. package/src/components/Icons/OrderPlay.tsx +20 -0
  208. package/src/components/Icons/Outward.tsx +20 -0
  209. package/src/components/Icons/PayApprove.tsx +24 -0
  210. package/src/components/Icons/PayInactive.tsx +24 -0
  211. package/src/components/Icons/Personcard.tsx +20 -0
  212. package/src/components/Icons/PrintInactive.tsx +24 -0
  213. package/src/components/Icons/PrintPlay.tsx +24 -0
  214. package/src/components/Icons/Product.tsx +20 -0
  215. package/src/components/Icons/Search.tsx +20 -0
  216. package/src/components/Icons/Settings.tsx +20 -0
  217. package/src/components/Icons/ShippingDone.tsx +20 -0
  218. package/src/components/Icons/SupportAgent.tsx +20 -0
  219. package/src/components/Icons/SwapVert.tsx +21 -0
  220. package/src/components/Icons/Task.tsx +20 -0
  221. package/src/components/Icons/Upload.tsx +20 -0
  222. package/src/components/Icons/User.tsx +20 -0
  223. package/src/components/Icons/Warning.tsx +20 -0
  224. package/src/components/Icons/WarningAmber.tsx +21 -0
  225. package/src/components/Icons/WarningFilled.tsx +20 -0
  226. package/src/components/Icons/index.ts +62 -0
  227. package/src/components/LNB/LNB.context.tsx +32 -0
  228. package/src/components/LNB/LNB.module.scss +99 -0
  229. package/src/components/LNB/LNB.tsx +190 -0
  230. package/src/components/LNB/README.md +411 -0
  231. package/src/components/LNB/makeNavigation.ts +51 -0
  232. package/src/components/LNB/navigation.d.ts +15 -0
  233. package/src/components/LNB/navigation.json +211 -0
  234. package/src/components/Label/Label.colors.tsx +241 -0
  235. package/src/components/Label/Label.module.scss +31 -0
  236. package/src/components/Label/Label.tsx +54 -0
  237. package/src/components/LazyImage/LazyImage.module.scss +6 -0
  238. package/src/components/LazyImage/LazyImage.tsx +107 -0
  239. package/src/components/List/List.module.scss +81 -0
  240. package/src/components/List/List.tsx +91 -0
  241. package/src/components/List/README.md +87 -0
  242. package/src/components/MobilePicker/MobilePicker.context.tsx +22 -0
  243. package/src/components/MobilePicker/MobilePicker.module.scss +57 -0
  244. package/src/components/MobilePicker/MobilePicker.tsx +336 -0
  245. package/src/components/MobilePicker/README.md +159 -0
  246. package/src/components/Modal/Modal.tsx +77 -0
  247. package/src/components/Modal/README.md +130 -0
  248. package/src/components/Pagination/Pagination.colors.tsx +85 -0
  249. package/src/components/Pagination/Pagination.context.tsx +28 -0
  250. package/src/components/Pagination/Pagination.module.scss +60 -0
  251. package/src/components/Pagination/Pagination.tsx +234 -0
  252. package/src/components/Popup/Popup.context.tsx +15 -0
  253. package/src/components/Popup/Popup.module.scss +53 -0
  254. package/src/components/Popup/Popup.tsx +116 -0
  255. package/src/components/Popup/README.md +170 -0
  256. package/src/components/QRCode/QRCode.module.scss +2 -0
  257. package/src/components/QRCode/QRCode.tsx +61 -0
  258. package/src/components/ScrollCalendar/ScrollCalendar.context.tsx +26 -0
  259. package/src/components/ScrollCalendar/ScrollCalendar.module.scss +42 -0
  260. package/src/components/ScrollCalendar/ScrollCalendar.tsx +448 -0
  261. package/src/components/ScrollSpy/README.md +62 -0
  262. package/src/components/ScrollSpy/ScrollSpy.tsx +130 -0
  263. package/src/components/Sheet/README.md +92 -0
  264. package/src/components/Sheet/Sheet.context.tsx +23 -0
  265. package/src/components/Sheet/Sheet.module.scss +68 -0
  266. package/src/components/Sheet/Sheet.tsx +146 -0
  267. package/src/components/Slider/README.md +639 -0
  268. package/src/components/Slider/Slider.backup.tsx +477 -0
  269. package/src/components/Slider/Slider.context.tsx +67 -0
  270. package/src/components/Slider/Slider.module.scss +123 -0
  271. package/src/components/Slider/Slider.tsx +467 -0
  272. package/src/components/Stepper/README.md +320 -0
  273. package/src/components/Stepper/Stepper.context.tsx +49 -0
  274. package/src/components/Stepper/Stepper.module.scss +163 -0
  275. package/src/components/Stepper/Stepper.tsx +219 -0
  276. package/src/components/Tab/Tab.colors.tsx +54 -0
  277. package/src/components/Tab/Tab.context.tsx +64 -0
  278. package/src/components/Tab/Tab.module.scss +239 -0
  279. package/src/components/Tab/Tab.tsx +123 -0
  280. package/src/components/Tab/cx.ts +6 -0
  281. package/src/components/Table/README.md +162 -0
  282. package/src/components/Table/Table.context.tsx +23 -0
  283. package/src/components/Table/Table.hook.ts +51 -0
  284. package/src/components/Table/Table.module.scss +83 -0
  285. package/src/components/Table/Table.tsx +147 -0
  286. package/src/components/Thumbnail/README.md +302 -0
  287. package/src/components/Thumbnail/Thumbnail.context.tsx +42 -0
  288. package/src/components/Thumbnail/Thumbnail.module.scss +149 -0
  289. package/src/components/Thumbnail/Thumbnail.tsx +391 -0
  290. package/src/components/TimeInput/README.md +118 -0
  291. package/src/components/TimeInput/TimeInput.colors.tsx +76 -0
  292. package/src/components/TimeInput/TimeInput.context.tsx +58 -0
  293. package/src/components/TimeInput/TimeInput.module.scss +211 -0
  294. package/src/components/TimeInput/TimeInput.tsx +411 -0
  295. package/src/components/WeeklyCalendar/WeeklyCalendar.context.tsx +88 -0
  296. package/src/components/WeeklyCalendar/WeeklyCalendar.module.scss +225 -0
  297. package/src/components/WeeklyCalendar/WeeklyCalendar.tsx +772 -0
  298. package/src/components/WeeklyCalendar/dayjs.util.ts +336 -0
  299. package/src/components/WeeklyCalendar/weeklyCalendar.util.ts +583 -0
  300. package/src/components/WisywygEditor/Quill/Editor.tsx +148 -0
  301. package/src/constant/locale.constant.ts +6 -0
  302. package/src/globals.scss +80 -0
  303. package/src/hooks/useColorScheme.tsx +48 -0
  304. package/src/hooks/useElementRect.tsx +128 -0
  305. package/src/hooks/useIntersectionObserver.tsx +33 -0
  306. package/src/index.css +17 -0
  307. package/src/index.ts +187 -0
  308. package/src/main.tsx +10 -0
  309. package/src/styles/_fontSize.mixin.scss +57 -0
  310. package/src/styles/_fontWeight.mixin.scss +15 -0
  311. package/src/styles/_lineHeight.mixin.scss +57 -0
  312. package/src/styles/_scrollbar.mixin.scss +49 -0
  313. package/src/styles/baseColor.ts +297 -0
  314. package/src/styles/color.ts +272 -0
  315. package/src/styles/color2.ts +200 -0
  316. package/src/styles/scrollbar.README.md +72 -0
  317. package/src/styles/typography.scss +170 -0
  318. package/src/utils/aws.util.ts +180 -0
  319. package/src/utils/common.utill.ts +45 -0
  320. package/src/vite-env.d.ts +1 -0
  321. package/tsconfig.app.json +24 -0
  322. package/tsconfig.json +29 -0
  323. package/tsconfig.node.json +10 -0
  324. package/tsconfig.node.tsbuildinfo +1 -0
  325. package/tsconfig.tsbuildinfo +1 -0
  326. package/vite.config.d.ts +2 -0
  327. package/vite.config.js +47 -0
  328. package/vite.config.ts +50 -0
File without changes
@@ -0,0 +1,230 @@
1
+ import {
2
+ Chart as ChartJs,
3
+ CategoryScale,
4
+ LinearScale,
5
+ LineController,
6
+ BarController,
7
+ BarElement,
8
+ PointElement,
9
+ LineElement,
10
+ Title,
11
+ Tooltip,
12
+ Legend,
13
+ ArcElement,
14
+ DoughnutController,
15
+ PieController,
16
+ RadarController,
17
+ ScatterController,
18
+ BubbleController,
19
+ PolarAreaController,
20
+ RadialLinearScale,
21
+ Filler,
22
+ ChartData,
23
+ } from "chart.js";
24
+
25
+ import ChartDataLabels from "chartjs-plugin-datalabels";
26
+ import {
27
+ FunnelChart,
28
+ FunnelController,
29
+ TrapezoidElement,
30
+ } from "chartjs-chart-funnel";
31
+ import {
32
+ Bar,
33
+ Bubble,
34
+ Doughnut,
35
+ Line,
36
+ Pie,
37
+ PolarArea,
38
+ Radar,
39
+ Scatter,
40
+ } from "react-chartjs-2";
41
+ import React from "react";
42
+
43
+ ChartJs.register(
44
+ CategoryScale,
45
+ LinearScale,
46
+ PointElement,
47
+ LineController,
48
+ BubbleController,
49
+ DoughnutController,
50
+ PieController,
51
+ LineElement,
52
+ BarController,
53
+ PolarAreaController,
54
+ BarElement,
55
+ RadarController,
56
+ RadialLinearScale,
57
+ ScatterController,
58
+ Title,
59
+ Tooltip,
60
+ Filler,
61
+ Legend,
62
+ ArcElement,
63
+ ChartDataLabels,
64
+ FunnelController,
65
+ TrapezoidElement
66
+ );
67
+
68
+ // type 값에 따라서 타입을 지정하기
69
+ type LineChartData = ChartData<"line">;
70
+ type BarChartData = ChartData<"bar">;
71
+ type BubbleChartData = ChartData<"bubble">;
72
+ type DoughnutChartData = ChartData<"doughnut">;
73
+ type PieChartData = ChartData<"pie">;
74
+ type PolarAreaChartData = ChartData<"polarArea">;
75
+ type RadarChartData = ChartData<"radar">;
76
+ type ScatterChartData = ChartData<"scatter">;
77
+ type FunnelChartData = ChartData;
78
+
79
+ type ChartType = {
80
+ type:
81
+ | "line"
82
+ | "bar"
83
+ | "bubble"
84
+ | "doughnut"
85
+ | "pie"
86
+ | "polarArea"
87
+ | "radar"
88
+ | "scatter"
89
+ | "funnel";
90
+ data:
91
+ | LineChartData
92
+ | BarChartData
93
+ | BubbleChartData
94
+ | DoughnutChartData
95
+ | PieChartData
96
+ | PolarAreaChartData
97
+ | RadarChartData
98
+ | ScatterChartData
99
+ | FunnelChartData;
100
+ options?: object;
101
+ width?: number;
102
+ height?: number;
103
+ };
104
+
105
+ // type ChartType = {
106
+ // type:
107
+ // | "line"
108
+ // | "bar"
109
+ // | "bubble"
110
+ // | "doughnut"
111
+ // | "pie"
112
+ // | "polarArea"
113
+ // | "radar"
114
+ // | "scatter"
115
+ // | "funnel";
116
+ // data: ChartData;
117
+ // options?: object;
118
+ // width?: number;
119
+ // height?: number;
120
+ // };
121
+
122
+ const defaultData = {
123
+ labels: ["January", "February", "March", "April", "May", "June", "July"],
124
+ datasets: [
125
+ {
126
+ label: "My First Dataset",
127
+ data: [65, 59, 80, 81, 56, 55, 40],
128
+ fill: false,
129
+ borderColor: "rgb(75, 192, 192)",
130
+ tension: 0.1,
131
+ },
132
+ ],
133
+ };
134
+
135
+ const defaultOptions = {
136
+ responsive: true,
137
+ maintainAspectRatio: false,
138
+ plugins: {
139
+ legend: {
140
+ position: "top" as const,
141
+ },
142
+ title: {
143
+ display: true,
144
+ text: "Chart.js Chart",
145
+ },
146
+ },
147
+ };
148
+
149
+ const Chart = (props: ChartType) => {
150
+ const {
151
+ type = "line",
152
+ data = defaultData,
153
+ options = defaultOptions,
154
+ width = 800,
155
+ height = 400,
156
+ } = props;
157
+ const canvasEl = React.useRef(null);
158
+
159
+ React.useEffect(() => {
160
+ const canvas = canvasEl.current;
161
+
162
+ if (canvas && type === "funnel") {
163
+ const ctx = (canvas as unknown as HTMLCanvasElement).getContext("2d");
164
+ if (!ctx) return;
165
+ console.log("type", type);
166
+ console.log("data", data);
167
+ const chart = ChartJs.getChart(ctx);
168
+ const drawChart = async () => {
169
+ new FunnelChart(ctx, {
170
+ data: data as ChartData<"funnel">,
171
+ options,
172
+ plugins: [ChartDataLabels],
173
+ });
174
+ };
175
+ chart?.destroy();
176
+ drawChart();
177
+ }
178
+ }, [data, options, type]);
179
+
180
+ return (
181
+ <div
182
+ style={{
183
+ position: "relative",
184
+ height: "40vh",
185
+ width: "80vw",
186
+ }}
187
+ >
188
+ {/* <canvas id="Chart" ref={canvasEl} width={width} height={height}></canvas> */}
189
+ {type === "line" && (
190
+ <Line
191
+ data={data as ChartData<"line">}
192
+ options={options}
193
+ width={width}
194
+ height={height}
195
+ />
196
+ )}
197
+ {type === "bar" && (
198
+ <Bar data={data as ChartData<"bar">} options={options} />
199
+ )}
200
+ {type === "bubble" && (
201
+ <Bubble data={data as ChartData<"bubble">} options={options} />
202
+ )}
203
+ {type === "doughnut" && (
204
+ <Doughnut data={data as ChartData<"doughnut">} options={options} />
205
+ )}
206
+ {type === "pie" && (
207
+ <Pie data={data as ChartData<"pie">} options={options} />
208
+ )}
209
+ {type === "polarArea" && (
210
+ <PolarArea data={data as ChartData<"polarArea">} options={options} />
211
+ )}
212
+ {type === "radar" && (
213
+ <Radar data={data as ChartData<"radar">} options={options} />
214
+ )}
215
+ {type === "scatter" && (
216
+ <Scatter data={data as ChartData<"scatter">} options={options} />
217
+ )}
218
+ {type === "funnel" && (
219
+ <canvas
220
+ id="Chart"
221
+ ref={canvasEl}
222
+ width={width}
223
+ height={height}
224
+ ></canvas>
225
+ )}
226
+ </div>
227
+ );
228
+ };
229
+
230
+ export default Chart;
@@ -0,0 +1,85 @@
1
+ # Chart UI
2
+
3
+ ## Contents List
4
+
5
+ 1. [Quick Start](#QuickStart)
6
+ 2. [Reference](#Reference)
7
+ 3. [Example](#Example)
8
+
9
+ ## Quick Start
10
+
11
+ ```ts
12
+ import { Chart } from "@weing-dev/ui-kit-primitive";
13
+
14
+ const components = () => {
15
+ //...
16
+
17
+ return (
18
+ <Chart
19
+ type={type}
20
+ data={data}
21
+ options={options}
22
+ width={width}
23
+ height={height}
24
+ />
25
+ );
26
+ };
27
+ ```
28
+
29
+ > ChartImage
30
+ > ![chartImage](./images/barChart.png)
31
+
32
+ ## Reference
33
+
34
+ ### Chart
35
+
36
+ | Prop | Type | Required | Default Value |
37
+ | :------------------ | :---------------------------------------------------------------------------------: | :------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
38
+ | [type](#type) | line \| bar \| bubble \| doughnut \| pie \| polarArea \| radar \| scatter \| funnel | ✔️ | line |
39
+ | [data](#data) | ChartData | ✔️ | <pre><code>{<br> labels: ["January", "February", "March", "April", "May", "June", "July"],<br> datasets: [<br> {<br> label: "My First Dataset",<br> data: [65, 59, 80, 81, 56, 55, 40],<br> fill: false,<br> borderColor: "rgb(75, 192, 192)",<br> tension: 0.1,<br> },<br> ],<br>};</code></pre> |
40
+ | [options](#options) | Object | - | <pre><code>{<br> responsive: true,<br> maintainAspectRatio: false,<br> plugins: {<br> legend: { position: "top" as const, },<br> title: { display: true, text: "Chart.js Chart" }<br> }<br>}</code></pre> |
41
+ | [width](#width) | Number | - | 800 |
42
+ | [height](#height) | Number | - | 400 |
43
+
44
+ | 1
45
+
46
+ #### type
47
+
48
+ `Chart`의 `type`을 설정하는 data입니다. 기본값은 `line`으로 prop에 type이 없는 경우, lineChart로 생성됩니다.
49
+
50
+ #### data
51
+
52
+ `Chart`를 생성하기 위한 데이터로, 현재 Chart.Js 에서 제공하는 타입으로 설정했습니다.
53
+
54
+ data는 간략히 요약하면
55
+
56
+ labels : `Chart`에 표시될 데이터값에 대응하는 이름 -> string 배열<br>
57
+ dataSets: `Chart`에 설정된 `labels`에 대응하는 데이터 목록
58
+
59
+ 이 2가지의 데이터로 구성된 객체입니다.
60
+
61
+ ##### dataSets
62
+
63
+ dataSets는 기본적으로 `label` 과 `data` 로 구성된 객체 배열입니다. 부가적인 설정(`borderColor`, `backgroundColor`, `borderWidth`..)을 구현하고 싶다면 대부분 이 dataSets를 구성하는 객체에 추가해주시면 됩니다.
64
+
65
+ | Prop | Description |
66
+ | --------------- | ------------------------------ |
67
+ | label | 데이터셋 이름 |
68
+ | data | 차트 표시에 사용하는 데이터 값 |
69
+ | backgroundColor | 차트 항목 배경 색상 |
70
+ | borderColor | 차트 항목 테두리 색상 |
71
+ | borderWidth | 차트 항목 테두리 width |
72
+
73
+ `🔔Tip: dataSets의 data타입은 Chart의 type에 따라서 다르기 때문에 data작성 시, 주의가 필요합니다. 이를 지키지 않으면 구현하고자 하는 차트가 생성되지 않을 수 있습니다. `
74
+
75
+ BubbleChart : `{x : number, y : number , r : number}[]` <br>
76
+ ScatterChart : `{x : number, y : number}[]`<br>
77
+ 그 외의 경우 `number[]`으로 진행하되, 특정 type에서도 세부적으로 구현될수 있는 `Chart`의 방식에 따라 데이터를 다르게 설정해야할 수 있습니다.
78
+
79
+ 자세한 내용을 원하신다면 "https://www.chartjs.org/docs/latest/api/interfaces/ChartData.html"를 참조해주세요
80
+
81
+ #### options
82
+
83
+ `Chart`타이틀, 애니메이션,`Scale`, `Plugin` 관련 옵션을 입력하는 항목입니다.
84
+
85
+ 자세한 내용을 원하신다면 "https://www.chartjs.org/docs/latest/general/options.html"를 참조해주세요
@@ -0,0 +1,185 @@
1
+ import { Transparent } from "@/styles/baseColor";
2
+ import { colorThemes as colorSet } from "@/styles/color2";
3
+
4
+ const useChipsColors = () => {
5
+ const primary = {
6
+ contained: {
7
+ backgroundColor: colorSet.primary.pMain,
8
+ color: colorSet.primary.pContrastText,
9
+ borderColor: "transparent",
10
+ hover: {
11
+ backgroundColor: colorSet.primary.pDark,
12
+ color: colorSet.primary.pContrastText,
13
+ borderColor: "transparent",
14
+ },
15
+ },
16
+ outlined: {
17
+ backgroundColor: "transparent",
18
+ color: colorSet.primary.pMain,
19
+ borderColor: colorSet.primary.p48,
20
+ hover: {
21
+ backgroundColor: colorSet.primary.p8,
22
+ color: colorSet.primary.pMain,
23
+ borderColor: colorSet.primary.pMain,
24
+ },
25
+ },
26
+ soft: {
27
+ backgroundColor: colorSet.primary.p8,
28
+ color: `var(--swapDarkLightPrimary, ${colorSet.light.swapDarkLightPrimary})`,
29
+ borderColor: "transparent",
30
+ hover: {
31
+ backgroundColor: colorSet.primary.p16,
32
+ color: `var(--swapDarkLightPrimary, ${colorSet.light.swapDarkLightPrimary})`,
33
+ borderColor: "transparent",
34
+ },
35
+ },
36
+ text: {
37
+ backgroundColor: "transparent",
38
+ color: colorSet.primary.pMain,
39
+ borderColor: "transparent",
40
+ hover: {
41
+ backgroundColor: colorSet.primary.p8,
42
+ color: `var(--swapDarkLightDeepGreen, ${colorSet.light.swapDarkLightDeepGreen})`,
43
+ borderColor: "transparent",
44
+ },
45
+ },
46
+ };
47
+
48
+ const inherit = {
49
+ contained: {
50
+ backgroundColor: `var(--inheritBgcolor, ${colorSet.light.inheritBgcolor})`,
51
+ color: `var(--textContrast, ${colorSet.light.textContrast})`,
52
+ borderColor: "transparent",
53
+ hover: {
54
+ backgroundColor: `var(--inheritHover, ${colorSet.light.inheritHover})`,
55
+ color: `var(--textContrast, ${colorSet.light.textContrast})`,
56
+ borderColor: "transparent",
57
+ },
58
+ },
59
+ outlined: {
60
+ backgroundColor: "transparent",
61
+ color: `var(--textSecondary, ${colorSet.light.textSecondary})`,
62
+ borderColor: Transparent.grey32,
63
+ hover: {
64
+ backgroundColor: `var(--actionHover, ${colorSet.light.actionHover})`,
65
+ color: `var(--textSecondary, ${colorSet.light.textSecondary})`,
66
+ borderColor: `var(--textSecondary, ${colorSet.light.textSecondary})`,
67
+ },
68
+ },
69
+ soft: {
70
+ backgroundColor: Transparent.grey8,
71
+ color: `var(--textPrimary, ${colorSet.light.textPrimary})`,
72
+ borderColor: "transparent",
73
+ hover: {
74
+ backgroundColor: Transparent.grey24,
75
+ color: `var(--textPrimary, ${colorSet.light.textPrimary})`,
76
+ borderColor: "transparent",
77
+ },
78
+ },
79
+ text: {
80
+ backgroundColor: "transparent",
81
+ color: `var(--textSecondary, ${colorSet.light.textSecondary})`,
82
+ borderColor: "transparent",
83
+ hover: {
84
+ backgroundColor: `var(--actionHover, ${colorSet.light.actionHover})`,
85
+ color: `var(--textPrimary, ${colorSet.light.textPrimary})`,
86
+ borderColor: "transparent",
87
+ },
88
+ },
89
+ };
90
+
91
+ const disabled = {
92
+ contained: {
93
+ backgroundColor: `var(--actionDisabledBackground, ${colorSet.light.actionDisabledBackground})`,
94
+ color: `var(--textDisabled, ${colorSet.light.textDisabled})`,
95
+ borderColor: "transparent",
96
+ hover: {
97
+ backgroundColor: `var(--actionDisabledBackground, ${colorSet.light.actionDisabledBackground})`,
98
+ color: `var(--textDisabled, ${colorSet.light.textDisabled})`,
99
+ borderColor: "transparent",
100
+ },
101
+ },
102
+ outlined: {
103
+ backgroundColor: "transparent",
104
+ color: `var(--textDisabled, ${colorSet.light.textDisabled})`,
105
+ borderColor: `var(--actionDisabled, ${colorSet.light.actionDisabled})`,
106
+ hover: {
107
+ backgroundColor: "transparent",
108
+ color: `var(--textDisabled, ${colorSet.light.textDisabled})`,
109
+ borderColor: `var(--actionDisabled, ${colorSet.light.actionDisabled})`,
110
+ },
111
+ },
112
+ soft: {
113
+ backgroundColor: `var(--actionDisabledBackground, ${colorSet.light.actionDisabledBackground})`,
114
+ color: `var(--textDisabled, ${colorSet.light.textDisabled})`,
115
+ borderColor: "transparent",
116
+ hover: {
117
+ backgroundColor: `var(--actionDisabledBackground, ${colorSet.light.actionDisabledBackground})`,
118
+ color: `var(--textDisabled, ${colorSet.light.textDisabled})`,
119
+ borderColor: "transparent",
120
+ },
121
+ },
122
+ text: {
123
+ backgroundColor: "transparent",
124
+ color: `var(--textDisabled, ${colorSet.light.textDisabled})`,
125
+ borderColor: "transparent",
126
+ hover: {
127
+ backgroundColor: "transparent",
128
+ color: `var(--textDisabled, ${colorSet.light.textDisabled})`,
129
+ borderColor: "transparent",
130
+ },
131
+ },
132
+ };
133
+
134
+ const dual = {
135
+ contained: {
136
+ backgroundColor: Transparent.grey8,
137
+ color: `var(--textSecondary, ${colorSet.light.textSecondary})`,
138
+ borderColor: "transparent",
139
+ hover: {
140
+ backgroundColor: colorSet.primary.pMain,
141
+ color: `var(--textContrast, ${colorSet.light.textContrast})`,
142
+ borderColor: "transparent",
143
+ },
144
+ },
145
+ outlined: {
146
+ backgroundColor: "transparent",
147
+ color: `var(--textSecondary, ${colorSet.light.textSecondary})`,
148
+ borderColor: Transparent.grey32,
149
+ hover: {
150
+ backgroundColor: colorSet.primary.p8,
151
+ color: colorSet.primary.pMain,
152
+ borderColor: colorSet.primary.pMain,
153
+ },
154
+ },
155
+ soft: {
156
+ backgroundColor: Transparent.grey8,
157
+ color: `var(--textPrimary, ${colorSet.light.textPrimary})`,
158
+ borderColor: "transparent",
159
+ hover: {
160
+ backgroundColor: Transparent.grey24,
161
+ color: colorSet.primary.p16,
162
+ borderColor: "transparent",
163
+ },
164
+ },
165
+ text: {
166
+ backgroundColor: "transparent",
167
+ color: `var(--textSecondary, ${colorSet.light.textSecondary})`,
168
+ borderColor: "transparent",
169
+ hover: {
170
+ backgroundColor: colorSet.primary.p8,
171
+ color: `var(--swapDarkLightDeepGreen, ${colorSet.light.swapDarkLightDeepGreen})`,
172
+ borderColor: "transparent",
173
+ },
174
+ },
175
+ };
176
+
177
+ return {
178
+ primary,
179
+ inherit,
180
+ disabled,
181
+ dual,
182
+ };
183
+ };
184
+
185
+ export default useChipsColors;
@@ -0,0 +1,49 @@
1
+ @layer Chips {
2
+ .ChipsWrapper {
3
+ padding: 0 12px;
4
+ display: flex;
5
+ flex-direction: row;
6
+ align-items: center;
7
+ gap: 4px;
8
+ // &.checked {
9
+ // background-color: var(--active-background-color, #007aff);
10
+ // color: var(--active-tint-color, #ffffff);
11
+ // border: 1px solid var(--active-border-color, #007aff);
12
+ // }
13
+ background-color: var(--default-background-color, #edeff2);
14
+ color: var(--default-tint-color, #000000);
15
+ border: 1px solid var(--default-border-color, #d9d9d9);
16
+
17
+ &.large {
18
+ height: 48px;
19
+ @include labelLarge;
20
+ }
21
+ &.medium {
22
+ height: 40px;
23
+ @include labelMedium;
24
+ }
25
+ &.small {
26
+ height: 32px;
27
+ @include labelMedium;
28
+ }
29
+
30
+ &.outlined {
31
+ border-radius: 16px;
32
+ }
33
+
34
+ &.round {
35
+ border-radius: 22px;
36
+
37
+ &.small {
38
+ border-radius: 16px;
39
+ }
40
+ }
41
+ &.square {
42
+ border-radius: 8px;
43
+
44
+ &.small {
45
+ border-radius: 4px;
46
+ }
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,78 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ "use client";
3
+ import React from "react";
4
+ import styles from "./Chips.module.scss";
5
+ import cn from "classnames/bind";
6
+ import useChipsColors from "./Chips.colors";
7
+
8
+ const cx = cn.bind(styles);
9
+
10
+ type ChipsProps = React.PropsWithChildren<{
11
+ className?: string;
12
+ checked?: boolean;
13
+ disabled?: boolean;
14
+ value?: string | string[];
15
+ id?: string;
16
+ onClick?: (...args: any) => void;
17
+ onChange?: (...args: any) => void;
18
+ size?: "small" | "medium" | "large";
19
+ variant?: "contained" | "outlined" | "soft" | "text";
20
+ colorType?: "primary" | "inherit" | "dual";
21
+ shapeType?: "square" | "round";
22
+ }>;
23
+
24
+ const Chips = (props: ChipsProps) => {
25
+ const {
26
+ className,
27
+ children,
28
+ size = "medium",
29
+ variant = "outlined",
30
+ colorType = "primary",
31
+ checked,
32
+ shapeType = "round",
33
+ disabled,
34
+ onClick,
35
+ } = props;
36
+ const _chips = React.useRef<HTMLDivElement>(null);
37
+
38
+ const chipsColor = useChipsColors();
39
+ const colorSet = chipsColor[colorType];
40
+
41
+ const defaultBackgroundColor = !disabled
42
+ ? checked
43
+ ? colorSet[variant].hover.backgroundColor
44
+ : colorSet[variant].backgroundColor
45
+ : chipsColor["disabled"][variant].backgroundColor;
46
+ const defaultBorderColor = !disabled
47
+ ? checked
48
+ ? colorSet[variant].hover.borderColor
49
+ : colorSet[variant].borderColor
50
+ : chipsColor["disabled"][variant].borderColor;
51
+ const defaultTintColor = !disabled
52
+ ? checked
53
+ ? colorSet[variant].hover.color
54
+ : colorSet[variant].color
55
+ : chipsColor["disabled"][variant].color;
56
+
57
+ return (
58
+ <div
59
+ className={cx("ChipsWrapper", size, variant, className, shapeType, {
60
+ checked,
61
+ })}
62
+ style={{
63
+ "--default-background-color": defaultBackgroundColor,
64
+ // "--active-background-color": activeBackgroundColor,
65
+ "--default-border-color": defaultBorderColor,
66
+ // "--active-border-color": activeBorderColor,
67
+ "--default-tint-color": defaultTintColor,
68
+ // "--active-tint-color": activeTintColor,
69
+ }}
70
+ ref={_chips}
71
+ onClick={onClick}
72
+ >
73
+ {children}
74
+ </div>
75
+ );
76
+ };
77
+
78
+ export default Chips;
@@ -0,0 +1,14 @@
1
+ .CommentWrapper {
2
+ padding: 8px;
3
+ background: var(--Gray-Gray99, #f6f8fb);
4
+ border-radius: 4px;
5
+ display: flex;
6
+ flex-direction: row;
7
+ align-items: flex-start;
8
+ gap: 8px;
9
+
10
+ .Caption {
11
+ @include captionRegularSmall;
12
+ vertical-align: top;
13
+ }
14
+ }