From 29f675cb8029f3cdcef2d4120a2f650d6d1e0933 Mon Sep 17 00:00:00 2001 From: Muhammad Dhiyaul Atha Date: Thu, 22 Oct 2026 23:46:50 +0700 Subject: [PATCH] docs: de-slop visual design, flatten logo and og card Flat engineering-paper system: sharp radii, zero drop shadows, no hover transforms, kicker/brand-sub as plain mono labels (colored pill kickers removed), neutral inline code, outline status badges, mono step numbers, boxed-callout replaced by hairline note, tables with hairline header rules. Logo/favicon become a solid squared terminal mark (no border ring or rounding); og card rebuilt without chips or tinted pills: mono prompt lockup, install line, squared terminal panel. --- docs/web/dist/apple-touch-icon.png | Bin 1900 -> 1401 bytes .../{index-y37U0USe.js => index-CpircG5P.js} | 2 +- docs/web/dist/assets/index-DZzeKXFv.css | 1 - docs/web/dist/assets/index-bqF0xqM6.css | 1 + docs/web/dist/assets/site.css | 2 +- docs/web/dist/favicon.svg | 6 +- docs/web/dist/img/og.png | Bin 36611 -> 31982 bytes docs/web/dist/index.html | 2 +- docs/web/dist/logo.svg | 6 +- docs/web/public/apple-touch-icon.png | Bin 1900 -> 1401 bytes docs/web/public/favicon.svg | 6 +- docs/web/public/img/og.png | Bin 36611 -> 31982 bytes docs/web/public/logo.svg | 6 +- docs/web/src/pages/Home.jsx | 2 +- docs/web/src/styles/site.css | 242 +++++++----------- 15 files changed, 104 insertions(+), 172 deletions(-) rename docs/web/dist/assets/{index-y37U0USe.js => index-CpircG5P.js} (98%) delete mode 100644 docs/web/dist/assets/index-DZzeKXFv.css create mode 100644 docs/web/dist/assets/index-bqF0xqM6.css diff --git a/docs/web/dist/apple-touch-icon.png b/docs/web/dist/apple-touch-icon.png index 8fc895e7c2eecb2ebdd5d5c9e0ed0ec7c5095d7f..0419df13aa6d93c12c071e80f2d68f11226ea01c 100644 GIT binary patch literal 1401 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 BaCZOz diff --git a/docs/web/dist/assets/index-y37U0USe.js b/docs/web/dist/assets/index-CpircG5P.js similarity index 98% rename from docs/web/dist/assets/index-y37U0USe.js rename to docs/web/dist/assets/index-CpircG5P.js index f4f0aa8..71ae42e 100644 --- a/docs/web/dist/assets/index-y37U0USe.js +++ b/docs/web/dist/assets/index-CpircG5P.js @@ -6,7 +6,7 @@ var e=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports) `+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{We=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Ue(n):``}function Ke(e,t){switch(e.tag){case 26:case 27:case 5:return Ue(e.type);case 16:return Ue(`Lazy`);case 13:return e.child!==t&&t!==null?Ue(`Suspense Fallback`):Ue(`Suspense`);case 19:return Ue(`SuspenseList`);case 0:case 15:return Ge(e.type,!1);case 11:return Ge(e.type.render,!1);case 1:return Ge(e.type,!0);case 31:return Ue(`Activity`);case 30:return Ue(`ViewTransition`);default:return``}}function qe(e){try{var t=``,n=null;do t+=Ke(e,n),n=e,e=e.return;while(e);return t}catch(e){return` Error generating stack: `+e.message+` `+e.stack}}var Je=Object.prototype.hasOwnProperty,Ye=t.unstable_scheduleCallback,Xe=t.unstable_cancelCallback,Ze=t.unstable_shouldYield,Qe=t.unstable_requestPaint,$e=t.unstable_now,et=t.unstable_getCurrentPriorityLevel,tt=t.unstable_ImmediatePriority,nt=t.unstable_UserBlockingPriority,rt=t.unstable_NormalPriority,it=t.unstable_LowPriority,at=t.unstable_IdlePriority,ot=t.log,st=t.unstable_setDisableYieldValue,ct=null,lt=null;function ut(e){if(typeof ot==`function`&&st(e),lt&&typeof lt.setStrictMode==`function`)try{lt.setStrictMode(ct,e)}catch{}}var dt=Math.clz32?Math.clz32:mt,ft=Math.log,pt=Math.LN2;function mt(e){return e>>>=0,e===0?32:31-(ft(e)/pt|0)|0}var ht=256,gt=262144,_t=4194304;function vt(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function yt(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=vt(n))):i=vt(o):i=vt(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=vt(n))):i=vt(o)):i=vt(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function bt(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function xt(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0n;n++)t.push(e);return t}function Tt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Et(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0=wr),Dr=` `,Or=!1;function kr(e,t){switch(e){case`keyup`:return Sr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Ar(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var jr=!1;function Mr(e,t){switch(e){case`compositionend`:return Ar(t);case`keypress`:return t.which===32?(Or=!0,Dr):null;case`textInput`:return e=t.data,e===Dr&&Or?null:e;default:return null}}function Nr(e,t){if(jr)return e===`compositionend`||!Cr&&kr(e,t)?(e=Gn(),Wn=Un=Hn=null,jr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=ni(n)}}function ii(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ii(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ai(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=ti(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=ti(e.document)}return t}function oi(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var si=zn&&`documentMode`in document&&11>=document.documentMode,ci=null,li=null,ui=null,di=!1;function fi(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;di||ci==null||ci!==ti(r)||(r=ci,`selectionStart`in r&&oi(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ui&&ei(ui,r)||(ui=r,r=Jf(li,`onSelect`),0>=o,i-=o,ca=1<<32-dt(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),o=a(_,o,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),A&&ua(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),o=a(y,o,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),A&&ua(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return A&&ua(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&h.delete(_.key===null?g:_.key)),o=a(v,o,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),A&&ua(i,g),u}function _(e,r,a,c){if(typeof a==`object`&&a&&a.type===ce&&a.key===null&&a.props.ref===void 0&&(a=a.props.children),typeof a==`object`&&a){switch(a.$$typeof){case oe:a:{for(var l=a.key;r!==null;){if(r.key===l){if(l=a.type,l===ce){if(r.tag===7){n(e,r.sibling),c=i(r,a.props.children),vo(c,a),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===_e&&uo(l)===r.type){n(e,r.sibling),c=i(r,a.props),vo(c,a),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}a.type===ce?(c=Yi(a.props.children,e.mode,c,a.key),vo(c,a),c.return=e,e=c):(c=Ji(a.type,a.key,a.props,null,e.mode,c),vo(c,a),c.return=e,e=c)}return o(e);case se:a:{for(l=a.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),c=i(r,a.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Qi(a,e.mode,c),c.return=e,e=c}return o(e);case _e:return a=uo(a),_(e,r,a,c)}if(De(a))return h(e,r,a,c);if(we(a)){if(l=we(a),typeof l!=`function`)throw Error(s(150));return a=l.call(a),g(e,r,a,c)}if(typeof a.then==`function`)return _(e,r,_o(a),c);if(a.$$typeof===fe)return _(e,r,Ia(e,a),c);yo(e,a)}return typeof a==`string`&&a!==``||typeof a==`number`||typeof a==`bigint`?(a=``+a,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,a),c.return=e,e=c):(n(e,r),c=Xi(a,e.mode,c),c.return=e,e=c),o(e)):n(e,r)}return function(e,t,n,r){try{go=0;var i=_(e,t,n,r);return ho=null,i}catch(t){if(t===io||t===oo)throw t;var a=Wi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var xo=bo(!0),So=bo(!1),Co=!1;function wo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function To(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Eo(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Do(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,W&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Vi(e),Bi(e,null,n),t}return Li(e,r,t,n),Vi(e)}function Oo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ot(e,n)}}function ko(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n}else e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ao=!1;function jo(){if(Ao){var e=Ya;if(e!==null)throw e}}function Mo(e,t,n,r){Ao=!1;var i=e.updateQueue;Co=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(q&f)===f:(r&f)===f){f!==0&&f===Ja&&(Ao=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,h=s;f=t;var g=n;switch(h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(g,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(g,d,f):m,f==null)break a;d=S({},d,f);break a;case 2:Co=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),sd|=o,e.lanes=o,e.memoizedState=d}}function No(e,t){if(typeof e!=`function`)throw Error(s(191,e));e.call(t)}function Po(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=C.T,s={};s.types=o===null?null:o.types,C.T=s,_c(e,!1,t,n);try{var c=i(),l=C.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?gc(e,t,Qa(c,r),jd(e)):gc(e,t,r,jd(e))}catch(n){gc(e,t,{then:function(){},status:`rejected`,reason:n},jd())}finally{w.p=a,o!==null&&s.types!==null&&(o.types=s.types),C.T=o}}function oc(){}function sc(e,t,n,r){if(e.tag!==5)throw Error(s(476));var i=cc(e).queue;ac(e,i,t,Oe,n===null?oc:function(){return lc(e),n(r)})}function cc(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:Oe,baseState:Oe,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:vs,lastRenderedState:Oe},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:vs,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function lc(e){var t=cc(e);t.next===null&&(t=e.alternate.memoizedState),gc(e,t.next.queue,{},jd())}function uc(){return Fa(sh)}function dc(){return I().memoizedState}function fc(){return I().memoizedState}function pc(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=jd();e=Eo(n);var r=Do(t,e,n);r!==null&&(Pd(r,t,n),Oo(r,t,n)),t={cache:Va()},e.payload=t;return}t=t.return}}function mc(e,t,n){var r=jd();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},vc(e)?yc(t,n):(n=Ri(e,t,n,r),n!==null&&(Pd(n,e,r),bc(n,t,r)))}function hc(e,t,n){gc(e,t,n,jd())}function gc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(vc(e))yc(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,$r(s,o))return Li(e,t,i,0),G===null&&Ii(),!1}catch{}if(n=Ri(e,t,i,r),n!==null)return Pd(n,e,r),bc(n,t,r),!0}return!1}function _c(e,t,n,r){if(r={lane:2,revertLane:Pf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},vc(e)){if(t)throw Error(s(479))}else t=Ri(e,n,r,2),t!==null&&Pd(t,e,2)}function vc(e){var t=e.alternate;return e===M||t!==null&&t===M}function yc(e,t){$o=Qo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function bc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ot(e,n)}}var xc={readContext:Fa,use:gs,useCallback:F,useContext:F,useEffect:F,useImperativeHandle:F,useLayoutEffect:F,useInsertionEffect:F,useMemo:F,useReducer:F,useRef:F,useState:F,useDebugValue:F,useDeferredValue:F,useTransition:F,useSyncExternalStore:F,useId:F,useHostTransitionStatus:F,useFormState:F,useActionState:F,useOptimistic:F,useMemoCache:F,useCacheRefresh:F,useEffectEvent:F},Sc={readContext:Fa,use:gs,useCallback:function(e,t){return ps().memoizedState=[e,t===void 0?null:t],e},useContext:Fa,useEffect:Ks,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Ws(4194308,4,Qs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ws(4194308,4,e,t)},useInsertionEffect:function(e,t){Ws(4,2,e,t)},useMemo:function(e,t){var n=ps();t=t===void 0?null:t;var r=e();if(es){ut(!0);try{e()}finally{ut(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ps();if(n!==void 0){var i=n(t);if(es){ut(!0);try{n(t)}finally{ut(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=mc.bind(null,M,e),[r.memoizedState,e]},useRef:function(e){var t=ps();return e={current:e},t.memoizedState=e},useState:function(e){e=Os(e);var t=e.queue,n=hc.bind(null,M,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ec,useDeferredValue:function(e,t){return rc(ps(),e,t)},useTransition:function(){var e=Os(!1);return e=ac.bind(null,M,e.queue,!0,!1),ps().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=M,i=ps();if(A){if(n===void 0)throw Error(s(407));n=n()}else{if(n=t(),G===null)throw Error(s(349));q&127||Cs(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,Ks(Ts.bind(null,r,a,e),[e]),r.flags|=2048,Hs(9,{destroy:void 0},ws.bind(null,r,a,n,t),null),n},useId:function(){var e=ps(),t=G.identifierPrefix;if(A){var n=la,r=ca;n=(r&~(1<<32-dt(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=ts++,0<\/script>`,a=a.removeChild(a.firstChild);break;case`select`:a=typeof r.is==`string`?o.createElement(`select`,{is:r.is}):o.createElement(`select`),r.multiple?a.multiple=!0:r.size&&(a.size=r.size);break;default:a=typeof r.is==`string`?o.createElement(i,{is:r.is}):o.createElement(i)}}a[Ft]=t,a[It]=r;a:for(o=t.child;o!==null;){if(o.tag===5||o.tag===6)a.appendChild(o.stateNode);else if(o.tag!==4&&o.tag!==27&&o.child!==null){o.child.return=o,o=o.child;continue}if(o===t)break a;for(;o.sibling===null;){if(o.return===null||o.return===t)break a;o=o.return}o.sibling.return=o.return,o=o.sibling}t.stateNode=a;a:switch(np(a,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&vl(t)}}return z(t),t.subtreeFlags&=-33554433,yl(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&vl(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(s(166));if(e=Fe.current,xa(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=O,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[Ft]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||ep(e.nodeValue,n)),e||va(t,!0)}else e=lp(e).createTextNode(r),e[Ft]=t,t.stateNode=e}return z(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=xa(t),n!==null){if(e===null){if(!r)throw Error(s(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(s(557));e[Ft]=t}else Sa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;z(t),e=!1}else n=Ca(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Ko(t),t):(Ko(t),null);if(t.flags&128)throw Error(s(558))}return z(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=xa(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(s(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(s(317));i[Ft]=t}else Sa(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;z(t),i=!1}else i=Ca(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(Ko(t),t):(Ko(t),null)}return Ko(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),a=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(a=r.memoizedState.cachePool.pool),a!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),xl(t,t.updateQueue),z(t),null);case 4:return Re(),e===null&&Wf(t.stateNode.containerInfo),t.flags|=67108864,z(t),null;case 10:return ka(t.type),z(t),null;case 19:if(Yo(t),r=t.memoizedState,r===null)return z(t),null;if(i=!!(t.flags&128),a=r.rendering,a===null){if(i)Sl(r,!1);else{if(Y!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(a=Xo(e),a!==null){for(t.flags|=128,Sl(r,!1),e=a.updateQueue,t.updateQueue=e,xl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)qi(n,e),n=n.sibling;return Jo(t,qo.current&1|2),A&&ua(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&$e()>_d&&(t.flags|=128,i=!0,Sl(r,!1),t.lanes=4194304)}}else{if(!i){if(e=Xo(a),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,xl(t,e),Sl(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!a.alternate&&!A)return z(t),null}else 2*$e()-r.renderingStartTime>_d&&n!==536870912&&(t.flags|=128,i=!0,Sl(r,!1),t.lanes=4194304)}r.isBackwards?(a.sibling=t.child,t.child=a):(e=r.last,e===null?t.child=a:e.sibling=a,r.last=a)}if(r.tail!==null){e=r.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=$e(),e.sibling=null,a=qo.current,a=i?a&1|2:a&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||A?Jo(t,a):(n=a,T(Bo,t),T(qo,n),Vo===null&&(Vo=t)),A&&ua(t,r.treeForkCount),e}return z(t),null;case 22:case 23:return Ko(t),zo(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(z(t),t.subtreeFlags&6&&(t.flags|=8192)):z(t),n=t.updateQueue,n!==null&&xl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&Me(eo),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ka(j),z(t),null;case 25:return null;case 30:return t.flags|=33554432,z(t),null}throw Error(s(156,t.tag))}function wl(e,t){switch(pa(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ka(j),Re(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Be(t),null;case 31:if(t.memoizedState!==null){if(Ko(t),t.alternate===null)throw Error(s(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Ko(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(s(340));Sa()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Yo(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return Re(),null;case 10:return ka(t.type),null;case 22:case 23:return Ko(t),zo(),e!==null&&Me(eo),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ka(j),null;case 25:return null;default:return null}}function Tl(e,t){switch(pa(t),t.tag){case 3:ka(j),Re();break;case 26:case 27:case 5:Be(t);break;case 4:Re();break;case 31:t.memoizedState!==null&&Ko(t);break;case 13:Ko(t);break;case 19:Yo(t);break;case 10:ka(t.type);break;case 22:case 23:Ko(t),zo(),e!==null&&Me(eo);break;case 24:ka(j)}}function El(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function Dl(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function Ol(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Po(t,n)}catch(t){Z(e,e.return,t)}}}function kl(e,t,n){n.props=kc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function Al(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var i=e.stateNode,a=ki(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=Pp(a)),r=i.ref;break;case 7:if(e.stateNode===null){var o=new Fp(e);h(e.child,!1,Qp,o,void 0,void 0),e.stateNode=o}r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function jl(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}}function Ml(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n title`))),np(r,t,n),r[Ft]=e,E(r),t=r;break a;case`link`:if(a=Gm(`link`,`href`,i).get(t+(n.href||``))){for(o=0;og&&(o=g,g=h,h=o);var _=ri(s,h),v=ri(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,C.T=null,n=wd,wd=null;var a=bd,o=Sd;if(X=0,xd=bd=null,Sd=0,W&6)throw Error(s(331));var c=W;if(W|=4,Zu(a.current),Uu(a,a.current,o,n),W=c,Df(0,!1),lt&&typeof lt.onPostCommitFiberRoot==`function`)try{lt.onPostCommitFiberRoot(ct,a)}catch{}return!0}finally{w.p=i,C.T=r,uf(e,t)}}function pf(e,t,n){t=ea(n,t),t=Fc(e.stateNode,t,2),e=Do(e,t,2),e!==null&&(Tt(e,2),Ef(e))}function Z(e,t,n){if(e.tag===3)pf(e,e,n);else for(;t!==null;){if(t.tag===3){pf(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(yd===null||!yd.has(r))){e=ea(n,e),n=Ic(2),r=Do(t,n,2),r!==null&&(Lc(n,r,t,e),Tt(r,2),Ef(r));break}}t=t.return}}function mf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new td;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(ad=!0,i.add(n),e=hf.bind(null,e,t,n),t.then(e,e))}function hf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,G===e&&(q&n)===n&&(Y===4||Y===3&&(q&62914560)===q&&300>$e()-hd?W&2?ld|=n:Vd(e,0):ld|=n,dd===q&&(dd=0)),Ef(e)}function gf(e,t){t===0&&(t=Ct()),e=zi(e,t),e!==null&&(Tt(e,t),Ef(e))}function _f(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),gf(e,n)}function vf(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(s(314))}r!==null&&r.delete(t),gf(e,n)}function yf(e,t){return Ye(e,t)}var bf=null,xf=null,Sf=!1,Cf=!1,wf=!1,Tf=0;function Ef(e){e!==xf&&e.next===null&&(xf===null?bf=xf=e:xf=xf.next=e),Cf=!0,Sf||(Sf=!0,Nf())}function Df(e,t){if(!wf&&Cf){wf=!0;do for(var n=!1,r=bf;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-dt(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Mf(r,a))}else a=q,a=yt(r,r===G?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||bt(r,a)||(n=!0,Mf(r,a))}r=r.next}while(n);wf=!1}}function Of(){kf()}function kf(){Cf=Sf=!1;var e=0;Tf!==0&&hp()&&(e=Tf);for(var t=$e(),n=null,r=bf;r!==null;){var i=r.next,a=Af(r,t);a===0?(r.next=null,n===null?bf=i:n.next=i,i===null&&(xf=n)):(n=r,(e!==0||a&3)&&(Cf=!0)),r=i}X!==0&&X!==5||Df(e,!1),Tf!==0&&(Tf=0)}function Af(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&ap(d)&&(c=c.responseEnd,o+=u*(c$m){s.length=o;break}f=new Promise(jp.bind(f)),s.push(f)}}}if(0`u`?null:document;function Tm(e,t,n){var r=wm;if(r&&typeof t==`string`&&t){var i=hn(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),ym.has(i)||(ym.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),np(t,`link`,e),E(t),r.head.appendChild(t)))}}function Em(e){xm.D(e),Tm(`dns-prefetch`,e,null)}function Dm(e,t){xm.C(e,t),Tm(`preconnect`,e,t)}function Om(e,t,n){xm.L(e,t,n);var r=wm;if(r&&e&&t){var i=`link[rel="preload"][as="`+hn(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+hn(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+hn(n.imageSizes)+`"]`)):i+=`[href="`+hn(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=S({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vm.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Fm(a))||t===`script`&&r.querySelector(zm(a))))){var o=r.createElement(`link`);np(o,`link`,e),t===`style`&&(o[Ut]=!0,o.onload=o.onerror=function(){Yt(o)}),E(o),r.head.appendChild(o)}}}function km(e,t){xm.m(e,t);var n=wm;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+hn(r)+`"][href="`+hn(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rm(e)}if(!vm.has(a)&&(e=S({rel:`modulepreload`,href:e},t),vm.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zm(a)))return}r=n.createElement(`link`),np(r,`link`,e),E(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=Jt(r).hoistableStyles,a=Pm(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Fm(a)))s.loading=5;else{e=S({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);E(c),np(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vm(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jm(e,t){xm.X(e,t);var n=wm;if(n&&e){var r=Jt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=S({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),E(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mm(e,t){xm.M(e,t);var n=wm;if(n&&e){var r=Jt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=S({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),E(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nm(e,t,n,r){var i=(i=Fe.current)?bm(i):null;if(!i)throw Error(s(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(n=Pm(n.href),t=Jt(i).hoistableStyles,r=t.get(n),r||(r={type:`style`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pm(n.href);var a=Jt(i).hoistableStyles,o=a.get(e);if(o||(i=i.ownerDocument||i,o={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},a.set(e,o),(a=i.querySelector(Fm(e)))?a._p||(o.instance=a,o.state.loading=5):(a=vm.get(e),a||(a={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vm.set(e,a)),Lm(i,e,a,o.state))),t&&r===null)throw Error(s(528,``));return o}if(t&&r!==null)throw Error(s(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(n=Rm(n),t=Jt(i).hoistableScripts,r=t.get(n),r||(r={type:`script`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(s(444,e))}}function Pm(e){return`href="`+hn(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return S({},e,{"data-precedence":e.precedence,precedence:null})}function Lm(e,t,n,r){if(t=e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)){if(!0!==t[Ut]){r.loading=1;return}}else t=e.createElement(`link`),t[Ut]=!0,t.onload=t.onerror=Yt.bind(null,t),np(t,`link`,n),E(t),e.head.appendChild(t);r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2})}function Rm(e){return`[src="`+hn(e)+`"]`}function zm(e){return`script[async]`+e}function Bm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+hn(n.href)+`"]`);if(r)return t.instance=r,E(r),r;var i=S({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),E(r),np(r,`style`,i),Vm(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Pm(n.href);var a=e.querySelector(Fm(i));if(a)return t.state.loading|=4,t.instance=a,E(a),a;r=Im(n),(i=vm.get(i))&&Hm(r,i),a=(e.ownerDocument||e).createElement(`link`),E(a);var o=a;return o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),t.state.loading|=4,Vm(a,n.precedence,e),t.instance=a;case`script`:return a=Rm(n.src),(i=e.querySelector(zm(a)))?(t.instance=i,E(i),i):(r=n,(i=vm.get(a))&&(r=S({},n),Um(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),E(i),np(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(s(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vm(r,n.precedence,e));return t.instance}function Vm(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function qm(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jm(e,t){return e===`img`&&t.src!=null&&t.src!==``&&t.onLoad==null&&t.loading!==`lazy`}function Ym(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio==`number`?devicePixelRatio:1)*.25}function Zm(e,t){typeof t.decode==`function`&&(e.imgCount++,t.complete||(e.imgBytes+=Xm(t),e.suspenseyImages.push(t)),e=rh.bind(e),t.decode().then(e,e))}function Qm(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pm(r.href),a=t.querySelector(Fm(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=nh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,E(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),E(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=nh.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $m=0;function eh(e,t){return e.stylesheets&&e.count===0&&ah(e,e.stylesheets),0$m?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function th(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)ah(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function nh(){this.count--,th(this)}function rh(){this.imgCount--,th(this)}var ih=null;function ah(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ih=new Map,t.forEach(oh,e),ih=null,nh.call(e))}function oh(e,t){if(!(t.state.loading&4)){var n=ih.get(e);if(n)var r=n.get(null);else{n=new Map,ih.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=s()}));n();var l=c(),u=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),d=e(((e,t)=>{t.exports=u()}))();function f({rel:e,name:t,alt:n,caption:r,feature:i=``}){return(0,d.jsxs)(`figure`,{className:`shot ${i}`,children:[(0,d.jsx)(`a`,{href:`${e}img/${t}`,target:`_blank`,rel:`noopener noreferrer`,children:(0,d.jsx)(`img`,{src:`${e}img/${t}`,alt:n,loading:`lazy`,decoding:`async`})}),r&&(0,d.jsx)(`figcaption`,{children:r})]})}function p({children:e,label:t}){return(0,d.jsxs)(`div`,{className:`code-block`,children:[t&&(0,d.jsx)(`span`,{className:`code-label`,children:t}),(0,d.jsx)(`pre`,{children:(0,d.jsx)(`code`,{children:e})})]})}function m({children:e}){return(0,d.jsx)(`kbd`,{className:`kbd`,children:e})}function h({tone:e=`ok`,children:t}){return(0,d.jsx)(`span`,{className:`badge badge-${e}`,children:t})}function g({kicker:e,title:t,lede:n}){return(0,d.jsxs)(`header`,{className:`page-head`,children:[e&&(0,d.jsx)(`p`,{className:`kicker`,children:e}),(0,d.jsx)(`h1`,{children:t}),n&&(0,d.jsx)(`p`,{className:`lede`,children:n})]})}function _({rel:e}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:`hero`,children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`p`,{className:`kicker yellow`,children:`docker · github actions · kubernetes`}),(0,d.jsxs)(`h1`,{children:[`DevOps scaffolding,`,(0,d.jsx)(`br`,{}),`deterministically.`]}),(0,d.jsx)(`p`,{className:`lede`,children:`DevOpsGen reads your Go or Node.js project and writes a complete, opinionated DevOps baseline: hardened Dockerfile, GitHub Actions pipeline and ready-to-apply Kubernetes manifests — with dry-run plans, automatic backups and config validation built in.`}),(0,d.jsxs)(`div`,{className:`hero-cta`,children:[(0,d.jsx)(`a`,{className:`btn`,href:`${e}getting-started/`,children:`Get started`}),(0,d.jsx)(`a`,{className:`btn btn-pink`,href:`${e}wizard/`,children:`Take the wizard tour`})]})]}),(0,d.jsx)(f,{rel:e,name:`wizard.png`,alt:`DevOpsGen interactive wizard running in a Windows terminal, asking for the project stack`,caption:`The interactive wizard — press Enter to accept smart defaults.`,feature:`shot-feature`})]}),(0,d.jsx)(`h2`,{children:`Why DevOpsGen`}),(0,d.jsxs)(`div`,{className:`cards`,children:[(0,d.jsxs)(`div`,{className:`card`,children:[(0,d.jsx)(`h3`,{children:`Deterministic`}),(0,d.jsxs)(`p`,{children:[`Same inputs, same bytes — every run. Machine-friendly for code review: a second generation with `,(0,d.jsx)(`code`,{children:`--force`}),` produces bit-identical files.`]})]}),(0,d.jsxs)(`div`,{className:`card`,children:[(0,d.jsx)(`h3`,{children:`Safe by default`}),(0,d.jsxs)(`p`,{children:[`Existing files are never overwritten without `,(0,d.jsx)(`code`,{children:`--force`}),`. Overwrites get`,` `,(0,d.jsx)(`code`,{children:`.bak`}),` backups, failed runs roll back automatically, and`,` `,(0,d.jsx)(`code`,{children:`--dry-run`}),` prints the full plan first.`]})]}),(0,d.jsxs)(`div`,{className:`card`,children:[(0,d.jsx)(`h3`,{children:`Validated output`}),(0,d.jsx)(`p`,{children:`Built-in validation checks Dockerfile structure, GitHub Actions workflow wiring and Kubernetes manifests (selector consistency, port ranges, Ingress paths) before anything ships.`})]}),(0,d.jsxs)(`div`,{className:`card`,children:[(0,d.jsx)(`h3`,{children:`Stack aware`}),(0,d.jsxs)(`p`,{children:[`Detects Go and Node.js projects (npm, pnpm, Express, Next.js, Vite, NestJS) from`,` `,(0,d.jsx)(`code`,{children:`go.mod`}),` / `,(0,d.jsx)(`code`,{children:`package.json`}),` and tailors templates accordingly.`]})]})]}),(0,d.jsx)(`h2`,{children:`Everything a project needs on day one`}),(0,d.jsxs)(`p`,{children:[`One `,(0,d.jsx)(`code`,{children:`init`}),` command writes the whole baseline tree. Preview the real terminal output of every command below — all screenshots are live captures, not mockups.`]}),(0,d.jsx)(p,{label:`generated in one command`,children:`$ devopsgen init --stack go --ci github-actions --registry ghcr --image you/myapp --port 8080 +`).replace(Qf,``)}function ep(e,t){return t=$f(t),$f(e)===t}function $(e,t,n,r,i,a){switch(n){case`children`:if(typeof r==`string`)t===`body`||t===`textarea`&&r===``||Sn(e,r);else if(typeof r==`number`||typeof r==`bigint`)t!==`body`&&Sn(e,``+r);else return;break;case`className`:sn(e,`class`,r);break;case`tabIndex`:sn(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:sn(e,n,r);break;case`style`:Tn(e,r,a);return;case`data`:if(t!==`object`){sn(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)||r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=kn(r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}if(typeof a==`function`&&(n===`formAction`?(t!==`input`&&$(e,t,`name`,i.name,i,null),$(e,t,`formEncType`,i.formEncType,i,null),$(e,t,`formMethod`,i.formMethod,i,null),$(e,t,`formTarget`,i.formTarget,i,null)):($(e,t,`encType`,i.encType,i,null),$(e,t,`method`,i.method,i,null),$(e,t,`target`,i.target,i,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=kn(r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=An);return;case`onScroll`:r!=null&&Q(`scroll`,e);return;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);return;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(s(61));if(n=r.__html,n!=null){if(i.children!=null)throw Error(s(60));a?.__html!==n&&(e.innerHTML=n)}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=kn(r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`credentialless`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:Q(`beforetoggle`,e),Q(`toggle`,e),on(e,`popover`,r);break;case`xlinkActuate`:cn(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:cn(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:cn(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:cn(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:cn(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:cn(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:cn(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:cn(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:cn(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:on(e,`is`,r);break;case`innerText`:case`textContent`:return;default:if(!(2s)break;var u=c.transferSize,d=c.initiatorType;u&&ap(d)&&(c=c.responseEnd,o+=u*(c$m){s.length=o;break}f=new Promise(jp.bind(f)),s.push(f)}}}if(0`u`?null:document;function Tm(e,t,n){var r=wm;if(r&&typeof t==`string`&&t){var i=hn(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),ym.has(i)||(ym.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),np(t,`link`,e),E(t),r.head.appendChild(t)))}}function Em(e){xm.D(e),Tm(`dns-prefetch`,e,null)}function Dm(e,t){xm.C(e,t),Tm(`preconnect`,e,t)}function Om(e,t,n){xm.L(e,t,n);var r=wm;if(r&&e&&t){var i=`link[rel="preload"][as="`+hn(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+hn(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+hn(n.imageSizes)+`"]`)):i+=`[href="`+hn(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=S({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vm.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Fm(a))||t===`script`&&r.querySelector(zm(a))))){var o=r.createElement(`link`);np(o,`link`,e),t===`style`&&(o[Ut]=!0,o.onload=o.onerror=function(){Yt(o)}),E(o),r.head.appendChild(o)}}}function km(e,t){xm.m(e,t);var n=wm;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+hn(r)+`"][href="`+hn(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rm(e)}if(!vm.has(a)&&(e=S({rel:`modulepreload`,href:e},t),vm.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zm(a)))return}r=n.createElement(`link`),np(r,`link`,e),E(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=Jt(r).hoistableStyles,a=Pm(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Fm(a)))s.loading=5;else{e=S({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);E(c),np(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vm(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jm(e,t){xm.X(e,t);var n=wm;if(n&&e){var r=Jt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=S({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),E(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mm(e,t){xm.M(e,t);var n=wm;if(n&&e){var r=Jt(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=S({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),E(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nm(e,t,n,r){var i=(i=Fe.current)?bm(i):null;if(!i)throw Error(s(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(n=Pm(n.href),t=Jt(i).hoistableStyles,r=t.get(n),r||(r={type:`style`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pm(n.href);var a=Jt(i).hoistableStyles,o=a.get(e);if(o||(i=i.ownerDocument||i,o={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},a.set(e,o),(a=i.querySelector(Fm(e)))?a._p||(o.instance=a,o.state.loading=5):(a=vm.get(e),a||(a={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vm.set(e,a)),Lm(i,e,a,o.state))),t&&r===null)throw Error(s(528,``));return o}if(t&&r!==null)throw Error(s(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(n=Rm(n),t=Jt(i).hoistableScripts,r=t.get(n),r||(r={type:`script`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(s(444,e))}}function Pm(e){return`href="`+hn(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return S({},e,{"data-precedence":e.precedence,precedence:null})}function Lm(e,t,n,r){if(t=e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)){if(!0!==t[Ut]){r.loading=1;return}}else t=e.createElement(`link`),t[Ut]=!0,t.onload=t.onerror=Yt.bind(null,t),np(t,`link`,n),E(t),e.head.appendChild(t);r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2})}function Rm(e){return`[src="`+hn(e)+`"]`}function zm(e){return`script[async]`+e}function Bm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+hn(n.href)+`"]`);if(r)return t.instance=r,E(r),r;var i=S({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),E(r),np(r,`style`,i),Vm(r,n.precedence,e),t.instance=r;case`stylesheet`:i=Pm(n.href);var a=e.querySelector(Fm(i));if(a)return t.state.loading|=4,t.instance=a,E(a),a;r=Im(n),(i=vm.get(i))&&Hm(r,i),a=(e.ownerDocument||e).createElement(`link`),E(a);var o=a;return o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),t.state.loading|=4,Vm(a,n.precedence,e),t.instance=a;case`script`:return a=Rm(n.src),(i=e.querySelector(zm(a)))?(t.instance=i,E(i),i):(r=n,(i=vm.get(a))&&(r=S({},n),Um(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),E(i),np(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(s(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vm(r,n.precedence,e));return t.instance}function Vm(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function qm(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jm(e,t){return e===`img`&&t.src!=null&&t.src!==``&&t.onLoad==null&&t.loading!==`lazy`}function Ym(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio==`number`?devicePixelRatio:1)*.25}function Zm(e,t){typeof t.decode==`function`&&(e.imgCount++,t.complete||(e.imgBytes+=Xm(t),e.suspenseyImages.push(t)),e=rh.bind(e),t.decode().then(e,e))}function Qm(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pm(r.href),a=t.querySelector(Fm(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=nh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,E(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),E(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=nh.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $m=0;function eh(e,t){return e.stylesheets&&e.count===0&&ah(e,e.stylesheets),0$m?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function th(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)ah(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function nh(){this.count--,th(this)}function rh(){this.imgCount--,th(this)}var ih=null;function ah(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ih=new Map,t.forEach(oh,e),ih=null,nh.call(e))}function oh(e,t){if(!(t.state.loading&4)){var n=ih.get(e);if(n)var r=n.get(null);else{n=new Map,ih.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=s()}));n();var l=c(),u=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),d=e(((e,t)=>{t.exports=u()}))();function f({rel:e,name:t,alt:n,caption:r,feature:i=``}){return(0,d.jsxs)(`figure`,{className:`shot ${i}`,children:[(0,d.jsx)(`a`,{href:`${e}img/${t}`,target:`_blank`,rel:`noopener noreferrer`,children:(0,d.jsx)(`img`,{src:`${e}img/${t}`,alt:n,loading:`lazy`,decoding:`async`})}),r&&(0,d.jsx)(`figcaption`,{children:r})]})}function p({children:e,label:t}){return(0,d.jsxs)(`div`,{className:`code-block`,children:[t&&(0,d.jsx)(`span`,{className:`code-label`,children:t}),(0,d.jsx)(`pre`,{children:(0,d.jsx)(`code`,{children:e})})]})}function m({children:e}){return(0,d.jsx)(`kbd`,{className:`kbd`,children:e})}function h({tone:e=`ok`,children:t}){return(0,d.jsx)(`span`,{className:`badge badge-${e}`,children:t})}function g({kicker:e,title:t,lede:n}){return(0,d.jsxs)(`header`,{className:`page-head`,children:[e&&(0,d.jsx)(`p`,{className:`kicker`,children:e}),(0,d.jsx)(`h1`,{children:t}),n&&(0,d.jsx)(`p`,{className:`lede`,children:n})]})}function _({rel:e}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(`div`,{className:`hero`,children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`p`,{className:`kicker`,children:`docker · github actions · kubernetes`}),(0,d.jsxs)(`h1`,{children:[`DevOps scaffolding,`,(0,d.jsx)(`br`,{}),`deterministically.`]}),(0,d.jsx)(`p`,{className:`lede`,children:`DevOpsGen reads your Go or Node.js project and writes a complete, opinionated DevOps baseline: hardened Dockerfile, GitHub Actions pipeline and ready-to-apply Kubernetes manifests — with dry-run plans, automatic backups and config validation built in.`}),(0,d.jsxs)(`div`,{className:`hero-cta`,children:[(0,d.jsx)(`a`,{className:`btn`,href:`${e}getting-started/`,children:`Get started`}),(0,d.jsx)(`a`,{className:`btn btn-pink`,href:`${e}wizard/`,children:`Take the wizard tour`})]})]}),(0,d.jsx)(f,{rel:e,name:`wizard.png`,alt:`DevOpsGen interactive wizard running in a Windows terminal, asking for the project stack`,caption:`The interactive wizard — press Enter to accept smart defaults.`,feature:`shot-feature`})]}),(0,d.jsx)(`h2`,{children:`Why DevOpsGen`}),(0,d.jsxs)(`div`,{className:`cards`,children:[(0,d.jsxs)(`div`,{className:`card`,children:[(0,d.jsx)(`h3`,{children:`Deterministic`}),(0,d.jsxs)(`p`,{children:[`Same inputs, same bytes — every run. Machine-friendly for code review: a second generation with `,(0,d.jsx)(`code`,{children:`--force`}),` produces bit-identical files.`]})]}),(0,d.jsxs)(`div`,{className:`card`,children:[(0,d.jsx)(`h3`,{children:`Safe by default`}),(0,d.jsxs)(`p`,{children:[`Existing files are never overwritten without `,(0,d.jsx)(`code`,{children:`--force`}),`. Overwrites get`,` `,(0,d.jsx)(`code`,{children:`.bak`}),` backups, failed runs roll back automatically, and`,` `,(0,d.jsx)(`code`,{children:`--dry-run`}),` prints the full plan first.`]})]}),(0,d.jsxs)(`div`,{className:`card`,children:[(0,d.jsx)(`h3`,{children:`Validated output`}),(0,d.jsx)(`p`,{children:`Built-in validation checks Dockerfile structure, GitHub Actions workflow wiring and Kubernetes manifests (selector consistency, port ranges, Ingress paths) before anything ships.`})]}),(0,d.jsxs)(`div`,{className:`card`,children:[(0,d.jsx)(`h3`,{children:`Stack aware`}),(0,d.jsxs)(`p`,{children:[`Detects Go and Node.js projects (npm, pnpm, Express, Next.js, Vite, NestJS) from`,` `,(0,d.jsx)(`code`,{children:`go.mod`}),` / `,(0,d.jsx)(`code`,{children:`package.json`}),` and tailors templates accordingly.`]})]})]}),(0,d.jsx)(`h2`,{children:`Everything a project needs on day one`}),(0,d.jsxs)(`p`,{children:[`One `,(0,d.jsx)(`code`,{children:`init`}),` command writes the whole baseline tree. Preview the real terminal output of every command below — all screenshots are live captures, not mockups.`]}),(0,d.jsx)(p,{label:`generated in one command`,children:`$ devopsgen init --stack go --ci github-actions --registry ghcr --image you/myapp --port 8080 created 5 file(s), replaced 0 file(s) in . exit code: 0`}),(0,d.jsxs)(`div`,{className:`screen-strip`,children:[(0,d.jsx)(f,{rel:e,name:`init-success.png`,alt:`Terminal showing a successful DevOpsGen init run creating five files with exit code 0`,caption:`init — first run creates the complete baseline and exits 0.`}),(0,d.jsx)(f,{rel:e,name:`dry-run.png`,alt:`Terminal showing a DevOpsGen dry-run plan listing five create entries with exit code 0`,caption:`--dry-run on a fresh project prints the pure create plan and exits 0.`}),(0,d.jsx)(f,{rel:e,name:`dry-run-force.png`,alt:`Terminal showing a DevOpsGen dry-run force plan where every file would be replaced, exit code 0`,caption:`--dry-run --force previews the full replace plan — still nothing written.`})]}),(0,d.jsx)(`h2`,{children:`What gets generated`}),(0,d.jsx)(`div`,{className:`table-wrap`,children:(0,d.jsxs)(`table`,{children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`th`,{children:`Template set`}),(0,d.jsx)(`th`,{children:`Files`}),(0,d.jsx)(`th`,{children:`Purpose`})]})}),(0,d.jsxs)(`tbody`,{children:[(0,d.jsxs)(`tr`,{children:[(0,d.jsxs)(`td`,{children:[(0,d.jsx)(`code`,{children:`docker`}),` (+ `,(0,d.jsx)(`code`,{children:`.dockerignore`}),`)`]}),(0,d.jsx)(`td`,{children:(0,d.jsx)(`code`,{children:`Dockerfile`})}),(0,d.jsxs)(`td`,{children:[`Hardened multi-stage build (Go runs as `,(0,d.jsx)(`code`,{children:`USER 1000:1000`}),` on a scratch base). For Node.js, RUN steps and install/prune commands follow the detected package manager (npm / pnpm) and lockfile. The generated `,(0,d.jsx)(`code`,{children:`.dockerignore`}),` `,`keeps state, tool caches and env files out of the image.`]})]}),(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`td`,{children:(0,d.jsx)(`code`,{children:`github-actions`})}),(0,d.jsx)(`td`,{children:(0,d.jsx)(`code`,{children:`.github/workflows/ci.yml`})}),(0,d.jsx)(`td`,{children:`Runs your tests when a test command is configured, then builds and pushes the image with both the commit SHA tag and your alias tag, authenticating to the chosen registry via secrets.`})]}),(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`td`,{children:(0,d.jsx)(`code`,{children:`kubernetes`})}),(0,d.jsxs)(`td`,{children:[(0,d.jsx)(`code`,{children:`deployment.yaml`}),`, `,(0,d.jsx)(`code`,{children:`service.yaml`}),`, optional `,(0,d.jsx)(`code`,{children:`ingress.yaml`})]}),(0,d.jsxs)(`td`,{children:[`DNS 1035-safe resource names, container port wiring, resource requests and limits, health probes when `,(0,d.jsx)(`code`,{children:`--health-path`}),` is given, and an optional host-based Ingress (RFC 1123 hostname).`]})]})]})]})}),(0,d.jsx)(`h2`,{children:`Explore the docs`}),(0,d.jsx)(`div`,{className:`cards core`,children:x.filter(e=>e.path!==``).map(t=>(0,d.jsxs)(`a`,{className:`card`,style:{display:`block`},href:`${e}${t.path}/`,children:[(0,d.jsx)(`h3`,{children:t.path.replace(/-/g,` `)}),(0,d.jsx)(`p`,{children:t.description})]},t.path))}),(0,d.jsx)(`h2`,{children:`Command cheatsheet`}),(0,d.jsxs)(`div`,{className:`screen-strip`,children:[(0,d.jsx)(f,{rel:e,name:`help.png`,alt:`Terminal showing the full devopsgen help output listing all commands`,caption:`devopsgen --help — all commands at a glance.`}),(0,d.jsx)(f,{rel:e,name:`list.png`,alt:`Terminal showing the devopsgen list output with available stacks, app types and registries`,caption:`devopsgen list — supported stacks, app types and registries.`}),(0,d.jsx)(f,{rel:e,name:`version.png`,alt:`Terminal showing the devopsgen version output`,caption:`devopsgen version.`})]})]})}function v({rel:e}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g,{kicker:`getting started`,title:`Zero to CI in one command`,lede:`Install DevOpsGen, point it at any Go or Node.js project, and get a full Docker + GitHub Actions + Kubernetes baseline in seconds.`}),(0,d.jsx)(`h2`,{children:`Install`}),(0,d.jsx)(p,{label:`go install (go 1.22+)`,children:`go install devopsgen.dev/devopsgen@latest`}),(0,d.jsxs)(`p`,{children:[`Or grab a prebuilt binary from the project`,` `,(0,d.jsx)(`a`,{href:`https://github.com/Bangkahdev/DevOpsGen/releases`,target:`_blank`,rel:`noopener noreferrer`,children:`GitHub releases`}),`, or build from source:`]}),(0,d.jsx)(p,{label:`from source`,children:`git clone https://github.com/Bangkahdev/DevOpsGen.git cd DevOpsGen diff --git a/docs/web/dist/assets/index-DZzeKXFv.css b/docs/web/dist/assets/index-DZzeKXFv.css deleted file mode 100644 index 005c0fb..0000000 --- a/docs/web/dist/assets/index-DZzeKXFv.css +++ /dev/null @@ -1 +0,0 @@ -@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ui-bg:#f3ede3;--ui-surface:#fffaf2;--ui-surface-2:#f7f0e6;--ui-text:#332820;--ui-text-soft:#5e4d3f;--ui-muted:#756455;--ui-border:#e2d5c5;--ui-border-strong:#d3c2ad;--ui-accent:#8a5b3d;--ui-accent-strong:#7a4f33;--ui-accent-soft:#efe0cf;--ui-accent-contrast:#fffaf2;--ui-badge-ok-bg:#e4ecd9;--ui-badge-ok-fg:#55683f;--ui-badge-warn-bg:#fbf0d2;--ui-badge-warn-fg:#7a5c17;--ui-badge-err-bg:#f9e2db;--ui-badge-err-fg:#8a4a38;--ui-badge-info-bg:#efe6ec;--ui-badge-info-fg:#6e4a63;--ui-note:#f4ead9;--ui-tip:#edf0e2;--ui-caution:#fbf0d2;--ui-danger:#f9e2db;--ui-code:#2d231c;--ui-code-text:#f8f1e8;--ui-code-bar:#efe2d2;--ui-code-bar-text:#5e3c27;--ui-shadow-color:#4a34261a;--ui-shadow-strong:#4a342629;--ui-radius-sm:6px;--ui-radius:10px;--ui-radius-lg:16px;--font-display:"DM Sans", ui-sans-serif, system-ui, sans-serif;--sl-font:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--sl-font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*{scrollbar-color:var(--ui-border-strong) var(--ui-bg);box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ui-bg);color:var(--ui-text);font-family:var(--sl-font);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:1rem;font-weight:400;line-height:1.75}::selection{background:var(--ui-accent-soft);color:var(--ui-accent-strong)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--ui-bg)}::-webkit-scrollbar-thumb{background:var(--ui-border-strong);border:3px solid var(--ui-bg);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--ui-accent)}:focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}.skip{z-index:99;background:var(--ui-accent);color:var(--ui-accent-contrast);border-radius:var(--ui-radius-sm);font-family:var(--sl-font);padding:8px 16px;font-weight:600;position:absolute;top:0;left:-9999px}.skip:focus{left:8px}.topbar{background:var(--ui-surface);border-bottom:1px solid var(--ui-border);align-items:center;gap:16px;padding:.6rem clamp(1rem,3vw,2rem);display:flex}.brand{color:var(--ui-text);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{width:2.25rem;height:2.25rem;box-shadow:0 2px 8px var(--ui-shadow-color);display:block}.brand-name{font-family:var(--font-display);letter-spacing:-.015em;font-size:1rem;font-weight:700}.brand-sub{background:var(--ui-accent-soft);color:var(--ui-accent-strong);letter-spacing:.08em;border-radius:999px;padding:.16rem .45rem;font-size:.58rem;font-weight:700}.gh-pill{border:1px solid var(--ui-border);background:var(--ui-surface-2);height:2.25rem;box-shadow:none;color:var(--ui-text-soft);font-family:var(--sl-font);border-radius:8px;align-items:center;gap:.4rem;margin-left:auto;padding:0 1rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.gh-pill:hover{background:var(--ui-accent-soft);border-color:var(--ui-border-strong);color:var(--ui-accent-strong)}.shell{grid-template-columns:210px minmax(0,1fr);align-items:start;gap:clamp(1.5rem,3vw,2.5rem);max-width:1200px;margin:0 auto;padding:1.5rem clamp(1rem,3vw,2rem);display:grid}.sidebar{padding-block:.25rem;position:sticky;top:1.5rem}.side-home{margin-bottom:.4rem}.side-group+.side-group{margin-top:1.25rem}.group-label{color:var(--ui-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .4rem;padding:0 .6rem;font-size:.66rem;font-weight:700}.sidebar ul{margin:0;padding:0;list-style:none}.sidebar a,.side-link{color:var(--ui-text-soft);text-transform:capitalize;border-radius:7px;padding:.4rem .6rem;font-weight:500;line-height:1.35;text-decoration:none;transition:background .15s,color .15s;display:block}.sidebar a:hover,.side-link:hover{background:var(--ui-surface-2);color:var(--ui-text)}.sidebar a.is-active,.side-link.is-active{background:var(--ui-accent-soft);color:var(--ui-accent-strong);box-shadow:inset 3px 0 0 var(--ui-accent);font-weight:600}main{min-width:0}.page-head{margin-bottom:26px}.kicker{background:var(--ui-accent-soft);color:var(--ui-accent-strong);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;margin:0 0 12px;padding:.22rem .7rem;font-size:.66rem;font-weight:700;display:inline-block}.violet{background:var(--ui-badge-info-bg);color:var(--ui-badge-info-fg)}.blue{background:var(--ui-note);color:var(--ui-text-soft)}.pink,.yellow{background:var(--ui-caution);color:var(--ui-badge-warn-fg)}h1{color:var(--ui-text);box-shadow:none;font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;background:0 0;margin:0 0 14px;padding:0;font-size:clamp(1.9rem,3.8vw,2.6rem);font-weight:700;line-height:1.12;display:block}.lede{background:var(--ui-surface);max-width:46rem;color:var(--ui-text-soft);border:1px solid var(--ui-border);border-inline-start:3px solid var(--ui-accent);border-radius:8px;margin-block:0 8px;padding:1rem 1.25rem;font-size:1.02rem;line-height:1.7;display:block}h2{border-bottom:1px solid var(--ui-border);font-family:var(--font-display);letter-spacing:-.025em;align-items:center;gap:.6rem;margin-block:2.5rem 1rem;padding-bottom:.55rem;font-size:clamp(1.25rem,2.3vw,1.45rem);font-weight:600;display:flex}h2:before{content:"";background:var(--ui-accent);border-radius:999px;flex:none;width:.35rem;height:1.1em}h3{font-family:var(--font-display);margin-block:1.75rem .6rem;font-size:1.08rem;font-weight:600}strong{color:var(--ui-accent-strong);font-weight:600}code:not(.code-block code){background:var(--ui-surface-2);color:var(--ui-accent-strong);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);font-family:var(--sl-font-mono);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.08em .35em;font-size:.88em;font-weight:500}a{color:var(--ui-accent-strong);text-decoration:underline;-webkit-text-decoration-color:var(--ui-border-strong);text-decoration-color:var(--ui-border-strong);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--ui-accent);-webkit-text-decoration-color:var(--ui-accent);text-decoration-color:var(--ui-accent);background:0 0}.btn:hover,.gh-pill:hover,.sidebar a:hover,.side-link:hover{background-color:inherit}a.btn:hover{color:var(--ui-accent-contrast);background:var(--ui-accent-strong);text-decoration:none}.hero{background:var(--ui-surface);color:var(--ui-text);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);box-shadow:0 16px 40px var(--ui-shadow-color);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);margin:.5rem 0 2rem;padding:clamp(1.5rem,4vw,3rem);display:grid;position:relative}.hero-cta{flex-wrap:wrap;gap:.75rem;margin-top:6px;display:flex}.btn{border:1px solid var(--ui-accent);background:var(--ui-accent);color:var(--ui-accent-contrast);box-shadow:0 2px 6px var(--ui-shadow-color);border-radius:9px;padding:.6rem 1.1rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:inline-block}.btn:hover{box-shadow:0 6px 16px var(--ui-shadow-strong);transform:translateY(-1px)}.btn-pink{background:var(--ui-surface-2);color:var(--ui-text);border-color:var(--ui-border)}.btn-pink:hover{background:var(--ui-accent-soft);border-color:var(--ui-border-strong);color:var(--ui-accent-strong)}.btn-yellow{background:var(--ui-surface-2);color:var(--ui-text);border-color:var(--ui-border)}.cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem;display:grid}.card{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:0 1px 2px var(--ui-shadow-color);color:inherit;padding:1.5rem;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}.card h3{margin-top:0;font-size:.98rem}.card p,.card li{color:var(--ui-muted);font-size:.9rem;line-height:1.6}.card:hover{border-color:var(--ui-border-strong);box-shadow:0 10px 24px var(--ui-shadow-color);transform:translateY(-2px)}a.card h3{color:var(--ui-accent-strong)}.core .card:hover{border-color:var(--ui-accent)}.shot{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:0 8px 24px var(--ui-shadow-color);max-width:100%;margin:22px 0;padding:10px}.shot img{border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);width:100%;height:auto;display:block}.shot figcaption{color:var(--ui-muted);margin-top:10px;font-size:.85rem;font-weight:500}.shot a:hover{color:inherit;background:0 0}.shot-feature{max-width:880px}.screen-strip{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:22px;display:grid}.screen-strip .shot{margin:0 0 12px}.code-block{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-code);color:var(--ui-code-text);box-shadow:0 10px 30px var(--ui-shadow-color);margin:20px 0;position:relative;overflow:hidden}.code-label{background:var(--ui-code-bar);color:var(--ui-code-bar-text);font-family:var(--sl-font-mono);letter-spacing:.06em;text-transform:uppercase;padding:.45rem .9rem;font-size:.7rem;font-weight:600;position:absolute;top:0;left:0;right:0}.code-block pre{font-family:var(--sl-font-mono);margin:0;padding:2.2rem 18px 16px;font-size:.86rem;line-height:1.6;overflow-x:auto}.code-block code{color:inherit;font-size:inherit;background:0 0;border:0;padding:0}.table-wrap{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);box-shadow:0 1px 2px var(--ui-shadow-color);margin:18px 0;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;vertical-align:top;padding:.65rem .75rem}th{background:var(--ui-surface-2);color:var(--ui-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;font-weight:700}td{border-top:1px solid var(--ui-border)}tbody tr:nth-child(2n) td{background:var(--ui-surface-2)}td code{white-space:nowrap}.num{font-weight:700}.badge{font-family:var(--sl-font-mono);letter-spacing:.01em;border:0;border-radius:999px;padding:.05rem .5rem;font-size:.74rem;font-weight:600;display:inline-block;transform:none}.badge-ok{background:var(--ui-badge-ok-bg);color:var(--ui-badge-ok-fg)}.badge-warn{background:var(--ui-badge-warn-bg);color:var(--ui-badge-warn-fg)}.badge-err{background:var(--ui-badge-err-bg);color:var(--ui-badge-err-fg)}.badge-info{background:var(--ui-badge-info-bg);color:var(--ui-badge-info-fg)}.kbd{border:1px solid var(--ui-border);background:var(--ui-surface-2);color:var(--ui-text);box-shadow:none;font-family:var(--sl-font-mono);border-radius:5px;padding:.1em .4em;font-size:.84rem;display:inline-block}.callout{background:var(--ui-note);color:var(--ui-text);border:1px solid var(--ui-border);border-inline-start:3px solid var(--ui-accent);border-radius:8px;margin:20px 0;padding:1rem 1.25rem;font-weight:500}.callout p{margin:0}.callout-info,.callout-ok{background:var(--ui-tip)}ul,ol{padding-inline-start:1.5rem}li::marker{color:var(--ui-accent)}.step-list{counter-reset:steps;padding-left:0;list-style:none}.step-list li{counter-increment:steps;margin-top:14px;padding-left:48px;position:relative}.step-list li:before{content:counter(steps);background:var(--ui-accent-soft);width:30px;height:30px;color:var(--ui-accent-strong);box-shadow:none;font-family:var(--font-display);border-radius:999px;place-items:center;font-weight:600;display:grid;position:absolute;top:0;left:0}.flag-name{font-family:var(--sl-font-mono);font-weight:600}.footer{max-width:1200px;color:var(--ui-muted);margin:0 auto;padding:1.5rem clamp(1rem,3vw,2rem) 2.5rem;font-size:.9rem}.footer a{color:var(--ui-accent-strong);text-decoration:underline;-webkit-text-decoration-color:var(--ui-border-strong);text-decoration-color:var(--ui-border-strong)}.footer a:hover{background:var(--ui-accent-soft)}.footer-links{margin-top:6px}.file-tree{font-family:var(--sl-font-mono);white-space:pre;font-size:.9rem;overflow-x:auto}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);flex-wrap:wrap;align-items:center;gap:.4rem;padding:.75rem 1rem;display:flex;position:static}.side-group{display:contents;margin:0!important}.sidebar ul{flex-wrap:wrap;gap:.25rem;display:flex}.group-label{margin:0 .2rem}.sidebar a,.side-link{background:var(--ui-surface-2);border-radius:999px;padding:.3rem .7rem}.sidebar a.is-active,.side-link.is-active{box-shadow:none}}@media (width<=720px){.hero{border-radius:var(--ui-radius);box-shadow:0 8px 24px var(--ui-shadow-color);grid-template-columns:1fr;padding:1.5rem}.shot,.code-block{box-shadow:0 4px 16px var(--ui-shadow-color)}th,td{padding:.5rem .55rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}} diff --git a/docs/web/dist/assets/index-bqF0xqM6.css b/docs/web/dist/assets/index-bqF0xqM6.css new file mode 100644 index 0000000..2666303 --- /dev/null +++ b/docs/web/dist/assets/index-bqF0xqM6.css @@ -0,0 +1 @@ +@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ui-bg:#f3ede3;--ui-surface:#fffaf2;--ui-surface-2:#f7f0e6;--ui-text:#332820;--ui-text-soft:#5e4d3f;--ui-muted:#756455;--ui-border:#e2d5c5;--ui-border-strong:#d3c2ad;--ui-accent:#8a5b3d;--ui-accent-strong:#7a4f33;--ui-accent-soft:#efe0cf;--ui-accent-contrast:#fffaf2;--ui-badge-ok-fg:#55683f;--ui-badge-warn-fg:#7a5c17;--ui-badge-err-fg:#8a4a38;--ui-badge-info-fg:#6e4a63;--ui-code:#2d231c;--ui-code-text:#f8f1e8;--ui-code-bar:#efe2d2;--ui-code-bar-text:#5e3c27;--ui-radius-sm:3px;--ui-radius:3px;--ui-radius-lg:4px;--font-display:"DM Sans", ui-sans-serif, system-ui, sans-serif;--sl-font:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--sl-font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*{scrollbar-color:var(--ui-border-strong) var(--ui-bg);box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ui-bg);color:var(--ui-text);font-family:var(--sl-font);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:1rem;font-weight:400;line-height:1.75}::selection{background:var(--ui-accent-soft);color:var(--ui-accent-strong)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--ui-bg)}::-webkit-scrollbar-thumb{background:var(--ui-border-strong);border:3px solid var(--ui-bg)}::-webkit-scrollbar-thumb:hover{background:var(--ui-accent)}:focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}.skip{z-index:99;background:var(--ui-accent);color:var(--ui-accent-contrast);border-radius:var(--ui-radius-sm);font-family:var(--sl-font);padding:8px 16px;font-weight:600;position:absolute;top:0;left:-9999px}.skip:focus{left:8px}.topbar{background:var(--ui-surface);border-bottom:1px solid var(--ui-border);align-items:center;gap:16px;padding:.6rem clamp(1rem,3vw,2rem);display:flex}.brand{color:var(--ui-text);align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{width:2.1rem;height:2.1rem;display:block}.brand-name{font-family:var(--sl-font-mono);letter-spacing:-.01em;font-size:.98rem;font-weight:600}.brand-sub{color:var(--ui-muted);font-family:var(--sl-font-mono);letter-spacing:.14em;font-size:.62rem;font-weight:600}.gh-pill{border:1px solid var(--ui-border);border-radius:var(--ui-radius);height:2.15rem;color:var(--ui-text-soft);font-family:var(--sl-font-mono);background:0 0;align-items:center;gap:.4rem;margin-left:auto;padding:0 .9rem;font-size:.78rem;font-weight:500;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.gh-pill:hover{border-color:var(--ui-accent);color:var(--ui-accent-strong)}.shell{grid-template-columns:210px minmax(0,1fr);align-items:start;gap:clamp(1.5rem,3vw,2.5rem);max-width:1200px;margin:0 auto;padding:1.5rem clamp(1rem,3vw,2rem);display:grid}.sidebar{padding-block:.25rem;position:sticky;top:1.5rem}.side-home{margin-bottom:.4rem}.side-group+.side-group{margin-top:1.25rem}.group-label{color:var(--ui-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .4rem;padding:0 .6rem;font-size:.66rem;font-weight:600}.sidebar ul{margin:0;padding:0;list-style:none}.sidebar a,.side-link{color:var(--ui-text-soft);border-left:2px solid #0000;padding:.38rem .6rem;font-weight:500;line-height:1.35;text-decoration:none;transition:color .12s;display:block}.sidebar a:hover,.side-link:hover{color:var(--ui-text)}.sidebar a.is-active,.side-link.is-active{border-left-color:var(--ui-accent);color:var(--ui-accent-strong);font-weight:600}main{min-width:0}.page-head{margin-bottom:26px}.kicker{color:var(--ui-muted);font-family:var(--sl-font-mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:.7rem;font-weight:500;display:block}h1{color:var(--ui-text);font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;margin:0 0 14px;padding:0;font-size:clamp(1.9rem,3.8vw,2.6rem);font-weight:700;line-height:1.12;display:block}.lede{max-width:46rem;color:var(--ui-text-soft);margin-block:0 10px;font-size:1.02rem;line-height:1.7;display:block}h2{border-bottom:1px solid var(--ui-border);font-family:var(--font-display);letter-spacing:-.025em;margin-block:2.5rem 1rem;padding-bottom:.5rem;font-size:clamp(1.25rem,2.3vw,1.45rem);font-weight:600;display:block}h3{font-family:var(--font-display);margin-block:1.75rem .6rem;font-size:1.08rem;font-weight:600}strong{font-weight:600}code:not(.code-block code){background:var(--ui-surface-2);color:var(--ui-text);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);font-family:var(--sl-font-mono);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.08em .35em;font-size:.88em;font-weight:500}a{color:var(--ui-accent-strong);text-decoration:underline;-webkit-text-decoration-color:var(--ui-border-strong);text-decoration-color:var(--ui-border-strong);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--ui-accent);-webkit-text-decoration-color:var(--ui-accent);text-decoration-color:var(--ui-accent)}a.btn:hover{color:var(--ui-accent-contrast);text-decoration:none}.hero{border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);margin:.5rem 0 2rem;padding:clamp(1.5rem,4vw,3rem);display:grid}.hero-cta{flex-wrap:wrap;gap:.75rem;margin-top:6px;display:flex}.btn{border:1px solid var(--ui-accent);border-radius:var(--ui-radius);background:var(--ui-accent);color:var(--ui-accent-contrast);padding:.6rem 1.1rem;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s;display:inline-block}.btn:hover{background:var(--ui-accent-strong);border-color:var(--ui-accent-strong)}.btn-pink{border-color:var(--ui-border-strong);color:var(--ui-text);background:0 0}.btn-pink:hover{border-color:var(--ui-accent);color:var(--ui-accent-strong);background:0 0}.btn-yellow{border-color:var(--ui-border-strong);color:var(--ui-text);background:0 0}.cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem;display:grid}.card{border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:inherit;padding:1.5rem;text-decoration:none;transition:border-color .12s}.card h3{margin-top:0;font-size:.98rem}.card p,.card li{color:var(--ui-muted);font-size:.9rem;line-height:1.6}.card:hover{border-color:var(--ui-accent)}a.card h3{color:var(--ui-text)}.shot{border:1px solid var(--ui-border);border-radius:var(--ui-radius);max-width:100%;margin:22px 0;padding:10px}.shot img{border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);width:100%;height:auto;display:block}.shot figcaption{color:var(--ui-muted);margin-top:10px;font-size:.85rem;font-weight:500}.shot a:hover{color:inherit}.shot-feature{max-width:880px}.screen-strip{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:22px;display:grid}.screen-strip .shot{margin:0 0 12px}.code-block{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-code);color:var(--ui-code-text);margin:20px 0;position:relative;overflow:hidden}.code-label{background:var(--ui-code-bar);color:var(--ui-code-bar-text);font-family:var(--sl-font-mono);letter-spacing:.06em;text-transform:uppercase;padding:.45rem .9rem;font-size:.7rem;font-weight:600;position:absolute;top:0;left:0;right:0}.code-block pre{font-family:var(--sl-font-mono);margin:0;padding:2.2rem 18px 16px;font-size:.86rem;line-height:1.6;overflow-x:auto}.code-block code{color:inherit;font-size:inherit;background:0 0;border:0;padding:0}.table-wrap{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);margin:18px 0;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;vertical-align:top;padding:.65rem .75rem}th{color:var(--ui-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;font-weight:600}th,td{border-top:1px solid var(--ui-border)}thead th{border-top:0;border-bottom:1px solid var(--ui-border-strong);background:var(--ui-surface-2)}td code{white-space:nowrap}.num{font-family:var(--sl-font-mono);font-weight:600}.badge{border-radius:var(--ui-radius-sm);font-family:var(--sl-font-mono);white-space:nowrap;border:1px solid;padding:.02rem .45rem;font-size:.72rem;font-weight:500;display:inline-block}.badge-ok{color:var(--ui-badge-ok-fg)}.badge-warn{color:var(--ui-badge-warn-fg)}.badge-err{color:var(--ui-badge-err-fg)}.badge-info{color:var(--ui-badge-info-fg)}.kbd{border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius-sm);background:var(--ui-surface);color:var(--ui-text);font-family:var(--sl-font-mono);border-bottom-width:2px;padding:.1em .4em;font-size:.84rem;display:inline-block}.callout{border-left:2px solid var(--ui-accent);color:var(--ui-text-soft);margin:20px 0;padding:.75rem 1.25rem}.callout p{margin:0}ul,ol{padding-inline-start:1.5rem}li::marker{color:var(--ui-accent)}.step-list{counter-reset:steps;padding-left:0;list-style:none}.step-list li{counter-increment:steps;margin-top:14px;padding-left:44px;position:relative}.step-list li:before{content:counter(steps, decimal-leading-zero);color:var(--ui-accent-strong);font-family:var(--sl-font-mono);font-size:.85rem;font-weight:600;line-height:1.6;position:absolute;top:2px;left:0}.flag-name{font-family:var(--sl-font-mono);font-weight:600}.footer{max-width:1200px;color:var(--ui-muted);margin:0 auto;padding:1.5rem clamp(1rem,3vw,2rem) 2.5rem;font-size:.9rem}.footer a{color:var(--ui-accent-strong);text-decoration:underline;-webkit-text-decoration-color:var(--ui-border-strong);text-decoration-color:var(--ui-border-strong)}.footer-links{margin-top:6px}.file-tree{font-family:var(--sl-font-mono);white-space:pre;font-size:.9rem;overflow-x:auto}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{border:1px solid var(--ui-border);border-radius:var(--ui-radius);flex-wrap:wrap;align-items:center;gap:.4rem;padding:.75rem 1rem;display:flex;position:static}.side-group{display:contents;margin:0!important}.sidebar ul{flex-wrap:wrap;gap:.25rem;display:flex}.group-label{margin:0 .2rem}.sidebar a,.side-link{border-left:0;padding:.3rem .7rem}}@media (width<=720px){.hero{grid-template-columns:1fr;padding:1.5rem}th,td{padding:.5rem .55rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}} diff --git a/docs/web/dist/assets/site.css b/docs/web/dist/assets/site.css index 005c0fb..2666303 100644 --- a/docs/web/dist/assets/site.css +++ b/docs/web/dist/assets/site.css @@ -1 +1 @@ -@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ui-bg:#f3ede3;--ui-surface:#fffaf2;--ui-surface-2:#f7f0e6;--ui-text:#332820;--ui-text-soft:#5e4d3f;--ui-muted:#756455;--ui-border:#e2d5c5;--ui-border-strong:#d3c2ad;--ui-accent:#8a5b3d;--ui-accent-strong:#7a4f33;--ui-accent-soft:#efe0cf;--ui-accent-contrast:#fffaf2;--ui-badge-ok-bg:#e4ecd9;--ui-badge-ok-fg:#55683f;--ui-badge-warn-bg:#fbf0d2;--ui-badge-warn-fg:#7a5c17;--ui-badge-err-bg:#f9e2db;--ui-badge-err-fg:#8a4a38;--ui-badge-info-bg:#efe6ec;--ui-badge-info-fg:#6e4a63;--ui-note:#f4ead9;--ui-tip:#edf0e2;--ui-caution:#fbf0d2;--ui-danger:#f9e2db;--ui-code:#2d231c;--ui-code-text:#f8f1e8;--ui-code-bar:#efe2d2;--ui-code-bar-text:#5e3c27;--ui-shadow-color:#4a34261a;--ui-shadow-strong:#4a342629;--ui-radius-sm:6px;--ui-radius:10px;--ui-radius-lg:16px;--font-display:"DM Sans", ui-sans-serif, system-ui, sans-serif;--sl-font:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--sl-font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*{scrollbar-color:var(--ui-border-strong) var(--ui-bg);box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ui-bg);color:var(--ui-text);font-family:var(--sl-font);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:1rem;font-weight:400;line-height:1.75}::selection{background:var(--ui-accent-soft);color:var(--ui-accent-strong)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--ui-bg)}::-webkit-scrollbar-thumb{background:var(--ui-border-strong);border:3px solid var(--ui-bg);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--ui-accent)}:focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}.skip{z-index:99;background:var(--ui-accent);color:var(--ui-accent-contrast);border-radius:var(--ui-radius-sm);font-family:var(--sl-font);padding:8px 16px;font-weight:600;position:absolute;top:0;left:-9999px}.skip:focus{left:8px}.topbar{background:var(--ui-surface);border-bottom:1px solid var(--ui-border);align-items:center;gap:16px;padding:.6rem clamp(1rem,3vw,2rem);display:flex}.brand{color:var(--ui-text);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{width:2.25rem;height:2.25rem;box-shadow:0 2px 8px var(--ui-shadow-color);display:block}.brand-name{font-family:var(--font-display);letter-spacing:-.015em;font-size:1rem;font-weight:700}.brand-sub{background:var(--ui-accent-soft);color:var(--ui-accent-strong);letter-spacing:.08em;border-radius:999px;padding:.16rem .45rem;font-size:.58rem;font-weight:700}.gh-pill{border:1px solid var(--ui-border);background:var(--ui-surface-2);height:2.25rem;box-shadow:none;color:var(--ui-text-soft);font-family:var(--sl-font);border-radius:8px;align-items:center;gap:.4rem;margin-left:auto;padding:0 1rem;font-size:.8rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}.gh-pill:hover{background:var(--ui-accent-soft);border-color:var(--ui-border-strong);color:var(--ui-accent-strong)}.shell{grid-template-columns:210px minmax(0,1fr);align-items:start;gap:clamp(1.5rem,3vw,2.5rem);max-width:1200px;margin:0 auto;padding:1.5rem clamp(1rem,3vw,2rem);display:grid}.sidebar{padding-block:.25rem;position:sticky;top:1.5rem}.side-home{margin-bottom:.4rem}.side-group+.side-group{margin-top:1.25rem}.group-label{color:var(--ui-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .4rem;padding:0 .6rem;font-size:.66rem;font-weight:700}.sidebar ul{margin:0;padding:0;list-style:none}.sidebar a,.side-link{color:var(--ui-text-soft);text-transform:capitalize;border-radius:7px;padding:.4rem .6rem;font-weight:500;line-height:1.35;text-decoration:none;transition:background .15s,color .15s;display:block}.sidebar a:hover,.side-link:hover{background:var(--ui-surface-2);color:var(--ui-text)}.sidebar a.is-active,.side-link.is-active{background:var(--ui-accent-soft);color:var(--ui-accent-strong);box-shadow:inset 3px 0 0 var(--ui-accent);font-weight:600}main{min-width:0}.page-head{margin-bottom:26px}.kicker{background:var(--ui-accent-soft);color:var(--ui-accent-strong);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;margin:0 0 12px;padding:.22rem .7rem;font-size:.66rem;font-weight:700;display:inline-block}.violet{background:var(--ui-badge-info-bg);color:var(--ui-badge-info-fg)}.blue{background:var(--ui-note);color:var(--ui-text-soft)}.pink,.yellow{background:var(--ui-caution);color:var(--ui-badge-warn-fg)}h1{color:var(--ui-text);box-shadow:none;font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;background:0 0;margin:0 0 14px;padding:0;font-size:clamp(1.9rem,3.8vw,2.6rem);font-weight:700;line-height:1.12;display:block}.lede{background:var(--ui-surface);max-width:46rem;color:var(--ui-text-soft);border:1px solid var(--ui-border);border-inline-start:3px solid var(--ui-accent);border-radius:8px;margin-block:0 8px;padding:1rem 1.25rem;font-size:1.02rem;line-height:1.7;display:block}h2{border-bottom:1px solid var(--ui-border);font-family:var(--font-display);letter-spacing:-.025em;align-items:center;gap:.6rem;margin-block:2.5rem 1rem;padding-bottom:.55rem;font-size:clamp(1.25rem,2.3vw,1.45rem);font-weight:600;display:flex}h2:before{content:"";background:var(--ui-accent);border-radius:999px;flex:none;width:.35rem;height:1.1em}h3{font-family:var(--font-display);margin-block:1.75rem .6rem;font-size:1.08rem;font-weight:600}strong{color:var(--ui-accent-strong);font-weight:600}code:not(.code-block code){background:var(--ui-surface-2);color:var(--ui-accent-strong);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);font-family:var(--sl-font-mono);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.08em .35em;font-size:.88em;font-weight:500}a{color:var(--ui-accent-strong);text-decoration:underline;-webkit-text-decoration-color:var(--ui-border-strong);text-decoration-color:var(--ui-border-strong);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--ui-accent);-webkit-text-decoration-color:var(--ui-accent);text-decoration-color:var(--ui-accent);background:0 0}.btn:hover,.gh-pill:hover,.sidebar a:hover,.side-link:hover{background-color:inherit}a.btn:hover{color:var(--ui-accent-contrast);background:var(--ui-accent-strong);text-decoration:none}.hero{background:var(--ui-surface);color:var(--ui-text);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);box-shadow:0 16px 40px var(--ui-shadow-color);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);margin:.5rem 0 2rem;padding:clamp(1.5rem,4vw,3rem);display:grid;position:relative}.hero-cta{flex-wrap:wrap;gap:.75rem;margin-top:6px;display:flex}.btn{border:1px solid var(--ui-accent);background:var(--ui-accent);color:var(--ui-accent-contrast);box-shadow:0 2px 6px var(--ui-shadow-color);border-radius:9px;padding:.6rem 1.1rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:inline-block}.btn:hover{box-shadow:0 6px 16px var(--ui-shadow-strong);transform:translateY(-1px)}.btn-pink{background:var(--ui-surface-2);color:var(--ui-text);border-color:var(--ui-border)}.btn-pink:hover{background:var(--ui-accent-soft);border-color:var(--ui-border-strong);color:var(--ui-accent-strong)}.btn-yellow{background:var(--ui-surface-2);color:var(--ui-text);border-color:var(--ui-border)}.cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem;display:grid}.card{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:0 1px 2px var(--ui-shadow-color);color:inherit;padding:1.5rem;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}.card h3{margin-top:0;font-size:.98rem}.card p,.card li{color:var(--ui-muted);font-size:.9rem;line-height:1.6}.card:hover{border-color:var(--ui-border-strong);box-shadow:0 10px 24px var(--ui-shadow-color);transform:translateY(-2px)}a.card h3{color:var(--ui-accent-strong)}.core .card:hover{border-color:var(--ui-accent)}.shot{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);box-shadow:0 8px 24px var(--ui-shadow-color);max-width:100%;margin:22px 0;padding:10px}.shot img{border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);width:100%;height:auto;display:block}.shot figcaption{color:var(--ui-muted);margin-top:10px;font-size:.85rem;font-weight:500}.shot a:hover{color:inherit;background:0 0}.shot-feature{max-width:880px}.screen-strip{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:22px;display:grid}.screen-strip .shot{margin:0 0 12px}.code-block{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-code);color:var(--ui-code-text);box-shadow:0 10px 30px var(--ui-shadow-color);margin:20px 0;position:relative;overflow:hidden}.code-label{background:var(--ui-code-bar);color:var(--ui-code-bar-text);font-family:var(--sl-font-mono);letter-spacing:.06em;text-transform:uppercase;padding:.45rem .9rem;font-size:.7rem;font-weight:600;position:absolute;top:0;left:0;right:0}.code-block pre{font-family:var(--sl-font-mono);margin:0;padding:2.2rem 18px 16px;font-size:.86rem;line-height:1.6;overflow-x:auto}.code-block code{color:inherit;font-size:inherit;background:0 0;border:0;padding:0}.table-wrap{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);box-shadow:0 1px 2px var(--ui-shadow-color);margin:18px 0;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;vertical-align:top;padding:.65rem .75rem}th{background:var(--ui-surface-2);color:var(--ui-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;font-weight:700}td{border-top:1px solid var(--ui-border)}tbody tr:nth-child(2n) td{background:var(--ui-surface-2)}td code{white-space:nowrap}.num{font-weight:700}.badge{font-family:var(--sl-font-mono);letter-spacing:.01em;border:0;border-radius:999px;padding:.05rem .5rem;font-size:.74rem;font-weight:600;display:inline-block;transform:none}.badge-ok{background:var(--ui-badge-ok-bg);color:var(--ui-badge-ok-fg)}.badge-warn{background:var(--ui-badge-warn-bg);color:var(--ui-badge-warn-fg)}.badge-err{background:var(--ui-badge-err-bg);color:var(--ui-badge-err-fg)}.badge-info{background:var(--ui-badge-info-bg);color:var(--ui-badge-info-fg)}.kbd{border:1px solid var(--ui-border);background:var(--ui-surface-2);color:var(--ui-text);box-shadow:none;font-family:var(--sl-font-mono);border-radius:5px;padding:.1em .4em;font-size:.84rem;display:inline-block}.callout{background:var(--ui-note);color:var(--ui-text);border:1px solid var(--ui-border);border-inline-start:3px solid var(--ui-accent);border-radius:8px;margin:20px 0;padding:1rem 1.25rem;font-weight:500}.callout p{margin:0}.callout-info,.callout-ok{background:var(--ui-tip)}ul,ol{padding-inline-start:1.5rem}li::marker{color:var(--ui-accent)}.step-list{counter-reset:steps;padding-left:0;list-style:none}.step-list li{counter-increment:steps;margin-top:14px;padding-left:48px;position:relative}.step-list li:before{content:counter(steps);background:var(--ui-accent-soft);width:30px;height:30px;color:var(--ui-accent-strong);box-shadow:none;font-family:var(--font-display);border-radius:999px;place-items:center;font-weight:600;display:grid;position:absolute;top:0;left:0}.flag-name{font-family:var(--sl-font-mono);font-weight:600}.footer{max-width:1200px;color:var(--ui-muted);margin:0 auto;padding:1.5rem clamp(1rem,3vw,2rem) 2.5rem;font-size:.9rem}.footer a{color:var(--ui-accent-strong);text-decoration:underline;-webkit-text-decoration-color:var(--ui-border-strong);text-decoration-color:var(--ui-border-strong)}.footer a:hover{background:var(--ui-accent-soft)}.footer-links{margin-top:6px}.file-tree{font-family:var(--sl-font-mono);white-space:pre;font-size:.9rem;overflow-x:auto}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius);flex-wrap:wrap;align-items:center;gap:.4rem;padding:.75rem 1rem;display:flex;position:static}.side-group{display:contents;margin:0!important}.sidebar ul{flex-wrap:wrap;gap:.25rem;display:flex}.group-label{margin:0 .2rem}.sidebar a,.side-link{background:var(--ui-surface-2);border-radius:999px;padding:.3rem .7rem}.sidebar a.is-active,.side-link.is-active{box-shadow:none}}@media (width<=720px){.hero{border-radius:var(--ui-radius);box-shadow:0 8px 24px var(--ui-shadow-color);grid-template-columns:1fr;padding:1.5rem}.shot,.code-block{box-shadow:0 4px 16px var(--ui-shadow-color)}th,td{padding:.5rem .55rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}} +@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ui-bg:#f3ede3;--ui-surface:#fffaf2;--ui-surface-2:#f7f0e6;--ui-text:#332820;--ui-text-soft:#5e4d3f;--ui-muted:#756455;--ui-border:#e2d5c5;--ui-border-strong:#d3c2ad;--ui-accent:#8a5b3d;--ui-accent-strong:#7a4f33;--ui-accent-soft:#efe0cf;--ui-accent-contrast:#fffaf2;--ui-badge-ok-fg:#55683f;--ui-badge-warn-fg:#7a5c17;--ui-badge-err-fg:#8a4a38;--ui-badge-info-fg:#6e4a63;--ui-code:#2d231c;--ui-code-text:#f8f1e8;--ui-code-bar:#efe2d2;--ui-code-bar-text:#5e3c27;--ui-radius-sm:3px;--ui-radius:3px;--ui-radius-lg:4px;--font-display:"DM Sans", ui-sans-serif, system-ui, sans-serif;--sl-font:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--sl-font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*{scrollbar-color:var(--ui-border-strong) var(--ui-bg);box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ui-bg);color:var(--ui-text);font-family:var(--sl-font);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-size:1rem;font-weight:400;line-height:1.75}::selection{background:var(--ui-accent-soft);color:var(--ui-accent-strong)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--ui-bg)}::-webkit-scrollbar-thumb{background:var(--ui-border-strong);border:3px solid var(--ui-bg)}::-webkit-scrollbar-thumb:hover{background:var(--ui-accent)}:focus-visible{outline:2px solid var(--ui-accent);outline-offset:3px}.skip{z-index:99;background:var(--ui-accent);color:var(--ui-accent-contrast);border-radius:var(--ui-radius-sm);font-family:var(--sl-font);padding:8px 16px;font-weight:600;position:absolute;top:0;left:-9999px}.skip:focus{left:8px}.topbar{background:var(--ui-surface);border-bottom:1px solid var(--ui-border);align-items:center;gap:16px;padding:.6rem clamp(1rem,3vw,2rem);display:flex}.brand{color:var(--ui-text);align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{width:2.1rem;height:2.1rem;display:block}.brand-name{font-family:var(--sl-font-mono);letter-spacing:-.01em;font-size:.98rem;font-weight:600}.brand-sub{color:var(--ui-muted);font-family:var(--sl-font-mono);letter-spacing:.14em;font-size:.62rem;font-weight:600}.gh-pill{border:1px solid var(--ui-border);border-radius:var(--ui-radius);height:2.15rem;color:var(--ui-text-soft);font-family:var(--sl-font-mono);background:0 0;align-items:center;gap:.4rem;margin-left:auto;padding:0 .9rem;font-size:.78rem;font-weight:500;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.gh-pill:hover{border-color:var(--ui-accent);color:var(--ui-accent-strong)}.shell{grid-template-columns:210px minmax(0,1fr);align-items:start;gap:clamp(1.5rem,3vw,2.5rem);max-width:1200px;margin:0 auto;padding:1.5rem clamp(1rem,3vw,2rem);display:grid}.sidebar{padding-block:.25rem;position:sticky;top:1.5rem}.side-home{margin-bottom:.4rem}.side-group+.side-group{margin-top:1.25rem}.group-label{color:var(--ui-muted);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .4rem;padding:0 .6rem;font-size:.66rem;font-weight:600}.sidebar ul{margin:0;padding:0;list-style:none}.sidebar a,.side-link{color:var(--ui-text-soft);border-left:2px solid #0000;padding:.38rem .6rem;font-weight:500;line-height:1.35;text-decoration:none;transition:color .12s;display:block}.sidebar a:hover,.side-link:hover{color:var(--ui-text)}.sidebar a.is-active,.side-link.is-active{border-left-color:var(--ui-accent);color:var(--ui-accent-strong);font-weight:600}main{min-width:0}.page-head{margin-bottom:26px}.kicker{color:var(--ui-muted);font-family:var(--sl-font-mono);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:.7rem;font-weight:500;display:block}h1{color:var(--ui-text);font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;margin:0 0 14px;padding:0;font-size:clamp(1.9rem,3.8vw,2.6rem);font-weight:700;line-height:1.12;display:block}.lede{max-width:46rem;color:var(--ui-text-soft);margin-block:0 10px;font-size:1.02rem;line-height:1.7;display:block}h2{border-bottom:1px solid var(--ui-border);font-family:var(--font-display);letter-spacing:-.025em;margin-block:2.5rem 1rem;padding-bottom:.5rem;font-size:clamp(1.25rem,2.3vw,1.45rem);font-weight:600;display:block}h3{font-family:var(--font-display);margin-block:1.75rem .6rem;font-size:1.08rem;font-weight:600}strong{font-weight:600}code:not(.code-block code){background:var(--ui-surface-2);color:var(--ui-text);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);font-family:var(--sl-font-mono);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:.08em .35em;font-size:.88em;font-weight:500}a{color:var(--ui-accent-strong);text-decoration:underline;-webkit-text-decoration-color:var(--ui-border-strong);text-decoration-color:var(--ui-border-strong);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--ui-accent);-webkit-text-decoration-color:var(--ui-accent);text-decoration-color:var(--ui-accent)}a.btn:hover{color:var(--ui-accent-contrast);text-decoration:none}.hero{border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(1.5rem,4vw,3rem);margin:.5rem 0 2rem;padding:clamp(1.5rem,4vw,3rem);display:grid}.hero-cta{flex-wrap:wrap;gap:.75rem;margin-top:6px;display:flex}.btn{border:1px solid var(--ui-accent);border-radius:var(--ui-radius);background:var(--ui-accent);color:var(--ui-accent-contrast);padding:.6rem 1.1rem;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s;display:inline-block}.btn:hover{background:var(--ui-accent-strong);border-color:var(--ui-accent-strong)}.btn-pink{border-color:var(--ui-border-strong);color:var(--ui-text);background:0 0}.btn-pink:hover{border-color:var(--ui-accent);color:var(--ui-accent-strong);background:0 0}.btn-yellow{border-color:var(--ui-border-strong);color:var(--ui-text);background:0 0}.cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.25rem;display:grid}.card{border:1px solid var(--ui-border);border-radius:var(--ui-radius);color:inherit;padding:1.5rem;text-decoration:none;transition:border-color .12s}.card h3{margin-top:0;font-size:.98rem}.card p,.card li{color:var(--ui-muted);font-size:.9rem;line-height:1.6}.card:hover{border-color:var(--ui-accent)}a.card h3{color:var(--ui-text)}.shot{border:1px solid var(--ui-border);border-radius:var(--ui-radius);max-width:100%;margin:22px 0;padding:10px}.shot img{border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);width:100%;height:auto;display:block}.shot figcaption{color:var(--ui-muted);margin-top:10px;font-size:.85rem;font-weight:500}.shot a:hover{color:inherit}.shot-feature{max-width:880px}.screen-strip{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start;gap:22px;display:grid}.screen-strip .shot{margin:0 0 12px}.code-block{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-code);color:var(--ui-code-text);margin:20px 0;position:relative;overflow:hidden}.code-label{background:var(--ui-code-bar);color:var(--ui-code-bar-text);font-family:var(--sl-font-mono);letter-spacing:.06em;text-transform:uppercase;padding:.45rem .9rem;font-size:.7rem;font-weight:600;position:absolute;top:0;left:0;right:0}.code-block pre{font-family:var(--sl-font-mono);margin:0;padding:2.2rem 18px 16px;font-size:.86rem;line-height:1.6;overflow-x:auto}.code-block code{color:inherit;font-size:inherit;background:0 0;border:0;padding:0}.table-wrap{border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface);margin:18px 0;overflow:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;vertical-align:top;padding:.65rem .75rem}th{color:var(--ui-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;font-weight:600}th,td{border-top:1px solid var(--ui-border)}thead th{border-top:0;border-bottom:1px solid var(--ui-border-strong);background:var(--ui-surface-2)}td code{white-space:nowrap}.num{font-family:var(--sl-font-mono);font-weight:600}.badge{border-radius:var(--ui-radius-sm);font-family:var(--sl-font-mono);white-space:nowrap;border:1px solid;padding:.02rem .45rem;font-size:.72rem;font-weight:500;display:inline-block}.badge-ok{color:var(--ui-badge-ok-fg)}.badge-warn{color:var(--ui-badge-warn-fg)}.badge-err{color:var(--ui-badge-err-fg)}.badge-info{color:var(--ui-badge-info-fg)}.kbd{border:1px solid var(--ui-border-strong);border-radius:var(--ui-radius-sm);background:var(--ui-surface);color:var(--ui-text);font-family:var(--sl-font-mono);border-bottom-width:2px;padding:.1em .4em;font-size:.84rem;display:inline-block}.callout{border-left:2px solid var(--ui-accent);color:var(--ui-text-soft);margin:20px 0;padding:.75rem 1.25rem}.callout p{margin:0}ul,ol{padding-inline-start:1.5rem}li::marker{color:var(--ui-accent)}.step-list{counter-reset:steps;padding-left:0;list-style:none}.step-list li{counter-increment:steps;margin-top:14px;padding-left:44px;position:relative}.step-list li:before{content:counter(steps, decimal-leading-zero);color:var(--ui-accent-strong);font-family:var(--sl-font-mono);font-size:.85rem;font-weight:600;line-height:1.6;position:absolute;top:2px;left:0}.flag-name{font-family:var(--sl-font-mono);font-weight:600}.footer{max-width:1200px;color:var(--ui-muted);margin:0 auto;padding:1.5rem clamp(1rem,3vw,2rem) 2.5rem;font-size:.9rem}.footer a{color:var(--ui-accent-strong);text-decoration:underline;-webkit-text-decoration-color:var(--ui-border-strong);text-decoration-color:var(--ui-border-strong)}.footer-links{margin-top:6px}.file-tree{font-family:var(--sl-font-mono);white-space:pre;font-size:.9rem;overflow-x:auto}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{border:1px solid var(--ui-border);border-radius:var(--ui-radius);flex-wrap:wrap;align-items:center;gap:.4rem;padding:.75rem 1rem;display:flex;position:static}.side-group{display:contents;margin:0!important}.sidebar ul{flex-wrap:wrap;gap:.25rem;display:flex}.group-label{margin:0 .2rem}.sidebar a,.side-link{border-left:0;padding:.3rem .7rem}}@media (width<=720px){.hero{grid-template-columns:1fr;padding:1.5rem}th,td{padding:.5rem .55rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}} diff --git a/docs/web/dist/favicon.svg b/docs/web/dist/favicon.svg index 07a976b..77edec9 100644 --- a/docs/web/dist/favicon.svg +++ b/docs/web/dist/favicon.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/docs/web/dist/img/og.png b/docs/web/dist/img/og.png index bcdb7b03801ddd2fc7b34ad97548fd92975ea76b..bb9e7d61d54f7c78db454aa9f1ef3f758f16692b 100644 GIT binary patch literal 31982 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 literal 36611 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"@context":"https://schema.org","@graph":[{"@type":"SoftwareApplication","name":"DevOpsGen","applicationCategory":"DeveloperApplication","operatingSystem":"Linux, Windows, macOS","description":"DevOpsGen generates production-ready Dockerfiles, GitHub Actions pipelines and Kubernetes manifests for Go and Node.js projects, with safe dry-run plans, automatic backups and config validation.","keywords":"DevOpsGen, dockerfile generator, github actions generator, kubernetes manifests, go, nodejs, scaffolding, ci cd","url":"https://devopsgen.bangkah.tech/","image":["https://devopsgen.bangkah.tech/img/og.png","https://devopsgen.bangkah.tech/img/og.png"],"logo":{"@type":"ImageObject","url":"https://devopsgen.bangkah.tech/logo.svg"},"author":{"@type":"Person","name":"Bangkah","url":"https://github.com/Bangkahdev"},"downloadUrl":"https://github.com/Bangkahdev/DevOpsGen/releases","license":"https://github.com/Bangkahdev/DevOpsGen#readme","offers":{"@type":"Offer","price":"0","priceCurrency":"USD"}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://devopsgen.bangkah.tech/"}]}]} -
DevOpsGenDOCSGitHub

docker · github actions · kubernetes

DevOps scaffolding,
deterministically.

DevOpsGen reads your Go or Node.js project and writes a complete, opinionated DevOps baseline: hardened Dockerfile, GitHub Actions pipeline and ready-to-apply Kubernetes manifests — with dry-run plans, automatic backups and config validation built in.

DevOpsGen interactive wizard running in a Windows terminal, asking for the project stack
The interactive wizard — press Enter to accept smart defaults.

Why DevOpsGen

Deterministic

Same inputs, same bytes — every run. Machine-friendly for code review: a second generation with --force produces bit-identical files.

Safe by default

Existing files are never overwritten without --force. Overwrites get .bak backups, failed runs roll back automatically, and --dry-run prints the full plan first.

Validated output

Built-in validation checks Dockerfile structure, GitHub Actions workflow wiring and Kubernetes manifests (selector consistency, port ranges, Ingress paths) before anything ships.

Stack aware

Detects Go and Node.js projects (npm, pnpm, Express, Next.js, Vite, NestJS) from go.mod / package.json and tailors templates accordingly.

Everything a project needs on day one

One init command writes the whole baseline tree. Preview the real terminal output of every command below — all screenshots are live captures, not mockups.

generated in one command
$ devopsgen init --stack go --ci github-actions --registry ghcr --image you/myapp --port 8080
+
DevOpsGenDOCSGitHub

docker · github actions · kubernetes

DevOps scaffolding,
deterministically.

DevOpsGen reads your Go or Node.js project and writes a complete, opinionated DevOps baseline: hardened Dockerfile, GitHub Actions pipeline and ready-to-apply Kubernetes manifests — with dry-run plans, automatic backups and config validation built in.

DevOpsGen interactive wizard running in a Windows terminal, asking for the project stack
The interactive wizard — press Enter to accept smart defaults.

Why DevOpsGen

Deterministic

Same inputs, same bytes — every run. Machine-friendly for code review: a second generation with --force produces bit-identical files.

Safe by default

Existing files are never overwritten without --force. Overwrites get .bak backups, failed runs roll back automatically, and --dry-run prints the full plan first.

Validated output

Built-in validation checks Dockerfile structure, GitHub Actions workflow wiring and Kubernetes manifests (selector consistency, port ranges, Ingress paths) before anything ships.

Stack aware

Detects Go and Node.js projects (npm, pnpm, Express, Next.js, Vite, NestJS) from go.mod / package.json and tailors templates accordingly.

Everything a project needs on day one

One init command writes the whole baseline tree. Preview the real terminal output of every command below — all screenshots are live captures, not mockups.

generated in one command
$ devopsgen init --stack go --ci github-actions --registry ghcr --image you/myapp --port 8080
 created 5 file(s), replaced 0 file(s) in .
 exit code: 0
Terminal showing a successful DevOpsGen init run creating five files with exit code 0
init — first run creates the complete baseline and exits 0.
Terminal showing a DevOpsGen dry-run plan listing five create entries with exit code 0
--dry-run on a fresh project prints the pure create plan and exits 0.
Terminal showing a DevOpsGen dry-run force plan where every file would be replaced, exit code 0
--dry-run --force previews the full replace plan — still nothing written.

What gets generated

Template setFilesPurpose
docker (+ .dockerignore)DockerfileHardened multi-stage build (Go runs as USER 1000:1000 on a scratch base). For Node.js, RUN steps and install/prune commands follow the detected package manager (npm / pnpm) and lockfile. The generated .dockerignore keeps state, tool caches and env files out of the image.
github-actions.github/workflows/ci.ymlRuns your tests when a test command is configured, then builds and pushes the image with both the commit SHA tag and your alias tag, authenticating to the chosen registry via secrets.
kubernetesdeployment.yaml, service.yaml, optional ingress.yamlDNS 1035-safe resource names, container port wiring, resource requests and limits, health probes when --health-path is given, and an optional host-based Ingress (RFC 1123 hostname).

Explore the docs

Command cheatsheet

Terminal showing the full devopsgen help output listing all commands
devopsgen --help — all commands at a glance.
Terminal showing the devopsgen list output with available stacks, app types and registries
devopsgen list — supported stacks, app types and registries.
Terminal showing the devopsgen version output
devopsgen version.
diff --git a/docs/web/dist/logo.svg b/docs/web/dist/logo.svg index 3e42dd3..77edec9 100644 --- a/docs/web/dist/logo.svg +++ b/docs/web/dist/logo.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/docs/web/public/apple-touch-icon.png b/docs/web/public/apple-touch-icon.png index 8fc895e7c2eecb2ebdd5d5c9e0ed0ec7c5095d7f..0419df13aa6d93c12c071e80f2d68f11226ea01c 100644 GIT binary patch literal 1401 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 BaCZOz diff --git a/docs/web/public/favicon.svg b/docs/web/public/favicon.svg index 07a976b..77edec9 100644 --- a/docs/web/public/favicon.svg +++ b/docs/web/public/favicon.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/docs/web/public/img/og.png b/docs/web/public/img/og.png index bcdb7b03801ddd2fc7b34ad97548fd92975ea76b..bb9e7d61d54f7c78db454aa9f1ef3f758f16692b 100644 GIT binary patch literal 31982 zcmeFZc{tSj|35sIkfo>)LZwa{36X6GMICh{*=DSXkujE>5yqgz5i+e~DWlS28HUD; zbx@HCBQY~(#ukZ;vBb>C7=CX~=X*Zi-*sQt{rls0-Pe8Hzx$7K=FHo?-|y$^`FgI8 z*W-C^p8LZ=K~`NB1Oh3XK6TW=Tg7fG1S zSsM_j5+k?lzXABZG2)bG6bQ8G?b<(LZQ(_iK%n^K(k1Bt8*UIr; z!^Nc6Y354riyk|7tLp`x*>Ups$oM^3CyrlF%e{W2dE3s-&s}8FW#sqLK_}B~_D61e zqUikbK>Onp`}bP4dYt^3(KOIIez)tGNc3o$6bGI{)6K?tZ%e1mP-V1Icfz1>Fk#4t zvYN5FkhogvJ72I;kjNVcBm@nouVk#w{N=v(-w`Lpb=N)*pG{hmzWMn^V7VYr%~3Ix zwa@I|n#F;S;m?vDYhS(cKytuGlH*oCG2k=e^8bJH|BDp{Z~d!LVBv#qMOhW(KNW>M zT-(afUCj`sT^$ahhJv?$bSIF`u5Bb)(XUL=Pg7@ov$MARpY)~XY7*~z;;_InhI`;| zt9IB};nr`|y!3(~%yVD;30vWo3IH8yg`!H>OukHhWspz=wR6F)ILn1jKP8XVA5ToctY8h{aT9ZkXZtCXU{9p+O0Abvt@e*k{wq(l zY{l-(r8esySG6Qv9WSoFRJpkB$w`Hh9*4q|{Zg_O|MP;HUy4lO$Xv7f1-+Y!oMZ9J zgqU-5<^Q-t(=Wy2F&du6ySKWa4ZiuGE5U#c0V05h=E^o-FWKv~t7Xf2Fj!aHq2^!e zcpUN}aq)XW49_C5XP@Q%@q_=0D%e!=`SqYRykCr-en`^eOL3~lzZXg+J^Y>0czts9a%*vLU3=wQ{6y5D zg^h$2!s>j1rA!evp6x4i-2Acj*uOijERL5Uth{wvZAnfF`Jnu!bmxB)KufG&-G?%B zXmI}Vqqg1u{;31RSzC&)sH15$d$V}SUf-X4XA;g)1OC;irCSndUqjrC>T<61n5D_T zuMCj%Ks6$cWEGEjUHjKe2F2)6vV`mZUciabSNX98yq%9ATQJ)bmb4eafaqKPeGWw& z?-5Uty5P9GAszWD#LWHQFi_)=L^5tz+H5V_>hgsKP3U%Lh--sdPgYbX^md`o@pb=w zN|^*cTnJD6ZgZTp=S}I*&xclDY|Ow-E7_uDci$gb80)EO%9xJ!eei$y1YqyjFRqH~ z=F@cz@S8GmeA$r6;+oAN{#iuKre7A!RP#{s5v5{Ql{aVk{w*U;0@y^Tl!w1w3roXi z!@4xHJ7fU=HE&+Z@m+}WMXz2>9JYy2UYWxz=esv86()X34hZ_&(8rGhZbcV!n@I6+ zc>8O^)}M%y^w?#KPn?w)5}G$Gp%OWX);s>&(+@SvDnUdKnr6ocZ}D{qO!e|pObjmz z(29S!s7S<9`qv|jn&YzmwNi0Buxo%}t;dl6bG~RV4bH@9zNv7k@UxD{W?x zx5`aMfM!3h8QTAy5H+qzyrHJC?8c=AYkn5vn(NX#ePO?U5)Yp6)1h%w&6NVhHU~3q zLctQ->dP$zDRVZrfd7F|-If67{d}|fQ_!?j7B0$>4y>|auP#1Zt#?nHld~GV74USq zE^)~&eD!QN>sUh8C?|m%%inKdg@8tdq61i>)6}!(}PA(`>sJu87Pr)6#w6iz$D3o(gj9&ByMe$HF5my%;Z1)_e z?iU!ra9O{;LJ9?y+pMKEiE5b&!$&uF?tlAI=Kd9_-u*{HU|wUH_;|{Ib$c=Kpv_iW4-N83(ZzQz^}g@p?3?cgR&%$GhYP~(>iKzv zR%+)-;|Px0D+-$d&j-cCuWzQQMf1mq7suLRRZ?z}*2X7(SNl{&IO(yKK#SNf@z|u} z1G?}LBpRB4IzuO7wXeKzolzg*4eFp>g=xM6ba?$EH0_Xucv+tcMxXw}4t>J#Z386n zAAL|aRbb!bIww8wZ@&w1lQQ6*DO#kYT08PKQq0HTlmL77WI(#o3!2(R*_fYWQ_t(VKI`0iQavF&pY%ZN z9Qr6B{l|~Uw{^d{ThX@%mZ3Qp)7m5ggu(XiKq8FE`}O>`65J&vI@J}v&F_}hoE(x{itm|#%$uVa8gYyrHXc6VwCR2SuCf%wIRJ%7aO531 z!DF?kFIz!f4}ZD+<^l8OkDe~bPP|Oj74P!8Sqo6t-{vmqvGzB0uvFhxZiXq8W^w;p%0>XRyST0&|ICkql6XPTz<6Q=~L)6(ql zUDU1Pa*-=_nl+k#+a3@yW?w9QX%fA5_Z7POE=_Wq#*@02^qvg64Eb*%;xYG|L#_K5g zH_yYMtviK8D^Y$1@#ID5l#6d7P_N=N#8e*HC2hER;cbZ)Ah}nYt2lnPG~t7OOaS?` zWma!kJELhzZgnbol-^QnxD1i4oj#e=8l}^GJxZoxI4i`11{6$5oSO4V%DW$@b9s@? z(R^2MkbTGJkA_dDWZEaKU>Q*@yegx1!!&3;Hb;-HmCcFgP3FU|(>@VsRw{1QDZvFx zX+e*oF4G~?TdmvV>-ck@V$gqLT*AS`{Q+F(+QCR#5uy;st&FrDsdM1G3_P;6?IfFF zk}hP|?{lcS#_2GAu7gCtOv%`3|ADKg!73A50j8VgKB`USwC;2XY!ita| zH4|CPAUpEpDG3i=Q_uTF^YM*^Vsu=cY{iPPIsNt?=?3ICCxsgq zcMi(!p!X&PJE_50oU|iPzz!NudEz(aJtyT~$P{C>3cVl`^<_>9Tvjv!w!75;QPf=u z4{Kkt*Bs^TFI14_L;`CrU`ObFOpC+wFy!(%SgJ{3_#`};K)yAyM0Da$LXz{NRlKMw z@+9xBqr&&!bCI2Bl;Fv}E{dCjUoJ>)x+v8Zyk_!QKucoqzC5Ew5VTz7Zloeh(&cTZPE=Gxi)txhaM(~ULTzwilE`25_i>zg#03}e5QOKdIl2gq z54oo)kBjw)s&$u|8Eh3~7uWbxsNEAEYftlWPkYgGb7DD^50pWsfBom{+hi;3cb_WS zWviS#xn$bc5$S3%OfYK9dJmsUk>T>q`?@NE7joR+FVW%NvYCe4r)aPXKH&xGL0>t> z4Zk}+aVFbLZRM#y=w@m71nI0)9aF@XJtoo>MxXiG#QX38C z54J;Pd9T3sMvN;`?m%nOkhK(t>JJv4(#WBiyoa-m0uHzDNb%BvzwRhoisBsD;Ndu9 z?U(-u1Fx`Ih`#$;c2|X%%z^}ma2!$f8qS;lT>J=9s*pb zxqBN_b|cI4ceUMm8>|rCg;Vmp$)$^wXhd}&c(lu;VX{n5g>i@DP1<#FxnWy;AbMow zq#9KG{i7$@+-@xmv<{Um_nj)A!jF>`bMtnZ#?I)+09CzZUeizBOf2t-Ad!~LC?Ni` zm$=`P9wd+MrKmaa7Q4?B5@{Pgvgh?TC?GzWygFKV@X|RfW-FabW7VB6j4l(p7Lswb z1(Z*SZ#B`80yoKng{aRZZF&Qx6)&v`9}F42QCh`tJ=8NT1|(#tPXE)s<`L)RPt}Q{ zQvKMrwkCeQuPBzVGTO8mvHHsBoKbAxL82cgf!nN4EK& zPc?+w*ijQo80v^)M)iADqc#`L7N-YH%2zI;zgv-nVP=O;@&4iVaP^4;W{bHU*@wnxA284eKT>b!UmE6M|O} zS|F-&U!C4(z3ewM{^Fl-f|B;I)D~>oXP5-I2vh26p`!HgM@f%*}y{(+tg5#IjzUbQ}`B^!@7(<22cDVG9OD;p)f#RBc?s&BUxGbHM_cij`>rdYn_& zR{J!Iw23shy7F?BnQYkio6xa}Q`8hcIkQwosBTS&#FY0>uP(GD%pzAOydC)kHCY8q zFl+vBAL?e5!>Tu2;5Mx~!!ex>kMChn8m|f(vhY{QGcNHMtCw9lHQL>q?HP9&N}^|4 z?ejaEFA{)-#5NAfKfO;(l=NtJ+0#4{Mt@VfO-KtM?3UVZP*En4W7O(bgcHac$XJ{g z6uHa)4zGoFq{i%;gkY@go$=?Wu&JCIh)z>-? zejFZjDCi41h?Lt`FXyoHCn3rH9HK(`V4z&7o-lb^uIA1vMO zr>*v$@dMj`(d}L6@rbWhEmP0RB!-M(n=%EG9+78>h+|ub7s4W)?CxufF`{tAjqEQS*oQ#qz8SH(yQ zv5$BB5}-e=C6P-^PBVtd?{|^Ug#U!ytaywIe}}#OWh&P}=}m7`<`h_f<*;?6=ni&| z%f#r|+$i|&N2ZX~Nvx;==~ndF+-Q+GIx*g<$4;1moq@xXlnaz#DL1E7CUClerP@X?%=@v znRywpu_A0PH_=|EZS+^8U-MAr>B^F7;=APAA@3-vSDVHk*O(hVJ|lQUtAr)h1`a3u zsaZmw>PRn3rlL~azn_vhy4A9!c@;~9^A{dY4$kx#N#Ie94%t(phFX{iv+#fk;;4La zH75?u0@__i3#JciDd5FuncAygW@69L_4=>uGzyqWG8{mi)1Fi}gp+#>RKAwC%@`Qn zKHDulIj4hB@_A0d?C+HH5XkJ$!hh#&pXni9PlHM&L%Ba2m_Js)?ewmkqw|dzlbSJ9 zjFU!`-mjV$bCL6O`n!YmqTc3@<}Npskh78D4pJ6SX`a&g7Qedu4_gCI1Ru449zbkF z+kz7=g`aZilrn^NUH!9iypS(H1rx`k(yZJ#Ch&IMMn$2+>}Sr)?p2)$nQjvU34;5I zniw5;^C0SI(B5}&B0BB^z3bu21+}d~z0Zvz7FqzPq?$o;DHe$Z z`=5}1bMc6qbhX+3ESo6#G?+9TDt*6<=_y$`)KM54>CNlAQ^p&7rA1RqZi0M!k8NcW z4DSVf^C44ZDt6}t3*&otvBJm&FZHd^DMq7{?gh0g z7)eZ51sVtnlbiHxdP3PP3DCEBw~fwE4qLIpy72dPiS+OfcR+`hy3Rk|&V994X3%_8 zFLa}I^}+{K4yDNv;ngV>=b*)uCl+jQ|CzZFWyOFxBFKRz0|2^&{6~g5nWv5OrPebx zr%2z>GfQ7xRIko}4XZA-gN$f~aeOHcqQt14MEg-;(P#S3KyoL>GDIcJd9`fUr>V^Q z6@hNQ=jmC5mZ9<#ej}%%pp#nDv~a4425WG#@)M;%?=l}pUAQx;GSeNgr#bIu=FpZ# zT0pG%FH1Z;YB#f5BE5^28MCbtOQO+js2$BOUSfNQu-j%9X{`Agw;auwzx0wB%(%av z=PEjqJMQ*f@r6mx`*R*!bWlr9Lv1m+6@_^UgwI&d@amio+xZRIVVB8g$yHH#Xw38h zi;hNj0$+{DBZ3h>b&J}vLJ!=7uNBS!s8(~Il2P9lNy6&|tqQC|H_Dbk+`4c!f{x7l zg+%8dZ8^63QQD{j|Hg6u=wZs3QUP=4?)Cx0;V?w*P15rflsF#DIHK_b!JX$V-YG<{ zgc@-hNqP_x9#@7Le*SVvjkvFwrGB)t>TDmIZ)vsG>?DIS+Hbar!;c$}z8{%JKCZmf zbv&Uxmb}Ri20OgN+abi{3{!m;;n`KBWf2g4t|1Vxyyp3d$4C=NSt4enQ}RGrnZ(kc zr6?%I`xP>pq1Ra@qze+^znx7t8GP01G)Cck7}8>TOHZOVE}e?5kMRV{gM&G-@BMySNMp~4Qy z1JL%VT&|J7<0+G^y;UP|)%`=z+{*$TbkGZLe*C5m{%dexb&#+fYm%pDG?hPQ7Ulc4 zoBw6*mxX!J2U`bp7Fn-qgj2&h9n=W5;xS&R+M^Was)*2rFs{e;VjY;DJDM$8LQCSN z?lRRhp;F~g`U~?dE6APrj=9;+ML-cj!6CFmB+Dgo-|iH1r7c~cvm zalqO`laOEM+H!^J{3`GoQo4o~M8=|2uNEj&2EDzfm;B-mBxrrrIzhY|a7eBWuf~{Y zWcdc0do;3Zat;iY!d91X?lL(!TnnPaH1l}qX}zdR?X~2Nys4Xhho?t91u%N(V+iJ< zfd)S8JLmg>#CIKlgUsaPn1UW0d3+5+S;J#-H=u{7tt?F0hK{gjSSAs<(-qTn9nz*o z%Dlt$JWIrE4$F@b@Gkhb%Ed_LHfx?m}<(<6>UbxrrUO4GK}0{w6q)woQv$VGM6jeXInXOtUA7< z0!Q38Ss57J7Yd#Fe$Po{WS`W!2H~wQY~5ubkiymh&dz|ZnXeu6h_LqKA<+@h;Ut_< z5bR7!Zjyg=Di!;9XNQy_?1uH__J9mtAC4&|P-7fn`#_h_dHKjHhhA9MnIdB%GV5{l zi-Pd)8mRK|VnCVnM5k3p;>=5%YGhZlcIKbp4ajpzyNeIgOE}i>a;} zRrYF1_MKz|OP!vohn~TOfE|K3P1UO@z;5P>(u7<5=C(8lqgKBD0%U;m7pPX~=*r*< z)M}0=l0j-TTmm*bGv-D_*Ho$Y5}%NG&Mi-~|B>-xQ6N85?G&PT6-8eR(@>!o}N|_E5S!oV(oLE7gcZcWe@QfKU?rPYP_GQg_uMHQafAvYOKfhVSZoAG$Nje(@f;e>^U< zYbr^Y3C}?g^hAyOf>b+w7(S?=saqYXcvu>eJ^2%c_>L018Z!zauQ)6Xg*I7?&M0dA z1m83isuKjj1%nYmCbyZ;gf6U_#XnmbF~d*ad5Cq$HY+a6D06ARjYw3$ zq(}G7Px!@678nqDL+68xg$d^Wh$86`irfR>rS3?w>kYScJdC0jBuO6~J^+M>%azft z3NPp_0jZUJD7{ixd)!f&yj4gp5D(4^wm%wRV^QZZ3PdAlkjne%T!l;2(0QiVk0~=) zyM@k$lEAD-k>v-cBX4*Thjy58CSb3p)DaG?NbQY;H!iE0wGJZKkduQ@0ppO=>MX8H z2G9f&kuXWt8GGXjLrK?Mob=PSZ}6y=C(tKzCrS2x9?7MXQ+0#v{ml?r z!ueEew>_eUMP^U*#ZbtBrPG@Qzcr7XPgwq|>2DXQ2p)}psIQ~16= zASeH{GHWy_=%A)%a94Sya+YM^W%5v{*%06(!AYb*vJ05+GlH(%_a3se<=UOxBm3Ew zAG_MLQ3cN3n8LyCcS?|fA0qEA@RfG+slCl303LcJ^<4PbC;GxS))tRw_xYB#+sD(d zumi5Rxu$MJesd2_#uQz(&^Q1bdZBm|>nnOX?HSDmfI0G2NdsQZCu&~^tgsbHdhJF) zM=SfAoE#&v$HU3^?M2p}bexMGe&Pi0C+n$BX2H z?K5s-r~|3G6o(Bup&!&v!C#L&0FIF;)481VQFfby%R+`v3=J2xZO0pBnTnV{D}!i* ztt?pM<%mw8a_9|!b*5hO=Nu3DcIR0H?e*OI&~x`ON>rM7>Fa*dzbMj+a@Eb!`_@fhqcVcYPj3@*;_DsYk(%L`T-> z$oL@3)^S?d?KeGv4^*4OiXS93<)S3-5>3$d?uK< z;522ibqmfw=ODiG8PEt~OLF1AL#Me@NvQCOszAQ0sm=wMwx9XB1>mB5hlh;<5r(MV#K$cP)x2w(L9 zHh=CdS>9j89dP3AmZ@U(Go5|)9>TlkpSCm2-{3(*tJoM(EqL+?`|iB%TUx64r61{x2O- z1mHbfBQGFb+=u(n9EkS*$64xrq%YLFkik2{FY-y-7&+rLG_f7>wJ=n)vT9ZhXd`c8o8q=H$TN# zqvQfg>O4`R=ufxXQE;MBY>+gAw5$`ak+VEgo4ae_?;!c9)qo?q-U<9O7uPI4!%kqYz@6F2={Y7Xmf07E74 z-MhyQRMUR2J{4*aUsy#mq%<8FWOpe&rS#s%d#GUZ@eZ9EYR!7wC?wB^dbp^7Ym}G5 zu=>qI=;V~@8Qb9!=7N(JQ@JWw2MB>28E@yW$I*qtdhrS;$W|tOETh|b3ULsnqoJBN z+ztA&9v}W#N1M7+cJ2LpCP%Jw6Qr~THxZ6tw}~>WNYz836bxW8Tl`M?=AgeCaldn( zV3qvocZT<|65H{WU^uu_>VQ9Ye$2p<)|JDI9%8G$of3Xe7d!xvX6)AhPs-y1fl0>1 z#pwFPaBMdObcY?(^&lik`IT06PVBvLsBAzSi+PIDc8qZvW3C(2r~+%+3U@<~yC)6;slQV=$oue8m);oEK9!*;Q4)Q8iv($VFhcJo z%i?yP<_TAW{h6Sh<N z>ExzG2f7Nw2hvkg{fA5VE-ubTQJGH1PHHmbDr_wZzjr8>Dg@iJS_h!q>L0ulXw(;~ zi=k}A8&+W{TwuKr^pciT_42A!&Av70P3(fgi=dW^T!Ad%bD1>EhzQP-e@4wKt7^Lw zM=(=AOf83!+d9CM2b3=@Kn`>xmor^yKc>IGubu+ag+^8kYTRZ^y73M0uSC83%?+6i zlOtTEJqvFh&BmFDtzlkbmD(is(BgDKge=;e}d$9 z+diFON!ht1Y~0)tk+(TQWSd?_wmqESbp7&!A$ zi+soAO?y71xN*I|E~iZ#g9~CxYZ57qRSaNF@=BBWN_C`3v#`By#)%T2WG+_oN1Dg{^}Yd8a?w91BJcIH)y{^*p8n@PZ_j|>ROGbzV|>+9N&s59w>1- zQM8S_g$q1n%h<^RD~lRgXpoXUctqryua=N6@{DTzmG568TFl)IdP)vwHIe&FXRiRF z9G%lk){a|s2giugFAm?A_~rvrCX6xYGisLxTzd7Tk_{$4+C)-t+mgrn_whFy$kewE zub5?+K;bi?9GzsICx8)5^i+o5*aGKeiJlH(fFiu?=`Ee3aCYp4@m@YRW@hl!G_*0z zk5l;6c_vs0zV=x(~K+DPRQ1I9F)?uf`rqXLpp> zD#x?6|JwsaCyrlWBfqYlqga_Hl zK8z+GSw9p90GSy7pyW+rbhE~Vfy5;ncKOZl!^;{&3rK>t%@p{X>NVHU40KS_SVbUT zx#PdB0}+d#@p<|O33q&rk-~Lm#>bpJC!<90_ zCGm*Fmiob;2MF!Pqq5Xpzo;n9IvEw;wU>tlluZf&^b0r6JxO&blWDwI&}W^MF$%A3 zjuh90`0`T{`Lx89+(hBzU#om+Ur~wg4>_&S@v)x)O{-U%rnj#1HT*Op{$^ImR0N+q zcV~A^5j!?^cSq*R?CGZI0PRo->KYMvjr^x)R1r)ORmYELh@ON=Pyxcw`sE{AFba9M zqy=ky(zTy`+G;fWBl2^dLXE;YLqw)xagAK^klvWLQSTyZhw3f|t<^5;WdU$nRvo{< zA>I8!>VK)FEu^eL9?4N{Gi!Vfa9@)$hJ@xEYnZV?L!G0+hfgrMmCoZif!lb+!f9nj z!I*xThVpn8+KSUN^wSTT#)uLXZ$oN6P-8Uw$z{^J6OhoZ(Ac>st2p(iw?=W}Q)M+& zGBwh>HeAoBRpb%!Hb+Ti45sldc7)`UDCarUrxi#~I8wLy=k`FafMqRi_h9z^@s5?Z z?Q2BIwS^g ztB5Z~x*na~`os|obZ!Kb<;$>){MvJ|xbO=F4b(*jyHpqjDCsgspCVWhW!z-Sa7F41=jh(rd_9$rdU~@iYtLJ1 zG<4=s#RI?@);OS5_Sftl2rrq^w6dR^Xr#+kU@w^&2VaK0=?%bU$*H9+kWT_kldilJ zl1cmiYTA4mIH8YDvicDn1k`om8ZvtWm_^ki+0u*40vS zBUiT&4_63#1Cdd-=hj6}g(f|)p+a)9$4KMt97NY00&O(v+j)i5E34fs=##_md}-v3 zaE5hAlQXK?o*@GT{C;kKwyINZ|QiYHnjBnkT%h?s&Wt;vqn7DdcPLM(Gpk|5_67 zdJ(Q4=9FX%c@}>m`s47Sps8NwF{PLVx^W1{8Mf4KM>YIt@_q<@>aO7lPoP_qcvRQ5 zKk2j?yNnD!#Hrr4^Le3|TM>pkHdAO$<^+(4v**b++$ev&=8smc?C@Sp&mH6X$7`&6 zfWw#Jrk^%hY;$s^rn|XGHU3$&+aC(*hL0w|an--A(Iu+yk7rfvwR_e*^@9I!A;fem z>tsLNLN~>i+d*QLm+56N1=9gDJAOjIR#lvPV-#Omb(9GI;ENCN!UN3^h-G3g#zo4P z68%>hkgq^Tb~ZmHsVF{Ezp#*{p|EUpD(&%8@3w;yIgscO7^8*k(`@wFDq7{W6Dm|v zrE;)mqO!4&b#Cv9*TaGPyUqh_&T|=XDhRLo^83AA!ZUa)cLkWmau*dzwT+K$#(o})hQrAuZ0SFJ6%fLF=Xd$ z!pz1BRZ0JzwhjE_lvtSqmeK3<@3l7 zFl>VdVpheT*z@@_x`RVNAFdK}ce>BE5S(dxh%oZ_6=&(~CPt>4jTPTBfCF!UYj2X4 zHoPn7;K{ywHg*aSmf}Iauk4<T+jS+j-C(BdnHAn%d1z2VqmXow&F&Oftsc;e=1dW4VeL* z`Q5cp>epOlf7kjW==z<)2Vd1MRByUnvQ#r#_SQ&D1ps&d4oQ~E++!OLdqTP{}S)k(s6ZeXt||ybNncyVd-htN+H2&zQ^h( z34mUQ8c|J!EA*?B)muLjm$g?vC3B%IbFc>+nhk#)N7`Lc1aEoL%s~IF_uV|0IN7%P zC3&%!Ned2~uQxrz)ezXUIkFJMLaI zzx#7x5>c2xh7-f8d4R@$o$8wIk^WE!Dpi)?nkd#?NppQ$S_E%!6TnGNY>#Z^M4s@g z+cq6KFrzDwuK<~1{w^n5cbTQ(Hdfdwr0zaZB=mZHHIeO`P?!b1PLBTO*wF`(qnP?? zY@;Die2WZ_-0)=}xUL-_n_dFwBNx9+nS3o~YeS(;GVDpd@ti3O7yV@i@pbQ10t}F8 zom##|pZ;q~A%taISWdQgf>u+$9M?*0O`5KK2sGG&|LLjWNwiJP*;?HhqKha=8^r!? zn8nsJ#dV3oiJ=bl3q#9|g2u{3t7!)A<+L@tSc|e#hhXHp*+6)RpC2o4pw${m*vru- zXeyXy-Pc57)Gi~HR!O5#{>%Kx9>uW*EenLO=Ppwe@^jY`w4V{D=iF8VCs>o?1n50v zhDo^aEhLE)T|USkG|QfLrde1`K9c)Nps5X){OU+HeGvOj2e!~e{92t})viyc@+q`( z8`8GS6dCc!M($kXN?ZrN$Q|p#evvB8y*L6^;`b`*(u`Z$u*boS}S+fjP+x(?sIob&V9c7`Ngz`Hyt!2M zq&e7TG1}yums7pdebsTQ+7YPcf%;VUxiy|-xjyU3)p)I~Y&J^6x+`AnIJ*(a#)(*s zIW}j=CzsWD!5r7Oq`{x|Vt;T2h~pZJ0ybOiCgl~KN(<`}?jVeT(>Wziya}r*&p~gOv;zJrEZ#oHIhwchjzCY8+C*n zIa2qoE*vo$P4*aw?!EJh9Z-mHc-?lYs%;`Cn(l>Q90k-hb*x9#F29V)Y2pp78M!bi_6(^2~FeK2zv8`H^!zs2so&*10dYciawBFnhDVIRqAxc|G%!)y2MP zM(U128>B`ODOo_ewyNU!2au_vI`G5?TxS6S7OS@biP~|XoY`FRkW_*;meCTzRUAIXx_2qT=#-mx-Z|4t@gBkzctmRT1)^S z*TBlBH&*=U<101t?>r;fglYKE<_Tqi4~!f_-hbZo3f0yLDPcou&gqd(Yly!yZfzv` z_vC>C3u@0@mE7a(Q{|o@^tG_i?+thZ0hT{>z8+H*NGCC|(?WU_NmN?B`nfiUT>VPB zS1k!T!-M3D0ZQjBqd$iO9DeP^n}Q~{YA`Yq;k#^HF!zr4+Fn@MkILknL0TsSAqva$U{_+7c5DUrjGEM-a4D$(IL-p}%@=>Rmz#O7 zTm1rbfodIh=7_d_C@kT5bZ5aJ-?Ol7cUNNiaR=Y#H-BpAIjb6k%rf z_+(fCAPzKaBW{wcC*;;*p9k>6IG%FJ^ff^N)6&leama?VMTDWAD20k2JCr8l`w7b_ zo5`5a{A;w2@J3kkz46RkXC#|>@tZ5T^Sq2qe<~=$?#gkN+-+>8N{Dq-{-bVNE` zco3^M#m4JPvdw411q7paCBf}Wx5AN9EFYu5a0=NC)r4)NL^#e~s75fuoqR*v`?q)< zMgYu$H|O%+-?6E!sBvf8Uj%CEhA#<91j)5wS!ESoH5ZBd%B5hj?1-rAQNI$m7Da8QQ+FxIjs-&ECxR0xkSrqF< zImKKcU2~PxQ#;bz$}TlY%b}1zB|Pk(SYplkm1z}{-UNkiJV1sVwD84vMi<_$fa#t4 zojXOTLpYil3CC)K$^*GRdL&Qb#3ZCCT)=$*B#~ThnR5~{8gPtB0||Ug{2>Paw1J-% zx*ZbQWt?#_=+vfHc9uRoiv%GQ7*$!SvR)(~Q+Y!T*uC8YQel4mu16a%g4F`Cp~O)w z-LkQ^H^E4SZYiYmJo!=Gs*=+IV8o( zs;o;4s0<=cZ8`!m4L3uw=^~b=zawLdphO`qZ5MMB-Uz!s;K-p8+)Qv1 z@>x0J@v-w5vk_ppd4H06E;s=`P%Y`uviKWbEx-dt4X zutVG5MdOc_E`;}ag@+L1=8y2;_OhWCM*Tb8edPp&_@`)AMHnLbOjq|SHb0G%7QjN` zL{AmKEVVOF6!=fUQEp!B!@LIn-*Q;5d^H+dY74*Dz1-?<=O*Bg^zQgTfu7QE$ z3oX?v-+s4XA55Umw-)en+~}l6t5?O&EyV#u7T`h`^h<1 z{%c@rI=1O4_==P(Mca`mMa+VVKhr&ybvc=8>aI-u!VN9ni*kI7f+y%U^Fb`pGqSTI<8I>4HsmH^>&z@j<*+Mhs{ z!3^tNmPn5ag@y^2ScT`fy18|T4^wsLjfBs1kev*aSZkL~bg4~F^U{g+eZNGq~jKMn|JlgCNvufy|Oi6`ab*}S6j4J!U^`;Qmf z55<`t3d(DF+(fPV2+u@N+TO**eX(h9gP~3WMaKe)yS42d9D2PDXY?^^sSR1hEkLLU z2#la^_sLkcXAJyx4~t(WeBOXnH~mJ!^GXNNGdHi;i*~_|m8ICg$06)Nh+M@RHKbHc z2|!{uds}oYBlzqlDm+Hne%D#44TYZG@Ug5+s(a_uJw6?&7o1bZQ5*5%E;&Lao_e}( zu6U(jZ`6%_^Zq`&`bJW$ceg4lHwFcC5+G|}l>RDtuVvEsQ?3B+uigBhADCwo<9{x6 z(LqV|z=<~?l-$EgM^8NNJ^aR-761WsM?reaxdQF$dk}0}i6)W<%#jp0W6r|aC{`QP z#p-jdaYtNcf&`E>0X%weU zrNq)+vD?RSAUZXBn;${}XImcY+J(&UOl^(@W>$a!MW4LrNvP~VVgMr+m0pd9$Hr=6}Ox0zYgErUFKi!$1M*mZbibHrXCkF&1*d1HscM5h>XSxsWdd7|>zjStLyb1+n+ zqRpv}m`R1t^T5%j0L-t(49abJ&p8tcF_>$DyS2;TakCc4bY z$+cj2H?oPPc$BqAdk$*8N>|jSu1&}c*>1Onc|w6bK^f2IJK{$Nw2Ui) zJEfvg2!#slB&&qTWjXB1UYHKlKaP)Udu}2Lmngo&ucY4rUIrF~D!Q^u$a^dP_(vIS z5;{5Qo&dgb{X3^|d4K@(|4FwQK7h&u9clrYi9d}-;AB!Rx_u0;zzJy#Sj$dJsXm?t zYjV}9*U0#3YiNN?cAVJ9{cB>?(Vf{?B68sA)w5<2MbjuUFl&?&ygFFz zK_$D;QAZC|rW?*{?CfC)OZLIksJLS%nnDT0zl8$u4Pbs!jKg9^RX^&cLm)1Qvl=)A zSY;h?y$zBp*V7KX#Y9$bN_o2csI@w9Zn2I^r-y%*Oj!S)ssIRZ1X}GNBKBE0CjQTe z=r4=sw7VLRnqSO*&Hl=j6Y|xNrOdM^SX^L|YZF4L575OrtP-QX`$Brfgd5!dWUccG zc2?Fj8BT(zz#uc60)#q0VATBr?5`|U-IKjf@9XOXLGpu*uVj$qh8 z<1@s39oGOHoy2poUfDcky82h*SD|(&ESE3A|EH6{E9}q;@JoCl^DOQO?QW@elzcDh z+C`2-;&AfjEDIO#5Y}XiAMfPjym5?43ET69D2eh}=^h7i=zZdog z9nn1c54P}30j(8qE)mN&zc_0;AM7V-Xiz%(J3~`qz9DN+x3nlK43ktIX6=Y8%-?7t zJXH+J$S%p>>sBoWu>XE_W8+7LLy~XG5Q1Q`-rXId_em32j5Fzps|Dv!(Cc0_aN?j( z>kz8etW9RG@x|?MZ<9*%_b%LjTY4nQ8c3<~53{J$kLF+HNz0V0)Zc-~W<0;LVcO}R z7re9@4$;<}0$&mIR$&zRK^7$7-*jE5Y&H3P)YpJyZk|7!tJ^&C9H2_Rob~$Es)o`x zea-G2wZ-cx``e3NH0Au@b-xbB5wJa}E`^Hzzx|K)zCE7l z_Wz$m-J!VCEh(e!`|g0G6*-Jf=)QFzC5%yGm=PM;nnOwlY8|J8Lr9J@%qEASa>{8r zY-3~Gl*49L*cLN>mp-50@%!)Z@%VoK`2NXbd%s`1uIv4JU)S^Xd_G_GmJ~F%Y-9j^ zNYmhCNGNhNnU81-I+jYSyX9ODE&Hv$Tu2n%9r#VwOdsMhaH49U zUDAg4XV2?=3dbrReN zF0JNv#XtrXNAHahR;x$AzW(N?=5 zy=RMP59px_NvPm8lLs4Gh469OgJ_ExXCy7p7q>6HqLCHrylN>f+4{Rx44@Mea#6)pw@hGXn)F9 z2{cH6D!L8@<9*>K19xgm%~MlhQ64YvAAqv}Q?a={gquZ=b^OW*YRltdL&AQB;hQn1 zJ2b;z6Eh;;u=qWSE`MLkIKO%$)<`R+xq458n(^&((tAKjUJvHen5284n^;*M(-|D?$a(LL{}OOY?}Abhg&b|K zS8cBG7g8OI6!gf(DkA+|2bbGvgB)8KT1S|B-lyQiSub`4E7s!HWMKHAG zzow8;S&%b>B;nH^r2cCFeZg5@#Z5Ev`givArdJ%Z4@83OS>3nywa9z=1=^lDRj~!~ zi=^}mYfDCI8!bk$qg4V4`l~PdKjS*B?JMcCrXX~LWdUOB1^gM((v^$RF@~X5#WJ1E36~d$^ zZFQ*8#;8e48ZVWU#JJx4i;{k3(>hY zW(o+0NW^Ti^Cm9`0!NCm7{Y( z^IbVKJLKS#o#fp&imHUJdOPYD>TlOBi04D7lJlFShUD*v@tfm7F0&G=q>IR_-`^NV z_FB#}#|{6MK(Rz!jQq`IdPw(MdUOYrwpuN$GjgyH-u|I=2Iv(((=Na>s=NoICOwcG z8v1t5x3WQ#xdjAn1Iz#WaVu$O%J`)CeNHXJkID8BPL(38iUJw*t9UW}90XG2XUwz! z%YogAYm#$kY^DMUBC6M+aB|9m_P#&sUq&VE8|R0FbyWW8(%zTP1?X6!e#N@yGcUKF zE8vEFU=R)Xck&+`r!5^b|d#|mU`z%-;$ zH)ai(9l8@xwQAFL2*_x!LwA_~whoX?d|Y#z?C0WVN%mmy1$S zQLOI6UNbVAZCHqKV7N=M!WsvWcaSXXskV5Mz5%D`#$A(@8axy^M3-Vov5LOnR1>bB zLGWo52`x{2pY0y?Ej3npD0!ZKnv+~jB9FTOrMdom5__aa-CDwVqa(*}wk^w>bupaj^~ ziTwJYvY_5^z$2a+fa@_<_T)*&{FREFK0bMr^Z7Db1AAOe0V(L?s~_(HnSgC=$RART z$8LXJm@pgpjaM-K;!*Phm3bH@jvhG;hAE1-=SF-0c@f_$C2~p&{CcsyaToJN(p7Kw z@R=&R;pJc1^?As^L`F9zIW>%o?8JRpqWbmf;9%L(rU_UoSIQGmmz0xXu5p_b>$@#a z&>#8-F7Mk?G%ne4o$CJ~82}=C(_v*=apjbUSo?ABs@i?)k^v}nwUflUks66F=&}KC zpRX@@7#99Rw_M;}Jsl*Xs|n>rTzl4Uw4rdi=FKKkx=!Ru4e@p`D4VG*T)J{$&0W)g zB>lYgRRu4OOgNhg4EWu;C+xp%Bs;)}Ds7}}b`5jl`gdH7O;AOigXaa=TJN+*Q$qqo zz1x95ToXdJXID|tvm9=C);5lgJ6L`9>I=Q##*HXPu?MyRMG{Fnb=Vr@`~H7)@Y8U; z2znLi*}>5XIxn1ufG1LA?A8UED3?|%{$Bg^2o~olw||e2`%jC{F0X0=s9(7+m;?2Rq%vuqx09|Jr;^+7y;yj^0roKn=T+vmH zC^%WzHFZDr(f)OtXPgTW?^Ge^*ASdW&wxsdQ3oz{U6&|RMI;KJ`G>e zYB6GB2wN2F208uqVS^Rx56`^BqN#6Lu`D8rgEMid)us(lYKo1IFdx^js8X$O{;Q1Q zcKQf{o1w4@g~AXew;5nesrCV<*s)9BO;-b{;gUd>^zr6Dob~x^Y1r<*2gz7CViAE3 z{AbF!J_Vx#i>W-vhH+%CY;$QLfE==5eOBoUvl9=AO8-A_@cw&Ca?W(apJ zNRh?lY`Dfr_lP@>P6{`-El?IiARm;)^8>F6%U=^OZ%_n&**B3g!#&D)Iq&! zd0ehAf3+J*uw>-EZat?YKctX&BbVjTQmVD?D<(uebY=?{`jYr%e*1v}E~k-+!wed7 zOW8K)`hy-Rf;_`DZWl%LlkUwVe8BHYjR?qOe>kcB6*yMy9eXt-<(YSExu;|IlSYsr zpZ*GNdI4oS9EjVa=-SQ-{P;BT3IuAmed^ABT;_2=V)>H%@CT*yX+iUOpmumDzB_BT zEuyI>FE#R;H+d(rVUGXO;Mkqn@}xlrc%v!()_d;3{Qdjx`9k|V3Iqt@!KUc4;_ui* zoP)nUsS+DUl_F@e_H;u#H=S`3x|{a|Q78Dc5Q?AD_=$gfb^#g2YDd7E_4UUFfyG5R zbi&Prp%V}OcxJ%brNuYC%Hwa-R&@8O$jjB!wr{qpzUaz26T`*~CB_P)_vbfizP9JV@sv?I68rwA&EyJu(mGc2652f(pY%LzQxaX3 zJbdUU$Fb%n_|}Tw#(!y!jfrtRRu;PW^;LF%b!8SK31WU#tivwLK#=}B<=P0;zliQ9fDiuDj2S6tC2Fc2*U9ih^9vqB;?6VCCF%;-Vi15waa%z!>5bF%jA`ZCe7|2(fCo^f-kK|C zz!^c-9ko2Ez0t?+$|m-frS}_Rh7yDfyTr$&YozIlsAWn6>>a!E+SdMx;+Ytk)K<%RP#Fu=F@gkKBpKLFxTY@e!7mYG+18r?e%a`8 zytMe7${Njm4LcAJnfLOA4U+rp@Vc(5^X{%sT_DPB3I+G5q#%p@>FPInxWspfc~RCJ z;`m*ZZ0^jwa6>V9)5VjxlXuMEs{UE+yQE{Qjr9-i>bQoP z_)5-)!UrmT$cjT$=ldg)WLT<=C_)kjN~Y91M@@q7)*DtdGlVoMh6M8YCbko!i+{^V zb2W3g;9g`wb4O~Z$O6fF7KF6D#gkj@5yjq2#lTgfqGJe}s|Y|5^5;BZ;UQE5v0xhv zX``!bf-B{dWRNhj+3j_XA0~72 zFaFp)-GjTCle_+U7Hql696u;%J{vTTNlOVr0m;&`yE9`K1<2|M`MG)x9hXY67r;)2ZMY0Bj~mvNo()l|$Y?kHK;AIcYG zE_ogLRm^y8Bx2n$Xx=RNynQ5_L0RzL~&5!bXX{v85Q*3k*~`}|O` zZKCT#x|$&tGf|0*duA}$K9$qk`I=9KbBhlywkiZ_4J5Mw8u}3d<61J&B%Jk8H*%)B zcfbA^Y0p6t!mJIOb0S~{)O zc|2Dx9%-iUB9fL>G+ABqVMdbzY^YN*4Mc2eFns0m2yOF;# zUjwS^-}6Y5<2s*4$(w!rKA(d;@hqFW<2jhCazN)xvOk&mZKvNis@7J2E9p@xE=Z|N z@|_tVm{O`d?TUuP;ePcgbq^heE5+})6!)7S4Z3@TvGr+h?7ne@%;}8f5>dzBhqjX| zYtuRLCweUePuWb}Z(k1fzK5$7@WpSp`pl`^JD+OR8l?0xQr|@yieAZmwmaI2DEzWh zg39n^+L?07{-A&qJa+fH$!8F$xnSd0B>t!@JwSGRKw$lL+wZJzmr)rl;hZCaJO(xX zbam|0S0c(ndZ+wY;x0!~8)*icP2%8Ksu~|zxYVz`NAQWiW0v<2$il}n2zy-lc*~3c z79b6kU6nL)#`hcXmCY?)y(Pi96`X}~k<9FHpp+0XZYqQoquDre^HP^B_6VE>rTN8X zL~kgUIn2ACPHXHE$8@4P6!@w&Y;hGLOc}>?Jg08{Nc(l`EMK zLP6HSZ7*|)BrG$x`BVL=;n+Poe5;@mwAWvv&X~x~JqA7m< z2!RWJmhfT$TWEd)*wZZQ^oLN<_Gk^I3f{2s<%~S?xKXNvx^*opex^G)jW-(5|0i91 zHGG*fR3W+BS7EL{JviEhxutd}Na2z6wO&M%T<@0k#kuGbvEDe+j=l!<{#;9a=-TrqmGrhg|tx!(FM9!4%?p|$#M)ieuD=MneJNOEH-S$at3>vz>` zyMfu%3Xcl@Nujx$@wgvX;rj;zX_1E|lOD5Nr2%&QC@1&VnHjaPzx)8#mD8(C> z?G=m554`raGE+H+DS;NqIMfP`qT`vtI_gyz3@**k{3=$#Wt-)(*)DAbP#dEEU^0Ir z7UL20WWW_^meX(3Rs4?&)BR9%=O5H!;7cj$rgreD?yWO|gX{%KZyCRxlIngSNG9>j zmZcF_W%It{KHPRfrZ?iM%{QX+Z8BMbyB~f+)1^mS96od6YC4Big`-L5@z>26m2X%W zK>H=Lmo~}13_<79gW5dyP+A#JA9a;dPw&9}Onv_vAMmub=wB50#u|LMy(RCq=}N|g?PcJ+;vV_bnR{unk9HaZM}BBD;K5k?#LX6Q4YjY|O;0wpC>QgIu zk^U!AeaG-b8Jo?Xj!HEY45;oony73b3t#L{45Jc6^ydDt=uYa9=w5nMY=M!vC@f&e zR~)hHSi-v|>gy~f%Sr|pE&0u78rP*MGiiakyvrGd_^QNxVWhD8Xjz4*1IsAe#ux19 z4;|Sm9)MB6LY5Q#Z;4x1mb%P4;RChq6~`eqr5JYx!kMY;4)I12#-{;{Y?T!B7pz#_ zGN`4i^Kbz)`RKnaNDCqcrFm6N7nrI~I1Yxm?R^D8qCNXJXbDj-!_x|xhYC3l+R%KM zu>8mhEnEE#w7+;&u2cq+=M_dk!rcPt2JzMt$y-SbkNM2O*ucX>+&VlR85lRX{u^AV zpRI0aA5>|fu@yKbW0pzw3GHg?LGviKr!=(j@Lt*Q$>DAnu!oer)voWwdr;4mE48Pa z9dhiC+>yP|%T8IqRl|&wk7O@=5nzUEqUIva2<;~Jq!maXlY%&W_+ zh`lF!0i7NhuYwuVO;8XIS*n1pO>7n2s>5Ueq19Hp$VIpjU?SHu#=^cMWrzZNfDrE~ za@XB1>6Q27ncS)pv24ys1DQ6a5$PNjg9S_Y?VELn+bO;z98G%-8>=6Bev6DDVF zxzSs433!LyyRu_dTI%Eh+yEl1LwvoicUVNJrR7^;&F#1jbT{ z{P&33G9E1(W@O#RB{aFJUFC;m0s$=#Ac?X6P>QJo*w{iW8ZI5$!GA?rJ;DfnNn5!awZT8A2-x0uH#XsX{ z81grvAByTYxgUABRCbLS{HkDwN0^8!b&vV8X&x(tT*^Qk+Q+di&-jbJ&6Q>- zP}^P0kC27O2DtB#)WxnLWeZAPRNYxvv9v!uh(1%x0yH|;-i!H!xny2*eiUQmC0EcP z@#JqbkW6|-4VnlJa&OaOir@6tq0$Qh_^1#EFxXP~dNYB*;Y&O5$C}t}Ee)di4GSct z4cAVh3>ePtF`;jrbWir8lfN20&vD<)_{-#rg$r>=Rh|2A77>5qrYYV1(&rT~a$qx8 z%H=HUiykGUZf@@dB**mSwi-!Yymu#?lP7r7P~ZCcM(zao^qnKuIvf7}u6Iw`&9VIJ z3b<)93v-W+6@(8S^RnGD1eL!0rK#t?l~n%{mH#IQ%|QJS^fg;f&{4SN`8_IJj$8Oi z+WPN?bSs^O{tGvx0|@JXQtv>)>6jHEUm;_${7j5-OfmQ3mry)gHZ);{;YNrt-b>SL zwk{h{F?g0XOJ~Tm=nXNyC@5I#DYDYmmh=h!P*Gl0B*5L3|Ei#H&3aXlm8MTA+fi*D zA}CHwj^$_6EYzFFbQGE_OxZ5@aG5p#;oByF9AvwbPb-Z657z)jgmr9_Qg6_l5AfYE zJ69Z~?;eR)5G+U+{*X8-C=3Hn(9;sga>p6ai)u(F3{|V|xe)Unc}m$WEVw$f=+;Km zNCW2(X6Tx+G-;GCp`Av_#Qen-I$23E=Cyo_4 z^b&5npai+@G`@$%9zEJ?*y+sBO_*^`L*@M%OOx)2(WA085AM1X(Ln#i9@#=%l`{1t z>?DrfUopaC`f_Idbz@d^jHiU#nh6UoxM|L579xL(fzoA7?K zH7nkisjD`o0DC~uFQZ`1LXjdHRKfH6}LopVgN3;i}&y*Mxx-RoJv$X?@)j;=8H z7NWjO#aUQtIuWdN$5NKP?GOvS`(rxz@A__ToKYt?@i<0!E&zTvn#S}G^-lLRP?WPNSwGYY%%h#McMu0!-ck+bzCOMmy5QaT##RDPA$HI;1E5adl(bQS$jbHyr+ z!<58Nl|~WuOhl;3>lRC~$`?QwL7??}tfIJUfORA1wa)>;E|~)v;mDCWiT>e4bBD8O z=XDF_rayXo^H2gU6PfagmNMKC-*n$|qU*NF3k+u*PupSPYJdzwZ+3hzw*ll2AerC! z$>|UO;9fKk)3+Y^KGCPawNL0BV7;X#4c-!9tgY9(`a%j)w&b~wtz$7-^DQ(DvddB7^o*3x&( zg*b>a`5J96Y7BnDD@FG8+zwxc;jzZwyu#o79Hl?%EkAMe!vpJWs!uyjsHbv|1fy)KEYyJi3jFe}&o+CW6E;Zv_uR4;aoULk zsHhZQG0TF1ngD1hFq{$)}KKwxTeI87+Y38x^QtznvpHw1;xg(yRzi z@fr~DLmT`8E<(dzV^;T^&15dV(V%JbKJgvaI=CiIL3n_tX6cz{0E^lqoH{oN0X*5dbP3)M?T zq*eYNgSJ$eSkEiCZ5qTxV~aj8R~0>!i6(o5^Y$4VcQ`Dp0qkNGEgwpgkBuy_bj*3R4(_n^~i%an;SBvXB#z3L^Cd`0^pAbe?0Hv8+JAvtQ$9SKL5#pzO3xELAZ%VIniL9O!Z{bJbJ2^g|YyxOC;s}Xto*-Bod`Vv?{2|+hb#6_B_|dyVZ`BW8 za?<_U{JK()8w8=YDqK9EAxf)Iw*~Z~tRZm?+Q~_vt0c;y<{bsF9y*k8AJ08ZR@pDE z`7ZNNIACcr{TIH$h&Ep3Dej}JDvBJ2@Qd;b2J6t|yeO^+t9U%|r2%r{OBg187E2(k z)&i|_iu-tiH9P2lB8Sh`R-@uAi%qzDAkJuV#mahzg#rtjvZcVbsXW>e)PVKKW*Y~0 zp78>o6Gi`DBfOD$1cgGAUPj6u^GY2tZmLoKo$zCCKCge7lI$PJ)X2@%cDlKxX72c| z13`tBJ3`**McqK=7AF~`Bi0T8&5_r*6dx10kaB2(#Pn)$$v zdJjPcX88s1g;9s9%GtjEI}s%v@dCmtl|&t*BK5KGCRg=<5hfo}GxCyUVJfx9f0S(`M zvsLae?qx}%N;N-d3Ef5R1+up=d{sI{FC#+d!_NHnd+XeQ?ID|Q!8w-d8|nOA|MF_^ zlD`kit1I3xrf_7r!Xi;wR7qN^>uX%Z8xc}elav$`4zI8n{(C1g@#@m)+^(#YcT^{13_GzC!>2 literal 36611 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 z - - - + + + diff --git a/docs/web/src/pages/Home.jsx b/docs/web/src/pages/Home.jsx index 799e2c2..3694fbb 100644 --- a/docs/web/src/pages/Home.jsx +++ b/docs/web/src/pages/Home.jsx @@ -8,7 +8,7 @@ export default function Home({ rel }) { <>
-

docker · github actions · kubernetes

+

docker · github actions · kubernetes

DevOps scaffolding,
diff --git a/docs/web/src/styles/site.css b/docs/web/src/styles/site.css index 53a70f3..70a186c 100644 --- a/docs/web/src/styles/site.css +++ b/docs/web/src/styles/site.css @@ -1,4 +1,4 @@ -/* ============ DevOpsGen Docs — soft editorial design, warm palette ============ */ +/* ============ DevOpsGen Docs — flat engineering paper, warm palette ============ */ @import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap'); :root { @@ -15,27 +15,17 @@ --ui-accent-strong: #7a4f33; --ui-accent-soft: #efe0cf; --ui-accent-contrast: #fffaf2; - --ui-badge-ok-bg: #e4ecd9; --ui-badge-ok-fg: #55683f; - --ui-badge-warn-bg: #fbf0d2; --ui-badge-warn-fg: #7a5c17; - --ui-badge-err-bg: #f9e2db; --ui-badge-err-fg: #8a4a38; - --ui-badge-info-bg: #efe6ec; --ui-badge-info-fg: #6e4a63; - --ui-note: #f4ead9; - --ui-tip: #edf0e2; - --ui-caution: #fbf0d2; - --ui-danger: #f9e2db; --ui-code: #2d231c; --ui-code-text: #f8f1e8; --ui-code-bar: #efe2d2; --ui-code-bar-text: #5e3c27; - --ui-shadow-color: rgba(74, 52, 38, 0.1); - --ui-shadow-strong: rgba(74, 52, 38, 0.16); - --ui-radius-sm: 6px; - --ui-radius: 10px; - --ui-radius-lg: 16px; + --ui-radius-sm: 3px; + --ui-radius: 3px; + --ui-radius-lg: 4px; --font-display: 'DM Sans', ui-sans-serif, system-ui, sans-serif; --sl-font: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; --sl-font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; @@ -63,7 +53,6 @@ body { ::-webkit-scrollbar-thumb { background: var(--ui-border-strong); border: 3px solid var(--ui-bg); - border-radius: 999px; } ::-webkit-scrollbar-thumb:hover { background: var(--ui-accent); } @@ -96,33 +85,30 @@ body { .brand { display: inline-flex; align-items: center; - gap: 10px; + gap: 12px; color: var(--ui-text); text-decoration: none; } .brand-mark { display: block; - width: 2.25rem; - height: 2.25rem; - box-shadow: 0 2px 8px var(--ui-shadow-color); + width: 2.1rem; + height: 2.1rem; } .brand-name { - font-family: var(--font-display); - font-size: 1rem; - font-weight: 700; - letter-spacing: -0.015em; + font-family: var(--sl-font-mono); + font-size: 0.98rem; + font-weight: 600; + letter-spacing: -0.01em; } .brand-sub { - padding: 0.16rem 0.45rem; - border-radius: 999px; - background: var(--ui-accent-soft); - color: var(--ui-accent-strong); - font-size: 0.58rem; - font-weight: 700; - letter-spacing: 0.08em; + color: var(--ui-muted); + font-family: var(--sl-font-mono); + font-size: 0.62rem; + font-weight: 600; + letter-spacing: 0.14em; } .gh-pill { @@ -130,20 +116,19 @@ body { display: inline-flex; align-items: center; gap: 0.4rem; - height: 2.25rem; - padding: 0 1rem; + height: 2.15rem; + padding: 0 0.9rem; border: 1px solid var(--ui-border); - border-radius: 8px; - background: var(--ui-surface-2); - box-shadow: none; + border-radius: var(--ui-radius); + background: transparent; color: var(--ui-text-soft); - font-family: var(--sl-font); - font-size: 0.8rem; - font-weight: 600; + font-family: var(--sl-font-mono); + font-size: 0.78rem; + font-weight: 500; text-decoration: none; - transition: background 150ms ease, border-color 150ms ease; + transition: color 120ms ease, border-color 120ms ease; } -.gh-pill:hover { background: var(--ui-accent-soft); border-color: var(--ui-border-strong); color: var(--ui-accent-strong); } +.gh-pill:hover { border-color: var(--ui-accent); color: var(--ui-accent-strong); } /* ---------- shell: sidebar + content ---------- */ .shell { @@ -170,7 +155,7 @@ body { padding: 0 0.6rem; color: var(--ui-muted); font-size: 0.66rem; - font-weight: 700; + font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; } @@ -184,20 +169,18 @@ body { .sidebar a, .side-link { display: block; - padding: 0.4rem 0.6rem; - border-radius: 7px; + padding: 0.38rem 0.6rem; + border-left: 2px solid transparent; color: var(--ui-text-soft); font-weight: 500; line-height: 1.35; text-decoration: none; - text-transform: capitalize; - transition: background 150ms ease, color 150ms ease; + transition: color 120ms ease; } -.sidebar a:hover, .side-link:hover { background: var(--ui-surface-2); color: var(--ui-text); } +.sidebar a:hover, .side-link:hover { color: var(--ui-text); } .sidebar a.is-active, .side-link.is-active { - background: var(--ui-accent-soft); + border-left-color: var(--ui-accent); color: var(--ui-accent-strong); - box-shadow: inset 3px 0 0 var(--ui-accent); font-weight: 600; } @@ -207,30 +190,21 @@ main { min-width: 0; } .page-head { margin-bottom: 26px; } .kicker { - display: inline-block; - margin: 0 0 12px; - padding: 0.22rem 0.7rem; - border-radius: 999px; - background: var(--ui-accent-soft); - color: var(--ui-accent-strong); - font-size: 0.66rem; - font-weight: 700; + display: block; + margin: 0 0 10px; + color: var(--ui-muted); + font-family: var(--sl-font-mono); + font-size: 0.7rem; + font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; } -.violet { background: var(--ui-badge-info-bg); color: var(--ui-badge-info-fg); } -.blue { background: var(--ui-note); color: var(--ui-text-soft); } -.pink { background: var(--ui-caution); color: var(--ui-badge-warn-fg); } -.yellow { background: var(--ui-caution); color: var(--ui-badge-warn-fg); } - h1 { display: block; margin: 0 0 14px; padding: 0; - background: transparent; color: var(--ui-text); - box-shadow: none; font-family: var(--font-display); font-size: clamp(1.9rem, 3.8vw, 2.6rem); font-weight: 700; @@ -242,23 +216,16 @@ h1 { .lede { display: block; max-width: 46rem; - margin-block: 0 8px; - padding: 1rem 1.25rem; - background: var(--ui-surface); + margin-block: 0 10px; color: var(--ui-text-soft); - border: 1px solid var(--ui-border); - border-inline-start: 3px solid var(--ui-accent); - border-radius: 8px; font-size: 1.02rem; line-height: 1.7; } h2 { - display: flex; - align-items: center; - gap: 0.6rem; + display: block; margin-block: 2.5rem 1rem; - padding-bottom: 0.55rem; + padding-bottom: 0.5rem; border-bottom: 1px solid var(--ui-border); font-family: var(--font-display); font-size: clamp(1.25rem, 2.3vw, 1.45rem); @@ -266,15 +233,6 @@ h2 { letter-spacing: -0.025em; } -h2::before { - content: ''; - flex: 0 0 auto; - width: 0.35rem; - height: 1.1em; - border-radius: 999px; - background: var(--ui-accent); -} - h3 { margin-block: 1.75rem 0.6rem; font-family: var(--font-display); @@ -282,12 +240,12 @@ h3 { font-weight: 600; } -strong { color: var(--ui-accent-strong); font-weight: 600; } +strong { font-weight: 600; } code:not(.code-block code) { padding: 0.08em 0.35em; background: var(--ui-surface-2); - color: var(--ui-accent-strong); + color: var(--ui-text); border: 1px solid var(--ui-border); border-radius: var(--ui-radius-sm); font-family: var(--sl-font-mono); @@ -297,24 +255,19 @@ code:not(.code-block code) { } a { color: var(--ui-accent-strong); text-decoration: underline; text-decoration-color: var(--ui-border-strong); text-decoration-thickness: 1px; text-underline-offset: 3px; } -a:hover { color: var(--ui-accent); text-decoration-color: var(--ui-accent); background: transparent; } -.btn:hover, .gh-pill:hover, .sidebar a:hover, .side-link:hover { background-color: inherit; } -a.btn:hover { color: var(--ui-accent-contrast); text-decoration: none; background: var(--ui-accent-strong); } +a:hover { color: var(--ui-accent); text-decoration-color: var(--ui-accent); } +a.btn:hover { color: var(--ui-accent-contrast); text-decoration: none; } /* ---------- hero (home) ---------- */ .hero { - position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; margin: 0.5rem 0 2rem; padding: clamp(1.5rem, 4vw, 3rem); - background: var(--ui-surface); - color: var(--ui-text); border: 1px solid var(--ui-border); border-radius: var(--ui-radius-lg); - box-shadow: 0 16px 40px var(--ui-shadow-color); } .hero-cta { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 6px; } @@ -323,18 +276,21 @@ a.btn:hover { color: var(--ui-accent-contrast); text-decoration: none; backgroun display: inline-block; padding: 0.6rem 1.1rem; border: 1px solid var(--ui-accent); - border-radius: 9px; + border-radius: var(--ui-radius); background: var(--ui-accent); color: var(--ui-accent-contrast); - box-shadow: 0 2px 6px var(--ui-shadow-color); font-weight: 600; text-decoration: none; - transition: background 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease; + transition: background 120ms ease, border-color 120ms ease; } -.btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px var(--ui-shadow-strong); } -.btn-pink { background: var(--ui-surface-2); color: var(--ui-text); border-color: var(--ui-border); } -.btn-pink:hover { background: var(--ui-accent-soft); border-color: var(--ui-border-strong); color: var(--ui-accent-strong); } -.btn-yellow { background: var(--ui-surface-2); color: var(--ui-text); border-color: var(--ui-border); } +.btn:hover { background: var(--ui-accent-strong); border-color: var(--ui-accent-strong); } +.btn-pink { + border-color: var(--ui-border-strong); + background: transparent; + color: var(--ui-text); +} +.btn-pink:hover { border-color: var(--ui-accent); color: var(--ui-accent-strong); background: transparent; } +.btn-yellow { border-color: var(--ui-border-strong); background: transparent; color: var(--ui-text); } /* ---------- cards ---------- */ .cards { @@ -345,28 +301,23 @@ a.btn:hover { color: var(--ui-accent-contrast); text-decoration: none; backgroun .card { padding: 1.5rem; - background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: var(--ui-radius); - box-shadow: 0 1px 2px var(--ui-shadow-color); color: inherit; text-decoration: none; - transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease; + transition: border-color 120ms ease; } .card h3 { margin-top: 0; font-size: 0.98rem; } .card p, .card li { color: var(--ui-muted); font-size: 0.9rem; line-height: 1.6; } -.card:hover { transform: translateY(-2px); border-color: var(--ui-border-strong); box-shadow: 0 10px 24px var(--ui-shadow-color); } -a.card h3 { color: var(--ui-accent-strong); } -.core .card:hover { border-color: var(--ui-accent); } +.card:hover { border-color: var(--ui-accent); } +a.card h3 { color: var(--ui-text); } /* ---------- screenshots ---------- */ .shot { margin: 22px 0; padding: 10px; - background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: var(--ui-radius); - box-shadow: 0 8px 24px var(--ui-shadow-color); max-width: 100%; } .shot img { display: block; width: 100%; height: auto; border: 1px solid var(--ui-border); border-radius: var(--ui-radius-sm); } @@ -376,7 +327,7 @@ a.card h3 { color: var(--ui-accent-strong); } font-size: 0.85rem; font-weight: 500; } -.shot a:hover { background: transparent; color: inherit; } +.shot a:hover { color: inherit; } .shot-feature { max-width: 880px; } .screen-strip { @@ -396,7 +347,6 @@ a.card h3 { color: var(--ui-accent-strong); } overflow: hidden; background: var(--ui-code); color: var(--ui-code-text); - box-shadow: 0 10px 30px var(--ui-shadow-color); } .code-label { position: absolute; @@ -429,48 +379,45 @@ a.card h3 { color: var(--ui-accent-strong); } border-radius: var(--ui-radius); background: var(--ui-surface); margin: 18px 0; - box-shadow: 0 1px 2px var(--ui-shadow-color); } table { border-collapse: collapse; width: 100%; font-size: 0.92rem; } th, td { padding: 0.65rem 0.75rem; text-align: left; vertical-align: top; } th { - background: var(--ui-surface-2); color: var(--ui-muted); font-size: 0.7rem; - font-weight: 700; + font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; } -td { border-top: 1px solid var(--ui-border); } -tbody tr:nth-child(2n) td { background: var(--ui-surface-2); } +th, td { border-top: 1px solid var(--ui-border); } +thead th { border-top: 0; border-bottom: 1px solid var(--ui-border-strong); background: var(--ui-surface-2); } td code { white-space: nowrap; } -.num { font-weight: 700; } +.num { font-family: var(--sl-font-mono); font-weight: 600; } /* ---------- badges & kbd ---------- */ .badge { display: inline-block; - padding: 0.05rem 0.5rem; - border: 0; - border-radius: 999px; + padding: 0.02rem 0.45rem; + border: 1px solid currentColor; + border-radius: var(--ui-radius-sm); font-family: var(--sl-font-mono); - font-size: 0.74rem; - font-weight: 600; - letter-spacing: 0.01em; - transform: none; + font-size: 0.72rem; + font-weight: 500; + white-space: nowrap; } -.badge-ok { background: var(--ui-badge-ok-bg); color: var(--ui-badge-ok-fg); } -.badge-warn { background: var(--ui-badge-warn-bg); color: var(--ui-badge-warn-fg); } -.badge-err { background: var(--ui-badge-err-bg); color: var(--ui-badge-err-fg); } -.badge-info { background: var(--ui-badge-info-bg); color: var(--ui-badge-info-fg); } +.badge-ok { color: var(--ui-badge-ok-fg); } +.badge-warn { color: var(--ui-badge-warn-fg); } +.badge-err { color: var(--ui-badge-err-fg); } +.badge-info { color: var(--ui-badge-info-fg); } .kbd { display: inline-block; padding: 0.1em 0.4em; - border: 1px solid var(--ui-border); - border-radius: 5px; - background: var(--ui-surface-2); + border: 1px solid var(--ui-border-strong); + border-bottom-width: 2px; + border-radius: var(--ui-radius-sm); + background: var(--ui-surface); color: var(--ui-text); - box-shadow: none; font-family: var(--sl-font-mono); font-size: 0.84rem; } @@ -478,17 +425,11 @@ td code { white-space: nowrap; } /* ---------- callouts (aside style) ---------- */ .callout { margin: 20px 0; - padding: 1rem 1.25rem; - background: var(--ui-note); - color: var(--ui-text); - border: 1px solid var(--ui-border); - border-inline-start: 3px solid var(--ui-accent); - border-radius: 8px; - font-weight: 500; + padding: 0.75rem 1.25rem; + border-left: 2px solid var(--ui-accent); + color: var(--ui-text-soft); } .callout p { margin: 0; } -.callout-info { background: var(--ui-tip); } -.callout-ok { background: var(--ui-tip); } /* ---------- step list ---------- */ ul, ol { padding-inline-start: 1.5rem; } @@ -498,24 +439,19 @@ li::marker { color: var(--ui-accent); } .step-list li { counter-increment: steps; position: relative; - padding-left: 48px; + padding-left: 44px; margin-top: 14px; } .step-list li::before { - content: counter(steps); + content: counter(steps, decimal-leading-zero); position: absolute; left: 0; - top: 0; - display: grid; - place-items: center; - width: 30px; - height: 30px; - border-radius: 999px; - background: var(--ui-accent-soft); + top: 2px; color: var(--ui-accent-strong); - box-shadow: none; - font-family: var(--font-display); + font-family: var(--sl-font-mono); + font-size: 0.85rem; font-weight: 600; + line-height: 1.6; } .flag-name { font-family: var(--sl-font-mono); font-weight: 600; } @@ -529,7 +465,6 @@ li::marker { color: var(--ui-accent); } font-size: 0.9rem; } .footer a { color: var(--ui-accent-strong); text-decoration: underline; text-decoration-color: var(--ui-border-strong); } -.footer a:hover { background: var(--ui-accent-soft); } .footer-links { margin-top: 6px; } .file-tree { @@ -548,20 +483,17 @@ li::marker { color: var(--ui-accent); } align-items: center; gap: 0.4rem; padding: 0.75rem 1rem; - background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: var(--ui-radius); } .side-group { margin: 0 !important; display: contents; } .sidebar ul { display: flex; flex-wrap: wrap; gap: 0.25rem; } .group-label { margin: 0 0.2rem; } - .sidebar a, .side-link { padding: 0.3rem 0.7rem; border-radius: 999px; background: var(--ui-surface-2); } - .sidebar a.is-active, .side-link.is-active { box-shadow: none; } + .sidebar a, .side-link { padding: 0.3rem 0.7rem; border-left: 0; } } @media (max-width: 720px) { - .hero { grid-template-columns: 1fr; padding: 1.5rem; border-radius: var(--ui-radius); box-shadow: 0 8px 24px var(--ui-shadow-color); } - .shot, .code-block { box-shadow: 0 4px 16px var(--ui-shadow-color); } + .hero { grid-template-columns: 1fr; padding: 1.5rem; } th, td { padding: 0.5rem 0.55rem; } }