@databricks/appkit-ui 0.15.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/dist/cli/commands/plugin/add-resource/add-resource.js +10 -4
  2. package/dist/cli/commands/plugin/add-resource/add-resource.js.map +1 -1
  3. package/dist/cli/commands/plugin/create/scaffold.js +10 -16
  4. package/dist/cli/commands/plugin/create/scaffold.js.map +1 -1
  5. package/dist/cli/commands/plugin/list/list.js +44 -26
  6. package/dist/cli/commands/plugin/list/list.js.map +1 -1
  7. package/dist/cli/commands/plugin/manifest-resolve.js +57 -0
  8. package/dist/cli/commands/plugin/manifest-resolve.js.map +1 -0
  9. package/dist/cli/commands/plugin/sync/sync.js +121 -71
  10. package/dist/cli/commands/plugin/sync/sync.js.map +1 -1
  11. package/dist/cli/commands/plugin/trusted-js-manifest.js +28 -0
  12. package/dist/cli/commands/plugin/trusted-js-manifest.js.map +1 -0
  13. package/dist/cli/commands/plugin/validate/validate.js +32 -14
  14. package/dist/cli/commands/plugin/validate/validate.js.map +1 -1
  15. package/dist/js/arrow/arrow-client.d.ts.map +1 -1
  16. package/dist/js/arrow/index.d.ts +3 -0
  17. package/dist/js/arrow/lazy-arrow.d.ts +0 -1
  18. package/dist/js/arrow/lazy-arrow.d.ts.map +1 -1
  19. package/dist/js/constants.d.ts.map +1 -1
  20. package/dist/js/index.d.ts +2 -0
  21. package/dist/js/sse/connect-sse.d.ts +0 -1
  22. package/dist/js/sse/connect-sse.d.ts.map +1 -1
  23. package/dist/js/sse/types.d.ts +1 -3
  24. package/dist/js/sse/types.d.ts.map +1 -1
  25. package/dist/react/charts/area/index.d.ts +2 -3
  26. package/dist/react/charts/area/index.d.ts.map +1 -1
  27. package/dist/react/charts/bar/index.d.ts +2 -3
  28. package/dist/react/charts/bar/index.d.ts.map +1 -1
  29. package/dist/react/charts/base.d.ts +2 -2
  30. package/dist/react/charts/base.d.ts.map +1 -1
  31. package/dist/react/charts/base.js.map +1 -1
  32. package/dist/react/charts/chart-error-boundary.js.map +1 -1
  33. package/dist/react/charts/constants.d.ts.map +1 -1
  34. package/dist/react/charts/create-chart.d.ts +2 -3
  35. package/dist/react/charts/create-chart.d.ts.map +1 -1
  36. package/dist/react/charts/create-chart.js.map +1 -1
  37. package/dist/react/charts/empty.js.map +1 -1
  38. package/dist/react/charts/error.js.map +1 -1
  39. package/dist/react/charts/heatmap/index.d.ts +2 -3
  40. package/dist/react/charts/heatmap/index.d.ts.map +1 -1
  41. package/dist/react/charts/index.d.ts +18 -0
  42. package/dist/react/charts/line/index.d.ts +2 -3
  43. package/dist/react/charts/line/index.d.ts.map +1 -1
  44. package/dist/react/charts/loading.js.map +1 -1
  45. package/dist/react/charts/normalize.d.ts +0 -1
  46. package/dist/react/charts/normalize.d.ts.map +1 -1
  47. package/dist/react/charts/options.d.ts.map +1 -1
  48. package/dist/react/charts/pie/index.d.ts +3 -4
  49. package/dist/react/charts/pie/index.d.ts.map +1 -1
  50. package/dist/react/charts/radar/index.d.ts +2 -3
  51. package/dist/react/charts/radar/index.d.ts.map +1 -1
  52. package/dist/react/charts/scatter/index.d.ts +2 -3
  53. package/dist/react/charts/scatter/index.d.ts.map +1 -1
  54. package/dist/react/charts/theme.d.ts +0 -1
  55. package/dist/react/charts/theme.d.ts.map +1 -1
  56. package/dist/react/charts/types.d.ts.map +1 -1
  57. package/dist/react/charts/utils.d.ts.map +1 -1
  58. package/dist/react/charts/wrapper.d.ts +2 -2
  59. package/dist/react/charts/wrapper.d.ts.map +1 -1
  60. package/dist/react/charts/wrapper.js.map +1 -1
  61. package/dist/react/genie/genie-chat-input.d.ts +2 -2
  62. package/dist/react/genie/genie-chat-input.d.ts.map +1 -1
  63. package/dist/react/genie/genie-chat-input.js.map +1 -1
  64. package/dist/react/genie/genie-chat-message-list.d.ts +9 -3
  65. package/dist/react/genie/genie-chat-message-list.d.ts.map +1 -1
  66. package/dist/react/genie/genie-chat-message-list.js +92 -17
  67. package/dist/react/genie/genie-chat-message-list.js.map +1 -1
  68. package/dist/react/genie/genie-chat-message.d.ts +2 -2
  69. package/dist/react/genie/genie-chat-message.d.ts.map +1 -1
  70. package/dist/react/genie/genie-chat-message.js.map +1 -1
  71. package/dist/react/genie/genie-chat.d.ts +2 -2
  72. package/dist/react/genie/genie-chat.d.ts.map +1 -1
  73. package/dist/react/genie/genie-chat.js +4 -2
  74. package/dist/react/genie/genie-chat.js.map +1 -1
  75. package/dist/react/genie/index.d.ts +7 -0
  76. package/dist/react/genie/types.d.ts +8 -1
  77. package/dist/react/genie/types.d.ts.map +1 -1
  78. package/dist/react/genie/use-genie-chat.d.ts +0 -1
  79. package/dist/react/genie/use-genie-chat.d.ts.map +1 -1
  80. package/dist/react/genie/use-genie-chat.js +119 -41
  81. package/dist/react/genie/use-genie-chat.js.map +1 -1
  82. package/dist/react/hooks/index.d.ts +3 -0
  83. package/dist/react/hooks/types.d.ts.map +1 -1
  84. package/dist/react/hooks/use-analytics-query.d.ts +0 -1
  85. package/dist/react/hooks/use-analytics-query.d.ts.map +1 -1
  86. package/dist/react/hooks/use-chart-data.d.ts.map +1 -1
  87. package/dist/react/index.d.ts +5 -0
  88. package/dist/react/lib/utils.d.ts.map +1 -1
  89. package/dist/react/portal-container-context.d.ts +0 -1
  90. package/dist/react/portal-container-context.d.ts.map +1 -1
  91. package/dist/react/portal-container-context.js.map +1 -1
  92. package/dist/react/table/data-table.d.ts +2 -3
  93. package/dist/react/table/data-table.d.ts.map +1 -1
  94. package/dist/react/table/data-table.js.map +1 -1
  95. package/dist/react/table/empty.js.map +1 -1
  96. package/dist/react/table/error.js.map +1 -1
  97. package/dist/react/table/index.d.ts +1 -0
  98. package/dist/react/table/loading.js.map +1 -1
  99. package/dist/react/table/table-wrapper.js.map +1 -1
  100. package/dist/react/table/types.d.ts +0 -1
  101. package/dist/react/table/types.d.ts.map +1 -1
  102. package/dist/react/ui/accordion.d.ts.map +1 -1
  103. package/dist/react/ui/accordion.js.map +1 -1
  104. package/dist/react/ui/alert-dialog.d.ts +12 -12
  105. package/dist/react/ui/alert-dialog.d.ts.map +1 -1
  106. package/dist/react/ui/alert-dialog.js.map +1 -1
  107. package/dist/react/ui/alert.d.ts +4 -4
  108. package/dist/react/ui/alert.d.ts.map +1 -1
  109. package/dist/react/ui/alert.js.map +1 -1
  110. package/dist/react/ui/aspect-ratio.d.ts +2 -2
  111. package/dist/react/ui/aspect-ratio.d.ts.map +1 -1
  112. package/dist/react/ui/aspect-ratio.js.map +1 -1
  113. package/dist/react/ui/avatar.d.ts +4 -4
  114. package/dist/react/ui/avatar.d.ts.map +1 -1
  115. package/dist/react/ui/avatar.js.map +1 -1
  116. package/dist/react/ui/badge.d.ts +2 -2
  117. package/dist/react/ui/badge.d.ts.map +1 -1
  118. package/dist/react/ui/badge.js.map +1 -1
  119. package/dist/react/ui/breadcrumb.d.ts +8 -8
  120. package/dist/react/ui/breadcrumb.d.ts.map +1 -1
  121. package/dist/react/ui/breadcrumb.js.map +1 -1
  122. package/dist/react/ui/button-group.d.ts +6 -6
  123. package/dist/react/ui/button-group.d.ts.map +1 -1
  124. package/dist/react/ui/button-group.js.map +1 -1
  125. package/dist/react/ui/button.d.ts +4 -4
  126. package/dist/react/ui/button.d.ts.map +1 -1
  127. package/dist/react/ui/button.js.map +1 -1
  128. package/dist/react/ui/calendar.d.ts +3 -3
  129. package/dist/react/ui/calendar.d.ts.map +1 -1
  130. package/dist/react/ui/calendar.js.map +1 -1
  131. package/dist/react/ui/card.d.ts +8 -8
  132. package/dist/react/ui/card.d.ts.map +1 -1
  133. package/dist/react/ui/card.js.map +1 -1
  134. package/dist/react/ui/carousel.d.ts +6 -6
  135. package/dist/react/ui/carousel.d.ts.map +1 -1
  136. package/dist/react/ui/carousel.js.map +1 -1
  137. package/dist/react/ui/chart.d.ts +19 -19
  138. package/dist/react/ui/chart.d.ts.map +1 -1
  139. package/dist/react/ui/chart.js.map +1 -1
  140. package/dist/react/ui/checkbox.d.ts +2 -2
  141. package/dist/react/ui/checkbox.d.ts.map +1 -1
  142. package/dist/react/ui/checkbox.js.map +1 -1
  143. package/dist/react/ui/collapsible.d.ts +4 -4
  144. package/dist/react/ui/collapsible.d.ts.map +1 -1
  145. package/dist/react/ui/collapsible.js.map +1 -1
  146. package/dist/react/ui/command.d.ts +10 -10
  147. package/dist/react/ui/command.d.ts.map +1 -1
  148. package/dist/react/ui/command.js.map +1 -1
  149. package/dist/react/ui/context-menu.d.ts +16 -16
  150. package/dist/react/ui/context-menu.d.ts.map +1 -1
  151. package/dist/react/ui/context-menu.js.map +1 -1
  152. package/dist/react/ui/dialog.d.ts +11 -11
  153. package/dist/react/ui/dialog.d.ts.map +1 -1
  154. package/dist/react/ui/dialog.js.map +1 -1
  155. package/dist/react/ui/drawer.d.ts +11 -11
  156. package/dist/react/ui/drawer.d.ts.map +1 -1
  157. package/dist/react/ui/drawer.js.map +1 -1
  158. package/dist/react/ui/dropdown-menu.d.ts +16 -16
  159. package/dist/react/ui/dropdown-menu.d.ts.map +1 -1
  160. package/dist/react/ui/dropdown-menu.js.map +1 -1
  161. package/dist/react/ui/empty.d.ts +9 -9
  162. package/dist/react/ui/empty.d.ts.map +1 -1
  163. package/dist/react/ui/empty.js.map +1 -1
  164. package/dist/react/ui/field.d.ts +13 -13
  165. package/dist/react/ui/field.d.ts.map +1 -1
  166. package/dist/react/ui/field.js.map +1 -1
  167. package/dist/react/ui/form.d.ts +9 -9
  168. package/dist/react/ui/form.d.ts.map +1 -1
  169. package/dist/react/ui/form.js.map +1 -1
  170. package/dist/react/ui/hover-card.d.ts +4 -4
  171. package/dist/react/ui/hover-card.d.ts.map +1 -1
  172. package/dist/react/ui/hover-card.js.map +1 -1
  173. package/dist/react/ui/index.d.ts +53 -0
  174. package/dist/react/ui/input-group.d.ts +10 -10
  175. package/dist/react/ui/input-group.d.ts.map +1 -1
  176. package/dist/react/ui/input-group.js.map +1 -1
  177. package/dist/react/ui/input-otp.d.ts +5 -5
  178. package/dist/react/ui/input-otp.d.ts.map +1 -1
  179. package/dist/react/ui/input-otp.js.map +1 -1
  180. package/dist/react/ui/input.d.ts +2 -2
  181. package/dist/react/ui/input.d.ts.map +1 -1
  182. package/dist/react/ui/input.js.map +1 -1
  183. package/dist/react/ui/item.d.ts +14 -14
  184. package/dist/react/ui/item.d.ts.map +1 -1
  185. package/dist/react/ui/item.js.map +1 -1
  186. package/dist/react/ui/kbd.d.ts +3 -3
  187. package/dist/react/ui/kbd.d.ts.map +1 -1
  188. package/dist/react/ui/kbd.js.map +1 -1
  189. package/dist/react/ui/label.d.ts +2 -2
  190. package/dist/react/ui/label.d.ts.map +1 -1
  191. package/dist/react/ui/label.js.map +1 -1
  192. package/dist/react/ui/menubar.d.ts +17 -17
  193. package/dist/react/ui/menubar.d.ts.map +1 -1
  194. package/dist/react/ui/menubar.js.map +1 -1
  195. package/dist/react/ui/navigation-menu.d.ts +11 -11
  196. package/dist/react/ui/navigation-menu.d.ts.map +1 -1
  197. package/dist/react/ui/navigation-menu.js.map +1 -1
  198. package/dist/react/ui/pagination.d.ts +8 -8
  199. package/dist/react/ui/pagination.d.ts.map +1 -1
  200. package/dist/react/ui/pagination.js.map +1 -1
  201. package/dist/react/ui/popover.d.ts +5 -5
  202. package/dist/react/ui/popover.d.ts.map +1 -1
  203. package/dist/react/ui/popover.js.map +1 -1
  204. package/dist/react/ui/progress.d.ts +2 -2
  205. package/dist/react/ui/progress.d.ts.map +1 -1
  206. package/dist/react/ui/progress.js.map +1 -1
  207. package/dist/react/ui/radio-group.d.ts +3 -3
  208. package/dist/react/ui/radio-group.d.ts.map +1 -1
  209. package/dist/react/ui/radio-group.js.map +1 -1
  210. package/dist/react/ui/resizable.d.ts +4 -4
  211. package/dist/react/ui/resizable.d.ts.map +1 -1
  212. package/dist/react/ui/resizable.js.map +1 -1
  213. package/dist/react/ui/scroll-area.d.ts +3 -3
  214. package/dist/react/ui/scroll-area.d.ts.map +1 -1
  215. package/dist/react/ui/scroll-area.js.map +1 -1
  216. package/dist/react/ui/select.d.ts +11 -11
  217. package/dist/react/ui/select.d.ts.map +1 -1
  218. package/dist/react/ui/select.js.map +1 -1
  219. package/dist/react/ui/separator.d.ts +2 -2
  220. package/dist/react/ui/separator.d.ts.map +1 -1
  221. package/dist/react/ui/separator.js.map +1 -1
  222. package/dist/react/ui/sheet.d.ts +9 -9
  223. package/dist/react/ui/sheet.d.ts.map +1 -1
  224. package/dist/react/ui/sheet.js.map +1 -1
  225. package/dist/react/ui/sidebar.d.ts +38 -55
  226. package/dist/react/ui/sidebar.d.ts.map +1 -1
  227. package/dist/react/ui/sidebar.js.map +1 -1
  228. package/dist/react/ui/skeleton.d.ts +2 -2
  229. package/dist/react/ui/skeleton.d.ts.map +1 -1
  230. package/dist/react/ui/skeleton.js.map +1 -1
  231. package/dist/react/ui/slider.d.ts +2 -2
  232. package/dist/react/ui/slider.d.ts.map +1 -1
  233. package/dist/react/ui/slider.js.map +1 -1
  234. package/dist/react/ui/sonner.d.ts +2 -2
  235. package/dist/react/ui/sonner.d.ts.map +1 -1
  236. package/dist/react/ui/sonner.js.map +1 -1
  237. package/dist/react/ui/spinner.d.ts +2 -2
  238. package/dist/react/ui/spinner.d.ts.map +1 -1
  239. package/dist/react/ui/spinner.js.map +1 -1
  240. package/dist/react/ui/switch.d.ts +2 -2
  241. package/dist/react/ui/switch.d.ts.map +1 -1
  242. package/dist/react/ui/switch.js.map +1 -1
  243. package/dist/react/ui/table.d.ts +9 -9
  244. package/dist/react/ui/table.d.ts.map +1 -1
  245. package/dist/react/ui/table.js.map +1 -1
  246. package/dist/react/ui/tabs.d.ts +5 -5
  247. package/dist/react/ui/tabs.d.ts.map +1 -1
  248. package/dist/react/ui/tabs.js.map +1 -1
  249. package/dist/react/ui/textarea.d.ts +2 -2
  250. package/dist/react/ui/textarea.d.ts.map +1 -1
  251. package/dist/react/ui/textarea.js.map +1 -1
  252. package/dist/react/ui/toggle-group.d.ts +3 -3
  253. package/dist/react/ui/toggle-group.d.ts.map +1 -1
  254. package/dist/react/ui/toggle-group.js.map +1 -1
  255. package/dist/react/ui/toggle.d.ts +4 -4
  256. package/dist/react/ui/toggle.d.ts.map +1 -1
  257. package/dist/react/ui/toggle.js.map +1 -1
  258. package/dist/react/ui/tooltip.d.ts +5 -5
  259. package/dist/react/ui/tooltip.d.ts.map +1 -1
  260. package/dist/react/ui/tooltip.js.map +1 -1
  261. package/dist/shared/src/cache.d.ts +1 -0
  262. package/dist/shared/src/execute.d.ts +1 -0
  263. package/dist/shared/src/genie.d.ts +6 -0
  264. package/dist/shared/src/genie.d.ts.map +1 -1
  265. package/dist/shared/src/index.d.ts +7 -0
  266. package/dist/shared/src/plugin.d.ts +2 -0
  267. package/dist/shared/src/sql/helpers.d.ts +0 -1
  268. package/dist/shared/src/sql/helpers.d.ts.map +1 -1
  269. package/dist/shared/src/sql/types.d.ts.map +1 -1
  270. package/dist/shared/src/tunnel.d.ts +1 -0
  271. package/docs/api/appkit-ui/genie/GenieChatMessageList.md +7 -5
  272. package/docs/development/project-setup.md +1 -1
  273. package/docs/plugins/plugin-management.md +16 -2
  274. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","names":[],"sources":["../../../src/react/ui/button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\n/** Clickable button with multiple variants and sizes */\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;AAMA,MAAM,iBAAiB,IACrB,odACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,aACE;GACF,SACE;GACF,WACE;GACF,OACE;GACF,MAAM;GACP;EACD,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,MAAM;GACN,WAAW;GACX,WAAW;GACZ;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF;;AAGD,SAAS,OAAO,EACd,WACA,SACA,MACA,UAAU,OACV,GAAG,SAIA;AAGH,QACE,oBAHW,UAAU,OAAO,UAG5B;EACE,aAAU;EACV,WAAW,GAAG,eAAe;GAAE;GAAS;GAAM;GAAW,CAAC,CAAC;EAC3D,GAAI;EACJ"}
