UNPKG

@nlabs/gothamjs

Version:
65 lines (64 loc) 10.6 kB
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; /** * Copyright (c) 2025-Present, Nitrogen Labs, Inc. * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. */ import { forwardRef } from 'react'; import { Controller, useFormContext } from 'react-hook-form'; import { useTranslation } from '../../i18n/index.js'; import { ErrorMessage } from '../ErrorMessage/ErrorMessage.js'; import { InputField } from '../InputField/InputField.js'; import { Label } from '../Label/Label.js'; export const TextField = /*#__PURE__*/ forwardRef(({ borderColor = 'black', borderType, className, color = 'neutral', defaultValue = '', error: externalError, errorColor = 'error', inputClass, label = '', labelClass = 'mb-1', labelColor = 'neutral', multiline = false, name, onChange: onChangeProp, onValidate, pattern, placeholder = '', placeholderColor = 'neutral', rows, textColor = 'neutral', value, ...restInputProps }, ref)=>{ const { t } = useTranslation(); const { control, formState: { errors } } = useFormContext(); const formError = errors?.[name]; const hasError = !!formError; const placeholderText = t(placeholder); return /*#__PURE__*/ _jsx(Controller, { control: control, name: name, defaultValue: defaultValue, render: ({ field: { onBlur, onChange, ref: fieldRef, value } })=>/*#__PURE__*/ _jsxs("div", { className: "flex flex-col w-full", children: [ /*#__PURE__*/ _jsx(Label, { className: labelClass, color: labelColor, label: label, name: name }), /*#__PURE__*/ _jsxs("div", { className: "relative", children: [ /*#__PURE__*/ _jsx(InputField, { borderColor: borderColor, borderType: borderType, className: inputClass, color: hasError ? 'error' : color, id: name, multiline: multiline, onBlur: onBlur, onChange: onChange, placeholder: placeholderText, placeholderColor: placeholderColor, textColor: textColor, value: value, ref: (e)=>{ fieldRef(e); if (ref && typeof ref === 'object') { ref.current = e; } }, ...restInputProps }), /*#__PURE__*/ _jsx(ErrorMessage, { message: formError?.message, color: errorColor }) ] }) ] }) }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2dvdGhhbWpzL3NyYy9jb21wb25lbnRzL1RleHRGaWVsZC9UZXh0RmllbGQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge2ZvcndhcmRSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7Q29udHJvbGxlciwgdXNlRm9ybUNvbnRleHR9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XG5pbXBvcnQge3VzZVRyYW5zbGF0aW9ufSBmcm9tICcuLi8uLi9pMThuL2luZGV4LmpzJztcblxuaW1wb3J0IHtFcnJvck1lc3NhZ2V9IGZyb20gJy4uL0Vycm9yTWVzc2FnZS9FcnJvck1lc3NhZ2UuanMnO1xuaW1wb3J0IHtJbnB1dEZpZWxkfSBmcm9tICcuLi9JbnB1dEZpZWxkL0lucHV0RmllbGQuanMnO1xuaW1wb3J0IHtMYWJlbH0gZnJvbSAnLi4vTGFiZWwvTGFiZWwuanMnO1xuXG5pbXBvcnQgdHlwZSB7R290aGFtQ29sb3J9IGZyb20gJy4uLy4uL3V0aWxzL2NvbG9yVXRpbHMuanMnO1xuaW1wb3J0IHR5cGUge0lucHV0Qm9yZGVyVHlwZX0gZnJvbSAnLi4vSW5wdXRGaWVsZC9JbnB1dEZpZWxkLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZXh0RmllbGRQcm9wcyBleHRlbmRzIFJlYWN0LklucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudCB8IEhUTUxUZXh0QXJlYUVsZW1lbnQ+IHtcbiAgcmVhZG9ubHkgYm9yZGVyQ29sb3I/OiBHb3RoYW1Db2xvcjtcbiAgcmVhZG9ubHkgYm9yZGVyVHlwZT86IElucHV0Qm9yZGVyVHlwZTtcbiAgcmVhZG9ubHkgY2xhc3NOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSBjb2xvcj86IEdvdGhhbUNvbG9yO1xuICByZWFkb25seSBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVycm9yPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZXJyb3JDb2xvcj86IEdvdGhhbUNvbG9yO1xuICByZWFkb25seSBoYXNFcnJvcj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGlucHV0Q2xhc3M/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxhYmVsPzogc3RyaW5nO1xuICByZWFkb25seSBsYWJlbENsYXNzPzogc3RyaW5nO1xuICByZWFkb25seSBsYWJlbENvbG9yPzogR290aGFtQ29sb3I7XG4gIHJlYWRvbmx5IG11bHRpbGluZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgb25WYWxpZGF0ZT86IChpc1ZhbGlkOiBib29sZWFuKSA9PiB2b2lkO1xuICByZWFkb25seSBwYXR0ZXJuPzogc3RyaW5nO1xuICByZWFkb25seSBwbGFjZWhvbGRlckNvbG9yPzogR290aGFtQ29sb3I7XG4gIHJlYWRvbmx5IHJvd3M/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRleHRDb2xvcj86IEdvdGhhbUNvbG9yO1xufVxuXG5leHBvcnQgY29uc3QgVGV4dEZpZWxkID0gZm9yd2FyZFJlZjxIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudCwgVGV4dEZpZWxkUHJvcHM+KCh7XG4gIGJvcmRlckNvbG9yID0gJ2JsYWNrJyxcbiAgYm9yZGVyVHlwZSxcbiAgY2xhc3NOYW1lLFxuICBjb2xvciA9ICduZXV0cmFsJyxcbiAgZGVmYXVsdFZhbHVlID0gJycsXG4gIGVycm9yOiBleHRlcm5hbEVycm9yLFxuICBlcnJvckNvbG9yID0gJ2Vycm9yJyxcbiAgaW5wdXRDbGFzcyxcbiAgbGFiZWwgPSAnJyxcbiAgbGFiZWxDbGFzcyA9ICdtYi0xJyxcbiAgbGFiZWxDb2xvciA9ICduZXV0cmFsJyxcbiAgbXVsdGlsaW5lID0gZmFsc2UsXG4gIG5hbWUsXG4gIG9uQ2hhbmdlOiBvbkNoYW5nZVByb3AsXG4gIG9uVmFsaWRhdGUsXG4gIHBhdHRlcm4sXG4gIHBsYWNlaG9sZGVyID0gJycsXG4gIHBsYWNlaG9sZGVyQ29sb3IgPSAnbmV1dHJhbCcsXG4gIHJvd3MsXG4gIHRleHRDb2xvciA9ICduZXV0cmFsJyxcbiAgdmFsdWUsXG4gIC4uLnJlc3RJbnB1dFByb3BzXG59LCByZWYpID0+IHtcbiAgY29uc3Qge3R9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3Qge2NvbnRyb2wsIGZvcm1TdGF0ZToge2Vycm9yc319ID0gdXNlRm9ybUNvbnRleHQoKTtcbiAgY29uc3QgZm9ybUVycm9yID0gZXJyb3JzPy5bbmFtZV07XG4gIGNvbnN0IGhhc0Vycm9yID0gISFmb3JtRXJyb3I7XG4gIGNvbnN0IHBsYWNlaG9sZGVyVGV4dCA9IHQocGxhY2Vob2xkZXIpO1xuICByZXR1cm4gKFxuICAgIDxDb250cm9sbGVyXG4gICAgICBjb250cm9sPXtjb250cm9sfVxuICAgICAgbmFtZT17bmFtZX1cbiAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFZhbHVlfVxuICAgICAgcmVuZGVyPXsoe2ZpZWxkOiB7b25CbHVyLCBvbkNoYW5nZSwgcmVmOiBmaWVsZFJlZiwgdmFsdWV9fSkgPT4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgdy1mdWxsXCI+XG4gICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICBjbGFzc05hbWU9e2xhYmVsQ2xhc3N9XG4gICAgICAgICAgICBjb2xvcj17bGFiZWxDb2xvcn1cbiAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgIG5hbWU9e25hbWV9IC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiPlxuICAgICAgICAgICAgPElucHV0RmllbGRcbiAgICAgICAgICAgICAgYm9yZGVyQ29sb3I9e2JvcmRlckNvbG9yfVxuICAgICAgICAgICAgICBib3JkZXJUeXBlPXtib3JkZXJUeXBlfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2lucHV0Q2xhc3N9XG4gICAgICAgICAgICAgIGNvbG9yPXtoYXNFcnJvciA/ICdlcnJvcicgOiBjb2xvcn1cbiAgICAgICAgICAgICAgaWQ9e25hbWV9XG4gICAgICAgICAgICAgIG11bHRpbGluZT17bXVsdGlsaW5lfVxuICAgICAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJUZXh0fVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlckNvbG9yPXtwbGFjZWhvbGRlckNvbG9yfVxuICAgICAgICAgICAgICB0ZXh0Q29sb3I9e3RleHRDb2xvcn1cbiAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICByZWY9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgZmllbGRSZWYoZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAocmVmICYmIHR5cGVvZiByZWYgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICByZWYuY3VycmVudCA9IGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICB7Li4ucmVzdElucHV0UHJvcHN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPEVycm9yTWVzc2FnZSBtZXNzYWdlPXtmb3JtRXJyb3I/Lm1lc3NhZ2UgYXMgc3RyaW5nfSBjb2xvcj17ZXJyb3JDb2xvcn0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIC8+XG4gICk7XG59KTsiXSwibmFtZXMiOlsiZm9yd2FyZFJlZiIsIkNvbnRyb2xsZXIiLCJ1c2VGb3JtQ29udGV4dCIsInVzZVRyYW5zbGF0aW9uIiwiRXJyb3JNZXNzYWdlIiwiSW5wdXRGaWVsZCIsIkxhYmVsIiwiVGV4dEZpZWxkIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJUeXBlIiwiY2xhc3NOYW1lIiwiY29sb3IiLCJkZWZhdWx0VmFsdWUiLCJlcnJvciIsImV4dGVybmFsRXJyb3IiLCJlcnJvckNvbG9yIiwiaW5wdXRDbGFzcyIsImxhYmVsIiwibGFiZWxDbGFzcyIsImxhYmVsQ29sb3IiLCJtdWx0aWxpbmUiLCJuYW1lIiwib25DaGFuZ2UiLCJvbkNoYW5nZVByb3AiLCJvblZhbGlkYXRlIiwicGF0dGVybiIsInBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXJDb2xvciIsInJvd3MiLCJ0ZXh0Q29sb3IiLCJ2YWx1ZSIsInJlc3RJbnB1dFByb3BzIiwicmVmIiwidCIsImNvbnRyb2wiLCJmb3JtU3RhdGUiLCJlcnJvcnMiLCJmb3JtRXJyb3IiLCJoYXNFcnJvciIsInBsYWNlaG9sZGVyVGV4dCIsInJlbmRlciIsImZpZWxkIiwib25CbHVyIiwiZmllbGRSZWYiLCJkaXYiLCJpZCIsImUiLCJjdXJyZW50IiwibWVzc2FnZSJdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLFVBQVUsUUFBTyxRQUFRO0FBQ2pDLFNBQVFDLFVBQVUsRUFBRUMsY0FBYyxRQUFPLGtCQUFrQjtBQUMzRCxTQUFRQyxjQUFjLFFBQU8sc0JBQXNCO0FBRW5ELFNBQVFDLFlBQVksUUFBTyxrQ0FBa0M7QUFDN0QsU0FBUUMsVUFBVSxRQUFPLDhCQUE4QjtBQUN2RCxTQUFRQyxLQUFLLFFBQU8sb0JBQW9CO0FBMkJ4QyxPQUFPLE1BQU1DLDBCQUFZUCxXQUFtRSxDQUFDLEVBQzNGUSxjQUFjLE9BQU8sRUFDckJDLFVBQVUsRUFDVkMsU0FBUyxFQUNUQyxRQUFRLFNBQVMsRUFDakJDLGVBQWUsRUFBRSxFQUNqQkMsT0FBT0MsYUFBYSxFQUNwQkMsYUFBYSxPQUFPLEVBQ3BCQyxVQUFVLEVBQ1ZDLFFBQVEsRUFBRSxFQUNWQyxhQUFhLE1BQU0sRUFDbkJDLGFBQWEsU0FBUyxFQUN0QkMsWUFBWSxLQUFLLEVBQ2pCQyxJQUFJLEVBQ0pDLFVBQVVDLFlBQVksRUFDdEJDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxjQUFjLEVBQUUsRUFDaEJDLG1CQUFtQixTQUFTLEVBQzVCQyxJQUFJLEVBQ0pDLFlBQVksU0FBUyxFQUNyQkMsS0FBSyxFQUNMLEdBQUdDLGdCQUNKLEVBQUVDO0lBQ0QsTUFBTSxFQUFDQyxDQUFDLEVBQUMsR0FBRzlCO0lBQ1osTUFBTSxFQUFDK0IsT0FBTyxFQUFFQyxXQUFXLEVBQUNDLE1BQU0sRUFBQyxFQUFDLEdBQUdsQztJQUN2QyxNQUFNbUMsWUFBWUQsUUFBUSxDQUFDZixLQUFLO0lBQ2hDLE1BQU1pQixXQUFXLENBQUMsQ0FBQ0Q7SUFDbkIsTUFBTUUsa0JBQWtCTixFQUFFUDtJQUMxQixxQkFDRSxLQUFDekI7UUFDQ2lDLFNBQVNBO1FBQ1RiLE1BQU1BO1FBQ05ULGNBQWNBO1FBQ2Q0QixRQUFRLENBQUMsRUFBQ0MsT0FBTyxFQUFDQyxNQUFNLEVBQUVwQixRQUFRLEVBQUVVLEtBQUtXLFFBQVEsRUFBRWIsS0FBSyxFQUFDLEVBQUMsaUJBQ3hELE1BQUNjO2dCQUFJbEMsV0FBVTs7a0NBQ2IsS0FBQ0o7d0JBQ0NJLFdBQVdRO3dCQUNYUCxPQUFPUTt3QkFDUEYsT0FBT0E7d0JBQ1BJLE1BQU1BOztrQ0FDUixNQUFDdUI7d0JBQUlsQyxXQUFVOzswQ0FDYixLQUFDTDtnQ0FDQ0csYUFBYUE7Z0NBQ2JDLFlBQVlBO2dDQUNaQyxXQUFXTTtnQ0FDWEwsT0FBTzJCLFdBQVcsVUFBVTNCO2dDQUM1QmtDLElBQUl4QjtnQ0FDSkQsV0FBV0E7Z0NBQ1hzQixRQUFRQTtnQ0FDUnBCLFVBQVVBO2dDQUNWSSxhQUFhYTtnQ0FDYlosa0JBQWtCQTtnQ0FDbEJFLFdBQVdBO2dDQUNYQyxPQUFPQTtnQ0FDUEUsS0FBSyxDQUFDYztvQ0FDSkgsU0FBU0c7b0NBRVQsSUFBSWQsT0FBTyxPQUFPQSxRQUFRLFVBQVU7d0NBQ2xDQSxJQUFJZSxPQUFPLEdBQUdEO29DQUNoQjtnQ0FDRjtnQ0FDQyxHQUFHZixjQUFjOzswQ0FFcEIsS0FBQzNCO2dDQUFhNEMsU0FBU1gsV0FBV1c7Z0NBQW1CckMsT0FBT0k7Ozs7Ozs7QUFNeEUsR0FBRyJ9