@mks2508/mks-ui 0.1.3 → 0.2.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 (677) hide show
  1. package/README.md +123 -60
  2. package/dist/core/index.d.ts +7 -0
  3. package/dist/core/index.d.ts.map +1 -0
  4. package/dist/core/types.d.ts +79 -0
  5. package/dist/core/types.d.ts.map +1 -0
  6. package/dist/index.d.ts +19 -6
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +0 -56
  9. package/dist/react/components/MorphingPopover/MorphingPopover.types.d.ts +44 -0
  10. package/dist/react/components/MorphingPopover/MorphingPopover.types.d.ts.map +1 -0
  11. package/dist/react/components/MorphingPopover/index.d.ts +46 -0
  12. package/dist/react/components/MorphingPopover/index.d.ts.map +1 -0
  13. package/dist/{components/ui/morphing-popover/morphing-popover.js → react/components/MorphingPopover/index.js} +47 -7
  14. package/dist/react/components/MorphingPopover/morphing-popover.module.js +5 -0
  15. package/dist/react/components/index.d.ts +9 -0
  16. package/dist/react/components/index.d.ts.map +1 -0
  17. package/dist/react/components/index.js +1 -0
  18. package/dist/react/hooks/Animation/UseAutoHeight.d.ts +30 -0
  19. package/dist/react/hooks/Animation/UseAutoHeight.d.ts.map +1 -0
  20. package/dist/{hooks/use-auto-height.js → react/hooks/Animation/UseAutoHeight.js} +16 -2
  21. package/dist/react/hooks/DOM/UseIsInView.d.ts +32 -0
  22. package/dist/react/hooks/DOM/UseIsInView.d.ts.map +1 -0
  23. package/dist/react/hooks/DOM/UseIsInView.js +33 -0
  24. package/dist/react/hooks/State/UseControlledState.d.ts +31 -0
  25. package/dist/react/hooks/State/UseControlledState.d.ts.map +1 -0
  26. package/dist/react/hooks/State/UseControlledState.js +34 -0
  27. package/dist/react/hooks/State/UseDataState.d.ts +21 -0
  28. package/dist/react/hooks/State/UseDataState.d.ts.map +1 -0
  29. package/dist/react/hooks/State/UseDataState.js +63 -0
  30. package/dist/react/hooks/index.d.ts +14 -0
  31. package/dist/react/hooks/index.d.ts.map +1 -0
  32. package/dist/react/hooks/index.js +4 -0
  33. package/dist/react/icons/index.d.ts +8 -0
  34. package/dist/react/icons/index.d.ts.map +1 -0
  35. package/dist/react/icons/lucide-animated/activity.d.ts +11 -0
  36. package/dist/react/icons/lucide-animated/activity.d.ts.map +1 -0
  37. package/dist/{icons → react/icons}/lucide-animated/activity.js +2 -2
  38. package/dist/{icons → react/icons}/lucide-animated/arrow-down-to-line.d.ts +1 -1
  39. package/dist/react/icons/lucide-animated/arrow-down-to-line.d.ts.map +1 -0
  40. package/dist/{icons → react/icons}/lucide-animated/arrow-down-to-line.js +1 -1
  41. package/dist/{icons → react/icons}/lucide-animated/arrow-up.d.ts +1 -1
  42. package/dist/react/icons/lucide-animated/arrow-up.d.ts.map +1 -0
  43. package/dist/{icons → react/icons}/lucide-animated/arrow-up.js +1 -1
  44. package/dist/react/icons/lucide-animated/bell-electric.d.ts +11 -0
  45. package/dist/react/icons/lucide-animated/bell-electric.d.ts.map +1 -0
  46. package/dist/{icons → react/icons}/lucide-animated/bell-electric.js +2 -2
  47. package/dist/react/icons/lucide-animated/bell.d.ts +11 -0
  48. package/dist/react/icons/lucide-animated/bell.d.ts.map +1 -0
  49. package/dist/{icons → react/icons}/lucide-animated/bell.js +2 -2
  50. package/dist/react/icons/lucide-animated/bot.d.ts +11 -0
  51. package/dist/react/icons/lucide-animated/bot.d.ts.map +1 -0
  52. package/dist/{icons → react/icons}/lucide-animated/bot.js +2 -2
  53. package/dist/react/icons/lucide-animated/box.d.ts +11 -0
  54. package/dist/react/icons/lucide-animated/box.d.ts.map +1 -0
  55. package/dist/{icons → react/icons}/lucide-animated/box.js +2 -2
  56. package/dist/react/icons/lucide-animated/check.d.ts.map +1 -0
  57. package/dist/{icons → react/icons}/lucide-animated/check.js +1 -1
  58. package/dist/react/icons/lucide-animated/circle-check.d.ts +11 -0
  59. package/dist/react/icons/lucide-animated/circle-check.d.ts.map +1 -0
  60. package/dist/{icons → react/icons}/lucide-animated/circle-check.js +2 -2
  61. package/dist/react/icons/lucide-animated/delete.d.ts +11 -0
  62. package/dist/react/icons/lucide-animated/delete.d.ts.map +1 -0
  63. package/dist/{icons → react/icons}/lucide-animated/delete.js +2 -2
  64. package/dist/react/icons/lucide-animated/download.d.ts +11 -0
  65. package/dist/react/icons/lucide-animated/download.d.ts.map +1 -0
  66. package/dist/{icons → react/icons}/lucide-animated/download.js +2 -2
  67. package/dist/react/icons/lucide-animated/edit-2.d.ts.map +1 -0
  68. package/dist/{icons → react/icons}/lucide-animated/edit-2.js +1 -1
  69. package/dist/react/icons/lucide-animated/globe.d.ts.map +1 -0
  70. package/dist/{icons → react/icons}/lucide-animated/globe.js +1 -1
  71. package/dist/react/icons/lucide-animated/home.d.ts +11 -0
  72. package/dist/react/icons/lucide-animated/home.d.ts.map +1 -0
  73. package/dist/{icons → react/icons}/lucide-animated/home.js +2 -2
  74. package/dist/react/icons/lucide-animated/index.d.ts +38 -0
  75. package/dist/react/icons/lucide-animated/index.d.ts.map +1 -0
  76. package/dist/react/icons/lucide-animated/layers.d.ts.map +1 -0
  77. package/dist/{icons → react/icons}/lucide-animated/layers.js +1 -1
  78. package/dist/react/icons/lucide-animated/layout-panel-top.d.ts +11 -0
  79. package/dist/react/icons/lucide-animated/layout-panel-top.d.ts.map +1 -0
  80. package/dist/{icons → react/icons}/lucide-animated/layout-panel-top.js +2 -2
  81. package/dist/{icons → react/icons}/lucide-animated/list.d.ts +1 -1
  82. package/dist/react/icons/lucide-animated/list.d.ts.map +1 -0
  83. package/dist/{icons → react/icons}/lucide-animated/list.js +1 -1
  84. package/dist/react/icons/lucide-animated/package.d.ts.map +1 -0
  85. package/dist/{icons → react/icons}/lucide-animated/package.js +1 -1
  86. package/dist/react/icons/lucide-animated/palette.d.ts.map +1 -0
  87. package/dist/{icons → react/icons}/lucide-animated/palette.js +1 -1
  88. package/dist/react/icons/lucide-animated/plus.d.ts +11 -0
  89. package/dist/react/icons/lucide-animated/plus.d.ts.map +1 -0
  90. package/dist/{icons → react/icons}/lucide-animated/plus.js +2 -2
  91. package/dist/react/icons/lucide-animated/refresh-cw.d.ts.map +1 -0
  92. package/dist/{icons → react/icons}/lucide-animated/refresh-cw.js +1 -1
  93. package/dist/react/icons/lucide-animated/rocket.d.ts.map +1 -0
  94. package/dist/{icons → react/icons}/lucide-animated/rocket.js +1 -1
  95. package/dist/react/icons/lucide-animated/save.d.ts.map +1 -0
  96. package/dist/{icons → react/icons}/lucide-animated/save.js +1 -1
  97. package/dist/react/icons/lucide-animated/search.d.ts +11 -0
  98. package/dist/react/icons/lucide-animated/search.d.ts.map +1 -0
  99. package/dist/{icons → react/icons}/lucide-animated/search.js +2 -2
  100. package/dist/react/icons/lucide-animated/settings.d.ts +11 -0
  101. package/dist/react/icons/lucide-animated/settings.d.ts.map +1 -0
  102. package/dist/{icons → react/icons}/lucide-animated/settings.js +2 -2
  103. package/dist/{icons → react/icons}/lucide-animated/terminal.d.ts +1 -1
  104. package/dist/react/icons/lucide-animated/terminal.d.ts.map +1 -0
  105. package/dist/{icons → react/icons}/lucide-animated/terminal.js +1 -1
  106. package/dist/react/icons/lucide-animated/trash-2.d.ts.map +1 -0
  107. package/dist/{icons → react/icons}/lucide-animated/trash-2.js +1 -1
  108. package/dist/react/icons/lucide-animated/trending-down.d.ts +11 -0
  109. package/dist/react/icons/lucide-animated/trending-down.d.ts.map +1 -0
  110. package/dist/{icons → react/icons}/lucide-animated/trending-down.js +2 -2
  111. package/dist/react/icons/lucide-animated/trending-up.d.ts +11 -0
  112. package/dist/react/icons/lucide-animated/trending-up.d.ts.map +1 -0
  113. package/dist/{icons → react/icons}/lucide-animated/trending-up.js +2 -2
  114. package/dist/react/icons/lucide-animated/type.d.ts.map +1 -0
  115. package/dist/{icons → react/icons}/lucide-animated/type.js +1 -1
  116. package/dist/react/icons/lucide-animated/upload.d.ts.map +1 -0
  117. package/dist/{icons → react/icons}/lucide-animated/upload.js +1 -1
  118. package/dist/react/icons/lucide-animated/x.d.ts +11 -0
  119. package/dist/react/icons/lucide-animated/x.d.ts.map +1 -0
  120. package/dist/{icons → react/icons}/lucide-animated/x.js +2 -2
  121. package/dist/react/index.d.ts +19 -0
  122. package/dist/react/index.d.ts.map +1 -0
  123. package/dist/react/lib/get-strict-context.d.ts +30 -0
  124. package/dist/react/lib/get-strict-context.d.ts.map +1 -0
  125. package/dist/react/lib/get-strict-context.js +40 -0
  126. package/dist/react/lib/index.d.ts +8 -0
  127. package/dist/react/lib/index.d.ts.map +1 -0
  128. package/dist/react/lib/index.js +2 -0
  129. package/dist/{lib → react/lib}/utils.d.ts +2 -2
  130. package/dist/react/lib/utils.d.ts.map +1 -0
  131. package/dist/{lib → react/lib}/utils.js +3 -3
  132. package/dist/react/primitives/AutoHeight/index.d.ts +31 -0
  133. package/dist/react/primitives/AutoHeight/index.d.ts.map +1 -0
  134. package/dist/react/primitives/AutoHeight/index.js +52 -0
  135. package/dist/react/primitives/CountingNumber/index.d.ts +44 -0
  136. package/dist/react/primitives/CountingNumber/index.d.ts.map +1 -0
  137. package/dist/react/primitives/CountingNumber/index.js +97 -0
  138. package/dist/react/primitives/Highlight/Highlight.types.d.ts +113 -0
  139. package/dist/react/primitives/Highlight/Highlight.types.d.ts.map +1 -0
  140. package/dist/react/primitives/Highlight/index.d.ts +48 -0
  141. package/dist/react/primitives/Highlight/index.d.ts.map +1 -0
  142. package/dist/{components/animate-ui/primitives/effects/highlight.js → react/primitives/Highlight/index.js} +45 -5
  143. package/dist/react/primitives/Slot/index.d.ts +53 -0
  144. package/dist/react/primitives/Slot/index.d.ts.map +1 -0
  145. package/dist/{components/animate-ui/primitives/animate/slot.js → react/primitives/Slot/index.js} +27 -4
  146. package/dist/react/primitives/index.d.ts +12 -0
  147. package/dist/react/primitives/index.d.ts.map +1 -0
  148. package/dist/react/primitives/index.js +4 -0
  149. package/dist/react/ui/Accordion/Accordion.styles.d.ts +47 -0
  150. package/dist/react/ui/Accordion/Accordion.styles.d.ts.map +1 -0
  151. package/dist/react/ui/Accordion/Accordion.styles.js +54 -0
  152. package/dist/react/ui/Accordion/Accordion.types.d.ts +160 -0
  153. package/dist/react/ui/Accordion/Accordion.types.d.ts.map +1 -0
  154. package/dist/react/ui/Accordion/index.d.ts +105 -0
  155. package/dist/react/ui/Accordion/index.d.ts.map +1 -0
  156. package/dist/react/ui/Accordion/index.js +266 -0
  157. package/dist/react/ui/AlertDialog/AlertDialog.styles.d.ts +28 -0
  158. package/dist/react/ui/AlertDialog/AlertDialog.styles.d.ts.map +1 -0
  159. package/dist/react/ui/AlertDialog/AlertDialog.styles.js +29 -0
  160. package/dist/react/ui/AlertDialog/AlertDialog.types.d.ts +235 -0
  161. package/dist/react/ui/AlertDialog/AlertDialog.types.d.ts.map +1 -0
  162. package/dist/react/ui/AlertDialog/index.d.ts +194 -0
  163. package/dist/react/ui/AlertDialog/index.d.ts.map +1 -0
  164. package/dist/react/ui/AlertDialog/index.js +319 -0
  165. package/dist/react/ui/Badge/Badge.styles.d.ts +16 -0
  166. package/dist/react/ui/Badge/Badge.styles.d.ts.map +1 -0
  167. package/dist/{components/ui/badge/badge.styles.js → react/ui/Badge/Badge.styles.js} +2 -6
  168. package/dist/react/ui/Badge/Badge.types.d.ts +21 -0
  169. package/dist/react/ui/Badge/Badge.types.d.ts.map +1 -0
  170. package/dist/react/ui/Badge/index.d.ts +20 -0
  171. package/dist/react/ui/Badge/index.d.ts.map +1 -0
  172. package/dist/react/ui/Badge/index.js +34 -0
  173. package/dist/react/ui/Button/Button.styles.d.ts +21 -0
  174. package/dist/react/ui/Button/Button.styles.d.ts.map +1 -0
  175. package/dist/{components/ui/button/button.styles.js → react/ui/Button/Button.styles.js} +3 -9
  176. package/dist/react/ui/Button/Button.types.d.ts +45 -0
  177. package/dist/react/ui/Button/Button.types.d.ts.map +1 -0
  178. package/dist/react/ui/Button/index.d.ts +22 -0
  179. package/dist/react/ui/Button/index.d.ts.map +1 -0
  180. package/dist/react/ui/Button/index.js +103 -0
  181. package/dist/react/ui/Card/Card.styles.d.ts +11 -0
  182. package/dist/react/ui/Card/Card.styles.d.ts.map +1 -0
  183. package/dist/react/ui/Card/Card.styles.js +24 -0
  184. package/dist/react/ui/Card/Card.types.d.ts +22 -0
  185. package/dist/react/ui/Card/Card.types.d.ts.map +1 -0
  186. package/dist/react/ui/Card/index.d.ts +36 -0
  187. package/dist/react/ui/Card/index.d.ts.map +1 -0
  188. package/dist/react/ui/Card/index.js +82 -0
  189. package/dist/react/ui/Checkbox/Checkbox.styles.d.ts +25 -0
  190. package/dist/react/ui/Checkbox/Checkbox.styles.d.ts.map +1 -0
  191. package/dist/react/ui/Checkbox/Checkbox.styles.js +34 -0
  192. package/dist/react/ui/Checkbox/Checkbox.types.d.ts +88 -0
  193. package/dist/react/ui/Checkbox/Checkbox.types.d.ts.map +1 -0
  194. package/dist/react/ui/Checkbox/index.d.ts +59 -0
  195. package/dist/react/ui/Checkbox/index.d.ts.map +1 -0
  196. package/dist/react/ui/Checkbox/index.js +158 -0
  197. package/dist/react/ui/Combobox/Combobox.styles.d.ts +7 -0
  198. package/dist/react/ui/Combobox/Combobox.styles.d.ts.map +1 -0
  199. package/dist/react/ui/Combobox/Combobox.styles.js +17 -0
  200. package/dist/react/ui/Combobox/Combobox.types.d.ts +49 -0
  201. package/dist/react/ui/Combobox/Combobox.types.d.ts.map +1 -0
  202. package/dist/react/ui/Combobox/index.d.ts +60 -0
  203. package/dist/react/ui/Combobox/index.d.ts.map +1 -0
  204. package/dist/{components/ui/combobox.js → react/ui/Combobox/index.js} +54 -16
  205. package/dist/react/ui/CornerBracket/CornerBracket.styles.d.ts +18 -0
  206. package/dist/react/ui/CornerBracket/CornerBracket.styles.d.ts.map +1 -0
  207. package/dist/react/ui/CornerBracket/CornerBracket.styles.js +30 -0
  208. package/dist/react/ui/CornerBracket/CornerBracket.types.d.ts +12 -0
  209. package/dist/react/ui/CornerBracket/CornerBracket.types.d.ts.map +1 -0
  210. package/dist/react/ui/CornerBracket/index.d.ts +23 -0
  211. package/dist/react/ui/CornerBracket/index.d.ts.map +1 -0
  212. package/dist/react/ui/CornerBracket/index.js +42 -0
  213. package/dist/react/ui/Dialog/Dialog.styles.d.ts +24 -0
  214. package/dist/react/ui/Dialog/Dialog.styles.d.ts.map +1 -0
  215. package/dist/react/ui/Dialog/Dialog.styles.js +29 -0
  216. package/dist/react/ui/Dialog/Dialog.types.d.ts +221 -0
  217. package/dist/react/ui/Dialog/Dialog.types.d.ts.map +1 -0
  218. package/dist/react/ui/Dialog/index.d.ts +138 -0
  219. package/dist/react/ui/Dialog/index.d.ts.map +1 -0
  220. package/dist/react/ui/Dialog/index.js +265 -0
  221. package/dist/react/ui/DropdownMenu/DropdownMenu.styles.d.ts +7 -0
  222. package/dist/react/ui/DropdownMenu/DropdownMenu.styles.d.ts.map +1 -0
  223. package/dist/react/ui/DropdownMenu/DropdownMenu.styles.js +16 -0
  224. package/dist/react/ui/DropdownMenu/DropdownMenu.types.d.ts +50 -0
  225. package/dist/react/ui/DropdownMenu/DropdownMenu.types.d.ts.map +1 -0
  226. package/dist/react/ui/DropdownMenu/index.d.ts +50 -0
  227. package/dist/react/ui/DropdownMenu/index.d.ts.map +1 -0
  228. package/dist/{components/ui/dropdown-menu.js → react/ui/DropdownMenu/index.js} +44 -14
  229. package/dist/react/ui/Field/Field.styles.d.ts +11 -0
  230. package/dist/react/ui/Field/Field.styles.d.ts.map +1 -0
  231. package/dist/react/ui/Field/Field.styles.js +27 -0
  232. package/dist/react/ui/Field/Field.types.d.ts +39 -0
  233. package/dist/react/ui/Field/Field.types.d.ts.map +1 -0
  234. package/dist/react/ui/Field/index.d.ts +56 -0
  235. package/dist/react/ui/Field/index.d.ts.map +1 -0
  236. package/dist/{components/ui/field.js → react/ui/Field/index.js} +55 -23
  237. package/dist/react/ui/Input/Input.styles.d.ts +7 -0
  238. package/dist/react/ui/Input/Input.styles.d.ts.map +1 -0
  239. package/dist/react/ui/Input/Input.styles.js +5 -0
  240. package/dist/react/ui/Input/Input.types.d.ts +9 -0
  241. package/dist/react/ui/Input/Input.types.d.ts.map +1 -0
  242. package/dist/react/ui/Input/index.d.ts +17 -0
  243. package/dist/react/ui/Input/index.d.ts.map +1 -0
  244. package/dist/react/ui/Input/index.js +29 -0
  245. package/dist/react/ui/InputGroup/InputGroup.styles.d.ts +15 -0
  246. package/dist/react/ui/InputGroup/InputGroup.styles.d.ts.map +1 -0
  247. package/dist/react/ui/InputGroup/InputGroup.styles.js +34 -0
  248. package/dist/react/ui/InputGroup/InputGroup.types.d.ts +28 -0
  249. package/dist/react/ui/InputGroup/InputGroup.types.d.ts.map +1 -0
  250. package/dist/react/ui/InputGroup/index.d.ts +28 -0
  251. package/dist/react/ui/InputGroup/index.d.ts.map +1 -0
  252. package/dist/react/ui/InputGroup/index.js +81 -0
  253. package/dist/react/ui/Label/Label.styles.d.ts +6 -0
  254. package/dist/react/ui/Label/Label.styles.d.ts.map +1 -0
  255. package/dist/react/ui/Label/Label.styles.js +5 -0
  256. package/dist/react/ui/Label/Label.types.d.ts +8 -0
  257. package/dist/react/ui/Label/Label.types.d.ts.map +1 -0
  258. package/dist/react/ui/Label/index.d.ts +14 -0
  259. package/dist/react/ui/Label/index.d.ts.map +1 -0
  260. package/dist/react/ui/Label/index.js +24 -0
  261. package/dist/react/ui/Menu/Menu.styles.d.ts +42 -0
  262. package/dist/react/ui/Menu/Menu.styles.d.ts.map +1 -0
  263. package/dist/react/ui/Menu/Menu.styles.js +32 -0
  264. package/dist/react/ui/Menu/Menu.types.d.ts +328 -0
  265. package/dist/react/ui/Menu/Menu.types.d.ts.map +1 -0
  266. package/dist/react/ui/Menu/index.d.ts +354 -0
  267. package/dist/react/ui/Menu/index.d.ts.map +1 -0
  268. package/dist/react/ui/Menu/index.js +636 -0
  269. package/dist/react/ui/Popover/Popover.styles.d.ts +23 -0
  270. package/dist/react/ui/Popover/Popover.styles.d.ts.map +1 -0
  271. package/dist/react/ui/Popover/Popover.styles.js +26 -0
  272. package/dist/react/ui/Popover/Popover.types.d.ts +204 -0
  273. package/dist/react/ui/Popover/Popover.types.d.ts.map +1 -0
  274. package/dist/react/ui/Popover/index.d.ts +133 -0
  275. package/dist/react/ui/Popover/index.d.ts.map +1 -0
  276. package/dist/react/ui/Popover/index.js +237 -0
  277. package/dist/react/ui/Progress/Progress.styles.d.ts +28 -0
  278. package/dist/react/ui/Progress/Progress.styles.d.ts.map +1 -0
  279. package/dist/react/ui/Progress/Progress.styles.js +30 -0
  280. package/dist/react/ui/Progress/Progress.types.d.ts +148 -0
  281. package/dist/react/ui/Progress/Progress.types.d.ts.map +1 -0
  282. package/dist/react/ui/Progress/index.d.ts +111 -0
  283. package/dist/react/ui/Progress/index.d.ts.map +1 -0
  284. package/dist/react/ui/Progress/index.js +170 -0
  285. package/dist/react/ui/Select/Select.styles.d.ts +7 -0
  286. package/dist/react/ui/Select/Select.styles.d.ts.map +1 -0
  287. package/dist/react/ui/Select/Select.styles.js +15 -0
  288. package/dist/react/ui/Select/Select.types.d.ts +28 -0
  289. package/dist/react/ui/Select/Select.types.d.ts.map +1 -0
  290. package/dist/react/ui/Select/index.d.ts +38 -0
  291. package/dist/react/ui/Select/index.d.ts.map +1 -0
  292. package/dist/{components/ui/select.js → react/ui/Select/index.js} +35 -13
  293. package/dist/react/ui/Separator/Separator.styles.d.ts +6 -0
  294. package/dist/react/ui/Separator/Separator.styles.d.ts.map +1 -0
  295. package/dist/react/ui/Separator/Separator.styles.js +5 -0
  296. package/dist/react/ui/Separator/Separator.types.d.ts +9 -0
  297. package/dist/react/ui/Separator/Separator.types.d.ts.map +1 -0
  298. package/dist/react/ui/Separator/index.d.ts +16 -0
  299. package/dist/react/ui/Separator/index.d.ts.map +1 -0
  300. package/dist/react/ui/Separator/index.js +29 -0
  301. package/dist/react/ui/Switch/Switch.styles.d.ts +26 -0
  302. package/dist/react/ui/Switch/Switch.styles.d.ts.map +1 -0
  303. package/dist/react/ui/Switch/Switch.styles.js +41 -0
  304. package/dist/react/ui/Switch/Switch.types.d.ts +130 -0
  305. package/dist/react/ui/Switch/Switch.types.d.ts.map +1 -0
  306. package/dist/react/ui/Switch/index.d.ts +79 -0
  307. package/dist/react/ui/Switch/index.d.ts.map +1 -0
  308. package/dist/react/ui/Switch/index.js +199 -0
  309. package/dist/react/ui/Tabs/Tabs.styles.d.ts +43 -0
  310. package/dist/react/ui/Tabs/Tabs.styles.d.ts.map +1 -0
  311. package/dist/react/ui/Tabs/Tabs.styles.js +26 -0
  312. package/dist/react/ui/Tabs/Tabs.types.d.ts +201 -0
  313. package/dist/react/ui/Tabs/Tabs.types.d.ts.map +1 -0
  314. package/dist/react/ui/Tabs/index.d.ts +141 -0
  315. package/dist/react/ui/Tabs/index.d.ts.map +1 -0
  316. package/dist/react/ui/Tabs/index.js +308 -0
  317. package/dist/react/ui/Textarea/Textarea.styles.d.ts +6 -0
  318. package/dist/react/ui/Textarea/Textarea.styles.d.ts.map +1 -0
  319. package/dist/react/ui/Textarea/Textarea.styles.js +5 -0
  320. package/dist/react/ui/Textarea/Textarea.types.d.ts +8 -0
  321. package/dist/react/ui/Textarea/Textarea.types.d.ts.map +1 -0
  322. package/dist/react/ui/Textarea/index.d.ts +14 -0
  323. package/dist/react/ui/Textarea/index.d.ts.map +1 -0
  324. package/dist/react/ui/Textarea/index.js +24 -0
  325. package/dist/react/ui/Tooltip/Tooltip.styles.d.ts +23 -0
  326. package/dist/react/ui/Tooltip/Tooltip.styles.d.ts.map +1 -0
  327. package/dist/react/ui/Tooltip/Tooltip.styles.js +26 -0
  328. package/dist/react/ui/Tooltip/Tooltip.types.d.ts +203 -0
  329. package/dist/react/ui/Tooltip/Tooltip.types.d.ts.map +1 -0
  330. package/dist/react/ui/Tooltip/index.d.ts +110 -0
  331. package/dist/react/ui/Tooltip/index.d.ts.map +1 -0
  332. package/dist/react/ui/Tooltip/index.js +219 -0
  333. package/dist/react/ui/index.d.ts +31 -0
  334. package/dist/react/ui/index.d.ts.map +1 -0
  335. package/dist/react/ui/index.js +37 -0
  336. package/dist/react.js +88 -0
  337. package/package.json +12 -13
  338. package/src/core/index.ts +7 -0
  339. package/src/core/types.ts +82 -0
  340. package/src/index.ts +20 -11
  341. package/src/react/components/MorphingPopover/MorphingPopover.types.ts +49 -0
  342. package/src/react/components/MorphingPopover/index.tsx +186 -0
  343. package/src/react/components/index.ts +9 -0
  344. package/src/{hooks/use-auto-height.tsx → react/hooks/Animation/UseAutoHeight.tsx} +24 -3
  345. package/src/react/hooks/DOM/UseIsInView.tsx +44 -0
  346. package/src/{hooks/use-controlled-state.tsx → react/hooks/State/UseControlledState.tsx} +26 -2
  347. package/src/{hooks/use-data-state.tsx → react/hooks/State/UseDataState.tsx} +22 -0
  348. package/src/react/hooks/index.ts +17 -0
  349. package/src/react/icons/index.ts +12 -0
  350. package/src/{icons → react/icons}/lucide-animated/activity.tsx +1 -1
  351. package/src/{icons → react/icons}/lucide-animated/bell-electric.tsx +1 -1
  352. package/src/{icons → react/icons}/lucide-animated/bell.tsx +1 -1
  353. package/src/{icons → react/icons}/lucide-animated/bot.tsx +1 -1
  354. package/src/{icons → react/icons}/lucide-animated/box.tsx +1 -1
  355. package/src/{icons → react/icons}/lucide-animated/circle-check.tsx +1 -1
  356. package/src/{icons → react/icons}/lucide-animated/delete.tsx +1 -1
  357. package/src/{icons → react/icons}/lucide-animated/download.tsx +1 -1
  358. package/src/{icons → react/icons}/lucide-animated/home.tsx +1 -1
  359. package/src/react/icons/lucide-animated/index.ts +38 -0
  360. package/src/{icons → react/icons}/lucide-animated/layout-panel-top.tsx +1 -1
  361. package/src/{icons → react/icons}/lucide-animated/plus.tsx +1 -1
  362. package/src/{icons → react/icons}/lucide-animated/search.tsx +1 -1
  363. package/src/{icons → react/icons}/lucide-animated/settings.tsx +1 -1
  364. package/src/{icons → react/icons}/lucide-animated/trending-down.tsx +1 -1
  365. package/src/{icons → react/icons}/lucide-animated/trending-up.tsx +1 -1
  366. package/src/{icons → react/icons}/lucide-animated/x.tsx +1 -1
  367. package/src/react/index.ts +30 -0
  368. package/src/{lib → react/lib}/get-strict-context.tsx +20 -0
  369. package/src/react/lib/index.ts +8 -0
  370. package/src/{lib → react/lib}/utils.ts +2 -2
  371. package/src/{components/animate-ui/primitives/effects/auto-height.tsx → react/primitives/AutoHeight/index.tsx} +24 -5
  372. package/src/{components/animate-ui/primitives/texts/counting-number.tsx → react/primitives/CountingNumber/index.tsx} +35 -7
  373. package/src/react/primitives/Highlight/Highlight.types.ts +136 -0
  374. package/src/{components/animate-ui/primitives/effects/highlight.tsx → react/primitives/Highlight/index.tsx} +60 -123
  375. package/src/{components/animate-ui/primitives/animate/slot.tsx → react/primitives/Slot/index.tsx} +43 -11
  376. package/src/react/primitives/index.ts +13 -0
  377. package/src/react/ui/Accordion/Accordion.styles.ts +72 -0
  378. package/src/react/ui/Accordion/Accordion.types.ts +199 -0
  379. package/src/react/ui/Accordion/index.tsx +362 -0
  380. package/src/react/ui/AlertDialog/AlertDialog.styles.ts +38 -0
  381. package/src/react/ui/AlertDialog/AlertDialog.types.ts +296 -0
  382. package/src/react/ui/AlertDialog/index.tsx +540 -0
  383. package/src/react/ui/Badge/Badge.styles.ts +43 -0
  384. package/src/react/ui/Badge/Badge.types.ts +26 -0
  385. package/src/react/ui/Badge/index.tsx +34 -0
  386. package/src/react/ui/Button/Button.styles.ts +57 -0
  387. package/src/react/ui/Button/Button.types.ts +63 -0
  388. package/src/react/ui/Button/index.tsx +155 -0
  389. package/src/react/ui/Card/Card.styles.ts +32 -0
  390. package/src/react/ui/Card/Card.types.ts +39 -0
  391. package/src/react/ui/Card/index.tsx +130 -0
  392. package/src/react/ui/Checkbox/Checkbox.styles.ts +40 -0
  393. package/src/react/ui/Checkbox/Checkbox.types.ts +98 -0
  394. package/src/react/ui/Checkbox/index.tsx +233 -0
  395. package/src/react/ui/Combobox/Combobox.styles.ts +34 -0
  396. package/src/react/ui/Combobox/Combobox.types.ts +89 -0
  397. package/src/react/ui/Combobox/index.tsx +331 -0
  398. package/src/react/ui/CornerBracket/CornerBracket.styles.ts +38 -0
  399. package/src/react/ui/CornerBracket/CornerBracket.types.ts +15 -0
  400. package/src/react/ui/CornerBracket/index.tsx +49 -0
  401. package/src/react/ui/Dialog/Dialog.styles.ts +59 -0
  402. package/src/react/ui/Dialog/Dialog.types.ts +284 -0
  403. package/src/react/ui/Dialog/index.tsx +452 -0
  404. package/src/react/ui/DropdownMenu/DropdownMenu.styles.ts +35 -0
  405. package/src/react/ui/DropdownMenu/DropdownMenu.types.ts +81 -0
  406. package/src/react/ui/DropdownMenu/index.tsx +300 -0
  407. package/src/react/ui/Field/Field.styles.ts +47 -0
  408. package/src/react/ui/Field/Field.types.ts +60 -0
  409. package/src/react/ui/Field/index.tsx +254 -0
  410. package/src/{components/ui/input.tsx → react/ui/Input/Input.styles.ts} +8 -17
  411. package/src/react/ui/Input/Input.types.ts +10 -0
  412. package/src/react/ui/Input/index.tsx +32 -0
  413. package/src/react/ui/InputGroup/InputGroup.styles.ts +53 -0
  414. package/src/react/ui/InputGroup/InputGroup.types.ts +44 -0
  415. package/src/react/ui/InputGroup/index.tsx +147 -0
  416. package/src/react/ui/Label/Label.styles.ts +10 -0
  417. package/src/react/ui/Label/Label.types.ts +9 -0
  418. package/src/react/ui/Label/index.tsx +27 -0
  419. package/src/react/ui/Menu/Menu.styles.ts +71 -0
  420. package/src/react/ui/Menu/Menu.types.ts +425 -0
  421. package/src/react/ui/Menu/index.tsx +900 -0
  422. package/src/react/ui/Popover/Popover.styles.ts +55 -0
  423. package/src/react/ui/Popover/Popover.types.ts +261 -0
  424. package/src/react/ui/Popover/index.tsx +422 -0
  425. package/src/react/ui/Progress/Progress.styles.ts +36 -0
  426. package/src/react/ui/Progress/Progress.types.ts +162 -0
  427. package/src/react/ui/Progress/index.tsx +254 -0
  428. package/src/react/ui/Select/Select.styles.ts +30 -0
  429. package/src/react/ui/Select/Select.types.ts +51 -0
  430. package/src/react/ui/Select/index.tsx +225 -0
  431. package/src/react/ui/Separator/Separator.styles.ts +10 -0
  432. package/src/react/ui/Separator/Separator.types.ts +10 -0
  433. package/src/react/ui/Separator/index.tsx +37 -0
  434. package/src/react/ui/Switch/Switch.styles.ts +50 -0
  435. package/src/react/ui/Switch/Switch.types.ts +155 -0
  436. package/src/react/ui/Switch/index.tsx +253 -0
  437. package/src/react/ui/Tabs/Tabs.styles.ts +60 -0
  438. package/src/react/ui/Tabs/Tabs.types.ts +250 -0
  439. package/src/react/ui/Tabs/index.tsx +421 -0
  440. package/src/{components/ui/textarea.tsx → react/ui/Textarea/Textarea.styles.ts} +7 -15
  441. package/src/react/ui/Textarea/Textarea.types.ts +9 -0
  442. package/src/react/ui/Textarea/index.tsx +27 -0
  443. package/src/react/ui/Tooltip/Tooltip.styles.ts +43 -0
  444. package/src/react/ui/Tooltip/Tooltip.types.ts +253 -0
  445. package/src/react/ui/Tooltip/index.tsx +394 -0
  446. package/src/react/ui/index.ts +34 -0
  447. package/dist/components/animate-ui/primitives/animate/slot.d.ts +0 -18
  448. package/dist/components/animate-ui/primitives/animate/slot.d.ts.map +0 -1
  449. package/dist/components/animate-ui/primitives/base/accordion.d.ts +0 -22
  450. package/dist/components/animate-ui/primitives/base/accordion.d.ts.map +0 -1
  451. package/dist/components/animate-ui/primitives/base/alert-dialog.d.ts +0 -33
  452. package/dist/components/animate-ui/primitives/base/alert-dialog.d.ts.map +0 -1
  453. package/dist/components/animate-ui/primitives/base/checkbox.d.ts +0 -15
  454. package/dist/components/animate-ui/primitives/base/checkbox.d.ts.map +0 -1
  455. package/dist/components/animate-ui/primitives/base/dialog.d.ts +0 -33
  456. package/dist/components/animate-ui/primitives/base/dialog.d.ts.map +0 -1
  457. package/dist/components/animate-ui/primitives/base/menu.d.ts +0 -60
  458. package/dist/components/animate-ui/primitives/base/menu.d.ts.map +0 -1
  459. package/dist/components/animate-ui/primitives/base/popover.d.ts +0 -30
  460. package/dist/components/animate-ui/primitives/base/popover.d.ts.map +0 -1
  461. package/dist/components/animate-ui/primitives/base/progress.d.ts +0 -297
  462. package/dist/components/animate-ui/primitives/base/progress.d.ts.map +0 -1
  463. package/dist/components/animate-ui/primitives/base/switch.d.ts +0 -23
  464. package/dist/components/animate-ui/primitives/base/switch.d.ts.map +0 -1
  465. package/dist/components/animate-ui/primitives/base/switch.js +0 -90
  466. package/dist/components/animate-ui/primitives/base/tabs.d.ts +0 -33
  467. package/dist/components/animate-ui/primitives/base/tabs.d.ts.map +0 -1
  468. package/dist/components/animate-ui/primitives/base/tabs.js +0 -132
  469. package/dist/components/animate-ui/primitives/base/tooltip.d.ts +0 -31
  470. package/dist/components/animate-ui/primitives/base/tooltip.d.ts.map +0 -1
  471. package/dist/components/animate-ui/primitives/effects/auto-height.d.ts +0 -12
  472. package/dist/components/animate-ui/primitives/effects/auto-height.d.ts.map +0 -1
  473. package/dist/components/animate-ui/primitives/effects/auto-height.js +0 -37
  474. package/dist/components/animate-ui/primitives/effects/highlight.d.ts +0 -92
  475. package/dist/components/animate-ui/primitives/effects/highlight.d.ts.map +0 -1
  476. package/dist/components/animate-ui/primitives/texts/counting-number.d.ts +0 -16
  477. package/dist/components/animate-ui/primitives/texts/counting-number.d.ts.map +0 -1
  478. package/dist/components/ui/alert-dialog.d.ts +0 -21
  479. package/dist/components/ui/alert-dialog.d.ts.map +0 -1
  480. package/dist/components/ui/alert-dialog.js +0 -99
  481. package/dist/components/ui/badge/badge.d.ts +0 -37
  482. package/dist/components/ui/badge/badge.d.ts.map +0 -1
  483. package/dist/components/ui/badge/badge.js +0 -52
  484. package/dist/components/ui/badge/badge.styles.d.ts +0 -23
  485. package/dist/components/ui/badge/badge.styles.d.ts.map +0 -1
  486. package/dist/components/ui/badge/badge.types.d.ts +0 -38
  487. package/dist/components/ui/badge/badge.types.d.ts.map +0 -1
  488. package/dist/components/ui/badge/index.d.ts +0 -8
  489. package/dist/components/ui/badge/index.d.ts.map +0 -1
  490. package/dist/components/ui/badge/index.js +0 -2
  491. package/dist/components/ui/button/button.d.ts +0 -79
  492. package/dist/components/ui/button/button.d.ts.map +0 -1
  493. package/dist/components/ui/button/button.js +0 -161
  494. package/dist/components/ui/button/button.styles.d.ts +0 -33
  495. package/dist/components/ui/button/button.styles.d.ts.map +0 -1
  496. package/dist/components/ui/button/button.types.d.ts +0 -103
  497. package/dist/components/ui/button/button.types.d.ts.map +0 -1
  498. package/dist/components/ui/button/index.d.ts +0 -7
  499. package/dist/components/ui/button/index.d.ts.map +0 -1
  500. package/dist/components/ui/button/index.js +0 -2
  501. package/dist/components/ui/card.d.ts +0 -14
  502. package/dist/components/ui/card.d.ts.map +0 -1
  503. package/dist/components/ui/card.js +0 -67
  504. package/dist/components/ui/combobox.d.ts +0 -25
  505. package/dist/components/ui/combobox.d.ts.map +0 -1
  506. package/dist/components/ui/devenv-bracket.d.ts +0 -30
  507. package/dist/components/ui/devenv-bracket.d.ts.map +0 -1
  508. package/dist/components/ui/devenv-bracket.js +0 -66
  509. package/dist/components/ui/dropdown-menu.d.ts +0 -30
  510. package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
  511. package/dist/components/ui/field.d.ts +0 -25
  512. package/dist/components/ui/field.d.ts.map +0 -1
  513. package/dist/components/ui/index.d.ts +0 -25
  514. package/dist/components/ui/index.d.ts.map +0 -1
  515. package/dist/components/ui/index.js +0 -24
  516. package/dist/components/ui/input-group.d.ts +0 -19
  517. package/dist/components/ui/input-group.d.ts.map +0 -1
  518. package/dist/components/ui/input-group.js +0 -84
  519. package/dist/components/ui/input.d.ts +0 -4
  520. package/dist/components/ui/input.d.ts.map +0 -1
  521. package/dist/components/ui/input.js +0 -17
  522. package/dist/components/ui/label.d.ts +0 -4
  523. package/dist/components/ui/label.d.ts.map +0 -1
  524. package/dist/components/ui/label.js +0 -15
  525. package/dist/components/ui/morphing-popover/index.d.ts +0 -10
  526. package/dist/components/ui/morphing-popover/index.d.ts.map +0 -1
  527. package/dist/components/ui/morphing-popover/index.js +0 -1
  528. package/dist/components/ui/morphing-popover/morphing-popover.d.ts +0 -54
  529. package/dist/components/ui/morphing-popover/morphing-popover.d.ts.map +0 -1
  530. package/dist/components/ui/morphing-popover/morphing-popover.module.js +0 -5
  531. package/dist/components/ui/select.d.ts +0 -16
  532. package/dist/components/ui/select.d.ts.map +0 -1
  533. package/dist/components/ui/separator.d.ts +0 -4
  534. package/dist/components/ui/separator.d.ts.map +0 -1
  535. package/dist/components/ui/separator.js +0 -18
  536. package/dist/components/ui/switch.d.ts +0 -9
  537. package/dist/components/ui/switch.d.ts.map +0 -1
  538. package/dist/components/ui/switch.js +0 -1
  539. package/dist/components/ui/tabs.d.ts +0 -9
  540. package/dist/components/ui/tabs.d.ts.map +0 -1
  541. package/dist/components/ui/tabs.js +0 -1
  542. package/dist/components/ui/textarea.d.ts +0 -4
  543. package/dist/components/ui/textarea.d.ts.map +0 -1
  544. package/dist/components/ui/textarea.js +0 -15
  545. package/dist/hooks/use-auto-height.d.ts +0 -11
  546. package/dist/hooks/use-auto-height.d.ts.map +0 -1
  547. package/dist/hooks/use-controlled-state.d.ts +0 -9
  548. package/dist/hooks/use-controlled-state.d.ts.map +0 -1
  549. package/dist/hooks/use-controlled-state.js +0 -17
  550. package/dist/hooks/use-data-state.d.ts +0 -5
  551. package/dist/hooks/use-data-state.d.ts.map +0 -1
  552. package/dist/hooks/use-is-in-view.d.ts +0 -13
  553. package/dist/hooks/use-is-in-view.d.ts.map +0 -1
  554. package/dist/icons/index.d.ts +0 -8
  555. package/dist/icons/index.d.ts.map +0 -1
  556. package/dist/icons/lucide-animated/activity.d.ts +0 -11
  557. package/dist/icons/lucide-animated/activity.d.ts.map +0 -1
  558. package/dist/icons/lucide-animated/arrow-down-to-line.d.ts.map +0 -1
  559. package/dist/icons/lucide-animated/arrow-up.d.ts.map +0 -1
  560. package/dist/icons/lucide-animated/bell-electric.d.ts +0 -11
  561. package/dist/icons/lucide-animated/bell-electric.d.ts.map +0 -1
  562. package/dist/icons/lucide-animated/bell.d.ts +0 -11
  563. package/dist/icons/lucide-animated/bell.d.ts.map +0 -1
  564. package/dist/icons/lucide-animated/bot.d.ts +0 -11
  565. package/dist/icons/lucide-animated/bot.d.ts.map +0 -1
  566. package/dist/icons/lucide-animated/box.d.ts +0 -11
  567. package/dist/icons/lucide-animated/box.d.ts.map +0 -1
  568. package/dist/icons/lucide-animated/check.d.ts.map +0 -1
  569. package/dist/icons/lucide-animated/circle-check.d.ts +0 -11
  570. package/dist/icons/lucide-animated/circle-check.d.ts.map +0 -1
  571. package/dist/icons/lucide-animated/delete.d.ts +0 -11
  572. package/dist/icons/lucide-animated/delete.d.ts.map +0 -1
  573. package/dist/icons/lucide-animated/download.d.ts +0 -11
  574. package/dist/icons/lucide-animated/download.d.ts.map +0 -1
  575. package/dist/icons/lucide-animated/edit-2.d.ts.map +0 -1
  576. package/dist/icons/lucide-animated/globe.d.ts.map +0 -1
  577. package/dist/icons/lucide-animated/home.d.ts +0 -11
  578. package/dist/icons/lucide-animated/home.d.ts.map +0 -1
  579. package/dist/icons/lucide-animated/index.d.ts +0 -38
  580. package/dist/icons/lucide-animated/index.d.ts.map +0 -1
  581. package/dist/icons/lucide-animated/layers.d.ts.map +0 -1
  582. package/dist/icons/lucide-animated/layout-panel-top.d.ts +0 -11
  583. package/dist/icons/lucide-animated/layout-panel-top.d.ts.map +0 -1
  584. package/dist/icons/lucide-animated/list.d.ts.map +0 -1
  585. package/dist/icons/lucide-animated/package.d.ts.map +0 -1
  586. package/dist/icons/lucide-animated/palette.d.ts.map +0 -1
  587. package/dist/icons/lucide-animated/plus.d.ts +0 -11
  588. package/dist/icons/lucide-animated/plus.d.ts.map +0 -1
  589. package/dist/icons/lucide-animated/refresh-cw.d.ts.map +0 -1
  590. package/dist/icons/lucide-animated/rocket.d.ts.map +0 -1
  591. package/dist/icons/lucide-animated/save.d.ts.map +0 -1
  592. package/dist/icons/lucide-animated/search.d.ts +0 -11
  593. package/dist/icons/lucide-animated/search.d.ts.map +0 -1
  594. package/dist/icons/lucide-animated/settings.d.ts +0 -11
  595. package/dist/icons/lucide-animated/settings.d.ts.map +0 -1
  596. package/dist/icons/lucide-animated/terminal.d.ts.map +0 -1
  597. package/dist/icons/lucide-animated/trash-2.d.ts.map +0 -1
  598. package/dist/icons/lucide-animated/trending-down.d.ts +0 -11
  599. package/dist/icons/lucide-animated/trending-down.d.ts.map +0 -1
  600. package/dist/icons/lucide-animated/trending-up.d.ts +0 -11
  601. package/dist/icons/lucide-animated/trending-up.d.ts.map +0 -1
  602. package/dist/icons/lucide-animated/type.d.ts.map +0 -1
  603. package/dist/icons/lucide-animated/upload.d.ts.map +0 -1
  604. package/dist/icons/lucide-animated/x.d.ts +0 -11
  605. package/dist/icons/lucide-animated/x.d.ts.map +0 -1
  606. package/dist/lib/get-strict-context.d.ts +0 -10
  607. package/dist/lib/get-strict-context.d.ts.map +0 -1
  608. package/dist/lib/get-strict-context.js +0 -20
  609. package/dist/lib/utils.d.ts.map +0 -1
  610. package/src/components/animate-ui/primitives/base/accordion.tsx +0 -179
  611. package/src/components/animate-ui/primitives/base/alert-dialog.tsx +0 -218
  612. package/src/components/animate-ui/primitives/base/checkbox.tsx +0 -153
  613. package/src/components/animate-ui/primitives/base/dialog.tsx +0 -203
  614. package/src/components/animate-ui/primitives/base/menu.tsx +0 -463
  615. package/src/components/animate-ui/primitives/base/popover.tsx +0 -167
  616. package/src/components/animate-ui/primitives/base/progress.tsx +0 -103
  617. package/src/components/animate-ui/primitives/base/switch.tsx +0 -158
  618. package/src/components/animate-ui/primitives/base/tabs.tsx +0 -202
  619. package/src/components/animate-ui/primitives/base/tooltip.tsx +0 -209
  620. package/src/components/ui/alert-dialog.tsx +0 -177
  621. package/src/components/ui/badge/badge.styles.ts +0 -46
  622. package/src/components/ui/badge/badge.tsx +0 -52
  623. package/src/components/ui/badge/badge.types.ts +0 -41
  624. package/src/components/ui/badge/index.ts +0 -8
  625. package/src/components/ui/button/button.styles.ts +0 -66
  626. package/src/components/ui/button/button.tsx +0 -209
  627. package/src/components/ui/button/button.types.ts +0 -125
  628. package/src/components/ui/button/index.ts +0 -7
  629. package/src/components/ui/card.tsx +0 -108
  630. package/src/components/ui/combobox.tsx +0 -293
  631. package/src/components/ui/devenv-bracket.tsx +0 -81
  632. package/src/components/ui/dropdown-menu.tsx +0 -261
  633. package/src/components/ui/field.tsx +0 -227
  634. package/src/components/ui/index.ts +0 -28
  635. package/src/components/ui/input-group.tsx +0 -149
  636. package/src/components/ui/label.tsx +0 -18
  637. package/src/components/ui/morphing-popover/index.ts +0 -10
  638. package/src/components/ui/morphing-popover/morphing-popover.tsx +0 -183
  639. package/src/components/ui/select.tsx +0 -190
  640. package/src/components/ui/separator.tsx +0 -25
  641. package/src/components/ui/switch.tsx +0 -9
  642. package/src/components/ui/tabs.tsx +0 -9
  643. package/src/hooks/use-is-in-view.tsx +0 -25
  644. package/src/icons/index.ts +0 -12
  645. package/src/icons/lucide-animated/index.ts +0 -38
  646. /package/dist/{components/ui/morphing-popover/morphing-popover.module-yxDDcJHZ.css → react/components/MorphingPopover/morphing-popover.module-BkcZcmVy.css} +0 -0
  647. /package/dist/{icons → react/icons}/index.js +0 -0
  648. /package/dist/{icons → react/icons}/lucide-animated/check.d.ts +0 -0
  649. /package/dist/{icons → react/icons}/lucide-animated/edit-2.d.ts +0 -0
  650. /package/dist/{icons → react/icons}/lucide-animated/globe.d.ts +0 -0
  651. /package/dist/{icons → react/icons}/lucide-animated/index.js +0 -0
  652. /package/dist/{icons → react/icons}/lucide-animated/layers.d.ts +0 -0
  653. /package/dist/{icons → react/icons}/lucide-animated/package.d.ts +0 -0
  654. /package/dist/{icons → react/icons}/lucide-animated/palette.d.ts +0 -0
  655. /package/dist/{icons → react/icons}/lucide-animated/refresh-cw.d.ts +0 -0
  656. /package/dist/{icons → react/icons}/lucide-animated/rocket.d.ts +0 -0
  657. /package/dist/{icons → react/icons}/lucide-animated/save.d.ts +0 -0
  658. /package/dist/{icons → react/icons}/lucide-animated/trash-2.d.ts +0 -0
  659. /package/dist/{icons → react/icons}/lucide-animated/type.d.ts +0 -0
  660. /package/dist/{icons → react/icons}/lucide-animated/upload.d.ts +0 -0
  661. /package/src/{components/ui/morphing-popover → react/components/MorphingPopover}/morphing-popover.module.css +0 -0
  662. /package/src/{icons → react/icons}/lucide-animated/arrow-down-to-line.tsx +0 -0
  663. /package/src/{icons → react/icons}/lucide-animated/arrow-up.tsx +0 -0
  664. /package/src/{icons → react/icons}/lucide-animated/check.tsx +0 -0
  665. /package/src/{icons → react/icons}/lucide-animated/edit-2.tsx +0 -0
  666. /package/src/{icons → react/icons}/lucide-animated/globe.tsx +0 -0
  667. /package/src/{icons → react/icons}/lucide-animated/layers.tsx +0 -0
  668. /package/src/{icons → react/icons}/lucide-animated/list.tsx +0 -0
  669. /package/src/{icons → react/icons}/lucide-animated/package.tsx +0 -0
  670. /package/src/{icons → react/icons}/lucide-animated/palette.tsx +0 -0
  671. /package/src/{icons → react/icons}/lucide-animated/refresh-cw.tsx +0 -0
  672. /package/src/{icons → react/icons}/lucide-animated/rocket.tsx +0 -0
  673. /package/src/{icons → react/icons}/lucide-animated/save.tsx +0 -0
  674. /package/src/{icons → react/icons}/lucide-animated/terminal.tsx +0 -0
  675. /package/src/{icons → react/icons}/lucide-animated/trash-2.tsx +0 -0
  676. /package/src/{icons → react/icons}/lucide-animated/type.tsx +0 -0
  677. /package/src/{icons → react/icons}/lucide-animated/upload.tsx +0 -0