1
+ {"version":3,"file":"button.js","names":[],"sources":["../../../src/react/ui/button.tsx"],"sourcesContent":["import type * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:cursor-pointer\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\n/** Clickable button with multiple variants and sizes */\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;AAMA,MAAM,iBAAiB,IACrB,odACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,aACE;GACF,SACE;GACF,WACE;GACF,OACE;GACF,MAAM;GACP;EACD,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;GACJ,MAAM;GACN,WAAW;GACX,WAAW;GACZ;EACF;CACD,iBAAiB;EACf,SAAS;EACT,MAAM;EACP;CACF,CACF;;AAGD,SAAS,OAAO,EACd,WACA,SACA,MACA,UAAU,OACV,GAAG,SAIA;AAGH,QACE,oBAHW,UAAU,OAAO;EAI1B,aAAU;EACV,WAAW,GAAG,eAAe;GAAE;GAAS;GAAM;GAAW,CAAC,CAAC;EAC3D,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_runtime34 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import { DayButton, DayPicker } from "react-day-picker";
5
5
 
6
6
  //#region src/react/ui/calendar.d.ts
@@ -16,14 +16,14 @@ declare function Calendar({
16
16
  ...props
17
17
  }: React$1.ComponentProps<typeof DayPicker> & {
18
18
  buttonVariant?: React$1.ComponentProps<typeof Button>["variant"];
19
- }): react_jsx_runtime34.JSX.Element;
19
+ }): react_jsx_runtime0.JSX.Element;
20
20
  /** Individual day button within the calendar grid */
