@weing-dev/ui-kit-primitive 0.0.0 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/dist/App.d.ts +2 -0
  2. package/dist/components/Accordion/Accordion.context.d.ts +24 -0
  3. package/dist/components/Accordion/Accordion.d.ts +24 -0
  4. package/dist/components/Avatar/Avatar.d.ts +35 -0
  5. package/dist/components/Badge/Badge.d.ts +17 -0
  6. package/dist/components/BarCode/BarCode.d.ts +13 -0
  7. package/dist/components/Breadcrumb/Breadcrumb.d.ts +33 -0
  8. package/dist/components/Button/Button.colors.d.ts +295 -0
  9. package/dist/components/Button/Button.context.d.ts +22 -0
  10. package/dist/components/Button/Button.d.ts +24 -0
  11. package/dist/components/Button/Button.type.d.ts +10 -0
  12. package/dist/components/Calendar/Calendar.context.d.ts +56 -0
  13. package/dist/components/Calendar/Calendar.d.ts +72 -0
  14. package/dist/components/Calendar/dayjs.util.d.ts +99 -0
  15. package/dist/components/Cascader/Cacader.data.d.ts +6 -0
  16. package/dist/components/Cascader/Cascader.context.d.ts +31 -0
  17. package/dist/components/Cascader/Cascader.d.ts +54 -0
  18. package/dist/components/Cascader/Cascader.hook.d.ts +95 -0
  19. package/dist/components/Chart/Chart.d.ts +19 -0
  20. package/dist/components/Chips/Chips.colors.d.ts +171 -0
  21. package/dist/components/Chips/Chips.d.ts +16 -0
  22. package/dist/components/Comment/Comment.d.ts +21 -0
  23. package/dist/components/Dialog/Dialog.d.ts +2 -0
  24. package/dist/components/Divider/Divider.d.ts +13 -0
  25. package/dist/components/Editor/Editor.context.d.ts +8 -0
  26. package/dist/components/Editor/Editor.d.ts +16 -0
  27. package/dist/components/Form/CheckBox/CheckBox.context.d.ts +28 -0
  28. package/dist/components/Form/CheckBox/CheckBox.d.ts +33 -0
  29. package/dist/components/Form/CheckBox/Checkbox.colors.d.ts +33 -0
  30. package/dist/components/Form/Dropdown/Dropdown.colors.d.ts +114 -0
  31. package/dist/components/Form/Dropdown/Dropdown.context.d.ts +47 -0
  32. package/dist/components/Form/Dropdown/Dropdown.d.ts +59 -0
  33. package/dist/components/Form/OTPInput/OTPInput.context.d.ts +16 -0
  34. package/dist/components/Form/OTPInput/OTPInput.d.ts +15 -0
  35. package/dist/components/Form/Radio/Radio.colors.d.ts +33 -0
  36. package/dist/components/Form/Radio/Radio.context.d.ts +26 -0
  37. package/dist/components/Form/Radio/Radio.d.ts +30 -0
  38. package/dist/components/Form/Switch/Switch.colors.d.ts +33 -0
  39. package/dist/components/Form/Switch/Switch.context.d.ts +24 -0
  40. package/dist/components/Form/Switch/Switch.d.ts +28 -0
  41. package/dist/components/Form/TextArea/TextArea.colors.d.ts +67 -0
  42. package/dist/components/Form/TextArea/TextArea.context.d.ts +45 -0
  43. package/dist/components/Form/TextArea/TextArea.d.ts +37 -0
  44. package/dist/components/Form/TextInput/TextInput.colors.d.ts +67 -0
  45. package/dist/components/Form/TextInput/TextInput.context.d.ts +52 -0
  46. package/dist/components/Form/TextInput/TextInput.d.ts +33 -0
  47. package/dist/components/GlobalStyle/GlobalStyle.d.ts +2 -0
  48. package/dist/components/HelperText/HelperText.d.ts +28 -0
  49. package/dist/components/Icon/Icon.d.ts +13 -0
  50. package/dist/components/Icons/Add.d.ts +3 -0
  51. package/dist/components/Icons/AddAPhoto.d.ts +3 -0
  52. package/dist/components/Icons/ApprovalInactive.d.ts +3 -0
  53. package/dist/components/Icons/ArrowRight.d.ts +3 -0
  54. package/dist/components/Icons/AttachFile.d.ts +3 -0
  55. package/dist/components/Icons/Cancle.d.ts +3 -0
  56. package/dist/components/Icons/CancleFilled.d.ts +3 -0
  57. package/dist/components/Icons/Cart.d.ts +3 -0
  58. package/dist/components/Icons/CartFilled.d.ts +3 -0
  59. package/dist/components/Icons/Check.d.ts +3 -0
  60. package/dist/components/Icons/CheckBoxRound.d.ts +3 -0
  61. package/dist/components/Icons/CheckCircle.d.ts +3 -0
  62. package/dist/components/Icons/Close.d.ts +3 -0
  63. package/dist/components/Icons/Company.d.ts +3 -0
  64. package/dist/components/Icons/Download.d.ts +3 -0
  65. package/dist/components/Icons/DragHandle.d.ts +3 -0
  66. package/dist/components/Icons/Eco.d.ts +3 -0
  67. package/dist/components/Icons/EditSquare.d.ts +3 -0
  68. package/dist/components/Icons/Error.d.ts +3 -0
  69. package/dist/components/Icons/ErrorFilled.d.ts +3 -0
  70. package/dist/components/Icons/ExpandAll.d.ts +3 -0
  71. package/dist/components/Icons/ExpandLess.d.ts +3 -0
  72. package/dist/components/Icons/ExpandMore.d.ts +3 -0
  73. package/dist/components/Icons/Factory.d.ts +3 -0
  74. package/dist/components/Icons/FileUpload.d.ts +3 -0
  75. package/dist/components/Icons/FilecheckInactive.d.ts +3 -0
  76. package/dist/components/Icons/GoBefore.d.ts +3 -0
  77. package/dist/components/Icons/GoNext.d.ts +3 -0
  78. package/dist/components/Icons/HamburgerMenu.d.ts +3 -0
  79. package/dist/components/Icons/ImagecheckPlay.d.ts +3 -0
  80. package/dist/components/Icons/Inventory.d.ts +3 -0
  81. package/dist/components/Icons/KakaoTalk.d.ts +3 -0
  82. package/dist/components/Icons/ListAll.d.ts +3 -0
  83. package/dist/components/Icons/LocalShipping.d.ts +3 -0
  84. package/dist/components/Icons/Logout.d.ts +3 -0
  85. package/dist/components/Icons/Menu.d.ts +3 -0
  86. package/dist/components/Icons/Minus.d.ts +3 -0
  87. package/dist/components/Icons/ModeEdit.d.ts +3 -0
  88. package/dist/components/Icons/More.d.ts +3 -0
  89. package/dist/components/Icons/Naver.d.ts +3 -0
  90. package/dist/components/Icons/NaverBlog.d.ts +3 -0
  91. package/dist/components/Icons/OrderApprove.d.ts +3 -0
  92. package/dist/components/Icons/OrderInactive.d.ts +3 -0
  93. package/dist/components/Icons/OrderPlay.d.ts +3 -0
  94. package/dist/components/Icons/Outward.d.ts +3 -0
  95. package/dist/components/Icons/PayApprove.d.ts +3 -0
  96. package/dist/components/Icons/PayInactive.d.ts +3 -0
  97. package/dist/components/Icons/Personcard.d.ts +3 -0
  98. package/dist/components/Icons/PrintInactive.d.ts +3 -0
  99. package/dist/components/Icons/PrintPlay.d.ts +3 -0
  100. package/dist/components/Icons/Product.d.ts +3 -0
  101. package/dist/components/Icons/Search.d.ts +3 -0
  102. package/dist/components/Icons/Settings.d.ts +3 -0
  103. package/dist/components/Icons/ShippingDone.d.ts +3 -0
  104. package/dist/components/Icons/SupportAgent.d.ts +3 -0
  105. package/dist/components/Icons/SwapVert.d.ts +3 -0
  106. package/dist/components/Icons/Task.d.ts +3 -0
  107. package/dist/components/Icons/Upload.d.ts +3 -0
  108. package/dist/components/Icons/User.d.ts +3 -0
  109. package/dist/components/Icons/Warning.d.ts +3 -0
  110. package/dist/components/Icons/WarningAmber.d.ts +3 -0
  111. package/dist/components/Icons/WarningFilled.d.ts +3 -0
  112. package/dist/components/Icons/index.d.ts +62 -0
  113. package/dist/components/LNB/LNB.context.d.ts +22 -0
  114. package/dist/components/LNB/LNB.d.ts +48 -0
  115. package/dist/components/LNB/makeNavigation.d.ts +21 -0
  116. package/dist/components/Label/Label.colors.d.ts +219 -0
  117. package/dist/components/Label/Label.d.ts +10 -0
  118. package/dist/components/LazyImage/LazyImage.d.ts +10 -0
  119. package/dist/components/List/List.d.ts +22 -0
  120. package/dist/components/MobilePicker/MobilePicker.context.d.ts +11 -0
  121. package/dist/components/MobilePicker/MobilePicker.d.ts +47 -0
  122. package/dist/components/Modal/Modal.d.ts +9 -0
  123. package/dist/components/Pagination/Pagination.colors.d.ts +75 -0
  124. package/dist/components/Pagination/Pagination.context.d.ts +18 -0
  125. package/dist/components/Pagination/Pagination.d.ts +29 -0
  126. package/dist/components/Popup/Popup.context.d.ts +7 -0
  127. package/dist/components/Popup/Popup.d.ts +41 -0
  128. package/dist/components/QRCode/QRCode.d.ts +11 -0
  129. package/dist/components/ScrollCalendar/ScrollCalendar.context.d.ts +14 -0
  130. package/dist/components/ScrollCalendar/ScrollCalendar.d.ts +32 -0
  131. package/dist/components/ScrollSpy/ScrollSpy.d.ts +8 -0
  132. package/dist/components/Sheet/Sheet.context.d.ts +22 -0
  133. package/dist/components/Sheet/Sheet.d.ts +16 -0
  134. package/dist/components/Slider/Slider.backup.d.ts +35 -0
  135. package/dist/components/Slider/Slider.context.d.ts +36 -0
  136. package/dist/components/Slider/Slider.d.ts +41 -0
  137. package/dist/components/Stepper/Stepper.context.d.ts +22 -0
  138. package/dist/components/Stepper/Stepper.d.ts +24 -0
  139. package/dist/components/Tab/Tab.colors.d.ts +5 -0
  140. package/dist/components/Tab/Tab.context.d.ts +26 -0
  141. package/dist/components/Tab/Tab.d.ts +34 -0
  142. package/dist/components/Tab/cx.d.ts +2 -0
  143. package/dist/components/Table/Table.context.d.ts +10 -0
  144. package/dist/components/Table/Table.d.ts +32 -0
  145. package/dist/components/Table/Table.hook.d.ts +6 -0
  146. package/dist/components/Thumbnail/Thumbnail.context.d.ts +27 -0
  147. package/dist/components/Thumbnail/Thumbnail.d.ts +39 -0
  148. package/dist/components/TimeInput/TimeInput.colors.d.ts +67 -0
  149. package/dist/components/TimeInput/TimeInput.context.d.ts +47 -0
  150. package/dist/components/TimeInput/TimeInput.d.ts +47 -0
  151. package/dist/components/WeeklyCalendar/WeeklyCalendar.context.d.ts +70 -0
  152. package/dist/components/WeeklyCalendar/WeeklyCalendar.d.ts +31 -0
  153. package/dist/components/WeeklyCalendar/dayjs.util.d.ts +100 -0
  154. package/dist/components/WeeklyCalendar/weeklyCalendar.util.d.ts +76 -0
  155. package/dist/components/WisywygEditor/Quill/Editor.d.ts +15 -0
  156. package/dist/constant/locale.constant.d.ts +1 -0
  157. package/dist/hooks/useColorScheme.d.ts +4 -0
  158. package/dist/hooks/useElementRect.d.ts +19 -0
  159. package/dist/hooks/useIntersectionObserver.d.ts +7 -0
  160. package/dist/index.css +7 -0
  161. package/dist/index.d.ts +44 -0
  162. package/dist/index.js +51685 -0
  163. package/dist/index.umd.cjs +203 -0
  164. package/dist/styles/baseColor.d.ts +264 -0
  165. package/dist/styles/color.d.ts +6 -0
  166. package/dist/styles/color2.d.ts +102 -0
  167. package/dist/utils/aws.util.d.ts +60 -0
  168. package/dist/utils/common.utill.d.ts +4 -0
  169. package/package.json +9 -4
  170. package/eslint.config.js +0 -29
  171. package/index.html +0 -13
  172. package/scripts/icons/setIcon.cjs +0 -151
  173. package/scripts/icons/svg-template.cjs +0 -18
  174. package/scripts/icons/svgo-config.json +0 -9
  175. package/scripts/icons/svgr-config.json +0 -16
  176. package/src/@types/color.d.ts +0 -51
  177. package/src/@types/common.d.ts +0 -6
  178. package/src/@types/extends/react.extends.d.ts +0 -7
  179. package/src/@types/quill-image-resize-module-react/index.d.ts +0 -1
  180. package/src/App.tsx +0 -84
  181. package/src/assets/react.svg +0 -1
  182. package/src/components/Accordion/Accordion.context.tsx +0 -62
  183. package/src/components/Accordion/Accordion.module.scss +0 -163
  184. package/src/components/Accordion/Accordion.tsx +0 -242
  185. package/src/components/Accordion/README.md +0 -408
  186. package/src/components/Accordion/images/as_trigger.gif +0 -0
  187. package/src/components/Accordion/images/closed.png +0 -0
  188. package/src/components/Accordion/images/open.png +0 -0
  189. package/src/components/Accordion/images/thumbnail1.png +0 -0
  190. package/src/components/Accordion/images/thumbnail2.png +0 -0
  191. package/src/components/Accordion/images/thumbnail3.png +0 -0
  192. package/src/components/Avatar/Avatar.module.scss +0 -47
  193. package/src/components/Avatar/Avatar.tsx +0 -230
  194. package/src/components/Avatar/README.md +0 -333
  195. package/src/components/Badge/Badge.module.scss +0 -49
  196. package/src/components/Badge/Badge.tsx +0 -87
  197. package/src/components/Badge/README.md +0 -223
  198. package/src/components/BarCode/BarCode.module.scss +0 -0
  199. package/src/components/BarCode/BarCode.tsx +0 -153
  200. package/src/components/Breadcrumb/Breadcrumb.module.scss +0 -36
  201. package/src/components/Breadcrumb/Breadcrumb.tsx +0 -114
  202. package/src/components/Breadcrumb/README.md +0 -339
  203. package/src/components/Button/Button.colors.tsx +0 -322
  204. package/src/components/Button/Button.context.tsx +0 -47
  205. package/src/components/Button/Button.module.scss +0 -156
  206. package/src/components/Button/Button.tsx +0 -190
  207. package/src/components/Button/Button.type.ts +0 -11
  208. package/src/components/Calendar/Calendar.context.tsx +0 -138
  209. package/src/components/Calendar/Calendar.module.scss +0 -116
  210. package/src/components/Calendar/Calendar.tsx +0 -440
  211. package/src/components/Calendar/dayjs.util.ts +0 -312
  212. package/src/components/Cascader/Cacader.data.ts +0 -1185
  213. package/src/components/Cascader/Cascader.context.tsx +0 -61
  214. package/src/components/Cascader/Cascader.hook.ts +0 -502
  215. package/src/components/Cascader/Cascader.module.scss +0 -143
  216. package/src/components/Cascader/Cascader.tsx +0 -281
  217. package/src/components/Cascader/README.md +0 -735
  218. package/src/components/Chart/Chart.module.scss +0 -0
  219. package/src/components/Chart/Chart.tsx +0 -230
  220. package/src/components/Chart/README.md +0 -85
  221. package/src/components/Chart/images/barChart.png +0 -0
  222. package/src/components/Chips/Chips.colors.tsx +0 -185
  223. package/src/components/Chips/Chips.module.scss +0 -49
  224. package/src/components/Chips/Chips.tsx +0 -78
  225. package/src/components/Comment/Comment.module.scss +0 -14
  226. package/src/components/Comment/Comment.tsx +0 -105
  227. package/src/components/Dialog/Dialog.module.scss +0 -0
  228. package/src/components/Dialog/Dialog.tsx +0 -12
  229. package/src/components/Divider/Divider.module.scss +0 -12
  230. package/src/components/Divider/Divider.tsx +0 -33
  231. package/src/components/Editor/Editor.context.tsx +0 -12
  232. package/src/components/Editor/Editor.module.scss +0 -40
  233. package/src/components/Editor/Editor.tsx +0 -174
  234. package/src/components/Form/CheckBox/CheckBox.context.tsx +0 -56
  235. package/src/components/Form/CheckBox/CheckBox.module.scss +0 -81
  236. package/src/components/Form/CheckBox/CheckBox.tsx +0 -196
  237. package/src/components/Form/CheckBox/Checkbox.colors.tsx +0 -42
  238. package/src/components/Form/Dropdown/Dropdown.colors.tsx +0 -125
  239. package/src/components/Form/Dropdown/Dropdown.context.tsx +0 -62
  240. package/src/components/Form/Dropdown/Dropdown.module.scss +0 -133
  241. package/src/components/Form/Dropdown/Dropdown.tsx +0 -404
  242. package/src/components/Form/OTPInput/OTPInput.context.tsx +0 -104
  243. package/src/components/Form/OTPInput/OTPInput.module.scss +0 -22
  244. package/src/components/Form/OTPInput/OTPInput.tsx +0 -67
  245. package/src/components/Form/Radio/Radio.colors.tsx +0 -42
  246. package/src/components/Form/Radio/Radio.context.tsx +0 -40
  247. package/src/components/Form/Radio/Radio.module.scss +0 -61
  248. package/src/components/Form/Radio/Radio.tsx +0 -174
  249. package/src/components/Form/Switch/Switch.colors.tsx +0 -42
  250. package/src/components/Form/Switch/Switch.context.tsx +0 -50
  251. package/src/components/Form/Switch/Switch.module.scss +0 -53
  252. package/src/components/Form/Switch/Switch.tsx +0 -151
  253. package/src/components/Form/TextArea/TextArea.colors.tsx +0 -76
  254. package/src/components/Form/TextArea/TextArea.context.tsx +0 -97
  255. package/src/components/Form/TextArea/TextArea.module.scss +0 -138
  256. package/src/components/Form/TextArea/TextArea.tsx +0 -246
  257. package/src/components/Form/TextInput/TextInput.colors.tsx +0 -76
  258. package/src/components/Form/TextInput/TextInput.context.tsx +0 -106
  259. package/src/components/Form/TextInput/TextInput.module.scss +0 -160
  260. package/src/components/Form/TextInput/TextInput.tsx +0 -225
  261. package/src/components/GlobalStyle/GlobalStyle.tsx +0 -20
  262. package/src/components/HelperText/HelperText.module.scss +0 -28
  263. package/src/components/HelperText/HelperText.tsx +0 -130
  264. package/src/components/Icon/Icon.tsx +0 -29
  265. package/src/components/Icons/Add.tsx +0 -20
  266. package/src/components/Icons/AddAPhoto.tsx +0 -21
  267. package/src/components/Icons/ApprovalInactive.tsx +0 -26
  268. package/src/components/Icons/ArrowRight.tsx +0 -24
  269. package/src/components/Icons/AttachFile.tsx +0 -20
  270. package/src/components/Icons/Cancle.tsx +0 -20
  271. package/src/components/Icons/CancleFilled.tsx +0 -20
  272. package/src/components/Icons/Cart.tsx +0 -20
  273. package/src/components/Icons/CartFilled.tsx +0 -20
  274. package/src/components/Icons/Check.tsx +0 -20
  275. package/src/components/Icons/CheckBoxRound.tsx +0 -21
  276. package/src/components/Icons/CheckCircle.tsx +0 -35
  277. package/src/components/Icons/Close.tsx +0 -20
  278. package/src/components/Icons/Company.tsx +0 -20
  279. package/src/components/Icons/Download.tsx +0 -20
  280. package/src/components/Icons/DragHandle.tsx +0 -20
  281. package/src/components/Icons/Eco.tsx +0 -20
  282. package/src/components/Icons/EditSquare.tsx +0 -20
  283. package/src/components/Icons/Error.tsx +0 -20
  284. package/src/components/Icons/ErrorFilled.tsx +0 -20
  285. package/src/components/Icons/ExpandAll.tsx +0 -20
  286. package/src/components/Icons/ExpandLess.tsx +0 -20
  287. package/src/components/Icons/ExpandMore.tsx +0 -20
  288. package/src/components/Icons/Factory.tsx +0 -20
  289. package/src/components/Icons/FileUpload.tsx +0 -20
  290. package/src/components/Icons/FilecheckInactive.tsx +0 -22
  291. package/src/components/Icons/GoBefore.tsx +0 -20
  292. package/src/components/Icons/GoNext.tsx +0 -20
  293. package/src/components/Icons/HamburgerMenu.tsx +0 -20
  294. package/src/components/Icons/ImagecheckPlay.tsx +0 -27
  295. package/src/components/Icons/Inventory.tsx +0 -20
  296. package/src/components/Icons/KakaoTalk.tsx +0 -22
  297. package/src/components/Icons/ListAll.tsx +0 -20
  298. package/src/components/Icons/LocalShipping.tsx +0 -20
  299. package/src/components/Icons/Logout.tsx +0 -20
  300. package/src/components/Icons/Menu.tsx +0 -20
  301. package/src/components/Icons/Minus.tsx +0 -18
  302. package/src/components/Icons/ModeEdit.tsx +0 -25
  303. package/src/components/Icons/More.tsx +0 -20
  304. package/src/components/Icons/Naver.tsx +0 -20
  305. package/src/components/Icons/NaverBlog.tsx +0 -22
  306. package/src/components/Icons/OrderApprove.tsx +0 -20
  307. package/src/components/Icons/OrderInactive.tsx +0 -20
  308. package/src/components/Icons/OrderPlay.tsx +0 -20
  309. package/src/components/Icons/Outward.tsx +0 -20
  310. package/src/components/Icons/PayApprove.tsx +0 -24
  311. package/src/components/Icons/PayInactive.tsx +0 -24
  312. package/src/components/Icons/Personcard.tsx +0 -20
  313. package/src/components/Icons/PrintInactive.tsx +0 -24
  314. package/src/components/Icons/PrintPlay.tsx +0 -24
  315. package/src/components/Icons/Product.tsx +0 -20
  316. package/src/components/Icons/Search.tsx +0 -20
  317. package/src/components/Icons/Settings.tsx +0 -20
  318. package/src/components/Icons/ShippingDone.tsx +0 -20
  319. package/src/components/Icons/SupportAgent.tsx +0 -20
  320. package/src/components/Icons/SwapVert.tsx +0 -21
  321. package/src/components/Icons/Task.tsx +0 -20
  322. package/src/components/Icons/Upload.tsx +0 -20
  323. package/src/components/Icons/User.tsx +0 -20
  324. package/src/components/Icons/Warning.tsx +0 -20
  325. package/src/components/Icons/WarningAmber.tsx +0 -21
  326. package/src/components/Icons/WarningFilled.tsx +0 -20
  327. package/src/components/Icons/index.ts +0 -62
  328. package/src/components/LNB/LNB.context.tsx +0 -32
  329. package/src/components/LNB/LNB.module.scss +0 -99
  330. package/src/components/LNB/LNB.tsx +0 -190
  331. package/src/components/LNB/README.md +0 -411
  332. package/src/components/LNB/makeNavigation.ts +0 -51
  333. package/src/components/LNB/navigation.d.ts +0 -15
  334. package/src/components/LNB/navigation.json +0 -211
  335. package/src/components/Label/Label.colors.tsx +0 -241
  336. package/src/components/Label/Label.module.scss +0 -31
  337. package/src/components/Label/Label.tsx +0 -54
  338. package/src/components/LazyImage/LazyImage.module.scss +0 -6
  339. package/src/components/LazyImage/LazyImage.tsx +0 -107
  340. package/src/components/List/List.module.scss +0 -81
  341. package/src/components/List/List.tsx +0 -91
  342. package/src/components/List/README.md +0 -87
  343. package/src/components/MobilePicker/MobilePicker.context.tsx +0 -22
  344. package/src/components/MobilePicker/MobilePicker.module.scss +0 -57
  345. package/src/components/MobilePicker/MobilePicker.tsx +0 -336
  346. package/src/components/MobilePicker/README.md +0 -159
  347. package/src/components/Modal/Modal.tsx +0 -77
  348. package/src/components/Modal/README.md +0 -130
  349. package/src/components/Pagination/Pagination.colors.tsx +0 -85
  350. package/src/components/Pagination/Pagination.context.tsx +0 -28
  351. package/src/components/Pagination/Pagination.module.scss +0 -60
  352. package/src/components/Pagination/Pagination.tsx +0 -234
  353. package/src/components/Popup/Popup.context.tsx +0 -15
  354. package/src/components/Popup/Popup.module.scss +0 -53
  355. package/src/components/Popup/Popup.tsx +0 -116
  356. package/src/components/Popup/README.md +0 -170
  357. package/src/components/QRCode/QRCode.module.scss +0 -2
  358. package/src/components/QRCode/QRCode.tsx +0 -61
  359. package/src/components/ScrollCalendar/ScrollCalendar.context.tsx +0 -26
  360. package/src/components/ScrollCalendar/ScrollCalendar.module.scss +0 -42
  361. package/src/components/ScrollCalendar/ScrollCalendar.tsx +0 -448
  362. package/src/components/ScrollSpy/README.md +0 -62
  363. package/src/components/ScrollSpy/ScrollSpy.tsx +0 -130
  364. package/src/components/Sheet/README.md +0 -92
  365. package/src/components/Sheet/Sheet.context.tsx +0 -23
  366. package/src/components/Sheet/Sheet.module.scss +0 -68
  367. package/src/components/Sheet/Sheet.tsx +0 -146
  368. package/src/components/Slider/README.md +0 -639
  369. package/src/components/Slider/Slider.backup.tsx +0 -477
  370. package/src/components/Slider/Slider.context.tsx +0 -67
  371. package/src/components/Slider/Slider.module.scss +0 -123
  372. package/src/components/Slider/Slider.tsx +0 -467
  373. package/src/components/Stepper/README.md +0 -320
  374. package/src/components/Stepper/Stepper.context.tsx +0 -49
  375. package/src/components/Stepper/Stepper.module.scss +0 -163
  376. package/src/components/Stepper/Stepper.tsx +0 -219
  377. package/src/components/Tab/Tab.colors.tsx +0 -54
  378. package/src/components/Tab/Tab.context.tsx +0 -64
  379. package/src/components/Tab/Tab.module.scss +0 -239
  380. package/src/components/Tab/Tab.tsx +0 -123
  381. package/src/components/Tab/cx.ts +0 -6
  382. package/src/components/Table/README.md +0 -162
  383. package/src/components/Table/Table.context.tsx +0 -23
  384. package/src/components/Table/Table.hook.ts +0 -51
  385. package/src/components/Table/Table.module.scss +0 -83
  386. package/src/components/Table/Table.tsx +0 -147
  387. package/src/components/Thumbnail/README.md +0 -302
  388. package/src/components/Thumbnail/Thumbnail.context.tsx +0 -42
  389. package/src/components/Thumbnail/Thumbnail.module.scss +0 -149
  390. package/src/components/Thumbnail/Thumbnail.tsx +0 -391
  391. package/src/components/TimeInput/README.md +0 -118
  392. package/src/components/TimeInput/TimeInput.colors.tsx +0 -76
  393. package/src/components/TimeInput/TimeInput.context.tsx +0 -58
  394. package/src/components/TimeInput/TimeInput.module.scss +0 -211
  395. package/src/components/TimeInput/TimeInput.tsx +0 -411
  396. package/src/components/WeeklyCalendar/WeeklyCalendar.context.tsx +0 -88
  397. package/src/components/WeeklyCalendar/WeeklyCalendar.module.scss +0 -225
  398. package/src/components/WeeklyCalendar/WeeklyCalendar.tsx +0 -772
  399. package/src/components/WeeklyCalendar/dayjs.util.ts +0 -336
  400. package/src/components/WeeklyCalendar/weeklyCalendar.util.ts +0 -583
  401. package/src/components/WisywygEditor/Quill/Editor.tsx +0 -148
  402. package/src/constant/locale.constant.ts +0 -6
  403. package/src/globals.scss +0 -80
  404. package/src/hooks/useColorScheme.tsx +0 -48
  405. package/src/hooks/useElementRect.tsx +0 -128
  406. package/src/hooks/useIntersectionObserver.tsx +0 -33
  407. package/src/index.css +0 -17
  408. package/src/index.ts +0 -187
  409. package/src/main.tsx +0 -10
  410. package/src/styles/_fontSize.mixin.scss +0 -57
  411. package/src/styles/_fontWeight.mixin.scss +0 -15
  412. package/src/styles/_lineHeight.mixin.scss +0 -57
  413. package/src/styles/_scrollbar.mixin.scss +0 -49
  414. package/src/styles/baseColor.ts +0 -297
  415. package/src/styles/color.ts +0 -272
  416. package/src/styles/color2.ts +0 -200
  417. package/src/styles/scrollbar.README.md +0 -72
  418. package/src/styles/typography.scss +0 -170
  419. package/src/utils/aws.util.ts +0 -180
  420. package/src/utils/common.utill.ts +0 -45
  421. package/src/vite-env.d.ts +0 -1
  422. package/tsconfig.app.json +0 -24
  423. package/tsconfig.json +0 -29
  424. package/tsconfig.node.json +0 -10
  425. package/tsconfig.node.tsbuildinfo +0 -1
  426. package/tsconfig.tsbuildinfo +0 -1
  427. package/vite.config.d.ts +0 -2
  428. package/vite.config.js +0 -47
  429. package/vite.config.ts +0 -50
  430. /package/{src/App.css → dist/main.d.ts} +0 -0
  431. /package/{public → dist}/static/icon/Add.svg +0 -0
  432. /package/{public → dist}/static/icon/ApprovalInactive.svg +0 -0
  433. /package/{public → dist}/static/icon/ArrowRight.svg +0 -0
  434. /package/{public → dist}/static/icon/Cancle Filled.svg +0 -0
  435. /package/{public → dist}/static/icon/Cancle.svg +0 -0
  436. /package/{public → dist}/static/icon/Cart Filled.svg +0 -0
  437. /package/{public → dist}/static/icon/Cart.svg +0 -0
  438. /package/{public → dist}/static/icon/Check.svg +0 -0
  439. /package/{public → dist}/static/icon/CheckBoxRound.svg +0 -0
  440. /package/{public → dist}/static/icon/Company.svg +0 -0
  441. /package/{public → dist}/static/icon/DragHandle.svg +0 -0
  442. /package/{public → dist}/static/icon/Eco.svg +0 -0
  443. /package/{public → dist}/static/icon/EditSquare.svg +0 -0
  444. /package/{public → dist}/static/icon/Error Filled.svg +0 -0
  445. /package/{public → dist}/static/icon/Error.svg +0 -0
  446. /package/{public → dist}/static/icon/File Upload.svg +0 -0
  447. /package/{public → dist}/static/icon/FilecheckInactive.svg +0 -0
  448. /package/{public → dist}/static/icon/Go Before.svg +0 -0
  449. /package/{public → dist}/static/icon/Go Next.svg +0 -0
  450. /package/{public → dist}/static/icon/Hamburger Menu.svg +0 -0
  451. /package/{public → dist}/static/icon/ImagecheckPlay.svg +0 -0
  452. /package/{public → dist}/static/icon/Kakao Talk.svg +0 -0
  453. /package/{public → dist}/static/icon/Minus.svg +0 -0
  454. /package/{public → dist}/static/icon/Naver Blog.svg +0 -0
  455. /package/{public → dist}/static/icon/Naver.svg +0 -0
  456. /package/{public → dist}/static/icon/OrderApprove.svg +0 -0
  457. /package/{public → dist}/static/icon/OrderInactive.svg +0 -0
  458. /package/{public → dist}/static/icon/OrderPlay.svg +0 -0
  459. /package/{public → dist}/static/icon/PayApprove.svg +0 -0
  460. /package/{public → dist}/static/icon/PayInactive.svg +0 -0
  461. /package/{public → dist}/static/icon/PrintInactive.svg +0 -0
  462. /package/{public → dist}/static/icon/PrintPlay.svg +0 -0
  463. /package/{public → dist}/static/icon/Search.svg +0 -0
  464. /package/{public → dist}/static/icon/ShippingDone.svg +0 -0
  465. /package/{public → dist}/static/icon/Support Agent.svg +0 -0
  466. /package/{public → dist}/static/icon/Task.svg +0 -0
  467. /package/{public → dist}/static/icon/User.svg +0 -0
  468. /package/{public → dist}/static/icon/Warning Filled.svg +0 -0
  469. /package/{public → dist}/static/icon/Warning.svg +0 -0
  470. /package/{public → dist}/static/icon/add_a_photo.svg +0 -0
  471. /package/{public → dist}/static/icon/attach_file.svg +0 -0
  472. /package/{public → dist}/static/icon/check_circle.svg +0 -0
  473. /package/{public → dist}/static/icon/close.svg +0 -0
  474. /package/{public → dist}/static/icon/download.svg +0 -0
  475. /package/{public → dist}/static/icon/expand all.svg +0 -0
  476. /package/{public → dist}/static/icon/expand_less.svg +0 -0
  477. /package/{public → dist}/static/icon/expand_more.svg +0 -0
  478. /package/{public → dist}/static/icon/factory.svg +0 -0
  479. /package/{public → dist}/static/icon/inventory.svg +0 -0
  480. /package/{public → dist}/static/icon/listAll.svg +0 -0
  481. /package/{public → dist}/static/icon/local_shipping.svg +0 -0
  482. /package/{public → dist}/static/icon/logout.svg +0 -0
  483. /package/{public → dist}/static/icon/menu.svg +0 -0
  484. /package/{public → dist}/static/icon/mode_edit.svg +0 -0
  485. /package/{public → dist}/static/icon/more.svg +0 -0
  486. /package/{public → dist}/static/icon/outward.svg +0 -0
  487. /package/{public → dist}/static/icon/personcard.svg +0 -0
  488. /package/{public → dist}/static/icon/product.svg +0 -0
  489. /package/{public → dist}/static/icon/settings.svg +0 -0
  490. /package/{public → dist}/static/icon/swap_vert.svg +0 -0
  491. /package/{public → dist}/static/icon/upload.svg +0 -0
  492. /package/{public → dist}/static/icon/warning_amber.svg +0 -0
  493. /package/{public → dist}/static/image/Thumbnail.png +0 -0
  494. /package/{public → dist}/vite.svg +0 -0
  495. /package/{public → dist}/weing_logo_final.png +0 -0
