docs(design): remove SVG, use PNG logo only
SVG icon is no longer in use. public/logo.png (1024x1024 RGBA) is the single logo asset. DESIGN.md updated accordingly: SVG snippet removed, wordmark pattern and <head> references updated to PNG. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
d66ec03165
commit
46929e2ef5
8901 files changed
+1280134
-37
No files matched your search
Vendored
+1
@@ -0,0 +1 @@
|
||||
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:Line truncated
|
||||
Vendored
+78
@@ -0,0 +1,78 @@
|
||||
function Yc(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const l in r)if(l!=="default"&&!(l in e)){const i=Object.getOwnPropertyDescriptor(r,l);i&&Object.defineProperty(e,l,i.get?i:{enumerable:!0,get:()=>r[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const i of l)if(i.type==="childList")for(const s of i.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(l){const i={};return l.integrity&&(i.integrity=l.integrity),l.referrerPolicy&&(i.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?i.credentials="include":l.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(l){if(l.ep)return;l.ep=!0;const i=n(l);fetch(l.href,i)}})();function Zc(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Na={exports:{}},hl={},ja={exports:{}},O={};/**
|
||||
* @license React
|
||||
* react.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/var ir=Symbol.for("react.element"),Jc=Symbol.for("react.portal"),qc=Symbol.for("react.fragment"),bc=Symbol.for("react.strict_mode"),ed=Symbol.for("react.profiler"),td=Symbol.for("react.provider"),nd=Symbol.for("react.context"),rd=Symbol.for("react.forward_ref"),ld=Symbol.for("react.suspense"),id=Symbol.for("react.memo"),sd=Symbol.for("react.lazy"),no=Symbol.iterator;function od(e){return e===null||typeof e!="object"?null:(e=no&&e[no]||e["@@iterator"],typeof e=="function"?e:null)}var Ea={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ca=Object.assign,Pa={};function dn(e,t,n){this.props=e,this.context=t,this.refs=Pa,this.updater=n||Ea}dn.prototype.isReactComponent={};dn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};dn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function _a(){}_a.prototype=dn.prototype;function rs(e,t,n){this.props=e,this.context=t,this.refs=Pa,this.updater=n||Ea}var ls=rs.prototype=new _a;ls.constructor=rs;Ca(ls,dn.prototype);ls.isPureReactComponent=!0;var ro=Array.isArray,La=Object.prototype.hasOwnProperty,is={current:null},Ra={key:!0,ref:!0,__self:!0,__source:!0};function Ta(e,t,n){var r,l={},i=null,s=null;if(t!=null)for(r in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(i=""+t.key),t)La.call(t,r)&&!Ra.hasOwnProperty(r)&&(l[r]=t[r]);var a=arguments.length-2;if(a===1)l.children=n;else if(1<a){for(var u=Array(a),c=0;c<a;c++)u[c]=arguments[c+2];l.children=u}if(e&&e.defaultProps)for(r in a=e.defaultProps,a)l[r]===void 0&&(l[r]=a[r]);return{$$typeof:ir,type:e,key:i,ref:s,props:l,_owner:is.current}}function ad(e,t){return{$$typeof:ir,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function ss(e){return typeof e=="object"&&e!==null&&e.$$typeof===ir}function ud(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var lo=/\/+/g;function Dl(e,t){return typeof e=="object"&&e!==null&&e.key!=null?ud(""+e.key):t.toString(36)}function Or(e,t,n,r,l){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var s=!1;if(e===null)s=!0;else switch(i){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case ir:case Jc:s=!0}}if(s)return s=e,l=l(s),e=r===""?"."+Dl(s,0):r,ro(l)?(n="",e!=null&&(n=e.replace(lo,"$&/")+"/"),Or(l,t,n,"",function(c){return c})):l!=null&&(ss(l)&&(l=ad(l,n+(!l.key||s&&s.key===l.key?"":(""+l.key).replace(lo,"$&/")+"/")+e)),t.push(l)),1;if(s=0,r=r===""?".":r+":",ro(e))for(var a=0;a<e.length;a++){i=e[a];var u=r+Dl(i,a);s+=Or(i,t,n,u,l)}else if(u=od(e),typeof u=="function")for(e=u.call(e),a=0;!(i=e.next()).done;)i=i.value,u=r+Dl(i,a++),s+=Or(i,t,n,u,l);else if(i==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return s}function mr(e,t,n){if(e==null)return e;var r=[],l=0;return Or(e,r,"","",function(i){return t.call(n,i,l++)}),r}function cd(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var ce={current:null},zr={transition:null},dd={ReactCurrentDispatcher:ce,ReactCurrentBatchConfig:zr,ReactCurrentOwner:is};function Oa(){throw Error("act(...) is not supported in production builds of React.")}O.Children={map:mr,forEach:function(e,t,n){mr(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return mr(e,function(){t++}),t},toArray:function(e){return mr(e,function(t){return t})||[]},only:function(e){if(!ss(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};O.Component=dn;O.Fragment=qc;O.Profiler=ed;O.PureComponent=rs;O.StrictMode=bc;O.Suspense=ld;O.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=dd;O.act=Oa;O.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=Ca({},e.props),l=e.key,i=e.ref,s=e._owner;if(t!=null){if(t.ref!==void 0&&(i=t.ref,s=is.current),t.key!==void 0&&(l=""+t.key),e.type&&e.type.defaultProps)var a=e.type.defaultProps;for(u in t)La.call(t,u)&&!Ra.hasOwnProperty(u)&&(r[u]=t[u]===void 0&&a!==void 0?a[u]:t[u])}var u=arguments.length-2;if(u===1)r.children=n;else if(1<u){a=Array(u);for(var c=0;c<u;c++)a[c]=arguments[c+2];r.children=a}return{$$typeof:ir,type:e.type,key:l,ref:i,props:r,_owner:s}};O.createContext=function(e){return e={$$typeof:nd,_currentValue:e,_currentValue2:e,_threadCount:0,ProviderLine truncated
|
||||
* @license React
|
||||
* react-jsx-runtime.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/var md=S,hd=Symbol.for("react.element"),vd=Symbol.for("react.fragment"),gd=Object.prototype.hasOwnProperty,yd=md.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,xd={key:!0,ref:!0,__self:!0,__source:!0};function za(e,t,n){var r,l={},i=null,s=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(s=t.ref);for(r in t)gd.call(t,r)&&!xd.hasOwnProperty(r)&&(l[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)l[r]===void 0&&(l[r]=t[r]);return{$$typeof:hd,type:e,key:i,ref:s,props:l,_owner:yd.current}}hl.Fragment=vd;hl.jsx=za;hl.jsxs=za;Na.exports=hl;var o=Na.exports,Ia={exports:{}},ke={},Da={exports:{}},Ma={};/**
|
||||
* @license React
|
||||
* scheduler.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/(function(e){function t(C,R){var T=C.length;C.push(R);e:for(;0<T;){var Q=T-1>>>1,q=C[Q];if(0<l(q,R))C[Q]=R,C[T]=q,T=Q;else break e}}function n(C){return C.length===0?null:C[0]}function r(C){if(C.length===0)return null;var R=C[0],T=C.pop();if(T!==R){C[0]=T;e:for(var Q=0,q=C.length,fr=q>>>1;Q<fr;){var wt=2*(Q+1)-1,Il=C[wt],kt=wt+1,pr=C[kt];if(0>l(Il,T))kt<q&&0>l(pr,Il)?(C[Q]=pr,C[kt]=T,Q=kt):(C[Q]=Il,C[wt]=T,Q=wt);else if(kt<q&&0>l(pr,T))C[Q]=pr,C[kt]=T,Q=kt;else break e}}return R}function l(C,R){var T=C.sortIndex-R.sortIndex;return T!==0?T:C.id-R.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var s=Date,a=s.now();e.unstable_now=function(){return s.now()-a}}var u=[],c=[],h=1,m=null,v=3,y=!1,x=!1,w=!1,j=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,d=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function p(C){for(var R=n(c);R!==null;){if(R.callback===null)r(c);else if(R.startTime<=C)r(c),R.sortIndex=R.expirationTime,t(u,R);else break;R=n(c)}}function g(C){if(w=!1,p(C),!x)if(n(u)!==null)x=!0,Ol(N);else{var R=n(c);R!==null&&zl(g,R.startTime-C)}}function N(C,R){x=!1,w&&(w=!1,f(L),L=-1),y=!0;var T=v;try{for(p(R),m=n(u);m!==null&&(!(m.expirationTime>R)||C&&!Le());){var Q=m.callback;if(typeof Q=="function"){m.callback=null,v=m.priorityLevel;var q=Q(m.expirationTime<=R);R=e.unstable_now(),typeof q=="function"?m.callback=q:m===n(u)&&r(u),p(R)}else r(u);m=n(u)}if(m!==null)var fr=!0;else{var wt=n(c);wt!==null&&zl(g,wt.startTime-R),fr=!1}return fr}finally{m=null,v=T,y=!1}}var P=!1,_=null,L=-1,H=5,z=-1;function Le(){return!(e.unstable_now()-z<H)}function hn(){if(_!==null){var C=e.unstable_now();z=C;var R=!0;try{R=_(!0,C)}finally{R?vn():(P=!1,_=null)}}else P=!1}var vn;if(typeof d=="function")vn=function(){d(hn)};else if(typeof MessageChannel<"u"){var to=new MessageChannel,Xc=to.port2;to.port1.onmessage=hn,vn=function(){Xc.postMessage(null)}}else vn=function(){j(hn,0)};function Ol(C){_=C,P||(P=!0,vn())}function zl(C,R){L=j(function(){C(e.unstable_now())},R)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(C){C.callback=null},e.unstable_continueExecution=function(){x||y||(x=!0,Ol(N))},e.unstable_forceFrameRate=function(C){0>C||125<C?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):H=0<C?Math.floor(1e3/C):5},e.unstable_getCurrentPriorityLevel=function(){return v},e.unstable_getFirstCallbackNode=function(){return n(u)},e.unstable_next=function(C){switch(v){case 1:case 2:case 3:var R=3;break;default:R=v}var T=v;v=R;try{return C()}finally{v=T}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(C,R){switch(C){case 1:case 2:case 3:case 4:case 5:break;default:C=3}var T=v;v=C;try{return R()}finally{v=T}},e.unstable_scheduleCallback=function(C,R,T){var Q=e.unstable_now();switch(typeof T=="object"&&T!==null?(T=T.delay,T=typeof T=="number"&&0<T?Q+T:Q):T=Q,C){case 1:var q=-1;break;case 2:q=250;break;case 5:q=1073741823;break;case 4:q=1e4;break;default:q=5e3}return q=T+q,C={id:h++,callback:R,priorityLevel:C,startTime:T,expirationTime:q,sortIndex:-1},T>Q?(C.sortIndex=T,t(c,C),n(u)===null&&C===n(c)&&(w?(f(L),L=-1):w=!0,zl(g,T-Q))):(C.sortIndex=q,t(u,C),x||y||(x=!0,Ol(N))),C},e.unstable_shouldYield=Le,e.unstable_wrapCallback=function(C){var R=v;return function(){var T=v;v=R;try{return C.apply(this,arguments)}finally{v=T}}}})(Ma);Da.exports=Ma;var wd=Da.exports;/**
|
||||
* @license React
|
||||
* react-dom.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/var kd=S,we=wd;function k(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Fa=new Set,Bn={};function It(e,t){rn(e,t),rn(e+"Capture",t)}function rn(e,t){for(Bn[e]=t,e=0;e<t.length;e++)Fa.add(t[e])}var Ge=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ai=Object.prototype.hasOwnProperty,Sd=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,io={},so={};function Nd(e){return ai.call(so,e)?!0:ai.call(io,e)?!1:Sd.test(e)?so[e]=!0:(io[e]=!0,!1)}function jd(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Ed(e,t,n,r){if(t===null||typeof t>"u"||jd(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function de(e,t,n,r,l,i,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=s}var re={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){re[e]=new de(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];re[t]=new de(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){re[e]=new de(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){re[e]=new de(e,2,!1,e,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".split(" ").forEach(function(e){re[e]=new de(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){re[e]=new de(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){re[e]=new de(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){re[e]=new de(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){re[e]=new de(e,5,!1,e.toLowerCase(),null,!1,!1)});var os=/[\-:]([a-z])/g;function as(e){return e[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".split(" ").forEach(function(e){var t=e.replace(os,as);re[t]=new de(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(os,as);re[t]=new de(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(os,as);re[t]=new de(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){re[e]=new de(e,1,!1,e.toLowerCase(),null,!1,!1)});re.xlinkHref=new de("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){re[e]=new de(e,1,!1,e.toLowerCase(),null,!0,!0)});function us(e,t,n,r){var l=re.hasOwnProperty(t)?re[t]:null;(l!==null?l.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!=="
Line truncated
|
||||
`+Ml+e}var Fl=!1;function Al(e,t){if(!e||Fl)return"";Fl=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&typeof c.stack=="string"){for(var l=c.stack.split(`
|
||||
`),i=r.stack.split(`
|
||||
`),s=l.length-1,a=i.length-1;1<=s&&0<=a&&l[s]!==i[a];)a--;for(;1<=s&&0<=a;s--,a--)if(l[s]!==i[a]){if(s!==1||a!==1)do if(s--,a--,0>a||l[s]!==i[a]){var u=`
|
||||
`+l[s].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}while(1<=s&&0<=a);break}}}finally{Fl=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Cn(e):""}function Cd(e){switch(e.tag){case 5:return Cn(e.type);case 16:return Cn("Lazy");case 13:return Cn("Suspense");case 19:return Cn("SuspenseList");case 0:case 2:case 15:return e=Al(e.type,!1),e;case 11:return e=Al(e.type.render,!1),e;case 1:return e=Al(e.type,!0),e;default:return""}}function fi(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case Bt:return"Fragment";case Ut:return"Portal";case ui:return"Profiler";case cs:return"StrictMode";case ci:return"Suspense";case di:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ua:return(e.displayName||"Context")+".Consumer";case Aa:return(e._context.displayName||"Context")+".Provider";case ds:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case fs:return t=e.displayName||null,t!==null?t:fi(e.type)||"Memo";case be:t=e._payload,e=e._init;try{return fi(e(t))}catch{}}return null}function Pd(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return fi(t);case 8:return t===cs?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ht(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function $a(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function _d(e){var t=$a(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(s){r=""+s,i.call(this,s)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function vr(e){e._valueTracker||(e._valueTracker=_d(e))}function Va(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=$a(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Hr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function pi(e,t){var n=t.checked;return V({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ao(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ht(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Wa(e,t){t=t.checked,t!=null&&us(e,"checked",t,!1)}function mi(e,t){Wa(e,t);var n=ht(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?hi(e,t.type,n):t.hasOwnProperty("defaultValue")&&hi(e,t.type,ht(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function uo(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function hi(e,t,n){(t!=="number"||Hr(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Pn=Array.isArray;function Jt(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l<n.length;l++)t["$"+n[l]]=!0;for(n=0;n<e.length;n++)l=t.hasOwnProperty("$"+e[n].value),e[n].selected!==l&&(e[n].selected=l),l&&r&&(e[n].defaultSelected=!0)}else{for(n=""+ht(n),t=null,l=0;l<e.length;l++){if(e[l].value===n){e[l].selected=!0,r&&(e[l].defaultSelected=!0);return}t!==null||e[l].disabled||(t=e[l])}t!==null&&(t.selected=!0)}}function vi(e,t){if(t.dang
Line truncated
|
||||
`).replace(Uf,"")}function jr(e,t,n){if(t=zo(t),zo(e)!==t&&n)throw Error(k(425))}function qr(){}var Li=null,Ri=null;function Ti(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Oi=typeof setTimeout=="function"?setTimeout:void 0,Bf=typeof clearTimeout=="function"?clearTimeout:void 0,Io=typeof Promise=="function"?Promise:void 0,$f=typeof queueMicrotask=="function"?queueMicrotask:typeof Io<"u"?function(e){return Io.resolve(null).then(e).catch(Vf)}:Oi;function Vf(e){setTimeout(function(){throw e})}function Jl(e,t){var n=t,r=0;do{var l=n.nextSibling;if(e.removeChild(n),l&&l.nodeType===8)if(n=l.data,n==="/$"){if(r===0){e.removeChild(l),Qn(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=l}while(n);Qn(t)}function ut(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Do(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var pn=Math.random().toString(36).slice(2),Ue="__reactFiber$"+pn,Zn="__reactProps$"+pn,Xe="__reactContainer$"+pn,zi="__reactEvents$"+pn,Wf="__reactListeners$"+pn,Hf="__reactHandles$"+pn;function jt(e){var t=e[Ue];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Xe]||n[Ue]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Do(e);e!==null;){if(n=e[Ue])return n;e=Do(e)}return t}e=n,n=e.parentNode}return null}function ar(e){return e=e[Ue]||e[Xe],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Ht(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(k(33))}function wl(e){return e[Zn]||null}var Ii=[],Qt=-1;function yt(e){return{current:e}}function A(e){0>Qt||(e.current=Ii[Qt],Ii[Qt]=null,Qt--)}function M(e,t){Qt++,Ii[Qt]=e.current,e.current=t}var vt={},oe=yt(vt),me=yt(!1),Lt=vt;function ln(e,t){var n=e.type.contextTypes;if(!n)return vt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},i;for(i in n)l[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function he(e){return e=e.childContextTypes,e!=null}function br(){A(me),A(oe)}function Mo(e,t,n){if(oe.current!==vt)throw Error(k(168));M(oe,t),M(me,n)}function Tu(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(k(108,Pd(e)||"Unknown",l));return V({},n,r)}function el(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||vt,Lt=oe.current,M(oe,e),M(me,me.current),!0}function Fo(e,t,n){var r=e.stateNode;if(!r)throw Error(k(169));n?(e=Tu(e,t,Lt),r.__reactInternalMemoizedMergedChildContext=e,A(me),A(oe),M(oe,e)):A(me),M(me,n)}var We=null,kl=!1,ql=!1;function Ou(e){We===null?We=[e]:We.push(e)}function Qf(e){kl=!0,Ou(e)}function xt(){if(!ql&&We!==null){ql=!0;var e=0,t=D;try{var n=We;for(D=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}We=null,kl=!1}catch(l){throw We!==null&&(We=We.slice(e+1)),ru(ms,xt),l}finally{D=t,ql=!1}}return null}var Kt=[],Gt=0,tl=null,nl=0,Ne=[],je=0,Rt=null,He=1,Qe="";function St(e,t){Kt[Gt++]=nl,Kt[Gt++]=tl,tl=e,nl=t}function zu(e,t,n){Ne[je++]=He,Ne[je++]=Qe,Ne[je++]=Rt,Rt=e;var r=He;e=Qe;var l=32-Ie(r)-1;r&=~(1<<l),n+=1;var i=32-Ie(t)+l;if(30<i){var s=l-l%5;i=(r&(1<<s)-1).toString(32),r>>=s,l-=s,He=1<<32-Ie(t)+l|n<<l|r,Qe=i+e}else He=1<<i|n<<l|r,Qe=e}function Ns(e){e.return!==null&&(St(e,1),zu(e,1,0))}function js(e){for(;e===tl;)tl=Kt[--Gt],Kt[Gt]=null,nl=Kt[--Gt],Kt[Gt]=null;for(;e===Rt;)Rt=Ne[--je],Ne[je]=null,Qe=Ne[--je],Ne[je]=null,He=Ne[--je],Ne[je]=null}var xe=null,ye=null,U=!1,ze=null;function Iu(e,t){var n=Ee(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Ao(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,xe=e,ye=ut(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,xe=e,ye=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Rt!==null?{id:He,overflow:Qe}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Ee(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,xe=e,ye=null,!0):!1;default:return!1}}function Di(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Mi(e){if(U){var t=ye;if(t){var n=t;if(!Ao(e,t)){if(Di(e))throw Error(k(418));t=ut(n.nextSibling);var r=xe;t&&Ao(e,t)?Iu(r,n):(e.flags=e.flags&-4097|2,U=!1,xe=e)}}else{if(Di(e))throw Error(k(418));e.flags=e.flags&-4097|2,U=!1,xe=e}}}function Uo(e){for(e=e.return;e!==null&&e.t
Line truncated
|
||||
Error generating stack: `+i.message+`
|
||||
`+i.stack}return{value:e,source:t,stack:l,digest:null}}function ri(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Bi(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var ep=typeof WeakMap=="function"?WeakMap:Map;function oc(e,t,n){n=Ke(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){cl||(cl=!0,Zi=r),Bi(e,t)},n}function ac(e,t,n){n=Ke(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var l=t.value;n.payload=function(){return r(l)},n.callback=function(){Bi(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){Bi(e,t),typeof r!="function"&&(dt===null?dt=new Set([this]):dt.add(this));var s=t.stack;this.componentDidCatch(t.value,{componentStack:s!==null?s:""})}),n}function Go(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new ep;var l=new Set;r.set(t,l)}else l=r.get(t),l===void 0&&(l=new Set,r.set(t,l));l.has(n)||(l.add(n),e=mp.bind(null,e,t,n),t.then(e,e))}function Xo(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Yo(e,t,n,r,l){return e.mode&1?(e.flags|=65536,e.lanes=l,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Ke(-1,1),t.tag=2,ct(n,t,1))),n.lanes|=1),e)}var tp=Je.ReactCurrentOwner,pe=!1;function ae(e,t,n,r){t.child=e===null?Fu(t,null,n,r):on(t,e.child,n,r)}function Zo(e,t,n,r,l){n=n.render;var i=t.ref;return tn(t,l),r=Ds(e,t,n,r,i,l),n=Ms(),e!==null&&!pe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Ze(e,t,l)):(U&&n&&Ns(t),t.flags|=1,ae(e,t,r,l),t.child)}function Jo(e,t,n,r,l){if(e===null){var i=n.type;return typeof i=="function"&&!Ks(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,uc(e,t,i,r,l)):(e=Wr(n.type,null,r,t,t.mode,l),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&l)){var s=i.memoizedProps;if(n=n.compare,n=n!==null?n:Gn,n(s,r)&&e.ref===t.ref)return Ze(e,t,l)}return t.flags|=1,e=pt(i,r),e.ref=t.ref,e.return=t,t.child=e}function uc(e,t,n,r,l){if(e!==null){var i=e.memoizedProps;if(Gn(i,r)&&e.ref===t.ref)if(pe=!1,t.pendingProps=r=i,(e.lanes&l)!==0)e.flags&131072&&(pe=!0);else return t.lanes=e.lanes,Ze(e,t,l)}return $i(e,t,n,r,l)}function cc(e,t,n){var r=t.pendingProps,l=r.children,i=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},M(Zt,ge),ge|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,M(Zt,ge),ge|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=i!==null?i.baseLanes:n,M(Zt,ge),ge|=r}else i!==null?(r=i.baseLanes|n,t.memoizedState=null):r=n,M(Zt,ge),ge|=r;return ae(e,t,l,n),t.child}function dc(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function $i(e,t,n,r,l){var i=he(n)?Lt:oe.current;return i=ln(t,i),tn(t,l),n=Ds(e,t,n,r,i,l),r=Ms(),e!==null&&!pe?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~l,Ze(e,t,l)):(U&&r&&Ns(t),t.flags|=1,ae(e,t,n,l),t.child)}function qo(e,t,n,r,l){if(he(n)){var i=!0;el(t)}else i=!1;if(tn(t,l),t.stateNode===null)Br(e,t),sc(t,n,r),Ui(t,n,r,l),r=!0;else if(e===null){var s=t.stateNode,a=t.memoizedProps;s.props=a;var u=s.context,c=n.contextType;typeof c=="object"&&c!==null?c=Pe(c):(c=he(n)?Lt:oe.current,c=ln(t,c));var h=n.getDerivedStateFromProps,m=typeof h=="function"||typeof s.getSnapshotBeforeUpdate=="function";m||typeof s.UNSAFE_componentWillReceiveProps!="function"&&typeof s.componentWillReceiveProps!="function"||(a!==r||u!==c)&&Ko(t,s,r,c),et=!1;var v=t.memoizedState;s.state=v,il(t,r,s,l),u=t.memoizedState,a!==r||v!==u||me.current||et?(typeof h=="function"&&(Ai(t,n,h,r),u=t.memoizedState),(a=et||Qo(t,n,a,r,v,u,c))?(m||typeof s.UNSAFE_componentWillMount!="function"&&typeof s.componentWillMount!="function"||(typeof s.componentWillMount=="function"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount=="function"&&s.UNSAFE_componentWillMount()),typeof s.componentDidMount=="function"&&(t.flags|=4194308)):(typeof s.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=u),s.props=r,s.state=u,s.context=c,r=a):(typeof s.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{s=t.stateNode,Uu(e,t),a=t.memoizedProps,c=t.type===t.elementType?a:Te(t.type,a),s.props=c,m=t.pendingProps,v=s.context,u=n.contextType,typeof u=="object"&&u!==null?u=Pe(u):(u=he(n)?Lt:oe.current,u=ln(t,u));var y=n.getDerivedStateFromProps;(h=typeof y=="function"||typeof s.getSnapshotBeforeUpdate=="function")||typeof s.UNSAFE_componentWillReceiveProps!="function"&&typeof s.componentWillReceiveProps!="function"||(a!==m||v!==u)&&Ko(t,s,r,u),et=!1,v=t.memoizedState,s.state=v,il(t,r,s,l);var x=t.memoizedState;a
Line truncated
|
||||
* @remix-run/router v1.23.3
|
||||
*
|
||||
* Copyright (c) Remix Software Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE.md file in the root directory of this source tree.
|
||||
*
|
||||
* @license MIT
|
||||
*/function rr(){return rr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},rr.apply(null,arguments)}var it;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(it||(it={}));const fa="popstate";function Cp(e){e===void 0&&(e={});function t(r,l){let{pathname:i,search:s,hash:a}=r.location;return es("",{pathname:i,search:s,hash:a},l.state&&l.state.usr||null,l.state&&l.state.key||"default")}function n(r,l){return typeof l=="string"?l:ml(l)}return _p(t,n,null,e)}function Y(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Js(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Pp(){return Math.random().toString(36).substr(2,8)}function pa(e,t){return{usr:e.state,key:e.key,idx:t}}function es(e,t,n,r){return n===void 0&&(n=null),rr({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?mn(t):t,{state:n,key:t&&t.key||r||Pp()})}function ml(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function mn(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function _p(e,t,n,r){r===void 0&&(r={});let{window:l=document.defaultView,v5Compat:i=!1}=r,s=l.history,a=it.Pop,u=null,c=h();c==null&&(c=0,s.replaceState(rr({},s.state,{idx:c}),""));function h(){return(s.state||{idx:null}).idx}function m(){a=it.Pop;let j=h(),f=j==null?null:j-c;c=j,u&&u({action:a,location:w.location,delta:f})}function v(j,f){a=it.Push;let d=es(w.location,j,f);c=h()+1;let p=pa(d,c),g=w.createHref(d);try{s.pushState(p,"",g)}catch(N){if(N instanceof DOMException&&N.name==="DataCloneError")throw N;l.location.assign(g)}i&&u&&u({action:a,location:w.location,delta:1})}function y(j,f){a=it.Replace;let d=es(w.location,j,f);c=h();let p=pa(d,c),g=w.createHref(d);s.replaceState(p,"",g),i&&u&&u({action:a,location:w.location,delta:0})}function x(j){let f=l.location.origin!=="null"?l.location.origin:l.location.href,d=typeof j=="string"?j:ml(j);return d=d.replace(/ $/,"%20"),Y(f,"No window.location.(origin|href) available to create URL for href: "+d),new URL(d,f)}let w={get action(){return a},get location(){return e(l,s)},listen(j){if(u)throw new Error("A history only accepts one active listener");return l.addEventListener(fa,m),u=j,()=>{l.removeEventListener(fa,m),u=null}},createHref(j){return t(l,j)},createURL:x,encodeLocation(j){let f=x(j);return{pathname:f.pathname,search:f.search,hash:f.hash}},push:v,replace:y,go(j){return s.go(j)}};return w}var ma;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(ma||(ma={}));function Lp(e,t,n){return n===void 0&&(n="/"),Rp(e,t,n)}function Rp(e,t,n,r){let l=typeof t=="string"?mn(t):t,i=qs(l.pathname||"/",n);if(i==null)return null;let s=Mc(e);Tp(s);let a=null,u=Wp(i);for(let c=0;a==null&&c<s.length;++c)a=Bp(s[c],u);return a}function Mc(e,t,n,r){t===void 0&&(t=[]),n===void 0&&(n=[]),r===void 0&&(r="");let l=(i,s,a)=>{let u={relativePath:a===void 0?i.path||"":a,caseSensitive:i.caseSensitive===!0,childrenIndex:s,route:i};u.relativePath.startsWith("/")&&(Y(u.relativePath.startsWith(r),'Absolute route path "'+u.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),u.relativePath=u.relativePath.slice(r.length));let c=mt([r,u.relativePath]),h=n.concat(u);i.children&&i.children.length>0&&(Y(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),Mc(i.children,t,h,c)),!(i.path==null&&!i.index)&&t.push({path:c,score:Ap(c,i.index),routesMeta:h})};return e.forEach((i,s)=>{var a;if(i.path===""||!((a=i.path)!=null&&a.includes("?")))l(i,s);else for(let u of Fc(i.path))l(i,s,u)}),t}function Fc(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,l=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return l?[i,""]:[i];let s=Fc(r.join("/")),a=[];return a.push(...s.map(u=>u===""?i:[i,u].join("/"))),l&&a.push(...s),a.map(u=>e.startsWith("/")&&u===""?"/":u)}function Tp(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Up(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Op=/^:[\w-]+$/,zp=3,Ip=2,Dp=1,Mp=10,Fp=-2,ha=e=>e==="*";function Ap(e,t){let n=e.split("/"),r=n.length;return n.some(ha)&&(r+=Fp),t&&(r+=Ip),n.filter(l=>!ha(l)).reduce((l,i)=>l+(Op.test(i)?zp:i===""?Dp:Mp),r)}function Up(e,t){return e.length===t.length&&e.slice(0,-1).every((r,l)=>r===t[l])?e[e.length-1]-t[t.length-1]:0}function Bp(e,t,n){let{routesMeta:r}=e,l={},i="/",s=[];for(let a=0;a<r.length;++a){let u=r[a],c=a===r.length-1,h=i==="/"?t:t.slice(i.length)||"/",m=$p({path:u.relativePath,caseSensitive:u.caseSensitive,end:c},h),v=uLine truncated
|
||||
* React Router v6.30.4
|
||||
*
|
||||
* Copyright (c) Remix Software Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE.md file in the root directory of this source tree.
|
||||
*
|
||||
* @license MIT
|
||||
*/function lr(){return lr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},lr.apply(null,arguments)}const bs=S.createContext(null),bp=S.createContext(null),Mt=S.createContext(null),Tl=S.createContext(null),Ft=S.createContext({outlet:null,matches:[],isDataRoute:!1}),Vc=S.createContext(null);function em(e,t){let{relative:n}=t===void 0?{}:t;cr()||Y(!1);let{basename:r,navigator:l}=S.useContext(Mt),{hash:i,pathname:s,search:a}=Hc(e,{relative:n}),u=s;return r!=="/"&&(u=s==="/"?r:mt([r,s])),l.createHref({pathname:u,search:a,hash:i})}function cr(){return S.useContext(Tl)!=null}function dr(){return cr()||Y(!1),S.useContext(Tl).location}function Wc(e){S.useContext(Mt).static||S.useLayoutEffect(e)}function tm(){let{isDataRoute:e}=S.useContext(Ft);return e?mm():nm()}function nm(){cr()||Y(!1);let e=S.useContext(bs),{basename:t,future:n,navigator:r}=S.useContext(Mt),{matches:l}=S.useContext(Ft),{pathname:i}=dr(),s=JSON.stringify(Ac(l,n.v7_relativeSplatPath)),a=S.useRef(!1);return Wc(()=>{a.current=!0}),S.useCallback(function(c,h){if(h===void 0&&(h={}),!a.current)return;if(typeof c=="number"){r.go(c);return}let m=Uc(c,JSON.parse(s),i,h.relative==="path");e==null&&t!=="/"&&(m.pathname=m.pathname==="/"?t:mt([t,m.pathname])),(h.replace?r.replace:r.push)(m,h.state,h)},[t,r,s,i,e])}function Hc(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=S.useContext(Mt),{matches:l}=S.useContext(Ft),{pathname:i}=dr(),s=JSON.stringify(Ac(l,r.v7_relativeSplatPath));return S.useMemo(()=>Uc(e,JSON.parse(s),i,n==="path"),[e,s,i,n])}function rm(e,t){return lm(e,t)}function lm(e,t,n,r){cr()||Y(!1);let{navigator:l}=S.useContext(Mt),{matches:i}=S.useContext(Ft),s=i[i.length-1],a=s?s.params:{};s&&s.pathname;let u=s?s.pathnameBase:"/";s&&s.route;let c=dr(),h;if(t){var m;let j=typeof t=="string"?mn(t):t;u==="/"||(m=j.pathname)!=null&&m.startsWith(u)||Y(!1),h=j}else h=c;let v=h.pathname||"/",y=v;if(u!=="/"){let j=u.replace(/^\//,"").split("/");y="/"+v.replace(/^\//,"").split("/").slice(j.length).join("/")}let x=Lp(e,{pathname:y}),w=um(x&&x.map(j=>Object.assign({},j,{params:Object.assign({},a,j.params),pathname:mt([u,l.encodeLocation?l.encodeLocation(j.pathname).pathname:j.pathname]),pathnameBase:j.pathnameBase==="/"?u:mt([u,l.encodeLocation?l.encodeLocation(j.pathnameBase).pathname:j.pathnameBase])})),i,n,r);return t&&w?S.createElement(Tl.Provider,{value:{location:lr({pathname:"/",search:"",hash:"",state:null,key:"default"},h),navigationType:it.Pop}},w):w}function im(){let e=pm(),t=Jp(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,l={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return S.createElement(S.Fragment,null,S.createElement("h2",null,"Unexpected Application Error!"),S.createElement("h3",{style:{fontStyle:"italic"}},t),n?S.createElement("pre",{style:l},n):null,null)}const sm=S.createElement(im,null);class om extends S.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?S.createElement(Ft.Provider,{value:this.props.routeContext},S.createElement(Vc.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function am(e){let{routeContext:t,match:n,children:r}=e,l=S.useContext(bs);return l&&l.static&&l.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(l.staticContext._deepestRenderedBoundaryId=n.route.id),S.createElement(Ft.Provider,{value:t},r)}function um(e,t,n,r){var l;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=r)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let s=e,a=(l=n)==null?void 0:l.errors;if(a!=null){let h=s.findIndex(m=>m.route.id&&(a==null?void 0:a[m.route.id])!==void 0);h>=0||Y(!1),s=s.slice(0,Math.min(s.length,h+1))}let u=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let h=0;h<s.length;h++){let m=s[h];if((m.route.HydrateFallback||m.route.hydrateFallbackElement)&&(c=h),m.route.id){let{loaderData:v,errors:y}=n,x=m.route.loader&&v[m.route.id]===void 0&&(!y||y[m.route.id]===void 0);if(m.route.lazy||x){u=!0,c>=0?s=s.slice(0,c+1):s=[s[0]];break}}}return s.reduceRight((h,m,v)=>{let y,x=!1,w=null,j=null;n&&(y=a&&m.route.id?a[m.route.id]:void 0,w=m.route.errorElement||sm,u&&(c<0&&v===0?(hm("route-fallback"),x=!0,j=null):c===v&&(x=!0,j=m.Line truncated
|
||||
* React Router DOM v6.30.4
|
||||
*
|
||||
* Copyright (c) Remix Software Inc.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE.md file in the root directory of this source tree.
|
||||
*
|
||||
* @license MIT
|
||||
*/function ns(){return ns=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ns.apply(null,arguments)}function xm(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function wm(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function km(e,t){return e.button===0&&(!t||t==="_self")&&!wm(e)}const Sm=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Nm="6";try{window.__reactRouterVersion=Nm}catch{}const jm="startTransition",ya=pd[jm];function Em(e){let{basename:t,children:n,future:r,window:l}=e,i=S.useRef();i.current==null&&(i.current=Cp({window:l,v5Compat:!0}));let s=i.current,[a,u]=S.useState({action:s.action,location:s.location}),{v7_startTransition:c}=r||{},h=S.useCallback(m=>{c&&ya?ya(()=>u(m)):u(m)},[u,c]);return S.useLayoutEffect(()=>s.listen(h),[s,h]),S.useEffect(()=>vm(r),[r]),S.createElement(gm,{basename:t,children:n,location:a.location,navigationType:a.action,navigator:s,future:r})}const Cm=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Pm=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,G=S.forwardRef(function(t,n){let{onClick:r,relative:l,reloadDocument:i,replace:s,state:a,target:u,to:c,preventScrollReset:h,viewTransition:m}=t,v=xm(t,Sm),{basename:y}=S.useContext(Mt),x,w=!1;if(typeof c=="string"&&Pm.test(c)&&(x=c,Cm))try{let p=new URL(window.location.href),g=c.startsWith("//")?new URL(p.protocol+c):new URL(c),N=qs(g.pathname,y);g.origin===p.origin&&N!=null?c=N+g.search+g.hash:w=!0}catch{}let j=em(c,{relative:l}),f=_m(c,{replace:s,state:a,target:u,preventScrollReset:h,relative:l,viewTransition:m});function d(p){r&&r(p),p.defaultPrevented||f(p)}return S.createElement("a",ns({},v,{href:x||j,onClick:w||i?r:d,ref:n,target:u}))});var xa;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(xa||(xa={}));var wa;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(wa||(wa={}));function _m(e,t){let{target:n,replace:r,state:l,preventScrollReset:i,relative:s,viewTransition:a}=t===void 0?{}:t,u=tm(),c=dr(),h=Hc(e,{relative:s});return S.useCallback(m=>{if(km(m,n)){m.preventDefault();let v=r!==void 0?r:ml(c)===ml(h);u(e,{replace:v,state:l,preventScrollReset:i,relative:s,viewTransition:a})}},[c,u,h,r,l,n,e,i,s,a])}function Lm({title:e,titleId:t,...n},r){return S.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?S.createElement("title",{id:t},e):null,S.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z"}))}const Rm=S.forwardRef(Lm);function Tm({title:e,titleId:t,...n},r){return S.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?S.createElement("title",{id:t},e):null,S.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const Om=S.forwardRef(Tm);function zm({title:e,titleId:t,...n},r){return S.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?S.createElement("title",{id:t},e):null,S.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const Im=S.forwardRef(zm);function Dm({title:e,titleId:t,...n},r){return S.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?S.createElement("title",{id:t},e):null,S.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.25 6.087c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.036-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959v0a.64.64 0 0 1-.657.643 48.39 48.39 0 0 1-4.163-.3c.186 1.6Line truncated
|
||||
git clone https://gitea.example.com/netork/netork.git
|
||||
cp .env.example .env
|
||||
# edit .env (DB URL, Redis password, secret key)
|
||||
|
||||
# Deploy
|
||||
bash scripts/deploy.sh 192.168.1.10`})})]})})}),o.jsx("div",{className:"border-t border-slate-800"}),o.jsx("section",{className:"py-24",children:o.jsxs("div",{className:"max-w-7xl mx-auto px-6 text-center",children:[o.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-slate-100 mb-8",children:"Start managing your network."}),o.jsx(G,{to:"/docs/getting-started",className:"inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-sky-600 hover:bg-sky-500 text-white font-medium transition-colors",children:"Read the docs →"})]})})]})}function Gm({title:e,items:t}){return o.jsxs("div",{children:[o.jsx("h2",{className:"text-xl font-semibold text-slate-200 mb-4 pb-2 border-b border-slate-800",children:e}),o.jsx("ul",{className:"space-y-2",children:t.map(n=>o.jsxs("li",{className:"flex items-start gap-2 text-sm text-slate-400 leading-relaxed",children:[o.jsx("span",{className:"mt-1 h-1.5 w-1.5 shrink-0 rounded-full bg-sky-500"}),n]},n))})]})}const Xm=[{title:"Device Management",items:["CRUD for devices with credential profiles and SSH key management","Per-device poll intervals (minutes) or manual-only","Status tracking: planned / staged / active / decommissioning / offline / disabled","Vendor / model / OS auto-populated from NAPALM get_facts()","Site assignment with FK to structured Site records","AP Profile assignment for grouped OpenWRT config"]},{title:"Discovery",items:["ICMP ping sweep, SNMP scan, HTTP/HTTPS probing","Device fingerprinting: vendor + platform confidence scoring","FQDN resolution (reverse DNS)","Manual adoption from scan results — no auto-create to avoid inventory noise"]},{title:"Supported Drivers",items:["openwrt — OpenWRT access points","opnsense — OPNsense firewalls","proxmox — Proxmox VE hypervisors","linux — Generic Linux servers","procurve — HP ProCurve / Aruba switches","tplink_jetstream — TP-Link Jetstream managed switches","netgear — Netgear switches","fritzbox — AVM Fritz!Box routers","zyxel — Zyxel switches","openmediavault — OpenMediaVault NAS","sonos — Sonos speakers","Plus all built-in NAPALM drivers: Cisco IOS / IOS-XE / NX-OS, Arista EOS, Juniper JunOS"]},{title:"Networking & Inventory",items:["Interface browser with IPv4/IPv6 addresses, MAC, speed, MTU","LLDP neighbor discovery and topology graph","ARP table and DHCP lease browser per device","Subnet browser with interface-to-subnet assignments","VLAN list grouped by site; per-VLAN device membership view","SSID management with push to OpenWRT APs via UCI"]},{title:"Configuration Management & Drift",items:["Config drift detection: desired state (DB) vs device state (poll snapshot)","One-click drift fix stream with live SSH output in the browser","UCI-based config push for OpenWRT (VLAN names, SSID settings, radio config)","AP profile system: country code, HT/VHT mode, 802.11r, NTP, syslog, SSH port"]},{title:"Scheduled Operations",items:["Scheduled reboots for OpenWRT APs with per-site concurrency lock","Failback cron script written to device for netOrk-unreachable scenarios","Scheduled config drift fixes with time-window enforcement","Package update scheduling and one-click apply"]},{title:"Monitoring & Health",items:["SNMP health metrics (CPU, memory, interface counters) via get_health_metrics()","Per-device warning system with severity levels (error / warning / info)","Docker container and image status (Proxmox/Linux)","Service status and start/stop/restart (systemd)","VM/container list with OS device cross-linking (Proxmox)"]},{title:"Security Integrations",items:["Wazuh — agent enrollment tracking, vulnerability counts by severity, recent alert history, CIS benchmark scores, one-click agent install fix stream","Graylog — rsyslog forwarding status per device, one-click fix to write rule","CrowdSec — org-level decisions, remediation metrics, top attack scenarios"]},{title:"DNS Management",items:["DNS zone management with authoritative device assignment","Forward record provisioning (A records from device interfaces)","PTR record provisioning to reverse zones","Pending job queue for zone changes when device is unreachable"]},{title:"Access Control (RBAC)",items:["JWT authentication with remember-me (localStorage) or session-only (sessionStorage)","RBAC with four built-in roles: viewer / operator / engineer / administrator","Custom roles with any permission combination","Full audit log of all orchestration actions"]},{title:"NetBox Sync",items:["Pushes vendor, model, OS version, status to NetBox dcim.devices","Syncs interfaces, IP addresses, prefixes, VLANs","VM interfaces and disks for Proxmox hosts"]},{title:"Developer Experience",items:["OpenAPI / Swagger at /docs","Plugin system: new integrations follow a documented pattern","Celery task queue with dedicated queues per workload type","Docker Compose deployment (single command)","Alembic migrations run automatically on deploy"]}];function Ym(){return o.jsx("div",{className:"py-16 md:py-24",children:o.jsxs("div",{className:"max-w-7xl mx-aut
Line truncated
|
||||
cd netork
|
||||
cp .env.example .env
|
||||
# Edit .env — set DB_URL, REDIS_URL, SECRET_KEY
|
||||
|
||||
bash scripts/deploy.sh 192.168.1.10`}),o.jsx("p",{className:"mt-4 text-sm text-slate-400",children:"The deploy script builds images, pushes them to the target host, and starts Docker Compose. Alembic migrations run automatically on first start."})]}),o.jsxs(En,{n:3,title:"First run",children:[o.jsx("p",{className:"text-sm text-slate-400 mb-4",children:"Once the containers are up, navigate to your server IP in a browser."}),o.jsx(Sa,{code:"http://192.168.1.10"}),o.jsx("ul",{className:"mt-4 space-y-2",children:["Complete the setup wizard — it creates the admin user and writes the initial config","Log in with the admin credentials you just set","You land on the device inventory — currently empty"].map(e=>o.jsxs("li",{className:"flex items-start gap-2 text-sm text-slate-400",children:[o.jsx("span",{className:"mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-sky-500"}),e]},e))})]}),o.jsx(En,{n:4,title:"Adding your first device",children:o.jsx("ol",{className:"space-y-3",children:['Click "Add device" and fill in hostname / IP, driver, and credentials','Click "Poll" to verify connectivity — you should see facts populate (vendor, OS, model)',"Set a poll interval (e.g. 5 minutes) for continuous monitoring","Save — the device is now active and polled on the configured schedule"].map((e,t)=>o.jsxs("li",{className:"flex items-start gap-3 text-sm text-slate-400",children:[o.jsxs("span",{className:"shrink-0 text-xs font-mono text-sky-400 mt-0.5",children:[t+1,"."]}),e]},t))})}),o.jsx(En,{n:5,title:"Next steps",children:o.jsx("div",{className:"grid sm:grid-cols-3 gap-4",children:[{heading:"NetBox sync",body:"Connect netOrk to your NetBox instance to keep device records in sync automatically."},{heading:"Wazuh",body:"Enable the Wazuh plugin to track agent enrollment and CVE counts per device."},{heading:"Scheduled reboots",body:"Configure scheduled AP reboots for OpenWRT devices (GTK key rotation workaround)."}].map(e=>o.jsxs("div",{className:"rounded-xl border border-slate-800 bg-slate-900 p-4",children:[o.jsx("h3",{className:"text-sm font-semibold text-slate-100 mb-2",children:e.heading}),o.jsx("p",{className:"text-xs text-slate-400 leading-relaxed",children:e.body})]},e.heading))})})]}),o.jsxs("div",{className:"border-t border-slate-800 pt-8 flex gap-4",children:[o.jsx(G,{to:"/drivers",className:"text-sky-400 hover:text-sky-300 transition-colors text-sm font-medium",children:"Supported drivers →"}),o.jsx(G,{to:"/features",className:"text-sky-400 hover:text-sky-300 transition-colors text-sm font-medium",children:"Full feature list →"})]})]})})}function th(){return o.jsx(Em,{children:o.jsxs("div",{className:"min-h-screen bg-slate-950 flex flex-col",children:[o.jsx(Um,{}),o.jsx("main",{className:"flex-1",children:o.jsxs(ym,{children:[o.jsx(Rn,{path:"/",element:o.jsx(Km,{})}),o.jsx(Rn,{path:"/features",element:o.jsx(Ym,{})}),o.jsx(Rn,{path:"/drivers",element:o.jsx(bm,{})}),o.jsx(Rn,{path:"/docs/getting-started",element:o.jsx(eh,{})})]})}),o.jsx(Bm,{})]})})}Dc(document.getElementById("root")).render(o.jsx(S.StrictMode,{children:o.jsx(th,{})}));
|
||||
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
<!doctype html>
|
||||
<html lang="en" class="scroll-smooth">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="description" content="netOrk — self-hosted network orchestration for heterogeneous infrastructure. Discover, monitor, and manage routers, switches, firewalls, and servers from a single UI." />
|
||||
<title>netOrk — Network Orchestration Platform</title>
|
||||
<link rel="icon" href="/logo.png" />
|
||||
<meta property="og:image" content="/logo.png" />
|
||||
<meta property="og:title" content="netOrk — Network Orchestration Platform" />
|
||||
<meta property="og:description" content="Self-hosted network orchestration for heterogeneous infrastructure." />
|
||||
<script type="module" crossorigin src="/assets/index-F6soxE0Z.js"></script>
|
||||
<link rel="stylesheet" crossorigin href="/assets/index-BKmpE_Rp.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
||||
Vendored
BIN
Binary file not shown.
|
After Width: | Height: | Size: 1.9 MiB |
Reference in new issue
Block a user