21
21
  declare function CalendarDayButton({
22
22
  className,
23
23
  day,
24
24
  modifiers,
25
25
  ...props
26
- }: React$1.ComponentProps<typeof DayButton>): react_jsx_runtime34.JSX.Element;
26
+ }: React$1.ComponentProps<typeof DayButton>): react_jsx_runtime0.JSX.Element;
27
27
  //#endregion
28
28
  export { Calendar, CalendarDayButton };
29
29
  //# sourceMappingURL=calendar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","names":[],"sources":["../../../src/react/ui/calendar.tsx"],"sourcesContent":[],"mappings":";;;;;;;iBAeS,QAAA;;;;;;;;;AAHyC,GAY/C,OAAA,CAAM,sBAAsB;kBACb,OAAA,CAAM,sBAAsB;AAbI,CAAA,CAAA,EAcjD,mBAAA,CAAA,GAAA,CAAA,OAXgB;;iBAqKR,iBAAA,CApKP;EAAA,SAAA;EAAA,GAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyKC,OAAA,CAAM,cAzKP,CAAA,OAyK6B,SAzK7B,CAAA,CAAA,EAyKuC,mBAAA,CAAA,GAAA,CAAA,OAzKvC"}
1
+ {"version":3,"file":"calendar.d.ts","names":[],"sources":["../../../src/react/ui/calendar.tsx"],"mappings":";;;;;;;iBAeS,QAAA,CAAA;EACP,SAAA;EACA,UAAA;EACA,eAAA;EACA,aAAA;EACA,aAAA;EACA,UAAA;EACA,UAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,SAAA;EAC7B,aAAA,GAAgB,OAAA,CAAM,cAAA,QAAsB,MAAA;AAAA,IAC7C,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBA0JQ,iBAAA,CAAA;EACP,SAAA;EACA,GAAA;EACA,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,SAAA,IAAU,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","names":["React"],"sources":["../../../src/react/ui/calendar.tsx"],"sourcesContent":["// @ts-nocheck\n\"use client\";\n\nimport * as React from \"react\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\";\nimport { type DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button, buttonVariants } from \"./button\";\n\n/** Date picker component for selecting single dates or date ranges */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months,\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown,\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label,\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday,\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number,\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-md\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-md\",\n defaultClassNames.day,\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start,\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today,\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside,\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled,\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n );\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n );\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n );\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n );\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\n/** Individual day button within the calendar grid */\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":";;;;;;;;;;;AAeA,SAAS,SAAS,EAChB,WACA,YACA,kBAAkB,MAClB,gBAAgB,SAChB,gBAAgB,SAChB,YACA,YACA,GAAG,SAGF;CACD,MAAM,oBAAoB,sBAAsB;AAEhD,QACE,oBAAC,WAAD;EACmB;EACjB,WAAW,GACT,0JACA,OAAO,GAAG,6CACV,OAAO,GAAG,iDACV,UACD;EACc;EACf,YAAY;GACV,sBAAsB,SACpB,KAAK,eAAe,WAAW,EAAE,OAAO,SAAS,CAAC;GACpD,GAAG;GACJ;EACD,YAAY;GACV,MAAM,GAAG,SAAS,kBAAkB,KAAK;GACzC,QAAQ,GACN,4CACA,kBAAkB,OACnB;GACD,OAAO,GAAG,8BAA8B,kBAAkB,MAAM;GAChE,KAAK,GACH,2EACA,kBAAkB,IACnB;GACD,iBAAiB,GACf,eAAe,EAAE,SAAS,eAAe,CAAC,EAC1C,+DACA,kBAAkB,gBACnB;GACD,aAAa,GACX,eAAe,EAAE,SAAS,eAAe,CAAC,EAC1C,+DACA,kBAAkB,YACnB;GACD,eAAe,GACb,4EACA,kBAAkB,cACnB;GACD,WAAW,GACT,uFACA,kBAAkB,UACnB;GACD,eAAe,GACb,uHACA,kBAAkB,cACnB;GACD,UAAU,GACR,yCACA,kBAAkB,SACnB;GACD,eAAe,GACb,2BACA,kBAAkB,UACd,YACA,2GACJ,kBAAkB,cACnB;GACD,OAAO;GACP,UAAU,GAAG,QAAQ,kBAAkB,SAAS;GAChD,SAAS,GACP,iFACA,kBAAkB,QACnB;GACD,MAAM,GAAG,oBAAoB,kBAAkB,KAAK;GACpD,oBAAoB,GAClB,+BACA,kBAAkB,mBACnB;GACD,aAAa,GACX,mDACA,kBAAkB,YACnB;GACD,KAAK,GACH,qIACA,MAAM,iBACF,6DACA,2DACJ,kBAAkB,IACnB;GACD,aAAa,GACX,0BACA,kBAAkB,YACnB;GACD,cAAc,GAAG,gBAAgB,kBAAkB,aAAa;GAChE,WAAW,GAAG,0BAA0B,kBAAkB,UAAU;GACpE,OAAO,GACL,iFACA,kBAAkB,MACnB;GACD,SAAS,GACP,6DACA,kBAAkB,QACnB;GACD,UAAU,GACR,oCACA,kBAAkB,SACnB;GACD,QAAQ,GAAG,aAAa,kBAAkB,OAAO;GACjD,GAAG;GACJ;EACD,YAAY;GACV,OAAO,EAAE,WAAW,SAAS,GAAG,YAAY;AAC1C,WACE,oBAAC,OAAD;KACE,aAAU;KACV,KAAK;KACL,WAAW,GAAG,UAAU;KACxB,GAAI;KACJ;;GAGN,UAAU,EAAE,WAAW,aAAa,GAAG,YAAY;AACjD,QAAI,gBAAgB,OAClB,QACE,oBAAC,iBAAD;KAAiB,WAAW,GAAG,UAAU,UAAU;KAAE,GAAI;KAAS;AAItE,QAAI,gBAAgB,QAClB,QACE,oBAAC,kBAAD;KACE,WAAW,GAAG,UAAU,UAAU;KAClC,GAAI;KACJ;AAIN,WACE,oBAAC,iBAAD;KAAiB,WAAW,GAAG,UAAU,UAAU;KAAE,GAAI;KAAS;;GAGtE,WAAW;GACX,aAAa,EAAE,UAAU,GAAG,YAAY;AACtC,WACE,oBAAC,MAAD;KAAI,GAAI;eACN,oBAAC,OAAD;MAAK,WAAU;MACZ;MACG;KACH;;GAGT,GAAG;GACJ;EACD,GAAI;EACJ;;;AAKN,SAAS,kBAAkB,EACzB,WACA,KACA,WACA,GAAG,SACsC;CACzC,MAAM,oBAAoB,sBAAsB;CAEhD,MAAM,MAAMA,QAAM,OAA0B,KAAK;AACjD,SAAM,gBAAgB;AACpB,MAAI,UAAU,QAAS,KAAI,SAAS,OAAO;IAC1C,CAAC,UAAU,QAAQ,CAAC;AAEvB,QACE,oBAAC,QAAD;EACO;EACL,SAAQ;EACR,MAAK;EACL,YAAU,IAAI,KAAK,oBAAoB;EACvC,wBACE,UAAU,YACV,CAAC,UAAU,eACX,CAAC,UAAU,aACX,CAAC,UAAU;EAEb,oBAAkB,UAAU;EAC5B,kBAAgB,UAAU;EAC1B,qBAAmB,UAAU;EAC7B,WAAW,GACT,o3BACA,kBAAkB,KAClB,UACD;EACD,GAAI;EACJ"}
1
+ {"version":3,"file":"calendar.js","names":["React"],"sources":["../../../src/react/ui/calendar.tsx"],"sourcesContent":["// @ts-nocheck\n\"use client\";\n\nimport * as React from \"react\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\";\nimport { type DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button, buttonVariants } from \"./button\";\n\n/** Date picker component for selecting single dates or date ranges */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"];\n}) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months,\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown,\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label,\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday,\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number,\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-md\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-md\",\n defaultClassNames.day,\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start,\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today,\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside,\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled,\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n );\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n );\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n );\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n );\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\n/** Individual day button within the calendar grid */\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus();\n }, [modifiers.focused]);\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n"],"mappings":"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"}
@@ -1,42 +1,42 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime36 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/react/ui/card.d.ts
5
5
  /** Container for grouping related content with header, body, and footer sections */
