eai-frontend-components 2.0.14 → 2.0.15
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.
- package/dist/components/ui/accordion.d.ts +8 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/accordion.js +13 -0
- package/dist/components/ui/alert-dialog.d.ts +25 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +27 -0
- package/dist/components/ui/alert.d.ts +9 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/alert.js +22 -0
- package/dist/components/ui/avatar.d.ts +7 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +11 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +26 -0
- package/dist/components/ui/breadcrumb.d.ts +20 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.js +23 -0
- package/dist/components/ui/button.d.ts +12 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +33 -0
- package/dist/components/ui/calendar.d.ts +9 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/calendar.js +70 -0
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +16 -0
- package/dist/components/ui/carousel.d.ts +19 -0
- package/dist/components/ui/carousel.d.ts.map +1 -0
- package/dist/components/ui/carousel.js +98 -0
- package/dist/components/ui/chart.d.ts +63 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/chart.js +132 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox.js +8 -0
- package/dist/components/ui/collapsible.d.ts +6 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +5 -0
- package/dist/components/ui/command.d.ts +81 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/command.js +28 -0
- package/dist/components/ui/context-menu.d.ts +28 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -0
- package/dist/components/ui/context-menu.js +33 -0
- package/dist/components/ui/custom/date-picker.d.ts +12 -0
- package/dist/components/ui/custom/date-picker.d.ts.map +1 -0
- package/dist/components/ui/custom/date-picker.js +35 -0
- package/dist/components/ui/custom/form/checkbox.d.ts +13 -0
- package/dist/components/ui/custom/form/checkbox.d.ts.map +1 -0
- package/dist/components/ui/custom/form/checkbox.js +15 -0
- package/dist/components/ui/custom/form/color.d.ts +15 -0
- package/dist/components/ui/custom/form/color.d.ts.map +1 -0
- package/dist/components/ui/custom/form/color.js +40 -0
- package/dist/components/ui/custom/form/combobox.d.ts +37 -0
- package/dist/components/ui/custom/form/combobox.d.ts.map +1 -0
- package/dist/components/ui/custom/form/combobox.js +82 -0
- package/dist/components/ui/custom/form/cpf-cnpj.d.ts +16 -0
- package/dist/components/ui/custom/form/cpf-cnpj.d.ts.map +1 -0
- package/dist/components/ui/custom/form/cpf-cnpj.js +32 -0
- package/dist/components/ui/custom/form/currency.d.ts +14 -0
- package/dist/components/ui/custom/form/currency.d.ts.map +1 -0
- package/dist/components/ui/custom/form/currency.js +15 -0
- package/dist/components/ui/custom/form/date-range.d.ts +16 -0
- package/dist/components/ui/custom/form/date-range.d.ts.map +1 -0
- package/dist/components/ui/custom/form/date-range.js +24 -0
- package/dist/components/ui/custom/form/date.d.ts +16 -0
- package/dist/components/ui/custom/form/date.d.ts.map +1 -0
- package/dist/components/ui/custom/form/date.js +35 -0
- package/dist/components/ui/custom/form/decimal.d.ts +14 -0
- package/dist/components/ui/custom/form/decimal.d.ts.map +1 -0
- package/dist/components/ui/custom/form/decimal.js +15 -0
- package/dist/components/ui/custom/form/file.d.ts +15 -0
- package/dist/components/ui/custom/form/file.d.ts.map +1 -0
- package/dist/components/ui/custom/form/file.js +18 -0
- package/dist/components/ui/custom/form/form-help-text.d.ts +3 -0
- package/dist/components/ui/custom/form/form-help-text.d.ts.map +1 -0
- package/dist/components/ui/custom/form/form-help-text.js +7 -0
- package/dist/components/ui/custom/form/form-label.d.ts +7 -0
- package/dist/components/ui/custom/form/form-label.d.ts.map +1 -0
- package/dist/components/ui/custom/form/form-label.js +9 -0
- package/dist/components/ui/custom/form/form-message.d.ts +5 -0
- package/dist/components/ui/custom/form/form-message.d.ts.map +1 -0
- package/dist/components/ui/custom/form/form-message.js +5 -0
- package/dist/components/ui/custom/form/ghost.d.ts +8 -0
- package/dist/components/ui/custom/form/ghost.d.ts.map +1 -0
- package/dist/components/ui/custom/form/ghost.js +8 -0
- package/dist/components/ui/custom/form/input.d.ts +18 -0
- package/dist/components/ui/custom/form/input.d.ts.map +1 -0
- package/dist/components/ui/custom/form/input.js +14 -0
- package/dist/components/ui/custom/form/mask.d.ts +19 -0
- package/dist/components/ui/custom/form/mask.d.ts.map +1 -0
- package/dist/components/ui/custom/form/mask.js +19 -0
- package/dist/components/ui/custom/form/multi-select.d.ts +26 -0
- package/dist/components/ui/custom/form/multi-select.d.ts.map +1 -0
- package/dist/components/ui/custom/form/multi-select.js +66 -0
- package/dist/components/ui/custom/form/password.d.ts +16 -0
- package/dist/components/ui/custom/form/password.d.ts.map +1 -0
- package/dist/components/ui/custom/form/password.js +14 -0
- package/dist/components/ui/custom/form/percent.d.ts +14 -0
- package/dist/components/ui/custom/form/percent.d.ts.map +1 -0
- package/dist/components/ui/custom/form/percent.js +15 -0
- package/dist/components/ui/custom/form/phone.d.ts +16 -0
- package/dist/components/ui/custom/form/phone.d.ts.map +1 -0
- package/dist/components/ui/custom/form/phone.js +23 -0
- package/dist/components/ui/custom/form/radio-group.d.ts +23 -0
- package/dist/components/ui/custom/form/radio-group.d.ts.map +1 -0
- package/dist/components/ui/custom/form/radio-group.js +15 -0
- package/dist/components/ui/custom/form/select.d.ts +20 -0
- package/dist/components/ui/custom/form/select.d.ts.map +1 -0
- package/dist/components/ui/custom/form/select.js +12 -0
- package/dist/components/ui/custom/form/step-new-form.d.ts +10 -0
- package/dist/components/ui/custom/form/step-new-form.d.ts.map +1 -0
- package/dist/components/ui/custom/form/step-new-form.js +13 -0
- package/dist/components/ui/custom/form/switch.d.ts +13 -0
- package/dist/components/ui/custom/form/switch.d.ts.map +1 -0
- package/dist/components/ui/custom/form/switch.js +16 -0
- package/dist/components/ui/custom/form/text.d.ts +18 -0
- package/dist/components/ui/custom/form/text.d.ts.map +1 -0
- package/dist/components/ui/custom/form/text.js +14 -0
- package/dist/components/ui/custom/form/textarea.d.ts +16 -0
- package/dist/components/ui/custom/form/textarea.d.ts.map +1 -0
- package/dist/components/ui/custom/form/textarea.js +19 -0
- package/dist/components/ui/custom/form/utils.d.ts +18 -0
- package/dist/components/ui/custom/form/utils.d.ts.map +1 -0
- package/dist/components/ui/custom/form/utils.js +88 -0
- package/dist/components/ui/custom/header.d.ts +11 -0
- package/dist/components/ui/custom/header.d.ts.map +1 -0
- package/dist/components/ui/custom/header.js +74 -0
- package/dist/components/ui/custom/label.d.ts +13 -0
- package/dist/components/ui/custom/label.d.ts.map +1 -0
- package/dist/components/ui/custom/label.js +20 -0
- package/dist/components/ui/custom/not-found.d.ts +3 -0
- package/dist/components/ui/custom/not-found.d.ts.map +1 -0
- package/dist/components/ui/custom/not-found.js +9 -0
- package/dist/components/ui/custom/sidebar/module-switcher.d.ts +9 -0
- package/dist/components/ui/custom/sidebar/module-switcher.d.ts.map +1 -0
- package/dist/components/ui/custom/sidebar/module-switcher.js +20 -0
- package/dist/components/ui/custom/sidebar/nav-footer.d.ts +7 -0
- package/dist/components/ui/custom/sidebar/nav-footer.d.ts.map +1 -0
- package/dist/components/ui/custom/sidebar/nav-footer.js +13 -0
- package/dist/components/ui/custom/sidebar/nav-main.d.ts +7 -0
- package/dist/components/ui/custom/sidebar/nav-main.d.ts.map +1 -0
- package/dist/components/ui/custom/sidebar/nav-main.js +27 -0
- package/dist/components/ui/custom/sidebar/nav-submenu-collapsible.d.ts +9 -0
- package/dist/components/ui/custom/sidebar/nav-submenu-collapsible.d.ts.map +1 -0
- package/dist/components/ui/custom/sidebar/nav-submenu-collapsible.js +18 -0
- package/dist/components/ui/custom/sidebar/nav-submenu-dropdown.d.ts +10 -0
- package/dist/components/ui/custom/sidebar/nav-submenu-dropdown.d.ts.map +1 -0
- package/dist/components/ui/custom/sidebar/nav-submenu-dropdown.js +10 -0
- package/dist/components/ui/custom/sidebar/nav-user.d.ts +9 -0
- package/dist/components/ui/custom/sidebar/nav-user.d.ts.map +1 -0
- package/dist/components/ui/custom/sidebar/nav-user.js +24 -0
- package/dist/components/ui/custom/sidebar/sidebar-button.d.ts +9 -0
- package/dist/components/ui/custom/sidebar/sidebar-button.d.ts.map +1 -0
- package/dist/components/ui/custom/sidebar/sidebar-button.js +7 -0
- package/dist/components/ui/custom/sidebar/sidebar-item-two-lines.d.ts +12 -0
- package/dist/components/ui/custom/sidebar/sidebar-item-two-lines.d.ts.map +1 -0
- package/dist/components/ui/custom/sidebar/sidebar-item-two-lines.js +5 -0
- package/dist/components/ui/custom/sidebar/sidebar-item.d.ts +9 -0
- package/dist/components/ui/custom/sidebar/sidebar-item.d.ts.map +1 -0
- package/dist/components/ui/custom/sidebar/sidebar-item.js +7 -0
- package/dist/components/ui/custom/sidebar/types/sidebar.d.ts +29 -0
- package/dist/components/ui/custom/sidebar/types/sidebar.d.ts.map +1 -0
- package/dist/components/ui/custom/sidebar/types/sidebar.js +5 -0
- package/dist/components/ui/custom/table/data-table-export.d.ts +8 -0
- package/dist/components/ui/custom/table/data-table-export.d.ts.map +1 -0
- package/dist/components/ui/custom/table/data-table-export.js +65 -0
- package/dist/components/ui/custom/table/data-table-footer.d.ts +25 -0
- package/dist/components/ui/custom/table/data-table-footer.d.ts.map +1 -0
- package/dist/components/ui/custom/table/data-table-footer.js +39 -0
- package/dist/components/ui/custom/table/data-table-header.d.ts +9 -0
- package/dist/components/ui/custom/table/data-table-header.d.ts.map +1 -0
- package/dist/components/ui/custom/table/data-table-header.js +11 -0
- package/dist/components/ui/custom/table/data-table-rows.d.ts +13 -0
- package/dist/components/ui/custom/table/data-table-rows.d.ts.map +1 -0
- package/dist/components/ui/custom/table/data-table-rows.js +25 -0
- package/dist/components/ui/custom/table/data-table.d.ts +35 -0
- package/dist/components/ui/custom/table/data-table.d.ts.map +1 -0
- package/dist/components/ui/custom/table/data-table.js +99 -0
- package/dist/components/ui/custom/table/types/data-table.d.ts +29 -0
- package/dist/components/ui/custom/table/types/data-table.d.ts.map +1 -0
- package/dist/components/ui/custom/table/types/data-table.js +1 -0
- package/dist/components/ui/custom/theme-provider.d.ts +24 -0
- package/dist/components/ui/custom/theme-provider.d.ts.map +1 -0
- package/dist/components/ui/custom/theme-provider.js +79 -0
- package/dist/components/ui/dateRangePicker.d.ts +3 -0
- package/dist/components/ui/dateRangePicker.d.ts.map +1 -0
- package/dist/components/ui/dateRangePicker.js +15 -0
- package/dist/components/ui/dialog.d.ts +23 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +23 -0
- package/dist/components/ui/drawer.d.ts +23 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +22 -0
- package/dist/components/ui/dropdown-menu.d.ts +28 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +32 -0
- package/dist/components/ui/form.d.ts +24 -0
- package/dist/components/ui/form.d.ts.map +1 -0
- package/dist/components/ui/form.js +60 -0
- package/dist/components/ui/hover-card.d.ts +7 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -0
- package/dist/components/ui/hover-card.js +9 -0
- package/dist/components/ui/input.d.ts +24 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +71 -0
- package/dist/components/ui/label.d.ts +6 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +9 -0
- package/dist/components/ui/masks.d.ts +17 -0
- package/dist/components/ui/masks.d.ts.map +1 -0
- package/dist/components/ui/masks.js +25 -0
- package/dist/components/ui/pagination.d.ts +30 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/pagination.js +23 -0
- package/dist/components/ui/popover.d.ts +7 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +11 -0
- package/dist/components/ui/progress.d.ts +5 -0
- package/dist/components/ui/progress.d.ts.map +1 -0
- package/dist/components/ui/progress.js +7 -0
- package/dist/components/ui/radio-group.d.ts +6 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/radio-group.js +14 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +11 -0
- package/dist/components/ui/select.d.ts +14 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +24 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/separator.js +7 -0
- package/dist/components/ui/sheet.d.ts +26 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +37 -0
- package/dist/components/ui/sidebar.d.ts +67 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/sidebar.js +221 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +6 -0
- package/dist/components/ui/slider.d.ts +5 -0
- package/dist/components/ui/slider.d.ts.map +1 -0
- package/dist/components/ui/slider.js +7 -0
- package/dist/components/ui/switch.d.ts +5 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +7 -0
- package/dist/components/ui/table.d.ts +11 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +20 -0
- package/dist/components/ui/tabs.d.ts +8 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +12 -0
- package/dist/components/ui/textarea.d.ts +4 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +14 -0
- package/dist/components/ui/toast.d.ts +16 -0
- package/dist/components/ui/toast.d.ts.map +1 -0
- package/dist/components/ui/toast.js +34 -0
- package/dist/components/ui/toaster.d.ts +2 -0
- package/dist/components/ui/toaster.d.ts.map +1 -0
- package/dist/components/ui/toaster.js +21 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +10 -0
- package/dist/components/ui/use-calendar.d.ts +7 -0
- package/dist/components/ui/use-calendar.d.ts.map +1 -0
- package/dist/components/ui/use-calendar.js +23 -0
- package/dist/components/ui/use-toast.d.ts +46 -0
- package/dist/components/ui/use-toast.d.ts.map +1 -0
- package/dist/components/ui/use-toast.js +125 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +15 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +4 -4
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/help/date-utils.d.ts +7 -0
- package/dist/lib/help/date-utils.d.ts.map +1 -0
- package/dist/lib/help/date-utils.js +34 -0
- package/dist/lib/help/format.d.ts +22 -0
- package/dist/lib/help/format.d.ts.map +1 -0
- package/dist/lib/help/format.js +140 -0
- package/dist/lib/help/theme.d.ts +291 -0
- package/dist/lib/help/theme.d.ts.map +1 -0
- package/dist/lib/help/theme.js +340 -0
- package/dist/lib/help/uuid.d.ts +2 -0
- package/dist/lib/help/uuid.d.ts.map +1 -0
- package/dist/lib/help/uuid.js +4 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +5 -0
- 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"}
|