@databricks/appkit-ui 0.3.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) 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 +8 -19
  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 +7 -28
  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/base.d.ts +2 -2
  28. package/dist/react/charts/base.d.ts.map +1 -1
  29. package/dist/react/charts/create-chart.d.ts +2 -2
  30. package/dist/react/charts/create-chart.d.ts.map +1 -1
  31. package/dist/react/charts/heatmap/index.d.ts +9 -24
  32. package/dist/react/charts/heatmap/index.d.ts.map +1 -1
  33. package/dist/react/charts/heatmap/index.js +6 -22
  34. package/dist/react/charts/heatmap/index.js.map +1 -1
  35. package/dist/react/charts/line/index.d.ts +8 -20
  36. package/dist/react/charts/line/index.d.ts.map +1 -1
  37. package/dist/react/charts/line/index.js +5 -18
  38. package/dist/react/charts/line/index.js.map +1 -1
  39. package/dist/react/charts/normalize.js +16 -16
  40. package/dist/react/charts/normalize.js.map +1 -1
  41. package/dist/react/charts/options.d.ts.map +1 -1
  42. package/dist/react/charts/pie/index.d.ts +13 -35
  43. package/dist/react/charts/pie/index.d.ts.map +1 -1
  44. package/dist/react/charts/pie/index.js +9 -32
  45. package/dist/react/charts/pie/index.js.map +1 -1
  46. package/dist/react/charts/radar/index.d.ts +8 -18
  47. package/dist/react/charts/radar/index.d.ts.map +1 -1
  48. package/dist/react/charts/radar/index.js +5 -16
  49. package/dist/react/charts/radar/index.js.map +1 -1
  50. package/dist/react/charts/scatter/index.d.ts +8 -18
  51. package/dist/react/charts/scatter/index.d.ts.map +1 -1
  52. package/dist/react/charts/scatter/index.js +5 -16
  53. package/dist/react/charts/scatter/index.js.map +1 -1
  54. package/dist/react/charts/wrapper.d.ts +2 -2
  55. package/dist/react/charts/wrapper.d.ts.map +1 -1
  56. package/dist/react/hooks/use-analytics-query.js +12 -12
  57. package/dist/react/hooks/use-analytics-query.js.map +1 -1
  58. package/dist/react/table/data-table.d.ts +6 -3
  59. package/dist/react/table/data-table.d.ts.map +1 -1
  60. package/dist/react/table/data-table.js +4 -1
  61. package/dist/react/table/data-table.js.map +1 -1
  62. package/dist/react/table/table-wrapper.js +3 -3
  63. package/dist/react/table/table-wrapper.js.map +1 -1
  64. package/dist/react/ui/accordion.d.ts +9 -5
  65. package/dist/react/ui/accordion.d.ts.map +1 -1
  66. package/dist/react/ui/accordion.js +4 -0
  67. package/dist/react/ui/accordion.js.map +1 -1
  68. package/dist/react/ui/alert-dialog.d.ts +23 -12
  69. package/dist/react/ui/alert-dialog.d.ts.map +1 -1
  70. package/dist/react/ui/alert-dialog.js +11 -0
  71. package/dist/react/ui/alert-dialog.js.map +1 -1
  72. package/dist/react/ui/alert.d.ts +7 -4
  73. package/dist/react/ui/alert.d.ts.map +1 -1
  74. package/dist/react/ui/alert.js +3 -0
  75. package/dist/react/ui/alert.js.map +1 -1
  76. package/dist/react/ui/aspect-ratio.d.ts +3 -2
  77. package/dist/react/ui/aspect-ratio.d.ts.map +1 -1
  78. package/dist/react/ui/aspect-ratio.js +1 -0
  79. package/dist/react/ui/aspect-ratio.js.map +1 -1
  80. package/dist/react/ui/avatar.d.ts +7 -4
  81. package/dist/react/ui/avatar.d.ts.map +1 -1
  82. package/dist/react/ui/avatar.js +3 -0
  83. package/dist/react/ui/avatar.js.map +1 -1
  84. package/dist/react/ui/badge.d.ts +3 -2
  85. package/dist/react/ui/badge.d.ts.map +1 -1
  86. package/dist/react/ui/badge.js +1 -0
  87. package/dist/react/ui/badge.js.map +1 -1
  88. package/dist/react/ui/breadcrumb.d.ts +15 -8
  89. package/dist/react/ui/breadcrumb.d.ts.map +1 -1
  90. package/dist/react/ui/breadcrumb.js +7 -0
  91. package/dist/react/ui/breadcrumb.js.map +1 -1
  92. package/dist/react/ui/button-group.d.ts +7 -4
  93. package/dist/react/ui/button-group.d.ts.map +1 -1
  94. package/dist/react/ui/button-group.js +3 -0
  95. package/dist/react/ui/button-group.js.map +1 -1
  96. package/dist/react/ui/button.d.ts +3 -2
  97. package/dist/react/ui/button.d.ts.map +1 -1
  98. package/dist/react/ui/button.js +1 -0
  99. package/dist/react/ui/button.js.map +1 -1
  100. package/dist/react/ui/calendar.d.ts +5 -3
  101. package/dist/react/ui/calendar.d.ts.map +1 -1
  102. package/dist/react/ui/calendar.js +14 -12
  103. package/dist/react/ui/calendar.js.map +1 -1
  104. package/dist/react/ui/card.d.ts +15 -8
  105. package/dist/react/ui/card.d.ts.map +1 -1
  106. package/dist/react/ui/card.js +7 -0
  107. package/dist/react/ui/card.js.map +1 -1
  108. package/dist/react/ui/carousel.d.ts +11 -6
  109. package/dist/react/ui/carousel.d.ts.map +1 -1
  110. package/dist/react/ui/carousel.js +9 -4
  111. package/dist/react/ui/carousel.js.map +1 -1
  112. package/dist/react/ui/chart.d.ts +6 -5
  113. package/dist/react/ui/chart.d.ts.map +1 -1
  114. package/dist/react/ui/chart.js +2 -1
  115. package/dist/react/ui/chart.js.map +1 -1
  116. package/dist/react/ui/checkbox.d.ts +3 -2
  117. package/dist/react/ui/checkbox.d.ts.map +1 -1
  118. package/dist/react/ui/checkbox.js +1 -0
  119. package/dist/react/ui/checkbox.js.map +1 -1
  120. package/dist/react/ui/collapsible.d.ts +7 -4
  121. package/dist/react/ui/collapsible.d.ts.map +1 -1
  122. package/dist/react/ui/collapsible.js +3 -0
  123. package/dist/react/ui/collapsible.js.map +1 -1
  124. package/dist/react/ui/command.d.ts +19 -10
  125. package/dist/react/ui/command.d.ts.map +1 -1
  126. package/dist/react/ui/command.js +9 -0
  127. package/dist/react/ui/command.js.map +1 -1
  128. package/dist/react/ui/context-menu.d.ts +17 -16
  129. package/dist/react/ui/context-menu.d.ts.map +1 -1
  130. package/dist/react/ui/context-menu.js +1 -0
  131. package/dist/react/ui/context-menu.js.map +1 -1
  132. package/dist/react/ui/dialog.d.ts +21 -11
  133. package/dist/react/ui/dialog.d.ts.map +1 -1
  134. package/dist/react/ui/dialog.js +10 -0
  135. package/dist/react/ui/dialog.js.map +1 -1
  136. package/dist/react/ui/drawer.d.ts +21 -11
  137. package/dist/react/ui/drawer.d.ts.map +1 -1
  138. package/dist/react/ui/drawer.js +10 -0
  139. package/dist/react/ui/drawer.js.map +1 -1
  140. package/dist/react/ui/dropdown-menu.d.ts +17 -16
  141. package/dist/react/ui/dropdown-menu.d.ts.map +1 -1
  142. package/dist/react/ui/dropdown-menu.js +1 -0
  143. package/dist/react/ui/dropdown-menu.js.map +1 -1
  144. package/dist/react/ui/empty.d.ts +8 -7
  145. package/dist/react/ui/empty.d.ts.map +1 -1
  146. package/dist/react/ui/empty.js +1 -0
  147. package/dist/react/ui/empty.js.map +1 -1
  148. package/dist/react/ui/field.d.ts +21 -11
  149. package/dist/react/ui/field.d.ts.map +1 -1
  150. package/dist/react/ui/field.js +10 -0
  151. package/dist/react/ui/field.js.map +1 -1
  152. package/dist/react/ui/form.d.ts +14 -7
  153. package/dist/react/ui/form.d.ts.map +1 -1
  154. package/dist/react/ui/form.js +7 -0
  155. package/dist/react/ui/form.js.map +1 -1
  156. package/dist/react/ui/hover-card.d.ts +5 -4
  157. package/dist/react/ui/hover-card.d.ts.map +1 -1
  158. package/dist/react/ui/hover-card.js +1 -0
  159. package/dist/react/ui/hover-card.js.map +1 -1
  160. package/dist/react/ui/input-group.d.ts +13 -7
  161. package/dist/react/ui/input-group.d.ts.map +1 -1
  162. package/dist/react/ui/input-group.js +6 -0
  163. package/dist/react/ui/input-group.js.map +1 -1
  164. package/dist/react/ui/input-otp.d.ts +9 -5
  165. package/dist/react/ui/input-otp.d.ts.map +1 -1
  166. package/dist/react/ui/input-otp.js +4 -0
  167. package/dist/react/ui/input-otp.js.map +1 -1
  168. package/dist/react/ui/input.d.ts +3 -2
  169. package/dist/react/ui/input.d.ts.map +1 -1
  170. package/dist/react/ui/input.js +1 -0
  171. package/dist/react/ui/input.js.map +1 -1
  172. package/dist/react/ui/item.d.ts +12 -11
  173. package/dist/react/ui/item.d.ts.map +1 -1
  174. package/dist/react/ui/item.js +1 -0
  175. package/dist/react/ui/item.js.map +1 -1
  176. package/dist/react/ui/kbd.d.ts +4 -3
  177. package/dist/react/ui/kbd.d.ts.map +1 -1
  178. package/dist/react/ui/kbd.js +1 -0
  179. package/dist/react/ui/kbd.js.map +1 -1
  180. package/dist/react/ui/label.d.ts +3 -2
  181. package/dist/react/ui/label.d.ts.map +1 -1
  182. package/dist/react/ui/label.js +1 -0
  183. package/dist/react/ui/label.js.map +1 -1
  184. package/dist/react/ui/menubar.d.ts +18 -17
  185. package/dist/react/ui/menubar.d.ts.map +1 -1
  186. package/dist/react/ui/menubar.js +1 -0
  187. package/dist/react/ui/menubar.js.map +1 -1
  188. package/dist/react/ui/navigation-menu.d.ts +17 -9
  189. package/dist/react/ui/navigation-menu.d.ts.map +1 -1
  190. package/dist/react/ui/navigation-menu.js +8 -0
  191. package/dist/react/ui/navigation-menu.js.map +1 -1
  192. package/dist/react/ui/pagination.d.ts +15 -8
  193. package/dist/react/ui/pagination.d.ts.map +1 -1
  194. package/dist/react/ui/pagination.js +7 -0
  195. package/dist/react/ui/pagination.js.map +1 -1
  196. package/dist/react/ui/popover.d.ts +6 -5
  197. package/dist/react/ui/popover.d.ts.map +1 -1
  198. package/dist/react/ui/popover.js +1 -0
  199. package/dist/react/ui/popover.js.map +1 -1
  200. package/dist/react/ui/progress.d.ts +3 -2
  201. package/dist/react/ui/progress.d.ts.map +1 -1
  202. package/dist/react/ui/progress.js +1 -0
  203. package/dist/react/ui/progress.js.map +1 -1
  204. package/dist/react/ui/radio-group.d.ts +4 -3
  205. package/dist/react/ui/radio-group.d.ts.map +1 -1
  206. package/dist/react/ui/radio-group.js +1 -0
  207. package/dist/react/ui/radio-group.js.map +1 -1
  208. package/dist/react/ui/resizable.d.ts +7 -4
  209. package/dist/react/ui/resizable.d.ts.map +1 -1
  210. package/dist/react/ui/resizable.js +3 -0
  211. package/dist/react/ui/resizable.js.map +1 -1
  212. package/dist/react/ui/scroll-area.d.ts +5 -3
  213. package/dist/react/ui/scroll-area.d.ts.map +1 -1
  214. package/dist/react/ui/scroll-area.js +2 -0
  215. package/dist/react/ui/scroll-area.js.map +1 -1
  216. package/dist/react/ui/select.d.ts +23 -11
  217. package/dist/react/ui/select.d.ts.map +1 -1
  218. package/dist/react/ui/select.js +12 -0
  219. package/dist/react/ui/select.js.map +1 -1
  220. package/dist/react/ui/separator.d.ts +3 -2
  221. package/dist/react/ui/separator.d.ts.map +1 -1
  222. package/dist/react/ui/separator.js +1 -0
  223. package/dist/react/ui/separator.js.map +1 -1
  224. package/dist/react/ui/sheet.d.ts +17 -9
  225. package/dist/react/ui/sheet.d.ts.map +1 -1
  226. package/dist/react/ui/sheet.js +10 -0
  227. package/dist/react/ui/sheet.js.map +1 -1
  228. package/dist/react/ui/sidebar.d.ts +46 -24
  229. package/dist/react/ui/sidebar.d.ts.map +1 -1
  230. package/dist/react/ui/sidebar.js +23 -1
  231. package/dist/react/ui/sidebar.js.map +1 -1
  232. package/dist/react/ui/skeleton.d.ts +3 -2
  233. package/dist/react/ui/skeleton.d.ts.map +1 -1
  234. package/dist/react/ui/skeleton.js +1 -0
  235. package/dist/react/ui/skeleton.js.map +1 -1
  236. package/dist/react/ui/slider.d.ts +3 -2
  237. package/dist/react/ui/slider.d.ts.map +1 -1
  238. package/dist/react/ui/slider.js +1 -0
  239. package/dist/react/ui/slider.js.map +1 -1
  240. package/dist/react/ui/sonner.d.ts +3 -2
  241. package/dist/react/ui/sonner.d.ts.map +1 -1
  242. package/dist/react/ui/sonner.js +1 -0
  243. package/dist/react/ui/sonner.js.map +1 -1
  244. package/dist/react/ui/spinner.d.ts +3 -2
  245. package/dist/react/ui/spinner.d.ts.map +1 -1
  246. package/dist/react/ui/spinner.js +1 -0
  247. package/dist/react/ui/spinner.js.map +1 -1
  248. package/dist/react/ui/switch.d.ts +3 -2
  249. package/dist/react/ui/switch.d.ts.map +1 -1
  250. package/dist/react/ui/switch.js +1 -0
  251. package/dist/react/ui/switch.js.map +1 -1
  252. package/dist/react/ui/table.d.ts +10 -9
  253. package/dist/react/ui/table.d.ts.map +1 -1
  254. package/dist/react/ui/table.js +1 -0
  255. package/dist/react/ui/table.js.map +1 -1
  256. package/dist/react/ui/tabs.d.ts +9 -5
  257. package/dist/react/ui/tabs.d.ts.map +1 -1
  258. package/dist/react/ui/tabs.js +4 -0
  259. package/dist/react/ui/tabs.js.map +1 -1
  260. package/dist/react/ui/textarea.d.ts +3 -2
  261. package/dist/react/ui/textarea.d.ts.map +1 -1
  262. package/dist/react/ui/textarea.js +1 -0
  263. package/dist/react/ui/textarea.js.map +1 -1
  264. package/dist/react/ui/toggle-group.d.ts +4 -3
  265. package/dist/react/ui/toggle-group.d.ts.map +1 -1
  266. package/dist/react/ui/toggle-group.js +1 -0
  267. package/dist/react/ui/toggle-group.js.map +1 -1
  268. package/dist/react/ui/toggle.d.ts +3 -2
  269. package/dist/react/ui/toggle.d.ts.map +1 -1
  270. package/dist/react/ui/toggle.js +1 -0
  271. package/dist/react/ui/toggle.js.map +1 -1
  272. package/dist/react/ui/tooltip.d.ts +7 -5
  273. package/dist/react/ui/tooltip.d.ts.map +1 -1
  274. package/dist/react/ui/tooltip.js +2 -0
  275. package/dist/react/ui/tooltip.js.map +1 -1
  276. package/docs/docs/api/appkit/Class.AppKitError/index.html +77 -0
  277. package/docs/docs/api/appkit/Class.AppKitError.md +154 -0
  278. package/docs/docs/api/appkit/Class.AuthenticationError/index.html +110 -0
  279. package/docs/docs/api/appkit/Class.AuthenticationError.md +236 -0
  280. package/docs/docs/api/appkit/Class.ConfigurationError/index.html +112 -0
  281. package/docs/docs/api/appkit/Class.ConfigurationError.md +243 -0
  282. package/docs/docs/api/appkit/Class.ConnectionError/index.html +120 -0
  283. package/docs/docs/api/appkit/Class.ConnectionError.md +265 -0
  284. package/docs/docs/api/appkit/Class.ExecutionError/index.html +116 -0
  285. package/docs/docs/api/appkit/Class.ExecutionError.md +250 -0
  286. package/docs/docs/api/appkit/Class.InitializationError/index.html +104 -0
  287. package/docs/docs/api/appkit/Class.InitializationError.md +222 -0
  288. package/docs/docs/api/appkit/Class.Plugin/index.html +149 -0
  289. package/docs/docs/api/appkit/Class.Plugin.md +392 -0
  290. package/docs/docs/api/appkit/Class.ServerError/index.html +108 -0
  291. package/docs/docs/api/appkit/Class.ServerError.md +229 -0
  292. package/docs/docs/api/appkit/Class.TunnelError/index.html +108 -0
  293. package/docs/docs/api/appkit/Class.TunnelError.md +231 -0
  294. package/docs/docs/api/appkit/Class.ValidationError/index.html +106 -0
  295. package/docs/docs/api/appkit/Class.ValidationError.md +225 -0
  296. package/docs/docs/api/appkit/Function.appKitTypesPlugin/index.html +24 -0
  297. package/docs/docs/api/appkit/Function.appKitTypesPlugin.md +20 -0
  298. package/docs/docs/api/appkit/Function.createApp/index.html +24 -0
  299. package/docs/docs/api/appkit/Function.createApp.md +31 -0
  300. package/docs/docs/api/appkit/Function.isSQLTypeMarker/index.html +25 -0
  301. package/docs/docs/api/appkit/Function.isSQLTypeMarker.md +32 -0
  302. package/docs/docs/api/appkit/Interface.BasePluginConfig/index.html +28 -0
  303. package/docs/docs/api/appkit/Interface.BasePluginConfig.md +37 -0
  304. package/docs/docs/api/appkit/Interface.CacheConfig/index.html +63 -0
  305. package/docs/docs/api/appkit/Interface.CacheConfig.md +131 -0
  306. package/docs/docs/api/appkit/Interface.ITelemetry/index.html +73 -0
  307. package/docs/docs/api/appkit/Interface.ITelemetry.md +144 -0
  308. package/docs/docs/api/appkit/Interface.StreamExecutionSettings/index.html +26 -0
  309. package/docs/docs/api/appkit/Interface.StreamExecutionSettings.md +30 -0
  310. package/docs/docs/api/appkit/Interface.TelemetryConfig/index.html +32 -0
  311. package/docs/docs/api/appkit/Interface.TelemetryConfig.md +48 -0
  312. package/docs/docs/api/appkit/TypeAlias.IAppRouter/index.html +18 -0
  313. package/docs/docs/api/appkit/TypeAlias.IAppRouter.md +8 -0
  314. package/docs/docs/api/appkit/Variable.sql/index.html +98 -0
  315. package/docs/docs/api/appkit/Variable.sql.md +260 -0
  316. package/docs/docs/api/appkit/index.html +28 -0
  317. package/docs/docs/api/appkit-ui/data/AreaChart/index.html +29 -0
  318. package/docs/docs/api/appkit-ui/data/AreaChart.md +79 -0
  319. package/docs/docs/api/appkit-ui/data/BarChart/index.html +29 -0
  320. package/docs/docs/api/appkit-ui/data/BarChart.md +74 -0
  321. package/docs/docs/api/appkit-ui/data/DataTable/index.html +36 -0
  322. package/docs/docs/api/appkit-ui/data/DataTable.md +69 -0
  323. package/docs/docs/api/appkit-ui/data/DonutChart/index.html +29 -0
  324. package/docs/docs/api/appkit-ui/data/DonutChart.md +72 -0
  325. package/docs/docs/api/appkit-ui/data/HeatmapChart/index.html +35 -0
  326. package/docs/docs/api/appkit-ui/data/HeatmapChart.md +91 -0
  327. package/docs/docs/api/appkit-ui/data/LineChart/index.html +29 -0
  328. package/docs/docs/api/appkit-ui/data/LineChart.md +77 -0
  329. package/docs/docs/api/appkit-ui/data/PieChart/index.html +29 -0
  330. package/docs/docs/api/appkit-ui/data/PieChart.md +72 -0
  331. package/docs/docs/api/appkit-ui/data/RadarChart/index.html +29 -0
  332. package/docs/docs/api/appkit-ui/data/RadarChart.md +74 -0
  333. package/docs/docs/api/appkit-ui/data/ScatterChart/index.html +29 -0
  334. package/docs/docs/api/appkit-ui/data/ScatterChart.md +76 -0
  335. package/docs/docs/api/appkit-ui/index.html +23 -0
  336. package/docs/docs/api/appkit-ui/styling/index.html +74 -0
  337. package/docs/docs/api/appkit-ui/styling.md +81 -0
  338. package/docs/docs/api/appkit-ui/ui/Accordion/index.html +48 -0
  339. package/docs/docs/api/appkit-ui/ui/Accordion.md +139 -0
  340. package/docs/docs/api/appkit-ui/ui/Alert/index.html +41 -0
  341. package/docs/docs/api/appkit-ui/ui/Alert.md +89 -0
  342. package/docs/docs/api/appkit-ui/ui/AlertDialog/index.html +97 -0
  343. package/docs/docs/api/appkit-ui/ui/AlertDialog.md +282 -0
  344. package/docs/docs/api/appkit-ui/ui/AspectRatio/index.html +27 -0
  345. package/docs/docs/api/appkit-ui/ui/AspectRatio.md +46 -0
  346. package/docs/docs/api/appkit-ui/ui/Avatar/index.html +41 -0
  347. package/docs/docs/api/appkit-ui/ui/Avatar.md +90 -0
  348. package/docs/docs/api/appkit-ui/ui/Badge/index.html +27 -0
  349. package/docs/docs/api/appkit-ui/ui/Badge.md +38 -0
  350. package/docs/docs/api/appkit-ui/ui/Breadcrumb/index.html +69 -0
  351. package/docs/docs/api/appkit-ui/ui/Breadcrumb.md +193 -0
  352. package/docs/docs/api/appkit-ui/ui/Button/index.html +27 -0
  353. package/docs/docs/api/appkit-ui/ui/Button.md +39 -0
  354. package/docs/docs/api/appkit-ui/ui/ButtonGroup/index.html +38 -0
  355. package/docs/docs/api/appkit-ui/ui/ButtonGroup.md +68 -0
  356. package/docs/docs/api/appkit-ui/ui/Calendar/index.html +34 -0
  357. package/docs/docs/api/appkit-ui/ui/Calendar.md +154 -0
  358. package/docs/docs/api/appkit-ui/ui/Card/index.html +69 -0
  359. package/docs/docs/api/appkit-ui/ui/Card.md +222 -0
  360. package/docs/docs/api/appkit-ui/ui/Carousel/index.html +55 -0
  361. package/docs/docs/api/appkit-ui/ui/Carousel.md +152 -0
  362. package/docs/docs/api/appkit-ui/ui/ChartContainer/index.html +58 -0
  363. package/docs/docs/api/appkit-ui/ui/ChartContainer.md +343 -0
  364. package/docs/docs/api/appkit-ui/ui/Checkbox/index.html +27 -0
  365. package/docs/docs/api/appkit-ui/ui/Checkbox.md +53 -0
  366. package/docs/docs/api/appkit-ui/ui/Collapsible/index.html +41 -0
  367. package/docs/docs/api/appkit-ui/ui/Collapsible.md +125 -0
  368. package/docs/docs/api/appkit-ui/ui/Command/index.html +83 -0
  369. package/docs/docs/api/appkit-ui/ui/Command.md +287 -0
  370. package/docs/docs/api/appkit-ui/ui/ContextMenu/index.html +111 -0
  371. package/docs/docs/api/appkit-ui/ui/ContextMenu.md +419 -0
  372. package/docs/docs/api/appkit-ui/ui/Dialog/index.html +90 -0
  373. package/docs/docs/api/appkit-ui/ui/Dialog.md +285 -0
  374. package/docs/docs/api/appkit-ui/ui/Drawer/index.html +90 -0
  375. package/docs/docs/api/appkit-ui/ui/Drawer.md +387 -0
  376. package/docs/docs/api/appkit-ui/ui/DropdownMenu/index.html +111 -0
  377. package/docs/docs/api/appkit-ui/ui/DropdownMenu.md +478 -0
  378. package/docs/docs/api/appkit-ui/ui/Empty/index.html +54 -0
  379. package/docs/docs/api/appkit-ui/ui/Empty.md +109 -0
  380. package/docs/docs/api/appkit-ui/ui/Field/index.html +87 -0
  381. package/docs/docs/api/appkit-ui/ui/Field.md +201 -0
  382. package/docs/docs/api/appkit-ui/ui/FormControl/index.html +59 -0
  383. package/docs/docs/api/appkit-ui/ui/FormControl.md +128 -0
  384. package/docs/docs/api/appkit-ui/ui/HoverCard/index.html +39 -0
  385. package/docs/docs/api/appkit-ui/ui/HoverCard.md +131 -0
  386. package/docs/docs/api/appkit-ui/ui/Input/index.html +27 -0
  387. package/docs/docs/api/appkit-ui/ui/Input.md +35 -0
  388. package/docs/docs/api/appkit-ui/ui/InputGroup/index.html +59 -0
  389. package/docs/docs/api/appkit-ui/ui/InputGroup.md +123 -0
  390. package/docs/docs/api/appkit-ui/ui/InputOTP/index.html +48 -0
  391. package/docs/docs/api/appkit-ui/ui/InputOTP.md +124 -0
  392. package/docs/docs/api/appkit-ui/ui/Item/index.html +78 -0
  393. package/docs/docs/api/appkit-ui/ui/Item.md +185 -0
  394. package/docs/docs/api/appkit-ui/ui/Kbd/index.html +30 -0
  395. package/docs/docs/api/appkit-ui/ui/Kbd.md +39 -0
  396. package/docs/docs/api/appkit-ui/ui/Label/index.html +27 -0
  397. package/docs/docs/api/appkit-ui/ui/Label.md +44 -0
  398. package/docs/docs/api/appkit-ui/ui/Menubar/index.html +117 -0
  399. package/docs/docs/api/appkit-ui/ui/Menubar.md +484 -0
  400. package/docs/docs/api/appkit-ui/ui/NavigationMenu/index.html +76 -0
  401. package/docs/docs/api/appkit-ui/ui/NavigationMenu.md +338 -0
  402. package/docs/docs/api/appkit-ui/ui/Pagination/index.html +69 -0
  403. package/docs/docs/api/appkit-ui/ui/Pagination.md +191 -0
  404. package/docs/docs/api/appkit-ui/ui/Popover/index.html +45 -0
  405. package/docs/docs/api/appkit-ui/ui/Popover.md +173 -0
  406. package/docs/docs/api/appkit-ui/ui/Progress/index.html +27 -0
  407. package/docs/docs/api/appkit-ui/ui/Progress.md +51 -0
  408. package/docs/docs/api/appkit-ui/ui/RadioGroup/index.html +33 -0
  409. package/docs/docs/api/appkit-ui/ui/RadioGroup.md +83 -0
  410. package/docs/docs/api/appkit-ui/ui/ResizableHandle/index.html +41 -0
  411. package/docs/docs/api/appkit-ui/ui/ResizableHandle.md +136 -0
  412. package/docs/docs/api/appkit-ui/ui/ScrollArea/index.html +34 -0
  413. package/docs/docs/api/appkit-ui/ui/ScrollArea.md +83 -0
  414. package/docs/docs/api/appkit-ui/ui/Select/index.html +82 -0
  415. package/docs/docs/api/appkit-ui/ui/Select.md +267 -0
  416. package/docs/docs/api/appkit-ui/ui/Separator/index.html +27 -0
  417. package/docs/docs/api/appkit-ui/ui/Separator.md +56 -0
  418. package/docs/docs/api/appkit-ui/ui/Sheet/index.html +76 -0
  419. package/docs/docs/api/appkit-ui/ui/Sheet.md +236 -0
  420. package/docs/docs/api/appkit-ui/ui/Sidebar/index.html +183 -0
  421. package/docs/docs/api/appkit-ui/ui/Sidebar.md +490 -0
  422. package/docs/docs/api/appkit-ui/ui/Skeleton/index.html +27 -0
  423. package/docs/docs/api/appkit-ui/ui/Skeleton.md +43 -0
  424. package/docs/docs/api/appkit-ui/ui/Slider/index.html +27 -0
  425. package/docs/docs/api/appkit-ui/ui/Slider.md +61 -0
  426. package/docs/docs/api/appkit-ui/ui/Spinner/index.html +24 -0
  427. package/docs/docs/api/appkit-ui/ui/Spinner.md +22 -0
  428. package/docs/docs/api/appkit-ui/ui/Switch/index.html +27 -0
  429. package/docs/docs/api/appkit-ui/ui/Switch.md +46 -0
  430. package/docs/docs/api/appkit-ui/ui/Table/index.html +69 -0
  431. package/docs/docs/api/appkit-ui/ui/Table.md +236 -0
  432. package/docs/docs/api/appkit-ui/ui/Tabs/index.html +48 -0
  433. package/docs/docs/api/appkit-ui/ui/Tabs.md +177 -0
  434. package/docs/docs/api/appkit-ui/ui/Textarea/index.html +27 -0
  435. package/docs/docs/api/appkit-ui/ui/Textarea.md +35 -0
  436. package/docs/docs/api/appkit-ui/ui/Toaster/index.html +27 -0
  437. package/docs/docs/api/appkit-ui/ui/Toaster.md +75 -0
  438. package/docs/docs/api/appkit-ui/ui/Toggle/index.html +27 -0
  439. package/docs/docs/api/appkit-ui/ui/Toggle.md +48 -0
  440. package/docs/docs/api/appkit-ui/ui/ToggleGroup/index.html +33 -0
  441. package/docs/docs/api/appkit-ui/ui/ToggleGroup.md +88 -0
  442. package/docs/docs/api/appkit-ui/ui/Tooltip/index.html +46 -0
  443. package/docs/docs/api/appkit-ui/ui/Tooltip.md +134 -0
  444. package/docs/docs/api/appkit-ui.md +15 -0
  445. package/docs/docs/api/appkit.md +48 -0
  446. package/docs/docs/api/index.html +28 -0
  447. package/docs/docs/api.md +24 -0
  448. package/docs/docs/app-management/index.html +106 -0
  449. package/docs/docs/app-management.md +171 -0
  450. package/docs/docs/architecture/index.html +71 -0
  451. package/docs/docs/architecture.md +69 -0
  452. package/docs/docs/category/development/index.html +16 -0
  453. package/docs/docs/category/development.md +3 -0
  454. package/docs/docs/configuration/index.html +66 -0
  455. package/docs/docs/configuration.md +150 -0
  456. package/docs/docs/core-principles/index.html +38 -0
  457. package/docs/docs/core-principles.md +31 -0
  458. package/docs/docs/development/index.html +34 -0
  459. package/docs/docs/development/llm-guide/index.html +74 -0
  460. package/docs/docs/development/llm-guide.md +74 -0
  461. package/docs/docs/development/local-development/index.html +27 -0
  462. package/docs/docs/development/local-development.md +20 -0
  463. package/docs/docs/development/project-setup/index.html +69 -0
  464. package/docs/docs/development/project-setup.md +246 -0
  465. package/docs/docs/development/remote-bridge/index.html +76 -0
  466. package/docs/docs/development/remote-bridge.md +80 -0
  467. package/docs/docs/development/type-generation/index.html +65 -0
  468. package/docs/docs/development/type-generation.md +110 -0
  469. package/docs/docs/development.md +21 -0
  470. package/docs/docs/index.html +58 -0
  471. package/docs/docs/plugins/index.html +151 -0
  472. package/docs/docs/plugins.md +313 -0
  473. package/docs/docs.md +64 -0
  474. package/llms.txt +121 -1231
  475. package/package.json +7 -5
  476. package/scripts/postinstall.js +1 -1
  477. package/AGENTS.md +0 -1234
  478. package/bin/setup-claude.js +0 -190
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","names":[],"sources":["../../../src/react/ui/card.tsx"],"sourcesContent":["import type * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border border-border py-6 shadow-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6\", className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n};\n"],"mappings":";;;;AAIA,SAAS,KAAK,EAAE,WAAW,GAAG,SAAsC;AAClE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,mGACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,4JACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,UAAU,EAAE,WAAW,GAAG,SAAsC;AACvE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,8BAA8B,UAAU;EACtD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAsC;AAC7E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,kEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,QAAQ,UAAU;EAChC,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,2CAA2C,UAAU;EACnE,GAAI;GACJ"}
1
+ {"version":3,"file":"card.js","names":[],"sources":["../../../src/react/ui/card.tsx"],"sourcesContent":["import type * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Container for grouping related content with header, body, and footer sections */\nfunction Card({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border border-border py-6 shadow-sm\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Header section containing title, description, and actions */\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Title heading for the card */\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"leading-none font-semibold\", className)}\n {...props}\n />\n );\n}\n\n/** Descriptive text providing context for the card */\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\n/** Action buttons or controls positioned in the card header */\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Main content area of the card */\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"px-6\", className)}\n {...props}\n />\n );\n}\n\n/** Footer section for additional actions or information */\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n};\n"],"mappings":";;;;;AAKA,SAAS,KAAK,EAAE,WAAW,GAAG,SAAsC;AAClE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,mGACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,4JACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,UAAU,EAAE,WAAW,GAAG,SAAsC;AACvE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,8BAA8B,UAAU;EACtD,GAAI;GACJ;;;AAKN,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAsC;AAC7E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,kEACA,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,QAAQ,UAAU;EAChC,GAAI;GACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,2CAA2C,UAAU;EACnE,GAAI;GACJ"}
@@ -1,6 +1,6 @@
1
1
  import { Button } from "./button.js";