@@ -0,0 +1,540 @@
1
+ 'use client';
2
+
3
+ /**
4
+ * AlertDialog component with animated 3D flip entrance.
5
+ *
6
+ * Built on top of Base UI's AlertDialog primitive with Motion (Framer Motion)
7
+ * animations. Features a perspective-based flip animation from configurable
8
+ * directions, backdrop blur effects, and the StyleSlots pattern for granular
9
+ * style overrides.
10
+ *
11
+ * AlertDialog is specifically designed for destructive or important confirmations
12
+ * that require explicit user acknowledgment. Unlike Dialog, it blocks interaction
13
+ * with the rest of the page.
14
+ *
15
+ * @module @mks2508/mks-ui/react/ui/AlertDialog
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * import {
20
+ * AlertDialog,
21
+ * AlertDialogTrigger,
22
+ * AlertDialogPortal,
23
+ * AlertDialogBackdrop,
24
+ * AlertDialogPopup,
25
+ * AlertDialogHeader,
26
+ * AlertDialogFooter,
27
+ * AlertDialogTitle,
28
+ * AlertDialogDescription,
29
+ * AlertDialogClose,
30
+ * } from '@mks2508/mks-ui';
31
+ *
32
+ * function DeleteConfirmation() {
33
+ * return (
34
+ * <AlertDialog>
35
+ * <AlertDialogTrigger>Delete Account</AlertDialogTrigger>
36
+ * <AlertDialogPortal>
37
+ * <AlertDialogBackdrop />
38
+ * <AlertDialogPopup from="top">
39
+ * <AlertDialogHeader>
40
+ * <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
41
+ * <AlertDialogDescription>
42
+ * This action cannot be undone.
43
+ * </AlertDialogDescription>
44
+ * </AlertDialogHeader>
45
+ * <AlertDialogFooter>
46
+ * <AlertDialogClose>Cancel</AlertDialogClose>
47
+ * <button>Delete</button>
48
+ * </AlertDialogFooter>
49
+ * </AlertDialogPopup>
50
+ * </AlertDialogPortal>
51
+ * </AlertDialog>
52
+ * );
53
+ * }
54
+ * ```
55
+ */
56
+
57
+ import * as React from 'react';
58
+ import { AlertDialog as AlertDialogPrimitive } from '@base-ui/react/alert-dialog';
59
+ import { AnimatePresence, motion } from 'motion/react';
60
+
61
+ import { cn } from '@/react/lib/utils';
62
+ import { getStrictContext } from '@/react/lib/get-strict-context';
63
+ import { useControlledState } from '@/react/hooks/State/UseControlledState';
64
+
65
+ import { AlertDialogStyles } from './AlertDialog.styles';
66
+ import type {
67
+ AlertDialogContextType,
68
+ IAlertDialogProps,
69
+ IAlertDialogTriggerProps,
70
+ IAlertDialogPortalProps,
71
+ IAlertDialogBackdropProps,
72
+ IAlertDialogPopupProps,
73
+ IAlertDialogCloseProps,
74
+ IAlertDialogHeaderProps,
75
+ IAlertDialogFooterProps,
76
+ IAlertDialogTitleProps,
77
+ IAlertDialogDescriptionProps,
78
+ } from './AlertDialog.types';
79
+
80
+ // ---------------------------------------------------------------------------
81
+ // Context
82
+ // ---------------------------------------------------------------------------
83
+
84
+ const [AlertDialogProvider, useAlertDialog] =
85
+ getStrictContext<AlertDialogContextType>('AlertDialogContext');
86
+
87
+ // ---------------------------------------------------------------------------
88
+ // AlertDialog (root)
89
+ // ---------------------------------------------------------------------------
90
+
91
+ /**
92
+ * Root AlertDialog component. Manages open state and provides context
93
+ * to all child sub-components.
94
+ *
95
+ * Supports both controlled (`open` + `onOpenChange`) and uncontrolled
96
+ * (`defaultOpen`) usage patterns.
97
+ *
98
+ * @param props - {@link IAlertDialogProps}
99
+ * @returns The rendered alert dialog root
100
+ *
101
+ * @example
102
+ * ```tsx
103
+ * // Uncontrolled
104
+ * <AlertDialog>
105
+ * <AlertDialogTrigger>Open</AlertDialogTrigger>
106
+ * <AlertDialogPortal>...</AlertDialogPortal>
107
+ * </AlertDialog>
108
+ *
109
+ * // Controlled
110
+ * const [open, setOpen] = useState(false);
111
+ * <AlertDialog open={open} onOpenChange={setOpen}>
112
+ * ...
113
+ * </AlertDialog>
114
+ * ```
115
+ */
116
+ function AlertDialog({
117
+ slots: _slots,
118
+ config: _config,
119
+ ...props
120
+ }: IAlertDialogProps) {
121
+ const [isOpen, setIsOpen] = useControlledState({
122
+ value: props?.open,
123
+ defaultValue: props?.defaultOpen,
124
+ onChange: props?.onOpenChange,
125
+ });
126
+
127
+ return (
128
+ <AlertDialogProvider value={{ isOpen, setIsOpen }}>
129
+ <AlertDialogPrimitive.Root
130
+ data-slot="alert-dialog"
131
+ {...props}
132
+ onOpenChange={setIsOpen}
133
+ />
134
+ </AlertDialogProvider>
135
+ );
136
+ }
137
+
138
+ // ---------------------------------------------------------------------------
139
+ // AlertDialogTrigger
140
+ // ---------------------------------------------------------------------------
141
+
142
+ /**
143
+ * Button that opens the AlertDialog when clicked.
144
+ * Renders as a button element by default.
145
+ *
146
+ * @param props - {@link IAlertDialogTriggerProps}
147
+ * @returns The rendered trigger button
148
+ *
149
+ * @example
150
+ * ```tsx
151
+ * <AlertDialogTrigger className="bg-destructive text-destructive-foreground">
152
+ * Delete Account
153
+ * </AlertDialogTrigger>
154
+ * ```
155
+ */
156
+ function AlertDialogTrigger({
157
+ slots: _slots,
158
+ ...props
159
+ }: IAlertDialogTriggerProps) {
160
+ return (
161
+ <AlertDialogPrimitive.Trigger
162
+ data-slot="alert-dialog-trigger"
163
+ {...props}
164
+ />
165
+ );
166
+ }
167
+
168
+ // ---------------------------------------------------------------------------
169
+ // AlertDialogPortal
170
+ // ---------------------------------------------------------------------------
171
+
172
+ /**
173
+ * Portal wrapper that renders alert dialog content outside the DOM hierarchy.
174
+ * Manages AnimatePresence for enter/exit animations of the backdrop and popup.
175
+ *
176
+ * The portal is automatically kept mounted for exit animations and only
177
+ * renders its children when the dialog is open.
178
+ *
179
+ * @param props - {@link IAlertDialogPortalProps}
180
+ * @returns The rendered portal with AnimatePresence
181
+ *
182
+ * @example
183
+ * ```tsx
184
+ * <AlertDialogPortal>
185
+ * <AlertDialogBackdrop />
186
+ * <AlertDialogPopup>...</AlertDialogPopup>
187
+ * </AlertDialogPortal>
188
+ * ```
189
+ */
190
+ function AlertDialogPortal(props: IAlertDialogPortalProps) {
191
+ const { isOpen } = useAlertDialog();
192
+
193
+ return (
194
+ <AnimatePresence>
195
+ {isOpen && (
196
+ <AlertDialogPrimitive.Portal
197
+ data-slot="alert-dialog-portal"
198
+ keepMounted
199
+ {...props}
200
+ />
201
+ )}
202
+ </AnimatePresence>
203
+ );
204
+ }
205
+
206
+ // ---------------------------------------------------------------------------
207
+ // AlertDialogBackdrop
208
+ // ---------------------------------------------------------------------------
209
+
210
+ /**
211
+ * Semi-transparent overlay behind the alert dialog.
212
+ * Animates in with a fade and optional blur effect.
213
+ *
214
+ * @param props - {@link IAlertDialogBackdropProps}
215
+ * @returns The rendered animated backdrop
216
+ *
217
+ * @example
218
+ * ```tsx
219
+ * // Default backdrop
220
+ * <AlertDialogBackdrop />
221
+ *
222
+ * // Custom backdrop with blur
223
+ * <AlertDialogBackdrop
224
+ * className="bg-black/60 backdrop-blur-md"
225
+ * transition={{ duration: 0.3 }}
226
+ * />
227
+ * ```
228
+ */
229
+ function AlertDialogBackdrop({
230
+ transition = { duration: 0.2, ease: 'easeInOut' },
231
+ slots,
232
+ className,
233
+ ...props
234
+ }: IAlertDialogBackdropProps) {
235
+ return (
236
+ <AlertDialogPrimitive.Backdrop
237
+ data-slot="alert-dialog-backdrop"
238
+ render={
239
+ <motion.div
240
+ key="alert-dialog-backdrop"
241
+ className={cn(
242
+ AlertDialogStyles.backdrop,
243
+ slots?.backdrop,
244
+ className,
245
+ )}
246
+ initial={{ opacity: 0, filter: 'blur(4px)' }}
247
+ animate={{ opacity: 1, filter: 'blur(0px)' }}
248
+ exit={{ opacity: 0, filter: 'blur(4px)' }}
249
+ transition={transition}
250
+ {...(props as any)}
251
+ />
252
+ }
253
+ />
254
+ );
255
+ }
256
+
257
+ // ---------------------------------------------------------------------------
258
+ // AlertDialogPopup
259
+ // ---------------------------------------------------------------------------
260
+
261
+ /**
262
+ * Main dialog container with a 3D perspective flip animation.
263
+ *
264
+ * The `from` prop controls which direction the dialog flips from:
265
+ * - `top` / `bottom` rotate around the X axis
266
+ * - `left` / `right` rotate around the Y axis
267
+ *
268
+ * Uses spring physics for a natural, bouncy entrance.
269
+ *
270
+ * @param props - {@link IAlertDialogPopupProps}
271
+ * @returns The rendered animated popup
272
+ *
273
+ * @example
274
+ * ```tsx
275
+ * // Flip from top (default)
276
+ * <AlertDialogPopup>...</AlertDialogPopup>
277
+ *
278
+ * // Flip from bottom with custom spring
279
+ * <AlertDialogPopup
280
+ * from="bottom"
281
+ * transition={{ type: 'spring', stiffness: 200, damping: 30 }}
282
+ * >
283
+ * ...
284
+ * </AlertDialogPopup>
285
+ * ```
286
+ */
287
+ function AlertDialogPopup({
288
+ from = 'top',
289
+ initialFocus,
290
+ finalFocus,
291
+ transition = { type: 'spring', stiffness: 150, damping: 25 },
292
+ slots,
293
+ className,
294
+ ...props
295
+ }: IAlertDialogPopupProps) {
296
+ const initialRotation =
297
+ from === 'bottom' || from === 'left' ? '20deg' : '-20deg';
298
+ const isVertical = from === 'top' || from === 'bottom';
299
+ const rotateAxis = isVertical ? 'rotateX' : 'rotateY';
300
+
301
+ return (
302
+ <AlertDialogPrimitive.Popup
303
+ initialFocus={initialFocus}
304
+ finalFocus={finalFocus}
305
+ render={
306
+ <motion.div
307
+ key="alert-dialog-popup"
308
+ data-slot="alert-dialog-popup"
309
+ className={cn(AlertDialogStyles.popup, slots?.popup, className)}
310
+ initial={{
311
+ opacity: 0,
312
+ filter: 'blur(4px)',
313
+ transform: `perspective(500px) ${rotateAxis}(${initialRotation}) scale(0.8)`,
314
+ }}
315
+ animate={{
316
+ opacity: 1,
317
+ filter: 'blur(0px)',
318
+ transform: `perspective(500px) ${rotateAxis}(0deg) scale(1)`,
319
+ }}
320
+ exit={{
321
+ opacity: 0,
322
+ filter: 'blur(4px)',
323
+ transform: `perspective(500px) ${rotateAxis}(${initialRotation}) scale(0.8)`,
324
+ }}
325
+ transition={transition}
326
+ {...(props as any)}
327
+ />
328
+ }
329
+ />
330
+ );
331
+ }
332
+
333
+ // ---------------------------------------------------------------------------
334
+ // AlertDialogClose
335
+ // ---------------------------------------------------------------------------
336
+
337
+ /**
338
+ * Button that closes the AlertDialog when clicked.
339
+ * Typically used in the footer alongside a confirm action.
340
+ *
341
+ * @param props - {@link IAlertDialogCloseProps}
342
+ * @returns The rendered close button
343
+ *
344
+ * @example
345
+ * ```tsx
346
+ * <AlertDialogClose className="border border-border px-4 py-2 rounded-md">
347
+ * Cancel
348
+ * </AlertDialogClose>
349
+ * ```
350
+ */
351
+ function AlertDialogClose({
352
+ slots,
353
+ className,
354
+ ...props
355
+ }: IAlertDialogCloseProps) {
356
+ return (
357
+ <AlertDialogPrimitive.Close
358
+ data-slot="alert-dialog-close"
359
+ className={cn(AlertDialogStyles.close, slots?.close, className)}
360
+ {...props}
361
+ />
362
+ );
363
+ }
364
+
365
+ // ---------------------------------------------------------------------------
366
+ // AlertDialogHeader
367
+ // ---------------------------------------------------------------------------
368
+
369
+ /**
370
+ * Layout wrapper for the dialog title and description.
371
+ * Provides consistent spacing and text alignment.
372
+ *
373
+ * @param props - {@link IAlertDialogHeaderProps}
374
+ * @returns The rendered header container
375
+ *
376
+ * @example
377
+ * ```tsx
378
+ * <AlertDialogHeader>
379
+ * <AlertDialogTitle>Confirm Action</AlertDialogTitle>
380
+ * <AlertDialogDescription>This cannot be undone.</AlertDialogDescription>
381
+ * </AlertDialogHeader>
382
+ * ```
383
+ */
384
+ function AlertDialogHeader({
385
+ slots,
386
+ className,
387
+ ...props
388
+ }: IAlertDialogHeaderProps) {
389
+ return (
390
+ <div
391
+ data-slot="alert-dialog-header"
392
+ className={cn(AlertDialogStyles.header, slots?.header, className)}
393
+ {...props}
394
+ />
395
+ );
396
+ }
397
+
398
+ // ---------------------------------------------------------------------------
399
+ // AlertDialogFooter
400
+ // ---------------------------------------------------------------------------
401
+
402
+ /**
403
+ * Layout wrapper for dialog action buttons.
404
+ * Uses responsive flex layout: column on mobile, row on desktop.
405
+ *
406
+ * @param props - {@link IAlertDialogFooterProps}
407
+ * @returns The rendered footer container
408
+ *
409
+ * @example
410
+ * ```tsx
411
+ * <AlertDialogFooter>
412
+ * <AlertDialogClose>Cancel</AlertDialogClose>
413
+ * <Button variant="destructive" onClick={handleDelete}>
414
+ * Delete
415
+ * </Button>
416
+ * </AlertDialogFooter>
417
+ * ```
418
+ */
419
+ function AlertDialogFooter({
420
+ slots,
421
+ className,
422
+ ...props
423
+ }: IAlertDialogFooterProps) {
424
+ return (
425
+ <div
426
+ data-slot="alert-dialog-footer"
427
+ className={cn(AlertDialogStyles.footer, slots?.footer, className)}
428
+ {...props}
429
+ />
430
+ );
431
+ }
432
+
433
+ // ---------------------------------------------------------------------------
434
+ // AlertDialogTitle
435
+ // ---------------------------------------------------------------------------
436
+
437
+ /**
438
+ * Title element for the AlertDialog.
439
+ * Automatically associated with the dialog for accessibility via Base UI.
440
+ *
441
+ * @param props - {@link IAlertDialogTitleProps}
442
+ * @returns The rendered title element
443
+ *
444
+ * @example
445
+ * ```tsx
446
+ * <AlertDialogTitle className="text-destructive">
447
+ * Delete Workspace
448
+ * </AlertDialogTitle>
449
+ * ```
450
+ */
451
+ function AlertDialogTitle({
452
+ slots,
453
+ className,
454
+ ...props
455
+ }: IAlertDialogTitleProps) {
456
+ return (
457
+ <AlertDialogPrimitive.Title
458
+ data-slot="alert-dialog-title"
459
+ className={cn(AlertDialogStyles.title, slots?.title, className)}
460
+ {...props}
461
+ />
462
+ );
463
+ }
464
+
465
+ // ---------------------------------------------------------------------------
466
+ // AlertDialogDescription
467
+ // ---------------------------------------------------------------------------
468
+
469
+ /**
470
+ * Description element for the AlertDialog.
471
+ * Provides additional context about the action being confirmed.
472
+ * Automatically associated with the dialog for accessibility via Base UI.
473
+ *
474
+ * @param props - {@link IAlertDialogDescriptionProps}
475
+ * @returns The rendered description element
476
+ *
477
+ * @example
478
+ * ```tsx
479
+ * <AlertDialogDescription>
480
+ * This will permanently delete the workspace and all associated data.
481
+ * This action cannot be undone.
482
+ * </AlertDialogDescription>
483
+ * ```
484
+ */
485
+ function AlertDialogDescription({
486
+ slots,
487
+ className,
488
+ ...props
489
+ }: IAlertDialogDescriptionProps) {
490
+ return (
491
+ <AlertDialogPrimitive.Description
492
+ data-slot="alert-dialog-description"
493
+ className={cn(
494
+ AlertDialogStyles.description,
495
+ slots?.description,
496
+ className,
497
+ )}
498
+ {...props}
499
+ />
500
+ );
501
+ }
502
+
503
+ // ---------------------------------------------------------------------------
504
+ // Exports
505
+ // ---------------------------------------------------------------------------
506
+
507
+ export {
508
+ AlertDialog,
509
+ AlertDialogPortal,
510
+ AlertDialogBackdrop,
511
+ AlertDialogClose,
512
+ AlertDialogTrigger,
513
+ AlertDialogPopup,
514
+ AlertDialogHeader,
515
+ AlertDialogFooter,
516
+ AlertDialogTitle,
517
+ AlertDialogDescription,
518
+ useAlertDialog,
519
+ };
520
+
521
+ // Re-export types
522
+ export type {
523
+ IAlertDialogProps,
524
+ IAlertDialogTriggerProps,
525
+ IAlertDialogPortalProps,
526
+ IAlertDialogCloseProps,
527
+ IAlertDialogBackdropProps,
528
+ IAlertDialogPopupProps,
529
+ IAlertDialogHeaderProps,
530
+ IAlertDialogFooterProps,
531
+ IAlertDialogTitleProps,
532
+ IAlertDialogDescriptionProps,
533
+ IAlertDialogConfig,
534
+ AlertDialogSlot,
535
+ AlertDialogContextType,
536
+ AlertDialogFlipDirection,
537
+ } from './AlertDialog.types';
538
+
539
+ // Re-export styles
540
+ export { AlertDialogStyles } from './AlertDialog.styles';
@@ -0,0 +1,43 @@
1
+ import { cva } from 'class-variance-authority';
2
+ import type { StyleSlots } from '@/core/types';
3
+
4
+ /** Visual regions for the Badge component. */
5
+ type BadgeSlot = 'root';
6
+
7
+ const badgeStyles: StyleSlots<BadgeSlot> = {
8
+ root: 'inline-flex items-center justify-center rounded-full border font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
9
+ };
10
+
11
+ /**
12
+ * CVA variants for the Badge root.
13
+ *
14
+ * @see {@link https://cva.style/docs/getting-started/variants}
15
+ */
16
+ const badgeVariants = cva(
17
+ 'inline-flex items-center justify-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
18
+ {
19
+ variants: {
20
+ variant: {
21
+ default:
22
+ 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',
23
+ secondary:
24
+ 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',
25
+ destructive:
26
+ 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',
27
+ outline: 'text-foreground',
28
+ },
29
+ size: {
30
+ default: 'h-6 px-2.5 py-0.5',
31
+ sm: 'h-5 px-2 text-[10px]',
32
+ lg: 'h-7 px-3 text-sm',
33
+ },
34
+ },
35
+ defaultVariants: {
36
+ variant: 'default',
37
+ size: 'default',
38
+ },
39
+ },
40
+ );
41
+
42
+ export { badgeStyles, badgeVariants };
43
+ export type { BadgeSlot };
@@ -0,0 +1,26 @@
1
+ import type { VariantProps } from 'class-variance-authority';
2
+ import type { SlotOverrides } from '@/core/types';
3
+ import type { badgeVariants, BadgeSlot } from './Badge.styles';
4
+
5
+ /**
6
+ * Props for the Badge component.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * <Badge variant="secondary" size="sm">New</Badge>
11
+ * ```
12
+ */
13
+ interface IBadgeProps
14
+ extends React.HTMLAttributes<HTMLDivElement>,
15
+ VariantProps<typeof badgeVariants> {
16
+ /** Override classes for badge visual regions. */
17
+ slots?: SlotOverrides<BadgeSlot>;
18
+ }
19
+
20
+ /** Available badge variants. */
21
+ type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline';
22
+
23
+ /** Available badge sizes. */
24
+ type BadgeSize = 'default' | 'sm' | 'lg';
25
+
26
+ export type { IBadgeProps, BadgeVariant, BadgeSize };
@@ -0,0 +1,34 @@
1
+ import * as React from 'react';
2
+
3
+ import { cn } from '@/react/lib/utils';
4
+ import { badgeVariants } from './Badge.styles';
5
+ import type { IBadgeProps } from './Badge.types';
6
+
7
+ /**
8
+ * Badge — displays status labels, categories, or indicators.
9
+ *
10
+ * @param variant - Visual style: 'default', 'secondary', 'destructive', 'outline'
11
+ * @param size - Badge size: 'default', 'sm', 'lg'
12
+ * @param slots - Override classes for badge visual regions
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <Badge variant="secondary">New</Badge>
17
+ * <Badge variant="destructive" size="sm">Error</Badge>
18
+ * ```
19
+ */
20
+ function Badge({ className, variant, size, slots, ...props }: IBadgeProps) {
21
+ return (
22
+ <div
23
+ data-slot="badge"
24
+ data-variant={variant}
25
+ data-size={size}
26
+ className={cn(badgeVariants({ variant, size }), slots?.root, className)}
27
+ {...props}
28
+ />
29
+ );
30
+ }
31
+
32
+ export { Badge, badgeVariants };
33
+ export type { IBadgeProps, BadgeVariant, BadgeSize } from './Badge.types';
34
+ export type { BadgeSlot } from './Badge.styles';
@@ -0,0 +1,57 @@
1
+ import { cva } from 'class-variance-authority';
2
+ import type { StyleSlots } from '@/core/types';
3
+
4
+ /** Visual regions for the Button component. */
5
+ type ButtonSlot = 'root';
6
+
7
+ const buttonStyles: StyleSlots<ButtonSlot> = {
8
+ root: 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0',
9
+ };
10
+
11
+ /**
12
+ * CVA variants for the Button root.
13
+ *
14
+ * @see {@link https://cva.style/docs/getting-started/variants}
15
+ */
16
+ const buttonVariants = cva(
17
+ 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 active:scale-[0.98]',
18
+ {
19
+ variants: {
20
+ variant: {
21
+ default:
22
+ 'bg-primary text-primary-foreground hover:bg-primary/90',
23
+ secondary:
24
+ 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
25
+ destructive:
26
+ 'bg-destructive text-destructive-foreground hover:bg-destructive/90',
27
+ outline:
28
+ 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
29
+ ghost: 'hover:bg-accent hover:text-accent-foreground',
30
+ link: 'text-primary underline-offset-4 hover:underline',
31
+ success:
32
+ 'bg-emerald-600 text-white hover:bg-emerald-700 focus-visible:ring-emerald-600',
33
+ warning:
34
+ 'bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-500',
35
+ },
36
+ size: {
37
+ default: 'h-10 px-4 py-2',
38
+ sm: 'h-9 rounded-md px-3 text-xs',
39
+ lg: 'h-11 rounded-md px-8 text-base',
40
+ icon: 'h-10 w-10 p-0',
41
+ },
42
+ },
43
+ defaultVariants: {
44
+ variant: 'default',
45
+ size: 'default',
46
+ },
47
+ },
48
+ );
49
+
50
+ /** State-specific style classes for Button. */
51
+ const buttonStateStyles = {
52
+ pressed: 'scale-[0.98]',
53
+ disabled: 'opacity-50 pointer-events-none',
54
+ };
55
+
56
+ export { buttonStyles, buttonVariants, buttonStateStyles };
57
+ export type { ButtonSlot };