@work-rjkashyap/unified-ui 0.3.4 → 0.3.6

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 (456) hide show
  1. package/CHANGELOG.md +105 -0
  2. package/LICENSE +21 -0
  3. package/dist/components/accordion.cjs +225 -0
  4. package/dist/components/accordion.d.cts +157 -0
  5. package/dist/components/accordion.d.ts +157 -0
  6. package/dist/components/accordion.mjs +199 -0
  7. package/dist/components/alert-dialog.cjs +246 -0
  8. package/dist/components/alert-dialog.d.cts +61 -0
  9. package/dist/components/alert-dialog.d.ts +61 -0
  10. package/dist/components/alert-dialog.mjs +218 -0
  11. package/dist/components/alert.cjs +401 -0
  12. package/dist/components/alert.d.cts +217 -0
  13. package/dist/components/alert.d.ts +217 -0
  14. package/dist/components/alert.mjs +374 -0
  15. package/dist/components/aspect-ratio.cjs +45 -0
  16. package/dist/components/aspect-ratio.d.cts +10 -0
  17. package/dist/components/aspect-ratio.d.ts +10 -0
  18. package/dist/components/aspect-ratio.mjs +23 -0
  19. package/dist/components/avatar.cjs +348 -0
  20. package/dist/components/avatar.d.cts +198 -0
  21. package/dist/components/avatar.d.ts +198 -0
  22. package/dist/components/avatar.mjs +329 -0
  23. package/dist/components/badge.cjs +325 -0
  24. package/dist/components/badge.d.cts +259 -0
  25. package/dist/components/badge.d.ts +259 -0
  26. package/dist/components/badge.mjs +298 -0
  27. package/dist/components/banner.cjs +147 -0
  28. package/dist/components/banner.d.cts +31 -0
  29. package/dist/components/banner.d.ts +31 -0
  30. package/dist/components/banner.mjs +122 -0
  31. package/dist/components/breadcrumb.cjs +266 -0
  32. package/dist/components/breadcrumb.d.cts +159 -0
  33. package/dist/components/breadcrumb.d.ts +159 -0
  34. package/dist/components/breadcrumb.mjs +235 -0
  35. package/dist/components/button.cjs +254 -0
  36. package/dist/components/button.d.cts +126 -0
  37. package/dist/components/button.d.ts +126 -0
  38. package/dist/components/button.mjs +229 -0
  39. package/dist/components/calendar.cjs +511 -0
  40. package/dist/components/calendar.d.cts +94 -0
  41. package/dist/components/calendar.d.ts +94 -0
  42. package/dist/components/calendar.mjs +492 -0
  43. package/dist/components/card.cjs +234 -0
  44. package/dist/components/card.d.cts +190 -0
  45. package/dist/components/card.d.ts +190 -0
  46. package/dist/components/card.mjs +210 -0
  47. package/dist/components/carousel.cjs +234 -0
  48. package/dist/components/carousel.d.cts +30 -0
  49. package/dist/components/carousel.d.ts +30 -0
  50. package/dist/components/carousel.mjs +217 -0
  51. package/dist/components/chart.cjs +122 -0
  52. package/dist/components/chart.d.cts +103 -0
  53. package/dist/components/chart.d.ts +103 -0
  54. package/dist/components/chart.mjs +96 -0
  55. package/dist/components/checkbox.cjs +318 -0
  56. package/dist/components/checkbox.d.cts +182 -0
  57. package/dist/components/checkbox.d.ts +182 -0
  58. package/dist/components/checkbox.mjs +296 -0
  59. package/dist/components/code-highlight.cjs +335 -0
  60. package/dist/components/code-highlight.d.cts +18 -0
  61. package/dist/components/code-highlight.d.ts +18 -0
  62. package/dist/components/code-highlight.mjs +308 -0
  63. package/dist/components/code.cjs +265 -0
  64. package/dist/components/code.d.cts +40 -0
  65. package/dist/components/code.d.ts +40 -0
  66. package/dist/components/code.mjs +243 -0
  67. package/dist/components/collapsible.cjs +143 -0
  68. package/dist/components/collapsible.d.cts +159 -0
  69. package/dist/components/collapsible.d.ts +159 -0
  70. package/dist/components/collapsible.mjs +123 -0
  71. package/dist/components/color-picker.cjs +348 -0
  72. package/dist/components/color-picker.d.cts +35 -0
  73. package/dist/components/color-picker.d.ts +35 -0
  74. package/dist/components/color-picker.mjs +331 -0
  75. package/dist/components/combobox.cjs +584 -0
  76. package/dist/components/combobox.d.cts +183 -0
  77. package/dist/components/combobox.d.ts +183 -0
  78. package/dist/components/combobox.mjs +571 -0
  79. package/dist/components/command.cjs +329 -0
  80. package/dist/components/command.d.cts +97 -0
  81. package/dist/components/command.d.ts +97 -0
  82. package/dist/components/command.mjs +311 -0
  83. package/dist/components/confirm-dialog.cjs +100 -0
  84. package/dist/components/confirm-dialog.d.cts +25 -0
  85. package/dist/components/confirm-dialog.d.ts +25 -0
  86. package/dist/components/confirm-dialog.mjs +86 -0
  87. package/dist/components/context-menu.cjs +325 -0
  88. package/dist/components/context-menu.d.cts +259 -0
  89. package/dist/components/context-menu.d.ts +259 -0
  90. package/dist/components/context-menu.mjs +290 -0
  91. package/dist/components/copy-button.cjs +203 -0
  92. package/dist/components/copy-button.d.cts +22 -0
  93. package/dist/components/copy-button.d.ts +22 -0
  94. package/dist/components/copy-button.mjs +178 -0
  95. package/dist/components/data-list.cjs +140 -0
  96. package/dist/components/data-list.d.cts +36 -0
  97. package/dist/components/data-list.d.ts +36 -0
  98. package/dist/components/data-list.mjs +113 -0
  99. package/dist/components/data-table-toolbar.cjs +338 -0
  100. package/dist/components/data-table-toolbar.d.cts +84 -0
  101. package/dist/components/data-table-toolbar.d.ts +84 -0
  102. package/dist/components/data-table-toolbar.mjs +320 -0
  103. package/dist/components/data-table.cjs +1324 -0
  104. package/dist/components/data-table.d.cts +349 -0
  105. package/dist/components/data-table.d.ts +349 -0
  106. package/dist/components/data-table.mjs +1323 -0
  107. package/dist/components/date-picker.cjs +282 -0
  108. package/dist/components/date-picker.d.cts +97 -0
  109. package/dist/components/date-picker.d.ts +97 -0
  110. package/dist/components/date-picker.mjs +258 -0
  111. package/dist/components/dialog.cjs +319 -0
  112. package/dist/components/dialog.d.cts +74 -0
  113. package/dist/components/dialog.d.ts +74 -0
  114. package/dist/components/dialog.mjs +292 -0
  115. package/dist/components/drawer.cjs +262 -0
  116. package/dist/components/drawer.d.cts +113 -0
  117. package/dist/components/drawer.d.ts +113 -0
  118. package/dist/components/drawer.mjs +230 -0
  119. package/dist/components/dropdown-menu.cjs +328 -0
  120. package/dist/components/dropdown-menu.d.cts +95 -0
  121. package/dist/components/dropdown-menu.d.ts +95 -0
  122. package/dist/components/dropdown-menu.mjs +293 -0
  123. package/dist/components/empty-state.cjs +123 -0
  124. package/dist/components/empty-state.d.cts +15 -0
  125. package/dist/components/empty-state.d.ts +15 -0
  126. package/dist/components/empty-state.mjs +99 -0
  127. package/dist/components/file-upload.cjs +442 -0
  128. package/dist/components/file-upload.d.cts +35 -0
  129. package/dist/components/file-upload.d.ts +35 -0
  130. package/dist/components/file-upload.mjs +423 -0
  131. package/dist/components/form-field.cjs +191 -0
  132. package/dist/components/form-field.d.cts +163 -0
  133. package/dist/components/form-field.d.ts +163 -0
  134. package/dist/components/form-field.mjs +167 -0
  135. package/dist/components/hover-card.cjs +99 -0
  136. package/dist/components/hover-card.d.cts +28 -0
  137. package/dist/components/hover-card.d.ts +28 -0
  138. package/dist/components/hover-card.mjs +75 -0
  139. package/dist/components/image-gallery.cjs +359 -0
  140. package/dist/components/image-gallery.d.cts +46 -0
  141. package/dist/components/image-gallery.d.ts +46 -0
  142. package/dist/components/image-gallery.mjs +340 -0
  143. package/dist/components/index.cjs +719 -0
  144. package/dist/components/index.d.cts +84 -0
  145. package/dist/components/index.d.ts +84 -0
  146. package/dist/components/index.mjs +771 -0
  147. package/dist/components/infinite-scroll.cjs +95 -0
  148. package/dist/components/infinite-scroll.d.cts +54 -0
  149. package/dist/components/infinite-scroll.d.ts +54 -0
  150. package/dist/components/infinite-scroll.mjs +71 -0
  151. package/dist/components/input-group.cjs +202 -0
  152. package/dist/components/input-group.d.cts +22 -0
  153. package/dist/components/input-group.d.ts +22 -0
  154. package/dist/components/input-group.mjs +178 -0
  155. package/dist/components/input.cjs +318 -0
  156. package/dist/components/input.d.cts +99 -0
  157. package/dist/components/input.d.ts +99 -0
  158. package/dist/components/input.mjs +296 -0
  159. package/dist/components/kbd.cjs +69 -0
  160. package/dist/components/kbd.d.cts +25 -0
  161. package/dist/components/kbd.d.ts +25 -0
  162. package/dist/components/kbd.mjs +44 -0
  163. package/dist/components/label.cjs +138 -0
  164. package/dist/components/label.d.cts +91 -0
  165. package/dist/components/label.d.ts +91 -0
  166. package/dist/components/label.mjs +113 -0
  167. package/dist/components/markdown.cjs +179 -0
  168. package/dist/components/markdown.d.cts +41 -0
  169. package/dist/components/markdown.d.ts +41 -0
  170. package/dist/components/markdown.mjs +155 -0
  171. package/dist/components/menubar.cjs +365 -0
  172. package/dist/components/menubar.d.cts +88 -0
  173. package/dist/components/menubar.d.ts +88 -0
  174. package/dist/components/menubar.mjs +329 -0
  175. package/dist/components/navigation-menu.cjs +280 -0
  176. package/dist/components/navigation-menu.d.cts +123 -0
  177. package/dist/components/navigation-menu.d.ts +123 -0
  178. package/dist/components/navigation-menu.mjs +250 -0
  179. package/dist/components/number-input.cjs +419 -0
  180. package/dist/components/number-input.d.cts +111 -0
  181. package/dist/components/number-input.d.ts +111 -0
  182. package/dist/components/number-input.mjs +400 -0
  183. package/dist/components/pagination.cjs +322 -0
  184. package/dist/components/pagination.d.cts +119 -0
  185. package/dist/components/pagination.d.ts +119 -0
  186. package/dist/components/pagination.mjs +297 -0
  187. package/dist/components/pin-input.cjs +321 -0
  188. package/dist/components/pin-input.d.cts +112 -0
  189. package/dist/components/pin-input.d.ts +112 -0
  190. package/dist/components/pin-input.mjs +303 -0
  191. package/dist/components/popover.cjs +194 -0
  192. package/dist/components/popover.d.cts +108 -0
  193. package/dist/components/popover.d.ts +108 -0
  194. package/dist/components/popover.mjs +168 -0
  195. package/dist/components/progress.cjs +237 -0
  196. package/dist/components/progress.d.cts +137 -0
  197. package/dist/components/progress.d.ts +137 -0
  198. package/dist/components/progress.mjs +211 -0
  199. package/dist/components/radio.cjs +344 -0
  200. package/dist/components/radio.d.cts +145 -0
  201. package/dist/components/radio.d.ts +145 -0
  202. package/dist/components/radio.mjs +320 -0
  203. package/dist/components/resizable.cjs +121 -0
  204. package/dist/components/resizable.d.cts +23 -0
  205. package/dist/components/resizable.d.ts +23 -0
  206. package/dist/components/resizable.mjs +99 -0
  207. package/dist/components/scroll-area.cjs +168 -0
  208. package/dist/components/scroll-area.d.cts +131 -0
  209. package/dist/components/scroll-area.d.ts +131 -0
  210. package/dist/components/scroll-area.mjs +143 -0
  211. package/dist/components/search-input.cjs +261 -0
  212. package/dist/components/search-input.d.cts +26 -0
  213. package/dist/components/search-input.d.ts +26 -0
  214. package/dist/components/search-input.mjs +243 -0
  215. package/dist/components/select.cjs +320 -0
  216. package/dist/components/select.d.cts +55 -0
  217. package/dist/components/select.d.ts +55 -0
  218. package/dist/components/select.mjs +288 -0
  219. package/dist/components/separator.cjs +193 -0
  220. package/dist/components/separator.d.cts +92 -0
  221. package/dist/components/separator.d.ts +92 -0
  222. package/dist/components/separator.mjs +170 -0
  223. package/dist/components/sheet.cjs +399 -0
  224. package/dist/components/sheet.d.cts +219 -0
  225. package/dist/components/sheet.d.ts +219 -0
  226. package/dist/components/sheet.mjs +379 -0
  227. package/dist/components/sidebar.cjs +1077 -0
  228. package/dist/components/sidebar.d.cts +733 -0
  229. package/dist/components/sidebar.d.ts +733 -0
  230. package/dist/components/sidebar.mjs +1033 -0
  231. package/dist/components/skeleton.cjs +210 -0
  232. package/dist/components/skeleton.d.cts +202 -0
  233. package/dist/components/skeleton.d.ts +202 -0
  234. package/dist/components/skeleton.mjs +182 -0
  235. package/dist/components/slider.cjs +319 -0
  236. package/dist/components/slider.d.cts +82 -0
  237. package/dist/components/slider.d.ts +82 -0
  238. package/dist/components/slider.mjs +296 -0
  239. package/dist/components/sonner.cjs +119 -0
  240. package/dist/components/sonner.d.cts +60 -0
  241. package/dist/components/sonner.d.ts +60 -0
  242. package/dist/components/sonner.mjs +94 -0
  243. package/dist/components/spinner.cjs +238 -0
  244. package/dist/components/spinner.d.cts +101 -0
  245. package/dist/components/spinner.d.ts +101 -0
  246. package/dist/components/spinner.mjs +213 -0
  247. package/dist/components/stat.cjs +180 -0
  248. package/dist/components/stat.d.cts +21 -0
  249. package/dist/components/stat.d.ts +21 -0
  250. package/dist/components/stat.mjs +161 -0
  251. package/dist/components/steps.cjs +228 -0
  252. package/dist/components/steps.d.cts +76 -0
  253. package/dist/components/steps.d.ts +76 -0
  254. package/dist/components/steps.mjs +207 -0
  255. package/dist/components/switch.cjs +243 -0
  256. package/dist/components/switch.d.cts +90 -0
  257. package/dist/components/switch.d.ts +90 -0
  258. package/dist/components/switch.mjs +228 -0
  259. package/dist/components/table.cjs +381 -0
  260. package/dist/components/table.d.cts +181 -0
  261. package/dist/components/table.d.ts +181 -0
  262. package/dist/components/table.mjs +349 -0
  263. package/dist/components/tabs.cjs +326 -0
  264. package/dist/components/tabs.d.cts +154 -0
  265. package/dist/components/tabs.d.ts +154 -0
  266. package/dist/components/tabs.mjs +304 -0
  267. package/dist/components/textarea.cjs +258 -0
  268. package/dist/components/textarea.d.cts +112 -0
  269. package/dist/components/textarea.d.ts +112 -0
  270. package/dist/components/textarea.mjs +233 -0
  271. package/dist/components/theme-toggle.cjs +282 -0
  272. package/dist/components/theme-toggle.d.cts +58 -0
  273. package/dist/components/theme-toggle.d.ts +58 -0
  274. package/dist/components/theme-toggle.mjs +258 -0
  275. package/dist/components/timeline.cjs +178 -0
  276. package/dist/components/timeline.d.cts +41 -0
  277. package/dist/components/timeline.d.ts +41 -0
  278. package/dist/components/timeline.mjs +157 -0
  279. package/dist/components/toast.cjs +546 -0
  280. package/dist/components/toast.d.cts +169 -0
  281. package/dist/components/toast.d.ts +169 -0
  282. package/dist/components/toast.mjs +528 -0
  283. package/dist/components/toggle-group.cjs +204 -0
  284. package/dist/components/toggle-group.d.cts +215 -0
  285. package/dist/components/toggle-group.d.ts +215 -0
  286. package/dist/components/toggle-group.mjs +180 -0
  287. package/dist/components/toggle.cjs +155 -0
  288. package/dist/components/toggle.d.cts +100 -0
  289. package/dist/components/toggle.d.ts +100 -0
  290. package/dist/components/toggle.mjs +130 -0
  291. package/dist/components/tooltip.cjs +155 -0
  292. package/dist/components/tooltip.d.cts +129 -0
  293. package/dist/components/tooltip.d.ts +129 -0
  294. package/dist/components/tooltip.mjs +132 -0
  295. package/dist/components/tree-view.cjs +450 -0
  296. package/dist/components/tree-view.d.cts +67 -0
  297. package/dist/components/tree-view.d.ts +67 -0
  298. package/dist/components/tree-view.mjs +433 -0
  299. package/dist/components/video-player.cjs +344 -0
  300. package/dist/components/video-player.d.cts +34 -0
  301. package/dist/components/video-player.d.ts +34 -0
  302. package/dist/components/video-player.mjs +320 -0
  303. package/dist/components/virtual-list.cjs +153 -0
  304. package/dist/components/virtual-list.d.cts +53 -0
  305. package/dist/components/virtual-list.d.ts +53 -0
  306. package/dist/components/virtual-list.mjs +136 -0
  307. package/dist/components/visually-hidden.cjs +43 -0
  308. package/dist/components/visually-hidden.d.cts +9 -0
  309. package/dist/components/visually-hidden.d.ts +9 -0
  310. package/dist/components/visually-hidden.mjs +21 -0
  311. package/dist/index.cjs +1081 -1957
  312. package/dist/index.d.cts +99 -11
  313. package/dist/index.d.ts +99 -11
  314. package/dist/index.mjs +1138 -16
  315. package/dist/motion/hooks.cjs +98 -0
  316. package/dist/motion/hooks.d.cts +32 -0
  317. package/dist/motion/hooks.d.ts +32 -0
  318. package/dist/motion/hooks.mjs +70 -0
  319. package/dist/motion/index.cjs +157 -0
  320. package/dist/motion/index.d.cts +5 -0
  321. package/dist/motion/index.d.ts +5 -0
  322. package/dist/motion/index.mjs +137 -0
  323. package/dist/motion/presets.cjs +609 -0
  324. package/dist/{motion.d.ts → motion/presets.d.cts} +1 -30
  325. package/dist/{motion.d.cts → motion/presets.d.ts} +1 -30
  326. package/dist/{chunk-PLRSH37T.mjs → motion/presets.mjs} +119 -126
  327. package/dist/primitives/container.cjs +88 -0
  328. package/dist/primitives/container.d.cts +82 -0
  329. package/dist/primitives/container.d.ts +82 -0
  330. package/dist/primitives/container.mjs +64 -0
  331. package/dist/primitives/divider.cjs +74 -0
  332. package/dist/primitives/divider.d.cts +30 -0
  333. package/dist/primitives/divider.d.ts +30 -0
  334. package/dist/primitives/divider.mjs +50 -0
  335. package/dist/primitives/index.cjs +54 -0
  336. package/dist/primitives/index.d.cts +6 -0
  337. package/dist/primitives/index.d.ts +6 -0
  338. package/dist/primitives/index.mjs +33 -0
  339. package/dist/primitives/stack.cjs +167 -0
  340. package/dist/primitives/stack.d.cts +132 -0
  341. package/dist/primitives/stack.d.ts +132 -0
  342. package/dist/primitives/stack.mjs +142 -0
  343. package/dist/primitives/typography.cjs +260 -0
  344. package/dist/primitives/typography.d.cts +157 -0
  345. package/dist/primitives/typography.d.ts +157 -0
  346. package/dist/primitives/typography.mjs +229 -0
  347. package/dist/theme/contract.cjs +246 -0
  348. package/dist/theme/contract.d.cts +76 -0
  349. package/dist/theme/contract.d.ts +76 -0
  350. package/dist/theme/contract.mjs +221 -0
  351. package/dist/theme/customizer-store.cjs +266 -0
  352. package/dist/theme/customizer-store.d.cts +76 -0
  353. package/dist/theme/customizer-store.d.ts +76 -0
  354. package/dist/theme/customizer-store.mjs +261 -0
  355. package/dist/theme/customizer.cjs +812 -0
  356. package/dist/theme/customizer.d.cts +13 -0
  357. package/dist/theme/customizer.d.ts +13 -0
  358. package/dist/theme/customizer.mjs +803 -0
  359. package/dist/theme/index.cjs +105 -0
  360. package/dist/theme/index.d.cts +13 -0
  361. package/dist/theme/index.d.ts +13 -0
  362. package/dist/theme/index.mjs +87 -0
  363. package/dist/theme/presets.cjs +1205 -0
  364. package/dist/theme/presets.d.cts +232 -0
  365. package/dist/theme/presets.d.ts +232 -0
  366. package/dist/theme/presets.mjs +1175 -0
  367. package/dist/theme/provider.cjs +122 -0
  368. package/dist/theme/provider.d.cts +57 -0
  369. package/dist/theme/provider.d.ts +57 -0
  370. package/dist/theme/provider.mjs +104 -0
  371. package/dist/{chunk-AAEWG5VR.mjs → tokens/colors.cjs} +94 -94
  372. package/dist/{z-index-DmLl6FUD.d.ts → tokens/colors.d.cts} +118 -72
  373. package/dist/{z-index-DmLl6FUD.d.cts → tokens/colors.d.ts} +118 -72
  374. package/dist/{chunk-6ZZZBOCH.cjs → tokens/colors.mjs} +47 -121
  375. package/dist/tokens/index.cjs +96 -0
  376. package/dist/tokens/index.d.cts +7 -0
  377. package/dist/tokens/index.d.ts +7 -0
  378. package/dist/tokens/index.mjs +71 -0
  379. package/dist/{chunk-XCKK6P46.cjs → tokens/motion.cjs} +46 -18
  380. package/dist/{motion-D9wQbcKL.d.cts → tokens/motion.d.cts} +1 -1
  381. package/dist/{motion-D9wQbcKL.d.ts → tokens/motion.d.ts} +1 -1
  382. package/dist/{chunk-EZ2L3XPS.mjs → tokens/motion.mjs} +16 -10
  383. package/dist/tokens/radius.cjs +41 -0
  384. package/dist/tokens/radius.d.cts +18 -0
  385. package/dist/tokens/radius.d.ts +18 -0
  386. package/dist/tokens/radius.mjs +17 -0
  387. package/dist/tokens/shadows.cjs +57 -0
  388. package/dist/tokens/shadows.d.cts +32 -0
  389. package/dist/tokens/shadows.d.ts +32 -0
  390. package/dist/tokens/shadows.mjs +32 -0
  391. package/dist/tokens/spacing.cjs +51 -0
  392. package/dist/tokens/spacing.d.cts +26 -0
  393. package/dist/tokens/spacing.d.ts +26 -0
  394. package/dist/{chunk-NMPHV6ZD.mjs → tokens/spacing.mjs} +4 -4
  395. package/dist/{chunk-ECIGDEAH.cjs → tokens/typography.cjs} +43 -16
  396. package/dist/{typography-DlvVjEdE.d.ts → tokens/typography.d.cts} +1 -1
  397. package/dist/{typography-DlvVjEdE.d.cts → tokens/typography.d.ts} +1 -1
  398. package/dist/{chunk-ITBG42M5.mjs → tokens/typography.mjs} +14 -9
  399. package/dist/tokens/z-index.cjs +47 -0
  400. package/dist/tokens/z-index.d.cts +24 -0
  401. package/dist/tokens/z-index.d.ts +24 -0
  402. package/dist/tokens/z-index.mjs +23 -0
  403. package/dist/utils/cn.cjs +102 -0
  404. package/dist/utils/cn.d.cts +84 -0
  405. package/dist/utils/cn.d.ts +84 -0
  406. package/dist/{chunk-ZT3PCXDF.mjs → utils/cn.mjs} +14 -7
  407. package/dist/{chunk-33QEKXRQ.cjs → utils/contrast.cjs} +68 -38
  408. package/dist/utils/contrast.d.cts +209 -0
  409. package/dist/utils/contrast.d.ts +209 -0
  410. package/dist/{chunk-5NZDQWRV.mjs → utils/contrast.mjs} +27 -18
  411. package/dist/utils/focus-ring.cjs +81 -0
  412. package/dist/utils/focus-ring.d.cts +80 -0
  413. package/dist/utils/focus-ring.d.ts +80 -0
  414. package/dist/utils/focus-ring.mjs +47 -0
  415. package/dist/utils/index.cjs +107 -0
  416. package/dist/utils/index.d.cts +6 -0
  417. package/dist/utils/index.d.ts +6 -0
  418. package/dist/utils/index.mjs +88 -0
  419. package/dist/utils/types.cjs +38 -0
  420. package/dist/utils/types.d.cts +187 -0
  421. package/dist/utils/types.d.ts +187 -0
  422. package/dist/utils/types.mjs +13 -0
  423. package/package.json +191 -191
  424. package/dist/chunk-2JFREULQ.cjs +0 -29
  425. package/dist/chunk-3EHT6IOA.cjs +0 -49
  426. package/dist/chunk-4ON3M3OM.cjs +0 -73
  427. package/dist/chunk-A2DGHQL2.cjs +0 -21808
  428. package/dist/chunk-BJ55D5IK.mjs +0 -2433
  429. package/dist/chunk-F4JJFWWU.cjs +0 -604
  430. package/dist/chunk-FUWXGHWQ.cjs +0 -468
  431. package/dist/chunk-MBYCK2JJ.mjs +0 -37
  432. package/dist/chunk-OHEH57BV.mjs +0 -455
  433. package/dist/chunk-RUG3BW2B.cjs +0 -2471
  434. package/dist/chunk-XAIUX2YS.mjs +0 -21477
  435. package/dist/components.cjs +0 -1247
  436. package/dist/components.d.cts +0 -7881
  437. package/dist/components.d.ts +0 -7881
  438. package/dist/components.mjs +0 -6
  439. package/dist/motion.cjs +0 -264
  440. package/dist/motion.mjs +0 -3
  441. package/dist/primitives.cjs +0 -57
  442. package/dist/primitives.d.cts +0 -390
  443. package/dist/primitives.d.ts +0 -390
  444. package/dist/primitives.mjs +0 -4
  445. package/dist/theme.cjs +0 -159
  446. package/dist/theme.d.cts +0 -440
  447. package/dist/theme.d.ts +0 -440
  448. package/dist/theme.mjs +0 -6
  449. package/dist/tokens.cjs +0 -137
  450. package/dist/tokens.d.cts +0 -30
  451. package/dist/tokens.d.ts +0 -30
  452. package/dist/tokens.mjs +0 -4
  453. package/dist/utils.cjs +0 -164
  454. package/dist/utils.d.cts +0 -525
  455. package/dist/utils.d.ts +0 -525
  456. package/dist/utils.mjs +0 -3
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var tabs_exports = {};
21
+ __export(tabs_exports, {
22
+ Tabs: () => Tabs,
23
+ TabsContent: () => TabsContent,
24
+ TabsList: () => TabsList,
25
+ TabsTrigger: () => TabsTrigger,
26
+ tabsListVariants: () => tabsListVariants,
27
+ tabsTriggerVariants: () => tabsTriggerVariants
28
+ });
29
+ module.exports = __toCommonJS(tabs_exports);
30
+ var import_jsx_runtime = require("react/jsx-runtime");
31
+ var import_cn = require("../utils/cn.cjs");
32
+ var import_focus_ring = require("../utils/focus-ring.cjs");
33
+ var import_class_variance_authority = require("class-variance-authority");
34
+ var import_framer_motion = require("framer-motion");
35
+ var import_radix_ui = require("radix-ui");
36
+ var import_react = require("react");
37
+ const TabsContext = (0, import_react.createContext)({
38
+ variant: "underline",
39
+ size: "md",
40
+ orientation: "horizontal",
41
+ layoutId: "",
42
+ activeValue: ""
43
+ });
44
+ function useTabsContext() {
45
+ return (0, import_react.useContext)(TabsContext);
46
+ }
47
+ const tabsListVariants = (0, import_class_variance_authority.cva)(["inline-flex items-center", "shrink-0"], {
48
+ variants: {
49
+ variant: {
50
+ underline: ["border-b border-border", "gap-0"],
51
+ pills: ["gap-1", "rounded-md", "bg-muted", "p-1"],
52
+ enclosed: ["border-b border-border", "gap-0"]
53
+ },
54
+ orientation: {
55
+ horizontal: "flex-row w-full",
56
+ vertical: "flex-col w-auto border-b-0"
57
+ },
58
+ fullWidth: {
59
+ true: "",
60
+ false: ""
61
+ }
62
+ },
63
+ compoundVariants: [
64
+ // Vertical orientation adjustments
65
+ {
66
+ variant: "underline",
67
+ orientation: "vertical",
68
+ className: "border-b-0 border-r border-border"
69
+ },
70
+ {
71
+ variant: "enclosed",
72
+ orientation: "vertical",
73
+ className: "border-b-0 border-r border-border"
74
+ }
75
+ ],
76
+ defaultVariants: {
77
+ variant: "underline",
78
+ orientation: "horizontal",
79
+ fullWidth: false
80
+ }
81
+ });
82
+ const tabsTriggerVariants = (0, import_class_variance_authority.cva)(
83
+ [
84
+ // Layout
85
+ "relative inline-flex items-center justify-center gap-1.5",
86
+ // Typography
87
+ "font-medium leading-5 whitespace-nowrap",
88
+ // Transition
89
+ "transition-[color,background-color,border-color,box-shadow,opacity]",
90
+ "duration-fast ease-standard",
91
+ // Focus ring
92
+ import_focus_ring.focusRingClasses,
93
+ // Disabled
94
+ "disabled:pointer-events-none disabled:opacity-50",
95
+ // Cursor
96
+ "cursor-pointer select-none"
97
+ ],
98
+ {
99
+ variants: {
100
+ variant: {
101
+ underline: [
102
+ "bg-transparent",
103
+ "text-muted-foreground",
104
+ "hover:text-foreground",
105
+ "data-[state=active]:text-foreground",
106
+ // Bottom border space for the active indicator
107
+ "border-b-2 border-transparent -mb-px"
108
+ ],
109
+ pills: [
110
+ "rounded-sm",
111
+ "text-muted-foreground",
112
+ "hover:text-foreground hover:bg-background/60",
113
+ "data-[state=active]:text-foreground"
114
+ ],
115
+ enclosed: [
116
+ "bg-transparent",
117
+ "text-muted-foreground",
118
+ "border border-transparent",
119
+ "hover:text-foreground",
120
+ "data-[state=active]:text-foreground",
121
+ "data-[state=active]:bg-background",
122
+ "data-[state=active]:border-border",
123
+ "data-[state=active]:border-b-transparent",
124
+ "-mb-px"
125
+ ]
126
+ },
127
+ size: {
128
+ sm: "text-xs px-3 py-1.5",
129
+ md: "text-sm px-4 py-2"
130
+ }
131
+ },
132
+ defaultVariants: {
133
+ variant: "underline",
134
+ size: "md"
135
+ }
136
+ }
137
+ );
138
+ const tabsContentVariants = (0, import_class_variance_authority.cva)(["mt-2", import_focus_ring.focusRingClasses, "rounded-sm"], {
139
+ variants: {
140
+ orientation: {
141
+ horizontal: "mt-2",
142
+ vertical: "mt-0 ml-4"
143
+ }
144
+ },
145
+ defaultVariants: {
146
+ orientation: "horizontal"
147
+ }
148
+ });
149
+ const MotionSpan = import_framer_motion.motion.create("span");
150
+ const indicatorSpringConfig = {
151
+ type: "spring",
152
+ stiffness: 500,
153
+ damping: 35,
154
+ mass: 0.5
155
+ };
156
+ const indicatorInstantConfig = {
157
+ type: "tween",
158
+ duration: 0
159
+ };
160
+ function ActiveIndicator({
161
+ variant,
162
+ layoutId
163
+ }) {
164
+ const prefersReduced = (0, import_framer_motion.useReducedMotion)();
165
+ const transition = prefersReduced ? indicatorInstantConfig : indicatorSpringConfig;
166
+ if (variant === "enclosed") {
167
+ return null;
168
+ }
169
+ if (variant === "underline") {
170
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
171
+ MotionSpan,
172
+ {
173
+ layoutId,
174
+ className: (0, import_cn.cn)(
175
+ "absolute bottom-0 left-0 right-0 h-0.5",
176
+ "bg-primary",
177
+ "rounded-full"
178
+ ),
179
+ transition
180
+ }
181
+ );
182
+ }
183
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
184
+ MotionSpan,
185
+ {
186
+ layoutId,
187
+ className: (0, import_cn.cn)(
188
+ "absolute inset-0",
189
+ "bg-background",
190
+ "rounded-sm",
191
+ "shadow-sm"
192
+ ),
193
+ transition
194
+ }
195
+ );
196
+ }
197
+ const Tabs = (0, import_react.forwardRef)(function Tabs2({
198
+ variant = "underline",
199
+ size = "md",
200
+ orientation = "horizontal",
201
+ className,
202
+ children,
203
+ value: controlledValue,
204
+ defaultValue,
205
+ onValueChange,
206
+ ...rest
207
+ }, ref) {
208
+ const autoId = (0, import_react.useId)();
209
+ const layoutId = `tabs-indicator-${autoId}`;
210
+ const [internalValue, setInternalValue] = (0, import_react.useState)(
211
+ controlledValue ?? defaultValue ?? ""
212
+ );
213
+ const activeValue = controlledValue !== void 0 ? controlledValue : internalValue;
214
+ const handleValueChange = (0, import_react.useCallback)(
215
+ (newValue) => {
216
+ if (controlledValue === void 0) {
217
+ setInternalValue(newValue);
218
+ }
219
+ onValueChange?.(newValue);
220
+ },
221
+ [controlledValue, onValueChange]
222
+ );
223
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
224
+ TabsContext.Provider,
225
+ {
226
+ value: { variant, size, orientation, layoutId, activeValue },
227
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
228
+ import_radix_ui.Tabs.Root,
229
+ {
230
+ ref,
231
+ orientation,
232
+ value: controlledValue,
233
+ defaultValue: controlledValue !== void 0 ? void 0 : defaultValue,
234
+ onValueChange: handleValueChange,
235
+ className: (0, import_cn.cn)(
236
+ "not-prose",
237
+ orientation === "vertical" && "flex flex-row",
238
+ className
239
+ ),
240
+ "data-ds": "",
241
+ "data-ds-component": "tabs",
242
+ "data-ds-variant": variant,
243
+ "data-ds-size": size,
244
+ "data-ds-orientation": orientation,
245
+ ...rest,
246
+ children
247
+ }
248
+ )
249
+ }
250
+ );
251
+ });
252
+ Tabs.displayName = "Tabs";
253
+ const TabsList = (0, import_react.forwardRef)(function TabsList2({ fullWidth = false, className, children, ...rest }, ref) {
254
+ const { variant, orientation } = useTabsContext();
255
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
256
+ import_radix_ui.Tabs.List,
257
+ {
258
+ ref,
259
+ className: (0, import_cn.cn)(
260
+ tabsListVariants({ variant, orientation, fullWidth }),
261
+ fullWidth && orientation === "horizontal" && "[&>*]:flex-1",
262
+ className
263
+ ),
264
+ "data-ds": "",
265
+ "data-ds-component": "tabs-list",
266
+ ...rest,
267
+ children
268
+ }
269
+ );
270
+ });
271
+ TabsList.displayName = "TabsList";
272
+ const TabsTrigger = (0, import_react.forwardRef)(function TabsTrigger2({ className, icon, children, disabled, value, ...rest }, ref) {
273
+ const { variant, size, layoutId, activeValue } = useTabsContext();
274
+ const iconSizeClass = size === "sm" ? "[&>svg]:size-3.5" : "[&>svg]:size-4";
275
+ const isActive = value === activeValue;
276
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
277
+ import_radix_ui.Tabs.Trigger,
278
+ {
279
+ ref,
280
+ value,
281
+ disabled,
282
+ className: (0, import_cn.cn)(
283
+ tabsTriggerVariants({ variant, size }),
284
+ iconSizeClass,
285
+ // For underline variant, make border transparent — the motion indicator handles the active line
286
+ variant === "underline" && "data-[state=active]:border-transparent",
287
+ className
288
+ ),
289
+ "data-ds": "",
290
+ "data-ds-component": "tabs-trigger",
291
+ ...rest,
292
+ children: [
293
+ variant !== "enclosed" && isActive && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "absolute inset-0 pointer-events-none", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ActiveIndicator, { variant, layoutId }) }),
294
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: (0, import_cn.cn)("relative z-[1] inline-flex items-center gap-1.5"), children: [
295
+ icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "shrink-0", "aria-hidden": "true", children: icon }),
296
+ children
297
+ ] })
298
+ ]
299
+ }
300
+ );
301
+ });
302
+ TabsTrigger.displayName = "TabsTrigger";
303
+ const TabsContent = (0, import_react.forwardRef)(function TabsContent2({ className, children, ...rest }, ref) {
304
+ const { orientation } = useTabsContext();
305
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
306
+ import_radix_ui.Tabs.Content,
307
+ {
308
+ ref,
309
+ className: (0, import_cn.cn)(tabsContentVariants({ orientation }), className),
310
+ "data-ds": "",
311
+ "data-ds-component": "tabs-content",
312
+ ...rest,
313
+ children
314
+ }
315
+ );
316
+ });
317
+ TabsContent.displayName = "TabsContent";
318
+ // Annotate the CommonJS export names for ESM import in node:
319
+ 0 && (module.exports = {
320
+ Tabs,
321
+ TabsContent,
322
+ TabsList,
323
+ TabsTrigger,
324
+ tabsListVariants,
325
+ tabsTriggerVariants
326
+ });
@@ -0,0 +1,154 @@
1
+ import * as react from 'react';
2
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { Tabs as Tabs$1 } from 'radix-ui';
5
+
6
+ declare const tabsListVariants: (props?: ({
7
+ variant?: "underline" | "pills" | "enclosed" | null | undefined;
8
+ orientation?: "horizontal" | "vertical" | null | undefined;
9
+ fullWidth?: boolean | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+ declare const tabsTriggerVariants: (props?: ({
12
+ variant?: "underline" | "pills" | "enclosed" | null | undefined;
13
+ size?: "sm" | "md" | null | undefined;
14
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
15
+ type TabsVariant = "underline" | "pills" | "enclosed";
16
+ type TabsSize = "sm" | "md";
17
+ type TabsOrientation = "horizontal" | "vertical";
18
+ interface TabsProps extends Omit<ComponentPropsWithoutRef<typeof Tabs$1.Root>, "orientation"> {
19
+ /** Visual variant of the tab list. @default "underline" */
20
+ variant?: TabsVariant;
21
+ /** Size of the tab triggers. @default "md" */
22
+ size?: TabsSize;
23
+ /** Layout orientation. @default "horizontal" */
24
+ orientation?: TabsOrientation;
25
+ /** Additional CSS classes. */
26
+ className?: string;
27
+ /** Tab content. */
28
+ children?: ReactNode;
29
+ }
30
+ interface TabsListProps extends ComponentPropsWithoutRef<typeof Tabs$1.List> {
31
+ /** Whether tabs stretch to fill the available width. @default false */
32
+ fullWidth?: boolean;
33
+ /** Additional CSS classes. */
34
+ className?: string;
35
+ /** Tab triggers. */
36
+ children?: ReactNode;
37
+ }
38
+ interface TabsTriggerProps extends ComponentPropsWithoutRef<typeof Tabs$1.Trigger> {
39
+ /** Additional CSS classes. */
40
+ className?: string;
41
+ /** Optional icon to display before the label. */
42
+ icon?: ReactNode;
43
+ /** The trigger label. */
44
+ children?: ReactNode;
45
+ }
46
+ interface TabsContentProps extends ComponentPropsWithoutRef<typeof Tabs$1.Content> {
47
+ /** Additional CSS classes. */
48
+ className?: string;
49
+ /** The panel content. */
50
+ children?: ReactNode;
51
+ }
52
+ /**
53
+ * Tabs — a tabbed interface for organizing content into panels.
54
+ *
55
+ * Built on Radix UI's Tabs primitive for full keyboard navigation
56
+ * and ARIA compliance. Supports three visual variants with an animated
57
+ * active indicator powered by Framer Motion layoutId.
58
+ *
59
+ * Accessibility:
60
+ * - Radix provides `role="tablist"`, `role="tab"`, `role="tabpanel"`
61
+ * - Arrow key navigation between triggers
62
+ * - Automatic `aria-selected`, `aria-controls`, `aria-labelledby`
63
+ * - Focus management follows WAI-ARIA Tabs pattern
64
+ *
65
+ * @example
66
+ * ```tsx
67
+ * // Basic underline tabs
68
+ * <Tabs defaultValue="overview">
69
+ * <TabsList>
70
+ * <TabsTrigger value="overview">Overview</TabsTrigger>
71
+ * <TabsTrigger value="analytics">Analytics</TabsTrigger>
72
+ * <TabsTrigger value="settings">Settings</TabsTrigger>
73
+ * </TabsList>
74
+ * <TabsContent value="overview">Overview content</TabsContent>
75
+ * <TabsContent value="analytics">Analytics content</TabsContent>
76
+ * <TabsContent value="settings">Settings content</TabsContent>
77
+ * </Tabs>
78
+ *
79
+ * // Pills variant, small size
80
+ * <Tabs variant="pills" size="sm" defaultValue="tab1">
81
+ * <TabsList>
82
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
83
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
84
+ * </TabsList>
85
+ * ...
86
+ * </Tabs>
87
+ *
88
+ * // Full-width tabs
89
+ * <Tabs defaultValue="tab1">
90
+ * <TabsList fullWidth>
91
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
92
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
93
+ * </TabsList>
94
+ * ...
95
+ * </Tabs>
96
+ *
97
+ * // Vertical orientation
98
+ * <Tabs orientation="vertical" defaultValue="tab1">
99
+ * <TabsList>
100
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
101
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
102
+ * </TabsList>
103
+ * <TabsContent value="tab1">Content 1</TabsContent>
104
+ * </Tabs>
105
+ * ```
106
+ */
107
+ declare const Tabs: react.ForwardRefExoticComponent<TabsProps & react.RefAttributes<HTMLDivElement>>;
108
+ /**
109
+ * TabsList — the container for tab triggers (the tab bar).
110
+ *
111
+ * @example
112
+ * ```tsx
113
+ * <TabsList>
114
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
115
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
116
+ * </TabsList>
117
+ *
118
+ * // Full-width stretch
119
+ * <TabsList fullWidth>
120
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
121
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
122
+ * </TabsList>
123
+ * ```
124
+ */
125
+ declare const TabsList: react.ForwardRefExoticComponent<TabsListProps & react.RefAttributes<HTMLDivElement>>;
126
+ /**
127
+ * TabsTrigger — an individual tab button within the TabsList.
128
+ *
129
+ * Renders a Framer Motion active indicator when the tab is selected,
130
+ * creating a smooth sliding animation between active tabs. The indicator
131
+ * is only mounted on the currently active trigger so that Framer Motion's
132
+ * layoutId animation works correctly (only one element per layoutId).
133
+ *
134
+ * @example
135
+ * ```tsx
136
+ * <TabsTrigger value="overview">Overview</TabsTrigger>
137
+ * <TabsTrigger value="analytics" icon={<BarChartIcon />}>Analytics</TabsTrigger>
138
+ * <TabsTrigger value="locked" disabled>Locked</TabsTrigger>
139
+ * ```
140
+ */
141
+ declare const TabsTrigger: react.ForwardRefExoticComponent<TabsTriggerProps & react.RefAttributes<HTMLButtonElement>>;
142
+ /**
143
+ * TabsContent — the content panel associated with a tab trigger.
144
+ *
145
+ * @example
146
+ * ```tsx
147
+ * <TabsContent value="overview">
148
+ * <p>Overview content goes here.</p>
149
+ * </TabsContent>
150
+ * ```
151
+ */
152
+ declare const TabsContent: react.ForwardRefExoticComponent<TabsContentProps & react.RefAttributes<HTMLDivElement>>;
153
+
154
+ export { Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsOrientation, type TabsProps, type TabsSize, TabsTrigger, type TabsTriggerProps, type TabsVariant, tabsListVariants, tabsTriggerVariants };
@@ -0,0 +1,154 @@
1
+ import * as react from 'react';
2
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
3
+ import * as class_variance_authority_types from 'class-variance-authority/types';
4
+ import { Tabs as Tabs$1 } from 'radix-ui';
5
+
6
+ declare const tabsListVariants: (props?: ({
7
+ variant?: "underline" | "pills" | "enclosed" | null | undefined;
8
+ orientation?: "horizontal" | "vertical" | null | undefined;
9
+ fullWidth?: boolean | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+ declare const tabsTriggerVariants: (props?: ({
12
+ variant?: "underline" | "pills" | "enclosed" | null | undefined;
13
+ size?: "sm" | "md" | null | undefined;
14
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
15
+ type TabsVariant = "underline" | "pills" | "enclosed";
16
+ type TabsSize = "sm" | "md";
17
+ type TabsOrientation = "horizontal" | "vertical";
18
+ interface TabsProps extends Omit<ComponentPropsWithoutRef<typeof Tabs$1.Root>, "orientation"> {
19
+ /** Visual variant of the tab list. @default "underline" */
20
+ variant?: TabsVariant;
21
+ /** Size of the tab triggers. @default "md" */
22
+ size?: TabsSize;
23
+ /** Layout orientation. @default "horizontal" */
24
+ orientation?: TabsOrientation;
25
+ /** Additional CSS classes. */
26
+ className?: string;
27
+ /** Tab content. */
28
+ children?: ReactNode;
29
+ }
30
+ interface TabsListProps extends ComponentPropsWithoutRef<typeof Tabs$1.List> {
31
+ /** Whether tabs stretch to fill the available width. @default false */
32
+ fullWidth?: boolean;
33
+ /** Additional CSS classes. */
34
+ className?: string;
35
+ /** Tab triggers. */
36
+ children?: ReactNode;
37
+ }
38
+ interface TabsTriggerProps extends ComponentPropsWithoutRef<typeof Tabs$1.Trigger> {
39
+ /** Additional CSS classes. */
40
+ className?: string;
41
+ /** Optional icon to display before the label. */
42
+ icon?: ReactNode;
43
+ /** The trigger label. */
44
+ children?: ReactNode;
45
+ }
46
+ interface TabsContentProps extends ComponentPropsWithoutRef<typeof Tabs$1.Content> {
47
+ /** Additional CSS classes. */
48
+ className?: string;
49
+ /** The panel content. */
50
+ children?: ReactNode;
51
+ }
52
+ /**
53
+ * Tabs — a tabbed interface for organizing content into panels.
54
+ *
55
+ * Built on Radix UI's Tabs primitive for full keyboard navigation
56
+ * and ARIA compliance. Supports three visual variants with an animated
57
+ * active indicator powered by Framer Motion layoutId.
58
+ *
59
+ * Accessibility:
60
+ * - Radix provides `role="tablist"`, `role="tab"`, `role="tabpanel"`
61
+ * - Arrow key navigation between triggers
62
+ * - Automatic `aria-selected`, `aria-controls`, `aria-labelledby`
63
+ * - Focus management follows WAI-ARIA Tabs pattern
64
+ *
65
+ * @example
66
+ * ```tsx
67
+ * // Basic underline tabs
68
+ * <Tabs defaultValue="overview">
69
+ * <TabsList>
70
+ * <TabsTrigger value="overview">Overview</TabsTrigger>
71
+ * <TabsTrigger value="analytics">Analytics</TabsTrigger>
72
+ * <TabsTrigger value="settings">Settings</TabsTrigger>
73
+ * </TabsList>
74
+ * <TabsContent value="overview">Overview content</TabsContent>
75
+ * <TabsContent value="analytics">Analytics content</TabsContent>
76
+ * <TabsContent value="settings">Settings content</TabsContent>
77
+ * </Tabs>
78
+ *
79
+ * // Pills variant, small size
80
+ * <Tabs variant="pills" size="sm" defaultValue="tab1">
81
+ * <TabsList>
82
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
83
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
84
+ * </TabsList>
85
+ * ...
86
+ * </Tabs>
87
+ *
88
+ * // Full-width tabs
89
+ * <Tabs defaultValue="tab1">
90
+ * <TabsList fullWidth>
91
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
92
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
93
+ * </TabsList>
94
+ * ...
95
+ * </Tabs>
96
+ *
97
+ * // Vertical orientation
98
+ * <Tabs orientation="vertical" defaultValue="tab1">
99
+ * <TabsList>
100
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
101
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
102
+ * </TabsList>
103
+ * <TabsContent value="tab1">Content 1</TabsContent>
104
+ * </Tabs>
105
+ * ```
106
+ */
107
+ declare const Tabs: react.ForwardRefExoticComponent<TabsProps & react.RefAttributes<HTMLDivElement>>;
108
+ /**
109
+ * TabsList — the container for tab triggers (the tab bar).
110
+ *
111
+ * @example
112
+ * ```tsx
113
+ * <TabsList>
114
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
115
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
116
+ * </TabsList>
117
+ *
118
+ * // Full-width stretch
119
+ * <TabsList fullWidth>
120
+ * <TabsTrigger value="tab1">Tab 1</TabsTrigger>
121
+ * <TabsTrigger value="tab2">Tab 2</TabsTrigger>
122
+ * </TabsList>
123
+ * ```
124
+ */
125
+ declare const TabsList: react.ForwardRefExoticComponent<TabsListProps & react.RefAttributes<HTMLDivElement>>;
126
+ /**
127
+ * TabsTrigger — an individual tab button within the TabsList.
128
+ *
129
+ * Renders a Framer Motion active indicator when the tab is selected,
130
+ * creating a smooth sliding animation between active tabs. The indicator
131
+ * is only mounted on the currently active trigger so that Framer Motion's
132
+ * layoutId animation works correctly (only one element per layoutId).
133
+ *
134
+ * @example
135
+ * ```tsx
136
+ * <TabsTrigger value="overview">Overview</TabsTrigger>
137
+ * <TabsTrigger value="analytics" icon={<BarChartIcon />}>Analytics</TabsTrigger>
138
+ * <TabsTrigger value="locked" disabled>Locked</TabsTrigger>
139
+ * ```
140
+ */
141
+ declare const TabsTrigger: react.ForwardRefExoticComponent<TabsTriggerProps & react.RefAttributes<HTMLButtonElement>>;
142
+ /**
143
+ * TabsContent — the content panel associated with a tab trigger.
144
+ *
145
+ * @example
146
+ * ```tsx
147
+ * <TabsContent value="overview">
148
+ * <p>Overview content goes here.</p>
149
+ * </TabsContent>
150
+ * ```
151
+ */
152
+ declare const TabsContent: react.ForwardRefExoticComponent<TabsContentProps & react.RefAttributes<HTMLDivElement>>;
153
+
154
+ export { Tabs, TabsContent, type TabsContentProps, TabsList, type TabsListProps, type TabsOrientation, type TabsProps, type TabsSize, TabsTrigger, type TabsTriggerProps, type TabsVariant, tabsListVariants, tabsTriggerVariants };