@wheelhouse/ui 0.1.6 → 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 (460) hide show
  1. package/dist/components/accordion/accordion.d.ts +15 -0
  2. package/dist/components/accordion/accordion.d.ts.map +1 -0
  3. package/dist/components/accordion/accordion.js +18 -0
  4. package/dist/components/accordion/accordion.stories.d.ts +7 -0
  5. package/dist/components/accordion/accordion.stories.d.ts.map +1 -0
  6. package/dist/components/accordion/accordion.stories.js +17 -0
  7. package/dist/components/accordion/index.d.ts +3 -0
  8. package/dist/components/accordion/index.d.ts.map +1 -0
  9. package/dist/components/accordion/index.js +1 -0
  10. package/dist/components/alert/alert.d.ts +11 -0
  11. package/dist/components/alert/alert.d.ts.map +1 -0
  12. package/dist/components/alert/alert.js +28 -0
  13. package/dist/components/alert/alert.stories.d.ts +11 -0
  14. package/dist/components/alert/alert.stories.d.ts.map +1 -0
  15. package/dist/components/alert/alert.stories.js +35 -0
  16. package/dist/components/alert/index.d.ts +2 -0
  17. package/dist/components/alert/index.d.ts.map +1 -0
  18. package/dist/components/alert/index.js +1 -0
  19. package/dist/components/alert-dialog/alert-dialog.d.ts +44 -0
  20. package/dist/components/alert-dialog/alert-dialog.d.ts.map +1 -0
  21. package/dist/components/alert-dialog/alert-dialog.js +43 -0
  22. package/dist/components/alert-dialog/alert-dialog.stories.d.ts +9 -0
  23. package/dist/components/alert-dialog/alert-dialog.stories.d.ts.map +1 -0
  24. package/dist/components/alert-dialog/alert-dialog.stories.js +22 -0
  25. package/dist/components/alert-dialog/index.d.ts +3 -0
  26. package/dist/components/alert-dialog/index.d.ts.map +1 -0
  27. package/dist/components/alert-dialog/index.js +1 -0
  28. package/dist/components/aspect-ratio/aspect-ratio.d.ts +11 -0
  29. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +1 -0
  30. package/dist/components/aspect-ratio/aspect-ratio.js +9 -0
  31. package/dist/components/aspect-ratio/aspect-ratio.stories.d.ts +8 -0
  32. package/dist/components/aspect-ratio/aspect-ratio.stories.d.ts.map +1 -0
  33. package/dist/components/aspect-ratio/aspect-ratio.stories.js +26 -0
  34. package/dist/components/aspect-ratio/index.d.ts +3 -0
  35. package/dist/components/aspect-ratio/index.d.ts.map +1 -0
  36. package/dist/components/aspect-ratio/index.js +1 -0
  37. package/dist/components/avatar/avatar.d.ts +29 -0
  38. package/dist/components/avatar/avatar.d.ts.map +1 -0
  39. package/dist/components/avatar/avatar.js +24 -0
  40. package/dist/components/avatar/avatar.stories.d.ts +20 -0
  41. package/dist/components/avatar/avatar.stories.d.ts.map +1 -0
  42. package/dist/components/avatar/avatar.stories.js +40 -0
  43. package/dist/components/avatar/index.d.ts +2 -0
  44. package/dist/components/avatar/index.d.ts.map +1 -0
  45. package/dist/components/avatar/index.js +1 -0
  46. package/dist/components/badge/badge.d.ts +6 -5
  47. package/dist/components/badge/badge.d.ts.map +1 -1
  48. package/dist/components/badge/badge.js +3 -3
  49. package/dist/components/breadcrumb/breadcrumb.d.ts +25 -0
  50. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  51. package/dist/components/breadcrumb/breadcrumb.js +39 -0
  52. package/dist/components/breadcrumb/breadcrumb.stories.d.ts +16 -0
  53. package/dist/components/breadcrumb/breadcrumb.stories.d.ts.map +1 -0
  54. package/dist/components/breadcrumb/breadcrumb.stories.js +21 -0
  55. package/dist/components/breadcrumb/index.d.ts +2 -0
  56. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  57. package/dist/components/breadcrumb/index.js +1 -0
  58. package/dist/components/button/button.d.ts +9 -6
  59. package/dist/components/button/button.d.ts.map +1 -1
  60. package/dist/components/button/button.js +3 -3
  61. package/dist/components/button-group/button-group.d.ts +3 -1
  62. package/dist/components/button-group/button-group.d.ts.map +1 -1
  63. package/dist/components/button-group/button-group.js +1 -1
  64. package/dist/components/button-group/button-group.stories.d.ts +1 -0
  65. package/dist/components/button-group/button-group.stories.d.ts.map +1 -1
  66. package/dist/components/button-group/button-group.stories.js +4 -0
  67. package/dist/components/button-group/index.d.ts +1 -0
  68. package/dist/components/button-group/index.d.ts.map +1 -1
  69. package/dist/components/card/card.d.ts +28 -0
  70. package/dist/components/card/card.d.ts.map +1 -0
  71. package/dist/components/card/card.js +25 -0
  72. package/dist/components/card/card.stories.d.ts +10 -0
  73. package/dist/components/card/card.stories.d.ts.map +1 -0
  74. package/dist/components/card/card.stories.js +30 -0
  75. package/dist/components/card/index.d.ts +2 -0
  76. package/dist/components/card/index.d.ts.map +1 -0
  77. package/dist/components/card/index.js +1 -0
  78. package/dist/components/checkbox/checkbox.d.ts +9 -0
  79. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  80. package/dist/components/checkbox/checkbox.js +9 -0
  81. package/dist/components/checkbox/checkbox.stories.d.ts +19 -0
  82. package/dist/components/checkbox/checkbox.stories.d.ts.map +1 -0
  83. package/dist/components/checkbox/checkbox.stories.js +31 -0
  84. package/dist/components/checkbox/index.d.ts +2 -0
  85. package/dist/components/checkbox/index.d.ts.map +1 -0
  86. package/dist/components/checkbox/index.js +1 -0
  87. package/dist/components/collapsible/collapsible.d.ts +17 -0
  88. package/dist/components/collapsible/collapsible.d.ts.map +1 -0
  89. package/dist/components/collapsible/collapsible.js +17 -0
  90. package/dist/components/collapsible/collapsible.stories.d.ts +16 -0
  91. package/dist/components/collapsible/collapsible.stories.d.ts.map +1 -0
  92. package/dist/components/collapsible/collapsible.stories.js +24 -0
  93. package/dist/components/collapsible/index.d.ts +3 -0
  94. package/dist/components/collapsible/index.d.ts.map +1 -0
  95. package/dist/components/collapsible/index.js +1 -0
  96. package/dist/components/combobox/combobox.d.ts +38 -0
  97. package/dist/components/combobox/combobox.d.ts.map +1 -0
  98. package/dist/components/combobox/combobox.js +65 -0
  99. package/dist/components/combobox/combobox.stories.d.ts +18 -0
  100. package/dist/components/combobox/combobox.stories.d.ts.map +1 -0
  101. package/dist/components/combobox/combobox.stories.js +46 -0
  102. package/dist/components/combobox/index.d.ts +3 -0
  103. package/dist/components/combobox/index.d.ts.map +1 -0
  104. package/dist/components/combobox/index.js +1 -0
  105. package/dist/components/command/command.d.ts +31 -0
  106. package/dist/components/command/command.d.ts.map +1 -0
  107. package/dist/components/command/command.js +37 -0
  108. package/dist/components/command/command.stories.d.ts +16 -0
  109. package/dist/components/command/command.stories.d.ts.map +1 -0
  110. package/dist/components/command/command.stories.js +26 -0
  111. package/dist/components/command/index.d.ts +2 -0
  112. package/dist/components/command/index.d.ts.map +1 -0
  113. package/dist/components/command/index.js +1 -0
  114. package/dist/components/context-menu/context-menu.d.ts +62 -0
  115. package/dist/components/context-menu/context-menu.d.ts.map +1 -0
  116. package/dist/components/context-menu/context-menu.js +53 -0
  117. package/dist/components/context-menu/context-menu.stories.d.ts +17 -0
  118. package/dist/components/context-menu/context-menu.stories.d.ts.map +1 -0
  119. package/dist/components/context-menu/context-menu.stories.js +27 -0
  120. package/dist/components/context-menu/index.d.ts +2 -0
  121. package/dist/components/context-menu/index.d.ts.map +1 -0
  122. package/dist/components/context-menu/index.js +1 -0
  123. package/dist/components/dialog/dialog.d.ts +40 -0
  124. package/dist/components/dialog/dialog.d.ts.map +1 -0
  125. package/dist/components/dialog/dialog.js +38 -0
  126. package/dist/components/dialog/dialog.stories.d.ts +9 -0
  127. package/dist/components/dialog/dialog.stories.d.ts.map +1 -0
  128. package/dist/components/dialog/dialog.stories.js +22 -0
  129. package/dist/components/dialog/index.d.ts +3 -0
  130. package/dist/components/dialog/index.d.ts.map +1 -0
  131. package/dist/components/dialog/index.js +1 -0
  132. package/dist/components/direction/direction.d.ts +7 -0
  133. package/dist/components/direction/direction.d.ts.map +1 -0
  134. package/dist/components/direction/direction.js +5 -0
  135. package/dist/components/direction/direction.stories.d.ts +8 -0
  136. package/dist/components/direction/direction.stories.d.ts.map +1 -0
  137. package/dist/components/direction/direction.stories.js +23 -0
  138. package/dist/components/direction/index.d.ts +2 -0
  139. package/dist/components/direction/index.d.ts.map +1 -0
  140. package/dist/components/direction/index.js +1 -0
  141. package/dist/components/drawer/drawer.d.ts +25 -0
  142. package/dist/components/drawer/drawer.d.ts.map +1 -0
  143. package/dist/components/drawer/drawer.js +36 -0
  144. package/dist/components/drawer/drawer.stories.d.ts +7 -0
  145. package/dist/components/drawer/drawer.stories.d.ts.map +1 -0
  146. package/dist/components/drawer/drawer.stories.js +17 -0
  147. package/dist/components/drawer/index.d.ts +2 -0
  148. package/dist/components/drawer/index.d.ts.map +1 -0
  149. package/dist/components/drawer/index.js +1 -0
  150. package/dist/components/dropdown-menu/dropdown-menu.d.ts +65 -0
  151. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  152. package/dist/components/dropdown-menu/dropdown-menu.js +53 -0
  153. package/dist/components/dropdown-menu/dropdown-menu.stories.d.ts +18 -0
  154. package/dist/components/dropdown-menu/dropdown-menu.stories.d.ts.map +1 -0
  155. package/dist/components/dropdown-menu/dropdown-menu.stories.js +31 -0
  156. package/dist/components/dropdown-menu/index.d.ts +3 -0
  157. package/dist/components/dropdown-menu/index.d.ts.map +1 -0
  158. package/dist/components/dropdown-menu/index.js +1 -0
  159. package/dist/components/empty/empty.d.ts +25 -0
  160. package/dist/components/empty/empty.d.ts.map +1 -0
  161. package/dist/components/empty/empty.js +34 -0
  162. package/dist/components/empty/empty.stories.d.ts +7 -0
  163. package/dist/components/empty/empty.stories.d.ts.map +1 -0
  164. package/dist/components/empty/empty.stories.js +19 -0
  165. package/dist/components/empty/index.d.ts +3 -0
  166. package/dist/components/empty/index.d.ts.map +1 -0
  167. package/dist/components/empty/index.js +1 -0
  168. package/dist/components/field/field.d.ts +22 -0
  169. package/dist/components/field/field.d.ts.map +1 -0
  170. package/dist/components/field/field.js +34 -0
  171. package/dist/components/field/field.stories.d.ts +16 -0
  172. package/dist/components/field/field.stories.d.ts.map +1 -0
  173. package/dist/components/field/field.stories.js +26 -0
  174. package/dist/components/field/index.d.ts +2 -0
  175. package/dist/components/field/index.d.ts.map +1 -0
  176. package/dist/components/field/index.js +1 -0
  177. package/dist/components/filters/filters-defaults.d.ts +5 -0
  178. package/dist/components/filters/filters-defaults.d.ts.map +1 -0
  179. package/dist/components/filters/filters-defaults.js +97 -0
  180. package/dist/components/filters/filters-types.d.ts +135 -0
  181. package/dist/components/filters/filters-types.d.ts.map +1 -0
  182. package/dist/components/filters/filters-types.js +1 -0
  183. package/dist/components/filters/filters-utils.d.ts +4 -0
  184. package/dist/components/filters/filters-utils.d.ts.map +1 -0
  185. package/dist/components/filters/filters-utils.js +12 -0
  186. package/dist/components/filters/filters.d.ts +29 -0
  187. package/dist/components/filters/filters.d.ts.map +1 -0
  188. package/dist/components/filters/filters.js +733 -0
  189. package/dist/components/filters/filters.stories.d.ts +8 -0
  190. package/dist/components/filters/filters.stories.d.ts.map +1 -0
  191. package/dist/components/filters/filters.stories.js +48 -0
  192. package/dist/components/filters/index.d.ts +5 -0
  193. package/dist/components/filters/index.d.ts.map +1 -0
  194. package/dist/components/filters/index.js +4 -0
  195. package/dist/components/frame/frame.d.ts +65 -0
  196. package/dist/components/frame/frame.d.ts.map +1 -0
  197. package/dist/components/frame/frame.js +108 -0
  198. package/dist/components/frame/frame.stories.d.ts +14 -0
  199. package/dist/components/frame/frame.stories.d.ts.map +1 -0
  200. package/dist/components/frame/frame.stories.js +50 -0
  201. package/dist/components/frame/index.d.ts +3 -0
  202. package/dist/components/frame/index.d.ts.map +1 -0
  203. package/dist/components/frame/index.js +1 -0
  204. package/dist/components/hover-card/hover-card.d.ts +16 -0
  205. package/dist/components/hover-card/hover-card.d.ts.map +1 -0
  206. package/dist/components/hover-card/hover-card.js +14 -0
  207. package/dist/components/hover-card/hover-card.stories.d.ts +7 -0
  208. package/dist/components/hover-card/hover-card.stories.d.ts.map +1 -0
  209. package/dist/components/hover-card/hover-card.stories.js +15 -0
  210. package/dist/components/hover-card/index.d.ts +3 -0
  211. package/dist/components/hover-card/index.d.ts.map +1 -0
  212. package/dist/components/hover-card/index.js +1 -0
  213. package/dist/components/index.d.ts +47 -0
  214. package/dist/components/index.d.ts.map +1 -1
  215. package/dist/components/index.js +47 -0
  216. package/dist/components/input/index.d.ts +2 -0
  217. package/dist/components/input/index.d.ts.map +1 -0
  218. package/dist/components/input/index.js +1 -0
  219. package/dist/components/input/input.d.ts +16 -0
  220. package/dist/components/input/input.d.ts.map +1 -0
  221. package/dist/components/input/input.js +22 -0
  222. package/dist/components/input/input.stories.d.ts +28 -0
  223. package/dist/components/input/input.stories.d.ts.map +1 -0
  224. package/dist/components/input/input.stories.js +33 -0
  225. package/dist/components/input-group/index.d.ts +3 -0
  226. package/dist/components/input-group/index.d.ts.map +1 -0
  227. package/dist/components/input-group/index.js +1 -0
  228. package/dist/components/input-group/input-group.d.ts +44 -0
  229. package/dist/components/input-group/input-group.d.ts.map +1 -0
  230. package/dist/components/input-group/input-group.js +72 -0
  231. package/dist/components/input-group/input-group.stories.d.ts +18 -0
  232. package/dist/components/input-group/input-group.stories.d.ts.map +1 -0
  233. package/dist/components/input-group/input-group.stories.js +29 -0
  234. package/dist/components/item/index.d.ts +3 -0
  235. package/dist/components/item/index.d.ts.map +1 -0
  236. package/dist/components/item/index.js +1 -0
  237. package/dist/components/item/item.d.ts +60 -0
  238. package/dist/components/item/item.d.ts.map +1 -0
  239. package/dist/components/item/item.js +95 -0
  240. package/dist/components/item/item.stories.d.ts +34 -0
  241. package/dist/components/item/item.stories.d.ts.map +1 -0
  242. package/dist/components/item/item.stories.js +41 -0
  243. package/dist/components/kbd/index.d.ts +3 -0
  244. package/dist/components/kbd/index.d.ts.map +1 -0
  245. package/dist/components/kbd/index.js +1 -0
  246. package/dist/components/kbd/kbd.d.ts +15 -0
  247. package/dist/components/kbd/kbd.d.ts.map +1 -0
  248. package/dist/components/kbd/kbd.js +16 -0
  249. package/dist/components/kbd/kbd.stories.d.ts +17 -0
  250. package/dist/components/kbd/kbd.stories.d.ts.map +1 -0
  251. package/dist/components/kbd/kbd.stories.js +25 -0
  252. package/dist/components/label/index.d.ts +2 -0
  253. package/dist/components/label/index.d.ts.map +1 -0
  254. package/dist/components/label/index.js +1 -0
  255. package/dist/components/label/label.d.ts +6 -0
  256. package/dist/components/label/label.d.ts.map +1 -0
  257. package/dist/components/label/label.js +10 -0
  258. package/dist/components/label/label.stories.d.ts +18 -0
  259. package/dist/components/label/label.stories.d.ts.map +1 -0
  260. package/dist/components/label/label.stories.js +29 -0
  261. package/dist/components/menubar/index.d.ts +3 -0
  262. package/dist/components/menubar/index.d.ts.map +1 -0
  263. package/dist/components/menubar/index.js +1 -0
  264. package/dist/components/menubar/menubar.d.ts +64 -0
  265. package/dist/components/menubar/menubar.d.ts.map +1 -0
  266. package/dist/components/menubar/menubar.js +56 -0
  267. package/dist/components/menubar/menubar.stories.d.ts +15 -0
  268. package/dist/components/menubar/menubar.stories.d.ts.map +1 -0
  269. package/dist/components/menubar/menubar.stories.js +18 -0
  270. package/dist/components/native-select/index.d.ts +2 -0
  271. package/dist/components/native-select/index.d.ts.map +1 -0
  272. package/dist/components/native-select/index.js +1 -0
  273. package/dist/components/native-select/native-select.d.ts +12 -0
  274. package/dist/components/native-select/native-select.d.ts.map +1 -0
  275. package/dist/components/native-select/native-select.js +14 -0
  276. package/dist/components/native-select/native-select.stories.d.ts +8 -0
  277. package/dist/components/native-select/native-select.stories.d.ts.map +1 -0
  278. package/dist/components/native-select/native-select.stories.js +19 -0
  279. package/dist/components/navigation-menu/index.d.ts +3 -0
  280. package/dist/components/navigation-menu/index.d.ts.map +1 -0
  281. package/dist/components/navigation-menu/index.js +1 -0
  282. package/dist/components/navigation-menu/navigation-menu.d.ts +33 -0
  283. package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -0
  284. package/dist/components/navigation-menu/navigation-menu.js +33 -0
  285. package/dist/components/navigation-menu/navigation-menu.stories.d.ts +14 -0
  286. package/dist/components/navigation-menu/navigation-menu.stories.d.ts.map +1 -0
  287. package/dist/components/navigation-menu/navigation-menu.stories.js +14 -0
  288. package/dist/components/pagination/index.d.ts +3 -0
  289. package/dist/components/pagination/index.d.ts.map +1 -0
  290. package/dist/components/pagination/index.js +1 -0
  291. package/dist/components/pagination/pagination.d.ts +31 -0
  292. package/dist/components/pagination/pagination.d.ts.map +1 -0
  293. package/dist/components/pagination/pagination.js +29 -0
  294. package/dist/components/pagination/pagination.stories.d.ts +14 -0
  295. package/dist/components/pagination/pagination.stories.d.ts.map +1 -0
  296. package/dist/components/pagination/pagination.stories.js +14 -0
  297. package/dist/components/popover/index.d.ts +2 -0
  298. package/dist/components/popover/index.d.ts.map +1 -0
  299. package/dist/components/popover/index.js +1 -0
  300. package/dist/components/popover/popover.d.ts +20 -0
  301. package/dist/components/popover/popover.d.ts.map +1 -0
  302. package/dist/components/popover/popover.js +24 -0
  303. package/dist/components/popover/popover.stories.d.ts +7 -0
  304. package/dist/components/popover/popover.stories.d.ts.map +1 -0
  305. package/dist/components/popover/popover.stories.js +17 -0
  306. package/dist/components/progress/index.d.ts +3 -0
  307. package/dist/components/progress/index.d.ts.map +1 -0
  308. package/dist/components/progress/index.js +1 -0
  309. package/dist/components/progress/progress.d.ts +18 -0
  310. package/dist/components/progress/progress.d.ts.map +1 -0
  311. package/dist/components/progress/progress.js +20 -0
  312. package/dist/components/progress/progress.stories.d.ts +9 -0
  313. package/dist/components/progress/progress.stories.d.ts.map +1 -0
  314. package/dist/components/progress/progress.stories.js +29 -0
  315. package/dist/components/radio-group/index.d.ts +3 -0
  316. package/dist/components/radio-group/index.d.ts.map +1 -0
  317. package/dist/components/radio-group/index.js +1 -0
  318. package/dist/components/radio-group/radio-group.d.ts +13 -0
  319. package/dist/components/radio-group/radio-group.d.ts.map +1 -0
  320. package/dist/components/radio-group/radio-group.js +12 -0
  321. package/dist/components/radio-group/radio-group.stories.d.ts +7 -0
  322. package/dist/components/radio-group/radio-group.stories.d.ts.map +1 -0
  323. package/dist/components/radio-group/radio-group.stories.js +18 -0
  324. package/dist/components/resizable/index.d.ts +2 -0
  325. package/dist/components/resizable/index.d.ts.map +1 -0
  326. package/dist/components/resizable/index.js +1 -0
  327. package/dist/components/resizable/resizable.d.ts +12 -0
  328. package/dist/components/resizable/resizable.d.ts.map +1 -0
  329. package/dist/components/resizable/resizable.js +14 -0
  330. package/dist/components/resizable/resizable.stories.d.ts +7 -0
  331. package/dist/components/resizable/resizable.stories.d.ts.map +1 -0
  332. package/dist/components/resizable/resizable.stories.js +16 -0
  333. package/dist/components/scroll-area/index.d.ts +2 -0
  334. package/dist/components/scroll-area/index.d.ts.map +1 -0
  335. package/dist/components/scroll-area/index.js +1 -0
  336. package/dist/components/scroll-area/scroll-area.d.ts +7 -0
  337. package/dist/components/scroll-area/scroll-area.d.ts.map +1 -0
  338. package/dist/components/scroll-area/scroll-area.js +11 -0
  339. package/dist/components/scroll-area/scroll-area.stories.d.ts +6 -0
  340. package/dist/components/scroll-area/scroll-area.stories.d.ts.map +1 -0
  341. package/dist/components/scroll-area/scroll-area.stories.js +13 -0
  342. package/dist/components/select/index.d.ts +3 -0
  343. package/dist/components/select/index.d.ts.map +1 -0
  344. package/dist/components/select/index.js +1 -0
  345. package/dist/components/select/select.d.ts +49 -0
  346. package/dist/components/select/select.d.ts.map +1 -0
  347. package/dist/components/select/select.js +50 -0
  348. package/dist/components/select/select.stories.d.ts +9 -0
  349. package/dist/components/select/select.stories.d.ts.map +1 -0
  350. package/dist/components/select/select.stories.js +20 -0
  351. package/dist/components/separator/index.d.ts +1 -0
  352. package/dist/components/separator/index.d.ts.map +1 -1
  353. package/dist/components/separator/separator.d.ts +3 -1
  354. package/dist/components/separator/separator.d.ts.map +1 -1
  355. package/dist/components/sheet/index.d.ts +2 -0
  356. package/dist/components/sheet/index.d.ts.map +1 -0
  357. package/dist/components/sheet/index.js +1 -0
  358. package/dist/components/sheet/sheet.d.ts +34 -0
  359. package/dist/components/sheet/sheet.d.ts.map +1 -0
  360. package/dist/components/sheet/sheet.js +38 -0
  361. package/dist/components/sheet/sheet.stories.d.ts +9 -0
  362. package/dist/components/sheet/sheet.stories.d.ts.map +1 -0
  363. package/dist/components/sheet/sheet.stories.js +21 -0
  364. package/dist/components/slider/index.d.ts +3 -0
  365. package/dist/components/slider/index.d.ts.map +1 -0
  366. package/dist/components/slider/index.js +1 -0
  367. package/dist/components/slider/slider.d.ts +15 -0
  368. package/dist/components/slider/slider.d.ts.map +1 -0
  369. package/dist/components/slider/slider.js +20 -0
  370. package/dist/components/slider/slider.stories.d.ts +11 -0
  371. package/dist/components/slider/slider.stories.d.ts.map +1 -0
  372. package/dist/components/slider/slider.stories.js +36 -0
  373. package/dist/components/sonner/index.d.ts +4 -0
  374. package/dist/components/sonner/index.d.ts.map +1 -0
  375. package/dist/components/sonner/index.js +2 -0
  376. package/dist/components/sonner/sonner.d.ts +12 -0
  377. package/dist/components/sonner/sonner.d.ts.map +1 -0
  378. package/dist/components/sonner/sonner.js +32 -0
  379. package/dist/components/sonner/sonner.stories.d.ts +8 -0
  380. package/dist/components/sonner/sonner.stories.d.ts.map +1 -0
  381. package/dist/components/sonner/sonner.stories.js +25 -0
  382. package/dist/components/sonner/toast.d.ts +2 -0
  383. package/dist/components/sonner/toast.d.ts.map +1 -0
  384. package/dist/components/sonner/toast.js +1 -0
  385. package/dist/components/spinner/index.d.ts +3 -0
  386. package/dist/components/spinner/index.d.ts.map +1 -0
  387. package/dist/components/spinner/index.js +1 -0
  388. package/dist/components/spinner/spinner.d.ts +13 -0
  389. package/dist/components/spinner/spinner.d.ts.map +1 -0
  390. package/dist/components/spinner/spinner.js +12 -0
  391. package/dist/components/spinner/spinner.stories.d.ts +9 -0
  392. package/dist/components/spinner/spinner.stories.d.ts.map +1 -0
  393. package/dist/components/spinner/spinner.stories.js +20 -0
  394. package/dist/components/switch/index.d.ts +2 -0
  395. package/dist/components/switch/index.d.ts.map +1 -0
  396. package/dist/components/switch/index.js +1 -0
  397. package/dist/components/switch/switch.d.ts +13 -0
  398. package/dist/components/switch/switch.d.ts.map +1 -0
  399. package/dist/components/switch/switch.js +8 -0
  400. package/dist/components/switch/switch.stories.d.ts +20 -0
  401. package/dist/components/switch/switch.stories.d.ts.map +1 -0
  402. package/dist/components/switch/switch.stories.js +46 -0
  403. package/dist/components/tabs/index.d.ts +3 -0
  404. package/dist/components/tabs/index.d.ts.map +1 -0
  405. package/dist/components/tabs/index.js +1 -0
  406. package/dist/components/tabs/tabs.d.ts +35 -0
  407. package/dist/components/tabs/tabs.d.ts.map +1 -0
  408. package/dist/components/tabs/tabs.js +34 -0
  409. package/dist/components/tabs/tabs.stories.d.ts +10 -0
  410. package/dist/components/tabs/tabs.stories.d.ts.map +1 -0
  411. package/dist/components/tabs/tabs.stories.js +29 -0
  412. package/dist/components/text/index.d.ts +3 -0
  413. package/dist/components/text/index.d.ts.map +1 -0
  414. package/dist/components/text/index.js +1 -0
  415. package/dist/components/text/text.d.ts +47 -0
  416. package/dist/components/text/text.d.ts.map +1 -0
  417. package/dist/components/text/text.js +53 -0
  418. package/dist/components/text/text.stories.d.ts +11 -0
  419. package/dist/components/text/text.stories.d.ts.map +1 -0
  420. package/dist/components/text/text.stories.js +84 -0
  421. package/dist/components/textarea/index.d.ts +2 -0
  422. package/dist/components/textarea/index.d.ts.map +1 -0
  423. package/dist/components/textarea/index.js +1 -0
  424. package/dist/components/textarea/textarea.d.ts +11 -0
  425. package/dist/components/textarea/textarea.d.ts.map +1 -0
  426. package/dist/components/textarea/textarea.js +10 -0
  427. package/dist/components/textarea/textarea.stories.d.ts +24 -0
  428. package/dist/components/textarea/textarea.stories.d.ts.map +1 -0
  429. package/dist/components/textarea/textarea.stories.js +32 -0
  430. package/dist/components/toggle/index.d.ts +3 -0
  431. package/dist/components/toggle/index.d.ts.map +1 -0
  432. package/dist/components/toggle/index.js +1 -0
  433. package/dist/components/toggle/toggle.d.ts +31 -0
  434. package/dist/components/toggle/toggle.d.ts.map +1 -0
  435. package/dist/components/toggle/toggle.js +33 -0
  436. package/dist/components/toggle/toggle.stories.d.ts +11 -0
  437. package/dist/components/toggle/toggle.stories.d.ts.map +1 -0
  438. package/dist/components/toggle/toggle.stories.js +60 -0
  439. package/dist/components/toggle-group/index.d.ts +3 -0
  440. package/dist/components/toggle-group/index.d.ts.map +1 -0
  441. package/dist/components/toggle-group/index.js +1 -0
  442. package/dist/components/toggle-group/toggle-group.d.ts +32 -0
  443. package/dist/components/toggle-group/toggle-group.d.ts.map +1 -0
  444. package/dist/components/toggle-group/toggle-group.js +33 -0
  445. package/dist/components/toggle-group/toggle-group.stories.d.ts +10 -0
  446. package/dist/components/toggle-group/toggle-group.stories.d.ts.map +1 -0
  447. package/dist/components/toggle-group/toggle-group.stories.js +28 -0
  448. package/dist/components/tooltip/index.d.ts +3 -0
  449. package/dist/components/tooltip/index.d.ts.map +1 -0
  450. package/dist/components/tooltip/index.js +1 -0
  451. package/dist/components/tooltip/tooltip.d.ts +22 -0
  452. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  453. package/dist/components/tooltip/tooltip.js +21 -0
  454. package/dist/components/tooltip/tooltip.stories.d.ts +11 -0
  455. package/dist/components/tooltip/tooltip.stories.d.ts.map +1 -0
  456. package/dist/components/tooltip/tooltip.stories.js +33 -0
  457. package/dist/tsconfig.tsbuildinfo +1 -1
  458. package/llms.txt +14 -19
  459. package/package.json +10 -5
  460. package/src/styles/globals.css +10 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../../src/components/collapsible/collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEjF,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AAE/D,sCAAsC;AACtC,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC;AAEzE,sDAAsD;AACtD,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;AAEvE;;GAEG;AACH,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAElD;AAED,+DAA+D;AAC/D,iBAAS,kBAAkB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,2CAEhE;AAED,8DAA8D;AAC9D,iBAAS,kBAAkB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,2CAEhE;AAED,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Collapsible as CollapsiblePrimitive } from '@base-ui/react/collapsible';
