@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,155 @@
1
+ /**
2
+ * Type definitions for the Switch component.
3
+ *
4
+ * @module @mks2508/mks-ui/react/ui/Switch/Switch.types
5
+ */
6
+
7
+ import type { Switch as SwitchPrimitives } from '@base-ui/react/switch';
8
+ import type {
9
+ HTMLMotionProps,
10
+ LegacyAnimationControls,
11
+ TargetAndTransition,
12
+ VariantLabels,
13
+ } from 'motion/react';
14
+
15
+ import type { IBaseConfig, SlotOverrides } from '@/core/types';
16
+
17
+ /**
18
+ * Available style slot names for the Switch component.
19
+ * Each slot maps to a visual region that can be customized via the `slots` prop.
20
+ *
21
+ * - `root` - The outer switch track/button element
22
+ * - `thumb` - The sliding thumb indicator
23
+ * - `icon` - Icons displayed at left/right/thumb positions
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * <Switch slots={{ root: 'bg-zinc-800', thumb: 'bg-white', icon: 'text-zinc-400' }} />
28
+ * ```
29
+ */
30
+ export type SwitchSlot = 'root' | 'thumb' | 'icon';
31
+
32
+ /**
33
+ * Position of an icon within the Switch component.
34
+ *
35
+ * - `left` - Shown when the switch is ON (checked)
36
+ * - `right` - Shown when the switch is OFF (unchecked)
37
+ * - `thumb` - Always visible on the thumb
38
+ */
39
+ export type SwitchIconPosition = 'left' | 'right' | 'thumb';
40
+
41
+ /**
42
+ * Internal context type for Switch state management.
43
+ * Shared between the Switch root and its child components via React context.
44
+ */
45
+ export type SwitchContextType = {
46
+ /** Whether the switch is currently checked (on). */
47
+ isChecked: boolean;
48
+ /** Callback to update the checked state. */
49
+ setIsChecked: ISwitchProps['onCheckedChange'];
50
+ /** Whether the switch is currently being pressed. */
51
+ isPressed: boolean;
52
+ /** Callback to update the pressed state. */
53
+ setIsPressed: (isPressed: boolean) => void;
54
+ };
55
+
56
+ /**
57
+ * Configuration options for Switch behavior and animation.
58
+ * Extends the base config with switch-specific settings.
59
+ *
60
+ * @example
61
+ * ```tsx
62
+ * <Switch config={{ animation: { duration: 0.3 } }} />
63
+ * ```
64
+ */
65
+ export interface ISwitchConfig extends IBaseConfig {
66
+ /**
67
+ * Spring stiffness for the thumb animation.
68
+ * @defaultValue 300
69
+ */
70
+ springStiffness?: number;
71
+ /**
72
+ * Spring damping for the thumb animation.
73
+ * @defaultValue 25
74
+ */
75
+ springDamping?: number;
76
+ }
77
+
78
+ /**
79
+ * Props for the Switch root component.
80
+ * Combines Base UI Switch.Root props (without `render`) with Motion button props,
81
+ * plus slot overrides and configuration.
82
+ *
83
+ * @example
84
+ * ```tsx
85
+ * <Switch
86
+ * checked={isOn}
87
+ * onCheckedChange={setIsOn}
88
+ * slots={{ root: 'w-11 h-6 rounded-full' }}
89
+ * >
90
+ * <SwitchThumb />
91
+ * </Switch>
92
+ * ```
93
+ */
94
+ export type ISwitchProps = Omit<
95
+ React.ComponentProps<typeof SwitchPrimitives.Root>,
96
+ 'render'
97
+ > &
98
+ HTMLMotionProps<'button'> & {
99
+ /** Partial class overrides for each visual slot. */
100
+ slots?: SlotOverrides<SwitchSlot>;
101
+ /** Behavioral and animation configuration. */
102
+ config?: ISwitchConfig;
103
+ };
104
+
105
+ /**
106
+ * Props for the SwitchThumb sub-component.
107
+ * Combines Base UI Switch.Thumb props (without `render`) with Motion div props,
108
+ * plus an optional pressed animation target.
109
+ *
110
+ * @example
111
+ * ```tsx
112
+ * <SwitchThumb
113
+ * pressedAnimation={{ width: 28 }}
114
+ * className="size-5 rounded-full bg-white"
115
+ * />
116
+ * ```
117
+ */
118
+ export type ISwitchThumbProps = Omit<
119
+ React.ComponentProps<typeof SwitchPrimitives.Thumb>,
120
+ 'render'
121
+ > &
122
+ HTMLMotionProps<'div'> & {
123
+ /**
124
+ * Animation target applied while the switch is being pressed.
125
+ * Can be a motion target object, variant labels, or a boolean.
126
+ */
127
+ pressedAnimation?:
128
+ | TargetAndTransition
129
+ | VariantLabels
130
+ | boolean
131
+ | LegacyAnimationControls;
132
+ /** Partial class overrides for each visual slot. */
133
+ slots?: SlotOverrides<SwitchSlot>;
134
+ };
135
+
136
+ /**
137
+ * Props for the SwitchIcon sub-component.
138
+ * Renders an icon at a specified position within the switch track or thumb.
139
+ *
140
+ * @example
141
+ * ```tsx
142
+ * <SwitchIcon position="left">
143
+ * <SunIcon className="size-3" />
144
+ * </SwitchIcon>
145
+ * <SwitchIcon position="right">
146
+ * <MoonIcon className="size-3" />
147
+ * </SwitchIcon>
148
+ * ```
149
+ */
150
+ export type ISwitchIconProps = HTMLMotionProps<'div'> & {
151
+ /** Where this icon is positioned within the switch. */
152
+ position: SwitchIconPosition;
153
+ /** Partial class overrides for each visual slot. */
154
+ slots?: SlotOverrides<SwitchSlot>;
155
+ };
@@ -0,0 +1,253 @@
1
+ 'use client';
2
+
3
+ /**
4
+ * Switch component with animated thumb and icon transitions.
5
+ *
6
+ * Built on Base UI Switch primitives with Motion animations for
7
+ * spring-based thumb movement, press interactions, and icon visibility.
8
+ *
9
+ * @module @mks2508/mks-ui/react/ui/Switch
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * import { Switch, SwitchThumb } from '@mks2508/mks-ui';
14
+ *
15
+ * function MySwitch() {
16
+ * const [checked, setChecked] = useState(false);
17
+ * return (
18
+ * <Switch checked={checked} onCheckedChange={setChecked}>
19
+ * <SwitchThumb />
20
+ * </Switch>
21
+ * );
22
+ * }
23
+ * ```
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * // With icons
28
+ * import { Switch, SwitchThumb, SwitchIcon } from '@mks2508/mks-ui';
29
+ *
30
+ * <Switch checked={darkMode} onCheckedChange={setDarkMode}>
31
+ * <SwitchIcon position="left"><SunIcon /></SwitchIcon>
32
+ * <SwitchThumb />
33
+ * <SwitchIcon position="right"><MoonIcon /></SwitchIcon>
34
+ * </Switch>
35
+ * ```
36
+ */
37
+
38
+ import * as React from 'react';
39
+ import { Switch as SwitchPrimitives } from '@base-ui/react/switch';
40
+ import { motion } from 'motion/react';
41
+
42
+ import { cn } from '@/react/lib/utils';
43
+ import { getStrictContext } from '@/react/lib/get-strict-context';
44
+ import { useControlledState } from '@/react/hooks/State/UseControlledState';
45
+
46
+ import { switchStyles } from './Switch.styles';
47
+ import type {
48
+ SwitchContextType,
49
+ ISwitchProps,
50
+ ISwitchThumbProps,
51
+ ISwitchIconProps,
52
+ } from './Switch.types';
53
+
54
+ const [SwitchProvider, useSwitch] =
55
+ getStrictContext<SwitchContextType>('SwitchContext');
56
+
57
+ /**
58
+ * Switch root component with animated tap interactions.
59
+ *
60
+ * Wraps Base UI `Switch.Root` with a `motion.button` render element,
61
+ * providing tap start/end tracking for press animation support on the thumb.
62
+ * Supports both controlled and uncontrolled checked state via `useControlledState`.
63
+ *
64
+ * @param props - Switch props including Base UI root props, motion props, slots, and config
65
+ * @returns A switch button element with press tracking
66
+ *
67
+ * @example
68
+ * ```tsx
69
+ * <Switch
70
+ * checked={isEnabled}
71
+ * onCheckedChange={setIsEnabled}
72
+ * slots={{ root: 'w-14 h-7 rounded-full bg-zinc-700' }}
73
+ * >
74
+ * <SwitchThumb />
75
+ * </Switch>
76
+ * ```
77
+ */
78
+ function Switch({
79
+ name,
80
+ defaultChecked,
81
+ checked,
82
+ onCheckedChange,
83
+ nativeButton,
84
+ disabled,
85
+ readOnly,
86
+ required,
87
+ inputRef,
88
+ id,
89
+ className,
90
+ slots,
91
+ config: _config,
92
+ ...props
93
+ }: ISwitchProps) {
94
+ const [isPressed, setIsPressed] = React.useState(false);
95
+ const [isChecked, setIsChecked] = useControlledState({
96
+ value: checked,
97
+ defaultValue: defaultChecked,
98
+ onChange: onCheckedChange,
99
+ });
100
+
101
+ return (
102
+ <SwitchProvider
103
+ value={{ isChecked, setIsChecked, isPressed, setIsPressed }}
104
+ >
105
+ <SwitchPrimitives.Root
106
+ name={name}
107
+ defaultChecked={defaultChecked}
108
+ checked={checked}
109
+ onCheckedChange={setIsChecked}
110
+ nativeButton={nativeButton}
111
+ disabled={disabled}
112
+ readOnly={readOnly}
113
+ required={required}
114
+ inputRef={inputRef}
115
+ id={id}
116
+ render={
117
+ <motion.button
118
+ data-slot="switch"
119
+ whileTap="tap"
120
+ initial={false}
121
+ onTapStart={() => setIsPressed(true)}
122
+ onTapCancel={() => setIsPressed(false)}
123
+ onTap={() => setIsPressed(false)}
124
+ className={cn(switchStyles.root, slots?.root, className)}
125
+ {...props}
126
+ />
127
+ }
128
+ />
129
+ </SwitchProvider>
130
+ );
131
+ }
132
+
133
+ /**
134
+ * SwitchThumb renders the sliding thumb indicator with spring-based layout animation.
135
+ *
136
+ * Uses Motion `layout` for smooth position transitions between checked/unchecked states.
137
+ * Optionally accepts a `pressedAnimation` target applied while the switch is being pressed.
138
+ *
139
+ * @param props - Thumb props including motion props, pressed animation, and slot overrides
140
+ * @returns An animated thumb div element
141
+ *
142
+ * @example
143
+ * ```tsx
144
+ * <SwitchThumb
145
+ * pressedAnimation={{ width: 28 }}
146
+ * slots={{ thumb: 'bg-white shadow-md' }}
147
+ * />
148
+ * ```
149
+ *
150
+ * @example
151
+ * ```tsx
152
+ * // Default spring animation
153
+ * <SwitchThumb />
154
+ * ```
155
+ */
156
+ function SwitchThumb({
157
+ pressedAnimation,
158
+ transition = { type: 'spring', stiffness: 300, damping: 25 },
159
+ className,
160
+ slots,
161
+ ...props
162
+ }: ISwitchThumbProps) {
163
+ const { isPressed } = useSwitch();
164
+
165
+ return (
166
+ <SwitchPrimitives.Thumb
167
+ render={
168
+ <motion.div
169
+ data-slot="switch-thumb"
170
+ whileTap="tab"
171
+ layout
172
+ transition={transition}
173
+ animate={isPressed ? pressedAnimation : undefined}
174
+ className={cn(switchStyles.thumb, slots?.thumb, className)}
175
+ {...props}
176
+ />
177
+ }
178
+ />
179
+ );
180
+ }
181
+
182
+ /**
183
+ * SwitchIcon renders an animated icon at a specified position within the switch.
184
+ *
185
+ * - `left` position: visible when the switch is ON (checked)
186
+ * - `right` position: visible when the switch is OFF (unchecked)
187
+ * - `thumb` position: always visible on the thumb element
188
+ *
189
+ * Uses spring-based scale and opacity transitions for smooth show/hide animations.
190
+ *
191
+ * @param props - Icon props including position, motion props, and slot overrides
192
+ * @returns An animated icon container div
193
+ *
194
+ * @example
195
+ * ```tsx
196
+ * <SwitchIcon position="left">
197
+ * <CheckIcon className="size-3 text-white" />
198
+ * </SwitchIcon>
199
+ * ```
200
+ *
201
+ * @example
202
+ * ```tsx
203
+ * <SwitchIcon position="thumb">
204
+ * <GripIcon className="size-2.5 text-zinc-400" />
205
+ * </SwitchIcon>
206
+ * ```
207
+ */
208
+ function SwitchIcon({
209
+ position,
210
+ transition = { type: 'spring', bounce: 0 },
211
+ className,
212
+ slots,
213
+ ...props
214
+ }: ISwitchIconProps) {
215
+ const { isChecked } = useSwitch();
216
+
217
+ const isAnimated = React.useMemo(() => {
218
+ if (position === 'right') return !isChecked;
219
+ if (position === 'left') return isChecked;
220
+ if (position === 'thumb') return true;
221
+ return false;
222
+ }, [position, isChecked]);
223
+
224
+ return (
225
+ <motion.div
226
+ data-slot={`switch-${position}-icon`}
227
+ animate={isAnimated ? { scale: 1, opacity: 1 } : { scale: 0, opacity: 0 }}
228
+ transition={transition}
229
+ className={cn(switchStyles.icon, slots?.icon, className)}
230
+ {...props}
231
+ />
232
+ );
233
+ }
234
+
235
+ export {
236
+ Switch,
237
+ SwitchThumb,
238
+ SwitchIcon,
239
+ useSwitch,
240
+ };
241
+
242
+ // Re-exports
243
+ export type {
244
+ ISwitchProps,
245
+ ISwitchThumbProps,
246
+ ISwitchIconProps,
247
+ ISwitchConfig,
248
+ SwitchContextType,
249
+ SwitchIconPosition,
250
+ SwitchSlot,
251
+ } from './Switch.types';
252
+
253
+ export { switchStyles } from './Switch.styles';
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Style slots and defaults for the Tabs component.
3
+ *
4
+ * Each slot maps to a visual region of the Tabs. Consumers override
5
+ * individual slots via the `slots` prop without touching internals.
6
+ *
7
+ * @module @mks2508/mks-ui/react/ui/Tabs/Tabs.styles
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { tabsStyles } from './Tabs.styles';
12
+ * // tabsStyles.root => default root classes
13
+ * ```
14
+ */
15
+
16
+ import type { StyleSlots } from '@/core/types';
17
+
18
+ /**
19
+ * Union of all visual regions (slots) in the Tabs component tree.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const overrides: SlotOverrides<TabsSlot> = {
24
+ * root: 'w-full',
25
+ * list: 'flex gap-1 border-b border-white/10',
26
+ * tab: 'px-3 py-1.5 text-sm',
27
+ * };
28
+ * ```
29
+ */
30
+ export type TabsSlot =
31
+ | 'root'
32
+ | 'list'
33
+ | 'tab'
34
+ | 'panel'
35
+ | 'panels'
36
+ | 'highlight'
37
+ | 'highlightItem';
38
+
39
+ /**
40
+ * Default style map for every Tabs slot.
41
+ *
42
+ * Base classes are intentionally minimal so consumers can fully
43
+ * control the visual appearance through `slots` overrides.
44
+ * No colors are hardcoded -- all visuals come from consumer styles.
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * import { tabsStyles } from './Tabs.styles';
49
+ * cn(tabsStyles.list, slots?.list, className);
50
+ * ```
51
+ */
52
+ export const tabsStyles: StyleSlots<TabsSlot> = {
53
+ root: '',
54
+ list: '',
55
+ tab: '',
56
+ panel: '',
57
+ panels: '',
58
+ highlight: '',
59
+ highlightItem: '',
60
+ };
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Type definitions for the Tabs component.
3
+ *
4
+ * All interfaces use the IPrefix convention. Type aliases do not.
5
+ * Supports two panel modes: auto-height (animated resize) and layout (motion layout).
6
+ *
7
+ * @module @mks2508/mks-ui/react/ui/Tabs/Tabs.types
8
+ */
9
+
10
+ import type * as React from 'react';
11
+ import type { Tabs as TabsPrimitive } from '@base-ui/react/tabs';
12
+ import type { HTMLMotionProps, Transition } from 'motion/react';
13
+
14
+ import type { IBaseConfig, SlotOverrides } from '@/core/types';
15
+ import type { IHighlightProps, IHighlightItemProps } from '@/react/primitives/Highlight';
16
+ import type { IAutoHeightProps } from '@/react/primitives/AutoHeight';
17
+ import type { TabsSlot } from './Tabs.styles';
18
+
19
+ // ---------------------------------------------------------------------------
20
+ // Config
21
+ // ---------------------------------------------------------------------------
22
+
23
+ /**
24
+ * Configuration interface for Tabs behavior and animation.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * const config: ITabsConfig = {
29
+ * animation: { duration: 0.3 },
30
+ * };
31
+ * ```
32
+ */
33
+ export interface ITabsConfig extends IBaseConfig {
34
+ /** Default motion transition for panel enter/exit. */
35
+ panelTransition?: Transition;
36
+ /** Default motion transition for the highlight indicator. */
37
+ highlightTransition?: Transition;
38
+ }
39
+
40
+ // ---------------------------------------------------------------------------
41
+ // Context type (type alias -- no IPrefix)
42
+ // ---------------------------------------------------------------------------
43
+
44
+ /**
45
+ * Internal context carrying the active tab value and its setter.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const ctx: TabsContextType = {
50
+ * value: 'settings',
51
+ * setValue: (v) => {},
52
+ * };
53
+ * ```
54
+ */
55
+ export type TabsContextType = {
56
+ /** Currently active tab value, or undefined if none. */
57
+ value: string | undefined;
58
+ /** Setter matching base-ui's onValueChange signature. */
59
+ setValue: ITabsProps['onValueChange'];
60
+ };
61
+
62
+ // ---------------------------------------------------------------------------
63
+ // Root
64
+ // ---------------------------------------------------------------------------
65
+
66
+ /**
67
+ * Props for the root Tabs component.
68
+ * Extends base-ui Tabs.Root with slot overrides and config.
69
+ *
70
+ * @example
71
+ * ```tsx
72
+ * <Tabs
73
+ * defaultValue="general"
74
+ * slots={{ list: 'gap-2', tab: 'text-sm' }}
75
+ * >
76
+ * ...
77
+ * </Tabs>
78
+ * ```
79
+ */
80
+ export interface ITabsProps extends React.ComponentProps<typeof TabsPrimitive.Root> {
81
+ /** Partial class overrides per slot. */
82
+ slots?: SlotOverrides<TabsSlot>;
83
+ /** Tabs behavior / animation configuration. */
84
+ config?: ITabsConfig;
85
+ }
86
+
87
+ // ---------------------------------------------------------------------------
88
+ // Highlight
89
+ // ---------------------------------------------------------------------------
90
+
91
+ /**
92
+ * Props for TabsHighlight -- animated background that follows the active tab.
93
+ * Wraps the Highlight primitive; `controlledItems` and `value` are managed internally.
94
+ *
95
+ * @example
96
+ * ```tsx
97
+ * <TabsHighlight className="rounded-md bg-white/10" />
98
+ * ```
99
+ */
100
+ export interface ITabsHighlightProps
101
+ extends Omit<IHighlightProps, 'controlledItems' | 'value'> {
102
+ /** Partial class overrides per slot. */
103
+ slots?: SlotOverrides<TabsSlot>;
104
+ }
105
+
106
+ /**
107
+ * Props for TabsHighlightItem -- wraps a tab for highlight position tracking.
108
+ * Requires a `value` prop matching the corresponding tab value.
109
+ *
110
+ * @example
111
+ * ```tsx
112
+ * <TabsHighlightItem value="general">
113
+ * <TabsTab value="general">General</TabsTab>
114
+ * </TabsHighlightItem>
115
+ * ```
116
+ */
117
+ export interface ITabsHighlightItemProps extends IHighlightItemProps {
118
+ /** Tab value this highlight item corresponds to. */
119
+ value: string;
120
+ /** Partial class overrides per slot. */
121
+ slots?: SlotOverrides<TabsSlot>;
122
+ }
123
+
124
+ // ---------------------------------------------------------------------------
125
+ // List
126
+ // ---------------------------------------------------------------------------
127
+
128
+ /**
129
+ * Props for TabsList -- the container holding tab triggers.
130
+ *
131
+ * @example
132
+ * ```tsx
133
+ * <TabsList className="flex gap-1 border-b border-white/10">
134
+ * <TabsTab value="general">General</TabsTab>
135
+ * <TabsTab value="advanced">Advanced</TabsTab>
136
+ * </TabsList>
137
+ * ```
138
+ */
139
+ export interface ITabsListProps
140
+ extends React.ComponentProps<typeof TabsPrimitive.List> {
141
+ /** Partial class overrides per slot. */
142
+ slots?: SlotOverrides<TabsSlot>;
143
+ }
144
+
145
+ // ---------------------------------------------------------------------------
146
+ // Tab
147
+ // ---------------------------------------------------------------------------
148
+
149
+ /**
150
+ * Props for TabsTab -- a single tab trigger button.
151
+ *
152
+ * @example
153
+ * ```tsx
154
+ * <TabsTab value="general" className="px-3 py-1.5">
155
+ * General
156
+ * </TabsTab>
157
+ * ```
158
+ */
159
+ export interface ITabsTabProps
160
+ extends React.ComponentProps<typeof TabsPrimitive.Tab> {
161
+ /** Partial class overrides per slot. */
162
+ slots?: SlotOverrides<TabsSlot>;
163
+ }
164
+
165
+ // ---------------------------------------------------------------------------
166
+ // Panel
167
+ // ---------------------------------------------------------------------------
168
+
169
+ /**
170
+ * Props for TabsPanel -- animated content panel with blur transitions.
171
+ * Combines base-ui Panel with motion HTML props for enter/exit animations.
172
+ *
173
+ * @example
174
+ * ```tsx
175
+ * <TabsPanel value="general" className="p-4">
176
+ * <p>General settings content...</p>
177
+ * </TabsPanel>
178
+ * ```
179
+ */
180
+ export interface ITabsPanelProps
181
+ extends Omit<React.ComponentProps<typeof TabsPrimitive.Panel>, keyof HTMLMotionProps<'div'>>,
182
+ HTMLMotionProps<'div'> {
183
+ /** Partial class overrides per slot. */
184
+ slots?: SlotOverrides<TabsSlot>;
185
+ }
186
+
187
+ // ---------------------------------------------------------------------------
188
+ // Panels (auto-height | layout mode)
189
+ // ---------------------------------------------------------------------------
190
+
191
+ /**
192
+ * Props for TabsPanels in auto-height mode.
193
+ * Uses the AutoHeight primitive to animate container height changes.
194
+ *
195
+ * @example
196
+ * ```tsx
197
+ * <TabsPanels mode="auto-height">
198
+ * <TabsPanel value="general">Short content</TabsPanel>
199
+ * <TabsPanel value="advanced">Much longer content...</TabsPanel>
200
+ * </TabsPanels>
201
+ * ```
202
+ */
203
+ export interface ITabsPanelsAutoProps extends Omit<IAutoHeightProps, 'children'> {
204
+ /** Panel animation mode (default). */
205
+ mode?: 'auto-height';
206
+ /** Tab panel children. */
207
+ children: React.ReactNode;
208
+ /** Motion transition for height animation. */
209
+ transition?: Transition;
210
+ /** Partial class overrides per slot. */
211
+ slots?: SlotOverrides<TabsSlot>;
212
+ }
213
+
214
+ /**
215
+ * Props for TabsPanels in layout mode.
216
+ * Uses Motion layout animation to transition between panels.
217
+ *
218
+ * @example
219
+ * ```tsx
220
+ * <TabsPanels mode="layout" className="overflow-hidden">
221
+ * <TabsPanel value="general">Content A</TabsPanel>
222
+ * <TabsPanel value="advanced">Content B</TabsPanel>
223
+ * </TabsPanels>
224
+ * ```
225
+ */
226
+ export interface ITabsPanelsLayoutProps extends Omit<HTMLMotionProps<'div'>, 'children'> {
227
+ /** Panel animation mode. */
228
+ mode: 'layout';
229
+ /** Tab panel children. */
230
+ children: React.ReactNode;
231
+ /** Motion transition for layout animation. */
232
+ transition?: Transition;
233
+ /** Partial class overrides per slot. */
234
+ slots?: SlotOverrides<TabsSlot>;
235
+ }
236
+
237
+ /**
238
+ * Discriminated union of TabsPanels props.
239
+ * Defaults to auto-height mode when `mode` is omitted.
240
+ *
241
+ * @example
242
+ * ```tsx
243
+ * // Auto-height (default)
244
+ * <TabsPanels>...</TabsPanels>
245
+ *
246
+ * // Layout mode
247
+ * <TabsPanels mode="layout">...</TabsPanels>
248
+ * ```
249
+ */
250
+ export type ITabsPanelsProps = ITabsPanelsAutoProps | ITabsPanelsLayoutProps;