maquinaweb-ui 2.30.4 → 2.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { cn } from "./utils-C0f9Ma6r.js";
2
2
  import { Label } from "./label-BqtcCyMj.js";
3
- import { Controller, useFormContext, useFormState } from "react-hook-form";
3
+ import { useFormContext, useFormState } from "react-hook-form";
4
4
  import * as React from "react";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { Info } from "lucide-react";
@@ -16,12 +16,6 @@ const useFormContextSubmit = () => {
16
16
  if (!context) return {};
17
17
  return context;
18
18
  };
19
- const FormField = ({ ...props }) => {
20
- return /* @__PURE__ */ jsx(FormFieldContext.Provider, {
21
- value: { name: props.name },
22
- children: /* @__PURE__ */ jsx(Controller, { ...props })
23
- });
24
- };
25
19
  const useFormField = () => {
26
20
  const fieldContext = React.useContext(FormFieldContext);
27
21
  const itemContext = React.useContext(FormItemContext);
@@ -142,5 +136,5 @@ const InputHelp = ({ help, name, className }) => {
142
136
  };
143
137
 
144
138
  //#endregion
145
- export { FormField, FormItem, FormLabel, FormMessage, InputHelp };
146
- //# sourceMappingURL=input-help-C_4FzHTq.js.map
139
+ export { FormItem, FormLabel, FormMessage, InputHelp };
140
+ //# sourceMappingURL=input-help-etTqPzYc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-help-C_4FzHTq.js","names":["ContentHelp: React.FC<{\n children: React.ReactNode;\n help?: React.ReactNode | string;\n className?: string;\n side?: 'top' | 'right' | 'bottom' | 'left';\n sideOffset?: number;\n}>","TooltipPortal","InputHelp: React.FC<{\n help?: string;\n name?: string;\n className?: string;\n}>"],"sources":["../src/components/ui/form.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/content-help.tsx","../src/components/ui/input-help.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport {\n Controller,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n FormProvider,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nimport type * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport { Label } from '@/components/ui/label';\n\nimport { cn } from '@/lib/utils';\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n);\n\nconst FormContext = React.createContext<{\n onSubmit?: (data?: FieldValues) => void;\n helper?: Record<string, string>;\n}>({});\n\nexport const useFormContextSubmit = () => {\n const context = React.useContext(FormContext);\n if (!context) {\n return {};\n }\n return context;\n};\n\nconst Form: React.FC<\n React.ComponentProps<typeof FormProvider<FieldValues>> & {\n onSubmit?: (data?: FieldValues) => void;\n helper?: Record<string, string>;\n }\n> = ({ onSubmit, helper, ...props }) => {\n return (\n <FormContext.Provider value={{ onSubmit, helper }}>\n <FormProvider {...props} />\n </FormContext.Provider>\n );\n};\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n className={cn('flex flex-col gap-1', className)}\n data-slot=\"form-item\"\n {...props}\n />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n className={cn('data-[error=true]:text-destructive', className)}\n data-error={!!error}\n data-slot=\"form-label\"\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n data-slot=\"form-control\"\n id={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n className={cn('text-muted-foreground text-sm', className)}\n data-slot=\"form-description\"\n id={formDescriptionId}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n className={cn('text-destructive text-xs', className)}\n data-slot=\"form-message\"\n id={formMessageId}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","'use client';\n\nimport * as React from 'react';\n\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\n\nimport { cn } from '@/lib/utils';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n className={cn(\n 'bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className\n )}\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import { Portal as TooltipPortal } from '@radix-ui/react-tooltip';\n\nimport { cn } from '@/lib/utils';\nimport { Tooltip, TooltipContent, TooltipTrigger } from './tooltip';\n\nconst ContentHelp: React.FC<{\n children: React.ReactNode;\n help?: React.ReactNode | string;\n className?: string;\n side?: 'top' | 'right' | 'bottom' | 'left';\n sideOffset?: number;\n}> = ({ children, help, className, side = 'top', sideOffset = 10 }) => {\n return help ? (\n <Tooltip delayDuration={250}>\n <TooltipTrigger asChild>{children as any}</TooltipTrigger>\n <TooltipPortal>\n <TooltipContent\n className={cn('flex items-center px-2 leading-none', className)}\n side={side}\n sideOffset={10}\n >\n <p className=\"w-full text-wrap whitespace-break-spaces\">{help}</p>\n </TooltipContent>\n </TooltipPortal>\n </Tooltip>\n ) : (\n children\n );\n};\n\nexport { ContentHelp };\n","'use client';\n\nimport { ContentHelp } from '@/components/ui/content-help';\n\nimport { Info } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { useFormContextSubmit } from './form';\n\nconst InputHelp: React.FC<{\n help?: string;\n name?: string;\n className?: string;\n}> = ({ help, name, className }) => {\n const { helper } = useFormContextSubmit();\n const helpText = (name && helper?.[name]) || help;\n\n return (\n helpText && (\n <ContentHelp\n className={cn(\n 'whitespace-pre-line leading-relaxed max-w-96 text-[13px]'\n )}\n help={helpText}\n >\n <button\n className={cn('mb-0.5 size-fit hover:bg-muted rounded-sm', className)}\n type=\"button\"\n >\n <Info className=\"size-3.5\" />\n </button>\n </ContentHelp>\n )\n );\n};\nexport { InputHelp };\n"],"mappings":"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"}
1
+ {"version":3,"file":"input-help-etTqPzYc.js","names":["ContentHelp: React.FC<{\n children: React.ReactNode;\n help?: React.ReactNode | string;\n className?: string;\n side?: 'top' | 'right' | 'bottom' | 'left';\n sideOffset?: number;\n}>","TooltipPortal","InputHelp: React.FC<{\n help?: string;\n name?: string;\n className?: string;\n}>"],"sources":["../src/components/ui/form.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/content-help.tsx","../src/components/ui/input-help.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport {\n Controller,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n FormProvider,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nimport type * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport { Label } from '@/components/ui/label';\n\nimport { cn } from '@/lib/utils';\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n);\n\nconst FormContext = React.createContext<{\n onSubmit?: (data?: FieldValues) => void;\n helper?: Record<string, string>;\n}>({});\n\nexport const useFormContextSubmit = () => {\n const context = React.useContext(FormContext);\n if (!context) {\n return {};\n }\n return context;\n};\n\nconst Form: React.FC<\n React.ComponentProps<typeof FormProvider<FieldValues>> & {\n onSubmit?: (data?: FieldValues) => void;\n helper?: Record<string, string>;\n }\n> = ({ onSubmit, helper, ...props }) => {\n return (\n <FormContext.Provider value={{ onSubmit, helper }}>\n <FormProvider {...props} />\n </FormContext.Provider>\n );\n};\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n className={cn('flex flex-col gap-1', className)}\n data-slot=\"form-item\"\n {...props}\n />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n className={cn('data-[error=true]:text-destructive', className)}\n data-error={!!error}\n data-slot=\"form-label\"\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n data-slot=\"form-control\"\n id={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n className={cn('text-muted-foreground text-sm', className)}\n data-slot=\"form-description\"\n id={formDescriptionId}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n className={cn('text-destructive text-xs', className)}\n data-slot=\"form-message\"\n id={formMessageId}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","'use client';\n\nimport * as React from 'react';\n\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\n\nimport { cn } from '@/lib/utils';\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n className={cn(\n 'bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance',\n className\n )}\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import { Portal as TooltipPortal } from '@radix-ui/react-tooltip';\n\nimport { cn } from '@/lib/utils';\nimport { Tooltip, TooltipContent, TooltipTrigger } from './tooltip';\n\nconst ContentHelp: React.FC<{\n children: React.ReactNode;\n help?: React.ReactNode | string;\n className?: string;\n side?: 'top' | 'right' | 'bottom' | 'left';\n sideOffset?: number;\n}> = ({ children, help, className, side = 'top', sideOffset = 10 }) => {\n return help ? (\n <Tooltip delayDuration={250}>\n <TooltipTrigger asChild>{children as any}</TooltipTrigger>\n <TooltipPortal>\n <TooltipContent\n className={cn('flex items-center px-2 leading-none', className)}\n side={side}\n sideOffset={10}\n >\n <p className=\"w-full text-wrap whitespace-break-spaces\">{help}</p>\n </TooltipContent>\n </TooltipPortal>\n </Tooltip>\n ) : (\n children\n );\n};\n\nexport { ContentHelp };\n","'use client';\n\nimport { ContentHelp } from '@/components/ui/content-help';\n\nimport { Info } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { useFormContextSubmit } from './form';\n\nconst InputHelp: React.FC<{\n help?: string;\n name?: string;\n className?: string;\n}> = ({ help, name, className }) => {\n const { helper } = useFormContextSubmit();\n const helpText = (name && helper?.[name]) || help;\n\n return (\n helpText && (\n <ContentHelp\n className={cn(\n 'whitespace-pre-line leading-relaxed max-w-96 text-[13px]'\n )}\n help={helpText}\n >\n <button\n className={cn('mb-0.5 size-fit hover:bg-muted rounded-sm', className)}\n type=\"button\"\n >\n <Info className=\"size-3.5\" />\n </button>\n </ContentHelp>\n )\n );\n};\nexport { InputHelp };\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Mask, Options } from "./with-mask-DnMiJlek.js";
2
2
  import { FieldPath, FieldValues, UseControllerProps } from "react-hook-form";
3
3
  import { Dispatch, SetStateAction } from "react";
4
- import * as react_jsx_runtime1 from "react/jsx-runtime";
4
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
5
5
  import { PopoverProps } from "@radix-ui/react-popover";
6
6
 
7
7
  //#region src/components/input-suggest/input-suggest.d.ts
@@ -65,7 +65,7 @@ declare function InputSuggest<TFieldValues extends FieldValues = FieldValues, TF
65
65
  children,
66
66
  initialParams,
67
67
  ...props
68
- }: InputSuggestProps<TFieldValues, TFieldName> & PopoverProps): react_jsx_runtime1.JSX.Element;
68
+ }: InputSuggestProps<TFieldValues, TFieldName> & PopoverProps): react_jsx_runtime6.JSX.Element;
69
69
  //#endregion
