eai-frontend-components 2.0.14 → 2.0.16

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 (298) hide show
  1. package/dist/components/ui/accordion.d.ts +8 -0
  2. package/dist/components/ui/accordion.d.ts.map +1 -0
  3. package/dist/components/ui/accordion.js +13 -0
  4. package/dist/components/ui/alert-dialog.d.ts +25 -0
  5. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  6. package/dist/components/ui/alert-dialog.js +27 -0
  7. package/dist/components/ui/alert.d.ts +9 -0
  8. package/dist/components/ui/alert.d.ts.map +1 -0
  9. package/dist/components/ui/alert.js +22 -0
  10. package/dist/components/ui/avatar.d.ts +7 -0
  11. package/dist/components/ui/avatar.d.ts.map +1 -0
  12. package/dist/components/ui/avatar.js +11 -0
  13. package/dist/components/ui/badge.d.ts +10 -0
  14. package/dist/components/ui/badge.d.ts.map +1 -0
  15. package/dist/components/ui/badge.js +26 -0
  16. package/dist/components/ui/breadcrumb.d.ts +20 -0
  17. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  18. package/dist/components/ui/breadcrumb.js +23 -0
  19. package/dist/components/ui/button.d.ts +12 -0
  20. package/dist/components/ui/button.d.ts.map +1 -0
  21. package/dist/components/ui/button.js +33 -0
  22. package/dist/components/ui/calendar.d.ts +9 -0
  23. package/dist/components/ui/calendar.d.ts.map +1 -0
  24. package/dist/components/ui/calendar.js +70 -0
  25. package/dist/components/ui/card.d.ts +9 -0
  26. package/dist/components/ui/card.d.ts.map +1 -0
  27. package/dist/components/ui/card.js +16 -0
  28. package/dist/components/ui/carousel.d.ts +19 -0
  29. package/dist/components/ui/carousel.d.ts.map +1 -0
  30. package/dist/components/ui/carousel.js +98 -0
  31. package/dist/components/ui/chart.d.ts +63 -0
  32. package/dist/components/ui/chart.d.ts.map +1 -0
  33. package/dist/components/ui/chart.js +132 -0
  34. package/dist/components/ui/checkbox.d.ts +5 -0
  35. package/dist/components/ui/checkbox.d.ts.map +1 -0
  36. package/dist/components/ui/checkbox.js +8 -0
  37. package/dist/components/ui/collapsible.d.ts +6 -0
  38. package/dist/components/ui/collapsible.d.ts.map +1 -0
  39. package/dist/components/ui/collapsible.js +5 -0
  40. package/dist/components/ui/command.d.ts +81 -0
  41. package/dist/components/ui/command.d.ts.map +1 -0
  42. package/dist/components/ui/command.js +28 -0
  43. package/dist/components/ui/context-menu.d.ts +28 -0
  44. package/dist/components/ui/context-menu.d.ts.map +1 -0
  45. package/dist/components/ui/context-menu.js +33 -0
  46. package/dist/components/ui/custom/date-picker.d.ts +12 -0
  47. package/dist/components/ui/custom/date-picker.d.ts.map +1 -0
  48. package/dist/components/ui/custom/date-picker.js +35 -0
  49. package/dist/components/ui/custom/form/checkbox.d.ts +13 -0
  50. package/dist/components/ui/custom/form/checkbox.d.ts.map +1 -0
  51. package/dist/components/ui/custom/form/checkbox.js +15 -0
  52. package/dist/components/ui/custom/form/color.d.ts +15 -0
  53. package/dist/components/ui/custom/form/color.d.ts.map +1 -0
  54. package/dist/components/ui/custom/form/color.js +40 -0
  55. package/dist/components/ui/custom/form/combobox.d.ts +37 -0
  56. package/dist/components/ui/custom/form/combobox.d.ts.map +1 -0
  57. package/dist/components/ui/custom/form/combobox.js +82 -0
  58. package/dist/components/ui/custom/form/cpf-cnpj.d.ts +16 -0
  59. package/dist/components/ui/custom/form/cpf-cnpj.d.ts.map +1 -0
  60. package/dist/components/ui/custom/form/cpf-cnpj.js +32 -0
  61. package/dist/components/ui/custom/form/currency.d.ts +14 -0
  62. package/dist/components/ui/custom/form/currency.d.ts.map +1 -0
  63. package/dist/components/ui/custom/form/currency.js +15 -0
  64. package/dist/components/ui/custom/form/date-range.d.ts +16 -0
  65. package/dist/components/ui/custom/form/date-range.d.ts.map +1 -0
  66. package/dist/components/ui/custom/form/date-range.js +24 -0
  67. package/dist/components/ui/custom/form/date.d.ts +16 -0
  68. package/dist/components/ui/custom/form/date.d.ts.map +1 -0
  69. package/dist/components/ui/custom/form/date.js +35 -0
  70. package/dist/components/ui/custom/form/decimal.d.ts +14 -0
  71. package/dist/components/ui/custom/form/decimal.d.ts.map +1 -0
  72. package/dist/components/ui/custom/form/decimal.js +15 -0
  73. package/dist/components/ui/custom/form/file.d.ts +15 -0
  74. package/dist/components/ui/custom/form/file.d.ts.map +1 -0
  75. package/dist/components/ui/custom/form/file.js +18 -0
  76. package/dist/components/ui/custom/form/form-help-text.d.ts +3 -0
  77. package/dist/components/ui/custom/form/form-help-text.d.ts.map +1 -0
  78. package/dist/components/ui/custom/form/form-help-text.js +7 -0
  79. package/dist/components/ui/custom/form/form-label.d.ts +7 -0
  80. package/dist/components/ui/custom/form/form-label.d.ts.map +1 -0
  81. package/dist/components/ui/custom/form/form-label.js +9 -0
  82. package/dist/components/ui/custom/form/form-message.d.ts +5 -0
  83. package/dist/components/ui/custom/form/form-message.d.ts.map +1 -0
  84. package/dist/components/ui/custom/form/form-message.js +5 -0
  85. package/dist/components/ui/custom/form/ghost.d.ts +8 -0
  86. package/dist/components/ui/custom/form/ghost.d.ts.map +1 -0
  87. package/dist/components/ui/custom/form/ghost.js +8 -0
  88. package/dist/components/ui/custom/form/input.d.ts +18 -0
  89. package/dist/components/ui/custom/form/input.d.ts.map +1 -0
  90. package/dist/components/ui/custom/form/input.js +14 -0
  91. package/dist/components/ui/custom/form/mask.d.ts +19 -0
  92. package/dist/components/ui/custom/form/mask.d.ts.map +1 -0
  93. package/dist/components/ui/custom/form/mask.js +19 -0
  94. package/dist/components/ui/custom/form/multi-select.d.ts +26 -0
  95. package/dist/components/ui/custom/form/multi-select.d.ts.map +1 -0
  96. package/dist/components/ui/custom/form/multi-select.js +66 -0
  97. package/dist/components/ui/custom/form/password.d.ts +16 -0
  98. package/dist/components/ui/custom/form/password.d.ts.map +1 -0
  99. package/dist/components/ui/custom/form/password.js +14 -0
  100. package/dist/components/ui/custom/form/percent.d.ts +14 -0
  101. package/dist/components/ui/custom/form/percent.d.ts.map +1 -0
  102. package/dist/components/ui/custom/form/percent.js +15 -0
  103. package/dist/components/ui/custom/form/phone.d.ts +16 -0
  104. package/dist/components/ui/custom/form/phone.d.ts.map +1 -0
  105. package/dist/components/ui/custom/form/phone.js +23 -0
  106. package/dist/components/ui/custom/form/radio-group.d.ts +23 -0
  107. package/dist/components/ui/custom/form/radio-group.d.ts.map +1 -0
  108. package/dist/components/ui/custom/form/radio-group.js +15 -0
  109. package/dist/components/ui/custom/form/select.d.ts +20 -0
  110. package/dist/components/ui/custom/form/select.d.ts.map +1 -0
  111. package/dist/components/ui/custom/form/select.js +12 -0
  112. package/dist/components/ui/custom/form/step-new-form.d.ts +10 -0
  113. package/dist/components/ui/custom/form/step-new-form.d.ts.map +1 -0
  114. package/dist/components/ui/custom/form/step-new-form.js +13 -0
  115. package/dist/components/ui/custom/form/switch.d.ts +13 -0
  116. package/dist/components/ui/custom/form/switch.d.ts.map +1 -0
  117. package/dist/components/ui/custom/form/switch.js +16 -0
  118. package/dist/components/ui/custom/form/text.d.ts +18 -0
  119. package/dist/components/ui/custom/form/text.d.ts.map +1 -0
  120. package/dist/components/ui/custom/form/text.js +14 -0
  121. package/dist/components/ui/custom/form/textarea.d.ts +16 -0
  122. package/dist/components/ui/custom/form/textarea.d.ts.map +1 -0
  123. package/dist/components/ui/custom/form/textarea.js +19 -0
  124. package/dist/components/ui/custom/form/utils.d.ts +18 -0
  125. package/dist/components/ui/custom/form/utils.d.ts.map +1 -0
  126. package/dist/components/ui/custom/form/utils.js +88 -0
  127. package/dist/components/ui/custom/header.d.ts +11 -0
  128. package/dist/components/ui/custom/header.d.ts.map +1 -0
  129. package/dist/components/ui/custom/header.js +74 -0
  130. package/dist/components/ui/custom/label.d.ts +13 -0
  131. package/dist/components/ui/custom/label.d.ts.map +1 -0
  132. package/dist/components/ui/custom/label.js +20 -0
  133. package/dist/components/ui/custom/not-found.d.ts +3 -0
  134. package/dist/components/ui/custom/not-found.d.ts.map +1 -0
  135. package/dist/components/ui/custom/not-found.js +9 -0
  136. package/dist/components/ui/custom/sidebar/module-switcher.d.ts +9 -0
  137. package/dist/components/ui/custom/sidebar/module-switcher.d.ts.map +1 -0
  138. package/dist/components/ui/custom/sidebar/module-switcher.js +20 -0
  139. package/dist/components/ui/custom/sidebar/nav-footer.d.ts +7 -0
  140. package/dist/components/ui/custom/sidebar/nav-footer.d.ts.map +1 -0
  141. package/dist/components/ui/custom/sidebar/nav-footer.js +13 -0
  142. package/dist/components/ui/custom/sidebar/nav-main.d.ts +7 -0
  143. package/dist/components/ui/custom/sidebar/nav-main.d.ts.map +1 -0
  144. package/dist/components/ui/custom/sidebar/nav-main.js +27 -0
  145. package/dist/components/ui/custom/sidebar/nav-submenu-collapsible.d.ts +9 -0
  146. package/dist/components/ui/custom/sidebar/nav-submenu-collapsible.d.ts.map +1 -0
  147. package/dist/components/ui/custom/sidebar/nav-submenu-collapsible.js +18 -0
  148. package/dist/components/ui/custom/sidebar/nav-submenu-dropdown.d.ts +10 -0
  149. package/dist/components/ui/custom/sidebar/nav-submenu-dropdown.d.ts.map +1 -0
  150. package/dist/components/ui/custom/sidebar/nav-submenu-dropdown.js +10 -0
  151. package/dist/components/ui/custom/sidebar/nav-user.d.ts +9 -0
  152. package/dist/components/ui/custom/sidebar/nav-user.d.ts.map +1 -0
  153. package/dist/components/ui/custom/sidebar/nav-user.js +24 -0
  154. package/dist/components/ui/custom/sidebar/sidebar-button.d.ts +9 -0
  155. package/dist/components/ui/custom/sidebar/sidebar-button.d.ts.map +1 -0
  156. package/dist/components/ui/custom/sidebar/sidebar-button.js +7 -0
  157. package/dist/components/ui/custom/sidebar/sidebar-item-two-lines.d.ts +12 -0
  158. package/dist/components/ui/custom/sidebar/sidebar-item-two-lines.d.ts.map +1 -0
  159. package/dist/components/ui/custom/sidebar/sidebar-item-two-lines.js +5 -0
  160. package/dist/components/ui/custom/sidebar/sidebar-item.d.ts +9 -0
  161. package/dist/components/ui/custom/sidebar/sidebar-item.d.ts.map +1 -0
  162. package/dist/components/ui/custom/sidebar/sidebar-item.js +7 -0
  163. package/dist/components/ui/custom/sidebar/types/sidebar.d.ts +29 -0
  164. package/dist/components/ui/custom/sidebar/types/sidebar.d.ts.map +1 -0
  165. package/dist/components/ui/custom/sidebar/types/sidebar.js +5 -0
  166. package/dist/components/ui/custom/table/data-table-export.d.ts +8 -0
  167. package/dist/components/ui/custom/table/data-table-export.d.ts.map +1 -0
  168. package/dist/components/ui/custom/table/data-table-export.js +65 -0
  169. package/dist/components/ui/custom/table/data-table-footer.d.ts +25 -0
  170. package/dist/components/ui/custom/table/data-table-footer.d.ts.map +1 -0
  171. package/dist/components/ui/custom/table/data-table-footer.js +39 -0
  172. package/dist/components/ui/custom/table/data-table-header.d.ts +9 -0
  173. package/dist/components/ui/custom/table/data-table-header.d.ts.map +1 -0
  174. package/dist/components/ui/custom/table/data-table-header.js +11 -0
  175. package/dist/components/ui/custom/table/data-table-rows.d.ts +13 -0
  176. package/dist/components/ui/custom/table/data-table-rows.d.ts.map +1 -0
  177. package/dist/components/ui/custom/table/data-table-rows.js +25 -0
  178. package/dist/components/ui/custom/table/data-table.d.ts +35 -0
  179. package/dist/components/ui/custom/table/data-table.d.ts.map +1 -0
  180. package/dist/components/ui/custom/table/data-table.js +99 -0
  181. package/dist/components/ui/custom/table/types/data-table.d.ts +29 -0
  182. package/dist/components/ui/custom/table/types/data-table.d.ts.map +1 -0
  183. package/dist/components/ui/custom/table/types/data-table.js +1 -0
  184. package/dist/components/ui/custom/theme-provider.d.ts +24 -0
  185. package/dist/components/ui/custom/theme-provider.d.ts.map +1 -0
  186. package/dist/components/ui/custom/theme-provider.js +79 -0
  187. package/dist/components/ui/dateRangePicker.d.ts +3 -0
  188. package/dist/components/ui/dateRangePicker.d.ts.map +1 -0
  189. package/dist/components/ui/dateRangePicker.js +15 -0
  190. package/dist/components/ui/dialog.d.ts +23 -0
  191. package/dist/components/ui/dialog.d.ts.map +1 -0
  192. package/dist/components/ui/dialog.js +23 -0
  193. package/dist/components/ui/drawer.d.ts +23 -0
  194. package/dist/components/ui/drawer.d.ts.map +1 -0
  195. package/dist/components/ui/drawer.js +22 -0
  196. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  197. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  198. package/dist/components/ui/dropdown-menu.js +32 -0
  199. package/dist/components/ui/form.d.ts +24 -0
  200. package/dist/components/ui/form.d.ts.map +1 -0
  201. package/dist/components/ui/form.js +60 -0
  202. package/dist/components/ui/hover-card.d.ts +7 -0
  203. package/dist/components/ui/hover-card.d.ts.map +1 -0
  204. package/dist/components/ui/hover-card.js +9 -0
  205. package/dist/components/ui/input.d.ts +24 -0
  206. package/dist/components/ui/input.d.ts.map +1 -0
  207. package/dist/components/ui/input.js +71 -0
  208. package/dist/components/ui/label.d.ts +6 -0
  209. package/dist/components/ui/label.d.ts.map +1 -0
  210. package/dist/components/ui/label.js +9 -0
  211. package/dist/components/ui/masks.d.ts +17 -0
  212. package/dist/components/ui/masks.d.ts.map +1 -0
  213. package/dist/components/ui/masks.js +25 -0
  214. package/dist/components/ui/pagination.d.ts +30 -0
  215. package/dist/components/ui/pagination.d.ts.map +1 -0
  216. package/dist/components/ui/pagination.js +23 -0
  217. package/dist/components/ui/popover.d.ts +7 -0
  218. package/dist/components/ui/popover.d.ts.map +1 -0
  219. package/dist/components/ui/popover.js +11 -0
  220. package/dist/components/ui/progress.d.ts +5 -0
  221. package/dist/components/ui/progress.d.ts.map +1 -0
  222. package/dist/components/ui/progress.js +7 -0
  223. package/dist/components/ui/radio-group.d.ts +6 -0
  224. package/dist/components/ui/radio-group.d.ts.map +1 -0
  225. package/dist/components/ui/radio-group.js +14 -0
  226. package/dist/components/ui/scroll-area.d.ts +6 -0
  227. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  228. package/dist/components/ui/scroll-area.js +11 -0
  229. package/dist/components/ui/select.d.ts +14 -0
  230. package/dist/components/ui/select.d.ts.map +1 -0
  231. package/dist/components/ui/select.js +24 -0
  232. package/dist/components/ui/separator.d.ts +5 -0
  233. package/dist/components/ui/separator.d.ts.map +1 -0
  234. package/dist/components/ui/separator.js +7 -0
  235. package/dist/components/ui/sheet.d.ts +26 -0
  236. package/dist/components/ui/sheet.d.ts.map +1 -0
  237. package/dist/components/ui/sheet.js +37 -0
  238. package/dist/components/ui/sidebar.d.ts +67 -0
  239. package/dist/components/ui/sidebar.d.ts.map +1 -0
  240. package/dist/components/ui/sidebar.js +221 -0
  241. package/dist/components/ui/skeleton.d.ts +3 -0
  242. package/dist/components/ui/skeleton.d.ts.map +1 -0
  243. package/dist/components/ui/skeleton.js +6 -0
  244. package/dist/components/ui/slider.d.ts +5 -0
  245. package/dist/components/ui/slider.d.ts.map +1 -0
  246. package/dist/components/ui/slider.js +7 -0
  247. package/dist/components/ui/switch.d.ts +5 -0
  248. package/dist/components/ui/switch.d.ts.map +1 -0
  249. package/dist/components/ui/switch.js +7 -0
  250. package/dist/components/ui/table.d.ts +11 -0
  251. package/dist/components/ui/table.d.ts.map +1 -0
  252. package/dist/components/ui/table.js +20 -0
  253. package/dist/components/ui/tabs.d.ts +8 -0
  254. package/dist/components/ui/tabs.d.ts.map +1 -0
  255. package/dist/components/ui/tabs.js +12 -0
  256. package/dist/components/ui/textarea.d.ts +4 -0
  257. package/dist/components/ui/textarea.d.ts.map +1 -0
  258. package/dist/components/ui/textarea.js +14 -0
  259. package/dist/components/ui/toast.d.ts +16 -0
  260. package/dist/components/ui/toast.d.ts.map +1 -0
  261. package/dist/components/ui/toast.js +34 -0
  262. package/dist/components/ui/toaster.d.ts +2 -0
  263. package/dist/components/ui/toaster.d.ts.map +1 -0
  264. package/dist/components/ui/toaster.js +21 -0
  265. package/dist/components/ui/tooltip.d.ts +8 -0
  266. package/dist/components/ui/tooltip.d.ts.map +1 -0
  267. package/dist/components/ui/tooltip.js +10 -0
  268. package/dist/components/ui/use-calendar.d.ts +7 -0
  269. package/dist/components/ui/use-calendar.d.ts.map +1 -0
  270. package/dist/components/ui/use-calendar.js +23 -0
  271. package/dist/components/ui/use-toast.d.ts +46 -0
  272. package/dist/components/ui/use-toast.d.ts.map +1 -0
  273. package/dist/components/ui/use-toast.js +125 -0
  274. package/dist/hooks/use-mobile.d.ts +2 -0
  275. package/dist/hooks/use-mobile.d.ts.map +1 -0
  276. package/dist/hooks/use-mobile.js +15 -0
  277. package/dist/index.d.ts +13 -13
  278. package/dist/index.d.ts.map +1 -0
  279. package/dist/index.esm.js +10 -6
  280. package/dist/index.esm.js.map +1 -1
  281. package/dist/index.js +10 -6
  282. package/dist/index.js.map +1 -1
  283. package/dist/lib/help/date-utils.d.ts +7 -0
  284. package/dist/lib/help/date-utils.d.ts.map +1 -0
  285. package/dist/lib/help/date-utils.js +34 -0
  286. package/dist/lib/help/format.d.ts +22 -0
  287. package/dist/lib/help/format.d.ts.map +1 -0
  288. package/dist/lib/help/format.js +140 -0
  289. package/dist/lib/help/theme.d.ts +291 -0
  290. package/dist/lib/help/theme.d.ts.map +1 -0
  291. package/dist/lib/help/theme.js +340 -0
  292. package/dist/lib/help/uuid.d.ts +2 -0
  293. package/dist/lib/help/uuid.d.ts.map +1 -0
  294. package/dist/lib/help/uuid.js +4 -0
  295. package/dist/lib/utils.d.ts +3 -0
  296. package/dist/lib/utils.d.ts.map +1 -0
  297. package/dist/lib/utils.js +5 -0
  298. package/package.json +1 -1
