@databricks/appkit-ui 0.3.0 → 0.4.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 (471) hide show
  1. package/CLAUDE.md +121 -1231
  2. package/NOTICE.md +1 -1
  3. package/bin/appkit.js +3 -0
  4. package/dist/cli/commands/docs.js +47 -0
  5. package/dist/cli/commands/docs.js.map +1 -0
  6. package/dist/cli/commands/generate-types.js +38 -0
  7. package/dist/cli/commands/generate-types.js.map +1 -0
  8. package/dist/cli/commands/lint.js +104 -0
  9. package/dist/cli/commands/lint.js.map +1 -0
  10. package/dist/cli/commands/setup.js +121 -0
  11. package/dist/cli/commands/setup.js.map +1 -0
  12. package/dist/cli/index.d.ts +1 -0
  13. package/dist/cli/index.js +24 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/js/arrow/arrow-client.d.ts +48 -0
  16. package/dist/js/arrow/arrow-client.d.ts.map +1 -1
  17. package/dist/js/arrow/arrow-client.js +51 -3
  18. package/dist/js/arrow/arrow-client.js.map +1 -1
  19. package/dist/react/charts/area/index.d.ts +6 -17
  20. package/dist/react/charts/area/index.d.ts.map +1 -1
  21. package/dist/react/charts/area/index.js +5 -17
  22. package/dist/react/charts/area/index.js.map +1 -1
  23. package/dist/react/charts/bar/index.d.ts +5 -26
  24. package/dist/react/charts/bar/index.d.ts.map +1 -1
  25. package/dist/react/charts/bar/index.js +4 -26
  26. package/dist/react/charts/bar/index.js.map +1 -1
  27. package/dist/react/charts/heatmap/index.d.ts +7 -22
  28. package/dist/react/charts/heatmap/index.d.ts.map +1 -1
  29. package/dist/react/charts/heatmap/index.js +6 -22
  30. package/dist/react/charts/heatmap/index.js.map +1 -1
  31. package/dist/react/charts/line/index.d.ts +6 -18
  32. package/dist/react/charts/line/index.d.ts.map +1 -1
  33. package/dist/react/charts/line/index.js +5 -18
  34. package/dist/react/charts/line/index.js.map +1 -1
  35. package/dist/react/charts/normalize.js +16 -16
  36. package/dist/react/charts/normalize.js.map +1 -1
  37. package/dist/react/charts/pie/index.d.ts +10 -32
  38. package/dist/react/charts/pie/index.d.ts.map +1 -1
  39. package/dist/react/charts/pie/index.js +9 -32
  40. package/dist/react/charts/pie/index.js.map +1 -1
  41. package/dist/react/charts/radar/index.d.ts +6 -16
  42. package/dist/react/charts/radar/index.d.ts.map +1 -1
  43. package/dist/react/charts/radar/index.js +5 -16
  44. package/dist/react/charts/radar/index.js.map +1 -1
  45. package/dist/react/charts/scatter/index.d.ts +6 -16
  46. package/dist/react/charts/scatter/index.d.ts.map +1 -1
  47. package/dist/react/charts/scatter/index.js +5 -16
  48. package/dist/react/charts/scatter/index.js.map +1 -1
  49. package/dist/react/hooks/use-analytics-query.js +12 -12
  50. package/dist/react/hooks/use-analytics-query.js.map +1 -1
  51. package/dist/react/table/data-table.d.ts +4 -1
  52. package/dist/react/table/data-table.d.ts.map +1 -1
  53. package/dist/react/table/data-table.js +4 -1
  54. package/dist/react/table/data-table.js.map +1 -1
  55. package/dist/react/table/table-wrapper.js +3 -3
  56. package/dist/react/table/table-wrapper.js.map +1 -1
  57. package/dist/react/ui/accordion.d.ts +4 -0
  58. package/dist/react/ui/accordion.d.ts.map +1 -1
  59. package/dist/react/ui/accordion.js +4 -0
  60. package/dist/react/ui/accordion.js.map +1 -1
  61. package/dist/react/ui/alert-dialog.d.ts +11 -0
  62. package/dist/react/ui/alert-dialog.d.ts.map +1 -1
  63. package/dist/react/ui/alert-dialog.js +11 -0
  64. package/dist/react/ui/alert-dialog.js.map +1 -1
  65. package/dist/react/ui/alert.d.ts +3 -0
  66. package/dist/react/ui/alert.d.ts.map +1 -1
  67. package/dist/react/ui/alert.js +3 -0
  68. package/dist/react/ui/alert.js.map +1 -1
  69. package/dist/react/ui/aspect-ratio.d.ts +1 -0
  70. package/dist/react/ui/aspect-ratio.d.ts.map +1 -1
  71. package/dist/react/ui/aspect-ratio.js +1 -0
  72. package/dist/react/ui/aspect-ratio.js.map +1 -1
  73. package/dist/react/ui/avatar.d.ts +3 -0
  74. package/dist/react/ui/avatar.d.ts.map +1 -1
  75. package/dist/react/ui/avatar.js +3 -0
  76. package/dist/react/ui/avatar.js.map +1 -1
  77. package/dist/react/ui/badge.d.ts +1 -0
  78. package/dist/react/ui/badge.d.ts.map +1 -1
  79. package/dist/react/ui/badge.js +1 -0
  80. package/dist/react/ui/badge.js.map +1 -1
  81. package/dist/react/ui/breadcrumb.d.ts +7 -0
  82. package/dist/react/ui/breadcrumb.d.ts.map +1 -1
  83. package/dist/react/ui/breadcrumb.js +7 -0
  84. package/dist/react/ui/breadcrumb.js.map +1 -1
  85. package/dist/react/ui/button-group.d.ts +3 -0
  86. package/dist/react/ui/button-group.d.ts.map +1 -1
  87. package/dist/react/ui/button-group.js +3 -0
  88. package/dist/react/ui/button-group.js.map +1 -1
  89. package/dist/react/ui/button.d.ts +1 -0
  90. package/dist/react/ui/button.d.ts.map +1 -1
  91. package/dist/react/ui/button.js +1 -0
  92. package/dist/react/ui/button.js.map +1 -1
  93. package/dist/react/ui/calendar.d.ts +2 -0
  94. package/dist/react/ui/calendar.d.ts.map +1 -1
  95. package/dist/react/ui/calendar.js +14 -12
  96. package/dist/react/ui/calendar.js.map +1 -1
  97. package/dist/react/ui/card.d.ts +7 -0
  98. package/dist/react/ui/card.d.ts.map +1 -1
  99. package/dist/react/ui/card.js +7 -0
  100. package/dist/react/ui/card.js.map +1 -1
  101. package/dist/react/ui/carousel.d.ts +5 -0
  102. package/dist/react/ui/carousel.d.ts.map +1 -1
  103. package/dist/react/ui/carousel.js +9 -4
  104. package/dist/react/ui/carousel.js.map +1 -1
  105. package/dist/react/ui/chart.d.ts +1 -0
  106. package/dist/react/ui/chart.d.ts.map +1 -1
  107. package/dist/react/ui/chart.js +2 -1
  108. package/dist/react/ui/chart.js.map +1 -1
  109. package/dist/react/ui/checkbox.d.ts +1 -0
  110. package/dist/react/ui/checkbox.d.ts.map +1 -1
  111. package/dist/react/ui/checkbox.js +1 -0
  112. package/dist/react/ui/checkbox.js.map +1 -1
  113. package/dist/react/ui/collapsible.d.ts +3 -0
  114. package/dist/react/ui/collapsible.d.ts.map +1 -1
  115. package/dist/react/ui/collapsible.js +3 -0
  116. package/dist/react/ui/collapsible.js.map +1 -1
  117. package/dist/react/ui/command.d.ts +9 -0
  118. package/dist/react/ui/command.d.ts.map +1 -1
  119. package/dist/react/ui/command.js +9 -0
  120. package/dist/react/ui/command.js.map +1 -1
  121. package/dist/react/ui/context-menu.d.ts +1 -0
  122. package/dist/react/ui/context-menu.d.ts.map +1 -1
  123. package/dist/react/ui/context-menu.js +1 -0
  124. package/dist/react/ui/context-menu.js.map +1 -1
  125. package/dist/react/ui/dialog.d.ts +10 -0
  126. package/dist/react/ui/dialog.d.ts.map +1 -1
  127. package/dist/react/ui/dialog.js +10 -0
  128. package/dist/react/ui/dialog.js.map +1 -1
  129. package/dist/react/ui/drawer.d.ts +10 -0
  130. package/dist/react/ui/drawer.d.ts.map +1 -1
  131. package/dist/react/ui/drawer.js +10 -0
  132. package/dist/react/ui/drawer.js.map +1 -1
  133. package/dist/react/ui/dropdown-menu.d.ts +1 -0
  134. package/dist/react/ui/dropdown-menu.d.ts.map +1 -1
  135. package/dist/react/ui/dropdown-menu.js +1 -0
  136. package/dist/react/ui/dropdown-menu.js.map +1 -1
  137. package/dist/react/ui/empty.d.ts +1 -0
  138. package/dist/react/ui/empty.d.ts.map +1 -1
  139. package/dist/react/ui/empty.js +1 -0
  140. package/dist/react/ui/empty.js.map +1 -1
  141. package/dist/react/ui/field.d.ts +10 -0
  142. package/dist/react/ui/field.d.ts.map +1 -1
  143. package/dist/react/ui/field.js +10 -0
  144. package/dist/react/ui/field.js.map +1 -1
  145. package/dist/react/ui/form.d.ts +7 -0
  146. package/dist/react/ui/form.d.ts.map +1 -1
  147. package/dist/react/ui/form.js +7 -0
  148. package/dist/react/ui/form.js.map +1 -1
  149. package/dist/react/ui/hover-card.d.ts +1 -0
  150. package/dist/react/ui/hover-card.d.ts.map +1 -1
  151. package/dist/react/ui/hover-card.js +1 -0
  152. package/dist/react/ui/hover-card.js.map +1 -1
  153. package/dist/react/ui/input-group.d.ts +6 -0
  154. package/dist/react/ui/input-group.d.ts.map +1 -1
  155. package/dist/react/ui/input-group.js +6 -0
  156. package/dist/react/ui/input-group.js.map +1 -1
  157. package/dist/react/ui/input-otp.d.ts +4 -0
  158. package/dist/react/ui/input-otp.d.ts.map +1 -1
  159. package/dist/react/ui/input-otp.js +4 -0
  160. package/dist/react/ui/input-otp.js.map +1 -1
  161. package/dist/react/ui/input.d.ts +1 -0
  162. package/dist/react/ui/input.d.ts.map +1 -1
  163. package/dist/react/ui/input.js +1 -0
  164. package/dist/react/ui/input.js.map +1 -1
  165. package/dist/react/ui/item.d.ts +1 -0
  166. package/dist/react/ui/item.d.ts.map +1 -1
  167. package/dist/react/ui/item.js +1 -0
  168. package/dist/react/ui/item.js.map +1 -1
  169. package/dist/react/ui/kbd.d.ts +1 -0
  170. package/dist/react/ui/kbd.d.ts.map +1 -1
  171. package/dist/react/ui/kbd.js +1 -0
  172. package/dist/react/ui/kbd.js.map +1 -1
  173. package/dist/react/ui/label.d.ts +1 -0
  174. package/dist/react/ui/label.d.ts.map +1 -1
  175. package/dist/react/ui/label.js +1 -0
  176. package/dist/react/ui/label.js.map +1 -1
  177. package/dist/react/ui/menubar.d.ts +1 -0
  178. package/dist/react/ui/menubar.d.ts.map +1 -1
  179. package/dist/react/ui/menubar.js +1 -0
  180. package/dist/react/ui/menubar.js.map +1 -1
  181. package/dist/react/ui/navigation-menu.d.ts +8 -0
  182. package/dist/react/ui/navigation-menu.d.ts.map +1 -1
  183. package/dist/react/ui/navigation-menu.js +8 -0
  184. package/dist/react/ui/navigation-menu.js.map +1 -1
  185. package/dist/react/ui/pagination.d.ts +7 -0
  186. package/dist/react/ui/pagination.d.ts.map +1 -1
  187. package/dist/react/ui/pagination.js +7 -0
  188. package/dist/react/ui/pagination.js.map +1 -1
  189. package/dist/react/ui/popover.d.ts +1 -0
  190. package/dist/react/ui/popover.d.ts.map +1 -1
  191. package/dist/react/ui/popover.js +1 -0
  192. package/dist/react/ui/popover.js.map +1 -1
  193. package/dist/react/ui/progress.d.ts +1 -0
  194. package/dist/react/ui/progress.d.ts.map +1 -1
  195. package/dist/react/ui/progress.js +1 -0
  196. package/dist/react/ui/progress.js.map +1 -1
  197. package/dist/react/ui/radio-group.d.ts +1 -0
  198. package/dist/react/ui/radio-group.d.ts.map +1 -1
  199. package/dist/react/ui/radio-group.js +1 -0
  200. package/dist/react/ui/radio-group.js.map +1 -1
  201. package/dist/react/ui/resizable.d.ts +3 -0
  202. package/dist/react/ui/resizable.d.ts.map +1 -1
  203. package/dist/react/ui/resizable.js +3 -0
  204. package/dist/react/ui/resizable.js.map +1 -1
  205. package/dist/react/ui/scroll-area.d.ts +2 -0
  206. package/dist/react/ui/scroll-area.d.ts.map +1 -1
  207. package/dist/react/ui/scroll-area.js +2 -0
  208. package/dist/react/ui/scroll-area.js.map +1 -1
  209. package/dist/react/ui/select.d.ts +12 -0
  210. package/dist/react/ui/select.d.ts.map +1 -1
  211. package/dist/react/ui/select.js +12 -0
  212. package/dist/react/ui/select.js.map +1 -1
  213. package/dist/react/ui/separator.d.ts +1 -0
  214. package/dist/react/ui/separator.d.ts.map +1 -1
  215. package/dist/react/ui/separator.js +1 -0
  216. package/dist/react/ui/separator.js.map +1 -1
  217. package/dist/react/ui/sheet.d.ts +8 -0
  218. package/dist/react/ui/sheet.d.ts.map +1 -1
  219. package/dist/react/ui/sheet.js +10 -0
  220. package/dist/react/ui/sheet.js.map +1 -1
  221. package/dist/react/ui/sidebar.d.ts +22 -0
  222. package/dist/react/ui/sidebar.d.ts.map +1 -1
  223. package/dist/react/ui/sidebar.js +23 -1
  224. package/dist/react/ui/sidebar.js.map +1 -1
  225. package/dist/react/ui/skeleton.d.ts +1 -0
  226. package/dist/react/ui/skeleton.d.ts.map +1 -1
  227. package/dist/react/ui/skeleton.js +1 -0
  228. package/dist/react/ui/skeleton.js.map +1 -1
  229. package/dist/react/ui/slider.d.ts +1 -0
  230. package/dist/react/ui/slider.d.ts.map +1 -1
  231. package/dist/react/ui/slider.js +1 -0
  232. package/dist/react/ui/slider.js.map +1 -1
  233. package/dist/react/ui/sonner.d.ts +1 -0
  234. package/dist/react/ui/sonner.d.ts.map +1 -1
  235. package/dist/react/ui/sonner.js +1 -0
  236. package/dist/react/ui/sonner.js.map +1 -1
  237. package/dist/react/ui/spinner.d.ts +1 -0
  238. package/dist/react/ui/spinner.d.ts.map +1 -1
  239. package/dist/react/ui/spinner.js +1 -0
  240. package/dist/react/ui/spinner.js.map +1 -1
  241. package/dist/react/ui/switch.d.ts +1 -0
  242. package/dist/react/ui/switch.d.ts.map +1 -1
  243. package/dist/react/ui/switch.js +1 -0
  244. package/dist/react/ui/switch.js.map +1 -1
  245. package/dist/react/ui/table.d.ts +1 -0
  246. package/dist/react/ui/table.d.ts.map +1 -1
  247. package/dist/react/ui/table.js +1 -0
  248. package/dist/react/ui/table.js.map +1 -1
  249. package/dist/react/ui/tabs.d.ts +4 -0
  250. package/dist/react/ui/tabs.d.ts.map +1 -1
  251. package/dist/react/ui/tabs.js +4 -0
  252. package/dist/react/ui/tabs.js.map +1 -1
  253. package/dist/react/ui/textarea.d.ts +1 -0
  254. package/dist/react/ui/textarea.d.ts.map +1 -1
  255. package/dist/react/ui/textarea.js +1 -0
  256. package/dist/react/ui/textarea.js.map +1 -1
  257. package/dist/react/ui/toggle-group.d.ts +1 -0
  258. package/dist/react/ui/toggle-group.d.ts.map +1 -1
  259. package/dist/react/ui/toggle-group.js +1 -0
  260. package/dist/react/ui/toggle-group.js.map +1 -1
  261. package/dist/react/ui/toggle.d.ts +1 -0
  262. package/dist/react/ui/toggle.d.ts.map +1 -1
  263. package/dist/react/ui/toggle.js +1 -0
  264. package/dist/react/ui/toggle.js.map +1 -1
  265. package/dist/react/ui/tooltip.d.ts +2 -0
  266. package/dist/react/ui/tooltip.d.ts.map +1 -1
  267. package/dist/react/ui/tooltip.js +2 -0
  268. package/dist/react/ui/tooltip.js.map +1 -1
  269. package/docs/docs/api/appkit/Class.AppKitError/index.html +77 -0
  270. package/docs/docs/api/appkit/Class.AppKitError.md +154 -0
  271. package/docs/docs/api/appkit/Class.AuthenticationError/index.html +110 -0
  272. package/docs/docs/api/appkit/Class.AuthenticationError.md +236 -0
  273. package/docs/docs/api/appkit/Class.ConfigurationError/index.html +112 -0
  274. package/docs/docs/api/appkit/Class.ConfigurationError.md +243 -0
  275. package/docs/docs/api/appkit/Class.ConnectionError/index.html +120 -0
  276. package/docs/docs/api/appkit/Class.ConnectionError.md +265 -0
  277. package/docs/docs/api/appkit/Class.ExecutionError/index.html +116 -0
  278. package/docs/docs/api/appkit/Class.ExecutionError.md +250 -0
  279. package/docs/docs/api/appkit/Class.InitializationError/index.html +104 -0
  280. package/docs/docs/api/appkit/Class.InitializationError.md +222 -0
  281. package/docs/docs/api/appkit/Class.Plugin/index.html +149 -0
  282. package/docs/docs/api/appkit/Class.Plugin.md +392 -0
  283. package/docs/docs/api/appkit/Class.ServerError/index.html +108 -0
  284. package/docs/docs/api/appkit/Class.ServerError.md +229 -0
  285. package/docs/docs/api/appkit/Class.TunnelError/index.html +108 -0
  286. package/docs/docs/api/appkit/Class.TunnelError.md +231 -0
  287. package/docs/docs/api/appkit/Class.ValidationError/index.html +106 -0
  288. package/docs/docs/api/appkit/Class.ValidationError.md +225 -0
  289. package/docs/docs/api/appkit/Function.appKitTypesPlugin/index.html +24 -0
  290. package/docs/docs/api/appkit/Function.appKitTypesPlugin.md +20 -0
  291. package/docs/docs/api/appkit/Function.createApp/index.html +24 -0
  292. package/docs/docs/api/appkit/Function.createApp.md +31 -0
  293. package/docs/docs/api/appkit/Function.isSQLTypeMarker/index.html +25 -0
  294. package/docs/docs/api/appkit/Function.isSQLTypeMarker.md +32 -0
  295. package/docs/docs/api/appkit/Interface.BasePluginConfig/index.html +28 -0
  296. package/docs/docs/api/appkit/Interface.BasePluginConfig.md +37 -0
  297. package/docs/docs/api/appkit/Interface.CacheConfig/index.html +63 -0
  298. package/docs/docs/api/appkit/Interface.CacheConfig.md +131 -0
  299. package/docs/docs/api/appkit/Interface.ITelemetry/index.html +73 -0
  300. package/docs/docs/api/appkit/Interface.ITelemetry.md +144 -0
  301. package/docs/docs/api/appkit/Interface.StreamExecutionSettings/index.html +26 -0
  302. package/docs/docs/api/appkit/Interface.StreamExecutionSettings.md +30 -0
  303. package/docs/docs/api/appkit/Interface.TelemetryConfig/index.html +32 -0
  304. package/docs/docs/api/appkit/Interface.TelemetryConfig.md +48 -0
  305. package/docs/docs/api/appkit/TypeAlias.IAppRouter/index.html +18 -0
  306. package/docs/docs/api/appkit/TypeAlias.IAppRouter.md +8 -0
  307. package/docs/docs/api/appkit/Variable.sql/index.html +98 -0
  308. package/docs/docs/api/appkit/Variable.sql.md +260 -0
  309. package/docs/docs/api/appkit/index.html +28 -0
  310. package/docs/docs/api/appkit-ui/data/AreaChart/index.html +29 -0
  311. package/docs/docs/api/appkit-ui/data/AreaChart.md +79 -0
  312. package/docs/docs/api/appkit-ui/data/BarChart/index.html +29 -0
  313. package/docs/docs/api/appkit-ui/data/BarChart.md +74 -0
  314. package/docs/docs/api/appkit-ui/data/DataTable/index.html +36 -0
  315. package/docs/docs/api/appkit-ui/data/DataTable.md +69 -0
  316. package/docs/docs/api/appkit-ui/data/DonutChart/index.html +29 -0
  317. package/docs/docs/api/appkit-ui/data/DonutChart.md +72 -0
  318. package/docs/docs/api/appkit-ui/data/HeatmapChart/index.html +35 -0
  319. package/docs/docs/api/appkit-ui/data/HeatmapChart.md +91 -0
  320. package/docs/docs/api/appkit-ui/data/LineChart/index.html +29 -0
  321. package/docs/docs/api/appkit-ui/data/LineChart.md +77 -0
  322. package/docs/docs/api/appkit-ui/data/PieChart/index.html +29 -0
  323. package/docs/docs/api/appkit-ui/data/PieChart.md +72 -0
  324. package/docs/docs/api/appkit-ui/data/RadarChart/index.html +29 -0
  325. package/docs/docs/api/appkit-ui/data/RadarChart.md +74 -0
  326. package/docs/docs/api/appkit-ui/data/ScatterChart/index.html +29 -0
  327. package/docs/docs/api/appkit-ui/data/ScatterChart.md +76 -0
  328. package/docs/docs/api/appkit-ui/index.html +23 -0
  329. package/docs/docs/api/appkit-ui/styling/index.html +74 -0
  330. package/docs/docs/api/appkit-ui/styling.md +81 -0
  331. package/docs/docs/api/appkit-ui/ui/Accordion/index.html +48 -0
  332. package/docs/docs/api/appkit-ui/ui/Accordion.md +139 -0
  333. package/docs/docs/api/appkit-ui/ui/Alert/index.html +41 -0
  334. package/docs/docs/api/appkit-ui/ui/Alert.md +89 -0
  335. package/docs/docs/api/appkit-ui/ui/AlertDialog/index.html +97 -0
  336. package/docs/docs/api/appkit-ui/ui/AlertDialog.md +282 -0
  337. package/docs/docs/api/appkit-ui/ui/AspectRatio/index.html +27 -0
  338. package/docs/docs/api/appkit-ui/ui/AspectRatio.md +46 -0
  339. package/docs/docs/api/appkit-ui/ui/Avatar/index.html +41 -0
  340. package/docs/docs/api/appkit-ui/ui/Avatar.md +90 -0
  341. package/docs/docs/api/appkit-ui/ui/Badge/index.html +27 -0
  342. package/docs/docs/api/appkit-ui/ui/Badge.md +38 -0
  343. package/docs/docs/api/appkit-ui/ui/Breadcrumb/index.html +69 -0
  344. package/docs/docs/api/appkit-ui/ui/Breadcrumb.md +193 -0
  345. package/docs/docs/api/appkit-ui/ui/Button/index.html +27 -0
  346. package/docs/docs/api/appkit-ui/ui/Button.md +39 -0
  347. package/docs/docs/api/appkit-ui/ui/ButtonGroup/index.html +38 -0
  348. package/docs/docs/api/appkit-ui/ui/ButtonGroup.md +68 -0
  349. package/docs/docs/api/appkit-ui/ui/Calendar/index.html +34 -0
  350. package/docs/docs/api/appkit-ui/ui/Calendar.md +154 -0
  351. package/docs/docs/api/appkit-ui/ui/Card/index.html +69 -0
  352. package/docs/docs/api/appkit-ui/ui/Card.md +222 -0
  353. package/docs/docs/api/appkit-ui/ui/Carousel/index.html +55 -0
  354. package/docs/docs/api/appkit-ui/ui/Carousel.md +152 -0
  355. package/docs/docs/api/appkit-ui/ui/ChartContainer/index.html +58 -0
  356. package/docs/docs/api/appkit-ui/ui/ChartContainer.md +343 -0
  357. package/docs/docs/api/appkit-ui/ui/Checkbox/index.html +27 -0
  358. package/docs/docs/api/appkit-ui/ui/Checkbox.md +53 -0
  359. package/docs/docs/api/appkit-ui/ui/Collapsible/index.html +41 -0
  360. package/docs/docs/api/appkit-ui/ui/Collapsible.md +125 -0
  361. package/docs/docs/api/appkit-ui/ui/Command/index.html +83 -0
  362. package/docs/docs/api/appkit-ui/ui/Command.md +287 -0
  363. package/docs/docs/api/appkit-ui/ui/ContextMenu/index.html +111 -0
  364. package/docs/docs/api/appkit-ui/ui/ContextMenu.md +419 -0
  365. package/docs/docs/api/appkit-ui/ui/Dialog/index.html +90 -0
  366. package/docs/docs/api/appkit-ui/ui/Dialog.md +285 -0
  367. package/docs/docs/api/appkit-ui/ui/Drawer/index.html +90 -0
  368. package/docs/docs/api/appkit-ui/ui/Drawer.md +387 -0
  369. package/docs/docs/api/appkit-ui/ui/DropdownMenu/index.html +111 -0
  370. package/docs/docs/api/appkit-ui/ui/DropdownMenu.md +478 -0
  371. package/docs/docs/api/appkit-ui/ui/Empty/index.html +54 -0
  372. package/docs/docs/api/appkit-ui/ui/Empty.md +109 -0
  373. package/docs/docs/api/appkit-ui/ui/Field/index.html +87 -0
  374. package/docs/docs/api/appkit-ui/ui/Field.md +201 -0
  375. package/docs/docs/api/appkit-ui/ui/FormControl/index.html +59 -0
  376. package/docs/docs/api/appkit-ui/ui/FormControl.md +128 -0
  377. package/docs/docs/api/appkit-ui/ui/HoverCard/index.html +39 -0
  378. package/docs/docs/api/appkit-ui/ui/HoverCard.md +131 -0
  379. package/docs/docs/api/appkit-ui/ui/Input/index.html +27 -0
  380. package/docs/docs/api/appkit-ui/ui/Input.md +35 -0
  381. package/docs/docs/api/appkit-ui/ui/InputGroup/index.html +59 -0
  382. package/docs/docs/api/appkit-ui/ui/InputGroup.md +123 -0
  383. package/docs/docs/api/appkit-ui/ui/InputOTP/index.html +48 -0
  384. package/docs/docs/api/appkit-ui/ui/InputOTP.md +124 -0
  385. package/docs/docs/api/appkit-ui/ui/Item/index.html +78 -0
  386. package/docs/docs/api/appkit-ui/ui/Item.md +185 -0
  387. package/docs/docs/api/appkit-ui/ui/Kbd/index.html +30 -0
  388. package/docs/docs/api/appkit-ui/ui/Kbd.md +39 -0
  389. package/docs/docs/api/appkit-ui/ui/Label/index.html +27 -0
  390. package/docs/docs/api/appkit-ui/ui/Label.md +44 -0
  391. package/docs/docs/api/appkit-ui/ui/Menubar/index.html +117 -0
  392. package/docs/docs/api/appkit-ui/ui/Menubar.md +484 -0
  393. package/docs/docs/api/appkit-ui/ui/NavigationMenu/index.html +76 -0
  394. package/docs/docs/api/appkit-ui/ui/NavigationMenu.md +338 -0
  395. package/docs/docs/api/appkit-ui/ui/Pagination/index.html +69 -0
  396. package/docs/docs/api/appkit-ui/ui/Pagination.md +191 -0
  397. package/docs/docs/api/appkit-ui/ui/Popover/index.html +45 -0
  398. package/docs/docs/api/appkit-ui/ui/Popover.md +173 -0
  399. package/docs/docs/api/appkit-ui/ui/Progress/index.html +27 -0
  400. package/docs/docs/api/appkit-ui/ui/Progress.md +51 -0
  401. package/docs/docs/api/appkit-ui/ui/RadioGroup/index.html +33 -0
  402. package/docs/docs/api/appkit-ui/ui/RadioGroup.md +83 -0
  403. package/docs/docs/api/appkit-ui/ui/ResizableHandle/index.html +41 -0
  404. package/docs/docs/api/appkit-ui/ui/ResizableHandle.md +136 -0
  405. package/docs/docs/api/appkit-ui/ui/ScrollArea/index.html +34 -0
  406. package/docs/docs/api/appkit-ui/ui/ScrollArea.md +83 -0
  407. package/docs/docs/api/appkit-ui/ui/Select/index.html +82 -0
  408. package/docs/docs/api/appkit-ui/ui/Select.md +267 -0
  409. package/docs/docs/api/appkit-ui/ui/Separator/index.html +27 -0
  410. package/docs/docs/api/appkit-ui/ui/Separator.md +56 -0
  411. package/docs/docs/api/appkit-ui/ui/Sheet/index.html +76 -0
  412. package/docs/docs/api/appkit-ui/ui/Sheet.md +236 -0
  413. package/docs/docs/api/appkit-ui/ui/Sidebar/index.html +183 -0
  414. package/docs/docs/api/appkit-ui/ui/Sidebar.md +490 -0
  415. package/docs/docs/api/appkit-ui/ui/Skeleton/index.html +27 -0
  416. package/docs/docs/api/appkit-ui/ui/Skeleton.md +43 -0
  417. package/docs/docs/api/appkit-ui/ui/Slider/index.html +27 -0
  418. package/docs/docs/api/appkit-ui/ui/Slider.md +61 -0
  419. package/docs/docs/api/appkit-ui/ui/Spinner/index.html +24 -0
  420. package/docs/docs/api/appkit-ui/ui/Spinner.md +22 -0
  421. package/docs/docs/api/appkit-ui/ui/Switch/index.html +27 -0
  422. package/docs/docs/api/appkit-ui/ui/Switch.md +46 -0
  423. package/docs/docs/api/appkit-ui/ui/Table/index.html +69 -0
  424. package/docs/docs/api/appkit-ui/ui/Table.md +236 -0
  425. package/docs/docs/api/appkit-ui/ui/Tabs/index.html +48 -0
  426. package/docs/docs/api/appkit-ui/ui/Tabs.md +177 -0
  427. package/docs/docs/api/appkit-ui/ui/Textarea/index.html +27 -0
  428. package/docs/docs/api/appkit-ui/ui/Textarea.md +35 -0
  429. package/docs/docs/api/appkit-ui/ui/Toaster/index.html +27 -0
  430. package/docs/docs/api/appkit-ui/ui/Toaster.md +75 -0
  431. package/docs/docs/api/appkit-ui/ui/Toggle/index.html +27 -0
  432. package/docs/docs/api/appkit-ui/ui/Toggle.md +48 -0
  433. package/docs/docs/api/appkit-ui/ui/ToggleGroup/index.html +33 -0
  434. package/docs/docs/api/appkit-ui/ui/ToggleGroup.md +88 -0
  435. package/docs/docs/api/appkit-ui/ui/Tooltip/index.html +46 -0
  436. package/docs/docs/api/appkit-ui/ui/Tooltip.md +134 -0
  437. package/docs/docs/api/appkit-ui.md +15 -0
  438. package/docs/docs/api/appkit.md +48 -0
  439. package/docs/docs/api/index.html +28 -0
  440. package/docs/docs/api.md +24 -0
  441. package/docs/docs/app-management/index.html +106 -0
  442. package/docs/docs/app-management.md +171 -0
  443. package/docs/docs/architecture/index.html +71 -0
  444. package/docs/docs/architecture.md +69 -0
  445. package/docs/docs/category/development/index.html +16 -0
  446. package/docs/docs/category/development.md +3 -0
  447. package/docs/docs/configuration/index.html +66 -0
  448. package/docs/docs/configuration.md +150 -0
  449. package/docs/docs/core-principles/index.html +38 -0
  450. package/docs/docs/core-principles.md +31 -0
  451. package/docs/docs/development/index.html +34 -0
  452. package/docs/docs/development/llm-guide/index.html +74 -0
  453. package/docs/docs/development/llm-guide.md +74 -0
  454. package/docs/docs/development/local-development/index.html +27 -0
  455. package/docs/docs/development/local-development.md +20 -0
  456. package/docs/docs/development/project-setup/index.html +69 -0
  457. package/docs/docs/development/project-setup.md +246 -0
  458. package/docs/docs/development/remote-bridge/index.html +76 -0
  459. package/docs/docs/development/remote-bridge.md +80 -0
  460. package/docs/docs/development/type-generation/index.html +65 -0
  461. package/docs/docs/development/type-generation.md +110 -0
  462. package/docs/docs/development.md +21 -0
  463. package/docs/docs/index.html +58 -0
  464. package/docs/docs/plugins/index.html +151 -0
  465. package/docs/docs/plugins.md +313 -0
  466. package/docs/docs.md +64 -0
  467. package/llms.txt +121 -1231
  468. package/package.json +7 -5
  469. package/scripts/postinstall.js +1 -1
  470. package/AGENTS.md +0 -1234
  471. package/bin/setup-claude.js +0 -190
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.js","names":[],"sources":["../../../src/react/ui/hover-card.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\n\nfunction HoverCard({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return (\n <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n );\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal\n data-slot=\"hover-card-portal\"\n container={useResolvedPortalContainer()}\n >\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;;;;;;AAQA,SAAS,UAAU,EACjB,GAAG,SACoD;AACvD,QAAO,oBAAC,mBAAmB;EAAK,aAAU;EAAa,GAAI;GAAS;;AAGtE,SAAS,iBAAiB,EACxB,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAAQ,aAAU;EAAqB,GAAI;GAAS;;AAI5E,SAAS,iBAAiB,EACxB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAClB,aAAU;EACV,WAAW,4BAA4B;YAEvC,oBAAC,mBAAmB;GAClB,aAAU;GACH;GACK;GACZ,WAAW,GACT,qeACA,UACD;GACD,GAAI;IACJ;GACwB"}
1
+ {"version":3,"file":"hover-card.js","names":[],"sources":["../../../src/react/ui/hover-card.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\n\n/** Content card that appears when hovering over an element */\nfunction HoverCard({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return (\n <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n );\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal\n data-slot=\"hover-card-portal\"\n container={useResolvedPortalContainer()}\n >\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;;;;;;;AASA,SAAS,UAAU,EACjB,GAAG,SACoD;AACvD,QAAO,oBAAC,mBAAmB;EAAK,aAAU;EAAa,GAAI;GAAS;;AAGtE,SAAS,iBAAiB,EACxB,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAAQ,aAAU;EAAqB,GAAI;GAAS;;AAI5E,SAAS,iBAAiB,EACxB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAClB,aAAU;EACV,WAAW,4BAA4B;YAEvC,oBAAC,mBAAmB;GAClB,aAAU;GACH;GACK;GACZ,WAAW,GACT,qeACA,UACD;GACD,GAAI;IACJ;GACwB"}
@@ -5,6 +5,7 @@ import { VariantProps } from "class-variance-authority";
5
5
  import * as class_variance_authority_types5 from "class-variance-authority/types";
6
6
 
7
7
  //#region src/react/ui/input-group.d.ts
8
+ /** Container for combining input fields with addons and buttons */
8
9
  declare function InputGroup({
9
10
  className,
10
11
  ...props
@@ -12,6 +13,7 @@ declare function InputGroup({
12
13
  declare const inputGroupAddonVariants: (props?: ({
13
14
  align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
14
15
  } & class_variance_authority_types5.ClassProp) | undefined) => string;
16
+ /** Decorative content positioned at the start or end of an input group */
15
17
  declare function InputGroupAddon({
16
18
  className,
17
19
  align,
@@ -20,6 +22,7 @@ declare function InputGroupAddon({
20
22
  declare const inputGroupButtonVariants: (props?: ({
21
23
  size?: "sm" | "icon-sm" | "xs" | "icon-xs" | null | undefined;
22
24
  } & class_variance_authority_types5.ClassProp) | undefined) => string;
25
+ /** Button integrated within an input group */
23
26
  declare function InputGroupButton({
24
27
  className,
25
28
  type,
@@ -27,14 +30,17 @@ declare function InputGroupButton({
27
30
  size,
28
31
  ...props
29
32
  }: Omit<React$1.ComponentProps<typeof Button>, "size"> & VariantProps<typeof inputGroupButtonVariants>): react_jsx_runtime146.JSX.Element;
33
+ /** Static text or icon displayed within an input group */
30
34
  declare function InputGroupText({
31
35
  className,
32
36
  ...props
33
37
  }: React$1.ComponentProps<"span">): react_jsx_runtime146.JSX.Element;
38
+ /** Text input styled for use within an input group */
34
39
  declare function InputGroupInput({
35
40
  className,
36
41
  ...props
37
42
  }: React$1.ComponentProps<"input">): react_jsx_runtime146.JSX.Element;
43
+ /** Textarea styled for use within an input group */
38
44
  declare function InputGroupTextarea({
39
45
  className,
40
46
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"input-group.d.ts","names":[],"sources":["../../../src/react/ui/input-group.tsx"],"sourcesContent":[],"mappings":";;;;;;;iBAUS,UAAA;;;GAAoC,OAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;cA4BlE;;IAmBL,+BAAA,CAAA;AAnDiC,iBAqDzB,eAAA,CAjDU;EAAA,SAAA;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAqDhB,OAAA,CAAM,cArDU,CAAA,KAAA,CAAA,GAqDc,YArDd,CAAA,OAqDkC,uBArDlC,CAAA,CAAA,EAqD0D,oBAAA,CAAA,GAAA,CAAA,OArD1D;cAuEb,wBAvEa,EAAA,CAAA,KAAgC,CAAhC,EAAA,CAAA;MAAG,CAAA,EAAA,IAAA,GAAA,SAAA,GAAA,IAAA,GAAA,SAAA,GAAA,IAAA,GAAA,SAAA;IAuFrB,+BAAA,CAAA,SAvFkD,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBAyF1C,gBAAA,CAzF+D;EAAA,SAAA;EAAA,IAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EA+FrE,IA/FqE,CA+FhE,OAAA,CAAM,cA/F0D,CAAA,OA+FpC,MA/FoC,CAAA,EAAA,MAAA,CAAA,GAgGtE,YAhGsE,CAAA,OAgGlD,wBAhGkD,CAAA,CAAA,EAgGzB,oBAAA,CAAA,GAAA,CAAA,OAhGyB;iBA4G/D,cAAA,CA5G+D;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4GvB,OAAA,CAAM,cA5GiB,CAAA,MAAA,CAAA,CAAA,EA4GK,oBAAA,CAAA,GAAA,CAAA,OA5GL;AAAA,iBAwH/D,eAAA,CAzER;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4EE,OAAA,CAAM,cA5ER,CAAA,OAAA,CAAA,CAAA,EA4E+B,oBAAA,CAAA,GAAA,CAAA,OA5E/B;iBAyFQ,kBAAA,CAvFe;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0FrB,OAAA,CAAM,cA1Fe,CAAA,UAAA,CAAA,CAAA,EA0FW,oBAAA,CAAA,GAAA,CAAA,OA1FX"}
1
+ {"version":3,"file":"input-group.d.ts","names":[],"sources":["../../../src/react/ui/input-group.tsx"],"sourcesContent":[],"mappings":";;;;;;;;iBAWS,UAAA;;;GAAoC,OAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;cA4BlE,+BA5Ba;;AALe,CAAA,GAoDjC,+BAAA,CAAA,SA/CkB,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;;iBAkDV,eAAA,CAlDa;EAAA,SAAA;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAsDnB,OAAA,CAAM,cAtDa,CAAA,KAAA,CAAA,GAsDW,YAtDX,CAAA,OAsD+B,uBAtD/B,CAAA,CAAA,EAsDuD,oBAAA,CAAA,GAAA,CAAA,OAtDvD;cAwEhB,wBAxE6C,EAAA,CAAA,KAAqB,CAArB,EAAA,CAAA;MAAqB,CAAA,EAAA,IAAA,GAAA,SAAA,GAAA,IAAA,GAAA,SAAA,GAAA,IAAA,GAAA,SAAA;CAAA,GAwFvE,+BAAA,CAAA,SAxFuE,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;AAAA;iBA2F/D,gBAAA,CAzCe;EAAA,SAAA;EAAA,IAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EA+CrB,IA/CqB,CA+ChB,OAAA,CAAM,cA/CU,CAAA,OA+CY,MA/CZ,CAAA,EAAA,MAAA,CAAA,GAgDtB,YAhDsB,CAAA,OAgDF,wBAhDE,CAAA,CAAA,EAgDuB,oBAAA,CAAA,GAAA,CAAA,OAhDvB;;iBA6Df,cAAA,CA5DP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4D+C,OAAA,CAAM,cA5DrD,CAAA,MAAA,CAAA,CAAA,EA4D2E,oBAAA,CAAA,GAAA,CAAA,OA5D3E;;iBAyEO,eAAA,CAtEA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyEN,OAAA,CAAM,cAzEA,CAAA,OAAA,CAAA,CAAA,EAyEuB,oBAAA,CAAA,GAAA,CAAA,OAzEvB;;iBAuFA,kBAAA,CAvFwB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0F9B,OAAA,CAAM,cA1FwB,CAAA,UAAA,CAAA,CAAA,EA0FE,oBAAA,CAAA,GAAA,CAAA,OA1FF"}
@@ -8,6 +8,7 @@ import { jsx } from "react/jsx-runtime";
8
8
  import { cva } from "class-variance-authority";
9
9
 
10
10
  //#region src/react/ui/input-group.tsx
11
+ /** Container for combining input fields with addons and buttons */
11
12
  function InputGroup({ className, ...props }) {
12
13
  return /* @__PURE__ */ jsx("div", {
13
14
  "data-slot": "input-group",
@@ -25,6 +26,7 @@ const inputGroupAddonVariants = cva("text-muted-foreground flex h-auto cursor-te
25
26
  } },
26
27
  defaultVariants: { align: "inline-start" }
27
28
  });
29
+ /** Decorative content positioned at the start or end of an input group */
28
30
  function InputGroupAddon({ className, align = "inline-start", ...props }) {
29
31
  return /* @__PURE__ */ jsx("div", {
30
32
  role: "group",
@@ -47,6 +49,7 @@ const inputGroupButtonVariants = cva("text-sm shadow-none flex gap-2 items-cente
47
49
  } },
48
50
  defaultVariants: { size: "xs" }
49
51
  });
52
+ /** Button integrated within an input group */
50
53
  function InputGroupButton({ className, type = "button", variant = "ghost", size = "xs", ...props }) {
51
54
  return /* @__PURE__ */ jsx(Button, {
52
55
  type,
@@ -56,12 +59,14 @@ function InputGroupButton({ className, type = "button", variant = "ghost", size
56
59
  ...props
57
60
  });
58
61
  }
62
+ /** Static text or icon displayed within an input group */
59
63
  function InputGroupText({ className, ...props }) {
60
64
  return /* @__PURE__ */ jsx("span", {
61
65
  className: cn("text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className),
62
66
  ...props
63
67
  });
64
68
  }
69
+ /** Text input styled for use within an input group */
65
70
  function InputGroupInput({ className, ...props }) {
66
71
  return /* @__PURE__ */ jsx(Input, {
67
72
  "data-slot": "input-group-control",
@@ -69,6 +74,7 @@ function InputGroupInput({ className, ...props }) {
69
74
  ...props
70
75
  });
71
76
  }
77
+ /** Textarea styled for use within an input group */
72
78
  function InputGroupTextarea({ className, ...props }) {
73
79
  return /* @__PURE__ */ jsx(Textarea, {
74
80
  "data-slot": "input-group-control",
@@ -1 +1 @@
1
- {"version":3,"file":"input-group.js","names":[],"sources":["../../../src/react/ui/input-group.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Textarea } from \"./textarea\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"text-sm shadow-none flex gap-2 items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: \"h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;;;AAUA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,MAAK;EACL,WAAW,GACT,4JACA,sCAGA,mDACA,iDACA,kIACA,4HAGA,mMAGA,kLAEA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,0BAA0B,IAC9B,2PACA;CACE,UAAU,EACR,OAAO;EACL,gBACE;EACF,cACE;EACF,eACE;EACF,aACE;EACH,EACF;CACD,iBAAiB,EACf,OAAO,gBACR;CACF,CACF;AAED,SAAS,gBAAgB,EACvB,WACA,QAAQ,gBACR,GAAG,SAC0E;AAC7E,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,cAAY;EACZ,WAAW,GAAG,wBAAwB,EAAE,OAAO,CAAC,EAAE,UAAU;EAC5D,UAAU,MAAM;AACd,OAAK,EAAE,OAAuB,QAAQ,SAAS,CAC7C;AAEF,KAAE,cAAc,eAAe,cAAc,QAAQ,EAAE,OAAO;;EAEhE,GAAI;GACJ;;AAIN,MAAM,2BAA2B,IAC/B,+CACA;CACE,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WACE;EACF,WAAW;EACZ,EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CACF;AAED,SAAS,iBAAiB,EACxB,WACA,OAAO,UACP,UAAU,SACV,OAAO,MACP,GAAG,SAE4C;AAC/C,QACE,oBAAC;EACO;EACN,aAAW;EACF;EACT,WAAW,GAAG,yBAAyB,EAAE,MAAM,CAAC,EAAE,UAAU;EAC5D,GAAI;GACJ;;AAIN,SAAS,eAAe,EAAE,WAAW,GAAG,SAAuC;AAC7E,QACE,oBAAC;EACC,WAAW,GACT,0HACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,WACA,GAAG,SAC6B;AAChC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,oGACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACgC;AACnC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,qHACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"input-group.js","names":[],"sources":["../../../src/react/ui/input-group.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Textarea } from \"./textarea\";\n\n/** Container for combining input fields with addons and buttons */\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none\",\n \"h-9 min-w-0 has-[>textarea]:h-auto\",\n\n // Variants based on alignment.\n \"has-[>[data-align=inline-start]]:[&>input]:pl-2\",\n \"has-[>[data-align=inline-end]]:[&>input]:pr-2\",\n \"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3\",\n \"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3\",\n\n // Focus state.\n \"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]\",\n\n // Error state.\n \"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40\",\n\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]\",\n \"inline-end\":\n \"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5\",\n \"block-end\":\n \"order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\n/** Decorative content positioned at the start or end of an input group */\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"text-sm shadow-none flex gap-2 items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: \"h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\n/** Button integrated within an input group */\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\"> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\n/** Static text or icon displayed within an input group */\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Text input styled for use within an input group */\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Textarea styled for use within an input group */\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;;;;AAWA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,MAAK;EACL,WAAW,GACT,4JACA,sCAGA,mDACA,iDACA,kIACA,4HAGA,mMAGA,kLAEA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,0BAA0B,IAC9B,2PACA;CACE,UAAU,EACR,OAAO;EACL,gBACE;EACF,cACE;EACF,eACE;EACF,aACE;EACH,EACF;CACD,iBAAiB,EACf,OAAO,gBACR;CACF,CACF;;AAGD,SAAS,gBAAgB,EACvB,WACA,QAAQ,gBACR,GAAG,SAC0E;AAC7E,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,cAAY;EACZ,WAAW,GAAG,wBAAwB,EAAE,OAAO,CAAC,EAAE,UAAU;EAC5D,UAAU,MAAM;AACd,OAAK,EAAE,OAAuB,QAAQ,SAAS,CAC7C;AAEF,KAAE,cAAc,eAAe,cAAc,QAAQ,EAAE,OAAO;;EAEhE,GAAI;GACJ;;AAIN,MAAM,2BAA2B,IAC/B,+CACA;CACE,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WACE;EACF,WAAW;EACZ,EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CACF;;AAGD,SAAS,iBAAiB,EACxB,WACA,OAAO,UACP,UAAU,SACV,OAAO,MACP,GAAG,SAE4C;AAC/C,QACE,oBAAC;EACO;EACN,aAAW;EACF;EACT,WAAW,GAAG,yBAAyB,EAAE,MAAM,CAAC,EAAE,UAAU;EAC5D,GAAI;GACJ;;;AAKN,SAAS,eAAe,EAAE,WAAW,GAAG,SAAuC;AAC7E,QACE,oBAAC;EACC,WAAW,GACT,0HACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,gBAAgB,EACvB,WACA,GAAG,SAC6B;AAChC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,oGACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACgC;AACnC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,qHACA,UACD;EACD,GAAI;GACJ"}
@@ -3,6 +3,7 @@ import * as react_jsx_runtime152 from "react/jsx-runtime";
3
3
  import { OTPInput } from "input-otp";
4
4
 
5
5
  //#region src/react/ui/input-otp.d.ts
6
+ /** One-time password input with individual character slots */
6
7
  declare function InputOTP({
7
8
  className,
8
9
  containerClassName,
@@ -10,10 +11,12 @@ declare function InputOTP({
10
11
  }: React$1.ComponentProps<typeof OTPInput> & {
11
12
  containerClassName?: string;
12
13
  }): react_jsx_runtime152.JSX.Element;
14
+ /** Container grouping OTP input slots together */
13
15
  declare function InputOTPGroup({
14
16
  className,
15
17
  ...props
16
18
  }: React$1.ComponentProps<"div">): react_jsx_runtime152.JSX.Element;
19
+ /** Individual character slot within the OTP input */
17
20
  declare function InputOTPSlot({
18
21
  index,
19
22
  className,
@@ -21,6 +24,7 @@ declare function InputOTPSlot({
21
24
  }: React$1.ComponentProps<"div"> & {
22
25
  index: number;
23
26
  }): react_jsx_runtime152.JSX.Element;
27
+ /** Visual separator between OTP slot groups */
24
28
  declare function InputOTPSeparator({
25
29
  ...props
26
30
  }: React$1.ComponentProps<"div">): react_jsx_runtime152.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"input-otp.d.ts","names":[],"sources":["../../../src/react/ui/input-otp.tsx"],"sourcesContent":[],"mappings":";;;;;iBAMS,QAAA;;;;GAIN,OAAA,CAAM,sBAAsB;;IAE9B,oBAAA,CAAA,GAAA,CAAA;AAXqD,iBAyB7C,aAAA,CApBQ;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAoB+B,OAAA,CAAM,cApBrC,CAAA,KAAA,CAAA,CAAA,EAoB0D,oBAAA,CAAA,GAAA,CAAA,OApB1D;iBA8BR,YAAA,CA9BQ;EAAA,KAAA;EAAA,SAAA;EAAA,GAAA;CAAA,EAkCd,OAAA,CAAM,cAlCQ,CAAA,KAAA,CAAA,GAAA;OACf,EAAA,MAAA;IAmCD,oBAAA,CAAA,GAAA,CAAA,OAlCC;iBA0DO,iBAAA,CAxDsB;EAAA,GAAA;AAAA,CAAA,EAwDU,OAAA,CAAM,cAxDhB,CAAA,KAAA,CAAA,CAAA,EAwDqC,oBAAA,CAAA,GAAA,CAAA,OAxDrC"}
1
+ {"version":3,"file":"input-otp.d.ts","names":[],"sources":["../../../src/react/ui/input-otp.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAOS,QAAA;;;;AAN6C,GAUnD,OAAA,CAAM,sBAAsB;;AAVuB,CAAA,CAAA,EAYrD,oBAAA,CAAA,GAAA,CAAA,OANgB;;iBAqBR,aAAA,CApBP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAoB8C,OAAA,CAAM,cApBpD,CAAA,KAAA,CAAA,CAAA,EAoByE,oBAAA,CAAA,GAAA,CAAA,OApBzE;;iBA+BO,YAAA,CA5BsB;EAAA,KAAA;EAAA,SAAA;EAAA,GAAA;CAAA,EAgC5B,OAAA,CAAM,cAhCsB,CAAA,KAAA,CAAA,GAAA;OAA5B,EAAA,MAAM;IAkCR,oBAAA,CAAA,GAAA,CAAA,OAhCA;;AAAA,iBAyDQ,iBAAA,CA1Ca;EAAA,GAAA;AAAA,CAAA,EA0CmB,OAAA,CAAM,cA1CzB,CAAA,KAAA,CAAA,CAAA,EA0C8C,oBAAA,CAAA,GAAA,CAAA,OA1C9C"}
@@ -5,6 +5,7 @@ import { MinusIcon } from "lucide-react";
5
5
  import { OTPInput, OTPInputContext } from "input-otp";
6
6
 
7
7
  //#region src/react/ui/input-otp.tsx
8
+ /** One-time password input with individual character slots */
8
9
  function InputOTP({ className, containerClassName, ...props }) {
9
10
  return /* @__PURE__ */ jsx(OTPInput, {
10
11
  "data-slot": "input-otp",
@@ -13,6 +14,7 @@ function InputOTP({ className, containerClassName, ...props }) {
13
14
  ...props
14
15
  });
15
16
  }
17
+ /** Container grouping OTP input slots together */
16
18
  function InputOTPGroup({ className, ...props }) {
17
19
  return /* @__PURE__ */ jsx("div", {
18
20
  "data-slot": "input-otp-group",
@@ -20,6 +22,7 @@ function InputOTPGroup({ className, ...props }) {
20
22
  ...props
21
23
  });
22
24
  }
25
+ /** Individual character slot within the OTP input */
23
26
  function InputOTPSlot({ index, className, ...props }) {
24
27
  const { char, hasFakeCaret, isActive } = React$1.useContext(OTPInputContext)?.slots[index] ?? {};
25
28
  return /* @__PURE__ */ jsxs("div", {
@@ -33,6 +36,7 @@ function InputOTPSlot({ index, className, ...props }) {
33
36
  })]
34
37
  });
35
38
  }
39
+ /** Visual separator between OTP slot groups */
36
40
  function InputOTPSeparator({ ...props }) {
37
41
  return /* @__PURE__ */ jsx("div", {
38
42
  "data-slot": "input-otp-separator",
@@ -1 +1 @@
1
- {"version":3,"file":"input-otp.js","names":["React"],"sources":["../../../src/react/ui/input-otp.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { MinusIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn(\n \"flex items-center gap-2 has-disabled:opacity-50\",\n containerClassName,\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n );\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-otp-group\"\n className={cn(\"flex items-center\", className)}\n {...props}\n />\n );\n}\n\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n index: number;\n}) {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n \"data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n}\n\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"mappings":";;;;;;;AAMA,SAAS,SAAS,EAChB,WACA,oBACA,GAAG,SAGF;AACD,QACE,oBAAC;EACC,aAAU;EACV,oBAAoB,GAClB,mDACA,mBACD;EACD,WAAW,GAAG,+BAA+B,UAAU;EACvD,GAAI;GACJ;;AAIN,SAAS,cAAc,EAAE,WAAW,GAAG,SAAsC;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,qBAAqB,UAAU;EAC7C,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,OACA,WACA,GAAG,SAGF;CAED,MAAM,EAAE,MAAM,cAAc,aADJA,QAAM,WAAW,gBAAgB,EACC,MAAM,UAAU,EAAE;AAE5E,QACE,qBAAC;EACC,aAAU;EACV,eAAa;EACb,WAAW,GACT,4fACA,UACD;EACD,GAAI;aAEH,MACA,gBACC,oBAAC;GAAI,WAAU;aACb,oBAAC,SAAI,WAAU,6DAA6D;IACxE;GAEJ;;AAIV,SAAS,kBAAkB,EAAE,GAAG,SAAsC;AACpE,QACE,oBAAC;EAAI,aAAU;EAAsB,MAAK;EAAY,GAAI;YACxD,oBAAC,cAAY;GACT"}
1
+ {"version":3,"file":"input-otp.js","names":["React"],"sources":["../../../src/react/ui/input-otp.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { MinusIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\n/** One-time password input with individual character slots */\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string;\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn(\n \"flex items-center gap-2 has-disabled:opacity-50\",\n containerClassName,\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n );\n}\n\n/** Container grouping OTP input slots together */\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-otp-group\"\n className={cn(\"flex items-center\", className)}\n {...props}\n />\n );\n}\n\n/** Individual character slot within the OTP input */\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n index: number;\n}) {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n \"data-[active=true]:border-ring data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:ring-destructive/20 dark:data-[active=true]:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[active=true]:aria-invalid:border-destructive dark:bg-input/30 border-input relative flex h-9 w-9 items-center justify-center border-y border-r text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md data-[active=true]:z-10 data-[active=true]:ring-[3px]\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n}\n\n/** Visual separator between OTP slot groups */\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"input-otp-separator\" role=\"separator\" {...props}>\n <MinusIcon />\n </div>\n );\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"mappings":";;;;;;;;AAOA,SAAS,SAAS,EAChB,WACA,oBACA,GAAG,SAGF;AACD,QACE,oBAAC;EACC,aAAU;EACV,oBAAoB,GAClB,mDACA,mBACD;EACD,WAAW,GAAG,+BAA+B,UAAU;EACvD,GAAI;GACJ;;;AAKN,SAAS,cAAc,EAAE,WAAW,GAAG,SAAsC;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,qBAAqB,UAAU;EAC7C,GAAI;GACJ;;;AAKN,SAAS,aAAa,EACpB,OACA,WACA,GAAG,SAGF;CAED,MAAM,EAAE,MAAM,cAAc,aADJA,QAAM,WAAW,gBAAgB,EACC,MAAM,UAAU,EAAE;AAE5E,QACE,qBAAC;EACC,aAAU;EACV,eAAa;EACb,WAAW,GACT,4fACA,UACD;EACD,GAAI;aAEH,MACA,gBACC,oBAAC;GAAI,WAAU;aACb,oBAAC,SAAI,WAAU,6DAA6D;IACxE;GAEJ;;;AAKV,SAAS,kBAAkB,EAAE,GAAG,SAAsC;AACpE,QACE,oBAAC;EAAI,aAAU;EAAsB,MAAK;EAAY,GAAI;YACxD,oBAAC,cAAY;GACT"}
@@ -2,6 +2,7 @@ import * as React$1 from "react";
2
2
  import * as react_jsx_runtime145 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/react/ui/input.d.ts
5
+ /** Text input field for single-line user input */
5
6
  declare function Input({
6
7
  className,
7
8
  type,
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","names":[],"sources":["../../../src/react/ui/input.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,KAAA;;;;GAAqC,OAAA,CAAM,0BAAuB,oBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"input.d.ts","names":[],"sources":["../../../src/react/ui/input.tsx"],"sourcesContent":[],"mappings":";;;;;iBAKS,KAAA;;;;GAAqC,OAAA,CAAM,0BAAuB,oBAAA,CAAA,GAAA,CAAA"}
@@ -2,6 +2,7 @@ import { cn } from "../lib/utils.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
 
4
4
  //#region src/react/ui/input.tsx
5
+ /** Text input field for single-line user input */
5
6
  function Input({ className, type, ...props }) {
6
7
  return /* @__PURE__ */ jsx("input", {
7
8
  type,
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","names":[],"sources":["../../../src/react/ui/input.tsx"],"sourcesContent":["import type * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":";;;;AAIA,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,SAAwC;AAC3E,QACE,oBAAC;EACO;EACN,aAAU;EACV,WAAW,GACT,8bACA,iFACA,0GACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"input.js","names":[],"sources":["../../../src/react/ui/input.tsx"],"sourcesContent":["import type * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Text input field for single-line user input */\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":";;;;;AAKA,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,SAAwC;AAC3E,QACE,oBAAC;EACO;EACN,aAAU;EACV,WAAW,GACT,8bACA,iFACA,0GACA,UACD;EACD,GAAI;GACJ"}
@@ -17,6 +17,7 @@ declare const itemVariants: (props?: ({
17
17
  variant?: "default" | "outline" | "muted" | null | undefined;
18
18
  size?: "default" | "sm" | null | undefined;
19
19
  } & class_variance_authority_types7.ClassProp) | undefined) => string;
20
+ /** Flexible container for list items with media, content, and actions */
20
21
  declare function Item({
21
22
  className,
22
23
  variant,
@@ -1 +1 @@
1
- {"version":3,"file":"item.d.ts","names":[],"sources":["../../../src/react/ui/item.tsx"],"sourcesContent":[],"mappings":";;;;;;;iBAOS,SAAA;;;GAAmC,OAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;iBAW9D,aAAA;;;GAGN,OAAA,CAAM,sBAAsB,aAAU,oBAAA,CAAA,GAAA,CAAA;cAWnC,oBAzBY;;EAAT,IAAA,CAAA,EAAA,SAAS,GAAA,IAAA,GAAA,IAAA,GAAA,SAAA;CAAA,GA4CjB,+BAAA,CAAA,SA5CiB,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBA8CT,IAAA,CA9CY;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,OAAA;EAAA,GAAA;CAAA,EAoDlB,OAAA,CAAM,cApDY,CAAA,KAAA,CAAA,GAqDnB,YArDmB,CAAA,OAqDC,YArDD,CAAA,GAAA;SAAuB,CAAA,EAAA,OAAM;IAqDS,oBAAA,CAAA,GAAA,CAAA,OArDY;cAkEjE,iBAlEiE,EAAA,CAAA,KAWjD,CAXiD,EAAA,CAAA;EAW9D,OAAA,CAAA,EAAA,SAAa,GAAA,MAAA,GAAA,OAAA,GAAA,IAAA,GAAA,SAAA;CAAA,GAsErB,+BAAA,CAAA,SAtEqB,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBAwEb,SAAA,CAvEP;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA2EC,OAAA,CAAM,cA3EP,CAAA,KAAA,CAAA,GA2E+B,YA3E/B,CAAA,OA2EmD,iBA3EnD,CAAA,CAAA,EA2EqE,oBAAA,CAAA,GAAA,CAAA,OA3ErE;iBAsFO,WAAA,CApFsB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAoFe,OAAA,CAAM,cApFrB,CAAA,KAAA,CAAA,CAAA,EAoF0C,oBAAA,CAAA,GAAA,CAAA,OApF1C;iBAiGtB,SAAA,CAjGA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiGmC,OAAA,CAAM,cAjGzC,CAAA,KAAA,CAAA,CAAA,EAiG8D,oBAAA,CAAA,GAAA,CAAA,OAjG9D;iBA8GA,eAAA,CA9GgC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8GS,OAAA,CAAM,cA9Gf,CAAA,GAAA,CAAA,CAAA,EA8GkC,oBAAA,CAAA,GAAA,CAAA,OA9GlC;iBA4HhC,WAAA,CA5HgC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4HK,OAAA,CAAM,cA5HX,CAAA,KAAA,CAAA,CAAA,EA4HgC,oBAAA,CAAA,GAAA,CAAA,OA5HhC;AAAA,iBAsIhC,UAAA,CAxGR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwG4C,OAAA,CAAM,cAxGlD,CAAA,KAAA,CAAA,CAAA,EAwGuE,oBAAA,CAAA,GAAA,CAAA,OAxGvE;iBAqHQ,UAAA,CAnHI;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAmHgC,OAAA,CAAM,cAnHtC,CAAA,KAAA,CAAA,CAAA,EAmH2D,oBAAA,CAAA,GAAA,CAAA,OAnH3D"}
1
+ {"version":3,"file":"item.d.ts","names":[],"sources":["../../../src/react/ui/item.tsx"],"sourcesContent":[],"mappings":";;;;;;;iBAOS,SAAA;;;GAAmC,OAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;iBAW9D,aAAA;;;GAGN,OAAA,CAAM,sBAAsB,aAAU,oBAAA,CAAA,GAAA,CAAA;cAWnC,oBAzBY;;EAAT,IAAA,CAAA,EAAA,SAAS,GAAA,IAAA,GAAA,IAAA,GAAA,SAAA;CAAA,GA4CjB,+BAAA,CAAA,SA5CiB,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;;iBA+CT,IAAA,CA/CyC;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,OAAA;EAAA,GAAA;CAAA,EAqD/C,OAAA,CAAM,cArDyC,CAAA,KAAA,CAAA,GAsDhD,YAtDgD,CAAA,OAsD5B,YAtD4B,CAAA,GAAA;SAAqB,CAAA,EAAA,OAAA;CAAA,CAAA,EAsDZ,oBAAA,CAAA,GAAA,CAAA,OAtDY;AAAA,cAmEjE,iBAxDgB,EAAA,CAAA,KACpB,CADoB,EAAA,CAAA;EAAA,OAAA,CAAA,EAAA,SAAA,GAAA,MAAA,GAAA,OAAA,GAAA,IAAA,GAAA,SAAA;IAuErB,+BAAA,CAAA,SAtEC,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBAwEO,SAAA,CAtEsB;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA0E5B,OAAA,CAAM,cA1EsB,CAAA,KAAA,CAAA,GA0EE,YA1EF,CAAA,OA0EsB,iBA1EtB,CAAA,CAAA,EA0EwC,oBAAA,CAAA,GAAA,CAAA,OA1ExC;iBAqFtB,WAAA,CArFA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAqFqC,OAAA,CAAM,cArF3C,CAAA,KAAA,CAAA,CAAA,EAqFgE,oBAAA,CAAA,GAAA,CAAA,OArFhE;iBAkGA,SAAA,CAlGgC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkGG,OAAA,CAAM,cAlGT,CAAA,KAAA,CAAA,CAAA,EAkG8B,oBAAA,CAAA,GAAA,CAAA,OAlG9B;iBA+GhC,eAAA,CA/GgC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+GS,OAAA,CAAM,cA/Gf,CAAA,GAAA,CAAA,CAAA,EA+GkC,oBAAA,CAAA,GAAA,CAAA,OA/GlC;AAAA,iBA6HhC,WAAA,CA/FR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+F6C,OAAA,CAAM,cA/FnD,CAAA,KAAA,CAAA,CAAA,EA+FwE,oBAAA,CAAA,GAAA,CAAA,OA/FxE;iBAyGQ,UAAA,CAtGI;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAsGgC,OAAA,CAAM,cAtGtC,CAAA,KAAA,CAAA,CAAA,EAsG2D,oBAAA,CAAA,GAAA,CAAA,OAtG3D;iBAmHJ,UAAA,CAnHI;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAmHgC,OAAA,CAAM,cAnHtC,CAAA,KAAA,CAAA,CAAA,EAmH2D,oBAAA,CAAA,GAAA,CAAA,OAnH3D"}
@@ -38,6 +38,7 @@ const itemVariants = cva("group/item flex items-center border border-transparent
38
38
  size: "default"
39
39
  }
40
40
  });
41
+ /** Flexible container for list items with media, content, and actions */
41
42
  function Item({ className, variant = "default", size = "default", asChild = false, ...props }) {
42
43
  return /* @__PURE__ */ jsx(asChild ? Slot : "div", {
43
44
  "data-slot": "item",
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","names":[],"sources":["../../../src/react/ui/item.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Separator } from \"./separator\";\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\"group/item-group flex flex-col\", className)}\n {...props}\n />\n );\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-0\", className)}\n {...props}\n />\n );\n}\n\nconst itemVariants = cva(\n \"group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n },\n size: {\n default: \"p-4 gap-4 \",\n sm: \"py-3 px-4 gap-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> &\n VariantProps<typeof itemVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"div\";\n return (\n <Comp\n data-slot=\"item\"\n data-variant={variant}\n data-size={size}\n className={cn(itemVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n \"text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n};\n"],"mappings":";;;;;;;AAOA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAsC;AACvE,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,WAAW,GAAG,kCAAkC,UAAU;EAC1D,GAAI;GACJ;;AAIN,SAAS,cAAc,EACrB,WACA,GAAG,SACsC;AACzC,QACE,oBAAC;EACC,aAAU;EACV,aAAY;EACZ,WAAW,GAAG,QAAQ,UAAU;EAChC,GAAI;GACJ;;AAIN,MAAM,eAAe,IACnB,8PACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SAAS;GACT,OAAO;GACR;EACD,MAAM;GACJ,SAAS;GACT,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF;AAED,SAAS,KAAK,EACZ,WACA,UAAU,WACV,OAAO,WACP,UAAU,OACV,GAAG,SAEwD;AAE3D,QACE,oBAFW,UAAU,OAAO;EAG1B,aAAU;EACV,gBAAc;EACd,aAAW;EACX,WAAW,GAAG,aAAa;GAAE;GAAS;GAAM;GAAW,CAAC,CAAC;EACzD,GAAI;GACJ;;AAIN,MAAM,oBAAoB,IACxB,sMACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;EACN,OACE;EACH,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,SAAS,UAAU,EACjB,WACA,UAAU,WACV,GAAG,SACoE;AACvE,QACE,oBAAC;EACC,aAAU;EACV,gBAAc;EACd,WAAW,GAAG,kBAAkB;GAAE;GAAS;GAAW,CAAC,CAAC;EACxD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,qEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,UAAU,EAAE,WAAW,GAAG,SAAsC;AACvE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,kEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAoC;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,sFACA,qEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,2BAA2B,UAAU;EACnD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,sDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,sDACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"item.js","names":[],"sources":["../../../src/react/ui/item.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Separator } from \"./separator\";\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\"group/item-group flex flex-col\", className)}\n {...props}\n />\n );\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-0\", className)}\n {...props}\n />\n );\n}\n\nconst itemVariants = cva(\n \"group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n },\n size: {\n default: \"p-4 gap-4 \",\n sm: \"py-3 px-4 gap-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\n/** Flexible container for list items with media, content, and actions */\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> &\n VariantProps<typeof itemVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"div\";\n return (\n <Comp\n data-slot=\"item\"\n data-variant={variant}\n data-size={size}\n className={cn(itemVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n \"text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n};\n"],"mappings":";;;;;;;AAOA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAsC;AACvE,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,WAAW,GAAG,kCAAkC,UAAU;EAC1D,GAAI;GACJ;;AAIN,SAAS,cAAc,EACrB,WACA,GAAG,SACsC;AACzC,QACE,oBAAC;EACC,aAAU;EACV,aAAY;EACZ,WAAW,GAAG,QAAQ,UAAU;EAChC,GAAI;GACJ;;AAIN,MAAM,eAAe,IACnB,8PACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,SAAS;GACT,OAAO;GACR;EACD,MAAM;GACJ,SAAS;GACT,IAAI;GACL;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF;;AAGD,SAAS,KAAK,EACZ,WACA,UAAU,WACV,OAAO,WACP,UAAU,OACV,GAAG,SAEwD;AAE3D,QACE,oBAFW,UAAU,OAAO;EAG1B,aAAU;EACV,gBAAc;EACd,aAAW;EACX,WAAW,GAAG,aAAa;GAAE;GAAS;GAAM;GAAW,CAAC,CAAC;EACzD,GAAI;GACJ;;AAIN,MAAM,oBAAoB,IACxB,sMACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;EACN,OACE;EACH,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,SAAS,UAAU,EACjB,WACA,UAAU,WACV,GAAG,SACoE;AACvE,QACE,oBAAC;EACC,aAAU;EACV,gBAAc;EACd,WAAW,GAAG,kBAAkB;GAAE;GAAS;GAAW,CAAC,CAAC;EACxD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,qEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,UAAU,EAAE,WAAW,GAAG,SAAsC;AACvE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,kEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAoC;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,sFACA,qEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,2BAA2B,UAAU;EACnD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,sDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,sDACA,UACD;EACD,GAAI;GACJ"}
@@ -1,6 +1,7 @@
1
1
  import * as react_jsx_runtime166 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/react/ui/kbd.d.ts
4
+ /** Visual representation of keyboard keys */
4
5
  declare function Kbd({
5
6
  className,
6
7
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"kbd.d.ts","names":[],"sources":["../../../src/react/ui/kbd.tsx"],"sourcesContent":[],"mappings":";;;iBAES,GAAA;;;GAA6B,KAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;iBAexD,QAAA;;;GAAkC,KAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"kbd.d.ts","names":[],"sources":["../../../src/react/ui/kbd.tsx"],"sourcesContent":[],"mappings":";;;;iBAGS,GAAA;;;GAA6B,KAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;iBAexD,QAAA;;;GAAkC,KAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA"}
@@ -2,6 +2,7 @@ import { cn } from "../lib/utils.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
 
4
4
  //#region src/react/ui/kbd.tsx
5
+ /** Visual representation of keyboard keys */
5
6
  function Kbd({ className, ...props }) {
6
7
  return /* @__PURE__ */ jsx("kbd", {
7
8
  "data-slot": "kbd",
@@ -1 +1 @@
1
- {"version":3,"file":"kbd.js","names":[],"sources":["../../../src/react/ui/kbd.tsx"],"sourcesContent":["import { cn } from \"../lib/utils\";\n\nfunction Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(\n \"bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none\",\n \"[&_svg:not([class*='size-'])]:size-3\",\n \"[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction KbdGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n );\n}\n\nexport { Kbd, KbdGroup };\n"],"mappings":";;;;AAEA,SAAS,IAAI,EAAE,WAAW,GAAG,SAAsC;AACjE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,gLACA,wCACA,0JACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,SAAS,EAAE,WAAW,GAAG,SAAsC;AACtE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,kCAAkC,UAAU;EAC1D,GAAI;GACJ"}
1
+ {"version":3,"file":"kbd.js","names":[],"sources":["../../../src/react/ui/kbd.tsx"],"sourcesContent":["import { cn } from \"../lib/utils\";\n\n/** Visual representation of keyboard keys */\nfunction Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(\n \"bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-sm px-1 font-sans text-xs font-medium select-none\",\n \"[&_svg:not([class*='size-'])]:size-3\",\n \"[[data-slot=tooltip-content]_&]:bg-background/20 [[data-slot=tooltip-content]_&]:text-background dark:[[data-slot=tooltip-content]_&]:bg-background/10\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction KbdGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n );\n}\n\nexport { Kbd, KbdGroup };\n"],"mappings":";;;;;AAGA,SAAS,IAAI,EAAE,WAAW,GAAG,SAAsC;AACjE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,gLACA,wCACA,0JACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,SAAS,EAAE,WAAW,GAAG,SAAsC;AACtE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,kCAAkC,UAAU;EAC1D,GAAI;GACJ"}
@@ -3,6 +3,7 @@ import * as react_jsx_runtime168 from "react/jsx-runtime";
3
3
  import * as LabelPrimitive from "@radix-ui/react-label";
4
4
 
5
5
  //#region src/react/ui/label.d.ts
6
+ /** Text label associated with form controls */
6
7
  declare function Label({
7
8
  className,
8
9
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"label.d.ts","names":[],"sources":["../../../src/react/ui/label.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,KAAA;;;GAGN,OAAA,CAAM,sBAAsB,cAAA,CAAe,QAAK,oBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"label.d.ts","names":[],"sources":["../../../src/react/ui/label.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAQS,KAAA;;;GAGN,OAAA,CAAM,sBAAsB,cAAA,CAAe,QAAK,oBAAA,CAAA,GAAA,CAAA"}
@@ -5,6 +5,7 @@ import { jsx } from "react/jsx-runtime";
5
5
  import * as LabelPrimitive from "@radix-ui/react-label";
6
6
 
7
7
  //#region src/react/ui/label.tsx
8
+ /** Text label associated with form controls */
8
9
  function Label({ className, ...props }) {
9
10
  return /* @__PURE__ */ jsx(LabelPrimitive.Root, {
10
11
  "data-slot": "label",
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","names":[],"sources":["../../../src/react/ui/label.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":";;;;;;;AAOA,SAAS,MAAM,EACb,WACA,GAAG,SACgD;AACnD,QACE,oBAAC,eAAe;EACd,aAAU;EACV,WAAW,GACT,uNACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"label.js","names":[],"sources":["../../../src/react/ui/label.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Text label associated with form controls */\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":";;;;;;;;AAQA,SAAS,MAAM,EACb,WACA,GAAG,SACgD;AACnD,QACE,oBAAC,eAAe;EACd,aAAU;EACV,WAAW,GACT,uNACA,UACD;EACD,GAAI;GACJ"}
@@ -3,6 +3,7 @@ import * as react_jsx_runtime169 from "react/jsx-runtime";
3
3
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
4
4
 
5
5
  //#region src/react/ui/menubar.d.ts
6
+ /** Horizontal menu bar with dropdown menus */
6
7
  declare function Menubar({
7
8
  className,
8
9
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"menubar.d.ts","names":[],"sources":["../../../src/react/ui/menubar.tsx"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"menubar.d.ts","names":[],"sources":["../../../src/react/ui/menubar.tsx"],"sourcesContent":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
5
5
  import * as MenubarPrimitive from "@radix-ui/react-menubar";
6
6
 
7
7
  //#region src/react/ui/menubar.tsx
8
+ /** Horizontal menu bar with dropdown menus */
8
9
  function Menubar({ className, ...props }) {
9
10
  return /* @__PURE__ */ jsx(MenubarPrimitive.Root, {
10
11
  "data-slot": "menubar",
@@ -1 +1 @@
1
- {"version":3,"file":"menubar.js","names":[],"sources":["../../../src/react/ui/menubar.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\n\nfunction Menubar({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n data-slot=\"menubar\"\n className={cn(\n \"bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarMenu({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />;\n}\n\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />;\n}\n\nfunction MenubarPortal({\n container,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return (\n <MenubarPrimitive.Portal\n data-slot=\"menubar-portal\"\n container={useResolvedPortalContainer(container)}\n {...props}\n />\n );\n}\n\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return (\n <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />\n );\n}\n\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPortal>\n <MenubarPrimitive.Content\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md\",\n className,\n )}\n {...props}\n />\n </MenubarPortal>\n );\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <MenubarPrimitive.Item\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n );\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.Label\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n data-slot=\"menubar-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />;\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n );\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n};\n"],"mappings":";;;;;;;AAOA,SAAS,QAAQ,EACf,WACA,GAAG,SACkD;AACrD,QACE,oBAAC,iBAAiB;EAChB,aAAU;EACV,WAAW,GACT,6EACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,GAAG,SACkD;AACrD,QAAO,oBAAC,iBAAiB;EAAK,aAAU;EAAe,GAAI;GAAS;;AAGtE,SAAS,aAAa,EACpB,GAAG,SACmD;AACtD,QAAO,oBAAC,iBAAiB;EAAM,aAAU;EAAgB,GAAI;GAAS;;AAGxE,SAAS,cAAc,EACrB,WACA,GAAG,SACoD;AACvD,QACE,oBAAC,iBAAiB;EAChB,aAAU;EACV,WAAW,2BAA2B,UAAU;EAChD,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,GAAG,SACwD;AAC3D,QACE,oBAAC,iBAAiB;EAAW,aAAU;EAAsB,GAAI;GAAS;;AAI9E,SAAS,eAAe,EACtB,WACA,GAAG,SACqD;AACxD,QACE,oBAAC,iBAAiB;EAChB,aAAU;EACV,WAAW,GACT,2MACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,eAAe,EACtB,WACA,QAAQ,SACR,cAAc,IACd,aAAa,GACb,GAAG,SACqD;AACxD,QACE,oBAAC,2BACC,oBAAC,iBAAiB;EAChB,aAAU;EACH;EACM;EACD;EACZ,WAAW,GACT,4cACA,UACD;EACD,GAAI;GACJ,GACY;;AAIpB,SAAS,YAAY,EACnB,WACA,OACA,UAAU,WACV,GAAG,SAIF;AACD,QACE,oBAAC,iBAAiB;EAChB,aAAU;EACV,cAAY;EACZ,gBAAc;EACd,WAAW,GACT,+mBACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,oBAAoB,EAC3B,WACA,UACA,SACA,GAAG,SAC0D;AAC7D,QACE,qBAAC,iBAAiB;EAChB,aAAU;EACV,WAAW,GACT,gTACA,UACD;EACQ;EACT,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,iBAAiB,2BAChB,oBAAC,aAAU,WAAU,WAAW,GACD;IAC5B,EACN;GAC6B;;AAIpC,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;AAC1D,QACE,qBAAC,iBAAiB;EAChB,aAAU;EACV,WAAW,GACT,gTACA,UACD;EACD,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,iBAAiB,2BAChB,oBAAC,cAAW,WAAU,wBAAwB,GACf;IAC5B,EACN;GAC0B;;AAIjC,SAAS,aAAa,EACpB,WACA,OACA,GAAG,SAGF;AACD,QACE,oBAAC,iBAAiB;EAChB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,qDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,WACA,GAAG,SACuD;AAC1D,QACE,oBAAC,iBAAiB;EAChB,aAAU;EACV,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAClB,GAAG,SACiD;AACpD,QAAO,oBAAC,iBAAiB;EAAI,aAAU;EAAc,GAAI;GAAS;;AAGpE,SAAS,kBAAkB,EACzB,WACA,OACA,UACA,GAAG,SAGF;AACD,QACE,qBAAC,iBAAiB;EAChB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,gOACA,UACD;EACD,GAAI;aAEH,UACD,oBAAC,oBAAiB,WAAU,oBAAoB;GACpB;;AAIlC,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,iBAAiB;EAChB,aAAU;EACV,WAAW,GACT,2eACA,UACD;EACD,GAAI;GACJ"}
1
+ {"version":3,"file":"menubar.js","names":[],"sources":["../../../src/react/ui/menubar.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { useResolvedPortalContainer } from \"../portal-container-context\";\n\n/** Horizontal menu bar with dropdown menus */\nfunction Menubar({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n data-slot=\"menubar\"\n className={cn(\n \"bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarMenu({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />;\n}\n\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />;\n}\n\nfunction MenubarPortal({\n container,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return (\n <MenubarPrimitive.Portal\n data-slot=\"menubar-portal\"\n container={useResolvedPortalContainer(container)}\n {...props}\n />\n );\n}\n\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return (\n <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />\n );\n}\n\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPortal>\n <MenubarPrimitive.Content\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 min-w-[12rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md\",\n className,\n )}\n {...props}\n />\n </MenubarPortal>\n );\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <MenubarPrimitive.Item\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n );\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.Label\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n data-slot=\"menubar-separator\"\n className={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"text-muted-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />;\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-[inset]:pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n );\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-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 z-50 min-w-[8rem] origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n};\n"],"mappings":"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"}
@@ -4,6 +4,7 @@ import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
4
4
  import * as class_variance_authority_types9 from "class-variance-authority/types";
5
5
 
6
6
  //#region src/react/ui/navigation-menu.d.ts
7
+ /** Horizontal navigation menu with dropdown submenus */
7
8
  declare function NavigationMenu({
8
9
  className,
9
10
  children,
@@ -12,32 +13,39 @@ declare function NavigationMenu({
12
13
  }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
13
14
  viewport?: boolean;
14
15
  }): react_jsx_runtime185.JSX.Element;
16
+ /** Container list for navigation menu items */
15
17
  declare function NavigationMenuList({
16
18
  className,
17
19
  ...props
18
20
  }: React$1.ComponentProps<typeof NavigationMenuPrimitive.List>): react_jsx_runtime185.JSX.Element;
21
+ /** Individual navigation menu item */
19
22
  declare function NavigationMenuItem({
20
23
  className,
21
24
  ...props
22
25
  }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Item>): react_jsx_runtime185.JSX.Element;
23
26
  declare const navigationMenuTriggerStyle: (props?: class_variance_authority_types9.ClassProp | undefined) => string;
27
+ /** Button that opens a navigation submenu */
24
28
  declare function NavigationMenuTrigger({
25
29
  className,
26
30
  children,
27
31
  ...props
28
32
  }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Trigger>): react_jsx_runtime185.JSX.Element;
33
+ /** Dropdown content area for navigation submenu */
29
34
  declare function NavigationMenuContent({
30
35
  className,
31
36
  ...props
32
37
  }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Content>): react_jsx_runtime185.JSX.Element;
38
+ /** Viewport container for navigation menu content */
33
39
  declare function NavigationMenuViewport({
34
40
  className,
35
41
  ...props
36
42
  }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Viewport>): react_jsx_runtime185.JSX.Element;
43
+ /** Clickable link within navigation menu */
37
44
  declare function NavigationMenuLink({
38
45
  className,
39
46
  ...props
40
47
  }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Link>): react_jsx_runtime185.JSX.Element;
48
+ /** Visual indicator for active navigation menu item */
41
49
  declare function NavigationMenuIndicator({
42
50
  className,
43
51
  ...props
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-menu.d.ts","names":[],"sources":["../../../src/react/ui/navigation-menu.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAOS,cAAA;;;;;GAKN,OAAA,CAAM,sBAAsB,uBAAA,CAAwB;;IAEtD,oBAAA,CAAA,GAAA,CAAA;iBAiBQ,kBAAA;;;GAGN,OAAA,CAAM,sBAAsB,uBAAA,CAAwB,QAAK,oBAAA,CAAA,GAAA,CAAA;AAjCe,iBA8ClE,kBAAA,CAxCc;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA2CpB,OAAA,CAAM,cA3Cc,CAAA,OA2CQ,uBAAA,CAAwB,IA3ChC,CAAA,CAAA,EA2CqC,oBAAA,CAAA,GAAA,CAAA,OA3CrC;cAqDjB,0BArDiB,EAAA,CAAA,KAAA,CAAA,EAuDtB,+BAAA,CAF+B,SAAA,GArDT,SAAA,EAAA,GAAA,MAAA;iBAyDd,qBAAA,CAxDP;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA4DC,OAAA,CAAM,cA5DP,CAAA,OA4D6B,uBAAA,CAAwB,OA5DrD,CAAA,CAAA,EA4D6D,oBAAA,CAAA,GAAA,CAAA,OA5D7D;iBA4EO,qBAAA,CA3EP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8EC,OAAA,CAAM,cA9EP,CAAA,OA8E6B,uBAAA,CAAwB,OA9ErD,CAAA,CAAA,EA8E6D,oBAAA,CAAA,GAAA,CAAA,OA9E7D;iBA4FO,sBAAA,CA3FP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8FC,OAAA,CAAM,cA9FP,CAAA,OA8F6B,uBAAA,CAAwB,QA9FrD,CAAA,CAAA,EA8F8D,oBAAA,CAAA,GAAA,CAAA,OA9F9D;iBAiHO,kBAAA,CA/G8C;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkHpD,OAAA,CAAM,cAlH8C,CAAA,OAkHxB,uBAAA,CAAwB,IAlHA,CAAA,CAAA,EAkHK,oBAAA,CAAA,GAAA,CAAA,OAlHL;iBA+H9C,uBAAA,CA/HA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkIN,OAAA,CAAM,cAlIA,CAAA,OAkIsB,uBAAA,CAAwB,SAlI9C,CAAA,CAAA,EAkIwD,oBAAA,CAAA,GAAA,CAAA,OAlIxD"}
1
+ {"version":3,"file":"navigation-menu.d.ts","names":[],"sources":["../../../src/react/ui/navigation-menu.tsx"],"sourcesContent":[],"mappings":";;;;;;;iBAQS,cAAA;;;;;GAKN,OAAA,CAAM,sBAAsB,uBAAA,CAAwB;;IAEtD,oBAAA,CAAA,GAAA,CAAA;AAd0E;iBAgClE,kBAAA,CAzBc;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4BpB,OAAA,CAAM,cA5Bc,CAAA,OA4BQ,uBAAA,CAAwB,IA5BhC,CAAA,CAAA,EA4BqC,oBAAA,CAAA,GAAA,CAAA,OA5BrC;;iBA0Cd,kBAAA,CAxCP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA2CC,OAAA,CAAM,cA3CP,CAAA,OA2C6B,uBAAA,CAAwB,IA3CrD,CAAA,CAAA,EA2C0D,oBAAA,CAAA,GAAA,CAAA,OA3C1D;cAqDI,0BApDJ,EAAA,CAAA,KAAA,CAAA,EAsDD,+BAAA,CAF+B,SAAA,GApD9B,SAAA,EAAA,GAAA,MAAA;;iBAyDO,qBAAA,CAvDA;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA2DN,OAAA,CAAM,cA3DA,CAAA,OA2DsB,uBAAA,CAAwB,OA3D9C,CAAA,CAAA,EA2DsD,oBAAA,CAAA,GAAA,CAAA,OA3DtD;;iBA4EA,qBAAA,CA1ER;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6EE,OAAA,CAAM,cA7ER,CAAA,OA6E8B,uBAAA,CAAwB,OA7EtD,CAAA,CAAA,EA6E8D,oBAAA,CAAA,GAAA,CAAA,OA7E9D;AAAA;iBA4FQ,sBAAA,CA1EkB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6ExB,OAAA,CAAM,cA7EkB,CAAA,OA6EI,uBAAA,CAAwB,QA7E5B,CAAA,CAAA,EA6EqC,oBAAA,CAAA,GAAA,CAAA,OA7ErC;;iBAiGlB,kBAAA,CA9F8C;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiGpD,OAAA,CAAM,cAjG8C,CAAA,OAiGxB,uBAAA,CAAwB,IAjGA,CAAA,CAAA,EAiGK,oBAAA,CAAA,GAAA,CAAA,OAjGL;;iBA+G9C,uBAAA,CA/GmD;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkHzD,OAAA,CAAM,cAlHmD,CAAA,OAkH7B,uBAAA,CAAwB,SAlHK,CAAA,CAAA,EAkHK,oBAAA,CAAA,GAAA,CAAA,OAlHL"}