@s_mart/form 9.2.0-beta.0 → 9.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,9 +1,9 @@
1
1
  import * as react_hook_form from 'react-hook-form';
2
- import { FieldValues, UseFormReturn, FormProviderProps, UseFormProps, UseControllerProps, ControllerProps } from 'react-hook-form';
2
+ import { FieldValues, UseFormReturn, FormProviderProps, UseFormProps, FieldPath, UseControllerProps, ControllerProps, FieldPathValue } from 'react-hook-form';
3
3
  import { z } from 'zod';
4
4
  import * as react from 'react';
5
5
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
- import { TextFieldProps as TextFieldProps$1, SelectProps as SelectProps$1, AutocompleteProps as AutocompleteProps$1, CheckboxProps as CheckboxProps$1, SwitchProps as SwitchProps$1, RadioProps as RadioProps$1, RadioGroupProps as RadioGroupProps$1, SliderProps as SliderProps$1 } from '@mui/material';
6
+ import { TextFieldProps as TextFieldProps$1, SelectProps as SelectProps$1, AutocompleteProps as AutocompleteProps$1, CheckboxProps as CheckboxProps$1, SwitchProps as SwitchProps$1, RadioGroupProps as RadioGroupProps$1, RadioProps as RadioProps$1, SliderProps as SliderProps$1, AutocompleteValue, AutocompleteFreeSoloValueMapping } from '@mui/material';
7
7
  import { DatePickerProps as DatePickerProps$1, TimePickerProps as TimePickerProps$1 } from '@mui/x-date-pickers';
8
8
 