6
6
  declare function Card({
7
7
  className,
8
8
  ...props
9
- }: React$1.ComponentProps<"div">): react_jsx_runtime36.JSX.Element;
9
+ }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
10
10
  /** Header section containing title, description, and actions */
11
11
  declare function CardHeader({
12
12
  className,
13
13
  ...props
14
- }: React$1.ComponentProps<"div">): react_jsx_runtime36.JSX.Element;
14
+ }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
15
15
  /** Title heading for the card */
16
16
  declare function CardTitle({
17
17
  className,
18
18
  ...props
19
- }: React$1.ComponentProps<"div">): react_jsx_runtime36.JSX.Element;
19
+ }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
20
20
  /** Descriptive text providing context for the card */
21
21
  declare function CardDescription({
22
22
  className,
23
23
  ...props
24
- }: React$1.ComponentProps<"div">): react_jsx_runtime36.JSX.Element;
24
+ }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
25
25
  /** Action buttons or controls positioned in the card header */
26
26
  declare function CardAction({
27
27
  className,
28
28
  ...props
29
- }: React$1.ComponentProps<"div">): react_jsx_runtime36.JSX.Element;
29
+ }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
30
30
  /** Main content area of the card */
31
31
  declare function CardContent({
32
32
  className,
33
33
  ...props
34
- }: React$1.ComponentProps<"div">): react_jsx_runtime36.JSX.Element;
34
+ }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
35
35
  /** Footer section for additional actions or information */
