@work-rjkashyap/unified-ui 0.3.3 → 0.3.5

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 -1933
  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-IVZAB7BV.mjs → tokens/colors.cjs} +212 -86
  372. package/dist/{z-index-Dd8IllRx.d.cts → tokens/colors.d.cts} +235 -72
  373. package/dist/{z-index-Dd8IllRx.d.ts → tokens/colors.d.ts} +235 -72
  374. package/dist/{chunk-ZBGR7MUW.cjs → tokens/colors.mjs} +165 -104
  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-5TP7J7T4.cjs +0 -1766
  428. package/dist/chunk-A2DGHQL2.cjs +0 -21808
  429. package/dist/chunk-EQWESXRH.mjs +0 -1735
  430. package/dist/chunk-F4JJFWWU.cjs +0 -604
  431. package/dist/chunk-FUWXGHWQ.cjs +0 -468
  432. package/dist/chunk-MBYCK2JJ.mjs +0 -37
  433. package/dist/chunk-OHEH57BV.mjs +0 -455
  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 -131
  446. package/dist/theme.d.cts +0 -414
  447. package/dist/theme.d.ts +0 -414
  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,329 @@
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 command_exports = {};
21
+ __export(command_exports, {
22
+ Command: () => Command,
23
+ CommandTrigger: () => CommandTrigger
24
+ });
25
+ module.exports = __toCommonJS(command_exports);
26
+ var import_jsx_runtime = require("react/jsx-runtime");
27
+ var import_motion = require("../motion/index");
28
+ var import_cn = require("../utils/cn");
29
+ var import_framer_motion = require("framer-motion");
30
+ var import_radix_ui = require("radix-ui");
31
+ var import_react = require("react");
32
+ var import_kbd = require("./kbd");
33
+ function SearchIcon({ className }) {
34
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
35
+ "svg",
36
+ {
37
+ xmlns: "http://www.w3.org/2000/svg",
38
+ width: "16",
39
+ height: "16",
40
+ viewBox: "0 0 24 24",
41
+ fill: "none",
42
+ stroke: "currentColor",
43
+ strokeWidth: "2",
44
+ strokeLinecap: "round",
45
+ strokeLinejoin: "round",
46
+ className,
47
+ "aria-hidden": "true",
48
+ children: [
49
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "11", cy: "11", r: "8" }),
50
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "m21 21-4.3-4.3" })
51
+ ]
52
+ }
53
+ );
54
+ }
55
+ function ShortcutKeys({ keys }) {
56
+ const modifiers = /* @__PURE__ */ new Set(["\u2318", "\u21E7", "\u2325", "\u2303"]);
57
+ const tokens = [];
58
+ let rest = keys;
59
+ while (rest.length > 0) {
60
+ if (modifiers.has(rest[0])) {
61
+ tokens.push(rest[0]);
62
+ rest = rest.slice(1);
63
+ } else {
64
+ tokens.push(rest);
65
+ break;
66
+ }
67
+ }
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "inline-flex items-center gap-0.5", children: tokens.map((token, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_kbd.Kbd, { size: "sm", children: token }, i)) });
69
+ }
70
+ function matchesSearch(item, query) {
71
+ if (!query) return true;
72
+ const q = query.toLowerCase();
73
+ return item.label.toLowerCase().includes(q) || (item.description?.toLowerCase().includes(q) ?? false);
74
+ }
75
+ function Command({
76
+ open,
77
+ onOpenChange,
78
+ groups,
79
+ placeholder = "Search commands...",
80
+ emptyText = "No results found.",
81
+ shortcutKey = "k"
82
+ }) {
83
+ const [query, setQuery] = (0, import_react.useState)("");
84
+ const [activeIndex, setActiveIndex] = (0, import_react.useState)(0);
85
+ const inputRef = (0, import_react.useRef)(null);
86
+ const listRef = (0, import_react.useRef)(null);
87
+ const inputId = (0, import_react.useId)();
88
+ const listboxId = (0, import_react.useId)();
89
+ (0, import_react.useEffect)(() => {
90
+ function handleKeyDown2(e) {
91
+ if ((e.metaKey || e.ctrlKey) && e.key === shortcutKey) {
92
+ e.preventDefault();
93
+ onOpenChange(!open);
94
+ }
95
+ }
96
+ document.addEventListener("keydown", handleKeyDown2);
97
+ return () => document.removeEventListener("keydown", handleKeyDown2);
98
+ }, [open, onOpenChange, shortcutKey]);
99
+ (0, import_react.useEffect)(() => {
100
+ if (open) {
101
+ setQuery("");
102
+ setActiveIndex(0);
103
+ const timer = setTimeout(() => inputRef.current?.focus(), 50);
104
+ return () => clearTimeout(timer);
105
+ }
106
+ }, [open]);
107
+ const filteredGroups = (0, import_react.useMemo)(() => {
108
+ return groups.map((group) => ({
109
+ ...group,
110
+ items: group.items.filter((item) => matchesSearch(item, query))
111
+ })).filter((group) => group.items.length > 0);
112
+ }, [groups, query]);
113
+ const flatItems = (0, import_react.useMemo)(
114
+ () => filteredGroups.flatMap((g) => g.items).filter((i) => !i.disabled),
115
+ [filteredGroups]
116
+ );
117
+ const clampedIndex = Math.min(activeIndex, Math.max(0, flatItems.length - 1));
118
+ function handleKeyDown(e) {
119
+ if (e.key === "ArrowDown") {
120
+ e.preventDefault();
121
+ setActiveIndex((i) => Math.min(i + 1, flatItems.length - 1));
122
+ } else if (e.key === "ArrowUp") {
123
+ e.preventDefault();
124
+ setActiveIndex((i) => Math.max(i - 1, 0));
125
+ } else if (e.key === "Enter") {
126
+ e.preventDefault();
127
+ const active = flatItems[clampedIndex];
128
+ if (active) {
129
+ active.onSelect();
130
+ onOpenChange(false);
131
+ }
132
+ } else if (e.key === "Escape") {
133
+ onOpenChange(false);
134
+ }
135
+ }
136
+ (0, import_react.useEffect)(() => {
137
+ const el = listRef.current?.querySelector(
138
+ `[data-cmd-item][data-active="true"]`
139
+ );
140
+ el?.scrollIntoView({ block: "nearest" });
141
+ }, []);
142
+ let flatIndex = 0;
143
+ const shouldReduce = (0, import_framer_motion.useReducedMotion)();
144
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Dialog.Root, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Dialog.Portal, { forceMount: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_framer_motion.AnimatePresence, { children: open && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
145
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Dialog.Overlay, { forceMount: true, asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
146
+ import_framer_motion.motion.div,
147
+ {
148
+ className: (0, import_cn.cn)("fixed inset-0 z-[var(--z-modal)] bg-black/50"),
149
+ variants: shouldReduce ? void 0 : import_motion.overlayBackdrop.variants,
150
+ initial: shouldReduce ? { opacity: 0 } : "initial",
151
+ animate: shouldReduce ? { opacity: 1 } : "animate",
152
+ exit: shouldReduce ? { opacity: 0 } : "exit",
153
+ transition: shouldReduce ? { duration: 0.15 } : import_motion.overlayBackdrop.transition,
154
+ "data-ds-animated": ""
155
+ }
156
+ ) }),
157
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Dialog.Content, { forceMount: true, asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
158
+ import_framer_motion.motion.div,
159
+ {
160
+ className: (0, import_cn.cn)(
161
+ "fixed left-1/2 top-[20%] z-[var(--z-modal)]",
162
+ "w-full max-w-lg -translate-x-1/2",
163
+ "rounded-lg border border-border bg-background shadow-xl",
164
+ "overflow-hidden"
165
+ ),
166
+ variants: shouldReduce ? void 0 : import_motion.modalContent.variants,
167
+ initial: shouldReduce ? { opacity: 0 } : "initial",
168
+ animate: shouldReduce ? { opacity: 1 } : "animate",
169
+ exit: shouldReduce ? { opacity: 0 } : "exit",
170
+ transition: shouldReduce ? { duration: 0.2 } : import_motion.modalContent.transition,
171
+ "data-ds": "",
172
+ "data-ds-component": "command",
173
+ "data-ds-animated": "",
174
+ "aria-label": "Command Palette",
175
+ children: [
176
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Dialog.Title, { className: "sr-only", children: "Command Palette" }),
177
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_radix_ui.Dialog.Description, { className: "sr-only", children: "Search and run commands using the keyboard or mouse." }),
178
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-2 border-b border-border px-3 py-2.5", children: [
179
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SearchIcon, { className: "shrink-0 text-muted-foreground" }),
180
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
181
+ "input",
182
+ {
183
+ ref: inputRef,
184
+ id: inputId,
185
+ type: "text",
186
+ role: "combobox",
187
+ "aria-expanded": filteredGroups.length > 0,
188
+ "aria-controls": listboxId,
189
+ "aria-activedescendant": flatItems[clampedIndex] ? `cmd-item-${flatItems[clampedIndex].id}` : void 0,
190
+ "aria-autocomplete": "list",
191
+ autoComplete: "off",
192
+ spellCheck: false,
193
+ value: query,
194
+ onChange: (e) => {
195
+ setQuery(e.target.value);
196
+ setActiveIndex(0);
197
+ },
198
+ onKeyDown: handleKeyDown,
199
+ placeholder,
200
+ className: (0, import_cn.cn)(
201
+ "flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"
202
+ )
203
+ }
204
+ ),
205
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShortcutKeys, { keys: "Esc" })
206
+ ] }),
207
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
208
+ "div",
209
+ {
210
+ ref: listRef,
211
+ id: listboxId,
212
+ role: "listbox",
213
+ "aria-label": "Commands",
214
+ className: "max-h-[320px] overflow-y-auto p-1",
215
+ children: filteredGroups.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "py-6 text-center text-sm text-muted-foreground", children: emptyText }) : filteredGroups.map((group, gi) => {
216
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { role: "group", "aria-label": group.heading, children: [
217
+ group.heading && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "px-2 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider", children: group.heading }),
218
+ group.items.map((item) => {
219
+ const isActive = !item.disabled && flatIndex === clampedIndex;
220
+ if (!item.disabled) flatIndex++;
221
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
222
+ "div",
223
+ {
224
+ id: `cmd-item-${item.id}`,
225
+ role: "option",
226
+ "aria-selected": isActive,
227
+ "aria-disabled": item.disabled,
228
+ "data-cmd-item": "",
229
+ "data-active": isActive ? "true" : void 0,
230
+ onMouseEnter: () => {
231
+ if (!item.disabled) {
232
+ const idx = flatItems.findIndex(
233
+ (f) => f.id === item.id
234
+ );
235
+ if (idx !== -1) setActiveIndex(idx);
236
+ }
237
+ },
238
+ onClick: () => {
239
+ if (!item.disabled) {
240
+ item.onSelect();
241
+ onOpenChange(false);
242
+ }
243
+ },
244
+ onKeyDown: (e) => {
245
+ if (e.key === "Enter" || e.key === " ") {
246
+ e.preventDefault();
247
+ if (!item.disabled) {
248
+ item.onSelect();
249
+ onOpenChange(false);
250
+ }
251
+ }
252
+ },
253
+ className: (0, import_cn.cn)(
254
+ "flex cursor-pointer select-none items-center gap-2",
255
+ "rounded-md px-2 py-2",
256
+ "text-sm leading-5 outline-none",
257
+ "transition-colors duration-fast ease-standard",
258
+ isActive && "bg-muted text-foreground",
259
+ item.disabled && "pointer-events-none opacity-50"
260
+ ),
261
+ children: [
262
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "flex size-4 shrink-0 items-center justify-center text-muted-foreground", children: item.icon }),
263
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-1 min-w-0", children: [
264
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "truncate font-medium", children: item.label }),
265
+ item.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "truncate text-xs text-muted-foreground", children: item.description })
266
+ ] }),
267
+ item.shortcut && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShortcutKeys, { keys: item.shortcut })
268
+ ]
269
+ },
270
+ item.id
271
+ );
272
+ })
273
+ ] }, gi);
274
+ })
275
+ }
276
+ ),
277
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-3 border-t border-border px-3 py-2", children: [
278
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
279
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShortcutKeys, { keys: "\u2191\u2193" }),
280
+ " navigate"
281
+ ] }),
282
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
283
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShortcutKeys, { keys: "\u21B5" }),
284
+ " select"
285
+ ] }),
286
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
287
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShortcutKeys, { keys: "Esc" }),
288
+ " close"
289
+ ] })
290
+ ] })
291
+ ]
292
+ }
293
+ ) })
294
+ ] }) }) }) });
295
+ }
296
+ Command.displayName = "Command";
297
+ const CommandTrigger = (0, import_react.forwardRef)(function CommandTrigger2({ label = "Search commands...", onClick, className }, ref) {
298
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
299
+ "button",
300
+ {
301
+ ref,
302
+ type: "button",
303
+ onClick,
304
+ className: (0, import_cn.cn)(
305
+ "inline-flex h-9 items-center gap-2",
306
+ "rounded-md border border-border bg-background",
307
+ "px-3 text-sm text-muted-foreground",
308
+ "transition-colors duration-fast ease-standard",
309
+ "hover:border-primary/50 hover:text-foreground",
310
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary",
311
+ "w-48 md:w-64",
312
+ className
313
+ ),
314
+ "data-ds": "",
315
+ "data-ds-component": "command-trigger",
316
+ children: [
317
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SearchIcon, { className: "size-3.5 shrink-0" }),
318
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "flex-1 truncate text-left", children: label }),
319
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ShortcutKeys, { keys: "\u2318K" })
320
+ ]
321
+ }
322
+ );
323
+ });
324
+ CommandTrigger.displayName = "CommandTrigger";
325
+ // Annotate the CommonJS export names for ESM import in node:
326
+ 0 && (module.exports = {
327
+ Command,
328
+ CommandTrigger
329
+ });
@@ -0,0 +1,97 @@
1
+ import * as react from 'react';
2
+ import { ReactNode, ComponentPropsWithoutRef } from 'react';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+
5
+ interface CommandItem {
6
+ /** Unique identifier for the command. */
7
+ id: string;
8
+ /** The display label for the command. */
9
+ label: string;
10
+ /** Optional description shown below the label. */
11
+ description?: string;
12
+ /** Optional icon rendered before the label. */
13
+ icon?: ReactNode;
14
+ /** Optional keyboard shortcut hint. */
15
+ shortcut?: string;
16
+ /** Callback executed when the command is selected. */
17
+ onSelect: () => void;
18
+ /** Whether this command is disabled. */
19
+ disabled?: boolean;
20
+ }
21
+ interface CommandGroup {
22
+ /** Heading label for this group. */
23
+ heading?: string;
24
+ /** Commands in this group. */
25
+ items: CommandItem[];
26
+ }
27
+ interface CommandProps {
28
+ /** Whether the command palette is open. */
29
+ open: boolean;
30
+ /** Callback when open state changes. */
31
+ onOpenChange: (open: boolean) => void;
32
+ /** Groups of commands to display. */
33
+ groups: CommandGroup[];
34
+ /** Placeholder text for the search input. @default "Search commands..." */
35
+ placeholder?: string;
36
+ /** Text shown when no commands match. @default "No results found." */
37
+ emptyText?: string;
38
+ /** Custom keyboard shortcut to open (modifier + key). @default "k" */
39
+ shortcutKey?: string;
40
+ }
41
+ interface CommandInputProps extends ComponentPropsWithoutRef<"input"> {
42
+ className?: string;
43
+ }
44
+ /**
45
+ * Command — a keyboard-navigable command palette modal.
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * const [open, setOpen] = useState(false);
50
+ *
51
+ * const groups = [
52
+ * {
53
+ * heading: "Navigation",
54
+ * items: [
55
+ * { id: "home", label: "Go to Home", icon: <Home />, onSelect: () => router.push("/") },
56
+ * { id: "docs", label: "Open Docs", icon: <BookOpen />, onSelect: () => router.push("/docs") },
57
+ * ],
58
+ * },
59
+ * {
60
+ * heading: "Actions",
61
+ * items: [
62
+ * { id: "new", label: "New Document", shortcut: "⌘N", onSelect: handleNew },
63
+ * ],
64
+ * },
65
+ * ];
66
+ *
67
+ * return (
68
+ * <>
69
+ * <Button onClick={() => setOpen(true)}>Open Command Palette</Button>
70
+ * <Command open={open} onOpenChange={setOpen} groups={groups} />
71
+ * </>
72
+ * );
73
+ * ```
74
+ */
75
+ declare function Command({ open, onOpenChange, groups, placeholder, emptyText, shortcutKey, }: CommandProps): react_jsx_runtime.JSX.Element;
76
+ declare namespace Command {
77
+ var displayName: string;
78
+ }
79
+ interface CommandTriggerProps {
80
+ /** Label for the trigger button. @default "Search commands..." */
81
+ label?: string;
82
+ /** Called when the trigger button is clicked. */
83
+ onClick: () => void;
84
+ /** Additional CSS classes. */
85
+ className?: string;
86
+ }
87
+ /**
88
+ * CommandTrigger — a search-bar-style button that opens the command palette.
89
+ *
90
+ * @example
91
+ * ```tsx
92
+ * <CommandTrigger onClick={() => setOpen(true)} label="Search..." />
93
+ * ```
94
+ */
95
+ declare const CommandTrigger: react.ForwardRefExoticComponent<CommandTriggerProps & react.RefAttributes<HTMLButtonElement>>;
96
+
97
+ export { Command, type CommandGroup, type CommandInputProps, type CommandItem, type CommandProps, CommandTrigger, type CommandTriggerProps };
@@ -0,0 +1,97 @@
1
+ import * as react from 'react';
2
+ import { ReactNode, ComponentPropsWithoutRef } from 'react';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+
5
+ interface CommandItem {
6
+ /** Unique identifier for the command. */
7
+ id: string;
8
+ /** The display label for the command. */
9
+ label: string;
10
+ /** Optional description shown below the label. */
11
+ description?: string;
12
+ /** Optional icon rendered before the label. */
13
+ icon?: ReactNode;
14
+ /** Optional keyboard shortcut hint. */
15
+ shortcut?: string;
16
+ /** Callback executed when the command is selected. */
17
+ onSelect: () => void;
18
+ /** Whether this command is disabled. */
19
+ disabled?: boolean;
20
+ }
21
+ interface CommandGroup {
22
+ /** Heading label for this group. */
23
+ heading?: string;
24
+ /** Commands in this group. */
25
+ items: CommandItem[];
26
+ }
27
+ interface CommandProps {
28
+ /** Whether the command palette is open. */
29
+ open: boolean;
30
+ /** Callback when open state changes. */
31
+ onOpenChange: (open: boolean) => void;
32
+ /** Groups of commands to display. */
33
+ groups: CommandGroup[];
34
+ /** Placeholder text for the search input. @default "Search commands..." */
35
+ placeholder?: string;
36
+ /** Text shown when no commands match. @default "No results found." */
37
+ emptyText?: string;
38
+ /** Custom keyboard shortcut to open (modifier + key). @default "k" */
39
+ shortcutKey?: string;
40
+ }
41
+ interface CommandInputProps extends ComponentPropsWithoutRef<"input"> {
42
+ className?: string;
43
+ }
44
+ /**
45
+ * Command — a keyboard-navigable command palette modal.
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * const [open, setOpen] = useState(false);
50
+ *
51
+ * const groups = [
52
+ * {
53
+ * heading: "Navigation",
54
+ * items: [
55
+ * { id: "home", label: "Go to Home", icon: <Home />, onSelect: () => router.push("/") },
56
+ * { id: "docs", label: "Open Docs", icon: <BookOpen />, onSelect: () => router.push("/docs") },
57
+ * ],
58
+ * },
59
+ * {
60
+ * heading: "Actions",
61
+ * items: [
62
+ * { id: "new", label: "New Document", shortcut: "⌘N", onSelect: handleNew },
63
+ * ],
64
+ * },
65
+ * ];
66
+ *
67
+ * return (
68
+ * <>
69
+ * <Button onClick={() => setOpen(true)}>Open Command Palette</Button>
70
+ * <Command open={open} onOpenChange={setOpen} groups={groups} />
71
+ * </>
72
+ * );
73
+ * ```
74
+ */
75
+ declare function Command({ open, onOpenChange, groups, placeholder, emptyText, shortcutKey, }: CommandProps): react_jsx_runtime.JSX.Element;
76
+ declare namespace Command {
77
+ var displayName: string;
78
+ }
79
+ interface CommandTriggerProps {
80
+ /** Label for the trigger button. @default "Search commands..." */
81
+ label?: string;
82
+ /** Called when the trigger button is clicked. */
83
+ onClick: () => void;
84
+ /** Additional CSS classes. */
85
+ className?: string;
86
+ }
87
+ /**
88
+ * CommandTrigger — a search-bar-style button that opens the command palette.
89
+ *
90
+ * @example
91
+ * ```tsx
92
+ * <CommandTrigger onClick={() => setOpen(true)} label="Search..." />
93
+ * ```
94
+ */
95
+ declare const CommandTrigger: react.ForwardRefExoticComponent<CommandTriggerProps & react.RefAttributes<HTMLButtonElement>>;
96
+
97
+ export { Command, type CommandGroup, type CommandInputProps, type CommandItem, type CommandProps, CommandTrigger, type CommandTriggerProps };