2
2
  import * as React$1 from "react";
3
- import * as react_jsx_runtime48 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime59 from "react/jsx-runtime";
4
4
  import useEmblaCarousel, { UseEmblaCarouselType } from "embla-carousel-react";
5
5
 
6
6
  //#region src/react/ui/carousel.d.ts
@@ -14,6 +14,7 @@ type CarouselProps = {
14
14
  orientation?: "horizontal" | "vertical";
15
15
  setApi?: (api: CarouselApi) => void;
16
16
  };
17
+ /** Slideshow component for cycling through content with navigation controls */
17
18
  declare function Carousel({
18
19
  orientation,
19
20
  opts,
@@ -22,27 +23,31 @@ declare function Carousel({
22
23
  className,
23
24
  children,
24
25
  ...props
25
- }: React$1.ComponentProps<"div"> & CarouselProps): react_jsx_runtime48.JSX.Element;
26
+ }: React$1.ComponentProps<"div"> & CarouselProps): react_jsx_runtime59.JSX.Element;
27
+ /** Container for carousel slides with horizontal or vertical scrolling */
26
28
  declare function CarouselContent({
27
29
  className,
28
30
  ...props
29
- }: React$1.ComponentProps<"div">): react_jsx_runtime48.JSX.Element;
31
+ }: React$1.ComponentProps<"div">): react_jsx_runtime59.JSX.Element;
32
+ /** Individual slide within the carousel */
30
33
  declare function CarouselItem({
31
34
  className,
32
35
  ...props
33
- }: React$1.ComponentProps<"div">): react_jsx_runtime48.JSX.Element;
36
+ }: React$1.ComponentProps<"div">): react_jsx_runtime59.JSX.Element;
37
+ /** Button to navigate to the previous carousel slide */
34
38
  declare function CarouselPrevious({
35
39
  className,
36
40
  variant,
37
41
  size,
38
42
  ...props
39
- }: React$1.ComponentProps<typeof Button>): react_jsx_runtime48.JSX.Element;
43
+ }: React$1.ComponentProps<typeof Button>): react_jsx_runtime59.JSX.Element;
44
+ /** Button to navigate to the next carousel slide */
40
45
  declare function CarouselNext({
41
46
  className,
42
47
  variant,
43
48
  size,
44
49
  ...props
45
- }: React$1.ComponentProps<typeof Button>): react_jsx_runtime48.JSX.Element;
50
+ }: React$1.ComponentProps<typeof Button>): react_jsx_runtime59.JSX.Element;
46
51
  //#endregion
