Files
glitch_bloodsugar/dist/bloodsugar.js
T

9 lines
39 KiB
JavaScript
Raw Normal View History

2026-06-10 11:48:44 +02:00
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('._root_1vqqu_1{--component-bg: var(--color-bg, #0a0a0f);--component-bg-secondary: var(--color-bg-secondary, #12121a);--component-text: var(--color-text, #e8e8ec);--component-text-muted: var(--color-text-muted, #9999a8);--component-primary: var(--color-primary, #6366f1);--component-accent: var(--color-accent, #22d3ee);--component-border: var(--color-border, #2a2a3a);box-sizing:border-box!important;width:min(100%,1500px);margin:0 auto;color:var(--component-text);font-family:var(--font-main, system-ui, sans-serif);line-height:1.5}._root_1vqqu_1,._root_1vqqu_1 *,._root_1vqqu_1 *:before,._root_1vqqu_1 *:after{box-sizing:border-box!important}._board_1vqqu_24{display:grid;grid-template-columns:10.4fr 5.6fr;grid-template-rows:1fr;gap:0;width:100%;aspect-ratio:16 / 9;min-height:0}._chartPanel_1vqqu_34,._controlPanel_1vqqu_35{min-width:0;min-height:0;border:1px solid var(--component-border);border-radius:var(--border-radius, 12px);overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--component-primary) 12%,transparent),transparent 35%),linear-gradient(180deg,var(--component-bg-secondary),var(--component-bg))}._chartPanel_1vqqu_34{position:relative;width:100%;height:100%;padding:1rem 1rem .95rem 4.15rem;background:linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.04) 1px,transparent 1px),color-mix(in srgb,var(--component-bg) 76%,black);background-size:10% 100%,100% 20%,auto}._controlPanel_1vqqu_35{width:100%;height:100%;display:grid;grid-template-rows:auto minmax(0,1.35fr) auto auto auto;gap:.72rem;padding:1.05rem}._chartHeader_1vqqu_67,._controlHeader_1vqqu_68{min-width:0}._chartHeader_1vqqu_67{position:absolute;top:1rem;right:1rem;left:4.15rem;z-index:1;display:flex;justify-content:space-between;gap:1rem;pointer-events:none}._chartHeader_1vqqu_67 strong{color:var(--component-text-muted);font-family:var(--font-mono, monospace);font-size:.86rem;font-weight:500;text-transform:uppercase}._happyChartBadge_1vqqu_92,._hangryChartBadge_1vqqu_93{position:absolute;top:50%;left:50%;z-index:2;border-radius:var(--border-radius-sm, 8px);padding:.35rem 1rem;font-family:var(--font-display, var(--font-main, system-ui, sans-serif));font-size:6.4rem;font-style:italic;letter-spacing:0;line-height:1;pointer-events:none;text-align:center;text-transform:uppercase;text-shadow:0 0 28px rgba(34,211,238,.28);transform:translate(-50%,-50%);white-space:nowrap}._chartEmoji_1vqqu_113,._hangryChartEmoji_1vqqu_114{position:absolute;top:3.15rem;right:1.35rem;z-index:3;display:grid;place-items:center;width:10.4rem;height:10.4rem;border-radius:999px;background:color-mix(in srgb,var(--component-primary) 20%,rgba(10,10,15,.84));box-shadow:0 0 0 1px color-mix(in srgb,var(--component-primary) 42%,transparent),0 0 24px color-mix(in srgb,var(--component-primary) 24%,transparent);font-size:6.1rem;line-height:1;pointer-events:none}._hangryChartEmoji_1vqqu_114{animation:_hangryShake_1vqqu_1 .24s linear infinite,_hangryBreath_1vqqu_1 1.1s ease-in-out infinite;background:radial-gradient(circle,#f871719e,#f871712e 56%,#0a0a0fdb 72%);box-shadow:0 0 #f871716b,0 0 22px #f8717175}._happyChartBadge_1vqqu_92{color:color-mix(in srgb,var(--component-accent) 74%,white);opacity:.46}._hangryChartBadge_1vqqu_93{animation:_hangryBadgeShake_1vqqu_1 .26s linear infinite,_hangryPulse_1vqqu_1 1.35s ease-in-out infinite;background:#f8717124;box-shadow:0 0 0 1px #f8717161,0 0 22px #f871716b;color:#fecaca;text-shadow:0 0 18px rgba(248,113,113,.7),0 0 42px rgba(248,113,113,.42)}._eyebrow_1vqqu_163{margin:0 0 .45rem;color:var(--component-accent);font-family:var(--font-mono, monospace);font-size:.92rem;letter-spacing:0;text-transform:uppercase}._title_1vqqu_172{margin:0;color:var(--component-text);font-family:var(--font-display, var(--font-main, system-ui, sans-serif));font-size:1.9rem;font-weight:700;line-height:1.16}._mood_1vqqu_181,._hangryMood_1vqqu_182{display:flex;flex-direction:column;just
var GlitchComponent=(function(V,M){"use strict";var Z={exports:{}},K={};var he;function _e(){if(he)return K;he=1;var o=Symbol.for("react.transitional.element"),i=Symbol.for("react.fragment");function d(l,c,r){var p=null;if(r!==void 0&&(p=""+r),c.key!==void 0&&(p=""+c.key),"key"in c){r={};for(var u in c)u!=="key"&&(r[u]=c[u])}else r=c;return c=r.ref,{$$typeof:o,type:l,key:p,ref:c!==void 0?c:null,props:r}}return K.Fragment=i,K.jsx=d,K.jsxs=d,K}var B={};var pe;function xe(){return pe||(pe=1,process.env.NODE_ENV!=="production"&&(function(){function o(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===se?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case _:return"Fragment";case w:return"Profiler";case D:return"StrictMode";case ce:return"Suspense";case ee:return"SuspenseList";case v:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case x:return"Portal";case P:return e.displayName||"Context";case Q:return(e._context.displayName||"Context")+".Consumer";case ie:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case ue:return n=e.displayName||null,n!==null?n:o(e.type)||"Memo";case O:n=e._payload,e=e._init;try{return o(e(n))}catch{}}return null}function i(e){return""+e}function d(e){try{i(e);var n=!1}catch{n=!0}if(n){n=console;var h=n.error,y=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return h.call(n,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",y),i(e)}}function l(e){if(e===_)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===O)return"<...>";try{var n=o(e);return n?"<"+n+">":"<...>"}catch{return"<...>"}}function c(){var e=F.A;return e===null?null:e.getOwner()}function r(){return Error("react-stack-top-frame")}function p(e){if(T.call(e,"key")){var n=Object.getOwnPropertyDescriptor(e,"key").get;if(n&&n.isReactWarning)return!1}return e.key!==void 0}function u(e,n){function h(){te||(te=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",n))}h.isReactWarning=!0,Object.defineProperty(e,"key",{get:h,configurable:!0})}function g(){var e=o(this.type);return z[e]||(z[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function q(e,n,h,y,G,Y){var m=h.ref;return e={$$typeof:a,type:e,key:n,props:h,_owner:y},(m!==void 0?m:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:g}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:G}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:Y}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function k(e,n,h,y,G,Y){var m=n.children;if(m!==void 0)if(y)if(de(m)){for(y=0;y<m.length;y++)C(m[y]);Object.freeze&&Object.freeze(m)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else C(m);if(T.call(n,"key")){m=o(e);var I=Object.keys(n).filter(function(f){return f!=="key"});y=0<I.length?"{key: someKey, "+I.join(": ..., ")+": ...}":"{key: someKey}",U[m+y]||(I=0<I.length?"{"+I.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
let props = %s;
<%s {...props} />
React keys must be passed directly to JSX without using spread:
let props = %s;
<%s key={someKey} {...props} />`,y,m,I,m),U[m+y]=!0)}if(m=null,h!==void 0&&(d(h),m=""+h),p(n)&&(d(n.key),m=""+n.key),"key"in n){h={};for(var X in n)X!=="key"&&(h[X]=n[X])}else h=n;return m&&u(h,typeof e=="function"?e.displayName||e.name||"Unknown":e),q(e,m,h,c(),G,Y)}function C(e){b(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===O&&(e._payload.status==="fulfilled"?b(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function b(e){return typeof e=="object"&&e!==null&&e.$$typeof===a}var E=M,a=Symbol.for("react.transitional.element"),x=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),D=Symbol.for("react.strict_mode"),w=Symbol.for("react.profiler"),Q=Symbol.for("react.consumer"),P=Symbol.for("react.context"),ie=Symbol.for("react.forward_ref"),ce=Symbol.for("react.suspense"),ee=Symbol.for("react.suspense_list"),ue=Symbol.for("react.memo"),O=Symbol.for("react.lazy"),v=Symbol.for("react.activity"),se=Symbol.for("react.client.reference"),F=E.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=Object.prototype.hasOwnProperty,de=Array.isArray,L=console.createTask?console.createTask:function(){return null};E={react_stack_bottom_frame:function(e){return e()}};var te,z={},ne=E.react_stack_bottom_frame.bind(E,r)(),oe=L(l(r)),U={};B.Fragment=_,B.jsx=function(e,n,h){var y=1e4>F.recentlyCreatedOwnerStacks++;return k(e,n,h,!1,y?Error("react-stack-top-frame"):ne,y?L(l(e)):oe)},B.jsxs=function(e,n,h){var y=1e4>F.recentlyCreatedOwnerStacks++;return k(e,n,h,!0,y?Error("react-stack-top-frame"):ne,y?L(l(e)):oe)}})()),B}var ye;function ve(){return ye||(ye=1,process.env.NODE_ENV==="production"?Z.exports=_e():Z.exports=xe()),Z.exports}var s=ve();const t={root:"_root_1vqqu_1",board:"_board_1vqqu_24",chartPanel:"_chartPanel_1vqqu_34",controlPanel:"_controlPanel_1vqqu_35",chartHeader:"_chartHeader_1vqqu_67",controlHeader:"_controlHeader_1vqqu_68",happyChartBadge:"_happyChartBadge_1vqqu_92",hangryChartBadge:"_hangryChartBadge_1vqqu_93",chartEmoji:"_chartEmoji_1vqqu_113",hangryChartEmoji:"_hangryChartEmoji_1vqqu_114",eyebrow:"_eyebrow_1vqqu_163",title:"_title_1vqqu_172",mood:"_mood_1vqqu_181",hangryMood:"_hangryMood_1vqqu_182",zoneLabels:"_zoneLabels_1vqqu_253",chart:"_chart_1vqqu_34",gridLine:"_gridLine_1vqqu_278",targetLine:"_targetLine_1vqqu_283",glucoseLine:"_glucoseLine_1vqqu_289",insulinLine:"_insulinLine_1vqqu_290",responseLine:"_responseLine_1vqqu_291",cursorLine:"_cursorLine_1vqqu_312",delayLine:"_delayLine_1vqqu_317",delayCallout:"_delayCallout_1vqqu_323",delayText:"_delayText_1vqqu_327",foodLine:"_foodLine_1vqqu_339",mealWindow:"_mealWindow_1vqqu_345",snackWindow:"_snackWindow_1vqqu_351",snackLine:"_snackLine_1vqqu_357",foodMarker:"_foodMarker_1vqqu_363",glucoseDot:"_glucoseDot_1vqqu_368",insulinDot:"_insulinDot_1vqqu_369",responseDot:"_responseDot_1vqqu_370",legend:"_legend_1vqqu_388",glucoseKey:"_glucoseKey_1vqqu_415",insulinKey:"_insulinKey_1vqqu_419",responseKey:"_responseKey_1vqqu_423",foodKey:"_foodKey_1vqqu_427",snackKey:"_snackKey_1vqqu_431",sidePanel:"_sidePanel_1vqqu_435",metric:"_metric_1vqqu_443",causalChain:"_causalChain_1vqqu_489",causalStep:"_causalStep_1vqqu_496",activeCausalStep:"_activeCausalStep_1vqqu_497",controls:"_controls_1vqqu_549",button:"_button_1vqqu_555",buttonPrimary:"_buttonPrimary_1vqqu_556"},W={click:"ui.button_click",hover:"ui.button_hover"},N=520,R=700,je=54,Se=84,me=102,ke=348,Ee=368,Le=388,fe=72,j=96,Te=145,A=[{id:"baseline",eyebrow:"Stage 1",title:"Blood sugar is a control loop.",copy:"No meal, no drama. The system stays near its set point.",chartLabel:"Blood sugar only",showFood:!1,showInsulin:!1,showResponse:!1,showDelay:!1,destabilized:!1,startMinute:0,stopMinute:44},{id:"meal-start",eyebrow:"Stage 2",title:"Food pushes glucose up.",copy:"The meal starts first. Blood sugar keeps rising while food is absorbed.",chartLabel:"Meal starts before the peak",showFood:!0,showInsulin:!1,showResponse:!1,showDelay:!1,destabilized:!1,startMinute:0,stopMinute:92},{id:"glucose-peak",eyebrow:"Stag
//# sourceMappingURL=bloodsugar.js.map