@@ -0,0 +1,63 @@
1
+ import * as React from "react";
2
+ import * as RechartsPrimitive from "recharts";
3
+ declare const THEMES: {
4
+ readonly light: "";
5
+ readonly dark: ".dark";
6
+ };
7
+ export type ChartConfig = {
8
+ [k in string]: {
9
+ label?: React.ReactNode;
10
+ icon?: React.ComponentType;
11
+ } & ({
12
+ color?: string;
13
+ theme?: never;
14
+ } | {
15
+ color?: never;
16
+ theme: Record<keyof typeof THEMES, string>;
17
+ });
18
+ };
19
+ declare const ChartContainer: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
20
+ config: ChartConfig;
21
+ children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>["children"];
22
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
23
+ declare const ChartStyle: ({ id, config }: {
24
+ id: string;
25
+ config: ChartConfig;
26
+ }) => import("react/jsx-runtime").JSX.Element | null;
27
+ declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
28
+ declare const ChartTooltipContent: React.ForwardRefExoticComponent<Omit<RechartsPrimitive.DefaultTooltipContentProps<import("recharts/types/component/DefaultTooltipContent").ValueType, import("recharts/types/component/DefaultTooltipContent").NameType> & {
29
+ accessibilityLayer?: boolean;
30
+ active?: boolean | undefined;
31
+ includeHidden?: boolean | undefined;
32
+ allowEscapeViewBox?: import("recharts/types/util/types").AllowInDimension;
33
+ animationDuration?: import("recharts/types/util/types").AnimationDuration;
34
+ animationEasing?: import("recharts/types/util/types").AnimationTiming;
35
+ content?: import("recharts/types/component/Tooltip").ContentType<import("recharts/types/component/DefaultTooltipContent").ValueType, import("recharts/types/component/DefaultTooltipContent").NameType> | undefined;
36
+ coordinate?: Partial<import("recharts/types/util/types").Coordinate>;
37
+ cursor?: boolean | React.ReactElement | React.SVGProps<SVGElement>;
38
+ filterNull?: boolean;
39
+ defaultIndex?: number;
40
+ isAnimationActive?: boolean;
41
+ offset?: number;
42
+ payloadUniqBy?: import("recharts/types/util/payload/getUniqPayload").UniqueOption<import("recharts/types/component/DefaultTooltipContent").Payload<import("recharts/types/component/DefaultTooltipContent").ValueType, import("recharts/types/component/DefaultTooltipContent").NameType>> | undefined;
43
+ position?: Partial<import("recharts/types/util/types").Coordinate>;
44
+ reverseDirection?: import("recharts/types/util/types").AllowInDimension;
45
+ shared?: boolean;
46
+ trigger?: "hover" | "click";
47
+ useTranslate3d?: boolean;
48
+ viewBox?: import("recharts/types/util/types").CartesianViewBox;
49
+ wrapperStyle?: React.CSSProperties;
50
+ } & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
51
+ hideLabel?: boolean;
52
+ hideIndicator?: boolean;
53
+ indicator?: "line" | "dot" | "dashed";
54
+ nameKey?: string;
55
+ labelKey?: string;
56
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
57
+ declare const ChartLegend: typeof RechartsPrimitive.Legend;
58
+ declare const ChartLegendContent: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & Pick<RechartsPrimitive.LegendProps, "payload" | "verticalAlign"> & {
59
+ hideIcon?: boolean;
60
+ nameKey?: string;
61
+ }, "ref"> & React.RefAttributes<HTMLDivElement>>;
62
+ export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
63
+ //# sourceMappingURL=chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart.d.ts","sourceRoot":"","sources":["../../../src/components/ui/chart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,iBAAiB,MAAM,UAAU,CAAA;AAK7C,QAAA,MAAM,MAAM;;;CAAwC,CAAA;AAEpD,MAAM,MAAM,WAAW,GAAG;KACvB,CAAC,IAAI,MAAM,GAAG;QACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACvB,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;KAC3B,GAAG,CACA;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GACjC;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,OAAO,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAChE;CACF,CAAA;AAkBD,QAAA,MAAM,cAAc;YAGR,WAAW;cACT,KAAK,CAAC,cAAc,CAC5B,OAAO,iBAAiB,CAAC,mBAAmB,CAC7C,CAAC,UAAU,CAAC;gDAwBf,CAAA;AAGF,QAAA,MAAM,UAAU,GAAI,gBAAgB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,mDAgCtE,CAAA;AAED,QAAA,MAAM,YAAY,kCAA4B,CAAA;AAE9C,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;gBAIP,OAAO;oBACH,OAAO;gBACX,MAAM,GAAG,KAAK,GAAG,QAAQ;cAC3B,MAAM;eACL,MAAM;gDA+ItB,CAAA;AAGD,QAAA,MAAM,WAAW,iCAA2B,CAAA;AAE5C,QAAA,MAAM,kBAAkB;eAIP,OAAO;cACR,MAAM;gDAkDrB,CAAA;AA0CD,OAAO,EACL,cAAc,EAAE,WAAW,EAC3B,kBAAkB,EAClB,UAAU,EAAE,YAAY,EACxB,mBAAmB,EACpB,CAAA"}
@@ -0,0 +1,132 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as RechartsPrimitive from "recharts";
4
+ import { cn } from "@/lib/utils";
5
+ // Format: { THEME_NAME: CSS_SELECTOR }
6
+ const THEMES = { light: "", dark: ".dark" };
7
+ const ChartContext = React.createContext(null);
8
+ function useChart() {
9
+ const context = React.useContext(ChartContext);
10
+ if (!context) {
11
+ throw new Error("useChart must be used within a <ChartContainer />");
12
+ }
13
+ return context;
14
+ }
15
+ const ChartContainer = React.forwardRef(({ id, className, children, config, ...props }, ref) => {
16
+ const uniqueId = React.useId();
17
+ const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
18
+ return (_jsx(ChartContext.Provider, { value: { config }, children: _jsxs("div", { "data-chart": chartId, ref: ref, className: cn("flex aspect-video justify-center text-xs [&_.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-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.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 [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none", className), ...props, children: [_jsx(ChartStyle, { id: chartId, config: config }), _jsx(RechartsPrimitive.ResponsiveContainer, { children: children })] }) }));
19
+ });
20
+ ChartContainer.displayName = "Chart";
21
+ const ChartStyle = ({ id, config }) => {
22
+ const colorConfig = Object.entries(config).filter(([, config]) => config.theme || config.color);
23
+ if (!colorConfig.length) {
24
+ return null;
25
+ }
26
+ return (_jsx("style", {
27
+ // biome-ignore lint/security/noDangerouslySetInnerHtml: Chart theme CSS generation requires dynamic CSS injection
28
+ dangerouslySetInnerHTML: {
29
+ __html: Object.entries(THEMES)
30
+ .map(([theme, prefix]) => `
31
+ ${prefix} [data-chart=${id}] {
32
+ ${colorConfig
33
+ .map(([key, itemConfig]) => {
34
+ const color = itemConfig.theme?.[theme] ||
35
+ itemConfig.color;
36
+ return color ? ` --color-${key}: ${color};` : null;
37
+ })
38
+ .join("\n")}
39
+ }
40
+ `)
41
+ .join("\n"),
42
+ } }));
43
+ };
44
+ const ChartTooltip = RechartsPrimitive.Tooltip;
45
+ const ChartTooltipContent = React.forwardRef(({ active, payload, className, indicator = "dot", hideLabel = false, hideIndicator = false, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }, ref) => {
46
+ const { config } = useChart();
47
+ const tooltipLabel = React.useMemo(() => {
48
+ if (hideLabel || !payload?.length) {
49
+ return null;
50
+ }
51
+ const [item] = payload;
52
+ const key = `${labelKey || item.dataKey || item.name || "value"}`;
53
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
54
+ const value = !labelKey && typeof label === "string"
55
+ ? config[label]?.label || label
56
+ : itemConfig?.label;
57
+ if (labelFormatter) {
58
+ return (_jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) }));
59
+ }
60
+ if (!value) {
61
+ return null;
62
+ }
63
+ return _jsx("div", { className: cn("font-medium", labelClassName), children: value });
64
+ }, [
65
+ label,
66
+ labelFormatter,
67
+ payload,
68
+ hideLabel,
69
+ labelClassName,
70
+ config,
71
+ labelKey,
72
+ ]);
73
+ if (!active || !payload?.length) {
74
+ return null;
75
+ }
76
+ const nestLabel = payload.length === 1 && indicator !== "dot";
77
+ return (_jsxs("div", { ref: ref, className: cn("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl", className), children: [!nestLabel ? tooltipLabel : null, _jsx("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
78
+ const key = `${nameKey || item.name || item.dataKey || "value"}`;
79
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
80
+ const indicatorColor = color || item.payload.fill || item.color;
81
+ return (_jsx("div", { className: cn("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground", indicator === "dot" && "items-center"), children: formatter && item?.value !== undefined && item.name ? (formatter(item.value, item.name, item, index, item.payload)) : (_jsxs(_Fragment, { children: [itemConfig?.icon ? (_jsx(itemConfig.icon, {})) : (!hideIndicator && (_jsx("div", { className: cn("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]", {
82
+ "h-2.5 w-2.5": indicator === "dot",
83
+ "w-1": indicator === "line",
84
+ "w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
85
+ "my-0.5": nestLabel && indicator === "dashed",
86
+ }), style: {
87
+ "--color-bg": indicatorColor,
88
+ "--color-border": indicatorColor,
89
+ } }))), _jsxs("div", { className: cn("flex flex-1 justify-between leading-none", nestLabel ? "items-end" : "items-center"), children: [_jsxs("div", { className: "grid gap-1.5", children: [nestLabel ? tooltipLabel : null, _jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })] }), item.value && (_jsx("span", { className: "font-mono font-medium tabular-nums text-foreground", children: item.value.toLocaleString() }))] })] })) }, item.dataKey));
90
+ }) })] }));
91
+ });
92
+ ChartTooltipContent.displayName = "ChartTooltip";
93
+ const ChartLegend = RechartsPrimitive.Legend;
94
+ const ChartLegendContent = React.forwardRef(({ className, hideIcon = false, payload, verticalAlign = "bottom", nameKey }, ref) => {
95
+ const { config } = useChart();
96
+ if (!payload?.length) {
97
+ return null;
98
+ }
99
+ return (_jsx("div", { ref: ref, className: cn("flex items-center justify-center gap-4", verticalAlign === "top" ? "pb-3" : "pt-3", className), children: payload.map((item) => {
100
+ const key = `${nameKey || item.dataKey || "value"}`;
101
+ const itemConfig = getPayloadConfigFromPayload(config, item, key);
102
+ return (_jsxs("div", { className: cn("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"), children: [itemConfig?.icon && !hideIcon ? (_jsx(itemConfig.icon, {})) : (_jsx("div", { className: "h-2 w-2 shrink-0 rounded-[2px]", style: {
103
+ backgroundColor: item.color,
104
+ } })), itemConfig?.label] }, item.value));
105
+ }) }));
106
+ });
107
+ ChartLegendContent.displayName = "ChartLegend";
108
+ // Helper to extract item config from a payload.
109
+ function getPayloadConfigFromPayload(config, payload, key) {
110
+ if (typeof payload !== "object" || payload === null) {
111
+ return undefined;
112
+ }
113
+ const payloadPayload = "payload" in payload &&
114
+ typeof payload.payload === "object" &&
115
+ payload.payload !== null
116
+ ? payload.payload
117
+ : undefined;
118
+ let configLabelKey = key;
119
+ if (key in payload &&
120
+ typeof payload[key] === "string") {
121
+ configLabelKey = payload[key];
122
+ }
123
+ else if (payloadPayload &&
124
+ key in payloadPayload &&
125
+ typeof payloadPayload[key] === "string") {
126
+ configLabelKey = payloadPayload[key];
127
+ }
128
+ return configLabelKey in config
129
+ ? config[configLabelKey]
130
+ : config[key];
131
+ }
132
+ export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
@@ -0,0 +1,5 @@
1
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
2
+ import * as React from 'react';
3
+ declare const Checkbox: React.ForwardRefExoticComponent<Omit<CheckboxPrimitive.CheckboxProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
4
+ export { Checkbox };
5
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/ui/checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,QAAQ,iKAgBb,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
+ import { Check } from 'lucide-react';
4
+ import * as React from 'react';
5
+ import { cn } from '../../lib/utils';
6
+ const Checkbox = React.forwardRef(({ className, value, ...props }, ref) => (_jsx(CheckboxPrimitive.Root, { ref: ref, checked: !!value, className: cn('peer h-4 w-4 shrink-0 rounded-sm border ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-background-primary data-[state=checked]:text-primary-foreground', className), ...props, children: _jsx(CheckboxPrimitive.Indicator, { className: cn('flex items-center justify-center text-current'), children: _jsx(Check, { className: 'h-4 w-4' }) }) })));
7
+ Checkbox.displayName = CheckboxPrimitive.Root.displayName;
8
+ export { Checkbox };
@@ -0,0 +1,6 @@
1
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
2
+ declare const Collapsible: import("react").ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleProps & import("react").RefAttributes<HTMLDivElement>>;
3
+ declare const CollapsibleTrigger: import("react").ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
4
+ declare const CollapsibleContent: import("react").ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleContentProps & import("react").RefAttributes<HTMLDivElement>>;
5
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
6
+ //# sourceMappingURL=collapsible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../../src/components/ui/collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,oBAAoB,MAAM,6BAA6B,CAAA;AAEnE,QAAA,MAAM,WAAW,kIAA4B,CAAA;AAE7C,QAAA,MAAM,kBAAkB,4IAA0C,CAAA;AAElE,QAAA,MAAM,kBAAkB,yIAA0C,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
2
+ const Collapsible = CollapsiblePrimitive.Root;
3
+ const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;
4
+ const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;
5
+ export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -0,0 +1,81 @@
1
+ import { type DialogProps } from "@radix-ui/react-dialog";
2
+ import * as React from "react";
3
+ declare const Command: React.ForwardRefExoticComponent<Omit<{
4
+ children?: React.ReactNode;
5
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
6
+ ref?: React.Ref<HTMLDivElement>;
7
+ } & {
8
+ asChild?: boolean;
9
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
10
+ label?: string;
11
+ shouldFilter?: boolean;
12
+ filter?: (value: string, search: string, keywords?: string[]) => number;
13
+ defaultValue?: string;
14
+ value?: string;
15
+ onValueChange?: (value: string) => void;
16
+ loop?: boolean;
17
+ disablePointerSelection?: boolean;
18
+ vimBindings?: boolean;
19
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
20
+ declare const CommandDialog: ({ children, ...props }: DialogProps) => import("react/jsx-runtime").JSX.Element;
21
+ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof React.InputHTMLAttributes<HTMLInputElement>> & {
22
+ ref?: React.Ref<HTMLInputElement>;
23
+ } & {
24
+ asChild?: boolean;
25
+ }, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "value" | "type"> & {
26
+ value?: string;
27
+ onValueChange?: (search: string) => void;
28
+ } & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
29
+ declare const CommandList: React.ForwardRefExoticComponent<Omit<{
30
+ children?: React.ReactNode;
31
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
32
+ ref?: React.Ref<HTMLDivElement>;
33
+ } & {
34
+ asChild?: boolean;
35
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
36
+ label?: string;
37
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
38
+ declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
39
+ children?: React.ReactNode;
40
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
41
+ ref?: React.Ref<HTMLDivElement>;
42
+ } & {
43
+ asChild?: boolean;
44
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
45
+ declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
46
+ children?: React.ReactNode;
47
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
48
+ ref?: React.Ref<HTMLDivElement>;
49
+ } & {
50
+ asChild?: boolean;
51
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "value" | "heading"> & {
52
+ heading?: React.ReactNode;
53
+ value?: string;
54
+ forceMount?: boolean;
55
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
56
+ declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
57
+ ref?: React.Ref<HTMLDivElement>;
58
+ } & {
59
+ asChild?: boolean;
60
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
61
+ alwaysRender?: boolean;
62
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
63
+ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
64
+ children?: React.ReactNode;
65
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
66
+ ref?: React.Ref<HTMLDivElement>;
67
+ } & {
68
+ asChild?: boolean;
69
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "onSelect" | "disabled" | "value"> & {
70
+ disabled?: boolean;
71
+ onSelect?: (value: string) => void;
72
+ value?: string;
73
+ keywords?: string[];
74
+ forceMount?: boolean;
75
+ } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
76
+ declare const CommandShortcut: {
77
+ ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
78
+ displayName: string;
79
+ };
80
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
81
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/components/ui/command.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGzD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,QAAA,MAAM,OAAO;;;;;;;;;qDA0IuhL,CAAC;;;;;;;sFA9HniL,CAAA;AAGF,QAAA,MAAM,aAAa,GAAI,wBAAwB,WAAW,4CAUzD,CAAA;AAED,QAAA,MAAM,YAAY;;;;;;;0FAehB,CAAA;AAIF,QAAA,MAAM,WAAW;;;;;;;;sFASf,CAAA;AAIF,QAAA,MAAM,YAAY;;;;;;uJAShB,CAAA;AAIF,QAAA,MAAM,YAAY;;;;;;;;;;sFAYhB,CAAA;AAIF,QAAA,MAAM,gBAAgB;;;;;;sFASpB,CAAA;AAGF,QAAA,MAAM,WAAW;;;;;;;;;;;;sFAYf,CAAA;AAIF,QAAA,MAAM,eAAe;8BAGlB,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;;CAUvC,CAAA;AAGD,OAAO,EACL,OAAO,EACP,aAAa,EAAE,YAAY,EAC3B,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EACxF,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "@/lib/utils";
3
+ import { Command as CommandPrimitive } from "cmdk";
4
+ import { Search } from "lucide-react";
5
+ import * as React from "react";
6
+ import { Dialog, DialogContent } from "./dialog";
7
+ const Command = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive, { ref: ref, className: cn("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground", className), ...props })));
8
+ Command.displayName = CommandPrimitive.displayName;
9
+ const CommandDialog = ({ children, ...props }) => {
10
+ return (_jsx(Dialog, { ...props, children: _jsx(DialogContent, { className: "overflow-hidden p-0 shadow-lg", children: _jsx(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children: children }) }) }));
11
+ };
12
+ const CommandInput = React.forwardRef(({ className, ...props }, ref) => (_jsxs("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [_jsx(Search, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }), _jsx(CommandPrimitive.Input, { ref: ref, className: cn("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50", className), ...props })] })));
13
+ CommandInput.displayName = CommandPrimitive.Input.displayName;
14
+ const CommandList = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.List, { ref: ref, className: cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className), ...props })));
15
+ CommandList.displayName = CommandPrimitive.List.displayName;
16
+ const CommandEmpty = React.forwardRef((props, ref) => (_jsx(CommandPrimitive.Empty, { ref: ref, className: "py-6 text-center text-sm", ...props })));
17
+ CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
18
+ const CommandGroup = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Group, { ref: ref, className: cn("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground", className), ...props })));
19
+ CommandGroup.displayName = CommandPrimitive.Group.displayName;
20
+ const CommandSeparator = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Separator, { ref: ref, className: cn("-mx-1 h-px bg-border", className), ...props })));
21
+ CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
22
+ const CommandItem = React.forwardRef(({ className, ...props }, ref) => (_jsx(CommandPrimitive.Item, { ref: ref, className: cn("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", className), ...props })));
23
+ CommandItem.displayName = CommandPrimitive.Item.displayName;
24
+ const CommandShortcut = ({ className, ...props }) => {
25
+ return (_jsx("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props }));
26
+ };
27
+ CommandShortcut.displayName = "CommandShortcut";
28
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
@@ -0,0 +1,28 @@
1
+ import * as React from "react";
2
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
3
+ declare const ContextMenu: React.FC<ContextMenuPrimitive.ContextMenuProps>;
4
+ declare const ContextMenuTrigger: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & React.RefAttributes<HTMLSpanElement>>;
5
+ declare const ContextMenuGroup: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & React.RefAttributes<HTMLDivElement>>;
6
+ declare const ContextMenuPortal: React.FC<ContextMenuPrimitive.ContextMenuPortalProps>;
7
+ declare const ContextMenuSub: React.FC<ContextMenuPrimitive.ContextMenuSubProps>;
8
+ declare const ContextMenuRadioGroup: React.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & React.RefAttributes<HTMLDivElement>>;
9
+ declare const ContextMenuSubTrigger: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
10
+ inset?: boolean;
11
+ } & React.RefAttributes<HTMLDivElement>>;
12
+ declare const ContextMenuSubContent: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ declare const ContextMenuContent: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
14
+ declare const ContextMenuItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
15
+ inset?: boolean;
16
+ } & React.RefAttributes<HTMLDivElement>>;
17
+ declare const ContextMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
18
+ declare const ContextMenuRadioItem: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
19
+ declare const ContextMenuLabel: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
20
+ inset?: boolean;
21
+ } & React.RefAttributes<HTMLDivElement>>;
22
+ declare const ContextMenuSeparator: React.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
23
+ declare const ContextMenuShortcut: {
24
+ ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): import("react/jsx-runtime").JSX.Element;
25
+ displayName: string;
26
+ };
27
+ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
28
+ //# sourceMappingURL=context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../../src/components/ui/context-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAKpE,QAAA,MAAM,WAAW,iDAA4B,CAAA;AAE7C,QAAA,MAAM,kBAAkB,sHAA+B,CAAA;AAEvD,QAAA,MAAM,gBAAgB,mHAA6B,CAAA;AAEnD,QAAA,MAAM,iBAAiB,uDAA8B,CAAA;AAErD,QAAA,MAAM,cAAc,oDAA2B,CAAA;AAE/C,QAAA,MAAM,qBAAqB,wHAAkC,CAAA;AAE7D,QAAA,MAAM,qBAAqB;YAGf,OAAO;wCAejB,CAAA;AAGF,QAAA,MAAM,qBAAqB,2KAYzB,CAAA;AAGF,QAAA,MAAM,kBAAkB,wKActB,CAAA;AAGF,QAAA,MAAM,eAAe;YAGT,OAAO;wCAYjB,CAAA;AAGF,QAAA,MAAM,uBAAuB,6KAoB3B,CAAA;AAIF,QAAA,MAAM,oBAAoB,0KAmBxB,CAAA;AAGF,QAAA,MAAM,gBAAgB;YAGV,OAAO;wCAYjB,CAAA;AAGF,QAAA,MAAM,oBAAoB,0KASxB,CAAA;AAGF,QAAA,MAAM,mBAAmB;8BAGtB,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;;CAUvC,CAAA;AAGD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
4
+ import { Check, ChevronRight, Circle } from "lucide-react";
5
+ import { cn } from "@/lib/utils";
6
+ const ContextMenu = ContextMenuPrimitive.Root;
7
+ const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
8
+ const ContextMenuGroup = ContextMenuPrimitive.Group;
9
+ const ContextMenuPortal = ContextMenuPrimitive.Portal;
10
+ const ContextMenuSub = ContextMenuPrimitive.Sub;
11
+ const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
12
+ const ContextMenuSubTrigger = React.forwardRef(({ className, inset, children, ...props }, ref) => (_jsxs(ContextMenuPrimitive.SubTrigger, { ref: ref, className: cn("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground", inset && "pl-8", className), ...props, children: [children, _jsx(ChevronRight, { className: "ml-auto h-4 w-4" })] })));
13
+ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
14
+ const ContextMenuSubContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(ContextMenuPrimitive.SubContent, { ref: ref, className: cn("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className), ...props })));
15
+ ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
16
+ const ContextMenuContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(ContextMenuPrimitive.Portal, { children: _jsx(ContextMenuPrimitive.Content, { ref: ref, className: cn("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", className), ...props }) })));
17
+ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
18
+ const ContextMenuItem = React.forwardRef(({ className, inset, ...props }, ref) => (_jsx(ContextMenuPrimitive.Item, { ref: ref, className: cn("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", inset && "pl-8", className), ...props })));
19
+ ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
20
+ const ContextMenuCheckboxItem = React.forwardRef(({ className, children, checked, ...props }, ref) => (_jsxs(ContextMenuPrimitive.CheckboxItem, { ref: ref, className: cn("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className), checked: checked, ...props, children: [_jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: _jsx(ContextMenuPrimitive.ItemIndicator, { children: _jsx(Check, { className: "h-4 w-4" }) }) }), children] })));
21
+ ContextMenuCheckboxItem.displayName =
22
+ ContextMenuPrimitive.CheckboxItem.displayName;
23
+ const ContextMenuRadioItem = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(ContextMenuPrimitive.RadioItem, { ref: ref, className: cn("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", className), ...props, children: [_jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: _jsx(ContextMenuPrimitive.ItemIndicator, { children: _jsx(Circle, { className: "h-2 w-2 fill-current" }) }) }), children] })));
24
+ ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
25
+ const ContextMenuLabel = React.forwardRef(({ className, inset, ...props }, ref) => (_jsx(ContextMenuPrimitive.Label, { ref: ref, className: cn("px-2 py-1.5 text-sm font-semibold text-foreground", inset && "pl-8", className), ...props })));
26
+ ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
27
+ const ContextMenuSeparator = React.forwardRef(({ className, ...props }, ref) => (_jsx(ContextMenuPrimitive.Separator, { ref: ref, className: cn("-mx-1 my-1 h-px bg-border", className), ...props })));
28
+ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
29
+ const ContextMenuShortcut = ({ className, ...props }) => {
30
+ return (_jsx("span", { className: cn("ml-auto text-xs tracking-widest text-muted-foreground", className), ...props }));
31
+ };
32
+ ContextMenuShortcut.displayName = "ContextMenuShortcut";
33
+ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { DayPicker } from 'react-day-picker';
3
+ export type CalendarProps = React.ComponentProps<typeof DayPicker>;
4
+ interface CalendarFormProps extends React.HTMLAttributes<HTMLDivElement> {
5
+ onDateSelected: (selectedDateProps: Date | null) => void;
6
+ selectedDateProps?: Date | null;
7
+ startYear?: number;
8
+ endYear?: number;
9
+ }
10
+ declare const DatePicker: React.ForwardRefExoticComponent<CalendarFormProps & React.RefAttributes<HTMLDivElement>>;
11
+ export { DatePicker };
12
+ //# sourceMappingURL=date-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/custom/date-picker.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAM7C,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnE,UAAU,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACvE,cAAc,EAAE,CAAC,iBAAiB,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,iBAAiB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,QAAA,MAAM,UAAU,0FA0Ef,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { getMonth, getYear, setMonth, setYear } from 'date-fns';
3
+ import { ptBR } from 'date-fns/locale';
4
+ import { Calendar as CalendarIcon } from 'lucide-react';
5
+ import React, { useState } from 'react';
6
+ import { cn } from '../../../lib/utils';
7
+ import { Calendar as CalendarComponent } from '../calendar';
8
+ import { Popover, PopoverContent, PopoverTrigger } from '../popover';
9
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../select';
10
+ const DatePicker = React.forwardRef(({ className, onDateSelected, selectedDateProps, startYear = getYear(new Date()) - 100, endYear = getYear(new Date()) + 100, ...props }, ref) => {
11
+ const [selectedDate, setSelectedDate] = useState(null);
12
+ const [isPopoverOpen, setIsPopoverOpen] = useState(false);
13
+ const months = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
14
+ const years = Array.from({ length: endYear - startYear + 1 }, (_, i) => startYear + i);
15
+ const handleMonthChange = (month) => {
16
+ if (selectedDate) {
17
+ const newDate = setMonth(selectedDate, months.indexOf(month));
18
+ setSelectedDate(newDate);
19
+ }
20
+ };
21
+ const handleYearChange = (year) => {
22
+ if (selectedDate) {
23
+ const newDate = setYear(selectedDate, parseInt(year, 10));
24
+ setSelectedDate(newDate);
25
+ }
26
+ };
27
+ const handleDateChange = (selectedDate) => {
28
+ const newDate = selectedDate || null;
29
+ setSelectedDate(newDate);
30
+ setIsPopoverOpen(false);
31
+ onDateSelected(newDate);
32
+ };
33
+ return (_jsx("div", { className: cn('gap-2', className), ref: ref, ...props, children: _jsxs(Popover, { open: isPopoverOpen, onOpenChange: setIsPopoverOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(CalendarIcon, { size: 16, className: 'cursor-pointer text-gray-500', onClick: () => setIsPopoverOpen(true) }) }), _jsxs(PopoverContent, { className: 'w-auto p-0 flex flex-col justify-center', align: 'start', children: [_jsxs("div", { className: 'flex justify-between pt-5 px-5', children: [_jsxs(Select, { onValueChange: handleMonthChange, value: months[getMonth(selectedDate || new Date())], children: [_jsx(SelectTrigger, { className: 'w-[100px]', children: _jsx(SelectValue, { placeholder: 'Month' }) }), _jsx(SelectContent, { children: months.map((month) => (_jsx(SelectItem, { value: month, children: month }, month))) })] }), _jsxs(Select, { onValueChange: handleYearChange, value: getYear(selectedDate || new Date()).toString(), children: [_jsx(SelectTrigger, { className: 'w-[100px]', children: _jsx(SelectValue, { placeholder: 'Year' }) }), _jsx(SelectContent, { children: years.map((year) => (_jsx(SelectItem, { value: year.toString(), children: year }, year))) })] })] }), _jsx(CalendarComponent, { mode: 'single', locale: ptBR, onSelect: handleDateChange, className: 'bg-white text-black', month: selectedDate || undefined })] })] }) }));
34
+ });
35
+ export { DatePicker };
@@ -0,0 +1,13 @@
1
+ interface Props {
2
+ control: any;
3
+ name: string;
4
+ label: string;
5
+ subLabel?: string;
6
+ helpText?: JSX.Element;
7
+ className?: string;
8
+ disabled?: boolean;
9
+ onCheckedChange?: (checked: boolean) => void;
10
+ }
11
+ export declare const FormInputCheckbox: React.FC<Props>;
12
+ export {};
13
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/checkbox.tsx"],"names":[],"mappings":"AAMA,UAAU,KAAK;IACd,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAmC7C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Checkbox } from '../../checkbox';
3
+ import * as FormComponents from '../../form';
4
+ import { formHelpText } from './form-help-text';
5
+ import { formLabel } from './form-label';
6
+ import { formMessage } from './form-message';
7
+ export const FormInputCheckbox = ({ control, name, label, helpText, className, disabled, onCheckedChange }) => {
8
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
9
+ return (_jsx(FormField, { control: control, name: name, render: ({ field }) => (_jsxs(FormItem, { className: className, children: [_jsxs("div", { className: 'flex items-center gap-2', children: [_jsx(FormControl, { children: _jsx(Checkbox, { value: field.value, className: `${field.value
10
+ ? 'bg-purple-700 border border-purple-900 text-white rounded-[3px]'
11
+ : 'bg-white border border-black text-black'}`, onCheckedChange: (checked) => {
12
+ field?.onChange?.(checked);
13
+ onCheckedChange?.(checked);
14
+ }, disabled: disabled }) }), _jsxs("div", { className: 'flex h-full items-center space-x-1.5', children: [label && formLabel(FormLabel, label), helpText && formHelpText(helpText)] })] }), formMessage(FormMessage)] })) }));
15
+ };
@@ -0,0 +1,15 @@
1
+ interface Props {
2
+ control: any;
3
+ id?: string;
4
+ name: string;
5
+ label: string;
6
+ subLabel?: string;
7
+ helpText?: JSX.Element;
8
+ placeholder?: string;
9
+ className?: string;
10
+ disabled?: boolean;
11
+ required?: boolean;
12
+ }
13
+ export declare const FormInputColor: React.FC<Props>;
14
+ export {};
15
+ //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/color.tsx"],"names":[],"mappings":"AAcA,UAAU,KAAK;IACd,OAAO,EAAE,GAAG,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgH1C,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Paintbrush } from 'lucide-react';
3
+ import { useState } from 'react';
4
+ import { HexColorPicker } from 'react-colorful';
5
+ import { cn } from '../../../../lib/utils';
6
+ import { Button } from '../../button';
7
+ import * as FormComponents from '../../form';
8
+ import { Input } from '../../input';
9
+ import { Label } from '../../label';
10
+ import { Popover, PopoverContent, PopoverTrigger } from '../../popover';
11
+ import { formHelpText } from './form-help-text';
12
+ import { formLabelAndSubLabel } from './form-label';
13
+ import { formMessage } from './form-message';
14
+ import { hexToRgb, rgbToHex } from './utils';
15
+ export const FormInputColor = ({ control, name, label, subLabel, helpText, placeholder, className, disabled, required }) => {
16
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
17
+ const DEFAULT_COLOR = '#000000';
18
+ const [currentColor, setCurrentColor] = useState(DEFAULT_COLOR);
19
+ const rgb = hexToRgb(currentColor) || { r: 0, g: 0, b: 0 };
20
+ const handleColorChange = (newColor, onChange) => {
21
+ onChange?.(newColor);
22
+ setCurrentColor(newColor);
23
+ };
24
+ const handleHexChange = (hex, onChange) => {
25
+ if (/^#[0-9A-Fa-f]{6}$/.test(hex)) {
26
+ handleColorChange(hex, onChange);
27
+ }
28
+ else {
29
+ setCurrentColor(hex);
30
+ }
31
+ };
32
+ const handleRgbChange = (key, value, onChange) => {
33
+ const numValue = Number.parseInt(value);
34
+ if (!Number.isNaN(numValue) && numValue >= 0 && numValue <= 255) {
35
+ const newRgb = { ...rgb, [key]: numValue };
36
+ handleColorChange(rgbToHex(newRgb), onChange);
37
+ }
38
+ };
39
+ return (_jsx(FormField, { control: control, name: name, render: ({ field, formState }) => (_jsxs(FormItem, { className: className, children: [_jsxs("div", { className: 'flex items-center space-x-1.5', children: [label && formLabelAndSubLabel(FormLabel, label, subLabel, required), helpText && formHelpText(helpText)] }), _jsxs(Popover, { children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(FormControl, { children: _jsx(Button, { variant: 'outline', className: cn('w-[240px] justify-start text-left font-normal', !field.value && 'text-zinc-500', className), disabled: disabled || formState.isSubmitting, children: _jsxs("div", { className: 'w-full flex items-center gap-2', children: [field.value ? (_jsx("div", { className: 'h-4 w-4 rounded !bg-center !bg-cover transition-all border', style: { backgroundColor: field.value } })) : (_jsx(Paintbrush, { className: 'h-4 w-4' })), _jsx("div", { className: 'truncate flex-1 text-sm', children: field.value ? field.value : placeholder || 'Selecione uma cor' })] }) }) }) }), _jsx(PopoverContent, { className: cn('w-80', className), children: _jsxs("div", { className: 'flex flex-col gap-4', children: [_jsx("section", { className: '[&_.react-colorful]:w-auto', children: _jsx(HexColorPicker, { color: field.value ?? DEFAULT_COLOR, onChange: (newColor) => handleColorChange(newColor, field.onChange) }) }), _jsxs("div", { className: 'flex gap-2', children: [_jsxs("div", { className: 'flex flex-col gap-1', children: [_jsx(Label, { children: "Hex" }), _jsx(Input, { value: currentColor, onChange: (e) => handleHexChange(e.target.value, field.onChange), maxLength: 7 })] }), _jsxs("div", { className: 'flex gap-2', children: [_jsxs("div", { className: 'flex flex-col gap-1', children: [_jsx(Label, { children: "R" }), _jsx(Input, { value: rgb.r, onChange: (e) => handleRgbChange('r', e.target.value, field.onChange), className: 'w-14' })] }), _jsxs("div", { className: 'flex flex-col gap-1', children: [_jsx(Label, { children: "G" }), _jsx(Input, { value: rgb.g, onChange: (e) => handleRgbChange('g', e.target.value, field.onChange), className: 'w-14' })] }), _jsxs("div", { className: 'flex flex-col gap-1', children: [_jsx(Label, { children: "B" }), _jsx(Input, { value: rgb.b, onChange: (e) => handleRgbChange('b', e.target.value, field.onChange), className: 'w-14' })] })] })] })] }) })] }), formMessage(FormMessage)] })) }));
40
+ };