@@ -1,772 +0,0 @@
1
- /* eslint-disable react-refresh/only-export-components */
2
- "use client";
3
- import React from "react";
4
- import styles from "./WeeklyCalendar.module.scss";
5
- import cn from "classnames/bind";
6
- import { DndContext, useDraggable, useDroppable } from "@dnd-kit/core";
7
- import {
8
- type EventItem as EventItemType,
9
- initialState,
10
- WeeklyCalendarContext,
11
- WeeklyCalendarProviderProps,
12
- } from "./WeeklyCalendar.context";
13
- import { getDayText, getGmtString } from "./dayjs.util";
14
- import dayjs from "dayjs";
15
- import {
16
- getNearestStepTime,
17
- layoutEventsWithColumns,
18
- splitEventsConsideringAllDay,
19
- } from "./weeklyCalendar.util";
20
- import minmax from "dayjs/plugin/minMax";
21
- import { usePopper } from "react-popper";
22
-
23
- dayjs.extend(minmax);
24
-
25
- const cx = cn.bind(styles);
26
-
27
- type DateColumnRowProps = {
28
- onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;
29
- };
30
-
31
- type EventItemProps = React.PropsWithChildren<{
32
- startTime: string;
33
- endTime?: string;
34
- id: string;
35
- height: string | number;
36
- widthPercent: number;
37
- leftPercent: number;
38
- topPercent: number;
39
- title: string;
40
- realStartTime?: string;
41
- realEndTime?: string;
42
- }>;
43
-
44
- const EventItem = (props: EventItemProps) => {
45
- const {
46
- id,
47
- height,
48
- widthPercent,
49
- leftPercent,
50
- topPercent,
51
- title,
52
- realStartTime,
53
- realEndTime,
54
- } = props;
55
-
56
- const {
57
- currentDate,
58
- columnCount,
59
- enableMoveByDrag,
60
- popperHideDelay,
61
- popperOffset,
62
- eventItemAs,
63
- eventItemPopperAs,
64
- } = React.useContext(WeeklyCalendarContext);
65
-
66
- const {
67
- setNodeRef,
68
- listeners,
69
- attributes: dragAttributes,
70
- transform,
71
- active,
72
- } = useDraggable({
73
- id,
74
- data: {
75
- supports: new Array(columnCount).fill(0).map((_, i) => {
76
- return dayjs(currentDate).add(i, "day").format("YYYY-MM-DD");
77
- }),
78
- attributes: {
79
- "data-id": id,
80
- },
81
- },
82
- });
83
-
84
- // (1) popper 참조 관리
85
- const [referenceElement, setReferenceElement] =
86
- React.useState<HTMLElement | null>(null);
87
- const [popperElement, setPopperElement] =
88
- React.useState<HTMLDivElement | null>(null);
89
- const [arrowElement, setArrowElement] = React.useState<HTMLDivElement | null>(
90
- null
91
- );
92
-
93
- // (2) hover 상태 -> 툴팁 표시 여부 상태로 변경
94
- const [showPopper, setShowPopper] = React.useState(false);
95
- // 타이머 ID를 저장하기 위한 ref
96
- const hidePopperTimeoutRef = React.useRef<number | null>(null);
97
-
98
- // (3) Popper 설정
99
- const { styles, attributes } = usePopper(referenceElement, popperElement, {
100
- placement: "auto", // \`)
101
- modifiers: [
102
- { name: "arrow", options: { element: arrowElement } },
103
- { name: "offset", options: { offset: popperOffset } }, // y축으로 8px 정도 띄움
104
- ],
105
- });
106
-
107
- const isSame = active?.id === id;
108
-
109
- // 툴팁을 보여주는 함수
110
- const handleShowPopper = React.useCallback(() => {
111
- if (hidePopperTimeoutRef.current) {
112
- clearTimeout(hidePopperTimeoutRef.current);
113
- hidePopperTimeoutRef.current = null;
114
- }
115
- setShowPopper(true);
116
- }, []);
117
-
118
- // 툴팁을 숨기는 함수 (지연 시간 적용)
119
- const handleHidePopper = React.useCallback(() => {
120
- hidePopperTimeoutRef.current = window.setTimeout(() => {
121
- setShowPopper(false);
122
- }, popperHideDelay); // 200ms 지연. 이 시간을 조절하여 반응성을 변경할 수 있습니다.
123
- }, [popperHideDelay]);
124
-
125
- const eventItemRender = () => {
126
- if (eventItemAs) {
127
- return React.createElement(eventItemAs, {
128
- key: id,
129
- ...props,
130
- onMouseEnter: handleShowPopper, // 마우스가 참조 요소 위로 올라가면 툴팁 보이기
131
- onMouseLeave: handleHidePopper, // 마우스가 참조 요소에서 벗어나면 툴팁 숨기기 (지연)
132
- ref: setReferenceElement,
133
- style: {
134
- top: `${topPercent}%`,
135
- height,
136
- width: `min(${widthPercent}%, 100%)`,
137
- left: `${leftPercent}%`,
138
- color: "black",
139
- overflow: "hidden",
140
- alignSelf: "flex-start",
141
- position: "absolute",
142
- borderRadius: 4,
143
- cursor: enableMoveByDrag ? "move" : "default",
144
- transform:
145
- enableMoveByDrag && transform
146
- ? `translate(${transform.x}px, ${transform.y}px)`
147
- : undefined,
148
- },
149
- });
150
- }
151
-
152
- return null;
153
- };
154
-
155
- const eventItemPopperRender = () => {
156
- if (eventItemPopperAs) {
157
- // 커스텀 Popper 컴포넌트를 사용할 때, 해당 컴포넌트가 onMouseEnter와 onMouseLeave를
158
- // 내부적으로 자신의 최상위 요소에 바인딩해야 합니다.
159
- // 또한, 커스텀 컴포넌트의 최상위 요소는 pointerEvents가 'none'이 아니어야 합니다.
160
- return React.createElement(eventItemPopperAs, {
161
- ...props,
162
- popperRef: setPopperElement,
163
- onMouseEnter: handleShowPopper, // 마우스가 커스텀 Popper 위로 올라가면 툴팁 보이기 (숨김 타이머 취소)
164
- onMouseLeave: handleHidePopper, // 마우스가 커스텀 Popper에서 벗어나면 툴팁 숨기기 (지연)
165
- popperStyle: {
166
- ...styles.popper,
167
- // pointerEvents: "none", // 툴팁 자체는 클릭 막기 (원한다면) -> 마우스 이벤트 유지를 위해 제거 또는 주석 해제 필요
168
- zIndex: 9999,
169
- background: "#333", // 기본 스타일 예시, 커스텀 컴포넌트에서 재정의 가능
170
- color: "#fff",
171
- padding: "6px 8px",
172
- borderRadius: 4,
173
- fontSize: 12,
174
- boxShadow: "0 2px 4px rgba(0,0,0,0.3)",
175
- },
176
- popperAttributes: {
177
- ...attributes.popper,
178
- },
179
- title,
180
- realStartTime,
181
- realEndTime,
182
- arrowRef: setArrowElement,
183
- arrowStyle: {
184
- ...styles.arrow,
185
- width: "8px",
186
- height: "8px",
187
- transform: "rotate(90deg)",
188
- },
189
- arrowAttributes: {
190
- ...attributes.arrow,
191
- },
192
- });
193
- }
194
-
195
- return null;
196
- };
197
-
198
- return (
199
- <div
200
- {...(enableMoveByDrag ? dragAttributes : {})}
201
- {...(enableMoveByDrag ? listeners : {})}
202
- ref={setNodeRef}
203
- >
204
- {eventItemAs ? (
205
- eventItemRender()
206
- ) : (
207
- <div
208
- key={id}
209
- data-id={id}
210
- className={cx("EventItem", {
211
- dragging: isSame && enableMoveByDrag,
212
- draggable: enableMoveByDrag,
213
- })}
214
- ref={setReferenceElement} // Popper 참조 요소로 등록
215
- style={{
216
- top: `${topPercent}%`,
217
- height,
218
- width: `min(${widthPercent}%, 100%)`,
219
- left: `${leftPercent}%`,
220
- color: "white",
221
- overflow: "hidden",
222
- alignSelf: "flex-start",
223
- position: "absolute",
224
- borderRadius: 4,
225
- border: "1px solid #ccc",
226
- cursor: enableMoveByDrag ? "move" : "default",
227
- transform:
228
- enableMoveByDrag && transform
229
- ? `translate(${transform.x}px, ${transform.y}px)`
230
- : undefined,
231
- }}
232
- onMouseEnter={handleShowPopper} // 마우스가 참조 요소 위로 올라가면 툴팁 보이기
233
- onMouseLeave={handleHidePopper} // 마우스가 참조 요소에서 벗어나면 툴팁 숨기기 (지연)
234
- onMouseDown={(e) => {
235
- if (!enableMoveByDrag) return;
236
- e.stopPropagation();
237
- }}
238
- onClick={(e) => {
239
- e.stopPropagation();
240
- }}
241
- >
242
- {title}
243
- </div>
244
- )}
245
-
246
- {!isSame &&
247
- showPopper && // isHover 대신 showPopper 사용 -> showPopper 상태에 따라 툴팁 렌더링
248
- (eventItemPopperAs ? (
249
- eventItemPopperRender()
250
- ) : (
251
- // 기본 Popper 렌더링
252
- <div
253
- ref={setPopperElement}
254
- onMouseEnter={handleShowPopper} // 마우스가 기본 Popper 위로 올라가면 툴팁 보이기 (숨김 타이머 취소)
255
- onMouseLeave={handleHidePopper} // 마우스가 기본 Popper에서 벗어나면 툴팁 숨기기 (지연)
256
- style={{
257
- ...styles.popper,
258
- // pointerEvents: "none", // 툴팁 자체는 클릭 막기 (원한다면) -> 이 줄이 있으면 Popper 위에서 마우스 이벤트 감지 안됨. 제거 또는 주석 처리.
259
- // 사용자가 원한 동작을 위해서는 제거되어야 합니다.
260
- zIndex: 9999,
261
- background: "#333",
262
- color: "#fff",
263
- padding: "6px 8px",
264
- borderRadius: 4,
265
- fontSize: 12,
266
- boxShadow: "0 2px 4px rgba(0,0,0,0.3)",
267
- }}
268
- {...attributes.popper}
269
- >
270
- {/* 툴팁 콘텐츠 예시 */}
271
- <div style={{ whiteSpace: "nowrap" }}>
272
- <div>
273
- <strong>{title}</strong>
274
- </div>
275
- <div>
276
- {dayjs(realStartTime).format("MM.DD HH:mm")}
277
- {realEndTime &&
278
- ` ~ ${dayjs(realEndTime).format("MM.DD HH:mm")}`}
279
- </div>
280
- </div>
281
- {/* 화살표 (Arrow) */}
282
- <div
283
- ref={setArrowElement}
284
- style={{
285
- ...styles.arrow,
286
- width: "8px",
287
- height: "8px",
288
- // background: "#333",
289
- transform: "rotate(90deg)",
290
- }}
291
- {...attributes.arrow}
292
- />
293
- </div>
294
- ))}
295
- </div>
296
- );
297
- };
298
-
299
- type DateColumnProps = {
300
- date: string;
301
- };
302
-
303
- const DateColumn = (props: DateColumnProps) => {
304
- const { date } = props;
305
- const {
306
- minHour,
307
- maxHour,
308
- step,
309
- events = [],
310
- enableCreateByDrag,
311
- itemHeight = 48,
312
- type = "default",
313
- } = React.useContext(WeeklyCalendarContext);
314
-
315
- const [col, setCol] = React.useState<HTMLDivElement | null>(null);
316
- const [topValue, setTopValue] = React.useState<number | null>(null);
317
- const { setNodeRef } = useDroppable({
318
- id: date,
319
- });
320
-
321
- const results = layoutEventsWithColumns({
322
- events: events.filter((event) => {
323
- return (
324
- !event.isAllDay && dayjs(event.startTime).format("YYYY-MM-DD") === date
325
- );
326
- }),
327
- minHour,
328
- maxHour,
329
- });
330
-
331
- const nowTs = dayjs().valueOf();
332
- const startOfDay = dayjs(date)
333
- .startOf("day")
334
- .add(minHour, "hour")
335
- .format("YYYY-MM-DD HH:mm");
336
- const endOfDay = dayjs(date)
337
- .startOf("day")
338
- .add(maxHour, "hour")
339
- .subtract(1, "millisecond")
340
- .format("YYYY-MM-DD HH:mm");
341
-
342
- const startTimestamp = dayjs(startOfDay).valueOf();
343
- const endTimestamp = dayjs(endOfDay).valueOf();
344
-
345
- const totalRange = endTimestamp - startTimestamp;
346
- const elapsed = nowTs - startTimestamp;
347
-
348
- const percentage = (elapsed / totalRange) * 100;
349
-
350
- const value = percentage > 100 ? 100 : percentage <= 0 ? 0 : percentage;
351
-
352
- React.useEffect(() => {
353
- setTopValue(value);
354
- }, []);
355
- const isToday = dayjs().isSame(date, "day");
356
-
357
- const handleClick = () =>
358
- // e: React.MouseEvent<HTMLDivElement>
359
- {
360
- // const scrollY = e.nativeEvent.offsetY;
361
- // const columnHeight = e.currentTarget.clientHeight;
362
- // const nearestTime = getNearestStepTime({
363
- // clickOffsetY: scrollY,
364
- // columnHeight,
365
- // date,
366
- // minHour,
367
- // maxHour,
368
- // step,
369
- // });
370
- };
371
-
372
- const diff = maxHour - minHour;
373
-
374
- const height = diff * itemHeight;
375
-
376
- const todos = results.filter(
377
- (result) =>
378
- dayjs(result.startTime).format("YYYY-MM-DD") === date && !result.isAllDay
379
- );
380
-
381
- // (1) 드래그 상태를 저장할 state
382
- const [isDragging, setIsDragging] = React.useState(false);
383
- const [dragStartY, setDragStartY] = React.useState<number | null>(null);
384
- const [dragEndY, setDragEndY] = React.useState<number | null>(null);
385
-
386
- // "실시간" 마우스 위치에 따른 임시 박스의 시간
387
- const [tempStartTime, setTempStartTime] = React.useState<dayjs.Dayjs | null>(
388
- null
389
- );
390
- const [tempEndTime, setTempEndTime] = React.useState<dayjs.Dayjs | null>(
391
- null
392
- );
393
-
394
- const [dragStartTime, setDragStartTime] = React.useState<dayjs.Dayjs | null>(
395
- null
396
- );
397
-
398
- // div 참조
399
- const colRef = React.useRef<HTMLDivElement | null>(null);
400
-
401
- // (2) onMouseDown: 드래그 시작
402
- const handleMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {
403
- if (!enableCreateByDrag) return;
404
- if (e.button !== 0) return; // 왼클릭만
405
- setIsDragging(true);
406
-
407
- const offsetY = e.nativeEvent.offsetY;
408
- setDragStartY(offsetY);
409
- setDragEndY(offsetY);
410
-
411
- // 최초 시작 시각 기록
412
- if (colRef.current) {
413
- const columnHeight = colRef.current.clientHeight;
414
- const nearestTime = getNearestStepTime({
415
- clickOffsetY: offsetY,
416
- columnHeight,
417
- date,
418
- minHour,
419
- maxHour,
420
- step,
421
- });
422
- setDragStartTime(nearestTime);
423
- // 초기엔 tempStart/End를 동일하게
424
- setTempStartTime(nearestTime);
425
- setTempEndTime(nearestTime);
426
- }
427
- };
428
-
429
- // (3) onMouseMove: 드래그 진행 중
430
- const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {
431
- if (!enableCreateByDrag || !isDragging) return;
432
- if (!dragStartTime) return; // 아직 시작 시각이 없다면
433
-
434
- const offsetY = e.nativeEvent.offsetY;
435
- setDragEndY(offsetY);
436
-
437
- if (!colRef.current) return;
438
- const columnHeight = colRef.current.clientHeight;
439
- const currentTime = getNearestStepTime({
440
- clickOffsetY: offsetY,
441
- columnHeight,
442
- date,
443
- minHour,
444
- maxHour,
445
- step,
446
- });
447
-
448
- // **여기가 핵심**:
449
- // 항상 dragStartTime과 currentTime 중 "더 이른 시간"을 tempStartTime,
450
- // "더 늦은 시간"을 tempEndTime으로 설정
451
- const lowerTime = dayjs.min(dragStartTime, currentTime);
452
- const upperTime = dayjs.max(dragStartTime, currentTime);
453
-
454
- setTempStartTime(lowerTime);
455
- setTempEndTime(upperTime);
456
- };
457
-
458
- // (4) onMouseUp: 드래그 끝
459
- const handleMouseUp = (e: React.MouseEvent<HTMLDivElement>) => {
460
- if (!enableCreateByDrag) return;
461
- e.stopPropagation();
462
- if (!isDragging) return;
463
- setIsDragging(false);
464
-
465
- if (tempStartTime && tempEndTime && !tempStartTime.isSame(tempEndTime)) {
466
- // TODO: 일정 생성 (dispatch or setState)
467
- }
468
-
469
- // 초기화
470
- setDragStartTime(null);
471
- setDragStartY(null);
472
- setDragEndY(null);
473
- setTempStartTime(null);
474
- setTempEndTime(null);
475
- };
476
-
477
- // const handleMouseLeave = (e: React.MouseEvent<HTMLDivElement>) => {
478
- // e.stopPropagation();
479
- // if (isDragging) {
480
- // // 여기서 "드래그 중지" 로직
481
- // setIsDragging(false);
482
- // // pointer-events 돌려놓기(필요하다면)
483
- // console.log("DateColumn 벗어남 → 드래그 취소");
484
- // }
485
- // };
486
-
487
- // (5) "임시 박스" 렌더링용 계산
488
- let selectionTop = 0;
489
- let selectionHeight = 0;
490
- if (dragStartY !== null && dragEndY !== null) {
491
- const minY = Math.min(dragStartY, dragEndY);
492
- const maxY = Math.max(dragStartY, dragEndY);
493
- selectionTop = minY;
494
- selectionHeight = maxY - minY;
495
- }
496
-
497
- const tempText = React.useMemo(() => {
498
- const startText = tempStartTime?.format("HH:mm") ?? "";
499
- const endText = tempEndTime?.format("HH:mm") ?? "";
500
-
501
- return `(제목 없음)\n${startText} ~ ${endText}`;
502
- }, [tempStartTime, tempEndTime]);
503
-
504
- return (
505
- <div
506
- className={cx("DateColumn", type, {
507
- dragging: isDragging && enableCreateByDrag,
508
- allowCreate: enableCreateByDrag,
509
- })}
510
- ref={setNodeRef}
511
- onClick={handleClick}
512
- onMouseDown={enableCreateByDrag ? handleMouseDown : undefined}
513
- onMouseMove={enableCreateByDrag ? handleMouseMove : undefined}
514
- onMouseUp={enableCreateByDrag ? handleMouseUp : undefined}
515
- style={
516
- {
517
- cursor: enableCreateByDrag ? "cell" : "default",
518
- "--bg-start-white": itemHeight - 1 + "px",
519
- "--bg-end-white": itemHeight - 1 + "px",
520
- "--bg-line-white": itemHeight + "px",
521
- } as React.CSSProperties
522
- }
523
- >
524
- <div className={cx("DateColumnInner")} ref={colRef} style={{ height }}>
525
- {isToday && topValue ? (
526
- <div
527
- className={cx("TodayIndicator")}
528
- style={{ top: `${topValue}%` }}
529
- />
530
- ) : null}
531
-
532
- {todos.map((todo) => {
533
- const height = Math.max(
534
- (col?.clientHeight || 0) * (todo.heightPercent / 100),
535
- 24
536
- );
537
- return (
538
- <EventItem
539
- key={todo.id}
540
- {...todo}
541
- endTime={todo.realEndTime}
542
- height={height}
543
- title={todo.title ?? ""}
544
- />
545
- );
546
- })}
547
-
548
- {isDragging && (
549
- <div
550
- style={{
551
- position: "absolute",
552
- top: selectionTop,
553
- left: 0,
554
- width: "100%",
555
- height: selectionHeight,
556
- backgroundColor: "#F4511E",
557
- pointerEvents: "none",
558
- fontSize: 11,
559
- borderRadius: 4,
560
- padding: 4,
561
- boxShadow: "0 0 4px rgba(0,0,0,0.2)",
562
- whiteSpace: "pre-wrap",
563
- color: "white",
564
- zIndex: 100,
565
- }}
566
- >
567
- {tempText}
568
- </div>
569
- )}
570
- </div>
571
- <div
572
- ref={setCol}
573
- style={{
574
- // flex: 1,
575
- width: 8,
576
- // position: "absolute",
577
- height: `${height}px`,
578
- }}
579
- ></div>
580
- </div>
581
- );
582
- };
583
-
584
- const DateColumnRow = (props: DateColumnRowProps) => {
585
- const { onScroll } = props;
586
- const {
587
- currentDate = dayjs().format("YYYY-MM-DD"),
588
- columnCount,
589
- minHour,
590
- maxHour,
591
- } = React.useContext(WeeklyCalendarContext);
592
-
593
- const dateCells = Array.from({ length: columnCount }, (_, i) => {
594
- return {
595
- date: dayjs(currentDate).add(i, "day").format("YYYY-MM-DD"),
596
- dayText: getDayText(dayjs(currentDate).add(i, "day").get("day"), "ko"),
597
- };
598
- });
599
-
600
- const diff = maxHour - minHour;
601
- const timeline = Array.from({ length: diff }, (_, i) => {
602
- return dayjs()
603
- .startOf("day")
604
- .add(minHour + i, "hour")
605
- .format("HH:mm");
606
- });
607
-
608
- return (
609
- <div className={cx("DateColumnRow")} onScroll={onScroll}>
610
- <div className={cx("DateColumnRowInner")}>
611
- <div className={cx("TimeCriteria")}>
612
- {timeline.map((time) => {
613
- return <div key={time} className={cx("TimeCriteriaCell")}></div>;
614
- })}
615
- </div>
616
- {dateCells.map((dateCell) => {
617
- return <DateColumn key={dateCell.date} date={dateCell.date} />;
618
- })}
619
- </div>
620
- </div>
621
- );
622
- };
623
-
624
- const DateCellRow = () => {
625
- const { currentDate = dayjs().format("YYYY-MM-DD"), columnCount } =
626
- React.useContext(WeeklyCalendarContext);
627
-
628
- const dateCells = Array.from({ length: columnCount }, (_, i) => {
629
- return {
630
- realDate: dayjs(currentDate).add(i, "day"),
631
- date: dayjs(currentDate).add(i, "day").format("DD"),
632
- dayText: getDayText(dayjs(currentDate).add(i, "day").get("day"), "ko"),
633
- };
634
- });
635
-
636
- return (
637
- <div className={cx("DateCellRow")}>
638
- {dateCells.map((dateCell) => {
639
- return (
640
- <div
641
- key={dateCell.date}
642
- className={cx("DateCell", {
643
- today: dayjs().isSame(dateCell.realDate, "day"),
644
- })}
645
- >
646
- <div className={cx("DayText")}>{dateCell.dayText}</div>
647
- <div className={cx("Date")}>{dateCell.date}</div>
648
- </div>
649
- );
650
- })}
651
- </div>
652
- );
653
- };
654
-
655
- const StandardTime = () => {
656
- return (
657
- <div className={cx("ShrinkedColumn", "StandardTime")}>{getGmtString()}</div>
658
- );
659
- };
660
-
661
- interface TimelinesProps {
662
- className?: string;
663
- as?: (props: {
664
- itemHeight: number;
665
- minHour: number;
666
- maxHour: number;
667
- time: string;
668
- }) => React.ReactNode;
669
- }
670
-
671
- const Timelines = (props: TimelinesProps) => {
672
- const { className, as } = props;
673
- const {
674
- minHour,
675
- maxHour,
676
- itemHeight = 48,
677
- type = "default",
678
- } = React.useContext(WeeklyCalendarContext);
679
- const diff = maxHour - minHour;
680
- const timeline = Array.from({ length: diff + 1 }, (_, i) => {
681
- return dayjs()
682
- .startOf("day")
683
- .add(minHour + i, "hour")
684
- .format("HH:mm");
685
- });
686
-
687
- const renderTimeline = (time: string) => {
688
- if (as) {
689
- return React.createElement(as, {
690
- key: time.toString(),
691
- itemHeight,
692
- minHour,
693
- maxHour,
694
- time,
695
- });
696
- } else {
697
- return (
698
- <div
699
- key={time}
700
- className={cx("Timeline")}
701
- style={{
702
- height: itemHeight,
703
- }}
704
- >
705
- <span className={cx("TimeText")}>{time}</span>
706
- </div>
707
- );
708
- }
709
- };
710
-
711
- return (
712
- <div className={cx("TimelineWrapper", className, type)}>
713
- {timeline.map((time) => {
714
- return renderTimeline(time);
715
- })}
716
- </div>
717
- );
718
- };
719
-
720
- type RootProps<T extends EventItemType> = WeeklyCalendarProviderProps<T> & {
721
- className?: string;
722
- };
723
-
724
- const Root = <T extends EventItemType>(props: RootProps<T>) => {
725
- const {
726
- children,
727
- enableCreateByDrag = true,
728
- enableMoveByDrag = true,
729
- type = "default",
730
- className,
731
- events,
732
- ...rest
733
- } = props;
734
-
735
- function handleDragEnd() {
736
- if (!enableMoveByDrag) return;
737
- // ... 드래그 앤 드롭 처리
738
- }
739
-
740
- const contextValue = {
741
- ...initialState,
742
- ...rest,
743
- events: splitEventsConsideringAllDay(events || []),
744
- type,
745
- enableCreateByDrag,
746
- enableMoveByDrag,
747
- };
748
-
749
- return (
750
- <DndContext onDragEnd={handleDragEnd}>
751
- <WeeklyCalendarContext value={contextValue}>
752
- <div className={cx("WeeklyCalendarRoot", className)}>{children}</div>
753
- </WeeklyCalendarContext>
754
- </DndContext>
755
- );
756
- };
757
-
758
- interface IWeeklyCalendar {
759
- Root: typeof Root;
760
- Timelines: typeof Timelines;
761
- StandardTime: typeof StandardTime;
762
- DateCellRow: typeof DateCellRow;
763
- DateColumnRow: typeof DateColumnRow;
764
- }
765
-
766
- export default {
767
- Root,
768
- Timelines,
769
- StandardTime,
770
- DateCellRow,
771
- DateColumnRow,
772
- } as IWeeklyCalendar;