3
+ /**
4
+ * Root for an expand/collapse region. Compose with `CollapsibleTrigger` and `CollapsibleContent`.
5
+ */
6
+ function Collapsible({ ...props }) {
7
+ return _jsx(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
8
+ }
9
+ /** Button that toggles the associated panel open or closed. */
10
+ function CollapsibleTrigger({ ...props }) {
11
+ return _jsx(CollapsiblePrimitive.Trigger, { "data-slot": "collapsible-trigger", ...props });
12
+ }
13
+ /** Panel shown or hidden according to the root open state. */
14
+ function CollapsibleContent({ ...props }) {
15
+ return _jsx(CollapsiblePrimitive.Panel, { "data-slot": "collapsible-content", ...props });
16
+ }
17
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -0,0 +1,16 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { Collapsible } from '.';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Collapsible;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof meta>;
13
+ export declare const Default: Story;
14
+ export declare const OpenByDefault: Story;
15
+ export declare const Gallery: Story;
16
+ //# sourceMappingURL=collapsible.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.stories.d.ts","sourceRoot":"","sources":["../../../src/components/collapsible/collapsible.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAE,WAAW,EAA0C,MAAM,GAAG,CAAC;AAExE,QAAA,MAAM,IAAI;;;;;;;CAO0B,CAAC;AAErC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAkBrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAgB3B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAyBrB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CaretDownIcon } from '@phosphor-icons/react/CaretDown';
3
+ import { Button } from '../button';
4
+ import { Text } from '../text';
5
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '.';
6
+ const meta = {
7
+ title: 'UI/Collapsible',
8
+ component: Collapsible,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ layout: 'centered',
12
+ },
13
+ };
14
+ export default meta;
15
+ export const Default = {
16
+ render: () => (_jsxs(Collapsible, { className: "flex w-72 flex-col gap-2", children: [_jsx(CollapsibleTrigger, { render: _jsxs(Button, { variant: "outline", className: "group flex w-full items-center justify-between gap-2", children: [_jsx("span", { children: "Advanced options" }), _jsx(CaretDownIcon, { className: "size-4 shrink-0 transition-transform group-data-[panel-open]:rotate-180" })] }) }), _jsx(CollapsibleContent, { className: "flex flex-col gap-2 rounded-md border bg-card p-3 text-card-foreground shadow-xs", children: _jsx(Text, { size: "sm", tone: "muted", children: "Extra settings and details appear here when expanded." }) })] })),
17
+ };
18
+ export const OpenByDefault = {
19
+ render: () => (_jsxs(Collapsible, { defaultOpen: true, className: "flex w-72 flex-col gap-2", children: [_jsx(CollapsibleTrigger, { render: _jsxs(Button, { variant: "ghost", className: "group w-full justify-between px-2", children: [_jsx("span", { children: "Details" }), _jsx(CaretDownIcon, { className: "size-4 transition-transform group-data-[panel-open]:rotate-180" })] }) }), _jsx(CollapsibleContent, { className: "rounded-md border border-dashed p-3", children: _jsx(Text, { size: "sm", children: "This block starts expanded." }) })] })),
20
+ };
21
+ export const Gallery = {
22
+ parameters: { layout: 'padded' },
23
+ render: () => (_jsx("div", { className: "flex max-w-md flex-col gap-6", children: _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "Bordered card" }), _jsxs(Collapsible, { defaultOpen: true, className: "rounded-lg border bg-card text-card-foreground shadow-xs", children: [_jsxs("div", { className: "flex items-center justify-between gap-2 border-b px-3 py-2", children: [_jsx(Text, { weight: "medium", children: "Shipping address" }), _jsx(CollapsibleTrigger, { className: "group inline-flex size-8 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground", "aria-label": "Toggle shipping section", children: _jsx(CaretDownIcon, { className: "size-4 transition-transform group-data-[panel-open]:rotate-180" }) })] }), _jsx(CollapsibleContent, { className: "px-3 py-3", children: _jsx(Text, { size: "sm", tone: "muted", children: "742 Evergreen Terrace, Springfield." }) })] })] }) })),
24
+ };
@@ -0,0 +1,3 @@
1
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent } from './collapsible';
2
+ export type { CollapsibleProps, CollapsibleTriggerProps, CollapsibleContentProps } from './collapsible';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/collapsible/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACpF,YAAY,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1 @@
1
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent } from './collapsible';
@@ -0,0 +1,38 @@
1
+ import * as React from 'react';
2
+ import { Combobox as ComboboxPrimitive } from '@base-ui/react';
3
+ /** Props for `Combobox` root (generic over item value type and `multiple`). */
4
+ export type ComboboxProps<Value = unknown, Multiple extends boolean | undefined = false> = ComboboxPrimitive.Root.Props<Value, Multiple>;
5
+ /** Props for `ComboboxInput` (includes `showTrigger` and `showClear`). */
6
+ export type ComboboxInputProps = ComboboxPrimitive.Input.Props & {
7
+ showTrigger?: boolean;
8
+ showClear?: boolean;
9
+ };
10
+ /** Props for `ComboboxContent` (popup + positioner). */
11
+ export type ComboboxContentProps = ComboboxPrimitive.Popup.Props & Pick<ComboboxPrimitive.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'anchor'>;
12
+ /** Props for `ComboboxItem`. */
13
+ export type ComboboxItemProps = ComboboxPrimitive.Item.Props;
14
+ /** Props for `ComboboxChip` (includes `showRemove`). */
15
+ export type ComboboxChipProps = ComboboxPrimitive.Chip.Props & {
16
+ showRemove?: boolean;
17
+ };
18
+ /**
19
+ * Root for a combobox. Provide `items` and compose with input, popup, list, and items.
20
+ */
21
+ declare function Combobox<Value, Multiple extends boolean | undefined = false>(props: ComboboxPrimitive.Root.Props<Value, Multiple>): import("react/jsx-runtime").JSX.Element;
22
+ declare function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props): import("react/jsx-runtime").JSX.Element;
23
+ declare function ComboboxTrigger({ className, children, ...props }: ComboboxPrimitive.Trigger.Props): import("react/jsx-runtime").JSX.Element;
24
+ declare function ComboboxInput({ className, children, disabled, showTrigger, showClear, ...props }: ComboboxInputProps): import("react/jsx-runtime").JSX.Element;
25
+ declare function ComboboxContent({ className, side, sideOffset, align, alignOffset, anchor, ...props }: ComboboxPrimitive.Popup.Props & Pick<ComboboxPrimitive.Positioner.Props, 'side' | 'align' | 'sideOffset' | 'alignOffset' | 'anchor'>): import("react/jsx-runtime").JSX.Element;
26
+ declare function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props): import("react/jsx-runtime").JSX.Element;
27
+ declare function ComboboxItem({ className, children, ...props }: ComboboxPrimitive.Item.Props): import("react/jsx-runtime").JSX.Element;
28
+ declare function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props): import("react/jsx-runtime").JSX.Element;
29
+ declare function ComboboxLabel({ className, ...props }: ComboboxPrimitive.GroupLabel.Props): import("react/jsx-runtime").JSX.Element;
30
+ declare function ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props): import("react/jsx-runtime").JSX.Element;
31
+ declare function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props): import("react/jsx-runtime").JSX.Element;
32
+ declare function ComboboxSeparator({ className, ...props }: ComboboxPrimitive.Separator.Props): import("react/jsx-runtime").JSX.Element;
33
+ declare function ComboboxChips({ className, ...props }: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & ComboboxPrimitive.Chips.Props): import("react/jsx-runtime").JSX.Element;
34
+ declare function ComboboxChip({ className, children, showRemove, ...props }: ComboboxChipProps): import("react/jsx-runtime").JSX.Element;
35
+ declare function ComboboxChipsInput({ className, ...props }: ComboboxPrimitive.Input.Props): import("react/jsx-runtime").JSX.Element;
36
+ declare function useComboboxAnchor(): React.RefObject<HTMLDivElement | null>;
37
+ export { Combobox, ComboboxInput, ComboboxContent, ComboboxList, ComboboxItem, ComboboxGroup, ComboboxLabel, ComboboxCollection, ComboboxEmpty, ComboboxSeparator, ComboboxChips, ComboboxChip, ComboboxChipsInput, ComboboxTrigger, ComboboxValue, useComboboxAnchor, };
38
+ //# sourceMappingURL=combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/combobox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { Combobox as ComboboxPrimitive } from '@base-ui/react';
5
+ import { cn } from '../../lib/utils';
6
+ import { Button } from '../button';
7
+ import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from '../input-group';
8
+ import { CaretDownIcon } from '@phosphor-icons/react/CaretDown';
9
+ import { CheckIcon } from '@phosphor-icons/react/Check';
10
+ import { XIcon } from '@phosphor-icons/react/X';
11
+ /**
12
+ * Root for a combobox. Provide `items` and compose with input, popup, list, and items.
13
+ */
14
+ function Combobox(props) {
15
+ return _jsx(ComboboxPrimitive.Root, { ...props });
16
+ }
17
+ function ComboboxValue({ ...props }) {
18
+ return _jsx(ComboboxPrimitive.Value, { "data-slot": "combobox-value", ...props });
19
+ }
20
+ function ComboboxTrigger({ className, children, ...props }) {
21
+ return (_jsxs(ComboboxPrimitive.Trigger, { "data-slot": "combobox-trigger", className: cn("[&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(CaretDownIcon, { className: "pointer-events-none size-4 text-muted-foreground" })] }));
22
+ }
23
+ function ComboboxClear({ className, ...props }) {
24
+ return (_jsx(ComboboxPrimitive.Clear, { "data-slot": "combobox-clear", render: _jsx(InputGroupButton, { variant: "ghost", size: "icon-xs" }), className: cn(className), ...props, children: _jsx(XIcon, { className: "pointer-events-none" }) }));
25
+ }
26
+ function ComboboxInput({ className, children, disabled = false, showTrigger = true, showClear = false, ...props }) {
27
+ return (_jsxs(InputGroup, { className: cn('w-auto', className), children: [_jsx(ComboboxPrimitive.Input, { render: _jsx(InputGroupInput, { disabled: disabled }), ...props }), _jsxs(InputGroupAddon, { align: "inline-end", children: [showTrigger && (_jsx(InputGroupButton, { size: "icon-xs", variant: "ghost", render: _jsx(ComboboxTrigger, {}), "data-slot": "input-group-button", className: "group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent", disabled: disabled })), showClear && _jsx(ComboboxClear, { disabled: disabled })] }), children] }));
28
+ }
29
+ function ComboboxContent({ className, side = 'bottom', sideOffset = 6, align = 'start', alignOffset = 0, anchor, ...props }) {
30
+ return (_jsx(ComboboxPrimitive.Portal, { children: _jsx(ComboboxPrimitive.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, anchor: anchor, className: "isolate z-50", children: _jsx(ComboboxPrimitive.Popup, { "data-slot": "combobox-content", "data-chips": !!anchor, className: cn('group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95', className), ...props }) }) }));
31
+ }
32
+ function ComboboxList({ className, ...props }) {
33
+ return (_jsx(ComboboxPrimitive.List, { "data-slot": "combobox-list", className: cn('no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0', className), ...props }));
34
+ }
35
+ function ComboboxItem({ className, children, ...props }) {
36
+ return (_jsxs(ComboboxPrimitive.Item, { "data-slot": "combobox-item", className: cn("relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(ComboboxPrimitive.ItemIndicator, { render: _jsx("span", { className: "pointer-events-none absolute right-2 flex size-4 items-center justify-center" }), children: _jsx(CheckIcon, { className: "pointer-events-none" }) })] }));
37
+ }
38
+ function ComboboxGroup({ className, ...props }) {
39
+ return _jsx(ComboboxPrimitive.Group, { "data-slot": "combobox-group", className: cn(className), ...props });
40
+ }
41
+ function ComboboxLabel({ className, ...props }) {
42
+ return _jsx(ComboboxPrimitive.GroupLabel, { "data-slot": "combobox-label", className: cn('px-2 py-1.5 text-xs text-muted-foreground', className), ...props });
43
+ }
44
+ function ComboboxCollection({ ...props }) {
45
+ return _jsx(ComboboxPrimitive.Collection, { "data-slot": "combobox-collection", ...props });
46
+ }
47
+ function ComboboxEmpty({ className, ...props }) {
48
+ return (_jsx(ComboboxPrimitive.Empty, { "data-slot": "combobox-empty", className: cn('hidden w-full justify-center py-2 text-center text-sm text-muted-foreground group-data-empty/combobox-content:flex', className), ...props }));
49
+ }
50
+ function ComboboxSeparator({ className, ...props }) {
51
+ return _jsx(ComboboxPrimitive.Separator, { "data-slot": "combobox-separator", className: cn('-mx-1 my-1 h-px bg-border', className), ...props });
52
+ }
53
+ function ComboboxChips({ className, ...props }) {
54
+ return (_jsx(ComboboxPrimitive.Chips, { "data-slot": "combobox-chips", className: cn('flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40', className), ...props }));
55
+ }
56
+ function ComboboxChip({ className, children, showRemove = true, ...props }) {
57
+ return (_jsxs(ComboboxPrimitive.Chip, { "data-slot": "combobox-chip", className: cn('flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-xs font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0', className), ...props, children: [children, showRemove && (_jsx(ComboboxPrimitive.ChipRemove, { render: _jsx(Button, { variant: "ghost", size: "icon-xs" }), className: "-ml-1 opacity-50 hover:opacity-100", "data-slot": "combobox-chip-remove", children: _jsx(XIcon, { className: "pointer-events-none" }) }))] }));
58
+ }
59
+ function ComboboxChipsInput({ className, ...props }) {
60
+ return _jsx(ComboboxPrimitive.Input, { "data-slot": "combobox-chip-input", className: cn('min-w-16 flex-1 outline-none', className), ...props });
61
+ }
62
+ function useComboboxAnchor() {
63
+ return React.useRef(null);
64
+ }
65
+ export { Combobox, ComboboxInput, ComboboxContent, ComboboxList, ComboboxItem, ComboboxGroup, ComboboxLabel, ComboboxCollection, ComboboxEmpty, ComboboxSeparator, ComboboxChips, ComboboxChip, ComboboxChipsInput, ComboboxTrigger, ComboboxValue, useComboboxAnchor, };
@@ -0,0 +1,18 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { Combobox } from '.';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Combobox;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof meta>;
13
+ export declare const Default: Story;
14
+ export declare const WithClear: Story;
15
+ export declare const Multiple: Story;
16
+ export declare const WithoutTriggerButton: Story;
17
+ export declare const Gallery: Story;
18
+ //# sourceMappingURL=combobox.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.stories.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/combobox.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EACH,QAAQ,EAWX,MAAM,GAAG,CAAC;AAoBX,QAAA,MAAM,IAAI;;;;;;;CAOuB,CAAC;AAElC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAgBrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAgBvB,CAAC;AAuCF,eAAO,MAAM,QAAQ,EAAE,KAEtB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAgBlC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAwCrB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useId } from 'react';
3
+ import { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxSeparator, ComboboxValue, } from '.';
4
+ const frameworks = ['Next.js', 'SvelteKit', 'Nuxt', 'Remix', 'Astro', 'TanStack Start'];
5
+ const programmingLanguages = [
6
+ { id: 'js', value: 'JavaScript' },
7
+ { id: 'ts', value: 'TypeScript' },
8
+ { id: 'py', value: 'Python' },
9
+ { id: 'java', value: 'Java' },
10
+ { id: 'cpp', value: 'C++' },
11
+ { id: 'cs', value: 'C#' },
12
+ { id: 'php', value: 'PHP' },
13
+ { id: 'ruby', value: 'Ruby' },
14
+ { id: 'go', value: 'Go' },
15
+ { id: 'rust', value: 'Rust' },
16
+ { id: 'swift', value: 'Swift' },
17
+ ];
18
+ const meta = {
19
+ title: 'UI/Combobox',
20
+ component: Combobox,
21
+ tags: ['autodocs'],
22
+ parameters: {
23
+ layout: 'centered',
24
+ },
25
+ };
26
+ export default meta;
27
+ export const Default = {
28
+ render: () => (_jsxs(Combobox, { items: [...frameworks], defaultOpen: true, children: [_jsx(ComboboxInput, { placeholder: "Search framework\u2026", className: "min-w-64" }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: "No matches." }), _jsx(ComboboxList, { children: (item) => (_jsx(ComboboxItem, { value: item, children: item }, item)) })] })] })),
29
+ };
30
+ export const WithClear = {
31
+ render: () => (_jsxs(Combobox, { items: [...frameworks], children: [_jsx(ComboboxInput, { placeholder: "Pick a stack", showClear: true, className: "min-w-64" }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: "No matches." }), _jsx(ComboboxList, { children: (item) => (_jsx(ComboboxItem, { value: item, children: item }, item)) })] })] })),
32
+ };
33
+ function MultipleSelectStory() {
34
+ const id = useId();
35
+ return (_jsxs(Combobox, { items: programmingLanguages, multiple: true, itemToStringLabel: (lang) => lang.value, defaultValue: [programmingLanguages[1]], children: [_jsxs("div", { className: "flex w-full max-w-md flex-col gap-1.5", children: [_jsx("span", { className: "text-sm font-medium", id: `${id}-label`, children: "Programming languages" }), _jsx(ComboboxChips, { className: "w-full", children: _jsx(ComboboxValue, { children: (value) => (_jsxs(_Fragment, { children: [value.map((language) => (_jsx(ComboboxChip, { "aria-label": language.value, children: language.value }, language.id))), _jsx(ComboboxChipsInput, { id: id, placeholder: value.length > 0 ? '' : 'e.g. TypeScript', "aria-label": "Filter languages" })] })) }) })] }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: "No languages found." }), _jsx(ComboboxList, { children: (language) => (_jsx(ComboboxItem, { value: language, children: language.value }, language.id)) })] })] }));
36
+ }
37
+ export const Multiple = {
38
+ render: () => _jsx(MultipleSelectStory, {}),
39
+ };
40
+ export const WithoutTriggerButton = {
41
+ render: () => (_jsxs(Combobox, { items: [...frameworks], children: [_jsx(ComboboxInput, { placeholder: "Type to filter", showTrigger: false, className: "min-w-64" }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: "No matches." }), _jsx(ComboboxList, { children: (item) => (_jsx(ComboboxItem, { value: item, children: item }, item)) })] })] })),
42
+ };
43
+ export const Gallery = {
44
+ parameters: { layout: 'padded' },
45
+ render: () => (_jsxs("div", { className: "flex flex-col gap-10", children: [_jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "Basic" }), _jsxs(Combobox, { items: [...frameworks], children: [_jsx(ComboboxInput, { placeholder: "Framework", className: "min-w-64" }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: "No results." }), _jsx(ComboboxList, { children: (item) => (_jsx(ComboboxItem, { value: item, children: item }, item)) })] })] })] }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "Footer slot" }), _jsxs(Combobox, { items: ['Design', 'Engineering', 'Marketing', 'Sales'], children: [_jsx(ComboboxInput, { placeholder: "Team", className: "min-w-64" }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: "No results." }), _jsx(ComboboxList, { children: (item) => (_jsx(ComboboxItem, { value: item, children: item }, item)) }), _jsx(ComboboxSeparator, {}), _jsx("div", { className: "p-2 text-center text-xs text-muted-foreground", children: "End of list" })] })] })] })] })),
46
+ };
@@ -0,0 +1,3 @@
1
+ export { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, useComboboxAnchor, } from './combobox';
2
+ export type { ComboboxChipProps, ComboboxContentProps, ComboboxInputProps, ComboboxItemProps, ComboboxProps } from './combobox';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,iBAAiB,GACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, useComboboxAnchor, } from './combobox';
@@ -0,0 +1,31 @@
1
+ import * as React from 'react';
2
+ import { Command as CommandPrimitive } from 'cmdk';
3
+ import { Dialog } from '../dialog';
4
+ /** Props for the cmdk root. See [cmdk](https://github.com/pacocoursey/cmdk). */
5
+ export type CommandProps = React.ComponentProps<typeof CommandPrimitive>;
6
+ declare function Command({ className, ...props }: CommandProps): import("react/jsx-runtime").JSX.Element;
7
+ /** Props for the modal command palette wrapper (uses `Dialog` + `DialogContent`). */
8
+ export type CommandDialogProps = Omit<React.ComponentProps<typeof Dialog>, 'children'> & {
9
+ title?: string;
10
+ description?: string;
11
+ className?: string;
12
+ showCloseButton?: boolean;
13
+ children: React.ReactNode;
14
+ };
15
+ declare function CommandDialog({ title, description, children, className, showCloseButton, ...props }: CommandDialogProps): import("react/jsx-runtime").JSX.Element;
16
+ export type CommandInputProps = React.ComponentProps<typeof CommandPrimitive.Input>;
17
+ declare function CommandInput({ className, ...props }: CommandInputProps): import("react/jsx-runtime").JSX.Element;
18
+ export type CommandListProps = React.ComponentProps<typeof CommandPrimitive.List>;
19
+ declare function CommandList({ className, ...props }: CommandListProps): import("react/jsx-runtime").JSX.Element;
20
+ export type CommandEmptyProps = React.ComponentProps<typeof CommandPrimitive.Empty>;
21
+ declare function CommandEmpty({ className, ...props }: CommandEmptyProps): import("react/jsx-runtime").JSX.Element;
22
+ export type CommandGroupProps = React.ComponentProps<typeof CommandPrimitive.Group>;
23
+ declare function CommandGroup({ className, ...props }: CommandGroupProps): import("react/jsx-runtime").JSX.Element;
24
+ export type CommandSeparatorProps = React.ComponentProps<typeof CommandPrimitive.Separator>;
25
+ declare function CommandSeparator({ className, ...props }: CommandSeparatorProps): import("react/jsx-runtime").JSX.Element;
26
+ export type CommandItemProps = React.ComponentProps<typeof CommandPrimitive.Item>;
27
+ declare function CommandItem({ className, children, ...props }: CommandItemProps): import("react/jsx-runtime").JSX.Element;
28
+ export type CommandShortcutProps = React.ComponentProps<'span'>;
29
+ declare function CommandShortcut({ className, ...props }: CommandShortcutProps): import("react/jsx-runtime").JSX.Element;
30
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator };
31
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/components/command/command.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAKnD,OAAO,EAAE,MAAM,EAA+D,MAAM,WAAW,CAAC;AAGhG,gFAAgF;AAChF,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEzE,iBAAS,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAQrD;AAED,qFAAqF;AACrF,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC7B,CAAC;AAEF,iBAAS,aAAa,CAAC,EACnB,KAAyB,EACzB,WAA8C,EAC9C,QAAQ,EACR,SAAS,EACT,eAAuB,EACvB,GAAG,KAAK,EACX,EAAE,kBAAkB,2CAYpB;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAEpF,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAe/D;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAElF,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAQ7D;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAEpF,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAE/D;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAEpF,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,2CAW/D;AAED,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAE5F,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAEvE;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAElF,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAcvE;AAED,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAEhE,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAQrE;AAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { Command as CommandPrimitive } from 'cmdk';
5
+ import { CheckIcon } from '@phosphor-icons/react/Check';
6
+ import { MagnifyingGlassIcon } from '@phosphor-icons/react/MagnifyingGlass';
7
+ import { cn } from '../../lib/utils';
8
+ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '../dialog';
9
+ import { InputGroup, InputGroupAddon } from '../input-group';
10
+ function Command({ className, ...props }) {
11
+ return (_jsx(CommandPrimitive, { "data-slot": "command", className: cn('flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground', className), ...props }));
12
+ }
13
+ function CommandDialog({ title = 'Command Palette', description = 'Search for a command to run...', children, className, showCloseButton = false, ...props }) {
14
+ return (_jsxs(Dialog, { ...props, children: [_jsxs(DialogHeader, { className: "sr-only", children: [_jsx(DialogTitle, { children: title }), _jsx(DialogDescription, { children: description })] }), _jsx(DialogContent, { className: cn('top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0', className), showCloseButton: showCloseButton, children: children })] }));
15
+ }
16
+ function CommandInput({ className, ...props }) {
17
+ return (_jsx("div", { "data-slot": "command-input-wrapper", className: "p-1 pb-0", children: _jsxs(InputGroup, { className: "h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!", children: [_jsx(CommandPrimitive.Input, { "data-slot": "command-input", className: cn('w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50', className), ...props }), _jsx(InputGroupAddon, { children: _jsx(MagnifyingGlassIcon, { className: "size-4 shrink-0 opacity-50" }) })] }) }));
18
+ }
19
+ function CommandList({ className, ...props }) {
20
+ return (_jsx(CommandPrimitive.List, { "data-slot": "command-list", className: cn('no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none', className), ...props }));
21
+ }
22
+ function CommandEmpty({ className, ...props }) {
23
+ return _jsx(CommandPrimitive.Empty, { "data-slot": "command-empty", className: cn('py-6 text-center text-sm', className), ...props });
24
+ }
25
+ function CommandGroup({ className, ...props }) {
26
+ return (_jsx(CommandPrimitive.Group, { "data-slot": "command-group", className: cn('overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground', className), ...props }));
27
+ }
28
+ function CommandSeparator({ className, ...props }) {
29
+ return _jsx(CommandPrimitive.Separator, { "data-slot": "command-separator", className: cn('-mx-1 h-px bg-border', className), ...props });
30
+ }
31
+ function CommandItem({ className, children, ...props }) {
32
+ return (_jsxs(CommandPrimitive.Item, { "data-slot": "command-item", className: cn("group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground", className), ...props, children: [children, _jsx(CheckIcon, { className: "ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100" })] }));
33
+ }
34
+ function CommandShortcut({ className, ...props }) {
35
+ return (_jsx("span", { "data-slot": "command-shortcut", className: cn('ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground', className), ...props }));
36
+ }
37
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator };
@@ -0,0 +1,16 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { Command } from '.';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Command;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof meta>;
13
+ export declare const Default: Story;
14
+ export declare const WithShortcuts: Story;
15
+ export declare const DialogPalette: Story;
16
+ //# sourceMappingURL=command.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.stories.d.ts","sourceRoot":"","sources":["../../../src/components/command/command.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAAE,OAAO,EAAwH,MAAM,GAAG,CAAC;AAElJ,QAAA,MAAM,IAAI;;;;;;;CAOsB,CAAC;AAEjC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAmBrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAkB3B,CAAC;AA8BF,eAAO,MAAM,aAAa,EAAE,KAE3B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { Button } from '../button';
4
+ import { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut } from '.';
5
+ const meta = {
6
+ title: 'UI/Command',
7
+ component: Command,
8
+ tags: ['autodocs'],
9
+ parameters: {
10
+ layout: 'centered',
11
+ },
12
+ };
13
+ export default meta;
14
+ export const Default = {
15
+ render: () => (_jsxs(Command, { className: "w-80 rounded-xl border border-border shadow-xs", children: [_jsx(CommandInput, { placeholder: "Search\u2026" }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: "No matches." }), _jsxs(CommandGroup, { heading: "Actions", children: [_jsx(CommandItem, { value: "calendar", children: "Calendar" }), _jsx(CommandItem, { value: "search-emoji", children: "Search emoji" }), _jsx(CommandItem, { value: "calculator", children: "Calculator" })] }), _jsx(CommandSeparator, {}), _jsxs(CommandGroup, { heading: "Theme", children: [_jsx(CommandItem, { value: "light", children: "Light" }), _jsx(CommandItem, { value: "dark", children: "Dark" })] })] })] })),
16
+ };
17
+ export const WithShortcuts = {
18
+ render: () => (_jsxs(Command, { className: "w-80 rounded-xl border border-border shadow-xs", children: [_jsx(CommandInput, { placeholder: "Type a command\u2026" }), _jsx(CommandList, { children: _jsxs(CommandGroup, { heading: "File", children: [_jsxs(CommandItem, { value: "new-tab", children: ["New tab", _jsx(CommandShortcut, { children: "\u2318T" })] }), _jsxs(CommandItem, { value: "close-tab", children: ["Close tab", _jsx(CommandShortcut, { children: "\u2318W" })] })] }) })] })),
19
+ };
20
+ function CommandDialogDemo() {
21
+ const [open, setOpen] = useState(false);
22
+ return (_jsxs(_Fragment, { children: [_jsx(Button, { variant: "outline", size: "sm", type: "button", onClick: () => setOpen(true), children: "Open palette" }), _jsx(CommandDialog, { open: open, onOpenChange: setOpen, showCloseButton: true, children: _jsxs(Command, { children: [_jsx(CommandInput, { placeholder: "Search commands\u2026" }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: "No results." }), _jsxs(CommandGroup, { heading: "General", children: [_jsx(CommandItem, { value: "home", onSelect: () => setOpen(false), children: "Home" }), _jsx(CommandItem, { value: "settings", onSelect: () => setOpen(false), children: "Settings" })] })] })] }) })] }));
23
+ }
24
+ export const DialogPalette = {
25
+ render: () => _jsx(CommandDialogDemo, {}),
26
+ };
@@ -0,0 +1,2 @@
1
+ export * from './command';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/command/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './command';
@@ -0,0 +1,62 @@
1
+ import * as React from 'react';
2
+ import { ContextMenu as ContextMenuPrimitive } from '@base-ui/react/context-menu';
3
+ type ContextMenuContentPositionProps = Pick<ContextMenuPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>;
4
+ /** Props for `ContextMenu`. See [Base UI Context Menu](https://base-ui.com/react/components/context-menu). */
5
+ type ContextMenuProps = ContextMenuPrimitive.Root.Props;
6
+ /** Props for `ContextMenuPortal`. */
7
+ type ContextMenuPortalProps = ContextMenuPrimitive.Portal.Props;
8
+ /** Props for `ContextMenuTrigger` (right-click / long-press target). */
9
+ type ContextMenuTriggerProps = ContextMenuPrimitive.Trigger.Props;
10
+ /** Props for `ContextMenuContent` (popup plus positioner). */
11
+ type ContextMenuContentProps = ContextMenuPrimitive.Popup.Props & ContextMenuContentPositionProps;
12
+ /** Same surface as content, tuned for nested submenus. */
13
+ type ContextMenuSubContentProps = ContextMenuContentProps;
14
+ /** Props for `ContextMenuGroup`. */
15
+ type ContextMenuGroupProps = ContextMenuPrimitive.Group.Props;
16
+ /** Props for `ContextMenuLabel`. */
17
+ type ContextMenuLabelProps = ContextMenuPrimitive.GroupLabel.Props & {
18
+ inset?: boolean;
19
+ };
20
+ /** Props for `ContextMenuItem`. */
21
+ type ContextMenuItemProps = ContextMenuPrimitive.Item.Props & {
22
+ inset?: boolean;
23
+ variant?: 'default' | 'destructive';
24
+ };
25
+ /** Props for `ContextMenuSub`. */
26
+ type ContextMenuSubProps = ContextMenuPrimitive.SubmenuRoot.Props;
27
+ /** Props for `ContextMenuSubTrigger`. */
28
+ type ContextMenuSubTriggerProps = ContextMenuPrimitive.SubmenuTrigger.Props & {
29
+ inset?: boolean;
30
+ };
31
+ /** Props for `ContextMenuCheckboxItem`. */
32
+ type ContextMenuCheckboxItemProps = ContextMenuPrimitive.CheckboxItem.Props & {
33
+ inset?: boolean;
34
+ };
35
+ /** Props for `ContextMenuRadioGroup`. */
36
+ type ContextMenuRadioGroupProps = ContextMenuPrimitive.RadioGroup.Props;
37
+ /** Props for `ContextMenuRadioItem`. */
38
+ type ContextMenuRadioItemProps = ContextMenuPrimitive.RadioItem.Props & {
39
+ inset?: boolean;
40
+ };
41
+ /** Props for `ContextMenuSeparator`. */
42
+ type ContextMenuSeparatorProps = ContextMenuPrimitive.Separator.Props;
43
+ /** Props for `ContextMenuShortcut`. */
44
+ type ContextMenuShortcutProps = React.ComponentProps<'span'>;
45
+ declare function ContextMenu({ ...props }: ContextMenuProps): import("react/jsx-runtime").JSX.Element;
46
+ declare function ContextMenuPortal({ ...props }: ContextMenuPortalProps): import("react/jsx-runtime").JSX.Element;
47
+ declare function ContextMenuTrigger({ className, ...props }: ContextMenuTriggerProps): import("react/jsx-runtime").JSX.Element;
48
+ declare function ContextMenuContent({ className, align, alignOffset, side, sideOffset, ...props }: ContextMenuContentProps): import("react/jsx-runtime").JSX.Element;
49
+ declare function ContextMenuGroup({ ...props }: ContextMenuGroupProps): import("react/jsx-runtime").JSX.Element;
50
+ declare function ContextMenuLabel({ className, inset, ...props }: ContextMenuLabelProps): import("react/jsx-runtime").JSX.Element;
51
+ declare function ContextMenuItem({ className, inset, variant, ...props }: ContextMenuItemProps): import("react/jsx-runtime").JSX.Element;
52
+ declare function ContextMenuSub({ ...props }: ContextMenuSubProps): import("react/jsx-runtime").JSX.Element;
53
+ declare function ContextMenuSubTrigger({ className, inset, children, ...props }: ContextMenuSubTriggerProps): import("react/jsx-runtime").JSX.Element;
54
+ declare function ContextMenuSubContent({ ...props }: ContextMenuSubContentProps): import("react/jsx-runtime").JSX.Element;
55
+ declare function ContextMenuCheckboxItem({ className, children, checked, inset, ...props }: ContextMenuCheckboxItemProps): import("react/jsx-runtime").JSX.Element;
56
+ declare function ContextMenuRadioGroup({ ...props }: ContextMenuRadioGroupProps): import("react/jsx-runtime").JSX.Element;
57
+ declare function ContextMenuRadioItem({ className, children, inset, ...props }: ContextMenuRadioItemProps): import("react/jsx-runtime").JSX.Element;
58
+ declare function ContextMenuSeparator({ className, ...props }: ContextMenuSeparatorProps): import("react/jsx-runtime").JSX.Element;
59
+ declare function ContextMenuShortcut({ className, ...props }: ContextMenuShortcutProps): import("react/jsx-runtime").JSX.Element;
60
+ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
61
+ export type { ContextMenuProps, ContextMenuPortalProps, ContextMenuTriggerProps, ContextMenuContentProps, ContextMenuSubContentProps, ContextMenuGroupProps, ContextMenuLabelProps, ContextMenuItemProps, ContextMenuSubProps, ContextMenuSubTriggerProps, ContextMenuCheckboxItemProps, ContextMenuRadioGroupProps, ContextMenuRadioItemProps, ContextMenuSeparatorProps, ContextMenuShortcutProps, };
62
+ //# sourceMappingURL=context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../../src/components/context-menu/context-menu.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAMlF,KAAK,+BAA+B,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAAC,CAAC;AAEpI,8GAA8G;AAC9G,KAAK,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;AAExD,qCAAqC;AACrC,KAAK,sBAAsB,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC;AAEhE,wEAAwE;AACxE,KAAK,uBAAuB,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC;AAElE,8DAA8D;AAC9D,KAAK,uBAAuB,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,GAAG,+BAA+B,CAAC;AAElG,0DAA0D;AAC1D,KAAK,0BAA0B,GAAG,uBAAuB,CAAC;AAE1D,oCAAoC;AACpC,KAAK,qBAAqB,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;AAE9D,oCAAoC;AACpC,KAAK,qBAAqB,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,GAAG;IACjE,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,mCAAmC;AACnC,KAAK,oBAAoB,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,GAAG;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACvC,CAAC;AAEF,kCAAkC;AAClC,KAAK,mBAAmB,GAAG,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC;AAElE,yCAAyC;AACzC,KAAK,0BAA0B,GAAG,oBAAoB,CAAC,cAAc,CAAC,KAAK,GAAG;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,2CAA2C;AAC3C,KAAK,4BAA4B,GAAG,oBAAoB,CAAC,YAAY,CAAC,KAAK,GAAG;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,yCAAyC;AACzC,KAAK,0BAA0B,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,CAAC;AAExE,wCAAwC;AACxC,KAAK,yBAAyB,GAAG,oBAAoB,CAAC,SAAS,CAAC,KAAK,GAAG;IACpE,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wCAAwC;AACxC,KAAK,yBAAyB,GAAG,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC;AAEtE,uCAAuC;AACvC,KAAK,wBAAwB,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAE7D,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAElD;AAED,iBAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,sBAAsB,2CAE9D;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,2CAE3E;AAED,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,KAAe,EAAE,WAAe,EAAE,IAAc,EAAE,UAAc,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,2CAe7I;AAED,iBAAS,gBAAgB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAE5D;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAS9E;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAmB,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAajG;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,2CAExD;AAED,iBAAS,qBAAqB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,0BAA0B,2CAelG;AAED,iBAAS,qBAAqB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,0BAA0B,2CAEtE;AAED,iBAAS,uBAAuB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,4BAA4B,2CAoB/G;AAED,iBAAS,qBAAqB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,0BAA0B,2CAEtE;AAED,iBAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,yBAAyB,2CAmBhG;AAED,iBAAS,oBAAoB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,yBAAyB,2CAE/E;AAED,iBAAS,mBAAmB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,wBAAwB,2CAQ7E;AAED,OAAO,EACH,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACxB,CAAC;AAEF,YAAY,EACR,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,GAC3B,CAAC"}
@@ -0,0 +1,53 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { ContextMenu as ContextMenuPrimitive } from '@base-ui/react/context-menu';
5
+ import { cn } from '../../lib/utils';
6
+ import { CaretRightIcon } from '@phosphor-icons/react/dist/ssr/CaretRight';
7
+ import { CheckIcon } from '@phosphor-icons/react/dist/ssr/Check';
8
+ function ContextMenu({ ...props }) {
9
+ return _jsx(ContextMenuPrimitive.Root, { "data-slot": "context-menu", ...props });
10
+ }
11
+ function ContextMenuPortal({ ...props }) {
12
+ return _jsx(ContextMenuPrimitive.Portal, { "data-slot": "context-menu-portal", ...props });
13
+ }
14
+ function ContextMenuTrigger({ className, ...props }) {
15
+ return _jsx(ContextMenuPrimitive.Trigger, { "data-slot": "context-menu-trigger", className: cn('select-none', className), ...props });
16
+ }
17
+ function ContextMenuContent({ className, align = 'start', alignOffset = 4, side = 'right', sideOffset = 0, ...props }) {
18
+ return (_jsx(ContextMenuPrimitive.Portal, { children: _jsx(ContextMenuPrimitive.Positioner, { className: "isolate z-50 outline-none", align: align, alignOffset: alignOffset, side: side, sideOffset: sideOffset, children: _jsx(ContextMenuPrimitive.Popup, { "data-slot": "context-menu-content", className: cn('z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/5 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95', className), ...props }) }) }));
19
+ }
20
+ function ContextMenuGroup({ ...props }) {
21
+ return _jsx(ContextMenuPrimitive.Group, { "data-slot": "context-menu-group", ...props });
22
+ }
23
+ function ContextMenuLabel({ className, inset, ...props }) {
24
+ return (_jsx(ContextMenuPrimitive.GroupLabel, { "data-slot": "context-menu-label", "data-inset": inset, className: cn('px-1.5 py-1 text-xs text-muted-foreground data-inset:pl-7', className), ...props }));
25
+ }
26
+ function ContextMenuItem({ className, inset, variant = 'default', ...props }) {
27
+ return (_jsx(ContextMenuPrimitive.Item, { "data-slot": "context-menu-item", "data-inset": inset, "data-variant": variant, className: cn("group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive-foreground data-[variant=destructive]:focus:bg-destructive/40 data-[variant=destructive]:focus:text-destructive-foreground dark:data-[variant=destructive]:focus:bg-destructive/80 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive-foreground", className), ...props }));
28
+ }
29
+ function ContextMenuSub({ ...props }) {
30
+ return _jsx(ContextMenuPrimitive.SubmenuRoot, { "data-slot": "context-menu-sub", ...props });
31
+ }
32
+ function ContextMenuSubTrigger({ className, inset, children, ...props }) {
33
+ return (_jsxs(ContextMenuPrimitive.SubmenuTrigger, { "data-slot": "context-menu-sub-trigger", "data-inset": inset, className: cn("flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(CaretRightIcon, { className: "ml-auto" })] }));
34
+ }
35
+ function ContextMenuSubContent({ ...props }) {
36
+ return _jsx(ContextMenuContent, { "data-slot": "context-menu-sub-content", className: "shadow-lg", side: "right", ...props });
37
+ }
38
+ function ContextMenuCheckboxItem({ className, children, checked, inset, ...props }) {
39
+ return (_jsxs(ContextMenuPrimitive.CheckboxItem, { "data-slot": "context-menu-checkbox-item", "data-inset": inset, className: cn("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), checked: checked, ...props, children: [_jsx("span", { className: "pointer-events-none absolute right-2", children: _jsx(ContextMenuPrimitive.CheckboxItemIndicator, { children: _jsx(CheckIcon, {}) }) }), children] }));
40
+ }
41
+ function ContextMenuRadioGroup({ ...props }) {
42
+ return _jsx(ContextMenuPrimitive.RadioGroup, { "data-slot": "context-menu-radio-group", ...props });
43
+ }
44
+ function ContextMenuRadioItem({ className, children, inset, ...props }) {
45
+ return (_jsxs(ContextMenuPrimitive.RadioItem, { "data-slot": "context-menu-radio-item", "data-inset": inset, className: cn("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [_jsx("span", { className: "pointer-events-none absolute right-2", children: _jsx(ContextMenuPrimitive.RadioItemIndicator, { children: _jsx(CheckIcon, {}) }) }), children] }));
46
+ }
47
+ function ContextMenuSeparator({ className, ...props }) {
48
+ return _jsx(ContextMenuPrimitive.Separator, { "data-slot": "context-menu-separator", className: cn('-mx-1 my-1 h-px bg-border', className), ...props });
49
+ }
50
+ function ContextMenuShortcut({ className, ...props }) {
51
+ return (_jsx("span", { "data-slot": "context-menu-shortcut", className: cn('ml-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground', className), ...props }));
52
+ }
53
+ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
@@ -0,0 +1,17 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { ContextMenu } from '.';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof ContextMenu;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ };
11
+ export default meta;
12
+ type Story = StoryObj<typeof meta>;
13
+ export declare const Default: Story;
14
+ export declare const WithShortcuts: Story;
15
+ export declare const WithCheckboxAndRadio: Story;
16
+ export declare const WithSubmenu: Story;
17
+ //# sourceMappingURL=context-menu.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.stories.d.ts","sourceRoot":"","sources":["../../../src/components/context-menu/context-menu.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EACH,WAAW,EAcd,MAAM,GAAG,CAAC;AAEX,QAAA,MAAM,IAAI;;;;;;;CAO0B,CAAC;AAErC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAUnC,eAAO,MAAM,OAAO,EAAE,KAmBrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAsB3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KA2BlC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAsBzB,CAAC"}