@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
@@ -0,0 +1,151 @@
1
+ const fs = require("fs");
2
+ const path = require("node:path");
3
+
4
+ const assetPath = path.resolve(__dirname, "../../public/static/icon");
5
+ const storyDist = path.resolve(
6
+ __dirname,
7
+ "../../src/components/Icon/Icon.stories.tsx"
8
+ );
9
+ const iconComponentDist = path.resolve(
10
+ __dirname,
11
+ "../../src/components/Icon/Icon.tsx"
12
+ );
13
+
14
+ const images = fs
15
+ .readdirSync(assetPath)
16
+ .filter((file) => new RegExp(`.\/|.svg`).test(file));
17
+
18
+ const ext = /\.\w+/gi;
19
+ const snake = /\_(.)/gi;
20
+ const space = /\s(.)/gi;
21
+
22
+ const rename = (name) => {
23
+ return name
24
+ .replace(ext, "")
25
+ .replace(space, (i) => i[1].toUpperCase())
26
+ .replace(snake, (i) => i[1].toUpperCase())
27
+ .split("")
28
+ .map((char, idx) => (!idx ? char.toUpperCase() : char))
29
+ .join("");
30
+ };
31
+
32
+ const storyResult = images.reduce(
33
+ (acc, name) => {
34
+ const parseName = rename(name);
35
+ acc["template"] += `export const ${parseName}:Story = {
36
+ args: {
37
+ name: "${parseName}",
38
+ }
39
+ };
40
+
41
+
42
+ `;
43
+
44
+ return acc;
45
+ },
46
+ {
47
+ template: "",
48
+ }
49
+ );
50
+
51
+ const storyCode = `
52
+ import React from "react";
53
+ import type { Meta, StoryObj } from "@storybook/react";
54
+ import { Icon } from "./Icon";
55
+ import * as Icons from '../Icons'
56
+ const meta: Meta<typeof Icon> = {
57
+ title: "Component/Icon",
58
+ component: Icon,
59
+ argTypes: {
60
+ size: {
61
+ control: "number",
62
+ },
63
+ },
64
+ decorators: [
65
+ (Story) => {
66
+ return (
67
+ <React.Fragment>
68
+ <Story />
69
+ </React.Fragment>
70
+ );
71
+ },
72
+ ],
73
+ };
74
+
75
+ export default meta;
76
+
77
+ type Story = StoryObj<typeof Icon>;
78
+
79
+ export const Collection: Story = {
80
+ render: (args) => {
81
+ const { color, size } = args;
82
+ return (
83
+ <div
84
+ style={{
85
+ display: "grid",
86
+ gridTemplateColumns: "repeat(auto-fill, 64px)",
87
+ gap: "16px",
88
+ }}
89
+ >
90
+ {Object.keys(Icons).map((iconName) => {
91
+ const IconComponent = (
92
+ <Icon
93
+ name={iconName as React.ComponentProps<typeof Icon>["name"]}
94
+ size={size}
95
+ color={color}
96
+ />
97
+ );
98
+
99
+ return (
100
+ <div
101
+ style={{
102
+ display: "flex",
103
+ flexDirection: "column",
104
+ alignItems: "center",
105
+ gap: "8px",
106
+ }}
107
+ >
108
+ {IconComponent}
109
+ <span style={{ fontSize: 10 }}>{iconName}</span>
110
+ </div>
111
+ );
112
+ })}
113
+ </div>
114
+ );
115
+ },
116
+ };
117
+ `;
118
+
119
+ const iconCode = `
120
+ /* eslint-disable @typescript-eslint/no-explicit-any */
121
+ import * as Icons from "../Icons";
122
+
123
+ type IconName = keyof typeof Icons;
124
+ type IconsProps = (typeof Icons)[IconName];
125
+ type IconProps = Omit<IconsProps, "size" | "color"> & {
126
+ name: IconName;
127
+ color?: string;
128
+ size?: number;
129
+ onClick?: (...args: any) => void;
130
+ className?: string;
131
+ style?: React.CSSProperties;
132
+ };
133
+
134
+ export const Icon = (props: IconProps) => {
135
+ const { name, size = 24, color, ...rest } = props;
136
+
137
+ const Component = Icons[name];
138
+
139
+ return (
140
+ <Component
141
+ width={size}
142
+ height={size}
143
+ color={color ?? "var(--simentic-on-surface, #121416)"}
144
+ {...rest}
145
+ />
146
+ );
147
+ };
148
+ `;
149
+
150
+ fs.writeFileSync(storyDist, storyCode);
151
+ fs.writeFileSync(iconComponentDist, iconCode);
@@ -0,0 +1,18 @@
1
+ const comments = `
2
+ // Auto-generated file created by svgr-cli source svg-template.js
3
+ // Run yarn icons:create to update
4
+ // Do not edit
5
+ `;
6
+ const template = (variables, { tpl }) => {
7
+ return tpl`
8
+ ${comments}
9
+ ${variables.imports};
10
+ ${variables.interfaces};
11
+ const ${variables.componentName} = (${variables.props}) => (
12
+ ${variables.jsx}
13
+ );
14
+ ${variables.exports};
15
+ `;
16
+ };
17
+
18
+ module.exports = template;
@@ -0,0 +1,9 @@
1
+ {
2
+ "plugins": [
3
+ "removeXMLNS",
4
+ "removeDimensions",
5
+ "removeUselessStrokeAndFill",
6
+ "removeMetadata",
7
+ "removeDoctype"
8
+ ]
9
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "typescript": true,
3
+ "replaceAttrValues": {
4
+ "#1C252E": "{props.color || `#1C252E`}",
5
+ "#121416": "{props.color || `#121416`}",
6
+ "#1C1B1F": "{props.color || `#1C1B1F`}"
7
+ },
8
+ "svgProps": {
9
+ "width": "{props.width || 24}",
10
+ "height": "{props.height || 24}",
11
+ "style": "{props.style || {}}",
12
+ "onClick": "{props.onClick}"
13
+ },
14
+ "jsxRuntime": "automatic",
15
+ "dimensions": false
16
+ }
@@ -0,0 +1,51 @@
1
+ declare const grayScaleColorGroupNames = [
2
+ "gray",
3
+ "steelBlue",
4
+ "beige",
5
+ "royalOrange",
6
+ "lubyRed",
7
+ "cyan",
8
+ "mint",
9
+ "mustardYellow",
10
+ "red",
11
+ "green",
12
+ ] as const;
13
+
14
+ declare const scaleGroup = [
15
+ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 99, 100,
16
+ ] as const;
17
+
18
+ type ScaleColorGroup = (typeof scaleGroup)[number];
19
+ type GrayScaleColorGroup = (typeof grayScaleColorGroupNames)[number];
20
+ type MakeTokenSet<TGroup extends GrayScaleColorGroup> =
21
+ `${TGroup}${ScaleColorGroup}`;
22
+
23
+ type GrayColorToken = MakeTokenSet<"gray">;
24
+
25
+ declare type ColorType = {
26
+ gray: Record<MakeTokenSet<"gray"> | "disabled", string>;
27
+ steelBlue: Record<MakeTokenSet<"steelBlue"> | "disabled", string>;
28
+ beige: Record<MakeTokenSet<"beige"> | "disabled", string>;
29
+ royalOrange: Record<MakeTokenSet<"royalOrange"> | "disabled", string>;
30
+ lubyRed: Record<MakeTokenSet<"lubyRed"> | "disabled", string>;
31
+ cyan: Record<MakeTokenSet<"cyan"> | "disabled", string>;
32
+ mint: Record<MakeTokenSet<"mint"> | "disabled", string>;
33
+ mustardYellow: Record<MakeTokenSet<"mustardYellow"> | "disabled", string>;
34
+ red: Record<MakeTokenSet<"red"> | "disabled", string>;
35
+ green: Record<MakeTokenSet<"green"> | "disabled", string>;
36
+ };
37
+
38
+ const grayScaleColorGroupNames = [
39
+ "gray",
40
+ "steelBlue",
41
+ "beige",
42
+ "royalOrange",
43
+ "lubyRed",
44
+ "cyan",
45
+ "mint",
46
+ "mustardYellow",
47
+ "red",
48
+ "green",
49
+ ] as const;
50
+
51
+ type ColorScheme = (typeof grayScaleColorGroupNames)[number];
@@ -0,0 +1,6 @@
1
+ interface FileItem {
2
+ name: string;
3
+ uri: string;
4
+ file: File;
5
+ id: string;
6
+ }
@@ -0,0 +1,7 @@
1
+ import "react";
2
+
3
+ declare module "react" {
4
+ interface CSSProperties {
5
+ [key: `--${string}`]: string | number | undefined;
6
+ }
7
+ }
@@ -0,0 +1 @@
1
+ declare module "quill-image-resize-module-react";
package/src/App.css ADDED
File without changes
package/src/App.tsx ADDED
@@ -0,0 +1,84 @@
1
+ import React from "react";
2
+ import "./App.css";
3
+ import "./globals.scss";
4
+ import GlobalStyle from "./components/GlobalStyle/GlobalStyle";
5
+ import QRCode, { QRCodeRef } from "./components/QRCode/QRCode";
6
+ import BarCode from "./components/BarCode/BarCode";
7
+ import Tab from "./components/Tab/Tab";
8
+ import Label from "./components/Label/Label";
9
+ import TextInput from "./components/Form/TextInput/TextInput";
10
+
11
+ function App() {
12
+ const _qr = React.useRef<QRCodeRef>(null);
13
+
14
+ const handleCopy = React.useCallback(async () => {
15
+ await _qr.current?.copy();
16
+ }, []);
17
+ const [active, setActive] = React.useState("0");
18
+ const handleChange = (value: string) => {
19
+ setActive(value);
20
+ };
21
+ const data = [
22
+ {
23
+ title: "제목1",
24
+ content: "내용1",
25
+ },
26
+ {
27
+ title: "제목2",
28
+ content: "내용2",
29
+ },
30
+ {
31
+ title: "제목3",
32
+ content: "내용3",
33
+ },
34
+ ];
35
+
36
+ return (
37
+ <>
38
+ <GlobalStyle />
39
+ <Label color={"deepGreen"} variant={"inverted"} size={"medium"}>
40
+ Label
41
+ </Label>
42
+ <Tab.Root
43
+ direction={"horizontal"}
44
+ align={"center"}
45
+ isFitted={false}
46
+ size={"medium"}
47
+ tabType={"square"}
48
+ onChange={handleChange}
49
+ active={active}
50
+ >
51
+ <Tab.List>
52
+ {data.map((item, index) => (
53
+ <Tab.Item key={index} id={index.toString()} index={index}>
54
+ {item.content}
55
+ </Tab.Item>
56
+ ))}
57
+ </Tab.List>
58
+ <Tab.Panels>
59
+ {data.map((item, index) => {
60
+ return (
61
+ <Tab.Panel key={index} id={index.toString()} index={index}>
62
+ {item.content}
63
+ </Tab.Panel>
64
+ );
65
+ })}
66
+ </Tab.Panels>
67
+ </Tab.Root>
68
+ <QRCode link="https://www.google.com" ref={_qr} />
69
+ <button onClick={handleCopy}>QR코드 복사</button>
70
+ <BarCode value="1234567" />
71
+ {/* <TimeRangePicker
72
+ onTimeChange={(time) => {
73
+ setValue(`${time.start} ~ ${time.end}`);
74
+ }}
75
+ /> */}
76
+ {/* <span>{value}</span> */}
77
+ <TextInput.Root>
78
+ <TextInput.Input />
79
+ </TextInput.Root>
80
+ </>
81
+ );
82
+ }
83
+
84
+ export default App;
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
@@ -0,0 +1,62 @@
1
+ import React from "react";
2
+
3
+ type IAccordionRootVariant =
4
+ | "contained"
5
+ | "outlined"
6
+ | "adaptived"
7
+ | "sideLined"
8
+ | "bottomLined"
9
+ | "shadow"
10
+ | "unset";
11
+
12
+ type IAccordionRootState = {
13
+ open?: boolean;
14
+ disabled?: boolean;
15
+ autoClosed?: boolean;
16
+ id?: string;
17
+ variant?: IAccordionRootVariant;
18
+ transition?:
19
+ | boolean
20
+ | {
21
+ /** 0.25s => 2500 */
22
+ duration?: number;
23
+ timingFC?: React.CSSProperties["transitionTimingFunction"];
24
+ };
25
+
26
+ onClick?: (e?: React.MouseEvent<HTMLInputElement>) => void;
27
+ onChange?: (e?: React.ChangeEvent<HTMLInputElement>) => void;
28
+
29
+ ["#triggerRef"]?: React.RefObject<HTMLInputElement | null>;
30
+ ["#firstClick"]?: boolean;
31
+ };
32
+
33
+ const initialState: IAccordionRootState = {
34
+ disabled: false,
35
+ autoClosed: true,
36
+ variant: "contained",
37
+ transition: true,
38
+ };
39
+
40
+ export const AccordionRootContext =
41
+ React.createContext<IAccordionRootState>(initialState);
42
+
43
+ export type AccordionsRootProviderProps = React.PropsWithChildren<
44
+ IAccordionRootState & {
45
+ className?: string;
46
+ }
47
+ >;
48
+
49
+ export const AccordionRootProvider = (props: AccordionsRootProviderProps) => {
50
+ const { children } = props;
51
+
52
+ return (
53
+ <AccordionRootContext.Provider
54
+ value={{
55
+ ...initialState,
56
+ ...props,
57
+ }}
58
+ >
59
+ {children}
60
+ </AccordionRootContext.Provider>
61
+ );
62
+ };
@@ -0,0 +1,163 @@
1
+ @layer Accordion {
2
+ .Unset {
3
+ display: flex;
4
+ flex-direction: column;
5
+ }
6
+
7
+ .Root {
8
+ position: relative;
9
+ display: flex;
10
+ flex-direction: column;
11
+ width: 100%;
12
+ box-sizing: border-box;
13
+ background-color: var(--backgroundDefault, #fff);
14
+ border-radius: 8px;
15
+
16
+ &.transition {
17
+ transition: 0.25s ease-in-out;
18
+ overflow: hidden;
19
+ will-change: background-color, border;
20
+ }
21
+
22
+ &.contained {
23
+ border: 1px solid transparent;
24
+ background-color: var(--componentTextfieldFilled, #919eab14);
25
+ }
26
+
27
+ &.outlined {
28
+ border: 1px solid var(--actionAction, #919eab);
29
+ }
30
+
31
+ &.adaptived {
32
+ border: 1px solid transparent;
33
+ background-color: var(--componentTextfieldFilled, #919eab14);
34
+ &.open {
35
+ border: 1px solid var(--actionAction, #919eab);
36
+ }
37
+ }
38
+
39
+ &.bottomLined {
40
+ border: 1px solid transparent;
41
+ border-bottom: 1px solid var(--actionAction, #919eab);
42
+ border-radius: 0;
43
+ background-color: var(--componentTextfieldFilled, #919eab14);
44
+ &.open {
45
+ border-bottom: 1px solid var(--actionAction, #919eab);
46
+ }
47
+ }
48
+ &.sideLined {
49
+ border: 1px solid transparent;
50
+ border-inline: 1px solid var(--actionAction, #919eab);
51
+ border-radius: 0;
52
+ background-color: var(--componentTextfieldFilled, #919eab14);
53
+ &.open {
54
+ border-inline: 1px solid var(--actionAction, #919eab);
55
+ }
56
+ }
57
+
58
+ &.shadow {
59
+ border: 1px solid transparent;
60
+ background-color: var(--componentTextfieldFilled, #919eab14);
61
+ box-shadow: 0 2px 2px var(--shadow12, #919eab1f);
62
+ }
63
+
64
+ &.disabled {
65
+ background-color: var(--actionDisabledBackground, #919eab1f);
66
+
67
+ &.outlined {
68
+ border: 1px solid var(--componentTextfieldOutline, #919eab3d);
69
+ }
70
+
71
+ &.bottomLined {
72
+ border-bottom: 1px solid var(--componentTextfieldOutline, #919eab3d);
73
+ }
74
+
75
+ &.sideLined {
76
+ border-inline: 1px solid var(--componentTextfieldOutline, #919eab3d);
77
+ }
78
+ }
79
+
80
+ &.unset {
81
+ background-color: transparent;
82
+ border-radius: 0;
83
+ border: none;
84
+ }
85
+
86
+ &.open:not(&.unset) {
87
+ background-color: var(--backgroundDefault, #fff);
88
+ }
89
+ }
90
+
91
+ .Trigger {
92
+ display: flex;
93
+ align-items: center;
94
+ justify-content: space-between;
95
+ cursor: pointer;
96
+ box-sizing: border-box;
97
+ padding: 12px 16px;
98
+ background-color: transparent;
99
+ -webkit-user-select: none;
100
+ -moz-user-select: none;
101
+ -ms-user-select: none;
102
+ user-select: none;
103
+ color: var(--textPrimary, #1c252e);
104
+
105
+ .TriggerIcon {
106
+ flex-shrink: 0;
107
+ &.open {
108
+ transform: rotate(180deg);
109
+ }
110
+ &.transition {
111
+ transition: transform 0.25s ease-in-out;
112
+ }
113
+ path {
114
+ stroke: var(--textPrimary, #1c252e);
115
+ fill: var(--textPrimary, #1c252e);
116
+ }
117
+ }
118
+
119
+ &.disabled {
120
+ cursor: not-allowed;
121
+ color: var(--textDisabled, #c4cdd5);
122
+
123
+ .TriggerIcon {
124
+ path {
125
+ stroke: var(--textTertiary, #919eab);
126
+ fill: var(--textTertiary, #919eab);
127
+ }
128
+ }
129
+ }
130
+ }
131
+
132
+ .Item {
133
+ display: none;
134
+ padding: 0 16px 12px;
135
+ box-sizing: border-box;
136
+ flex-direction: column;
137
+ overflow: hidden;
138
+
139
+ &.open {
140
+ display: flex;
141
+ }
142
+
143
+ &.transition {
144
+ display: unset;
145
+ max-height: 0;
146
+
147
+ opacity: 0;
148
+ margin-bottom: -12px;
149
+ will-change: height, opacity, margin-bottom;
150
+
151
+ &.open {
152
+ opacity: 1;
153
+ margin-bottom: 0px;
154
+ max-height: unset;
155
+ }
156
+ }
157
+
158
+ &.disabled {
159
+ cursor: not-allowed;
160
+ color: var(--Gray-Gray90, #d6d7da);
161
+ }
162
+ }
163
+ }