70
70
  export { InputSuggest, type InputSuggestProps };
71
71
  //# sourceMappingURL=input-suggest.d.ts.map
@@ -4,7 +4,7 @@
4
4
  import { cn } from "./utils-C0f9Ma6r.js";
5
5
  import "./label-BqtcCyMj.js";
6
6
  import { Input, withMask } from "./input-Cp3f1KmR.js";
7
- import { FormItem, FormLabel, FormMessage, InputHelp } from "./input-help-C_4FzHTq.js";
7
+ import { FormItem, FormLabel, FormMessage, InputHelp } from "./input-help-etTqPzYc.js";
8
8
  import { Popover, PopoverContent, PopoverTrigger, ScrollBar } from "./scroll-area-C2WadzN5.js";
9
9
  import { useController, useFormContext } from "react-hook-form";
10
10
  import { useCallback, useEffect, useState } from "react";
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime2 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/page-header/page-header.d.ts
4
4
  interface PageHeaderProps {
@@ -10,7 +10,7 @@ declare function PageHeader({
10
10
  title,
11
11
  help,
12
12
  description
13
- }: PageHeaderProps): react_jsx_runtime2.JSX.Element;
13
+ }: PageHeaderProps): react_jsx_runtime0.JSX.Element;
14
14
  //#endregion
15
15
  export { PageHeader, type PageHeaderProps };
16
16
  //# sourceMappingURL=page-header.d.ts.map
@@ -3,7 +3,7 @@
3
3
 
4
4
  import "./utils-C0f9Ma6r.js";
5
5
  import "./label-BqtcCyMj.js";
6
- import { InputHelp } from "./input-help-C_4FzHTq.js";
6
+ import { InputHelp } from "./input-help-etTqPzYc.js";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
 
9
9
  //#region src/components/page-header/page-header.tsx
@@ -1,5 +1,5 @@
1
1
  import { FieldPath, FieldPathValue, FieldValues, UseControllerProps } from "react-hook-form";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime4 from "react/jsx-runtime";
3
3
  import { Options } from "nuqs";
4
4
  import { PopoverProps } from "@radix-ui/react-popover";
5
5
 
@@ -49,9 +49,11 @@ interface RemoteSelectorFieldProps<TFieldValues extends FieldValues = FieldValue
49
49
  required?: boolean;
50
50
  defaultValue?: FieldPathValue<TFieldValues, TFieldName>;
51
51
  onChange?: (value: any) => Promise<void> | void;
52
+ nameValue?: string;
52
53
  }
53
54
  declare function RemoteSelectorField<T, TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({
54
55
  name,
56
+ nameValue,
55
57
  className,
56
58
  required,
57
59
  defaultValue,
@@ -61,7 +63,7 @@ declare function RemoteSelectorField<T, TFieldValues extends FieldValues = Field
61
63
  initialRequest,
62
64
  forceToggle,
63
65
  ...props
64
- }: RemoteSelectorFieldProps<TFieldValues, TFieldName> & BaseRemoteSelectorProps<T>): react_jsx_runtime0.JSX.Element;
66
+ }: RemoteSelectorFieldProps<TFieldValues, TFieldName> & BaseRemoteSelectorProps<T>): react_jsx_runtime4.JSX.Element;
65
67
  interface RemoteSelectorQueryProps<T> extends BaseRemoteSelectorProps<T> {
66
68
  name: string;
67
69
  defaultValue?: string;
@@ -81,7 +83,7 @@ declare function RemoteSelectorQuery<T>({
81
83
  fieldLabel,
82
84
  type,
83
85
  ...props
84
- }: RemoteSelectorQueryProps<T>): react_jsx_runtime0.JSX.Element;
86
+ }: RemoteSelectorQueryProps<T>): react_jsx_runtime4.JSX.Element;
85
87
  //#endregion