47
52
  export { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };
48
53
  //# sourceMappingURL=carousel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.d.ts","names":[],"sources":["../../../src/react/ui/carousel.tsx"],"sourcesContent":[],"mappings":";;;;;;KASK,WAAA,GAAc;KACd,qBAAA,GAAwB,kBAAkB;KAC1C,eAAA,GAAkB;AAJW,KAK7B,cAAA,GAAiB,qBAHH,CAAA,CAAA,CAAA;AAAoB,KAKlC,aAAA,GAJA;EAAqB,IAAA,CAAA,EAKjB,eALiB;SAAqB,CAAA,EAMnC,cANmC;aAAlB,CAAA,EAAA,YAAA,GAAA,UAAA;EAAU,MAAA,CAAA,EAAA,CAAA,GAAA,EAQtB,WARsB,EAAA,GAAA,IAAA;AAAA,CAAA;AACK,iBA+BnC,QAAA,CA9BU;EAAA,WAAG;EAAA,IAAA;EAAA,MAAA;EAAqB,OAAA;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EAsCxC,OAAA,CAAM,cAtCkC,CAAA,KAAA,CAAA,GAsCV,aAtCU,CAAA,EAsCG,mBAAA,CAAA,GAAA,CAAA,OAtCH;AAAA,iBAwHlC,eAAA,CAtHS;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAsHgC,OAAA,CAAM,cAtHtC,CAAA,KAAA,CAAA,CAAA,EAsH2D,mBAAA,CAAA,GAAA,CAAA,OAtH3D;iBA2IT,YAAA,CA3IS;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA2I6B,OAAA,CAAM,cA3InC,CAAA,KAAA,CAAA,CAAA,EA2IwD,mBAAA,CAAA,GAAA,CAAA,OA3IxD;iBA6JT,gBAAA,CA5JA;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAiKN,OAAA,CAAM,cAjKA,CAAA,OAiKsB,MAjKtB,CAAA,CAAA,EAiK6B,mBAAA,CAAA,GAAA,CAAA,OAjK7B;iBA0LA,YAAA,CAzLG;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EA8LT,OAAA,CAAM,cA9LG,CAAA,OA8LmB,MA9LnB,CAAA,CAAA,EA8L0B,mBAAA,CAAA,GAAA,CAAA,OA9L1B"}
