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,66 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { cva } from 'class-variance-authority';
3
+ import { CheckIcon, ChevronDown, X } from 'lucide-react';
4
+ import * as React from 'react';
5
+ import { cn } from '../../../../lib/utils';
6
+ import { Badge } from '../../badge';
7
+ import { Button } from '../../button';
8
+ import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from '../../command';
9
+ import * as FormComponents from '../../form';
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
+ const multiSelectVariants = cva('m-1 rounded-[6px]', {
15
+ variants: {
16
+ variant: {
17
+ default: 'text-foreground bg-background-secondary dark:bg-popover hover:bg-background-secondary',
18
+ secondary: 'border-foreground/10 bg-secondary text-secondary-foreground hover:bg-secondary/80',
19
+ destructive: 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',
20
+ inverted: 'inverted',
21
+ },
22
+ },
23
+ defaultVariants: {
24
+ variant: 'default',
25
+ },
26
+ });
27
+ export const MultiSelect = React.forwardRef(({ control, name, label, subLabel, helpText, options, variant, placeholder, maxCount = 2, modalPopover = false, asChild = false, className, required, ...props }, ref) => {
28
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
29
+ const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
30
+ const DEFAULT_PLACEHOLDER_FILTER = 'Digite para buscar...';
31
+ const DEFAULT_PLACEHOLDER = 'Selecione';
32
+ const toggleOption = (option, field) => {
33
+ const prevValue = field.value || [];
34
+ const newValue = prevValue?.some((item) => item.value === option.value)
35
+ ? prevValue.filter((item) => item.value !== option.value)
36
+ : [...prevValue, option];
37
+ field.onChange(newValue);
38
+ };
39
+ const handleClear = (field) => {
40
+ field.onChange([]);
41
+ };
42
+ const handleTogglePopover = () => {
43
+ setIsPopoverOpen((prev) => !prev);
44
+ };
45
+ const toggleAll = (field) => {
46
+ if (field.value?.length === options.length) {
47
+ handleClear(field);
48
+ }
49
+ else {
50
+ const allValues = options.map((option) => option);
51
+ field.onChange(allValues);
52
+ }
53
+ };
54
+ return (_jsx(FormField, { control: control, name: name, render: ({ field }) => (_jsxs(FormItem, { children: [_jsxs("div", { className: 'flex items-center space-x-1.5', children: [label && formLabelAndSubLabel(FormLabel, label, subLabel, required), helpText && formHelpText(helpText)] }), _jsxs(Popover, { open: isPopoverOpen, onOpenChange: setIsPopoverOpen, modal: modalPopover, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { ref: ref, ...props, onClick: handleTogglePopover, className: cn('flex w-full p-1 rounded-md border min-h-10 h-auto items-center justify-between bg-background hover:bg-background [&_svg]:size-3.5', className), children: field.value?.length > 0 ? (_jsxs("div", { className: 'flex justify-between items-center w-full', children: [_jsxs("div", { className: 'flex items-center', children: [_jsx("div", { className: `grid grid-cols-${maxCount}`, children: field.value.slice(0, maxCount).map((option) => {
55
+ return (_jsxs(Badge, { className: cn(multiSelectVariants({ variant })), onClick: (event) => {
56
+ event.stopPropagation();
57
+ toggleOption(option, field);
58
+ }, children: [_jsx("div", { className: 'truncate', children: option?.label }), _jsx(X, { className: 'ml-2 cursor-pointer text-zinc-500' })] }, `msoptlbl-${option.value}`));
59
+ }) }), field.value?.length > maxCount && (_jsx(Badge, { variant: 'surface', children: `+${field.value?.length - maxCount}` }))] }), _jsx("div", { className: 'flex items-center justify-between', children: _jsx(ChevronDown, { className: 'h-4 mx-2 cursor-pointer text-muted-foreground' }) })] })) : (_jsxs("div", { className: 'flex items-center justify-between w-full mx-auto', children: [_jsx("span", { className: 'text-sm text-muted-foreground mx-3', children: placeholder ?? DEFAULT_PLACEHOLDER }), _jsx(ChevronDown, { className: 'h-4 cursor-pointer text-muted-foreground mx-2' })] })) }) }), _jsx(PopoverContent, { className: cn('w-auto p-0', 'w-[--radix-popover-trigger-width]'), align: 'start', onEscapeKeyDown: () => setIsPopoverOpen(false), children: _jsxs(Command, { children: [_jsx(CommandInput, { placeholder: DEFAULT_PLACEHOLDER_FILTER }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: "Nenhum resultado encontrado" }), _jsxs(CommandGroup, { children: [_jsxs(CommandItem, { onSelect: () => toggleAll(field), className: 'cursor-pointer', children: [_jsx("div", { className: cn('mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary', field.value?.length === options.length
60
+ ? 'bg-primary text-primary-foreground'
61
+ : 'opacity-50 [&_svg]:invisible'), children: _jsx(CheckIcon, { className: 'h-4 w-4' }) }), _jsx("span", { children: "(Selecionar Todos)" })] }, 'all'), options.map((option) => {
62
+ const isSelected = field.value?.some((item) => item.value === option.value);
63
+ return (_jsxs(CommandItem, { onSelect: () => toggleOption(option, field), className: 'cursor-pointer', children: [_jsx("div", { className: cn('mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary', isSelected ? 'bg-primary text-primary-foreground' : 'opacity-50 [&_svg]:invisible'), children: _jsx(CheckIcon, { className: 'h-4 w-4' }) }), _jsx("span", { children: option.label })] }, `msopt-${option.value}`));
64
+ })] })] })] }) })] }), formMessage(FormMessage)] })) }));
65
+ });
66
+ MultiSelect.displayName = 'MultiSelect';
@@ -0,0 +1,16 @@
1
+ interface Props {
2
+ control: any;
3
+ name: string;
4
+ label: string;
5
+ subLabel?: string;
6
+ helpText?: JSX.Element;
7
+ placeholder?: string;
8
+ maxLength?: number;
9
+ className?: string;
10
+ disabled?: boolean;
11
+ required?: boolean;
12
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
13
+ }
14
+ export declare const FormInputPassWord: React.FC<Props>;
15
+ export {};
16
+ //# sourceMappingURL=password.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/password.tsx"],"names":[],"mappings":"AAQA,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAChE;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+C7C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Eye, EyeOff } from 'lucide-react';
3
+ import { useState } from 'react';
4
+ import * as FormComponents from '../../form';
5
+ import { InputText } from '../../input';
6
+ import { formHelpText } from './form-help-text';
7
+ import { formLabelAndSubLabel } from './form-label';
8
+ import { formMessage } from './form-message';
9
+ export const FormInputPassWord = ({ control, name, label, subLabel, helpText, placeholder, maxLength, className, disabled, required, }) => {
10
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
11
+ const [showPassword, setShowPassword] = useState(true);
12
+ const togglePasswordVisibility = () => setShowPassword((prev) => !prev);
13
+ 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)] }), _jsx(FormControl, { children: _jsxs("div", { className: 'relative w-full', children: [_jsx(InputText, { ...field, type: showPassword ? 'password' : 'text', name: name, maxLength: maxLength, className: className, placeholder: placeholder, disabled: disabled || formState.isSubmitting }), _jsx("button", { type: 'button', onClick: togglePasswordVisibility, className: 'absolute inset-y-0 right-2 flex items-center', children: showPassword ? _jsx(EyeOff, { className: 'w-5 h-5 text-slate-500' }) : _jsx(Eye, { className: 'w-5 h-5 text-slate-500' }) })] }) }), formMessage(FormMessage)] })) }));
14
+ };
@@ -0,0 +1,14 @@
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
+ required?: boolean;
10
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
11
+ }
12
+ export declare const FormInputPercent: React.FC<Props>;
13
+ export {};
14
+ //# sourceMappingURL=percent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"percent.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/percent.tsx"],"names":[],"mappings":"AAOA,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,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAChE;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAgC5C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import * as FormComponents from '../../form';
3
+ import { MaskInputDecimal } from '../../input';
4
+ import { formHelpText } from './form-help-text';
5
+ import { formLabelAndSubLabel } from './form-label';
6
+ import { formMessage } from './form-message';
7
+ export const FormInputPercent = ({ control, name, label, subLabel, helpText, className, disabled, required, onChange }) => {
8
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
9
+ 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)] }), _jsx(FormControl, { children: _jsx(MaskInputDecimal, { ...field, symbol: '%', className: `${className}`, disabled: disabled || formState.isSubmitting, onChange: (e) => {
10
+ field.onChange(e);
11
+ if (onChange) {
12
+ onChange(e);
13
+ }
14
+ } }) }), formMessage(FormMessage)] })) }));
15
+ };
@@ -0,0 +1,16 @@
1
+ interface Props {
2
+ control: any;
3
+ name: string;
4
+ label: string;
5
+ subLabel?: string;
6
+ helpText?: JSX.Element;
7
+ placeholder?: string;
8
+ className?: string;
9
+ disabled?: boolean;
10
+ required?: boolean;
11
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
12
+ onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
13
+ }
14
+ export declare const FormInputPhone: React.FC<Props>;
15
+ export {};
16
+ //# sourceMappingURL=phone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/phone.tsx"],"names":[],"mappings":"AAQA,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IAChE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CACjE;AAID,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsD1C,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import * as FormComponents from '../../form';
4
+ import { MaskInputFone } from '../../input';
5
+ import { formHelpText } from './form-help-text';
6
+ import { formLabelAndSubLabel } from './form-label';
7
+ import { formMessage } from './form-message';
8
+ const masks = ['(99) 9999-99999', '(99) 9 9999-9999'];
9
+ export const FormInputPhone = ({ control, name, label, subLabel, helpText, placeholder, className, disabled, required, onChange, onKeyUp, }) => {
10
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
11
+ const [mask, setMask] = useState(masks[0]);
12
+ const getMask = (val) => (val.replace(/\D/g, '').length > 10 ? masks[1] : masks[0]);
13
+ return (_jsx(FormField, { control: control, name: name, render: ({ field, formState }) => {
14
+ useEffect(() => {
15
+ setMask(getMask(field.value || ''));
16
+ }, [field.value]);
17
+ return (_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)] }), _jsx(FormControl, { children: _jsx(MaskInputFone, { ...field, className: className, placeholder: placeholder ?? '(00) 0 0000-0000', disabled: disabled || formState.isSubmitting, mask: mask, onChange: (e) => {
18
+ onChange?.(e);
19
+ field.onChange(e);
20
+ setMask(getMask(e.target.value));
21
+ }, onKeyUp: (e) => onKeyUp?.(e) }) }), formMessage(FormMessage)] }));
22
+ } }));
23
+ };
@@ -0,0 +1,23 @@
1
+ export interface RadioOption {
2
+ value: string;
3
+ label: string;
4
+ description?: string;
5
+ disabled?: boolean;
6
+ }
7
+ interface Props {
8
+ control: any;
9
+ name: string;
10
+ value?: string;
11
+ label?: string;
12
+ subLabel?: string;
13
+ helpText?: JSX.Element;
14
+ className?: string;
15
+ classNameOptions?: string;
16
+ disabled?: boolean;
17
+ required?: boolean;
18
+ options?: RadioOption[];
19
+ onChange?: (value: string) => void;
20
+ }
21
+ export declare const FormRadioGroup: React.FC<Props>;
22
+ export {};
23
+ //# sourceMappingURL=radio-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/radio-group.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,WAAW;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AACD,UAAU,KAAK;IACd,OAAO,EAAE,GAAG,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+D1C,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from '../../../../lib/utils';
3
+ import * as FormComponents from '../../form';
4
+ import { Label } from '../../label';
5
+ import { RadioGroup, RadioGroupItem } from '../../radio-group';
6
+ import { formHelpText } from './form-help-text';
7
+ import { formLabelAndSubLabel } from './form-label';
8
+ import { formMessage } from './form-message';
9
+ export const FormRadioGroup = ({ control, name, value, label, subLabel, helpText, className, classNameOptions, disabled, required, options, onChange, }) => {
10
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
11
+ return (_jsx(FormField, { control: control, name: name, render: ({ field, formState }) => (_jsxs(FormItem, { children: [_jsxs("div", { className: cn('flex items-center space-x-1.5 mb-2', className), children: [label && formLabelAndSubLabel(FormLabel, label, subLabel, required), helpText && formHelpText(helpText)] }), _jsx(FormControl, { children: _jsx(RadioGroup, { onValueChange: (value) => {
12
+ field?.onChange?.(value);
13
+ onChange?.(value);
14
+ }, defaultValue: field.value, disabled: disabled || formState.isSubmitting, className: `${className}`, children: _jsx("div", { className: cn('flex flex-grow gap-6', classNameOptions), children: options?.map((option, index) => (_jsxs("div", { className: 'flex flex-col', children: [_jsxs("div", { className: 'flex items-center space-x-2', children: [_jsx(RadioGroupItem, { value: option.value, id: `r${option.value}`, checked: field.value === option.value, disabled: option.disabled }), _jsx(Label, { htmlFor: `r${option.value}`, className: option.disabled ? 'opacity-50' : '', children: option.label })] }, `radio-${name}-${index}`), option.description && (_jsx("div", { className: cn('pl-6 text-zinc-500', { 'opacity-50': option.disabled }), children: option.description }))] }, `radio-${name}-${index}`))) }) }) }), formMessage(FormMessage)] })) }, value));
15
+ };
@@ -0,0 +1,20 @@
1
+ export interface SelectOption {
2
+ value: string;
3
+ label: string;
4
+ default?: boolean;
5
+ }
6
+ interface Props {
7
+ control: any;
8
+ name: string;
9
+ label: string;
10
+ subLabel?: string;
11
+ helpText?: JSX.Element;
12
+ placeholder?: string;
13
+ className?: string;
14
+ disabled?: boolean;
15
+ required?: boolean;
16
+ options: SelectOption[];
17
+ }
18
+ export declare const FormSelect: React.FC<Props>;
19
+ export {};
20
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/select.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkCtC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Select } from '@radix-ui/react-select';
3
+ import { cn } from '../../../../lib/utils';
4
+ import * as FormComponents from '../../form';
5
+ import { SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '../../select';
6
+ import { formHelpText } from './form-help-text';
7
+ import { formLabelAndSubLabel } from './form-label';
8
+ import { formMessage } from './form-message';
9
+ export const FormSelect = ({ control, name, label, subLabel, helpText, placeholder, className, disabled, required, options }) => {
10
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
11
+ 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)] }), _jsx(FormControl, { children: _jsxs(Select, { onValueChange: field.onChange, defaultValue: field.value, disabled: disabled, children: [_jsx(SelectTrigger, { className: cn('', formState.errors[name] ? 'border-red-600' : '', className), children: _jsx(SelectValue, { className: 'text-slate-400', placeholder: placeholder }) }), _jsx(SelectContent, { className: 'bg-white cursor-pointer', children: _jsx(SelectGroup, { children: options.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))) }) })] }) }), formMessage(FormMessage)] })) }));
12
+ };
@@ -0,0 +1,10 @@
1
+ interface PropsStepNewForm {
2
+ steps: {
3
+ id: string;
4
+ label: string;
5
+ }[];
6
+ currentIndex: number;
7
+ }
8
+ declare const StepNewForm: ({ steps, currentIndex }: PropsStepNewForm) => import("react/jsx-runtime").JSX.Element;
9
+ export default StepNewForm;
10
+ //# sourceMappingURL=step-new-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-new-form.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/step-new-form.tsx"],"names":[],"mappings":"AAGA,UAAU,gBAAgB;IACzB,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,QAAA,MAAM,WAAW,GAAI,yBAAyB,gBAAgB,4CAsC7D,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Check } from 'lucide-react';
3
+ import { Separator } from '../../separator';
4
+ const StepNewForm = ({ steps, currentIndex }) => {
5
+ const getStepIcon = (index) => {
6
+ if (index < currentIndex) {
7
+ return (_jsx("div", { className: 'flex w-6 h-6 rounded-md items-center justify-center bg-background-secondary border', children: _jsx(Check, { size: 16, className: 'stroke-2 stroke-primary' }) }));
8
+ }
9
+ return (_jsx("div", { className: `flex w-6 h-6 rounded-md items-center justify-center border ${index === currentIndex ? 'bg-background-primary text-white' : 'bg-white text-black'}`, children: index + 1 }));
10
+ };
11
+ return (_jsx("div", { className: 'flex flex-row gap-x-3 my-2.5', children: steps.map((step, index, array) => (_jsxs("div", { className: 'flex items-center text-sm font-medium gap-x-3', children: [_jsxs("div", { className: 'flex items-center text-sm font-medium gap-x-3', children: [getStepIcon(index), step.label] }), index + 1 < array.length && (_jsx("div", { className: 'w-10', children: _jsx(Separator, {}) }))] }, step.id))) }));
12
+ };
13
+ export default StepNewForm;
@@ -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 FormInputSwitch: React.FC<Props>;
12
+ export {};
13
+ //# sourceMappingURL=switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/switch.tsx"],"names":[],"mappings":"AAQA,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,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+B3C,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../../../../lib/utils';
3
+ import * as FormComponents from '../../form';
4
+ import { Switch } from '../../switch';
5
+ import { formHelpText } from './form-help-text';
6
+ import { formLabelAndSubLabel } from './form-label';
7
+ import { formMessage } from './form-message';
8
+ export const FormInputSwitch = ({ control, name, label, subLabel, helpText, className, disabled, onCheckedChange }) => {
9
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
10
+ return (_jsx(FormField, { control: control, name: name, render: ({ field }) => (_jsxs(FormItem, { className: cn('flex items-top gap-x-2', className), children: [_jsx(FormControl, { children: _jsx(Switch, { ...field, checked: field.value, onCheckedChange: (checked) => {
11
+ field.onChange(checked);
12
+ if (onCheckedChange) {
13
+ onCheckedChange(checked);
14
+ }
15
+ }, disabled: disabled }) }), _jsxs("div", { className: 'flex h-full items-center space-x-1.5', children: [label && formLabelAndSubLabel(FormLabel, label, subLabel, false, 'pb-0'), helpText && formHelpText(helpText)] }), formMessage(FormMessage)] })) }));
16
+ };
@@ -0,0 +1,18 @@
1
+ interface Props {
2
+ control: any;
3
+ name: string;
4
+ label: string;
5
+ subLabel?: string;
6
+ helpText?: JSX.Element;
7
+ placeholder?: string;
8
+ maxLength?: number;
9
+ className?: string;
10
+ disabled?: boolean;
11
+ required?: boolean;
12
+ inputRef?: React.Ref<HTMLInputElement>;
13
+ onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
14
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;
15
+ }
16
+ export declare const FormInputText: React.FC<Props>;
17
+ export {};
18
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/text.tsx"],"names":[],"mappings":"AAOA,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACjE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAChE;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+CzC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import * as FormComponents from '../../form';
3
+ import { InputText } from '../../input';
4
+ import { formHelpText } from './form-help-text';
5
+ import { formLabelAndSubLabel } from './form-label';
6
+ import { formMessage } from './form-message';
7
+ export const FormInputText = ({ control, name, label, subLabel, helpText, placeholder, maxLength, className, disabled, required, inputRef, onKeyUp, onChange, }) => {
8
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
9
+ 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)] }), _jsx(FormControl, { children: _jsx(InputText, { ...field, maxLength: maxLength, placeholder: placeholder, disabled: disabled || formState.isSubmitting, value: field.value || '', onKeyUp: (e) => {
10
+ if (onKeyUp) {
11
+ onKeyUp(e);
12
+ }
13
+ }, ref: inputRef }) }), formMessage(FormMessage)] })) }));
14
+ };
@@ -0,0 +1,16 @@
1
+ interface Props {
2
+ control: any;
3
+ name: string;
4
+ label: string;
5
+ subLabel?: string;
6
+ helpText?: JSX.Element;
7
+ placeholder?: string;
8
+ className?: string;
9
+ disabled?: boolean;
10
+ required?: boolean;
11
+ onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;
12
+ onKeyUp?: (event: React.KeyboardEvent<HTMLTextAreaElement>) => void;
13
+ }
14
+ export declare const FormTextarea: React.FC<Props>;
15
+ export {};
16
+ //# sourceMappingURL=textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/textarea.tsx"],"names":[],"mappings":"AAOA,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IACnE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;CACpE;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiDxC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import * as FormComponents from '../../form';
3
+ import { Textarea } from '../../textarea';
4
+ import { formHelpText } from './form-help-text';
5
+ import { formLabelAndSubLabel } from './form-label';
6
+ import { formMessage } from './form-message';
7
+ export const FormTextarea = ({ control, name, label, subLabel, helpText, placeholder, className, disabled, required, onChange, onKeyUp, }) => {
8
+ const { FormField, FormItem, FormLabel, FormControl, FormMessage } = FormComponents;
9
+ 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)] }), _jsx(FormControl, { children: _jsx(Textarea, { ...field, className: 'resize-none outline-none focus:outline-none', placeholder: placeholder, disabled: disabled || formState.isSubmitting, onChange: (e) => {
10
+ field.onChange(e);
11
+ if (onChange) {
12
+ onChange(e);
13
+ }
14
+ }, onKeyUp: (e) => {
15
+ if (onKeyUp) {
16
+ onKeyUp(e);
17
+ }
18
+ } }) }), formMessage(FormMessage)] })) }));
19
+ };
@@ -0,0 +1,18 @@
1
+ export type RGB = {
2
+ r: number;
3
+ g: number;
4
+ b: number;
5
+ };
6
+ type HSL = {
7
+ h: number;
8
+ s: number;
9
+ l: number;
10
+ };
11
+ export declare const rgbToHex: ({ r, g, b }: RGB) => string;
12
+ export declare const hexToRgb: (hex: string) => RGB | null;
13
+ export declare const rgbToHsl: ({ r, g, b }: RGB) => HSL;
14
+ export declare const hslToRgb: ({ h, s, l }: HSL) => RGB;
15
+ export declare const formatRgba: (rgb: RGB, a?: number) => string;
16
+ export declare const formatHsla: (hsl: HSL, a?: number) => string;
17
+ export {};
18
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/custom/form/utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACtD,KAAK,GAAG,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,eAAO,MAAM,QAAQ,GAAI,aAAa,GAAG,KAAG,MAG3C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,GAAG,GAAG,IAS5C,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,aAAa,GAAG,KAAG,GAmC3C,CAAC;AAYF,eAAO,MAAM,QAAQ,GAAI,aAAa,GAAG,KAAG,GAyB3C,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,GAAG,EAAE,UAAK,KAAG,MAE5C,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,GAAG,EAAE,UAAK,KAAG,MAE5C,CAAC"}
@@ -0,0 +1,88 @@
1
+ export const rgbToHex = ({ r, g, b }) => {
2
+ const toHex = (n) => Math.max(0, Math.min(255, n)).toString(16).padStart(2, '0').toUpperCase();
3
+ return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
4
+ };
5
+ export const hexToRgb = (hex) => {
6
+ const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
7
+ return result
8
+ ? {
9
+ r: Number.parseInt(result[1], 16),
10
+ g: Number.parseInt(result[2], 16),
11
+ b: Number.parseInt(result[3], 16),
12
+ }
13
+ : null;
14
+ };
15
+ export const rgbToHsl = ({ r, g, b }) => {
16
+ r /= 255;
17
+ g /= 255;
18
+ b /= 255;
19
+ const max = Math.max(r, g, b);
20
+ const min = Math.min(r, g, b);
21
+ let h = 0;
22
+ let s = 0;
23
+ const l = (max + min) / 2;
24
+ if (max !== min) {
25
+ const d = max - min;
26
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
27
+ switch (max) {
28
+ case r:
29
+ h = (g - b) / d + (g < b ? 6 : 0);
30
+ break;
31
+ case g:
32
+ h = (b - r) / d + 2;
33
+ break;
34
+ case b:
35
+ h = (r - g) / d + 4;
36
+ break;
37
+ }
38
+ h /= 6;
39
+ }
40
+ return {
41
+ h: Math.round(h * 360),
42
+ s: Math.round(s * 100),
43
+ l: Math.round(l * 100),
44
+ };
45
+ };
46
+ const hue2rgb = (p, q, t) => {
47
+ let tempT = t;
48
+ if (tempT < 0)
49
+ tempT += 1;
50
+ if (tempT > 1)
51
+ tempT -= 1;
52
+ if (tempT < 1 / 6)
53
+ return p + (q - p) * 6 * tempT;
54
+ if (tempT < 1 / 2)
55
+ return q;
56
+ if (tempT < 2 / 3)
57
+ return p + (q - p) * (2 / 3 - tempT) * 6;
58
+ return p;
59
+ };
60
+ export const hslToRgb = ({ h, s, l }) => {
61
+ h /= 360;
62
+ s /= 100;
63
+ l /= 100;
64
+ let r;
65
+ let g;
66
+ let b;
67
+ if (s === 0) {
68
+ r = g = b = l;
69
+ }
70
+ else {
71
+ const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
72
+ const p = 2 * l - q;
73
+ r = hue2rgb(p, q, h + 1 / 3);
74
+ g = hue2rgb(p, q, h);
75
+ b = hue2rgb(p, q, h - 1 / 3);
76
+ }
77
+ return {
78
+ r: Math.round(r * 255),
79
+ g: Math.round(g * 255),
80
+ b: Math.round(b * 255),
81
+ };
82
+ };
83
+ export const formatRgba = (rgb, a = 1) => {
84
+ return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${a})`;
85
+ };
86
+ export const formatHsla = (hsl, a = 1) => {
87
+ return `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${a})`;
88
+ };
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ import { Module, SidebarPage } from './sidebar/types/sidebar';
3
+ declare const Header: ({ splittedPath, modules, pages, isLoading, combobox, }: {
4
+ splittedPath: string[];
5
+ modules: Module[];
6
+ pages: SidebarPage[];
7
+ isLoading: boolean;
8
+ combobox: ReactNode;
9
+ }) => import("react/jsx-runtime").JSX.Element;
10
+ export default Header;
11
+ //# sourceMappingURL=header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/custom/header.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAqB,MAAM,OAAO,CAAC;AAMrD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG9D,QAAA,MAAM,MAAM,GAAI,wDAMb;IAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,4CA8G9G,CAAC;AAEF,eAAe,MAAM,CAAC"}