@giro-ds/react 3.0.0 → 3.0.2

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.ts CHANGED
@@ -676,7 +676,7 @@ declare const TablePagination: React__default.FC<TablePaginationProps>;
676
676
  type TextFieldType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url';
677
677
  interface TextFieldProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'type'> {
678
678
  /** Controlled value */
679
- value?: string;
679
+ value?: string | number;
680
680
  /** Change handler - receives string value */
681
681
  onChange?: (value: string) => void;
682
682
  /** Label text */
package/dist/index.esm.js CHANGED
@@ -676,11 +676,17 @@ const validateInput = ({ value, maxLength, errorMessage, required }) => {
676
676
  };
677
677
 
678
678
  const TextField = forwardRef(({ className, value = '', label, placeholder, type = 'text', onChange, disabled = false, maxLength = 30, required = false, helperText, tooltip = false, tooltipText = '', side = 'bottom', align = 'start', errorMessage = '', id, icon, onBlur, onFocus, name, ...inputProps }, ref) => {
679
- const [inputValue, setInputValue] = useState(value);
679
+ const normalizeValue = (val) => {
680
+ return val === undefined || val === null ? '' : String(val);
681
+ };
682
+ const [inputValue, setInputValue] = useState(normalizeValue(value));
680
683
  const [inputError, setInputError] = useState('');
681
684
  const [isFocused, setIsFocused] = useState(false);
682
685
  const generatedId = useId();
683
686
  const componentId = id || generatedId;
687
+ useEffect(() => {
688
+ setInputValue(normalizeValue(value));
689
+ }, [value]);
684
690
  const handleChange = useCallback((e) => {
685
691
  const newValue = e.target.value;
686
692
  if (!disabled && (!maxLength || newValue.length <= maxLength)) {
@@ -824,11 +830,13 @@ function parseDate(dateString, locale = 'pt-br') {
824
830
  return date;
825
831
  }
826
832
 
827
- var styles$e = {"zds-date-picker":"DatePicker-module__zds-date-picker___FjFTb","zds-date-picker__calendar-popup":"DatePicker-module__zds-date-picker__calendar-popup___hEkq7","zds-calendar--left":"DatePicker-module__zds-calendar--left___5z2UM","zds-calendar--right":"DatePicker-module__zds-calendar--right___NCJtd"};
833
+ var styles$e = {"zds-date-picker":"DatePicker-module__zds-date-picker___FjFTb","zds-date-picker__calendar-popup":"DatePicker-module__zds-date-picker__calendar-popup___hEkq7","zds-calendar--left":"DatePicker-module__zds-calendar--left___5z2UM","zds-calendar--right":"DatePicker-module__zds-calendar--right___NCJtd","zds-date-picker__icon":"DatePicker-module__zds-date-picker__icon___nYEnv","zds-date-picker__icon--disabled":"DatePicker-module__zds-date-picker__icon--disabled___p4Rr2"};
828
834
 
829
835
  const DatePicker = ({ locale = 'pt-br', calendarPosition = 'left', helperText = '', required = false, label = 'Data', value, defaultValue, onChange, disabled = false, error: externalError, minDate, maxDate, className = '', 'data-testid': testId, }) => {
830
836
  // ✅ IDs únicos para acessibilidade
831
837
  const fieldId = useId();
838
+ const calendarId = `${fieldId}-calendar`;
839
+ const errorId = `${fieldId}-error`;
832
840
  const helperTextId = `${fieldId}-help`;
833
841
  // ✅ Suporte controlled/uncontrolled adequado
834
842
  const isControlled = value !== undefined;
@@ -1006,9 +1014,12 @@ const DatePicker = ({ locale = 'pt-br', calendarPosition = 'left', helperText =
1006
1014
  setTempInputValue(formatDate(currentSelectedDate, locale));
1007
1015
  }
1008
1016
  }, [locale, currentSelectedDate, isEditing]);
1009
- return (jsx("div", { ref: wrapperRef, children: jsxs("div", { className: clsx(styles$e['zds-date-picker']), children: [jsx("div", { onClick: handleFieldClick, onFocus: handleFieldFocus, onKeyDown: handleKeyDown, style: { cursor: 'pointer' }, children: jsx(TextField$1, { type: "tel", icon: jsx(Calendar16Regular, { onClick: handleIconClick, style: { cursor: 'pointer' } }), onChange: (e) => {
1010
- handleTextFieldChange(String(e));
1011
- }, "aria-label": "Open calendar", "aria-expanded": showCalendar, "aria-controls": "calendar-popup", placeholder: locale === 'en-us' ? 'MM/DD/YYYY' : 'DD/MM/YYYY', value: displayValue, errorMessage: undefined, "aria-invalid": !!currentError, "aria-describedby": combinedHelperText ? helperTextId : undefined, maxLength: 10, helperText: combinedHelperText, required: required, label: label }) }), jsx("div", { className: clsx(styles$e['zds-date-picker__calendar-popup'], calendarPosition === 'left' && styles$e['zds-calendar--left'], calendarPosition === 'right' && styles$e['zds-calendar--right']), children: showCalendar && (jsx(MemoizedCalendar, { selectedDate: currentSelectedDate, currentDate: currentDate, onDateChange: setCurrentDate, onDaySelect: handleDaySelect, locale: locale, format: locale === 'en-us' ? 'mm/dd/yyyy' : 'dd/mm/yyyy' })) })] }) }));
1017
+ return (jsx("div", { ref: wrapperRef, children: jsxs("div", { className: clsx(styles$e['zds-date-picker']), children: [jsx(TextField$1, { type: "tel", icon: jsx(Calendar16Regular, { onClick: !disabled ? handleIconClick : undefined, className: clsx(styles$e['zds-date-picker__icon'], disabled && styles$e['zds-date-picker__icon--disabled']) }), onChange: (e) => {
1018
+ handleTextFieldChange(String(e));
1019
+ }, onClick: !disabled ? handleFieldClick : undefined, onFocus: !disabled ? handleFieldFocus : undefined, onKeyDown: handleKeyDown, value: displayValue, helperText: combinedHelperText, maxLength: 10, required: required, label: label, disabled: disabled, id: fieldId, className: className, "data-testid": testId, placeholder: locale === 'en-us' ? 'MM/DD/YYYY' : 'DD/MM/YYYY', "aria-label": "Open calendar", "aria-expanded": showCalendar, "aria-controls": calendarId, "aria-invalid": !!currentError, "aria-describedby": currentError ? errorId : (helperText ? helperTextId : undefined) }), jsx("div", { className: clsx(styles$e['zds-date-picker__calendar-popup'], calendarPosition === 'left' && styles$e['zds-calendar--left'], calendarPosition === 'right' && styles$e['zds-calendar--right']), children: showCalendar && (jsx(MemoizedCalendar, { selectedDate: currentSelectedDate, currentDate: currentDate, onDateChange: setCurrentDate, onDaySelect: handleDaySelect, locale: locale, format: locale === 'en-us' ? 'mm/dd/yyyy' : 'dd/mm/yyyy', minDate: minDate, maxDate: maxDate, id: calendarId, onClear: () => {
1020
+ handleDateChange(null);
1021
+ setCurrentDate(new Date());
1022
+ } })) })] }) }));
1012
1023
  };
1013
1024
  var DatePicker_default = React.memo(DatePicker);
1014
1025