1
+ {"version":3,"file":"carousel.d.ts","names":[],"sources":["../../../src/react/ui/carousel.tsx"],"sourcesContent":[],"mappings":";;;;;;KASK,WAAA,GAAc;KACd,qBAAA,GAAwB,kBAAkB;KAC1C,eAAA,GAAkB;AAJW,KAK7B,cAAA,GAAiB,qBAHH,CAAA,CAAA,CAAA;AAAoB,KAKlC,aAAA,GAJA;EAAqB,IAAA,CAAA,EAKjB,eALiB;SAAqB,CAAA,EAMnC,cANmC;aAAlB,CAAA,EAAA,YAAA,GAAA,UAAA;EAAU,MAAA,CAAA,EAAA,CAAA,GAAA,EAQtB,WARsB,EAAA,GAAA,IAAA;AAAA,CAAA;AACK;AACD,iBA+BlC,QAAA,CA7BS;EAAA,WAAA;EAAA,IAAA;EAAA,MAAA;EAAA,OAAA;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EAqCf,OAAA,CAAM,cArCS,CAAA,KAAA,CAAA,GAqCe,aArCf,CAAA,EAqC4B,mBAAA,CAAA,GAAA,CAAA,OArC5B;;iBAwHT,eAAA,CAvHA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuHyC,OAAA,CAAM,cAvH/C,CAAA,KAAA,CAAA,CAAA,EAuHoE,mBAAA,CAAA,GAAA,CAAA,OAvHpE;;iBA6IA,YAAA,CA1IQ;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0I8B,OAAA,CAAM,cA1IpC,CAAA,KAAA,CAAA,CAAA,EA0IyD,mBAAA,CAAA,GAAA,CAAA,OA1IzD;;AAAW,iBA6JnB,gBAAA,CApIQ;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAyId,OAAA,CAAM,cAzIQ,CAAA,OAyIc,MAzId,CAAA,CAAA,EAyIqB,mBAAA,CAAA,GAAA,CAAA,OAzIrB;;iBAmKR,YAAA,CAlKP;EAAA,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EAuKC,OAAA,CAAM,cAvKP,CAAA,OAuK6B,MAvK7B,CAAA,CAAA,EAuKoC,mBAAA,CAAA,GAAA,CAAA,OAvKpC"}
@@ -12,6 +12,7 @@ function useCarousel() {
12
12
  if (!context) throw new Error("useCarousel must be used within a <Carousel />");
13
13
  return context;
14
14
  }