36
36
  declare function CardFooter({
37
37
  className,
38
38
  ...props
39
- }: React$1.ComponentProps<"div">): react_jsx_runtime36.JSX.Element;
39
+ }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
40
40
  //#endregion
41
41
  export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
42
42
  //# sourceMappingURL=card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"card.d.ts","names":[],"sources":["../../../src/react/ui/card.tsx"],"sourcesContent":[],"mappings":";;;;;iBAKS,IAAA;;;GAA8B,OAAA,CAAM,wBAAqB,mBAAA,CAAA,GAAA,CAAA;;AAL9B,iBAmB3B,UAAA,CAdI;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAcgC,OAAA,CAAM,cAdtC,CAAA,KAAA,CAAA,CAAA,EAc2D,mBAAA,CAAA,GAAA,CAAA,OAd3D;;iBA4BJ,SAAA,CA5BO;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4B4B,OAAA,CAAM,cA5BlC,CAAA,KAAA,CAAA,CAAA,EA4BuD,mBAAA,CAAA,GAAA,CAAA,OA5BvD;;iBAuCP,eAAA,CAvCyD;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuChB,OAAA,CAAM,cAvCU,CAAA,KAAA,CAAA,CAAA,EAuCW,mBAAA,CAAA,GAAA,CAAA,OAvCX;;AAAA,iBAkDzD,UAAA,CApCU;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAoC0B,OAAA,CAAM,cApChC,CAAA,KAAA,CAAA,CAAA,EAoCqD,mBAAA,CAAA,GAAA,CAAA,OApCrD;;iBAkDV,WAAA,CAlDa;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkDwB,OAAA,CAAM,cAlD9B,CAAA,KAAA,CAAA,CAAA,EAkDmD,mBAAA,CAAA,GAAA,CAAA,OAlDnD;;iBA6Db,UAAA,CA7D+D;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6D3B,OAAA,CAAM,cA7DqB,CAAA,KAAA,CAAA,CAAA,EA6DA,mBAAA,CAAA,GAAA,CAAA,OA7DA"}
1
+ {"version":3,"file":"card.d.ts","names":[],"sources":["../../../src/react/ui/card.tsx"],"mappings":";;;;;iBAKS,IAAA,CAAA;EAAO,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAczD,UAAA,CAAA;EAAa,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAc/D,SAAA,CAAA;EAAY,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAW9D,eAAA,CAAA;EAAkB,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAWpE,UAAA,CAAA;EAAa,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAc/D,WAAA,CAAA;EAAc,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAWhE,UAAA,CAAA;EAAa,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -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\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,OAAD;EACE,aAAU;EACV,WAAW,GACT,mGACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,4JACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,UAAU,EAAE,WAAW,GAAG,SAAsC;AACvE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,8BAA8B,UAAU;EACtD,GAAI;EACJ;;;AAKN,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAsC;AAC7E,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;EACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,kEACA,UACD;EACD,GAAI;EACJ;;;AAKN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,QAAQ,UAAU;EAChC,GAAI;EACJ;;;AAKN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,2CAA2C,UAAU;EACnE,GAAI;EACJ"}
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_runtime43 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import useEmblaCarousel, { UseEmblaCarouselType } from "embla-carousel-react";
5
5
 
