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.