15
+ /** Slideshow component for cycling through content with navigation controls */
15
16
  function Carousel({ orientation = "horizontal", opts, setApi, plugins, className, children, ...props }) {
16
17
  const [carouselRef, api] = useEmblaCarousel({
17
18
  ...opts,
@@ -19,10 +20,10 @@ function Carousel({ orientation = "horizontal", opts, setApi, plugins, className
19
20
  }, plugins);
20
21
  const [canScrollPrev, setCanScrollPrev] = React$1.useState(false);
21
22
  const [canScrollNext, setCanScrollNext] = React$1.useState(false);
22
- const onSelect = React$1.useCallback((api$1) => {
23
- if (!api$1) return;
24
- setCanScrollPrev(api$1.canScrollPrev());
25
- setCanScrollNext(api$1.canScrollNext());
23
+ const onSelect = React$1.useCallback((api) => {
24
+ if (!api) return;
25
+ setCanScrollPrev(api.canScrollPrev());
26
+ setCanScrollNext(api.canScrollNext());
26
27
  }, []);
27
28
  const scrollPrev = React$1.useCallback(() => {
28
29
  api?.scrollPrev();
@@ -74,6 +75,7 @@ function Carousel({ orientation = "horizontal", opts, setApi, plugins, className
74
75
  })
75
76
  });
76
77
  }
78
+ /** Container for carousel slides with horizontal or vertical scrolling */
77
79
  function CarouselContent({ className, ...props }) {
78
80
  const { carouselRef, orientation } = useCarousel();
79
81
  return /* @__PURE__ */ jsx("div", {
@@ -86,6 +88,7 @@ function CarouselContent({ className, ...props }) {
86
88
  })
87
89
  });
88
90
  }
91
+ /** Individual slide within the carousel */
89
92
  function CarouselItem({ className, ...props }) {
90
93
  const { orientation } = useCarousel();
91
94
  return /* @__PURE__ */ jsx("div", {
@@ -96,6 +99,7 @@ function CarouselItem({ className, ...props }) {
96
99
  ...props
97
100
  });
98
101
  }
102
+ /** Button to navigate to the previous carousel slide */
99
103
  function CarouselPrevious({ className, variant = "outline", size = "icon", ...props }) {
100
104
  const { orientation, scrollPrev, canScrollPrev } = useCarousel();
101
105
  return /* @__PURE__ */ jsxs(Button, {
@@ -112,6 +116,7 @@ function CarouselPrevious({ className, variant = "outline", size = "icon", ...pr
112
116
  })]
113
117
  });
114
118
  }
119
+ /** Button to navigate to the next carousel slide */
115
120
  function CarouselNext({ className, variant = "outline", size = "icon", ...props }) {
116
121
  const { orientation, scrollNext, canScrollNext } = useCarousel();
117
122
  return /* @__PURE__ */ jsxs(Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.js","names":["React","api"],"sources":["../../../src/react/ui/carousel.tsx"],"sourcesContent":["import * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n React.useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n ref={carouselRef}\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"carousel.js","names":["React"],"sources":["../../../src/react/ui/carousel.tsx"],"sourcesContent":["import * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\n/** Slideshow component for cycling through content with navigation controls */\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return;\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n React.useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n}\n\n/** Container for carousel slides with horizontal or vertical scrolling */\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n ref={carouselRef}\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n}\n\n/** Individual slide within the carousel */\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel();\n\n return (\n <div\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n );\n}\n\n/** Button to navigate to the previous carousel slide */\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n}\n\n/** Button to navigate to the next carousel slide */\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as react0 from "react";
2
- import * as react_jsx_runtime53 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime64 from "react/jsx-runtime";
3
3
  import * as RechartsPrimitive from "recharts";
4
4
  import * as recharts_types_util_types0 from "recharts/types/util/types";
5
5
  import * as recharts_types_component_Tooltip0 from "recharts/types/component/Tooltip";
@@ -21,6 +21,7 @@ type ChartConfig = { [k in string]: {
21
21
  color?: never;
22
22
  theme: Record<keyof typeof THEMES, string>;
23
23
  }) };
24
+ /** Container for rendering data visualizations using Recharts */
24
25
  declare function ChartContainer({
25
26
  id,
26
27
  className,
@@ -30,14 +31,14 @@ declare function ChartContainer({
30
31
  }: react0.ComponentProps<"div"> & {
31
32
  config: ChartConfig;
32
33
  children: react0.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
33
- }): react_jsx_runtime53.JSX.Element;
34
+ }): react_jsx_runtime64.JSX.Element;
34
35
  declare const ChartStyle: ({
35
36
  id,
36
37
  config
37
38
  }: {
38
39
  id: string;
39
40
  config: ChartConfig;
40
- }) => react_jsx_runtime53.JSX.Element | null;
41
+ }) => react_jsx_runtime64.JSX.Element | null;
41
42
  /**
42
43
  * A wrapper component for Recharts Tooltip with proper typing and documentation support.
43
44
  * It is needed to ensure the correct name is displayed in the docs.
@@ -93,7 +94,7 @@ declare function ChartTooltipContent({
93
94
  labelClassName?: string;
94
95
  nameKey?: string;
95
96
  labelKey?: string;
96
- }): react_jsx_runtime53.JSX.Element | null;
97
+ }): react_jsx_runtime64.JSX.Element | null;
97
98
  /**
98
99
  * A wrapper component for Recharts Legend with proper typing and documentation support.
99
100
  * It is needed to ensure the correct name is displayed in the docs.
@@ -110,7 +111,7 @@ declare function ChartLegendContent({
110
111
  payload?: any[];
111
112
  hideIcon?: boolean;
112
113
  nameKey?: string;
113
- }): react_jsx_runtime53.JSX.Element | null;
114
+ }): react_jsx_runtime64.JSX.Element | null;
114
115
  //#endregion
115
116
  export { ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
116
117
  //# sourceMappingURL=chart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart.d.ts","names":[],"sources":["../../../src/react/ui/chart.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;cAQM;;;;KAEM,WAAA;UAEA,MAAA,CAAM;EAJZ,IAAA,CAA8C,EAKzC,MAAA,CAAM,aALmC;AAExC,CAAA,GAAA,CAAA;EAAW,KAAA,CAAA,EAAA,MAAA;EAEX,KAAA,CAAM,EAAA,KAAA;IACP;EAGuC,KAAA,CAAA,EAAA,KAAA;EAApB,KAAA,EAAA,MAAA,CAAA,MAAA,OAAoB,MAApB,EAAA,MAAA,CAAA;AAAM,CAAA,CAAA,EAElC;iBAkBO,cAAA,CAAc;EAAA,EAAA;EAAA,SAAA;EAAA,QAAA;EAAA,MAAA;EAAA,GAAA;CAAA,EAMpB,MAAA,CAAM,cANc,CAAA,KAAA,CAAA,GAAA;QACrB,EAMQ,WANR;UACA,EAMU,MAAA,CAAM,cANhB,CAAA,OAOS,iBAAA,CAAkB,mBAP3B,CAAA,CAAA,UAAA,CAAA;IASD,mBAAA,CAAA,GAAA,CAAA,OARC;cAgCI,UA/BJ,EAAA,CAAA;EAAA,EAAA;EAAA;CAAA,EAAA;MAEC,MAAM;QACC,EA4BgD,WA5BhD;MA4B6D,mBAAA,CAAA,GAAA,CAAA,OAAA,GA1B1C,IAAA;;;;AAE5B;;cA8DK,YAtCc,EAsCF,MAAA,CAAA,yBAtCE,CAsCF,iBAAA,CAAA,0BAtCE,CAAA,GAAA,EAAA,GAAA,CAAA,GAAA;oBAAA,CAAA,EAAA,OAAA;QAAsC,CAAA,EAAA,OAAA,GAAA,SAAA;eAAa,CAAA,EAAA,OAAA,GAAA,SAAA;EAAA,kBAAA,CAAA,EAsCrD,0BAAA,CAAA,gBAtCqD;EAsCjE,iBAIL,CAAA,8CAAA;EAAA,eAAA,CAAA,4CAAA;SAJiB,CAAA,+CAAA,CAAA,GAAA,EAAA,GAAA,CAAA,GAAA,SAAA;YAAA,CAAA,SAAA,uCAAA;;;;;;;;;;;;;;;iBAOT,mBAAA;;;;;;;;;;;;;;GAcN,MAAA,CAAM;;;OArBS,CAAA,EAAA,MAAA;EAAA,cAAA,CAAA,EAAA,CAAA,KAAA,EAAA,GAAA,EAAA,OAAA,EAAA,GAAA,EAAA,EAAA,GAyBiC,MAAA,CAAM,SAzBvC;EAOT,SAAA,CAAA,EAAA,CAAA,KAAA,EAAA,GAAmB,EAAA,IAAA,EAAA,GAAA,EAAA,IAAA,EAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,GAAA,EAAA,GAyBrB,MAAA,CAAM,SAzBe;EAAA,KAAA,CAAA,EAAA,MAAA;WAC1B,CAAA,EAAA,OAAA;eACA,CAAA,EAAA,OAAA;WACA,CAAA,EAAA,MAAA,GAAA,KAAA,GAAA,QAAA;gBACA,CAAA,EAAA,MAAA;SACA,CAAA,EAAA,MAAA;UACA,CAAA,EAAA,MAAA;IA2BD,mBAAA,CAAA,GAAA,CAAA,OAAA,GA1BC,IAAA;;;;;;cA4JI,WAtJJ,EAsJe,MAAA,CAAA,yBAtJf,CAsJe,IAtJf,CAsJe,iBAAA,CAAA,WAtJf,EAAA,KAAA,CAAA,GAsJe,MAAA,CAAA,aAtJf,CAsJe,cAtJf,CAAA,CAAA;iBA6JO,kBAAA,CA5JA;EAAA,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,aAAA;EAAA;CAAA,EAkKN,MAAA,CAAM,cAlKA,CAAA,KAAA,CAAA,GAmKP,IAnKO,CAmKF,iBAAA,CAAkB,WAnKhB,EAAA,eAAA,CAAA,GAAA;SAI0C,CAAA,EAAM,GAAA,EAAA;UAOlD,CAAA,EAAM,OAAA;SAQZ,CAAA,EAAA,MAAA;CAAA,CAAA,EAoJE,mBAAA,CAAA,GAAA,CAAA,OAAA,GApJF,IAAA"}
1
+ {"version":3,"file":"chart.d.ts","names":[],"sources":["../../../src/react/ui/chart.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;cAQM;;;;KAEM,WAAA;UAEA,MAAA,CAAM;EAJZ,IAAA,CAA8C,EAKzC,MAAA,CAAM,aALmC;AAExC,CAAA,GAAA,CAAA;EAAW,KAAA,CAAA,EAAA,MAAA;EAEX,KAAA,CAAM,EAAA,KAAA;IACP;EAGuC,KAAA,CAAA,EAAA,KAAA;EAApB,KAAA,EAAA,MAAA,CAAA,MAAA,OAAoB,MAApB,EAAA,MAAA,CAAA;AAAM,CAAA,CAAA,EAElC;;iBAmBO,cAAA,CACP;EAAA,EAAA;EAAA,SAAA;EAAA,QAAA;EAAA,MAAA;EAAA,GAAA;CAAA,EAKC,MAAA,CAAM,cALP,CAAA,KAAA,CAAA,GAAA;QACA,EAKQ,WALR;UACA,EAKU,MAAA,CAAM,cALhB,CAAA,OAMS,iBAAA,CAAkB,mBAN3B,CAAA,CAAA,UAAA,CAAA;IAQD,mBAAA,CAAA,GAAA,CAAA,OAPC;cA+BI,UA7BG,EAAA,CAAA;EAAA,EAAA;EAAA;CAAA,EAAA;MACC,MAAA;QAEC,EA0B+C,WA1B/C;MA0B4D,mBAAA,CAAA,GAAA,CAAA,OAAA,GA3BrD,IAAA;;;AAGjB;;;cA8DK,YAtCc,EAsCF,MAAA,CAAA,yBAtCE,CAsCF,iBAAA,CAAA,0BAtCE,CAAA,GAAA,EAAA,GAAA,CAAA,GAAA;oBAAsC,CAAA,EAAA,OAAA;QAAa,CAAA,EAAA,OAAA,GAAA,SAAA;EAAA,aAAA,CAAA,EAAA,OAAA,GAAA,SAAA;EAsCjE,kBAIL,CAAA,EAJiB,0BAAA,CAAA,gBAIjB;EAAA,iBAAA,CAAA,8CAAA;iBAJiB,CAAA,4CAAA;SAAA,CAAA,+CAAA,CAAA,GAAA,EAAA,GAAA,CAAA,GAAA,SAAA;;;;;;;;;;;;;;;;iBAOT,mBAAA;;;;;;;;;;;;;;GAcN,MAAA,CAAM;;SArBS,CAAA,EAAA,GAAA,EAAA;EAAA,KAAA,CAAA,EAAA,MAAA;EAOT,cAAA,CAAA,EAAA,CAAA,KAAmB,EAAA,GAAA,EAAA,OAAA,EAAA,GAAA,EAAA,EAAA,GAkBuB,MAAA,CAAM,SAlB7B;EAAA,SAAA,CAAA,EAAA,CAAA,KAAA,EAAA,GAAA,EAAA,IAAA,EAAA,GAAA,EAAA,IAAA,EAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,GAAA,EAAA,GAyBrB,MAAA,CAAM,SAzBe;OAC1B,CAAA,EAAA,MAAA;WACA,CAAA,EAAA,OAAA;eACA,CAAA,EAAA,OAAA;WACA,CAAA,EAAA,MAAA,GAAA,KAAA,GAAA,QAAA;gBACA,CAAA,EAAA,MAAA;SACA,CAAA,EAAA,MAAA;UACA,CAAA,EAAA,MAAA;IA0BD,mBAAA,CAAA,GAAA,CAAA,OAAA,GAzBC,IAAA;;;;;;cA2JI,WArJG,EAqJQ,MAAA,CAAA,yBArJR,CAqJQ,IArJR,CAqJQ,iBAAA,CAAA,WArJR,EAAA,KAAA,CAAA,GAqJQ,MAAA,CAAA,aArJR,CAqJQ,cArJR,CAAA,CAAA;iBA4JA,kBAAA,CAxJgD;EAAA,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,aAAA;EAAA;AAexD,CAfwD,EA8JtD,MAAA,CAAM,cA9JgD,CAAA,KAAA,CAAA,GA+JvD,IA/JuD,CA+JlD,iBAAA,CAAkB,WA/JgC,EAAA,eAAA,CAAA,GAAA;SAOlD,CAAA,EAAM,GAAA,EAAA;UAQZ,CAAA,EAAA,OAAA;EAAA,OAAA,CAAA,EAAA,MAAA;AAAA,CAAA,CAAA,EAoJE,mBAAA,CAAA,GAAA,CAAA,OAAA,GAdF,IAAA"}
@@ -16,6 +16,7 @@ function useChart() {
16
16
  if (!context) throw new Error("useChart must be used within a <ChartContainer />");
17
17
  return context;
18
18
  }
19
+ /** Container for rendering data visualizations using Recharts */
19
20
  function ChartContainer({ id, className, children, config, ...props }) {
20
21
  const uniqueId = React$1.useId();
21
22
  const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
@@ -34,7 +35,7 @@ function ChartContainer({ id, className, children, config, ...props }) {
34
35
  });
35
36
  }
36
37
  const ChartStyle = ({ id, config }) => {
37
- const colorConfig = Object.entries(config).filter(([, config$1]) => config$1.theme || config$1.color);
38
+ const colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color);
38
39
  if (!colorConfig.length) return null;
39
40
  return /* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: Object.entries(THEMES).map(([theme, prefix]) => `
40
41
  ${prefix} [data-chart=${id}] {
@@ -1 +1 @@
1
- {"version":3,"file":"chart.js","names":["React","config"],"sources":["../../../src/react/ui/chart.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"../lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<\"div\"> & {\n config: ChartConfig;\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\n/**\n * A wrapper component for Recharts Tooltip with proper typing and documentation support.\n * It is needed to ensure the correct name is displayed in the docs.\n * @see https://recharts.org/en-US/api/Tooltip\n */\nconst ChartTooltip = React.forwardRef<HTMLDivElement, RechartsPrimitive.TooltipProps<any, any>>(\n (props, ref) => {\n return <RechartsPrimitive.Tooltip {...props} />;\n }\n);\nChartTooltip.displayName = \"ChartTooltip\";\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label = \"\" as string,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<\"div\"> & {\n active?: boolean;\n payload?: any[];\n label?: string;\n labelFormatter?: (value: any, payload: any[]) => React.ReactNode;\n formatter?: (\n value: any,\n name: any,\n item: any,\n index: number,\n payload: any,\n ) => React.ReactNode;\n color?: string;\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: \"line\" | \"dot\" | \"dashed\";\n labelClassName?: string;\n nameKey?: string;\n labelKey?: string;\n}) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n className={cn(\n \"border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl\",\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item: any) => item.type !== \"none\")\n .map((item: any, index: number) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n },\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\",\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"text-foreground font-mono font-medium tabular-nums\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n/**\n * A wrapper component for Recharts Legend with proper typing and documentation support.\n * It is needed to ensure the correct name is displayed in the docs.\n * @see https://recharts.org/en-US/api/Legend\n */\nconst ChartLegend = React.forwardRef<HTMLDivElement, RechartsPrimitive.LegendProps>(\n (props, ref) => {\n return <RechartsPrimitive.Legend {...props} />;\n }\n);\nChartLegend.displayName = \"ChartLegend\";\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload = [] as any[],\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"verticalAlign\"> & {\n payload?: any[];\n hideIcon?: boolean;\n nameKey?: string;\n }) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className,\n )}\n >\n {payload\n .filter((item: any) => item.type !== \"none\")\n .map((item: any) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3\",\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"chart.js","names":["React"],"sources":["../../../src/react/ui/chart.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"../lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\n/** Container for rendering data visualizations using Recharts */\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<\"div\"> & {\n config: ChartConfig;\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-slot=\"chart\"\n data-chart={chartId}\n className={cn(\n \"[&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border flex aspect-video justify-center text-xs [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\n/**\n * A wrapper component for Recharts Tooltip with proper typing and documentation support.\n * It is needed to ensure the correct name is displayed in the docs.\n * @see https://recharts.org/en-US/api/Tooltip\n */\nconst ChartTooltip = React.forwardRef<HTMLDivElement, RechartsPrimitive.TooltipProps<any, any>>(\n (props, ref) => {\n return <RechartsPrimitive.Tooltip {...props} />;\n }\n);\nChartTooltip.displayName = \"ChartTooltip\";\n\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label = \"\" as string,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n}: React.ComponentProps<\"div\"> & {\n active?: boolean;\n payload?: any[];\n label?: string;\n labelFormatter?: (value: any, payload: any[]) => React.ReactNode;\n formatter?: (\n value: any,\n name: any,\n item: any,\n index: number,\n payload: any,\n ) => React.ReactNode;\n color?: string;\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: \"line\" | \"dot\" | \"dashed\";\n labelClassName?: string;\n nameKey?: string;\n labelKey?: string;\n}) {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n className={cn(\n \"border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl\",\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item: any) => item.type !== \"none\")\n .map((item: any, index: number) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n },\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\",\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"text-foreground font-mono font-medium tabular-nums\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\n/**\n * A wrapper component for Recharts Legend with proper typing and documentation support.\n * It is needed to ensure the correct name is displayed in the docs.\n * @see https://recharts.org/en-US/api/Legend\n */\nconst ChartLegend = React.forwardRef<HTMLDivElement, RechartsPrimitive.LegendProps>(\n (props, ref) => {\n return <RechartsPrimitive.Legend {...props} />;\n }\n);\nChartLegend.displayName = \"ChartLegend\";\n\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload = [] as any[],\n verticalAlign = \"bottom\",\n nameKey,\n}: React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"verticalAlign\"> & {\n payload?: any[];\n hideIcon?: boolean;\n nameKey?: string;\n }) {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className,\n )}\n >\n {payload\n .filter((item: any) => item.type !== \"none\")\n .map((item: any) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3\",\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n"],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime57 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime68 from "react/jsx-runtime";
3
3
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
4
4
 
5
5
  //#region src/react/ui/checkbox.d.ts
6
+ /** Checkbox input for selecting multiple options */
6
7
  declare function Checkbox({
7
8
  className,
8
9
  ...props
9
- }: React$1.ComponentProps<typeof CheckboxPrimitive.Root>): react_jsx_runtime57.JSX.Element;
10
+ }: React$1.ComponentProps<typeof CheckboxPrimitive.Root>): react_jsx_runtime68.JSX.Element;
10
11
  //#endregion