6
6
  //#region src/react/ui/carousel.d.ts
@@ -23,31 +23,31 @@ declare function Carousel({
23
23
  className,
24
24
  children,
25
25
  ...props
26
- }: React$1.ComponentProps<"div"> & CarouselProps): react_jsx_runtime43.JSX.Element;
26
+ }: React$1.ComponentProps<"div"> & CarouselProps): react_jsx_runtime0.JSX.Element;
27
27
  /** Container for carousel slides with horizontal or vertical scrolling */
28
28
  declare function CarouselContent({
29
29
  className,
30
30
  ...props
31
- }: React$1.ComponentProps<"div">): react_jsx_runtime43.JSX.Element;
31
+ }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
32
32
  /** Individual slide within the carousel */
33
33
  declare function CarouselItem({
34
34
  className,
35
35
  ...props
36
- }: React$1.ComponentProps<"div">): react_jsx_runtime43.JSX.Element;
36
+ }: React$1.ComponentProps<"div">): react_jsx_runtime0.JSX.Element;
37
37
  /** Button to navigate to the previous carousel slide */
38
38
  declare function CarouselPrevious({
39
39
  className,
40
40
  variant,
41
41
  size,
42
42
  ...props
43
- }: React$1.ComponentProps<typeof Button>): react_jsx_runtime43.JSX.Element;
43
+ }: React$1.ComponentProps<typeof Button>): react_jsx_runtime0.JSX.Element;
44
44
  /** Button to navigate to the next carousel slide */
45
45
  declare function CarouselNext({
46
46
  className,
47
47
  variant,
48
48
  size,
49
49
  ...props
50
- }: React$1.ComponentProps<typeof Button>): react_jsx_runtime43.JSX.Element;
50
+ }: React$1.ComponentProps<typeof Button>): react_jsx_runtime0.JSX.Element;
51
51
  //#endregion
52
52
  export { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };
53
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;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"}
1
+ {"version":3,"file":"carousel.d.ts","names":[],"sources":["../../../src/react/ui/carousel.tsx"],"mappings":";;;;;;KASK,WAAA,GAAc,oBAAA;AAAA,KACd,qBAAA,GAAwB,UAAA,QAAkB,gBAAA;AAAA,KAC1C,eAAA,GAAkB,qBAAA;AAAA,KAClB,cAAA,GAAiB,qBAAA;AAAA,KAEjB,aAAA;EACH,IAAA,GAAO,eAAA;EACP,OAAA,GAAU,cAAA;EACV,WAAA;EACA,MAAA,IAAU,GAAA,EAAK,WAAA;AAAA;;iBAyBR,QAAA,CAAA;EACP,WAAA;EACA,IAAA;EACA,MAAA;EACA,OAAA;EACA,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,UAAwB,aAAA,GAAa,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAmFrC,eAAA,CAAA;EAAkB,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAsBpE,YAAA,CAAA;EAAe,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAmBjE,gBAAA,CAAA;EACP,SAAA;EACA,OAAA;EACA,IAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,MAAA,IAAO,kBAAA,CAAA,GAAA,CAAA,OAAA;AAzKM;AAAA,iBAmMnC,YAAA,CAAA;EACP,SAAA;EACA,OAAA;EACA,IAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,MAAA,IAAO,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +1 @@
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
+ {"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":";;;;;;;;AA8BA,MAAM,kBAAkBA,QAAM,cAA2C,KAAK;AAE9E,SAAS,cAAc;CACrB,MAAM,UAAUA,QAAM,WAAW,gBAAgB;AAEjD,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,iDAAiD;AAGnE,QAAO;;;AAIT,SAAS,SAAS,EAChB,cAAc,cACd,MACA,QACA,SACA,WACA,UACA,GAAG,SAC2C;CAC9C,MAAM,CAAC,aAAa,OAAO,iBACzB;EACE,GAAG;EACH,MAAM,gBAAgB,eAAe,MAAM;EAC5C,EACD,QACD;CACD,MAAM,CAAC,eAAe,oBAAoBA,QAAM,SAAS,MAAM;CAC/D,MAAM,CAAC,eAAe,oBAAoBA,QAAM,SAAS,MAAM;CAE/D,MAAM,WAAWA,QAAM,aAAa,QAAqB;AACvD,MAAI,CAAC,IAAK;AACV,mBAAiB,IAAI,eAAe,CAAC;AACrC,mBAAiB,IAAI,eAAe,CAAC;IACpC,EAAE,CAAC;CAEN,MAAM,aAAaA,QAAM,kBAAkB;AACzC,OAAK,YAAY;IAChB,CAAC,IAAI,CAAC;CAET,MAAM,aAAaA,QAAM,kBAAkB;AACzC,OAAK,YAAY;IAChB,CAAC,IAAI,CAAC;CAET,MAAM,gBAAgBA,QAAM,aACzB,UAA+C;AAC9C,MAAI,MAAM,QAAQ,aAAa;AAC7B,SAAM,gBAAgB;AACtB,eAAY;aACH,MAAM,QAAQ,cAAc;AACrC,SAAM,gBAAgB;AACtB,eAAY;;IAGhB,CAAC,YAAY,WAAW,CACzB;AAED,SAAM,gBAAgB;AACpB,MAAI,CAAC,OAAO,CAAC,OAAQ;AACrB,SAAO,IAAI;IACV,CAAC,KAAK,OAAO,CAAC;AAEjB,SAAM,gBAAgB;AACpB,MAAI,CAAC,IAAK;AACV,WAAS,IAAI;AACb,MAAI,GAAG,UAAU,SAAS;AAC1B,MAAI,GAAG,UAAU,SAAS;AAE1B,eAAa;AACX,QAAK,IAAI,UAAU,SAAS;;IAE7B,CAAC,KAAK,SAAS,CAAC;AAEnB,QACE,oBAAC,gBAAgB;EACf,OAAO;GACL;GACK;GACL;GACA,aACE,gBAAgB,MAAM,SAAS,MAAM,aAAa;GACpD;GACA;GACA;GACA;GACD;YAED,oBAAC;GACC,kBAAkB;GAClB,WAAW,GAAG,YAAY,UAAU;GACpC,MAAK;GACL,wBAAqB;GACrB,aAAU;GACV,GAAI;GAEH;IACG;GACmB;;;AAK/B,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAsC;CAC7E,MAAM,EAAE,aAAa,gBAAgB,aAAa;AAElD,QACE,oBAAC;EACC,KAAK;EACL,WAAU;EACV,aAAU;YAEV,oBAAC;GACC,WAAW,GACT,QACA,gBAAgB,eAAe,UAAU,kBACzC,UACD;GACD,GAAI;IACJ;GACE;;;AAKV,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;CAC1E,MAAM,EAAE,gBAAgB,aAAa;AAErC,QACE,oBAAC;EACC,MAAK;EACL,wBAAqB;EACrB,aAAU;EACV,WAAW,GACT,sCACA,gBAAgB,eAAe,SAAS,QACxC,UACD;EACD,GAAI;GACJ;;;AAKN,SAAS,iBAAiB,EACxB,WACA,UAAU,WACV,OAAO,QACP,GAAG,SACmC;CACtC,MAAM,EAAE,aAAa,YAAY,kBAAkB,aAAa;AAEhE,QACE,qBAAC;EACC,aAAU;EACD;EACH;EACN,WAAW,GACT,gCACA,gBAAgB,eACZ,sCACA,+CACJ,UACD;EACD,UAAU,CAAC;EACX,SAAS;EACT,GAAI;aAEJ,oBAAC,cAAY,EACb,oBAAC;GAAK,WAAU;aAAU;IAAqB;GACxC;;;AAKb,SAAS,aAAa,EACpB,WACA,UAAU,WACV,OAAO,QACP,GAAG,SACmC;CACtC,MAAM,EAAE,aAAa,YAAY,kBAAkB,aAAa;AAEhE,QACE,qBAAC;EACC,aAAU;EACD;EACH;EACN,WAAW,GACT,gCACA,gBAAgB,eACZ,uCACA,kDACJ,UACD;EACD,UAAU,CAAC;EACX,SAAS;EACT,GAAI;aAEJ,oBAAC,eAAa,EACd,oBAAC;GAAK,WAAU;aAAU;IAAiB;GACpC"}
@@ -1,5 +1,5 @@
1
- import * as react0 from "react";
2
- import * as react_jsx_runtime48 from "react/jsx-runtime";
1
+ import * as react from "react";
2
+ import * as react_jsx_runtime0 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";
@@ -12,8 +12,8 @@ declare const THEMES: {
12
12
  readonly dark: ".dark";
13
13
  };
14
14
  type ChartConfig = { [k in string]: {
15
- label?: react0.ReactNode;
16
- icon?: react0.ComponentType;
15
+ label?: react.ReactNode;
16
+ icon?: react.ComponentType;
17
17
  } & ({
18
18
  color?: string;
19
19
  theme?: never;
@@ -28,23 +28,23 @@ declare function ChartContainer({
28
28
  children,
29
29
  config,
30
30
  ...props
31
- }: react0.ComponentProps<"div"> & {
31
+ }: react.ComponentProps<"div"> & {
32
32
  config: ChartConfig;
33
- children: react0.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
34
- }): react_jsx_runtime48.JSX.Element;
33
+ children: react.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
34
+ }): react_jsx_runtime0.JSX.Element;
35
35
  declare const ChartStyle: ({
36
36
  id,
37
37
  config
38
38
  }: {
39
39
  id: string;
40
40
  config: ChartConfig;
41
- }) => react_jsx_runtime48.JSX.Element | null;
41
+ }) => react_jsx_runtime0.JSX.Element | null;
42
42
  /**
43
43
  * A wrapper component for Recharts Tooltip with proper typing and documentation support.
44
44
  * It is needed to ensure the correct name is displayed in the docs.
45
45
  * @see https://recharts.org/en-US/api/Tooltip
46
46
  */