86
88
  export { type BaseRemoteSelectorProps, RemoteSelectorField as RemoteSelector, RemoteSelectorField, type RemoteSelectorFieldProps, RemoteSelectorQuery, type RemoteSelectorQueryProps, type TUseData };
87
89
  //# sourceMappingURL=remote-selector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"remote-selector.d.ts","names":[],"sources":["../src/components/ui/selector.tsx","../src/components/remote-selector/remote-selector.tsx"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-selector.d.ts","names":[],"sources":["../src/components/ui/selector.tsx","../src/components/remote-selector/remote-selector.tsx"],"sourcesContent":[],"mappings":"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"}
@@ -3,9 +3,9 @@
3
3
 
4
4
  import { cn } from "./utils-C0f9Ma6r.js";
5
5
  import "./label-BqtcCyMj.js";
6
- import { FormField, FormItem, FormMessage, InputHelp } from "./input-help-C_4FzHTq.js";
6
+ import { FormItem, FormMessage, InputHelp } from "./input-help-etTqPzYc.js";
7
7
  import { Popover, PopoverContent, PopoverTrigger, ScrollBar } from "./scroll-area-C2WadzN5.js";
8
- import { useFormContext } from "react-hook-form";
8
+ import { useController, useFormContext } from "react-hook-form";
9
9
  import { createElement, useEffect, useId, useMemo, useState } from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
11
  import { Check, ChevronsUpDown, SearchIcon, X } from "lucide-react";
