PageSourceSearch

https://technicaljournals.org/src/components/forms/FormField.jsx

js technicaljournals.org collected 2026-10-06 04:58:35 UTC 10,231 bytes, 131 lines download raw bytes

1import { createHotContext as __vite__createHotContext } from "/@vite/client";import.meta.hot = __vite__createHotContext("/src/components/forms/FormField.jsx");const _jsxDEV = __vite__cjsImport0_react_jsxDevRuntime["jsxDEV"];var _jsxFileName = "/var/opt/Technical-Journals/src/components/forms/FormField.jsx";
2import __vite__cjsImport0_react_jsxDevRuntime from "/node_modules/.vite/deps/react_jsx-dev-runtime.js?v=57f70dd4";
3export function Label({ htmlFor, required, children }) {
4	return /* @__PURE__ */ _jsxDEV("label", {
5		htmlFor,
6		className: "block text-sm font-medium text-slate-700 mb-1.5",
7		children: [
8			children,
9			" ",
10			required && /* @__PURE__ */ _jsxDEV("span", {
11				className: "text-red-500",
12				children: "*"
13			}, void 0, false, {
14				fileName: _jsxFileName,
15				lineNumber: 4,
16				columnNumber: 31
17			}, this)
18		]
19	}, void 0, true, {
20		fileName: _jsxFileName,
21		lineNumber: 3,
22		columnNumber: 5
23	}, this);
24}
25_c = Label;
26export function ErrorText({ id, children }) {
27	if (!children) return null;
28	return /* @__PURE__ */ _jsxDEV("p", {
29		id,
30		role: "alert",
31		className: "text-xs text-red-600 mt-1.5",
32		children
33	}, void 0, false, {
34		fileName: _jsxFileName,
35		lineNumber: 12,
36		columnNumber: 5
37	}, this);
38}
39_c2 = ErrorText;
40export function Input({ id, error, className = "", ...props }) {
41	return /* @__PURE__ */ _jsxDEV("input", {
42		id,
43		"aria-invalid": !!error,
44		"aria-describedby": error ? `${id}-error` : undefined,
45		className: `w-full rounded-md border px-3.5 py-2.5 text-sm outline-none transition-colors focus:ring-2 focus:ring-blue-200 ${error ? "border-red-400 focus:border-red-500" : "border-slate-300 focus:border-blue-600"} ${className}`,
46		...props
47	}, void 0, false, {
48		fileName: _jsxFileName,
49		lineNumber: 20,
50		columnNumber: 5
51	}, this);
52}
53_c3 = Input;
54export function Textarea({ id, error, className = "", ...props }) {
55	return /* @__PURE__ */ _jsxDEV("textarea", {
56		id,
57		"aria-invalid": !!error,
58		"aria-describedby": error ? `${id}-error` : undefined,
59		className: `w-full rounded-md border px-3.5 py-2.5 text-sm outline-none transition-colors focus:ring-2 focus:ring-blue-200 ${error ? "border-red-400 focus:border-red-500" : "border-slate-300 focus:border-blue-600"} ${className}`,
60		...props
61	}, void 0, false, {
62		fileName: _jsxFileName,
63		lineNumber: 34,
64		columnNumber: 5
65	}, this);
66}
67_c4 = Textarea;
68export function Select({ id, error, className = "", children, ...props }) {
69	return /* @__PURE__ */ _jsxDEV("select", {
70		id,
71		"aria-invalid": !!error,
72		"aria-describedby": error ? `${id}-error` : undefined,
73		className: `w-full rounded-md border px-3.5 py-2.5 text-sm outline-none bg-white transition-colors focus:ring-2 focus:ring-blue-200 ${error ? "border-red-400 focus:border-red-500" : "border-slate-300 focus:border-blue-600"} ${className}`,
74		...props,
75		children
76	}, void 0, false, {
77		fileName: _jsxFileName,
78		lineNumber: 48,
79		columnNumber: 5
80	}, this);
81}
82_c5 = Select;
83export function SubmitButton({ loading, children, className = "", ...props }) {
84	return /* @__PURE__ */ _jsxDEV("button", {
85		type: "submit",
86		disabled: loading,
87		className: `inline-flex items-center justify-center gap-2 rounded-md bg-blue-700 text-white text-sm font-semibold px-6 py-2.5 hover:bg-blue-800 disabled:opacity-60 disabled:cursor-not-allowed transition-colors ${className}`,
88		...props,
89		children: [loading && /* @__PURE__ */ _jsxDEV("span", { className: "w-4 h-4 border-2 border-white/40 border-t-white rounded-full animate-spin" }, void 0, false, {
90			fileName: _jsxFileName,
91			lineNumber: 71,
92			columnNumber: 9
93		}, this), children]
94	}, void 0, true, {
95		fileName: _jsxFileName,
96		lineNumber: 64,
97		columnNumber: 5
98	}, this);
99}
100_c6 = SubmitButton;
101var _c, _c2, _c3, _c4, _c5, _c6;
102$RefreshReg$(_c, "Label");
103$RefreshReg$(_c2, "ErrorText");
104$RefreshReg$(_c3, "Input");
105$RefreshReg$(_c4, "Textarea");
106$RefreshReg$(_c5, "Select");
107$RefreshReg$(_c6, "SubmitButton");
108import * as RefreshRuntime from "/@react-refresh";
109const inWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;
110import * as __vite_react_currentExports from "/src/components/forms/FormField.jsx";
111if (import.meta.hot && !inWebWorker) {
112  if (!window.$RefreshReg$) {
113    throw new Error(
114      "@vitejs/plugin-react can't detect preamble. Something is wrong."
115    );
116  }
117
118  const currentExports = __vite_react_currentExports;
119  queueMicrotask(() => {
120    RefreshRuntime.registerExportsForReactRefresh("/var/opt/Technical-Journals/src/components/forms/FormField.jsx", currentExports);
121    import.meta.hot.accept((nextExports) => {
122      if (!nextExports) return;
123      const invalidateMessage = RefreshRuntime.validateRefreshBoundaryAndEnqueueUpdate("/var/opt/Technical-Journals/src/components/forms/FormField.jsx", currentExports, nextExports);
124      if (invalidateMessage) import.meta.hot.invalidate(invalidateMessage);
125    });
126  });
127}
128function $RefreshReg$(type, id) { return RefreshRuntime.register(type, "/var/opt/Technical-Journals/src/components/forms/FormField.jsx" + ' ' + id); }
129function $RefreshSig$() { return RefreshRuntime.createSignatureFunctionForTransform(); }
130
131//# sourceMappingURL=data:application/json;base64,eyJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLFNBQVMsTUFBTSxFQUFFLFNBQVMsVUFBVSxZQUFZO0NBQ3JELE9BQ0Usd0JBQUMsU0FBRDtFQUFnQjtFQUFTLFdBQVU7WUFBbkM7R0FDRztHQUFTO0dBQUUsWUFBWSx3QkFBQyxRQUFEO0lBQU0sV0FBVTtjQUFlO0dBQU87Ozs7O0VBQ3pEOzs7Ozs7QUFFWDs7QUFFQSxPQUFPLFNBQVMsVUFBVSxFQUFFLElBQUksWUFBWTtDQUMxQyxJQUFJLENBQUMsVUFBVSxPQUFPO0NBQ3RCLE9BQ0Usd0JBQUMsS0FBRDtFQUFPO0VBQUksTUFBSztFQUFRLFdBQVU7RUFDL0I7Q0FDQTs7Ozs7QUFFUDs7QUFFQSxPQUFPLFNBQVMsTUFBTSxFQUFFLElBQUksT0FBTyxZQUFZLElBQUksR0FBRyxTQUFTO0NBQzdELE9BQ0Usd0JBQUMsU0FBRDtFQUNNO0VBQ0osZ0JBQWMsQ0FBQyxDQUFDO0VBQ2hCLG9CQUFrQixRQUFRLEdBQUcsR0FBRyxVQUFVO0VBQzFDLFdBQVcsa0hBQ1QsUUFBUSx3Q0FBd0MseUNBQ2pELEdBQUc7RUFDSixHQUFJO0NBQ0w7Ozs7O0FBRUw7O0FBRUEsT0FBTyxTQUFTLFNBQVMsRUFBRSxJQUFJLE9BQU8sWUFBWSxJQUFJLEdBQUcsU0FBUztDQUNoRSxPQUNFLHdCQUFDLFlBQUQ7RUFDTTtFQUNKLGdCQUFjLENBQUMsQ0FBQztFQUNoQixvQkFBa0IsUUFBUSxHQUFHLEdBQUcsVUFBVTtFQUMxQyxXQUFXLGtIQUNULFFBQVEsd0NBQXdDLHlDQUNqRCxHQUFHO0VBQ0osR0FBSTtDQUNMOzs7OztBQUVMOztBQUVBLE9BQU8sU0FBUyxPQUFPLEVBQUUsSUFBSSxPQUFPLFlBQVksSUFBSSxVQUFVLEdBQUcsU0FBUztDQUN4RSxPQUNFLHdCQUFDLFVBQUQ7RUFDTTtFQUNKLGdCQUFjLENBQUMsQ0FBQztFQUNoQixvQkFBa0IsUUFBUSxHQUFHLEdBQUcsVUFBVTtFQUMxQyxXQUFXLDJIQUNULFFBQVEsd0NBQXdDLHlDQUNqRCxHQUFHO0VBQ0osR0FBSTtFQUVIO0NBQ0s7Ozs7O0FBRVo7O0FBRUEsT0FBTyxTQUFTLGFBQWEsRUFBRSxTQUFTLFVBQVUsWUFBWSxJQUFJLEdBQUcsU0FBUztDQUM1RSxPQUNFLHdCQUFDLFVBQUQ7RUFDRSxNQUFLO0VBQ0wsVUFBVTtFQUNWLFdBQVcseU1BQXlNO0VBQ3BOLEdBQUk7WUFKTixDQU1HLFdBQ0Msd0JBQUMsUUFBRCxFQUFNLFdBQVUsNEVBQTZFOzs7O1lBRTlGLFFBQ0s7Ozs7OztBQUVaIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIkZvcm1GaWVsZC5qc3giXSwidmVyc2lvbiI6Mywic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIExhYmVsKHsgaHRtbEZvciwgcmVxdWlyZWQsIGNoaWxkcmVuIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8bGFiZWwgaHRtbEZvcj17aHRtbEZvcn0gY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXNsYXRlLTcwMCBtYi0xLjVcIj5cbiAgICAgIHtjaGlsZHJlbn0ge3JlcXVpcmVkICYmIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtcmVkLTUwMFwiPio8L3NwYW4+fVxuICAgIDwvbGFiZWw+XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBFcnJvclRleHQoeyBpZCwgY2hpbGRyZW4gfSkge1xuICBpZiAoIWNoaWxkcmVuKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIChcbiAgICA8cCBpZD17aWR9IHJvbGU9XCJhbGVydFwiIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1yZWQtNjAwIG10LTEuNVwiPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvcD5cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIElucHV0KHsgaWQsIGVycm9yLCBjbGFzc05hbWUgPSBcIlwiLCAuLi5wcm9wcyB9KSB7XG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICBpZD17aWR9XG4gICAgICBhcmlhLWludmFsaWQ9eyEhZXJyb3J9XG4gICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtlcnJvciA/IGAke2lkfS1lcnJvcmAgOiB1bmRlZmluZWR9XG4gICAgICBjbGFzc05hbWU9e2B3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgcHgtMy41IHB5LTIuNSB0ZXh0LXNtIG91dGxpbmUtbm9uZSB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1ibHVlLTIwMCAke1xuICAgICAgICBlcnJvciA/IFwiYm9yZGVyLXJlZC00MDAgZm9jdXM6Ym9yZGVyLXJlZC01MDBcIiA6IFwiYm9yZGVyLXNsYXRlLTMwMCBmb2N1czpib3JkZXItYmx1ZS02MDBcIlxuICAgICAgfSAke2NsYXNzTmFtZX1gfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUZXh0YXJlYSh7IGlkLCBlcnJvciwgY2xhc3NOYW1lID0gXCJcIiwgLi4ucHJvcHMgfSkge1xuICByZXR1cm4gKFxuICAgIDx0ZXh0YXJlYVxuICAgICAgaWQ9e2lkfVxuICAgICAgYXJpYS1pbnZhbGlkPXshIWVycm9yfVxuICAgICAgYXJpYS1kZXNjcmliZWRieT17ZXJyb3IgPyBgJHtpZH0tZXJyb3JgIDogdW5kZWZpbmVkfVxuICAgICAgY2xhc3NOYW1lPXtgdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIHB4LTMuNSBweS0yLjUgdGV4dC1zbSBvdXRsaW5lLW5vbmUgdHJhbnNpdGlvbi1jb2xvcnMgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctYmx1ZS0yMDAgJHtcbiAgICAgICAgZXJyb3IgPyBcImJvcmRlci1yZWQtNDAwIGZvY3VzOmJvcmRlci1yZWQtNTAwXCIgOiBcImJvcmRlci1zbGF0ZS0zMDAgZm9jdXM6Ym9yZGVyLWJsdWUtNjAwXCJcbiAgICAgIH0gJHtjbGFzc05hbWV9YH1cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0KHsgaWQsIGVycm9yLCBjbGFzc05hbWUgPSBcIlwiLCBjaGlsZHJlbiwgLi4ucHJvcHMgfSkge1xuICByZXR1cm4gKFxuICAgIDxzZWxlY3RcbiAgICAgIGlkPXtpZH1cbiAgICAgIGFyaWEtaW52YWxpZD17ISFlcnJvcn1cbiAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e2Vycm9yID8gYCR7aWR9LWVycm9yYCA6IHVuZGVmaW5lZH1cbiAgICAgIGNsYXNzTmFtZT17YHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBweC0zLjUgcHktMi41IHRleHQtc20gb3V0bGluZS1ub25lIGJnLXdoaXRlIHRyYW5zaXRpb24tY29sb3JzIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWJsdWUtMjAwICR7XG4gICAgICAgIGVycm9yID8gXCJ
131ib3JkZXItcmVkLTQwMCBmb2N1czpib3JkZXItcmVkLTUwMFwiIDogXCJib3JkZXItc2xhdGUtMzAwIGZvY3VzOmJvcmRlci1ibHVlLTYwMFwiXG4gICAgICB9ICR7Y2xhc3NOYW1lfWB9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvc2VsZWN0PlxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gU3VibWl0QnV0dG9uKHsgbG9hZGluZywgY2hpbGRyZW4sIGNsYXNzTmFtZSA9IFwiXCIsIC4uLnByb3BzIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIGRpc2FibGVkPXtsb2FkaW5nfVxuICAgICAgY2xhc3NOYW1lPXtgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIHJvdW5kZWQtbWQgYmctYmx1ZS03MDAgdGV4dC13aGl0ZSB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgcHgtNiBweS0yLjUgaG92ZXI6YmctYmx1ZS04MDAgZGlzYWJsZWQ6b3BhY2l0eS02MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgdHJhbnNpdGlvbi1jb2xvcnMgJHtjbGFzc05hbWV9YH1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICB7bG9hZGluZyAmJiAoXG4gICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInctNCBoLTQgYm9yZGVyLTIgYm9yZGVyLXdoaXRlLzQwIGJvcmRlci10LXdoaXRlIHJvdW5kZWQtZnVsbCBhbmltYXRlLXNwaW5cIiAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cbiJdfQ==

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.