11
12
  export { Checkbox };
12
13
  //# sourceMappingURL=checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.d.ts","names":[],"sources":["../../../src/react/ui/checkbox.tsx"],"sourcesContent":[],"mappings":";;;;;iBAQS,QAAA;;;GAGN,OAAA,CAAM,sBAAsB,iBAAA,CAAkB,QAAK,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"checkbox.d.ts","names":[],"sources":["../../../src/react/ui/checkbox.tsx"],"sourcesContent":[],"mappings":";;;;;;iBASS,QAAA;;;GAGN,OAAA,CAAM,sBAAsB,iBAAA,CAAkB,QAAK,mBAAA,CAAA,GAAA,CAAA"}
@@ -6,6 +6,7 @@ import { CheckIcon } from "lucide-react";
6
6
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
7
7
 
8
8
  //#region src/react/ui/checkbox.tsx
9
+ /** Checkbox input for selecting multiple options */
9
10
  function Checkbox({ className, ...props }) {
10
11
  return /* @__PURE__ */ jsx(CheckboxPrimitive.Root, {
11
12
  "data-slot": "checkbox",
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","names":[],"sources":["../../../src/react/ui/checkbox.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n // Fixed size and square shape - IMPORTANT: overrides global CSS\n \"h-4 w-4 p-0 shrink-0 flex-shrink-0\",\n // Base appearance\n \"peer border-input dark:bg-input/30 rounded-[4px] border shadow-xs\",\n // Checked states\n \"data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary\",\n // Focus states\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none\",\n // Error states\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n // Disabled states\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n // Transitions\n \"transition-shadow\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n"],"mappings":";;;;;;;;AAQA,SAAS,SAAS,EAChB,WACA,GAAG,SACmD;AACtD,QACE,oBAAC,kBAAkB;EACjB,aAAU;EACV,WAAW,GAET,sCAEA,qEAEA,yJAEA,8FAEA,0GAEA,mDAEA,qBACA,UACD;EACD,GAAI;YAEJ,oBAAC,kBAAkB;GACjB,aAAU;GACV,WAAU;aAEV,oBAAC,aAAU,WAAU,aAAa;IACN;GACP"}
1
+ {"version":3,"file":"checkbox.js","names":[],"sources":["../../../src/react/ui/checkbox.tsx"],"sourcesContent":["\"use client\";\n\nimport type * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\n/** Checkbox input for selecting multiple options */\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n // Fixed size and square shape - IMPORTANT: overrides global CSS\n \"h-4 w-4 p-0 shrink-0 flex-shrink-0\",\n // Base appearance\n \"peer border-input dark:bg-input/30 rounded-[4px] border shadow-xs\",\n // Checked states\n \"data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary\",\n // Focus states\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none\",\n // Error states\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n // Disabled states\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n // Transitions\n \"transition-shadow\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox };\n"],"mappings":";;;;;;;;;AASA,SAAS,SAAS,EAChB,WACA,GAAG,SACmD;AACtD,QACE,oBAAC,kBAAkB;EACjB,aAAU;EACV,WAAW,GAET,sCAEA,qEAEA,yJAEA,8FAEA,0GAEA,mDAEA,qBACA,UACD;EACD,GAAI;YAEJ,oBAAC,kBAAkB;GACjB,aAAU;GACV,WAAU;aAEV,oBAAC,aAAU,WAAU,aAAa;IACN;GACP"}
@@ -1,16 +1,19 @@
1
- import * as react_jsx_runtime58 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime69 from "react/jsx-runtime";
2
2
  import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
3
3
 
4
4
  //#region src/react/ui/collapsible.d.ts
5
+ /** Interactive component that expands and collapses content */
5
6
  declare function Collapsible({
6
7
  ...props
7
- }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): react_jsx_runtime58.JSX.Element;
8
+ }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): react_jsx_runtime69.JSX.Element;
9
+ /** Button that toggles the collapsible content visibility */
8
10
  declare function CollapsibleTrigger({
9
11
  ...props
10
- }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): react_jsx_runtime58.JSX.Element;
12
+ }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): react_jsx_runtime69.JSX.Element;
13
+ /** Content area that can be expanded or collapsed */
11
14
  declare function CollapsibleContent({
12
15
  ...props
13
- }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): react_jsx_runtime58.JSX.Element;
16
+ }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): react_jsx_runtime69.JSX.Element;
14
17
  //#endregion
