@wheelhouse/ui 0.1.6 → 0.2.1

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 (535) hide show
  1. package/dist/blocks/index.d.ts +2 -0
  2. package/dist/blocks/index.d.ts.map +1 -0
  3. package/dist/blocks/index.js +1 -0
  4. package/dist/blocks/navigation/index.d.ts +2 -0
  5. package/dist/blocks/navigation/index.d.ts.map +1 -0
  6. package/dist/blocks/navigation/index.js +1 -0
  7. package/dist/blocks/navigation/pattern-1/index.d.ts +3 -0
  8. package/dist/blocks/navigation/pattern-1/index.d.ts.map +1 -0
  9. package/dist/blocks/navigation/pattern-1/index.js +1 -0
  10. package/dist/blocks/navigation/pattern-1/pattern-1.config.d.ts +47 -0
  11. package/dist/blocks/navigation/pattern-1/pattern-1.config.d.ts.map +1 -0
  12. package/dist/blocks/navigation/pattern-1/pattern-1.config.js +55 -0
  13. package/dist/blocks/navigation/pattern-1/pattern-1.d.ts +7 -0
  14. package/dist/blocks/navigation/pattern-1/pattern-1.d.ts.map +1 -0
  15. package/dist/blocks/navigation/pattern-1/pattern-1.js +50 -0
  16. package/dist/blocks/navigation/pattern-1/pattern-1.stories.d.ts +16 -0
  17. package/dist/blocks/navigation/pattern-1/pattern-1.stories.d.ts.map +1 -0
  18. package/dist/blocks/navigation/pattern-1/pattern-1.stories.js +20 -0
  19. package/dist/components/accordion/accordion.d.ts +15 -0
  20. package/dist/components/accordion/accordion.d.ts.map +1 -0
  21. package/dist/components/accordion/accordion.js +18 -0
  22. package/dist/components/accordion/accordion.stories.d.ts +7 -0
  23. package/dist/components/accordion/accordion.stories.d.ts.map +1 -0
  24. package/dist/components/accordion/accordion.stories.js +17 -0
  25. package/dist/components/accordion/index.d.ts +3 -0
  26. package/dist/components/accordion/index.d.ts.map +1 -0
  27. package/dist/components/accordion/index.js +1 -0
  28. package/dist/components/alert/alert.d.ts +11 -0
  29. package/dist/components/alert/alert.d.ts.map +1 -0
  30. package/dist/components/alert/alert.js +28 -0
  31. package/dist/components/alert/alert.stories.d.ts +11 -0
  32. package/dist/components/alert/alert.stories.d.ts.map +1 -0
  33. package/dist/components/alert/alert.stories.js +35 -0
  34. package/dist/components/alert/index.d.ts +2 -0
  35. package/dist/components/alert/index.d.ts.map +1 -0
  36. package/dist/components/alert/index.js +1 -0
  37. package/dist/components/alert-dialog/alert-dialog.d.ts +44 -0
  38. package/dist/components/alert-dialog/alert-dialog.d.ts.map +1 -0
  39. package/dist/components/alert-dialog/alert-dialog.js +43 -0
  40. package/dist/components/alert-dialog/alert-dialog.stories.d.ts +9 -0
  41. package/dist/components/alert-dialog/alert-dialog.stories.d.ts.map +1 -0
  42. package/dist/components/alert-dialog/alert-dialog.stories.js +22 -0
  43. package/dist/components/alert-dialog/index.d.ts +3 -0
  44. package/dist/components/alert-dialog/index.d.ts.map +1 -0
  45. package/dist/components/alert-dialog/index.js +1 -0
  46. package/dist/components/aspect-ratio/aspect-ratio.d.ts +11 -0
  47. package/dist/components/aspect-ratio/aspect-ratio.d.ts.map +1 -0
  48. package/dist/components/aspect-ratio/aspect-ratio.js +9 -0
  49. package/dist/components/aspect-ratio/aspect-ratio.stories.d.ts +8 -0
  50. package/dist/components/aspect-ratio/aspect-ratio.stories.d.ts.map +1 -0
  51. package/dist/components/aspect-ratio/aspect-ratio.stories.js +26 -0
  52. package/dist/components/aspect-ratio/index.d.ts +3 -0
  53. package/dist/components/aspect-ratio/index.d.ts.map +1 -0
  54. package/dist/components/aspect-ratio/index.js +1 -0
  55. package/dist/components/avatar/avatar.d.ts +29 -0
  56. package/dist/components/avatar/avatar.d.ts.map +1 -0
  57. package/dist/components/avatar/avatar.js +24 -0
  58. package/dist/components/avatar/avatar.stories.d.ts +20 -0
  59. package/dist/components/avatar/avatar.stories.d.ts.map +1 -0
  60. package/dist/components/avatar/avatar.stories.js +40 -0
  61. package/dist/components/avatar/index.d.ts +2 -0
  62. package/dist/components/avatar/index.d.ts.map +1 -0
  63. package/dist/components/avatar/index.js +1 -0
  64. package/dist/components/badge/badge.d.ts +5 -4
  65. package/dist/components/badge/badge.d.ts.map +1 -1
  66. package/dist/components/badge/badge.js +3 -3
  67. package/dist/components/breadcrumb/breadcrumb.d.ts +25 -0
  68. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  69. package/dist/components/breadcrumb/breadcrumb.js +38 -0
  70. package/dist/components/breadcrumb/breadcrumb.stories.d.ts +16 -0
  71. package/dist/components/breadcrumb/breadcrumb.stories.d.ts.map +1 -0
  72. package/dist/components/breadcrumb/breadcrumb.stories.js +21 -0
  73. package/dist/components/breadcrumb/index.d.ts +2 -0
  74. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  75. package/dist/components/breadcrumb/index.js +1 -0
  76. package/dist/components/button/button.d.ts +9 -6
  77. package/dist/components/button/button.d.ts.map +1 -1
  78. package/dist/components/button/button.js +3 -3
  79. package/dist/components/button-group/button-group.d.ts +3 -1
  80. package/dist/components/button-group/button-group.d.ts.map +1 -1
  81. package/dist/components/button-group/button-group.js +1 -1
  82. package/dist/components/button-group/button-group.stories.d.ts +1 -0
  83. package/dist/components/button-group/button-group.stories.d.ts.map +1 -1
  84. package/dist/components/button-group/button-group.stories.js +4 -0
  85. package/dist/components/button-group/index.d.ts +1 -0
  86. package/dist/components/button-group/index.d.ts.map +1 -1
  87. package/dist/components/calendar/calendar.d.ts +34 -0
  88. package/dist/components/calendar/calendar.d.ts.map +1 -0
  89. package/dist/components/calendar/calendar.js +82 -0
  90. package/dist/components/calendar/calendar.stories.d.ts +16 -0
  91. package/dist/components/calendar/calendar.stories.d.ts.map +1 -0
  92. package/dist/components/calendar/calendar.stories.js +33 -0
  93. package/dist/components/calendar/index.d.ts +3 -0
  94. package/dist/components/calendar/index.d.ts.map +1 -0
  95. package/dist/components/calendar/index.js +1 -0
  96. package/dist/components/card/card.d.ts +28 -0
  97. package/dist/components/card/card.d.ts.map +1 -0
  98. package/dist/components/card/card.js +25 -0
  99. package/dist/components/card/card.stories.d.ts +10 -0
  100. package/dist/components/card/card.stories.d.ts.map +1 -0
  101. package/dist/components/card/card.stories.js +30 -0
  102. package/dist/components/card/index.d.ts +2 -0
  103. package/dist/components/card/index.d.ts.map +1 -0
  104. package/dist/components/card/index.js +1 -0
  105. package/dist/components/checkbox/checkbox.d.ts +9 -0
  106. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  107. package/dist/components/checkbox/checkbox.js +9 -0
  108. package/dist/components/checkbox/checkbox.stories.d.ts +19 -0
  109. package/dist/components/checkbox/checkbox.stories.d.ts.map +1 -0
  110. package/dist/components/checkbox/checkbox.stories.js +31 -0
  111. package/dist/components/checkbox/index.d.ts +2 -0
  112. package/dist/components/checkbox/index.d.ts.map +1 -0
  113. package/dist/components/checkbox/index.js +1 -0
  114. package/dist/components/collapsible/collapsible.d.ts +17 -0
  115. package/dist/components/collapsible/collapsible.d.ts.map +1 -0
  116. package/dist/components/collapsible/collapsible.js +17 -0
  117. package/dist/components/collapsible/collapsible.stories.d.ts +16 -0
  118. package/dist/components/collapsible/collapsible.stories.d.ts.map +1 -0
  119. package/dist/components/collapsible/collapsible.stories.js +24 -0
  120. package/dist/components/collapsible/index.d.ts +3 -0
  121. package/dist/components/collapsible/index.d.ts.map +1 -0
  122. package/dist/components/collapsible/index.js +1 -0
  123. package/dist/components/combobox/combobox.d.ts +38 -0
  124. package/dist/components/combobox/combobox.d.ts.map +1 -0
  125. package/dist/components/combobox/combobox.js +63 -0
  126. package/dist/components/combobox/combobox.stories.d.ts +18 -0
  127. package/dist/components/combobox/combobox.stories.d.ts.map +1 -0
  128. package/dist/components/combobox/combobox.stories.js +46 -0
  129. package/dist/components/combobox/index.d.ts +3 -0
  130. package/dist/components/combobox/index.d.ts.map +1 -0
  131. package/dist/components/combobox/index.js +1 -0
  132. package/dist/components/command/command.d.ts +31 -0
  133. package/dist/components/command/command.d.ts.map +1 -0
  134. package/dist/components/command/command.js +36 -0
  135. package/dist/components/command/command.stories.d.ts +16 -0
  136. package/dist/components/command/command.stories.d.ts.map +1 -0
  137. package/dist/components/command/command.stories.js +26 -0
  138. package/dist/components/command/index.d.ts +2 -0
  139. package/dist/components/command/index.d.ts.map +1 -0
  140. package/dist/components/command/index.js +1 -0
  141. package/dist/components/context-menu/context-menu.d.ts +62 -0
  142. package/dist/components/context-menu/context-menu.d.ts.map +1 -0
  143. package/dist/components/context-menu/context-menu.js +52 -0
  144. package/dist/components/context-menu/context-menu.stories.d.ts +17 -0
  145. package/dist/components/context-menu/context-menu.stories.d.ts.map +1 -0
  146. package/dist/components/context-menu/context-menu.stories.js +27 -0
  147. package/dist/components/context-menu/index.d.ts +2 -0
  148. package/dist/components/context-menu/index.d.ts.map +1 -0
  149. package/dist/components/context-menu/index.js +1 -0
  150. package/dist/components/date-selector/date-selector-context.d.ts +6 -0
  151. package/dist/components/date-selector/date-selector-context.d.ts.map +1 -0
  152. package/dist/components/date-selector/date-selector-context.js +11 -0
  153. package/dist/components/date-selector/date-selector-parts.d.ts +68 -0
  154. package/dist/components/date-selector/date-selector-parts.d.ts.map +1 -0
  155. package/dist/components/date-selector/date-selector-parts.js +131 -0
  156. package/dist/components/date-selector/date-selector-types.d.ts +118 -0
  157. package/dist/components/date-selector/date-selector-types.d.ts.map +1 -0
  158. package/dist/components/date-selector/date-selector-types.js +32 -0
  159. package/dist/components/date-selector/date-selector-value.d.ts +47 -0
  160. package/dist/components/date-selector/date-selector-value.d.ts.map +1 -0
  161. package/dist/components/date-selector/date-selector-value.js +183 -0
  162. package/dist/components/date-selector/date-selector.d.ts +6 -0
  163. package/dist/components/date-selector/date-selector.d.ts.map +1 -0
  164. package/dist/components/date-selector/date-selector.js +144 -0
  165. package/dist/components/date-selector/date-selector.stories.d.ts +135 -0
  166. package/dist/components/date-selector/date-selector.stories.d.ts.map +1 -0
  167. package/dist/components/date-selector/date-selector.stories.js +144 -0
  168. package/dist/components/date-selector/index.d.ts +7 -0
  169. package/dist/components/date-selector/index.d.ts.map +1 -0
  170. package/dist/components/date-selector/index.js +5 -0
  171. package/dist/components/date-selector/use-date-selector.d.ts +50 -0
  172. package/dist/components/date-selector/use-date-selector.d.ts.map +1 -0
  173. package/dist/components/date-selector/use-date-selector.js +305 -0
  174. package/dist/components/dialog/dialog.d.ts +40 -0
  175. package/dist/components/dialog/dialog.d.ts.map +1 -0
  176. package/dist/components/dialog/dialog.js +38 -0
  177. package/dist/components/dialog/dialog.stories.d.ts +9 -0
  178. package/dist/components/dialog/dialog.stories.d.ts.map +1 -0
  179. package/dist/components/dialog/dialog.stories.js +22 -0
  180. package/dist/components/dialog/index.d.ts +3 -0
  181. package/dist/components/dialog/index.d.ts.map +1 -0
  182. package/dist/components/dialog/index.js +1 -0
  183. package/dist/components/direction/direction.d.ts +7 -0
  184. package/dist/components/direction/direction.d.ts.map +1 -0
  185. package/dist/components/direction/direction.js +5 -0
  186. package/dist/components/direction/direction.stories.d.ts +8 -0
  187. package/dist/components/direction/direction.stories.d.ts.map +1 -0
  188. package/dist/components/direction/direction.stories.js +23 -0
  189. package/dist/components/direction/index.d.ts +2 -0
  190. package/dist/components/direction/index.d.ts.map +1 -0
  191. package/dist/components/direction/index.js +1 -0
  192. package/dist/components/drawer/drawer.d.ts +25 -0
  193. package/dist/components/drawer/drawer.d.ts.map +1 -0
  194. package/dist/components/drawer/drawer.js +36 -0
  195. package/dist/components/drawer/drawer.stories.d.ts +7 -0
  196. package/dist/components/drawer/drawer.stories.d.ts.map +1 -0
  197. package/dist/components/drawer/drawer.stories.js +17 -0
  198. package/dist/components/drawer/index.d.ts +2 -0
  199. package/dist/components/drawer/index.d.ts.map +1 -0
  200. package/dist/components/drawer/index.js +1 -0
  201. package/dist/components/dropdown-menu/dropdown-menu.d.ts +65 -0
  202. package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -0
  203. package/dist/components/dropdown-menu/dropdown-menu.js +52 -0
  204. package/dist/components/dropdown-menu/dropdown-menu.stories.d.ts +18 -0
  205. package/dist/components/dropdown-menu/dropdown-menu.stories.d.ts.map +1 -0
  206. package/dist/components/dropdown-menu/dropdown-menu.stories.js +31 -0
  207. package/dist/components/dropdown-menu/index.d.ts +3 -0
  208. package/dist/components/dropdown-menu/index.d.ts.map +1 -0
  209. package/dist/components/dropdown-menu/index.js +1 -0
  210. package/dist/components/empty/empty.d.ts +25 -0
  211. package/dist/components/empty/empty.d.ts.map +1 -0
  212. package/dist/components/empty/empty.js +34 -0
  213. package/dist/components/empty/empty.stories.d.ts +7 -0
  214. package/dist/components/empty/empty.stories.d.ts.map +1 -0
  215. package/dist/components/empty/empty.stories.js +19 -0
  216. package/dist/components/empty/index.d.ts +3 -0
  217. package/dist/components/empty/index.d.ts.map +1 -0
  218. package/dist/components/empty/index.js +1 -0
  219. package/dist/components/field/field.d.ts +22 -0
  220. package/dist/components/field/field.d.ts.map +1 -0
  221. package/dist/components/field/field.js +34 -0
  222. package/dist/components/field/field.stories.d.ts +16 -0
  223. package/dist/components/field/field.stories.d.ts.map +1 -0
  224. package/dist/components/field/field.stories.js +26 -0
  225. package/dist/components/field/index.d.ts +2 -0
  226. package/dist/components/field/index.d.ts.map +1 -0
  227. package/dist/components/field/index.js +1 -0
  228. package/dist/components/filters/filters-defaults.d.ts +5 -0
  229. package/dist/components/filters/filters-defaults.d.ts.map +1 -0
  230. package/dist/components/filters/filters-defaults.js +97 -0
  231. package/dist/components/filters/filters-types.d.ts +135 -0
  232. package/dist/components/filters/filters-types.d.ts.map +1 -0
  233. package/dist/components/filters/filters-types.js +1 -0
  234. package/dist/components/filters/filters-utils.d.ts +4 -0
  235. package/dist/components/filters/filters-utils.d.ts.map +1 -0
  236. package/dist/components/filters/filters-utils.js +12 -0
  237. package/dist/components/filters/filters.d.ts +29 -0
  238. package/dist/components/filters/filters.d.ts.map +1 -0
  239. package/dist/components/filters/filters.js +733 -0
  240. package/dist/components/filters/filters.stories.d.ts +8 -0
  241. package/dist/components/filters/filters.stories.d.ts.map +1 -0
  242. package/dist/components/filters/filters.stories.js +48 -0
  243. package/dist/components/filters/index.d.ts +5 -0
  244. package/dist/components/filters/index.d.ts.map +1 -0
  245. package/dist/components/filters/index.js +4 -0
  246. package/dist/components/frame/frame.d.ts +65 -0
  247. package/dist/components/frame/frame.d.ts.map +1 -0
  248. package/dist/components/frame/frame.js +108 -0
  249. package/dist/components/frame/frame.stories.d.ts +14 -0
  250. package/dist/components/frame/frame.stories.d.ts.map +1 -0
  251. package/dist/components/frame/frame.stories.js +50 -0
  252. package/dist/components/frame/index.d.ts +3 -0
  253. package/dist/components/frame/index.d.ts.map +1 -0
  254. package/dist/components/frame/index.js +1 -0
  255. package/dist/components/hover-card/hover-card.d.ts +16 -0
  256. package/dist/components/hover-card/hover-card.d.ts.map +1 -0
  257. package/dist/components/hover-card/hover-card.js +14 -0
  258. package/dist/components/hover-card/hover-card.stories.d.ts +7 -0
  259. package/dist/components/hover-card/hover-card.stories.d.ts.map +1 -0
  260. package/dist/components/hover-card/hover-card.stories.js +15 -0
  261. package/dist/components/hover-card/index.d.ts +3 -0
  262. package/dist/components/hover-card/index.d.ts.map +1 -0
  263. package/dist/components/hover-card/index.js +1 -0
  264. package/dist/components/index.d.ts +51 -0
  265. package/dist/components/index.d.ts.map +1 -1
  266. package/dist/components/index.js +51 -0
  267. package/dist/components/input/index.d.ts +2 -0
  268. package/dist/components/input/index.d.ts.map +1 -0
  269. package/dist/components/input/index.js +1 -0
  270. package/dist/components/input/input.d.ts +16 -0
  271. package/dist/components/input/input.d.ts.map +1 -0
  272. package/dist/components/input/input.js +22 -0
  273. package/dist/components/input/input.stories.d.ts +28 -0
  274. package/dist/components/input/input.stories.d.ts.map +1 -0
  275. package/dist/components/input/input.stories.js +33 -0
  276. package/dist/components/input-group/index.d.ts +3 -0
  277. package/dist/components/input-group/index.d.ts.map +1 -0
  278. package/dist/components/input-group/index.js +1 -0
  279. package/dist/components/input-group/input-group.d.ts +44 -0
  280. package/dist/components/input-group/input-group.d.ts.map +1 -0
  281. package/dist/components/input-group/input-group.js +72 -0
  282. package/dist/components/input-group/input-group.stories.d.ts +18 -0
  283. package/dist/components/input-group/input-group.stories.d.ts.map +1 -0
  284. package/dist/components/input-group/input-group.stories.js +29 -0
  285. package/dist/components/item/index.d.ts +3 -0
  286. package/dist/components/item/index.d.ts.map +1 -0
  287. package/dist/components/item/index.js +1 -0
  288. package/dist/components/item/item.d.ts +60 -0
  289. package/dist/components/item/item.d.ts.map +1 -0
  290. package/dist/components/item/item.js +95 -0
  291. package/dist/components/item/item.stories.d.ts +34 -0
  292. package/dist/components/item/item.stories.d.ts.map +1 -0
  293. package/dist/components/item/item.stories.js +40 -0
  294. package/dist/components/kbd/index.d.ts +3 -0
  295. package/dist/components/kbd/index.d.ts.map +1 -0
  296. package/dist/components/kbd/index.js +1 -0
  297. package/dist/components/kbd/kbd.d.ts +15 -0
  298. package/dist/components/kbd/kbd.d.ts.map +1 -0
  299. package/dist/components/kbd/kbd.js +16 -0
  300. package/dist/components/kbd/kbd.stories.d.ts +17 -0
  301. package/dist/components/kbd/kbd.stories.d.ts.map +1 -0
  302. package/dist/components/kbd/kbd.stories.js +25 -0
  303. package/dist/components/label/index.d.ts +2 -0
  304. package/dist/components/label/index.d.ts.map +1 -0
  305. package/dist/components/label/index.js +1 -0
  306. package/dist/components/label/label.d.ts +6 -0
  307. package/dist/components/label/label.d.ts.map +1 -0
  308. package/dist/components/label/label.js +10 -0
  309. package/dist/components/label/label.stories.d.ts +18 -0
  310. package/dist/components/label/label.stories.d.ts.map +1 -0
  311. package/dist/components/label/label.stories.js +29 -0
  312. package/dist/components/menubar/index.d.ts +3 -0
  313. package/dist/components/menubar/index.d.ts.map +1 -0
  314. package/dist/components/menubar/index.js +1 -0
  315. package/dist/components/menubar/menubar.d.ts +64 -0
  316. package/dist/components/menubar/menubar.d.ts.map +1 -0
  317. package/dist/components/menubar/menubar.js +56 -0
  318. package/dist/components/menubar/menubar.stories.d.ts +15 -0
  319. package/dist/components/menubar/menubar.stories.d.ts.map +1 -0
  320. package/dist/components/menubar/menubar.stories.js +18 -0
  321. package/dist/components/native-select/index.d.ts +2 -0
  322. package/dist/components/native-select/index.d.ts.map +1 -0
  323. package/dist/components/native-select/index.js +1 -0
  324. package/dist/components/native-select/native-select.d.ts +12 -0
  325. package/dist/components/native-select/native-select.d.ts.map +1 -0
  326. package/dist/components/native-select/native-select.js +14 -0
  327. package/dist/components/native-select/native-select.stories.d.ts +8 -0
  328. package/dist/components/native-select/native-select.stories.d.ts.map +1 -0
  329. package/dist/components/native-select/native-select.stories.js +19 -0
  330. package/dist/components/navigation-menu/index.d.ts +3 -0
  331. package/dist/components/navigation-menu/index.d.ts.map +1 -0
  332. package/dist/components/navigation-menu/index.js +1 -0
  333. package/dist/components/navigation-menu/navigation-menu.d.ts +33 -0
  334. package/dist/components/navigation-menu/navigation-menu.d.ts.map +1 -0
  335. package/dist/components/navigation-menu/navigation-menu.js +33 -0
  336. package/dist/components/navigation-menu/navigation-menu.stories.d.ts +14 -0
  337. package/dist/components/navigation-menu/navigation-menu.stories.d.ts.map +1 -0
  338. package/dist/components/navigation-menu/navigation-menu.stories.js +14 -0
  339. package/dist/components/pagination/index.d.ts +3 -0
  340. package/dist/components/pagination/index.d.ts.map +1 -0
  341. package/dist/components/pagination/index.js +1 -0
  342. package/dist/components/pagination/pagination.d.ts +31 -0
  343. package/dist/components/pagination/pagination.d.ts.map +1 -0
  344. package/dist/components/pagination/pagination.js +29 -0
  345. package/dist/components/pagination/pagination.stories.d.ts +14 -0
  346. package/dist/components/pagination/pagination.stories.d.ts.map +1 -0
  347. package/dist/components/pagination/pagination.stories.js +14 -0
  348. package/dist/components/popover/index.d.ts +2 -0
  349. package/dist/components/popover/index.d.ts.map +1 -0
  350. package/dist/components/popover/index.js +1 -0
  351. package/dist/components/popover/popover.d.ts +20 -0
  352. package/dist/components/popover/popover.d.ts.map +1 -0
  353. package/dist/components/popover/popover.js +24 -0
  354. package/dist/components/popover/popover.stories.d.ts +7 -0
  355. package/dist/components/popover/popover.stories.d.ts.map +1 -0
  356. package/dist/components/popover/popover.stories.js +17 -0
  357. package/dist/components/progress/index.d.ts +3 -0
  358. package/dist/components/progress/index.d.ts.map +1 -0
  359. package/dist/components/progress/index.js +1 -0
  360. package/dist/components/progress/progress.d.ts +18 -0
  361. package/dist/components/progress/progress.d.ts.map +1 -0
  362. package/dist/components/progress/progress.js +20 -0
  363. package/dist/components/progress/progress.stories.d.ts +9 -0
  364. package/dist/components/progress/progress.stories.d.ts.map +1 -0
  365. package/dist/components/progress/progress.stories.js +29 -0
  366. package/dist/components/radio-group/index.d.ts +3 -0
  367. package/dist/components/radio-group/index.d.ts.map +1 -0
  368. package/dist/components/radio-group/index.js +1 -0
  369. package/dist/components/radio-group/radio-group.d.ts +13 -0
  370. package/dist/components/radio-group/radio-group.d.ts.map +1 -0
  371. package/dist/components/radio-group/radio-group.js +12 -0
  372. package/dist/components/radio-group/radio-group.stories.d.ts +7 -0
  373. package/dist/components/radio-group/radio-group.stories.d.ts.map +1 -0
  374. package/dist/components/radio-group/radio-group.stories.js +18 -0
  375. package/dist/components/resizable/index.d.ts +2 -0
  376. package/dist/components/resizable/index.d.ts.map +1 -0
  377. package/dist/components/resizable/index.js +1 -0
  378. package/dist/components/resizable/resizable.d.ts +12 -0
  379. package/dist/components/resizable/resizable.d.ts.map +1 -0
  380. package/dist/components/resizable/resizable.js +14 -0
  381. package/dist/components/resizable/resizable.stories.d.ts +7 -0
  382. package/dist/components/resizable/resizable.stories.d.ts.map +1 -0
  383. package/dist/components/resizable/resizable.stories.js +16 -0
  384. package/dist/components/scroll-area/index.d.ts +2 -0
  385. package/dist/components/scroll-area/index.d.ts.map +1 -0
  386. package/dist/components/scroll-area/index.js +1 -0
  387. package/dist/components/scroll-area/scroll-area.d.ts +7 -0
  388. package/dist/components/scroll-area/scroll-area.d.ts.map +1 -0
  389. package/dist/components/scroll-area/scroll-area.js +11 -0
  390. package/dist/components/scroll-area/scroll-area.stories.d.ts +6 -0
  391. package/dist/components/scroll-area/scroll-area.stories.d.ts.map +1 -0
  392. package/dist/components/scroll-area/scroll-area.stories.js +13 -0
  393. package/dist/components/select/index.d.ts +3 -0
  394. package/dist/components/select/index.d.ts.map +1 -0
  395. package/dist/components/select/index.js +1 -0
  396. package/dist/components/select/select.d.ts +49 -0
  397. package/dist/components/select/select.d.ts.map +1 -0
  398. package/dist/components/select/select.js +50 -0
  399. package/dist/components/select/select.stories.d.ts +9 -0
  400. package/dist/components/select/select.stories.d.ts.map +1 -0
  401. package/dist/components/select/select.stories.js +20 -0
  402. package/dist/components/separator/index.d.ts +1 -0
  403. package/dist/components/separator/index.d.ts.map +1 -1
  404. package/dist/components/separator/separator.d.ts +3 -1
  405. package/dist/components/separator/separator.d.ts.map +1 -1
  406. package/dist/components/sheet/index.d.ts +2 -0
  407. package/dist/components/sheet/index.d.ts.map +1 -0
  408. package/dist/components/sheet/index.js +1 -0
  409. package/dist/components/sheet/sheet.d.ts +34 -0
  410. package/dist/components/sheet/sheet.d.ts.map +1 -0
  411. package/dist/components/sheet/sheet.js +38 -0
  412. package/dist/components/sheet/sheet.stories.d.ts +9 -0
  413. package/dist/components/sheet/sheet.stories.d.ts.map +1 -0
  414. package/dist/components/sheet/sheet.stories.js +21 -0
  415. package/dist/components/slider/index.d.ts +3 -0
  416. package/dist/components/slider/index.d.ts.map +1 -0
  417. package/dist/components/slider/index.js +1 -0
  418. package/dist/components/slider/slider.d.ts +15 -0
  419. package/dist/components/slider/slider.d.ts.map +1 -0
  420. package/dist/components/slider/slider.js +20 -0
  421. package/dist/components/slider/slider.stories.d.ts +11 -0
  422. package/dist/components/slider/slider.stories.d.ts.map +1 -0
  423. package/dist/components/slider/slider.stories.js +36 -0
  424. package/dist/components/sonner/index.d.ts +4 -0
  425. package/dist/components/sonner/index.d.ts.map +1 -0
  426. package/dist/components/sonner/index.js +2 -0
  427. package/dist/components/sonner/sonner.d.ts +12 -0
  428. package/dist/components/sonner/sonner.d.ts.map +1 -0
  429. package/dist/components/sonner/sonner.js +32 -0
  430. package/dist/components/sonner/sonner.stories.d.ts +8 -0
  431. package/dist/components/sonner/sonner.stories.d.ts.map +1 -0
  432. package/dist/components/sonner/sonner.stories.js +25 -0
  433. package/dist/components/sonner/toast.d.ts +2 -0
  434. package/dist/components/sonner/toast.d.ts.map +1 -0
  435. package/dist/components/sonner/toast.js +1 -0
  436. package/dist/components/sortable/index.d.ts +3 -0
  437. package/dist/components/sortable/index.d.ts.map +1 -0
  438. package/dist/components/sortable/index.js +1 -0
  439. package/dist/components/sortable/sortable.d.ts +94 -0
  440. package/dist/components/sortable/sortable.d.ts.map +1 -0
  441. package/dist/components/sortable/sortable.js +210 -0
  442. package/dist/components/sortable/sortable.stories.d.ts +14 -0
  443. package/dist/components/sortable/sortable.stories.d.ts.map +1 -0
  444. package/dist/components/sortable/sortable.stories.js +38 -0
  445. package/dist/components/spinner/index.d.ts +3 -0
  446. package/dist/components/spinner/index.d.ts.map +1 -0
  447. package/dist/components/spinner/index.js +1 -0
  448. package/dist/components/spinner/spinner.d.ts +13 -0
  449. package/dist/components/spinner/spinner.d.ts.map +1 -0
  450. package/dist/components/spinner/spinner.js +12 -0
  451. package/dist/components/spinner/spinner.stories.d.ts +9 -0
  452. package/dist/components/spinner/spinner.stories.d.ts.map +1 -0
  453. package/dist/components/spinner/spinner.stories.js +20 -0
  454. package/dist/components/status-indicator/index.d.ts +3 -0
  455. package/dist/components/status-indicator/index.d.ts.map +1 -0
  456. package/dist/components/status-indicator/index.js +1 -0
  457. package/dist/components/status-indicator/status-indicator.d.ts +51 -0
  458. package/dist/components/status-indicator/status-indicator.d.ts.map +1 -0
  459. package/dist/components/status-indicator/status-indicator.js +48 -0
  460. package/dist/components/status-indicator/status-indicator.stories.d.ts +20 -0
  461. package/dist/components/status-indicator/status-indicator.stories.d.ts.map +1 -0
  462. package/dist/components/status-indicator/status-indicator.stories.js +97 -0
  463. package/dist/components/switch/index.d.ts +2 -0
  464. package/dist/components/switch/index.d.ts.map +1 -0
  465. package/dist/components/switch/index.js +1 -0
  466. package/dist/components/switch/switch.d.ts +13 -0
  467. package/dist/components/switch/switch.d.ts.map +1 -0
  468. package/dist/components/switch/switch.js +8 -0
  469. package/dist/components/switch/switch.stories.d.ts +20 -0
  470. package/dist/components/switch/switch.stories.d.ts.map +1 -0
  471. package/dist/components/switch/switch.stories.js +46 -0
  472. package/dist/components/tabs/index.d.ts +3 -0
  473. package/dist/components/tabs/index.d.ts.map +1 -0
  474. package/dist/components/tabs/index.js +1 -0
  475. package/dist/components/tabs/tabs.d.ts +35 -0
  476. package/dist/components/tabs/tabs.d.ts.map +1 -0
  477. package/dist/components/tabs/tabs.js +34 -0
  478. package/dist/components/tabs/tabs.stories.d.ts +10 -0
  479. package/dist/components/tabs/tabs.stories.d.ts.map +1 -0
  480. package/dist/components/tabs/tabs.stories.js +29 -0
  481. package/dist/components/text/index.d.ts +3 -0
  482. package/dist/components/text/index.d.ts.map +1 -0
  483. package/dist/components/text/index.js +1 -0
  484. package/dist/components/text/text.d.ts +47 -0
  485. package/dist/components/text/text.d.ts.map +1 -0
  486. package/dist/components/text/text.js +53 -0
  487. package/dist/components/text/text.stories.d.ts +11 -0
  488. package/dist/components/text/text.stories.d.ts.map +1 -0
  489. package/dist/components/text/text.stories.js +84 -0
  490. package/dist/components/textarea/index.d.ts +2 -0
  491. package/dist/components/textarea/index.d.ts.map +1 -0
  492. package/dist/components/textarea/index.js +1 -0
  493. package/dist/components/textarea/textarea.d.ts +11 -0
  494. package/dist/components/textarea/textarea.d.ts.map +1 -0
  495. package/dist/components/textarea/textarea.js +10 -0
  496. package/dist/components/textarea/textarea.stories.d.ts +24 -0
  497. package/dist/components/textarea/textarea.stories.d.ts.map +1 -0
  498. package/dist/components/textarea/textarea.stories.js +32 -0
  499. package/dist/components/toggle/index.d.ts +3 -0
  500. package/dist/components/toggle/index.d.ts.map +1 -0
  501. package/dist/components/toggle/index.js +1 -0
  502. package/dist/components/toggle/toggle.d.ts +31 -0
  503. package/dist/components/toggle/toggle.d.ts.map +1 -0
  504. package/dist/components/toggle/toggle.js +33 -0
  505. package/dist/components/toggle/toggle.stories.d.ts +11 -0
  506. package/dist/components/toggle/toggle.stories.d.ts.map +1 -0
  507. package/dist/components/toggle/toggle.stories.js +60 -0
  508. package/dist/components/toggle-group/index.d.ts +3 -0
  509. package/dist/components/toggle-group/index.d.ts.map +1 -0
  510. package/dist/components/toggle-group/index.js +1 -0
  511. package/dist/components/toggle-group/toggle-group.d.ts +32 -0
  512. package/dist/components/toggle-group/toggle-group.d.ts.map +1 -0
  513. package/dist/components/toggle-group/toggle-group.js +33 -0
  514. package/dist/components/toggle-group/toggle-group.stories.d.ts +10 -0
  515. package/dist/components/toggle-group/toggle-group.stories.d.ts.map +1 -0
  516. package/dist/components/toggle-group/toggle-group.stories.js +28 -0
  517. package/dist/components/tooltip/index.d.ts +3 -0
  518. package/dist/components/tooltip/index.d.ts.map +1 -0
  519. package/dist/components/tooltip/index.js +1 -0
  520. package/dist/components/tooltip/tooltip.d.ts +22 -0
  521. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  522. package/dist/components/tooltip/tooltip.js +21 -0
  523. package/dist/components/tooltip/tooltip.stories.d.ts +11 -0
  524. package/dist/components/tooltip/tooltip.stories.d.ts.map +1 -0
  525. package/dist/components/tooltip/tooltip.stories.js +33 -0
  526. package/dist/hooks/use-mobile.d.ts +2 -0
  527. package/dist/hooks/use-mobile.d.ts.map +1 -0
  528. package/dist/hooks/use-mobile.js +15 -0
  529. package/dist/index.d.ts +1 -0
  530. package/dist/index.d.ts.map +1 -1
  531. package/dist/index.js +1 -0
  532. package/dist/tsconfig.tsbuildinfo +1 -1
  533. package/llms.txt +21 -19
  534. package/package.json +17 -9
  535. package/src/styles/globals.css +6 -11
