@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/components/TextField/TextField.types.d.ts +1 -1
- package/dist/index.cjs +16 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.esm.js +16 -5
- package/dist/index.esm.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
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
|
|
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(
|
|
1010
|
-
|
|
1011
|
-
|
|
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
|
|