9
9
  interface IFormProps<T extends FieldValues> extends IUseFormProps<T> {
@@ -66,7 +66,7 @@ declare const useForm: <TValues extends FieldValues>({ disableDefaultValuesUpdat
66
66
  declare function FormProvider<TFieldValues extends FieldValues>({ children, style, onSubmit, ...methods }: IFormProviderProps<TFieldValues>): react_jsx_runtime.JSX.Element;
67
67
 
68
68
  type Masks = 'cpf' | 'cnpj' | 'cpfCnpj' | 'cep' | 'telefone' | 'decimal' | 'decimal3' | 'decimal4' | 'decimal5' | 'porcentagem' | 'porcentagem0' | 'nome' | 'numero' | 'numeroPontuacao' | 'placa' | 'valor' | 'valor3' | 'valor4';
69
- type TextFieldProps = TextFieldProps$1 & UseControllerProps & {
69
+ type TextFieldProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = TextFieldProps$1 & UseControllerProps<TFieldValues, TFieldName> & {
70
70
  mask?: Masks;
71
71
  /**
72
72
  * @description Função que será executada quando o valor do input for alterado
@@ -107,12 +107,7 @@ type TextFieldProps = TextFieldProps$1 & UseControllerProps & {
107
107
  disableIconError?: boolean;
108
108
  };
109
109
 
110
- declare const _default$6: react.MemoExoticComponent<({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, required, mask, variant, info, parse, format, onInputChange, disableIconError, ...rest }: TextFieldProps) => react_jsx_runtime.JSX.Element>;
111
-
112
- /**
113
- * @deprecated usar SelectV2
114
- */
115
- declare const Select: react.MemoExoticComponent<({ name, rules, defaultValue, shouldUnregister, label, required, options, placeholder, clearable, disableOnChangeForm, multiple, info, footer, onChange: onChangeProp, disableIconError, variant, ...rest }: SelectProps) => react_jsx_runtime.JSX.Element>;
110
+ declare const TextField: <TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, required, mask, variant, info, parse, format, onInputChange, disableIconError, ...rest }: TextFieldProps<TFieldValues, TFieldName>) => react_jsx_runtime.JSX.Element;
116
111
 
117
112
  type ControllerSelect = Omit<ControllerProps, 'render' | 'control'>;
118
113
  /**
@@ -190,6 +185,11 @@ type SelectProps = Omit<SelectProps$1, 'onChange'> & ControllerSelect & {
190
185
  clearable?: boolean;
191
186
  };
192
187
 
188
+ /**
189
+ * @deprecated usar SelectV2
190
+ */
191
+ declare const Select: react.MemoExoticComponent<({ name, rules, defaultValue, shouldUnregister, label, required, options, placeholder, clearable, disableOnChangeForm, multiple, info, footer, onChange: onChangeProp, disableIconError, variant, ...rest }: SelectProps) => react_jsx_runtime.JSX.Element>;
192
+
193
193
  type ControllerSearchable = Omit<ControllerProps, 'render' | 'control'>;
194
194
  /**
195
195
  * @deprecated usar SearchableV2
@@ -375,7 +375,7 @@ type CreatableProps = Omit<AutocompleteProps$1<CreatableOption, true, true, true
375
375
  */
376
376
  declare const Creatable: react.MemoExoticComponent<({ name, rules, defaultValue, shouldUnregister, label, required, options, editable, footer, onEditOption, onCreateOption, textFieldProps, hideAddButton, multiple, info, onChange: onChangeProp, onInputChange, placeholder, disableIconError, ...rest }: CreatableProps) => react_jsx_runtime.JSX.Element>;
377
377
 
378
- type CheckboxProps = CheckboxProps$1 & UseControllerProps & {
378
+ type CheckboxProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = CheckboxProps$1 & UseControllerProps<TFieldValues, TFieldName> & {
379
379
  /**
380
380
  * O nome do checkbox que será renderizado na tela
381
381
  * @default ''
@@ -402,9 +402,9 @@ type CheckboxProps = CheckboxProps$1 & UseControllerProps & {
402
402
  disableIconError?: boolean;
403
403
  };
404
404
 
405
- declare const Checkbox: ({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, labelPlacement, required, disableIconError, onChange: onChangeProp, ...rest }: CheckboxProps) => react_jsx_runtime.JSX.Element;
405
+ declare const Checkbox: <TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, labelPlacement, required, disableIconError, onChange: onChangeProp, ...rest }: CheckboxProps<TFieldValues, TFieldName>) => react_jsx_runtime.JSX.Element;
406
406
 
407
- type SwitchProps = SwitchProps$1 & UseControllerProps & {
407
+ type SwitchProps<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>> = SwitchProps$1 & UseControllerProps<TFieldValues, TFieldName> & {
408
408
  /**
409
409
  * O nome do switch que será renderizado na tela
410
410
  * @default ''
@@ -431,30 +431,9 @@ type SwitchProps = SwitchProps$1 & UseControllerProps & {
431
431
  disableIconError?: boolean;
432
432
  };
433
433
 
434
- declare const Switch: ({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, labelPlacement, disableIconError, onChange: onChangeProp, ...rest }: SwitchProps) => react_jsx_runtime.JSX.Element;
434
+ declare const Switch: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>>({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, labelPlacement, disableIconError, onChange: onChangeProp, ...rest }: SwitchProps<TFieldValues, TFieldName>) => react_jsx_runtime.JSX.Element;
435
435
 
436
- type RadioProps = RadioProps$1 & {
437
- /**
438
- * O nome do checkbox que será renderizado na tela
439
- * @default ''
440
- * @example 'Nome do checkbox'
441
- * @type React.ReactNode
442
- * @memberof RadioProps
443
- */
444
- label?: React.ReactNode;
445
- /**
446
- * Posição do label em relação ao checkbox
447
- * @default 'end'
448
- * @type 'start' | 'end' | 'top' | 'bottom'
449
- * @example
450
- * <Radio label="Radio" labelPlacement="start" />
451
- */
452
- labelPlacement?: 'start' | 'end' | 'top' | 'bottom';
453
- };
454
-
455
- declare const RadioButton: ({ label, labelPlacement, ...rest }: RadioProps) => react_jsx_runtime.JSX.Element;
456
-
457
- type RadioGroupProps = RadioGroupProps$1 & UseControllerProps & {
436
+ type RadioGroupProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = RadioGroupProps$1 & UseControllerProps<TFieldValues, TFieldName> & {
458
437
  /**
459
438
  * O nome do checkbox que será renderizado na tela
460
439
  * @default ''
@@ -497,9 +476,30 @@ type RadioGroupProps = RadioGroupProps$1 & UseControllerProps & {
497
476
  disableIconError?: boolean;
498
477
  };
499
478
 
500
- declare const RadioGroup: ({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, required, children, orientation, disableIconError, ...rest }: RadioGroupProps) => react_jsx_runtime.JSX.Element;
479
+ declare const RadioGroup: <TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, required, children, orientation, disableIconError, ...rest }: RadioGroupProps<TFieldValues, TFieldName>) => react_jsx_runtime.JSX.Element;
480
+
481
+ type RadioProps = RadioProps$1 & {
482
+ /**
483
+ * O nome do checkbox que será renderizado na tela
484
+ * @default ''
485
+ * @example 'Nome do checkbox'
486
+ * @type React.ReactNode
487
+ * @memberof RadioProps
488
+ */
489
+ label?: React.ReactNode;
490
+ /**
491
+ * Posição do label em relação ao checkbox
492
+ * @default 'end'
493
+ * @type 'start' | 'end' | 'top' | 'bottom'
494
+ * @example
495
+ * <Radio label="Radio" labelPlacement="start" />
496
+ */
497
+ labelPlacement?: 'start' | 'end' | 'top' | 'bottom';
498
+ };
499
+
500
+ declare const RadioButton: ({ label, labelPlacement, ...rest }: RadioProps) => react_jsx_runtime.JSX.Element;
501
501
 
502
- type SliderProps = SliderProps$1 & UseControllerProps & {
502
+ type SliderProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = SliderProps$1 & UseControllerProps<TFieldValues, TFieldName> & {
503
503
  /**
504
504
  * O nome do switch que será renderizado na tela
505
505
  * @default ''
@@ -518,9 +518,9 @@ type SliderProps = SliderProps$1 & UseControllerProps & {
518
518
  labelPlacement?: 'start' | 'end' | 'top' | 'bottom';
519
519
  };
520
520
 
521
- declare const Slider: ({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, ...rest }: SliderProps) => react_jsx_runtime.JSX.Element;
521
+ declare const Slider: <TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>>({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, ...rest }: SliderProps<TFieldValues, TFieldName>) => react_jsx_runtime.JSX.Element;
522
522
 
523
- type DatePickerProps = UseControllerProps & Pick<TextFieldProps$1, 'label' | 'error' | 'helperText' | 'size' | 'fullWidth' | 'variant' | 'autoFocus' | 'placeholder'> & {
523
+ type DatePickerProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = UseControllerProps<TFieldValues, TFieldName> & Pick<TextFieldProps$1, 'label' | 'error' | 'helperText' | 'size' | 'fullWidth' | 'variant' | 'autoFocus' | 'placeholder'> & {
524
524
  datePickerProps?: Partial<DatePickerProps$1<any>>;
525
525
  /**
526
526
  * Se `true` irá adicionar um asterisco ao label do campo
@@ -544,9 +544,9 @@ type DatePickerProps = UseControllerProps & Pick<TextFieldProps$1, 'label' | 'er
544
544
  disableIconError?: boolean;
545
545
  };
546
546
 
547
- declare const _default$5: react.MemoExoticComponent<({ rules, name, defaultValue, shouldUnregister, control: controlFromProps, datePickerProps, label, required, placeholder, disabled, disableIconError, ...rest }: DatePickerProps) => react_jsx_runtime.JSX.Element>;
547
+ declare const _default$5: react.MemoExoticComponent<(<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ rules, name, defaultValue, shouldUnregister, control: controlFromProps, datePickerProps, label, required, placeholder, disabled, disableIconError, ...rest }: DatePickerProps<TFieldValues, TFieldName>) => react_jsx_runtime.JSX.Element)>;
548
548
 
549
- type TimePickerProps = UseControllerProps & Pick<TextFieldProps$1, 'label' | 'error' | 'helperText' | 'size' | 'fullWidth' | 'variant' | 'autoFocus' | 'placeholder'> & {
549
+ type TimePickerProps<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>> = UseControllerProps<TFieldValues, TFieldName> & Pick<TextFieldProps$1, 'label' | 'error' | 'helperText' | 'size' | 'fullWidth' | 'variant' | 'autoFocus' | 'placeholder'> & {
550
550
  timePickerProps?: Partial<TimePickerProps$1<any>>;
551
551
  /**
552
552
  * Se `true` irá adicionar um asterisco ao label do campo
@@ -570,7 +570,7 @@ type TimePickerProps = UseControllerProps & Pick<TextFieldProps$1, 'label' | 'er
570
570
  disableIconError?: boolean;
571
571
  };
572
572
 
573
- declare const _default$4: react.MemoExoticComponent<({ rules, defaultValue, shouldUnregister, name, control: controlFromProps, required, label, timePickerProps, placeholder, disabled, disableIconError, ...rest }: TimePickerProps) => react_jsx_runtime.JSX.Element>;
573
+ declare const _default$4: react.MemoExoticComponent<(<TFieldValues extends FieldValues, TFieldName extends FieldPath<TFieldValues>>({ rules, defaultValue, shouldUnregister, name, control: controlFromProps, required, label, timePickerProps, placeholder, disabled, disableIconError, ...rest }: TimePickerProps<TFieldValues, TFieldName>) => react_jsx_runtime.JSX.Element)>;
574
574
 
575
575
  type AutoCompleteOption = {
576
576
  key?: string | number;
@@ -609,18 +609,8 @@ type AutocompleteProps<ValueType = any> = Omit<UseControllerProps, 'control'> &
609
609
 
610
610
  declare const _default$3: react.MemoExoticComponent<({ name, defaultValue, rules, shouldUnregister, label, required, noOptionsText, placeholder, onInputChange, onChange, disableIconError, ...rest }: AutocompleteProps) => react_jsx_runtime.JSX.Element>;
611
611
 
612
- type FieldLabelProps = {
613
- label: React.ReactNode;
614
- required?: boolean;
615
- regular?: boolean;
616
- };
617
-
618
- declare const FieldLabel: ({ label, required, regular }: FieldLabelProps) => react_jsx_runtime.JSX.Element;
619
-
620
- type ConditionalArrayType<T, Multiple extends boolean | undefined = undefined> = Multiple extends true ? T[] : T;
621
-
622
- type SearchableV2Props<T extends FieldValues | string | number, Multiple extends boolean | undefined, _ValueType = unknown> = Omit<AutocompleteProps$1<T, Multiple, true, true>, 'renderInput' | 'size' | 'onInputChange' | 'onChange' | 'getOptionLabel' | 'getOptionKey' | 'defaultValue' | 'value'> & UseControllerProps & {
623
- options: T[];
612
+ type SearchableV2Props<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, FieldValue extends FieldPathValue<TFieldValues, TFieldName> = FieldPathValue<TFieldValues, TFieldName>, Multiple extends boolean = false, DisableClearable extends boolean = false, FreeSolo extends boolean = false, AutocompleteFieldValue extends AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo> = AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo>> = Omit<AutocompleteProps$1<FieldValue, Multiple, DisableClearable, FreeSolo>, 'renderInput' | 'size' | 'options' | 'onInputChange' | 'onChange' | 'getOptionLabel' | 'getOptionKey' | 'defaultValue' | 'value'> & UseControllerProps<TFieldValues, TFieldName> & {
613
+ options: FieldValue[];
624
614
  textFieldProps?: TextFieldProps$1;
625
615
  label?: React.ReactNode;
626
616
  required?: boolean;
@@ -642,37 +632,37 @@ type SearchableV2Props<T extends FieldValues | string | number, Multiple extends
642
632
  * montada à tela como um ícone de informação.
643
633
  */
644
634
  info?: React.ReactNode;
645
- defaultValue?: _ValueType;
646
- value?: _ValueType;
635
+ defaultValue?: AutocompleteFieldValue;
636
+ value?: AutocompleteFieldValue;
647
637
  placeholder?: string;
648
638
  onInputChange?: (value: string) => void;
649
- onChange?: (value: _ValueType | null) => void;
639
+ onChange?: (value: AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo>) => void;
650
640
  /**
651
641
  * Define a key unica da option
652
642
  */
653
- getOptionKey: (option: T) => string | number;
643
+ getOptionKey: (option: FieldValue | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | number;
654
644
  /**
655
645
  * Define a label da option
656
646
  */
657
- getOptionLabel: (option: T) => string;
647
+ getOptionLabel: (option: FieldValue | AutocompleteFreeSoloValueMapping<FreeSolo>) => string;
658
648
  /**
659
649
  * Componente renderizado embaixo da option da listagem
660
650
  */
661
- getOptionAfterLabel?: (option: T) => string | React.ReactNode;
651
+ getOptionAfterLabel?: (option: FieldValue | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | React.ReactNode;
662
652
  };
663
653
 
664
- declare const _default$2: <T extends string | number | FieldValues, Multiple extends boolean | undefined = undefined, _ValueType = ConditionalArrayType<T, Multiple>>({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, required, options, textFieldProps, noOptionsText, footer, multiple, info, placeholder, onChange: onChangeProp, onInputChange, getOptionAfterLabel, getOptionLabel, getOptionKey, ...rest }: SearchableV2Props<T, Multiple, _ValueType>) => react_jsx_runtime.JSX.Element;
654
+ declare const _default$2: <TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, FieldValue extends FieldPathValue<TFieldValues, TFieldName> = FieldPathValue<TFieldValues, TFieldName>, Multiple extends boolean = false, DisableClearable extends boolean = false, FreeSolo extends boolean = false, AutocompleteFieldValue extends AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo> = AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo>>(props: SearchableV2Props<TFieldValues, TFieldName, FieldValue, Multiple, DisableClearable, FreeSolo, AutocompleteFieldValue>) => react_jsx_runtime.JSX.Element;
665
655
 
666
656
  type FooterPropsV2 = {
667
657
  closeSelect: () => void;
668
658
  };
669
- type SelectV2Props<T extends FieldValues | string | number> = Omit<SelectProps$1, 'onChange' | 'multiple' | 'defaultValue' | 'variant'> & UseControllerProps & {
659
+ type SelectV2Props<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, FieldValue extends FieldPathValue<TFieldValues, TFieldName> = FieldPathValue<TFieldValues, TFieldName>> = Omit<SelectProps$1, 'onChange' | 'multiple' | 'defaultValue' | 'variant'> & UseControllerProps<TFieldValues, TFieldName> & {
670
660
  variant?: 'filled' | 'outlined' | 'standard';
671
661
  /**
672
662
  * As opções que serão renderizadas no select
673
663
  */
674
- options: T[];
675
- onChange?: (value: T | null) => void;
664
+ options: FieldValue[];
665
+ onChange?: (value: FieldValue | null) => void;
676
666
  /**
677
667
  * Função que renderiza o footer do select (opcional) - recebe como parâmetro a função closeSelect que fecha o select
678
668
  * @param {FooterProps} props
@@ -698,29 +688,29 @@ type SelectV2Props<T extends FieldValues | string | number> = Omit<SelectProps$1
698
688
  */
699
689
  clearable?: boolean;
700
690
  placeholder?: string;
701
- defaultValue?: T;
691
+ defaultValue?: FieldPathValue<TFieldValues, TFieldName>;
702
692
  /**
703
693
  * Define a key unica da option
704
694
  */
705
- getOptionKey: (option: T) => string | number;
695
+ getOptionKey: (option: FieldPathValue<TFieldValues, TFieldName>) => string | number;
706
696
  /**
707
697
  * Define a label da option
708
698
  */
709
- getOptionLabel: (option: T) => string;
699
+ getOptionLabel: (option: FieldPathValue<TFieldValues, TFieldName>) => string;
710
700
  /**
711
701
  * Componente renderizado embaixo da option da listagem
712
702
  */
713
- getOptionAfterLabel?: (option: T) => string | React.ReactNode;
703
+ getOptionAfterLabel?: (option: FieldPathValue<TFieldValues, TFieldName>) => string | React.ReactNode;
714
704
  /**
715
705
  * Ícone renderizado ao lado da label
716
706
  */
717
- getOptionIcon?: (option: T) => React.ReactNode;
707
+ getOptionIcon?: (option: FieldPathValue<TFieldValues, TFieldName>) => React.ReactNode;
718
708
  };
719
709
 
720
- declare const _default$1: <T extends string | number | FieldValues>({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, required, options, placeholder, clearable, info, footer, onChange: onChangeProp, variant, getOptionKey, getOptionLabel, getOptionAfterLabel, getOptionIcon, ...rest }: SelectV2Props<T>) => react_jsx_runtime.JSX.Element;
710
+ declare const _default$1: <TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>(props: SelectV2Props<TFieldValues, TFieldName>) => react_jsx_runtime.JSX.Element;
721
711
 
722
- type CreatableV2Props<T extends FieldValues | string | number, Multiple extends boolean | undefined, _ValueType = unknown> = Omit<AutocompleteProps$1<T, Multiple, true, true>, 'renderInput' | 'size' | 'onInputChange' | 'onChange' | 'getOptionLabel' | 'getOptionKey' | 'defaultValue' | 'value'> & UseControllerProps & {
723
- options: T[];
712
+ type CreatableV2Props<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, FieldValue extends FieldPathValue<TFieldValues, TFieldName> = FieldPathValue<TFieldValues, TFieldName>, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined, AutocompleteFieldValue extends AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo> = FieldValue> = Omit<AutocompleteProps$1<FieldValue, Multiple, DisableClearable, FreeSolo>, 'renderInput' | 'options' | 'size' | 'onInputChange' | 'onChange' | 'getOptionLabel' | 'getOptionKey' | 'defaultValue' | 'value'> & UseControllerProps<TFieldValues, TFieldName> & {
713
+ options: FieldValue[];
724
714
  textFieldProps?: TextFieldProps$1;
725
715
  label?: React.ReactNode;
726
716
  required?: boolean;
@@ -751,7 +741,7 @@ type CreatableV2Props<T extends FieldValues | string | number, Multiple extends
751
741
  * @type {(value) => void}
752
742
  * @memberof CreatableV2Props
753
743
  */
754
- onEditOption?: (value: _ValueType) => void;
744
+ onEditOption?: (value: AutocompleteFieldValue) => void;
755
745
  /**
756
746
  * Componente que renderiza no footer do searchable (opcional)
757
747
  * @example
@@ -766,22 +756,23 @@ type CreatableV2Props<T extends FieldValues | string | number, Multiple extends
766
756
  */
767
757
  info?: React.ReactNode;
768
758
  onInputChange?: (value: string) => void;
769
- onChange?: (value: _ValueType | null) => void;
759
+ onChange?: (value: AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo>) => void;
770
760
  placeholder?: string;
771
761
  /**
772
762
  * Define a key unica da option
773
763
  */
774
- getOptionKey: (option: T) => string | number;
764
+ getOptionKey: (option: FieldValue | AutocompleteFreeSoloValueMapping<FreeSolo>) => string | number;
775
765
  /**
776
766
  * Define a label da option
777
767
  */
778
- getOptionLabel: (option: T) => string;
768
+ getOptionLabel: (option: FieldValue | AutocompleteFreeSoloValueMapping<FreeSolo>) => string;
779
769
  /**
780
770
  * Componente renderizado embaixo da option da listagem
781
771
  */
782
- getOptionAfterLabel?: (option: T) => string | React.ReactNode;
772
+ getOptionAfterLabel?: (option: FieldValue) => string | React.ReactNode;
783
773
  };
784
774
 
785
- declare const _default: <T extends string | number | FieldValues, Multiple extends boolean | undefined = undefined, _ValueType = ConditionalArrayType<T, Multiple>>({ name, rules, defaultValue, shouldUnregister, control: controlFromProps, label, required, options, footer, showCreatableButton, showEditableButton, onEditOption, onCreateOption, getOptionKey, getOptionLabel, getOptionAfterLabel, textFieldProps, multiple, info, noOptionsText, onChange: onChangeProp, onInputChange, placeholder, ...rest }: CreatableV2Props<T, Multiple, _ValueType>) => react_jsx_runtime.JSX.Element;
775
+ declare function CreatableV2<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, FieldValue extends FieldPathValue<TFieldValues, TFieldName> = FieldPathValue<TFieldValues, TFieldName>, AutocompleteFieldValue extends AutocompleteValue<FieldValue, Multiple, DisableClearable, FreeSolo> = FieldValue, Multiple extends boolean | undefined = undefined, DisableClearable extends boolean | undefined = undefined, FreeSolo extends boolean | undefined = undefined>(props: CreatableV2Props<TFieldValues, TFieldName, FieldValue, Multiple, DisableClearable, FreeSolo, AutocompleteFieldValue>): react_jsx_runtime.JSX.Element;
776
+ declare const _default: typeof CreatableV2;
786
777
 
787
- export { _default$3 as Autocomplete, type AutocompleteProps, Checkbox, type CheckboxProps, Creatable, type CreatableOption, type CreatableProps, _default as CreatableV2, type CreatableV2Props, _default$5 as DatePicker, type DatePickerProps, FieldLabel, type FieldLabelProps, type FooterProps, type FooterPropsV2, Form, FormProvider, type IFormProps, type IFormProviderProps, type IUseFormProps, RadioButton, RadioGroup, type RadioGroupProps, type RadioProps, Searchable, type SearchableOption, type SearchableProps, _default$2 as SearchableV2, type SearchableV2Props, Select, type SelectOption, type SelectProps, _default$1 as SelectV2, type SelectV2Props, Slider, type SliderProps, Switch, type SwitchProps, _default$6 as TextField, type TextFieldProps, _default$4 as TimePicker, type TimePickerProps, useForm };
778
+ export { _default$3 as Autocomplete, type AutocompleteProps, Checkbox, type CheckboxProps, Creatable, type CreatableProps, _default as CreatableV2, type CreatableV2Props, _default$5 as DatePicker, type DatePickerProps, Form, FormProvider, type IFormProps, type IFormProviderProps, type IUseFormProps, RadioButton, RadioGroup, type RadioGroupProps, type RadioProps, Searchable, type SearchableProps, _default$2 as SearchableV2, type SearchableV2Props, Select, type SelectProps, _default$1 as SelectV2, type SelectV2Props, Slider, type SliderProps, Switch, type SwitchProps, TextField, type TextFieldProps, _default$4 as TimePicker, type TimePickerProps, useForm };
package/dist/index.mjs CHANGED
@@ -1,15 +1,15 @@
1
- import{FormProvider as no}from"react-hook-form";import{jsx as Ie}from"react/jsx-runtime";function ao({children:e,style:o,onSubmit:i,...a}){return Ie(no,{...a,children:Ie("form",{onSubmit:p=>{p.preventDefault(),p.stopPropagation(),i(p)},style:o,children:e})})}var be=ao;import{useEffect as so}from"react";import{useForm as po}from"react-hook-form";import{zodResolver as mo}from"@hookform/resolvers/zod";var uo=({disableDefaultValuesUpdate:e,onSubmit:o,...i})=>{let a=po({...i,resolver:i.schema&&mo(i.schema)});return so(()=>{e||a.reset(i.defaultValues)},[i.defaultValues,a.reset]),{...a,onSubmit:a.handleSubmit(p=>o(p,a))}},ve=uo;import{jsx as yo}from"react/jsx-runtime";function fo({children:e,style:o,...i}){let a=ve(i);return yo(be,{...a,style:o,children:typeof e=="function"?e(a):e})}var co=fo;import{InputAdornment as Po,Stack as To,TextField as So,Tooltip as ko}from"@mui/material";import{LIcon as Re}from"@s_mart/core";import*as Ae from"@s_mart/masks";import{lineEye as Io,lineEyeSlash as wo,lineInfoCircle as Vo}from"@s_mart/solid-icons";import{memo as Ro,useRef as Ao,useState as Bo}from"react";import{useController as Lo,useFormContext as Eo,useFormState as Do}from"react-hook-form";import{Indicator as xo}from"@s_mart/core";import{useFormState as Fo}from"react-hook-form";var L=(e,o)=>o.replace(/[[\]]/g,"").split(".").reduce((a,p)=>a?.[p],e);import{jsx as vo}from"react/jsx-runtime";var bo=({name:e,disableIcon:o,control:i})=>{let a=Fo({control:i,name:e}),p=L(a?.errors,e);return p?vo(xo,{severity:"error",icon:o?!1:void 0,children:p?.message}):null},V=bo;import{Typography as we}from"@mui/material";import{toRem as go}from"@s_mart/utils";import{jsx as Ve,jsxs as Co}from"react/jsx-runtime";var ho=({label:e,required:o,regular:i})=>Co("span",{style:{display:"flex",alignItems:"center",gap:go(2)},children:[Ve(we,{variant:"caption",style:{display:"flex",alignItems:"center"},sx:{fontWeight:i?400:700},children:e}),o&&Ve(we,{variant:"caption",color:"error",sx:{fontWeight:900},children:"*"})]}),k=ho;var T=class extends Error{constructor(o){super(`O componente ${o} precisa de um control para funcionar. Passe o control como prop ou coloque o componente dentro de um <Form />`),this.name="FormComponentPrecisaDeControl"}};import{jsx as U,jsxs as Be}from"react/jsx-runtime";var $o=({name:e,rules:o,defaultValue:i,shouldUnregister:a,control:p,label:F,required:S,mask:c,variant:g="outlined",info:C,parse:h,format:y,onInputChange:d,disableIconError:m,...u})=>{let P=Eo()?.control,l=p??P,b=Ao(i||void 0);if(!l)throw new T("TextField");let[w,n]=Bo(!1),x=s=>{let t=s;return t=y?.(s)??s,c?Ae?.[c]?.format(t):t},_=s=>{let t=s;return t=h?.(s)??t,c?Ae?.[c]?.parse(t,b.current):t},v=s=>{if(!s||c!=="porcentagem"&&c!=="porcentagem0")return;s?.stopPropagation();let t=(s?.target).value;if(t){let G=String(t);if(G.length>0){let j=G.indexOf("%");j>-1&&(s.currentTarget.selectionEnd=j)}}},{field:r}=Lo({control:l,name:e,rules:o,defaultValue:i,shouldUnregister:a}),E=Do({control:l,name:e}),f=L(E.errors,e);return Be(To,{children:[Be("div",{style:{display:"flex"},children:[F&&U("div",{children:U(k,{label:F,required:S})}),C&&U("div",{children:U(ko,{title:C,placement:"top",children:U("div",{style:{width:"fit-content"},children:U(Re,{icon:Vo,color:"#757575"})})})})]}),U(So,{variant:g,defaultValue:i,value:x(r.value||(r.value!=0?"":r.value)),onChange:s=>{let t=_(s?.target?.value);r.onChange(t),d?.(t),b.current=s.target.value},error:!!f,...u,type:u.type==="password"?w?"text":"password":u.type,autoComplete:u.autoComplete||"off",slotProps:{input:{onKeyDown:v,inputRef:r.ref,endAdornment:u.type==="password"&&U(Po,{position:"start",onClick:()=>n(!w),style:{cursor:"pointer"},children:U(Re,{icon:w?Io:wo,size:"24px",removeMargin:!0})}),...u.InputProps}}},e),U(V,{name:e,disableIcon:m,control:l})]})},Mo=Ro($o);import{Divider as Go,Grid as X,MenuItem as zo,Select as _o,Tooltip as Oo,useTheme as qo}from"@mui/material";import{IconButton as No,LIcon as Le}from"@s_mart/core";import{lineTimes as Uo}from"@s_mart/regular-icons";import{lineInfoCircle as Ho}from"@s_mart/solid-icons";import{colorPalette as Wo}from"@s_mart/tokens";import{memo as Yo,useState as jo}from"react";import{Controller as Jo,useFormContext as Ko}from"react-hook-form";import{Fragment as Qo,jsx as z,jsxs as ae}from"react/jsx-runtime";var Ee=Yo(({name:e,rules:o,defaultValue:i,shouldUnregister:a,label:p,required:F,options:S,placeholder:c,clearable:g,disableOnChangeForm:C=!1,multiple:h,info:y,footer:d,onChange:m,disableIconError:u,variant:P="outlined",...l})=>{let b=Ko(),{palette:w}=qo(),[n,x]=jo(!1);if(!b)throw new T("Select");let _=L(b.formState.errors,e);return z(Jo,{control:b.control,name:e,rules:o,defaultValue:i,shouldUnregister:a,render:({field:{value:v,onChange:r,ref:E}})=>ae(X,{sx:{display:"flex",flexDirection:"column"},children:[ae("div",{style:{display:"flex"},children:[p&&z(X,{item:!0,children:z(k,{label:p,required:F})}),y&&z(X,{item:!0,children:z(Oo,{title:y,placement:"top",children:z("div",{style:{width:"fit-content"},children:z(Le,{icon:Ho,color:"#757575"})})})})]}),ae(_o,{open:n,onOpen:()=>x(!0),onClose:()=>x(!1),displayEmpty:!!c,variant:P,autoComplete:"off",value:v?v||"":h?[]:"",renderValue:f=>{if(f.label)return f.label;if(c)return z("p",{style:{color:w.grey[400]},children:c})},multiple:h,onChange:f=>{!C&&r(f.target.value),m&&m(f.target.value,b.getValues())},error:!!_,size:l.size||"medium",inputRef:E,...l,endAdornment:ae(Qo,{children:[l.endAdornment,!!(g&&v)&&z(No,{variant:"text",color:"neutral",size:"small",sx:{borderRadius:"50%",position:"absolute",right:"2rem"},style:{padding:0},"aria-label":"Clear",title:"Clear",onClick:()=>{!C&&r(null),m&&m(null,b.getValues())},children:z(Le,{icon:Uo,color:Wo.neutral[100],size:"25px",removeMargin:!0})})]}),children:[S?.map((f,s)=>z(zo,{value:f,children:ae(X,{container:!0,direction:"column",children:[z(X,{item:!0,children:f.label}),f.afterLabel&&z(X,{item:!0,children:f.afterLabel})]})},s)),d&&[z(X,{sx:{px:2,py:1},children:z(Go,{})},"footer-divider"),z("div",{children:d({closeSelect:()=>x(!1)})},"footer-content")]]},e),z(V,{name:e,disableIcon:u,control:b.control})]})})});Ee.displayName="Select";var Xo=Ee;import{Autocomplete as Zo,Divider as De,Grid as J,TextField as er,Tooltip as or}from"@mui/material";import{LIcon as rr}from"@s_mart/core";import{lineInfoCircle as tr}from"@s_mart/solid-icons";import{colorPalette as ir}from"@s_mart/tokens";import{forwardRef as lr,memo as nr}from"react";import{Controller as ar,useFormContext as sr}from"react-hook-form";import{Fragment as pe,jsx as M,jsxs as Q}from"react/jsx-runtime";import{createElement as $e}from"react";var Me=nr(({name:e,rules:o,defaultValue:i,shouldUnregister:a,label:p,required:F,options:S,textFieldProps:c,noOptionsText:g,footer:C,multiple:h,info:y,placeholder:d,onChange:m,onInputChange:u,disableIconError:P,...l})=>{let b=sr();if(!b)throw new T("Searchable");let w=L(b.formState.errors,e);return M(ar,{control:b.control,name:e,rules:o,defaultValue:i,shouldUnregister:a,render:({field:{onChange:n,value:x,ref:_}})=>Q(J,{sx:{display:"flex",flexDirection:"column"},children:[Q("div",{style:{display:"flex"},children:[p&&M(J,{item:!0,children:M(k,{label:p,required:F})}),y&&M(J,{item:!0,children:M(or,{title:y,placement:"top",children:M("div",{style:{width:"fit-content"},children:M(rr,{icon:tr,color:"#757575"})})})})]}),M(Zo,{onChange:(v,r)=>{n(r),m?.(r,b.getValues())},onInputChange:(v,r,E)=>{E==="input"&&setTimeout(()=>{u?.(r,b.getValues())},0)},slotProps:{...l.slotProps||{},paper:{...(l.slotProps||{}).paper||{},sx:{border:`1px solid ${ir.neutral[30]}`,boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.15)"}},listbox:{component:lr(function(r,E){return Q(pe,{children:[M("ul",{...r,ref:E}),!!C&&M("div",{...r,children:Q(pe,{children:[M(J,{sx:{px:2,py:1},children:M(De,{})}),C]})},"searchable-footer")]})})}},value:x||(h?[]:null),options:S,multiple:h,readOnly:l.disabled,noOptionsText:Q(pe,{children:[g||"Nenhum resultado encontrado",C?Q(pe,{children:[M(J,{sx:{py:1},children:M(De,{})}),C]}):null]}),isOptionEqualToValue:(v,r)=>typeof v=="string"&&typeof r=="string"?v===r:typeof v=="object"&&typeof r=="object"?typeof v.value=="object"&&typeof r.value=="object"&&v.key!==void 0&&r.key!==void 0?v.key===r.key:v.value===r.value:!1,renderOption:(v,r)=>typeof r=="object"?$e("li",{...v,key:r.key||r.value},Q(J,{container:!0,direction:"column",children:[M(J,{item:!0,children:r.label}),r.afterLabel&&M(J,{item:!0,children:r.afterLabel})]})):$e("li",{...v,key:r},r),...l,renderInput:v=>M(er,{error:!!w,placeholder:d,...v,...c,inputRef:_})},e),M(V,{name:e,disableIcon:P,control:b.control})]})})});Me.displayName="Searchable";var pr=Me;import{forwardRef as ur,memo as fr}from"react";import{Controller as cr,useFormContext as yr}from"react-hook-form";import{isObject as xr,isEmpty as Fr}from"lodash-es";import{Grid as Z,Autocomplete as br,TextField as vr,Tooltip as gr,Divider as hr}from"@mui/material";import{LIcon as me,Button as Cr}from"@s_mart/core";import{colorPalette as Pr}from"@s_mart/tokens";import{linePlus as Oe,linePen as Tr,lineInfoCircle as Sr}from"@s_mart/solid-icons";import{toRem as qe}from"@s_mart/utils";import{css as Ge}from"@emotion/react";import{styled as dr}from"@mui/material";import{toRem as de}from"@s_mart/utils";var ze=Ge`
1
+ import{FormProvider as ao}from"react-hook-form";import{jsx as Ie}from"react/jsx-runtime";function so({children:e,style:o,onSubmit:l,...i}){return Ie(ao,{...i,children:Ie("form",{onSubmit:d=>{d.preventDefault(),d.stopPropagation(),l(d)},style:o,children:e})})}var be=so;import{useEffect as po}from"react";import{useForm as mo}from"react-hook-form";import{zodResolver as uo}from"@hookform/resolvers/zod";var co=({disableDefaultValuesUpdate:e,onSubmit:o,...l})=>{let i=mo({...l,resolver:l.schema&&uo(l.schema)});return po(()=>{e||i.reset(l.defaultValues)},[l.defaultValues,i.reset]),{...i,onSubmit:i.handleSubmit(d=>o(d,i))}},he=co;import{jsx as yo}from"react/jsx-runtime";function fo({children:e,style:o,...l}){let i=he(l);return yo(be,{...i,style:o,children:typeof e=="function"?e(i):e})}var Fo=fo;import{InputAdornment as vo,Stack as To,TextField as So,Tooltip as ko}from"@mui/material";import{LIcon as Le}from"@s_mart/core";import*as Re from"@s_mart/masks";import{lineEye as Io,lineEyeSlash as wo,lineInfoCircle as Ao}from"@s_mart/solid-icons";import{useRef as Lo,useState as Ro}from"react";import{useController as Do,useFormContext as Bo,useFormState as Eo}from"react-hook-form";import{Indicator as xo}from"@s_mart/core";import{useFormState as bo}from"react-hook-form";var D=(e,o)=>o.replace(/[[\]]/g,"").split(".").reduce((i,d)=>i?.[d],e);import{jsx as Po}from"react/jsx-runtime";var ho=({name:e,disableIcon:o,control:l})=>{let i=bo({control:l,name:e}),d=D(i?.errors,e);return d?Po(xo,{severity:"error",icon:o?!1:void 0,children:d?.message}):null},I=ho;import{Typography as we}from"@mui/material";import{toRem as go}from"@s_mart/utils";import{jsx as Ae,jsxs as Co}from"react/jsx-runtime";var Vo=({label:e,required:o,regular:l})=>Co("span",{style:{display:"flex",alignItems:"center",gap:go(2)},children:[Ae(we,{variant:"caption",style:{display:"flex",alignItems:"center"},sx:{fontWeight:l?400:700},children:e}),o&&Ae(we,{variant:"caption",color:"error",sx:{fontWeight:900},children:"*"})]}),S=Vo;var v=class extends Error{constructor(o){super(`O componente ${o} precisa de um control para funcionar. Passe o control como prop ou coloque o componente dentro de um <Form />`),this.name="FormComponentPrecisaDeControl"}};import{jsx as H,jsxs as De}from"react/jsx-runtime";var Mo=({name:e,rules:o,defaultValue:l,shouldUnregister:i,control:d,label:P,required:g,mask:f,variant:T="outlined",info:x,parse:C,format:m,onInputChange:u,disableIconError:a,...p})=>{let V=Bo()?.control,n=d??V,F=Lo(l||void 0);if(!n)throw new v("TextField");let[L,r]=Ro(!1),y=c=>{let t=c;return t=m?.(c)??c,f?Re?.[f]?.format(t):t},G=c=>{let t=c;return t=C?.(c)??t,f?Re?.[f]?.parse(t,F.current):t},b=c=>{if(!c||f!=="porcentagem"&&f!=="porcentagem0")return;c?.stopPropagation();let t=(c?.target).value;if(t){let k=String(t);if(k.length>0){let z=k.indexOf("%");z>-1&&(c.currentTarget.selectionEnd=z)}}},{field:s}=Do({control:n,name:e,rules:o,defaultValue:l,shouldUnregister:i}),w=Eo({control:n,name:e}),A=D(w.errors,e);return De(To,{children:[De("div",{style:{display:"flex"},children:[P&&H("div",{children:H(S,{label:P,required:g})}),x&&H("div",{children:H(ko,{title:x,placement:"top",children:H("div",{style:{width:"fit-content"},children:H(Le,{icon:Ao,color:"#757575"})})})})]}),H(So,{variant:T,defaultValue:l,value:y(s.value||(s.value!=0?"":s.value)),onChange:c=>{let t=G(c?.target?.value);s.onChange(t),u?.(t),F.current=c.target.value},error:!!A,...p,type:p.type==="password"?L?"text":"password":p.type,autoComplete:p.autoComplete||"off",slotProps:{input:{onKeyDown:b,inputRef:s.ref,endAdornment:p.type==="password"&&H(vo,{position:"start",onClick:()=>r(!L),style:{cursor:"pointer"},children:H(Le,{icon:L?Io:wo,size:"24px",removeMargin:!0})}),...p.InputProps}}},e),H(I,{name:e,disableIcon:a,control:n})]})},$o=Mo;import{Divider as No,Grid as Q,MenuItem as Oo,Select as Go,Tooltip as zo,useTheme as qo}from"@mui/material";import{IconButton as _o,LIcon as Be}from"@s_mart/core";import{lineTimes as Uo}from"@s_mart/regular-icons";import{lineInfoCircle as Ho}from"@s_mart/solid-icons";import{colorPalette as Ko}from"@s_mart/tokens";import{memo as Wo,useState as Yo}from"react";import{Controller as jo,useFormContext as Jo}from"react-hook-form";import{Fragment as Qo,jsx as O,jsxs as ae}from"react/jsx-runtime";var Ee=Wo(({name:e,rules:o,defaultValue:l,shouldUnregister:i,label:d,required:P,options:g,placeholder:f,clearable:T,disableOnChangeForm:x=!1,multiple:C,info:m,footer:u,onChange:a,disableIconError:p,variant:V="outlined",...n})=>{let F=Jo(),{palette:L}=qo(),[r,y]=Yo(!1);if(!F)throw new v("Select");let G=D(F.formState.errors,e);return O(jo,{control:F.control,name:e,rules:o,defaultValue:l,shouldUnregister:i,render:({field:{value:b,onChange:s,ref:w}})=>ae(Q,{sx:{display:"flex",flexDirection:"column"},children:[ae("div",{style:{display:"flex"},children:[d&&O(Q,{item:!0,children:O(S,{label:d,required:P})}),m&&O(Q,{item:!0,children:O(zo,{title:m,placement:"top",children:O("div",{style:{width:"fit-content"},children:O(Be,{icon:Ho,color:"#757575"})})})})]}),ae(Go,{open:r,onOpen:()=>y(!0),onClose:()=>y(!1),displayEmpty:!!f,variant:V,autoComplete:"off",value:b?b||"":C?[]:"",renderValue:A=>{if(A.label)return A.label;if(f)return O("p",{style:{color:L.grey[400]},children:f})},multiple:C,onChange:A=>{!x&&s(A.target.value),a&&a(A.target.value,F.getValues())},error:!!G,size:n.size||"medium",inputRef:w,...n,endAdornment:ae(Qo,{children:[n.endAdornment,!!(T&&b)&&O(_o,{variant:"text",color:"neutral",size:"small",sx:{borderRadius:"50%",position:"absolute",right:"2rem"},style:{padding:0},"aria-label":"Clear",title:"Clear",onClick:()=>{!x&&s(null),a&&a(null,F.getValues())},children:O(Be,{icon:Uo,color:Ko.neutral[100],size:"25px",removeMargin:!0})})]}),children:[g?.map((A,c)=>O(Oo,{value:A,children:ae(Q,{container:!0,direction:"column",children:[O(Q,{item:!0,children:A.label}),A.afterLabel&&O(Q,{item:!0,children:A.afterLabel})]})},c)),u&&[O(Q,{sx:{px:2,py:1},children:O(No,{})},"footer-divider"),O("div",{children:u({closeSelect:()=>y(!1)})},"footer-content")]]},e),O(I,{name:e,disableIcon:p,control:F.control})]})})});Ee.displayName="Select";var Xo=Ee;import{Autocomplete as Zo,Divider as Me,Grid as j,TextField as et,Tooltip as ot}from"@mui/material";import{LIcon as tt}from"@s_mart/core";import{lineInfoCircle as rt}from"@s_mart/solid-icons";import{colorPalette as lt}from"@s_mart/tokens";import{forwardRef as it,memo as nt}from"react";import{Controller as at,useFormContext as st}from"react-hook-form";import{Fragment as de,jsx as N,jsxs as Z}from"react/jsx-runtime";import{createElement as $e}from"react";var Ne=nt(({name:e,rules:o,defaultValue:l,shouldUnregister:i,label:d,required:P,options:g,textFieldProps:f,noOptionsText:T,footer:x,multiple:C,info:m,placeholder:u,onChange:a,onInputChange:p,disableIconError:V,...n})=>{let F=st();if(!F)throw new v("Searchable");let L=D(F.formState.errors,e);return N(at,{control:F.control,name:e,rules:o,defaultValue:l,shouldUnregister:i,render:({field:{onChange:r,value:y,ref:G}})=>Z(j,{sx:{display:"flex",flexDirection:"column"},children:[Z("div",{style:{display:"flex"},children:[d&&N(j,{item:!0,children:N(S,{label:d,required:P})}),m&&N(j,{item:!0,children:N(ot,{title:m,placement:"top",children:N("div",{style:{width:"fit-content"},children:N(tt,{icon:rt,color:"#757575"})})})})]}),N(Zo,{onChange:(b,s)=>{r(s),a?.(s,F.getValues())},onInputChange:(b,s,w)=>{w==="input"&&setTimeout(()=>{p?.(s,F.getValues())},0)},slotProps:{...n.slotProps||{},paper:{...(n.slotProps||{}).paper||{},sx:{border:`1px solid ${lt.neutral[30]}`,boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.15)"}},listbox:{component:it(function(s,w){return Z(de,{children:[N("ul",{...s,ref:w}),!!x&&N("div",{...s,children:Z(de,{children:[N(j,{sx:{px:2,py:1},children:N(Me,{})}),x]})},"searchable-footer")]})})}},value:y||(C?[]:null),options:g,multiple:C,readOnly:n.disabled,noOptionsText:Z(de,{children:[T||"Nenhum resultado encontrado",x?Z(de,{children:[N(j,{sx:{py:1},children:N(Me,{})}),x]}):null]}),isOptionEqualToValue:(b,s)=>typeof b=="string"&&typeof s=="string"?b===s:typeof b=="object"&&typeof s=="object"?typeof b.value=="object"&&typeof s.value=="object"&&b.key!==void 0&&s.key!==void 0?b.key===s.key:b.value===s.value:!1,renderOption:(b,s)=>typeof s=="object"?$e("li",{...b,key:s.key||s.value},Z(j,{container:!0,direction:"column",children:[N(j,{item:!0,children:s.label}),s.afterLabel&&N(j,{item:!0,children:s.afterLabel})]})):$e("li",{...b,key:s},s),...n,renderInput:b=>N(et,{error:!!L,placeholder:u,...b,...f,inputRef:G})},e),N(I,{name:e,disableIcon:V,control:F.control})]})})});Ne.displayName="Searchable";var dt=Ne;import{forwardRef as ut,memo as ct}from"react";import{Controller as ft,useFormContext as Ft}from"react-hook-form";import{isObject as yt,isEmpty as xt}from"lodash-es";import{Grid as ee,Autocomplete as bt,TextField as ht,Tooltip as Pt,Divider as gt}from"@mui/material";import{LIcon as me,Button as Vt}from"@s_mart/core";import{colorPalette as Ct}from"@s_mart/tokens";import{linePlus as qe,linePen as vt,lineInfoCircle as Tt}from"@s_mart/solid-icons";import{toRem as _e}from"@s_mart/utils";import{css as Oe}from"@emotion/react";import{styled as pt}from"@mui/material";import{toRem as pe}from"@s_mart/utils";var Ge=Oe`
2
2
  display: flex;
3
3
  align-items: center;
4
4
  justify-content: center;
5
- `,mr=e=>Ge`
5
+ `,mt=e=>Oe`
6
6
  .creatable,
7
7
  .editable {
8
- ${ze}
8
+ ${Ge}
9
9
 
10
10
  .divider {
11
11
  width: 1px;
12
- height: ${de(20)};
12
+ height: ${pe(20)};
13
13
  background-color: ${e.palette.grey[400]};
14
14
  }
15
15
 
@@ -20,9 +20,9 @@ import{FormProvider as no}from"react-hook-form";import{jsx as Ie}from"react/jsx-
20
20
  color: ${e.palette.grey[600]};
21
21
  border-radius: 50%;
22
22
 
23
- margin: 0 ${de(6)};
24
- width: ${de(28)};
25
- height: ${de(28)};
23
+ margin: 0 ${pe(6)};
24
+ width: ${pe(28)};
25
+ height: ${pe(28)};
26
26
 
27
27
  &:hover {
28
28
  cursor: pointer;
@@ -31,14 +31,14 @@ import{FormProvider as no}from"react-hook-form";import{jsx as Ie}from"react/jsx-
31
31
  }
32
32
  }
33
33
  }
34
- `,_e=dr("div")`
34
+ `,ze=pt("div")`
35
35
  display: flex;
36
36
 
37
37
  div.endAdornments {
38
38
  position: absolute;
39
39
  right: 0;
40
40
 
41
- ${ze}
41
+ ${Ge}
42
42
  }
43
43
 
44
44
  .MuiAutocomplete-endAdornment {
@@ -50,37 +50,37 @@ import{FormProvider as no}from"react-hook-form";import{jsx as Ie}from"react/jsx-
50
50
  transform: translate(0, 0);
51
51
  }
52
52
 
53
- ${({hideAddButton:e,theme:o})=>!e&&mr(o)}
54
- `;import{Fragment as ge,jsx as A,jsxs as H}from"react/jsx-runtime";import{createElement as Ne}from"react";var Ue=fr(({name:e,rules:o,defaultValue:i,shouldUnregister:a,label:p,required:F,options:S,editable:c,footer:g,onEditOption:C,onCreateOption:h,textFieldProps:y,hideAddButton:d,multiple:m,info:u,onChange:P,onInputChange:l,placeholder:b,disableIconError:w,...n})=>{let x=yr();if(!x)throw new T("Creatable");let _=L(x.formState.errors,e),v=d||n.disabled,r=t=>{let G=0;return y?.InputProps||(G+=2.5),v||(G+=2.56,E(t)&&(G+=2.56)),!n.disableClearable&&!n.disabled&&(G+=1.3),G+"rem"},E=t=>n.disabled?!1:c&&xr(t)&&!Fr(t);console.warn=()=>{};let f=t=>{h?h(t):console.error("onCreateOption n\xE3o foi definido")},s=t=>{C?C(t):console.error("onEditOption n\xE3o foi definido")};return A(cr,{control:x.control,name:e,rules:o,defaultValue:i,shouldUnregister:a,render:({field:{value:t,onChange:G,ref:j}})=>{let ne=t?.label||t?.value||t;return H(Z,{sx:{display:"flex",flexDirection:"column"},children:[H("div",{style:{display:"flex"},children:[p&&A(Z,{item:!0,children:A(k,{label:p,required:F})}),u&&A(Z,{item:!0,children:A(gr,{title:u,placement:"top",children:A("div",{style:{width:"fit-content"},children:A(me,{icon:Sr,color:"#757575"})})})})]}),A(_e,{hideAddButton:v,children:A(br,{fullWidth:!0,onChange:(R,I)=>{G(I),P?.(I,x.getValues())},onInputChange:(R,I,ie)=>{ie==="input"&&setTimeout(()=>{l?.(I,x.getValues())},0)},slotProps:{...n.slotProps||{},paper:{...(n.slotProps||{}).paper||{},sx:{border:`1px solid ${Pr.neutral[30]}`,boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.15)"}},listbox:{component:ur(function(I,ie){return H(ge,{children:[A("ul",{...I,ref:ie}),!!g&&A("div",{...I,children:H(ge,{children:[A(Z,{sx:{px:2,py:1},children:A(hr,{})}),g]})},"creatable-footer")]})})}},options:S,value:t||(m?[]:null),multiple:m,readOnly:n.disabled,noOptionsText:v?void 0:H(Cr,{sx:{justifyContent:"flex-start",padding:`${qe(6)} ${qe(-16)}`,margin:0},fullWidth:!0,onClick:()=>f(t),variant:"text",startIcon:A(me,{icon:Oe}),children:["Adicionar ",ne&&`"${ne}"`]}),isOptionEqualToValue:(R,I)=>I?typeof R=="string"&&typeof I=="string"?R===I:typeof R=="object"&&typeof I=="object"?typeof R.value=="object"&&typeof I.value=="object"&&R.key!==void 0&&I.key!==void 0?R.key===I.key:R.value===I.value:typeof R=="object"&&typeof I=="string":!1,renderOption:(R,I)=>typeof I=="object"?Ne("li",{...R,key:I.key||I.value},H(Z,{container:!0,direction:"column",children:[A(Z,{item:!0,children:I.label}),I.afterLabel&&A(Z,{item:!0,children:I.afterLabel})]})):Ne("li",{...R,key:I},I),...n,sx:{"& div.MuiInputBase-root":{paddingRight:`${r(t)} !important`},...n.sx},renderInput:R=>A(vr,{placeholder:b,...R,error:!!_,...y,slotProps:{input:{...R.InputProps,inputRef:j,endAdornment:H("div",{className:"endAdornments",children:[R.InputProps.endAdornment,!v&&H(ge,{children:[E(t)?H("div",{className:"editable",children:[A("div",{className:"divider"}),A("div",{className:"button",onClick:()=>s(t),children:A(me,{icon:Tr,size:"24px",removeMargin:!0})})]}):null,H("div",{className:"creatable",children:[A("div",{className:"divider"}),A("div",{className:"button",onClick:()=>f(t),children:A(me,{icon:Oe,size:"24px",removeMargin:!0})})]})]})]})}}})},e)}),A(V,{name:e,disableIcon:w,control:x.control})]})}})});Ue.displayName="Creatable";var kr=Ue;import{useController as Ir,useFormContext as wr}from"react-hook-form";import{Checkbox as Vr,FormControlLabel as Rr}from"@mui/material";import{jsx as ue,jsxs as Lr}from"react/jsx-runtime";var Ar=({name:e,rules:o,defaultValue:i,shouldUnregister:a,control:p,label:F,labelPlacement:S,required:c,disableIconError:g,onChange:C,...h})=>{let y=wr()?.control,d=p??y;if(!d)throw new T("Checkbox");let{field:m}=Ir({control:d,name:e,rules:o,defaultValue:i,shouldUnregister:a});return Lr("span",{children:[ue(Rr,{control:ue(Vr,{checked:!!m.value,value:m.value??"",defaultValue:m.value,onChange:(u,P)=>{m.onChange(u,P),C?.(u,P)},...h},e),label:ue(k,{label:F,required:c,regular:!0}),labelPlacement:S||"end"}),ue(V,{name:e,disableIcon:g,control:d})]})},Br=Ar;import{FormControlLabel as Er,Stack as Dr,Switch as $r}from"@mui/material";import{useController as Mr,useFormContext as Gr}from"react-hook-form";import{jsx as fe,jsxs as Or}from"react/jsx-runtime";var zr=({name:e,rules:o,defaultValue:i,shouldUnregister:a,control:p,label:F,labelPlacement:S,disableIconError:c,onChange:g,...C})=>{let h=Gr()?.control,y=p??h;if(!y)throw new T("Switch");let{field:d}=Mr({control:y,name:e,rules:o,defaultValue:i,shouldUnregister:a});return Or(Dr,{children:[fe(Er,{control:fe($r,{value:d.value??"",checked:d.value??!1,defaultValue:d.value,onChange:(m,u)=>{d.onChange(m,u),g?.(m,u)},...C},e),label:fe(k,{label:F}),labelPlacement:S||"end"}),fe(V,{name:e,disableIcon:c,control:y})]})},_r=zr;import{FormControlLabel as qr,Grid2 as Nr,Radio as Ur}from"@mui/material";import{jsx as ce}from"react/jsx-runtime";var Hr=({label:e,labelPlacement:o,...i})=>ce(Nr,{sx:{display:"flex",flexDirection:"column"},children:ce(qr,{control:ce(Ur,{...i}),label:ce(k,{label:e}),labelPlacement:o||"end"})}),Wr=Hr;import{RadioGroup as Yr,Stack as jr}from"@mui/material";import{useController as Jr,useFormContext as Kr}from"react-hook-form";import{jsx as he,jsxs as Zr}from"react/jsx-runtime";var Xr=({name:e,rules:o,defaultValue:i,shouldUnregister:a,control:p,label:F,required:S,children:c,orientation:g="row",disableIconError:C,...h})=>{let y=Kr()?.control,d=p??y;if(!d)throw new T("RadioGroup");let{field:m}=Jr({control:d,name:e,rules:o,defaultValue:i,shouldUnregister:a});return Zr(jr,{children:[F&&he(k,{label:F,required:S}),he(Yr,{value:m.value||"",name:e,...h,onChange:u=>{h?.onChange?.(u,u.target?.value),m.onChange(u)},style:{display:"flex",flexDirection:g},children:c},e),he(V,{name:e,disableIcon:C,control:d})]})},Qr=Xr;import{useController as et,useFormContext as ot}from"react-hook-form";import{Slider as rt}from"@mui/material";import{jsx as lt}from"react/jsx-runtime";var tt=({name:e,rules:o,defaultValue:i,shouldUnregister:a,control:p,...F})=>{let S=ot()?.control,c=p??S;if(!c)throw new T("Slider");let{field:g}=et({control:c,name:e,rules:o,defaultValue:i,shouldUnregister:a});return lt(rt,{value:g.value||F?.min||0,onChange:g.onChange,valueLabelDisplay:"auto",...F},e)},it=tt;import{Stack as dt,TextField as mt}from"@mui/material";import{AdapterDayjs as ut}from"@mui/x-date-pickers/AdapterDayjs";import{DatePicker as ft}from"@mui/x-date-pickers/DatePicker";import{LocalizationProvider as ct}from"@mui/x-date-pickers/LocalizationProvider";import{ptBR as yt}from"@mui/x-date-pickers/locales/ptBR";import{composeValidators as xt,date as We}from"@s_mart/rules";import Ft from"dayjs/locale/pt-br";import{memo as bt}from"react";import{useController as vt,useFormContext as gt,useFormState as ht}from"react-hook-form";import{IconButton as nt,styled as at}from"@mui/material";import{toRem as W}from"@s_mart/utils";var st=e=>{switch(e){case"small":return W(16);default:case"medium":return W(20);case"large":return W(24)}},pt=e=>{switch(e){case"small":return`${W(2)} ${W(8)}`;default:case"medium":return`${W(6)} ${W(8)}`;case"large":return`${W(10)}`}},He=at(nt)`
53
+ ${({hideAddButton:e,theme:o})=>!e&&mt(o)}
54
+ `;import{Fragment as Pe,jsx as R,jsxs as K}from"react/jsx-runtime";import{createElement as Ue}from"react";var He=ct(({name:e,rules:o,defaultValue:l,shouldUnregister:i,label:d,required:P,options:g,editable:f,footer:T,onEditOption:x,onCreateOption:C,textFieldProps:m,hideAddButton:u,multiple:a,info:p,onChange:V,onInputChange:n,placeholder:F,disableIconError:L,...r})=>{let y=Ft();if(!y)throw new v("Creatable");let G=D(y.formState.errors,e),b=u||r.disabled,s=t=>{let k=0;return m?.InputProps||(k+=2.5),b||(k+=2.56,w(t)&&(k+=2.56)),!r.disableClearable&&!r.disabled&&(k+=1.3),k+"rem"},w=t=>r.disabled?!1:f&&yt(t)&&!xt(t);console.warn=()=>{};let A=t=>{C?C(t):console.error("onCreateOption n\xE3o foi definido")},c=t=>{x?x(t):console.error("onEditOption n\xE3o foi definido")};return R(ft,{control:y.control,name:e,rules:o,defaultValue:l,shouldUnregister:i,render:({field:{value:t,onChange:k,ref:z}})=>{let J=t?.label||t?.value||t;return K(ee,{sx:{display:"flex",flexDirection:"column"},children:[K("div",{style:{display:"flex"},children:[d&&R(ee,{item:!0,children:R(S,{label:d,required:P})}),p&&R(ee,{item:!0,children:R(Pt,{title:p,placement:"top",children:R("div",{style:{width:"fit-content"},children:R(me,{icon:Tt,color:"#757575"})})})})]}),R(ze,{hideAddButton:b,children:R(bt,{fullWidth:!0,onChange:(B,h)=>{k(h),V?.(h,y.getValues())},onInputChange:(B,h,ne)=>{ne==="input"&&setTimeout(()=>{n?.(h,y.getValues())},0)},slotProps:{...r.slotProps||{},paper:{...(r.slotProps||{}).paper||{},sx:{border:`1px solid ${Ct.neutral[30]}`,boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.15)"}},listbox:{component:ut(function(h,ne){return K(Pe,{children:[R("ul",{...h,ref:ne}),!!T&&R("div",{...h,children:K(Pe,{children:[R(ee,{sx:{px:2,py:1},children:R(gt,{})}),T]})},"creatable-footer")]})})}},options:g,value:t||(a?[]:null),multiple:a,readOnly:r.disabled,noOptionsText:b?void 0:K(Vt,{sx:{justifyContent:"flex-start",padding:`${_e(6)} ${_e(-16)}`,margin:0},fullWidth:!0,onClick:()=>A(t),variant:"text",startIcon:R(me,{icon:qe}),children:["Adicionar ",J&&`"${J}"`]}),isOptionEqualToValue:(B,h)=>h?typeof B=="string"&&typeof h=="string"?B===h:typeof B=="object"&&typeof h=="object"?typeof B.value=="object"&&typeof h.value=="object"&&B.key!==void 0&&h.key!==void 0?B.key===h.key:B.value===h.value:typeof B=="object"&&typeof h=="string":!1,renderOption:(B,h)=>typeof h=="object"?Ue("li",{...B,key:h.key||h.value},K(ee,{container:!0,direction:"column",children:[R(ee,{item:!0,children:h.label}),h.afterLabel&&R(ee,{item:!0,children:h.afterLabel})]})):Ue("li",{...B,key:h},h),...r,sx:{"& div.MuiInputBase-root":{paddingRight:`${s(t)} !important`},...r.sx},renderInput:B=>R(ht,{placeholder:F,...B,error:!!G,...m,slotProps:{input:{...B.InputProps,inputRef:z,endAdornment:K("div",{className:"endAdornments",children:[B.InputProps.endAdornment,!b&&K(Pe,{children:[w(t)?K("div",{className:"editable",children:[R("div",{className:"divider"}),R("div",{className:"button",onClick:()=>c(t),children:R(me,{icon:vt,size:"24px",removeMargin:!0})})]}):null,K("div",{className:"creatable",children:[R("div",{className:"divider"}),R("div",{className:"button",onClick:()=>A(t),children:R(me,{icon:qe,size:"24px",removeMargin:!0})})]})]})]})}}})},e)}),R(I,{name:e,disableIcon:L,control:y.control})]})}})});He.displayName="Creatable";var St=He;import{useController as kt,useFormContext as It}from"react-hook-form";import{Checkbox as wt,FormControlLabel as At}from"@mui/material";import{jsx as ue,jsxs as Dt}from"react/jsx-runtime";var Lt=({name:e,rules:o,defaultValue:l,shouldUnregister:i,control:d,label:P,labelPlacement:g,required:f,disableIconError:T,onChange:x,...C})=>{let m=It()?.control,u=d??m;if(!u)throw new v("Checkbox");let{field:a}=kt({control:u,name:e,rules:o,defaultValue:l,shouldUnregister:i});return Dt("span",{children:[ue(At,{control:ue(wt,{checked:!!a.value,value:a.value??"",defaultValue:a.value,onChange:(p,V)=>{a.onChange(p,V),x?.(p,V)},...C},e),label:ue(S,{label:P,required:f,regular:!0}),labelPlacement:g||"end"}),ue(I,{name:e,disableIcon:T,control:u})]})},Rt=Lt;import{FormControlLabel as Bt,Stack as Et,Switch as Mt}from"@mui/material";import{useController as $t,useFormContext as Nt}from"react-hook-form";import{jsx as ce,jsxs as zt}from"react/jsx-runtime";var Ot=({name:e,rules:o,defaultValue:l,shouldUnregister:i,control:d,label:P,labelPlacement:g,disableIconError:f,onChange:T,...x})=>{let C=Nt()?.control,m=d??C;if(!m)throw new v("Switch");let{field:u}=$t({control:m,name:e,rules:o,defaultValue:l,shouldUnregister:i});return zt(Et,{children:[ce(Bt,{control:ce(Mt,{value:u.value??"",checked:u.value??!1,defaultValue:u.value,onChange:(a,p)=>{u.onChange(a,p),T?.(a,p)},...x},e),label:ce(S,{label:P}),labelPlacement:g||"end"}),ce(I,{name:e,disableIcon:f,control:m})]})},Gt=Ot;import{RadioGroup as qt,Stack as _t}from"@mui/material";import{useController as Ut,useFormContext as Ht}from"react-hook-form";import{jsx as ge,jsxs as Yt}from"react/jsx-runtime";var Kt=({name:e,rules:o,defaultValue:l,shouldUnregister:i,control:d,label:P,required:g,children:f,orientation:T="row",disableIconError:x,...C})=>{let m=Ht()?.control,u=d??m;if(!u)throw new v("RadioGroup");let{field:a}=Ut({control:u,name:e,rules:o,defaultValue:l,shouldUnregister:i});return Yt(_t,{children:[P&&ge(S,{label:P,required:g}),ge(qt,{value:a.value||"",name:e,...C,onChange:p=>{C?.onChange?.(p,p.target?.value),a.onChange(p)},style:{display:"flex",flexDirection:T},children:f},e),ge(I,{name:e,disableIcon:x,control:u})]})},Wt=Kt;import{FormControlLabel as jt,Grid2 as Jt,Radio as Xt}from"@mui/material";import{jsx as fe}from"react/jsx-runtime";var Qt=({label:e,labelPlacement:o,...l})=>fe(Jt,{sx:{display:"flex",flexDirection:"column"},children:fe(jt,{control:fe(Xt,{...l}),label:fe(S,{label:e}),labelPlacement:o||"end"})}),Zt=Qt;import{useController as er,useFormContext as or}from"react-hook-form";import{Slider as tr}from"@mui/material";import{jsx as ir}from"react/jsx-runtime";var rr=({name:e,rules:o,defaultValue:l,shouldUnregister:i,control:d,...P})=>{let g=or()?.control,f=d??g;if(!f)throw new v("Slider");let{field:T}=er({control:f,name:e,rules:o,defaultValue:l,shouldUnregister:i});return ir(tr,{value:T.value||P?.min||0,onChange:T.onChange,valueLabelDisplay:"auto",...P},e)},lr=rr;import{Stack as pr,TextField as mr}from"@mui/material";import{AdapterDayjs as ur}from"@mui/x-date-pickers/AdapterDayjs";import{DatePicker as cr}from"@mui/x-date-pickers/DatePicker";import{LocalizationProvider as fr}from"@mui/x-date-pickers/LocalizationProvider";import{ptBR as Fr}from"@mui/x-date-pickers/locales/ptBR";import{composeValidators as yr,date as We}from"@s_mart/rules";import xr from"dayjs/locale/pt-br";import{memo as br}from"react";import{useController as hr,useFormContext as Pr,useFormState as gr}from"react-hook-form";import{IconButton as nr,styled as ar}from"@mui/material";import{toRem as W}from"@s_mart/utils";var sr=e=>{switch(e){case"small":return W(16);default:case"medium":return W(20);case"large":return W(24)}},dr=e=>{switch(e){case"small":return`${W(2)} ${W(8)}`;default:case"medium":return`${W(6)} ${W(8)}`;case"large":return`${W(10)}`}},Ke=ar(nr)`
55
55
  margin: 0px;
56
56
 
57
- padding: ${({size:e})=>pt(e)};
57
+ padding: ${({size:e})=>dr(e)};
58
58
  border-radius: 0 ${W(4)} ${W(4)} 0;
59
59
 
60
60
  svg {
61
- width: ${({size:e})=>st(e)} !important;
61
+ width: ${({size:e})=>sr(e)} !important;
62
62
  }
63
- `;import{jsx as ye,jsxs as St}from"react/jsx-runtime";import{createElement as Tt}from"react";var Ct=({rules:e,name:o,defaultValue:i,shouldUnregister:a,control:p,datePickerProps:F,label:S,required:c,placeholder:g,disabled:C,disableIconError:h,...y})=>{let d=gt()?.control,m=p??d;if(!m)throw new T("DatePicker");let u=ht({control:m,name:o}),P=L(u.errors,o),l=F?.format||"DD/MM/YYYY",b=e?xt([We(l),e]):We(l),{field:w}=vt({control:m,name:o,rules:b,defaultValue:i,shouldUnregister:a});return ye(ct,{dateAdapter:ut,adapterLocale:Ft,localeText:yt.components.MuiLocalizationProvider.defaultProps.localeText,children:St(dt,{children:[S&&ye(k,{label:S,required:c}),Tt(ft,{...F,key:o,value:w.value??null,format:l,onChange:(n,x)=>{w.onChange(n,x),F?.onChange?.(n,x)},disabled:C,slots:{textField:mt,openPickerButton:n=>ye(He,{...n,size:y.size})},slotProps:{textField:n=>({variant:"outlined",...n,error:!!P,...y,inputProps:{...n.inputProps,placeholder:g||n.inputProps?.placeholder},InputProps:{...n.InputProps,inputRef:x=>{w.ref(x),typeof n.inputRef=="function"&&n.inputRef(x)}}})}}),ye(V,{name:o,disableIcon:h,control:m})]})})},Pt=bt(Ct);import{Stack as Rt,TextField as At}from"@mui/material";import{AdapterDayjs as Bt}from"@mui/x-date-pickers/AdapterDayjs";import{LocalizationProvider as Lt}from"@mui/x-date-pickers/LocalizationProvider";import{TimePicker as Et}from"@mui/x-date-pickers/TimePicker";import{ptBR as Dt}from"@mui/x-date-pickers/locales/ptBR";import{composeValidators as $t,time as je}from"@s_mart/rules";import Mt from"dayjs/locale/pt-br";import{memo as Gt}from"react";import{useController as zt,useFormContext as _t,useFormState as Ot}from"react-hook-form";import{styled as kt}from"@mui/material";import{IconButton as It}from"@mui/material";import{toRem as Y}from"@s_mart/utils";var wt=e=>{switch(e){case"small":return Y(16);default:case"medium":return Y(20);case"large":return Y(24)}},Vt=e=>{switch(e){case"small":return`${Y(2)} ${Y(8)}`;default:case"medium":return`${Y(6)} ${Y(8)}`;case"large":return`${Y(10)}`}},Ye=kt(It)`
63
+ `;import{jsx as Fe,jsxs as Tr}from"react/jsx-runtime";import{createElement as vr}from"react";var Vr=({rules:e,name:o,defaultValue:l,shouldUnregister:i,control:d,datePickerProps:P,label:g,required:f,placeholder:T,disabled:x,disableIconError:C,...m})=>{let u=Pr()?.control,a=d??u;if(!a)throw new v("DatePicker");let p=gr({control:a,name:o}),V=D(p.errors,o),n=P?.format||"DD/MM/YYYY",F=e?yr([We(n),e]):We(n),{field:L}=hr({control:a,name:o,rules:F,defaultValue:l,shouldUnregister:i});return Fe(fr,{dateAdapter:ur,adapterLocale:xr,localeText:Fr.components.MuiLocalizationProvider.defaultProps.localeText,children:Tr(pr,{children:[g&&Fe(S,{label:g,required:f}),vr(cr,{...P,key:o,value:L.value??null,format:n,onChange:(r,y)=>{L.onChange(r,y),P?.onChange?.(r,y)},disabled:x,slots:{textField:mr,openPickerButton:r=>Fe(Ke,{...r,size:m.size})},slotProps:{textField:r=>({variant:"outlined",...r,error:!!V,...m,inputProps:{...r.inputProps,placeholder:T||r.inputProps?.placeholder},InputProps:{...r.InputProps,inputRef:y=>{L.ref(y),typeof r.inputRef=="function"&&r.inputRef(y)}}})}}),Fe(I,{name:o,disableIcon:C,control:a})]})})},Cr=br(Vr);import{Stack as Ar,TextField as Lr}from"@mui/material";import{AdapterDayjs as Rr}from"@mui/x-date-pickers/AdapterDayjs";import{LocalizationProvider as Dr}from"@mui/x-date-pickers/LocalizationProvider";import{TimePicker as Br}from"@mui/x-date-pickers/TimePicker";import{ptBR as Er}from"@mui/x-date-pickers/locales/ptBR";import{composeValidators as Mr,time as je}from"@s_mart/rules";import $r from"dayjs/locale/pt-br";import{memo as Nr}from"react";import{useController as Or,useFormContext as Gr,useFormState as zr}from"react-hook-form";import{styled as Sr}from"@mui/material";import{IconButton as kr}from"@mui/material";import{toRem as Y}from"@s_mart/utils";var Ir=e=>{switch(e){case"small":return Y(16);case"large":return Y(24);default:return Y(20)}},wr=e=>{switch(e){case"small":return`${Y(2)} ${Y(8)}`;case"large":return Y(10);default:return`${Y(6)} ${Y(8)}`}},Ye=Sr(kr)`
64
64
  margin: 0px;
65
65
 
66
- padding: ${({size:e})=>Vt(e)};
66
+ padding: ${({size:e})=>wr(e)};
67
67
  border-radius: 0 ${Y(4)} ${Y(4)} 0;
68
68
 
69
69
  svg {
70
- width: ${({size:e})=>wt(e)} !important;
70
+ width: ${({size:e})=>Ir(e)} !important;
71
71
  }
72
- `;import{jsx as se,jsxs as Ut}from"react/jsx-runtime";var qt=({rules:e,defaultValue:o,shouldUnregister:i,name:a,control:p,required:F,label:S,timePickerProps:c,placeholder:g,disabled:C,disableIconError:h,...y})=>{let d=_t()?.control,m=p??d;if(!m)throw new T("TimePicker");let u=Ot({control:m,name:a}),P=L(u.errors,a),l=c?.format||"HH:mm",b=e?$t([je(l),e]):je(l),{field:w}=zt({control:m,name:a,rules:b,defaultValue:o,shouldUnregister:i});return se(Lt,{dateAdapter:Bt,adapterLocale:Mt,localeText:Dt.components.MuiLocalizationProvider.defaultProps.localeText,children:Ut(Rt,{children:[S&&se(k,{label:S,required:F}),se(Et,{ampm:!1,format:l,value:w.value??null,disabled:C,...c,onChange:(n,x)=>{w.onChange(n,x),c?.onChange?.(n,x)},slots:{textField:At,openPickerButton:n=>se(Ye,{...n,size:y.size})},slotProps:{textField:n=>({variant:"outlined",...n,error:!!P,...y,inputProps:{...n.inputProps,placeholder:g||n.inputProps?.placeholder},InputProps:{...n.InputProps,inputRef:x=>{w.ref(x),typeof n.inputRef=="function"&&n.inputRef(x)}}})}},a),se(V,{name:a,disableIcon:h,control:m})]})})},Nt=Gt(qt);import{Autocomplete as Ht,Grid as xe,TextField as Wt}from"@mui/material";import{colorPalette as Yt}from"@s_mart/tokens";import{memo as jt}from"react";import{Controller as Jt,useFormContext as Kt}from"react-hook-form";import{jsx as ee,jsxs as Je}from"react/jsx-runtime";import{createElement as Zt}from"react";var Xt=({name:e,defaultValue:o,rules:i,shouldUnregister:a,label:p,required:F,noOptionsText:S,placeholder:c,onInputChange:g,onChange:C,disableIconError:h,...y})=>{let d=Kt();if(!d)throw new T("Autocomplete");let m=L(d.formState.errors,e);return console.warn=()=>{},ee(Jt,{name:e,control:d.control,defaultValue:o,rules:i,shouldUnregister:a,render:({field:u})=>Je(xe,{sx:{display:"flex",flexDirection:"column"},children:[p&&ee(k,{label:p,required:F}),ee(Ht,{onChange:(P,l)=>{u.onChange(l),C?.(l,d.getValues())},onInputChange:(P,l,b)=>{b==="input"&&(u.onChange(l),setTimeout(()=>{g?.(l,d.getValues())},0))},slotProps:{...y.slotProps||{},paper:{...y.slotProps?.paper||{},sx:{border:`1px solid ${Yt.neutral[30]}`,boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.15)"}}},isOptionEqualToValue:(P,l)=>P.value===l.value,renderOption:(P,l)=>Zt("li",{...P,key:l.key||l.value,onClick:b=>{P.onClick?.(b),u.onChange(l)}},Je(xe,{container:!0,direction:"column",children:[ee(xe,{item:!0,children:l.label}),l.afterLabel&&ee(xe,{item:!0,children:l.afterLabel})]})),value:u.value||null,readOnly:y.disabled,noOptionsText:S||"Nenhuma op\xE7\xE3o encontrada",...y,renderInput:P=>ee(Wt,{placeholder:c,...P,error:!!m,slotProps:{input:{inputProps:P.inputProps,inputRef:u.ref}}})},e),ee(V,{name:e,disableIcon:h,control:d.control})]})})},Qt=jt(Xt);import{Autocomplete as li,Divider as Ke,TextField as ni}from"@mui/material";import{colorPalette as ai}from"@s_mart/tokens";import{isEqual as si}from"lodash-es";import{forwardRef as pi}from"react";import{useController as di,useFormContext as mi,useFormState as ui}from"react-hook-form";import{Tooltip as ei}from"@mui/material";import{LIcon as oi}from"@s_mart/core";import{lineInfoCircle as ri}from"@s_mart/solid-icons";import{jsx as Ce}from"react/jsx-runtime";var ti=({title:e})=>Ce(ei,{title:e,placement:"top",children:Ce("div",{style:{width:"fit-content"},children:Ce(oi,{icon:ri,color:"#757575"})})}),oe=ti;import{memo as ii}from"react";var le=ii;import{Fragment as Pe,jsx as O,jsxs as re}from"react/jsx-runtime";import{createElement as yi}from"react";var fi=({name:e,rules:o,defaultValue:i,shouldUnregister:a,control:p,label:F,required:S,options:c,textFieldProps:g,noOptionsText:C,footer:h,multiple:y,info:d,placeholder:m,onChange:u,onInputChange:P,getOptionAfterLabel:l,getOptionLabel:b,getOptionKey:w,...n})=>{let x=mi()?.control,_=p??x;if(!_)throw new T("SearchableV2");let v=ui({control:_,name:e}),r=L(v.errors,e),{field:E}=di({name:e,control:_,rules:o,defaultValue:i,shouldUnregister:a});return re("div",{style:{display:"flex",flexDirection:"column"},children:[re("div",{style:{display:"flex"},children:[F&&O(k,{label:F,required:S}),d&&O(oe,{title:d})]}),O(li,{onChange:(f,s)=>{E.onChange(s),u?.(s)},onInputChange:(f,s,t)=>{t==="input"&&P?.(s)},value:E.value?E.value:y?[]:null,options:c,multiple:y,readOnly:n.disabled,slotProps:{...n.slotProps,paper:{...n.slotProps?.paper,sx:{border:`1px solid ${ai.neutral[30]}`,boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.15)"}},listbox:{component:pi(function(s,t){return re(Pe,{children:[O("ul",{...s,ref:t}),typeof h<"u"?re("div",{...s,children:[O("div",{style:{paddingTop:"0.5rem",paddingBottom:"0.5rem"},children:O(Ke,{})}),h()]},"searchable-footer"):null]})})}},noOptionsText:re(Pe,{children:[C||"Nenhuma op\xE7\xE3o encontrada",typeof h<"u"?re(Pe,{children:[O("div",{style:{paddingTop:"0.5rem",paddingBottom:"0.5rem"},children:O(Ke,{})}),h()]}):null]}),isOptionEqualToValue:(f,s)=>si(f,s),getOptionLabel:f=>b(f),getOptionKey:f=>w(f),renderOption:typeof l=="function"?(f,s)=>{let t=l(s),G=w(s);return yi("li",{...f,key:G},re("div",{style:{display:"flex",flexDirection:"column",flex:1},children:[O("span",{children:b(s)}),typeof t=="string"?O("span",{children:t}):t]}))}:void 0,...n,renderInput:f=>O(ni,{error:!!r,placeholder:m,...f,...g,inputRef:E.ref})},e),O(V,{name:e,control:_})]})},ci=le(fi);import{useState as bi}from"react";import{useController as vi,useFormContext as gi,useFormState as hi}from"react-hook-form";import{IconButton as Ci,LIcon as Pi}from"@s_mart/core";import{lineTimes as Ti}from"@s_mart/regular-icons";import{colorPalette as Si}from"@s_mart/tokens";import{Select as ki,MenuItem as Ii,Divider as wi}from"@mui/material";import{colorPalette as xi}from"@s_mart/tokens";import{jsx as Fi}from"react/jsx-runtime";var Xe=({value:e,placeholder:o,getOptionLabel:i})=>e===null||e?.length===0?Fi("p",{style:{color:xi.neutral[100]},children:o}):i(e);import{Fragment as Ai,jsx as q,jsxs as te}from"react/jsx-runtime";var Vi=({name:e,rules:o,defaultValue:i,shouldUnregister:a,control:p,label:F,required:S,options:c,placeholder:g,clearable:C,info:h,footer:y,onChange:d,variant:m="outlined",getOptionKey:u,getOptionLabel:P,getOptionAfterLabel:l,getOptionIcon:b,...w})=>{let n=gi()?.control,x=p??n,[_,v]=bi(!1);if(!x)throw new T("SelectV2");let r=hi({control:x,name:e}),E=L(r.errors,e),{field:f}=vi({control:x,name:e,rules:o,defaultValue:i,shouldUnregister:a});return te("div",{style:{display:"flex",flexDirection:"column"},children:[te("div",{style:{display:"flex"},children:[F&&q(k,{label:F,required:S}),h&&q(oe,{title:h})]}),te(ki,{open:_,onOpen:()=>v(!0),onClose:()=>v(!1),displayEmpty:!!g,variant:m,autoComplete:"off",value:f.value||null,renderValue:s=>q(Xe,{getOptionLabel:P,placeholder:g,value:s}),onChange:s=>{f.onChange(s.target.value),d?.(s.target.value)},error:!!E,size:w.size||"medium",inputRef:f.ref,...w,endAdornment:te(Ai,{children:[w.endAdornment,!!(C&&f.value)&&q(Ci,{variant:"text",color:"neutral",size:"small",sx:{borderRadius:"50%",position:"absolute",right:"2rem"},style:{padding:0},"aria-label":"Limpar",title:"Limpar",onClick:()=>{f.onChange(null),d?.(null)},children:q(Pi,{icon:Ti,color:Si.neutral[100],size:"25px",removeMargin:!0})})]}),children:[c.map(s=>{let t=u(s),G=P(s),j=b?.(s);return q(Ii,{value:s,children:te("div",{style:{display:"flex",flexDirection:"column",flex:1},children:[j!==void 0?te("div",{style:{display:"flex",alignItems:"center"},children:[j,G]}):G,q("span",{children:l?.(s)??null})]})},t)}),y!==void 0&&te("div",{children:[q("div",{style:{padding:"8px 16px"},children:q(wi,{})},"footer-divider"),q("div",{children:y({closeSelect:()=>v(!1)})},"footer-content")]},"footer")]},e),q(V,{name:e,control:x})]})},Ri=le(Vi);import{forwardRef as Ei,useCallback as Di,useState as $i}from"react";import{useController as Mi,useFormContext as Gi,useFormState as zi}from"react-hook-form";import{isObject as _i,isEmpty as Oi,isEqual as qi}from"lodash-es";import{Autocomplete as Ni,TextField as Ui,Divider as eo}from"@mui/material";import{LIcon as Te,Button as Hi}from"@s_mart/core";import{colorPalette as Wi}from"@s_mart/tokens";import{linePlus as oo,linePen as Yi}from"@s_mart/solid-icons";import{toRem as ro}from"@s_mart/utils";import{css as Bi,styled as Li}from"@mui/material";import{toRem as Fe}from"@s_mart/utils";import"@mui/system";var Qe=Bi`
72
+ `;import{jsx as se,jsxs as Ur}from"react/jsx-runtime";var qr=({rules:e,defaultValue:o,shouldUnregister:l,name:i,control:d,required:P,label:g,timePickerProps:f,placeholder:T,disabled:x,disableIconError:C,...m})=>{let u=Gr()?.control,a=d??u;if(!a)throw new v("TimePicker");let p=zr({control:a,name:i}),V=D(p.errors,i),n=f?.format||"HH:mm",F=e?Mr([je(n),e]):je(n),{field:L}=Or({control:a,name:i,rules:F,defaultValue:o,shouldUnregister:l});return se(Dr,{dateAdapter:Rr,adapterLocale:$r,localeText:Er.components.MuiLocalizationProvider.defaultProps.localeText,children:Ur(Ar,{children:[g&&se(S,{label:g,required:P}),se(Br,{ampm:!1,format:n,value:L.value??null,disabled:x,...f,onChange:(r,y)=>{L.onChange(r,y),f?.onChange?.(r,y)},slots:{textField:Lr,openPickerButton:r=>se(Ye,{...r,size:m.size})},slotProps:{textField:r=>({variant:"outlined",...r,error:!!V,...m,inputProps:{...r.inputProps,placeholder:T||r.inputProps?.placeholder},InputProps:{...r.InputProps,inputRef:y=>{L.ref(y),typeof r.inputRef=="function"&&r.inputRef(y)}}})}},i),se(I,{name:i,disableIcon:C,control:a})]})})},_r=Nr(qr);import{Autocomplete as Hr,Grid as ye,TextField as Kr}from"@mui/material";import{colorPalette as Wr}from"@s_mart/tokens";import{memo as Yr}from"react";import{Controller as jr,useFormContext as Jr}from"react-hook-form";import{jsx as oe,jsxs as Je}from"react/jsx-runtime";import{createElement as Zr}from"react";var Xr=({name:e,defaultValue:o,rules:l,shouldUnregister:i,label:d,required:P,noOptionsText:g,placeholder:f,onInputChange:T,onChange:x,disableIconError:C,...m})=>{let u=Jr();if(!u)throw new v("Autocomplete");let a=D(u.formState.errors,e);return console.warn=()=>{},oe(jr,{name:e,control:u.control,defaultValue:o,rules:l,shouldUnregister:i,render:({field:p})=>Je(ye,{sx:{display:"flex",flexDirection:"column"},children:[d&&oe(S,{label:d,required:P}),oe(Hr,{onChange:(V,n)=>{p.onChange(n),x?.(n,u.getValues())},onInputChange:(V,n,F)=>{F==="input"&&(p.onChange(n),setTimeout(()=>{T?.(n,u.getValues())},0))},slotProps:{...m.slotProps||{},paper:{...m.slotProps?.paper||{},sx:{border:`1px solid ${Wr.neutral[30]}`,boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.15)"}}},isOptionEqualToValue:(V,n)=>V.value===n.value,renderOption:(V,n)=>Zr("li",{...V,key:n.key||n.value,onClick:F=>{V.onClick?.(F),p.onChange(n)}},Je(ye,{container:!0,direction:"column",children:[oe(ye,{item:!0,children:n.label}),n.afterLabel&&oe(ye,{item:!0,children:n.afterLabel})]})),value:p.value||null,readOnly:m.disabled,noOptionsText:g||"Nenhuma op\xE7\xE3o encontrada",...m,renderInput:V=>oe(Kr,{placeholder:f,...V,error:!!a,slotProps:{input:{inputProps:V.inputProps,inputRef:p.ref}}})},e),oe(I,{name:e,disableIcon:C,control:u.control})]})})},Qr=Yr(Xr);import{Autocomplete as il,Divider as Xe,TextField as nl}from"@mui/material";import{colorPalette as al}from"@s_mart/tokens";import{isEqual as sl}from"lodash-es";import{forwardRef as dl}from"react";import{useController as pl,useFormContext as ml,useFormState as ul}from"react-hook-form";import{Tooltip as el}from"@mui/material";import{LIcon as ol}from"@s_mart/core";import{lineInfoCircle as tl}from"@s_mart/solid-icons";import{jsx as Ve}from"react/jsx-runtime";var rl=({title:e})=>Ve(el,{title:e,placement:"top",children:Ve("div",{style:{width:"fit-content"},children:Ve(ol,{icon:tl,color:"#757575"})})}),te=rl;import{memo as ll}from"react";var ie=ll;import{Fragment as Ce,jsx as q,jsxs as re}from"react/jsx-runtime";import{createElement as Fl}from"react";var cl=e=>{let{name:o,rules:l,defaultValue:i,shouldUnregister:d,control:P,label:g,required:f,options:T,textFieldProps:x,noOptionsText:C,footer:m,multiple:u,info:a,placeholder:p,onChange:V,onInputChange:n,getOptionAfterLabel:F,getOptionLabel:L,getOptionKey:r,...y}=e,G=ml()?.control,b=P??G;if(!b)throw new v("SearchableV2");let s=ul({control:b,name:o}),w=D(s.errors,o),{field:A}=pl({name:o,control:b,rules:l,defaultValue:i,shouldUnregister:d});return re("div",{style:{display:"flex",flexDirection:"column"},children:[re("div",{style:{display:"flex"},children:[g&&q(S,{label:g,required:f}),a&&q(te,{title:a})]}),q(il,{onChange:(c,t)=>{A.onChange(t),V?.(t)},onInputChange:(c,t,k)=>{k==="input"&&n?.(t)},value:A.value,options:T,multiple:u,readOnly:y.disabled,slotProps:{...y.slotProps,paper:{...y.slotProps?.paper,sx:{border:`1px solid ${al.neutral[30]}`,boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.15)"}},listbox:{component:dl(function(t,k){return re(Ce,{children:[q("ul",{...t,ref:k}),typeof m<"u"?re("div",{...t,children:[q("div",{style:{paddingTop:"0.5rem",paddingBottom:"0.5rem"},children:q(Xe,{})}),m()]},"searchable-footer"):null]})})}},noOptionsText:re(Ce,{children:[C||"Nenhuma op\xE7\xE3o encontrada",typeof m<"u"?re(Ce,{children:[q("div",{style:{paddingTop:"0.5rem",paddingBottom:"0.5rem"},children:q(Xe,{})}),m()]}):null]}),isOptionEqualToValue:(c,t)=>sl(c,t),getOptionLabel:L,getOptionKey:r,renderOption:typeof F=="function"?(c,t)=>{let k=F(t),z=r(t);return Fl("li",{...c,key:z},re("div",{style:{display:"flex",flexDirection:"column",flex:1},children:[q("span",{children:L(t)}),typeof k=="string"?q("span",{children:k}):k]}))}:void 0,...y,renderInput:c=>q(nl,{error:!!w,placeholder:p,...c,...x,inputRef:A.ref})},o),q(I,{name:o,control:b})]})},fl=ie(cl);import{useState as bl}from"react";import{useController as hl,useFormContext as Pl,useFormState as gl}from"react-hook-form";import{IconButton as Vl,LIcon as Cl}from"@s_mart/core";import{lineTimes as vl}from"@s_mart/regular-icons";import{colorPalette as Tl}from"@s_mart/tokens";import{Select as Sl,MenuItem as kl,Divider as Il}from"@mui/material";import{colorPalette as yl}from"@s_mart/tokens";import{jsx as xl}from"react/jsx-runtime";var Qe=({value:e,placeholder:o,getOptionLabel:l})=>e===null||e?.length===0?xl("p",{style:{color:yl.neutral[100]},children:o}):l(e);import{Fragment as Ll,jsx as _,jsxs as le}from"react/jsx-runtime";var wl=e=>{let{name:o,rules:l,defaultValue:i,shouldUnregister:d,control:P,label:g,required:f,options:T,placeholder:x,clearable:C,info:m,footer:u,onChange:a,variant:p="outlined",getOptionKey:V,getOptionLabel:n,getOptionAfterLabel:F,getOptionIcon:L,...r}=e,y=Pl()?.control,G=P??y,[b,s]=bl(!1);if(!G)throw new v("SelectV2");let w=gl({control:G,name:o}),A=D(w.errors,o),{field:c}=hl({control:G,name:o,rules:l,defaultValue:i,shouldUnregister:d});return le("div",{style:{display:"flex",flexDirection:"column"},children:[le("div",{style:{display:"flex"},children:[g&&_(S,{label:g,required:f}),m&&_(te,{title:m})]}),le(Sl,{open:b,onOpen:()=>s(!0),onClose:()=>s(!1),displayEmpty:!!x,variant:p,autoComplete:"off",value:c.value||null,renderValue:t=>_(Qe,{getOptionLabel:n,placeholder:x,value:t}),onChange:t=>{c.onChange(t.target.value),a?.(t.target.value)},error:!!A,size:r.size||"medium",inputRef:c.ref,...r,endAdornment:le(Ll,{children:[r.endAdornment,!!(C&&c.value)&&_(Vl,{variant:"text",color:"neutral",size:"small",sx:{borderRadius:"50%",position:"absolute",right:"2rem"},style:{padding:0},"aria-label":"Limpar",title:"Limpar",onClick:()=>{c.onChange(null),a?.(null)},children:_(Cl,{icon:vl,color:Tl.neutral[100],size:"25px",removeMargin:!0})})]}),children:[T.map(t=>{let k=V(t),z=n(t),J=L?.(t);return _(kl,{value:k??z,children:le("div",{style:{display:"flex",flexDirection:"column",flex:1},children:[J!==void 0?le("div",{style:{display:"flex",alignItems:"center"},children:[J,z]}):z,_("span",{children:F?.(t)??null})]})},k)}),u!==void 0&&le("div",{children:[_("div",{style:{padding:"8px 16px"},children:_(Il,{})},"footer-divider"),_("div",{children:u({closeSelect:()=>s(!1)})},"footer-content")]},"footer")]},o),_(I,{name:o,control:G})]})},Al=ie(wl);import{forwardRef as Bl,useCallback as El,useState as Ml}from"react";import{useController as $l,useFormContext as Nl,useFormState as Ol}from"react-hook-form";import{isObject as Gl,isEmpty as zl,isEqual as ql}from"lodash-es";import{Autocomplete as _l,TextField as Ul,Divider as oo,Button as Hl}from"@mui/material";import{LIcon as ve}from"@s_mart/core";import{colorPalette as Kl}from"@s_mart/tokens";import{linePlus as to,linePen as Wl}from"@s_mart/solid-icons";import{toRem as ro}from"@s_mart/utils";import{css as Rl,styled as Dl}from"@mui/material";import{toRem as xe}from"@s_mart/utils";import"@mui/system";var Ze=Rl`
73
73
  display: flex;
74
74
  align-items: center;
75
75
  justify-content: center;
76
- `,Ze=Li("div")`
76
+ `,eo=Dl("div")`
77
77
  display: flex;
78
78
 
79
79
  div.endAdornments {
80
80
  position: absolute;
81
81
  right: 0;
82
82
 
83
- ${Qe}
83
+ ${Ze}
84
84
  }
85
85
 
86
86
  .MuiAutocomplete-endAdornment {
@@ -94,11 +94,11 @@ import{FormProvider as no}from"react-hook-form";import{jsx as Ie}from"react/jsx-
94
94
 
95
95
  .creatable,
96
96
  .editable {
97
- ${Qe}
97
+ ${Ze}
98
98
 
99
99
  .divider {
100
100
  width: 1px;
101
- height: ${Fe(20)};
101
+ height: ${xe(20)};
102
102
  background-color: ${({theme:e})=>e.palette.grey[400]};
103
103
  }
104
104
 
@@ -109,9 +109,9 @@ import{FormProvider as no}from"react-hook-form";import{jsx as Ie}from"react/jsx-
109
109
  color: ${({theme:e})=>e.palette.grey[600]};
110
110
  border-radius: 50%;
111
111
 
112
- margin: 0 ${Fe(6)};
113
- width: ${Fe(28)};
114
- height: ${Fe(28)};
112
+ margin: 0 ${xe(6)};
113
+ width: ${xe(28)};
114
+ height: ${xe(28)};
115
115
 
116
116
  &:hover {
117
117
  cursor: pointer;
@@ -120,4 +120,4 @@ import{FormProvider as no}from"react-hook-form";import{jsx as Ie}from"react/jsx-
120
120
  }
121
121
  }
122
122
  }
123
- `;import{Fragment as Se,jsx as $,jsxs as N}from"react/jsx-runtime";import{createElement as Ki}from"react";var ji=({name:e,rules:o,defaultValue:i,shouldUnregister:a,control:p,label:F,required:S,options:c,footer:g,showCreatableButton:C=!0,showEditableButton:h,onEditOption:y,onCreateOption:d,getOptionKey:m,getOptionLabel:u,getOptionAfterLabel:P,textFieldProps:l,multiple:b,info:w,noOptionsText:n,onChange:x,onInputChange:_,placeholder:v,...r})=>{let[E,f]=$i(""),s=Gi()?.control,t=p??s;if(!t)throw new T("CreatableV2");let G=zi({control:t,name:e}),j=L(G.errors,e),ne=!C||r.disabled,{field:R}=Mi({name:e,control:t,rules:o,defaultValue:i,shouldUnregister:a}),I=B=>{let D=0;return l?.InputProps||(D+=2.5),ne||(D+=2.56,ie(B)&&(D+=2.56)),!r.disableClearable&&!r.disabled&&(D+=1.3),`${D}rem`},ie=B=>r.disabled?!1:h&&_i(B)&&!Oi(B),to=()=>r.disabled?!1:C,ke=Di(()=>{typeof d<"u"&&(d(E),f(""))},[E,d]),io=B=>{y?.(B)};return N("div",{style:{display:"flex",flexDirection:"column"},children:[N("div",{style:{display:"flex"},children:[F&&$(k,{label:F,required:S}),w&&$(oe,{title:w})]}),$(Ze,{children:$(Ni,{fullWidth:!0,onChange:(B,D)=>{f(""),R.onChange(D),x?.(D)},onInputChange:(B,D,K)=>{K==="input"&&(f(D),_?.(D))},slotProps:{...r.slotProps,paper:{...r.slotProps?.paper,sx:{border:`1px solid ${Wi.neutral[30]}`,boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.15)"}},listbox:{component:Ei(function(D,K){return N(Se,{children:[$("ul",{...D,ref:K}),typeof g<"u"?N("div",{...D,children:[$("div",{style:{paddingTop:"0.5rem",paddingBottom:"0.5rem"},children:$(eo,{})}),g()]},"creatable-footer"):null]})})}},value:R.value?R.value:b?[]:null,options:c,multiple:b,readOnly:r.disabled,noOptionsText:N(Se,{children:[n||"Nenhuma op\xE7\xE3o encontrada",!ne&&N(Hi,{sx:{justifyContent:"flex-start",padding:`${ro(6)} ${ro(-16)}`,margin:0},fullWidth:!0,onClick:ke,variant:"text",startIcon:$(Te,{icon:oo}),children:["Adicionar ",`"${E}"`]}),typeof g<"u"&&N(Se,{children:[$("div",{style:{paddingTop:"0.5rem",paddingBottom:"0.5rem"},children:$(eo,{})}),g()]})]}),isOptionEqualToValue:(B,D)=>qi(B,D),getOptionLabel:B=>u(B),getOptionKey:B=>m(B),renderOption:typeof P=="function"?(B,D)=>{let K=P(D),lo=m(D);return Ki("li",{...B,key:lo},N("div",{style:{display:"flex",flexDirection:"column",flex:1},children:[$("span",{children:u(D)}),typeof K=="string"?$("span",{children:K}):K]}))}:void 0,...r,sx:{"& div.MuiInputBase-root":{paddingRight:`${I(R.value)} !important`},...r.sx},onBlur:B=>{r?.onBlur?.(B),f("")},renderInput:B=>$(Ui,{placeholder:v,...B,error:!!j,...l,slotProps:{input:{...B.InputProps,...l?.InputProps,inputRef:R.ref,endAdornment:N("div",{className:"endAdornments",children:[B.InputProps.endAdornment,l?.InputProps?.endAdornment??null,ie(R.value)?N("div",{className:"editable",children:[$("div",{className:"divider"}),$("div",{className:"button",onClick:()=>io(R.value),children:$(Te,{icon:Yi,size:"24px",removeMargin:!0})})]}):null,to()&&N("div",{className:"creatable",children:[$("div",{className:"divider"}),$("div",{className:"button",onClick:ke,children:$(Te,{icon:oo,size:"24px",removeMargin:!0})})]})]})}}})},e)}),$(V,{name:e,control:t})]})},Ji=le(ji);export{Qt as Autocomplete,Br as Checkbox,kr as Creatable,Ji as CreatableV2,Pt as DatePicker,k as FieldLabel,co as Form,be as FormProvider,Wr as RadioButton,Qr as RadioGroup,pr as Searchable,ci as SearchableV2,Xo as Select,Ri as SelectV2,it as Slider,_r as Switch,Mo as TextField,Nt as TimePicker,ve as useForm};
123
+ `;import{Fragment as Te,jsx as M,jsxs as U}from"react/jsx-runtime";import{createElement as Jl}from"react";function Yl(e){let{name:o,rules:l,defaultValue:i,shouldUnregister:d,control:P,label:g,required:f,options:T,footer:x,showCreatableButton:C=!0,showEditableButton:m,onEditOption:u,onCreateOption:a,getOptionKey:p,getOptionLabel:V,getOptionAfterLabel:n,textFieldProps:F,multiple:L,info:r,noOptionsText:y,onChange:G,onInputChange:b,placeholder:s,...w}=e,[A,c]=Ml(""),t=Nl()?.control,k=P??t;if(!k)throw new v("CreatableV2");let z=Ol({control:k,name:o}),J=D(z.errors,o),B=!C||w.disabled,{field:h}=$l({name:o,control:k,rules:l,defaultValue:i,shouldUnregister:d}),ne=$=>{let E=0;return F?.InputProps||(E+=2.5),B||(E+=2.56,Se($)&&(E+=2.56)),!w.disableClearable&&!w.disabled&&(E+=1.3),`${E}rem`},Se=$=>w.disabled?!1:m&&Gl($)&&!zl($),lo=()=>w.disabled?!1:C,ke=El(()=>{typeof a<"u"&&(a(A),c(""))},[A,a]),io=$=>{u?.($)};return U("div",{style:{display:"flex",flexDirection:"column"},children:[U("div",{style:{display:"flex"},children:[g&&M(S,{label:g,required:f}),r&&M(te,{title:r})]}),M(eo,{children:M(_l,{fullWidth:!0,onChange:($,E)=>{c(""),h.onChange(E),G?.(E)},onInputChange:($,E,X)=>{X==="input"&&(c(E),b?.(E))},slotProps:{...w.slotProps,paper:{...w.slotProps?.paper,sx:{border:`1px solid ${Kl.neutral[30]}`,boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.15)"}},listbox:{component:Bl(function(E,X){return U(Te,{children:[M("ul",{...E,ref:X}),typeof x<"u"?U("div",{...E,children:[M("div",{style:{paddingTop:"0.5rem",paddingBottom:"0.5rem"},children:M(oo,{})}),x()]},"creatable-footer"):null]})})}},value:h.value,options:T,multiple:L,readOnly:w.disabled,noOptionsText:U(Te,{children:[y||"Nenhuma op\xE7\xE3o encontrada",!B&&U(Hl,{sx:{justifyContent:"flex-start",padding:`${ro(6)} ${ro(-16)}`,margin:0},fullWidth:!0,onClick:ke,variant:"text",startIcon:M(ve,{icon:to}),children:["Adicionar ",`"${A}"`]}),typeof x<"u"&&U(Te,{children:[M("div",{style:{paddingTop:"0.5rem",paddingBottom:"0.5rem"},children:M(oo,{})}),x()]})]}),isOptionEqualToValue:($,E)=>ql($,E),getOptionLabel:V,getOptionKey:p,renderOption:typeof n=="function"?($,E)=>{let X=n(E),no=p(E);return Jl("li",{...$,key:no},U("div",{style:{display:"flex",flexDirection:"column",flex:1},children:[M("span",{children:V(E)}),typeof X=="string"?M("span",{children:X}):X]}))}:void 0,...w,sx:{"& div.MuiInputBase-root":{paddingRight:`${ne(h.value)} !important`},...w.sx},onBlur:$=>{w?.onBlur?.($),c("")},renderInput:$=>M(Ul,{placeholder:s,...$,error:!!J,...F,slotProps:{input:{...$.InputProps,...F?.InputProps,inputRef:h.ref,endAdornment:U("div",{className:"endAdornments",children:[$.InputProps.endAdornment,F?.InputProps?.endAdornment??null,Se(h.value)?U("div",{className:"editable",children:[M("div",{className:"divider"}),M("div",{className:"button",onKeyUp:()=>io(h.value),children:M(ve,{icon:Wl,size:"24px",removeMargin:!0})})]}):null,lo()&&U("div",{className:"creatable",children:[M("div",{className:"divider"}),M("div",{className:"button",onKeyUp:ke,children:M(ve,{icon:to,size:"24px",removeMargin:!0})})]})]})}}})},o)}),M(I,{name:o,control:k})]})}var jl=ie(Yl);export{Qr as Autocomplete,Rt as Checkbox,St as Creatable,jl as CreatableV2,Cr as DatePicker,Fo as Form,be as FormProvider,Zt as RadioButton,Wt as RadioGroup,dt as Searchable,fl as SearchableV2,Xo as Select,Al as SelectV2,lr as Slider,Gt as Switch,$o as TextField,_r as TimePicker,he as useForm};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@s_mart/form",
3
- "version": "9.2.0-beta.0",
3
+ "version": "9.2.0-beta.1",
4
4
  "main": "./dist/index.mjs",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.mts",
@@ -23,7 +23,7 @@
23
23
  "@mui/system": "^6.4.0",
24
24
  "@mui/x-date-pickers": "^7.22.0",
25
25
  "@types/lodash-es": ">=4.17.12",
26
- "@types/node": ">=20.0.0",
26
+ "@types/node": ">=22.15.17",
27
27
  "@types/react": ">=18.3.12",
28
28
  "@types/react-dom": ">=18.3.1",
29
29
  "dayjs": "^1.11.10",
@@ -32,12 +32,12 @@
32
32
  "react-hook-form": "^7.51.0",
33
33
  "typescript": ">=5.4.2",
34
34
  "zod": "^3.22.4",
35
- "@s_mart/core": "9.1.5-beta.0",
36
- "@s_mart/masks": "5.2.0",
35
+ "@s_mart/core": "9.1.5-beta.1",
37
36
  "@s_mart/rules": "5.1.1",
38
- "@s_mart/tokens": "5.1.1",
39
37
  "@s_mart/typed": "7.2.2",
40
- "@s_mart/utils": "5.3.4"
38
+ "@s_mart/utils": "5.3.4",
39
+ "@s_mart/tokens": "5.1.1",
40
+ "@s_mart/masks": "5.2.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@emotion/styled": "^11.13.0",
@@ -45,15 +45,15 @@
45
45
  "@mui/system": "^6.4.0",
46
46
  "@mui/x-date-pickers": "^7.22.0",
47
47
  "@types/lodash-es": ">=4.17.12",
48
- "@types/node": ">=20.0.0",
48
+ "@types/node": ">=22.15.17",
49
49
  "@types/react": ">=18.3.12",
50
50
  "@types/react-dom": ">=18.3.1",
51
51
  "dayjs": "^1.11.10",
52
52
  "typescript": ">=5.4.2",
53
- "@s_mart/core": "9.1.5-beta.0",
54
- "@s_mart/masks": "5.2.0",
53
+ "@s_mart/core": "9.1.5-beta.1",
55
54
  "@s_mart/rules": "5.1.1",
56
55
  "@s_mart/tokens": "5.1.1",
56
+ "@s_mart/masks": "5.2.0",
57
57
  "@s_mart/typed": "7.2.2",
58
58
  "@s_mart/utils": "5.3.4"
59
59
  },