15
18
  export { Collapsible, CollapsibleContent, CollapsibleTrigger };
16
19
  //# sourceMappingURL=collapsible.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.d.ts","names":[],"sources":["../../../src/react/ui/collapsible.tsx"],"sourcesContent":[],"mappings":";;;;iBAES,WAAA;;GAEN,KAAA,CAAM,sBAAsB,oBAAA,CAAqB,QAAK,mBAAA,CAAA,GAAA,CAAA;iBAIhD,kBAAA;;GAEN,KAAA,CAAM,sBAAsB,oBAAA,CAAqB,sBAAmB,mBAAA,CAAA,GAAA,CAAA;iBAS9D,kBAAA;;GAEN,KAAA,CAAM,sBAAsB,oBAAA,CAAqB,sBAAmB,mBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"collapsible.d.ts","names":[],"sources":["../../../src/react/ui/collapsible.tsx"],"sourcesContent":[],"mappings":";;;;;iBAGS,WAAA;;GAEN,KAAA,CAAM,sBAAsB,oBAAA,CAAqB,QAAK,mBAAA,CAAA,GAAA,CAAA;;AALW,iBAU3D,kBAAA,CAPW;EAAA,GAAA;AAAA,CAAA,EASjB,KAAA,CAAM,cATW,CAAA,OASW,oBAAA,CAAqB,kBAThC,CAAA,CAAA,EASmD,mBAAA,CAAA,GAAA,CAAA,OATnD;;iBAmBX,kBAAA,CAjB2C;EAAA,GAAA;AAAA,CAAA,EAmBjD,KAAA,CAAM,cAnB2C,CAAA,OAmBrB,oBAAA,CAAqB,kBAnBA,CAAA,CAAA,EAmBmB,mBAAA,CAAA,GAAA,CAAA,OAnBnB"}
@@ -2,18 +2,21 @@ import { jsx } from "react/jsx-runtime";
2
2
  import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
3
3
 
4
4
  //#region src/react/ui/collapsible.tsx
5
+ /** Interactive component that expands and collapses content */
5
6
  function Collapsible({ ...props }) {
6
7
  return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, {
7
8
  "data-slot": "collapsible",
8
9
  ...props
9
10
  });
10
11
  }
12
+ /** Button that toggles the collapsible content visibility */
11
13
  function CollapsibleTrigger({ ...props }) {
12
14
  return /* @__PURE__ */ jsx(CollapsiblePrimitive.CollapsibleTrigger, {
13
15
  "data-slot": "collapsible-trigger",
14
16
  ...props
15
17
  });
16
18
  }
19
+ /** Content area that can be expanded or collapsed */
17
20
  function CollapsibleContent({ ...props }) {
18
21
  return /* @__PURE__ */ jsx(CollapsiblePrimitive.CollapsibleContent, {
19
22
  "data-slot": "collapsible-content",
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.js","names":[],"sources":["../../../src/react/ui/collapsible.tsx"],"sourcesContent":["import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n );\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n"],"mappings":";;;;AAEA,SAAS,YAAY,EACnB,GAAG,SACsD;AACzD,QAAO,oBAAC,qBAAqB;EAAK,aAAU;EAAc,GAAI;GAAS;;AAGzE,SAAS,mBAAmB,EAC1B,GAAG,SACoE;AACvE,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,GAAG,SACoE;AACvE,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,GAAI;GACJ"}
1
+ {"version":3,"file":"collapsible.js","names":[],"sources":["../../../src/react/ui/collapsible.tsx"],"sourcesContent":["import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\n/** Interactive component that expands and collapses content */\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\n/** Button that toggles the collapsible content visibility */\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n );\n}\n\n/** Content area that can be expanded or collapsed */\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n"],"mappings":";;;;;AAGA,SAAS,YAAY,EACnB,GAAG,SACsD;AACzD,QAAO,oBAAC,qBAAqB;EAAK,aAAU;EAAc,GAAI;GAAS;;;AAIzE,SAAS,mBAAmB,EAC1B,GAAG,SACoE;AACvE,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,GAAI;GACJ;;;AAKN,SAAS,mBAAmB,EAC1B,GAAG,SACoE;AACvE,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,GAAI;GACJ"}
@@ -1,13 +1,15 @@
1
1
  import { Dialog } from "./dialog.js";
2
2
  import * as React$1 from "react";
3
- import * as react_jsx_runtime61 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime72 from "react/jsx-runtime";
4
4
  import { Command } from "cmdk";
5
5
 
6
6
  //#region src/react/ui/command.d.ts
7
+ /** Command palette for keyboard-driven navigation and actions */
7
8
  declare function Command$1({
8
9
  className,
9
10
  ...props
10
- }: React$1.ComponentProps<typeof Command>): react_jsx_runtime61.JSX.Element;
11
+ }: React$1.ComponentProps<typeof Command>): react_jsx_runtime72.JSX.Element;
12
+ /** Dialog wrapper for the command palette */
11
13
  declare function CommandDialog({
12
14
  title,
13
15
  description,
@@ -20,34 +22,41 @@ declare function CommandDialog({
20
22
  description?: string;
21
23
  className?: string;
22
24
  showCloseButton?: boolean;
23
- }): react_jsx_runtime61.JSX.Element;
25
+ }): react_jsx_runtime72.JSX.Element;
26
+ /** Search input field for filtering command items */
24
27
  declare function CommandInput({
25
28
  className,
26
29
  ...props
27
- }: React$1.ComponentProps<typeof Command.Input>): react_jsx_runtime61.JSX.Element;
30
+ }: React$1.ComponentProps<typeof Command.Input>): react_jsx_runtime72.JSX.Element;
31
+ /** Scrollable list container for command items */
28
32
  declare function CommandList({
29
33
  className,
30
34
  ...props
31
- }: React$1.ComponentProps<typeof Command.List>): react_jsx_runtime61.JSX.Element;
35
+ }: React$1.ComponentProps<typeof Command.List>): react_jsx_runtime72.JSX.Element;
36
+ /** Empty state displayed when no commands match the search */
32
37
  declare function CommandEmpty({
33
38
  ...props
34
- }: React$1.ComponentProps<typeof Command.Empty>): react_jsx_runtime61.JSX.Element;
39
+ }: React$1.ComponentProps<typeof Command.Empty>): react_jsx_runtime72.JSX.Element;
40
+ /** Group of related command items with an optional heading */
35
41
  declare function CommandGroup({
36
42
  className,
37
43
  ...props
38
- }: React$1.ComponentProps<typeof Command.Group>): react_jsx_runtime61.JSX.Element;
44
+ }: React$1.ComponentProps<typeof Command.Group>): react_jsx_runtime72.JSX.Element;
45
+ /** Visual separator between command groups */
39
46
  declare function CommandSeparator({
40
47
  className,
41
48
  ...props
42
- }: React$1.ComponentProps<typeof Command.Separator>): react_jsx_runtime61.JSX.Element;
49
+ }: React$1.ComponentProps<typeof Command.Separator>): react_jsx_runtime72.JSX.Element;
50
+ /** Individual selectable command item */
43
51
  declare function CommandItem({
44
52
  className,
45
53
  ...props
46
- }: React$1.ComponentProps<typeof Command.Item>): react_jsx_runtime61.JSX.Element;
54
+ }: React$1.ComponentProps<typeof Command.Item>): react_jsx_runtime72.JSX.Element;
55
+ /** Keyboard shortcut indicator displayed next to command items */
47
56
  declare function CommandShortcut({
48
57
  className,
49
58
  ...props
50
- }: React$1.ComponentProps<"span">): react_jsx_runtime61.JSX.Element;
59
+ }: React$1.ComponentProps<"span">): react_jsx_runtime72.JSX.Element;
51
60
  //#endregion