47
- declare const ChartTooltip: react0.ForwardRefExoticComponent<RechartsPrimitive.DefaultTooltipContentProps<any, any> & {
47
+ declare const ChartTooltip: react.ForwardRefExoticComponent<RechartsPrimitive.DefaultTooltipContentProps<any, any> & {
48
48
  accessibilityLayer?: boolean;
49
49
  active?: boolean | undefined;
50
50
  includeHidden?: boolean | undefined;
@@ -53,7 +53,7 @@ declare const ChartTooltip: react0.ForwardRefExoticComponent<RechartsPrimitive.D
53
53
  animationEasing?: recharts_types_util_types0.AnimationTiming;
54
54
  content?: recharts_types_component_Tooltip0.ContentType<any, any> | undefined;
55
55
  coordinate?: Partial<recharts_types_util_types0.Coordinate>;
56
- cursor?: boolean | react0.ReactElement | react0.SVGProps<SVGElement>;
56
+ cursor?: boolean | react.ReactElement | react.SVGProps<SVGElement>;
57
57
  filterNull?: boolean;
58
58
  defaultIndex?: number;
59
59
  isAnimationActive?: boolean;
@@ -65,8 +65,8 @@ declare const ChartTooltip: react0.ForwardRefExoticComponent<RechartsPrimitive.D
65
65
  trigger?: "hover" | "click";
66
66
  useTranslate3d?: boolean;
67
67
  viewBox?: recharts_types_util_types0.CartesianViewBox;
68
- wrapperStyle?: react0.CSSProperties;
69
- } & react0.RefAttributes<HTMLDivElement>>;
68
+ wrapperStyle?: react.CSSProperties;
69
+ } & react.RefAttributes<HTMLDivElement>>;
70
70
  declare function ChartTooltipContent({
71
71
  active,
72
72
  payload,
@@ -81,12 +81,12 @@ declare function ChartTooltipContent({
81
81
  color,
82
82
  nameKey,
83
83
  labelKey
84
- }: react0.ComponentProps<"div"> & {
84
+ }: react.ComponentProps<"div"> & {
85
85
  active?: boolean;
86
86
  payload?: any[];
87
87
  label?: string;
88
- labelFormatter?: (value: any, payload: any[]) => react0.ReactNode;
89
- formatter?: (value: any, name: any, item: any, index: number, payload: any) => react0.ReactNode;
88
+ labelFormatter?: (value: any, payload: any[]) => react.ReactNode;
89
+ formatter?: (value: any, name: any, item: any, index: number, payload: any) => react.ReactNode;
90
90
  color?: string;
91
91
  hideLabel?: boolean;
92
92
  hideIndicator?: boolean;
@@ -94,24 +94,24 @@ declare function ChartTooltipContent({
94
94
  labelClassName?: string;
95
95
  nameKey?: string;
96
96
  labelKey?: string;
97
- }): react_jsx_runtime48.JSX.Element | null;
97
+ }): react_jsx_runtime0.JSX.Element | null;
98
98
  /**
99
99
  * A wrapper component for Recharts Legend with proper typing and documentation support.
100
100
  * It is needed to ensure the correct name is displayed in the docs.
101
101
  * @see https://recharts.org/en-US/api/Legend
102
102
  */
103
- declare const ChartLegend: react0.ForwardRefExoticComponent<Omit<RechartsPrimitive.LegendProps, "ref"> & react0.RefAttributes<HTMLDivElement>>;
103
+ declare const ChartLegend: react.ForwardRefExoticComponent<Omit<RechartsPrimitive.LegendProps, "ref"> & react.RefAttributes<HTMLDivElement>>;
104
104
  declare function ChartLegendContent({
105
105
  className,
106
106
  hideIcon,
107
107
  payload,
108
108
  verticalAlign,
109
109
  nameKey
110
- }: react0.ComponentProps<"div"> & Pick<RechartsPrimitive.LegendProps, "verticalAlign"> & {
110
+ }: react.ComponentProps<"div"> & Pick<RechartsPrimitive.LegendProps, "verticalAlign"> & {
111
111
  payload?: any[];
112
112
  hideIcon?: boolean;
113
113
  nameKey?: string;
114
- }): react_jsx_runtime48.JSX.Element | null;
114
+ }): react_jsx_runtime0.JSX.Element | null;
115
115
  //#endregion
