@mks2508/mks-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/README.md +73 -0
  2. package/dist/components/animate-ui/primitives/animate/slot.d.ts +18 -0
  3. package/dist/components/animate-ui/primitives/animate/slot.d.ts.map +1 -0
  4. package/dist/components/animate-ui/primitives/animate/slot.js +47 -0
  5. package/dist/components/animate-ui/primitives/animate/slot.js.map +1 -0
  6. package/dist/components/animate-ui/primitives/base/accordion.d.ts +22 -0
  7. package/dist/components/animate-ui/primitives/base/accordion.d.ts.map +1 -0
  8. package/dist/components/animate-ui/primitives/base/accordion.js +52 -0
  9. package/dist/components/animate-ui/primitives/base/accordion.js.map +1 -0
  10. package/dist/components/animate-ui/primitives/base/alert-dialog.d.ts +33 -0
  11. package/dist/components/animate-ui/primitives/base/alert-dialog.d.ts.map +1 -0
  12. package/dist/components/animate-ui/primitives/base/alert-dialog.js +60 -0
  13. package/dist/components/animate-ui/primitives/base/alert-dialog.js.map +1 -0
  14. package/dist/components/animate-ui/primitives/base/checkbox.d.ts +15 -0
  15. package/dist/components/animate-ui/primitives/base/checkbox.d.ts.map +1 -0
  16. package/dist/components/animate-ui/primitives/base/checkbox.js +41 -0
  17. package/dist/components/animate-ui/primitives/base/checkbox.js.map +1 -0
  18. package/dist/components/animate-ui/primitives/base/dialog.d.ts +33 -0
  19. package/dist/components/animate-ui/primitives/base/dialog.d.ts.map +1 -0
  20. package/dist/components/animate-ui/primitives/base/dialog.js +60 -0
  21. package/dist/components/animate-ui/primitives/base/dialog.js.map +1 -0
  22. package/dist/components/animate-ui/primitives/base/menu.d.ts +60 -0
  23. package/dist/components/animate-ui/primitives/base/menu.d.ts.map +1 -0
  24. package/dist/components/animate-ui/primitives/base/menu.js +122 -0
  25. package/dist/components/animate-ui/primitives/base/menu.js.map +1 -0
  26. package/dist/components/animate-ui/primitives/base/popover.d.ts +30 -0
  27. package/dist/components/animate-ui/primitives/base/popover.d.ts.map +1 -0
  28. package/dist/components/animate-ui/primitives/base/popover.js +45 -0
  29. package/dist/components/animate-ui/primitives/base/popover.js.map +1 -0
  30. package/dist/components/animate-ui/primitives/base/progress.d.ts +297 -0
  31. package/dist/components/animate-ui/primitives/base/progress.d.ts.map +1 -0
  32. package/dist/components/animate-ui/primitives/base/progress.js +27 -0
  33. package/dist/components/animate-ui/primitives/base/progress.js.map +1 -0
  34. package/dist/components/animate-ui/primitives/base/switch.d.ts +23 -0
  35. package/dist/components/animate-ui/primitives/base/switch.d.ts.map +1 -0
  36. package/dist/components/animate-ui/primitives/base/switch.js +36 -0
  37. package/dist/components/animate-ui/primitives/base/switch.js.map +1 -0
  38. package/dist/components/animate-ui/primitives/base/tabs.d.ts +33 -0
  39. package/dist/components/animate-ui/primitives/base/tabs.d.ts.map +1 -0
  40. package/dist/components/animate-ui/primitives/base/tabs.js +53 -0
  41. package/dist/components/animate-ui/primitives/base/tabs.js.map +1 -0
  42. package/dist/components/animate-ui/primitives/base/tooltip.d.ts +31 -0
  43. package/dist/components/animate-ui/primitives/base/tooltip.d.ts.map +1 -0
  44. package/dist/components/animate-ui/primitives/base/tooltip.js +71 -0
  45. package/dist/components/animate-ui/primitives/base/tooltip.js.map +1 -0
  46. package/dist/components/animate-ui/primitives/effects/auto-height.d.ts +12 -0
  47. package/dist/components/animate-ui/primitives/effects/auto-height.d.ts.map +1 -0
  48. package/dist/components/animate-ui/primitives/effects/auto-height.js +18 -0
  49. package/dist/components/animate-ui/primitives/effects/auto-height.js.map +1 -0
  50. package/dist/components/animate-ui/primitives/effects/highlight.d.ts +92 -0
  51. package/dist/components/animate-ui/primitives/effects/highlight.d.ts.map +1 -0
  52. package/dist/components/animate-ui/primitives/effects/highlight.js +315 -0
  53. package/dist/components/animate-ui/primitives/effects/highlight.js.map +1 -0
  54. package/dist/components/animate-ui/primitives/texts/counting-number.d.ts +16 -0
  55. package/dist/components/animate-ui/primitives/texts/counting-number.d.ts.map +1 -0
  56. package/dist/components/animate-ui/primitives/texts/counting-number.js +69 -0
  57. package/dist/components/animate-ui/primitives/texts/counting-number.js.map +1 -0
  58. package/dist/components/ui/alert-dialog.d.ts +21 -0
  59. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  60. package/dist/components/ui/alert-dialog.js +43 -0
  61. package/dist/components/ui/alert-dialog.js.map +1 -0
  62. package/dist/components/ui/badge/badge.d.ts +37 -0
  63. package/dist/components/ui/badge/badge.d.ts.map +1 -0
  64. package/dist/components/ui/badge/badge.js +40 -0
  65. package/dist/components/ui/badge/badge.js.map +1 -0
  66. package/dist/components/ui/badge/badge.styles.d.ts +23 -0
  67. package/dist/components/ui/badge/badge.styles.d.ts.map +1 -0
  68. package/dist/components/ui/badge/badge.styles.js +39 -0
  69. package/dist/components/ui/badge/badge.styles.js.map +1 -0
  70. package/dist/components/ui/badge/badge.types.d.ts +38 -0
  71. package/dist/components/ui/badge/badge.types.d.ts.map +1 -0
  72. package/dist/components/ui/badge/badge.types.js +2 -0
  73. package/dist/components/ui/badge/badge.types.js.map +1 -0
  74. package/dist/components/ui/badge/index.d.ts +8 -0
  75. package/dist/components/ui/badge/index.d.ts.map +1 -0
  76. package/dist/components/ui/badge/index.js +7 -0
  77. package/dist/components/ui/badge/index.js.map +1 -0
  78. package/dist/components/ui/button/button.d.ts +79 -0
  79. package/dist/components/ui/button/button.d.ts.map +1 -0
  80. package/dist/components/ui/button/button.js +121 -0
  81. package/dist/components/ui/button/button.js.map +1 -0
  82. package/dist/components/ui/button/button.styles.d.ts +33 -0
  83. package/dist/components/ui/button/button.styles.d.ts.map +1 -0
  84. package/dist/components/ui/button/button.styles.js +54 -0
  85. package/dist/components/ui/button/button.styles.js.map +1 -0
  86. package/dist/components/ui/button/button.types.d.ts +103 -0
  87. package/dist/components/ui/button/button.types.d.ts.map +1 -0
  88. package/dist/components/ui/button/button.types.js +2 -0
  89. package/dist/components/ui/button/button.types.js.map +1 -0
  90. package/dist/components/ui/button/index.d.ts +7 -0
  91. package/dist/components/ui/button/index.d.ts.map +1 -0
  92. package/dist/components/ui/button/index.js +7 -0
  93. package/dist/components/ui/button/index.js.map +1 -0
  94. package/dist/components/ui/card.d.ts +14 -0
  95. package/dist/components/ui/card.d.ts.map +1 -0
  96. package/dist/components/ui/card.js +38 -0
  97. package/dist/components/ui/card.js.map +1 -0
  98. package/dist/components/ui/combobox.d.ts +25 -0
  99. package/dist/components/ui/combobox.d.ts.map +1 -0
  100. package/dist/components/ui/combobox.js +62 -0
  101. package/dist/components/ui/combobox.js.map +1 -0
  102. package/dist/components/ui/devenv-bracket.d.ts +30 -0
  103. package/dist/components/ui/devenv-bracket.d.ts.map +1 -0
  104. package/dist/components/ui/devenv-bracket.js +49 -0
  105. package/dist/components/ui/devenv-bracket.js.map +1 -0
  106. package/dist/components/ui/dropdown-menu.d.ts +30 -0
  107. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  108. package/dist/components/ui/dropdown-menu.js +53 -0
  109. package/dist/components/ui/dropdown-menu.js.map +1 -0
  110. package/dist/components/ui/field.d.ts +25 -0
  111. package/dist/components/ui/field.d.ts.map +1 -0
  112. package/dist/components/ui/field.js +69 -0
  113. package/dist/components/ui/field.js.map +1 -0
  114. package/dist/components/ui/index.d.ts +23 -0
  115. package/dist/components/ui/index.d.ts.map +1 -0
  116. package/dist/components/ui/index.js +25 -0
  117. package/dist/components/ui/index.js.map +1 -0
  118. package/dist/components/ui/input-group.d.ts +19 -0
  119. package/dist/components/ui/input-group.d.ts.map +1 -0
  120. package/dist/components/ui/input-group.js +58 -0
  121. package/dist/components/ui/input-group.js.map +1 -0
  122. package/dist/components/ui/input.d.ts +4 -0
  123. package/dist/components/ui/input.d.ts.map +1 -0
  124. package/dist/components/ui/input.js +8 -0
  125. package/dist/components/ui/input.js.map +1 -0
  126. package/dist/components/ui/label.d.ts +4 -0
  127. package/dist/components/ui/label.d.ts.map +1 -0
  128. package/dist/components/ui/label.js +7 -0
  129. package/dist/components/ui/label.js.map +1 -0
  130. package/dist/components/ui/morphing-popover/index.d.ts +10 -0
  131. package/dist/components/ui/morphing-popover/index.d.ts.map +1 -0
  132. package/dist/components/ui/morphing-popover/index.js +9 -0
  133. package/dist/components/ui/morphing-popover/index.js.map +1 -0
  134. package/dist/components/ui/morphing-popover/morphing-popover.d.ts +54 -0
  135. package/dist/components/ui/morphing-popover/morphing-popover.d.ts.map +1 -0
  136. package/dist/components/ui/morphing-popover/morphing-popover.js +50 -0
  137. package/dist/components/ui/morphing-popover/morphing-popover.js.map +1 -0
  138. package/dist/components/ui/select.d.ts +16 -0
  139. package/dist/components/ui/select.d.ts.map +1 -0
  140. package/dist/components/ui/select.js +35 -0
  141. package/dist/components/ui/select.js.map +1 -0
  142. package/dist/components/ui/separator.d.ts +4 -0
  143. package/dist/components/ui/separator.d.ts.map +1 -0
  144. package/dist/components/ui/separator.js +9 -0
  145. package/dist/components/ui/separator.js.map +1 -0
  146. package/dist/components/ui/textarea.d.ts +4 -0
  147. package/dist/components/ui/textarea.d.ts.map +1 -0
  148. package/dist/components/ui/textarea.js +7 -0
  149. package/dist/components/ui/textarea.js.map +1 -0
  150. package/dist/hooks/use-auto-height.d.ts +11 -0
  151. package/dist/hooks/use-auto-height.d.ts.map +1 -0
  152. package/dist/hooks/use-auto-height.js +75 -0
  153. package/dist/hooks/use-auto-height.js.map +1 -0
  154. package/dist/hooks/use-controlled-state.d.ts +9 -0
  155. package/dist/hooks/use-controlled-state.d.ts.map +1 -0
  156. package/dist/hooks/use-controlled-state.js +16 -0
  157. package/dist/hooks/use-controlled-state.js.map +1 -0
  158. package/dist/hooks/use-data-state.d.ts +5 -0
  159. package/dist/hooks/use-data-state.d.ts.map +1 -0
  160. package/dist/hooks/use-data-state.js +45 -0
  161. package/dist/hooks/use-data-state.js.map +1 -0
  162. package/dist/hooks/use-is-in-view.d.ts +13 -0
  163. package/dist/hooks/use-is-in-view.d.ts.map +1 -0
  164. package/dist/hooks/use-is-in-view.js +15 -0
  165. package/dist/hooks/use-is-in-view.js.map +1 -0
  166. package/dist/icons/index.d.ts +8 -0
  167. package/dist/icons/index.d.ts.map +1 -0
  168. package/dist/icons/index.js +11 -0
  169. package/dist/icons/index.js.map +1 -0
  170. package/dist/icons/lucide-animated/activity.d.ts +11 -0
  171. package/dist/icons/lucide-animated/activity.d.ts.map +1 -0
  172. package/dist/icons/lucide-animated/activity.js +57 -0
  173. package/dist/icons/lucide-animated/activity.js.map +1 -0
  174. package/dist/icons/lucide-animated/arrow-down-to-line.d.ts +23 -0
  175. package/dist/icons/lucide-animated/arrow-down-to-line.d.ts.map +1 -0
  176. package/dist/icons/lucide-animated/arrow-down-to-line.js +23 -0
  177. package/dist/icons/lucide-animated/arrow-down-to-line.js.map +1 -0
  178. package/dist/icons/lucide-animated/arrow-up.d.ts +23 -0
  179. package/dist/icons/lucide-animated/arrow-up.d.ts.map +1 -0
  180. package/dist/icons/lucide-animated/arrow-up.js +23 -0
  181. package/dist/icons/lucide-animated/arrow-up.js.map +1 -0
  182. package/dist/icons/lucide-animated/bell-electric.d.ts +11 -0
  183. package/dist/icons/lucide-animated/bell-electric.d.ts.map +1 -0
  184. package/dist/icons/lucide-animated/bell-electric.js +58 -0
  185. package/dist/icons/lucide-animated/bell-electric.js.map +1 -0
  186. package/dist/icons/lucide-animated/bell.d.ts +11 -0
  187. package/dist/icons/lucide-animated/bell.d.ts.map +1 -0
  188. package/dist/icons/lucide-animated/bell.js +43 -0
  189. package/dist/icons/lucide-animated/bell.js.map +1 -0
  190. package/dist/icons/lucide-animated/bot.d.ts +11 -0
  191. package/dist/icons/lucide-animated/bot.d.ts.map +1 -0
  192. package/dist/icons/lucide-animated/bot.js +58 -0
  193. package/dist/icons/lucide-animated/bot.js.map +1 -0
  194. package/dist/icons/lucide-animated/box.d.ts +11 -0
  195. package/dist/icons/lucide-animated/box.d.ts.map +1 -0
  196. package/dist/icons/lucide-animated/box.js +54 -0
  197. package/dist/icons/lucide-animated/box.js.map +1 -0
  198. package/dist/icons/lucide-animated/check.d.ts +7 -0
  199. package/dist/icons/lucide-animated/check.d.ts.map +1 -0
  200. package/dist/icons/lucide-animated/check.js +10 -0
  201. package/dist/icons/lucide-animated/check.js.map +1 -0
  202. package/dist/icons/lucide-animated/circle-check.d.ts +11 -0
  203. package/dist/icons/lucide-animated/circle-check.d.ts.map +1 -0
  204. package/dist/icons/lucide-animated/circle-check.js +54 -0
  205. package/dist/icons/lucide-animated/circle-check.js.map +1 -0
  206. package/dist/icons/lucide-animated/delete.d.ts +11 -0
  207. package/dist/icons/lucide-animated/delete.d.ts.map +1 -0
  208. package/dist/icons/lucide-animated/delete.js +54 -0
  209. package/dist/icons/lucide-animated/delete.js.map +1 -0
  210. package/dist/icons/lucide-animated/download.d.ts +11 -0
  211. package/dist/icons/lucide-animated/download.d.ts.map +1 -0
  212. package/dist/icons/lucide-animated/download.js +48 -0
  213. package/dist/icons/lucide-animated/download.js.map +1 -0
  214. package/dist/icons/lucide-animated/edit-2.d.ts +7 -0
  215. package/dist/icons/lucide-animated/edit-2.d.ts.map +1 -0
  216. package/dist/icons/lucide-animated/edit-2.js +10 -0
  217. package/dist/icons/lucide-animated/edit-2.js.map +1 -0
  218. package/dist/icons/lucide-animated/globe.d.ts +7 -0
  219. package/dist/icons/lucide-animated/globe.d.ts.map +1 -0
  220. package/dist/icons/lucide-animated/globe.js +10 -0
  221. package/dist/icons/lucide-animated/globe.js.map +1 -0
  222. package/dist/icons/lucide-animated/home.d.ts +11 -0
  223. package/dist/icons/lucide-animated/home.d.ts.map +1 -0
  224. package/dist/icons/lucide-animated/home.js +50 -0
  225. package/dist/icons/lucide-animated/home.js.map +1 -0
  226. package/dist/icons/lucide-animated/index.d.ts +38 -0
  227. package/dist/icons/lucide-animated/index.d.ts.map +1 -0
  228. package/dist/icons/lucide-animated/index.js +38 -0
  229. package/dist/icons/lucide-animated/index.js.map +1 -0
  230. package/dist/icons/lucide-animated/layers.d.ts +7 -0
  231. package/dist/icons/lucide-animated/layers.d.ts.map +1 -0
  232. package/dist/icons/lucide-animated/layers.js +10 -0
  233. package/dist/icons/lucide-animated/layers.js.map +1 -0
  234. package/dist/icons/lucide-animated/layout-panel-top.d.ts +11 -0
  235. package/dist/icons/lucide-animated/layout-panel-top.d.ts.map +1 -0
  236. package/dist/icons/lucide-animated/layout-panel-top.js +68 -0
  237. package/dist/icons/lucide-animated/layout-panel-top.js.map +1 -0
  238. package/dist/icons/lucide-animated/list.d.ts +23 -0
  239. package/dist/icons/lucide-animated/list.d.ts.map +1 -0
  240. package/dist/icons/lucide-animated/list.js +23 -0
  241. package/dist/icons/lucide-animated/list.js.map +1 -0
  242. package/dist/icons/lucide-animated/package.d.ts +7 -0
  243. package/dist/icons/lucide-animated/package.d.ts.map +1 -0
  244. package/dist/icons/lucide-animated/package.js +10 -0
  245. package/dist/icons/lucide-animated/package.js.map +1 -0
  246. package/dist/icons/lucide-animated/palette.d.ts +7 -0
  247. package/dist/icons/lucide-animated/palette.d.ts.map +1 -0
  248. package/dist/icons/lucide-animated/palette.js +10 -0
  249. package/dist/icons/lucide-animated/palette.js.map +1 -0
  250. package/dist/icons/lucide-animated/plus.d.ts +11 -0
  251. package/dist/icons/lucide-animated/plus.d.ts.map +1 -0
  252. package/dist/icons/lucide-animated/plus.js +43 -0
  253. package/dist/icons/lucide-animated/plus.js.map +1 -0
  254. package/dist/icons/lucide-animated/refresh-cw.d.ts +7 -0
  255. package/dist/icons/lucide-animated/refresh-cw.d.ts.map +1 -0
  256. package/dist/icons/lucide-animated/refresh-cw.js +10 -0
  257. package/dist/icons/lucide-animated/refresh-cw.js.map +1 -0
  258. package/dist/icons/lucide-animated/rocket.d.ts +7 -0
  259. package/dist/icons/lucide-animated/rocket.d.ts.map +1 -0
  260. package/dist/icons/lucide-animated/rocket.js +10 -0
  261. package/dist/icons/lucide-animated/rocket.js.map +1 -0
  262. package/dist/icons/lucide-animated/save.d.ts +7 -0
  263. package/dist/icons/lucide-animated/save.d.ts.map +1 -0
  264. package/dist/icons/lucide-animated/save.js +10 -0
  265. package/dist/icons/lucide-animated/save.js.map +1 -0
  266. package/dist/icons/lucide-animated/search.d.ts +11 -0
  267. package/dist/icons/lucide-animated/search.d.ts.map +1 -0
  268. package/dist/icons/lucide-animated/search.js +45 -0
  269. package/dist/icons/lucide-animated/search.js.map +1 -0
  270. package/dist/icons/lucide-animated/settings.d.ts +11 -0
  271. package/dist/icons/lucide-animated/settings.d.ts.map +1 -0
  272. package/dist/icons/lucide-animated/settings.js +43 -0
  273. package/dist/icons/lucide-animated/settings.js.map +1 -0
  274. package/dist/icons/lucide-animated/terminal.d.ts +24 -0
  275. package/dist/icons/lucide-animated/terminal.d.ts.map +1 -0
  276. package/dist/icons/lucide-animated/terminal.js +5 -0
  277. package/dist/icons/lucide-animated/terminal.js.map +1 -0
  278. package/dist/icons/lucide-animated/trash-2.d.ts +7 -0
  279. package/dist/icons/lucide-animated/trash-2.d.ts.map +1 -0
  280. package/dist/icons/lucide-animated/trash-2.js +10 -0
  281. package/dist/icons/lucide-animated/trash-2.js.map +1 -0
  282. package/dist/icons/lucide-animated/trending-down.d.ts +11 -0
  283. package/dist/icons/lucide-animated/trending-down.d.ts.map +1 -0
  284. package/dist/icons/lucide-animated/trending-down.js +87 -0
  285. package/dist/icons/lucide-animated/trending-down.js.map +1 -0
  286. package/dist/icons/lucide-animated/trending-up.d.ts +11 -0
  287. package/dist/icons/lucide-animated/trending-up.d.ts.map +1 -0
  288. package/dist/icons/lucide-animated/trending-up.js +87 -0
  289. package/dist/icons/lucide-animated/trending-up.js.map +1 -0
  290. package/dist/icons/lucide-animated/type.d.ts +7 -0
  291. package/dist/icons/lucide-animated/type.d.ts.map +1 -0
  292. package/dist/icons/lucide-animated/type.js +10 -0
  293. package/dist/icons/lucide-animated/type.js.map +1 -0
  294. package/dist/icons/lucide-animated/upload.d.ts +7 -0
  295. package/dist/icons/lucide-animated/upload.d.ts.map +1 -0
  296. package/dist/icons/lucide-animated/upload.js +10 -0
  297. package/dist/icons/lucide-animated/upload.js.map +1 -0
  298. package/dist/icons/lucide-animated/x.d.ts +11 -0
  299. package/dist/icons/lucide-animated/x.d.ts.map +1 -0
  300. package/dist/icons/lucide-animated/x.js +46 -0
  301. package/dist/icons/lucide-animated/x.js.map +1 -0
  302. package/dist/index.css +129 -0
  303. package/dist/index.d.ts +15 -0
  304. package/dist/index.d.ts.map +1 -0
  305. package/dist/index.js +18 -0
  306. package/dist/index.js.map +1 -0
  307. package/dist/lib/get-strict-context.d.ts +10 -0
  308. package/dist/lib/get-strict-context.d.ts.map +1 -0
  309. package/dist/lib/get-strict-context.js +16 -0
  310. package/dist/lib/get-strict-context.js.map +1 -0
  311. package/dist/lib/utils.d.ts +20 -0
  312. package/dist/lib/utils.d.ts.map +1 -0
  313. package/dist/lib/utils.js +23 -0
  314. package/dist/lib/utils.js.map +1 -0
  315. package/package.json +84 -0
  316. package/src/assets/react.svg +1 -0
  317. package/src/components/animate-ui/primitives/animate/slot.tsx +96 -0
  318. package/src/components/animate-ui/primitives/base/accordion.tsx +179 -0
  319. package/src/components/animate-ui/primitives/base/alert-dialog.tsx +218 -0
  320. package/src/components/animate-ui/primitives/base/checkbox.tsx +153 -0
  321. package/src/components/animate-ui/primitives/base/dialog.tsx +203 -0
  322. package/src/components/animate-ui/primitives/base/menu.tsx +463 -0
  323. package/src/components/animate-ui/primitives/base/popover.tsx +167 -0
  324. package/src/components/animate-ui/primitives/base/progress.tsx +103 -0
  325. package/src/components/animate-ui/primitives/base/switch.tsx +158 -0
  326. package/src/components/animate-ui/primitives/base/tabs.tsx +202 -0
  327. package/src/components/animate-ui/primitives/base/tooltip.tsx +209 -0
  328. package/src/components/animate-ui/primitives/effects/auto-height.tsx +55 -0
  329. package/src/components/animate-ui/primitives/effects/highlight.tsx +640 -0
  330. package/src/components/animate-ui/primitives/texts/counting-number.tsx +119 -0
  331. package/src/components/ui/alert-dialog.tsx +177 -0
  332. package/src/components/ui/badge/badge.styles.ts +46 -0
  333. package/src/components/ui/badge/badge.tsx +52 -0
  334. package/src/components/ui/badge/badge.types.ts +41 -0
  335. package/src/components/ui/badge/index.ts +8 -0
  336. package/src/components/ui/button/button.styles.ts +66 -0
  337. package/src/components/ui/button/button.tsx +209 -0
  338. package/src/components/ui/button/button.types.ts +125 -0
  339. package/src/components/ui/button/index.ts +7 -0
  340. package/src/components/ui/card.tsx +108 -0
  341. package/src/components/ui/combobox.tsx +293 -0
  342. package/src/components/ui/devenv-bracket.tsx +81 -0
  343. package/src/components/ui/dropdown-menu.tsx +261 -0
  344. package/src/components/ui/field.tsx +227 -0
  345. package/src/components/ui/index.ts +26 -0
  346. package/src/components/ui/input-group.tsx +149 -0
  347. package/src/components/ui/input.tsx +20 -0
  348. package/src/components/ui/label.tsx +18 -0
  349. package/src/components/ui/morphing-popover/index.ts +10 -0
  350. package/src/components/ui/morphing-popover/morphing-popover.module.css +153 -0
  351. package/src/components/ui/morphing-popover/morphing-popover.tsx +183 -0
  352. package/src/components/ui/select.tsx +190 -0
  353. package/src/components/ui/separator.tsx +25 -0
  354. package/src/components/ui/textarea.tsx +18 -0
  355. package/src/hooks/use-auto-height.tsx +102 -0
  356. package/src/hooks/use-controlled-state.tsx +33 -0
  357. package/src/hooks/use-data-state.tsx +54 -0
  358. package/src/hooks/use-is-in-view.tsx +25 -0
  359. package/src/icons/index.ts +12 -0
  360. package/src/icons/lucide-animated/activity.tsx +109 -0
  361. package/src/icons/lucide-animated/arrow-down-to-line.tsx +51 -0
  362. package/src/icons/lucide-animated/arrow-up.tsx +50 -0
  363. package/src/icons/lucide-animated/bell-electric.tsx +124 -0
  364. package/src/icons/lucide-animated/bell.tsx +93 -0
  365. package/src/icons/lucide-animated/bot.tsx +122 -0
  366. package/src/icons/lucide-animated/box.tsx +117 -0
  367. package/src/icons/lucide-animated/check.tsx +21 -0
  368. package/src/icons/lucide-animated/circle-check.tsx +107 -0
  369. package/src/icons/lucide-animated/delete.tsx +133 -0
  370. package/src/icons/lucide-animated/download.tsx +99 -0
  371. package/src/icons/lucide-animated/edit-2.tsx +21 -0
  372. package/src/icons/lucide-animated/globe.tsx +23 -0
  373. package/src/icons/lucide-animated/home.tsx +103 -0
  374. package/src/icons/lucide-animated/index.ts +38 -0
  375. package/src/icons/lucide-animated/layers.tsx +23 -0
  376. package/src/icons/lucide-animated/layout-panel-top.tsx +143 -0
  377. package/src/icons/lucide-animated/list.tsx +54 -0
  378. package/src/icons/lucide-animated/package.tsx +24 -0
  379. package/src/icons/lucide-animated/palette.tsx +25 -0
  380. package/src/icons/lucide-animated/plus.tsx +92 -0
  381. package/src/icons/lucide-animated/refresh-cw.tsx +24 -0
  382. package/src/icons/lucide-animated/rocket.tsx +24 -0
  383. package/src/icons/lucide-animated/save.tsx +23 -0
  384. package/src/icons/lucide-animated/search.tsx +94 -0
  385. package/src/icons/lucide-animated/settings.tsx +92 -0
  386. package/src/icons/lucide-animated/terminal.tsx +46 -0
  387. package/src/icons/lucide-animated/trash-2.tsx +25 -0
  388. package/src/icons/lucide-animated/trending-down.tsx +151 -0
  389. package/src/icons/lucide-animated/trending-up.tsx +150 -0
  390. package/src/icons/lucide-animated/type.tsx +23 -0
  391. package/src/icons/lucide-animated/upload.tsx +23 -0
  392. package/src/icons/lucide-animated/x.tsx +102 -0
  393. package/src/index.css +129 -0
  394. package/src/index.ts +20 -0
  395. package/src/lib/get-strict-context.tsx +36 -0
  396. package/src/lib/utils.ts +24 -0
  397. package/src/types/css-modules.d.ts +18 -0
