diff --git a/.gitignore b/.gitignore index 0ccf0c3..afdd503 100644 --- a/.gitignore +++ b/.gitignore @@ -94,7 +94,10 @@ cmd/benchmark/data !.dockerignore !*.jsx !*.tsx -!/dist +!app/web/dist +!/app/web/dist +!/app/web/dist/* +!/app/web/dist/** !bun.lock # ...even if they are in subdirectories !*/ diff --git a/app/web/.gitignore b/app/web/.gitignore index c96e155..95bd4c3 100644 --- a/app/web/.gitignore +++ b/app/web/.gitignore @@ -8,7 +8,6 @@ node_modules bun.lockb # Build directories -dist build # Cache and logs diff --git a/app/web/dist/index.css b/app/web/dist/index.css new file mode 100644 index 0000000..55554ff --- /dev/null +++ b/app/web/dist/index.css @@ -0,0 +1 @@ +body{max-width:800px;margin:0 auto;padding:20px;font-family:Arial,sans-serif}.container{background:#f9f9f9;border-radius:8px;margin-top:20px;padding:30px}.form-group{margin-bottom:20px}label{display:block;margin-bottom:5px;font-weight:700}input,textarea{border:1px solid #ddd;border-radius:4px;width:100%;padding:10px}button{color:#fff;cursor:pointer;background:#007cba;border:none;border-radius:4px;padding:12px 20px}button:hover{background:#005a87}.danger-button{background:#dc3545}.danger-button:hover{background:#c82333}.status{border-radius:4px;margin-top:20px;margin-bottom:20px;padding:10px}.success{color:#155724;background:#d4edda}.error{color:#721c24;background:#f8d7da}.info{color:#0c5460;background:#d1ecf1}.header-panel{position:sticky;z-index:1000;display:flex;overflow:hidden;background-color:#f8f9fa;background-position:50%;background-size:cover;align-items: center;width:100%;height:60px;top:0;left:0;box-shadow:0 2px 4px #0000001a}.header-content{display:flex;box-sizing:border-box;align-items: center;width:100%;height:100%;margin:0 auto;padding:0 0 0 12px}.header-left{display:flex;justify-content:flex-start;align-items: center;height:100%}.header-center{display:flex;position:relative;overflow:hidden;flex-grow:1;justify-content:flex-start;align-items: center}.header-right{display:flex;justify-content:flex-end;align-items: center;height:100%}.header-logo{aspect-ratio:1;object-fit:cover;border-radius:0;flex-shrink:0;width:auto;height:100%}.user-avatar{object-fit:cover;border:2px solid #fff;border-radius:50%;width:40px;height:40px;margin-right:10px;box-shadow:0 1px 3px #0003}.user-profile{display:flex;position:relative;z-index:1;align-items: center}.user-info{text-align:left;font-size:1.2em;font-weight:700}.user-name{display:block;font-size:1em;font-weight:700}.profile-banner{position:absolute;z-index:-1;opacity:.7;width:100%;height:100%;top:0;left:0}.logout-button{color:#6c757d;cursor:pointer;display:flex;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items: center;width:48px;height:100%;margin-left:10px;margin-right:0;padding:0;font-size:20px}.logout-button:hover{color:#343a40;background:0 0} diff --git a/app/web/dist/index.html b/app/web/dist/index.html new file mode 100644 index 0000000..456f2af --- /dev/null +++ b/app/web/dist/index.html @@ -0,0 +1,13 @@ + + +
+ + +1?Q-1:0),X=1;X2&&(J[0]==="o"||J[0]==="O")&&(J[1]==="n"||J[1]==="N"))return!0;return!1}function I1(J,Q,Z,X){if(Z!==null&&Z.type===b4)return!1;switch(typeof Q){case"function":case"symbol":return!0;case"boolean":{if(X)return!1;if(Z!==null)return!Z.acceptsBooleans;else{var G=J.toLowerCase().slice(0,5);return G!=="data-"&&G!=="aria-"}}default:return!1}}function Z1(J,Q,Z,X){if(Q===null||typeof Q==="undefined")return!0;if(I1(J,Q,Z,X))return!0;if(X)return!1;if(Z!==null)switch(Z.type){case G4:return!Q;case s1:return Q===!1;case N5:return isNaN(Q);case v5:return isNaN(Q)||Q<1}return!1}function z4(J){return b0.hasOwnProperty(J)?b0[J]:null}function w0(J,Q,Z,X,G,z,B){this.acceptsBooleans=Q===r4||Q===G4||Q===s1,this.attributeName=X,this.attributeNamespace=G,this.mustUseProperty=Z,this.propertyName=J,this.type=Q,this.sanitizeURL=z,this.removeEmptyString=B}var b0={},t5=["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"];t5.forEach(function(J){b0[J]=new w0(J,b4,!1,J,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(J){var Q=J[0],Z=J[1];b0[Q]=new w0(Q,F1,!1,Z,null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(J){b0[J]=new w0(J,r4,!1,J.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(J){b0[J]=new w0(J,r4,!1,J,null,!1,!1)}),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach(function(J){b0[J]=new w0(J,G4,!1,J.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(J){b0[J]=new w0(J,G4,!0,J,null,!1,!1)}),["capture","download"].forEach(function(J){b0[J]=new w0(J,s1,!1,J,null,!1,!1)}),["cols","rows","size","span"].forEach(function(J){b0[J]=new w0(J,v5,!1,J,null,!1,!1)}),["rowSpan","start"].forEach(function(J){b0[J]=new w0(J,N5,!1,J.toLowerCase(),null,!1,!1)});var n4=/[\-\:]([a-z])/g,F7=function(J){return J[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach(function(J){var Q=J.replace(n4,F7);b0[Q]=new w0(Q,F1,!1,J,null,!1,!1)}),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach(function(J){var Q=J.replace(n4,F7);b0[Q]=new w0(Q,F1,!1,J,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(J){var Q=J.replace(n4,F7);b0[Q]=new w0(Q,F1,!1,J,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(J){b0[J]=new w0(J,F1,!1,J.toLowerCase(),null,!1,!1)});var c9="xlinkHref";b0[c9]=new w0("xlinkHref",F1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(J){b0[J]=new w0(J,F1,!1,J.toLowerCase(),null,!0,!0)});var m8=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,y8=!1;function G8(J){if(!y8&&m8.test(J))y8=!0,q("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",JSON.stringify(J))}function b5(J,Q,Z,X){if(X.mustUseProperty){var G=X.propertyName;return J[G]}else{if(L4(Z,Q),X.sanitizeURL)G8(""+Z);var z=X.attributeName,B=null;if(X.type===s1){if(J.hasAttribute(z)){var Y=J.getAttribute(z);if(Y==="")return!0;if(Z1(Q,Z,X,!1))return Y;if(Y===""+Z)return Z;return Y}}else if(J.hasAttribute(z)){if(Z1(Q,Z,X,!1))return J.getAttribute(z);if(X.type===G4)return Z;B=J.getAttribute(z)}if(Z1(Q,Z,X,!1))return B===null?Z:B;else if(B===""+Z)return Z;else return B}}function I7(J,Q,Z,X){{if(!f0(Q))return;if(!J.hasAttribute(Q))return Z===void 0?void 0:null;var G=J.getAttribute(Q);if(L4(Z,Q),G===""+Z)return Z;return G}}function _7(J,Q,Z,X){var G=z4(Q);if(p0(Q,G,X))return;if(Z1(Q,Z,G,X))Z=null;if(X||G===null){if(f0(Q)){var z=Q;if(Z===null)J.removeAttribute(z);else L4(Z,Q),J.setAttribute(z,""+Z)}return}var B=G.mustUseProperty;if(B){var Y=G.propertyName;if(Z===null){var K=G.type;J[Y]=K===G4?!1:""}else J[Y]=Z;return}var{attributeName:H,attributeNamespace:U}=G;if(Z===null)J.removeAttribute(H);else{var V=G.type,$;if(V===G4||V===s1&&Z===!0)$="";else if(L4(Z,H),$=""+Z,G.sanitizeURL)G8($.toString());if(U)J.setAttributeNS(U,H,$);else J.setAttribute(H,$)}}var q5=Symbol.for("react.element"),M5=Symbol.for("react.portal"),k5=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),N=Symbol.for("react.provider"),n=Symbol.for("react.context"),a=Symbol.for("react.forward_ref"),C0=Symbol.for("react.suspense"),j0=Symbol.for("react.suspense_list"),O0=Symbol.for("react.memo"),k0=Symbol.for("react.lazy"),X1=Symbol.for("react.scope"),K1=Symbol.for("react.debug_trace_mode"),c1=Symbol.for("react.offscreen"),T5=Symbol.for("react.legacy_hidden"),O5=Symbol.for("react.cache"),T1=Symbol.for("react.tracing_marker"),w7=Symbol.iterator,i9="@@iterator";function $5(J){if(J===null||typeof J!=="object")return null;var Q=w7&&J[w7]||J[i9];if(typeof Q==="function")return Q;return null}var D0=Object.assign,z8=0,E7,l9,p9,o9,a9,r9,n9;function t9(){}t9.__reactDisabledLog=!0;function uJ(){{if(z8===0){E7=console.log,l9=console.info,p9=console.warn,o9=console.error,a9=console.group,r9=console.groupCollapsed,n9=console.groupEnd;var J={configurable:!0,enumerable:!0,value:t9,writable:!0};Object.defineProperties(console,{info:J,log:J,warn:J,error:J,group:J,groupCollapsed:J,groupEnd:J})}z8++}}function XX(){{if(z8--,z8===0){var J={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:D0({},J,{value:E7}),info:D0({},J,{value:l9}),warn:D0({},J,{value:p9}),error:D0({},J,{value:o9}),group:D0({},J,{value:a9}),groupCollapsed:D0({},J,{value:r9}),groupEnd:D0({},J,{value:n9})})}if(z8<0)q("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var e9=K0.ReactCurrentDispatcher,B8;function t4(J,Q,Z){{if(B8===void 0)try{throw Error()}catch(G){var X=G.stack.trim().match(/\n( *(at )?)/);B8=X&&X[1]||""}return` +`+B8+J}}var S7=!1,C7;{var s8=typeof WeakMap==="function"?WeakMap:Map;C7=new s8}function J6(J,Q){if(!J||S7)return"";{var Z=C7.get(J);if(Z!==void 0)return Z}var X;S7=!0;var G=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var z;z=e9.current,e9.current=null,uJ();try{if(Q){var B=function(){throw Error()};if(Object.defineProperty(B.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==="object"&&Reflect.construct){try{Reflect.construct(B,[])}catch(x){X=x}Reflect.construct(J,[],B)}else{try{B.call()}catch(x){X=x}J.call(B.prototype)}}else{try{throw Error()}catch(x){X=x}J()}}catch(x){if(x&&X&&typeof x.stack==="string"){var Y=x.stack.split(` +`),K=X.stack.split(` +`),H=Y.length-1,U=K.length-1;while(H>=1&&U>=0&&Y[H]!==K[U])U--;for(;H>=1&&U>=0;H--,U--)if(Y[H]!==K[U]){if(H!==1||U!==1)do if(H--,U--,U<0||Y[H]!==K[U]){var V=` +`+Y[H].replace(" at new "," at ");if(J.displayName&&V.includes(""))V=V.replace(" ",J.displayName);if(typeof J==="function")C7.set(J,V);return V}while(H>=1&&U>=0);break}}}finally{S7=!1,e9.current=z,XX(),Error.prepareStackTrace=G}var $=J?J.displayName||J.name:"",j=$?t4($):"";if(typeof J==="function")C7.set(J,j);return j}function dJ(J,Q,Z){return J6(J,!0)}function Q6(J,Q,Z){return J6(J,!1)}function GX(J){var Q=J.prototype;return!!(Q&&Q.isReactComponent)}function g7(J,Q,Z){if(J==null)return"";if(typeof J==="function")return J6(J,GX(J));if(typeof J==="string")return t4(J);switch(J){case C0:return t4("Suspense");case j0:return t4("SuspenseList")}if(typeof J==="object")switch(J.$$typeof){case a:return Q6(J.render);case O0:return g7(J.type,Q,Z);case k0:{var X=J,G=X._payload,z=X._init;try{return g7(z(G),Q,Z)}catch(B){}}}return""}function mJ(J){var Q=J._debugOwner?J._debugOwner.type:null,Z=J._debugSource;switch(J.tag){case f:return t4(J.type);case R0:return t4("Lazy");case Q0:return t4("Suspense");case P0:return t4("SuspenseList");case z0:case n0:case y:return Q6(J.type);case l:return Q6(J.type.render);case c:return dJ(J.type);default:return""}}function Z6(J){try{var Q="",Z=J;do Q+=mJ(Z),Z=Z.return;while(Z);return Q}catch(X){return` +Error generating stack: `+X.message+` +`+X.stack}}function c8(J,Q,Z){var X=J.displayName;if(X)return X;var G=Q.displayName||Q.name||"";return G!==""?Z+"("+G+")":Z}function yJ(J){return J.displayName||"Context"}function S0(J){if(J==null)return null;if(typeof J.tag==="number")q("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.");if(typeof J==="function")return J.displayName||J.name||null;if(typeof J==="string")return J;switch(J){case k5:return"Fragment";case M5:return"Portal";case w:return"Profiler";case O:return"StrictMode";case C0:return"Suspense";case j0:return"SuspenseList"}if(typeof J==="object")switch(J.$$typeof){case n:var Q=J;return yJ(Q)+".Consumer";case N:var Z=J;return yJ(Z._context)+".Provider";case a:return c8(J,J.render,"ForwardRef");case O0:var X=J.displayName||null;if(X!==null)return X;return S0(J.type)||"Memo";case k0:{var G=J,z=G._payload,B=G._init;try{return S0(B(z))}catch(Y){return null}}}return null}function sJ(J,Q,Z){var X=Q.displayName||Q.name||"";return J.displayName||(X!==""?Z+"("+X+")":Z)}function X6(J){return J.displayName||"Context"}function $0(J){var{tag:Q,type:Z}=J;switch(Q){case B0:return"Cache";case i4:var X=Z;return X6(X)+".Consumer";case q1:var G=Z;return X6(G._context)+".Provider";case v0:return"DehydratedFragment";case l:return sJ(Z,Z.render,"ForwardRef");case y1:return"Fragment";case f:return Z;case A0:return"Portal";case i:return"Root";case W0:return"Text";case R0:return S0(Z);case C4:if(Z===O)return"StrictMode";return"Mode";case Q1:return"Offscreen";case B1:return"Profiler";case Y1:return"Scope";case Q0:return"Suspense";case P0:return"SuspenseList";case l0:return"TracingMarker";case c:case z0:case M0:case n0:case H0:case y:if(typeof Z==="function")return Z.displayName||Z.name||null;if(typeof Z==="string")return Z;break}return null}var cJ=K0.ReactDebugCurrentFrame,B4=null,Y8=!1;function N7(){{if(B4===null)return null;var J=B4._debugOwner;if(J!==null&&typeof J!=="undefined")return $0(J)}return null}function iJ(){{if(B4===null)return"";return Z6(B4)}}function h1(){cJ.getCurrentStack=null,B4=null,Y8=!1}function H1(J){cJ.getCurrentStack=J===null?null:iJ,B4=J,Y8=!1}function lJ(){return B4}function T4(J){Y8=J}function D4(J){return""+J}function h5(J){switch(typeof J){case"boolean":case"number":case"string":case"undefined":return J;case"object":return v4(J),J;default:return""}}var zX={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0};function i8(J,Q){{if(!(zX[Q.type]||Q.onChange||Q.onInput||Q.readOnly||Q.disabled||Q.value==null))q("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.");if(!(Q.onChange||Q.readOnly||Q.disabled||Q.checked==null))q("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")}}function K8(J){var{type:Q,nodeName:Z}=J;return Z&&Z.toLowerCase()==="input"&&(Q==="checkbox"||Q==="radio")}function pJ(J){return J._valueTracker}function v7(J){J._valueTracker=null}function oJ(J){var Q="";if(!J)return Q;if(K8(J))Q=J.checked?"true":"false";else Q=J.value;return Q}function aJ(J){var Q=K8(J)?"checked":"value",Z=Object.getOwnPropertyDescriptor(J.constructor.prototype,Q);v4(J[Q]);var X=""+J[Q];if(J.hasOwnProperty(Q)||typeof Z==="undefined"||typeof Z.get!=="function"||typeof Z.set!=="function")return;var{get:G,set:z}=Z;Object.defineProperty(J,Q,{configurable:!0,get:function(){return G.call(this)},set:function(Y){v4(Y),X=""+Y,z.call(this,Y)}}),Object.defineProperty(J,Q,{enumerable:Z.enumerable});var B={getValue:function(){return X},setValue:function(Y){v4(Y),X=""+Y},stopTracking:function(){v7(J),delete J[Q]}};return B}function e5(J){if(pJ(J))return;J._valueTracker=aJ(J)}function l8(J){if(!J)return!1;var Q=pJ(J);if(!Q)return!0;var Z=Q.getValue(),X=oJ(J);if(X!==Z)return Q.setValue(X),!0;return!1}function b7(J){if(J=J||(typeof document!=="undefined"?document:void 0),typeof J==="undefined")return null;try{return J.activeElement||J.body}catch(Q){return J.body}}var p8=!1,rJ=!1,nJ=!1,tJ=!1;function eJ(J){var Q=J.type==="checkbox"||J.type==="radio";return Q?J.checked!=null:J.value!=null}function W(J,Q){var Z=J,X=Q.checked,G=D0({},Q,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:X!=null?X:Z._wrapperState.initialChecked});return G}function M(J,Q){{if(i8("input",Q),Q.checked!==void 0&&Q.defaultChecked!==void 0&&!rJ)q("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",N7()||"A component",Q.type),rJ=!0;if(Q.value!==void 0&&Q.defaultValue!==void 0&&!p8)q("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",N7()||"A component",Q.type),p8=!0}var Z=J,X=Q.defaultValue==null?"":Q.defaultValue;Z._wrapperState={initialChecked:Q.checked!=null?Q.checked:Q.defaultChecked,initialValue:h5(Q.value!=null?Q.value:X),controlled:eJ(Q)}}function P(J,Q){var Z=J,X=Q.checked;if(X!=null)_7(Z,"checked",X,!1)}function D(J,Q){var Z=J;{var X=eJ(Q);if(!Z._wrapperState.controlled&&X&&!tJ)q("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),tJ=!0;if(Z._wrapperState.controlled&&!X&&!nJ)q("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),nJ=!0}P(J,Q);var G=h5(Q.value),z=Q.type;if(G!=null){if(z==="number"){if(G===0&&Z.value===""||Z.value!=G)Z.value=D4(G)}else if(Z.value!==D4(G))Z.value=D4(G)}else if(z==="submit"||z==="reset"){Z.removeAttribute("value");return}if(Q.hasOwnProperty("value"))Z0(Z,Q.type,G);else if(Q.hasOwnProperty("defaultValue"))Z0(Z,Q.type,h5(Q.defaultValue));if(Q.checked==null&&Q.defaultChecked!=null)Z.defaultChecked=!!Q.defaultChecked}function S(J,Q,Z){var X=J;if(Q.hasOwnProperty("value")||Q.hasOwnProperty("defaultValue")){var G=Q.type,z=G==="submit"||G==="reset";if(z&&(Q.value===void 0||Q.value===null))return;var B=D4(X._wrapperState.initialValue);if(!Z){if(B!==X.value)X.value=B}X.defaultValue=B}var Y=X.name;if(Y!=="")X.name="";if(X.defaultChecked=!X.defaultChecked,X.defaultChecked=!!X._wrapperState.initialChecked,Y!=="")X.name=Y}function e(J,Q){var Z=J;D(Z,Q),d(Z,Q)}function d(J,Q){var Z=Q.name;if(Q.type==="radio"&&Z!=null){var X=J;while(X.parentNode)X=X.parentNode;L4(Z,"name");var G=X.querySelectorAll("input[name="+JSON.stringify(""+Z)+'][type="radio"]');for(var z=0;z .")});else if(Q.dangerouslySetInnerHTML!=null){if(!o0)o0=!0,q("Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.")}}if(Q.selected!=null&&!F0)q("Use the `defaultValue` or `value` props on