116
116
  export { ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
117
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;;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"}
1
+ {"version":3,"file":"chart.d.ts","names":[],"sources":["../../../src/react/ui/chart.tsx"],"mappings":";;;;;;;;;cAQM,MAAA;EAAA,SAA8C,KAAA;EAAA,SAAA,IAAA;AAAA;AAAA,KAExC,WAAA;EAER,KAAA,GAAQ,KAAA,CAAM,SAAA;EACd,IAAA,GAAO,KAAA,CAAM,aAAA;AAAA;EAET,KAAA;EAAgB,KAAA;AAAA;EAChB,KAAA;EAAe,KAAA,EAAO,MAAA,cAAoB,MAAA;AAAA;;iBAqBzC,cAAA,CAAA;EACP,EAAA;EACA,SAAA;EACA,QAAA;EACA,MAAA;EAAA,GACG;AAAA,GACF,KAAA,CAAM,cAAA;EACP,MAAA,EAAQ,WAAA;EACR,QAAA,EAAU,KAAA,CAAM,cAAA,QACP,iBAAA,CAAkB,mBAAA;AAAA,IAE5B,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAwBK,UAAA;EAAc,EAAA;EAAA;AAAA;EAAkB,EAAA;EAAY,MAAA,EAAQ,WAAA;AAAA,MAAa,kBAAA,CAAA,GAAA,CAAA,OAAA;;;;;;cAsCjE,YAAA,EAAY,KAAA,CAAA,yBAAA,CAAA,iBAAA,CAAA,0BAAA;;;;uBAAA,0BAAA,CAAA,gBAAA;;;;;;;;;;;;;;;;;;;iBAOT,mBAAA,CAAA;EACP,MAAA;EACA,OAAA;EACA,SAAA;EACA,SAAA;EACA,SAAA;EACA,aAAA;EACA,KAAA;EACA,cAAA;EACA,cAAA;EACA,SAAA;EACA,KAAA;EACA,OAAA;EACA;AAAA,GACC,KAAA,CAAM,cAAA;EACP,MAAA;EACA,OAAA;EACA,KAAA;EACA,cAAA,IAAkB,KAAA,OAAY,OAAA,YAAmB,KAAA,CAAM,SAAA;EACvD,SAAA,IACE,KAAA,OACA,IAAA,OACA,IAAA,OACA,KAAA,UACA,OAAA,UACG,KAAA,CAAM,SAAA;EACX,KAAA;EACA,SAAA;EACA,aAAA;EACA,SAAA;EACA,cAAA;EACA,OAAA;EACA,QAAA;AAAA,IACD,kBAAA,CAAA,GAAA,CAAA,OAAA;;;;;;cAkIK,WAAA,EAAW,KAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,iBAAA,CAAA,WAAA,WAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,iBAOR,kBAAA,CAAA;EACP,SAAA;EACA,QAAA;EACA,OAAA;EACA,aAAA;EACA;AAAA,GACC,KAAA,CAAM,cAAA,UACP,IAAA,CAAK,iBAAA,CAAkB,WAAA;EACrB,OAAA;EACA,QAAA;EACA,OAAA;AAAA,IACD,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1 +1 @@
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
+ {"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,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime52 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime0 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
@@ -7,7 +7,7 @@ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
7
7
  declare function Checkbox({
8
8
  className,
9
9
  ...props
10
- }: React$1.ComponentProps<typeof CheckboxPrimitive.Root>): react_jsx_runtime52.JSX.Element;
10
+ }: React$1.ComponentProps<typeof CheckboxPrimitive.Root>): react_jsx_runtime0.JSX.Element;
11
11
  //#endregion
12
12
  export { Checkbox };
13
13
  //# sourceMappingURL=checkbox.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"checkbox.d.ts","names":[],"sources":["../../../src/react/ui/checkbox.tsx"],"mappings":";;;;;;iBASS,QAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,iBAAA,CAAkB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -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\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,MAAnB;EACE,aAAU;EACV,WAAW,GAET,sCAEA,qEAEA,yJAEA,8FAEA,0GAEA,mDAEA,qBACA,UACD;EACD,GAAI;YAEJ,oBAAC,kBAAkB,WAAnB;GACE,aAAU;GACV,WAAU;aAEV,oBAAC,WAAD,EAAW,WAAU,YAAa;GACN;EACP"}
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,19 +1,19 @@
1
- import * as react_jsx_runtime53 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime0 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
5
  /** Interactive component that expands and collapses content */
6
6
  declare function Collapsible({
7
7
  ...props
8
- }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): react_jsx_runtime53.JSX.Element;
8
+ }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): react_jsx_runtime0.JSX.Element;
9
9
  /** Button that toggles the collapsible content visibility */
10
10
  declare function CollapsibleTrigger({
11
11
  ...props
12
- }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): react_jsx_runtime53.JSX.Element;
12
+ }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): react_jsx_runtime0.JSX.Element;
13
13
  /** Content area that can be expanded or collapsed */
14
14
  declare function CollapsibleContent({
15
15
  ...props
16
- }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): react_jsx_runtime53.JSX.Element;
16
+ }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): react_jsx_runtime0.JSX.Element;
17
17
  //#endregion
18
18
  export { Collapsible, CollapsibleContent, CollapsibleTrigger };
19
19
  //# sourceMappingURL=collapsible.d.ts.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"collapsible.d.ts","names":[],"sources":["../../../src/react/ui/collapsible.tsx"],"mappings":";;;;;iBAGS,WAAA,CAAA;EAAA,GACJ;AAAA,GACF,KAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAKhD,kBAAA,CAAA;EAAA,GACJ;AAAA,GACF,KAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,kBAAA,IAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA;;iBAU9D,kBAAA,CAAA;EAAA,GACJ;AAAA,GACF,KAAA,CAAM,cAAA,QAAsB,oBAAA,CAAqB,kBAAA,IAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -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\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,MAAtB;EAA2B,aAAU;EAAc,GAAI;EAAS;;;AAIzE,SAAS,mBAAmB,EAC1B,GAAG,SACoE;AACvE,QACE,oBAAC,qBAAqB,oBAAtB;EACE,aAAU;EACV,GAAI;EACJ;;;AAKN,SAAS,mBAAmB,EAC1B,GAAG,SACoE;AACvE,QACE,oBAAC,qBAAqB,oBAAtB;EACE,aAAU;EACV,GAAI;EACJ"}
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"}