@hua-labs/ui 1.1.0-alpha.6 → 2.0.0-alpha.10

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 (1624) hide show
  1. package/README.md +78 -67
  2. package/dist/ComponentLayout-btJq4TjA.d.mts +698 -0
  3. package/dist/Modal-LokAqhCz.d.mts +93 -0
  4. package/dist/Switch-BB6GZnqn.d.mts +175 -0
  5. package/dist/advanced/Logo.d.ts +60 -0
  6. package/dist/advanced/Logo.d.ts.map +1 -0
  7. package/dist/advanced/index.d.ts +3 -0
  8. package/dist/advanced/index.d.ts.map +1 -0
  9. package/dist/advanced-dashboard.d.mts +2279 -4
  10. package/dist/advanced-dashboard.js +42 -272
  11. package/dist/advanced-dashboard.js.map +1 -1
  12. package/dist/advanced-dashboard.mjs +2 -1
  13. package/dist/advanced.d.mts +282 -38
  14. package/dist/advanced.d.ts +7 -1
  15. package/dist/advanced.d.ts.map +1 -1
  16. package/dist/advanced.js +72 -272
  17. package/dist/advanced.js.map +1 -1
  18. package/dist/advanced.mjs +32 -1
  19. package/dist/advanced.mjs.map +1 -1
  20. package/dist/chunk-25X3JS5U.mjs +3 -0
  21. package/dist/chunk-25X3JS5U.mjs.map +1 -0
  22. package/dist/chunk-3E7HN3VL.mjs +3 -0
  23. package/dist/chunk-3E7HN3VL.mjs.map +1 -0
  24. package/dist/chunk-62HQZHPY.mjs +3 -0
  25. package/dist/chunk-62HQZHPY.mjs.map +1 -0
  26. package/dist/chunk-63CU4PEU.mjs +3 -0
  27. package/dist/chunk-63CU4PEU.mjs.map +1 -0
  28. package/dist/chunk-64T3XQP3.mjs +3 -0
  29. package/dist/chunk-64T3XQP3.mjs.map +1 -0
  30. package/dist/chunk-6IRMCQLW.mjs +3 -0
  31. package/dist/chunk-6IRMCQLW.mjs.map +1 -0
  32. package/dist/chunk-7G4VTLVB.mjs +3 -0
  33. package/dist/chunk-7G4VTLVB.mjs.map +1 -0
  34. package/dist/chunk-7VET46PU.mjs +11 -0
  35. package/dist/chunk-7VET46PU.mjs.map +1 -0
  36. package/dist/chunk-AAHZFMU6.mjs +3 -0
  37. package/dist/chunk-AAHZFMU6.mjs.map +1 -0
  38. package/dist/chunk-D3CBK5LG.mjs +3 -0
  39. package/dist/chunk-D3CBK5LG.mjs.map +1 -0
  40. package/dist/chunk-D5X7GVHB.mjs +3 -0
  41. package/dist/chunk-D5X7GVHB.mjs.map +1 -0
  42. package/dist/chunk-EQIWSOL7.mjs +3 -0
  43. package/dist/chunk-EQIWSOL7.mjs.map +1 -0
  44. package/dist/chunk-GOBSRBJ5.mjs +3 -0
  45. package/dist/chunk-GOBSRBJ5.mjs.map +1 -0
  46. package/dist/chunk-JBC2S6TU.mjs +3 -0
  47. package/dist/chunk-JBC2S6TU.mjs.map +1 -0
  48. package/dist/chunk-KXXIT5HL.mjs +3 -0
  49. package/dist/chunk-KXXIT5HL.mjs.map +1 -0
  50. package/dist/chunk-LIC2KPD5.mjs +3 -0
  51. package/dist/chunk-LIC2KPD5.mjs.map +1 -0
  52. package/dist/chunk-RIQUV3QZ.mjs +3 -0
  53. package/dist/chunk-RIQUV3QZ.mjs.map +1 -0
  54. package/dist/chunk-RJHCRHFD.mjs +3 -0
  55. package/dist/chunk-RJHCRHFD.mjs.map +1 -0
  56. package/dist/chunk-UUHAXGMO.mjs +1 -0
  57. package/dist/chunk-VWSBJUNI.mjs +3 -0
  58. package/dist/chunk-VWSBJUNI.mjs.map +1 -0
  59. package/dist/chunk-XSAVY7UB.mjs +4 -0
  60. package/dist/chunk-XSAVY7UB.mjs.map +1 -0
  61. package/dist/chunk-YXKMNLYP.mjs +35 -0
  62. package/dist/chunk-YXKMNLYP.mjs.map +1 -0
  63. package/dist/chunk-YYKPPDPT.mjs +13 -0
  64. package/dist/chunk-YYKPPDPT.mjs.map +1 -0
  65. package/dist/common-YLvZxA_K.d.mts +26 -0
  66. package/dist/components/Avatar.d.ts +2 -0
  67. package/dist/components/Avatar.d.ts.map +1 -1
  68. package/dist/components/Badge.d.ts.map +1 -1
  69. package/dist/components/BottomSheet.d.ts +20 -2
  70. package/dist/components/BottomSheet.d.ts.map +1 -1
  71. package/dist/components/Card.d.ts +7 -0
  72. package/dist/components/Card.d.ts.map +1 -1
  73. package/dist/components/Checkbox.d.ts.map +1 -1
  74. package/dist/components/CodeBlock.d.ts +10 -2
  75. package/dist/components/CodeBlock.d.ts.map +1 -1
  76. package/dist/components/Command.d.ts.map +1 -1
  77. package/dist/components/Container.d.ts.map +1 -1
  78. package/dist/components/DatePicker.d.ts +2 -0
  79. package/dist/components/DatePicker.d.ts.map +1 -1
  80. package/dist/components/Divider.d.ts.map +1 -1
  81. package/dist/components/Drawer.d.ts +18 -2
  82. package/dist/components/Drawer.d.ts.map +1 -1
  83. package/dist/components/Dropdown.d.ts.map +1 -1
  84. package/dist/components/EmptyState.d.ts +62 -0
  85. package/dist/components/EmptyState.d.ts.map +1 -0
  86. package/dist/components/FeatureCard.d.ts +9 -3
  87. package/dist/components/FeatureCard.d.ts.map +1 -1
  88. package/dist/components/FormControl.d.ts +115 -0
  89. package/dist/components/FormControl.d.ts.map +1 -0
  90. package/dist/components/HeroSection.d.ts.map +1 -1
  91. package/dist/components/Icon/Icon.d.ts +7 -99
  92. package/dist/components/Icon/Icon.d.ts.map +1 -1
  93. package/dist/components/Icon/IconProvider.d.ts +17 -71
  94. package/dist/components/Icon/IconProvider.d.ts.map +1 -1
  95. package/dist/components/Icon/icon-store.d.ts +3 -1
  96. package/dist/components/Icon/icon-store.d.ts.map +1 -1
  97. package/dist/components/IconsaxGallery/index.d.ts +45 -0
  98. package/dist/components/IconsaxGallery/index.d.ts.map +1 -0
  99. package/dist/components/Input.d.ts +6 -31
  100. package/dist/components/Input.d.ts.map +1 -1
  101. package/dist/components/LoadingSpinner.d.ts.map +1 -1
  102. package/dist/components/Modal.d.ts +14 -0
  103. package/dist/components/Modal.d.ts.map +1 -1
  104. package/dist/components/NumberInput.d.ts +53 -0
  105. package/dist/components/NumberInput.d.ts.map +1 -0
  106. package/dist/components/Panel.d.ts +1 -1
  107. package/dist/components/Panel.d.ts.map +1 -1
  108. package/dist/components/Popover.d.ts +2 -0
  109. package/dist/components/Popover.d.ts.map +1 -1
  110. package/dist/components/Radio.d.ts.map +1 -1
  111. package/dist/components/Select.d.ts.map +1 -1
  112. package/dist/components/Skeleton.d.ts.map +1 -1
  113. package/dist/components/Switch.d.ts.map +1 -1
  114. package/dist/components/Tabs.d.ts.map +1 -1
  115. package/dist/components/Timeline.d.ts +97 -0
  116. package/dist/components/Timeline.d.ts.map +1 -0
  117. package/dist/components/Toast.d.ts.map +1 -1
  118. package/dist/components/dashboard/DashboardSidebar.d.ts +14 -0
  119. package/dist/components/dashboard/DashboardSidebar.d.ts.map +1 -1
  120. package/dist/components/dashboard/MiniBarChart.d.ts.map +1 -1
  121. package/dist/components/dashboard/ProgressCard.d.ts.map +1 -1
  122. package/dist/components/dashboard/QuickActionCard.d.ts +2 -0
  123. package/dist/components/dashboard/QuickActionCard.d.ts.map +1 -1
  124. package/dist/components/dashboard/SummaryCard.d.ts.map +1 -1
  125. package/dist/components/dashboard/YearlyHeatmap.d.ts +30 -0
  126. package/dist/components/dashboard/YearlyHeatmap.d.ts.map +1 -0
  127. package/dist/components/dashboard/index.d.ts +4 -0
  128. package/dist/components/dashboard/index.d.ts.map +1 -1
  129. package/dist/components/dashboard/kanban/KanbanAddCard.d.ts +10 -0
  130. package/dist/components/dashboard/kanban/KanbanAddCard.d.ts.map +1 -0
  131. package/dist/components/dashboard/kanban/KanbanAddColumn.d.ts +10 -0
  132. package/dist/components/dashboard/kanban/KanbanAddColumn.d.ts.map +1 -0
  133. package/dist/components/dashboard/kanban/KanbanBoard.d.ts +10 -0
  134. package/dist/components/dashboard/kanban/KanbanBoard.d.ts.map +1 -0
  135. package/dist/components/dashboard/kanban/KanbanCard.d.ts +10 -0
  136. package/dist/components/dashboard/kanban/KanbanCard.d.ts.map +1 -0
  137. package/dist/components/dashboard/kanban/KanbanColumn.d.ts +10 -0
  138. package/dist/components/dashboard/kanban/KanbanColumn.d.ts.map +1 -0
  139. package/dist/components/dashboard/kanban/KanbanColumnHeader.d.ts +10 -0
  140. package/dist/components/dashboard/kanban/KanbanColumnHeader.d.ts.map +1 -0
  141. package/dist/components/dashboard/kanban/KanbanContext.d.ts +71 -0
  142. package/dist/components/dashboard/kanban/KanbanContext.d.ts.map +1 -0
  143. package/dist/components/dashboard/kanban/KanbanDropIndicator.d.ts +9 -0
  144. package/dist/components/dashboard/kanban/KanbanDropIndicator.d.ts.map +1 -0
  145. package/dist/components/dashboard/kanban/index.d.ts +25 -0
  146. package/dist/components/dashboard/kanban/index.d.ts.map +1 -0
  147. package/dist/components/dashboard/kanban/types.d.ts +240 -0
  148. package/dist/components/dashboard/kanban/types.d.ts.map +1 -0
  149. package/dist/components/icons/Forbidden2.d.ts +4 -0
  150. package/dist/components/icons/Forbidden2.d.ts.map +1 -0
  151. package/dist/components/icons/Shuffle.d.ts +4 -0
  152. package/dist/components/icons/Shuffle.d.ts.map +1 -0
  153. package/dist/components/icons/Truck.d.ts +4 -0
  154. package/dist/components/icons/Truck.d.ts.map +1 -0
  155. package/dist/components/icons/index.d.ts +340 -0
  156. package/dist/components/icons/index.d.ts.map +1 -0
  157. package/dist/components/icons-bold/3Dcube.d.ts +4 -0
  158. package/dist/components/icons-bold/3Dcube.d.ts.map +1 -0
  159. package/dist/components/icons-bold/Add.d.ts +4 -0
  160. package/dist/components/icons-bold/Add.d.ts.map +1 -0
  161. package/dist/components/icons-bold/AddCircle.d.ts +4 -0
  162. package/dist/components/icons-bold/AddCircle.d.ts.map +1 -0
  163. package/dist/components/icons-bold/AddSquare.d.ts +4 -0
  164. package/dist/components/icons-bold/AddSquare.d.ts.map +1 -0
  165. package/dist/components/icons-bold/Apple.d.ts +4 -0
  166. package/dist/components/icons-bold/Apple.d.ts.map +1 -0
  167. package/dist/components/icons-bold/Archive.d.ts +4 -0
  168. package/dist/components/icons-bold/Archive.d.ts.map +1 -0
  169. package/dist/components/icons-bold/ArrangeCircle.d.ts +4 -0
  170. package/dist/components/icons-bold/ArrangeCircle.d.ts.map +1 -0
  171. package/dist/components/icons-bold/ArrangeCircle2.d.ts +4 -0
  172. package/dist/components/icons-bold/ArrangeCircle2.d.ts.map +1 -0
  173. package/dist/components/icons-bold/ArrangeSquare.d.ts +4 -0
  174. package/dist/components/icons-bold/ArrangeSquare.d.ts.map +1 -0
  175. package/dist/components/icons-bold/ArrangeSquare2.d.ts +4 -0
  176. package/dist/components/icons-bold/ArrangeSquare2.d.ts.map +1 -0
  177. package/dist/components/icons-bold/Arrow2.d.ts +4 -0
  178. package/dist/components/icons-bold/Arrow2.d.ts.map +1 -0
  179. package/dist/components/icons-bold/Arrow3.d.ts +4 -0
  180. package/dist/components/icons-bold/Arrow3.d.ts.map +1 -0
  181. package/dist/components/icons-bold/ArrowBottom.d.ts +4 -0
  182. package/dist/components/icons-bold/ArrowBottom.d.ts.map +1 -0
  183. package/dist/components/icons-bold/ArrowCircleDown.d.ts +4 -0
  184. package/dist/components/icons-bold/ArrowCircleDown.d.ts.map +1 -0
  185. package/dist/components/icons-bold/ArrowCircleLeft.d.ts +4 -0
  186. package/dist/components/icons-bold/ArrowCircleLeft.d.ts.map +1 -0
  187. package/dist/components/icons-bold/ArrowCircleRight.d.ts +4 -0
  188. package/dist/components/icons-bold/ArrowCircleRight.d.ts.map +1 -0
  189. package/dist/components/icons-bold/ArrowDown.d.ts +4 -0
  190. package/dist/components/icons-bold/ArrowDown.d.ts.map +1 -0
  191. package/dist/components/icons-bold/ArrowDown1.d.ts +4 -0
  192. package/dist/components/icons-bold/ArrowDown1.d.ts.map +1 -0
  193. package/dist/components/icons-bold/ArrowDown2.d.ts +4 -0
  194. package/dist/components/icons-bold/ArrowDown2.d.ts.map +1 -0
  195. package/dist/components/icons-bold/ArrowLeft.d.ts +4 -0
  196. package/dist/components/icons-bold/ArrowLeft.d.ts.map +1 -0
  197. package/dist/components/icons-bold/ArrowLeft1.d.ts +4 -0
  198. package/dist/components/icons-bold/ArrowLeft1.d.ts.map +1 -0
  199. package/dist/components/icons-bold/ArrowLeft2.d.ts +4 -0
  200. package/dist/components/icons-bold/ArrowLeft2.d.ts.map +1 -0
  201. package/dist/components/icons-bold/ArrowLeft3.d.ts +4 -0
  202. package/dist/components/icons-bold/ArrowLeft3.d.ts.map +1 -0
  203. package/dist/components/icons-bold/ArrowRight.d.ts +4 -0
  204. package/dist/components/icons-bold/ArrowRight.d.ts.map +1 -0
  205. package/dist/components/icons-bold/ArrowRight1.d.ts +4 -0
  206. package/dist/components/icons-bold/ArrowRight1.d.ts.map +1 -0
  207. package/dist/components/icons-bold/ArrowRight2.d.ts +4 -0
  208. package/dist/components/icons-bold/ArrowRight2.d.ts.map +1 -0
  209. package/dist/components/icons-bold/ArrowRight3.d.ts +4 -0
  210. package/dist/components/icons-bold/ArrowRight3.d.ts.map +1 -0
  211. package/dist/components/icons-bold/ArrowSquareDown.d.ts +4 -0
  212. package/dist/components/icons-bold/ArrowSquareDown.d.ts.map +1 -0
  213. package/dist/components/icons-bold/ArrowSquareLeft.d.ts +4 -0
  214. package/dist/components/icons-bold/ArrowSquareLeft.d.ts.map +1 -0
  215. package/dist/components/icons-bold/ArrowSquareRight.d.ts +4 -0
  216. package/dist/components/icons-bold/ArrowSquareRight.d.ts.map +1 -0
  217. package/dist/components/icons-bold/ArrowSquareUp.d.ts +4 -0
  218. package/dist/components/icons-bold/ArrowSquareUp.d.ts.map +1 -0
  219. package/dist/components/icons-bold/ArrowSwapHorizontal.d.ts +4 -0
  220. package/dist/components/icons-bold/ArrowSwapHorizontal.d.ts.map +1 -0
  221. package/dist/components/icons-bold/ArrowUp.d.ts +4 -0
  222. package/dist/components/icons-bold/ArrowUp.d.ts.map +1 -0
  223. package/dist/components/icons-bold/ArrowUp1.d.ts +4 -0
  224. package/dist/components/icons-bold/ArrowUp1.d.ts.map +1 -0
  225. package/dist/components/icons-bold/ArrowUp2.d.ts +4 -0
  226. package/dist/components/icons-bold/ArrowUp2.d.ts.map +1 -0
  227. package/dist/components/icons-bold/ArrowUp3.d.ts +4 -0
  228. package/dist/components/icons-bold/ArrowUp3.d.ts.map +1 -0
  229. package/dist/components/icons-bold/AttachCircle.d.ts +4 -0
  230. package/dist/components/icons-bold/AttachCircle.d.ts.map +1 -0
  231. package/dist/components/icons-bold/AttachSquare.d.ts +4 -0
  232. package/dist/components/icons-bold/AttachSquare.d.ts.map +1 -0
  233. package/dist/components/icons-bold/Autobrightness.d.ts +4 -0
  234. package/dist/components/icons-bold/Autobrightness.d.ts.map +1 -0
  235. package/dist/components/icons-bold/BackSquare.d.ts +4 -0
  236. package/dist/components/icons-bold/BackSquare.d.ts.map +1 -0
  237. package/dist/components/icons-bold/Backward.d.ts +4 -0
  238. package/dist/components/icons-bold/Backward.d.ts.map +1 -0
  239. package/dist/components/icons-bold/Backward10Seconds.d.ts +4 -0
  240. package/dist/components/icons-bold/Backward10Seconds.d.ts.map +1 -0
  241. package/dist/components/icons-bold/Backward15Seconds.d.ts +4 -0
  242. package/dist/components/icons-bold/Backward15Seconds.d.ts.map +1 -0
  243. package/dist/components/icons-bold/Backward5Seconds.d.ts +4 -0
  244. package/dist/components/icons-bold/Backward5Seconds.d.ts.map +1 -0
  245. package/dist/components/icons-bold/BatteryDisable.d.ts +4 -0
  246. package/dist/components/icons-bold/BatteryDisable.d.ts.map +1 -0
  247. package/dist/components/icons-bold/BatteryFull.d.ts +4 -0
  248. package/dist/components/icons-bold/BatteryFull.d.ts.map +1 -0
  249. package/dist/components/icons-bold/Bluetooth.d.ts +4 -0
  250. package/dist/components/icons-bold/Bluetooth.d.ts.map +1 -0
  251. package/dist/components/icons-bold/BluetoothCircle.d.ts +4 -0
  252. package/dist/components/icons-bold/BluetoothCircle.d.ts.map +1 -0
  253. package/dist/components/icons-bold/Book.d.ts +4 -0
  254. package/dist/components/icons-bold/Book.d.ts.map +1 -0
  255. package/dist/components/icons-bold/Box.d.ts +4 -0
  256. package/dist/components/icons-bold/Box.d.ts.map +1 -0
  257. package/dist/components/icons-bold/Box2.d.ts +4 -0
  258. package/dist/components/icons-bold/Box2.d.ts.map +1 -0
  259. package/dist/components/icons-bold/Briefcase.d.ts +4 -0
  260. package/dist/components/icons-bold/Briefcase.d.ts.map +1 -0
  261. package/dist/components/icons-bold/Broom.d.ts +4 -0
  262. package/dist/components/icons-bold/Broom.d.ts.map +1 -0
  263. package/dist/components/icons-bold/Cake.d.ts +4 -0
  264. package/dist/components/icons-bold/Cake.d.ts.map +1 -0
  265. package/dist/components/icons-bold/Calculator.d.ts +4 -0
  266. package/dist/components/icons-bold/Calculator.d.ts.map +1 -0
  267. package/dist/components/icons-bold/Camera.d.ts +4 -0
  268. package/dist/components/icons-bold/Camera.d.ts.map +1 -0
  269. package/dist/components/icons-bold/CameraSlash.d.ts +4 -0
  270. package/dist/components/icons-bold/CameraSlash.d.ts.map +1 -0
  271. package/dist/components/icons-bold/CardAdd.d.ts +4 -0
  272. package/dist/components/icons-bold/CardAdd.d.ts.map +1 -0
  273. package/dist/components/icons-bold/CardRemove.d.ts +4 -0
  274. package/dist/components/icons-bold/CardRemove.d.ts.map +1 -0
  275. package/dist/components/icons-bold/CardSlash.d.ts +4 -0
  276. package/dist/components/icons-bold/CardSlash.d.ts.map +1 -0
  277. package/dist/components/icons-bold/CardTick.d.ts +4 -0
  278. package/dist/components/icons-bold/CardTick.d.ts.map +1 -0
  279. package/dist/components/icons-bold/Cards.d.ts +4 -0
  280. package/dist/components/icons-bold/Cards.d.ts.map +1 -0
  281. package/dist/components/icons-bold/Cd.d.ts +4 -0
  282. package/dist/components/icons-bold/Cd.d.ts.map +1 -0
  283. package/dist/components/icons-bold/Check.d.ts +4 -0
  284. package/dist/components/icons-bold/Check.d.ts.map +1 -0
  285. package/dist/components/icons-bold/Chrome.d.ts +4 -0
  286. package/dist/components/icons-bold/Chrome.d.ts.map +1 -0
  287. package/dist/components/icons-bold/CloseCircle.d.ts +4 -0
  288. package/dist/components/icons-bold/CloseCircle.d.ts.map +1 -0
  289. package/dist/components/icons-bold/CloseSquare.d.ts +4 -0
  290. package/dist/components/icons-bold/CloseSquare.d.ts.map +1 -0
  291. package/dist/components/icons-bold/Cloud.d.ts +4 -0
  292. package/dist/components/icons-bold/Cloud.d.ts.map +1 -0
  293. package/dist/components/icons-bold/CloudAdd.d.ts +4 -0
  294. package/dist/components/icons-bold/CloudAdd.d.ts.map +1 -0
  295. package/dist/components/icons-bold/CloudChange.d.ts +4 -0
  296. package/dist/components/icons-bold/CloudChange.d.ts.map +1 -0
  297. package/dist/components/icons-bold/CloudDrizzle.d.ts +4 -0
  298. package/dist/components/icons-bold/CloudDrizzle.d.ts.map +1 -0
  299. package/dist/components/icons-bold/CloudLightning.d.ts +4 -0
  300. package/dist/components/icons-bold/CloudLightning.d.ts.map +1 -0
  301. package/dist/components/icons-bold/CloudNotif.d.ts +4 -0
  302. package/dist/components/icons-bold/CloudNotif.d.ts.map +1 -0
  303. package/dist/components/icons-bold/CloudRemove.d.ts +4 -0
  304. package/dist/components/icons-bold/CloudRemove.d.ts.map +1 -0
  305. package/dist/components/icons-bold/CloudSnow.d.ts +4 -0
  306. package/dist/components/icons-bold/CloudSnow.d.ts.map +1 -0
  307. package/dist/components/icons-bold/CloudSunny.d.ts +4 -0
  308. package/dist/components/icons-bold/CloudSunny.d.ts.map +1 -0
  309. package/dist/components/icons-bold/Code.d.ts +4 -0
  310. package/dist/components/icons-bold/Code.d.ts.map +1 -0
  311. package/dist/components/icons-bold/Code1.d.ts +4 -0
  312. package/dist/components/icons-bold/Code1.d.ts.map +1 -0
  313. package/dist/components/icons-bold/Coin.d.ts +4 -0
  314. package/dist/components/icons-bold/Coin.d.ts.map +1 -0
  315. package/dist/components/icons-bold/Computing.d.ts +4 -0
  316. package/dist/components/icons-bold/Computing.d.ts.map +1 -0
  317. package/dist/components/icons-bold/Convert.d.ts +4 -0
  318. package/dist/components/icons-bold/Convert.d.ts.map +1 -0
  319. package/dist/components/icons-bold/Crown.d.ts +4 -0
  320. package/dist/components/icons-bold/Crown.d.ts.map +1 -0
  321. package/dist/components/icons-bold/Crown1.d.ts +4 -0
  322. package/dist/components/icons-bold/Crown1.d.ts.map +1 -0
  323. package/dist/components/icons-bold/Danger.d.ts +4 -0
  324. package/dist/components/icons-bold/Danger.d.ts.map +1 -0
  325. package/dist/components/icons-bold/DirectDown.d.ts +4 -0
  326. package/dist/components/icons-bold/DirectDown.d.ts.map +1 -0
  327. package/dist/components/icons-bold/DirectLeft.d.ts +4 -0
  328. package/dist/components/icons-bold/DirectLeft.d.ts.map +1 -0
  329. package/dist/components/icons-bold/DirectRight.d.ts +4 -0
  330. package/dist/components/icons-bold/DirectRight.d.ts.map +1 -0
  331. package/dist/components/icons-bold/DirectUp.d.ts +4 -0
  332. package/dist/components/icons-bold/DirectUp.d.ts.map +1 -0
  333. package/dist/components/icons-bold/Dislike.d.ts +4 -0
  334. package/dist/components/icons-bold/Dislike.d.ts.map +1 -0
  335. package/dist/components/icons-bold/DollarSquare.d.ts +4 -0
  336. package/dist/components/icons-bold/DollarSquare.d.ts.map +1 -0
  337. package/dist/components/icons-bold/Drop.d.ts +4 -0
  338. package/dist/components/icons-bold/Drop.d.ts.map +1 -0
  339. package/dist/components/icons-bold/EmojiHappy.d.ts +4 -0
  340. package/dist/components/icons-bold/EmojiHappy.d.ts.map +1 -0
  341. package/dist/components/icons-bold/EmojiNormal.d.ts +4 -0
  342. package/dist/components/icons-bold/EmojiNormal.d.ts.map +1 -0
  343. package/dist/components/icons-bold/EmojiSad.d.ts +4 -0
  344. package/dist/components/icons-bold/EmojiSad.d.ts.map +1 -0
  345. package/dist/components/icons-bold/EmptyWallet.d.ts +4 -0
  346. package/dist/components/icons-bold/EmptyWallet.d.ts.map +1 -0
  347. package/dist/components/icons-bold/Eraser.d.ts +4 -0
  348. package/dist/components/icons-bold/Eraser.d.ts.map +1 -0
  349. package/dist/components/icons-bold/Export.d.ts +4 -0
  350. package/dist/components/icons-bold/Export.d.ts.map +1 -0
  351. package/dist/components/icons-bold/Export1.d.ts +4 -0
  352. package/dist/components/icons-bold/Export1.d.ts.map +1 -0
  353. package/dist/components/icons-bold/Export2.d.ts +4 -0
  354. package/dist/components/icons-bold/Export2.d.ts.map +1 -0
  355. package/dist/components/icons-bold/Export3.d.ts +4 -0
  356. package/dist/components/icons-bold/Export3.d.ts.map +1 -0
  357. package/dist/components/icons-bold/Eye.d.ts +4 -0
  358. package/dist/components/icons-bold/Eye.d.ts.map +1 -0
  359. package/dist/components/icons-bold/EyeSlash.d.ts +4 -0
  360. package/dist/components/icons-bold/EyeSlash.d.ts.map +1 -0
  361. package/dist/components/icons-bold/Facebook.d.ts +4 -0
  362. package/dist/components/icons-bold/Facebook.d.ts.map +1 -0
  363. package/dist/components/icons-bold/Figma.d.ts +4 -0
  364. package/dist/components/icons-bold/Figma.d.ts.map +1 -0
  365. package/dist/components/icons-bold/Filter.d.ts +4 -0
  366. package/dist/components/icons-bold/Filter.d.ts.map +1 -0
  367. package/dist/components/icons-bold/FilterAdd.d.ts +4 -0
  368. package/dist/components/icons-bold/FilterAdd.d.ts.map +1 -0
  369. package/dist/components/icons-bold/FilterEdit.d.ts +4 -0
  370. package/dist/components/icons-bold/FilterEdit.d.ts.map +1 -0
  371. package/dist/components/icons-bold/FilterRemove.d.ts +4 -0
  372. package/dist/components/icons-bold/FilterRemove.d.ts.map +1 -0
  373. package/dist/components/icons-bold/FilterSearch.d.ts +4 -0
  374. package/dist/components/icons-bold/FilterSearch.d.ts.map +1 -0
  375. package/dist/components/icons-bold/FilterTick.d.ts +4 -0
  376. package/dist/components/icons-bold/FilterTick.d.ts.map +1 -0
  377. package/dist/components/icons-bold/FingerCricle.d.ts +4 -0
  378. package/dist/components/icons-bold/FingerCricle.d.ts.map +1 -0
  379. package/dist/components/icons-bold/Firstline.d.ts +4 -0
  380. package/dist/components/icons-bold/Firstline.d.ts.map +1 -0
  381. package/dist/components/icons-bold/Flag.d.ts +4 -0
  382. package/dist/components/icons-bold/Flag.d.ts.map +1 -0
  383. package/dist/components/icons-bold/Flag2.d.ts +4 -0
  384. package/dist/components/icons-bold/Flag2.d.ts.map +1 -0
  385. package/dist/components/icons-bold/Flash.d.ts +4 -0
  386. package/dist/components/icons-bold/Flash.d.ts.map +1 -0
  387. package/dist/components/icons-bold/FlashCircle.d.ts +4 -0
  388. package/dist/components/icons-bold/FlashCircle.d.ts.map +1 -0
  389. package/dist/components/icons-bold/FlashSlash.d.ts +4 -0
  390. package/dist/components/icons-bold/FlashSlash.d.ts.map +1 -0
  391. package/dist/components/icons-bold/Folder.d.ts +4 -0
  392. package/dist/components/icons-bold/Folder.d.ts.map +1 -0
  393. package/dist/components/icons-bold/Folder2.d.ts +4 -0
  394. package/dist/components/icons-bold/Folder2.d.ts.map +1 -0
  395. package/dist/components/icons-bold/FolderAdd.d.ts +4 -0
  396. package/dist/components/icons-bold/FolderAdd.d.ts.map +1 -0
  397. package/dist/components/icons-bold/FolderCloud.d.ts +4 -0
  398. package/dist/components/icons-bold/FolderCloud.d.ts.map +1 -0
  399. package/dist/components/icons-bold/FolderCross.d.ts +4 -0
  400. package/dist/components/icons-bold/FolderCross.d.ts.map +1 -0
  401. package/dist/components/icons-bold/FolderFavorite.d.ts +4 -0
  402. package/dist/components/icons-bold/FolderFavorite.d.ts.map +1 -0
  403. package/dist/components/icons-bold/FolderMinus.d.ts +4 -0
  404. package/dist/components/icons-bold/FolderMinus.d.ts.map +1 -0
  405. package/dist/components/icons-bold/FolderOpen.d.ts +4 -0
  406. package/dist/components/icons-bold/FolderOpen.d.ts.map +1 -0
  407. package/dist/components/icons-bold/Forbidden2.d.ts +4 -0
  408. package/dist/components/icons-bold/Forbidden2.d.ts.map +1 -0
  409. package/dist/components/icons-bold/Forward.d.ts +4 -0
  410. package/dist/components/icons-bold/Forward.d.ts.map +1 -0
  411. package/dist/components/icons-bold/Forward10Seconds.d.ts +4 -0
  412. package/dist/components/icons-bold/Forward10Seconds.d.ts.map +1 -0
  413. package/dist/components/icons-bold/Forward15Seconds.d.ts +4 -0
  414. package/dist/components/icons-bold/Forward15Seconds.d.ts.map +1 -0
  415. package/dist/components/icons-bold/Forward5Seconds.d.ts +4 -0
  416. package/dist/components/icons-bold/Forward5Seconds.d.ts.map +1 -0
  417. package/dist/components/icons-bold/ForwardSquare.d.ts +4 -0
  418. package/dist/components/icons-bold/ForwardSquare.d.ts.map +1 -0
  419. package/dist/components/icons-bold/Frame.d.ts +4 -0
  420. package/dist/components/icons-bold/Frame.d.ts.map +1 -0
  421. package/dist/components/icons-bold/Frame1.d.ts +4 -0
  422. package/dist/components/icons-bold/Frame1.d.ts.map +1 -0
  423. package/dist/components/icons-bold/Gallery.d.ts +4 -0
  424. package/dist/components/icons-bold/Gallery.d.ts.map +1 -0
  425. package/dist/components/icons-bold/GalleryAdd.d.ts +4 -0
  426. package/dist/components/icons-bold/GalleryAdd.d.ts.map +1 -0
  427. package/dist/components/icons-bold/GalleryRemove.d.ts +4 -0
  428. package/dist/components/icons-bold/GalleryRemove.d.ts.map +1 -0
  429. package/dist/components/icons-bold/GallerySlash.d.ts +4 -0
  430. package/dist/components/icons-bold/GallerySlash.d.ts.map +1 -0
  431. package/dist/components/icons-bold/Global.d.ts +4 -0
  432. package/dist/components/icons-bold/Global.d.ts.map +1 -0
  433. package/dist/components/icons-bold/Heart.d.ts +4 -0
  434. package/dist/components/icons-bold/Heart.d.ts.map +1 -0
  435. package/dist/components/icons-bold/Hierarchy.d.ts +4 -0
  436. package/dist/components/icons-bold/Hierarchy.d.ts.map +1 -0
  437. package/dist/components/icons-bold/Hierarchy2.d.ts +4 -0
  438. package/dist/components/icons-bold/Hierarchy2.d.ts.map +1 -0
  439. package/dist/components/icons-bold/Home2.d.ts +4 -0
  440. package/dist/components/icons-bold/Home2.d.ts.map +1 -0
  441. package/dist/components/icons-bold/HomeWifi.d.ts +4 -0
  442. package/dist/components/icons-bold/HomeWifi.d.ts.map +1 -0
  443. package/dist/components/icons-bold/Html3.d.ts +4 -0
  444. package/dist/components/icons-bold/Html3.d.ts.map +1 -0
  445. package/dist/components/icons-bold/Html5.d.ts +4 -0
  446. package/dist/components/icons-bold/Html5.d.ts.map +1 -0
  447. package/dist/components/icons-bold/Image.d.ts +4 -0
  448. package/dist/components/icons-bold/Image.d.ts.map +1 -0
  449. package/dist/components/icons-bold/Import.d.ts +4 -0
  450. package/dist/components/icons-bold/Import.d.ts.map +1 -0
  451. package/dist/components/icons-bold/Import1.d.ts +4 -0
  452. package/dist/components/icons-bold/Import1.d.ts.map +1 -0
  453. package/dist/components/icons-bold/Import2.d.ts +4 -0
  454. package/dist/components/icons-bold/Import2.d.ts.map +1 -0
  455. package/dist/components/icons-bold/InfoCircle.d.ts +4 -0
  456. package/dist/components/icons-bold/InfoCircle.d.ts.map +1 -0
  457. package/dist/components/icons-bold/Information.d.ts +4 -0
  458. package/dist/components/icons-bold/Information.d.ts.map +1 -0
  459. package/dist/components/icons-bold/Instagram.d.ts +4 -0
  460. package/dist/components/icons-bold/Instagram.d.ts.map +1 -0
  461. package/dist/components/icons-bold/JavaScript.d.ts +4 -0
  462. package/dist/components/icons-bold/JavaScript.d.ts.map +1 -0
  463. package/dist/components/icons-bold/LanguageCircle.d.ts +4 -0
  464. package/dist/components/icons-bold/LanguageCircle.d.ts.map +1 -0
  465. package/dist/components/icons-bold/LanguageSquare.d.ts +4 -0
  466. package/dist/components/icons-bold/LanguageSquare.d.ts.map +1 -0
  467. package/dist/components/icons-bold/Like.d.ts +4 -0
  468. package/dist/components/icons-bold/Like.d.ts.map +1 -0
  469. package/dist/components/icons-bold/LikeDislike.d.ts +4 -0
  470. package/dist/components/icons-bold/LikeDislike.d.ts.map +1 -0
  471. package/dist/components/icons-bold/LikeTag.d.ts +4 -0
  472. package/dist/components/icons-bold/LikeTag.d.ts.map +1 -0
  473. package/dist/components/icons-bold/Link.d.ts +4 -0
  474. package/dist/components/icons-bold/Link.d.ts.map +1 -0
  475. package/dist/components/icons-bold/Link1.d.ts +4 -0
  476. package/dist/components/icons-bold/Link1.d.ts.map +1 -0
  477. package/dist/components/icons-bold/Link2.d.ts +4 -0
  478. package/dist/components/icons-bold/Link2.d.ts.map +1 -0
  479. package/dist/components/icons-bold/Link21.d.ts +4 -0
  480. package/dist/components/icons-bold/Link21.d.ts.map +1 -0
  481. package/dist/components/icons-bold/LinkCircle.d.ts +4 -0
  482. package/dist/components/icons-bold/LinkCircle.d.ts.map +1 -0
  483. package/dist/components/icons-bold/LinkSquare.d.ts +4 -0
  484. package/dist/components/icons-bold/LinkSquare.d.ts.map +1 -0
  485. package/dist/components/icons-bold/LocationCross.d.ts +4 -0
  486. package/dist/components/icons-bold/LocationCross.d.ts.map +1 -0
  487. package/dist/components/icons-bold/LocationMinus.d.ts +4 -0
  488. package/dist/components/icons-bold/LocationMinus.d.ts.map +1 -0
  489. package/dist/components/icons-bold/LocationSlash.d.ts +4 -0
  490. package/dist/components/icons-bold/LocationSlash.d.ts.map +1 -0
  491. package/dist/components/icons-bold/LocationTick.d.ts +4 -0
  492. package/dist/components/icons-bold/LocationTick.d.ts.map +1 -0
  493. package/dist/components/icons-bold/Lock.d.ts +4 -0
  494. package/dist/components/icons-bold/Lock.d.ts.map +1 -0
  495. package/dist/components/icons-bold/LockSlash.d.ts +4 -0
  496. package/dist/components/icons-bold/LockSlash.d.ts.map +1 -0
  497. package/dist/components/icons-bold/Login.d.ts +4 -0
  498. package/dist/components/icons-bold/Login.d.ts.map +1 -0
  499. package/dist/components/icons-bold/Login1.d.ts +4 -0
  500. package/dist/components/icons-bold/Login1.d.ts.map +1 -0
  501. package/dist/components/icons-bold/Logout.d.ts +4 -0
  502. package/dist/components/icons-bold/Logout.d.ts.map +1 -0
  503. package/dist/components/icons-bold/Logout1.d.ts +4 -0
  504. package/dist/components/icons-bold/Logout1.d.ts.map +1 -0
  505. package/dist/components/icons-bold/Map.d.ts +4 -0
  506. package/dist/components/icons-bold/Map.d.ts.map +1 -0
  507. package/dist/components/icons-bold/Math.d.ts +4 -0
  508. package/dist/components/icons-bold/Math.d.ts.map +1 -0
  509. package/dist/components/icons-bold/Maximize.d.ts +4 -0
  510. package/dist/components/icons-bold/Maximize.d.ts.map +1 -0
  511. package/dist/components/icons-bold/Menu.d.ts +4 -0
  512. package/dist/components/icons-bold/Menu.d.ts.map +1 -0
  513. package/dist/components/icons-bold/MessageProgramming.d.ts +4 -0
  514. package/dist/components/icons-bold/MessageProgramming.d.ts.map +1 -0
  515. package/dist/components/icons-bold/Microphone.d.ts +4 -0
  516. package/dist/components/icons-bold/Microphone.d.ts.map +1 -0
  517. package/dist/components/icons-bold/Microphone2.d.ts +4 -0
  518. package/dist/components/icons-bold/Microphone2.d.ts.map +1 -0
  519. package/dist/components/icons-bold/MicrophoneSlash.d.ts +4 -0
  520. package/dist/components/icons-bold/MicrophoneSlash.d.ts.map +1 -0
  521. package/dist/components/icons-bold/MicrophoneSlash1.d.ts +4 -0
  522. package/dist/components/icons-bold/MicrophoneSlash1.d.ts.map +1 -0
  523. package/dist/components/icons-bold/Milk.d.ts +4 -0
  524. package/dist/components/icons-bold/Milk.d.ts.map +1 -0
  525. package/dist/components/icons-bold/Minus.d.ts +4 -0
  526. package/dist/components/icons-bold/Minus.d.ts.map +1 -0
  527. package/dist/components/icons-bold/MinusCirlce.d.ts +4 -0
  528. package/dist/components/icons-bold/MinusCirlce.d.ts.map +1 -0
  529. package/dist/components/icons-bold/MinusSquare.d.ts +4 -0
  530. package/dist/components/icons-bold/MinusSquare.d.ts.map +1 -0
  531. package/dist/components/icons-bold/Monitor.d.ts +4 -0
  532. package/dist/components/icons-bold/Monitor.d.ts.map +1 -0
  533. package/dist/components/icons-bold/Moon.d.ts +4 -0
  534. package/dist/components/icons-bold/Moon.d.ts.map +1 -0
  535. package/dist/components/icons-bold/MoreCircle.d.ts +4 -0
  536. package/dist/components/icons-bold/MoreCircle.d.ts.map +1 -0
  537. package/dist/components/icons-bold/MoreSquare.d.ts +4 -0
  538. package/dist/components/icons-bold/MoreSquare.d.ts.map +1 -0
  539. package/dist/components/icons-bold/Mouse.d.ts +4 -0
  540. package/dist/components/icons-bold/Mouse.d.ts.map +1 -0
  541. package/dist/components/icons-bold/MouseCircle.d.ts +4 -0
  542. package/dist/components/icons-bold/MouseCircle.d.ts.map +1 -0
  543. package/dist/components/icons-bold/MouseSquare.d.ts +4 -0
  544. package/dist/components/icons-bold/MouseSquare.d.ts.map +1 -0
  545. package/dist/components/icons-bold/Next.d.ts +4 -0
  546. package/dist/components/icons-bold/Next.d.ts.map +1 -0
  547. package/dist/components/icons-bold/Paperclip.d.ts +4 -0
  548. package/dist/components/icons-bold/Paperclip.d.ts.map +1 -0
  549. package/dist/components/icons-bold/Paperclip2.d.ts +4 -0
  550. package/dist/components/icons-bold/Paperclip2.d.ts.map +1 -0
  551. package/dist/components/icons-bold/PasswordCheck.d.ts +4 -0
  552. package/dist/components/icons-bold/PasswordCheck.d.ts.map +1 -0
  553. package/dist/components/icons-bold/Pause.d.ts +4 -0
  554. package/dist/components/icons-bold/Pause.d.ts.map +1 -0
  555. package/dist/components/icons-bold/PauseCircle.d.ts +4 -0
  556. package/dist/components/icons-bold/PauseCircle.d.ts.map +1 -0
  557. package/dist/components/icons-bold/People.d.ts +4 -0
  558. package/dist/components/icons-bold/People.d.ts.map +1 -0
  559. package/dist/components/icons-bold/Pet.d.ts +4 -0
  560. package/dist/components/icons-bold/Pet.d.ts.map +1 -0
  561. package/dist/components/icons-bold/Pharagraphspacing.d.ts +4 -0
  562. package/dist/components/icons-bold/Pharagraphspacing.d.ts.map +1 -0
  563. package/dist/components/icons-bold/Play.d.ts +4 -0
  564. package/dist/components/icons-bold/Play.d.ts.map +1 -0
  565. package/dist/components/icons-bold/PlayCircle.d.ts +4 -0
  566. package/dist/components/icons-bold/PlayCircle.d.ts.map +1 -0
  567. package/dist/components/icons-bold/Previous.d.ts +4 -0
  568. package/dist/components/icons-bold/Previous.d.ts.map +1 -0
  569. package/dist/components/icons-bold/Printer.d.ts +4 -0
  570. package/dist/components/icons-bold/Printer.d.ts.map +1 -0
  571. package/dist/components/icons-bold/PrinterSlash.d.ts +4 -0
  572. package/dist/components/icons-bold/PrinterSlash.d.ts.map +1 -0
  573. package/dist/components/icons-bold/Profile.d.ts +4 -0
  574. package/dist/components/icons-bold/Profile.d.ts.map +1 -0
  575. package/dist/components/icons-bold/Profile2User.d.ts +4 -0
  576. package/dist/components/icons-bold/Profile2User.d.ts.map +1 -0
  577. package/dist/components/icons-bold/ProfileAdd.d.ts +4 -0
  578. package/dist/components/icons-bold/ProfileAdd.d.ts.map +1 -0
  579. package/dist/components/icons-bold/ProfileCircle.d.ts +4 -0
  580. package/dist/components/icons-bold/ProfileCircle.d.ts.map +1 -0
  581. package/dist/components/icons-bold/ProfileDelete.d.ts +4 -0
  582. package/dist/components/icons-bold/ProfileDelete.d.ts.map +1 -0
  583. package/dist/components/icons-bold/ProfileRemove.d.ts +4 -0
  584. package/dist/components/icons-bold/ProfileRemove.d.ts.map +1 -0
  585. package/dist/components/icons-bold/ProfileTick.d.ts +4 -0
  586. package/dist/components/icons-bold/ProfileTick.d.ts.map +1 -0
  587. package/dist/components/icons-bold/ProgrammingArrow.d.ts +4 -0
  588. package/dist/components/icons-bold/ProgrammingArrow.d.ts.map +1 -0
  589. package/dist/components/icons-bold/QuoteDown.d.ts +4 -0
  590. package/dist/components/icons-bold/QuoteDown.d.ts.map +1 -0
  591. package/dist/components/icons-bold/QuoteDownCircle.d.ts +4 -0
  592. package/dist/components/icons-bold/QuoteDownCircle.d.ts.map +1 -0
  593. package/dist/components/icons-bold/QuoteDownSquare.d.ts +4 -0
  594. package/dist/components/icons-bold/QuoteDownSquare.d.ts.map +1 -0
  595. package/dist/components/icons-bold/QuoteUp.d.ts +4 -0
  596. package/dist/components/icons-bold/QuoteUp.d.ts.map +1 -0
  597. package/dist/components/icons-bold/QuoteUpCircle.d.ts +4 -0
  598. package/dist/components/icons-bold/QuoteUpCircle.d.ts.map +1 -0
  599. package/dist/components/icons-bold/QuoteUpSquare.d.ts +4 -0
  600. package/dist/components/icons-bold/QuoteUpSquare.d.ts.map +1 -0
  601. package/dist/components/icons-bold/Ranking.d.ts +4 -0
  602. package/dist/components/icons-bold/Ranking.d.ts.map +1 -0
  603. package/dist/components/icons-bold/ReceiptDiscount.d.ts +4 -0
  604. package/dist/components/icons-bold/ReceiptDiscount.d.ts.map +1 -0
  605. package/dist/components/icons-bold/ReceiptDisscount.d.ts +4 -0
  606. package/dist/components/icons-bold/ReceiptDisscount.d.ts.map +1 -0
  607. package/dist/components/icons-bold/ReceiptItem.d.ts +4 -0
  608. package/dist/components/icons-bold/ReceiptItem.d.ts.map +1 -0
  609. package/dist/components/icons-bold/ReceiptMinus.d.ts +4 -0
  610. package/dist/components/icons-bold/ReceiptMinus.d.ts.map +1 -0
  611. package/dist/components/icons-bold/ReceiveSquare.d.ts +4 -0
  612. package/dist/components/icons-bold/ReceiveSquare.d.ts.map +1 -0
  613. package/dist/components/icons-bold/ReceiveSquare2.d.ts +4 -0
  614. package/dist/components/icons-bold/ReceiveSquare2.d.ts.map +1 -0
  615. package/dist/components/icons-bold/Received.d.ts +4 -0
  616. package/dist/components/icons-bold/Received.d.ts.map +1 -0
  617. package/dist/components/icons-bold/Record.d.ts +4 -0
  618. package/dist/components/icons-bold/Record.d.ts.map +1 -0
  619. package/dist/components/icons-bold/RecordCircle.d.ts +4 -0
  620. package/dist/components/icons-bold/RecordCircle.d.ts.map +1 -0
  621. package/dist/components/icons-bold/Redo.d.ts +4 -0
  622. package/dist/components/icons-bold/Redo.d.ts.map +1 -0
  623. package/dist/components/icons-bold/Refresh.d.ts +4 -0
  624. package/dist/components/icons-bold/Refresh.d.ts.map +1 -0
  625. package/dist/components/icons-bold/Refresh2.d.ts +4 -0
  626. package/dist/components/icons-bold/Refresh2.d.ts.map +1 -0
  627. package/dist/components/icons-bold/RefreshCircle.d.ts +4 -0
  628. package/dist/components/icons-bold/RefreshCircle.d.ts.map +1 -0
  629. package/dist/components/icons-bold/RefreshLeftSquare.d.ts +4 -0
  630. package/dist/components/icons-bold/RefreshLeftSquare.d.ts.map +1 -0
  631. package/dist/components/icons-bold/RefreshRightSquare.d.ts +4 -0
  632. package/dist/components/icons-bold/RefreshRightSquare.d.ts.map +1 -0
  633. package/dist/components/icons-bold/RefreshSquare2.d.ts +4 -0
  634. package/dist/components/icons-bold/RefreshSquare2.d.ts.map +1 -0
  635. package/dist/components/icons-bold/Repeat.d.ts +4 -0
  636. package/dist/components/icons-bold/Repeat.d.ts.map +1 -0
  637. package/dist/components/icons-bold/RepeatCircle.d.ts +4 -0
  638. package/dist/components/icons-bold/RepeatCircle.d.ts.map +1 -0
  639. package/dist/components/icons-bold/RepeateMusic.d.ts +4 -0
  640. package/dist/components/icons-bold/RepeateMusic.d.ts.map +1 -0
  641. package/dist/components/icons-bold/RepeateOne.d.ts +4 -0
  642. package/dist/components/icons-bold/RepeateOne.d.ts.map +1 -0
  643. package/dist/components/icons-bold/RotateLeft.d.ts +4 -0
  644. package/dist/components/icons-bold/RotateLeft.d.ts.map +1 -0
  645. package/dist/components/icons-bold/RotateRight.d.ts +4 -0
  646. package/dist/components/icons-bold/RotateRight.d.ts.map +1 -0
  647. package/dist/components/icons-bold/SafeHome.d.ts +4 -0
  648. package/dist/components/icons-bold/SafeHome.d.ts.map +1 -0
  649. package/dist/components/icons-bold/Scan.d.ts +4 -0
  650. package/dist/components/icons-bold/Scan.d.ts.map +1 -0
  651. package/dist/components/icons-bold/SearchNormal.d.ts +4 -0
  652. package/dist/components/icons-bold/SearchNormal.d.ts.map +1 -0
  653. package/dist/components/icons-bold/SearchZoomIn.d.ts +4 -0
  654. package/dist/components/icons-bold/SearchZoomIn.d.ts.map +1 -0
  655. package/dist/components/icons-bold/SearchZoomOut.d.ts +4 -0
  656. package/dist/components/icons-bold/SearchZoomOut.d.ts.map +1 -0
  657. package/dist/components/icons-bold/Send.d.ts +4 -0
  658. package/dist/components/icons-bold/Send.d.ts.map +1 -0
  659. package/dist/components/icons-bold/Send2.d.ts +4 -0
  660. package/dist/components/icons-bold/Send2.d.ts.map +1 -0
  661. package/dist/components/icons-bold/SendSqaure2.d.ts +4 -0
  662. package/dist/components/icons-bold/SendSqaure2.d.ts.map +1 -0
  663. package/dist/components/icons-bold/SendSquare.d.ts +4 -0
  664. package/dist/components/icons-bold/SendSquare.d.ts.map +1 -0
  665. package/dist/components/icons-bold/Shield.d.ts +4 -0
  666. package/dist/components/icons-bold/Shield.d.ts.map +1 -0
  667. package/dist/components/icons-bold/ShieldCross.d.ts +4 -0
  668. package/dist/components/icons-bold/ShieldCross.d.ts.map +1 -0
  669. package/dist/components/icons-bold/ShieldSecurity.d.ts +4 -0
  670. package/dist/components/icons-bold/ShieldSecurity.d.ts.map +1 -0
  671. package/dist/components/icons-bold/ShieldSlash.d.ts +4 -0
  672. package/dist/components/icons-bold/ShieldSlash.d.ts.map +1 -0
  673. package/dist/components/icons-bold/ShieldTick.d.ts +4 -0
  674. package/dist/components/icons-bold/ShieldTick.d.ts.map +1 -0
  675. package/dist/components/icons-bold/Shuffle.d.ts +4 -0
  676. package/dist/components/icons-bold/Shuffle.d.ts.map +1 -0
  677. package/dist/components/icons-bold/Slack.d.ts +4 -0
  678. package/dist/components/icons-bold/Slack.d.ts.map +1 -0
  679. package/dist/components/icons-bold/Slash.d.ts +4 -0
  680. package/dist/components/icons-bold/Slash.d.ts.map +1 -0
  681. package/dist/components/icons-bold/Smallcaps.d.ts +4 -0
  682. package/dist/components/icons-bold/Smallcaps.d.ts.map +1 -0
  683. package/dist/components/icons-bold/SmartHome.d.ts +4 -0
  684. package/dist/components/icons-bold/SmartHome.d.ts.map +1 -0
  685. package/dist/components/icons-bold/Sort.d.ts +4 -0
  686. package/dist/components/icons-bold/Sort.d.ts.map +1 -0
  687. package/dist/components/icons-bold/Sound.d.ts +4 -0
  688. package/dist/components/icons-bold/Sound.d.ts.map +1 -0
  689. package/dist/components/icons-bold/Spotify.d.ts +4 -0
  690. package/dist/components/icons-bold/Spotify.d.ts.map +1 -0
  691. package/dist/components/icons-bold/Star.d.ts +4 -0
  692. package/dist/components/icons-bold/Star.d.ts.map +1 -0
  693. package/dist/components/icons-bold/Sticker.d.ts +4 -0
  694. package/dist/components/icons-bold/Sticker.d.ts.map +1 -0
  695. package/dist/components/icons-bold/Stop.d.ts +4 -0
  696. package/dist/components/icons-bold/Stop.d.ts.map +1 -0
  697. package/dist/components/icons-bold/StopCircle.d.ts +4 -0
  698. package/dist/components/icons-bold/StopCircle.d.ts.map +1 -0
  699. package/dist/components/icons-bold/Story.d.ts +4 -0
  700. package/dist/components/icons-bold/Story.d.ts.map +1 -0
  701. package/dist/components/icons-bold/Sun.d.ts +4 -0
  702. package/dist/components/icons-bold/Sun.d.ts.map +1 -0
  703. package/dist/components/icons-bold/TagCross.d.ts +4 -0
  704. package/dist/components/icons-bold/TagCross.d.ts.map +1 -0
  705. package/dist/components/icons-bold/TagUser.d.ts +4 -0
  706. package/dist/components/icons-bold/TagUser.d.ts.map +1 -0
  707. package/dist/components/icons-bold/Teacher.d.ts +4 -0
  708. package/dist/components/icons-bold/Teacher.d.ts.map +1 -0
  709. package/dist/components/icons-bold/Text.d.ts +4 -0
  710. package/dist/components/icons-bold/Text.d.ts.map +1 -0
  711. package/dist/components/icons-bold/TextBlock.d.ts +4 -0
  712. package/dist/components/icons-bold/TextBlock.d.ts.map +1 -0
  713. package/dist/components/icons-bold/TextBold.d.ts +4 -0
  714. package/dist/components/icons-bold/TextBold.d.ts.map +1 -0
  715. package/dist/components/icons-bold/TextItalic.d.ts +4 -0
  716. package/dist/components/icons-bold/TextItalic.d.ts.map +1 -0
  717. package/dist/components/icons-bold/TextUnderline.d.ts +4 -0
  718. package/dist/components/icons-bold/TextUnderline.d.ts.map +1 -0
  719. package/dist/components/icons-bold/TextalignCenter.d.ts +4 -0
  720. package/dist/components/icons-bold/TextalignCenter.d.ts.map +1 -0
  721. package/dist/components/icons-bold/TextalignJustifycenter.d.ts +4 -0
  722. package/dist/components/icons-bold/TextalignJustifycenter.d.ts.map +1 -0
  723. package/dist/components/icons-bold/TextalignJustifyleft.d.ts +4 -0
  724. package/dist/components/icons-bold/TextalignJustifyleft.d.ts.map +1 -0
  725. package/dist/components/icons-bold/TextalignJustifyright.d.ts +4 -0
  726. package/dist/components/icons-bold/TextalignJustifyright.d.ts.map +1 -0
  727. package/dist/components/icons-bold/TextalignLeft.d.ts +4 -0
  728. package/dist/components/icons-bold/TextalignLeft.d.ts.map +1 -0
  729. package/dist/components/icons-bold/TextalignRight.d.ts +4 -0
  730. package/dist/components/icons-bold/TextalignRight.d.ts.map +1 -0
  731. package/dist/components/icons-bold/TickCircle.d.ts +4 -0
  732. package/dist/components/icons-bold/TickCircle.d.ts.map +1 -0
  733. package/dist/components/icons-bold/TickSquare.d.ts +4 -0
  734. package/dist/components/icons-bold/TickSquare.d.ts.map +1 -0
  735. package/dist/components/icons-bold/Ticket.d.ts +4 -0
  736. package/dist/components/icons-bold/Ticket.d.ts.map +1 -0
  737. package/dist/components/icons-bold/TicketDiscount.d.ts +4 -0
  738. package/dist/components/icons-bold/TicketDiscount.d.ts.map +1 -0
  739. package/dist/components/icons-bold/Translate.d.ts +4 -0
  740. package/dist/components/icons-bold/Translate.d.ts.map +1 -0
  741. package/dist/components/icons-bold/Trash.d.ts +4 -0
  742. package/dist/components/icons-bold/Trash.d.ts.map +1 -0
  743. package/dist/components/icons-bold/Triangle.d.ts +4 -0
  744. package/dist/components/icons-bold/Triangle.d.ts.map +1 -0
  745. package/dist/components/icons-bold/Truck.d.ts +4 -0
  746. package/dist/components/icons-bold/Truck.d.ts.map +1 -0
  747. package/dist/components/icons-bold/TrushSquare.d.ts +4 -0
  748. package/dist/components/icons-bold/TrushSquare.d.ts.map +1 -0
  749. package/dist/components/icons-bold/Undo.d.ts +4 -0
  750. package/dist/components/icons-bold/Undo.d.ts.map +1 -0
  751. package/dist/components/icons-bold/Unlimited.d.ts +4 -0
  752. package/dist/components/icons-bold/Unlimited.d.ts.map +1 -0
  753. package/dist/components/icons-bold/Unlock.d.ts +4 -0
  754. package/dist/components/icons-bold/Unlock.d.ts.map +1 -0
  755. package/dist/components/icons-bold/User.d.ts +4 -0
  756. package/dist/components/icons-bold/User.d.ts.map +1 -0
  757. package/dist/components/icons-bold/UserAdd.d.ts +4 -0
  758. package/dist/components/icons-bold/UserAdd.d.ts.map +1 -0
  759. package/dist/components/icons-bold/UserCirlceAdd.d.ts +4 -0
  760. package/dist/components/icons-bold/UserCirlceAdd.d.ts.map +1 -0
  761. package/dist/components/icons-bold/UserEdit.d.ts +4 -0
  762. package/dist/components/icons-bold/UserEdit.d.ts.map +1 -0
  763. package/dist/components/icons-bold/UserMinus.d.ts +4 -0
  764. package/dist/components/icons-bold/UserMinus.d.ts.map +1 -0
  765. package/dist/components/icons-bold/UserOctagon.d.ts +4 -0
  766. package/dist/components/icons-bold/UserOctagon.d.ts.map +1 -0
  767. package/dist/components/icons-bold/UserRemove.d.ts +4 -0
  768. package/dist/components/icons-bold/UserRemove.d.ts.map +1 -0
  769. package/dist/components/icons-bold/UserSearch.d.ts +4 -0
  770. package/dist/components/icons-bold/UserSearch.d.ts.map +1 -0
  771. package/dist/components/icons-bold/UserSquare.d.ts +4 -0
  772. package/dist/components/icons-bold/UserSquare.d.ts.map +1 -0
  773. package/dist/components/icons-bold/UserTag.d.ts +4 -0
  774. package/dist/components/icons-bold/UserTag.d.ts.map +1 -0
  775. package/dist/components/icons-bold/UserTick.d.ts +4 -0
  776. package/dist/components/icons-bold/UserTick.d.ts.map +1 -0
  777. package/dist/components/icons-bold/Verify.d.ts +4 -0
  778. package/dist/components/icons-bold/Verify.d.ts.map +1 -0
  779. package/dist/components/icons-bold/Video.d.ts +4 -0
  780. package/dist/components/icons-bold/Video.d.ts.map +1 -0
  781. package/dist/components/icons-bold/VideoCircle.d.ts +4 -0
  782. package/dist/components/icons-bold/VideoCircle.d.ts.map +1 -0
  783. package/dist/components/icons-bold/VideoPlay.d.ts +4 -0
  784. package/dist/components/icons-bold/VideoPlay.d.ts.map +1 -0
  785. package/dist/components/icons-bold/VideoSlash.d.ts +4 -0
  786. package/dist/components/icons-bold/VideoSlash.d.ts.map +1 -0
  787. package/dist/components/icons-bold/VideoSquare.d.ts +4 -0
  788. package/dist/components/icons-bold/VideoSquare.d.ts.map +1 -0
  789. package/dist/components/icons-bold/VoiceSquare.d.ts +4 -0
  790. package/dist/components/icons-bold/VoiceSquare.d.ts.map +1 -0
  791. package/dist/components/icons-bold/VolumeCross.d.ts +4 -0
  792. package/dist/components/icons-bold/VolumeCross.d.ts.map +1 -0
  793. package/dist/components/icons-bold/VolumeHigh.d.ts +4 -0
  794. package/dist/components/icons-bold/VolumeHigh.d.ts.map +1 -0
  795. package/dist/components/icons-bold/VolumeLow.d.ts +4 -0
  796. package/dist/components/icons-bold/VolumeLow.d.ts.map +1 -0
  797. package/dist/components/icons-bold/VolumeLow1.d.ts +4 -0
  798. package/dist/components/icons-bold/VolumeLow1.d.ts.map +1 -0
  799. package/dist/components/icons-bold/VolumeMute.d.ts +4 -0
  800. package/dist/components/icons-bold/VolumeMute.d.ts.map +1 -0
  801. package/dist/components/icons-bold/VolumeSlash.d.ts +4 -0
  802. package/dist/components/icons-bold/VolumeSlash.d.ts.map +1 -0
  803. package/dist/components/icons-bold/VolumeUp.d.ts +4 -0
  804. package/dist/components/icons-bold/VolumeUp.d.ts.map +1 -0
  805. package/dist/components/icons-bold/Warning2.d.ts +4 -0
  806. package/dist/components/icons-bold/Warning2.d.ts.map +1 -0
  807. package/dist/components/icons-bold/Whatsapp.d.ts +4 -0
  808. package/dist/components/icons-bold/Whatsapp.d.ts.map +1 -0
  809. package/dist/components/icons-bold/Wifi.d.ts +4 -0
  810. package/dist/components/icons-bold/Wifi.d.ts.map +1 -0
  811. package/dist/components/icons-bold/WifiSquare.d.ts +4 -0
  812. package/dist/components/icons-bold/WifiSquare.d.ts.map +1 -0
  813. package/dist/components/icons-bold/Windows.d.ts +4 -0
  814. package/dist/components/icons-bold/Windows.d.ts.map +1 -0
  815. package/dist/components/icons-bold/Youtube.d.ts +4 -0
  816. package/dist/components/icons-bold/Youtube.d.ts.map +1 -0
  817. package/dist/components/icons-bold/index.d.ts +335 -0
  818. package/dist/components/icons-bold/index.d.ts.map +1 -0
  819. package/dist/data.d.mts +281 -0
  820. package/dist/data.d.ts +20 -0
  821. package/dist/data.d.ts.map +1 -0
  822. package/dist/data.js +4 -0
  823. package/dist/data.js.map +1 -0
  824. package/dist/data.mjs +4 -0
  825. package/dist/data.mjs.map +1 -0
  826. package/dist/feedback.d.mts +193 -3
  827. package/dist/feedback.d.ts +11 -9
  828. package/dist/feedback.d.ts.map +1 -1
  829. package/dist/feedback.js +12 -1
  830. package/dist/feedback.js.map +1 -1
  831. package/dist/feedback.mjs +2 -1
  832. package/dist/form.d.mts +248 -255
  833. package/dist/form.d.ts +9 -2
  834. package/dist/form.d.ts.map +1 -1
  835. package/dist/form.js +8 -272
  836. package/dist/form.js.map +1 -1
  837. package/dist/form.mjs +8 -1
  838. package/dist/form.mjs.map +1 -1
  839. package/dist/hooks/index.d.ts +10 -0
  840. package/dist/hooks/index.d.ts.map +1 -0
  841. package/dist/hooks/useInView.d.ts +47 -0
  842. package/dist/hooks/useInView.d.ts.map +1 -0
  843. package/dist/hooks/useMouse.d.ts +57 -0
  844. package/dist/hooks/useMouse.d.ts.map +1 -0
  845. package/dist/hooks/useReducedMotion.d.ts +35 -0
  846. package/dist/hooks/useReducedMotion.d.ts.map +1 -0
  847. package/dist/hooks/useScrollProgress.d.ts +50 -0
  848. package/dist/hooks/useScrollProgress.d.ts.map +1 -0
  849. package/dist/hooks/useWindowSize.d.ts +39 -0
  850. package/dist/hooks/useWindowSize.d.ts.map +1 -0
  851. package/dist/icons-Bj_nr8Ba.d.mts +158 -0
  852. package/dist/iconsax.d.mts +172 -0
  853. package/dist/iconsax.d.ts +19 -0
  854. package/dist/iconsax.d.ts.map +1 -0
  855. package/dist/iconsax.js +274 -0
  856. package/dist/iconsax.js.map +1 -0
  857. package/dist/iconsax.mjs +274 -0
  858. package/dist/iconsax.mjs.map +1 -0
  859. package/dist/index.d.mts +897 -2545
  860. package/dist/index.d.ts +16 -43
  861. package/dist/index.d.ts.map +1 -1
  862. package/dist/index.js +33 -286
  863. package/dist/index.js.map +1 -1
  864. package/dist/index.mjs +16 -16
  865. package/dist/index.mjs.map +1 -1
  866. package/dist/interactive.d.mts +602 -0
  867. package/dist/interactive.d.ts +20 -0
  868. package/dist/interactive.d.ts.map +1 -0
  869. package/dist/interactive.js +3 -0
  870. package/dist/interactive.js.map +1 -0
  871. package/dist/interactive.mjs +3 -0
  872. package/dist/interactive.mjs.map +1 -0
  873. package/dist/lib/case-utils.d.ts +36 -0
  874. package/dist/lib/case-utils.d.ts.map +1 -0
  875. package/dist/lib/icon-aliases.d.ts.map +1 -1
  876. package/dist/lib/icon-names.d.ts +5 -5
  877. package/dist/lib/icon-names.d.ts.map +1 -1
  878. package/dist/lib/icon-providers.d.ts +170 -118
  879. package/dist/lib/icon-providers.d.ts.map +1 -1
  880. package/dist/lib/icon-utils.d.ts +38 -0
  881. package/dist/lib/icon-utils.d.ts.map +1 -0
  882. package/dist/lib/icons.d.ts +103 -80
  883. package/dist/lib/icons.d.ts.map +1 -1
  884. package/dist/lib/iconsax-loader.d.ts +15 -9
  885. package/dist/lib/iconsax-loader.d.ts.map +1 -1
  886. package/dist/lib/normalize-icon-name.d.ts +43 -0
  887. package/dist/lib/normalize-icon-name.d.ts.map +1 -0
  888. package/dist/lib/styles/system/components.d.ts.map +1 -1
  889. package/dist/lib/styles/variants.d.ts.map +1 -1
  890. package/dist/lib/types/common.d.ts +41 -1
  891. package/dist/lib/types/common.d.ts.map +1 -1
  892. package/dist/lib/types/dashboard.d.ts +247 -0
  893. package/dist/lib/types/dashboard.d.ts.map +1 -0
  894. package/dist/lib/types/form.d.ts +130 -0
  895. package/dist/lib/types/form.d.ts.map +1 -0
  896. package/dist/lib/types/index.d.ts +4 -1
  897. package/dist/lib/types/index.d.ts.map +1 -1
  898. package/dist/lib/types/modal.d.ts +120 -0
  899. package/dist/lib/types/modal.d.ts.map +1 -0
  900. package/dist/navigation.d.mts +232 -6
  901. package/dist/navigation.d.ts +11 -10
  902. package/dist/navigation.d.ts.map +1 -1
  903. package/dist/navigation.js +12 -272
  904. package/dist/navigation.js.map +1 -1
  905. package/dist/navigation.mjs +2 -1
  906. package/dist/navigation.mjs.map +1 -1
  907. package/dist/overlay.d.mts +513 -0
  908. package/dist/overlay.d.ts +21 -0
  909. package/dist/overlay.d.ts.map +1 -0
  910. package/dist/overlay.js +4 -0
  911. package/dist/overlay.js.map +1 -0
  912. package/dist/overlay.mjs +4 -0
  913. package/dist/overlay.mjs.map +1 -0
  914. package/dist/sdui.js +12 -273
  915. package/dist/sdui.js.map +1 -1
  916. package/dist/sdui.mjs +2 -1
  917. package/dist/sdui.mjs.map +1 -1
  918. package/package.json +73 -30
  919. package/src/styles/base.css +3 -0
  920. package/src/styles/codeblock.css +25 -0
  921. package/src/styles/component-vars.css +77 -0
  922. package/src/styles/recommended-theme.css +90 -12
  923. package/dist/3Dcube-476CPLOF.mjs +0 -3
  924. package/dist/3Dcube-476CPLOF.mjs.map +0 -1
  925. package/dist/Add-Y2SCCNWG.mjs +0 -3
  926. package/dist/Add-Y2SCCNWG.mjs.map +0 -1
  927. package/dist/AddCircle-MQVXQBDA.mjs +0 -3
  928. package/dist/AddCircle-MQVXQBDA.mjs.map +0 -1
  929. package/dist/AddSquare-LYB5TDMI.mjs +0 -3
  930. package/dist/AddSquare-LYB5TDMI.mjs.map +0 -1
  931. package/dist/Apple-KJROXGXP.mjs +0 -3
  932. package/dist/Apple-KJROXGXP.mjs.map +0 -1
  933. package/dist/Archive-ATAEBXD5.mjs +0 -3
  934. package/dist/Archive-ATAEBXD5.mjs.map +0 -1
  935. package/dist/ArrangeCircle-EBTUQIEO.mjs +0 -3
  936. package/dist/ArrangeCircle-EBTUQIEO.mjs.map +0 -1
  937. package/dist/ArrangeCircle2-OHAJTRO4.mjs +0 -3
  938. package/dist/ArrangeCircle2-OHAJTRO4.mjs.map +0 -1
  939. package/dist/ArrangeSquare-SIDWRH75.mjs +0 -3
  940. package/dist/ArrangeSquare-SIDWRH75.mjs.map +0 -1
  941. package/dist/ArrangeSquare2-4TGS7OY6.mjs +0 -3
  942. package/dist/ArrangeSquare2-4TGS7OY6.mjs.map +0 -1
  943. package/dist/Arrow2-YBMZNNBX.mjs +0 -3
  944. package/dist/Arrow2-YBMZNNBX.mjs.map +0 -1
  945. package/dist/Arrow3-IUDRCCHR.mjs +0 -3
  946. package/dist/Arrow3-IUDRCCHR.mjs.map +0 -1
  947. package/dist/ArrowBottom-IHSRR65Z.mjs +0 -3
  948. package/dist/ArrowBottom-IHSRR65Z.mjs.map +0 -1
  949. package/dist/ArrowCircleDown-JCBYMFXA.mjs +0 -3
  950. package/dist/ArrowCircleDown-JCBYMFXA.mjs.map +0 -1
  951. package/dist/ArrowCircleLeft-L7CTVDW5.mjs +0 -3
  952. package/dist/ArrowCircleLeft-L7CTVDW5.mjs.map +0 -1
  953. package/dist/ArrowCircleRight-ZZHQDKKR.mjs +0 -3
  954. package/dist/ArrowCircleRight-ZZHQDKKR.mjs.map +0 -1
  955. package/dist/ArrowDown-K5RTFHBF.mjs +0 -3
  956. package/dist/ArrowDown-K5RTFHBF.mjs.map +0 -1
  957. package/dist/ArrowDown1-VFW3UBK5.mjs +0 -3
  958. package/dist/ArrowDown1-VFW3UBK5.mjs.map +0 -1
  959. package/dist/ArrowDown2-N5ASNO6F.mjs +0 -3
  960. package/dist/ArrowDown2-N5ASNO6F.mjs.map +0 -1
  961. package/dist/ArrowLeft-MLQDHQIB.mjs +0 -3
  962. package/dist/ArrowLeft-MLQDHQIB.mjs.map +0 -1
  963. package/dist/ArrowLeft1-6QK5LCWE.mjs +0 -3
  964. package/dist/ArrowLeft1-6QK5LCWE.mjs.map +0 -1
  965. package/dist/ArrowLeft2-JAGSKVPT.mjs +0 -3
  966. package/dist/ArrowLeft2-JAGSKVPT.mjs.map +0 -1
  967. package/dist/ArrowLeft3-4FIWGYQW.mjs +0 -3
  968. package/dist/ArrowLeft3-4FIWGYQW.mjs.map +0 -1
  969. package/dist/ArrowRight-DMIU25OL.mjs +0 -3
  970. package/dist/ArrowRight-DMIU25OL.mjs.map +0 -1
  971. package/dist/ArrowRight1-AXDOLPYT.mjs +0 -3
  972. package/dist/ArrowRight1-AXDOLPYT.mjs.map +0 -1
  973. package/dist/ArrowRight2-RHTZMXNV.mjs +0 -3
  974. package/dist/ArrowRight2-RHTZMXNV.mjs.map +0 -1
  975. package/dist/ArrowRight3-25UH6UQA.mjs +0 -3
  976. package/dist/ArrowRight3-25UH6UQA.mjs.map +0 -1
  977. package/dist/ArrowSquareDown-SUPZZDVH.mjs +0 -3
  978. package/dist/ArrowSquareDown-SUPZZDVH.mjs.map +0 -1
  979. package/dist/ArrowSquareLeft-HX4SA4FE.mjs +0 -3
  980. package/dist/ArrowSquareLeft-HX4SA4FE.mjs.map +0 -1
  981. package/dist/ArrowSquareRight-TC4XGHX2.mjs +0 -3
  982. package/dist/ArrowSquareRight-TC4XGHX2.mjs.map +0 -1
  983. package/dist/ArrowSquareUp-55VRYO5O.mjs +0 -3
  984. package/dist/ArrowSquareUp-55VRYO5O.mjs.map +0 -1
  985. package/dist/ArrowSwapHorizontal-PCXHZOBR.mjs +0 -3
  986. package/dist/ArrowSwapHorizontal-PCXHZOBR.mjs.map +0 -1
  987. package/dist/ArrowUp-JLY2CYVX.mjs +0 -3
  988. package/dist/ArrowUp-JLY2CYVX.mjs.map +0 -1
  989. package/dist/ArrowUp1-HQMIEZF2.mjs +0 -3
  990. package/dist/ArrowUp1-HQMIEZF2.mjs.map +0 -1
  991. package/dist/ArrowUp2-4M4YHZ6A.mjs +0 -3
  992. package/dist/ArrowUp2-4M4YHZ6A.mjs.map +0 -1
  993. package/dist/ArrowUp3-SYAAOPJP.mjs +0 -3
  994. package/dist/ArrowUp3-SYAAOPJP.mjs.map +0 -1
  995. package/dist/AttachCircle-2NTT7EJP.mjs +0 -3
  996. package/dist/AttachCircle-2NTT7EJP.mjs.map +0 -1
  997. package/dist/AttachSquare-PV3LLULM.mjs +0 -3
  998. package/dist/AttachSquare-PV3LLULM.mjs.map +0 -1
  999. package/dist/Autobrightness-4DHQ6NVB.mjs +0 -3
  1000. package/dist/Autobrightness-4DHQ6NVB.mjs.map +0 -1
  1001. package/dist/BackSquare-7QY4AXFT.mjs +0 -3
  1002. package/dist/BackSquare-7QY4AXFT.mjs.map +0 -1
  1003. package/dist/Backward-ORNWYQXM.mjs +0 -3
  1004. package/dist/Backward-ORNWYQXM.mjs.map +0 -1
  1005. package/dist/Backward10Seconds-CVBASDBJ.mjs +0 -3
  1006. package/dist/Backward10Seconds-CVBASDBJ.mjs.map +0 -1
  1007. package/dist/Backward15Seconds-WLDYQGVG.mjs +0 -3
  1008. package/dist/Backward15Seconds-WLDYQGVG.mjs.map +0 -1
  1009. package/dist/Backward5Seconds-VAFA7UW2.mjs +0 -3
  1010. package/dist/Backward5Seconds-VAFA7UW2.mjs.map +0 -1
  1011. package/dist/BatteryDisable-XVTPBZPE.mjs +0 -3
  1012. package/dist/BatteryDisable-XVTPBZPE.mjs.map +0 -1
  1013. package/dist/BatteryFull-NKQ4RNEB.mjs +0 -3
  1014. package/dist/BatteryFull-NKQ4RNEB.mjs.map +0 -1
  1015. package/dist/Bluetooth-2EHRKMF6.mjs +0 -3
  1016. package/dist/Bluetooth-2EHRKMF6.mjs.map +0 -1
  1017. package/dist/BluetoothCircle-OD5ANA4N.mjs +0 -3
  1018. package/dist/BluetoothCircle-OD5ANA4N.mjs.map +0 -1
  1019. package/dist/Book-ZTLKZ7SK.mjs +0 -3
  1020. package/dist/Book-ZTLKZ7SK.mjs.map +0 -1
  1021. package/dist/Box-XH43KKV4.mjs +0 -3
  1022. package/dist/Box-XH43KKV4.mjs.map +0 -1
  1023. package/dist/Box2-KB46H4IU.mjs +0 -3
  1024. package/dist/Box2-KB46H4IU.mjs.map +0 -1
  1025. package/dist/Briefcase-ZTMLFGEC.mjs +0 -3
  1026. package/dist/Briefcase-ZTMLFGEC.mjs.map +0 -1
  1027. package/dist/Broom-BC2MUXZT.mjs +0 -3
  1028. package/dist/Broom-BC2MUXZT.mjs.map +0 -1
  1029. package/dist/Cake-KJESEIPY.mjs +0 -3
  1030. package/dist/Cake-KJESEIPY.mjs.map +0 -1
  1031. package/dist/Calculator-IJKS42AG.mjs +0 -3
  1032. package/dist/Calculator-IJKS42AG.mjs.map +0 -1
  1033. package/dist/Camera-4AD6YJZ3.mjs +0 -3
  1034. package/dist/Camera-4AD6YJZ3.mjs.map +0 -1
  1035. package/dist/CameraSlash-ESCCGOUP.mjs +0 -3
  1036. package/dist/CameraSlash-ESCCGOUP.mjs.map +0 -1
  1037. package/dist/CardAdd-V4Y4NJAM.mjs +0 -3
  1038. package/dist/CardAdd-V4Y4NJAM.mjs.map +0 -1
  1039. package/dist/CardRemove-CAHOPPMN.mjs +0 -3
  1040. package/dist/CardRemove-CAHOPPMN.mjs.map +0 -1
  1041. package/dist/CardSlash-6FRL33KL.mjs +0 -3
  1042. package/dist/CardSlash-6FRL33KL.mjs.map +0 -1
  1043. package/dist/CardTick-Q3ZNTZDO.mjs +0 -3
  1044. package/dist/CardTick-Q3ZNTZDO.mjs.map +0 -1
  1045. package/dist/Cards-P6ECLTEQ.mjs +0 -3
  1046. package/dist/Cards-P6ECLTEQ.mjs.map +0 -1
  1047. package/dist/Cd-CTHQLTGK.mjs +0 -3
  1048. package/dist/Cd-CTHQLTGK.mjs.map +0 -1
  1049. package/dist/Check-SXMNFYQE.mjs +0 -3
  1050. package/dist/Check-SXMNFYQE.mjs.map +0 -1
  1051. package/dist/Chrome-HNWG6FNF.mjs +0 -3
  1052. package/dist/Chrome-HNWG6FNF.mjs.map +0 -1
  1053. package/dist/CloseCircle-DL4UURVO.mjs +0 -3
  1054. package/dist/CloseCircle-DL4UURVO.mjs.map +0 -1
  1055. package/dist/CloseSquare-A7QOSR32.mjs +0 -3
  1056. package/dist/CloseSquare-A7QOSR32.mjs.map +0 -1
  1057. package/dist/Cloud-FIB7VQBO.mjs +0 -3
  1058. package/dist/Cloud-FIB7VQBO.mjs.map +0 -1
  1059. package/dist/CloudAdd-FHSWGZAC.mjs +0 -3
  1060. package/dist/CloudAdd-FHSWGZAC.mjs.map +0 -1
  1061. package/dist/CloudChange-P27RPVL6.mjs +0 -3
  1062. package/dist/CloudChange-P27RPVL6.mjs.map +0 -1
  1063. package/dist/CloudDrizzle-6JQ4BWUT.mjs +0 -3
  1064. package/dist/CloudDrizzle-6JQ4BWUT.mjs.map +0 -1
  1065. package/dist/CloudLightning-5FV363JV.mjs +0 -3
  1066. package/dist/CloudLightning-5FV363JV.mjs.map +0 -1
  1067. package/dist/CloudNotif-ZAVZ24MM.mjs +0 -3
  1068. package/dist/CloudNotif-ZAVZ24MM.mjs.map +0 -1
  1069. package/dist/CloudRemove-2TPKVLGP.mjs +0 -3
  1070. package/dist/CloudRemove-2TPKVLGP.mjs.map +0 -1
  1071. package/dist/CloudSnow-OYMWSTH6.mjs +0 -3
  1072. package/dist/CloudSnow-OYMWSTH6.mjs.map +0 -1
  1073. package/dist/CloudSunny-GYNAXJ74.mjs +0 -3
  1074. package/dist/CloudSunny-GYNAXJ74.mjs.map +0 -1
  1075. package/dist/Code-BRFJ4UHF.mjs +0 -3
  1076. package/dist/Code-BRFJ4UHF.mjs.map +0 -1
  1077. package/dist/Code1-HKUVG5LL.mjs +0 -3
  1078. package/dist/Code1-HKUVG5LL.mjs.map +0 -1
  1079. package/dist/Coin-ESBHYVFV.mjs +0 -3
  1080. package/dist/Coin-ESBHYVFV.mjs.map +0 -1
  1081. package/dist/ComponentLayout-BFW39DKh.d.mts +0 -73
  1082. package/dist/Computing-EZ3SJZF5.mjs +0 -3
  1083. package/dist/Computing-EZ3SJZF5.mjs.map +0 -1
  1084. package/dist/Convert-PZX24YPN.mjs +0 -3
  1085. package/dist/Convert-PZX24YPN.mjs.map +0 -1
  1086. package/dist/Crown-V6VJP6GE.mjs +0 -3
  1087. package/dist/Crown-V6VJP6GE.mjs.map +0 -1
  1088. package/dist/Crown1-RZACWY2P.mjs +0 -3
  1089. package/dist/Crown1-RZACWY2P.mjs.map +0 -1
  1090. package/dist/Danger-WS5C3LAY.mjs +0 -3
  1091. package/dist/Danger-WS5C3LAY.mjs.map +0 -1
  1092. package/dist/DirectDown-ZP7IG7T3.mjs +0 -3
  1093. package/dist/DirectDown-ZP7IG7T3.mjs.map +0 -1
  1094. package/dist/DirectLeft-YGADPDDE.mjs +0 -3
  1095. package/dist/DirectLeft-YGADPDDE.mjs.map +0 -1
  1096. package/dist/DirectRight-IUJSIK73.mjs +0 -3
  1097. package/dist/DirectRight-IUJSIK73.mjs.map +0 -1
  1098. package/dist/DirectUp-KKK7DRSX.mjs +0 -3
  1099. package/dist/DirectUp-KKK7DRSX.mjs.map +0 -1
  1100. package/dist/Dislike-CJI64T7L.mjs +0 -3
  1101. package/dist/Dislike-CJI64T7L.mjs.map +0 -1
  1102. package/dist/DollarSquare-S5DYIDDA.mjs +0 -3
  1103. package/dist/DollarSquare-S5DYIDDA.mjs.map +0 -1
  1104. package/dist/Drop-CMOM53IR.mjs +0 -3
  1105. package/dist/Drop-CMOM53IR.mjs.map +0 -1
  1106. package/dist/EmojiHappy-DCDZWBCU.mjs +0 -3
  1107. package/dist/EmojiHappy-DCDZWBCU.mjs.map +0 -1
  1108. package/dist/EmojiNormal-HYYEYGNH.mjs +0 -3
  1109. package/dist/EmojiNormal-HYYEYGNH.mjs.map +0 -1
  1110. package/dist/EmojiSad-REFSZVHL.mjs +0 -3
  1111. package/dist/EmojiSad-REFSZVHL.mjs.map +0 -1
  1112. package/dist/EmptyWallet-43V6VLZW.mjs +0 -3
  1113. package/dist/EmptyWallet-43V6VLZW.mjs.map +0 -1
  1114. package/dist/Eraser-NOH2RIDJ.mjs +0 -3
  1115. package/dist/Eraser-NOH2RIDJ.mjs.map +0 -1
  1116. package/dist/Export-3XJEECNH.mjs +0 -3
  1117. package/dist/Export-3XJEECNH.mjs.map +0 -1
  1118. package/dist/Export1-TT566QU6.mjs +0 -3
  1119. package/dist/Export1-TT566QU6.mjs.map +0 -1
  1120. package/dist/Export2-ZWUHEVJM.mjs +0 -3
  1121. package/dist/Export2-ZWUHEVJM.mjs.map +0 -1
  1122. package/dist/Export3-TX6WVNZN.mjs +0 -3
  1123. package/dist/Export3-TX6WVNZN.mjs.map +0 -1
  1124. package/dist/Eye-NYRJQM6Y.mjs +0 -3
  1125. package/dist/Eye-NYRJQM6Y.mjs.map +0 -1
  1126. package/dist/EyeSlash-2W6XOQZW.mjs +0 -3
  1127. package/dist/EyeSlash-2W6XOQZW.mjs.map +0 -1
  1128. package/dist/Facebook-AO7T5MIB.mjs +0 -3
  1129. package/dist/Facebook-AO7T5MIB.mjs.map +0 -1
  1130. package/dist/Figma-WZO5X5BX.mjs +0 -3
  1131. package/dist/Figma-WZO5X5BX.mjs.map +0 -1
  1132. package/dist/Filter-G56K7VKJ.mjs +0 -3
  1133. package/dist/Filter-G56K7VKJ.mjs.map +0 -1
  1134. package/dist/FilterAdd-MVLYM3VP.mjs +0 -3
  1135. package/dist/FilterAdd-MVLYM3VP.mjs.map +0 -1
  1136. package/dist/FilterEdit-FRKKE2PH.mjs +0 -3
  1137. package/dist/FilterEdit-FRKKE2PH.mjs.map +0 -1
  1138. package/dist/FilterRemove-FHC4OHVC.mjs +0 -3
  1139. package/dist/FilterRemove-FHC4OHVC.mjs.map +0 -1
  1140. package/dist/FilterSearch-2W2FWEVP.mjs +0 -3
  1141. package/dist/FilterSearch-2W2FWEVP.mjs.map +0 -1
  1142. package/dist/FilterTick-N6WUC5AR.mjs +0 -3
  1143. package/dist/FilterTick-N6WUC5AR.mjs.map +0 -1
  1144. package/dist/FingerCricle-AAOVYXKF.mjs +0 -3
  1145. package/dist/FingerCricle-AAOVYXKF.mjs.map +0 -1
  1146. package/dist/Firstline-35U6KCCP.mjs +0 -3
  1147. package/dist/Firstline-35U6KCCP.mjs.map +0 -1
  1148. package/dist/Flag-YHSN7KPV.mjs +0 -3
  1149. package/dist/Flag-YHSN7KPV.mjs.map +0 -1
  1150. package/dist/Flag2-P4JOAXW7.mjs +0 -3
  1151. package/dist/Flag2-P4JOAXW7.mjs.map +0 -1
  1152. package/dist/Flash-DV4KZNI5.mjs +0 -3
  1153. package/dist/Flash-DV4KZNI5.mjs.map +0 -1
  1154. package/dist/FlashCircle-SRBLXDUD.mjs +0 -3
  1155. package/dist/FlashCircle-SRBLXDUD.mjs.map +0 -1
  1156. package/dist/FlashSlash-LO74NC3Q.mjs +0 -3
  1157. package/dist/FlashSlash-LO74NC3Q.mjs.map +0 -1
  1158. package/dist/Folder-QQPI7QVX.mjs +0 -3
  1159. package/dist/Folder-QQPI7QVX.mjs.map +0 -1
  1160. package/dist/Folder2-POTY3VTP.mjs +0 -3
  1161. package/dist/Folder2-POTY3VTP.mjs.map +0 -1
  1162. package/dist/FolderAdd-L6SIRB6B.mjs +0 -3
  1163. package/dist/FolderAdd-L6SIRB6B.mjs.map +0 -1
  1164. package/dist/FolderCloud-3WZPGBCM.mjs +0 -3
  1165. package/dist/FolderCloud-3WZPGBCM.mjs.map +0 -1
  1166. package/dist/FolderCross-6223FQAM.mjs +0 -3
  1167. package/dist/FolderCross-6223FQAM.mjs.map +0 -1
  1168. package/dist/FolderFavorite-ZA6KABVI.mjs +0 -3
  1169. package/dist/FolderFavorite-ZA6KABVI.mjs.map +0 -1
  1170. package/dist/FolderMinus-WRXPRPXE.mjs +0 -3
  1171. package/dist/FolderMinus-WRXPRPXE.mjs.map +0 -1
  1172. package/dist/FolderOpen-OWBG4GZT.mjs +0 -3
  1173. package/dist/FolderOpen-OWBG4GZT.mjs.map +0 -1
  1174. package/dist/Forward-7YU3A27U.mjs +0 -3
  1175. package/dist/Forward-7YU3A27U.mjs.map +0 -1
  1176. package/dist/Forward10Seconds-JYASHGG7.mjs +0 -3
  1177. package/dist/Forward10Seconds-JYASHGG7.mjs.map +0 -1
  1178. package/dist/Forward15Seconds-QRR5SXLN.mjs +0 -3
  1179. package/dist/Forward15Seconds-QRR5SXLN.mjs.map +0 -1
  1180. package/dist/Forward5Seconds-YVMHFCJM.mjs +0 -3
  1181. package/dist/Forward5Seconds-YVMHFCJM.mjs.map +0 -1
  1182. package/dist/ForwardSquare-AY2EKDGY.mjs +0 -3
  1183. package/dist/ForwardSquare-AY2EKDGY.mjs.map +0 -1
  1184. package/dist/Frame-WTAJLZ7P.mjs +0 -3
  1185. package/dist/Frame-WTAJLZ7P.mjs.map +0 -1
  1186. package/dist/Frame1-FOMSDDEB.mjs +0 -3
  1187. package/dist/Frame1-FOMSDDEB.mjs.map +0 -1
  1188. package/dist/Frame2-H255J25T.mjs +0 -3
  1189. package/dist/Frame2-H255J25T.mjs.map +0 -1
  1190. package/dist/Gallery-HXLC4DBY.mjs +0 -3
  1191. package/dist/Gallery-HXLC4DBY.mjs.map +0 -1
  1192. package/dist/GalleryAdd-Q3SDBRHN.mjs +0 -3
  1193. package/dist/GalleryAdd-Q3SDBRHN.mjs.map +0 -1
  1194. package/dist/GalleryRemove-T4433X4L.mjs +0 -3
  1195. package/dist/GalleryRemove-T4433X4L.mjs.map +0 -1
  1196. package/dist/GallerySlash-NZPQIB2Q.mjs +0 -3
  1197. package/dist/GallerySlash-NZPQIB2Q.mjs.map +0 -1
  1198. package/dist/Global-NEKUUTWR.mjs +0 -3
  1199. package/dist/Global-NEKUUTWR.mjs.map +0 -1
  1200. package/dist/Group-7ZQHVROQ.mjs +0 -3
  1201. package/dist/Group-7ZQHVROQ.mjs.map +0 -1
  1202. package/dist/Group1-HT5MSGN3.mjs +0 -3
  1203. package/dist/Group1-HT5MSGN3.mjs.map +0 -1
  1204. package/dist/GroupCopy-HNEX3Q2F.mjs +0 -3
  1205. package/dist/GroupCopy-HNEX3Q2F.mjs.map +0 -1
  1206. package/dist/Heart-22RQEZ6G.mjs +0 -3
  1207. package/dist/Heart-22RQEZ6G.mjs.map +0 -1
  1208. package/dist/Hierarchy-2P6D5ZMR.mjs +0 -3
  1209. package/dist/Hierarchy-2P6D5ZMR.mjs.map +0 -1
  1210. package/dist/Hierarchy2-X5SRKU6A.mjs +0 -3
  1211. package/dist/Hierarchy2-X5SRKU6A.mjs.map +0 -1
  1212. package/dist/Home2-Z2OWOJHS.mjs +0 -3
  1213. package/dist/Home2-Z2OWOJHS.mjs.map +0 -1
  1214. package/dist/HomeWifi-7S5MMTQK.mjs +0 -3
  1215. package/dist/HomeWifi-7S5MMTQK.mjs.map +0 -1
  1216. package/dist/Html3-GGKHR7P6.mjs +0 -3
  1217. package/dist/Html3-GGKHR7P6.mjs.map +0 -1
  1218. package/dist/Html5-4GUENRI3.mjs +0 -3
  1219. package/dist/Html5-4GUENRI3.mjs.map +0 -1
  1220. package/dist/Image-NQ3ER3JQ.mjs +0 -3
  1221. package/dist/Image-NQ3ER3JQ.mjs.map +0 -1
  1222. package/dist/Import-XTAYKW6E.mjs +0 -3
  1223. package/dist/Import-XTAYKW6E.mjs.map +0 -1
  1224. package/dist/Import1-MC5MM7OX.mjs +0 -3
  1225. package/dist/Import1-MC5MM7OX.mjs.map +0 -1
  1226. package/dist/Import2-7R45R2AS.mjs +0 -3
  1227. package/dist/Import2-7R45R2AS.mjs.map +0 -1
  1228. package/dist/InfoCircle-ZPO457IW.mjs +0 -3
  1229. package/dist/InfoCircle-ZPO457IW.mjs.map +0 -1
  1230. package/dist/Information-UDCWKXWE.mjs +0 -3
  1231. package/dist/Information-UDCWKXWE.mjs.map +0 -1
  1232. package/dist/Instagram-NTZKJFBE.mjs +0 -3
  1233. package/dist/Instagram-NTZKJFBE.mjs.map +0 -1
  1234. package/dist/JavaScript-KZ2NS3XH.mjs +0 -3
  1235. package/dist/JavaScript-KZ2NS3XH.mjs.map +0 -1
  1236. package/dist/LanguageCircle-QS6SBRCX.mjs +0 -3
  1237. package/dist/LanguageCircle-QS6SBRCX.mjs.map +0 -1
  1238. package/dist/LanguageSquare-7S22GSXQ.mjs +0 -3
  1239. package/dist/LanguageSquare-7S22GSXQ.mjs.map +0 -1
  1240. package/dist/Like-BP7KSSR2.mjs +0 -3
  1241. package/dist/Like-BP7KSSR2.mjs.map +0 -1
  1242. package/dist/LikeDislike-XLCPVRYQ.mjs +0 -3
  1243. package/dist/LikeDislike-XLCPVRYQ.mjs.map +0 -1
  1244. package/dist/LikeTag-PYTNFFF5.mjs +0 -3
  1245. package/dist/LikeTag-PYTNFFF5.mjs.map +0 -1
  1246. package/dist/Link-AOVUXGIY.mjs +0 -3
  1247. package/dist/Link-AOVUXGIY.mjs.map +0 -1
  1248. package/dist/Link1-AJUNET5I.mjs +0 -3
  1249. package/dist/Link1-AJUNET5I.mjs.map +0 -1
  1250. package/dist/Link2-PWCWLSCN.mjs +0 -3
  1251. package/dist/Link2-PWCWLSCN.mjs.map +0 -1
  1252. package/dist/Link21-W4UBW7JL.mjs +0 -3
  1253. package/dist/Link21-W4UBW7JL.mjs.map +0 -1
  1254. package/dist/LinkCircle-RF6ANTOW.mjs +0 -3
  1255. package/dist/LinkCircle-RF6ANTOW.mjs.map +0 -1
  1256. package/dist/LinkSquare-WNZU6CZ3.mjs +0 -3
  1257. package/dist/LinkSquare-WNZU6CZ3.mjs.map +0 -1
  1258. package/dist/LocationCross-YFIXU2NG.mjs +0 -3
  1259. package/dist/LocationCross-YFIXU2NG.mjs.map +0 -1
  1260. package/dist/LocationMinus-X3PFKQTO.mjs +0 -3
  1261. package/dist/LocationMinus-X3PFKQTO.mjs.map +0 -1
  1262. package/dist/LocationSlash-ISAXSM5W.mjs +0 -3
  1263. package/dist/LocationSlash-ISAXSM5W.mjs.map +0 -1
  1264. package/dist/LocationTick-6KJNHZ3E.mjs +0 -3
  1265. package/dist/LocationTick-6KJNHZ3E.mjs.map +0 -1
  1266. package/dist/Lock-QSKHUIH5.mjs +0 -3
  1267. package/dist/Lock-QSKHUIH5.mjs.map +0 -1
  1268. package/dist/LockSlash-E2OQ2M6Z.mjs +0 -3
  1269. package/dist/LockSlash-E2OQ2M6Z.mjs.map +0 -1
  1270. package/dist/Login-IC6ILE62.mjs +0 -3
  1271. package/dist/Login-IC6ILE62.mjs.map +0 -1
  1272. package/dist/Login1-S5GKYDYM.mjs +0 -3
  1273. package/dist/Login1-S5GKYDYM.mjs.map +0 -1
  1274. package/dist/Logout-FSBNVXDF.mjs +0 -3
  1275. package/dist/Logout-FSBNVXDF.mjs.map +0 -1
  1276. package/dist/Logout1-Q4OTZLEU.mjs +0 -3
  1277. package/dist/Logout1-Q4OTZLEU.mjs.map +0 -1
  1278. package/dist/Map-L7EAT544.mjs +0 -3
  1279. package/dist/Map-L7EAT544.mjs.map +0 -1
  1280. package/dist/Math-EEC7PMHW.mjs +0 -3
  1281. package/dist/Math-EEC7PMHW.mjs.map +0 -1
  1282. package/dist/Maximize-ZHU7YIEF.mjs +0 -3
  1283. package/dist/Maximize-ZHU7YIEF.mjs.map +0 -1
  1284. package/dist/Menu-OMFZ7P5V.mjs +0 -3
  1285. package/dist/Menu-OMFZ7P5V.mjs.map +0 -1
  1286. package/dist/MessageProgramming-AJDAIZ7B.mjs +0 -3
  1287. package/dist/MessageProgramming-AJDAIZ7B.mjs.map +0 -1
  1288. package/dist/Microphone-X7JCGHN3.mjs +0 -3
  1289. package/dist/Microphone-X7JCGHN3.mjs.map +0 -1
  1290. package/dist/Microphone2-RJ6GXHM2.mjs +0 -3
  1291. package/dist/Microphone2-RJ6GXHM2.mjs.map +0 -1
  1292. package/dist/MicrophoneSlash-WLZQN2Z6.mjs +0 -3
  1293. package/dist/MicrophoneSlash-WLZQN2Z6.mjs.map +0 -1
  1294. package/dist/MicrophoneSlash1-IYGIKAEL.mjs +0 -3
  1295. package/dist/MicrophoneSlash1-IYGIKAEL.mjs.map +0 -1
  1296. package/dist/Milk-KRNXTEF3.mjs +0 -3
  1297. package/dist/Milk-KRNXTEF3.mjs.map +0 -1
  1298. package/dist/Minus-QZERPPCK.mjs +0 -3
  1299. package/dist/Minus-QZERPPCK.mjs.map +0 -1
  1300. package/dist/MinusCirlce-A33IFK35.mjs +0 -3
  1301. package/dist/MinusCirlce-A33IFK35.mjs.map +0 -1
  1302. package/dist/MinusSquare-46UOCDXK.mjs +0 -3
  1303. package/dist/MinusSquare-46UOCDXK.mjs.map +0 -1
  1304. package/dist/Monitor-MJPET4JF.mjs +0 -3
  1305. package/dist/Monitor-MJPET4JF.mjs.map +0 -1
  1306. package/dist/Moon-BEA2XUGX.mjs +0 -3
  1307. package/dist/Moon-BEA2XUGX.mjs.map +0 -1
  1308. package/dist/MoreCircle-2NDIPFCF.mjs +0 -3
  1309. package/dist/MoreCircle-2NDIPFCF.mjs.map +0 -1
  1310. package/dist/MoreSquare-7NWRBPUM.mjs +0 -3
  1311. package/dist/MoreSquare-7NWRBPUM.mjs.map +0 -1
  1312. package/dist/Mouse-MRBU7VAB.mjs +0 -3
  1313. package/dist/Mouse-MRBU7VAB.mjs.map +0 -1
  1314. package/dist/MouseCircle-3PWPPTPV.mjs +0 -3
  1315. package/dist/MouseCircle-3PWPPTPV.mjs.map +0 -1
  1316. package/dist/MouseSquare-CCS4ZIYU.mjs +0 -3
  1317. package/dist/MouseSquare-CCS4ZIYU.mjs.map +0 -1
  1318. package/dist/Next-EGO2D2MH.mjs +0 -3
  1319. package/dist/Next-EGO2D2MH.mjs.map +0 -1
  1320. package/dist/Paperclip-DVVAJW2J.mjs +0 -3
  1321. package/dist/Paperclip-DVVAJW2J.mjs.map +0 -1
  1322. package/dist/Paperclip2-CPVT4PFG.mjs +0 -3
  1323. package/dist/Paperclip2-CPVT4PFG.mjs.map +0 -1
  1324. package/dist/PasswordCheck-RBAW3QLC.mjs +0 -3
  1325. package/dist/PasswordCheck-RBAW3QLC.mjs.map +0 -1
  1326. package/dist/Pause-4WGFF7DP.mjs +0 -3
  1327. package/dist/Pause-4WGFF7DP.mjs.map +0 -1
  1328. package/dist/PauseCircle-TWMPA5QW.mjs +0 -3
  1329. package/dist/PauseCircle-TWMPA5QW.mjs.map +0 -1
  1330. package/dist/People-5U2VM2FF.mjs +0 -3
  1331. package/dist/People-5U2VM2FF.mjs.map +0 -1
  1332. package/dist/Pet-H3CYUNUA.mjs +0 -3
  1333. package/dist/Pet-H3CYUNUA.mjs.map +0 -1
  1334. package/dist/Pharagraphspacing-DDLO7AJL.mjs +0 -3
  1335. package/dist/Pharagraphspacing-DDLO7AJL.mjs.map +0 -1
  1336. package/dist/Play-2YQV6TNO.mjs +0 -3
  1337. package/dist/Play-2YQV6TNO.mjs.map +0 -1
  1338. package/dist/PlayCircle-RKDP5NYR.mjs +0 -3
  1339. package/dist/PlayCircle-RKDP5NYR.mjs.map +0 -1
  1340. package/dist/Previous-CR6OA6TB.mjs +0 -3
  1341. package/dist/Previous-CR6OA6TB.mjs.map +0 -1
  1342. package/dist/Printer-SZSIFHFB.mjs +0 -3
  1343. package/dist/Printer-SZSIFHFB.mjs.map +0 -1
  1344. package/dist/PrinterSlash-2RZLBNZP.mjs +0 -3
  1345. package/dist/PrinterSlash-2RZLBNZP.mjs.map +0 -1
  1346. package/dist/Profile-UTQTIUNC.mjs +0 -3
  1347. package/dist/Profile-UTQTIUNC.mjs.map +0 -1
  1348. package/dist/Profile2User-7E7JN25F.mjs +0 -3
  1349. package/dist/Profile2User-7E7JN25F.mjs.map +0 -1
  1350. package/dist/ProfileAdd-VBIS5UNL.mjs +0 -3
  1351. package/dist/ProfileAdd-VBIS5UNL.mjs.map +0 -1
  1352. package/dist/ProfileCircle-A252EU4D.mjs +0 -3
  1353. package/dist/ProfileCircle-A252EU4D.mjs.map +0 -1
  1354. package/dist/ProfileDelete-67BC3HWJ.mjs +0 -3
  1355. package/dist/ProfileDelete-67BC3HWJ.mjs.map +0 -1
  1356. package/dist/ProfileRemove-66OWFHC2.mjs +0 -3
  1357. package/dist/ProfileRemove-66OWFHC2.mjs.map +0 -1
  1358. package/dist/ProfileTick-CCULMZDF.mjs +0 -3
  1359. package/dist/ProfileTick-CCULMZDF.mjs.map +0 -1
  1360. package/dist/ProgrammingArrow-DHWZI2LW.mjs +0 -3
  1361. package/dist/ProgrammingArrow-DHWZI2LW.mjs.map +0 -1
  1362. package/dist/QuoteDown-2ORQIV5W.mjs +0 -3
  1363. package/dist/QuoteDown-2ORQIV5W.mjs.map +0 -1
  1364. package/dist/QuoteDownCircle-VMIPRFA4.mjs +0 -3
  1365. package/dist/QuoteDownCircle-VMIPRFA4.mjs.map +0 -1
  1366. package/dist/QuoteDownSquare-XGXP6IXB.mjs +0 -3
  1367. package/dist/QuoteDownSquare-XGXP6IXB.mjs.map +0 -1
  1368. package/dist/QuoteUp-M5SVDOFP.mjs +0 -3
  1369. package/dist/QuoteUp-M5SVDOFP.mjs.map +0 -1
  1370. package/dist/QuoteUpCircle-OBJMUS2N.mjs +0 -3
  1371. package/dist/QuoteUpCircle-OBJMUS2N.mjs.map +0 -1
  1372. package/dist/QuoteUpSquare-YGZSLLNI.mjs +0 -3
  1373. package/dist/QuoteUpSquare-YGZSLLNI.mjs.map +0 -1
  1374. package/dist/Ranking-TSWNJAA7.mjs +0 -3
  1375. package/dist/Ranking-TSWNJAA7.mjs.map +0 -1
  1376. package/dist/ReceiptDiscount-7MFJEZ3Z.mjs +0 -3
  1377. package/dist/ReceiptDiscount-7MFJEZ3Z.mjs.map +0 -1
  1378. package/dist/ReceiptDisscount-5REVPP45.mjs +0 -3
  1379. package/dist/ReceiptDisscount-5REVPP45.mjs.map +0 -1
  1380. package/dist/ReceiptItem-7YDMDNLL.mjs +0 -3
  1381. package/dist/ReceiptItem-7YDMDNLL.mjs.map +0 -1
  1382. package/dist/ReceiptMinus-LSFDB4Z4.mjs +0 -3
  1383. package/dist/ReceiptMinus-LSFDB4Z4.mjs.map +0 -1
  1384. package/dist/ReceiveSquare-OKM5GDG7.mjs +0 -3
  1385. package/dist/ReceiveSquare-OKM5GDG7.mjs.map +0 -1
  1386. package/dist/ReceiveSquare2-5SSBZSPZ.mjs +0 -3
  1387. package/dist/ReceiveSquare2-5SSBZSPZ.mjs.map +0 -1
  1388. package/dist/Received-J6L62RMS.mjs +0 -3
  1389. package/dist/Received-J6L62RMS.mjs.map +0 -1
  1390. package/dist/Record-DVMRKUFN.mjs +0 -3
  1391. package/dist/Record-DVMRKUFN.mjs.map +0 -1
  1392. package/dist/RecordCircle-NMZMFS3L.mjs +0 -3
  1393. package/dist/RecordCircle-NMZMFS3L.mjs.map +0 -1
  1394. package/dist/Redo-24VUIDIV.mjs +0 -3
  1395. package/dist/Redo-24VUIDIV.mjs.map +0 -1
  1396. package/dist/Refresh-PF7VBWBQ.mjs +0 -3
  1397. package/dist/Refresh-PF7VBWBQ.mjs.map +0 -1
  1398. package/dist/Refresh2-R2CLGBZ2.mjs +0 -3
  1399. package/dist/Refresh2-R2CLGBZ2.mjs.map +0 -1
  1400. package/dist/RefreshCircle-HALAGIS2.mjs +0 -3
  1401. package/dist/RefreshCircle-HALAGIS2.mjs.map +0 -1
  1402. package/dist/RefreshLeftSquare-KBQYH7HU.mjs +0 -3
  1403. package/dist/RefreshLeftSquare-KBQYH7HU.mjs.map +0 -1
  1404. package/dist/RefreshRightSquare-QXRLFS4U.mjs +0 -3
  1405. package/dist/RefreshRightSquare-QXRLFS4U.mjs.map +0 -1
  1406. package/dist/RefreshSquare2-3LD3V777.mjs +0 -3
  1407. package/dist/RefreshSquare2-3LD3V777.mjs.map +0 -1
  1408. package/dist/Repeat-525X3G6P.mjs +0 -3
  1409. package/dist/Repeat-525X3G6P.mjs.map +0 -1
  1410. package/dist/RepeatCircle-6Z2HY3YD.mjs +0 -3
  1411. package/dist/RepeatCircle-6Z2HY3YD.mjs.map +0 -1
  1412. package/dist/RepeateMusic-LYGF23LR.mjs +0 -3
  1413. package/dist/RepeateMusic-LYGF23LR.mjs.map +0 -1
  1414. package/dist/RepeateOne-CW645R66.mjs +0 -3
  1415. package/dist/RepeateOne-CW645R66.mjs.map +0 -1
  1416. package/dist/RotateLeft-VP52763H.mjs +0 -3
  1417. package/dist/RotateLeft-VP52763H.mjs.map +0 -1
  1418. package/dist/RotateRight-BM2SKWJ5.mjs +0 -3
  1419. package/dist/RotateRight-BM2SKWJ5.mjs.map +0 -1
  1420. package/dist/SafeHome-BXUR4PQ7.mjs +0 -3
  1421. package/dist/SafeHome-BXUR4PQ7.mjs.map +0 -1
  1422. package/dist/Scan-VDWATMHG.mjs +0 -3
  1423. package/dist/Scan-VDWATMHG.mjs.map +0 -1
  1424. package/dist/SearchNormal-WVR2C47E.mjs +0 -3
  1425. package/dist/SearchNormal-WVR2C47E.mjs.map +0 -1
  1426. package/dist/SearchZoomIn-2DRWT6RO.mjs +0 -3
  1427. package/dist/SearchZoomIn-2DRWT6RO.mjs.map +0 -1
  1428. package/dist/SearchZoomOut-GWIHACEL.mjs +0 -3
  1429. package/dist/SearchZoomOut-GWIHACEL.mjs.map +0 -1
  1430. package/dist/Send-P3SQMEXQ.mjs +0 -3
  1431. package/dist/Send-P3SQMEXQ.mjs.map +0 -1
  1432. package/dist/Send2-ZZSHDBAJ.mjs +0 -3
  1433. package/dist/Send2-ZZSHDBAJ.mjs.map +0 -1
  1434. package/dist/SendSqaure2-SDSQK2MQ.mjs +0 -3
  1435. package/dist/SendSqaure2-SDSQK2MQ.mjs.map +0 -1
  1436. package/dist/SendSquare-SM3KXLRB.mjs +0 -3
  1437. package/dist/SendSquare-SM3KXLRB.mjs.map +0 -1
  1438. package/dist/Shield-LXHTDSP4.mjs +0 -3
  1439. package/dist/Shield-LXHTDSP4.mjs.map +0 -1
  1440. package/dist/ShieldCross-A5YO6NJD.mjs +0 -3
  1441. package/dist/ShieldCross-A5YO6NJD.mjs.map +0 -1
  1442. package/dist/ShieldSecurity-U3VBFZMO.mjs +0 -3
  1443. package/dist/ShieldSecurity-U3VBFZMO.mjs.map +0 -1
  1444. package/dist/ShieldSlash-PNJYGLYA.mjs +0 -3
  1445. package/dist/ShieldSlash-PNJYGLYA.mjs.map +0 -1
  1446. package/dist/ShieldTick-EYDNIDIJ.mjs +0 -3
  1447. package/dist/ShieldTick-EYDNIDIJ.mjs.map +0 -1
  1448. package/dist/Slack-K7NWXLO4.mjs +0 -3
  1449. package/dist/Slack-K7NWXLO4.mjs.map +0 -1
  1450. package/dist/Slash-PTH7I3VA.mjs +0 -3
  1451. package/dist/Slash-PTH7I3VA.mjs.map +0 -1
  1452. package/dist/Smallcaps-5CGXI2OD.mjs +0 -3
  1453. package/dist/Smallcaps-5CGXI2OD.mjs.map +0 -1
  1454. package/dist/SmartHome-XLYADTFL.mjs +0 -3
  1455. package/dist/SmartHome-XLYADTFL.mjs.map +0 -1
  1456. package/dist/Sort-E2GT57EG.mjs +0 -3
  1457. package/dist/Sort-E2GT57EG.mjs.map +0 -1
  1458. package/dist/Sound-QZEAORTF.mjs +0 -3
  1459. package/dist/Sound-QZEAORTF.mjs.map +0 -1
  1460. package/dist/Spotify-QZTGVT35.mjs +0 -3
  1461. package/dist/Spotify-QZTGVT35.mjs.map +0 -1
  1462. package/dist/Star-PIWRN7BK.mjs +0 -3
  1463. package/dist/Star-PIWRN7BK.mjs.map +0 -1
  1464. package/dist/Sticker-J7LX66EQ.mjs +0 -3
  1465. package/dist/Sticker-J7LX66EQ.mjs.map +0 -1
  1466. package/dist/Stop-CIBGGFGV.mjs +0 -3
  1467. package/dist/Stop-CIBGGFGV.mjs.map +0 -1
  1468. package/dist/StopCircle-BBG2CWUF.mjs +0 -3
  1469. package/dist/StopCircle-BBG2CWUF.mjs.map +0 -1
  1470. package/dist/Story-QYYFT37P.mjs +0 -3
  1471. package/dist/Story-QYYFT37P.mjs.map +0 -1
  1472. package/dist/Sun-K7UA4TWU.mjs +0 -3
  1473. package/dist/Sun-K7UA4TWU.mjs.map +0 -1
  1474. package/dist/TagCross-PT7W3LE4.mjs +0 -3
  1475. package/dist/TagCross-PT7W3LE4.mjs.map +0 -1
  1476. package/dist/TagUser-ASQTTKIX.mjs +0 -3
  1477. package/dist/TagUser-ASQTTKIX.mjs.map +0 -1
  1478. package/dist/Teacher-EPPWX6CR.mjs +0 -3
  1479. package/dist/Teacher-EPPWX6CR.mjs.map +0 -1
  1480. package/dist/Text-US25RWNI.mjs +0 -3
  1481. package/dist/Text-US25RWNI.mjs.map +0 -1
  1482. package/dist/TextBlock-YQEYAPYA.mjs +0 -3
  1483. package/dist/TextBlock-YQEYAPYA.mjs.map +0 -1
  1484. package/dist/TextBold-CMVI56IO.mjs +0 -3
  1485. package/dist/TextBold-CMVI56IO.mjs.map +0 -1
  1486. package/dist/TextItalic-KJUMX7S6.mjs +0 -3
  1487. package/dist/TextItalic-KJUMX7S6.mjs.map +0 -1
  1488. package/dist/TextUnderline-KORJCL3L.mjs +0 -3
  1489. package/dist/TextUnderline-KORJCL3L.mjs.map +0 -1
  1490. package/dist/TextalignCenter-FXUXYHAX.mjs +0 -3
  1491. package/dist/TextalignCenter-FXUXYHAX.mjs.map +0 -1
  1492. package/dist/TextalignJustifycenter-IECWBOTP.mjs +0 -3
  1493. package/dist/TextalignJustifycenter-IECWBOTP.mjs.map +0 -1
  1494. package/dist/TextalignJustifyleft-ARICIXJB.mjs +0 -3
  1495. package/dist/TextalignJustifyleft-ARICIXJB.mjs.map +0 -1
  1496. package/dist/TextalignJustifyright-6BDZEGME.mjs +0 -3
  1497. package/dist/TextalignJustifyright-6BDZEGME.mjs.map +0 -1
  1498. package/dist/TextalignLeft-QAVX4LZ4.mjs +0 -3
  1499. package/dist/TextalignLeft-QAVX4LZ4.mjs.map +0 -1
  1500. package/dist/TextalignRight-XT6NB3WJ.mjs +0 -3
  1501. package/dist/TextalignRight-XT6NB3WJ.mjs.map +0 -1
  1502. package/dist/TickCircle-4JWHEMMI.mjs +0 -3
  1503. package/dist/TickCircle-4JWHEMMI.mjs.map +0 -1
  1504. package/dist/TickSquare-VA3EIOX7.mjs +0 -3
  1505. package/dist/TickSquare-VA3EIOX7.mjs.map +0 -1
  1506. package/dist/Ticket-DOMCU6MW.mjs +0 -3
  1507. package/dist/Ticket-DOMCU6MW.mjs.map +0 -1
  1508. package/dist/TicketDiscount-ZVZUOCRN.mjs +0 -3
  1509. package/dist/TicketDiscount-ZVZUOCRN.mjs.map +0 -1
  1510. package/dist/Translate-VDDWZG7F.mjs +0 -3
  1511. package/dist/Translate-VDDWZG7F.mjs.map +0 -1
  1512. package/dist/Trash-WZORNB4E.mjs +0 -3
  1513. package/dist/Trash-WZORNB4E.mjs.map +0 -1
  1514. package/dist/Triangle-Q3H7YAZW.mjs +0 -3
  1515. package/dist/Triangle-Q3H7YAZW.mjs.map +0 -1
  1516. package/dist/TrushSquare-S6ZCYHQL.mjs +0 -3
  1517. package/dist/TrushSquare-S6ZCYHQL.mjs.map +0 -1
  1518. package/dist/Undo-5YA4HBJL.mjs +0 -3
  1519. package/dist/Undo-5YA4HBJL.mjs.map +0 -1
  1520. package/dist/Unlimited-UYPPTOJK.mjs +0 -3
  1521. package/dist/Unlimited-UYPPTOJK.mjs.map +0 -1
  1522. package/dist/Unlock-5B6LVBFN.mjs +0 -3
  1523. package/dist/Unlock-5B6LVBFN.mjs.map +0 -1
  1524. package/dist/User-KLJLNXAW.mjs +0 -3
  1525. package/dist/User-KLJLNXAW.mjs.map +0 -1
  1526. package/dist/UserAdd-UOEKYPRY.mjs +0 -3
  1527. package/dist/UserAdd-UOEKYPRY.mjs.map +0 -1
  1528. package/dist/UserCirlceAdd-VA7KCSAW.mjs +0 -3
  1529. package/dist/UserCirlceAdd-VA7KCSAW.mjs.map +0 -1
  1530. package/dist/UserEdit-QMOLCXRQ.mjs +0 -3
  1531. package/dist/UserEdit-QMOLCXRQ.mjs.map +0 -1
  1532. package/dist/UserMinus-MGZ5S2HA.mjs +0 -3
  1533. package/dist/UserMinus-MGZ5S2HA.mjs.map +0 -1
  1534. package/dist/UserOctagon-JUYJJFUL.mjs +0 -3
  1535. package/dist/UserOctagon-JUYJJFUL.mjs.map +0 -1
  1536. package/dist/UserRemove-G7MKYUEN.mjs +0 -3
  1537. package/dist/UserRemove-G7MKYUEN.mjs.map +0 -1
  1538. package/dist/UserSearch-LJXRZNAS.mjs +0 -3
  1539. package/dist/UserSearch-LJXRZNAS.mjs.map +0 -1
  1540. package/dist/UserSquare-Q3FP253V.mjs +0 -3
  1541. package/dist/UserSquare-Q3FP253V.mjs.map +0 -1
  1542. package/dist/UserTag-ICUR5C4V.mjs +0 -3
  1543. package/dist/UserTag-ICUR5C4V.mjs.map +0 -1
  1544. package/dist/UserTick-3TXGN3E4.mjs +0 -3
  1545. package/dist/UserTick-3TXGN3E4.mjs.map +0 -1
  1546. package/dist/Verify-DE6QVJRE.mjs +0 -3
  1547. package/dist/Verify-DE6QVJRE.mjs.map +0 -1
  1548. package/dist/Video-2QGRNG3O.mjs +0 -3
  1549. package/dist/Video-2QGRNG3O.mjs.map +0 -1
  1550. package/dist/VideoCircle-OHD4MRL3.mjs +0 -3
  1551. package/dist/VideoCircle-OHD4MRL3.mjs.map +0 -1
  1552. package/dist/VideoPlay-666B4R2A.mjs +0 -3
  1553. package/dist/VideoPlay-666B4R2A.mjs.map +0 -1
  1554. package/dist/VideoSlash-53J47SKL.mjs +0 -3
  1555. package/dist/VideoSlash-53J47SKL.mjs.map +0 -1
  1556. package/dist/VideoSquare-R6EYB4LH.mjs +0 -3
  1557. package/dist/VideoSquare-R6EYB4LH.mjs.map +0 -1
  1558. package/dist/VoiceSquare-T7WNIKWE.mjs +0 -3
  1559. package/dist/VoiceSquare-T7WNIKWE.mjs.map +0 -1
  1560. package/dist/VolumeCross-BYSHSG6X.mjs +0 -3
  1561. package/dist/VolumeCross-BYSHSG6X.mjs.map +0 -1
  1562. package/dist/VolumeHigh-IGUFYHSL.mjs +0 -3
  1563. package/dist/VolumeHigh-IGUFYHSL.mjs.map +0 -1
  1564. package/dist/VolumeLow-UE3BAWDV.mjs +0 -3
  1565. package/dist/VolumeLow-UE3BAWDV.mjs.map +0 -1
  1566. package/dist/VolumeLow1-EO6JGVE6.mjs +0 -3
  1567. package/dist/VolumeLow1-EO6JGVE6.mjs.map +0 -1
  1568. package/dist/VolumeMute-UFETKTFO.mjs +0 -3
  1569. package/dist/VolumeMute-UFETKTFO.mjs.map +0 -1
  1570. package/dist/VolumeSlash-5SN2ESOX.mjs +0 -3
  1571. package/dist/VolumeSlash-5SN2ESOX.mjs.map +0 -1
  1572. package/dist/VolumeUp-2ZUORG3U.mjs +0 -3
  1573. package/dist/VolumeUp-2ZUORG3U.mjs.map +0 -1
  1574. package/dist/Warning2-HGWJQGXZ.mjs +0 -3
  1575. package/dist/Warning2-HGWJQGXZ.mjs.map +0 -1
  1576. package/dist/Whatsapp-SMQLL7JP.mjs +0 -3
  1577. package/dist/Whatsapp-SMQLL7JP.mjs.map +0 -1
  1578. package/dist/Wifi-ZVCJIIUD.mjs +0 -3
  1579. package/dist/Wifi-ZVCJIIUD.mjs.map +0 -1
  1580. package/dist/WifiSquare-PWL2NWJ2.mjs +0 -3
  1581. package/dist/WifiSquare-PWL2NWJ2.mjs.map +0 -1
  1582. package/dist/Windows-OTGPOV5B.mjs +0 -3
  1583. package/dist/Windows-OTGPOV5B.mjs.map +0 -1
  1584. package/dist/Youtube-UJ7IX23L.mjs +0 -3
  1585. package/dist/Youtube-UJ7IX23L.mjs.map +0 -1
  1586. package/dist/advanced-motion.d.mts +0 -93
  1587. package/dist/advanced-motion.js +0 -2
  1588. package/dist/advanced-motion.js.map +0 -1
  1589. package/dist/advanced-motion.mjs +0 -2
  1590. package/dist/advanced-motion.mjs.map +0 -1
  1591. package/dist/chunk-36N7GXIA.mjs +0 -2
  1592. package/dist/chunk-36N7GXIA.mjs.map +0 -1
  1593. package/dist/chunk-57XAC4ZA.mjs +0 -2
  1594. package/dist/chunk-57XAC4ZA.mjs.map +0 -1
  1595. package/dist/chunk-6JWIMJDJ.mjs +0 -2
  1596. package/dist/chunk-6JWIMJDJ.mjs.map +0 -1
  1597. package/dist/chunk-7QQMY5I2.mjs +0 -2
  1598. package/dist/chunk-7QQMY5I2.mjs.map +0 -1
  1599. package/dist/chunk-DMLVCGZL.mjs +0 -2
  1600. package/dist/chunk-DMLVCGZL.mjs.map +0 -1
  1601. package/dist/chunk-DP2CN36N.mjs +0 -2
  1602. package/dist/chunk-DP2CN36N.mjs.map +0 -1
  1603. package/dist/chunk-EE2MW3B5.mjs +0 -2
  1604. package/dist/chunk-EE2MW3B5.mjs.map +0 -1
  1605. package/dist/chunk-O5U2T64X.mjs +0 -2
  1606. package/dist/chunk-O5U2T64X.mjs.map +0 -1
  1607. package/dist/chunk-UHN7T3BX.mjs +0 -2
  1608. package/dist/chunk-UHN7T3BX.mjs.map +0 -1
  1609. package/dist/chunk-ULNG6SWK.mjs +0 -2
  1610. package/dist/chunk-ULNG6SWK.mjs.map +0 -1
  1611. package/dist/chunk-V65I7CVX.mjs +0 -2
  1612. package/dist/chunk-V65I7CVX.mjs.map +0 -1
  1613. package/dist/chunk-WSA7CYMB.mjs +0 -2
  1614. package/dist/chunk-WSA7CYMB.mjs.map +0 -1
  1615. package/dist/chunk-X3YDLY2H.mjs +0 -2
  1616. package/dist/chunk-X3YDLY2H.mjs.map +0 -1
  1617. package/dist/chunk-XJAQ7MK5.mjs +0 -2
  1618. package/dist/chunk-XJAQ7MK5.mjs.map +0 -1
  1619. package/dist/chunk-Z45QNK2S.mjs +0 -2
  1620. package/dist/chunk-Z45QNK2S.mjs.map +0 -1
  1621. package/dist/dashboard-MmFfZs15.d.mts +0 -1882
  1622. package/dist/icons-DcEq-9hv.d.mts +0 -136
  1623. package/dist/iconsax-icon-names-OC4Z7756.mjs +0 -273
  1624. package/dist/iconsax-icon-names-OC4Z7756.mjs.map +0 -1
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import {a}from'./chunk-UUHAXGMO.mjs';import R,{createContext,useContext,useState,useEffect}from'react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';import {clsx}from'clsx';function be(t,r){let e="rounded-2xl border transition-all duration-200";switch(t){case "default":return a(e,r.default);case "gradient":return a(e,"text-white",r.gradient);case "outline":return a(e,r.outline);case "elevated":return a(e,r.elevated);default:return e}}function ye(t="md"){return {sm:{container:"p-4",icon:"h-4 w-4",iconContainer:"w-8 h-8",text:"text-xs",title:"text-xs",description:"text-xs"},md:{container:"p-6",icon:"h-6 w-6",iconContainer:"w-12 h-12",text:"text-base",title:"text-sm",description:"text-sm"},lg:{container:"p-8",icon:"h-8 w-8",iconContainer:"w-16 h-16",text:"text-lg",title:"text-base",description:"text-base"},xl:{container:"p-10",icon:"h-10 w-10",iconContainer:"w-20 h-20",text:"text-xl",title:"text-lg",description:"text-lg"}}[t]}function O(t="md"){return {sm:"rounded",md:"rounded-md",lg:"rounded-lg",xl:"rounded-xl",full:"rounded-full",none:"rounded-none"}[t]}function _(t="md"){return t==="none"?"":`shadow-${t}`}var xe="cubic-bezier(0.34, 1.56, 0.64, 1)";function I(t="springy",r=false){if(r||t==="none")return "";let e="[transition:transform_180ms_cubic-bezier(0.34,1.56,0.64,1),box-shadow_200ms_ease-out]";return {springy:`hover:scale-[1.015] hover:shadow-md active:scale-[0.985] ${e} transform-gpu`,scale:"hover:scale-[1.015] active:scale-[0.985] transition-transform duration-150 ease-out transform-gpu",glow:"hover:shadow-lg hover:shadow-primary/25 transition-shadow duration-200",slide:`hover:-translate-y-0.5 hover:shadow-md ${e} transform-gpu`,none:""}[t]}var q={theme:"system",setTheme:()=>null,resolvedTheme:"light",toggleTheme:()=>null},G=createContext(q);function Te({children:t,defaultTheme:r="light",storageKey:e="hua-ui-theme",enableSystem:o=true,enableTransition:n=true,...a}){let[i,c]=useState(r),[u,h]=useState("light");useEffect(()=>{if(typeof window!="undefined"){let s=localStorage.getItem(e);s&&c(s);}},[e]),useEffect(()=>{let s=window.document.documentElement;if(s.classList.remove("light","dark"),i==="system"&&o){let f=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";s.classList.add(f),h(f);}else s.classList.add(i),h(i);n&&s.classList.add("transition-colors","duration-300");},[i,o,n]),useEffect(()=>{if(i==="system"&&o){let s=window.matchMedia("(prefers-color-scheme: dark)"),f=()=>{let y=s.matches?"dark":"light";h(y),document.documentElement.classList.remove("light","dark"),document.documentElement.classList.add(y);};return s.addEventListener("change",f),()=>s.removeEventListener("change",f)}},[i,o]);let b={theme:i,setTheme:s=>{typeof window!="undefined"&&localStorage.setItem(e,s),c(s);},resolvedTheme:u,toggleTheme:()=>{let s=u==="light"?"dark":"light";typeof window!="undefined"&&localStorage.setItem(e,s),c(s);}};return jsx(G.Provider,{...a,value:b,children:t})}var $=()=>{let t=useContext(G);if(t===void 0)throw new Error("useTheme must be used within a ThemeProvider");return t};function re(...t){return r=>{t.forEach(e=>{typeof e=="function"?e(r):e!=null&&(e.current=r);});}}function oe(t,r){return e=>{t==null||t(e),e.defaultPrevented||r==null||r(e);}}function ne(t,r){if(!(!t&&!r))return clsx(t,r)}function ae(t,r){if(!(!t&&!r))return {...t,...r}}function se(t,r){let e={...t};for(let o in r){let n=t[o],a=r[o];/^on[A-Z]/.test(o)?n&&a?e[o]=oe(n,a):e[o]=a||n:o==="className"?e[o]=ne(n,a):o==="style"?e[o]=ae(n,a):e[o]=a!==void 0?a:n;}return e}function ie(t){return R.isValidElement(t)}var N=R.forwardRef(({children:t,...r},e)=>{let o=R.Children.toArray(t);if(o.length!==1)return process.env.NODE_ENV!=="production"&&console.warn("[Slot] asChild\uB294 \uC815\uD655\uD788 \uD558\uB098\uC758 \uC790\uC2DD \uC694\uC18C\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4."),null;let n=o[0];if(!ie(n))return process.env.NODE_ENV!=="production"&&console.warn("[Slot] \uC790\uC2DD\uC740 \uC720\uD6A8\uD55C React \uC694\uC18C\uC5EC\uC57C \uD569\uB2C8\uB2E4."),null;let a=n.props,i=n.ref,c=se(r,a),u=re(e,i);return R.cloneElement(n,{...c,ref:u})});N.displayName="Slot";function ce(t,r,e){if(e)switch(t){case "default":if(e.primary)return "bg-[var(--color-primary)] text-white border-[var(--color-primary)] hover:opacity-90";break;case "secondary":if(e.secondary)return "bg-[var(--color-secondary)] text-white border-[var(--color-secondary)] hover:opacity-90";break;case "outline":if(e.accent)return "border-[var(--color-accent)] text-[var(--color-accent)] bg-transparent hover:bg-[var(--color-accent)]/10";break}switch(t){case "default":return "bg-[var(--color-primary)] text-[var(--color-primary-foreground)] hover:opacity-90";case "destructive":return "bg-[var(--color-destructive)] text-[var(--color-destructive-foreground)] hover:opacity-90";case "outline":return "border-2 border-[var(--color-border)] bg-transparent text-[var(--color-foreground)] hover:bg-[var(--color-accent)] hover:text-[var(--color-accent-foreground)]";case "secondary":return "bg-[var(--color-secondary)] text-[var(--color-secondary-foreground)] hover:opacity-80";case "ghost":return "bg-transparent text-[var(--color-foreground)] hover:bg-[var(--color-accent)] hover:text-[var(--color-accent-foreground)]";case "link":return "bg-transparent text-[var(--color-primary)] underline hover:opacity-80";case "gradient":return "bg-gradient-to-r from-teal-500 to-cyan-500 text-white hover:shadow-lg hover:from-teal-600 hover:to-cyan-600";case "neon":return "bg-slate-900 dark:bg-slate-950 text-teal-400 border border-teal-500/50 shadow-lg shadow-teal-500/20 hover:shadow-teal-500/40 hover:border-teal-400";case "glass":return "bg-white/50 dark:bg-slate-900/50 backdrop-blur-md border border-slate-200/50 dark:border-slate-700/50 text-slate-900 dark:text-slate-100 hover:bg-white/70 dark:hover:bg-slate-900/70";default:return ""}}function de(t){return {sm:"h-8 px-4 py-2 text-sm",md:"h-10 px-6 py-2 text-base",lg:"h-12 px-8 py-3 text-lg",xl:"h-14 px-10 py-4 text-xl",icon:"h-10 w-10 p-0"}[t]}function le(t,r){let e="focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--color-background)]";switch(t){case "destructive":return "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-destructive)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--color-background)]";case "outline":case "ghost":case "link":return "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-ring)] focus-visible:ring-offset-0";default:return e}}function W(t){let{variant:r,size:e,rounded:o="md",shadow:n="md",hover:a$1="springy",theme:i,branding:c,reducedMotion:u=false}=t;return {base:a("inline-flex items-center justify-center whitespace-nowrap font-medium transition-all duration-200","disabled:pointer-events-none disabled:opacity-50 min-w-fit"),variant:ce(r,i,c),size:de(e),rounded:O(o),shadow:_(n),hover:I(a$1,u),focus:le(r)}}var ue=typeof window!="undefined";function me(){let[t,r]=R.useState(false);return R.useEffect(()=>{var n;if(!ue||!("matchMedia"in window))return;let e=window.matchMedia("(prefers-reduced-motion: reduce)"),o=()=>r(!!e.matches);return o(),(n=e.addEventListener)==null||n.call(e,"change",o),()=>{var a;return (a=e.removeEventListener)==null?void 0:a.call(e,"change",o)}},[]),t}var F=R.forwardRef(function({variant:r="default",size:e="md",loading:o=false,icon:n,iconPosition:a$1="left",gradient:i="blue",customGradient:c,rounded:u="md",shadow:h="md",hover:b="springy",fullWidth:s,iconOnly:f,className:y,children:z,disabled:x,asChild:Q=false,...g},k){let L=me(),w="light";try{w=$().resolvedTheme;}catch{w="light";}let p=R.useMemo(()=>{let l="";r==="gradient"&&c?l=`bg-gradient-to-r ${c}`:r==="gradient"&&(l=`bg-gradient-to-r ${fe(i)}`);let v=W({variant:r,size:e,rounded:u,shadow:h,hover:b,theme:w,reducedMotion:L});return r==="gradient"?{...v,variant:l+" text-white hover:shadow-lg"}:v},[r,e,u,h,b,w,L,i,c]),C=a(p.base,p.focus,"disabled:pointer-events-none disabled:opacity-50 min-w-fit",s&&"w-full",p.variant,p.size,p.rounded,p.shadow,p.hover,y),A=jsxs(Fragment,{children:[o&&jsxs("span",{role:"status","aria-live":"polite",className:"-ml-1 mr-2 inline-flex",children:[jsxs("svg",{className:"animate-spin h-4 w-4",viewBox:"0 0 24 24",fill:"none",children:[jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),jsx("span",{className:"sr-only",children:"\uB85C\uB529 \uC911"})]}),!o&&n&&a$1==="left"&&jsx("span",{className:"mr-2",children:n}),z,!o&&n&&a$1==="right"&&jsx("span",{className:"ml-2",children:n})]});if(f&&!("aria-label"in g)&&process.env.NODE_ENV!=="production"&&console.warn("[Button] iconOnly \uC0AC\uC6A9 \uC2DC aria-label\uC744 \uC81C\uACF5\uD558\uC138\uC694."),Q){let l={className:C,ref:k,disabled:x||o,"aria-busy":o||void 0,"aria-disabled":x||o||void 0,...g};return jsx(N,{...l,children:z})}if("href"in g&&g.href){let{onClick:l,target:v,rel:S,href:j,"aria-label":ge,className:J,...H}=g,B=!!x||o,X=E=>{if(B){E.preventDefault(),E.stopPropagation();return}l==null||l(E);};return jsx("a",{ref:k,href:j,className:a(C,J),onClick:X,"aria-busy":o||void 0,"aria-disabled":B||void 0,tabIndex:B?-1:H.tabIndex,target:v,rel:v==="_blank"?S!=null?S:"noopener noreferrer":S,...H,children:A})}let{className:U,...Z}=g,V=!!x||o;return jsx("button",{ref:k,className:a(C,U),type:"button",disabled:V,"aria-busy":o||void 0,"aria-disabled":V||void 0,...Z,children:A})});F.displayName="Button";var _e=F;function fe(t){let r={blue:"from-teal-500 to-cyan-500",purple:"from-purple-500 to-pink-500",green:"from-green-500 to-emerald-500 dark:from-green-400 dark:to-emerald-400",orange:"from-orange-500 to-red-500 dark:from-orange-300 dark:to-red-300",pink:"from-pink-500 to-rose-500"};return r[t]||r.blue}export{be as a,ye as b,O as c,_ as d,xe as e,I as f,Te as g,$ as h,re as i,se as j,N as k,_e as l};//# sourceMappingURL=chunk-25X3JS5U.mjs.map
3
+ //# sourceMappingURL=chunk-25X3JS5U.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/styles/variants.ts","../src/components/ThemeProvider.tsx","../src/lib/Slot.tsx","../src/lib/styles/system/components.ts","../src/components/Button.tsx"],"names":["createVariantStyles","variant","colorStyles","baseClasses","merge","createSizeStyles","size","createRoundedStyles","rounded","createShadowStyles","shadow","HUA_SPRING_EASING","createHoverStyles","hover","reducedMotion","springTransition","initialState","ThemeProviderContext","createContext","ThemeProvider","children","defaultTheme","storageKey","enableSystem","enableTransition","props","theme","setTheme","useState","resolvedTheme","setResolvedTheme","useEffect","savedTheme","root","systemTheme","mediaQuery","handleChange","value","newTheme","jsx","useTheme","context","useContext","composeRefs","refs","node","ref","composeEventHandlers","parentHandler","childHandler","event","mergeClassName","slotClassName","childClassName","clsx","mergeStyle","slotStyle","childStyle","mergeProps","slotProps","childProps","mergedProps","propName","slotValue","childValue","isSlottable","child","React","Slot","forwardedRef","childArray","childRef","mergedRef","createButtonVariantStyle","_theme","branding","createButtonSizeStyle","createButtonFocusStyle","baseFocus","createButtonStyles","options","isBrowser","useReducedMotion","reduce","setReduce","_a","mq","onChange","ButtonInner","loading","icon","iconPosition","gradient","customGradient","fullWidth","iconOnly","className","disabled","asChild","rest","reduced","styles","gradientStyle","getGradientClass","buttonStyles","base","content","jsxs","Fragment","onClick","target","rel","href","_ariaLabel","anchorClassName","anchorProps","isDisabled","handleAnchorClick","e","buttonClassName","btnProps","Button","g"],"mappings":"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","file":"chunk-25X3JS5U.mjs","sourcesContent":["/**\n * HUA UI 공통 Variant 시스템\n * 컴포넌트 variant 스타일 생성 유틸리티\n */\n\nimport type { ExtendedVariant, Size } from \"../types/common\";\nimport type { ColorStyles } from \"./colors\";\nimport { merge } from \"../utils\";\n\n/**\n * Variant 스타일 생성 함수\n * \n * @param variant - Variant 타입\n * @param colorStyles - 색상 스타일 객체\n * @returns 생성된 variant 클래스 문자열\n * \n * @example\n * ```tsx\n * const colorStyles = useColorStyles(\"blue\");\n * const variantClass = createVariantStyles(\"elevated\", colorStyles);\n * ```\n */\nexport function createVariantStyles(\n variant: ExtendedVariant,\n colorStyles: ColorStyles\n): string {\n const baseClasses = \"rounded-2xl border transition-all duration-200\";\n \n switch (variant) {\n case \"default\":\n return merge(baseClasses, colorStyles.default);\n \n case \"gradient\":\n return merge(baseClasses, \"text-white\", colorStyles.gradient);\n \n case \"outline\":\n return merge(baseClasses, colorStyles.outline);\n \n case \"elevated\":\n return merge(baseClasses, colorStyles.elevated);\n \n default:\n return baseClasses;\n }\n}\n\n/**\n * Size 스타일 설정 인터페이스\n */\nexport interface SizeStyles {\n container: string;\n icon: string;\n iconContainer: string;\n text: string;\n title: string;\n description: string;\n}\n\n/**\n * Size 스타일 생성 함수\n * \n * @param size - 크기 타입\n * @returns 생성된 size 스타일 객체\n * \n * @example\n * ```tsx\n * const sizeStyles = createSizeStyles(\"md\");\n * // sizeStyles.container, sizeStyles.icon 등 사용 가능\n * ```\n */\nexport function createSizeStyles(size: Size = \"md\"): SizeStyles {\n const sizeMap: Record<Size, SizeStyles> = {\n sm: {\n container: \"p-4\",\n icon: \"h-4 w-4\",\n iconContainer: \"w-8 h-8\",\n text: \"text-xs\",\n title: \"text-xs\",\n description: \"text-xs\",\n },\n md: {\n container: \"p-6\",\n icon: \"h-6 w-6\",\n iconContainer: \"w-12 h-12\",\n text: \"text-base\",\n title: \"text-sm\",\n description: \"text-sm\",\n },\n lg: {\n container: \"p-8\",\n icon: \"h-8 w-8\",\n iconContainer: \"w-16 h-16\",\n text: \"text-lg\",\n title: \"text-base\",\n description: \"text-base\",\n },\n xl: {\n container: \"p-10\",\n icon: \"h-10 w-10\",\n iconContainer: \"w-20 h-20\",\n text: \"text-xl\",\n title: \"text-lg\",\n description: \"text-lg\",\n },\n };\n \n return sizeMap[size];\n}\n\n/**\n * Rounded 스타일 타입\n */\nexport type Rounded = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\" | \"none\";\n\n/**\n * Rounded 스타일 생성 함수\n * \n * @param rounded - Rounded 타입\n * @returns 생성된 rounded 클래스 문자열\n */\nexport function createRoundedStyles(rounded: Rounded = \"md\"): string {\n const roundedMap: Record<Rounded, string> = {\n sm: \"rounded\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n xl: \"rounded-xl\",\n full: \"rounded-full\",\n none: \"rounded-none\",\n };\n \n return roundedMap[rounded];\n}\n\n/**\n * Shadow 스타일 타입\n */\nexport type Shadow = \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n\n/**\n * Shadow 스타일 생성 함수\n * \n * @param shadow - Shadow 타입\n * @returns 생성된 shadow 클래스 문자열\n */\nexport function createShadowStyles(shadow: Shadow = \"md\"): string {\n if (shadow === \"none\") return \"\";\n \n return `shadow-${shadow}`;\n}\n\n/**\n * Hover 효과 타입\n */\nexport type HoverEffect = \"scale\" | \"glow\" | \"slide\" | \"springy\" | \"none\";\n\n/**\n * HUA-UI 스프링 이징\n * 공 튕기듯 아주 미세한 반동 - cubic-bezier(0.34, 1.56, 0.64, 1)\n */\nexport const HUA_SPRING_EASING = \"cubic-bezier(0.34, 1.56, 0.64, 1)\";\n\n/**\n * Hover 효과 스타일 생성 함수\n *\n * @param hover - Hover 효과 타입\n * @param reducedMotion - 애니메이션 축소 설정 여부\n * @returns 생성된 hover 클래스 문자열\n *\n * @description\n * HUA-UI 시그니처: \"스륵 부드럽고 아주 미세하게 쫀득\"\n * - 스프링 이징으로 미세한 반동 효과\n * - 1.5% 스케일 변화로 자연스러운 피드백\n */\nexport function createHoverStyles(\n hover: HoverEffect = \"springy\",\n reducedMotion: boolean = false\n): string {\n if (reducedMotion || hover === \"none\") return \"\";\n\n // 스프링 이징 스타일 (Tailwind arbitrary value)\n // HUA-UI 시그니처: 아주 미세한 스프링 반동 (쫀득한 느낌)\n const springTransition = \"[transition:transform_180ms_cubic-bezier(0.34,1.56,0.64,1),box-shadow_200ms_ease-out]\";\n\n const hoverMap: Record<HoverEffect, string> = {\n // HUA-UI 시그니처 스프링 효과 (기본값)\n // scale 1.5% + 미세한 shadow 추가로 입체감\n springy: `hover:scale-[1.015] hover:shadow-md active:scale-[0.985] ${springTransition} transform-gpu`,\n // scale만 (스프링 없음)\n scale: \"hover:scale-[1.015] active:scale-[0.985] transition-transform duration-150 ease-out transform-gpu\",\n // 글로우 효과 - shadow 강화\n glow: \"hover:shadow-lg hover:shadow-primary/25 transition-shadow duration-200\",\n // 슬라이드 효과 - 위로 살짝 뜨는 느낌 + shadow\n slide: `hover:-translate-y-0.5 hover:shadow-md ${springTransition} transform-gpu`,\n none: \"\",\n };\n\n return hoverMap[hover];\n}\n\n","\"use client\"\n\nimport React, { createContext, useContext, useEffect, useState } from \"react\"\n\ntype Theme = \"light\" | \"dark\" | \"system\"\n\n/**\n * ThemeProvider 컴포넌트의 props / ThemeProvider component props\n * @typedef {Object} ThemeProviderProps\n * @property {React.ReactNode} children - 자식 컴포넌트 / Child components\n * @property {\"light\" | \"dark\" | \"system\"} [defaultTheme=\"light\"] - 기본 테마 / Default theme\n * @property {string} [storageKey=\"hua-ui-theme\"] - localStorage 키 / localStorage key\n * @property {boolean} [enableSystem=true] - 시스템 테마 감지 활성화 / Enable system theme detection\n * @property {boolean} [enableTransition=true] - 테마 전환 애니메이션 활성화 / Enable theme transition animation\n */\nexport interface ThemeProviderProps {\n children: React.ReactNode\n defaultTheme?: Theme\n storageKey?: string\n enableSystem?: boolean\n enableTransition?: boolean\n}\n\n/**\n * ThemeProvider의 상태 타입 / ThemeProvider state type\n * @typedef {Object} ThemeProviderState\n * @property {\"light\" | \"dark\" | \"system\"} theme - 현재 테마 / Current theme\n * @property {(theme: \"light\" | \"dark\" | \"system\") => void} setTheme - 테마 설정 함수 / Theme setter function\n * @property {\"light\" | \"dark\"} resolvedTheme - 실제 적용된 테마 (system일 경우 시스템 테마) / Actually applied theme (system theme when system is selected)\n * @property {() => void} toggleTheme - 테마 토글 함수 / Theme toggle function\n */\nexport interface ThemeProviderState {\n theme: Theme\n setTheme: (theme: Theme) => void\n resolvedTheme: \"light\" | \"dark\"\n toggleTheme: () => void\n}\n\nconst initialState: ThemeProviderState = {\n theme: \"system\",\n setTheme: () => null,\n resolvedTheme: \"light\",\n toggleTheme: () => null,\n}\n\nconst ThemeProviderContext = createContext<ThemeProviderState>(initialState)\n\n/**\n * ThemeProvider 컴포넌트 / ThemeProvider component\n * \n * 테마 관리를 위한 Context Provider 컴포넌트입니다.\n * localStorage에 테마를 저장하고, 시스템 테마를 감지할 수 있습니다.\n * useTheme 훅을 통해 테마 상태에 접근할 수 있습니다.\n * \n * Context Provider component for theme management.\n * Saves theme to localStorage and can detect system theme.\n * Access theme state through useTheme hook.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <ThemeProvider>\n * <App />\n * </ThemeProvider>\n * \n * @example\n * // 커스텀 설정 / Custom settings\n * <ThemeProvider\n * defaultTheme=\"dark\"\n * storageKey=\"my-app-theme\"\n * enableSystem={true}\n * enableTransition={true}\n * >\n * <App />\n * </ThemeProvider>\n * \n * @param {ThemeProviderProps} props - ThemeProvider 컴포넌트의 props / ThemeProvider component props\n * @returns {JSX.Element} ThemeProvider 컴포넌트 / ThemeProvider component\n */\nexport function ThemeProvider({\n children,\n defaultTheme = \"light\", // system에서 light로 변경\n storageKey = \"hua-ui-theme\",\n enableSystem = true,\n enableTransition = true,\n ...props\n}: ThemeProviderProps): React.ReactElement {\n const [theme, setTheme] = useState<Theme>(defaultTheme)\n const [resolvedTheme, setResolvedTheme] = useState<\"light\" | \"dark\">(\"light\")\n\n useEffect(() => {\n // localStorage에서 테마 가져오기 (클라이언트에서만)\n if (typeof window !== 'undefined') {\n const savedTheme = localStorage.getItem(storageKey) as Theme\n if (savedTheme) {\n setTheme(savedTheme)\n }\n }\n }, [storageKey])\n\n useEffect(() => {\n const root = window.document.documentElement\n\n root.classList.remove(\"light\", \"dark\")\n\n if (theme === \"system\" && enableSystem) {\n const systemTheme = window.matchMedia(\"(prefers-color-scheme: dark)\")\n .matches\n ? \"dark\"\n : \"light\"\n\n root.classList.add(systemTheme)\n setResolvedTheme(systemTheme)\n } else {\n root.classList.add(theme)\n setResolvedTheme(theme as \"light\" | \"dark\")\n }\n\n if (enableTransition) {\n root.classList.add(\"transition-colors\", \"duration-300\")\n }\n }, [theme, enableSystem, enableTransition])\n\n useEffect(() => {\n if (theme === \"system\" && enableSystem) {\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\")\n\n const handleChange = () => {\n const systemTheme = mediaQuery.matches ? \"dark\" : \"light\"\n setResolvedTheme(systemTheme)\n document.documentElement.classList.remove(\"light\", \"dark\")\n document.documentElement.classList.add(systemTheme)\n }\n\n mediaQuery.addEventListener(\"change\", handleChange)\n return () => mediaQuery.removeEventListener(\"change\", handleChange)\n }\n }, [theme, enableSystem])\n\n const value = {\n theme,\n setTheme: (theme: Theme) => {\n if (typeof window !== 'undefined') {\n localStorage.setItem(storageKey, theme)\n }\n setTheme(theme)\n },\n resolvedTheme,\n toggleTheme: () => {\n const newTheme = resolvedTheme === \"light\" ? \"dark\" : \"light\"\n if (typeof window !== 'undefined') {\n localStorage.setItem(storageKey, newTheme)\n }\n setTheme(newTheme)\n },\n }\n\n return (\n <ThemeProviderContext.Provider {...props} value={value}>\n {children}\n </ThemeProviderContext.Provider>\n )\n}\n\n/**\n * useTheme 훅 / useTheme hook\n * \n * ThemeProvider의 테마 상태에 접근하는 훅입니다.\n * ThemeProvider 내부에서만 사용할 수 있습니다.\n * \n * Hook to access ThemeProvider's theme state.\n * Can only be used inside ThemeProvider.\n * \n * @example\n * const { theme, setTheme, resolvedTheme, toggleTheme } = useTheme()\n * \n * @returns {ThemeProviderState} 테마 상태와 함수들 / Theme state and functions\n * @throws {Error} ThemeProvider 외부에서 사용 시 에러 발생 / Error when used outside ThemeProvider\n */\nexport const useTheme = () => {\n const context = useContext(ThemeProviderContext)\n\n if (context === undefined)\n throw new Error(\"useTheme must be used within a ThemeProvider\")\n\n return context\n} ","\"use client\";\n\nimport React from \"react\";\nimport { clsx } from \"clsx\";\n\n/**\n * Slot 컴포넌트\n *\n * Radix UI의 asChild 패턴을 구현합니다.\n * 자식 요소의 props와 ref를 병합하여 하나의 요소로 렌더링합니다.\n *\n * @example\n * // Button에서 asChild 사용\n * <Button asChild>\n * <Link href=\"/home\">홈으로</Link>\n * </Button>\n *\n * @see https://www.radix-ui.com/primitives/docs/utilities/slot\n */\n\ntype SlotProps = React.HTMLAttributes<HTMLElement> & {\n children?: React.ReactNode;\n};\n\n/**\n * 여러 ref를 하나로 합칩니다\n */\nfunction composeRefs<T>(\n ...refs: (React.Ref<T> | undefined)[]\n): React.RefCallback<T> {\n return (node) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref != null) {\n (ref as React.MutableRefObject<T | null>).current = node;\n }\n });\n };\n}\n\n/**\n * 이벤트 핸들러를 합성합니다\n * \n * 부모(slot) 핸들러를 먼저 실행하고, 그 다음 자식 핸들러를 실행합니다.\n * defaultPrevented가 true이면 자식 핸들러는 실행하지 않습니다.\n */\nfunction composeEventHandlers<E>(\n parentHandler?: (event: E) => void,\n childHandler?: (event: E) => void\n): (event: E) => void {\n return (event) => {\n parentHandler?.(event);\n if (!(event as unknown as { defaultPrevented: boolean }).defaultPrevented) {\n childHandler?.(event);\n }\n };\n}\n\n/**\n * className을 병합합니다\n */\nfunction mergeClassName(\n slotClassName?: string,\n childClassName?: string\n): string | undefined {\n if (!slotClassName && !childClassName) return undefined;\n return clsx(slotClassName, childClassName);\n}\n\n/**\n * style을 병합합니다\n */\nfunction mergeStyle(\n slotStyle?: React.CSSProperties,\n childStyle?: React.CSSProperties\n): React.CSSProperties | undefined {\n if (!slotStyle && !childStyle) return undefined;\n return { ...slotStyle, ...childStyle };\n}\n\n/**\n * props를 병합합니다 (이벤트 핸들러, className, style 등)\n */\nfunction mergeProps(\n slotProps: Record<string, unknown>,\n childProps: Record<string, unknown>\n): Record<string, unknown> {\n const mergedProps: Record<string, unknown> = { ...slotProps };\n\n for (const propName in childProps) {\n const slotValue = slotProps[propName];\n const childValue = childProps[propName];\n\n // 이벤트 핸들러 병합 (부모(slot) → 자식 순서)\n if (/^on[A-Z]/.test(propName)) {\n if (slotValue && childValue) {\n mergedProps[propName] = composeEventHandlers(\n slotValue as (event: unknown) => void,\n childValue as (event: unknown) => void\n );\n } else {\n mergedProps[propName] = childValue || slotValue;\n }\n }\n // className 병합\n else if (propName === \"className\") {\n mergedProps[propName] = mergeClassName(\n slotValue as string | undefined,\n childValue as string | undefined\n );\n }\n // style 병합\n else if (propName === \"style\") {\n mergedProps[propName] = mergeStyle(\n slotValue as React.CSSProperties | undefined,\n childValue as React.CSSProperties | undefined\n );\n }\n // 그 외: 자식 값 우선\n else {\n mergedProps[propName] = childValue !== undefined ? childValue : slotValue;\n }\n }\n\n return mergedProps;\n}\n\n/**\n * 유효한 단일 React 요소인지 확인\n */\nfunction isSlottable(child: React.ReactNode): child is React.ReactElement {\n return React.isValidElement(child);\n}\n\n/**\n * Slot 컴포넌트\n *\n * 자식 요소에 부모의 props를 주입합니다.\n * asChild 패턴을 구현할 때 사용합니다.\n */\nconst Slot = React.forwardRef<HTMLElement, SlotProps>(\n ({ children, ...slotProps }, forwardedRef) => {\n const childArray = React.Children.toArray(children);\n\n // 유효한 단일 자식이 있는지 확인\n if (childArray.length !== 1) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\n \"[Slot] asChild는 정확히 하나의 자식 요소가 필요합니다.\"\n );\n }\n return null;\n }\n\n const child = childArray[0];\n\n if (!isSlottable(child)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[Slot] 자식은 유효한 React 요소여야 합니다.\");\n }\n return null;\n }\n\n // 자식 요소의 props와 ref 추출\n const childProps = child.props as Record<string, unknown>;\n const childRef = (child as unknown as { ref?: React.Ref<HTMLElement> }).ref;\n\n // props와 ref 병합\n const mergedProps = mergeProps(slotProps, childProps);\n const mergedRef = composeRefs(forwardedRef, childRef);\n\n return React.cloneElement(child, {\n ...mergedProps,\n ref: mergedRef,\n } as React.Attributes);\n }\n);\n\nSlot.displayName = \"Slot\";\n\nexport { Slot, composeRefs, mergeProps };\nexport type { SlotProps };\n","/**\n * HUA UI 컴포넌트 스타일 팩토리\n * 각 컴포넌트별 스타일 생성 함수\n */\n\nimport { merge } from \"../../utils\";\nimport type { Theme } from \"./theme\";\nimport { getThemeColorClassWithDark } from \"./theme\";\nimport { createRoundedStyles, createShadowStyles, createHoverStyles } from \"../variants\";\n\n/**\n * Button Variant 타입\n */\nexport type ButtonVariant =\n | \"default\"\n | \"destructive\"\n | \"outline\"\n | \"secondary\"\n | \"ghost\"\n | \"link\"\n | \"gradient\"\n | \"neon\"\n | \"glass\";\n\n/**\n * Button Size 타입\n */\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"icon\";\n\n/**\n * Button Rounded 타입\n */\nexport type ButtonRounded = \"sm\" | \"md\" | \"lg\" | \"full\";\n\n/**\n * Button Shadow 타입\n */\nexport type ButtonShadow = \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\n/**\n * Button Hover 타입\n * \"springy\"가 HUA-UI 시그니처 (공 튕기듯 미세한 반동)\n */\nexport type ButtonHover = \"springy\" | \"scale\" | \"glow\" | \"slide\" | \"none\";\n\n/**\n * Branding 색상 인터페이스\n */\nexport interface BrandingColors {\n primary?: string;\n secondary?: string;\n accent?: string;\n}\n\n/**\n * Button 스타일 옵션\n */\nexport interface ButtonStyleOptions {\n variant: ButtonVariant;\n size: ButtonSize;\n rounded?: ButtonRounded;\n shadow?: ButtonShadow;\n hover?: ButtonHover;\n theme: Theme;\n branding?: BrandingColors;\n reducedMotion?: boolean;\n}\n\n/**\n * Button 스타일 결과\n */\nexport interface ButtonStyles {\n base: string;\n variant: string;\n size: string;\n rounded: string;\n shadow: string;\n hover: string;\n focus: string;\n}\n\n/**\n * Button Variant 스타일 생성\n * \n * @param variant - Button variant\n * @param theme - 테마\n * @param branding - Branding 색상 (선택사항)\n * @returns Variant 클래스 문자열\n */\nfunction createButtonVariantStyle(\n variant: ButtonVariant,\n _theme: Theme,\n branding?: BrandingColors\n): string {\n // Branding이 있으면 CSS 변수 사용\n if (branding) {\n switch (variant) {\n case \"default\":\n if (branding.primary) {\n return \"bg-[var(--color-primary)] text-white border-[var(--color-primary)] hover:opacity-90\";\n }\n break;\n case \"secondary\":\n if (branding.secondary) {\n return \"bg-[var(--color-secondary)] text-white border-[var(--color-secondary)] hover:opacity-90\";\n }\n break;\n case \"outline\":\n if (branding.accent) {\n return \"border-[var(--color-accent)] text-[var(--color-accent)] bg-transparent hover:bg-[var(--color-accent)]/10\";\n }\n break;\n }\n }\n\n // HUA UI 기본 색상: CSS 변수 arbitrary value 사용\n // @theme 없이도 동작 - HuaUxLayout에서 CSS 변수 자동 주입\n switch (variant) {\n case \"default\":\n // 프라이머리 (CSS 변수 - arbitrary value)\n return \"bg-[var(--color-primary)] text-[var(--color-primary-foreground)] hover:opacity-90\";\n\n case \"destructive\":\n return \"bg-[var(--color-destructive)] text-[var(--color-destructive-foreground)] hover:opacity-90\";\n\n case \"outline\":\n return \"border-2 border-[var(--color-border)] bg-transparent text-[var(--color-foreground)] hover:bg-[var(--color-accent)] hover:text-[var(--color-accent-foreground)]\";\n\n case \"secondary\":\n return \"bg-[var(--color-secondary)] text-[var(--color-secondary-foreground)] hover:opacity-80\";\n\n case \"ghost\":\n return \"bg-transparent text-[var(--color-foreground)] hover:bg-[var(--color-accent)] hover:text-[var(--color-accent-foreground)]\";\n\n case \"link\":\n return \"bg-transparent text-[var(--color-primary)] underline hover:opacity-80\";\n\n case \"gradient\":\n // 그라데이션은 직접 색상 유지 (CSS 변수 그라데이션 지원 어려움)\n return \"bg-gradient-to-r from-teal-500 to-cyan-500 text-white hover:shadow-lg hover:from-teal-600 hover:to-cyan-600\";\n\n case \"neon\":\n // 네온은 직접 색상 유지 (특수 효과)\n return \"bg-slate-900 dark:bg-slate-950 text-teal-400 border border-teal-500/50 shadow-lg shadow-teal-500/20 hover:shadow-teal-500/40 hover:border-teal-400\";\n\n case \"glass\":\n // glass는 직접 색상 사용 (opacity modifier가 arbitrary value에서 안 됨)\n return \"bg-white/50 dark:bg-slate-900/50 backdrop-blur-md border border-slate-200/50 dark:border-slate-700/50 text-slate-900 dark:text-slate-100 hover:bg-white/70 dark:hover:bg-slate-900/70\";\n\n default:\n return \"\";\n }\n}\n\n/**\n * Button Size 스타일 생성\n * \n * @param size - Button size\n * @returns Size 클래스 문자열\n */\nfunction createButtonSizeStyle(size: ButtonSize): string {\n // 버튼 패딩 비율: X:Y = 2:1 ~ 3:1, 4px 배수 기준\n const sizeMap: Record<ButtonSize, string> = {\n sm: \"h-8 px-4 py-2 text-sm\", // 16:8 = 2:1\n md: \"h-10 px-6 py-2 text-base\", // 24:8 = 3:1\n lg: \"h-12 px-8 py-3 text-lg\", // 32:12 = 2.7:1\n xl: \"h-14 px-10 py-4 text-xl\", // 40:16 = 2.5:1\n icon: \"h-10 w-10 p-0\",\n };\n\n return sizeMap[size];\n}\n\n/**\n * Button Focus 스타일 생성\n *\n * @param variant - Button variant\n * @param _theme - 테마 (CSS 변수 기반으로 미사용)\n * @returns Focus 클래스 문자열\n */\nfunction createButtonFocusStyle(\n variant: ButtonVariant,\n _theme: Theme\n): string {\n const baseFocus = \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--color-background)]\";\n\n switch (variant) {\n case \"destructive\":\n return \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-destructive)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--color-background)]\";\n\n case \"outline\":\n case \"ghost\":\n case \"link\":\n return \"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--color-ring)] focus-visible:ring-offset-0\";\n\n default:\n return baseFocus;\n }\n}\n\n/**\n * Button 스타일 생성 함수\n * \n * @param options - Button 스타일 옵션\n * @returns Button 스타일 객체\n * \n * @example\n * ```tsx\n * const styles = createButtonStyles({\n * variant: 'default',\n * size: 'md',\n * theme: 'light',\n * branding: { primary: '#0066ff' }\n * });\n * \n * <button className={merge(styles.base, styles.variant, styles.size)}>\n * Click me\n * </button>\n * ```\n */\nexport function createButtonStyles(\n options: ButtonStyleOptions\n): ButtonStyles {\n const {\n variant,\n size,\n rounded = \"md\",\n shadow = \"md\",\n hover = \"springy\", // HUA-UI 시그니처: 미세한 스프링 반동\n theme,\n branding,\n reducedMotion = false,\n } = options;\n\n return {\n base: merge(\n \"inline-flex items-center justify-center whitespace-nowrap font-medium transition-all duration-200\",\n \"disabled:pointer-events-none disabled:opacity-50 min-w-fit\"\n ),\n variant: createButtonVariantStyle(variant, theme, branding),\n size: createButtonSizeStyle(size),\n rounded: createRoundedStyles(rounded),\n shadow: createShadowStyles(shadow),\n hover: createHoverStyles(hover, reducedMotion),\n focus: createButtonFocusStyle(variant, theme),\n };\n}\n\n/**\n * Card Variant 타입\n */\nexport type CardVariant = \"default\" | \"outline\" | \"elevated\";\n\n/**\n * Card 스타일 옵션\n */\nexport interface CardStyleOptions {\n variant: CardVariant;\n theme: Theme;\n branding?: BrandingColors;\n}\n\n/**\n * Card 스타일 결과\n */\nexport interface CardStyles {\n base: string;\n variant: string;\n}\n\n/**\n * Card Variant 스타일 생성\n * \n * @param variant - Card variant\n * @param theme - 테마\n * @param branding - Branding 색상 (선택사항)\n * @returns Variant 클래스 문자열\n */\nfunction createCardVariantStyle(\n variant: CardVariant,\n theme: Theme,\n branding?: BrandingColors\n): string {\n // Branding이 있으면 CSS 변수 사용\n if (branding) {\n switch (variant) {\n case \"outline\":\n if (branding.accent) {\n return \"border-[var(--color-accent)]\";\n }\n break;\n case \"default\":\n if (branding.primary) {\n return \"bg-[var(--color-primary)]/5\";\n }\n break;\n }\n }\n\n // 기본 스타일 (토큰 기반)\n switch (variant) {\n case \"default\":\n return getThemeColorClassWithDark(\"background\", \"bg-\") + \" \" +\n getThemeColorClassWithDark(\"border\", \"border-\") + \" border\";\n\n case \"outline\":\n return \"bg-transparent border-2 \" + getThemeColorClassWithDark(\"border\", \"border-\");\n\n case \"elevated\":\n return getThemeColorClassWithDark(\"background\", \"bg-\") + \" \" +\n getThemeColorClassWithDark(\"border\", \"border-\") + \" border shadow-lg\";\n\n default:\n return \"\";\n }\n}\n\n/**\n * Card 스타일 생성 함수\n * \n * @param options - Card 스타일 옵션\n * @returns Card 스타일 객체\n */\nexport function createCardStyles(\n options: CardStyleOptions\n): CardStyles {\n const { variant, theme, branding } = options;\n\n return {\n base: \"rounded-lg p-6\",\n variant: createCardVariantStyle(variant, theme, branding),\n };\n}\n","\"use client\";\n\nimport React from \"react\";\nimport { merge } from \"../lib/utils\";\nimport { createButtonStyles } from \"../lib/styles/system/components\";\nimport { useTheme } from \"./ThemeProvider\";\nimport type { Theme } from \"../lib/styles/system/theme\";\nimport { Slot } from \"../lib/Slot\";\n\n/**\n * 버튼 스타일 변형 / Button style variant\n * @typedef {\"default\" | \"destructive\" | \"outline\" | \"secondary\" | \"ghost\" | \"link\" | \"gradient\" | \"neon\" | \"glass\"} Variant\n */\ntype Variant =\n | \"default\" | \"destructive\" | \"outline\" | \"secondary\"\n | \"ghost\" | \"link\" | \"gradient\" | \"neon\" | \"glass\";\n\n/**\n * 버튼 크기 / Button size\n * @typedef {\"sm\" | \"md\" | \"lg\" | \"xl\" | \"icon\"} Size\n */\ntype Size = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"icon\";\n\n/**\n * 버튼 모서리 둥글기 / Button border radius\n * @typedef {\"sm\" | \"md\" | \"lg\" | \"full\"} Rounded\n */\ntype Rounded = \"sm\" | \"md\" | \"lg\" | \"full\";\n\n/**\n * 버튼 그림자 / Button shadow\n * @typedef {\"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\"} Shadow\n */\ntype Shadow = \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\n/**\n * 버튼 호버 효과 / Button hover effect\n * \"springy\"가 HUA-UI 시그니처 - 공 튕기듯 미세한 반동\n * @typedef {\"springy\" | \"scale\" | \"glow\" | \"slide\" | \"none\"} Hover\n */\ntype Hover = \"springy\" | \"scale\" | \"glow\" | \"slide\" | \"none\";\n\n/**\n * 그라디언트 색상 이름 / Gradient color name\n * @typedef {\"blue\" | \"purple\" | \"green\" | \"orange\" | \"pink\" | \"custom\"} GradientName\n */\ntype GradientName = \"blue\" | \"purple\" | \"green\" | \"orange\" | \"pink\" | \"custom\";\n\n/**\n * Button 컴포넌트의 공통 props / Common props for Button component\n * @typedef {Object} CommonProps\n * @property {Variant} [variant=\"default\"] - 버튼 스타일 변형 / Button style variant\n * @property {Size} [size=\"md\"] - 버튼 크기 / Button size\n * @property {boolean} [loading=false] - 로딩 상태 (스피너 표시) / Loading state (shows spinner)\n * @property {React.ReactNode} [icon] - 아이콘 요소 / Icon element\n * @property {\"left\" | \"right\"} [iconPosition=\"left\"] - 아이콘 위치 / Icon position\n * @property {GradientName} [gradient=\"blue\"] - 그라디언트 색상 (variant=\"gradient\"일 때) / Gradient color (when variant=\"gradient\")\n * @property {string} [customGradient] - 커스텀 그라디언트 클래스 (variant=\"gradient\"일 때) / Custom gradient class (when variant=\"gradient\")\n * @property {Rounded} [rounded=\"md\"] - 모서리 둥글기 / Border radius\n * @property {Shadow} [shadow=\"md\"] - 그림자 크기 / Shadow size\n * @property {Hover} [hover=\"springy\"] - 호버 효과 (HUA-UI 시그니처) / Hover effect (HUA-UI signature)\n * @property {boolean} [fullWidth=false] - 전체 너비 사용 / Use full width\n * @property {boolean} [iconOnly=false] - 아이콘만 표시 (aria-label 필수) / Icon only (aria-label required)\n * @property {string} [aria-label] - 접근성을 위한 레이블 (iconOnly일 때 필수) / Accessibility label (required when iconOnly)\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n * @property {boolean} [disabled=false] - 비활성화 상태 / Disabled state\n */\ntype CommonProps = {\n variant?: Variant;\n size?: Size;\n loading?: boolean;\n icon?: React.ReactNode;\n iconPosition?: \"left\" | \"right\";\n gradient?: GradientName;\n customGradient?: string;\n rounded?: Rounded;\n shadow?: Shadow;\n hover?: Hover;\n fullWidth?: boolean;\n iconOnly?: boolean;\n \"aria-label\"?: string;\n className?: string;\n disabled?: boolean;\n asChild?: boolean;\n};\n\ntype AnchorProps = CommonProps &\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"className\"> & {\n href: string;\n };\n\ntype NativeButtonProps = CommonProps &\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"className\" | \"type\"> & {\n href?: undefined;\n };\n\n/**\n * Button 컴포넌트의 props 타입 / Button component props type\n * href가 제공되면 앵커 태그로, 그렇지 않으면 버튼 태그로 렌더링됩니다.\n * Renders as anchor tag if href is provided, otherwise as button tag.\n * @typedef {AnchorProps | NativeButtonProps} ButtonProps\n */\nexport type ButtonProps = AnchorProps | NativeButtonProps;\n\ntype AnchorOrButton = HTMLAnchorElement | HTMLButtonElement;\n\nconst isBrowser = typeof window !== \"undefined\";\nfunction useReducedMotion() {\n const [reduce, setReduce] = React.useState(false);\n React.useEffect(() => {\n if (!isBrowser || !(\"matchMedia\" in window)) return;\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n const onChange = () => setReduce(!!mq.matches);\n onChange();\n mq.addEventListener?.(\"change\", onChange);\n return () => mq.removeEventListener?.(\"change\", onChange);\n }, []);\n return reduce;\n}\n\n/**\n * Button 컴포넌트 / Button component\n * \n * 다양한 스타일과 크기를 지원하는 범용 버튼 컴포넌트입니다.\n * href prop을 제공하면 앵커 태그로, 그렇지 않으면 버튼 태그로 렌더링됩니다.\n * \n * Universal button component supporting various styles and sizes.\n * Renders as anchor tag if href prop is provided, otherwise as button tag.\n * \n * @component\n * @example\n * // 기본 버튼 / Basic button\n * <Button onClick={() => console.log('클릭')}>클릭하세요</Button>\n * \n * @example\n * // 다양한 변형 / Various variants\n * <Button variant=\"destructive\" size=\"lg\">삭제</Button>\n * <Button variant=\"outline\" size=\"sm\">취소</Button>\n * <Button variant=\"ghost\">보기</Button>\n * \n * @example\n * // 아이콘과 함께 사용 / With icon\n * <Button icon={<Icon name=\"download\" />} iconPosition=\"left\">\n * 다운로드\n * </Button>\n * \n * @example\n * // 로딩 상태 / Loading state\n * <Button loading disabled>저장 중...</Button>\n * \n * @example\n * // 링크 버튼 / Link button\n * <Button href=\"/about\" variant=\"link\">자세히 보기</Button>\n * \n * @example\n * // 아이콘만 표시 (aria-label 필수) / Icon only (aria-label required)\n * <Button iconOnly aria-label=\"닫기\" icon={<Icon name=\"close\" />} />\n * \n * @param {ButtonProps} props - Button 컴포넌트의 props / Button component props\n * @param {React.Ref<HTMLAnchorElement | HTMLButtonElement>} ref - ref 객체 / ref object\n * @returns {JSX.Element} Button 컴포넌트 / Button component\n */\nconst ButtonInner = React.forwardRef<AnchorOrButton, ButtonProps>(function ButtonInner(\n {\n variant = \"default\",\n size = \"md\",\n loading = false,\n icon,\n iconPosition = \"left\",\n gradient = \"blue\",\n customGradient,\n rounded = \"md\",\n shadow = \"md\",\n hover = \"springy\",\n fullWidth,\n iconOnly,\n className,\n children,\n disabled,\n asChild = false,\n ...rest\n },\n ref\n) {\n const reduced = useReducedMotion();\n \n // ThemeProvider에서 테마 가져오기 (없으면 기본값 'light' 사용)\n let resolvedTheme: Theme = \"light\";\n try {\n const themeContext = useTheme();\n resolvedTheme = themeContext.resolvedTheme as Theme;\n } catch {\n // ThemeProvider가 없으면 기본값 사용\n resolvedTheme = \"light\";\n }\n\n // 통합 스타일 시스템 사용\n const styles = React.useMemo(() => {\n // gradient variant의 경우 customGradient 처리\n let gradientStyle = \"\";\n if (variant === \"gradient\" && customGradient) {\n gradientStyle = `bg-gradient-to-r ${customGradient}`;\n } else if (variant === \"gradient\") {\n gradientStyle = `bg-gradient-to-r ${getGradientClass(gradient)}`;\n }\n\n const buttonStyles = createButtonStyles({\n variant,\n size,\n rounded,\n shadow,\n hover,\n theme: resolvedTheme,\n reducedMotion: reduced,\n });\n\n // gradient variant는 별도 처리\n if (variant === \"gradient\") {\n return {\n ...buttonStyles,\n variant: gradientStyle + \" text-white hover:shadow-lg\",\n };\n }\n\n return buttonStyles;\n }, [variant, size, rounded, shadow, hover, resolvedTheme, reduced, gradient, customGradient]);\n\n const base = merge(\n styles.base,\n styles.focus,\n \"disabled:pointer-events-none disabled:opacity-50 min-w-fit\",\n fullWidth && \"w-full\",\n styles.variant,\n styles.size,\n styles.rounded,\n styles.shadow,\n styles.hover,\n className\n );\n\n const Spinner = (\n <span role=\"status\" aria-live=\"polite\" className=\"-ml-1 mr-2 inline-flex\">\n <svg className=\"animate-spin h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\" />\n </svg>\n <span className=\"sr-only\">로딩 중</span>\n </span>\n );\n\n const content = (\n <>\n {loading && Spinner}\n {!loading && icon && iconPosition === \"left\" && <span className=\"mr-2\">{icon}</span>}\n {children}\n {!loading && icon && iconPosition === \"right\" && <span className=\"ml-2\">{icon}</span>}\n </>\n );\n\n if (iconOnly && !(\"aria-label\" in rest) && process.env.NODE_ENV !== \"production\") {\n console.warn(\"[Button] iconOnly 사용 시 aria-label을 제공하세요.\");\n }\n\n // asChild 모드: Slot을 사용하여 자식 요소에 props 병합\n if (asChild) {\n const slotProps = {\n className: base,\n ref,\n disabled: disabled || loading,\n \"aria-busy\": loading || undefined,\n \"aria-disabled\": (disabled || loading) || undefined,\n ...rest,\n };\n return <Slot {...slotProps}>{children}</Slot>;\n }\n\n // 앵커 모드\n if (\"href\" in rest && rest.href) {\n const { onClick, target, rel, href, \"aria-label\": _ariaLabel, className: anchorClassName, ...anchorProps } = rest as AnchorProps;\n const isDisabled = !!disabled || loading;\n\n const handleAnchorClick: React.MouseEventHandler<HTMLAnchorElement> = (e) => {\n if (isDisabled) { e.preventDefault(); e.stopPropagation(); return; }\n onClick?.(e);\n };\n\n return (\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n href={href}\n className={merge(base, anchorClassName)}\n onClick={handleAnchorClick}\n aria-busy={loading || undefined}\n aria-disabled={isDisabled || undefined}\n tabIndex={isDisabled ? -1 : anchorProps.tabIndex}\n target={target}\n rel={target === \"_blank\" ? rel ?? \"noopener noreferrer\" : rel}\n {...anchorProps}\n >\n {content}\n </a>\n );\n }\n\n // 버튼 모드\n const { className: buttonClassName, ...btnProps } = rest as NativeButtonProps;\n const isDisabled = !!disabled || loading;\n return (\n <button\n ref={ref as React.Ref<HTMLButtonElement>}\n className={merge(base, buttonClassName)}\n type=\"button\" // 폼 기본 제출 방지\n disabled={isDisabled}\n aria-busy={loading || undefined}\n aria-disabled={isDisabled || undefined}\n {...btnProps}\n >\n {content}\n </button>\n );\n});\n\nButtonInner.displayName = \"Button\";\n\nexport const Button = ButtonInner;\n\nfunction getGradientClass(gradient: GradientName): string {\n const g: Record<Exclude<GradientName, \"custom\">, string> = {\n blue: \"from-teal-500 to-cyan-500\",\n purple: \"from-purple-500 to-pink-500\",\n green: \"from-green-500 to-emerald-500 dark:from-green-400 dark:to-emerald-400\",\n orange: \"from-orange-500 to-red-500 dark:from-orange-300 dark:to-red-300\",\n pink: \"from-pink-500 to-rose-500\",\n };\n return g[gradient as keyof typeof g] || g.blue;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import {a as a$1,b}from'./chunk-GOBSRBJ5.mjs';import {a}from'./chunk-UUHAXGMO.mjs';import f from'react';import {jsxs,jsx}from'react/jsx-runtime';var x=f.forwardRef(({className:c,title:m,description:h,children:v,prevPage:t,nextPage:r,breadcrumbItems:s=[{label:"Components",href:"/components"}],...u},p)=>jsxs("div",{className:"relative min-h-screen",children:[jsx("div",{className:"fixed right-4 top-4 z-50 hidden lg:block",children:jsx("div",{className:"flex flex-col space-y-4",children:t&&jsx("a",{href:t.href,className:"group p-3 bg-white/80 backdrop-blur-sm border border-slate-200 rounded-full shadow-lg hover:shadow-2xl hover:bg-white/90 active:scale-95 transition-all duration-200",title:`\uC774\uC804: ${t.title}`,children:jsx("svg",{className:"w-5 h-5 text-slate-600 group-hover:text-indigo-600 group-active:text-indigo-800 transition-colors",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 15l7-7 7 7"})})})})}),jsx("div",{className:"fixed right-4 bottom-4 z-50 hidden lg:block",children:jsx("div",{className:"flex flex-col space-y-4",children:r&&jsx("a",{href:r.href,className:"group p-3 bg-white/80 backdrop-blur-sm border border-slate-200 rounded-full shadow-lg hover:shadow-2xl hover:bg-white/90 active:scale-95 transition-all duration-200",title:`\uB2E4\uC74C: ${r.title}`,children:jsx("svg",{className:"w-5 h-5 text-slate-600 group-hover:text-indigo-600 group-active:text-indigo-800 transition-colors",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})})})}),jsx("div",{ref:p,className:a("container mx-auto px-4 py-8",c),...u,children:jsxs("div",{className:"max-w-4xl mx-auto",children:[jsx(a$1,{className:"mb-6",children:s.map((a,i)=>jsx(b,{href:a.href,isCurrent:i===s.length-1,children:a.label},i))}),jsxs("div",{className:"mb-8",children:[jsx("h1",{className:"text-4xl font-bold mb-4",children:m}),jsx("p",{className:"text-lg text-slate-600 dark:text-slate-400",children:h})]}),jsx("div",{className:"space-y-8",children:v}),jsx("div",{className:"mt-12 lg:hidden",children:jsxs("div",{className:"flex items-center justify-between py-4 border-t border-slate-200 dark:border-slate-700",children:[t&&jsxs("a",{href:t.href,className:"flex items-center text-sm text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-slate-100 transition-colors",children:[jsx("svg",{className:"w-4 h-4 mr-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 19l-7-7 7-7"})}),t.title]}),r&&jsxs("a",{href:r.href,className:"flex items-center text-sm text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-slate-100 transition-colors",children:[r.title,jsx("svg",{className:"w-4 h-4 ml-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})})]})]})})]})})]}));x.displayName="ComponentLayout";export{x as a};//# sourceMappingURL=chunk-3E7HN3VL.mjs.map
3
+ //# sourceMappingURL=chunk-3E7HN3VL.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ComponentLayout.tsx"],"names":["ComponentLayout","React","className","title","description","children","prevPage","nextPage","breadcrumbItems","props","ref","jsxs","jsx","merge","Breadcrumb","item","index","BreadcrumbItem"],"mappings":"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","file":"chunk-3E7HN3VL.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\nimport { Breadcrumb, BreadcrumbItem } from \"./Breadcrumb\"\n\n/**\n * ComponentLayout 컴포넌트의 props / ComponentLayout component props\n * @typedef {Object} ComponentLayoutProps\n * @property {string} title - 페이지 제목 / Page title\n * @property {string} description - 페이지 설명 / Page description\n * @property {React.ReactNode} children - 페이지 내용 / Page content\n * @property {Object} [prevPage] - 이전 페이지 정보 / Previous page information\n * @property {string} prevPage.title - 이전 페이지 제목 / Previous page title\n * @property {string} prevPage.href - 이전 페이지 링크 / Previous page link\n * @property {Object} [nextPage] - 다음 페이지 정보 / Next page information\n * @property {string} nextPage.title - 다음 페이지 제목 / Next page title\n * @property {string} nextPage.href - 다음 페이지 링크 / Next page link\n * @property {Array<Object>} [breadcrumbItems] - Breadcrumb 항목들 / Breadcrumb items\n * @property {string} breadcrumbItems[].label - Breadcrumb 라벨 / Breadcrumb label\n * @property {string} [breadcrumbItems[].href] - Breadcrumb 링크 / Breadcrumb link\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface ComponentLayoutProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string\n description: string\n children: React.ReactNode\n prevPage?: {\n title: string\n href: string\n }\n nextPage?: {\n title: string\n href: string\n }\n breadcrumbItems?: Array<{\n label: string\n href?: string\n }>\n}\n\n/**\n * ComponentLayout 컴포넌트 / ComponentLayout component\n * \n * 컴포넌트 문서 페이지 레이아웃을 제공하는 컴포넌트입니다.\n * 제목, 설명, Breadcrumb, 이전/다음 페이지 네비게이션을 포함합니다.\n * \n * Component that provides layout for component documentation pages.\n * Includes title, description, Breadcrumb, and previous/next page navigation.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <ComponentLayout\n * title=\"Button 컴포넌트\"\n * description=\"버튼 컴포넌트 사용법\"\n * >\n * <Button>예제</Button>\n * </ComponentLayout>\n * \n * @example\n * // 이전/다음 페이지 네비게이션 포함 / With previous/next page navigation\n * <ComponentLayout\n * title=\"Input 컴포넌트\"\n * description=\"입력 컴포넌트 사용법\"\n * prevPage={{ title: \"Button\", href: \"/components/button\" }}\n * nextPage={{ title: \"Select\", href: \"/components/select\" }}\n * >\n * <Input placeholder=\"입력하세요\" />\n * </ComponentLayout>\n * \n * @param {ComponentLayoutProps} props - ComponentLayout 컴포넌트의 props / ComponentLayout component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} ComponentLayout 컴포넌트 / ComponentLayout component\n */\nconst ComponentLayout = React.forwardRef<HTMLDivElement, ComponentLayoutProps>(\n ({ \n className, \n title, \n description, \n children, \n prevPage, \n nextPage,\n breadcrumbItems = [\n { label: \"Components\", href: \"/components\" }\n ],\n ...props \n }, ref) => {\n return (\n <div className=\"relative min-h-screen\">\n {/* 고정된 페이지 네비게이션 - 위쪽 */}\n <div className=\"fixed right-4 top-4 z-50 hidden lg:block\">\n <div className=\"flex flex-col space-y-4\">\n {prevPage && (\n <a\n href={prevPage.href}\n className=\"group p-3 bg-white/80 backdrop-blur-sm border border-slate-200 rounded-full shadow-lg hover:shadow-2xl hover:bg-white/90 active:scale-95 transition-all duration-200\"\n title={`이전: ${prevPage.title}`}\n >\n <svg \n className=\"w-5 h-5 text-slate-600 group-hover:text-indigo-600 group-active:text-indigo-800 transition-colors\" \n fill=\"none\" \n stroke=\"currentColor\" \n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 15l7-7 7 7\" />\n </svg>\n </a>\n )}\n </div>\n </div>\n\n {/* 고정된 페이지 네비게이션 - 아래쪽 */}\n <div className=\"fixed right-4 bottom-4 z-50 hidden lg:block\">\n <div className=\"flex flex-col space-y-4\">\n {nextPage && (\n <a\n href={nextPage.href}\n className=\"group p-3 bg-white/80 backdrop-blur-sm border border-slate-200 rounded-full shadow-lg hover:shadow-2xl hover:bg-white/90 active:scale-95 transition-all duration-200\"\n title={`다음: ${nextPage.title}`}\n >\n <svg \n className=\"w-5 h-5 text-slate-600 group-hover:text-indigo-600 group-active:text-indigo-800 transition-colors\" \n fill=\"none\" \n stroke=\"currentColor\" \n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n </a>\n )}\n </div>\n </div>\n\n {/* 메인 콘텐츠 */}\n <div\n ref={ref}\n className={merge(\"container mx-auto px-4 py-8\", className)}\n {...props}\n >\n <div className=\"max-w-4xl mx-auto\">\n {/* 브레드크럼 */}\n <Breadcrumb className=\"mb-6\">\n {breadcrumbItems.map((item, index) => (\n <BreadcrumbItem \n key={index}\n href={item.href}\n isCurrent={index === breadcrumbItems.length - 1}\n >\n {item.label}\n </BreadcrumbItem>\n ))}\n </Breadcrumb>\n\n {/* 페이지 헤더 */}\n <div className=\"mb-8\">\n <h1 className=\"text-4xl font-bold mb-4\">{title}</h1>\n <p className=\"text-lg text-slate-600 dark:text-slate-400\">\n {description}\n </p>\n </div>\n\n {/* 페이지 콘텐츠 */}\n <div className=\"space-y-8\">\n {children}\n </div>\n\n {/* 모바일 페이지 네비게이션 */}\n <div className=\"mt-12 lg:hidden\">\n <div className=\"flex items-center justify-between py-4 border-t border-slate-200 dark:border-slate-700\">\n {prevPage && (\n <a\n href={prevPage.href}\n className=\"flex items-center text-sm text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-slate-100 transition-colors\"\n >\n <svg className=\"w-4 h-4 mr-2\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M15 19l-7-7 7-7\" />\n </svg>\n {prevPage.title}\n </a>\n )}\n {nextPage && (\n <a\n href={nextPage.href}\n className=\"flex items-center text-sm text-slate-600 hover:text-slate-900 dark:text-slate-400 dark:hover:text-slate-100 transition-colors\"\n >\n {nextPage.title}\n <svg className=\"w-4 h-4 ml-2\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\n </svg>\n </a>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n }\n)\nComponentLayout.displayName = \"ComponentLayout\"\n\nexport { ComponentLayout } "]}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import {a as a$1}from'./chunk-UUHAXGMO.mjs';var L={50:"50",100:"100",200:"200",300:"300",400:"400",500:"500",600:"600",700:"700",800:"800",900:"900"};function a(e,r,t=""){return `${t}${e}-${L[r]}`}function d(e,r){return `${e} dark:${r}`}var l={default:{border:{light:200,dark:700},background:{light:50,dark:900,opacity:"50"}},outline:{border:{light:300,dark:600},background:"transparent",text:{light:600,dark:400}},elevated:{border:{light:200,dark:700},background:{light:"white",dark:"gray-800"},shadow:"lg"},icon:{background:{light:100,dark:900,opacity:"30"},text:{light:600,dark:400}},badge:{background:{light:50,dark:900,opacity:"30"},text:{light:700,dark:300}}},Q={from:500,to:600,border:{light:400,dark:500}};function R(e,r){var g,i,b,u,h,k,s,c,C,S,y,$,p,x,f;let t={default:(r==null?void 0:r.default)||l.default,gradient:(r==null?void 0:r.gradient)||Q,outline:(r==null?void 0:r.outline)||l.outline,elevated:(r==null?void 0:r.elevated)||l.elevated,icon:(r==null?void 0:r.icon)||l.icon,badge:(r==null?void 0:r.badge)||l.badge},v=(g=t.default)!=null&&g.border?d(`border-${a(e,t.default.border.light)}`,`border-${a(e,t.default.border.dark||t.default.border.light)}`):"",m=(i=t.default)!=null&&i.background?d(`bg-${a(e,t.default.background.light)}${t.default.background.opacity?`/${t.default.background.opacity}`:""}`,`bg-${a(e,t.default.background.dark||t.default.background.light)}${t.default.background.opacity?`/${t.default.background.opacity}`:""}`):"",w=a$1(v,m),B=(b=t.gradient)!=null&&b.from?`from-${a(e,t.gradient.from)}`:"",T=(u=t.gradient)!=null&&u.to?`to-${a(e,t.gradient.to)}`:"",M=(h=t.gradient)!=null&&h.border?d(`border-${a(e,t.gradient.border.light)}`,`border-${a(e,t.gradient.border.dark||t.gradient.border.light)}`):"",O=a$1("bg-gradient-to-br",B,T,M),P=(k=t.outline)!=null&&k.border?`border-2 ${d(`border-${a(e,t.outline.border.light)}`,`border-${a(e,t.outline.border.dark||t.outline.border.light)}`)}`:"",D=((s=t.outline)==null?void 0:s.background)||"bg-transparent",F=(c=t.outline)!=null&&c.text?d(`text-${a(e,t.outline.text.light)}`,`text-${a(e,t.outline.text.dark||t.outline.text.light)}`):"",J=a$1(P,D,F),K=(C=t.elevated)!=null&&C.border?d(`border-${a(e,t.elevated.border.light)}`,`border-${a(e,t.elevated.border.dark||t.elevated.border.light)}`):"",N=(S=t.elevated)!=null&&S.background?d(`bg-${t.elevated.background.light}`,`bg-${t.elevated.background.dark}`):"",j=(y=t.elevated)!=null&&y.shadow?`shadow-${t.elevated.shadow}`:"",q=a$1(K,N,j),z=($=t.icon)!=null&&$.background?d(`bg-${a(e,t.icon.background.light)}${t.icon.background.opacity?`/${t.icon.background.opacity}`:""}`,`bg-${a(e,t.icon.background.dark||t.icon.background.light)}${t.icon.background.opacity?`/${t.icon.background.opacity}`:""}`):"",A=(p=t.icon)!=null&&p.text?d(`text-${a(e,t.icon.text.light)}`,`text-${a(e,t.icon.text.dark||t.icon.text.light)}`):"",E=a$1(z,A),G=(x=t.badge)!=null&&x.background?d(`bg-${a(e,t.badge.background.light)}${t.badge.background.opacity?`/${t.badge.background.opacity}`:""}`,`bg-${a(e,t.badge.background.dark||t.badge.background.light)}${t.badge.background.opacity?`/${t.badge.background.opacity}`:""}`):"",H=(f=t.badge)!=null&&f.text?d(`text-${a(e,t.badge.text.light)}`,`text-${a(e,t.badge.text.dark||t.badge.text.light)}`):"",I=a$1(G,H);return {default:w,gradient:O,outline:J,elevated:q,icon:E,badge:I}}var n=new Map;function V(e,r){let t=`${e}-${JSON.stringify(r||{})}`;return n.has(t)||n.set(t,R(e,r)),n.get(t)}export{R as a,V as b};//# sourceMappingURL=chunk-62HQZHPY.mjs.map
3
+ //# sourceMappingURL=chunk-62HQZHPY.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/styles/colors.ts"],"names":["colorShades","colorClass","color","shade","prefix","withDarkMode","lightClass","darkClass","defaultColorConfig","gradientConfig","createColorStyles","config","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","finalConfig","defaultBorder","defaultBg","defaultStyle","merge","gradientFrom","gradientTo","gradientBorder","gradientStyle","outlineBorder","outlineBg","outlineText","outlineStyle","elevatedBorder","elevatedBg","elevatedShadow","elevatedStyle","iconBg","iconText","iconStyle","badgeBg","badgeText","badgeStyle","colorStylesCache","useColorStyles","cacheKey"],"mappings":"4CAYA,IAAMA,CAAAA,CAAc,CAClB,EAAA,CAAI,IAAA,CACJ,IAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CACL,IAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KAAA,CACL,IAAK,KAAA,CACL,GAAA,CAAK,MACL,GAAA,CAAK,KACP,EAOA,SAASC,CAAAA,CAAWC,EAAcC,CAAAA,CAAmBC,CAAAA,CAAiB,GAAY,CAChF,OAAO,GAAGA,CAAM,CAAA,EAAGF,CAAK,CAAA,CAAA,EAAIF,CAAAA,CAAYG,CAAK,CAAC,CAAA,CAChD,CAKA,SAASE,CAAAA,CAAaC,CAAAA,CAAoBC,CAAAA,CAA2B,CACnE,OAAO,GAAGD,CAAU,CAAA,MAAA,EAASC,CAAS,CAAA,CACxC,CAyDA,IAAMC,CAAAA,CAAyD,CAC7D,QAAS,CACP,MAAA,CAAQ,CAAE,KAAA,CAAO,GAAA,CAAK,KAAM,GAAI,CAAA,CAChC,WAAY,CAAE,KAAA,CAAO,EAAA,CAAI,IAAA,CAAM,GAAA,CAAK,OAAA,CAAS,IAAK,CACpD,CAAA,CACA,QAAS,CACP,MAAA,CAAQ,CAAE,KAAA,CAAO,GAAA,CAAK,KAAM,GAAI,CAAA,CAChC,WAAY,aAAA,CACZ,IAAA,CAAM,CAAE,KAAA,CAAO,GAAA,CAAK,KAAM,GAAI,CAChC,CAAA,CACA,QAAA,CAAU,CACR,MAAA,CAAQ,CAAE,KAAA,CAAO,GAAA,CAAK,KAAM,GAAI,CAAA,CAChC,WAAY,CAAE,KAAA,CAAO,QAAS,IAAA,CAAM,UAAW,EAC/C,MAAA,CAAQ,IACV,EACA,IAAA,CAAM,CACJ,WAAY,CAAE,KAAA,CAAO,IAAK,IAAA,CAAM,GAAA,CAAK,QAAS,IAAK,CAAA,CACnD,KAAM,CAAE,KAAA,CAAO,IAAK,IAAA,CAAM,GAAI,CAChC,CAAA,CACA,KAAA,CAAO,CACL,UAAA,CAAY,CAAE,MAAO,EAAA,CAAI,IAAA,CAAM,IAAK,OAAA,CAAS,IAAK,CAAA,CAClD,IAAA,CAAM,CAAE,KAAA,CAAO,IAAK,IAAA,CAAM,GAAI,CAChC,CACF,CAAA,CAKMC,EAA+C,CACnD,IAAA,CAAM,IACN,EAAA,CAAI,GAAA,CACJ,OAAQ,CAAE,KAAA,CAAO,IAAK,IAAA,CAAM,GAAI,CAClC,CAAA,CAeO,SAASC,CAAAA,CACdR,CAAAA,CACAS,CAAAA,CACa,CAlJf,IAAAC,CAAAA,CAAAC,CAAAA,CAAAC,EAAAC,CAAAA,CAAAC,CAAAA,CAAAC,EAAAC,CAAAA,CAAAC,CAAAA,CAAAC,EAAAC,CAAAA,CAAAC,CAAAA,CAAAC,EAAAC,CAAAA,CAAAC,CAAAA,CAAAC,EAmJE,IAAMC,CAAAA,CAAgC,CACpC,OAAA,CAAA,CAAShB,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAAQ,OAAA,GAAWH,CAAAA,CAAmB,QAC/C,QAAA,CAAA,CAAUG,CAAAA,EAAA,YAAAA,CAAAA,CAAQ,QAAA,GAAYF,EAC9B,OAAA,CAAA,CAASE,CAAAA,EAAA,YAAAA,CAAAA,CAAQ,OAAA,GAAWH,EAAmB,OAAA,CAC/C,QAAA,CAAA,CAAUG,GAAA,IAAA,CAAA,MAAA,CAAAA,CAAAA,CAAQ,WAAYH,CAAAA,CAAmB,QAAA,CACjD,MAAMG,CAAAA,EAAA,IAAA,CAAA,MAAA,CAAAA,EAAQ,IAAA,GAAQH,CAAAA,CAAmB,KACzC,KAAA,CAAA,CAAOG,CAAAA,EAAA,YAAAA,CAAAA,CAAQ,KAAA,GAASH,EAAmB,KAC7C,CAAA,CAGMoB,GAAgBhB,CAAAA,CAAAe,CAAAA,CAAY,UAAZ,IAAA,EAAAf,CAAAA,CAAqB,OACvCP,CAAAA,CACE,CAAA,OAAA,EAAUJ,CAAAA,CAAWC,CAAAA,CAAOyB,CAAAA,CAAY,OAAA,CAAQ,OAAO,KAAK,CAAC,GAC7D,CAAA,OAAA,EAAU1B,CAAAA,CAAWC,EAAOyB,CAAAA,CAAY,OAAA,CAAQ,OAAO,IAAA,EAAQA,CAAAA,CAAY,QAAQ,MAAA,CAAO,KAAK,CAAC,CAAA,CAClG,CAAA,CACA,GAEEE,CAAAA,CAAAA,CAAYhB,CAAAA,CAAAc,CAAAA,CAAY,OAAA,GAAZ,IAAA,EAAAd,CAAAA,CAAqB,WACnCR,CAAAA,CACE,CAAA,GAAA,EAAMJ,EAAWC,CAAAA,CAAOyB,CAAAA,CAAY,QAAQ,UAAA,CAAW,KAAK,CAAC,CAAA,EAAGA,CAAAA,CAAY,QAAQ,UAAA,CAAW,OAAA,CAAU,IAAIA,CAAAA,CAAY,OAAA,CAAQ,WAAW,OAAO,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CAC1J,CAAA,GAAA,EAAM1B,CAAAA,CAAWC,EAAOyB,CAAAA,CAAY,OAAA,CAAQ,WAAW,IAAA,EAAQA,CAAAA,CAAY,QAAQ,UAAA,CAAW,KAAK,CAAC,CAAA,EAAGA,CAAAA,CAAY,QAAQ,UAAA,CAAW,OAAA,CAAU,IAAIA,CAAAA,CAAY,OAAA,CAAQ,WAAW,OAAO,CAAA,CAAA,CAAK,EAAE,CAAA,CACnM,CAAA,CACA,GAEEG,CAAAA,CAAeC,GAAAA,CAAMH,EAAeC,CAAS,CAAA,CAG7CG,GAAelB,CAAAA,CAAAa,CAAAA,CAAY,WAAZ,IAAA,EAAAb,CAAAA,CAAsB,KACvC,CAAA,KAAA,EAAQb,CAAAA,CAAWC,EAAOyB,CAAAA,CAAY,QAAA,CAAS,IAAI,CAAC,CAAA,CAAA,CACpD,EAAA,CACEM,CAAAA,CAAAA,CAAalB,CAAAA,CAAAY,CAAAA,CAAY,WAAZ,IAAA,EAAAZ,CAAAA,CAAsB,GACrC,CAAA,GAAA,EAAMd,CAAAA,CAAWC,EAAOyB,CAAAA,CAAY,QAAA,CAAS,EAAE,CAAC,CAAA,CAAA,CAChD,GACEO,CAAAA,CAAAA,CAAiBlB,CAAAA,CAAAW,EAAY,QAAA,GAAZ,IAAA,EAAAX,EAAsB,MAAA,CACzCX,CAAAA,CACE,CAAA,OAAA,EAAUJ,CAAAA,CAAWC,CAAAA,CAAOyB,CAAAA,CAAY,SAAS,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA,CAC9D,CAAA,OAAA,EAAU1B,EAAWC,CAAAA,CAAOyB,CAAAA,CAAY,SAAS,MAAA,CAAO,IAAA,EAAQA,EAAY,QAAA,CAAS,MAAA,CAAO,KAAK,CAAC,CAAA,CACpG,EACA,EAAA,CAEEQ,CAAAA,CAAgBJ,GAAAA,CACpB,mBAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CACF,CAAA,CAGME,CAAAA,CAAAA,CAAgBnB,EAAAU,CAAAA,CAAY,OAAA,GAAZ,MAAAV,CAAAA,CAAqB,MAAA,CACvC,YAAYZ,CAAAA,CACV,CAAA,OAAA,EAAUJ,EAAWC,CAAAA,CAAOyB,CAAAA,CAAY,QAAQ,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA,CAC7D,CAAA,OAAA,EAAU1B,EAAWC,CAAAA,CAAOyB,CAAAA,CAAY,QAAQ,MAAA,CAAO,IAAA,EAAQA,EAAY,OAAA,CAAQ,MAAA,CAAO,KAAK,CAAC,CAAA,CAClG,CAAC,CAAA,CAAA,CACD,EAAA,CACEU,IAAYnB,CAAAA,CAAAS,CAAAA,CAAY,UAAZ,IAAA,CAAA,MAAA,CAAAT,CAAAA,CAAqB,aAAc,gBAAA,CAC/CoB,CAAAA,CAAAA,CAAcnB,CAAAA,CAAAQ,CAAAA,CAAY,OAAA,GAAZ,IAAA,EAAAR,EAAqB,IAAA,CACrCd,CAAAA,CACE,QAAQJ,CAAAA,CAAWC,CAAAA,CAAOyB,EAAY,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAC,CAAA,CAAA,CACzD,QAAQ1B,CAAAA,CAAWC,CAAAA,CAAOyB,EAAY,OAAA,CAAQ,IAAA,CAAK,MAAQA,CAAAA,CAAY,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAC,CAAA,CAC5F,EACA,EAAA,CAEEY,CAAAA,CAAeR,IAAMK,CAAAA,CAAeC,CAAAA,CAAWC,CAAW,CAAA,CAG1DE,CAAAA,CAAAA,CAAiBpB,EAAAO,CAAAA,CAAY,QAAA,GAAZ,MAAAP,CAAAA,CAAsB,MAAA,CACzCf,EACE,CAAA,OAAA,EAAUJ,CAAAA,CAAWC,EAAOyB,CAAAA,CAAY,QAAA,CAAS,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA,CAC9D,UAAU1B,CAAAA,CAAWC,CAAAA,CAAOyB,EAAY,QAAA,CAAS,MAAA,CAAO,MAAQA,CAAAA,CAAY,QAAA,CAAS,OAAO,KAAK,CAAC,EACpG,CAAA,CACA,EAAA,CACEc,GAAapB,CAAAA,CAAAM,CAAAA,CAAY,WAAZ,IAAA,EAAAN,CAAAA,CAAsB,WACrChB,CAAAA,CACE,CAAA,GAAA,EAAMsB,EAAY,QAAA,CAAS,UAAA,CAAW,KAAK,CAAA,CAAA,CAC3C,CAAA,GAAA,EAAMA,EAAY,QAAA,CAAS,UAAA,CAAW,IAAI,CAAA,CAC5C,CAAA,CACA,GACEe,CAAAA,CAAAA,CAAiBpB,CAAAA,CAAAK,EAAY,QAAA,GAAZ,IAAA,EAAAL,EAAsB,MAAA,CACzC,CAAA,OAAA,EAAUK,CAAAA,CAAY,QAAA,CAAS,MAAM,CAAA,CAAA,CACrC,GAEEgB,CAAAA,CAAgBZ,GAAAA,CAAMS,EAAgBC,CAAAA,CAAYC,CAAc,EAGhEE,CAAAA,CAAAA,CAASrB,CAAAA,CAAAI,EAAY,IAAA,GAAZ,IAAA,EAAAJ,EAAkB,UAAA,CAC7BlB,CAAAA,CACE,MAAMJ,CAAAA,CAAWC,CAAAA,CAAOyB,EAAY,IAAA,CAAK,UAAA,CAAW,KAAK,CAAC,CAAA,EAAGA,CAAAA,CAAY,KAAK,UAAA,CAAW,OAAA,CAAU,IAAIA,CAAAA,CAAY,IAAA,CAAK,WAAW,OAAO,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CACjJ,CAAA,GAAA,EAAM1B,EAAWC,CAAAA,CAAOyB,CAAAA,CAAY,KAAK,UAAA,CAAW,IAAA,EAAQA,EAAY,IAAA,CAAK,UAAA,CAAW,KAAK,CAAC,CAAA,EAAGA,CAAAA,CAAY,KAAK,UAAA,CAAW,OAAA,CAAU,IAAIA,CAAAA,CAAY,IAAA,CAAK,WAAW,OAAO,CAAA,CAAA,CAAK,EAAE,CAAA,CACvL,CAAA,CACA,GACEkB,CAAAA,CAAAA,CAAWrB,CAAAA,CAAAG,EAAY,IAAA,GAAZ,IAAA,EAAAH,EAAkB,IAAA,CAC/BnB,CAAAA,CACE,QAAQJ,CAAAA,CAAWC,CAAAA,CAAOyB,EAAY,IAAA,CAAK,IAAA,CAAK,KAAK,CAAC,CAAA,CAAA,CACtD,QAAQ1B,CAAAA,CAAWC,CAAAA,CAAOyB,EAAY,IAAA,CAAK,IAAA,CAAK,MAAQA,CAAAA,CAAY,IAAA,CAAK,KAAK,KAAK,CAAC,EACtF,CAAA,CACA,EAAA,CAEEmB,CAAAA,CAAYf,GAAAA,CAAMa,CAAAA,CAAQC,CAAQ,EAGlCE,CAAAA,CAAAA,CAAUtB,CAAAA,CAAAE,EAAY,KAAA,GAAZ,IAAA,EAAAF,EAAmB,UAAA,CAC/BpB,CAAAA,CACE,MAAMJ,CAAAA,CAAWC,CAAAA,CAAOyB,EAAY,KAAA,CAAM,UAAA,CAAW,KAAK,CAAC,CAAA,EAAGA,EAAY,KAAA,CAAM,UAAA,CAAW,OAAA,CAAU,CAAA,CAAA,EAAIA,CAAAA,CAAY,KAAA,CAAM,WAAW,OAAO,CAAA,CAAA,CAAK,EAAE,CAAA,CAAA,CACpJ,CAAA,GAAA,EAAM1B,EAAWC,CAAAA,CAAOyB,CAAAA,CAAY,MAAM,UAAA,CAAW,IAAA,EAAQA,EAAY,KAAA,CAAM,UAAA,CAAW,KAAK,CAAC,CAAA,EAAGA,EAAY,KAAA,CAAM,UAAA,CAAW,OAAA,CAAU,CAAA,CAAA,EAAIA,CAAAA,CAAY,KAAA,CAAM,WAAW,OAAO,CAAA,CAAA,CAAK,EAAE,CAAA,CAC3L,CAAA,CACA,GACEqB,CAAAA,CAAAA,CAAYtB,CAAAA,CAAAC,EAAY,KAAA,GAAZ,IAAA,EAAAD,EAAmB,IAAA,CACjCrB,CAAAA,CACE,QAAQJ,CAAAA,CAAWC,CAAAA,CAAOyB,EAAY,KAAA,CAAM,IAAA,CAAK,KAAK,CAAC,CAAA,CAAA,CACvD,QAAQ1B,CAAAA,CAAWC,CAAAA,CAAOyB,EAAY,KAAA,CAAM,IAAA,CAAK,MAAQA,CAAAA,CAAY,KAAA,CAAM,KAAK,KAAK,CAAC,EACxF,CAAA,CACA,EAAA,CAEEsB,EAAalB,GAAAA,CAAMgB,CAAAA,CAASC,CAAS,CAAA,CAE3C,OAAO,CACL,OAAA,CAASlB,CAAAA,CACT,QAAA,CAAUK,EACV,OAAA,CAASI,CAAAA,CACT,SAAUI,CAAAA,CACV,IAAA,CAAMG,EACN,KAAA,CAAOG,CACT,CACF,CAMA,IAAMC,EAAmB,IAAI,GAAA,CAStB,SAASC,CAAAA,CACdjD,CAAAA,CACAS,EACa,CACb,IAAMyC,CAAAA,CAAW,CAAA,EAAGlD,CAAK,CAAA,CAAA,EAAI,KAAK,SAAA,CAAUS,CAAAA,EAAU,EAAE,CAAC,GAEzD,OAAKuC,CAAAA,CAAiB,IAAIE,CAAQ,CAAA,EAChCF,EAAiB,GAAA,CAAIE,CAAAA,CAAU1C,EAAkBR,CAAAA,CAAOS,CAAM,CAAC,CAAA,CAG1DuC,CAAAA,CAAiB,GAAA,CAAIE,CAAQ,CACtC","file":"chunk-62HQZHPY.mjs","sourcesContent":["/**\n * HUA UI 공통 색상 시스템\n * 중앙화된 색상 팔레트와 스타일 생성 유틸리티\n */\n\nimport type { Color } from \"../types/common\";\nimport { merge } from \"../utils\";\n\n/**\n * Tailwind CSS 색상 클래스 매핑\n * 각 색상의 50-900 단계를 정의합니다.\n */\nconst colorShades = {\n 50: \"50\",\n 100: \"100\",\n 200: \"200\",\n 300: \"300\",\n 400: \"400\",\n 500: \"500\",\n 600: \"600\",\n 700: \"700\",\n 800: \"800\",\n 900: \"900\",\n} as const;\n\ntype ColorShade = keyof typeof colorShades;\n\n/**\n * 색상별 클래스 생성 헬퍼\n */\nfunction colorClass(color: Color, shade: ColorShade, prefix: string = \"\"): string {\n return `${prefix}${color}-${colorShades[shade]}`;\n}\n\n/**\n * 다크 모드 지원 클래스 생성\n */\nfunction withDarkMode(lightClass: string, darkClass: string): string {\n return `${lightClass} dark:${darkClass}`;\n}\n\n/**\n * 색상 스타일 설정 인터페이스\n */\nexport interface ColorStyleConfig {\n /** 기본 variant 스타일 */\n default?: {\n border?: { light: ColorShade; dark?: ColorShade };\n background?: { light: ColorShade; dark?: ColorShade; opacity?: string };\n };\n /** 그라데이션 variant 스타일 */\n gradient?: {\n from?: ColorShade;\n to?: ColorShade;\n border?: { light: ColorShade; dark?: ColorShade };\n };\n /** 아웃라인 variant 스타일 */\n outline?: {\n border?: { light: ColorShade; dark?: ColorShade };\n background?: string;\n text?: { light: ColorShade; dark?: ColorShade };\n };\n /** Elevated variant 스타일 */\n elevated?: {\n border?: { light: ColorShade; dark?: ColorShade };\n background?: { light: string; dark: string };\n shadow?: string;\n };\n /** 아이콘 스타일 */\n icon?: {\n background?: { light: ColorShade; dark?: ColorShade; opacity?: string };\n text?: { light: ColorShade; dark?: ColorShade };\n };\n /** 배지 스타일 */\n badge?: {\n background?: { light: ColorShade; dark?: ColorShade; opacity?: string };\n text?: { light: ColorShade; dark?: ColorShade };\n };\n}\n\n/**\n * 생성된 색상 스타일 인터페이스\n */\nexport interface ColorStyles {\n default: string;\n gradient: string;\n outline: string;\n elevated: string;\n icon: string;\n badge: string;\n}\n\n/**\n * 기본 색상 스타일 설정\n * 각 색상에 대한 기본 스타일 템플릿\n */\nconst defaultColorConfig: Omit<ColorStyleConfig, \"gradient\"> = {\n default: {\n border: { light: 200, dark: 700 },\n background: { light: 50, dark: 900, opacity: \"50\" },\n },\n outline: {\n border: { light: 300, dark: 600 },\n background: \"transparent\",\n text: { light: 600, dark: 400 },\n },\n elevated: {\n border: { light: 200, dark: 700 },\n background: { light: \"white\", dark: \"gray-800\" },\n shadow: \"lg\",\n },\n icon: {\n background: { light: 100, dark: 900, opacity: \"30\" },\n text: { light: 600, dark: 400 },\n },\n badge: {\n background: { light: 50, dark: 900, opacity: \"30\" },\n text: { light: 700, dark: 300 },\n },\n};\n\n/**\n * 그라데이션 스타일 설정\n */\nconst gradientConfig: ColorStyleConfig[\"gradient\"] = {\n from: 500,\n to: 600,\n border: { light: 400, dark: 500 },\n};\n\n/**\n * 색상 스타일 생성 함수\n * \n * @param color - 색상 이름\n * @param config - 커스텀 스타일 설정 (선택사항)\n * @returns 생성된 색상 스타일 객체\n * \n * @example\n * ```tsx\n * const styles = createColorStyles(\"blue\");\n * // styles.default, styles.gradient, styles.outline 등 사용 가능\n * ```\n */\nexport function createColorStyles(\n color: Color,\n config?: Partial<ColorStyleConfig>\n): ColorStyles {\n const finalConfig: ColorStyleConfig = {\n default: config?.default || defaultColorConfig.default,\n gradient: config?.gradient || gradientConfig,\n outline: config?.outline || defaultColorConfig.outline,\n elevated: config?.elevated || defaultColorConfig.elevated,\n icon: config?.icon || defaultColorConfig.icon,\n badge: config?.badge || defaultColorConfig.badge,\n };\n\n // Default variant\n const defaultBorder = finalConfig.default?.border\n ? withDarkMode(\n `border-${colorClass(color, finalConfig.default.border.light)}`,\n `border-${colorClass(color, finalConfig.default.border.dark || finalConfig.default.border.light)}`\n )\n : \"\";\n \n const defaultBg = finalConfig.default?.background\n ? withDarkMode(\n `bg-${colorClass(color, finalConfig.default.background.light)}${finalConfig.default.background.opacity ? `/${finalConfig.default.background.opacity}` : \"\"}`,\n `bg-${colorClass(color, finalConfig.default.background.dark || finalConfig.default.background.light)}${finalConfig.default.background.opacity ? `/${finalConfig.default.background.opacity}` : \"\"}`\n )\n : \"\";\n\n const defaultStyle = merge(defaultBorder, defaultBg);\n\n // Gradient variant\n const gradientFrom = finalConfig.gradient?.from\n ? `from-${colorClass(color, finalConfig.gradient.from)}`\n : \"\";\n const gradientTo = finalConfig.gradient?.to\n ? `to-${colorClass(color, finalConfig.gradient.to)}`\n : \"\";\n const gradientBorder = finalConfig.gradient?.border\n ? withDarkMode(\n `border-${colorClass(color, finalConfig.gradient.border.light)}`,\n `border-${colorClass(color, finalConfig.gradient.border.dark || finalConfig.gradient.border.light)}`\n )\n : \"\";\n \n const gradientStyle = merge(\n \"bg-gradient-to-br\",\n gradientFrom,\n gradientTo,\n gradientBorder\n );\n\n // Outline variant\n const outlineBorder = finalConfig.outline?.border\n ? `border-2 ${withDarkMode(\n `border-${colorClass(color, finalConfig.outline.border.light)}`,\n `border-${colorClass(color, finalConfig.outline.border.dark || finalConfig.outline.border.light)}`\n )}`\n : \"\";\n const outlineBg = finalConfig.outline?.background || \"bg-transparent\";\n const outlineText = finalConfig.outline?.text\n ? withDarkMode(\n `text-${colorClass(color, finalConfig.outline.text.light)}`,\n `text-${colorClass(color, finalConfig.outline.text.dark || finalConfig.outline.text.light)}`\n )\n : \"\";\n \n const outlineStyle = merge(outlineBorder, outlineBg, outlineText);\n\n // Elevated variant\n const elevatedBorder = finalConfig.elevated?.border\n ? withDarkMode(\n `border-${colorClass(color, finalConfig.elevated.border.light)}`,\n `border-${colorClass(color, finalConfig.elevated.border.dark || finalConfig.elevated.border.light)}`\n )\n : \"\";\n const elevatedBg = finalConfig.elevated?.background\n ? withDarkMode(\n `bg-${finalConfig.elevated.background.light}`,\n `bg-${finalConfig.elevated.background.dark}`\n )\n : \"\";\n const elevatedShadow = finalConfig.elevated?.shadow\n ? `shadow-${finalConfig.elevated.shadow}`\n : \"\";\n \n const elevatedStyle = merge(elevatedBorder, elevatedBg, elevatedShadow);\n\n // Icon style\n const iconBg = finalConfig.icon?.background\n ? withDarkMode(\n `bg-${colorClass(color, finalConfig.icon.background.light)}${finalConfig.icon.background.opacity ? `/${finalConfig.icon.background.opacity}` : \"\"}`,\n `bg-${colorClass(color, finalConfig.icon.background.dark || finalConfig.icon.background.light)}${finalConfig.icon.background.opacity ? `/${finalConfig.icon.background.opacity}` : \"\"}`\n )\n : \"\";\n const iconText = finalConfig.icon?.text\n ? withDarkMode(\n `text-${colorClass(color, finalConfig.icon.text.light)}`,\n `text-${colorClass(color, finalConfig.icon.text.dark || finalConfig.icon.text.light)}`\n )\n : \"\";\n \n const iconStyle = merge(iconBg, iconText);\n\n // Badge style\n const badgeBg = finalConfig.badge?.background\n ? withDarkMode(\n `bg-${colorClass(color, finalConfig.badge.background.light)}${finalConfig.badge.background.opacity ? `/${finalConfig.badge.background.opacity}` : \"\"}`,\n `bg-${colorClass(color, finalConfig.badge.background.dark || finalConfig.badge.background.light)}${finalConfig.badge.background.opacity ? `/${finalConfig.badge.background.opacity}` : \"\"}`\n )\n : \"\";\n const badgeText = finalConfig.badge?.text\n ? withDarkMode(\n `text-${colorClass(color, finalConfig.badge.text.light)}`,\n `text-${colorClass(color, finalConfig.badge.text.dark || finalConfig.badge.text.light)}`\n )\n : \"\";\n \n const badgeStyle = merge(badgeBg, badgeText);\n\n return {\n default: defaultStyle,\n gradient: gradientStyle,\n outline: outlineStyle,\n elevated: elevatedStyle,\n icon: iconStyle,\n badge: badgeStyle,\n };\n}\n\n/**\n * 색상 스타일 캐시\n * 동일한 색상과 설정에 대해 재사용하여 성능 최적화\n */\nconst colorStylesCache = new Map<string, ColorStyles>();\n\n/**\n * 메모이제이션된 색상 스타일 생성 함수\n * \n * @param color - 색상 이름\n * @param config - 커스텀 스타일 설정 (선택사항)\n * @returns 생성된 색상 스타일 객체\n */\nexport function useColorStyles(\n color: Color,\n config?: Partial<ColorStyleConfig>\n): ColorStyles {\n const cacheKey = `${color}-${JSON.stringify(config || {})}`;\n \n if (!colorStylesCache.has(cacheKey)) {\n colorStylesCache.set(cacheKey, createColorStyles(color, config));\n }\n \n return colorStylesCache.get(cacheKey)!;\n}\n\n"]}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import {a}from'./chunk-UUHAXGMO.mjs';import x,{createContext,useContext,useState,useCallback}from'react';import {jsxs,jsx}from'react/jsx-runtime';var f=createContext(void 0);function I(){let t=useContext(f);if(!t)throw new Error("useToast must be used within a ToastProvider");return t}var w=()=>{},k=()=>{},y=()=>{};function R(){let t=useContext(f);return t||{toasts:[],addToast:w,removeToast:k,clearToasts:y}}function S({children:t,maxToasts:n=5,position:a="top-right"}){let[r,s]=useState([]),i=useCallback(o=>{s(u=>u.filter(g=>g.id!==o));},[]),l=useCallback(o=>{let u=Math.random().toString(36).substr(2,9),g={...o,id:u};s(v=>[...v,g].slice(-n)),o.duration!==0&&setTimeout(()=>{i(u);},o.duration||5e3);},[n,i]),m=useCallback(()=>{s([]);},[]);return jsxs(f.Provider,{value:{toasts:r,addToast:l,removeToast:i,clearToasts:m},children:[t,jsx(C,{toasts:r,removeToast:i,position:a})]})}function C({toasts:t,removeToast:n,position:a$1}){let r={"top-right":"top-4 right-4","top-left":"top-4 left-4","bottom-right":"bottom-4 right-4","bottom-left":"bottom-4 left-4","top-center":"top-4 left-1/2 transform -translate-x-1/2","bottom-center":"bottom-4 left-1/2 transform -translate-x-1/2"};return t.length===0?null:jsx("div",{className:a("fixed z-50 space-y-3 max-w-sm",r[a$1]),children:t.map(s=>jsx(L,{toast:s,onRemove:n},s.id))})}function L({toast:t,onRemove:n}){let[a$1,r]=useState(false);x.useEffect(()=>{r(true);},[]);let s=()=>{r(false),setTimeout(()=>n(t.id),300);},i=o=>{switch(o){case "success":return "bg-[var(--toast-success-bg)] border-green-300 dark:border-green-700 text-green-800 dark:text-green-200 shadow-lg shadow-green-100/50 dark:shadow-none";case "error":return "bg-[var(--toast-error-bg)] border-red-300 dark:border-red-700 text-red-800 dark:text-red-200 shadow-lg shadow-red-100/50 dark:shadow-none";case "warning":return "bg-[var(--toast-warning-bg)] border-yellow-300 dark:border-yellow-700 text-yellow-800 dark:text-yellow-200 shadow-lg shadow-yellow-100/50 dark:shadow-none";case "info":return "bg-[var(--toast-info-bg)] border-indigo-300 dark:border-indigo-700 text-cyan-800 dark:text-cyan-200 shadow-lg shadow-indigo-100/50 dark:shadow-none"}},l=o=>{switch(o){case "success":return "text-green-500 dark:text-green-400";case "error":return "text-red-500 dark:text-red-400";case "warning":return "text-yellow-500 dark:text-yellow-400";case "info":return "text-cyan-500 dark:text-cyan-400"}},m=o=>{switch(o){case "success":return jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})});case "error":return jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})});case "warning":return jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z"})});case "info":return jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})}};return jsxs("div",{className:a("flex items-start p-4 rounded-xl border backdrop-blur-sm transition-all duration-300 transform",i(t.type),a$1?"translate-x-0 opacity-100 scale-100":"translate-x-full opacity-0 scale-95"),style:{animation:a$1?"slideInRight 0.3s cubic-bezier(0.16, 1, 0.3, 1)":void 0},children:[jsxs("div",{className:a("flex-shrink-0 mr-3",l(t.type)),children:[" ",m(t.type)]}),jsxs("div",{className:"flex-1 min-w-0",children:[t.title&&jsxs("h4",{className:"text-sm font-semibold mb-1",children:[" ",t.title]}),jsx("p",{className:"text-sm leading-relaxed",children:t.message}),t.action&&jsx("button",{onClick:t.action.onClick,className:"mt-3 text-sm font-medium underline hover:no-underline transition-all duration-200",children:t.action.label})]}),jsxs("div",{className:"flex-shrink-0 ml-4",children:[" ",jsx("button",{onClick:s,className:a("inline-flex rounded-md p-1.5 transition-colors duration-200 ease-in-out hover:bg-gray-100 dark:hover:bg-white/10 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2",l(t.type)),"aria-label":"\uB2EB\uAE30",children:jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]})}export{I as a,R as b,S as c};//# sourceMappingURL=chunk-63CU4PEU.mjs.map
3
+ //# sourceMappingURL=chunk-63CU4PEU.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Toast.tsx"],"names":["ToastContext","createContext","useToast","context","useContext","noopAddToast","noopRemoveToast","noopClearToasts","useToastSafe","ToastProvider","children","maxToasts","position","toasts","setToasts","useState","removeToast","useCallback","id","prev","toast","addToast","newToast","clearToasts","jsxs","jsx","ToastContainer","positionClasses","merge","ToastItem","onRemove","isVisible","setIsVisible","React","handleRemove","getToastStyles","type","getIconStyles","getToastIcon"],"mappings":"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","file":"chunk-63CU4PEU.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { createContext, useContext, useState, useCallback } from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Toast 메시지 타입 / Toast message type\n * @typedef {Object} Toast\n * @property {string} id - Toast 고유 ID / Toast unique ID\n * @property {\"success\" | \"error\" | \"warning\" | \"info\"} type - Toast 타입 / Toast type\n * @property {string} [title] - Toast 제목 / Toast title\n * @property {string} message - Toast 메시지 / Toast message\n * @property {number} [duration] - 표시 시간(ms), 0이면 자동 제거 안 함 / Display duration (ms), 0 means no auto-remove\n * @property {Object} [action] - 액션 버튼 / Action button\n * @property {string} action.label - 액션 버튼 레이블 / Action button label\n * @property {() => void} action.onClick - 액션 버튼 클릭 핸들러 / Action button click handler\n */\nexport interface Toast {\n id: string\n type: \"success\" | \"error\" | \"warning\" | \"info\"\n title?: string\n message: string\n duration?: number\n action?: {\n label: string\n onClick: () => void\n }\n}\n\n// Toast Context 타입\ninterface ToastContextType {\n toasts: Toast[]\n addToast: (toast: Omit<Toast, \"id\">) => void\n removeToast: (id: string) => void\n clearToasts: () => void\n}\n\n// Toast Context 생성\nconst ToastContext = createContext<ToastContextType | undefined>(undefined)\n\n/**\n * useToast Hook\n *\n * Toast를 추가, 제거, 초기화하는 훅입니다.\n * ToastProvider 내부에서만 사용 가능합니다.\n *\n * Hook for adding, removing, and clearing toasts.\n * Can only be used within ToastProvider.\n *\n * @example\n * const { addToast, removeToast, clearToasts } = useToast()\n *\n * addToast({\n * type: \"success\",\n * message: \"저장되었습니다\",\n * duration: 3000\n * })\n *\n * @returns {ToastContextType} Toast 컨텍스트 값 / Toast context value\n * @throws {Error} ToastProvider 외부에서 사용 시 에러 발생 / Error when used outside ToastProvider\n */\nexport function useToast(): ToastContextType {\n const context = useContext(ToastContext)\n if (!context) {\n throw new Error(\"useToast must be used within a ToastProvider\")\n }\n return context\n}\n\n// No-op functions for safe toast hook\nconst noopAddToast = () => {}\nconst noopRemoveToast = () => {}\nconst noopClearToasts = () => {}\n\n/**\n * useToastSafe Hook\n *\n * ToastProvider 없이도 안전하게 사용할 수 있는 useToast 훅입니다.\n * Provider가 없으면 no-op 함수를 반환합니다.\n *\n * Safe version of useToast that works without ToastProvider.\n * Returns no-op functions when used outside ToastProvider.\n *\n * @example\n * const { addToast } = useToastSafe()\n *\n * // 안전하게 호출 가능 - Provider 없으면 아무 일도 안 함\n * addToast({ type: \"success\", message: \"저장됨\" })\n *\n * @returns {ToastContextType} Toast 컨텍스트 값 또는 no-op 함수들\n */\nexport function useToastSafe(): ToastContextType {\n const context = useContext(ToastContext)\n if (!context) {\n return {\n toasts: [],\n addToast: noopAddToast,\n removeToast: noopRemoveToast,\n clearToasts: noopClearToasts,\n }\n }\n return context\n}\n\n/**\n * ToastProvider 컴포넌트의 props / ToastProvider component props\n * @typedef {Object} ToastProviderProps\n * @property {React.ReactNode} children - 자식 컴포넌트 / Child components\n * @property {number} [maxToasts=5] - 최대 Toast 개수 / Maximum number of toasts\n * @property {\"top-right\" | \"top-left\" | \"bottom-right\" | \"bottom-left\" | \"top-center\" | \"bottom-center\"} [position=\"top-right\"] - Toast 표시 위치 / Toast display position\n */\ninterface ToastProviderProps {\n children: React.ReactNode\n maxToasts?: number\n position?: \"top-right\" | \"top-left\" | \"bottom-right\" | \"bottom-left\" | \"top-center\" | \"bottom-center\"\n}\n\n/**\n * ToastProvider 컴포넌트 / ToastProvider component\n * \n * Toast 시스템의 컨텍스트를 제공하는 Provider 컴포넌트입니다.\n * 앱의 루트 레벨에서 사용하여 전역 Toast 기능을 활성화합니다.\n * \n * Provider component that provides context for the Toast system.\n * Use at the root level of your app to enable global Toast functionality.\n * \n * @component\n * @example\n * // App.tsx\n * <ToastProvider position=\"top-center\" maxToasts={3}>\n * <App />\n * </ToastProvider>\n * \n * @example\n * // 컴포넌트에서 사용 / Usage in component\n * const { addToast } = useToast()\n * \n * const handleSave = () => {\n * addToast({\n * type: \"success\",\n * message: \"저장되었습니다\",\n * title: \"성공\"\n * })\n * }\n * \n * @param {ToastProviderProps} props - ToastProvider 컴포넌트의 props / ToastProvider component props\n * @returns {JSX.Element} ToastProvider 컴포넌트 / ToastProvider component\n * \n * @todo 접근성 개선: ToastItem에 role=\"alert\" 또는 role=\"status\" 추가 필요 / Accessibility: Add role=\"alert\" or role=\"status\" to ToastItem\n * @todo 접근성 개선: aria-live=\"polite\" 또는 aria-live=\"assertive\" 추가 필요 / Accessibility: Add aria-live=\"polite\" or aria-live=\"assertive\"\n */\nexport function ToastProvider({\n children,\n maxToasts = 5,\n position = \"top-right\"\n}: ToastProviderProps) {\n const [toasts, setToasts] = useState<Toast[]>([])\n\n const removeToast = useCallback((id: string) => {\n setToasts(prev => prev.filter(toast => toast.id !== id))\n }, [])\n\n const addToast = useCallback((toast: Omit<Toast, \"id\">) => {\n const id = Math.random().toString(36).substr(2, 9)\n const newToast: Toast = { ...toast, id }\n\n setToasts(prev => {\n const updatedToasts = [...prev, newToast]\n return updatedToasts.slice(-maxToasts) // 최대 개수 제한\n })\n\n // 자동 제거\n if (toast.duration !== 0) {\n setTimeout(() => {\n removeToast(id)\n }, toast.duration || 5000)\n }\n }, [maxToasts, removeToast])\n\n const clearToasts = useCallback(() => {\n setToasts([])\n }, [])\n\n return (\n <ToastContext.Provider value={{ toasts, addToast, removeToast, clearToasts }}>\n {children}\n <ToastContainer toasts={toasts} removeToast={removeToast} position={position} />\n </ToastContext.Provider>\n )\n}\n\n// Toast Container Props\ninterface ToastContainerProps {\n toasts: Toast[]\n removeToast: (id: string) => void\n position: string\n}\n\n// Toast Container\nfunction ToastContainer({ toasts, removeToast, position }: ToastContainerProps) {\n const positionClasses = {\n \"top-right\": \"top-4 right-4\",\n \"top-left\": \"top-4 left-4\",\n \"bottom-right\": \"bottom-4 right-4\",\n \"bottom-left\": \"bottom-4 left-4\",\n \"top-center\": \"top-4 left-1/2 transform -translate-x-1/2\",\n \"bottom-center\": \"bottom-4 left-1/2 transform -translate-x-1/2\"\n }\n\n if (toasts.length === 0) return null\n\n return (\n <div className={merge(\n \"fixed z-50 space-y-3 max-w-sm\", // 12px 간격\n positionClasses[position as keyof typeof positionClasses]\n )}>\n {toasts.map((toast) => (\n <ToastItem key={toast.id} toast={toast} onRemove={removeToast} />\n ))}\n </div>\n )\n}\n\n// Toast Item Props\ninterface ToastItemProps {\n toast: Toast\n onRemove: (id: string) => void\n}\n\n// Toast Item\nfunction ToastItem({ toast, onRemove }: ToastItemProps) {\n const [isVisible, setIsVisible] = useState(false)\n\n React.useEffect(() => {\n setIsVisible(true)\n }, [])\n\n const handleRemove = () => {\n setIsVisible(false)\n setTimeout(() => onRemove(toast.id), 300)\n }\n\n // CSS 변수 기반 배경색 (Tailwind v4 dark: variant + bg-color 충돌 우회)\n // 앱에서 --toast-*-bg 변수 정의 필요\n const getToastStyles = (type: Toast[\"type\"]) => {\n switch (type) {\n case \"success\":\n return \"bg-[var(--toast-success-bg)] border-green-300 dark:border-green-700 text-green-800 dark:text-green-200 shadow-lg shadow-green-100/50 dark:shadow-none\"\n case \"error\":\n return \"bg-[var(--toast-error-bg)] border-red-300 dark:border-red-700 text-red-800 dark:text-red-200 shadow-lg shadow-red-100/50 dark:shadow-none\"\n case \"warning\":\n return \"bg-[var(--toast-warning-bg)] border-yellow-300 dark:border-yellow-700 text-yellow-800 dark:text-yellow-200 shadow-lg shadow-yellow-100/50 dark:shadow-none\"\n case \"info\":\n return \"bg-[var(--toast-info-bg)] border-indigo-300 dark:border-indigo-700 text-cyan-800 dark:text-cyan-200 shadow-lg shadow-indigo-100/50 dark:shadow-none\"\n }\n }\n\n const getIconStyles = (type: Toast[\"type\"]) => {\n switch (type) {\n case \"success\":\n return \"text-green-500 dark:text-green-400\"\n case \"error\":\n return \"text-red-500 dark:text-red-400\"\n case \"warning\":\n return \"text-yellow-500 dark:text-yellow-400\"\n case \"info\":\n return \"text-cyan-500 dark:text-cyan-400\"\n }\n }\n\n const getToastIcon = (type: Toast[\"type\"]) => {\n switch (type) {\n case \"success\":\n return (\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" />\n </svg>\n )\n case \"error\":\n return (\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n )\n case \"warning\":\n return (\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L3.732 16.5c-.77.833.192 2.5 1.732 2.5z\" />\n </svg>\n )\n case \"info\":\n return (\n <svg className=\"w-5 h-5\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" />\n </svg>\n )\n }\n }\n\n return (\n <div\n className={merge(\n \"flex items-start p-4 rounded-xl border backdrop-blur-sm transition-all duration-300 transform\",\n getToastStyles(toast.type),\n isVisible\n ? \"translate-x-0 opacity-100 scale-100\"\n : \"translate-x-full opacity-0 scale-95\"\n )}\n style={{\n animation: isVisible ? \"slideInRight 0.3s cubic-bezier(0.16, 1, 0.3, 1)\" : undefined\n }}\n >\n {/* 아이콘 */}\n <div className={merge(\"flex-shrink-0 mr-3\", getIconStyles(toast.type))}> {/* 12px 여백 */}\n {getToastIcon(toast.type)}\n </div>\n\n {/* 내용 */}\n <div className=\"flex-1 min-w-0\">\n {toast.title && (\n <h4 className=\"text-sm font-semibold mb-1\"> {/* 4px 여백 */}\n {toast.title}\n </h4>\n )}\n <p className=\"text-sm leading-relaxed\">\n {toast.message}\n </p>\n\n {/* 액션 버튼 */}\n {toast.action && (\n <button\n onClick={toast.action.onClick}\n className=\"mt-3 text-sm font-medium underline hover:no-underline transition-all duration-200\" // 12px 여백\n >\n {toast.action.label}\n </button>\n )}\n </div>\n\n {/* 닫기 버튼 */}\n <div className=\"flex-shrink-0 ml-4\"> {/* 16px 여백 */}\n <button\n onClick={handleRemove}\n className={merge(\n \"inline-flex rounded-md p-1.5 transition-colors duration-200 ease-in-out hover:bg-gray-100 dark:hover:bg-white/10 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-offset-2\",\n getIconStyles(toast.type)\n )}\n aria-label=\"닫기\"\n >\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n </button>\n </div>\n </div>\n )\n}\n\n// 편의 함수들 (ToastProvider 내부에서만 사용 가능 - 스텁 함수)\nexport const showToast = (_toast: Omit<Toast, \"id\">) => {\n // ToastProvider 컨텍스트 필요\n}\n\nexport const showSuccessToast = (_message: string, _title?: string, _duration?: number) => {\n // ToastProvider 컨텍스트 필요\n}\n\nexport const showErrorToast = (_message: string, _title?: string, _duration?: number) => {\n // ToastProvider 컨텍스트 필요\n}\n\nexport const showWarningToast = (_message: string, _title?: string, _duration?: number) => {\n // ToastProvider 컨텍스트 필요\n}\n\nexport const showInfoToast = (_message: string, _title?: string, _duration?: number) => {\n // ToastProvider 컨텍스트 필요\n} "]}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import {a}from'./chunk-UUHAXGMO.mjs';import m from'react';import {jsx,jsxs}from'react/jsx-runtime';var N={default:"border-input bg-background",outline:"border-2 border-input bg-transparent",filled:"border-transparent bg-secondary/50",glass:"border-white/20 bg-white/10 text-white placeholder:text-white/50 backdrop-blur-sm"},T=m.forwardRef(({className:n,type:o,variant:t="default",error:a$1,success:d,...e},s)=>{let l=e["aria-invalid"],i=a$1||(l!==void 0?l:false);return jsx("input",{type:o,className:a("flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200 hover:border-indigo-400 hover:shadow-sm",N[t],i&&"border-red-500 focus-visible:ring-red-500",d&&"border-green-500 focus-visible:ring-green-500",n),ref:s,"aria-invalid":i||void 0,...e})});T.displayName="Input";var R=m.forwardRef(({className:n,children:o,required:t=false,error:a$1=false,disabled:d=false,variant:e="default",...s},l)=>{let i={default:a("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",a$1&&"text-red-600 dark:text-red-400",d&&"text-slate-400 dark:text-slate-500",!a$1&&!d&&"text-slate-700 dark:text-slate-300"),glass:a("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",a$1&&"text-red-400",d&&"text-white/50",!a$1&&!d&&"text-white")};return jsxs("label",{ref:l,className:a(i[e],n),"aria-required":t?true:void 0,...s,children:[o,t&&jsx("span",{className:e==="glass"?"text-red-400 ml-1":"text-red-500 ml-1","aria-label":"\uD544\uC218 \uD544\uB4DC",children:"*"})]})});R.displayName="Label";var S=m.forwardRef(({className:n,variant:o="default",size:t="md",error:a$1=false,success:d=false,label:e,description:s,id:l,...i},h)=>{var g;let k=m.useId(),b=l||k,u=e?`${b}-label`:void 0,f=s?`${b}-description`:void 0,x={sm:"w-9 h-5",md:"w-11 h-6",lg:"w-14 h-8"},y={sm:"w-4 h-4",md:"w-5 h-5",lg:"w-7 h-7"},w={sm:"peer-checked:translate-x-4",md:"peer-checked:translate-x-5",lg:"peer-checked:translate-x-6"},v={default:"bg-gray-200 peer-checked:bg-primary dark:bg-gray-700 dark:peer-checked:bg-primary",outline:"bg-transparent border-2 border-gray-300 peer-checked:border-primary peer-checked:bg-primary dark:border-gray-600 dark:peer-checked:border-primary dark:peer-checked:bg-primary",filled:"bg-gray-100 peer-checked:bg-primary dark:bg-gray-800 dark:peer-checked:bg-primary",glass:"bg-white/20 backdrop-blur-sm border border-white/30 peer-checked:bg-primary/50 peer-checked:border-indigo-300/50 dark:bg-slate-800/20 dark:border-slate-700/50 dark:peer-checked:bg-primary/50 dark:peer-checked:border-indigo-300/50"},I=a$1?"bg-red-200 peer-checked:bg-red-600 dark:bg-red-800 dark:peer-checked:bg-red-500":d?"bg-green-200 peer-checked:bg-green-600 dark:bg-green-800 dark:peer-checked:bg-green-500":"";return jsxs("div",{className:"flex items-start space-x-3",children:[jsxs("div",{className:"relative",children:[jsx("input",{type:"checkbox",id:b,className:a("peer sr-only",n),ref:h,"aria-checked":(g=i.checked)!=null?g:false,"aria-invalid":a$1,"aria-label":e?void 0:i["aria-label"],"aria-labelledby":e?u:void 0,"aria-describedby":f,role:"switch",...i}),jsx("div",{className:a("relative inline-flex cursor-pointer items-center rounded-full transition-colors duration-200 ease-in-out","peer-focus:outline-none peer-focus:ring-1 peer-focus:ring-ring peer-focus:ring-offset-2","peer-disabled:cursor-not-allowed peer-disabled:opacity-50",x[t],v[o],I),children:jsx("div",{className:a("pointer-events-none absolute rounded-full bg-white shadow-md ring-0","transition-all duration-200 ease-out","top-1/2 -translate-y-1/2 left-0.5",y[t],w[t])})})]}),(e||s)&&jsxs("div",{className:"flex flex-col",children:[e&&jsx("label",{htmlFor:b,id:u,className:"text-sm font-medium text-gray-900 dark:text-white cursor-pointer",children:e}),s&&jsx("p",{id:f,className:"text-sm text-gray-500 dark:text-gray-400",children:s})]})]})});S.displayName="Switch";export{T as a,R as b,S as c};//# sourceMappingURL=chunk-64T3XQP3.mjs.map
3
+ //# sourceMappingURL=chunk-64T3XQP3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Input.tsx","../src/components/Label.tsx","../src/components/Switch.tsx"],"names":["variantStyles","Input","React","className","type","variant","error","success","props","ref","ariaInvalid","isInvalid","jsx","merge","Label","children","required","disabled","variantClasses","jsxs","Switch","size","label","description","id","_a","generatedId","switchId","labelId","descriptionId","sizeClasses","thumbSizes","thumbTranslate","stateClasses"],"mappings":"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","file":"chunk-64T3XQP3.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Input 컴포넌트의 props / Input component props\n * HTML input 요소의 모든 표준 속성을 상속받습니다.\n * Inherits all standard attributes of HTML input element.\n * @typedef {Object} InputProps\n * @extends {React.InputHTMLAttributes<HTMLInputElement>}\n */\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n /** Visual style variant */\n variant?: \"default\" | \"outline\" | \"filled\" | \"glass\"\n /** Error state indicator */\n error?: boolean\n /** Success state indicator */\n success?: boolean\n}\n\n/**\n * Input 컴포넌트 / Input component\n * \n * 표준 HTML input 요소를 래핑한 스타일링된 입력 필드 컴포넌트입니다.\n * 접근성 속성(aria-invalid)을 자동으로 처리합니다.\n * \n * Styled input field component wrapping standard HTML input element.\n * Automatically handles accessibility attributes (aria-invalid).\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Input type=\"text\" placeholder=\"이름을 입력하세요\" />\n * \n * @example\n * // 에러 상태 / Error state\n * <Input \n * type=\"email\" \n * placeholder=\"이메일\"\n * aria-invalid={true}\n * />\n * \n * @example\n * // ref 사용 / Using ref\n * const inputRef = useRef<HTMLInputElement>(null)\n * <Input ref={inputRef} type=\"text\" />\n * \n * @param {InputProps} props - Input 컴포넌트의 props / Input component props\n * @param {React.Ref<HTMLInputElement>} ref - input 요소 ref / input element ref\n * @returns {JSX.Element} Input 컴포넌트 / Input component\n */\nconst variantStyles = {\n default: \"border-input bg-background\",\n outline: \"border-2 border-input bg-transparent\",\n filled: \"border-transparent bg-secondary/50\",\n glass: \"border-white/20 bg-white/10 text-white placeholder:text-white/50 backdrop-blur-sm\",\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, variant = \"default\", error, success, ...props }, ref) => {\n // aria-invalid이 명시적으로 전달되지 않았고, error prop이 있으면 자동 설정\n const ariaInvalid = props[\"aria-invalid\" as keyof typeof props] as boolean | undefined;\n const isInvalid = error || (ariaInvalid !== undefined ? ariaInvalid : false);\n\n return (\n <input\n type={type}\n className={merge(\n \"flex h-10 w-full rounded-md border px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200 hover:border-indigo-400 hover:shadow-sm\",\n variantStyles[variant],\n isInvalid && \"border-red-500 focus-visible:ring-red-500\",\n success && \"border-green-500 focus-visible:ring-green-500\",\n className\n )}\n ref={ref}\n aria-invalid={isInvalid || undefined}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input } ","\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Label 컴포넌트의 props / Label component props\n * @typedef {Object} LabelProps\n * @property {boolean} [required=false] - 필수 필드 여부 / Required field indicator\n * @property {boolean} [error=false] - 에러 상태 표시 / Error state\n * @property {boolean} [disabled=false] - 비활성화 상태 / Disabled state\n * @property {\"default\" | \"glass\"} [variant=\"default\"] - Label 스타일 변형 / Label style variant\n * @extends {React.LabelHTMLAttributes<HTMLLabelElement>}\n */\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n required?: boolean\n error?: boolean\n disabled?: boolean\n variant?: \"default\" | \"glass\"\n}\n\n/**\n * Label 컴포넌트 / Label component\n * \n * 폼 필드의 레이블을 표시하는 컴포넌트입니다.\n * 필수 필드 표시와 에러 상태를 지원합니다.\n * \n * Component for displaying form field labels.\n * Supports required field indicator and error state.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Label htmlFor=\"email\">이메일</Label>\n * <Input id=\"email\" />\n * \n * @example\n * // 필수 필드 / Required field\n * <Label required htmlFor=\"name\">이름</Label>\n * <Input id=\"name\" required />\n * \n * @example\n * // 에러 상태 / Error state\n * <Label error htmlFor=\"password\">비밀번호</Label>\n * <Input id=\"password\" aria-invalid />\n * \n * @param {LabelProps} props - Label 컴포넌트의 props / Label component props\n * @param {React.Ref<HTMLLabelElement>} ref - label 요소 ref / label element ref\n * @returns {JSX.Element} Label 컴포넌트 / Label component\n * \n * @todo 접근성 개선: required일 때 aria-required=\"true\" 추가 필요 / Accessibility improvement: add aria-required=\"true\" when required\n */\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ \n className, \n children, \n required = false,\n error = false,\n disabled = false,\n variant = \"default\",\n ...props \n }, ref) => {\n const variantClasses = {\n default: merge(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n error && \"text-red-600 dark:text-red-400\",\n disabled && \"text-slate-400 dark:text-slate-500\",\n !error && !disabled && \"text-slate-700 dark:text-slate-300\"\n ),\n glass: merge(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n error && \"text-red-400\",\n disabled && \"text-white/50\",\n !error && !disabled && \"text-white\"\n )\n }\n\n return (\n <label\n ref={ref}\n className={merge(variantClasses[variant], className)}\n aria-required={required ? true : undefined}\n {...props}\n >\n {children}\n {required && (\n <span className={variant === \"glass\" ? \"text-red-400 ml-1\" : \"text-red-500 ml-1\"} aria-label=\"필수 필드\">*</span>\n )}\n </label>\n )\n }\n)\nLabel.displayName = \"Label\"\n\nexport { Label } ","\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Switch 컴포넌트의 props / Switch component props\n * @typedef {Object} SwitchProps\n * @property {\"default\" | \"outline\" | \"filled\" | \"glass\"} [variant=\"default\"] - Switch 스타일 변형 / Switch style variant\n * @property {\"sm\" | \"md\" | \"lg\"} [size=\"md\"] - Switch 크기 / Switch size\n * @property {boolean} [error=false] - 에러 상태 표시 / Error state\n * @property {boolean} [success=false] - 성공 상태 표시 / Success state\n * @property {string} [label] - 스위치 레이블 텍스트 / Switch label text\n * @property {string} [description] - 스위치 설명 텍스트 / Switch description text\n * @extends {Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>}\n */\nexport interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {\n variant?: \"default\" | \"outline\" | \"filled\" | \"glass\"\n size?: \"sm\" | \"md\" | \"lg\"\n error?: boolean\n success?: boolean\n label?: string\n description?: string\n}\n\n/**\n * Switch 컴포넌트 / Switch component\n * \n * 토글 스위치 입력 필드를 제공하는 컴포넌트입니다.\n * ARIA 속성을 자동으로 설정하여 접근성을 지원합니다.\n * \n * Toggle switch input field component.\n * Automatically sets ARIA attributes for accessibility support.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Switch label=\"알림 받기\" />\n * \n * @example\n * // 제어 컴포넌트 / Controlled component\n * const [enabled, setEnabled] = useState(false)\n * <Switch \n * checked={enabled}\n * onChange={(e) => setEnabled(e.target.checked)}\n * label=\"다크 모드\"\n * />\n * \n * @example\n * // 에러 상태 / Error state\n * <Switch \n * label=\"필수 설정\"\n * description=\"이 설정을 활성화해야 합니다\"\n * error\n * />\n * \n * @param {SwitchProps} props - Switch 컴포넌트의 props / Switch component props\n * @param {React.Ref<HTMLInputElement>} ref - input 요소 ref / input element ref\n * @returns {JSX.Element} Switch 컴포넌트 / Switch component\n */\nconst Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n ({ \n className, \n variant = \"default\",\n size = \"md\",\n error = false,\n success = false,\n label,\n description,\n id,\n ...props \n }, ref) => {\n const generatedId = React.useId()\n const switchId = id || generatedId\n const labelId = label ? `${switchId}-label` : undefined\n const descriptionId = description ? `${switchId}-description` : undefined\n // Track sizes - proper proportions for smooth toggle\n const sizeClasses = {\n sm: \"w-9 h-5\",\n md: \"w-11 h-6\",\n lg: \"w-14 h-8\"\n }\n\n // Thumb sizes - slightly smaller than track height for padding\n const thumbSizes = {\n sm: \"w-4 h-4\",\n md: \"w-5 h-5\",\n lg: \"w-7 h-7\"\n }\n\n // Thumb position when checked - calculated for proper alignment\n const thumbTranslate = {\n sm: \"peer-checked:translate-x-4\",\n md: \"peer-checked:translate-x-5\",\n lg: \"peer-checked:translate-x-6\"\n }\n\n const variantClasses = {\n default: \"bg-gray-200 peer-checked:bg-primary dark:bg-gray-700 dark:peer-checked:bg-primary\",\n outline: \"bg-transparent border-2 border-gray-300 peer-checked:border-primary peer-checked:bg-primary dark:border-gray-600 dark:peer-checked:border-primary dark:peer-checked:bg-primary\",\n filled: \"bg-gray-100 peer-checked:bg-primary dark:bg-gray-800 dark:peer-checked:bg-primary\",\n glass: \"bg-white/20 backdrop-blur-sm border border-white/30 peer-checked:bg-primary/50 peer-checked:border-indigo-300/50 dark:bg-slate-800/20 dark:border-slate-700/50 dark:peer-checked:bg-primary/50 dark:peer-checked:border-indigo-300/50\"\n }\n\n const stateClasses = error \n ? \"bg-red-200 peer-checked:bg-red-600 dark:bg-red-800 dark:peer-checked:bg-red-500\"\n : success\n ? \"bg-green-200 peer-checked:bg-green-600 dark:bg-green-800 dark:peer-checked:bg-green-500\"\n : \"\"\n\n return (\n <div className=\"flex items-start space-x-3\">\n <div className=\"relative\">\n <input\n type=\"checkbox\"\n id={switchId}\n className={merge(\n \"peer sr-only\",\n className\n )}\n ref={ref}\n aria-checked={props.checked ?? false}\n aria-invalid={error}\n aria-label={!label ? props['aria-label'] : undefined}\n aria-labelledby={label ? labelId : undefined}\n aria-describedby={descriptionId}\n role=\"switch\"\n {...props}\n />\n <div\n className={merge(\n \"relative inline-flex cursor-pointer items-center rounded-full transition-colors duration-200 ease-in-out\",\n \"peer-focus:outline-none peer-focus:ring-1 peer-focus:ring-ring peer-focus:ring-offset-2\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n sizeClasses[size],\n variantClasses[variant],\n stateClasses\n )}\n >\n <div\n className={merge(\n \"pointer-events-none absolute rounded-full bg-white shadow-md ring-0\",\n \"transition-all duration-200 ease-out\",\n \"top-1/2 -translate-y-1/2 left-0.5\",\n thumbSizes[size],\n thumbTranslate[size]\n )}\n />\n </div>\n </div>\n {(label || description) && (\n <div className=\"flex flex-col\">\n {label && (\n <label htmlFor={switchId} id={labelId} className=\"text-sm font-medium text-gray-900 dark:text-white cursor-pointer\">\n {label}\n </label>\n )}\n {description && (\n <p id={descriptionId} className=\"text-sm text-gray-500 dark:text-gray-400\">\n {description}\n </p>\n )}\n </div>\n )}\n </div>\n )\n }\n)\nSwitch.displayName = \"Switch\"\n\nexport { Switch } "]}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import {l}from'./chunk-EQIWSOL7.mjs';import {a}from'./chunk-UUHAXGMO.mjs';import i from'react';import {jsxs,jsx}from'react/jsx-runtime';var V=i.forwardRef(({className:r,trigger:o,children:t,open:a$1,onOpenChange:p,placement:l="bottom",align:s="start",offset:b=8,disabled:N=false,showArrow:H=true,...T},R)=>{let[S,M]=i.useState(false),[L,c]=i.useState({x:0,y:0}),w=i.useRef(null),x=i.useRef(null),k=a$1!==void 0,g=k?a$1:S,v=i.useCallback(e=>{N||(k||M(e),p==null||p(e));},[N,k,p]),C=()=>{v(!g);},y=i.useCallback(()=>{if(!w.current||!x.current)return;let e=w.current.getBoundingClientRect(),d=x.current.getBoundingClientRect(),z=window.innerWidth,B=window.innerHeight,f=0,u=0;switch(l){case "top":f=e.left,u=e.top-b;break;case "bottom":f=e.left,u=e.bottom+b;break;case "left":f=e.left-b,u=e.top;break;case "right":f=e.right+b,u=e.top;break}switch(s){case "center":l==="top"||l==="bottom"?f=e.left+e.width/2-d.width/2:u=e.top+e.height/2-d.height/2;break;case "end":l==="top"||l==="bottom"?f=e.right-d.width:u=e.bottom-d.height;break;}f<8&&(f=8),f+d.width>z-8&&(f=z-d.width-8),u<8&&(u=8),u+d.height>B-8&&(u=B-d.height-8),c({x:f,y:u});},[l,s,b]);i.useEffect(()=>{if(g)return y(),window.addEventListener("resize",y),window.addEventListener("scroll",y),()=>{window.removeEventListener("resize",y),window.removeEventListener("scroll",y);}},[g,y]),i.useEffect(()=>{let e=d=>{w.current&&x.current&&!w.current.contains(d.target)&&!x.current.contains(d.target)&&v(false);};if(g)return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e);}},[g,v]);let P=()=>{switch(l){case "top":return "bottom-full left-0 mb-2";case "bottom":return "top-full left-0 mt-2";case "left":return "right-full top-0 mr-2";case "right":return "left-full top-0 ml-2";default:return "top-full left-0 mt-2"}},E=()=>{switch(l){case "top":return "top-full left-4 -translate-x-1/2 border-t-gray-100 dark:border-t-gray-800";case "bottom":return "bottom-full left-4 -translate-x-1/2 border-b-gray-100 dark:border-b-gray-800";case "left":return "left-full top-4 -translate-y-1/2 border-l-gray-100 dark:border-l-gray-800";case "right":return "right-full top-4 -translate-y-1/2 border-r-gray-100 dark:border-r-gray-800";default:return "bottom-full left-4 -translate-x-1/2 border-b-gray-100 dark:border-b-gray-800"}};return jsxs("div",{ref:R,className:a("relative",r),...T,children:[jsx("div",{ref:w,onClick:C,className:"inline-block cursor-pointer",children:o}),g&&jsxs("div",{ref:x,className:a("absolute z-50 bg-[var(--dropdown-bg)] rounded-lg shadow-xl backdrop-blur-sm","min-w-[200px] py-2",P()),style:{transform:`translate(${L.x}px, ${L.y}px)`,boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)"},children:[H&&jsx("div",{className:a("absolute w-0 h-0 border-4 border-transparent",E())}),jsx("div",{className:"relative z-10",children:t})]})]})});V.displayName="Dropdown";var G=i.forwardRef(({className:r,icon:o,variant:t="default",children:a$1,disabled:p,...l},s)=>jsxs("button",{ref:s,className:a("w-full flex items-center gap-3 px-4 py-3 text-sm font-medium transition-colors duration-200 ease-in-out focus-visible:outline-none focus-visible:bg-gray-100 dark:focus-visible:bg-gray-700",(()=>{switch(t){case "destructive":return "text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20";case "disabled":return "text-gray-400 dark:text-gray-500 cursor-not-allowed";default:return "text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"}})(),r),disabled:p||t==="disabled",...l,children:[o&&jsx("div",{className:"flex-shrink-0 w-4 h-4",children:o}),jsx("span",{className:"flex-1 text-left",children:a$1})]}));G.displayName="DropdownItem";var K=i.forwardRef(({className:r,...o},t)=>jsx("div",{ref:t,className:a("h-px bg-gray-200 dark:bg-gray-700 my-2",r),...o}));K.displayName="DropdownSeparator";var W=i.forwardRef(({className:r,children:o,...t},a$1)=>jsx("div",{ref:a$1,className:a("px-4 py-2 text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wide",r),...t,children:o}));W.displayName="DropdownLabel";var $=i.forwardRef(({className:r,children:o,...t},a$1)=>jsx("div",{ref:a$1,className:a("py-1",r),...t,children:o}));$.displayName="DropdownMenu";var _=i.forwardRef(({className:r,children:o,...t},a$1)=>jsx("div",{ref:a$1,className:a("space-y-1",r),...t,children:o}));_.displayName="DropdownGroup";var j=i.forwardRef(({isOpen:r,open:o,onClose:t,onOpenChange:a$1,children:p,className:l,side:s="right",size:b="md",showBackdrop:N=true,backdropClassName:H,closeOnBackdropClick:T=true,closeOnEscape:R=true,closable:S=true,...M},L)=>{var E;let c=(E=r!=null?r:o)!=null?E:false,w=()=>{t==null||t(),a$1==null||a$1(false);},[x,k]=i.useState(false),[g,v]=i.useState(false);if(i.useEffect(()=>{if(c){k(true),v(true);let e=setTimeout(()=>v(false),50);return ()=>clearTimeout(e)}else {v(true);let e=setTimeout(()=>{k(false),v(false);},300);return ()=>clearTimeout(e)}},[c]),i.useEffect(()=>{if(!R)return;let e=d=>{d.key==="Escape"&&c&&w();};return c&&(document.addEventListener("keydown",e),document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",e),document.body.style.overflow="";}},[c,R]),!x)return null;let C={sm:s==="left"||s==="right"?"w-80":"h-64",md:s==="left"||s==="right"?"w-96":"h-96",lg:s==="left"||s==="right"?"w-[28rem]":"h-[32rem]",xl:s==="left"||s==="right"?"w-[32rem]":"h-[40rem]",full:s==="left"||s==="right"?"w-full":"h-full"},y={left:"left-0 top-0 h-full",right:"right-0 top-0 h-full",top:"top-0 left-0 w-full",bottom:"bottom-0 left-0 w-full"},P={left:c?"translate-x-0":"-translate-x-full",right:c?"translate-x-0":"translate-x-full",top:c?"translate-y-0":"-translate-y-full",bottom:c?"translate-y-0":"translate-y-full"};return jsxs("div",{className:"fixed inset-0 z-50",children:[N&&jsx("div",{className:a("absolute inset-0 bg-black/60 backdrop-blur-md transition-opacity duration-300",g?c?"opacity-100":"opacity-0":"",H),onClick:T?w:void 0}),jsx("div",{ref:L,className:a("absolute bg-white/95 dark:!bg-gray-800/95 backdrop-blur-xl border border-gray-200/50 dark:!border-gray-600/50 shadow-2xl transition-transform duration-300 ease-out",C[b],y[s],P[s],l),...M,children:p})]})});j.displayName="Drawer";var q=i.forwardRef(({children:r,className:o,showCloseButton:t=true,onClose:a$1,...p},l$1)=>jsxs("div",{ref:l$1,className:a("flex items-center justify-between p-6 border-b border-gray-200/50 dark:border-gray-700/50",o),...p,children:[jsx("div",{className:"flex-1",children:r}),t&&jsx("button",{onClick:a$1,className:"p-2 rounded-lg hover:bg-gray-100/80 dark:hover:bg-gray-800/80 transition-colors",children:jsx(l,{name:"close",size:20})})]}));q.displayName="DrawerHeader";var J=i.forwardRef(({children:r,className:o,...t},a$1)=>jsx("div",{ref:a$1,className:a("flex-1 p-6 overflow-y-auto",o),...t,children:r}));J.displayName="DrawerContent";var Q=i.forwardRef(({children:r,className:o,...t},a$1)=>jsx("div",{ref:a$1,className:a("flex items-center justify-end gap-3 p-6 border-t border-gray-200/50 dark:border-gray-700/50",o),...t,children:r}));Q.displayName="DrawerFooter";export{V as a,G as b,K as c,W as d,$ as e,_ as f,j as g,q as h,J as i,Q as j};//# sourceMappingURL=chunk-6IRMCQLW.mjs.map
3
+ //# sourceMappingURL=chunk-6IRMCQLW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Dropdown.tsx","../src/components/Drawer.tsx"],"names":["Dropdown","React","className","trigger","children","controlledOpen","onOpenChange","placement","align","offset","disabled","showArrow","props","ref","internalOpen","setInternalOpen","coords","setCoords","triggerRef","dropdownRef","isControlled","isOpen","handleOpenChange","newOpen","handleTriggerClick","updatePosition","triggerRect","dropdownRect","viewportWidth","viewportHeight","x","y","handleClickOutside","event","getPlacementClasses","getArrowClasses","jsxs","merge","jsx","DropdownItem","icon","variant","DropdownSeparator","DropdownLabel","DropdownMenu","DropdownGroup","Drawer","open","onClose","side","size","showBackdrop","backdropClassName","closeOnBackdropClick","closeOnEscape","closable","_a","_isOpen","handleClose","isVisible","setIsVisible","isAnimating","setIsAnimating","timer","handleEscapeKey","e","sizeClasses","sideClasses","transformClasses","DrawerHeader","showCloseButton","Icon","DrawerContent","DrawerFooter"],"mappings":"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","file":"chunk-6IRMCQLW.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Dropdown 컴포넌트의 props / Dropdown component props\n * @typedef {Object} DropdownProps\n * @property {React.ReactNode} trigger - Dropdown을 열기 위한 트리거 요소 / Trigger element to open dropdown\n * @property {React.ReactNode} children - Dropdown 내용 / Dropdown content\n * @property {boolean} [open] - 제어 모드에서 열림/닫힘 상태 / Open/close state in controlled mode\n * @property {(open: boolean) => void} [onOpenChange] - 상태 변경 콜백 / State change callback\n * @property {\"top\" | \"bottom\" | \"left\" | \"right\"} [placement=\"bottom\"] - Dropdown 표시 위치 / Dropdown display position\n * @property {\"start\" | \"center\" | \"end\"} [align=\"start\"] - Dropdown 정렬 / Dropdown alignment\n * @property {number} [offset=8] - 트리거와 Dropdown 사이 간격 (px) / Spacing between trigger and dropdown (px)\n * @property {boolean} [disabled=false] - Dropdown 비활성화 여부 / Disable dropdown\n * @property {boolean} [showArrow=true] - 화살표 표시 여부 / Show arrow\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface DropdownProps extends React.HTMLAttributes<HTMLDivElement> {\n trigger: React.ReactNode\n children: React.ReactNode\n open?: boolean\n onOpenChange?: (open: boolean) => void\n placement?: \"top\" | \"bottom\" | \"left\" | \"right\"\n align?: \"start\" | \"center\" | \"end\"\n offset?: number\n disabled?: boolean\n showArrow?: boolean\n}\n\n/**\n * Dropdown 컴포넌트 / Dropdown component\n * \n * 트리거 요소를 클릭하면 표시되는 드롭다운 메뉴 컴포넌트입니다.\n * 외부 클릭 시 자동으로 닫히며, 뷰포트 경계를 자동으로 감지하여 위치를 조정합니다.\n * \n * Dropdown menu component that appears when the trigger element is clicked.\n * Automatically closes on outside click and adjusts position by detecting viewport boundaries.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Dropdown trigger={<Button>메뉴</Button>}>\n * <Menu>\n * <MenuItem>항목 1</MenuItem>\n * <MenuItem>항목 2</MenuItem>\n * </Menu>\n * </Dropdown>\n * \n * @example\n * // 제어 모드, 화살표 없음 / Controlled mode, no arrow\n * const [open, setOpen] = useState(false)\n * <Dropdown \n * open={open}\n * onOpenChange={setOpen}\n * trigger={<Button>제어 모드</Button>}\n * placement=\"top\"\n * showArrow={false}\n * >\n * <div className=\"p-4\">내용</div>\n * </Dropdown>\n * \n * @param {DropdownProps} props - Dropdown 컴포넌트의 props / Dropdown component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} Dropdown 컴포넌트 / Dropdown component\n */\nconst Dropdown = React.forwardRef<HTMLDivElement, DropdownProps>(\n ({ \n className, \n trigger,\n children,\n open: controlledOpen,\n onOpenChange,\n placement = \"bottom\",\n align = \"start\",\n offset = 8,\n disabled = false,\n showArrow = true,\n ...props \n }, ref) => {\n const [internalOpen, setInternalOpen] = React.useState(false)\n const [coords, setCoords] = React.useState({ x: 0, y: 0 })\n const triggerRef = React.useRef<HTMLDivElement>(null)\n const dropdownRef = React.useRef<HTMLDivElement>(null)\n const isControlled = controlledOpen !== undefined\n const isOpen = isControlled ? controlledOpen : internalOpen\n\n const handleOpenChange = React.useCallback((newOpen: boolean) => {\n if (disabled) return\n\n if (!isControlled) {\n setInternalOpen(newOpen)\n }\n onOpenChange?.(newOpen)\n }, [disabled, isControlled, onOpenChange])\n\n const handleTriggerClick = () => {\n handleOpenChange(!isOpen)\n }\n\n const updatePosition = React.useCallback(() => {\n if (!triggerRef.current || !dropdownRef.current) return\n\n const triggerRect = triggerRef.current.getBoundingClientRect()\n const dropdownRect = dropdownRef.current.getBoundingClientRect()\n const viewportWidth = window.innerWidth\n const viewportHeight = window.innerHeight\n\n let x = 0\n let y = 0\n\n // 기본 위치 계산\n switch (placement) {\n case \"top\":\n x = triggerRect.left\n y = triggerRect.top - offset\n break\n case \"bottom\":\n x = triggerRect.left\n y = triggerRect.bottom + offset\n break\n case \"left\":\n x = triggerRect.left - offset\n y = triggerRect.top\n break\n case \"right\":\n x = triggerRect.right + offset\n y = triggerRect.top\n break\n }\n\n // 정렬 조정\n switch (align) {\n case \"center\":\n if (placement === \"top\" || placement === \"bottom\") {\n x = triggerRect.left + triggerRect.width / 2 - dropdownRect.width / 2\n } else {\n y = triggerRect.top + triggerRect.height / 2 - dropdownRect.height / 2\n }\n break\n case \"end\":\n if (placement === \"top\" || placement === \"bottom\") {\n x = triggerRect.right - dropdownRect.width\n } else {\n y = triggerRect.bottom - dropdownRect.height\n }\n break\n case \"start\":\n default:\n // 기본값은 이미 start 정렬\n break\n }\n\n // 뷰포트 경계 확인 및 조정\n if (x < 8) x = 8 // 8px 여백\n if (x + dropdownRect.width > viewportWidth - 8) {\n x = viewportWidth - dropdownRect.width - 8 // 8px 여백\n }\n if (y < 8) y = 8 // 8px 여백\n if (y + dropdownRect.height > viewportHeight - 8) {\n y = viewportHeight - dropdownRect.height - 8 // 8px 여백\n }\n\n setCoords({ x, y })\n }, [placement, align, offset])\n\n React.useEffect(() => {\n if (isOpen) {\n updatePosition()\n window.addEventListener('resize', updatePosition)\n window.addEventListener('scroll', updatePosition)\n \n return () => {\n window.removeEventListener('resize', updatePosition)\n window.removeEventListener('scroll', updatePosition)\n }\n }\n }, [isOpen, updatePosition])\n\n React.useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n triggerRef.current &&\n dropdownRef.current &&\n !triggerRef.current.contains(event.target as Node) &&\n !dropdownRef.current.contains(event.target as Node)\n ) {\n handleOpenChange(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }\n }, [isOpen, handleOpenChange])\n\n const getPlacementClasses = () => {\n switch (placement) {\n case \"top\":\n return \"bottom-full left-0 mb-2\" // 8px 간격\n case \"bottom\":\n return \"top-full left-0 mt-2\" // 8px 간격\n case \"left\":\n return \"right-full top-0 mr-2\" // 8px 간격\n case \"right\":\n return \"left-full top-0 ml-2\" // 8px 간격\n default:\n return \"top-full left-0 mt-2\"\n }\n }\n\n const getArrowClasses = () => {\n switch (placement) {\n case \"top\":\n return \"top-full left-4 -translate-x-1/2 border-t-gray-100 dark:border-t-gray-800\"\n case \"bottom\":\n return \"bottom-full left-4 -translate-x-1/2 border-b-gray-100 dark:border-b-gray-800\"\n case \"left\":\n return \"left-full top-4 -translate-y-1/2 border-l-gray-100 dark:border-l-gray-800\"\n case \"right\":\n return \"right-full top-4 -translate-y-1/2 border-r-gray-100 dark:border-r-gray-800\"\n default:\n return \"bottom-full left-4 -translate-x-1/2 border-b-gray-100 dark:border-b-gray-800\"\n }\n }\n\n return (\n <div ref={ref} className={merge(\"relative\", className)} {...props}>\n {/* 트리거 */}\n <div\n ref={triggerRef}\n onClick={handleTriggerClick}\n className=\"inline-block cursor-pointer\"\n >\n {trigger}\n </div>\n\n {/* 드롭다운 */}\n {/* CSS 변수 기반 배경색 (Tailwind v4 dark: + bg-* 충돌 우회) */}\n {isOpen && (\n <div\n ref={dropdownRef}\n className={merge(\n \"absolute z-50 bg-[var(--dropdown-bg)] rounded-lg shadow-xl backdrop-blur-sm\",\n \"min-w-[200px] py-2\",\n getPlacementClasses()\n )}\n style={{\n transform: `translate(${coords.x}px, ${coords.y}px)`,\n boxShadow: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\"\n }}\n >\n {/* 화살표 */}\n {showArrow && (\n <div\n className={merge(\n \"absolute w-0 h-0 border-4 border-transparent\",\n getArrowClasses()\n )}\n />\n )}\n \n {/* 내용 */}\n <div className=\"relative z-10\">\n {children}\n </div>\n </div>\n )}\n </div>\n )\n }\n)\nDropdown.displayName = \"Dropdown\"\n\n// 드롭다운 아이템 컴포넌트들\nexport interface DropdownItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n icon?: React.ReactNode\n variant?: \"default\" | \"destructive\" | \"disabled\"\n}\n\nconst DropdownItem = React.forwardRef<HTMLButtonElement, DropdownItemProps>(\n ({ \n className, \n icon,\n variant = \"default\",\n children,\n disabled,\n ...props \n }, ref) => {\n const getVariantClasses = () => {\n switch (variant) {\n case \"destructive\":\n return \"text-red-600 dark:text-red-400 hover:bg-red-50 dark:hover:bg-red-900/20\"\n case \"disabled\":\n return \"text-gray-400 dark:text-gray-500 cursor-not-allowed\"\n default:\n return \"text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700\"\n }\n }\n\n return (\n <button\n ref={ref}\n className={merge(\n \"w-full flex items-center gap-3 px-4 py-3 text-sm font-medium transition-colors duration-200 ease-in-out focus-visible:outline-none focus-visible:bg-gray-100 dark:focus-visible:bg-gray-700\", // 16px, 12px 패딩\n getVariantClasses(),\n className\n )}\n disabled={disabled || variant === \"disabled\"}\n {...props}\n >\n {icon && (\n <div className=\"flex-shrink-0 w-4 h-4\">\n {icon}\n </div>\n )}\n <span className=\"flex-1 text-left\">{children}</span>\n </button>\n )\n }\n)\nDropdownItem.displayName = \"DropdownItem\"\n\nexport interface DropdownSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DropdownSeparator = React.forwardRef<HTMLDivElement, DropdownSeparatorProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={merge(\"h-px bg-gray-200 dark:bg-gray-700 my-2\", className)} // 8px 여백\n {...props}\n />\n )\n)\nDropdownSeparator.displayName = \"DropdownSeparator\"\n\nexport interface DropdownLabelProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst DropdownLabel = React.forwardRef<HTMLDivElement, DropdownLabelProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={merge(\"px-4 py-2 text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wide\", className)} // 16px, 8px 패딩\n {...props}\n >\n {children}\n </div>\n )\n)\nDropdownLabel.displayName = \"DropdownLabel\"\n\n// 편의 컴포넌트들\nconst DropdownMenu = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={merge(\"py-1\", className)} // 4px 패딩\n {...props}\n >\n {children}\n </div>\n )\n)\nDropdownMenu.displayName = \"DropdownMenu\"\n\nconst DropdownGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={merge(\"space-y-1\", className)} // 4px 간격\n {...props}\n >\n {children}\n </div>\n )\n)\nDropdownGroup.displayName = \"DropdownGroup\"\n\nexport { Dropdown, DropdownItem, DropdownSeparator, DropdownLabel, DropdownMenu, DropdownGroup } ","\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\nimport { Icon } from \"./Icon\"\n\n/**\n * Drawer 컴포넌트의 props / Drawer component props\n * @typedef {Object} DrawerProps\n * @property {boolean} open - Drawer 열림/닫힘 상태 / Drawer open/close state\n * @property {(open: boolean) => void} onOpenChange - 상태 변경 콜백 / State change callback\n * @property {React.ReactNode} children - Drawer 내용 / Drawer content\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n * @property {\"left\" | \"right\" | \"top\" | \"bottom\"} [side=\"right\"] - Drawer 표시 위치 / Drawer display position\n * @property {\"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\"} [size=\"md\"] - Drawer 크기 / Drawer size\n * @property {boolean} [showBackdrop=true] - 배경 오버레이 표시 여부 / Show backdrop overlay\n * @property {string} [backdropClassName] - 배경 오버레이 추가 CSS 클래스 / Backdrop overlay additional CSS class\n * @property {boolean} [closeOnBackdropClick=true] - 배경 클릭 시 닫기 여부 / Close on backdrop click\n * @property {boolean} [closeOnEscape=true] - ESC 키로 닫기 여부 / Close on ESC key\n */\ninterface DrawerProps {\n /** Drawer 열림/닫힘 상태 / Drawer open/close state */\n isOpen?: boolean\n /** @deprecated use isOpen instead */\n open?: boolean\n /** Drawer 닫기 콜백 / Drawer close callback */\n onClose?: () => void\n /** @deprecated use onClose instead */\n onOpenChange?: (open: boolean) => void\n /** Drawer 내용 / Drawer content */\n children: React.ReactNode\n /** 추가 CSS 클래스 / Additional CSS class */\n className?: string\n /** Drawer 표시 위치 / Drawer display position */\n side?: \"left\" | \"right\" | \"top\" | \"bottom\"\n /** Drawer 크기 / Drawer size */\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\"\n /** 배경 오버레이 표시 여부 / Show backdrop overlay */\n showBackdrop?: boolean\n /** 배경 오버레이 추가 CSS 클래스 / Backdrop overlay additional CSS class */\n backdropClassName?: string\n /** 배경 클릭 시 닫기 여부 / Close on backdrop click */\n closeOnBackdropClick?: boolean\n /** ESC 키로 닫기 여부 / Close on ESC key */\n closeOnEscape?: boolean\n /** 닫기 버튼 표시 여부 / Show close button */\n closable?: boolean\n}\n\n/**\n * Drawer 컴포넌트 / Drawer component\n * \n * 사이드에서 슬라이드되는 패널 컴포넌트입니다.\n * Modal과 유사하지만 특정 방향에서 슬라이드되는 애니메이션을 제공합니다.\n * ESC 키로 닫기, 배경 클릭으로 닫기 기능을 지원합니다.\n * \n * Panel component that slides from the side.\n * Similar to Modal but provides slide animation from a specific direction.\n * Supports closing with ESC key and backdrop click.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * const [open, setOpen] = useState(false)\n * \n * <Drawer open={open} onOpenChange={setOpen}>\n * <DrawerHeader>제목</DrawerHeader>\n * <DrawerContent>내용</DrawerContent>\n * <DrawerFooter>\n * <Button onClick={() => setOpen(false)}>닫기</Button>\n * </DrawerFooter>\n * </Drawer>\n * \n * @example\n * // 왼쪽에서 열기 / Open from left\n * <Drawer open={open} onOpenChange={setOpen} side=\"left\" size=\"lg\">\n * <DrawerContent>사이드바 내용</DrawerContent>\n * </Drawer>\n * \n * @param {DrawerProps} props - Drawer 컴포넌트의 props / Drawer component props\n * @param {React.Ref<HTMLDivElement>} ref - Drawer 컨테이너 ref / Drawer container ref\n * @returns {JSX.Element} Drawer 컴포넌트 / Drawer component\n * \n * @todo 접근성 개선: role=\"dialog\", aria-modal=\"true\" 추가 필요 / Accessibility: Add role=\"dialog\", aria-modal=\"true\"\n * @todo 접근성 개선: aria-labelledby, aria-describedby 연결 필요 / Accessibility: Connect aria-labelledby, aria-describedby\n */\nconst Drawer = React.forwardRef<HTMLDivElement, DrawerProps>(\n ({\n isOpen,\n open,\n onClose,\n onOpenChange,\n children,\n className,\n side = \"right\",\n size = \"md\",\n showBackdrop = true,\n backdropClassName,\n closeOnBackdropClick = true,\n closeOnEscape = true,\n closable = true,\n ...props\n }, ref) => {\n // isOpen과 open 둘 다 지원 (isOpen 우선)\n const _isOpen = isOpen ?? open ?? false\n // onClose와 onOpenChange 둘 다 지원\n const handleClose = () => {\n onClose?.()\n onOpenChange?.(false)\n }\n\n const [isVisible, setIsVisible] = React.useState(false)\n const [isAnimating, setIsAnimating] = React.useState(false)\n\n React.useEffect(() => {\n if (_isOpen) {\n setIsVisible(true)\n setIsAnimating(true)\n // 애니메이션 시작을 위한 지연\n const timer = setTimeout(() => setIsAnimating(false), 50)\n return () => clearTimeout(timer)\n } else {\n setIsAnimating(true)\n const timer = setTimeout(() => {\n setIsVisible(false)\n setIsAnimating(false)\n }, 300) // 애니메이션 완료 후 숨김\n return () => clearTimeout(timer)\n }\n }, [_isOpen])\n\n React.useEffect(() => {\n if (!closeOnEscape) return\n\n const handleEscapeKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" && _isOpen) {\n handleClose()\n }\n }\n\n if (_isOpen) {\n document.addEventListener(\"keydown\", handleEscapeKey)\n document.body.style.overflow = \"hidden\"\n }\n\n return () => {\n document.removeEventListener(\"keydown\", handleEscapeKey)\n document.body.style.overflow = \"\"\n }\n }, [_isOpen, closeOnEscape])\n\n if (!isVisible) return null\n\n const sizeClasses = {\n sm: side === \"left\" || side === \"right\" ? \"w-80\" : \"h-64\",\n md: side === \"left\" || side === \"right\" ? \"w-96\" : \"h-96\",\n lg: side === \"left\" || side === \"right\" ? \"w-[28rem]\" : \"h-[32rem]\",\n xl: side === \"left\" || side === \"right\" ? \"w-[32rem]\" : \"h-[40rem]\",\n full: side === \"left\" || side === \"right\" ? \"w-full\" : \"h-full\"\n }\n\n const sideClasses = {\n left: \"left-0 top-0 h-full\",\n right: \"right-0 top-0 h-full\",\n top: \"top-0 left-0 w-full\",\n bottom: \"bottom-0 left-0 w-full\"\n }\n\n // Transform: _isOpen=true -> visible position, _isOpen=false -> hidden position\n const transformClasses = {\n left: _isOpen ? \"translate-x-0\" : \"-translate-x-full\",\n right: _isOpen ? \"translate-x-0\" : \"translate-x-full\",\n top: _isOpen ? \"translate-y-0\" : \"-translate-y-full\",\n bottom: _isOpen ? \"translate-y-0\" : \"translate-y-full\"\n }\n\n return (\n <div className=\"fixed inset-0 z-50\">\n {/* Backdrop */}\n {showBackdrop && (\n <div\n className={merge(\n \"absolute inset-0 bg-black/60 backdrop-blur-md transition-opacity duration-300\",\n isAnimating ? (_isOpen ? \"opacity-100\" : \"opacity-0\") : \"\",\n backdropClassName\n )}\n onClick={closeOnBackdropClick ? handleClose : undefined}\n />\n )}\n\n {/* Drawer Content */}\n <div\n ref={ref}\n className={merge(\n \"absolute bg-white/95 dark:!bg-gray-800/95 backdrop-blur-xl border border-gray-200/50 dark:!border-gray-600/50 shadow-2xl transition-transform duration-300 ease-out\",\n sizeClasses[size],\n sideClasses[side],\n transformClasses[side],\n className\n )}\n {...props}\n >\n {children}\n </div>\n </div>\n )\n }\n)\nDrawer.displayName = \"Drawer\"\n\n/**\n * DrawerHeader 컴포넌트의 props / DrawerHeader component props\n * @typedef {Object} DrawerHeaderProps\n * @property {React.ReactNode} children - 헤더 내용 / Header content\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n * @property {boolean} [showCloseButton=true] - 닫기 버튼 표시 여부 / Show close button\n * @property {() => void} [onClose] - 닫기 버튼 클릭 콜백 / Close button click callback\n */\ninterface DrawerHeaderProps {\n children: React.ReactNode\n className?: string\n showCloseButton?: boolean\n onClose?: () => void\n}\n\n/**\n * DrawerHeader 컴포넌트 / DrawerHeader component\n * Drawer의 헤더 영역을 표시합니다.\n * Displays the header area of a Drawer.\n * \n * @component\n * @param {DrawerHeaderProps} props - DrawerHeader 컴포넌트의 props / DrawerHeader component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} DrawerHeader 컴포넌트 / DrawerHeader component\n */\nconst DrawerHeader = React.forwardRef<HTMLDivElement, DrawerHeaderProps>(\n ({ children, className, showCloseButton = true, onClose, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={merge(\"flex items-center justify-between p-6 border-b border-gray-200/50 dark:border-gray-700/50\", className)}\n {...props}\n >\n <div className=\"flex-1\">{children}</div>\n {showCloseButton && (\n <button\n onClick={onClose}\n className=\"p-2 rounded-lg hover:bg-gray-100/80 dark:hover:bg-gray-800/80 transition-colors\"\n >\n <Icon name=\"close\" size={20} />\n </button>\n )}\n </div>\n )\n }\n)\nDrawerHeader.displayName = \"DrawerHeader\"\n\n/**\n * DrawerContent 컴포넌트의 props / DrawerContent component props\n * @typedef {Object} DrawerContentProps\n * @property {React.ReactNode} children - 콘텐츠 / Content\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n */\ninterface DrawerContentProps {\n children: React.ReactNode\n className?: string\n}\n\n/**\n * DrawerContent 컴포넌트 / DrawerContent component\n * Drawer의 메인 콘텐츠 영역을 표시합니다.\n * Displays the main content area of a Drawer.\n * \n * @component\n * @param {DrawerContentProps} props - DrawerContent 컴포넌트의 props / DrawerContent component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} DrawerContent 컴포넌트 / DrawerContent component\n */\nconst DrawerContent = React.forwardRef<HTMLDivElement, DrawerContentProps>(\n ({ children, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={merge(\"flex-1 p-6 overflow-y-auto\", className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\nDrawerContent.displayName = \"DrawerContent\"\n\n/**\n * DrawerFooter 컴포넌트의 props / DrawerFooter component props\n * @typedef {Object} DrawerFooterProps\n * @property {React.ReactNode} children - 푸터 내용 / Footer content\n * @property {string} [className] - 추가 CSS 클래스 / Additional CSS class\n */\ninterface DrawerFooterProps {\n children: React.ReactNode\n className?: string\n}\n\n/**\n * DrawerFooter 컴포넌트 / DrawerFooter component\n * Drawer의 푸터 영역을 표시합니다. 주로 액션 버튼을 배치합니다.\n * Displays the footer area of a Drawer. Typically used for action buttons.\n * \n * @component\n * @param {DrawerFooterProps} props - DrawerFooter 컴포넌트의 props / DrawerFooter component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} DrawerFooter 컴포넌트 / DrawerFooter component\n */\nconst DrawerFooter = React.forwardRef<HTMLDivElement, DrawerFooterProps>(\n ({ children, className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={merge(\"flex items-center justify-end gap-3 p-6 border-t border-gray-200/50 dark:border-gray-700/50\", className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\nDrawerFooter.displayName = \"DrawerFooter\"\n\nexport { Drawer, DrawerHeader, DrawerContent, DrawerFooter } "]}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import {a as a$1}from'./chunk-UUHAXGMO.mjs';import a from'react';import {jsxs,jsx}from'react/jsx-runtime';var H=a.forwardRef(({className:l,children:s,trigger:n,open:o,onOpenChange:c,position:t="bottom",align:y="center",offset:d=8,disabled:v=false,contentClassName:M,...k},N)=>{let[R,w]=a.useState(false),b=a.useRef(null),f=a.useRef(null),m=o!==void 0,u=m?o:R,g=a.useCallback(e=>{v||(m||w(e),c==null||c(e));},[v,m,c]),x=()=>{g(!u);};a.useEffect(()=>{let e=p=>{b.current&&f.current&&!b.current.contains(p.target)&&!f.current.contains(p.target)&&g(false);};if(u)return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e);}},[u,g]);let T=()=>{let e="absolute z-50";switch(t){case "top":return a$1(e,"bottom-full",`mb-${Math.max(1,Math.floor(d/4))}`);case "bottom":return a$1(e,"top-full",`mt-${Math.max(1,Math.floor(d/4))}`);case "left":return a$1(e,"right-full",`mr-${Math.max(1,Math.floor(d/4))}`);case "right":return a$1(e,"left-full",`ml-${Math.max(1,Math.floor(d/4))}`);default:return a$1(e,"top-full",`mt-${Math.max(1,Math.floor(d/4))}`)}},L=()=>{switch(y){case "start":return t==="top"||t==="bottom"?"left-0":"top-0";case "end":return t==="top"||t==="bottom"?"right-0":"bottom-0";default:return t==="top"||t==="bottom"?"left-1/2 -translate-x-1/2":"top-1/2 -translate-y-1/2"}},E=()=>{let e="absolute w-0 h-0 border-4 border-transparent";switch(t){case "top":return `${e} top-full left-1/2 -translate-x-1/2 border-t-gray-200 dark:border-t-gray-700`;case "bottom":return `${e} bottom-full left-1/2 -translate-x-1/2 border-b-gray-200 dark:border-b-gray-700`;case "left":return `${e} left-full top-1/2 -translate-y-1/2 border-l-gray-200 dark:border-l-gray-700`;case "right":return `${e} right-full top-1/2 -translate-y-1/2 border-r-gray-200 dark:border-r-gray-700`;default:return `${e} bottom-full left-1/2 -translate-x-1/2 border-b-gray-200 dark:border-b-gray-700`}};return jsxs("div",{ref:N,className:a$1("relative",l),...k,children:[jsx("div",{ref:b,onClick:x,className:"inline-block cursor-pointer",children:n}),u&&jsxs("div",{ref:f,className:a$1("bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-4 min-w-[200px]",T(),L(),M),children:[jsx("div",{className:E()}),jsx("div",{className:"relative z-10",children:s})]})]})});H.displayName="Popover";var P=a.forwardRef(({className:l,children:s,...n},o)=>jsx("div",{ref:o,className:a$1("inline-block cursor-pointer",l),...n,children:s}));P.displayName="PopoverTrigger";var C=a.forwardRef(({className:l,children:s,...n},o)=>jsx("div",{ref:o,className:a$1("bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-4",l),...n,children:s}));C.displayName="PopoverContent";export{H as a,P as b,C as c};//# sourceMappingURL=chunk-7G4VTLVB.mjs.map
3
+ //# sourceMappingURL=chunk-7G4VTLVB.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Popover.tsx"],"names":["Popover","React","className","children","trigger","controlledOpen","onOpenChange","position","align","offset","disabled","contentClassName","props","ref","internalOpen","setInternalOpen","triggerRef","popoverRef","isControlled","isOpen","handleOpenChange","newOpen","handleTriggerClick","handleClickOutside","event","getPositionClasses","baseClasses","merge","getAlignmentClasses","getArrowClasses","jsxs","jsx","PopoverTrigger","PopoverContent"],"mappings":"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","file":"chunk-7G4VTLVB.mjs","sourcesContent":["\"use client\"\n\nimport React from \"react\"\nimport { merge } from \"../lib/utils\"\n\n/**\n * Popover 컴포넌트의 props / Popover component props\n * @typedef {Object} PopoverProps\n * @property {React.ReactNode} children - Popover 내용 / Popover content\n * @property {React.ReactNode} trigger - Popover를 열기 위한 트리거 요소 / Trigger element to open popover\n * @property {boolean} [open] - 제어 모드에서 열림/닫힘 상태 / Open/close state in controlled mode\n * @property {(open: boolean) => void} [onOpenChange] - 상태 변경 콜백 / State change callback\n * @property {\"top\" | \"bottom\" | \"left\" | \"right\"} [position=\"bottom\"] - Popover 표시 위치 / Popover display position\n * @property {\"start\" | \"center\" | \"end\"} [align=\"center\"] - Popover 정렬 / Popover alignment\n * @property {number} [offset=8] - 트리거와 Popover 사이 간격 (px) / Spacing between trigger and popover (px)\n * @property {boolean} [disabled=false] - Popover 비활성화 여부 / Disable popover\n * @extends {React.HTMLAttributes<HTMLDivElement>}\n */\nexport interface PopoverProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n trigger: React.ReactNode\n open?: boolean\n onOpenChange?: (open: boolean) => void\n position?: \"top\" | \"bottom\" | \"left\" | \"right\"\n align?: \"start\" | \"center\" | \"end\"\n offset?: number\n disabled?: boolean\n /** Popover 콘텐츠 영역 추가 클래스 / Additional class for popover content area */\n contentClassName?: string\n}\n\n/**\n * Popover 컴포넌트 / Popover component\n * \n * 트리거 요소를 클릭하면 표시되는 팝오버 컴포넌트입니다.\n * 외부 클릭 시 자동으로 닫힙니다.\n * \n * Popover component that appears when the trigger element is clicked.\n * Automatically closes when clicking outside.\n * \n * @component\n * @example\n * // 기본 사용 / Basic usage\n * <Popover trigger={<Button>열기</Button>}>\n * <div className=\"p-4\">Popover 내용</div>\n * </Popover>\n * \n * @example\n * // 제어 모드 / Controlled mode\n * const [open, setOpen] = useState(false)\n * <Popover \n * open={open}\n * onOpenChange={setOpen}\n * trigger={<Button>제어 모드</Button>}\n * position=\"top\"\n * >\n * <div className=\"p-4\">내용</div>\n * </Popover>\n * \n * @param {PopoverProps} props - Popover 컴포넌트의 props / Popover component props\n * @param {React.Ref<HTMLDivElement>} ref - div 요소 ref / div element ref\n * @returns {JSX.Element} Popover 컴포넌트 / Popover component\n */\nconst Popover = React.forwardRef<HTMLDivElement, PopoverProps>(\n ({ \n className, \n children,\n trigger,\n open: controlledOpen,\n onOpenChange,\n position = \"bottom\",\n align = \"center\",\n offset = 8,\n disabled = false,\n contentClassName,\n ...props\n }, ref) => {\n const [internalOpen, setInternalOpen] = React.useState(false)\n const triggerRef = React.useRef<HTMLDivElement>(null)\n const popoverRef = React.useRef<HTMLDivElement>(null)\n const isControlled = controlledOpen !== undefined\n const isOpen = isControlled ? controlledOpen : internalOpen\n\n const handleOpenChange = React.useCallback((newOpen: boolean) => {\n if (disabled) return\n\n if (!isControlled) {\n setInternalOpen(newOpen)\n }\n onOpenChange?.(newOpen)\n }, [disabled, isControlled, onOpenChange])\n\n const handleTriggerClick = () => {\n handleOpenChange(!isOpen)\n }\n\n React.useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (\n triggerRef.current && \n popoverRef.current && \n !triggerRef.current.contains(event.target as Node) &&\n !popoverRef.current.contains(event.target as Node)\n ) {\n handleOpenChange(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }\n }, [isOpen, handleOpenChange])\n\n const getPositionClasses = () => {\n const baseClasses = \"absolute z-50\"\n\n switch (position) {\n case \"top\":\n return merge(baseClasses, \"bottom-full\", `mb-${Math.max(1, Math.floor(offset / 4))}`)\n case \"bottom\":\n return merge(baseClasses, \"top-full\", `mt-${Math.max(1, Math.floor(offset / 4))}`)\n case \"left\":\n return merge(baseClasses, \"right-full\", `mr-${Math.max(1, Math.floor(offset / 4))}`)\n case \"right\":\n return merge(baseClasses, \"left-full\", `ml-${Math.max(1, Math.floor(offset / 4))}`)\n default:\n return merge(baseClasses, \"top-full\", `mt-${Math.max(1, Math.floor(offset / 4))}`)\n }\n }\n\n const getAlignmentClasses = () => {\n switch (align) {\n case \"start\":\n if (position === \"top\" || position === \"bottom\") {\n return \"left-0\"\n } else {\n return \"top-0\"\n }\n case \"end\":\n if (position === \"top\" || position === \"bottom\") {\n return \"right-0\"\n } else {\n return \"bottom-0\"\n }\n case \"center\":\n default:\n if (position === \"top\" || position === \"bottom\") {\n return \"left-1/2 -translate-x-1/2\"\n } else {\n return \"top-1/2 -translate-y-1/2\"\n }\n }\n }\n\n const getArrowClasses = () => {\n const baseClasses = \"absolute w-0 h-0 border-4 border-transparent\"\n \n switch (position) {\n case \"top\":\n return `${baseClasses} top-full left-1/2 -translate-x-1/2 border-t-gray-200 dark:border-t-gray-700`\n case \"bottom\":\n return `${baseClasses} bottom-full left-1/2 -translate-x-1/2 border-b-gray-200 dark:border-b-gray-700`\n case \"left\":\n return `${baseClasses} left-full top-1/2 -translate-y-1/2 border-l-gray-200 dark:border-l-gray-700`\n case \"right\":\n return `${baseClasses} right-full top-1/2 -translate-y-1/2 border-r-gray-200 dark:border-r-gray-700`\n default:\n return `${baseClasses} bottom-full left-1/2 -translate-x-1/2 border-b-gray-200 dark:border-b-gray-700`\n }\n }\n\n return (\n <div ref={ref} className={merge(\"relative\", className)} {...props}>\n {/* 트리거 */}\n <div\n ref={triggerRef}\n onClick={handleTriggerClick}\n className=\"inline-block cursor-pointer\"\n >\n {trigger}\n </div>\n\n {/* 팝오버 */}\n {isOpen && (\n <div\n ref={popoverRef}\n className={merge(\n \"bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-4 min-w-[200px]\",\n getPositionClasses(),\n getAlignmentClasses(),\n contentClassName\n )}\n >\n {/* 화살표 */}\n <div className={getArrowClasses()} />\n \n {/* 내용 */}\n <div className=\"relative z-10\">\n {children}\n </div>\n </div>\n )}\n </div>\n )\n }\n)\nPopover.displayName = \"Popover\"\n\n// 편의 컴포넌트들\nexport const PopoverTrigger = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={merge(\"inline-block cursor-pointer\", className)}\n {...props}\n >\n {children}\n </div>\n )\n)\nPopoverTrigger.displayName = \"PopoverTrigger\"\n\nexport const PopoverContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={merge(\"bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg p-4\", className)}\n {...props}\n >\n {children}\n </div>\n )\n)\nPopoverContent.displayName = \"PopoverContent\"\n\nexport { Popover } "]}