@@ -310,8 +310,14 @@ const buildGroups = (items, groupBy) => {
310
310
 
311
311
  //#endregion
312
312
  //#region src/components/remote-selector/remote-selector.tsx
313
- function RemoteSelectorField({ name, className, required, defaultValue, onChange: onChangeCallback, useData, initialParams, initialRequest = false, forceToggle = false,...props }) {
314
- const { control } = useFormContext();
313
+ function RemoteSelectorField({ name, nameValue, className, required, defaultValue, onChange: onChangeCallback, useData, initialParams, initialRequest = false, forceToggle = false,...props }) {
314
+ const { control, setValue } = useFormContext();
315
+ const { field, fieldState } = useController({
316
+ control,
317
+ name,
318
+ rules: { required: required ? "Campo obrigatório" : false },
319
+ defaultValue
320
+ });
315
321
  const id = useId();
316
322
  const [open, setOpen] = useState(false);
317
323
  const [search, setSearch] = useState("");
@@ -320,32 +326,28 @@ function RemoteSelectorField({ name, className, required, defaultValue, onChange
320
326
  useEffect(() => {
321
327
  setOpen(forceToggle);
322
328
  }, [forceToggle]);
323
- return /* @__PURE__ */ jsx(FormField, {
324
- control,
325
- defaultValue,
326
- name,
327
- render: ({ field, fieldState }) => /* @__PURE__ */ jsx(FormItem, {
328
- className,
329
- children: /* @__PURE__ */ createElement(Selector, {
330
- ...props,
331
- error: fieldState?.error && /* @__PURE__ */ jsx(FormMessage, {}),
332
- id: `${id}-${name.replaceAll(".", "-")}`,
333
- items: data,
334
- key: `selector-${field.name}-${field.value}`,
335
- name,
336
- onChange: (value) => {
337
- field.onChange(value);
338
- onChangeCallback?.(value);
339
- },
340
- onSearch: setSearch,
341
- open,
342
- required,
343
- search,
344
- setOpen,
345
- value: field.value
346
- })
347
- }),
348
- rules: { required: required ? "Campo obrigatório" : false }
329
+ return /* @__PURE__ */ jsx(FormItem, {
330
+ className,
331
+ children: /* @__PURE__ */ createElement(Selector, {
332
+ ...props,
333
+ error: fieldState?.error && /* @__PURE__ */ jsx(FormMessage, {}),
334
+ id: `${id}-${name.replaceAll(".", "-")}`,
335
+ items: data,
336
+ key: `selector-${field.name}-${field.value}`,
337
+ name,
338
+ onChange: (value) => {
339
+ field.onChange(value);
340
+ if (nameValue && props.fieldKey) if (Array.isArray(value)) setValue(nameValue, value.map((item) => item[props.fieldKey]));
341
+ else setValue(nameValue, value[props.fieldKey]);
342
+ onChangeCallback?.(value);
343
+ },
344
+ onSearch: setSearch,
345
+ open,
346
+ required,
347
+ search,
348
+ setOpen,
349
+ value: field.value
350
+ })
349
351
  });
350
352
  }
351
353
  function RemoteSelectorQuery({ name, defaultValue, options, useData, initialParams, initialRequest = false, forceToggle = false, onChange: onChangeCallback, fieldKey, fieldLabel, type = "single",...props }) {
@@ -1 +1 @@
1
- {"version":3,"file":"remote-selector.js","names":["Command","CommandPrimitive","Command","id"],"sources":["../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/command.tsx","../src/components/ui/selector.tsx","../src/components/remote-selector/remote-selector.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default:\n 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n warning: 'border-transparent bg-warning text-warning-foreground',\n outline: 'text-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from 'react';\n\nimport { Slot } from '@radix-ui/react-slot';\n\nimport { cn } from '@/lib/utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n data-slot=\"button\"\n {...(props as any)}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","'use client';\n\nimport * as React from 'react';\n\nimport { SearchIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Command as CommandPrimitive } from 'cmdk';\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className\n )}\n data-slot=\"command\"\n {...props}\n />\n );\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n className=\"flex h-9 items-center gap-2 border-b px-3\"\n data-slot=\"command-input-wrapper\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n data-slot=\"command-input\"\n {...props}\n />\n </div>\n );\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n className={cn(\n 'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto',\n className\n )}\n data-slot=\"command-list\"\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n className=\"py-6 text-center text-sm\"\n data-slot=\"command-empty\"\n {...props}\n />\n );\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className\n )}\n data-slot=\"command-group\"\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n className={cn('bg-border -mx-1 h-px', className)}\n data-slot=\"command-separator\"\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n data-slot=\"command-item\"\n {...props}\n />\n );\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className\n )}\n data-slot=\"command-shortcut\"\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","'use client';\n\nimport { useEffect, useMemo } from 'react';\n\nimport type { PopoverProps } from '@radix-ui/react-popover';\nimport { ScrollArea, ScrollAreaViewport } from '@radix-ui/react-scroll-area';\n\nimport { Check, ChevronsUpDown, X } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Badge } from './badge';\nimport { Button } from './button';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from './command';\nimport { InputHelp } from './input-help';\nimport { Popover, PopoverContent, PopoverTrigger } from './popover';\nimport { ScrollBar } from './scroll-area';\n\nexport type SelectorOption = {\n id: string | number;\n name: string;\n value?: any;\n children?: SelectorOption[];\n};\n\nexport type SelectorProps<T> = {\n type?: 'single' | 'multiple';\n value?: T | T[];\n onChange?: (item: T | T[] | undefined | null) => void;\n search?: string;\n onSearch?: (search: string) => void;\n placeholder?: string;\n empty?: React.ReactNode;\n items: T[];\n fieldLabel: keyof T;\n fieldKey?: keyof T;\n groupBy?: keyof T;\n disabled?: boolean;\n searchPlaceholder?: string;\n label?: string;\n name?: string;\n className?: string;\n required?: boolean;\n error?: React.ReactNode;\n selectFirstIsOne?: boolean;\n help?: string;\n extra?: string;\n extraOnClick?: (\n onChange?: (item: T | T[] | undefined | null) => void\n ) => Promise<void> | void;\n open?: boolean;\n setOpen?: (open: boolean) => void;\n maxVisibleBadges?: number;\n id?: string;\n} & PopoverProps;\n\ntype SelectorGroup<T> = {\n id: string;\n heading?: string;\n items: T[];\n};\n\nexport function Selector<T>({\n type = 'single',\n value,\n onChange,\n search,\n onSearch,\n items,\n label,\n placeholder,\n fieldLabel,\n fieldKey,\n groupBy,\n searchPlaceholder,\n name,\n empty = 'Nenhuma opção encontrada...',\n disabled = false,\n className,\n required,\n error,\n selectFirstIsOne,\n help,\n extra,\n extraOnClick,\n open,\n setOpen,\n maxVisibleBadges = 3,\n id,\n ...props\n}: SelectorProps<T>) {\n const itemKey = fieldKey || fieldLabel;\n\n const isMultiple = type === 'multiple';\n const selectedItems = isMultiple && Array.isArray(value) ? value : [];\n const singleValue = !isMultiple && !Array.isArray(value) ? value : undefined;\n\n const isItemSelected = (item: T): boolean => {\n if (isMultiple) {\n return selectedItems.some(\n (selected) => selected[itemKey] === item[itemKey]\n );\n }\n return singleValue?.[itemKey] === item[itemKey];\n };\n\n const handleItemSelect = (item: T) => {\n if (isMultiple) {\n const isSelected = isItemSelected(item);\n const newValue = isSelected\n ? selectedItems.filter(\n (selected) => selected[itemKey] !== item[itemKey]\n )\n : [...selectedItems, item];\n onChange?.(newValue.length > 0 ? newValue : null);\n } else {\n onChange?.(item);\n setOpen?.(false);\n }\n };\n\n useEffect(() => {\n if (selectFirstIsOne && items && items.length === 1 && !value) {\n onChange?.(items[0] as any);\n }\n }, [items]);\n\n const { selectedGroups, unselectedGroups } = useMemo(() => {\n if (!isMultiple || selectedItems.length === 0) {\n return {\n selectedGroups: [],\n unselectedGroups: buildGroups(items, groupBy),\n };\n }\n\n const unselectedItems = items.filter((item) => !isItemSelected(item));\n\n return {\n selectedGroups: selectedItems,\n unselectedGroups: buildGroups(unselectedItems, groupBy),\n };\n }, [groupBy, items, isMultiple, selectedItems]);\n\n return (\n <div\n className={cn('w-full flex flex-col gap-1', className)}\n id={id || `selector-${name}`}\n >\n {label && (\n <div className=\"flex items-end gap-1.5\">\n <label\n className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n htmlFor={id || name}\n >\n {label}:\n {required && (\n <span className=\"text-red-500 text-lg leading-[1px]\">*</span>\n )}\n </label>\n\n <InputHelp help={help} name={name} />\n </div>\n )}\n <div className=\"flex flex-col gap-1\">\n <Popover onOpenChange={setOpen} open={open} {...props}>\n <PopoverTrigger asChild>\n <Button\n aria-expanded={open}\n aria-label=\"Carregando opções...\"\n className={cn(\n 'mt-0! justify-between w-full hover:bg-transparent cursor-pointer',\n !value && 'text-muted-foreground',\n error && 'border-destructive'\n )}\n disabled={disabled}\n id={id || name}\n role=\"combobox\"\n variant=\"outline\"\n >\n {isMultiple && selectedItems.length > 0 ? (\n <div className=\"flex gap-1 flex-1 min-w-0 overflow-hidden\">\n {selectedItems\n .slice(0, maxVisibleBadges)\n .map((item, index) => (\n <Badge\n className=\"truncate shrink min-w-0\"\n key={`badge-${item[itemKey]}-${index}`}\n variant=\"secondary\"\n >\n <span className=\"truncate block\">\n {item[fieldLabel] as string}\n </span>\n </Badge>\n ))}\n {selectedItems.length > maxVisibleBadges && (\n <Badge className=\"shrink-0\" variant=\"secondary\">\n +{selectedItems.length - maxVisibleBadges}\n </Badge>\n )}\n </div>\n ) : (\n <span className=\"truncate\">\n {!isMultiple && singleValue\n ? (singleValue[fieldLabel] as string)\n : placeholder || `Selecione a ${label?.toLowerCase()}`}\n </span>\n )}\n <div className=\"flex items-center shrink-0\">\n <div className=\"relative size-4\">\n {((isMultiple && selectedItems.length > 0) ||\n (!isMultiple && singleValue !== undefined)) && (\n <div\n className=\"absolute left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onChange?.(null);\n }}\n >\n <X className=\"size-4\" />\n </div>\n )}\n </div>\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-(--radix-popover-trigger-width) max-w-2xl p-0\">\n <Command shouldFilter={false}>\n <CommandInput\n onValueChange={onSearch}\n placeholder={\n searchPlaceholder ||\n `Pesquise por uma ${label?.toLowerCase()}`\n }\n value={search}\n />\n <CommandList>\n <ScrollArea className=\"h-fit max-h-[300px]\" id=\"scroll\">\n <ScrollAreaViewport className=\"w-full h-fit max-h-[300px] relative\">\n <CommandEmpty className=\"text-sm p-3 text-foreground/60\">\n {empty}\n </CommandEmpty>\n {isMultiple && selectedGroups.length > 0 && (\n <CommandGroup heading=\"Selecionados\">\n {selectedGroups.map((item) => (\n <CommandItem\n className={cn(\n 'transition-all p-2 gap-2 my-1 first:mt-0 last:mb-0',\n 'bg-accent! text-accent-foreground'\n )}\n key={`item-selected-${item[itemKey]}`}\n onSelect={() => handleItemSelect(item)}\n value={String(item[itemKey])}\n >\n <div\n className={cn(\n 'size-4 shrink-0 border-2 rounded flex items-center justify-center transition-colors',\n 'bg-primary border-primary'\n )}\n >\n <Check className=\"size-2.5 text-primary-foreground\" />\n </div>\n {item[fieldLabel] as string}\n </CommandItem>\n ))}\n </CommandGroup>\n )}\n {unselectedGroups.length > 0 &&\n unselectedGroups.some(\n (group) => group.items.length > 0\n ) &&\n unselectedGroups.map((group) => (\n <CommandGroup\n heading={\n group.heading ||\n (group.id === UNDEFINED_GROUP_ID && 'Outros')\n }\n key={`group-${group.id}`}\n >\n {group.items.map((item) => (\n <CommandItem\n className={cn(\n 'transition-all p-2',\n isMultiple && 'gap-2',\n !isMultiple &&\n isItemSelected(item) &&\n 'bg-accent! text-accent-foreground'\n )}\n key={`item-${item[itemKey]}`}\n onSelect={() => handleItemSelect(item)}\n value={String(item[itemKey])}\n >\n {isMultiple && (\n <div className=\"size-4 shrink-0 border-2 rounded flex items-center justify-center transition-colors border-input\" />\n )}\n {item[fieldLabel] as string}\n {!isMultiple && isItemSelected(item) && (\n <Check className=\"ml-auto h-4 w-4\" />\n )}\n </CommandItem>\n ))}\n </CommandGroup>\n ))}\n {extra && (\n <CommandItem\n className={cn(\n 'transition-all p-2 sticky bottom-0 bg-white hover:!bg-accent aria-selected:!bg-accent'\n )}\n onSelect={() => {\n extraOnClick?.(onChange);\n setOpen?.(false);\n }}\n >\n {extra}\n </CommandItem>\n )}\n </ScrollAreaViewport>\n <ScrollBar />\n </ScrollArea>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n {error && error}\n </div>\n </div>\n );\n}\n\nconst DEFAULT_GROUP_ID = 'selector-default-group';\nconst UNDEFINED_GROUP_ID = 'selector-undefined-group';\n\nconst buildGroups = <T,>(items: T[], groupBy?: keyof T): SelectorGroup<T>[] => {\n if (!groupBy) return [{ id: DEFAULT_GROUP_ID, items }];\n\n return Object.values(\n items.reduce<Record<string, SelectorGroup<T>>>((acc, item) => {\n const rawValue = item[groupBy];\n const heading = rawValue == null ? undefined : String(rawValue);\n const groupId = heading ?? UNDEFINED_GROUP_ID;\n\n if (!acc[groupId]) {\n acc[groupId] = { id: groupId, heading, items: [] };\n }\n\n acc[groupId].items.push(item);\n return acc;\n }, {})\n );\n};\n","'use client';\n\nimport { useEffect, useId, useState } from 'react';\n\nimport {\n type FieldPath,\n type FieldPathValue,\n type FieldValues,\n type UseControllerProps,\n useFormContext,\n} from 'react-hook-form';\nimport { useDebounce } from 'use-debounce';\n\nimport { FormField, FormItem, FormMessage } from '@/components/ui/form';\nimport { Selector, type SelectorProps } from '../ui/selector';\n\nimport {\n type Options,\n parseAsArrayOf,\n parseAsString,\n useQueryState,\n} from 'nuqs';\n\nexport type TUseData<T> = (\n search?: string,\n initialParams?: any,\n disabled?: boolean\n) => {\n data: T[];\n};\n\nexport type BaseRemoteSelectorProps<T> = {\n useData: TUseData<T>;\n initialParams?: Parameters<TUseData<T>>[1];\n initialRequest?: boolean;\n forceToggle?: boolean;\n} & Omit<\n SelectorProps<T>,\n 'items' | 'value' | 'onChange' | 'search' | 'onSearch' | 'open' | 'setOpen'\n>;\n\nexport interface RemoteSelectorFieldProps<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> extends UseControllerProps<TFieldValues, TFieldName> {\n disabled?: boolean;\n required?: boolean;\n defaultValue?: FieldPathValue<TFieldValues, TFieldName>;\n onChange?: (value: any) => Promise<void> | void;\n}\n\nexport function RemoteSelectorField<\n T,\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n className,\n required,\n defaultValue,\n onChange: onChangeCallback,\n useData,\n initialParams,\n initialRequest = false,\n forceToggle = false,\n ...props\n}: RemoteSelectorFieldProps<TFieldValues, TFieldName> &\n BaseRemoteSelectorProps<T>) {\n type TItem = NonNullable<ReturnType<TUseData<T>>['data']>[number];\n\n const { control } = useFormContext();\n const id = useId();\n\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n const [searchDebounced] = useDebounce(search, 100, {\n maxWait: 200,\n });\n\n const { data } = useData(\n searchDebounced,\n initialParams,\n !open && !initialRequest\n );\n\n useEffect(() => {\n setOpen(forceToggle);\n }, [forceToggle]);\n\n return (\n <FormField\n control={control}\n defaultValue={defaultValue}\n name={name}\n render={({ field, fieldState }) => (\n <FormItem className={className}>\n <Selector\n {...props}\n error={fieldState?.error && <FormMessage />}\n id={`${id}-${name.replaceAll('.', '-')}`}\n items={data as TItem[]}\n key={`selector-${field.name}-${field.value}`}\n name={name}\n onChange={(value: any) => {\n field.onChange(value as TItem);\n onChangeCallback?.(value as TItem);\n }}\n onSearch={setSearch}\n open={open}\n required={required}\n search={search}\n setOpen={setOpen}\n value={field.value as TItem}\n />\n </FormItem>\n )}\n rules={{\n required: required ? 'Campo obrigatório' : false,\n }}\n />\n );\n}\n\nexport interface RemoteSelectorQueryProps<T>\n extends BaseRemoteSelectorProps<T> {\n name: string;\n defaultValue?: string;\n options?: Options;\n onChange?: (value: T | T[] | null) => void;\n}\n\nexport function RemoteSelectorQuery<T>({\n name,\n defaultValue,\n options,\n useData,\n initialParams,\n initialRequest = false,\n forceToggle = false,\n onChange: onChangeCallback,\n fieldKey,\n fieldLabel,\n type = 'single',\n ...props\n}: RemoteSelectorQueryProps<T>) {\n type TItem = NonNullable<ReturnType<TUseData<T>>['data']>[number];\n\n const id = useId();\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n const [searchDebounced] = useDebounce(search, 100, {\n maxWait: 200,\n });\n\n const { data } = useData(\n searchDebounced,\n initialParams,\n !open && !initialRequest\n );\n\n useEffect(() => {\n setOpen(forceToggle);\n }, [forceToggle]);\n\n const itemKey = fieldKey || fieldLabel;\n const isMultiple = type === 'multiple';\n\n const parser = isMultiple\n ? parseAsArrayOf(parseAsString).withDefault([])\n : parseAsString.withDefault(defaultValue ?? '');\n\n const [queryIds, setQueryIds] = useQueryState(\n name,\n parser.withOptions({\n clearOnDefault: true,\n shallow: false,\n ...options,\n })\n );\n\n const value =\n isMultiple && Array.isArray(queryIds)\n ? queryIds\n .map((id) => data?.find((item) => String(item[itemKey]) === id))\n .filter((item): item is TItem => !!item)\n : data?.find((item) => String(item[itemKey]) === queryIds) || null;\n\n const handleChange = (newValue: T | T[] | null | undefined) => {\n if (!newValue) {\n setQueryIds(isMultiple ? ([] as any) : null);\n } else if (isMultiple && Array.isArray(newValue)) {\n setQueryIds(newValue.map((item) => String(item[itemKey])) as any);\n } else {\n setQueryIds(String((newValue as T)[itemKey]) as any);\n }\n onChangeCallback?.(newValue as T | T[] | null);\n };\n\n return (\n <Selector\n {...props}\n fieldKey={fieldKey}\n fieldLabel={fieldLabel}\n id={`${id}-${name}`}\n items={data as TItem[]}\n name={name}\n onChange={handleChange}\n onSearch={setSearch}\n open={open}\n search={search}\n setOpen={setOpen}\n type={type}\n value={value as TItem}\n />\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"remote-selector.js","names":["Command","CommandPrimitive","Command","id"],"sources":["../src/components/ui/badge.tsx","../src/components/ui/button.tsx","../src/components/ui/command.tsx","../src/components/ui/selector.tsx","../src/components/remote-selector/remote-selector.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default:\n 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n warning: 'border-transparent bg-warning text-warning-foreground',\n outline: 'text-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from 'react';\n\nimport { Slot } from '@radix-ui/react-slot';\n\nimport { cn } from '@/lib/utils';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost:\n 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean;\n }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n data-slot=\"button\"\n {...(props as any)}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","'use client';\n\nimport * as React from 'react';\n\nimport { SearchIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Command as CommandPrimitive } from 'cmdk';\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className\n )}\n data-slot=\"command\"\n {...props}\n />\n );\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n className=\"flex h-9 items-center gap-2 border-b px-3\"\n data-slot=\"command-input-wrapper\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n data-slot=\"command-input\"\n {...props}\n />\n </div>\n );\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n className={cn(\n 'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto',\n className\n )}\n data-slot=\"command-list\"\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n className=\"py-6 text-center text-sm\"\n data-slot=\"command-empty\"\n {...props}\n />\n );\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className\n )}\n data-slot=\"command-group\"\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n className={cn('bg-border -mx-1 h-px', className)}\n data-slot=\"command-separator\"\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n data-slot=\"command-item\"\n {...props}\n />\n );\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className\n )}\n data-slot=\"command-shortcut\"\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","'use client';\n\nimport { useEffect, useMemo } from 'react';\n\nimport type { PopoverProps } from '@radix-ui/react-popover';\nimport { ScrollArea, ScrollAreaViewport } from '@radix-ui/react-scroll-area';\n\nimport { Check, ChevronsUpDown, X } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Badge } from './badge';\nimport { Button } from './button';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from './command';\nimport { InputHelp } from './input-help';\nimport { Popover, PopoverContent, PopoverTrigger } from './popover';\nimport { ScrollBar } from './scroll-area';\n\nexport type SelectorOption = {\n id: string | number;\n name: string;\n value?: any;\n children?: SelectorOption[];\n};\n\nexport type SelectorProps<T> = {\n type?: 'single' | 'multiple';\n value?: T | T[];\n onChange?: (item: T | T[] | undefined | null) => void;\n search?: string;\n onSearch?: (search: string) => void;\n placeholder?: string;\n empty?: React.ReactNode;\n items: T[];\n fieldLabel: keyof T;\n fieldKey?: keyof T;\n groupBy?: keyof T;\n disabled?: boolean;\n searchPlaceholder?: string;\n label?: string;\n name?: string;\n className?: string;\n required?: boolean;\n error?: React.ReactNode;\n selectFirstIsOne?: boolean;\n help?: string;\n extra?: string;\n extraOnClick?: (\n onChange?: (item: T | T[] | undefined | null) => void\n ) => Promise<void> | void;\n open?: boolean;\n setOpen?: (open: boolean) => void;\n maxVisibleBadges?: number;\n id?: string;\n} & PopoverProps;\n\ntype SelectorGroup<T> = {\n id: string;\n heading?: string;\n items: T[];\n};\n\nexport function Selector<T>({\n type = 'single',\n value,\n onChange,\n search,\n onSearch,\n items,\n label,\n placeholder,\n fieldLabel,\n fieldKey,\n groupBy,\n searchPlaceholder,\n name,\n empty = 'Nenhuma opção encontrada...',\n disabled = false,\n className,\n required,\n error,\n selectFirstIsOne,\n help,\n extra,\n extraOnClick,\n open,\n setOpen,\n maxVisibleBadges = 3,\n id,\n ...props\n}: SelectorProps<T>) {\n const itemKey = fieldKey || fieldLabel;\n\n const isMultiple = type === 'multiple';\n const selectedItems = isMultiple && Array.isArray(value) ? value : [];\n const singleValue = !isMultiple && !Array.isArray(value) ? value : undefined;\n\n const isItemSelected = (item: T): boolean => {\n if (isMultiple) {\n return selectedItems.some(\n (selected) => selected[itemKey] === item[itemKey]\n );\n }\n return singleValue?.[itemKey] === item[itemKey];\n };\n\n const handleItemSelect = (item: T) => {\n if (isMultiple) {\n const isSelected = isItemSelected(item);\n const newValue = isSelected\n ? selectedItems.filter(\n (selected) => selected[itemKey] !== item[itemKey]\n )\n : [...selectedItems, item];\n onChange?.(newValue.length > 0 ? newValue : null);\n } else {\n onChange?.(item);\n setOpen?.(false);\n }\n };\n\n useEffect(() => {\n if (selectFirstIsOne && items && items.length === 1 && !value) {\n onChange?.(items[0] as any);\n }\n }, [items]);\n\n const { selectedGroups, unselectedGroups } = useMemo(() => {\n if (!isMultiple || selectedItems.length === 0) {\n return {\n selectedGroups: [],\n unselectedGroups: buildGroups(items, groupBy),\n };\n }\n\n const unselectedItems = items.filter((item) => !isItemSelected(item));\n\n return {\n selectedGroups: selectedItems,\n unselectedGroups: buildGroups(unselectedItems, groupBy),\n };\n }, [groupBy, items, isMultiple, selectedItems]);\n\n return (\n <div\n className={cn('w-full flex flex-col gap-1', className)}\n id={id || `selector-${name}`}\n >\n {label && (\n <div className=\"flex items-end gap-1.5\">\n <label\n className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n htmlFor={id || name}\n >\n {label}:\n {required && (\n <span className=\"text-red-500 text-lg leading-[1px]\">*</span>\n )}\n </label>\n\n <InputHelp help={help} name={name} />\n </div>\n )}\n <div className=\"flex flex-col gap-1\">\n <Popover onOpenChange={setOpen} open={open} {...props}>\n <PopoverTrigger asChild>\n <Button\n aria-expanded={open}\n aria-label=\"Carregando opções...\"\n className={cn(\n 'mt-0! justify-between w-full hover:bg-transparent cursor-pointer',\n !value && 'text-muted-foreground',\n error && 'border-destructive'\n )}\n disabled={disabled}\n id={id || name}\n role=\"combobox\"\n variant=\"outline\"\n >\n {isMultiple && selectedItems.length > 0 ? (\n <div className=\"flex gap-1 flex-1 min-w-0 overflow-hidden\">\n {selectedItems\n .slice(0, maxVisibleBadges)\n .map((item, index) => (\n <Badge\n className=\"truncate shrink min-w-0\"\n key={`badge-${item[itemKey]}-${index}`}\n variant=\"secondary\"\n >\n <span className=\"truncate block\">\n {item[fieldLabel] as string}\n </span>\n </Badge>\n ))}\n {selectedItems.length > maxVisibleBadges && (\n <Badge className=\"shrink-0\" variant=\"secondary\">\n +{selectedItems.length - maxVisibleBadges}\n </Badge>\n )}\n </div>\n ) : (\n <span className=\"truncate\">\n {!isMultiple && singleValue\n ? (singleValue[fieldLabel] as string)\n : placeholder || `Selecione a ${label?.toLowerCase()}`}\n </span>\n )}\n <div className=\"flex items-center shrink-0\">\n <div className=\"relative size-4\">\n {((isMultiple && selectedItems.length > 0) ||\n (!isMultiple && singleValue !== undefined)) && (\n <div\n className=\"absolute left-1/2 -translate-x-1/2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground\"\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onChange?.(null);\n }}\n >\n <X className=\"size-4\" />\n </div>\n )}\n </div>\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-(--radix-popover-trigger-width) max-w-2xl p-0\">\n <Command shouldFilter={false}>\n <CommandInput\n onValueChange={onSearch}\n placeholder={\n searchPlaceholder ||\n `Pesquise por uma ${label?.toLowerCase()}`\n }\n value={search}\n />\n <CommandList>\n <ScrollArea className=\"h-fit max-h-[300px]\" id=\"scroll\">\n <ScrollAreaViewport className=\"w-full h-fit max-h-[300px] relative\">\n <CommandEmpty className=\"text-sm p-3 text-foreground/60\">\n {empty}\n </CommandEmpty>\n {isMultiple && selectedGroups.length > 0 && (\n <CommandGroup heading=\"Selecionados\">\n {selectedGroups.map((item) => (\n <CommandItem\n className={cn(\n 'transition-all p-2 gap-2 my-1 first:mt-0 last:mb-0',\n 'bg-accent! text-accent-foreground'\n )}\n key={`item-selected-${item[itemKey]}`}\n onSelect={() => handleItemSelect(item)}\n value={String(item[itemKey])}\n >\n <div\n className={cn(\n 'size-4 shrink-0 border-2 rounded flex items-center justify-center transition-colors',\n 'bg-primary border-primary'\n )}\n >\n <Check className=\"size-2.5 text-primary-foreground\" />\n </div>\n {item[fieldLabel] as string}\n </CommandItem>\n ))}\n </CommandGroup>\n )}\n {unselectedGroups.length > 0 &&\n unselectedGroups.some(\n (group) => group.items.length > 0\n ) &&\n unselectedGroups.map((group) => (\n <CommandGroup\n heading={\n group.heading ||\n (group.id === UNDEFINED_GROUP_ID && 'Outros')\n }\n key={`group-${group.id}`}\n >\n {group.items.map((item) => (\n <CommandItem\n className={cn(\n 'transition-all p-2',\n isMultiple && 'gap-2',\n !isMultiple &&\n isItemSelected(item) &&\n 'bg-accent! text-accent-foreground'\n )}\n key={`item-${item[itemKey]}`}\n onSelect={() => handleItemSelect(item)}\n value={String(item[itemKey])}\n >\n {isMultiple && (\n <div className=\"size-4 shrink-0 border-2 rounded flex items-center justify-center transition-colors border-input\" />\n )}\n {item[fieldLabel] as string}\n {!isMultiple && isItemSelected(item) && (\n <Check className=\"ml-auto h-4 w-4\" />\n )}\n </CommandItem>\n ))}\n </CommandGroup>\n ))}\n {extra && (\n <CommandItem\n className={cn(\n 'transition-all p-2 sticky bottom-0 bg-white hover:!bg-accent aria-selected:!bg-accent'\n )}\n onSelect={() => {\n extraOnClick?.(onChange);\n setOpen?.(false);\n }}\n >\n {extra}\n </CommandItem>\n )}\n </ScrollAreaViewport>\n <ScrollBar />\n </ScrollArea>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n {error && error}\n </div>\n </div>\n );\n}\n\nconst DEFAULT_GROUP_ID = 'selector-default-group';\nconst UNDEFINED_GROUP_ID = 'selector-undefined-group';\n\nconst buildGroups = <T,>(items: T[], groupBy?: keyof T): SelectorGroup<T>[] => {\n if (!groupBy) return [{ id: DEFAULT_GROUP_ID, items }];\n\n return Object.values(\n items.reduce<Record<string, SelectorGroup<T>>>((acc, item) => {\n const rawValue = item[groupBy];\n const heading = rawValue == null ? undefined : String(rawValue);\n const groupId = heading ?? UNDEFINED_GROUP_ID;\n\n if (!acc[groupId]) {\n acc[groupId] = { id: groupId, heading, items: [] };\n }\n\n acc[groupId].items.push(item);\n return acc;\n }, {})\n );\n};\n","'use client';\n\nimport { useEffect, useId, useState } from 'react';\n\nimport {\n type FieldPath,\n type FieldPathValue,\n type FieldValues,\n type UseControllerProps,\n useController,\n useFormContext,\n} from 'react-hook-form';\nimport { useDebounce } from 'use-debounce';\n\nimport { FormField, FormItem, FormMessage } from '@/components/ui/form';\nimport { Selector, type SelectorProps } from '../ui/selector';\n\nimport {\n type Options,\n parseAsArrayOf,\n parseAsString,\n useQueryState,\n} from 'nuqs';\n\nexport type TUseData<T> = (\n search?: string,\n initialParams?: any,\n disabled?: boolean\n) => {\n data: T[];\n};\n\nexport type BaseRemoteSelectorProps<T> = {\n useData: TUseData<T>;\n initialParams?: Parameters<TUseData<T>>[1];\n initialRequest?: boolean;\n forceToggle?: boolean;\n} & Omit<\n SelectorProps<T>,\n 'items' | 'value' | 'onChange' | 'search' | 'onSearch' | 'open' | 'setOpen'\n>;\n\nexport interface RemoteSelectorFieldProps<\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> extends UseControllerProps<TFieldValues, TFieldName> {\n disabled?: boolean;\n required?: boolean;\n defaultValue?: FieldPathValue<TFieldValues, TFieldName>;\n onChange?: (value: any) => Promise<void> | void;\n nameValue?: string;\n}\n\nexport function RemoteSelectorField<\n T,\n TFieldValues extends FieldValues = FieldValues,\n TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n name,\n nameValue,\n className,\n required,\n defaultValue,\n onChange: onChangeCallback,\n useData,\n initialParams,\n initialRequest = false,\n forceToggle = false,\n ...props\n}: RemoteSelectorFieldProps<TFieldValues, TFieldName> &\n BaseRemoteSelectorProps<T>) {\n type TItem = NonNullable<ReturnType<TUseData<T>>['data']>[number];\n\n const { control, setValue } = useFormContext();\n const { field, fieldState } = useController({\n control,\n name,\n rules: { required: required ? 'Campo obrigatório' : false },\n defaultValue,\n });\n\n const id = useId();\n\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n const [searchDebounced] = useDebounce(search, 100, {\n maxWait: 200,\n });\n\n const { data } = useData(\n searchDebounced,\n initialParams,\n !open && !initialRequest\n );\n\n useEffect(() => {\n setOpen(forceToggle);\n }, [forceToggle]);\n\n return (\n <FormItem className={className}>\n <Selector\n {...props}\n error={fieldState?.error && <FormMessage />}\n id={`${id}-${name.replaceAll('.', '-')}`}\n items={data as TItem[]}\n key={`selector-${field.name}-${field.value}`}\n name={name}\n onChange={(value: any) => {\n field.onChange(value as TItem);\n if (nameValue && props.fieldKey) {\n if (Array.isArray(value)) {\n setValue(\n nameValue,\n value.map((item) => item[props.fieldKey] as string)\n );\n } else {\n setValue(nameValue, value[props.fieldKey] as string);\n }\n }\n onChangeCallback?.(value as TItem);\n }}\n onSearch={setSearch}\n open={open}\n required={required}\n search={search}\n setOpen={setOpen}\n value={field.value as TItem}\n />\n </FormItem>\n );\n}\n\nexport interface RemoteSelectorQueryProps<T>\n extends BaseRemoteSelectorProps<T> {\n name: string;\n defaultValue?: string;\n options?: Options;\n onChange?: (value: T | T[] | null) => void;\n}\n\nexport function RemoteSelectorQuery<T>({\n name,\n defaultValue,\n options,\n useData,\n initialParams,\n initialRequest = false,\n forceToggle = false,\n onChange: onChangeCallback,\n fieldKey,\n fieldLabel,\n type = 'single',\n ...props\n}: RemoteSelectorQueryProps<T>) {\n type TItem = NonNullable<ReturnType<TUseData<T>>['data']>[number];\n\n const id = useId();\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState('');\n const [searchDebounced] = useDebounce(search, 100, {\n maxWait: 200,\n });\n\n const { data } = useData(\n searchDebounced,\n initialParams,\n !open && !initialRequest\n );\n\n useEffect(() => {\n setOpen(forceToggle);\n }, [forceToggle]);\n\n const itemKey = fieldKey || fieldLabel;\n const isMultiple = type === 'multiple';\n\n const parser = isMultiple\n ? parseAsArrayOf(parseAsString).withDefault([])\n : parseAsString.withDefault(defaultValue ?? '');\n\n const [queryIds, setQueryIds] = useQueryState(\n name,\n parser.withOptions({\n clearOnDefault: true,\n shallow: false,\n ...options,\n })\n );\n\n const value =\n isMultiple && Array.isArray(queryIds)\n ? queryIds\n .map((id) => data?.find((item) => String(item[itemKey]) === id))\n .filter((item): item is TItem => !!item)\n : data?.find((item) => String(item[itemKey]) === queryIds) || null;\n\n const handleChange = (newValue: T | T[] | null | undefined) => {\n if (!newValue) {\n setQueryIds(isMultiple ? ([] as any) : null);\n } else if (isMultiple && Array.isArray(newValue)) {\n setQueryIds(newValue.map((item) => String(item[itemKey])) as any);\n } else {\n setQueryIds(String((newValue as T)[itemKey]) as any);\n }\n onChangeCallback?.(newValue as T | T[] | null);\n };\n\n return (\n <Selector\n {...props}\n fieldKey={fieldKey}\n fieldLabel={fieldLabel}\n id={`${id}-${name}`}\n items={data as TItem[]}\n name={name}\n onChange={handleChange}\n onSearch={setSearch}\n open={open}\n search={search}\n setOpen={setOpen}\n type={type}\n value={value as TItem}\n />\n );\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Options as Options$1 } from "./with-mask-DnMiJlek.js";
2
2
  import { FieldPath, FieldPathValue, FieldValues, UseControllerProps } from "react-hook-form";
3
- import * as react_jsx_runtime3 from "react/jsx-runtime";
3
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import { Options } from "nuqs";
5
5
 
6
6
  //#region src/components/text-field/TextField.d.ts
@@ -57,7 +57,7 @@ declare function InputText({
57
57
  name,
58
58
  onChange,
59
59
  ...props
60
- }: InputTextProps): react_jsx_runtime3.JSX.Element;
60
+ }: InputTextProps): react_jsx_runtime0.JSX.Element;
61
61
  interface TextFieldProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends UseControllerProps<TFieldValues, TFieldName> {
62
62
  disabled?: boolean;
63
63
  required?: boolean;
@@ -75,7 +75,7 @@ declare function TextField<TFieldValues extends FieldValues = FieldValues, TFiel
75
75
  transform,
76
76
  prefix,
77
77
  ...props
78
- }: TextFieldProps<TFieldValues, TFieldName> & Omit<InputTextProps, 'onChange'>): react_jsx_runtime3.JSX.Element;
78
+ }: TextFieldProps<TFieldValues, TFieldName> & Omit<InputTextProps, 'onChange'>): react_jsx_runtime0.JSX.Element;
79
79
  interface QueryTextFieldProps extends Omit<InputTextProps, 'onChange'> {
80
80
  name: string;
81
81
  defaultValue?: string;
@@ -87,7 +87,7 @@ declare function QueryTextField({
87
87
  defaultValue,
88
88
  options,
89
89
  ...props
90
- }: QueryTextFieldProps): react_jsx_runtime3.JSX.Element;
90
+ }: QueryTextFieldProps): react_jsx_runtime0.JSX.Element;
91
91
  interface CookieTextFieldProps extends InputTextProps {
92
92
  name: string;
93
93
  maxAge?: number;
@@ -97,7 +97,7 @@ declare function CookieTextField({
97
97
  maxAge,
98
98
  onChange,
99
99
  ...inputProps
100
- }: CookieTextFieldProps): react_jsx_runtime3.JSX.Element;
100
+ }: CookieTextFieldProps): react_jsx_runtime0.JSX.Element;
101
101
  //#endregion
102
102
  export { CookieTextField, type CookieTextFieldProps, InputText, type InputTextProps, QueryTextField, type QueryTextFieldProps, TextField, type TextFieldProps };
103
103
  //# sourceMappingURL=text-field.d.ts.map
@@ -4,7 +4,7 @@
4
4
  import { cn } from "./utils-C0f9Ma6r.js";
5
5
  import { Label } from "./label-BqtcCyMj.js";
6
6
  import { Input, withMask } from "./input-Cp3f1KmR.js";
7
- import { FormItem, InputHelp } from "./input-help-C_4FzHTq.js";
7
+ import { FormItem, InputHelp } from "./input-help-etTqPzYc.js";
8
8
  import { useController, useFormContext } from "react-hook-form";
9
9
  import { useEffect, useId, useState } from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "maquinaweb-ui",
3
- "version": "2.30.4",
3
+ "version": "2.32.0",
4
4
  "description": "A minimal React component library",
5
5
  "type": "module",
6
6
  "sideEffects": false,