@@ -0,0 +1,28 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").ForwardRefExoticComponent<Omit<import("./input").InputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
5
+ tags: string[];
6
+ parameters: {
7
+ layout: string;
8
+ };
9
+ args: {
10
+ placeholder: string;
11
+ size: "default";
12
+ };
13
+ argTypes: {
14
+ size: {
15
+ control: "select";
16
+ options: readonly ["sm", "default"];
17
+ };
18
+ className: {
19
+ control: false;
20
+ };
21
+ };
22
+ };
23
+ export default meta;
24
+ type Story = StoryObj<typeof meta>;
25
+ export declare const Default: Story;
26
+ export declare const Gallery: Story;
27
+ export declare const WithField: Story;
28
+ //# sourceMappingURL=input.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.stories.d.ts","sourceRoot":"","sources":["../../../src/components/input/input.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAMvD,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;CAeoB,CAAC;AAE/B,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KA4BrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAgBvB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Field } from '../field';
3
+ import { Label } from '../label';
4
+ import { Input, inputSizeKeys } from './input';
5
+ const meta = {
6
+ title: 'UI/Input',
7
+ component: Input,
8
+ tags: ['autodocs'],
9
+ parameters: {
10
+ layout: 'centered',
11
+ },
12
+ args: {
13
+ placeholder: 'Placeholder',
14
+ size: 'default',
15
+ },
16
+ argTypes: {
17
+ size: { control: 'select', options: inputSizeKeys },
18
+ className: { control: false },
19
+ },
20
+ };
21
+ export default meta;
22
+ export const Default = {
23
+ render: (args) => (_jsx("div", { className: "w-72", children: _jsx(Input, { ...args }) })),
24
+ };
25
+ export const Gallery = {
26
+ parameters: { layout: 'padded' },
27
+ render: () => (_jsxs("div", { className: "flex max-w-md flex-col gap-8", children: [_jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "Sizes" }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Input, { placeholder: "Default height", size: "default" }), _jsx(Input, { placeholder: "Small", size: "sm" })] })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "States" }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Input, { placeholder: "Disabled", disabled: true }), _jsx(Input, { placeholder: "Invalid (aria-invalid)", "aria-invalid": true }), _jsx(Input, { placeholder: "Invalid (data-invalid)", "data-invalid": true })] })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "With label" }), _jsxs("div", { className: "flex flex-col gap-2", children: [_jsx(Label, { htmlFor: "input-gallery", children: "Email" }), _jsx(Input, { id: "input-gallery", type: "email", placeholder: "you@example.com" })] })] })] })),
28
+ };
29
+ export const WithField = {
30
+ name: 'With Field (validation)',
31
+ parameters: { layout: 'padded' },
32
+ render: () => (_jsxs("div", { className: "flex w-full max-w-sm flex-col gap-6", children: [_jsxs(Field.Root, { name: "email", invalid: true, children: [_jsx(Field.Label, { children: "Email" }), _jsx(Input, { placeholder: "you@example.com" }), _jsx(Field.Error, { children: "Enter a valid email address." })] }), _jsxs(Field.Root, { name: "name", disabled: true, children: [_jsx(Field.Label, { children: "Display name" }), _jsx(Input, { placeholder: "Disabled field" })] })] })),
33
+ };
@@ -0,0 +1,3 @@
1
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupAddonAlignKeys, inputGroupButtonSizeKeys, } from './input-group';
2
+ export type { InputGroupProps, InputGroupAddonProps, InputGroupButtonProps, InputGroupTextProps, InputGroupInputProps, InputGroupTextareaProps, } from './input-group';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/input-group/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,GAC3B,MAAM,eAAe,CAAC;AACvB,YAAY,EACR,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GAC1B,MAAM,eAAe,CAAC"}
@@ -0,0 +1 @@
1
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupAddonAlignKeys, inputGroupButtonSizeKeys, } from './input-group';
@@ -0,0 +1,44 @@
1
+ import * as React from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ import { Button } from '../button';
4
+ import type { InputProps } from '../input';
5
+ import type { TextareaProps } from '../textarea';
6
+ /** Props for `InputGroup`. */
7
+ export type InputGroupProps = React.ComponentProps<'div'>;
8
+ declare const inputGroupAddonVariants: (props?: ({
9
+ align?: "inline-end" | "inline-start" | "block-start" | "block-end" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
+ export declare const inputGroupAddonAlignKeys: readonly ["inline-start", "inline-end", "block-start", "block-end"];
12
+ /** Props for `InputGroupAddon`. */
13
+ export type InputGroupAddonProps = React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>;
14
+ declare const inputGroupButtonVariants: (props?: ({
15
+ size?: "sm" | "xs" | "icon-xs" | "icon-sm" | null | undefined;
16
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
17
+ export declare const inputGroupButtonSizeKeys: readonly ["xs", "sm", "icon-xs", "icon-sm"];
18
+ /** Props for `InputGroupButton` (ghost button sized for use inside a group). */
19
+ export type InputGroupButtonProps = Omit<React.ComponentProps<typeof Button>, 'size' | 'type'> & VariantProps<typeof inputGroupButtonVariants> & {
20
+ type?: 'button' | 'submit' | 'reset';
21
+ };
22
+ /** Props for `InputGroupText`. */
23
+ export type InputGroupTextProps = React.ComponentProps<'span'>;
24
+ /** Props for `InputGroupInput`. Same contract as `Input`, including `size`. */
25
+ export type InputGroupInputProps = InputProps;
26
+ /** Props for `InputGroupTextarea`. Same contract as `Textarea`. */
27
+ export type InputGroupTextareaProps = TextareaProps;
28
+ /**
29
+ * Wraps a control and addons in a single bordered, focus-styled shell. Set `data-disabled` on the root when the field is disabled.
30
+ */
31
+ declare function InputGroup({ className, ...props }: InputGroupProps): import("react/jsx-runtime").JSX.Element;
32
+ /**
33
+ * Static prefix or suffix (text, `Kbd`, icon, or `InputGroupButton`). Clicking the addon focuses the nested input unless the click target is a button.
34
+ */
35
+ declare function InputGroupAddon({ className, align, ...props }: InputGroupAddonProps): import("react/jsx-runtime").JSX.Element;
36
+ declare function InputGroupButton({ className, type, variant, size, ...props }: InputGroupButtonProps): import("react/jsx-runtime").JSX.Element;
37
+ /** Muted inline label text inside an addon. */
38
+ declare function InputGroupText({ className, ...props }: InputGroupTextProps): import("react/jsx-runtime").JSX.Element;
39
+ /** Single-line control that shares the group border and focus ring. */
40
+ declare function InputGroupInput({ className, ...props }: InputGroupInputProps): import("react/jsx-runtime").JSX.Element;
41
+ /** Multi-line control that shares the group border and focus ring. */
42
+ declare function InputGroupTextarea({ className, ...props }: InputGroupTextareaProps): import("react/jsx-runtime").JSX.Element;
43
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, inputGroupAddonVariants, inputGroupButtonVariants, };
44
+ //# sourceMappingURL=input-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-group.d.ts","sourceRoot":"","sources":["../../../src/components/input-group/input-group.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,8BAA8B;AAC9B,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAE1D,QAAA,MAAM,uBAAuB;;8EAe5B,CAAC;AAEF,eAAO,MAAM,wBAAwB,qEAAsE,CAAC;AAE5G,mCAAmC;AACnC,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9G,QAAA,MAAM,wBAAwB;;8EAY5B,CAAC;AAEH,eAAO,MAAM,wBAAwB,6CAA8C,CAAC;AAEpF,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,GAC1F,YAAY,CAAC,OAAO,wBAAwB,CAAC,GAAG;IAC5C,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CACxC,CAAC;AAEN,kCAAkC;AAClC,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAE/D,+EAA+E;AAC/E,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC;AAE9C,mEAAmE;AACnE,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAEpD;;GAEG;AACH,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAY3D;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,KAAsB,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAkB7F;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAe,EAAE,OAAiB,EAAE,IAAW,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,2CAExH;AAED,+CAA+C;AAC/C,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,2CAOnE;AAED,uEAAuE;AACvE,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAWrE;AAED,sEAAsE;AACtE,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,2CAW3E;AAED,OAAO,EACH,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,GAC3B,CAAC"}
@@ -0,0 +1,72 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { cva } from 'class-variance-authority';
5
+ import { cn } from '../../lib/utils';
6
+ import { Button } from '../button';
7
+ import { Input } from '../input';
8
+ import { Textarea } from '../textarea';
9
+ const inputGroupAddonVariants = cva("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4", {
10
+ variants: {
11
+ align: {
12
+ 'inline-start': 'order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]',
13
+ 'inline-end': 'order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]',
14
+ 'block-start': 'order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2',
15
+ 'block-end': 'order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2',
16
+ },
17
+ },
18
+ defaultVariants: {
19
+ align: 'inline-start',
20
+ },
21
+ });
22
+ export const inputGroupAddonAlignKeys = ['inline-start', 'inline-end', 'block-start', 'block-end'];
23
+ const inputGroupButtonVariants = cva('flex items-center gap-2 text-sm shadow-none', {
24
+ variants: {
25
+ size: {
26
+ xs: "h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5",
27
+ sm: '',
28
+ 'icon-xs': 'size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0',
29
+ 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',
30
+ },
31
+ },
32
+ defaultVariants: {
33
+ size: 'xs',
34
+ },
35
+ });
36
+ export const inputGroupButtonSizeKeys = ['xs', 'sm', 'icon-xs', 'icon-sm'];
37
+ /**
38
+ * Wraps a control and addons in a single bordered, focus-styled shell. Set `data-disabled` on the root when the field is disabled.
39
+ */
40
+ function InputGroup({ className, ...props }) {
41
+ return (_jsx("div", { "data-slot": "input-group", role: "group", className: cn('group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5', className), ...props }));
42
+ }
43
+ /**
44
+ * Static prefix or suffix (text, `Kbd`, icon, or `InputGroupButton`). Clicking the addon focuses the nested input unless the click target is a button.
45
+ */
46
+ function InputGroupAddon({ className, align = 'inline-start', ...props }) {
47
+ return (
48
+ // Click-to-focus the control (excluding nested buttons); not a standalone interactive widget.
49
+ // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions
50
+ _jsx("div", { role: "group", "data-slot": "input-group-addon", "data-align": align, className: cn(inputGroupAddonVariants({ align }), className), onClick: (e) => {
51
+ if (e.target.closest('button')) {
52
+ return;
53
+ }
54
+ e.currentTarget.parentElement?.querySelector('input, textarea')?.focus();
55
+ }, ...props }));
56
+ }
57
+ function InputGroupButton({ className, type = 'button', variant = 'ghost', size = 'xs', ...props }) {
58
+ return _jsx(Button, { type: type, "data-size": size, variant: variant, className: cn(inputGroupButtonVariants({ size }), className), ...props });
59
+ }
60
+ /** Muted inline label text inside an addon. */
61
+ function InputGroupText({ className, ...props }) {
62
+ return (_jsx("span", { className: cn("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className), ...props }));
63
+ }
64
+ /** Single-line control that shares the group border and focus ring. */
65
+ function InputGroupInput({ className, ...props }) {
66
+ return (_jsx(Input, { "data-slot": "input-group-control", className: cn('flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent', className), ...props }));
67
+ }
68
+ /** Multi-line control that shares the group border and focus ring. */
69
+ function InputGroupTextarea({ className, ...props }) {
70
+ return (_jsx(Textarea, { "data-slot": "input-group-control", className: cn('flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent', className), ...props }));
71
+ }
72
+ export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InputGroupInput, InputGroupTextarea, inputGroupAddonVariants, inputGroupButtonVariants, };
@@ -0,0 +1,18 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { InputGroup } from '.';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof InputGroup;
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 WithTrailingButton: Story;
15
+ export declare const WithKbd: Story;
16
+ export declare const Textarea: Story;
17
+ export declare const Gallery: Story;
18
+ //# sourceMappingURL=input-group.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-group.stories.d.ts","sourceRoot":"","sources":["../../../src/components/input-group/input-group.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,EAAE,UAAU,EAA0F,MAAM,GAAG,CAAC;AAEvH,QAAA,MAAM,IAAI;;;;;;;CAOyB,CAAC;AAEpC,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAWrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAahC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAYrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAWtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAmCrB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Search } from 'lucide-react';
3
+ import { Kbd } from '../kbd';
4
+ import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from '.';
5
+ const meta = {
6
+ title: 'UI/InputGroup',
7
+ component: InputGroup,
8
+ tags: ['autodocs'],
9
+ parameters: {
10
+ layout: 'centered',
11
+ },
12
+ };
13
+ export default meta;
14
+ export const Default = {
15
+ render: () => (_jsx("div", { className: "w-80", children: _jsxs(InputGroup, { children: [_jsx(InputGroupAddon, { children: _jsx(InputGroupText, { children: "https://" }) }), _jsx(InputGroupInput, { placeholder: "example.com" })] }) })),
16
+ };
17
+ export const WithTrailingButton = {
18
+ render: () => (_jsx("div", { className: "w-80", children: _jsxs(InputGroup, { children: [_jsx(InputGroupInput, { placeholder: "Search\u2026" }), _jsx(InputGroupAddon, { align: "inline-end", children: _jsx(InputGroupButton, { type: "button", "aria-label": "Search", children: _jsx(Search, { className: "size-4" }) }) })] }) })),
19
+ };
20
+ export const WithKbd = {
21
+ render: () => (_jsx("div", { className: "w-80", children: _jsxs(InputGroup, { children: [_jsx(InputGroupInput, { placeholder: "Command\u2026" }), _jsxs(InputGroupAddon, { align: "inline-end", children: [_jsx(Kbd, { children: "\u2318" }), _jsx(Kbd, { children: "K" })] })] }) })),
22
+ };
23
+ export const Textarea = {
24
+ render: () => (_jsx("div", { className: "w-80", children: _jsxs(InputGroup, { children: [_jsx(InputGroupAddon, { align: "block-start", children: _jsx(InputGroupText, { children: "Description" }) }), _jsx(InputGroupTextarea, { placeholder: "Details\u2026", rows: 3 })] }) })),
25
+ };
26
+ export const Gallery = {
27
+ parameters: { layout: 'padded' },
28
+ render: () => (_jsxs("div", { className: "flex max-w-md flex-col gap-8", children: [_jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "URL prefix" }), _jsxs(InputGroup, { children: [_jsx(InputGroupAddon, { children: _jsx(InputGroupText, { children: "https://" }) }), _jsx(InputGroupInput, { placeholder: "yoursite.com" })] })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "Trailing action" }), _jsxs(InputGroup, { children: [_jsx(InputGroupInput, { placeholder: "Search\u2026" }), _jsx(InputGroupAddon, { align: "inline-end", children: _jsx(InputGroupButton, { type: "button", "aria-label": "Search", children: _jsx(Search, { className: "size-4" }) }) })] })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "Multiline" }), _jsxs(InputGroup, { children: [_jsx(InputGroupAddon, { align: "block-start", children: _jsx(InputGroupText, { children: "Comment" }) }), _jsx(InputGroupTextarea, { rows: 3, placeholder: "Write here\u2026" })] })] })] })),
29
+ };
@@ -0,0 +1,3 @@
1
+ export { Item, ItemMedia, ItemContent, ItemActions, ItemGroup, ItemSeparator, ItemTitle, ItemDescription, ItemHeader, ItemFooter, itemVariants, itemMediaVariants, itemVariantKeys, itemSizeKeys, itemMediaVariantKeys, } from './item';
2
+ export type { ItemProps, ItemGroupProps, ItemSeparatorProps, ItemMediaProps, ItemContentProps, ItemTitleProps, ItemDescriptionProps, ItemActionsProps, ItemHeaderProps, ItemFooterProps, } from './item';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/item/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,IAAI,EACJ,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,oBAAoB,GACvB,MAAM,QAAQ,CAAC;AAChB,YAAY,EACR,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,GAClB,MAAM,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ export { Item, ItemMedia, ItemContent, ItemActions, ItemGroup, ItemSeparator, ItemTitle, ItemDescription, ItemHeader, ItemFooter, itemVariants, itemMediaVariants, itemVariantKeys, itemSizeKeys, itemMediaVariantKeys, } from './item';
@@ -0,0 +1,60 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import { type VariantProps } from 'class-variance-authority';
4
+ import { Separator } from '../separator';
5
+ /** Props for `ItemGroup`. */
6
+ export type ItemGroupProps = React.ComponentProps<'div'>;
7
+ /** Props for `ItemSeparator`. */
8
+ export type ItemSeparatorProps = React.ComponentProps<typeof Separator>;
9
+ declare const itemVariants: (props?: ({
10
+ variant?: "default" | "outline" | "muted" | null | undefined;
11
+ size?: "default" | "sm" | "xs" | null | undefined;
12
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
+ export declare const itemVariantKeys: readonly ["default", "outline", "muted"];
14
+ export declare const itemSizeKeys: readonly ["default", "sm", "xs"];
15
+ /**
16
+ * Props for `Item`. Supports Base UI `render` for polymorphic roots (e.g. `render={<a href="..." />}`).
17
+ */
18
+ export type ItemProps = useRender.ComponentProps<'div'> & VariantProps<typeof itemVariants>;
19
+ declare const itemMediaVariants: (props?: ({
20
+ variant?: "default" | "image" | "icon" | null | undefined;
21
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
22
+ export declare const itemMediaVariantKeys: readonly ["default", "icon", "image"];
23
+ /** Props for `ItemMedia`. */
24
+ export type ItemMediaProps = React.ComponentProps<'div'> & VariantProps<typeof itemMediaVariants>;
25
+ /** Props for `ItemContent`. */
26
+ export type ItemContentProps = React.ComponentProps<'div'>;
27
+ /** Props for `ItemTitle`. */
28
+ export type ItemTitleProps = React.ComponentProps<'div'>;
29
+ /** Props for `ItemDescription`. */
30
+ export type ItemDescriptionProps = React.ComponentProps<'p'>;
31
+ /** Props for `ItemActions`. */
32
+ export type ItemActionsProps = React.ComponentProps<'div'>;
33
+ /** Props for `ItemHeader`. */
34
+ export type ItemHeaderProps = React.ComponentProps<'div'>;
35
+ /** Props for `ItemFooter`. */
36
+ export type ItemFooterProps = React.ComponentProps<'div'>;
37
+ /**
38
+ * List container with spacing tuned for nested item sizes.
39
+ */
40
+ declare function ItemGroup({ className, ...props }: ItemGroupProps): import("react/jsx-runtime").JSX.Element;
41
+ /** Horizontal rule between items in a group. */
42
+ declare function ItemSeparator({ className, ...props }: ItemSeparatorProps): import("react/jsx-runtime").JSX.Element;
43
+ /**
44
+ * Row or block for lists, menus, and settings — icon or image, title, description, and trailing actions.
45
+ */
46
+ declare function Item({ className, variant, size, render, ...props }: ItemProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
47
+ /** Leading visual: plain, icon-sized SVG, or image thumbnail. */
48
+ declare function ItemMedia({ className, variant, ...props }: ItemMediaProps): import("react/jsx-runtime").JSX.Element;
49
+ /** Primary column for title and description. */
50
+ declare function ItemContent({ className, ...props }: ItemContentProps): import("react/jsx-runtime").JSX.Element;
51
+ declare function ItemTitle({ className, ...props }: ItemTitleProps): import("react/jsx-runtime").JSX.Element;
52
+ declare function ItemDescription({ className, ...props }: ItemDescriptionProps): import("react/jsx-runtime").JSX.Element;
53
+ /** Trailing controls (buttons, switches, metadata). */
54
+ declare function ItemActions({ className, ...props }: ItemActionsProps): import("react/jsx-runtime").JSX.Element;
55
+ /** Full-width row above the main media + content row. */
56
+ declare function ItemHeader({ className, ...props }: ItemHeaderProps): import("react/jsx-runtime").JSX.Element;
57
+ /** Full-width row below the main row. */
58
+ declare function ItemFooter({ className, ...props }: ItemFooterProps): import("react/jsx-runtime").JSX.Element;
59
+ export { Item, ItemMedia, ItemContent, ItemActions, ItemGroup, ItemSeparator, ItemTitle, ItemDescription, ItemHeader, ItemFooter, itemVariants, itemMediaVariants, };
60
+ //# sourceMappingURL=item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../src/components/item/item.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAEzD,iCAAiC;AACjC,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAExE,QAAA,MAAM,YAAY;;;8EAoBjB,CAAC;AAEF,eAAO,MAAM,eAAe,0CAA2C,CAAC;AACxE,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AAE5F,QAAA,MAAM,iBAAiB;;8EActB,CAAC;AAEF,eAAO,MAAM,oBAAoB,uCAAwC,CAAC;AAE1E,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElG,+BAA+B;AAC/B,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAE3D,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAEzD,mCAAmC;AACnC,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAE7D,+BAA+B;AAC/B,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAE3D,8BAA8B;AAC9B,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAE1D,8BAA8B;AAC9B,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAE1D;;GAEG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CASzD;AAED,gDAAgD;AAChD,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,2CAEjE;AAED;;GAEG;AACH,iBAAS,IAAI,CAAC,EAAE,SAAS,EAAE,OAAmB,EAAE,IAAgB,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,0EAgB9F;AAED,iEAAiE;AACjE,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,OAAmB,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAE9E;AAED,gDAAgD;AAChD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAQ7D;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAWzD;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,2CAWrE;AAED,uDAAuD;AACvD,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAE7D;AAED,yDAAyD;AACzD,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAE3D;AAED,yCAAyC;AACzC,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAE3D;AAED,OAAO,EACH,IAAI,EACJ,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,iBAAiB,GACpB,CAAC"}
@@ -0,0 +1,95 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { mergeProps } from '@base-ui/react/merge-props';
5
+ import { useRender } from '@base-ui/react/use-render';
6
+ import { cva } from 'class-variance-authority';
7
+ import { cn } from '../../lib/utils';
8
+ import { Separator } from '../separator';
9
+ const itemVariants = cva('group/item flex w-full flex-wrap items-center rounded-lg border text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-muted', {
10
+ variants: {
11
+ variant: {
12
+ default: 'border-transparent',
13
+ outline: 'border-border',
14
+ muted: 'border-transparent bg-muted/50',
15
+ },
16
+ size: {
17
+ default: 'gap-2.5 px-3 py-2.5',
18
+ sm: 'gap-2.5 px-3 py-2.5',
19
+ xs: 'gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0',
20
+ },
21
+ },
22
+ defaultVariants: {
23
+ variant: 'default',
24
+ size: 'default',
25
+ },
26
+ });
27
+ export const itemVariantKeys = ['default', 'outline', 'muted'];
28
+ export const itemSizeKeys = ['default', 'sm', 'xs'];
29
+ const itemMediaVariants = cva('flex shrink-0 items-center justify-center gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start [&_svg]:pointer-events-none', {
30
+ variants: {
31
+ variant: {
32
+ default: 'bg-transparent',
33
+ icon: "[&_svg:not([class*='size-'])]:size-4",
34
+ image: 'size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover',
35
+ },
36
+ },
37
+ defaultVariants: {
38
+ variant: 'default',
39
+ },
40
+ });
41
+ export const itemMediaVariantKeys = ['default', 'icon', 'image'];
42
+ /**
43
+ * List container with spacing tuned for nested item sizes.
44
+ */
45
+ function ItemGroup({ className, ...props }) {
46
+ return (_jsx("div", { role: "list", "data-slot": "item-group", className: cn('group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2', className), ...props }));
47
+ }
48
+ /** Horizontal rule between items in a group. */
49
+ function ItemSeparator({ className, ...props }) {
50
+ return _jsx(Separator, { "data-slot": "item-separator", orientation: "horizontal", className: cn('my-2', className), ...props });
51
+ }
52
+ /**
53
+ * Row or block for lists, menus, and settings — icon or image, title, description, and trailing actions.
54
+ */
55
+ function Item({ className, variant = 'default', size = 'default', render, ...props }) {
56
+ return useRender({
57
+ defaultTagName: 'div',
58
+ props: mergeProps({
59
+ className: cn(itemVariants({ variant, size, className })),
60
+ }, props),
61
+ render,
62
+ state: {
63
+ slot: 'item',
64
+ variant,
65
+ size,
66
+ },
67
+ });
68
+ }
69
+ /** Leading visual: plain, icon-sized SVG, or image thumbnail. */
70
+ function ItemMedia({ className, variant = 'default', ...props }) {
71
+ return _jsx("div", { "data-slot": "item-media", "data-variant": variant, className: cn(itemMediaVariants({ variant, className })), ...props });
72
+ }
73
+ /** Primary column for title and description. */
74
+ function ItemContent({ className, ...props }) {
75
+ return (_jsx("div", { "data-slot": "item-content", className: cn('flex flex-1 flex-col gap-0.5 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none', className), ...props }));
76
+ }
77
+ function ItemTitle({ className, ...props }) {
78
+ return (_jsx("div", { "data-slot": "item-title", className: cn('line-clamp-1 flex w-fit items-center gap-2 text-sm leading-snug font-medium underline-offset-4 [text-box-edge:cap_alphabetic] [text-box-trim:trim-both]', className), ...props }));
79
+ }
80
+ function ItemDescription({ className, ...props }) {
81
+ return (_jsx("p", { "data-slot": "item-description", className: cn('line-clamp-2 text-left text-sm leading-normal font-normal text-muted-foreground group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary', className), ...props }));
82
+ }
83
+ /** Trailing controls (buttons, switches, metadata). */
84
+ function ItemActions({ className, ...props }) {
85
+ return _jsx("div", { "data-slot": "item-actions", className: cn('flex items-center gap-2', className), ...props });
86
+ }
87
+ /** Full-width row above the main media + content row. */
88
+ function ItemHeader({ className, ...props }) {
89
+ return _jsx("div", { "data-slot": "item-header", className: cn('flex basis-full items-center justify-between gap-2', className), ...props });
90
+ }
91
+ /** Full-width row below the main row. */
92
+ function ItemFooter({ className, ...props }) {
93
+ return _jsx("div", { "data-slot": "item-footer", className: cn('flex basis-full items-center justify-between gap-2', className), ...props });
94
+ }
95
+ export { Item, ItemMedia, ItemContent, ItemActions, ItemGroup, ItemSeparator, ItemTitle, ItemDescription, ItemHeader, ItemFooter, itemVariants, itemMediaVariants, };
@@ -0,0 +1,34 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { Item } from '.';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Item;
6
+ tags: string[];
7
+ parameters: {
8
+ layout: string;
9
+ };
10
+ args: {
11
+ variant: "default";
12
+ size: "default";
13
+ };
14
+ argTypes: {
15
+ variant: {
16
+ control: "select";
17
+ options: readonly ["default", "outline", "muted"];
18
+ };
19
+ size: {
20
+ control: "select";
21
+ options: readonly ["default", "sm", "xs"];
22
+ };
23
+ className: {
24
+ control: false;
25
+ };
26
+ };
27
+ };
28
+ export default meta;
29
+ type Story = StoryObj<typeof meta>;
30
+ export declare const Default: Story;
31
+ export declare const Outline: Story;
32
+ export declare const AsLink: Story;
33
+ export declare const Gallery: Story;
34
+ //# sourceMappingURL=item.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item.stories.d.ts","sourceRoot":"","sources":["../../../src/components/item/item.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EACH,IAAI,EAaP,MAAM,GAAG,CAAC;AAEX,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;CAgBmB,CAAC;AAE9B,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAiBrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAoBrB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAsBpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KA2FrB,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Bell, User } from 'lucide-react';
3
+ import { Button } from '../button';
4
+ import { Switch } from '../switch';
5
+ import { Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, itemMediaVariantKeys, ItemSeparator, itemSizeKeys, ItemTitle, itemVariantKeys, } from '.';
6
+ const meta = {
7
+ title: 'UI/Item',
8
+ component: Item,
9
+ tags: ['autodocs'],
10
+ parameters: {
11
+ layout: 'centered',
12
+ },
13
+ args: {
14
+ variant: 'default',
15
+ size: 'default',
16
+ },
17
+ argTypes: {
18
+ variant: { control: 'select', options: itemVariantKeys },
19
+ size: { control: 'select', options: itemSizeKeys },
20
+ className: { control: false },
21
+ },
22
+ };
23
+ export default meta;
24
+ export const Default = {
25
+ render: (args) => (_jsx("div", { className: "w-full max-w-md", children: _jsxs(Item, { ...args, children: [_jsx(ItemMedia, { variant: "icon", children: _jsx(Bell, {}) }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { children: "Notifications" }), _jsx(ItemDescription, { children: "Email, push, and in-app alerts." })] }), _jsx(ItemActions, { children: _jsx(Switch, { "aria-label": "Enable notifications", defaultChecked: true }) })] }) })),
26
+ };
27
+ export const Outline = {
28
+ args: { variant: 'outline' },
29
+ render: (args) => (_jsx("div", { className: "w-full max-w-md", children: _jsxs(Item, { ...args, children: [_jsx(ItemMedia, { variant: "icon", children: _jsx(User, {}) }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { children: "Profile" }), _jsx(ItemDescription, { children: "Manage your public name and avatar." })] }), _jsx(ItemActions, { children: _jsx(Button, { size: "sm", variant: "outline", children: "Edit" }) })] }) })),
30
+ };
31
+ export const AsLink = {
32
+ render: () => (_jsx("div", { className: "w-full max-w-md", children: _jsxs(Item, { render:
33
+ // Children are merged from `Item` by useRender; ESLint cannot see them on this JSX node.
34
+ // eslint-disable-next-line jsx-a11y/anchor-has-content -- runtime children from Item
35
+ _jsx("a", { href: "https://example.org", className: "cursor-pointer", rel: "noreferrer", target: "_blank" }), children: [_jsx(ItemMedia, { variant: "icon", children: _jsx(Bell, {}) }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { children: "Open settings" }), _jsxs(ItemDescription, { children: ["Entire row is a link when using ", _jsx("code", { className: "rounded bg-muted px-1", children: "render" }), "."] })] })] }) })),
36
+ };
37
+ export const Gallery = {
38
+ parameters: { layout: 'padded' },
39
+ render: () => (_jsxs("div", { className: "flex max-w-lg flex-col gap-10", children: [_jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "Variants" }), _jsx(ItemGroup, { children: itemVariantKeys.map((variant) => (_jsxs(Item, { variant: variant, children: [_jsx(ItemMedia, { variant: "icon", children: _jsx(Bell, {}) }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { className: "capitalize", children: variant }), _jsx(ItemDescription, { children: "Variant preset for list rows." })] })] }, variant))) })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "Sizes" }), _jsx(ItemGroup, { children: itemSizeKeys.map((size) => (_jsxs(Item, { size: size, children: [_jsx(ItemMedia, { variant: "icon", children: _jsx(User, {}) }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { className: "capitalize", children: size }), _jsx(ItemDescription, { children: "Spacing for dense menus or roomy panels." })] })] }, size))) })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "With header & footer" }), _jsxs(Item, { variant: "outline", children: [_jsxs(ItemHeader, { children: [_jsx("span", { className: "text-xs font-medium text-muted-foreground uppercase", children: "Section" }), _jsx(Button, { size: "xs", variant: "ghost", children: "More" })] }), _jsx(ItemMedia, { variant: "icon", children: _jsx(Bell, {}) }), _jsxs(ItemContent, { children: [_jsx(ItemTitle, { children: "Grouped layout" }), _jsx(ItemDescription, { children: "Header and footer span the full width of the item." })] }), _jsx(ItemFooter, { children: _jsx("span", { className: "text-xs text-muted-foreground", children: "Updated today" }) })] })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "Media variants" }), _jsx("div", { className: "flex flex-col gap-2", children: itemMediaVariantKeys.map((mv) => (_jsxs(Item, { children: [_jsx(ItemMedia, { variant: mv, children: mv === 'image' ? _jsx("img", { src: "https://avatars.githubusercontent.com/u/1406596?v=4", alt: "" }) : mv === 'icon' ? _jsx(Bell, {}) : null }), _jsxs(ItemContent, { children: [_jsxs(ItemTitle, { className: "capitalize", children: [mv, " media"] }), _jsx(ItemDescription, { children: "Leading visual treatment." })] })] }, mv))) })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("p", { className: "text-xs font-medium tracking-wide text-muted-foreground uppercase", children: "Separated list" }), _jsxs(ItemGroup, { children: [_jsx(Item, { size: "sm", children: _jsx(ItemContent, { children: _jsx(ItemTitle, { children: "First" }) }) }), _jsx(ItemSeparator, {}), _jsx(Item, { size: "sm", children: _jsx(ItemContent, { children: _jsx(ItemTitle, { children: "Second" }) }) })] })] })] })),
40
+ };
@@ -0,0 +1,3 @@
1
+ export { Kbd, KbdGroup } from './kbd';
2
+ export type { KbdProps, KbdGroupProps } from './kbd';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/kbd/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1 @@
1
+ export { Kbd, KbdGroup } from './kbd';
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ /** Props for `Kbd`. */
3
+ export type KbdProps = React.ComponentProps<'kbd'>;
4
+ /** Props for `KbdGroup`. */
5
+ export type KbdGroupProps = React.ComponentProps<'div'>;
6
+ /**
7
+ * A single keyboard key or shortcut hint. Renders a semantic `<kbd>` element.
8
+ */
9
+ declare function Kbd({ className, ...props }: KbdProps): import("react/jsx-runtime").JSX.Element;
10
+ /**
11
+ * Wraps multiple `Kbd` elements with consistent spacing (e.g. chord shortcuts).
12
+ */
13
+ declare function KbdGroup({ className, ...props }: KbdGroupProps): import("react/jsx-runtime").JSX.Element;
14
+ export { Kbd, KbdGroup };
15
+ //# sourceMappingURL=kbd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kbd.d.ts","sourceRoot":"","sources":["../../../src/components/kbd/kbd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,uBAAuB;AACvB,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAEnD,4BAA4B;AAC5B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AAExD;;GAEG;AACH,iBAAS,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,QAAQ,2CAW7C;AAED;;GAEG;AACH,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAEvD;AAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { cn } from '../../lib/utils';
4
+ /**
5
+ * A single keyboard key or shortcut hint. Renders a semantic `<kbd>` element.
6
+ */
7
+ function Kbd({ className, ...props }) {
8
+ return (_jsx("kbd", { "data-slot": "kbd", className: cn("pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm bg-muted px-1 font-sans text-xs font-medium text-muted-foreground select-none in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 [&_svg:not([class*='size-'])]:size-3", className), ...props }));
9
+ }
10
+ /**
11
+ * Wraps multiple `Kbd` elements with consistent spacing (e.g. chord shortcuts).
12
+ */
13
+ function KbdGroup({ className, ...props }) {
14
+ return _jsx("div", { "data-slot": "kbd-group", className: cn('inline-flex items-center gap-1', className), ...props });
15
+ }
16
+ export { Kbd, KbdGroup };
@@ -0,0 +1,17 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { Kbd } from '.';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Kbd;
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 Chord: Story;
15
+ export declare const WithIcon: Story;
16
+ export declare const Gallery: Story;
17
+ //# sourceMappingURL=kbd.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kbd.stories.d.ts","sourceRoot":"","sources":["../../../src/components/kbd/kbd.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,GAAG,EAAY,MAAM,GAAG,CAAC;AAElC,QAAA,MAAM,IAAI;;;;;;;CAOkB,CAAC;AAE7B,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAOnB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAUtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAkCrB,CAAC"}