@@ -0,0 +1,107 @@
1
+ "use client";
2
+
3
+ import type { Variants } from "framer-motion";
4
+ import { motion, useAnimation } from "framer-motion";
5
+ import type { HTMLAttributes } from "react";
6
+ import { forwardRef, useCallback, useImperativeHandle, useRef } from "react";
7
+
8
+ import { cn } from "@/lib/utils";
9
+
10
+ export interface CircleCheckIconHandle {
11
+ startAnimation: () => void;
12
+ stopAnimation: () => void;
13
+ }
14
+
15
+ interface CircleCheckIconProps extends HTMLAttributes<HTMLDivElement> {
16
+ size?: number;
17
+ }
18
+
19
+ const PATH_VARIANTS: Variants = {
20
+ normal: {
21
+ opacity: 1,
22
+ pathLength: 1,
23
+ transition: {
24
+ duration: 0.3,
25
+ opacity: { duration: 0.1 },
26
+ },
27
+ },
28
+ animate: {
29
+ opacity: [0, 1],
30
+ pathLength: [0, 1],
31
+ transition: {
32
+ duration: 0.4,
33
+ opacity: { duration: 0.1 },
34
+ },
35
+ },
36
+ };
37
+
38
+ const CircleCheckIcon = forwardRef<CircleCheckIconHandle, CircleCheckIconProps>(
39
+ ({ onMouseEnter, onMouseLeave, className, size = 28, ...props }, ref) => {
40
+ const controls = useAnimation();
41
+ const isControlledRef = useRef(false);
42
+
43
+ useImperativeHandle(ref, () => {
44
+ isControlledRef.current = true;
45
+
46
+ return {
47
+ startAnimation: () => controls.start("animate"),
48
+ stopAnimation: () => controls.start("normal"),
49
+ };
50
+ });
51
+
52
+ const handleMouseEnter = useCallback(
53
+ (e: React.MouseEvent<HTMLDivElement>) => {
54
+ if (isControlledRef.current) {
55
+ onMouseEnter?.(e);
56
+ } else {
57
+ controls.start("animate");
58
+ }
59
+ },
60
+ [controls, onMouseEnter]
61
+ );
62
+
63
+ const handleMouseLeave = useCallback(
64
+ (e: React.MouseEvent<HTMLDivElement>) => {
65
+ if (isControlledRef.current) {
66
+ onMouseLeave?.(e);
67
+ } else {
68
+ controls.start("normal");
69
+ }
70
+ },
71
+ [controls, onMouseLeave]
72
+ );
73
+
74
+ return (
75
+ <div
76
+ className={cn(className)}
77
+ onMouseEnter={handleMouseEnter}
78
+ onMouseLeave={handleMouseLeave}
79
+ {...props}
80
+ >
81
+ <svg
82
+ fill="none"
83
+ height={size}
84
+ stroke="currentColor"
85
+ strokeLinecap="round"
86
+ strokeLinejoin="round"
87
+ strokeWidth="2"
88
+ viewBox="0 0 24 24"
89
+ width={size}
90
+ xmlns="http://www.w3.org/2000/svg"
91
+ >
92
+ <circle cx="12" cy="12" r="10" />
93
+ <motion.path
94
+ animate={controls}
95
+ d="m9 12 2 2 4-4"
96
+ initial="normal"
97
+ variants={PATH_VARIANTS}
98
+ />
99
+ </svg>
100
+ </div>
101
+ );
102
+ }
103
+ );
104
+
105
+ CircleCheckIcon.displayName = "CircleCheckIcon";
106
+
107
+ export { CircleCheckIcon };
@@ -0,0 +1,133 @@
1
+ "use client";
2
+
3
+ import type { Transition, Variants } from "framer-motion";
4
+ import { motion, useAnimation } from "framer-motion";
5
+ import type { HTMLAttributes } from "react";
6
+ import { forwardRef, useCallback, useImperativeHandle, useRef } from "react";
7
+
8
+ import { cn } from "@/lib/utils";
9
+
10
+ export interface DeleteIconHandle {
11
+ startAnimation: () => void;
12
+ stopAnimation: () => void;
13
+ }
14
+
15
+ interface DeleteIconProps extends HTMLAttributes<HTMLDivElement> {
16
+ size?: number;
17
+ }
18
+
19
+ const LID_VARIANTS: Variants = {
20
+ normal: { y: 0 },
21
+ animate: { y: -1.1 },
22
+ };
23
+
24
+ const SPRING_TRANSITION: Transition = {
25
+ type: "spring",
26
+ stiffness: 500,
27
+ damping: 30,
28
+ };
29
+
30
+ const DeleteIcon = forwardRef<DeleteIconHandle, DeleteIconProps>(
31
+ ({ onMouseEnter, onMouseLeave, className, size = 28, ...props }, ref) => {
32
+ const controls = useAnimation();
33
+ const isControlledRef = useRef(false);
34
+
35
+ useImperativeHandle(ref, () => {
36
+ isControlledRef.current = true;
37
+
38
+ return {
39
+ startAnimation: () => controls.start("animate"),
40
+ stopAnimation: () => controls.start("normal"),
41
+ };
42
+ });
43
+
44
+ const handleMouseEnter = useCallback(
45
+ (e: React.MouseEvent<HTMLDivElement>) => {
46
+ if (isControlledRef.current) {
47
+ onMouseEnter?.(e);
48
+ } else {
49
+ controls.start("animate");
50
+ }
51
+ },
52
+ [controls, onMouseEnter]
53
+ );
54
+
55
+ const handleMouseLeave = useCallback(
56
+ (e: React.MouseEvent<HTMLDivElement>) => {
57
+ if (isControlledRef.current) {
58
+ onMouseLeave?.(e);
59
+ } else {
60
+ controls.start("normal");
61
+ }
62
+ },
63
+ [controls, onMouseLeave]
64
+ );
65
+
66
+ return (
67
+ <div
68
+ className={cn(className)}
69
+ onMouseEnter={handleMouseEnter}
70
+ onMouseLeave={handleMouseLeave}
71
+ {...props}
72
+ >
73
+ <svg
74
+ fill="none"
75
+ height={size}
76
+ stroke="currentColor"
77
+ strokeLinecap="round"
78
+ strokeLinejoin="round"
79
+ strokeWidth="2"
80
+ viewBox="0 0 24 24"
81
+ width={size}
82
+ xmlns="http://www.w3.org/2000/svg"
83
+ >
84
+ <motion.g
85
+ animate={controls}
86
+ transition={SPRING_TRANSITION}
87
+ variants={LID_VARIANTS}
88
+ >
89
+ <path d="M3 6h18" />
90
+ <path d="M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2" />
91
+ </motion.g>
92
+ <motion.path
93
+ animate={controls}
94
+ d="M19 8v12c0 1-1 2-2 2H7c-1 0-2-1-2-2V8"
95
+ transition={SPRING_TRANSITION}
96
+ variants={{
97
+ normal: { d: "M19 8v12c0 1-1 2-2 2H7c-1 0-2-1-2-2V8" },
98
+ animate: { d: "M19 9v12c0 1-1 2-2 2H7c-1 0-2-1-2-2V9" },
99
+ }}
100
+ />
101
+ <motion.line
102
+ animate={controls}
103
+ transition={SPRING_TRANSITION}
104
+ variants={{
105
+ normal: { y1: 11, y2: 17 },
106
+ animate: { y1: 11.5, y2: 17.5 },
107
+ }}
108
+ x1="10"
109
+ x2="10"
110
+ y1="11"
111
+ y2="17"
112
+ />
113
+ <motion.line
114
+ animate={controls}
115
+ transition={SPRING_TRANSITION}
116
+ variants={{
117
+ normal: { y1: 11, y2: 17 },
118
+ animate: { y1: 11.5, y2: 17.5 },
119
+ }}
120
+ x1="14"
121
+ x2="14"
122
+ y1="11"
123
+ y2="17"
124
+ />
125
+ </svg>
126
+ </div>
127
+ );
128
+ }
129
+ );
130
+
131
+ DeleteIcon.displayName = "DeleteIcon";
132
+
133
+ export { DeleteIcon };
@@ -0,0 +1,99 @@
1
+ "use client";
2
+
3
+ import type { Variants } from "framer-motion";
4
+ import { motion, useAnimation } from "framer-motion";
5
+ import type { HTMLAttributes } from "react";
6
+ import { forwardRef, useCallback, useImperativeHandle, useRef } from "react";
7
+
8
+ import { cn } from "@/lib/utils";
9
+
10
+ export interface DownloadIconHandle {
11
+ startAnimation: () => void;
12
+ stopAnimation: () => void;
13
+ }
14
+
15
+ interface DownloadIconProps extends HTMLAttributes<HTMLDivElement> {
16
+ size?: number;
17
+ }
18
+
19
+ const ARROW_VARIANTS: Variants = {
20
+ normal: { y: 0 },
21
+ animate: {
22
+ y: 2,
23
+ transition: {
24
+ type: "spring",
25
+ stiffness: 200,
26
+ damping: 10,
27
+ mass: 1,
28
+ },
29
+ },
30
+ };
31
+
32
+ const DownloadIcon = forwardRef<DownloadIconHandle, DownloadIconProps>(
33
+ ({ onMouseEnter, onMouseLeave, className, size = 28, ...props }, ref) => {
34
+ const controls = useAnimation();
35
+ const isControlledRef = useRef(false);
36
+
37
+ useImperativeHandle(ref, () => {
38
+ isControlledRef.current = true;
39
+
40
+ return {
41
+ startAnimation: () => controls.start("animate"),
42
+ stopAnimation: () => controls.start("normal"),
43
+ };
44
+ });
45
+
46
+ const handleMouseEnter = useCallback(
47
+ (e: React.MouseEvent<HTMLDivElement>) => {
48
+ if (isControlledRef.current) {
49
+ onMouseEnter?.(e);
50
+ } else {
51
+ controls.start("animate");
52
+ }
53
+ },
54
+ [controls, onMouseEnter]
55
+ );
56
+
57
+ const handleMouseLeave = useCallback(
58
+ (e: React.MouseEvent<HTMLDivElement>) => {
59
+ if (isControlledRef.current) {
60
+ onMouseLeave?.(e);
61
+ } else {
62
+ controls.start("normal");
63
+ }
64
+ },
65
+ [controls, onMouseLeave]
66
+ );
67
+
68
+ return (
69
+ <div
70
+ className={cn(className)}
71
+ onMouseEnter={handleMouseEnter}
72
+ onMouseLeave={handleMouseLeave}
73
+ {...props}
74
+ >
75
+ <svg
76
+ fill="none"
77
+ height={size}
78
+ stroke="currentColor"
79
+ strokeLinecap="round"
80
+ strokeLinejoin="round"
81
+ strokeWidth="2"
82
+ viewBox="0 0 24 24"
83
+ width={size}
84
+ xmlns="http://www.w3.org/2000/svg"
85
+ >
86
+ <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
87
+ <motion.g animate={controls} variants={ARROW_VARIANTS}>
88
+ <polyline points="7 10 12 15 17 10" />
89
+ <line x1="12" x2="12" y1="15" y2="3" />
90
+ </motion.g>
91
+ </svg>
92
+ </div>
93
+ );
94
+ }
95
+ );
96
+
97
+ DownloadIcon.displayName = "DownloadIcon";
98
+
99
+ export { DownloadIcon };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Edit2 Icon
3
+ *
4
+ * Edit/pencil icon.
5
+ */
6
+
7
+ export function Edit2(props: React.SVGProps<SVGSVGElement>) {
8
+ return (
9
+ <svg
10
+ {...props}
11
+ viewBox="0 0 24 24"
12
+ fill="none"
13
+ stroke="currentColor"
14
+ strokeWidth="2"
15
+ strokeLinecap="round"
16
+ strokeLinejoin="round"
17
+ >
18
+ <path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z" />
19
+ </svg>
20
+ );
21
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Globe Icon
3
+ *
4
+ * Globe/world icon.
5
+ */
6
+
7
+ export function Globe(props: React.SVGProps<SVGSVGElement>) {
8
+ return (
9
+ <svg
10
+ {...props}
11
+ viewBox="0 0 24 24"
12
+ fill="none"
13
+ stroke="currentColor"
14
+ strokeWidth="2"
15
+ strokeLinecap="round"
16
+ strokeLinejoin="round"
17
+ >
18
+ <circle cx="12" cy="12" r="10" />
19
+ <path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" />
20
+ <path d="M2 12h20" />
21
+ </svg>
22
+ );
23
+ }
@@ -0,0 +1,103 @@
1
+ "use client";
2
+
3
+ import type { Transition, Variants } from "framer-motion";
4
+ import { motion, useAnimation } from "framer-motion";
5
+ import type { HTMLAttributes } from "react";
6
+ import { forwardRef, useCallback, useImperativeHandle, useRef } from "react";
7
+
8
+ import { cn } from "@/lib/utils";
9
+
10
+ export interface HomeIconHandle {
11
+ startAnimation: () => void;
12
+ stopAnimation: () => void;
13
+ }
14
+
15
+ interface HomeIconProps extends HTMLAttributes<HTMLDivElement> {
16
+ size?: number;
17
+ }
18
+
19
+ const DEFAULT_TRANSITION: Transition = {
20
+ duration: 0.6,
21
+ opacity: { duration: 0.2 },
22
+ };
23
+
24
+ const PATH_VARIANTS: Variants = {
25
+ normal: {
26
+ pathLength: 1,
27
+ opacity: 1,
28
+ },
29
+ animate: {
30
+ opacity: [0, 1],
31
+ pathLength: [0, 1],
32
+ },
33
+ };
34
+
35
+ const HomeIcon = forwardRef<HomeIconHandle, HomeIconProps>(
36
+ ({ onMouseEnter, onMouseLeave, className, size = 28, ...props }, ref) => {
37
+ const controls = useAnimation();
38
+ const isControlledRef = useRef(false);
39
+
40
+ useImperativeHandle(ref, () => {
41
+ isControlledRef.current = true;
42
+
43
+ return {
44
+ startAnimation: () => controls.start("animate"),
45
+ stopAnimation: () => controls.start("normal"),
46
+ };
47
+ });
48
+
49
+ const handleMouseEnter = useCallback(
50
+ (e: React.MouseEvent<HTMLDivElement>) => {
51
+ if (isControlledRef.current) {
52
+ onMouseEnter?.(e);
53
+ } else {
54
+ controls.start("animate");
55
+ }
56
+ },
57
+ [controls, onMouseEnter]
58
+ );
59
+
60
+ const handleMouseLeave = useCallback(
61
+ (e: React.MouseEvent<HTMLDivElement>) => {
62
+ if (isControlledRef.current) {
63
+ onMouseLeave?.(e);
64
+ } else {
65
+ controls.start("normal");
66
+ }
67
+ },
68
+ [controls, onMouseLeave]
69
+ );
70
+ return (
71
+ <div
72
+ className={cn(className)}
73
+ onMouseEnter={handleMouseEnter}
74
+ onMouseLeave={handleMouseLeave}
75
+ {...props}
76
+ >
77
+ <svg
78
+ fill="none"
79
+ height={size}
80
+ stroke="currentColor"
81
+ strokeLinecap="round"
82
+ strokeLinejoin="round"
83
+ strokeWidth="2"
84
+ viewBox="0 0 24 24"
85
+ width={size}
86
+ xmlns="http://www.w3.org/2000/svg"
87
+ >
88
+ <path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" />
89
+ <motion.path
90
+ animate={controls}
91
+ d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"
92
+ transition={DEFAULT_TRANSITION}
93
+ variants={PATH_VARIANTS}
94
+ />
95
+ </svg>
96
+ </div>
97
+ );
98
+ }
99
+ );
100
+
101
+ HomeIcon.displayName = "HomeIcon";
102
+
103
+ export { HomeIcon };
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Lucide animated icons barrel export
3
+ *
4
+ * @module @mks2508/mks-ui/icons/lucide-animated
5
+ */
6
+
7
+ export * from "./activity";
8
+ export * from "./arrow-down-to-line";
9
+ export * from "./arrow-up";
10
+ export * from "./bell";
11
+ export * from "./bell-electric";
12
+ export * from "./bot";
13
+ export * from "./box";
14
+ export * from "./check";
15
+ export * from "./circle-check";
16
+ export * from "./delete";
17
+ export * from "./download";
18
+ export * from "./edit-2";
19
+ export * from "./globe";
20
+ export * from "./home";
21
+ export * from "./layers";
22
+ export * from "./layout-panel-top";
23
+ export * from "./list";
24
+ export * from "./package";
25
+ export * from "./palette";
26
+ export * from "./plus";
27
+ export * from "./refresh-cw";
28
+ export * from "./rocket";
29
+ export * from "./save";
30
+ export * from "./search";
31
+ export * from "./settings";
32
+ export * from "./terminal";
33
+ export * from "./trash-2";
34
+ export * from "./trending-down";
35
+ export * from "./trending-up";
36
+ export * from "./type";
37
+ export * from "./upload";
38
+ export * from "./x";
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Layers Icon
3
+ *
4
+ * Layers/stack icon.
5
+ */
6
+
7
+ export function Layers(props: React.SVGProps<SVGSVGElement>) {
8
+ return (
9
+ <svg
10
+ {...props}
11
+ viewBox="0 0 24 24"
12
+ fill="none"
13
+ stroke="currentColor"
14
+ strokeWidth="2"
15
+ strokeLinecap="round"
16
+ strokeLinejoin="round"
17
+ >
18
+ <polygon points="12 2 2 7 12 12 22 7 12 2" />
19
+ <polyline points="2 17 12 22 22 17" />
20
+ <polyline points="2 12 12 17 22 12" />
21
+ </svg>
22
+ );
23
+ }
@@ -0,0 +1,143 @@
1
+ "use client";
2
+
3
+ import { motion, useAnimation } from "framer-motion";
4
+ import type { HTMLAttributes } from "react";
5
+ import { forwardRef, useCallback, useImperativeHandle, useRef } from "react";
6
+
7
+ import { cn } from "@/lib/utils";
8
+
9
+ export interface LayoutPanelTopIconHandle {
10
+ startAnimation: () => void;
11
+ stopAnimation: () => void;
12
+ }
13
+
14
+ interface LayoutPanelTopIconProps extends HTMLAttributes<HTMLDivElement> {
15
+ size?: number;
16
+ }
17
+
18
+ const LayoutPanelTopIcon = forwardRef<
19
+ LayoutPanelTopIconHandle,
20
+ LayoutPanelTopIconProps
21
+ >(({ onMouseEnter, onMouseLeave, className, size = 28, ...props }, ref) => {
22
+ const controls = useAnimation();
23
+ const isControlledRef = useRef(false);
24
+
25
+ useImperativeHandle(ref, () => {
26
+ isControlledRef.current = true;
27
+
28
+ return {
29
+ startAnimation: () => controls.start("animate"),
30
+ stopAnimation: () => controls.start("normal"),
31
+ };
32
+ });
33
+
34
+ const handleMouseEnter = useCallback(
35
+ (e: React.MouseEvent<HTMLDivElement>) => {
36
+ if (isControlledRef.current) {
37
+ onMouseEnter?.(e);
38
+ } else {
39
+ controls.start("animate");
40
+ }
41
+ },
42
+ [controls, onMouseEnter]
43
+ );
44
+
45
+ const handleMouseLeave = useCallback(
46
+ (e: React.MouseEvent<HTMLDivElement>) => {
47
+ if (isControlledRef.current) {
48
+ onMouseLeave?.(e);
49
+ } else {
50
+ controls.start("normal");
51
+ }
52
+ },
53
+ [controls, onMouseLeave]
54
+ );
55
+
56
+ return (
57
+ <div
58
+ className={cn(className)}
59
+ onMouseEnter={handleMouseEnter}
60
+ onMouseLeave={handleMouseLeave}
61
+ {...props}
62
+ >
63
+ <svg
64
+ fill="none"
65
+ height={size}
66
+ stroke="currentColor"
67
+ strokeLinecap="round"
68
+ strokeLinejoin="round"
69
+ strokeWidth="2"
70
+ viewBox="0 0 24 24"
71
+ width={size}
72
+ xmlns="http://www.w3.org/2000/svg"
73
+ >
74
+ <motion.rect
75
+ animate={controls}
76
+ height="7"
77
+ initial="normal"
78
+ rx="1"
79
+ variants={{
80
+ normal: { opacity: 1, translateY: 0 },
81
+ animate: {
82
+ opacity: [0, 1],
83
+ translateY: [-5, 0],
84
+ transition: {
85
+ opacity: { duration: 0.5, times: [0.2, 1] },
86
+ duration: 0.5,
87
+ },
88
+ },
89
+ }}
90
+ width="18"
91
+ x="3"
92
+ y="3"
93
+ />
94
+ <motion.rect
95
+ animate={controls}
96
+ height="7"
97
+ initial="normal"
98
+ rx="1"
99
+ variants={{
100
+ normal: { opacity: 1, translateX: 0 },
101
+ animate: {
102
+ opacity: [0, 1],
103
+ translateX: [-10, 0],
104
+ transition: {
105
+ opacity: { duration: 0.7, times: [0.5, 1] },
106
+ translateX: { delay: 0.3 },
107
+ duration: 0.5,
108
+ },
109
+ },
110
+ }}
111
+ width="7"
112
+ x="3"
113
+ y="14"
114
+ />
115
+ <motion.rect
116
+ animate={controls}
117
+ height="7"
118
+ initial="normal"
119
+ rx="1"
120
+ variants={{
121
+ normal: { opacity: 1, translateX: 0 },
122
+ animate: {
123
+ opacity: [0, 1],
124
+ translateX: [10, 0],
125
+ transition: {
126
+ opacity: { duration: 0.8, times: [0.5, 1] },
127
+ translateX: { delay: 0.4 },
128
+ duration: 0.5,
129
+ },
130
+ },
131
+ }}
132
+ width="7"
133
+ x="14"
134
+ y="14"
135
+ />
136
+ </svg>
137
+ </div>
138
+ );
139
+ });
140
+
141
+ LayoutPanelTopIcon.displayName = "LayoutPanelTopIcon";
142
+
143
+ export { LayoutPanelTopIcon };