52
61
  export { Command$1 as Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
53
62
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","names":[],"sources":["../../../src/react/ui/command.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAaS,SAAA;;;GAGN,OAAA,CAAM,sBAAsB,WAAiB,mBAAA,CAAA,GAAA,CAAA;iBAavC,aAAA;;;;;;;GAON,OAAA,CAAM,sBAAsB;;EAvBtB,WAAA,CAAO,EAAA,MAAA;EAAA,SAAA,CAAA,EAAA,MAAA;iBACd,CAAA,EAAA,OAAA;IA2BD,mBAAA,CAAA,GAAA,CAAA,OAzB8B;iBA4CtB,YAAA,CA5CA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+CN,OAAA,CAAM,cA/CA,CAAA,OA+CsB,OAAA,CAAiB,KA/CvC,CAAA,CAAA,EA+C6C,mBAAA,CAAA,GAAA,CAAA,OA/C7C;iBAkEA,WAAA,CAlEuC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAqE7C,OAAA,CAAM,cArEuC,CAAA,OAqEjB,OAAA,CAAiB,IArEA,CAAA,CAAA,EAqEK,mBAAA,CAAA,GAAA,CAAA,OArEL;iBAkFvC,YAAA,CAlFuC;EAAA,GAAA;AAAA,CAAA,EAoF7C,OAAA,CAAM,cApFuC,CAAA,OAoFjB,OAAA,CAAiB,KApFA,CAAA,CAAA,EAoFM,mBAAA,CAAA,GAAA,CAAA,OApFN;AAAA,iBA8FvC,YAAA,CAjFa;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAoFnB,OAAA,CAAM,cApFa,CAAA,OAoFS,OAAA,CAAiB,KApF1B,CAAA,CAAA,EAoFgC,mBAAA,CAAA,GAAA,CAAA,OApFhC;iBAiGb,gBAAA,CAjGa;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAoGnB,OAAA,CAAM,cApGa,CAAA,OAoGS,OAAA,CAAiB,SApG1B,CAAA,CAAA,EAoGoC,mBAAA,CAAA,GAAA,CAAA,OApGpC;iBA8Gb,WAAA,CA7GP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAgHC,OAAA,CAAM,cAhHP,CAAA,OAgH6B,OAAA,CAAiB,IAhH9C,CAAA,CAAA,EAgHmD,mBAAA,CAAA,GAAA,CAAA,OAhHnD;iBA6HO,eAAA,CA5HP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+HC,OAAA,CAAM,cA/HP,CAAA,MAAA,CAAA,CAAA,EA+H6B,mBAAA,CAAA,GAAA,CAAA,OA/H7B"}
1
+ {"version":3,"file":"command.d.ts","names":[],"sources":["../../../src/react/ui/command.tsx"],"sourcesContent":[],"mappings":";;;;;;;iBAcS,SAAA;;;GAGN,OAAA,CAAM,sBAAsB,WAAiB,mBAAA,CAAA,GAAA,CAAA;;AAN9B,iBAoBT,aAAA,CAjBO;EAAA,KAAA;EAAA,WAAA;EAAA,QAAA;EAAA,SAAA;EAAA,eAAA;EAAA,GAAA;CAAA,EAwBb,OAAA,CAAM,cAxBO,CAAA,OAwBe,MAxBf,CAAA,GAAA;EAAA,KAAA,CAAA,EAAA,MAAA;aACd,CAAA,EAAA,MAAA;WAE6B,CAAA,EAAA,MAAA;iBAAtB,CAAA,EAAA,OAAA;IA0BR,mBAAA,CAAA,GAAA,CAAA,OA1B+C;;AAAA,iBA8CvC,YAAA,CAhCa;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAmCnB,OAAA,CAAM,cAnCa,CAAA,OAmCS,OAAA,CAAiB,KAnC1B,CAAA,CAAA,EAmCgC,mBAAA,CAAA,GAAA,CAAA,OAnChC;;iBAuDb,WAAA,CAtDP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyDC,OAAA,CAAM,cAzDP,CAAA,OAyD6B,OAAA,CAAiB,IAzD9C,CAAA,CAAA,EAyDmD,mBAAA,CAAA,GAAA,CAAA,OAzDnD;;iBAuEO,YAAA,CArEP;EAAA,GAAA;AAAA,CAAA,EAuEC,OAAA,CAAM,cAvEP,CAAA,OAuE6B,OAAA,CAAiB,KAvE9C,CAAA,CAAA,EAuEoD,mBAAA,CAAA,GAAA,CAAA,OAvEpD;;iBAkFO,YAAA,CAhFP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAmFC,OAAA,CAAM,cAnFP,CAAA,OAmF6B,OAAA,CAAiB,KAnF9C,CAAA,CAAA,EAmFoD,mBAAA,CAAA,GAAA,CAAA,OAnFpD;;iBAiGO,gBAAA,CA/FA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkGN,OAAA,CAAM,cAlGA,CAAA,OAkGsB,OAAA,CAAiB,SAlGvC,CAAA,CAAA,EAkGiD,mBAAA,CAAA,GAAA,CAAA,OAlGjD;;iBA6GA,WAAA,CAxGR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA2GE,OAAA,CAAM,cA3GR,CAAA,OA2G8B,OAAA,CAAiB,IA3G/C,CAAA,CAAA,EA2GoD,mBAAA,CAAA,GAAA,CAAA,OA3GpD;AAAA;iBAyHQ,eAAA,CArGY;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwGlB,OAAA,CAAM,cAxGY,CAAA,MAAA,CAAA,CAAA,EAwGU,mBAAA,CAAA,GAAA,CAAA,OAxGV"}
@@ -5,6 +5,7 @@ import { SearchIcon } from "lucide-react";
5
5
  import { Command } from "cmdk";
6
6
 
7
7
  //#region src/react/ui/command.tsx
8
+ /** Command palette for keyboard-driven navigation and actions */
8
9
  function Command$1({ className, ...props }) {
9
10
  return /* @__PURE__ */ jsx(Command, {
10
11
  "data-slot": "command",
@@ -12,6 +13,7 @@ function Command$1({ className, ...props }) {
12
13
  ...props
13
14
  });
14
15
  }
16
+ /** Dialog wrapper for the command palette */
15
17
  function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", children, className, showCloseButton = true, ...props }) {
16
18
  return /* @__PURE__ */ jsxs(Dialog, {
17
19
  ...props,
@@ -28,6 +30,7 @@ function CommandDialog({ title = "Command Palette", description = "Search for a
28
30
  })]
29
31
  });
30
32
  }
33
+ /** Search input field for filtering command items */
31
34
  function CommandInput({ className, ...props }) {
32
35
  return /* @__PURE__ */ jsxs("div", {
33
36
  "data-slot": "command-input-wrapper",
@@ -39,6 +42,7 @@ function CommandInput({ className, ...props }) {
39
42
  })]
40
43
  });
41
44
  }
45
+ /** Scrollable list container for command items */
42
46
  function CommandList({ className, ...props }) {
43
47
  return /* @__PURE__ */ jsx(Command.List, {
44
48
  "data-slot": "command-list",
@@ -46,6 +50,7 @@ function CommandList({ className, ...props }) {
46
50
  ...props
47
51
  });
48
52
  }
53
+ /** Empty state displayed when no commands match the search */
49
54
  function CommandEmpty({ ...props }) {
50
55
  return /* @__PURE__ */ jsx(Command.Empty, {
51
56
  "data-slot": "command-empty",
@@ -53,6 +58,7 @@ function CommandEmpty({ ...props }) {
53
58
  ...props
54
59
  });
55
60
  }
61
+ /** Group of related command items with an optional heading */
56
62
  function CommandGroup({ className, ...props }) {
57
63
  return /* @__PURE__ */ jsx(Command.Group, {
58
64
  "data-slot": "command-group",
@@ -60,6 +66,7 @@ function CommandGroup({ className, ...props }) {
60
66
  ...props
61
67
  });
62
68
  }
69
+ /** Visual separator between command groups */
63
70
  function CommandSeparator({ className, ...props }) {
64
71
  return /* @__PURE__ */ jsx(Command.Separator, {
65
72
  "data-slot": "command-separator",
@@ -67,6 +74,7 @@ function CommandSeparator({ className, ...props }) {
67
74
  ...props
68
75
  });
69
76
  }
77
+ /** Individual selectable command item */
70
78
  function CommandItem({ className, ...props }) {
71
79
  return /* @__PURE__ */ jsx(Command.Item, {
72
80
  "data-slot": "command-item",
@@ -74,6 +82,7 @@ function CommandItem({ className, ...props }) {
74
82
  ...props
75
83
  });
76
84
  }
85
+ /** Keyboard shortcut indicator displayed next to command items */
77
86
  function CommandShortcut({ className, ...props }) {
78
87
  return /* @__PURE__ */ jsx("span", {
79
88
  "data-slot": "command-shortcut",