{"version":3,"file":"index.mjs","sources":["../../src/utils/format.ts","../../src/components/default/form-layout/FormLayout.tsx"],"sourcesContent":["import { formatDateToBrazilian } from \"./date\";\nimport { formatMoney } from \"./format-numbers\";\n\n/**\n * Formata uma data para o padrão brasileiro (dd/MM/yyyy)\n * @param date Data a ser formatada (Date, string ou undefined)\n * @returns String formatada ou undefined se não houver valor\n */\nexport function formatDate(date: Date | string | undefined): string | undefined {\n\tif (!date) return undefined;\n\treturn formatDateToBrazilian(date);\n}\n\n/**\n * Formata um CNPJ no padrão brasileiro (##.###.###/####-##)\n * @param cnpj CNPJ a ser formatado (string com ou sem formatação)\n * @returns String formatada ou undefined se não houver valor\n */\nexport function formatCNPJ(cnpj: string | undefined | null): string | undefined {\n\tif (!cnpj) return undefined;\n\n\t// Remove caracteres não numéricos\n\tconst cleaned = cnpj.replace(/\\D/g, \"\");\n\n\t// Verifica se tem 14 dígitos\n\tif (cleaned.length !== 14) {\n\t\t// Se não tiver 14 dígitos, retorna o valor original\n\t\treturn cnpj;\n\t}\n\n\t// Formata: ##.###.###/####-##\n\treturn `${cleaned.slice(0, 2)}.${cleaned.slice(2, 5)}.${cleaned.slice(5, 8)}/${cleaned.slice(8, 12)}-${cleaned.slice(12, 14)}`;\n}\n\n/**\n * Formata um valor numérico como moeda brasileira (R$)\n * @param value Valor numérico a ser formatado\n * @returns String formatada ou undefined se não houver valor\n */\nexport function formatCurrency(value: number | undefined | null): string | undefined {\n\tif (value === null || value === undefined) return undefined;\n\treturn formatMoney({\n\t\tvalue,\n\t\tcurrency: \"BRL\",\n\t\tminimumFractionDigits: 2,\n\t\tmaximumFractionDigits: 2,\n\t});\n}\n","/** biome-ignore-all lint/suspicious/noExplicitAny: <any> */\n\"use client\";\n\nimport * as React from \"react\";\nimport { useEffect, useId, useRef, useState } from \"react\";\nimport { DateRange } from \"react-day-picker\";\nimport type { Control, FieldPath, FieldValues, UseFormReturn } from \"react-hook-form\";\nimport { NumericFormat, PatternFormat } from \"react-number-format\";\nimport { AutoComplete, CalendarPopover, CalendarRange } from \"@/components/default/base\";\nimport type { CalendarRangeProps } from \"@/components/default/base/CalendarRange\";\nimport { ListItem } from \"@/components/default/layout\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport { Combobox } from \"@/components/ui/combobox\";\nimport { DatePicker } from \"@/components/ui/date-picker\";\nimport {\n\tForm,\n\tFormControl,\n\tFormDescription,\n\tFormField,\n\tFormItem,\n\tFormLabel,\n\tFormMessage,\n} from \"@/components/ui/form\";\nimport { Input } from \"@/components/ui/input\";\nimport { InputFile } from \"@/components/ui/input-file\";\nimport { InputOTP, InputOTPGroup, InputOTPSlot } from \"@/components/ui/input-otp\";\nimport { Label } from \"@/components/ui/label\";\nimport { MultiSelect } from \"@/components/ui/multi-select/multi-select\";\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui/radio-group\";\nimport {\n\tSelect,\n\tSelectContent,\n\tSelectItem,\n\tSelectTrigger,\n\tSelectValue,\n} from \"@/components/ui/select\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { Slider } from \"@/components/ui/slider\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { Toggle } from \"@/components/ui/toggle\";\nimport { cn } from \"@/lib/utils\";\nimport { formatCNPJ, formatCurrency, formatDate } from \"@/utils/format\";\nimport { styleInput, styleInputError } from \"@/utils/styles\";\n\nexport type FormFieldType =\n\t| \"text\"\n\t| \"email\"\n\t| \"url\"\n\t| \"tel\"\n\t| \"textarea\"\n\t| \"number\"\n\t| \"numberRange\"\n\t| \"currency\"\n\t| \"pattern\"\n\t| \"select\"\n\t| \"multiselect\"\n\t| \"date\"\n\t| \"date-picker\"\n\t| \"dateRange\"\n\t| \"checkbox\"\n\t| \"switch\"\n\t| \"radio\"\n\t| \"slider\"\n\t| \"otp\"\n\t| \"toggle\"\n\t| \"autocomplete\"\n\t| \"combobox\"\n\t| \"file\"\n\t| \"custom\";\n\nexport interface FormFieldConfig<T extends FieldValues> {\n\tname: FieldPath<T>;\n\tlabel: string | null;\n\ttype: FormFieldType;\n\tplaceholder?: string;\n\tdescription?: React.ReactNode;\n\trequired?: boolean;\n\tisCheckboxDefault?: boolean;\n\tdisabled?: boolean;\n\tcols?: number;\n\tclassName?: string;\n\tinlineElement?: React.ReactNode;\n\toptions?: { label: string; value: string | number }[] | string[];\n\titems?: string[];\n\tallowNegative?: boolean;\n\tmaxLength?: number;\n\tendAdornment?: (value: any) => React.ReactNode;\n\n\tdecimalScale?: number;\n\tprefix?: string;\n\tformat?: string;\n\tmask?: string;\n\tradioOptions?: { label: string; value: string }[];\n\totpLength?: number;\n\tsliderRange?: { min: number; max: number; step?: number };\n\tautocompleteConfig?: {\n\t\tfetchOptions: (\n\t\t\tterm: string,\n\t\t) => Promise<Array<{ id: number | string; label: string; [key: string]: any }>>;\n\t\tgetOptionLabel?: (option: any) => string;\n\t\tgetOptionKey?: (option: any) => number | string;\n\t\tgetOptionValue?: (option: any) => any;\n\t\tsearchPlaceholder?: string;\n\t\tmessageEmpty?: string;\n\t\tonChangeCallback?: (option: any, form: UseFormReturn<T>) => void;\n\t\tclearable?: boolean;\n\t\tclassName?: string;\n\t};\n\tmultiSelectConfig?: {\n\t\tmaxCount?: number;\n\t\tsubtle?: boolean;\n\t\tsearchPlaceholder?: string;\n\t\temptyMessage?: string;\n\t\tgroupHeading?: string;\n\t\tnormalizeSearch?: boolean;\n\t\tvalueType?: \"number\" | \"string\";\n\t};\n\tcomboboxConfig?: {\n\t\titems: { value: string; label: string }[];\n\t\tsearchPlaceholder?: string;\n\t\temptyMessage?: string;\n\t\tgroupHeading?: string;\n\t\tnormalizeSearch?: boolean;\n\t\tvalueType?: \"number\" | \"string\";\n\t};\n\tdateConfig?: Omit<CalendarRangeProps, \"value\" | \"onChange\" | \"id\" | \"className\">;\n\tfileConfig?: {\n\t\taccept?: string;\n\t};\n\tselectConfig?: {\n\t\tclearable?: boolean;\n\t};\n\trender?: (props: { field: any; form: UseFormReturn<T> }) => React.ReactNode;\n}\n\nexport interface FormSectionConfig<T extends FieldValues> {\n\ttitle?: string;\n\tdescription?: string;\n\tfields: FormFieldConfig<T>[];\n}\n\nexport interface BaseFormFieldProps<T extends FieldValues> {\n\tconfig: FormFieldConfig<T>;\n\tcontrol: Control<T>;\n\treadOnly?: boolean;\n\tform?: UseFormReturn<T>;\n}\n\nfunction AutocompleteFieldWrapper<T extends FieldValues>({\n\tfield,\n\tform,\n\tautocompleteConfig,\n\tplaceholder,\n\tdisabled,\n\tisError,\n}: {\n\tfield: any;\n\tform: UseFormReturn<T>;\n\tautocompleteConfig: NonNullable<FormFieldConfig<T>[\"autocompleteConfig\"]>;\n\tplaceholder?: string;\n\tdisabled?: boolean;\n\tisError?: boolean;\n}) {\n\tconst [open, setOpen] = useState(false);\n\tconst [selectedOption, setSelectedOption] = useState<any>(null);\n\tconst selectedOptionRef = useRef<any>(null);\n\n\tconst getOptionLabel =\n\t\tautocompleteConfig.getOptionLabel || ((option: any) => option.label || String(option.id));\n\tconst getOptionKey = autocompleteConfig.getOptionKey || ((option: any) => option.id);\n\tconst getOptionValue = autocompleteConfig.getOptionValue || ((option: any) => option.id);\n\n\tuseEffect(() => {\n\t\tif (selectedOptionRef.current && field.value) {\n\t\t\tconst currentValue = getOptionValue(selectedOptionRef.current);\n\t\t\tconst newValue =\n\t\t\t\ttypeof field.value === \"object\" && field.value !== null\n\t\t\t\t\t? getOptionValue(field.value)\n\t\t\t\t\t: field.value;\n\n\t\t\tif (currentValue === newValue) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (field.value && typeof field.value === \"object\" && field.value !== null) {\n\t\t\tselectedOptionRef.current = field.value;\n\t\t\tsetSelectedOption(field.value);\n\t\t\treturn;\n\t\t}\n\n\t\tif (field.value && autocompleteConfig.fetchOptions) {\n\t\t\tconst isNumericValue = typeof field.value === \"number\";\n\t\t\tconst searchTerm = isNumericValue ? \"\" : field.value;\n\n\t\t\tautocompleteConfig\n\t\t\t\t.fetchOptions(searchTerm)\n\t\t\t\t.then((options) => {\n\t\t\t\t\tlet found: any = null;\n\n\t\t\t\t\tif (isNumericValue) {\n\t\t\t\t\t\tfound = options.find((opt) => getOptionKey(opt) === field.value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfound = options.find((opt) => getOptionValue(opt) === field.value);\n\n\t\t\t\t\t\tif (!found) {\n\t\t\t\t\t\t\tfound = options.find((opt) => {\n\t\t\t\t\t\t\t\tconst label = getOptionLabel(opt);\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tlabel === field.value || label.toLowerCase().includes(field.value.toLowerCase())\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (found) {\n\t\t\t\t\t\tselectedOptionRef.current = found;\n\t\t\t\t\t\tsetSelectedOption(found);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tselectedOptionRef.current = null;\n\t\t\t\t\t\tsetSelectedOption(null);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\tselectedOptionRef.current = null;\n\t\t\t\t\tsetSelectedOption(null);\n\t\t\t\t});\n\t\t} else if (!field.value) {\n\t\t\tselectedOptionRef.current = null;\n\t\t\tsetSelectedOption(null);\n\t\t}\n\t}, [field.value, autocompleteConfig.fetchOptions, getOptionValue, getOptionLabel, getOptionKey]);\n\n\treturn (\n\t\t<AutoComplete\n\t\t\tvalue={selectedOption}\n\t\t\tonChange={(option: any) => {\n\t\t\t\tconst value = option ? getOptionValue(option) : null;\n\t\t\t\tfield.onChange(value);\n\t\t\t\tselectedOptionRef.current = option;\n\t\t\t\tsetSelectedOption(option);\n\t\t\t\tif (option && autocompleteConfig.onChangeCallback) {\n\t\t\t\t\tautocompleteConfig.onChangeCallback(option, form);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tplaceholder={placeholder || \"Digite para buscar...\"}\n\t\t\tsearchPlaceholder={autocompleteConfig.searchPlaceholder || \"Buscar...\"}\n\t\t\topen={open}\n\t\t\tonOpenChange={setOpen}\n\t\t\tfetchOptions={autocompleteConfig.fetchOptions}\n\t\t\tdisabled={disabled}\n\t\t\tmessageEmpty={autocompleteConfig.messageEmpty || \"Nenhum resultado encontrado...\"}\n\t\t\tgetOptionLabel={getOptionLabel}\n\t\t\tgetOptionKey={getOptionKey}\n\t\t\tclearable={autocompleteConfig.clearable ?? true}\n\t\t\tclassName={cn(\n\t\t\t\t\"border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:ring-ring flex h-10 w-full rounded-md border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 truncate max-w-150\",\n\t\t\t\tautocompleteConfig?.className,\n\t\t\t\tisError && styleInputError,\n\t\t\t)}\n\t\t/>\n\t);\n}\n\nexport function BaseFormField<T extends FieldValues>({\n\tconfig,\n\tcontrol,\n\treadOnly = false,\n\tform,\n}: BaseFormFieldProps<T>) {\n\tconst baseId = useId();\n\tconst {\n\t\tname,\n\t\tlabel,\n\t\ttype,\n\t\tplaceholder,\n\t\tdescription,\n\t\trequired,\n\t\toptions,\n\t\titems,\n\t\tallowNegative,\n\t\tdecimalScale,\n\t\tdisabled,\n\t\tprefix,\n\t\tradioOptions,\n\t\totpLength,\n\t\tsliderRange,\n\t\tformat: patternFormat,\n\t\tmask,\n\t\tautocompleteConfig,\n\t\tcomboboxConfig,\n\t\tinlineElement,\n\t\trender: customRender,\n\t\tmaxLength,\n\t\tendAdornment,\n\t\tmultiSelectConfig,\n\t\tdateConfig,\n\t\tfileConfig,\n\t\tisCheckboxDefault,\n\t} = config;\n\n\tconst formatReadOnlyValue = (value: unknown, fieldType: FormFieldType): string | undefined => {\n\t\tif (value === null || value === undefined || value === \"\") {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tswitch (fieldType) {\n\t\t\tcase \"date\":\n\t\t\tcase \"date-picker\":\n\t\t\t\treturn formatDate(value as Date | string | undefined);\n\t\t\tcase \"currency\":\n\t\t\t\treturn formatCurrency(value as number);\n\t\t\tcase \"number\":\n\t\t\t\treturn typeof value === \"number\"\n\t\t\t\t\t? value.toLocaleString(\"pt-BR\", {\n\t\t\t\t\t\t\tminimumFractionDigits: decimalScale ?? 0,\n\t\t\t\t\t\t\tmaximumFractionDigits: decimalScale ?? 7,\n\t\t\t\t\t\t})\n\t\t\t\t\t: String(value);\n\t\t\tcase \"pattern\":\n\t\t\t\tif (patternFormat && typeof value === \"string\") {\n\t\t\t\t\tif (patternFormat.includes(\"##.###.###/####-##\")) {\n\t\t\t\t\t\treturn formatCNPJ(value);\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t\treturn String(value);\n\t\t\tcase \"select\":\n\t\t\t\tif (options && options.length > 0) {\n\t\t\t\t\tconst option = options.find((opt) => {\n\t\t\t\t\t\tconst optValue = typeof opt === \"object\" ? opt.value : opt;\n\t\t\t\t\t\treturn String(optValue) === String(value);\n\t\t\t\t\t});\n\t\t\t\t\tif (option) {\n\t\t\t\t\t\treturn typeof option === \"object\" ? option.label : option;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn String(value);\n\t\t\tcase \"checkbox\":\n\t\t\tcase \"switch\":\n\t\t\tcase \"toggle\":\n\t\t\t\treturn value ? \"Sim\" : \"Não\";\n\t\t\tcase \"radio\":\n\t\t\t\tif (radioOptions) {\n\t\t\t\t\tconst option = radioOptions.find((opt) => String(opt.value) === String(value));\n\t\t\t\t\treturn option ? option.label : String(value);\n\t\t\t\t}\n\t\t\t\treturn String(value);\n\t\t\tcase \"slider\":\n\t\t\t\treturn typeof value === \"number\" ? String(value) : undefined;\n\t\t\tcase \"numberRange\": {\n\t\t\t\tif (typeof value === \"object\" && value !== null && (\"min\" in value || \"max\" in value)) {\n\t\t\t\t\tconst range = value as { min?: number | null; max?: number | null };\n\t\t\t\t\tconst minStr =\n\t\t\t\t\t\trange.min !== null && range.min !== undefined\n\t\t\t\t\t\t\t? range.min.toLocaleString(\"pt-BR\", {\n\t\t\t\t\t\t\t\t\tminimumFractionDigits: decimalScale ?? 0,\n\t\t\t\t\t\t\t\t\tmaximumFractionDigits: decimalScale ?? 7,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t: \"\";\n\t\t\t\t\tconst maxStr =\n\t\t\t\t\t\trange.max !== null && range.max !== undefined\n\t\t\t\t\t\t\t? range.max.toLocaleString(\"pt-BR\", {\n\t\t\t\t\t\t\t\t\tminimumFractionDigits: decimalScale ?? 0,\n\t\t\t\t\t\t\t\t\tmaximumFractionDigits: decimalScale ?? 7,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t: \"\";\n\t\t\t\t\tif (minStr && maxStr) {\n\t\t\t\t\t\treturn `${minStr} - ${maxStr}`;\n\t\t\t\t\t}\n\t\t\t\t\tif (minStr) return `Mín: ${minStr}`;\n\t\t\t\t\tif (maxStr) return `Máx: ${maxStr}`;\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tcase \"dateRange\": {\n\t\t\t\tif (typeof value === \"object\" && value !== null && \"from\" in value) {\n\t\t\t\t\tconst range = value as DateRange;\n\t\t\t\t\tif (range.from && range.to) {\n\t\t\t\t\t\treturn `${formatDate(range.from)} - ${formatDate(range.to)}`;\n\t\t\t\t\t}\n\t\t\t\t\tif (range.from) {\n\t\t\t\t\t\treturn `De: ${formatDate(range.from)}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tcase \"multiselect\": {\n\t\t\t\tif (Array.isArray(value) && value.length > 0) {\n\t\t\t\t\treturn value.join(\", \");\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tcase \"combobox\": {\n\t\t\t\tif (typeof value === \"string\" || typeof value === \"number\") {\n\t\t\t\t\tconst valStr = String(value);\n\t\t\t\t\tif (config.comboboxConfig?.items) {\n\t\t\t\t\t\tconst option = config.comboboxConfig.items.find((opt) => String(opt.value) === valStr);\n\t\t\t\t\t\treturn option ? option.label : valStr;\n\t\t\t\t\t}\n\t\t\t\t\treturn valStr;\n\t\t\t\t}\n\t\t\t\treturn String(value);\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn String(value);\n\t\t}\n\t};\n\n\tif (readOnly) {\n\t\treturn (\n\t\t\t<FormField\n\t\t\t\tcontrol={control}\n\t\t\t\tname={name}\n\t\t\t\trender={({ field }: any) => (\n\t\t\t\t\t<ListItem title={label ?? \"\"} value={formatReadOnlyValue(field.value, type)} />\n\t\t\t\t)}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<FormField\n\t\t\tcontrol={control}\n\t\t\tname={name}\n\t\t\trender={({ field, fieldState }: any) => {\n\t\t\t\tconst isError = fieldState?.invalid;\n\n\t\t\t\tif (customRender && form) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<FormItem\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\ttype === \"checkbox\" &&\n\t\t\t\t\t\t\t\t\t\"flex flex-row items-start space-y-0 space-x-3 rounded-md border p-4\",\n\t\t\t\t\t\t\t\ttype === \"checkbox\" && isCheckboxDefault && \"border-none p-0\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{type !== \"checkbox\" && type !== \"switch\" && (\n\t\t\t\t\t\t\t\t<FormLabel htmlFor={name}>\n\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\t{label && required && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"text-destructive\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\t\tfloat: \"none\",\n\t\t\t\t\t\t\t\t\t\t\t\twidth: \"auto\",\n\t\t\t\t\t\t\t\t\t\t\t\tmarginRight: 0,\n\t\t\t\t\t\t\t\t\t\t\t\tmarginTop: 0,\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t*\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<span className={!label ? \"text-transparent\" : \"\"}>:</span>\n\t\t\t\t\t\t\t\t</FormLabel>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<div className={cn(inlineElement && \"flex w-full items-center gap-2\")}>\n\t\t\t\t\t\t\t\t<div className={cn(inlineElement && \"min-w-0 flex-1\")}>\n\t\t\t\t\t\t\t\t\t<FormControl className={isError ? styleInputError : \"\"}>\n\t\t\t\t\t\t\t\t\t\t{customRender({ field, form })}\n\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{inlineElement && <div className=\"shrink-0\">{inlineElement}</div>}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{type !== \"checkbox\" && description && !isError && (\n\t\t\t\t\t\t\t\t<FormDescription>{description}</FormDescription>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t\t</FormItem>\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<FormItem\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\ttype === \"checkbox\" &&\n\t\t\t\t\t\t\t\t\"flex flex-row items-start space-y-0 space-x-3 rounded-md border p-4\",\n\t\t\t\t\t\t\tisCheckboxDefault && \"border-none p-0\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{type !== \"checkbox\" && type !== \"switch\" && (\n\t\t\t\t\t\t\t<FormLabel htmlFor={name}>\n\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t{label && required && (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName=\"text-destructive\"\n\t\t\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\t\t\tfloat: \"none\",\n\t\t\t\t\t\t\t\t\t\t\twidth: \"auto\",\n\t\t\t\t\t\t\t\t\t\t\tmarginRight: 0,\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: 0,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t*\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<span className={!label ? \"text-transparent\" : \"\"}>:</span>\n\t\t\t\t\t\t\t</FormLabel>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t<div className={cn(inlineElement && \"flex w-full items-center gap-2\")}>\n\t\t\t\t\t\t\t<div className={cn(inlineElement && \"min-w-0 flex-1\")}>\n\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t{(() => {\n\t\t\t\t\t\t\t\t\t\tswitch (type) {\n\t\t\t\t\t\t\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\t\t\t\t\t\tcase \"email\":\n\t\t\t\t\t\t\t\t\t\t\tcase \"url\":\n\t\t\t\t\t\t\t\t\t\t\tcase \"tel\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"relative\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={maxLength}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={(field.value as string) || \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisError ? styleInputError : \"\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tendAdornment && \"pr-20\",\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{endAdornment && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"text-muted-foreground pointer-events-none absolute top-1/2 right-3 -translate-y-1/2 text-xs\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{endAdornment(field.value)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"file\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<InputFile\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={String(name)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname={String(name)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst file = e.target.files?.[0] || null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(file);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taccept={fileConfig?.accept}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisError={isError}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"textarea\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Textarea\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"min-h-20\", isError && styleInputError)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={(field.value as string) || \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={maxLength}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"number\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<NumericFormat\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustomInput={Input}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdecimalSeparator=\",\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthousandSeparator=\".\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdecimalScale={decimalScale ?? 7}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={(values) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (values.value === \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(values.floatValue);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"h-9\", isError && styleInputError)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"currency\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<NumericFormat\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustomInput={Input}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdecimalSeparator=\",\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthousandSeparator=\".\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdecimalScale={decimalScale ?? 2}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={(values) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (values.value === \"\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(values.floatValue);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tprefix={prefix ?? \"R$ \"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"h-9\", isError && styleInputError)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"pattern\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<PatternFormat\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcustomInput={Input}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tformat={patternFormat || \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmask={mask || \"_\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={(field.value as string) || \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={(values) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(values.value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={isError ? styleInputError : \"\"}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"select\": {\n\t\t\t\t\t\t\t\t\t\t\t\tconst selectValue = String(field.value || \"\");\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Select\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={selectValue}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclearable={config.selectConfig?.clearable ?? true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SelectTrigger\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"w-full\", isError && styleInputError)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SelectValue placeholder={placeholder || \"Selecione\"} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SelectContent className=\"max-h-75 overflow-x-hidden overflow-y-auto\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{options?.map((opt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst val = typeof opt === \"object\" ? String(opt.value) : opt;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst lab = typeof opt === \"object\" ? opt.label : opt;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<SelectItem key={val} value={val}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{lab}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</SelectContent>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</Select>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"date\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<CalendarPopover\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdate={field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetDate={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisableFuture={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisableWeekends={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"w-full\", isError && styleInputError)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"date-picker\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DatePicker\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdate={field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetDate={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"w-full\", isError && styleInputError)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"checkbox\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={!!field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonCheckedChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"space-y-1 leading-none\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FormLabel htmlFor={name}>{label}</FormLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{description && !isError && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FormDescription>{description}</FormDescription>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"switch\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-center justify-between\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<FormLabel htmlFor={name}>{label}</FormLabel>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={!!field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonCheckedChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"radio\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<RadioGroup\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={String(field.value ?? \"\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"flex flex-col gap-2\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled ?? false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{(radioOptions ?? [])?.map((opt) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst radioId = `${String(name)}-${opt.value}`;\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div key={opt.value} className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<RadioGroupItem value={opt.value} id={radioId} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Label htmlFor={radioId}>{opt.label}</Label>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</RadioGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"slider\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Slider\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={[Number(field.value ?? sliderRange?.min ?? 0)]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={(vals: number[]) => field.onChange(vals[0])}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin={sliderRange?.min ?? 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={sliderRange?.max ?? 100}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstep={sliderRange?.step ?? 1}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{typeof field.value === \"number\" && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"text-muted-foreground text-xs\">Valor: {field.value}</p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"otp\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<InputOTP\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={otpLength ?? 6}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={String(field.value ?? \"\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={field.onChange}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<InputOTPGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{Array.from({ length: otpLength ?? 6 }, (_, i) => ({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid: `${baseId}-otp-${i}`,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex: i,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})).map((slot) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<InputOTPSlot key={slot.id} index={slot.index} />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</InputOTPGroup>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</InputOTP>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"toggle\":\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Toggle\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tpressed={!!field.value}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonPressedChange={(pressed: boolean) => field.onChange(pressed)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(isError && styleInputError)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</Toggle>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"autocomplete\": {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!autocompleteConfig || !form) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<AutocompleteFieldWrapper\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield={field}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tform={form}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tautocompleteConfig={autocompleteConfig}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisError={isError}\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"combobox\": {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!comboboxConfig) return null;\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div tabIndex={-1} className=\"outline-none\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<Combobox\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titems={comboboxConfig.items}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={String(field.value ?? \"\")}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={(val) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (comboboxConfig.valueType === \"number\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(val !== \"\" ? Number(val) : null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(val || null);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchPlaceholder={comboboxConfig.searchPlaceholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\temptyMessage={comboboxConfig.emptyMessage}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgroupHeading={comboboxConfig.groupHeading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnormalizeSearch={comboboxConfig.normalizeSearch}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidthClassName=\"w-full\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(isError && styleInputError)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"dateRange\": {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div tabIndex={-1} className=\"outline-none\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<CalendarRange\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnumberOfMonths={2}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={field.value as DateRange | undefined}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={(value: DateRange | undefined | null) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (form) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tform.trigger([name]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\"h-9 w-full\", isError && styleInputError)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled || dateConfig?.disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{...dateConfig}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"numberRange\": {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"flex gap-2\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<NumericFormat\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Mínimo\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.value as {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin?: number | null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax?: number | null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)?.min ?? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tallowNegative={allowNegative ?? true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tallowLeadingZeros={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={undefined}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdecimalSeparator=\",\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthousandSeparator=\".\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdecimalScale={decimalScale ?? 8}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfixedDecimalScale={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={(values) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst numericValue = values.floatValue ?? null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...((field.value as {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin?: number | null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax?: number | null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}) ?? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin: null,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax: null,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin: numericValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={styleInput}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<NumericFormat\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Máximo\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.value as {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin?: number | null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax?: number | null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)?.max ?? \"\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tallowNegative={allowNegative ?? true}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tallowLeadingZeros={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxLength={undefined}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdecimalSeparator=\",\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthousandSeparator=\".\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdecimalScale={decimalScale ?? 8}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfixedDecimalScale={false}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={(values) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst numericValue = values.floatValue ?? null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t...((field.value as {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin?: number | null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax?: number | null;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}) ?? {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmin: null,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax: null,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax: numericValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={styleInput}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tcase \"multiselect\": {\n\t\t\t\t\t\t\t\t\t\t\t\tconst multiSelectOptions =\n\t\t\t\t\t\t\t\t\t\t\t\t\titems?.map((item) => ({\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue: item,\n\t\t\t\t\t\t\t\t\t\t\t\t\t})) ||\n\t\t\t\t\t\t\t\t\t\t\t\t\toptions?.map((opt) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttypeof opt === \"string\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? { label: opt, value: opt }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: { label: opt.label, value: String(opt.value) },\n\t\t\t\t\t\t\t\t\t\t\t\t\t) ||\n\t\t\t\t\t\t\t\t\t\t\t\t\t[];\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst typedValue = Array.isArray(field.value)\n\t\t\t\t\t\t\t\t\t\t\t\t\t? field.value.map(String)\n\t\t\t\t\t\t\t\t\t\t\t\t\t: [];\n\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div tabIndex={-1} className=\"outline-none\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<MultiSelect\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid={name}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toptions={multiSelectOptions}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={(val) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (multiSelectConfig?.valueType === \"number\") {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(val.map(Number));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(val);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultValue={typedValue}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={typedValue}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"default\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmaxCount={multiSelectConfig?.maxCount}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsubtle={multiSelectConfig?.subtle}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmessageEmpty={multiSelectConfig?.emptyMessage}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsearchPlaceholder={multiSelectConfig?.searchPlaceholder}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgroupHeading={multiSelectConfig?.groupHeading}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnormalizeSearch={multiSelectConfig?.normalizeSearch}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={isError && styleInputError}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})()}\n\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{inlineElement && <div className=\"shrink-0\">{inlineElement}</div>}\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t{type !== \"checkbox\" && description && !isError && (\n\t\t\t\t\t\t\t<FormDescription>{description}</FormDescription>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t</FormItem>\n\t\t\t\t);\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nBaseFormField.displayName = \"BaseFormField\";\n\nexport interface FormLayoutProps<T extends FieldValues> {\n\tform: UseFormReturn<T>;\n\tsections?: FormSectionConfig<T>[];\n\tonSubmit?: (values: T) => void;\n\tonError?: (errors: any) => void;\n\tformId?: string;\n\ttitle?: string;\n\tdescription?: string;\n\theaderContent?: React.ReactNode;\n\treadOnly?: boolean;\n\tformRef?: React.RefObject<HTMLFormElement | null>;\n\tchildren?: React.ReactNode;\n\tstepNavigator?: React.ReactNode;\n}\n\nexport function FormLayout<T extends FieldValues>({\n\tform,\n\tsections,\n\tonSubmit,\n\tonError,\n\tformId,\n\ttitle,\n\tdescription,\n\theaderContent,\n\treadOnly = false,\n\tformRef,\n\tchildren,\n\tstepNavigator,\n}: FormLayoutProps<T>) {\n\tconst getColSpanClass = (cols?: number) => {\n\t\tif (!cols || cols === 1) return \"col-span-12 md:col-span-6 xl:col-span-4\";\n\t\tif (cols === 2) return \"col-span-12 md:col-span-12 xl:col-span-8\";\n\t\tif (cols === 3) return \"col-span-12\";\n\t\tif (cols === 6) return \"col-span-12 2xl:col-span-6\";\n\t\treturn \"col-span-12\";\n\t};\n\n\treturn (\n\t\t<Form {...form}>\n\t\t\t{onSubmit ? (\n\t\t\t\t<form\n\t\t\t\t\tonSubmit={form.handleSubmit(onSubmit, onError)}\n\t\t\t\t\tid={formId}\n\t\t\t\t\tref={formRef as React.RefObject<HTMLFormElement>}\n\t\t\t\t\tclassName=\"relative space-y-8\"\n\t\t\t\t>\n\t\t\t\t\t{(title || description) && (\n\t\t\t\t\t\t<div className=\"mb-6 space-y-2\">\n\t\t\t\t\t\t\t<div className=\"flex items-start justify-between\">\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t{title && <h2 className=\"text-xl font-semibold tracking-tight\">{title}</h2>}\n\t\t\t\t\t\t\t\t\t{description && <p className=\"text-muted-foreground text-sm\">{description}</p>}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{headerContent}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{children}\n\t\t\t\t\t{sections?.map((section, idx) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={section.title ? `${section.title}-${idx}` : `section-${idx}`}\n\t\t\t\t\t\t\tclassName=\"space-y-4\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{(section.title || section.description) && (\n\t\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t{section.title && <h3>{section.title}</h3>}\n\t\t\t\t\t\t\t\t\t<Separator className=\"flex-1\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<div className={cn(\"grid grid-cols-12\", readOnly ? \"gap-2\" : \"gap-4\")}>\n\t\t\t\t\t\t\t\t{section.fields.map((config) => (\n\t\t\t\t\t\t\t\t\t<div key={String(config.name)} className={getColSpanClass(config.cols)}>\n\t\t\t\t\t\t\t\t\t\t<BaseFormField\n\t\t\t\t\t\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t\t\t\t\t\t\tform={form}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t\t{stepNavigator}\n\t\t\t\t</form>\n\t\t\t) : (\n\t\t\t\t<div id={formId} className=\"relative space-y-8 px-1\">\n\t\t\t\t\t{children}\n\t\t\t\t\t{sections?.map((section, idx) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={section.title ? `${section.title}-${idx}` : `section-${idx}`}\n\t\t\t\t\t\t\tclassName=\"space-y-4\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{(section.title || section.description) && (\n\t\t\t\t\t\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t{section.title && <h3>{section.title}</h3>}\n\t\t\t\t\t\t\t\t\t<Separator className=\"flex-1\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<div className={cn(\"grid grid-cols-12\", readOnly ? \"gap-2\" : \"gap-4\")}>\n\t\t\t\t\t\t\t\t{section.fields.map((config) => (\n\t\t\t\t\t\t\t\t\t<div key={String(config.name)} className={getColSpanClass(config.cols)}>\n\t\t\t\t\t\t\t\t\t\t<BaseFormField\n\t\t\t\t\t\t\t\t\t\t\tconfig={config}\n\t\t\t\t\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\t\t\t\t\treadOnly={readOnly}\n\t\t\t\t\t\t\t\t\t\t\tform={form}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t))}\n\t\t\t\t\t{stepNavigator}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</Form>\n\t);\n}\n\nFormLayout.displayName = \"FormLayout\";\n"],"names":["formatDate","date","undefined","formatDateToBrazilian","formatCNPJ","cnpj","cleaned","replace","length","slice","formatCurrency","value","formatMoney","currency","minimumFractionDigits","maximumFractionDigits","AutocompleteFieldWrapper","field","form","autocompleteConfig","placeholder","disabled","isError","open","setOpen","useState","selectedOption","setSelectedOption","selectedOptionRef","useRef","getOptionLabel","option","label","String","id","getOptionKey","getOptionValue","useEffect","current","currentValue","newValue","fetchOptions","isNumericValue","searchTerm","then","options","found","find","opt","toLowerCase","includes","catch","AutoComplete","onChange","onChangeCallback","searchPlaceholder","onOpenChange","messageEmpty","clearable","className","cn","styleInputError","BaseFormField","config","control","readOnly","baseId","useId","name","type","description","required","items","allowNegative","decimalScale","prefix","radioOptions","otpLength","sliderRange","format","patternFormat","mask","comboboxConfig","inlineElement","render","customRender","maxLength","endAdornment","multiSelectConfig","dateConfig","fileConfig","isCheckboxDefault","formatReadOnlyValue","fieldType","toLocaleString","optValue","range","minStr","min","maxStr","max","from","to","Array","isArray","join","valStr","FormField","ListItem","title","fieldState","invalid","FormItem","FormLabel","htmlFor","span","style","float","width","marginRight","marginTop","div","FormControl","FormDescription","FormMessage","Input","InputFile","e","file","target","files","accept","Textarea","NumericFormat","customInput","decimalSeparator","thousandSeparator","onValueChange","values","floatValue","PatternFormat","selectValue","Select","selectConfig","SelectTrigger","SelectValue","SelectContent","map","val","lab","SelectItem","key","CalendarPopover","setDate","disableFuture","disableWeekends","DatePicker","Checkbox","checked","onCheckedChange","Switch","RadioGroup","radioId","RadioGroupItem","Label","Slider","Number","vals","step","p","InputOTP","InputOTPGroup","_","i","index","slot","InputOTPSlot","Toggle","pressed","onPressedChange","tabIndex","Combobox","valueType","emptyMessage","groupHeading","normalizeSearch","widthClassName","CalendarRange","numberOfMonths","setTimeout","trigger","allowLeadingZeros","fixedDecimalScale","numericValue","styleInput","multiSelectOptions","item","typedValue","MultiSelect","defaultValue","variant","maxCount","subtle","displayName","FormLayout","sections","onSubmit","onError","formId","headerContent","formRef","children","stepNavigator","getColSpanClass","cols","Form","handleSubmit","ref","h2","section","idx","h3","Separator","fields"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;;;;IAKO,SAASA,UAAAA,CAAWC,IAA+B,EAAA;IACzD,IAAI,CAACA,MAAM,OAAOC,SAAAA;AAClB,IAAA,OAAOC,qBAAAA,CAAsBF,IAAAA,CAAAA;AAC9B;AAEA;;;;IAKO,SAASG,UAAAA,CAAWC,IAA+B,EAAA;IACzD,IAAI,CAACA,MAAM,OAAOH,SAAAA;;AAGlB,IAAA,MAAMI,OAAAA,GAAUD,IAAAA,CAAKE,OAAO,CAAC,KAAA,EAAO,EAAA,CAAA;;IAGpC,IAAID,OAAAA,CAAQE,MAAM,KAAK,EAAA,EAAI;;QAE1B,OAAOH,IAAAA;AACR,IAAA;;AAGA,IAAA,OAAO,CAAA,EAAGC,OAAAA,CAAQG,KAAK,CAAC,GAAG,CAAA,CAAA,CAAG,CAAC,EAAEH,OAAAA,CAAQG,KAAK,CAAC,CAAA,EAAG,CAAA,CAAA,CAAG,CAAC,EAAEH,OAAAA,CAAQG,KAAK,CAAC,CAAA,EAAG,CAAA,CAAA,CAAG,CAAC,EAAEH,QAAQG,KAAK,CAAC,CAAA,EAAG,EAAA,CAAA,CAAI,CAAC,EAAEH,OAAAA,CAAQG,KAAK,CAAC,IAAI,EAAA,CAAA,CAAA,CAAK;AAC/H;AAEA;;;;IAKO,SAASC,cAAAA,CAAeC,KAAgC,EAAA;AAC9D,IAAA,IAAIA,KAAAA,KAAU,IAAA,IAAQA,KAAAA,KAAUT,SAAAA,EAAW,OAAOA,SAAAA;AAClD,IAAA,OAAOU,WAAAA,CAAY;AAClBD,QAAAA,KAAAA;QACAE,QAAAA,EAAU,KAAA;QACVC,qBAAAA,EAAuB,CAAA;QACvBC,qBAAAA,EAAuB;AACxB,KAAA,CAAA;AACD;;ACsGA,SAASC,wBAAAA,CAAgD,EACxDC,KAAK,EACLC,IAAI,EACJC,kBAAkB,EAClBC,WAAW,EACXC,QAAQ,EACRC,OAAO,EAQP,EAAA;AACA,IAAA,MAAM,CAACC,IAAAA,EAAMC,OAAAA,CAAQ,GAAGC,QAAAA,CAAS,KAAA,CAAA;AACjC,IAAA,MAAM,CAACC,cAAAA,EAAgBC,iBAAAA,CAAkB,GAAGF,QAAAA,CAAc,IAAA,CAAA;AAC1D,IAAA,MAAMG,oBAAoBC,MAAAA,CAAY,IAAA,CAAA;AAEtC,IAAA,MAAMC,cAAAA,GACLX,kBAAAA,CAAmBW,cAAc,KAAK,CAACC,MAAAA,GAAgBA,MAAAA,CAAOC,KAAK,IAAIC,MAAAA,CAAOF,MAAAA,CAAOG,EAAE,CAAA,CAAA;IACxF,MAAMC,YAAAA,GAAehB,mBAAmBgB,YAAY,KAAK,CAACJ,MAAAA,GAAgBA,MAAAA,CAAOG,EAAE,CAAD;IAClF,MAAME,cAAAA,GAAiBjB,mBAAmBiB,cAAc,KAAK,CAACL,MAAAA,GAAgBA,MAAAA,CAAOG,EAAE,CAAD;IAEtFG,SAAAA,CAAU,IAAA;AACT,QAAA,IAAIT,iBAAAA,CAAkBU,OAAO,IAAIrB,KAAAA,CAAMN,KAAK,EAAE;YAC7C,MAAM4B,YAAAA,GAAeH,cAAAA,CAAeR,iBAAAA,CAAkBU,OAAO,CAAA;AAC7D,YAAA,MAAME,QAAAA,GACL,OAAOvB,KAAAA,CAAMN,KAAK,KAAK,QAAA,IAAYM,KAAAA,CAAMN,KAAK,KAAK,OAChDyB,cAAAA,CAAenB,KAAAA,CAAMN,KAAK,CAAA,GAC1BM,MAAMN,KAAK;AAEf,YAAA,IAAI4B,iBAAiBC,QAAAA,EAAU;AAC9B,gBAAA;AACD,YAAA;AACD,QAAA;QAEA,IAAIvB,KAAAA,CAAMN,KAAK,IAAI,OAAOM,KAAAA,CAAMN,KAAK,KAAK,QAAA,IAAYM,KAAAA,CAAMN,KAAK,KAAK,IAAA,EAAM;YAC3EiB,iBAAAA,CAAkBU,OAAO,GAAGrB,KAAAA,CAAMN,KAAK;AACvCgB,YAAAA,iBAAAA,CAAkBV,MAAMN,KAAK,CAAA;AAC7B,YAAA;AACD,QAAA;AAEA,QAAA,IAAIM,KAAAA,CAAMN,KAAK,IAAIQ,kBAAAA,CAAmBsB,YAAY,EAAE;AACnD,YAAA,MAAMC,cAAAA,GAAiB,OAAOzB,KAAAA,CAAMN,KAAK,KAAK,QAAA;AAC9C,YAAA,MAAMgC,UAAAA,GAAaD,cAAAA,GAAiB,EAAA,GAAKzB,KAAAA,CAAMN,KAAK;AAEpDQ,YAAAA,kBAAAA,CACEsB,YAAY,CAACE,UAAAA,CAAAA,CACbC,IAAI,CAAC,CAACC,OAAAA,GAAAA;AACN,gBAAA,IAAIC,KAAAA,GAAa,IAAA;AAEjB,gBAAA,IAAIJ,cAAAA,EAAgB;oBACnBI,KAAAA,GAAQD,OAAAA,CAAQE,IAAI,CAAC,CAACC,MAAQb,YAAAA,CAAaa,GAAAA,CAAAA,KAAS/B,MAAMN,KAAK,CAAA;gBAChE,CAAA,MAAO;oBACNmC,KAAAA,GAAQD,OAAAA,CAAQE,IAAI,CAAC,CAACC,MAAQZ,cAAAA,CAAeY,GAAAA,CAAAA,KAAS/B,MAAMN,KAAK,CAAA;AAEjE,oBAAA,IAAI,CAACmC,KAAAA,EAAO;wBACXA,KAAAA,GAAQD,OAAAA,CAAQE,IAAI,CAAC,CAACC,GAAAA,GAAAA;AACrB,4BAAA,MAAMhB,QAAQF,cAAAA,CAAekB,GAAAA,CAAAA;AAC7B,4BAAA,OACChB,KAAAA,KAAUf,KAAAA,CAAMN,KAAK,IAAIqB,KAAAA,CAAMiB,WAAW,EAAA,CAAGC,QAAQ,CAACjC,KAAAA,CAAMN,KAAK,CAACsC,WAAW,EAAA,CAAA;AAE/E,wBAAA,CAAA,CAAA;AACD,oBAAA;AACD,gBAAA;AAEA,gBAAA,IAAIH,KAAAA,EAAO;AACVlB,oBAAAA,iBAAAA,CAAkBU,OAAO,GAAGQ,KAAAA;oBAC5BnB,iBAAAA,CAAkBmB,KAAAA,CAAAA;gBACnB,CAAA,MAAO;AACNlB,oBAAAA,iBAAAA,CAAkBU,OAAO,GAAG,IAAA;oBAC5BX,iBAAAA,CAAkB,IAAA,CAAA;AACnB,gBAAA;AACD,YAAA,CAAA,CAAA,CACCwB,KAAK,CAAC,IAAA;AACNvB,gBAAAA,iBAAAA,CAAkBU,OAAO,GAAG,IAAA;gBAC5BX,iBAAAA,CAAkB,IAAA,CAAA;AACnB,YAAA,CAAA,CAAA;AACF,QAAA,CAAA,MAAO,IAAI,CAACV,KAAAA,CAAMN,KAAK,EAAE;AACxBiB,YAAAA,iBAAAA,CAAkBU,OAAO,GAAG,IAAA;YAC5BX,iBAAAA,CAAkB,IAAA,CAAA;AACnB,QAAA;IACD,CAAA,EAAG;AAACV,QAAAA,KAAAA,CAAMN,KAAK;AAAEQ,QAAAA,kBAAAA,CAAmBsB,YAAY;AAAEL,QAAAA,cAAAA;AAAgBN,QAAAA,cAAAA;AAAgBK,QAAAA;AAAa,KAAA,CAAA;AAE/F,IAAA,qBACC,KAAA,CAAA,aAAA,CAACiB,YAAAA,EAAAA;QACAzC,KAAAA,EAAOe,cAAAA;AACP2B,QAAAA,QAAAA,EAAU,CAACtB,MAAAA,GAAAA;YACV,MAAMpB,KAAAA,GAAQoB,MAAAA,GAASK,cAAAA,CAAeL,MAAAA,CAAAA,GAAU,IAAA;AAChDd,YAAAA,KAAAA,CAAMoC,QAAQ,CAAC1C,KAAAA,CAAAA;AACfiB,YAAAA,iBAAAA,CAAkBU,OAAO,GAAGP,MAAAA;YAC5BJ,iBAAAA,CAAkBI,MAAAA,CAAAA;YAClB,IAAIA,MAAAA,IAAUZ,kBAAAA,CAAmBmC,gBAAgB,EAAE;gBAClDnC,kBAAAA,CAAmBmC,gBAAgB,CAACvB,MAAAA,EAAQb,IAAAA,CAAAA;AAC7C,YAAA;AACD,QAAA,CAAA;AACAE,QAAAA,WAAAA,EAAaA,WAAAA,IAAe,uBAAA;QAC5BmC,iBAAAA,EAAmBpC,kBAAAA,CAAmBoC,iBAAiB,IAAI,WAAA;QAC3DhC,IAAAA,EAAMA,IAAAA;QACNiC,YAAAA,EAAchC,OAAAA;AACdiB,QAAAA,YAAAA,EAActB,mBAAmBsB,YAAY;QAC7CpB,QAAAA,EAAUA,QAAAA;QACVoC,YAAAA,EAActC,kBAAAA,CAAmBsC,YAAY,IAAI,gCAAA;QACjD3B,cAAAA,EAAgBA,cAAAA;QAChBK,YAAAA,EAAcA,YAAAA;QACduB,SAAAA,EAAWvC,kBAAAA,CAAmBuC,SAAS,IAAI,IAAA;AAC3CC,QAAAA,SAAAA,EAAWC,EAAAA,CACV,iTAAA,EACAzC,kBAAAA,EAAoBwC,SAAAA,EACpBrC,OAAAA,IAAWuC,eAAAA;;AAIf;AAEO,SAASC,aAAAA,CAAqC,EACpDC,MAAM,EACNC,OAAO,EACPC,QAAAA,GAAW,KAAK,EAChB/C,IAAI,EACmB,EAAA;AACvB,IAAA,MAAMgD,MAAAA,GAASC,KAAAA,EAAAA;IACf,MAAM,EACLC,IAAI,EACJpC,KAAK,EACLqC,IAAI,EACJjD,WAAW,EACXkD,WAAW,EACXC,QAAQ,EACR1B,OAAO,EACP2B,KAAK,EACLC,aAAa,EACbC,YAAY,EACZrD,QAAQ,EACRsD,MAAM,EACNC,YAAY,EACZC,SAAS,EACTC,WAAW,EACXC,MAAAA,EAAQC,aAAa,EACrBC,IAAI,EACJ9D,kBAAkB,EAClB+D,cAAc,EACdC,aAAa,EACbC,MAAAA,EAAQC,YAAY,EACpBC,SAAS,EACTC,YAAY,EACZC,iBAAiB,EACjBC,UAAU,EACVC,UAAU,EACVC,iBAAiB,EACjB,GAAG5B,MAAAA;IAEJ,MAAM6B,mBAAAA,GAAsB,CAACjF,KAAAA,EAAgBkF,SAAAA,GAAAA;AAC5C,QAAA,IAAIlF,KAAAA,KAAU,IAAA,IAAQA,KAAAA,KAAUT,SAAAA,IAAaS,UAAU,EAAA,EAAI;YAC1D,OAAOT,SAAAA;AACR,QAAA;QAEA,OAAQ2F,SAAAA;YACP,KAAK,MAAA;YACL,KAAK,aAAA;AACJ,gBAAA,OAAO7F,UAAAA,CAAWW,KAAAA,CAAAA;YACnB,KAAK,UAAA;AACJ,gBAAA,OAAOD,cAAAA,CAAeC,KAAAA,CAAAA;YACvB,KAAK,QAAA;AACJ,gBAAA,OAAO,OAAOA,KAAAA,KAAU,QAAA,GACrBA,KAAAA,CAAMmF,cAAc,CAAC,OAAA,EAAS;AAC9BhF,oBAAAA,qBAAAA,EAAuB4D,YAAAA,IAAgB,CAAA;AACvC3D,oBAAAA,qBAAAA,EAAuB2D,YAAAA,IAAgB;AACxC,iBAAA,CAAA,GACCzC,MAAAA,CAAOtB,KAAAA,CAAAA;YACX,KAAK,SAAA;gBACJ,IAAIqE,aAAAA,IAAiB,OAAOrE,KAAAA,KAAU,QAAA,EAAU;oBAC/C,IAAIqE,aAAAA,CAAc9B,QAAQ,CAAC,oBAAA,CAAA,EAAuB;AACjD,wBAAA,OAAO9C,UAAAA,CAAWO,KAAAA,CAAAA;AACnB,oBAAA;oBACA,OAAOA,KAAAA;AACR,gBAAA;AACA,gBAAA,OAAOsB,MAAAA,CAAOtB,KAAAA,CAAAA;YACf,KAAK,QAAA;AACJ,gBAAA,IAAIkC,OAAAA,IAAWA,OAAAA,CAAQrC,MAAM,GAAG,CAAA,EAAG;AAClC,oBAAA,MAAMuB,MAAAA,GAASc,OAAAA,CAAQE,IAAI,CAAC,CAACC,GAAAA,GAAAA;AAC5B,wBAAA,MAAM+C,WAAW,OAAO/C,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,CAAIrC,KAAK,GAAGqC,GAAAA;wBACvD,OAAOf,MAAAA,CAAO8D,cAAc9D,MAAAA,CAAOtB,KAAAA,CAAAA;AACpC,oBAAA,CAAA,CAAA;AACA,oBAAA,IAAIoB,MAAAA,EAAQ;AACX,wBAAA,OAAO,OAAOA,MAAAA,KAAW,QAAA,GAAWA,MAAAA,CAAOC,KAAK,GAAGD,MAAAA;AACpD,oBAAA;AACD,gBAAA;AACA,gBAAA,OAAOE,MAAAA,CAAOtB,KAAAA,CAAAA;YACf,KAAK,UAAA;YACL,KAAK,QAAA;YACL,KAAK,QAAA;AACJ,gBAAA,OAAOA,QAAQ,KAAA,GAAQ,KAAA;YACxB,KAAK,OAAA;AACJ,gBAAA,IAAIiE,YAAAA,EAAc;oBACjB,MAAM7C,MAAAA,GAAS6C,YAAAA,CAAa7B,IAAI,CAAC,CAACC,MAAQf,MAAAA,CAAOe,GAAAA,CAAIrC,KAAK,CAAA,KAAMsB,MAAAA,CAAOtB,KAAAA,CAAAA,CAAAA;AACvE,oBAAA,OAAOoB,MAAAA,GAASA,MAAAA,CAAOC,KAAK,GAAGC,MAAAA,CAAOtB,KAAAA,CAAAA;AACvC,gBAAA;AACA,gBAAA,OAAOsB,MAAAA,CAAOtB,KAAAA,CAAAA;YACf,KAAK,QAAA;AACJ,gBAAA,OAAO,OAAOA,KAAAA,KAAU,QAAA,GAAWsB,MAAAA,CAAOtB,KAAAA,CAAAA,GAAST,SAAAA;YACpD,KAAK,aAAA;AAAe,gBAAA;oBACnB,IAAI,OAAOS,KAAAA,KAAU,QAAA,IAAYA,KAAAA,KAAU,IAAA,KAAS,KAAA,IAASA,KAAAA,IAAS,KAAA,IAASA,KAAI,CAAA,EAAI;AACtF,wBAAA,MAAMqF,KAAAA,GAAQrF,KAAAA;AACd,wBAAA,MAAMsF,MAAAA,GACLD,KAAAA,CAAME,GAAG,KAAK,QAAQF,KAAAA,CAAME,GAAG,KAAKhG,SAAAA,GACjC8F,KAAAA,CAAME,GAAG,CAACJ,cAAc,CAAC,OAAA,EAAS;AAClChF,4BAAAA,qBAAAA,EAAuB4D,YAAAA,IAAgB,CAAA;AACvC3D,4BAAAA,qBAAAA,EAAuB2D,YAAAA,IAAgB;yBACxC,CAAA,GACC,EAAA;AACJ,wBAAA,MAAMyB,MAAAA,GACLH,KAAAA,CAAMI,GAAG,KAAK,QAAQJ,KAAAA,CAAMI,GAAG,KAAKlG,SAAAA,GACjC8F,KAAAA,CAAMI,GAAG,CAACN,cAAc,CAAC,OAAA,EAAS;AAClChF,4BAAAA,qBAAAA,EAAuB4D,YAAAA,IAAgB,CAAA;AACvC3D,4BAAAA,qBAAAA,EAAuB2D,YAAAA,IAAgB;yBACxC,CAAA,GACC,EAAA;AACJ,wBAAA,IAAIuB,UAAUE,MAAAA,EAAQ;AACrB,4BAAA,OAAO,CAAA,EAAGF,MAAAA,CAAO,GAAG,EAAEE,MAAAA,CAAAA,CAAQ;AAC/B,wBAAA;AACA,wBAAA,IAAIF,MAAAA,EAAQ,OAAO,CAAC,KAAK,EAAEA,MAAAA,CAAAA,CAAQ;AACnC,wBAAA,IAAIE,MAAAA,EAAQ,OAAO,CAAC,KAAK,EAAEA,MAAAA,CAAAA,CAAQ;AACpC,oBAAA;oBACA,OAAOjG,SAAAA;AACR,gBAAA;YACA,KAAK,WAAA;AAAa,gBAAA;AACjB,oBAAA,IAAI,OAAOS,KAAAA,KAAU,QAAA,IAAYA,KAAAA,KAAU,IAAA,IAAQ,UAAUA,KAAAA,EAAO;AACnE,wBAAA,MAAMqF,KAAAA,GAAQrF,KAAAA;AACd,wBAAA,IAAIqF,KAAAA,CAAMK,IAAI,IAAIL,KAAAA,CAAMM,EAAE,EAAE;4BAC3B,OAAO,CAAA,EAAGtG,UAAAA,CAAWgG,KAAAA,CAAMK,IAAI,CAAA,CAAE,GAAG,EAAErG,UAAAA,CAAWgG,KAAAA,CAAMM,EAAE,CAAA,CAAA,CAAG;AAC7D,wBAAA;wBACA,IAAIN,KAAAA,CAAMK,IAAI,EAAE;AACf,4BAAA,OAAO,CAAC,IAAI,EAAErG,UAAAA,CAAWgG,KAAAA,CAAMK,IAAI,CAAA,CAAA,CAAG;AACvC,wBAAA;AACD,oBAAA;oBACA,OAAOnG,SAAAA;AACR,gBAAA;YACA,KAAK,aAAA;AAAe,gBAAA;AACnB,oBAAA,IAAIqG,MAAMC,OAAO,CAAC7F,UAAUA,KAAAA,CAAMH,MAAM,GAAG,CAAA,EAAG;wBAC7C,OAAOG,KAAAA,CAAM8F,IAAI,CAAC,IAAA,CAAA;AACnB,oBAAA;oBACA,OAAOvG,SAAAA;AACR,gBAAA;YACA,KAAK,UAAA;AAAY,gBAAA;AAChB,oBAAA,IAAI,OAAOS,KAAAA,KAAU,QAAA,IAAY,OAAOA,UAAU,QAAA,EAAU;AAC3D,wBAAA,MAAM+F,SAASzE,MAAAA,CAAOtB,KAAAA,CAAAA;wBACtB,IAAIoD,MAAAA,CAAOmB,cAAc,EAAEV,KAAAA,EAAO;AACjC,4BAAA,MAAMzC,MAAAA,GAASgC,MAAAA,CAAOmB,cAAc,CAACV,KAAK,CAACzB,IAAI,CAAC,CAACC,GAAAA,GAAQf,MAAAA,CAAOe,GAAAA,CAAIrC,KAAK,CAAA,KAAM+F,MAAAA,CAAAA;4BAC/E,OAAO3E,MAAAA,GAASA,MAAAA,CAAOC,KAAK,GAAG0E,MAAAA;AAChC,wBAAA;wBACA,OAAOA,MAAAA;AACR,oBAAA;AACA,oBAAA,OAAOzE,MAAAA,CAAOtB,KAAAA,CAAAA;AACf,gBAAA;AACA,YAAA;AACC,gBAAA,OAAOsB,MAAAA,CAAOtB,KAAAA,CAAAA;AAChB;AACD,IAAA,CAAA;AAEA,IAAA,IAAIsD,QAAAA,EAAU;AACb,QAAA,qBACC,KAAA,CAAA,aAAA,CAAC0C,SAAAA,EAAAA;YACA3C,OAAAA,EAASA,OAAAA;YACTI,IAAAA,EAAMA,IAAAA;AACNgB,YAAAA,MAAAA,EAAQ,CAAC,EAAEnE,KAAK,EAAO,iBACtB,KAAA,CAAA,aAAA,CAAC2F,QAAAA,EAAAA;AAASC,oBAAAA,KAAAA,EAAO7E,KAAAA,IAAS,EAAA;oBAAIrB,KAAAA,EAAOiF,mBAAAA,CAAoB3E,KAAAA,CAAMN,KAAK,EAAE0D,IAAAA;;;AAI1E,IAAA;AAEA,IAAA,qBACC,KAAA,CAAA,aAAA,CAACsC,SAAAA,EAAAA;QACA3C,OAAAA,EAASA,OAAAA;QACTI,IAAAA,EAAMA,IAAAA;AACNgB,QAAAA,MAAAA,EAAQ,CAAC,EAAEnE,KAAK,EAAE6F,UAAU,EAAO,GAAA;AAClC,YAAA,MAAMxF,UAAUwF,UAAAA,EAAYC,OAAAA;AAE5B,YAAA,IAAI1B,gBAAgBnE,IAAAA,EAAM;AACzB,gBAAA,qBACC,KAAA,CAAA,aAAA,CAAC8F,QAAAA,EAAAA;AACArD,oBAAAA,SAAAA,EAAWC,GACVS,IAAAA,KAAS,UAAA,IACR,qEAAA,EACDA,IAAAA,KAAS,cAAcsB,iBAAAA,IAAqB,iBAAA;mBAG5CtB,IAAAA,KAAS,UAAA,IAAcA,IAAAA,KAAS,QAAA,kBAChC,KAAA,CAAA,aAAA,CAAC4C,SAAAA,EAAAA;oBAAUC,OAAAA,EAAS9C;mBAClBpC,KAAAA,EACAA,KAAAA,IAASuC,0BACT,KAAA,CAAA,aAAA,CAAC4C,MAAAA,EAAAA;oBACAxD,SAAAA,EAAU,kBAAA;oBACVyD,KAAAA,EAAO;wBACNC,KAAAA,EAAO,MAAA;wBACPC,KAAAA,EAAO,MAAA;wBACPC,WAAAA,EAAa,CAAA;wBACbC,SAAAA,EAAW;AACZ;AACA,iBAAA,EAAA,GAAA,CAAA,gBAIF,KAAA,CAAA,aAAA,CAACL,MAAAA,EAAAA;oBAAKxD,SAAAA,EAAW,CAAC3B,QAAQ,kBAAA,GAAqB;AAAI,iBAAA,EAAA,GAAA,CAAA,CAAA,gBAGrD,KAAA,CAAA,aAAA,CAACyF,KAAAA,EAAAA;AAAI9D,oBAAAA,SAAAA,EAAWC,GAAGuB,aAAAA,IAAiB,gCAAA;iCACnC,KAAA,CAAA,aAAA,CAACsC,KAAAA,EAAAA;AAAI9D,oBAAAA,SAAAA,EAAWC,GAAGuB,aAAAA,IAAiB,gBAAA;iCACnC,KAAA,CAAA,aAAA,CAACuC,WAAAA,EAAAA;AAAY/D,oBAAAA,SAAAA,EAAWrC,UAAUuC,eAAAA,GAAkB;mBAClDwB,YAAAA,CAAa;AAAEpE,oBAAAA,KAAAA;AAAOC,oBAAAA;AAAK,iBAAA,CAAA,CAAA,CAAA,EAG7BiE,+BAAiB,KAAA,CAAA,aAAA,CAACsC,KAAAA,EAAAA;oBAAI9D,SAAAA,EAAU;mBAAYwB,aAAAA,CAAAA,CAAAA,EAE7Cd,IAAAA,KAAS,cAAcC,WAAAA,IAAe,CAAChD,yBACvC,KAAA,CAAA,aAAA,CAACqG,eAAAA,EAAAA,IAAAA,EAAiBrD,4BAEnB,KAAA,CAAA,aAAA,CAACsD,WAAAA,EAAAA,IAAAA,CAAAA,CAAAA;AAGJ,YAAA;AAEA,YAAA,qBACC,KAAA,CAAA,aAAA,CAACZ,QAAAA,EAAAA;AACArD,gBAAAA,SAAAA,EAAWC,EAAAA,CACVS,IAAAA,KAAS,UAAA,IACR,qEAAA,EACDsB,iBAAAA,IAAqB,iBAAA;eAGrBtB,IAAAA,KAAS,UAAA,IAAcA,IAAAA,KAAS,QAAA,kBAChC,KAAA,CAAA,aAAA,CAAC4C,SAAAA,EAAAA;gBAAUC,OAAAA,EAAS9C;eAClBpC,KAAAA,EACAA,KAAAA,IAASuC,0BACT,KAAA,CAAA,aAAA,CAAC4C,MAAAA,EAAAA;gBACAxD,SAAAA,EAAU,kBAAA;gBACVyD,KAAAA,EAAO;oBACNC,KAAAA,EAAO,MAAA;oBACPC,KAAAA,EAAO,MAAA;oBACPC,WAAAA,EAAa,CAAA;oBACbC,SAAAA,EAAW;AACZ;AACA,aAAA,EAAA,GAAA,CAAA,gBAIF,KAAA,CAAA,aAAA,CAACL,MAAAA,EAAAA;gBAAKxD,SAAAA,EAAW,CAAC3B,QAAQ,kBAAA,GAAqB;AAAI,aAAA,EAAA,GAAA,CAAA,CAAA,gBAIrD,KAAA,CAAA,aAAA,CAACyF,KAAAA,EAAAA;AAAI9D,gBAAAA,SAAAA,EAAWC,GAAGuB,aAAAA,IAAiB,gCAAA;6BACnC,KAAA,CAAA,aAAA,CAACsC,KAAAA,EAAAA;AAAI9D,gBAAAA,SAAAA,EAAWC,GAAGuB,aAAAA,IAAiB,gBAAA;6BACnC,KAAA,CAAA,aAAA,CAACuC,WAAAA,EAAAA,IAAAA,EACC,CAAC,IAAA;gBACD,OAAQrD,IAAAA;oBACP,KAAK,MAAA;oBACL,KAAK,OAAA;oBACL,KAAK,KAAA;oBACL,KAAK,KAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAACoD,KAAAA,EAAAA;4BAAI9D,SAAAA,EAAU;yCACd,KAAA,CAAA,aAAA,CAACkE,KAAAA,EAAAA;AACC,4BAAA,GAAG5G,KAAK;4BACToD,IAAAA,EAAMA,IAAAA;4BACNjD,WAAAA,EAAaA,WAAAA;4BACbC,QAAAA,EAAUA,QAAAA;4BACViE,SAAAA,EAAWA,SAAAA;4BACX3E,KAAAA,EAAQM,KAAAA,CAAMN,KAAK,IAAe,EAAA;AAClCgD,4BAAAA,SAAAA,EAAWC,EAAAA,CACVtC,OAAAA,GAAUuC,eAAAA,GAAkB,EAAA,EAC5B0B,YAAAA,IAAgB,OAAA;AAGjBA,yBAAAA,CAAAA,EAAAA,YAAAA,kBACA,KAAA,CAAA,aAAA,CAACkC,KAAAA,EAAAA;4BAAI9D,SAAAA,EAAU;AACb4B,yBAAAA,EAAAA,YAAAA,CAAatE,MAAMN,KAAK,CAAA,CAAA,CAAA;oBAM9B,KAAK,MAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAACmH,SAAAA,EAAAA;AACA5F,4BAAAA,EAAAA,EAAID,MAAAA,CAAOmC,IAAAA,CAAAA;AACXA,4BAAAA,IAAAA,EAAMnC,MAAAA,CAAOmC,IAAAA,CAAAA;AACbzD,4BAAAA,KAAAA,EAAOM,MAAMN,KAAK;AAClB0C,4BAAAA,QAAAA,EAAU,CAAC0E,CAAAA,GAAAA;gCACV,MAAMC,IAAAA,GAAOD,EAAEE,MAAM,CAACC,KAAK,GAAG,EAAE,IAAI,IAAA;AACpCjH,gCAAAA,KAAAA,CAAMoC,QAAQ,CAAC2E,IAAAA,CAAAA;AAChB,4BAAA,CAAA;AACAG,4BAAAA,MAAAA,EAAQzC,UAAAA,EAAYyC,MAAAA;4BACpB9G,QAAAA,EAAUA,QAAAA;4BACVC,OAAAA,EAASA,OAAAA;4BACTF,WAAAA,EAAaA;;oBAIhB,KAAK,UAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAACgH,QAAAA,EAAAA;4BACAzE,SAAAA,EAAWC,EAAAA,CAAG,YAAYtC,OAAAA,IAAWuC,eAAAA,CAAAA;AACpC,4BAAA,GAAG5C,KAAK;4BACTG,WAAAA,EAAaA,WAAAA;4BACbC,QAAAA,EAAUA,QAAAA;4BACVV,KAAAA,EAAQM,KAAAA,CAAMN,KAAK,IAAe,EAAA;4BAClC2E,SAAAA,EAAWA;;oBAId,KAAK,QAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAAC+C,aAAAA,EAAAA;4BACAnG,EAAAA,EAAIkC,IAAAA;4BACJkE,WAAAA,EAAaT,KAAAA;4BACbU,gBAAAA,EAAiB,GAAA;4BACjBC,iBAAAA,EAAkB,GAAA;AAClB9D,4BAAAA,YAAAA,EAAcA,YAAAA,IAAgB,CAAA;4BAC9B/D,KAAAA,EAAOM,KAAAA,CAAMN,KAAK,IAAI,EAAA;AACtB8H,4BAAAA,aAAAA,EAAe,CAACC,MAAAA,GAAAA;gCACf,IAAIA,MAAAA,CAAO/H,KAAK,KAAK,EAAA,EAAI;AACxBM,oCAAAA,KAAAA,CAAMoC,QAAQ,CAAC,IAAA,CAAA;gCAChB,CAAA,MAAO;oCACNpC,KAAAA,CAAMoC,QAAQ,CAACqF,MAAAA,CAAOC,UAAU,CAAA;AACjC,gCAAA;AACD,4BAAA,CAAA;4BACAvH,WAAAA,EAAaA,WAAAA;4BACbC,QAAAA,EAAUA,QAAAA;4BACVsC,SAAAA,EAAWC,EAAAA,CAAG,OAAOtC,OAAAA,IAAWuC,eAAAA;;oBAInC,KAAK,UAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAACwE,aAAAA,EAAAA;4BACAnG,EAAAA,EAAIkC,IAAAA;4BACJkE,WAAAA,EAAaT,KAAAA;4BACbU,gBAAAA,EAAiB,GAAA;4BACjBC,iBAAAA,EAAkB,GAAA;AAClB9D,4BAAAA,YAAAA,EAAcA,YAAAA,IAAgB,CAAA;4BAC9B/D,KAAAA,EAAOM,KAAAA,CAAMN,KAAK,IAAI,EAAA;AACtB8H,4BAAAA,aAAAA,EAAe,CAACC,MAAAA,GAAAA;gCACf,IAAIA,MAAAA,CAAO/H,KAAK,KAAK,EAAA,EAAI;AACxBM,oCAAAA,KAAAA,CAAMoC,QAAQ,CAAC,IAAA,CAAA;gCAChB,CAAA,MAAO;oCACNpC,KAAAA,CAAMoC,QAAQ,CAACqF,MAAAA,CAAOC,UAAU,CAAA;AACjC,gCAAA;AACD,4BAAA,CAAA;4BACAvH,WAAAA,EAAaA,WAAAA;4BACbC,QAAAA,EAAUA,QAAAA;AACVsD,4BAAAA,MAAAA,EAAQA,MAAAA,IAAU,KAAA;4BAClBhB,SAAAA,EAAWC,EAAAA,CAAG,OAAOtC,OAAAA,IAAWuC,eAAAA;;oBAInC,KAAK,SAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAAC+E,aAAAA,EAAAA;4BACAN,WAAAA,EAAaT,KAAAA;AACb9C,4BAAAA,MAAAA,EAAQC,aAAAA,IAAiB,EAAA;AACzBC,4BAAAA,IAAAA,EAAMA,IAAAA,IAAQ,GAAA;4BACd7D,WAAAA,EAAaA,WAAAA;4BACbC,QAAAA,EAAUA,QAAAA;4BACVV,KAAAA,EAAQM,KAAAA,CAAMN,KAAK,IAAe,EAAA;AAClC8H,4BAAAA,aAAAA,EAAe,CAACC,MAAAA,GAAAA;gCACfzH,KAAAA,CAAMoC,QAAQ,CAACqF,MAAAA,CAAO/H,KAAK,CAAA;AAC5B,4BAAA,CAAA;AACAgD,4BAAAA,SAAAA,EAAWrC,UAAUuC,eAAAA,GAAkB;;oBAI1C,KAAK,QAAA;AAAU,wBAAA;AACd,4BAAA,MAAMgF,WAAAA,GAAc5G,MAAAA,CAAOhB,KAAAA,CAAMN,KAAK,IAAI,EAAA,CAAA;AAC1C,4BAAA,qBACC,KAAA,CAAA,aAAA,CAACmI,MAAAA,EAAAA;AACAL,gCAAAA,aAAAA,EAAexH,MAAMoC,QAAQ;gCAC7B1C,KAAAA,EAAOkI,WAAAA;gCACPxH,QAAAA,EAAUA,QAAAA;gCACVqC,SAAAA,EAAWK,MAAAA,CAAOgF,YAAY,EAAErF,SAAAA,IAAa;AAE7C,6BAAA,gBAAA,KAAA,CAAA,aAAA,CAACgE,iCACA,KAAA,CAAA,aAAA,CAACsB,aAAAA,EAAAA;gCACA9G,EAAAA,EAAIkC,IAAAA;gCACJT,SAAAA,EAAWC,EAAAA,CAAG,UAAUtC,OAAAA,IAAWuC,eAAAA;6CAEnC,KAAA,CAAA,aAAA,CAACoF,WAAAA,EAAAA;AAAY7H,gCAAAA,WAAAA,EAAaA,WAAAA,IAAe;gDAG3C,KAAA,CAAA,aAAA,CAAC8H,aAAAA,EAAAA;gCAAcvF,SAAAA,EAAU;AACvBd,6BAAAA,EAAAA,OAAAA,EAASsG,IAAI,CAACnG,GAAAA,GAAAA;AACd,gCAAA,MAAMoG,MAAM,OAAOpG,GAAAA,KAAQ,WAAWf,MAAAA,CAAOe,GAAAA,CAAIrC,KAAK,CAAA,GAAIqC,GAAAA;AAC1D,gCAAA,MAAMqG,MAAM,OAAOrG,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,CAAIhB,KAAK,GAAGgB,GAAAA;AAClD,gCAAA,qBACC,KAAA,CAAA,aAAA,CAACsG,UAAAA,EAAAA;oCAAWC,GAAAA,EAAKH,GAAAA;oCAAKzI,KAAAA,EAAOyI;AAC3BC,iCAAAA,EAAAA,GAAAA,CAAAA;AAGJ,4BAAA,CAAA,CAAA,CAAA,CAAA;AAIJ,wBAAA;oBAEA,KAAK,MAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAACG,eAAAA,EAAAA;4BACAtH,EAAAA,EAAIkC,IAAAA;AACJnE,4BAAAA,IAAAA,EAAMgB,MAAMN,KAAK;AACjB8I,4BAAAA,OAAAA,EAASxI,MAAMoC,QAAQ;4BACvBjC,WAAAA,EAAaA,WAAAA;4BACbC,QAAAA,EAAUA,QAAAA;4BACVqI,aAAAA,EAAe,KAAA;4BACfC,eAAAA,EAAiB,KAAA;4BACjBhG,SAAAA,EAAWC,EAAAA,CAAG,UAAUtC,OAAAA,IAAWuC,eAAAA;;oBAItC,KAAK,aAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAAC+F,UAAAA,EAAAA;4BACA1H,EAAAA,EAAIkC,IAAAA;AACJnE,4BAAAA,IAAAA,EAAMgB,MAAMN,KAAK;AACjB8I,4BAAAA,OAAAA,EAASxI,MAAMoC,QAAQ;4BACvBjC,WAAAA,EAAaA,WAAAA;4BACbC,QAAAA,EAAUA,QAAAA;4BACVsC,SAAAA,EAAWC,EAAAA,CAAG,UAAUtC,OAAAA,IAAWuC,eAAAA;;oBAItC,KAAK,UAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAAC4D,KAAAA,EAAAA;4BAAI9D,SAAAA,EAAU;yCACd,KAAA,CAAA,aAAA,CAACkG,QAAAA,EAAAA;4BACAC,OAAAA,EAAS,CAAC,CAAC7I,KAAAA,CAAMN,KAAK;AACtBoJ,4BAAAA,eAAAA,EAAiB9I,MAAMoC,QAAQ;4BAC/BhC,QAAAA,EAAUA,QAAAA;4BACVa,EAAAA,EAAIkC;0CAEL,KAAA,CAAA,aAAA,CAACqD,KAAAA,EAAAA;4BAAI9D,SAAAA,EAAU;yCACd,KAAA,CAAA,aAAA,CAACsD,SAAAA,EAAAA;4BAAUC,OAAAA,EAAS9C;AAAOpC,yBAAAA,EAAAA,KAAAA,CAAAA,EAC1BsC,WAAAA,IAAe,CAAChD,OAAAA,kBAChB,KAAA,CAAA,aAAA,CAACqG,eAAAA,EAAAA,IAAAA,EAAiBrD,WAAAA,CAAAA,CAAAA,CAAAA;oBAMvB,KAAK,QAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAACmD,KAAAA,EAAAA;4BAAI9D,SAAAA,EAAU;yCACd,KAAA,CAAA,aAAA,CAACsD,SAAAA,EAAAA;4BAAUC,OAAAA,EAAS9C;AAAOpC,yBAAAA,EAAAA,KAAAA,CAAAA,gBAC3B,KAAA,CAAA,aAAA,CAACgI,MAAAA,EAAAA;4BACAF,OAAAA,EAAS,CAAC,CAAC7I,KAAAA,CAAMN,KAAK;AACtBoJ,4BAAAA,eAAAA,EAAiB9I,MAAMoC,QAAQ;4BAC/BhC,QAAAA,EAAUA;;oBAKd,KAAK,OAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAAC4I,UAAAA,EAAAA;4BACAtJ,KAAAA,EAAOsB,MAAAA,CAAOhB,KAAAA,CAAMN,KAAK,IAAI,EAAA,CAAA;AAC7B8H,4BAAAA,aAAAA,EAAexH,MAAMoC,QAAQ;4BAC7BM,SAAAA,EAAU,qBAAA;AACVtC,4BAAAA,QAAAA,EAAUA,QAAAA,IAAY;AAEpBuD,yBAAAA,EAAAA,CAAAA,YAAAA,IAAgB,EAAE,GAAGuE,IAAI,CAACnG,GAAAA,GAAAA;4BAC3B,MAAMkH,OAAAA,GAAU,GAAGjI,MAAAA,CAAOmC,IAAAA,CAAAA,CAAM,CAAC,EAAEpB,GAAAA,CAAIrC,KAAK,CAAA,CAAE;AAE9C,4BAAA,qBACC,KAAA,CAAA,aAAA,CAAC8G,KAAAA,EAAAA;AAAI8B,gCAAAA,GAAAA,EAAKvG,IAAIrC,KAAK;gCAAEgD,SAAAA,EAAU;6CAC9B,KAAA,CAAA,aAAA,CAACwG,cAAAA,EAAAA;AAAexJ,gCAAAA,KAAAA,EAAOqC,IAAIrC,KAAK;gCAAEuB,EAAAA,EAAIgI;8CACtC,KAAA,CAAA,aAAA,CAACE,KAAAA,EAAAA;gCAAMlD,OAAAA,EAASgD;AAAUlH,6BAAAA,EAAAA,GAAAA,CAAIhB,KAAK,CAAA,CAAA;AAGtC,wBAAA,CAAA,CAAA,CAAA;oBAIH,KAAK,QAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAACyF,KAAAA,EAAAA;4BAAI9D,SAAAA,EAAU;yCACd,KAAA,CAAA,aAAA,CAAC0G,MAAAA,EAAAA;4BACA1J,KAAAA,EAAO;AAAC2J,gCAAAA,MAAAA,CAAOrJ,KAAAA,CAAMN,KAAK,IAAImE,WAAAA,EAAaoB,GAAAA,IAAO,CAAA;AAAG,6BAAA;AACrDuC,4BAAAA,aAAAA,EAAe,CAAC8B,IAAAA,GAAmBtJ,KAAAA,CAAMoC,QAAQ,CAACkH,IAAI,CAAC,CAAA,CAAE,CAAA;AACzDrE,4BAAAA,GAAAA,EAAKpB,aAAaoB,GAAAA,IAAO,CAAA;AACzBE,4BAAAA,GAAAA,EAAKtB,aAAasB,GAAAA,IAAO,GAAA;AACzBoE,4BAAAA,IAAAA,EAAM1F,aAAa0F,IAAAA,IAAQ,CAAA;4BAC3BnJ,QAAAA,EAAUA;AAEV,yBAAA,CAAA,EAAA,OAAOJ,KAAAA,CAAMN,KAAK,KAAK,QAAA,kBACvB,KAAA,CAAA,aAAA,CAAC8J,GAAAA,EAAAA;4BAAE9G,SAAAA,EAAU;AAAgC,yBAAA,EAAA,SAAA,EAAQ1C,MAAMN,KAAK,CAAA,CAAA;oBAKpE,KAAK,KAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAAC+J,QAAAA,EAAAA;AACApF,4BAAAA,SAAAA,EAAWT,SAAAA,IAAa,CAAA;4BACxBlE,KAAAA,EAAOsB,MAAAA,CAAOhB,KAAAA,CAAMN,KAAK,IAAI,EAAA,CAAA;AAC7B0C,4BAAAA,QAAAA,EAAUpC,MAAMoC,QAAQ;4BACxBhC,QAAAA,EAAUA;yCAEV,KAAA,CAAA,aAAA,CAACsJ,aAAAA,EAAAA,IAAAA,EACCpE,KAAAA,CAAMF,IAAI,CAAC;AAAE7F,4BAAAA,MAAAA,EAAQqE,SAAAA,IAAa;yBAAE,EAAG,CAAC+F,CAAAA,EAAGC,CAAAA,IAAO;AAClD3I,gCAAAA,EAAAA,EAAI,CAAA,EAAGgC,MAAAA,CAAO,KAAK,EAAE2G,CAAAA,CAAAA,CAAG;gCACxBC,KAAAA,EAAOD;AACR,6BAAA,CAAA,CAAA,CAAI1B,GAAG,CAAC,CAAC4B,qBACR,KAAA,CAAA,aAAA,CAACC,YAAAA,EAAAA;AAAazB,gCAAAA,GAAAA,EAAKwB,KAAK7I,EAAE;AAAE4I,gCAAAA,KAAAA,EAAOC,KAAKD;;oBAM7C,KAAK,QAAA;AACJ,wBAAA,qBACC,KAAA,CAAA,aAAA,CAACrD,KAAAA,EAAAA;4BAAI9D,SAAAA,EAAU;yCACd,KAAA,CAAA,aAAA,CAACsH,MAAAA,EAAAA;4BACAC,OAAAA,EAAS,CAAC,CAACjK,KAAAA,CAAMN,KAAK;AACtBwK,4BAAAA,eAAAA,EAAiB,CAACD,OAAAA,GAAqBjK,KAAAA,CAAMoC,QAAQ,CAAC6H,OAAAA,CAAAA;4BACtD7J,QAAAA,EAAUA,QAAAA;AACVsC,4BAAAA,SAAAA,EAAWC,GAAGtC,OAAAA,IAAWuC,eAAAA;AAExB7B,yBAAAA,EAAAA,KAAAA,CAAAA,CAAAA;oBAKL,KAAK,cAAA;AAAgB,wBAAA;4BACpB,IAAI,CAACb,kBAAAA,IAAsB,CAACD,IAAAA,EAAM;gCACjC,OAAO,IAAA;AACR,4BAAA;AACA,4BAAA,qBACC,KAAA,CAAA,aAAA,CAACF,wBAAAA,EAAAA;gCACAC,KAAAA,EAAOA,KAAAA;gCACPC,IAAAA,EAAMA,IAAAA;gCACNC,kBAAAA,EAAoBA,kBAAAA;gCACpBC,WAAAA,EAAaA,WAAAA;gCACbC,QAAAA,EAAUA,QAAAA;gCACVC,OAAAA,EAASA;;AAGZ,wBAAA;oBAEA,KAAK,UAAA;AAAY,wBAAA;4BAChB,IAAI,CAAC4D,gBAAgB,OAAO,IAAA;AAC5B,4BAAA,qBACC,KAAA,CAAA,aAAA,CAACuC,KAAAA,EAAAA;AAAI2D,gCAAAA,QAAAA,EAAU,EAAC;gCAAGzH,SAAAA,EAAU;6CAC5B,KAAA,CAAA,aAAA,CAAC0H,QAAAA,EAAAA;gCACAnJ,EAAAA,EAAIkC,IAAAA;AACJI,gCAAAA,KAAAA,EAAOU,eAAeV,KAAK;gCAC3B7D,KAAAA,EAAOsB,MAAAA,CAAOhB,KAAAA,CAAMN,KAAK,IAAI,EAAA,CAAA;AAC7B8H,gCAAAA,aAAAA,EAAe,CAACW,GAAAA,GAAAA;oCACf,IAAIlE,cAAAA,CAAeoG,SAAS,KAAK,QAAA,EAAU;AAC1CrK,wCAAAA,KAAAA,CAAMoC,QAAQ,CAAC+F,GAAAA,KAAQ,EAAA,GAAKkB,OAAOlB,GAAAA,CAAAA,GAAO,IAAA,CAAA;oCAC3C,CAAA,MAAO;wCACNnI,KAAAA,CAAMoC,QAAQ,CAAC+F,GAAAA,IAAO,IAAA,CAAA;AACvB,oCAAA;AACD,gCAAA,CAAA;gCACAhI,WAAAA,EAAaA,WAAAA;AACbmC,gCAAAA,iBAAAA,EAAmB2B,eAAe3B,iBAAiB;AACnDgI,gCAAAA,YAAAA,EAAcrG,eAAeqG,YAAY;AACzCC,gCAAAA,YAAAA,EAActG,eAAesG,YAAY;AACzCC,gCAAAA,eAAAA,EAAiBvG,eAAeuG,eAAe;gCAC/CpK,QAAAA,EAAUA,QAAAA;gCACVqK,cAAAA,EAAe,QAAA;AACf/H,gCAAAA,SAAAA,EAAWC,GAAGtC,OAAAA,IAAWuC,eAAAA;;AAI7B,wBAAA;oBAEA,KAAK,WAAA;AAAa,wBAAA;AACjB,4BAAA,qBACC,KAAA,CAAA,aAAA,CAAC4D,KAAAA,EAAAA;AAAI2D,gCAAAA,QAAAA,EAAU,EAAC;gCAAGzH,SAAAA,EAAU;6CAC5B,KAAA,CAAA,aAAA,CAACgI,aAAAA,EAAAA;gCACAzJ,EAAAA,EAAIkC,IAAAA;gCACJwH,cAAAA,EAAgB,CAAA;AAChBjL,gCAAAA,KAAAA,EAAOM,MAAMN,KAAK;AAClB0C,gCAAAA,QAAAA,EAAU,CAAC1C,KAAAA,GAAAA;AACVM,oCAAAA,KAAAA,CAAMoC,QAAQ,CAAC1C,KAAAA,CAAAA;AACf,oCAAA,IAAIO,IAAAA,EAAM;wCACT2K,UAAAA,CAAW,IAAA;AACV3K,4CAAAA,IAAAA,CAAK4K,OAAO,CAAC;AAAC1H,gDAAAA;AAAK,6CAAA,CAAA;wCACpB,CAAA,EAAG,CAAA,CAAA;AACJ,oCAAA;AACD,gCAAA,CAAA;gCACAhD,WAAAA,EAAaA,WAAAA;gCACbuC,SAAAA,EAAWC,EAAAA,CAAG,cAActC,OAAAA,IAAWuC,eAAAA,CAAAA;AACvCxC,gCAAAA,QAAAA,EAAUA,YAAYoE,UAAAA,EAAYpE,QAAAA;AACjC,gCAAA,GAAGoE;;AAIR,wBAAA;oBAEA,KAAK,aAAA;AAAe,wBAAA;AACnB,4BAAA,qBACC,KAAA,CAAA,aAAA,CAACgC,KAAAA,EAAAA;gCAAI9D,SAAAA,EAAU;6CACd,KAAA,CAAA,aAAA,CAAC0E,aAAAA,EAAAA;gCACAnG,EAAAA,EAAIkC,IAAAA;gCACJhD,WAAAA,EAAY,QAAA;AACZT,gCAAAA,KAAAA,EACC,KACCM,CAAMN,KAAK,EAITuF,GAAAA,IAAO,EAAA;AAEXzB,gCAAAA,aAAAA,EAAeA,aAAAA,IAAiB,IAAA;gCAChCsH,iBAAAA,EAAmB,KAAA;gCACnBzG,SAAAA,EAAWpF,SAAAA;gCACXqI,gBAAAA,EAAiB,GAAA;gCACjBC,iBAAAA,EAAkB,GAAA;AAClB9D,gCAAAA,YAAAA,EAAcA,YAAAA,IAAgB,CAAA;gCAC9BsH,iBAAAA,EAAmB,KAAA;AACnBvD,gCAAAA,aAAAA,EAAe,CAACC,MAAAA,GAAAA;oCACf,MAAMuD,YAAAA,GAAevD,MAAAA,CAAOC,UAAU,IAAI,IAAA;AAC1C1H,oCAAAA,KAAAA,CAAMoC,QAAQ,CAAC;wCACd,GAAKpC,KAAAA,CAAMN,KAAK,IAGV;4CACLuF,GAAAA,EAAK,IAAA;4CACLE,GAAAA,EAAK;yCACL;wCACDF,GAAAA,EAAK+F;AACN,qCAAA,CAAA;AACD,gCAAA,CAAA;gCACAtI,SAAAA,EAAWuI,UAAAA;gCACX7K,QAAAA,EAAUA;8CAEX,KAAA,CAAA,aAAA,CAACgH,aAAAA,EAAAA;gCACAnG,EAAAA,EAAIkC,IAAAA;gCACJhD,WAAAA,EAAY,QAAA;AACZT,gCAAAA,KAAAA,EACC,KACCM,CAAMN,KAAK,EAITyF,GAAAA,IAAO,EAAA;AAEX3B,gCAAAA,aAAAA,EAAeA,aAAAA,IAAiB,IAAA;gCAChCsH,iBAAAA,EAAmB,KAAA;gCACnBzG,SAAAA,EAAWpF,SAAAA;gCACXqI,gBAAAA,EAAiB,GAAA;gCACjBC,iBAAAA,EAAkB,GAAA;AAClB9D,gCAAAA,YAAAA,EAAcA,YAAAA,IAAgB,CAAA;gCAC9BsH,iBAAAA,EAAmB,KAAA;AACnBvD,gCAAAA,aAAAA,EAAe,CAACC,MAAAA,GAAAA;oCACf,MAAMuD,YAAAA,GAAevD,MAAAA,CAAOC,UAAU,IAAI,IAAA;AAC1C1H,oCAAAA,KAAAA,CAAMoC,QAAQ,CAAC;wCACd,GAAKpC,KAAAA,CAAMN,KAAK,IAGV;4CACLuF,GAAAA,EAAK,IAAA;4CACLE,GAAAA,EAAK;yCACL;wCACDA,GAAAA,EAAK6F;AACN,qCAAA,CAAA;AACD,gCAAA,CAAA;gCACAtI,SAAAA,EAAWuI,UAAAA;gCACX7K,QAAAA,EAAUA;;AAId,wBAAA;oBAEA,KAAK,aAAA;AAAe,wBAAA;AACnB,4BAAA,MAAM8K,kBAAAA,GACL3H,KAAAA,EAAO2E,GAAAA,CAAI,CAACiD,QAAU;oCACrBpK,KAAAA,EAAOoK,IAAAA;oCACPzL,KAAAA,EAAOyL;AACR,iCAAA,MACAvJ,OAAAA,EAASsG,GAAAA,CAAI,CAACnG,GAAAA,GACb,OAAOA,QAAQ,QAAA,GACZ;oCAAEhB,KAAAA,EAAOgB,GAAAA;oCAAKrC,KAAAA,EAAOqC;iCAAI,GACzB;AAAEhB,oCAAAA,KAAAA,EAAOgB,IAAIhB,KAAK;oCAAErB,KAAAA,EAAOsB,MAAAA,CAAOe,IAAIrC,KAAK;AAAE,iCAAA,CAAA,IAEjD,EAAE;AAEH,4BAAA,MAAM0L,UAAAA,GAAa9F,KAAAA,CAAMC,OAAO,CAACvF,KAAAA,CAAMN,KAAK,CAAA,GACzCM,KAAAA,CAAMN,KAAK,CAACwI,GAAG,CAAClH,UAChB,EAAE;AAEL,4BAAA,qBACC,KAAA,CAAA,aAAA,CAACwF,KAAAA,EAAAA;AAAI2D,gCAAAA,QAAAA,EAAU,EAAC;gCAAGzH,SAAAA,EAAU;6CAC5B,KAAA,CAAA,aAAA,CAAC2I,WAAAA,EAAAA;gCACApK,EAAAA,EAAIkC,IAAAA;gCACJvB,OAAAA,EAASsJ,kBAAAA;AACT1D,gCAAAA,aAAAA,EAAe,CAACW,GAAAA,GAAAA;oCACf,IAAI5D,iBAAAA,EAAmB8F,cAAc,QAAA,EAAU;AAC9CrK,wCAAAA,KAAAA,CAAMoC,QAAQ,CAAC+F,GAAAA,CAAID,GAAG,CAACmB,MAAAA,CAAAA,CAAAA;oCACxB,CAAA,MAAO;AACNrJ,wCAAAA,KAAAA,CAAMoC,QAAQ,CAAC+F,GAAAA,CAAAA;AAChB,oCAAA;AACD,gCAAA,CAAA;gCACAmD,YAAAA,EAAcF,UAAAA;gCACd1L,KAAAA,EAAO0L,UAAAA;gCACPjL,WAAAA,EAAaA,WAAAA;gCACboL,OAAAA,EAAQ,SAAA;AACRC,gCAAAA,QAAAA,EAAUjH,iBAAAA,EAAmBiH,QAAAA;AAC7BC,gCAAAA,MAAAA,EAAQlH,iBAAAA,EAAmBkH,MAAAA;AAC3BjJ,gCAAAA,YAAAA,EAAc+B,iBAAAA,EAAmB+F,YAAAA;AACjChI,gCAAAA,iBAAAA,EAAmBiC,iBAAAA,EAAmBjC,iBAAAA;AACtCiI,gCAAAA,YAAAA,EAAchG,iBAAAA,EAAmBgG,YAAAA;AACjCC,gCAAAA,eAAAA,EAAiBjG,iBAAAA,EAAmBiG,eAAAA;AACpC9H,gCAAAA,SAAAA,EAAWrC,OAAAA,IAAWuC,eAAAA;gCACtBxC,QAAAA,EAAUA;;AAId,wBAAA;AAEA,oBAAA;wBACC,OAAO,IAAA;AACT;YACD,CAAA,GAAA,CAAA,CAAA,EAGD8D,+BAAiB,KAAA,CAAA,aAAA,CAACsC,KAAAA,EAAAA;gBAAI9D,SAAAA,EAAU;eAAYwB,aAAAA,CAAAA,CAAAA,EAG7Cd,IAAAA,KAAS,cAAcC,WAAAA,IAAe,CAAChD,yBACvC,KAAA,CAAA,aAAA,CAACqG,eAAAA,EAAAA,IAAAA,EAAiBrD,4BAEnB,KAAA,CAAA,aAAA,CAACsD,WAAAA,EAAAA,IAAAA,CAAAA,CAAAA;AAGJ,QAAA;;AAGH;AAEA9D,aAAAA,CAAc6I,WAAW,GAAG,eAAA;AAiBrB,SAASC,UAAAA,CAAkC,EACjD1L,IAAI,EACJ2L,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,MAAM,EACNnG,KAAK,EACLvC,WAAW,EACX2I,aAAa,EACbhJ,QAAAA,GAAW,KAAK,EAChBiJ,OAAO,EACPC,QAAQ,EACRC,aAAa,EACO,EAAA;AACpB,IAAA,MAAMC,kBAAkB,CAACC,IAAAA,GAAAA;AACxB,QAAA,IAAI,CAACA,IAAAA,IAAQA,IAAAA,KAAS,CAAA,EAAG,OAAO,yCAAA;QAChC,IAAIA,IAAAA,KAAS,GAAG,OAAO,0CAAA;QACvB,IAAIA,IAAAA,KAAS,GAAG,OAAO,aAAA;QACvB,IAAIA,IAAAA,KAAS,GAAG,OAAO,4BAAA;QACvB,OAAO,aAAA;AACR,IAAA,CAAA;AAEA,IAAA,qBACC,KAAA,CAAA,aAAA,CAACC,IAAAA,EAASrM,IAAAA,EACR4L,QAAAA,iBACA,KAAA,CAAA,aAAA,CAAC5L,MAAAA,EAAAA;QACA4L,QAAAA,EAAU5L,IAAAA,CAAKsM,YAAY,CAACV,QAAAA,EAAUC,OAAAA,CAAAA;QACtC7K,EAAAA,EAAI8K,MAAAA;QACJS,GAAAA,EAAKP,OAAAA;QACLvJ,SAAAA,EAAU;AAET,KAAA,EAACkD,CAAAA,KAAAA,IAASvC,WAAU,mBACpB,KAAA,CAAA,aAAA,CAACmD,KAAAA,EAAAA;QAAI9D,SAAAA,EAAU;qBACd,KAAA,CAAA,aAAA,CAAC8D,KAAAA,EAAAA;QAAI9D,SAAAA,EAAU;qBACd,KAAA,CAAA,aAAA,CAAC8D,KAAAA,EAAAA,IAAAA,EACCZ,uBAAS,KAAA,CAAA,aAAA,CAAC6G,IAAAA,EAAAA;QAAG/J,SAAAA,EAAU;AAAwCkD,KAAAA,EAAAA,KAAAA,CAAAA,EAC/DvC,6BAAe,KAAA,CAAA,aAAA,CAACmG,GAAAA,EAAAA;QAAE9G,SAAAA,EAAU;AAAiCW,KAAAA,EAAAA,WAAAA,CAAAA,CAAAA,EAE9D2I,iBAKHE,QAAAA,EACAN,QAAAA,EAAU1D,IAAI,CAACwE,OAAAA,EAASC,oBACxB,KAAA,CAAA,aAAA,CAACnG,KAAAA,EAAAA;AACA8B,YAAAA,GAAAA,EAAKoE,OAAAA,CAAQ9G,KAAK,GAAG,CAAA,EAAG8G,QAAQ9G,KAAK,CAAC,CAAC,EAAE+G,GAAAA,CAAAA,CAAK,GAAG,CAAC,QAAQ,EAAEA,GAAAA,CAAAA,CAAK;YACjEjK,SAAAA,EAAU;WAET,CAACgK,QAAQ9G,KAAK,IAAI8G,QAAQrJ,WAAU,mBACpC,KAAA,CAAA,aAAA,CAACmD,KAAAA,EAAAA;YAAI9D,SAAAA,EAAU;AACbgK,SAAAA,EAAAA,OAAAA,CAAQ9G,KAAK,kBAAI,KAAA,CAAA,aAAA,CAACgH,YAAIF,OAAAA,CAAQ9G,KAAK,iBACpC,KAAA,CAAA,aAAA,CAACiH,SAAAA,EAAAA;YAAUnK,SAAAA,EAAU;2BAIvB,KAAA,CAAA,aAAA,CAAC8D,KAAAA,EAAAA;YAAI9D,SAAAA,EAAWC,EAAAA,CAAG,mBAAA,EAAqBK,QAAAA,GAAW,OAAA,GAAU,OAAA;AAC3D0J,SAAAA,EAAAA,OAAAA,CAAQI,MAAM,CAAC5E,GAAG,CAAC,CAACpF,uBACpB,KAAA,CAAA,aAAA,CAAC0D,KAAAA,EAAAA;gBAAI8B,GAAAA,EAAKtH,MAAAA,CAAO8B,OAAOK,IAAI,CAAA;gBAAGT,SAAAA,EAAW0J,eAAAA,CAAgBtJ,OAAOuJ,IAAI;6BACpE,KAAA,CAAA,aAAA,CAACxJ,aAAAA,EAAAA;gBACAC,MAAAA,EAAQA,MAAAA;AACRC,gBAAAA,OAAAA,EAAS9C,KAAK8C,OAAO;gBACrBC,QAAAA,EAAUA,QAAAA;gBACV/C,IAAAA,EAAMA;AAOXkM,aAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,aAAAA,CAAAA,iBAGF,KAAA,CAAA,aAAA,CAAC3F,KAAAA,EAAAA;QAAIvF,EAAAA,EAAI8K,MAAAA;QAAQrJ,SAAAA,EAAU;AACzBwJ,KAAAA,EAAAA,QAAAA,EACAN,QAAAA,EAAU1D,GAAAA,CAAI,CAACwE,OAAAA,EAASC,oBACxB,KAAA,CAAA,aAAA,CAACnG,KAAAA,EAAAA;AACA8B,YAAAA,GAAAA,EAAKoE,OAAAA,CAAQ9G,KAAK,GAAG,CAAA,EAAG8G,QAAQ9G,KAAK,CAAC,CAAC,EAAE+G,GAAAA,CAAAA,CAAK,GAAG,CAAC,QAAQ,EAAEA,GAAAA,CAAAA,CAAK;YACjEjK,SAAAA,EAAU;WAET,CAACgK,QAAQ9G,KAAK,IAAI8G,QAAQrJ,WAAU,mBACpC,KAAA,CAAA,aAAA,CAACmD,KAAAA,EAAAA;YAAI9D,SAAAA,EAAU;AACbgK,SAAAA,EAAAA,OAAAA,CAAQ9G,KAAK,kBAAI,KAAA,CAAA,aAAA,CAACgH,YAAIF,OAAAA,CAAQ9G,KAAK,iBACpC,KAAA,CAAA,aAAA,CAACiH,SAAAA,EAAAA;YAAUnK,SAAAA,EAAU;2BAIvB,KAAA,CAAA,aAAA,CAAC8D,KAAAA,EAAAA;YAAI9D,SAAAA,EAAWC,EAAAA,CAAG,mBAAA,EAAqBK,QAAAA,GAAW,OAAA,GAAU,OAAA;AAC3D0J,SAAAA,EAAAA,OAAAA,CAAQI,MAAM,CAAC5E,GAAG,CAAC,CAACpF,uBACpB,KAAA,CAAA,aAAA,CAAC0D,KAAAA,EAAAA;gBAAI8B,GAAAA,EAAKtH,MAAAA,CAAO8B,OAAOK,IAAI,CAAA;gBAAGT,SAAAA,EAAW0J,eAAAA,CAAgBtJ,OAAOuJ,IAAI;6BACpE,KAAA,CAAA,aAAA,CAACxJ,aAAAA,EAAAA;gBACAC,MAAAA,EAAQA,MAAAA;AACRC,gBAAAA,OAAAA,EAAS9C,KAAK8C,OAAO;gBACrBC,QAAAA,EAAUA,QAAAA;gBACV/C,IAAAA,EAAMA;AAOXkM,aAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,aAAAA,CAAAA,CAAAA;AAKN;AAEAR,UAAAA,CAAWD,WAAW,GAAG,YAAA;;;;"}