@openephemeris/mcp-server 4.18.0 → 4.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/dist/index.js +8 -110
- package/dist/server-sse.js +7 -114
- package/dist/tools/apps/bazi-app.d.ts +1 -1
- package/dist/tools/apps/bazi-app.js +3 -2
- package/dist/tools/apps/bi-wheel-app.d.ts +1 -1
- package/dist/tools/apps/bi-wheel-app.js +3 -2
- package/dist/tools/apps/bodygraph-app.d.ts +7 -4
- package/dist/tools/apps/bodygraph-app.js +13 -5
- package/dist/tools/apps/chart-wheel-app.d.ts +1 -1
- package/dist/tools/apps/chart-wheel-app.js +3 -2
- package/dist/tools/apps/moon-phase-app.d.ts +1 -1
- package/dist/tools/apps/moon-phase-app.js +3 -2
- package/dist/tools/apps/transit-timeline-app.d.ts +1 -1
- package/dist/tools/apps/transit-timeline-app.js +3 -2
- package/dist/tools/apps/ui-resource.d.ts +43 -0
- package/dist/tools/apps/ui-resource.js +66 -0
- package/dist/tools/apps/ui-resources.d.ts +22 -0
- package/dist/tools/apps/ui-resources.js +105 -0
- package/dist/tools/apps/vedic-chart-app.d.ts +1 -1
- package/dist/tools/apps/vedic-chart-app.js +3 -2
- package/dist/tools/specialized/comparative.js +25 -23
- package/dist/tools/specialized/hd_cycles.js +22 -23
- package/dist/tools/specialized/progressed.js +5 -2
- package/dist/tools/specialized/relocation.js +5 -2
- package/dist/tools/visual.d.ts +15 -0
- package/dist/tools/visual.js +22 -0
- package/dist/ui/bazi.html +893 -856
- package/dist/ui/bi-wheel.html +555 -518
- package/dist/ui/bodygraph.html +433 -337
- package/dist/ui/chart-wheel.html +632 -595
- package/dist/ui/moon-phase.html +190 -155
- package/dist/ui/transit-timeline.html +865 -830
- package/dist/ui/vedic-chart.html +252 -215
- package/package.json +2 -1
package/dist/ui/bodygraph.html
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
-
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:; font-src data:; connect-src 'none'" />
|
|
4
|
+
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:; font-src data: https:; connect-src 'none'" />
|
|
5
5
|
<meta charset="UTF-8" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<meta name="color-scheme" content="dark light" />
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<title>Human Design Bodygraph Explorer</title>
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
<style>:root{--bg:#010102;--surface:#030408;--surface-2:#080b11;--border:#13161d;--border-strong:#242933;--text:#e2e4e9;--text-secondary:#a1a5ab;--muted:#84868b;--gold:#cc9c42;--gold-dim:#7b6540;--gold-glow:rgba(204,156,66,.2);--gold-subtle:rgba(204,156,66,.1);--hd-head:#855dd7;--hd-ajna:#3a61c4;--hd-throat:#94582a;--hd-g:#c99f00;--hd-heart:#cc272e;--hd-spleen:#3d9028;--hd-sp:#cb5a1a;--hd-sacral:#cc243d;--hd-root:#6f3600;--ch-personality:#79a1fc;--ch-design:#ac7d1b;--ch-both:#cc9c42;--ch-inactive:#1f2228;--success:#1da871;--error:#c53443;--radius:10px;--radius-sm:6px;--radius-pill:99px;--shadow-md:0 8px 40px rgba(0,0,0,.65), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 28px rgba(204,156,66,.15), 0 0 0 1px rgba(204,156,66,.2)}@supports (color:color(display-p3 0 0 0)){:root{--bg:color(display-p3 .00306656 .00431968 .00888397);--surface:color(display-p3 .013072 .016989 .0298495);--surface-2:color(display-p3 .0345774 .0431759 .0653236);--border:color(display-p3 .0763929 .0859556 .109705);--border-strong:color(display-p3 .144788 .159634 .196542);--text:color(display-p3 .889546 .895785 .910689);--text-secondary:color(display-p3 .635245 .644982 .668335);--muted:color(display-p3 .518127 .525635 .543633);--gold:color(display-p3 .76996 .617341 .321369);--gold-dim:color(display-p3 .469305 .400291 .270966);--gold-glow:color(display-p3 .76996 .617341 .321369/.2);--gold-subtle:color(display-p3 .76996 .617341 .321369/.1);--hd-head:color(display-p3 .496597 .372031 .817324);--hd-ajna:color(display-p3 .26389 .378111 .742207);--hd-throat:color(display-p3 .548969 .355242 .201432);--hd-g:color(display-p3 .777513 .62422 -.00225984);--hd-heart:color(display-p3 .737101 .219083 .211834);--hd-spleen:color(display-p3 .328385 .55681 .222852);--hd-sp:color(display-p3 .739686 .377576 .178173);--hd-sacral:color(display-p3 .735577 .213396 .258614);--hd-root:color(display-p3 .406873 .223096 .0609673);--ch-personality:color(display-p3 .508025 .628538 .962447);--ch-design:color(display-p3 .645333 .49681 .196492);--ch-both:color(display-p3 .76996 .617341 .321369);--ch-inactive:color(display-p3 .122731 .131518 .153019);--success:color(display-p3 .313719 .651039 .459895);--error:color(display-p3 .710345 .252818 .279408);--shadow-md:0 8px 40px color(display-p3 0 0 0/.65), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 28px color(display-p3 .76996 .617341 .321369/.15), 0 0 0 1px color(display-p3 .76996 .617341 .321369/.2)}}@supports (color:lab(0% 0 0)){:root{--bg:lab(.302122% .0219196 -.522962);--surface:lab(1.18159% .0276566 -1.4848);--surface-2:lab(3.00584% .0228807 -3.15676);--border:lab(7.15581% -.0557452 -5.11242);--border-strong:lab(16.3712% -.0768155 -7.37782);--text:lab(90.6942% -.142366 -2.26941);--text-secondary:lab(67.4758% -.215352 -3.76978);--muted:lab(55.8848% -.174642 -3.01716);--gold:lab(67.5798% 11.9379 52.333);--gold-dim:lab(44.394% 5.21132 24.4453);--gold-glow:lab(67.5798% 11.9379 52.333/.2);--gold-subtle:lab(67.5798% 11.9379 52.333/.1);--hd-head:lab(48.5159% 37.0934 -58.1781);--hd-ajna:lab(42.6654% 12.3084 -56.648);--hd-throat:lab(43.8304% 22.8021 36.6207);--hd-g:lab(67.813% 9.5214 93.33);--hd-heart:lab(45.7636% 63.3818 40.1799);--hd-spleen:lab(53.0764% -40.8778 44.314);--hd-sp:lab(52.4466% 43.5944 55.3775);--hd-sacral:lab(45.6635% 64.2059 31.2074);--hd-root:lab(29.855% 23.6799 41.1297);--ch-personality:lab(66.4233% 5.15938 -50.1959);--ch-design:lab(55.9353% 12.6865 55.2442);--ch-both:lab(67.5798% 11.9379 52.333);--ch-inactive:lab(12.9398% -.133917 -4.46223);--success:lab(61.2436% -46.7762 18.3644);--error:lab(45.8893% 57.7361 27.393);--shadow-md:0 8px 40px lab(0% 0 0/.65), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 28px lab(67.5798% 11.9379 52.333/.15), 0 0 0 1px lab(67.5798% 11.9379 52.333/.2)}}:root[data-theme=light]{--bg:#f4f5f8;--surface:#fbfcfe;--surface-2:#eceef3;--border:#d5d7dd;--border-strong:#babec6;--text:#181b1f;--text-secondary:#4a4d54;--muted:#606369;--gold:#8a6000;--gold-dim:#967c4f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@supports (color:color(display-p3 0 0 0)){:root[data-theme=light]{--bg:color(display-p3 .956515 .960735 .970805);--surface:color(display-p3 .98376 .986943 .994535);--surface-2:color(display-p3 .928401 .934691 .949715);--border:color(display-p3 .836244 .844458 .864107);--border-strong:color(display-p3 .731542 .743532 .772301);--text:color(display-p3 .096883 .103987 .12134);--text-secondary:color(display-p3 .291758 .301882 .326359);--muted:color(display-p3 .379924 .388781 .410092);--gold:color(display-p3 .524671 .380491 .0387678);--gold-dim:color(display-p3 .572756 .489268 .332751)}}@supports (color:lab(0% 0 0)){:root[data-theme=light]{--bg:lab(96.503% -.0977516 -1.51461);--surface:lab(98.8273% -.0742674 -1.13657);--surface-2:lab(94.1743% -.142753 -2.26963);--border:lab(86.0453% -.183702 -3.02233);--border-strong:lab(76.7468% -.254452 -4.52154);--text:lab(9.4703% -.119448 -3.722);--text-secondary:lab(32.6639% -.205323 -4.4957);--muted:lab(41.9548% -.197023 -3.7598);--gold:lab(44.2758% 13.6718 62.9124);--gold-dim:lab(53.685% 6.10271 28.558)}}:root[data-theme=light] body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=light] #bodygraph-container{background:var(--surface)}:root[data-theme=light] .chart-status,:root[data-theme=light] .tooltip{background:rgba(251,252,254,.92);background:color(display-p3 .98376 .986943 .994535/.92);background:lab(98.8273% -.0742674 -1.13657/.92)}:root[data-theme=light] #fs-bottom-bar{background:var(--surface-2)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--bg);height:100%;color:var(--text);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.030'/%3E%3C/svg%3E");font-family:Geist,Space Grotesk,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:1.5;overflow-x:hidden}#app{flex-direction:column;gap:8px;min-height:0;padding:8px 12px;display:flex}#loading-state{min-height:300px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}#loading-state p{letter-spacing:.06em;text-transform:uppercase;font-size:11px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--gold);border-radius:50%;width:32px;height:32px;animation:1.1s cubic-bezier(.4,0,.6,1) infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#bodygraph-container{border-radius:var(--radius);border:1px solid var(--border-strong);width:100%;max-width:680px;box-shadow:var(--shadow-gold);background:#010102;background:color(display-p3 .00306656 .00431968 .00888397);background:lab(.302122% .0219196 -.522962);margin:0 auto;transition:box-shadow .3s;position:relative;overflow:visible}#bodygraph-container:hover{box-shadow:0 0 40px rgba(204,156,66,.22),0 0 0 1px rgba(204,156,66,.3);box-shadow:0 0 40px color(display-p3 .76996 .617341 .321369/.22),0 0 0 1px color(display-p3 .76996 .617341 .321369/.3);box-shadow:0 0 40px lab(67.5798% 11.9379 52.333/.22),0 0 0 1px lab(67.5798% 11.9379 52.333/.3)}#bodygraph-container svg{width:100%;height:auto;max-height:min(62vh,560px);display:block}.center-group{cursor:pointer;transition:filter .16s}.center-group:hover{filter:brightness(1.2)drop-shadow(0 0 6px rgba(204,156,66,.35));filter:brightness(1.2)drop-shadow(0 0 6px color(display-p3 .76996 .617341 .321369/.35));filter:brightness(1.2)drop-shadow(0 0 6px lab(67.5798% 11.9379 52.333/.35))}.channel-line{cursor:pointer}.channel-line:hover .channel-vis{filter:drop-shadow(0 0 4px var(--gold-glow));stroke:var(--gold)!important;stroke-width:5px!important}.gate-badge{cursor:pointer}.gate-badge:hover circle{stroke:var(--gold)!important;stroke-opacity:1!important}.gate-badge:hover text{fill:var(--gold)!important}#info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:6px 12px;width:100%;max-width:680px;margin:0 auto;padding:10px 14px;display:grid}.info-row{flex-direction:column;gap:1px;display:flex}.info-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:9px;font-weight:700}.info-value{color:var(--text);font-size:12px;font-weight:500}.info-connection{flex-direction:column;grid-column:1/-1;gap:14px;display:flex}.info-subject-header{letter-spacing:.08em;text-transform:uppercase;color:var(--gold,var(--text));border-bottom:1px solid var(--border-strong);margin-bottom:2px;padding-bottom:4px;font-size:10px;font-weight:700}.info-subject-grid{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.channel-legend{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;max-width:680px;margin:0 auto;padding:4px 0;display:flex}.legend-item{color:var(--text-secondary);letter-spacing:.04em;align-items:center;gap:5px;font-size:9px;font-weight:500;display:flex}.legend-swatch{border-radius:2px;flex-shrink:0;width:18px;height:3px}#controls-panel{background:0 0;width:100%;max-width:680px;margin:0 auto;padding:4px 0}.controls-row{align-items:center;gap:6px;display:flex}.controls-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-shrink:0;font-size:9px;font-weight:700}.controls-value{color:var(--text-secondary);font-size:11px}.chart-hint{text-align:center;letter-spacing:.04em;width:100%;max-width:680px;color:var(--muted);margin:0 auto;padding:4px 0 2px;font-size:10px}.error-state{min-height:200px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-icon{opacity:.5;font-size:24px}.error-retry-btn{border:1px solid var(--border,rgba(128,128,160,.3));color:var(--accent,var(--text,inherit));font:inherit;letter-spacing:.02em;cursor:pointer;background:0 0;border-radius:999px;margin-top:4px;padding:7px 20px;font-size:11px;font-weight:600;transition:background .18s,border-color .18s}.error-retry-btn:hover{background:rgba(128,128,160,.12)}@media (max-width:420px){#app{gap:8px;padding:8px}#info-panel{grid-template-columns:1fr}}#bodygraph-container.is-loading{opacity:.55;pointer-events:none;cursor:wait;transition:opacity .15s}.chart-status{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--radius-pill);color:var(--gold);letter-spacing:.04em;z-index:900;opacity:0;pointer-events:none;background:rgba(5,7,13,.92);background:color(display-p3 .0216592 .0280553 .0483601/.92);background:lab(1.95095% .0425801 -2.41514/.92);border:1px solid rgba(204,156,66,.35);border:1px solid color(display-p3 .76996 .617341 .321369/.35);border:1px solid lab(67.5798% 11.9379 52.333/.35);max-height:0;padding:5px 18px;font-size:11px;font-weight:600;transition:max-height .24s cubic-bezier(.16,1,.3,1),opacity .24s,transform .24s cubic-bezier(.16,1,.3,1);position:fixed;top:10px;left:50%;overflow:hidden;transform:translate(-50%)translateY(-10px);box-shadow:0 4px 20px rgba(0,0,0,.5),0 0 0 1px rgba(204,156,66,.08);box-shadow:0 4px 20px color(display-p3 0 0 0/.5),0 0 0 1px color(display-p3 .76996 .617341 .321369/.08);box-shadow:0 4px 20px lab(0% 0 0/.5),0 0 0 1px lab(67.5798% 11.9379 52.333/.08)}.chart-status.visible{opacity:1;max-height:44px;transform:translate(-50%)translateY(0)}@keyframes gold-pulse{0%,to{border-color:rgba(204,156,66,.35);border-color:color(display-p3 .76996 .617341 .321369/.35);border-color:lab(67.5798% 11.9379 52.333/.35)}50%{border-color:rgba(204,156,66,.65);border-color:color(display-p3 .76996 .617341 .321369/.65);border-color:lab(67.5798% 11.9379 52.333/.65)}}.hd-popup{background:var(--surface-2);border:1px solid var(--border-strong);z-index:1000;opacity:0;pointer-events:none;border-radius:12px;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1);position:fixed;box-shadow:0 12px 48px rgba(0,0,0,.7),0 0 0 1px rgba(204,156,66,.15);box-shadow:0 12px 48px color(display-p3 0 0 0/.7),0 0 0 1px color(display-p3 .76996 .617341 .321369/.15);box-shadow:0 12px 48px lab(0% 0 0/.7),0 0 0 1px lab(67.5798% 11.9379 52.333/.15)}.hd-popup.visible{opacity:1;pointer-events:all}.hd-popup-header{align-items:flex-start;gap:10px;display:flex}.hd-popup-icon{color:var(--gold);text-align:center;flex-shrink:0;min-width:28px;font-size:18px;font-weight:700;line-height:1}.hd-popup-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.hd-popup-sub{color:var(--text-secondary);letter-spacing:.01em;margin-top:2px;font-size:11px;font-weight:400}.hd-popup-close{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:15px;line-height:1;transition:color .12s}.hd-popup-close:hover{color:var(--text)}.hd-popup-body{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;display:flex}.hd-popup-row{align-items:baseline;gap:8px;font-size:11px;line-height:1.45;display:flex}.hd-popup-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);flex-shrink:0;min-width:56px;padding-top:1px;font-size:9px;font-weight:700}.hd-popup-val{color:var(--text);font-weight:500}.hd-popup-gates{flex-wrap:wrap;gap:4px;font-weight:500;display:flex}.hd-popup-gate-chip{border:1px solid var(--border-strong);border-radius:var(--radius-pill,99px);background:var(--surface);color:var(--text);white-space:nowrap;padding:1px 7px;font-size:10px;display:inline-block}.hd-popup-note{color:var(--text-secondary);letter-spacing:.01em;margin-top:4px;font-size:10px;font-style:italic;line-height:1.5}.hd-detail-panel{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex:1;min-height:0;padding:2px 0 8px;overflow-y:auto}.hd-detail-panel .hd-popup-header{border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:8px}.hd-detail-panel .hd-popup-close{opacity:.5}.hd-detail-panel .hd-popup-close:hover{opacity:1;color:var(--text)}.ask-claude-btn{border-radius:var(--radius-sm);width:100%;color:var(--gold);letter-spacing:.04em;cursor:pointer;background:rgba(204,156,66,.12);background:color(display-p3 .76996 .617341 .321369/.12);background:lab(67.5798% 11.9379 52.333/.12);border:1px solid rgba(204,156,66,.4);border:1px solid color(display-p3 .76996 .617341 .321369/.4);border:1px solid lab(67.5798% 11.9379 52.333/.4);justify-content:center;align-items:center;gap:6px;margin-top:12px;padding:9px 16px;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:12px;font-weight:600;transition:background .16s,border-color .16s,box-shadow .16s;display:flex}.ask-claude-btn:hover:not(:disabled){background:rgba(204,156,66,.2);background:color(display-p3 .76996 .617341 .321369/.2);background:lab(67.5798% 11.9379 52.333/.2);border-color:rgba(204,156,66,.65);border-color:color(display-p3 .76996 .617341 .321369/.65);border-color:lab(67.5798% 11.9379 52.333/.65);box-shadow:0 0 0 3px rgba(204,156,66,.12);box-shadow:0 0 0 3px color(display-p3 .76996 .617341 .321369/.12);box-shadow:0 0 0 3px lab(67.5798% 11.9379 52.333/.12)}.ask-claude-btn:disabled{opacity:.45;cursor:not-allowed}.ask-claude-btn.sending{color:var(--gold-dim);opacity:.8;cursor:wait;pointer-events:none;background:rgba(204,156,66,.08);background:color(display-p3 .76996 .617341 .321369/.08);background:lab(67.5798% 11.9379 52.333/.08);border-color:rgba(204,156,66,.25);border-color:color(display-p3 .76996 .617341 .321369/.25);border-color:lab(67.5798% 11.9379 52.333/.25)}.ask-claude-btn.sent{color:var(--success);pointer-events:none;background:rgba(29,168,113,.15);background:color(display-p3 .313719 .651039 .459895/.15);background:lab(61.2436% -46.7762 18.3644/.15);border-color:rgba(29,168,113,.5);border-color:color(display-p3 .313719 .651039 .459895/.5);border-color:lab(61.2436% -46.7762 18.3644/.5)}.ask-claude-btn.error{color:var(--error);cursor:pointer;background:rgba(197,52,67,.15);background:color(display-p3 .710345 .252818 .279408/.15);background:lab(45.8893% 57.7361 27.393/.15);border-color:rgba(197,52,67,.5);border-color:color(display-p3 .710345 .252818 .279408/.5);border-color:lab(45.8893% 57.7361 27.393/.5)}.interactive-text{cursor:pointer;transition:color .15s,text-shadow .15s;position:relative}.interactive-text:hover{color:var(--gold);text-shadow:0 0 8px rgba(204,156,66,.4);text-shadow:0 0 8px color(display-p3 .76996 .617341 .321369/.4);text-shadow:0 0 8px lab(67.5798% 11.9379 52.333/.4)}.interactive-text:focus{color:var(--gold);text-shadow:0 0 8px rgba(204,156,66,.6);text-shadow:0 0 8px color(display-p3 .76996 .617341 .321369/.6);text-shadow:0 0 8px lab(67.5798% 11.9379 52.333/.6);outline:none}.planet-activation,.variable-arrow{outline:none;transition:opacity .15s}.planet-activation:hover,.variable-arrow:hover{opacity:.7}.planet-activation:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.variable-arrow:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.center-group:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.gate-badge:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.channel:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[data-gate]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[data-channel]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[data-center]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.tooltip{-webkit-backdrop-filter:blur(14px)saturate(1.6);backdrop-filter:blur(14px)saturate(1.6);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;z-index:1000;opacity:0;background:rgba(7,9,14,.92);background:color(display-p3 .0286832 .0352525 .0537785/.92);background:lab(2.44746% .00379235 -2.33402/.92);max-width:240px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed;box-shadow:0 8px 32px rgba(0,0,0,.55),inset 0 .5px rgba(255,255,255,.04);box-shadow:0 8px 32px color(display-p3 0 0 0/.55),inset 0 .5px color(display-p3 1 1 1/.04);box-shadow:0 8px 32px lab(0% 0 0/.55),inset 0 .5px lab(100% 0 0/.04)}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--gold-dim);letter-spacing:.03em;margin-top:4px;font-size:10px}.pan-zoom-controls{z-index:800;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:12px;right:12px}.pan-zoom-controls[hidden]{display:none!important}.pan-btn{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;width:36px;height:36px;box-shadow:var(--shadow-md);justify-content:center;align-items:center;font-family:inherit;font-size:18px;transition:all .15s;display:flex}.pan-btn.reset{width:auto;padding:0 10px;font-size:11px;font-weight:500}.pan-btn:hover{background:var(--surface);border-color:var(--gold-dim);color:var(--gold)}.pan-btn:active{transform:scale(.95)}.pan-btn--fullscreen{width:36px;height:36px}body.is-fullscreen{height:100vh;overflow:hidden}body.is-fullscreen #app{flex-direction:column;gap:0;width:100vw;max-width:100%;height:100vh;padding:0;display:flex;overflow:hidden}body.is-fullscreen #bodygraph-container{min-height:0;max-width:unset;width:100%;height:auto;box-shadow:none;background:0 0;border:none;flex:1;justify-content:center;align-items:center;margin:0;padding:16px 24px 0;display:flex}body.is-fullscreen #loading-state{flex:1;height:auto;min-height:0}body.is-fullscreen #bodygraph-container svg{width:auto;max-width:100%;height:100%;max-height:100%}body.is-fullscreen .pan-zoom-controls{top:16px;right:16px}#fs-bottom-bar{border-top:1px solid var(--border);background:#020306;background:color(display-p3 .0100648 .0127997 .0215356);background:lab(.889429% .0122339 -1.01076);flex-shrink:0;grid-template-rows:1fr;grid-template-columns:220px 1fr 220px;height:240px;min-height:180px;max-height:280px;display:grid}#fs-bottom-bar [data-column=left],#fs-bottom-bar [data-column=right]{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex-direction:column;gap:4px;padding:10px 14px 12px;display:flex;overflow-x:hidden;overflow-y:auto}#fs-bottom-bar [data-column=left]{border-right:1px solid var(--border)}#fs-bottom-bar [data-column=center]{pointer-events:none}#fs-bottom-bar [data-column=right]{border-left:1px solid var(--border);overflow-y:auto}#fs-bottom-bar [data-column]>*+*{border-top:1px solid var(--border);margin-top:4px;padding-top:8px}#fs-bottom-bar .hd-action-bar{flex-direction:column;padding:8px 0 0}#fs-bottom-bar .action-btn{justify-content:center;width:100%}.cancel-toast{background:var(--surface-2,#1e1e2e);border:1px solid var(--border-strong,#444);color:var(--text-muted,#aaa);border-radius:var(--radius-sm,6px);opacity:0;z-index:9999;pointer-events:none;box-shadow:var(--shadow-md,0 4px 12px rgba(0,0,0,.3));padding:8px 16px;font-family:inherit;font-size:12px;transition:opacity .3s,transform .3s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)translateY(20px)}.cancel-toast.visible{opacity:1;transform:translate(-50%)translateY(0)}.oe-loader{width:64px;height:64px;stroke:var(--gold);stroke-width:2px;fill:none;stroke-dasharray:200;stroke-dashoffset:200px;filter:drop-shadow(0 0 4px var(--gold-glow));animation:2.5s cubic-bezier(.16,1,.3,1) infinite oe-draw}@keyframes oe-draw{0%{stroke-dashoffset:200px;stroke-opacity:.1}50%{stroke-dashoffset:0;stroke-opacity:1;filter:drop-shadow(0 0 8px var(--gold))}to{stroke-dashoffset:-200px;stroke-opacity:.1}}.info-drawer{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;max-height:0;padding:14px 16px 12px;transition:max-height .26s cubic-bezier(.16,1,.3,1),opacity .2s,padding .2s;position:relative;overflow:hidden}.info-drawer:before{content:"";background:var(--border-strong);border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:0 auto 10px;display:block}.info-drawer.open{opacity:1;pointer-events:all;max-height:500px;padding:14px 16px 12px}.hd-action-bar{flex-wrap:wrap;gap:8px;padding:10px 16px 6px;display:flex}.action-btn{color:var(--gold);letter-spacing:.02em;cursor:pointer;white-space:nowrap;background:rgba(212,175,55,.08);border:1px solid rgba(212,175,55,.3);border-radius:8px;align-items:center;gap:6px;padding:7px 16px;font-size:12px;font-weight:600;transition:background .2s,border-color .2s,transform .1s;display:inline-flex}.action-btn:hover{background:rgba(212,175,55,.15);border-color:rgba(212,175,55,.5);transform:translateY(-1px)}.action-btn:active{background:rgba(212,175,55,.2);transform:translateY(0)}.action-btn--primary{color:var(--gold);background:linear-gradient(135deg,rgba(212,175,55,.2),rgba(180,140,30,.25));border-color:rgba(212,175,55,.5)}.action-btn--primary:hover{background:linear-gradient(135deg,rgba(212,175,55,.3),rgba(180,140,30,.35));border-color:rgba(212,175,55,.7)}:root[data-theme=light]{--bg:#f7f5f1;--surface:#fff;--surface-2:#f1eee9;--border:#dbd7d0;--border-strong:#bdb6ac;--text:#101215;--text-secondary:#4f5359;--muted:#6c6f73;--gold:#8d5f00;--gold-dim:#6d4b00;--gold-glow:rgba(141,95,0,.25);--gold-subtle:rgba(141,95,0,.1);--success:#007145;--error:#b1002b;--shadow-md:0 4px 24px rgba(0,0,0,.12), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 16px rgba(141,95,0,.18), 0 0 0 1px rgba(141,95,0,.22)}@supports (color:color(display-p3 0 0 0)){:root[data-theme=light]{--bg:color(display-p3 .967616 .959866 .945308);--surface:color(display-p3 1 1 1);--surface-2:color(display-p3 .943798 .93351 .914195);--border:color(display-p3 .855616 .842987 .819292);--border-strong:color(display-p3 .73602 .716348 .67952);--text:color(display-p3 .0633107 .0687189 .081922);--text-secondary:color(display-p3 .313002 .323251 .348016);--muted:color(display-p3 .426318 .433563 .450948);--gold:color(display-p3 .542549 .371783 -.107551);--gold-dim:color(display-p3 .414099 .299019 .034461);--gold-glow:color(display-p3 .542549 .371783 -.107551/.25);--gold-subtle:color(display-p3 .542549 .371783 -.107551/.1);--success:color(display-p3 -.0793084 .456092 .255685);--error:color(display-p3 .642198 .101724 .18242);--shadow-md:0 4px 24px color(display-p3 0 0 0/.12), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 16px color(display-p3 .542549 .371783 -.107551/.18), 0 0 0 1px color(display-p3 .542549 .371783 -.107551/.22)}}@supports (color:lab(0% 0 0)){:root[data-theme=light]{--bg:lab(96.5376% .34079 2.2589);--surface:lab(100% 0 0);--surface-2:lab(94.2232% .459701 3.01524);--border:lab(86.1085% .583261 3.77473);--border-strong:lab(74.5232% .975847 6.06879);--text:lab(5.23809% -.0738502 -2.43738);--text-secondary:lab(34.9842% -.210062 -4.49808);--muted:lab(46.6045% -.170052 -3.01461);--gold:lab(44.1995% 17.0662 84.3373);--gold-dim:lab(35.0077% 11.3181 50.9422);--gold-glow:lab(44.1995% 17.0662 84.3373/.25);--gold-subtle:lab(44.1995% 17.0662 84.3373/.1);--success:lab(41.7514% -55.3249 21.5039);--error:lab(37.5238% 64.2774 32.6097);--shadow-md:0 4px 24px lab(0% 0 0/.12), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 16px lab(44.1995% 17.0662 84.3373/.18), 0 0 0 1px lab(44.1995% 17.0662 84.3373/.22)}}:root[data-theme=light] body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-image:none}:root[data-theme=light] #bodygraph-container{border-color:var(--border-strong);background:#fff;background:color(display-p3 1 1 1);background:lab(100% 0 0)}:root[data-theme=light] .chart-status{background:rgba(247,245,241,.92);background:color(display-p3 .967616 .959866 .945308/.92);background:lab(96.5376% .34079 2.2589/.92);border-color:rgba(141,95,0,.35);border-color:color(display-p3 .542549 .371783 -.107551/.35);border-color:lab(44.1995% 17.0662 84.3373/.35)}:root[data-theme=light] .tooltip{border-color:var(--border-strong);background:rgba(255,255,255,.96);background:color(display-p3 1 1 1/.96);background:lab(100% 0 0/.96)}:root[data-theme=light] #info-panel{background:var(--surface);border-color:var(--border)}:root[data-theme=light] .hd-popup{background:var(--surface);border-color:var(--border-strong);box-shadow:0 12px 48px rgba(0,0,0,.18), 0 0 0 1px var(--border-strong)}@supports (color:color(display-p3 0 0 0)){:root[data-theme=light] .hd-popup{box-shadow:0 12px 48px color(display-p3 0 0 0/.18), 0 0 0 1px var(--border-strong)}}@supports (color:lab(0% 0 0)){:root[data-theme=light] .hd-popup{box-shadow:0 12px 48px lab(0% 0 0/.18), 0 0 0 1px var(--border-strong)}}:root[data-theme=light] #fs-bottom-bar{background:#f7f5f1;background:color(display-p3 .967616 .959866 .945308);background:lab(96.5376% .34079 2.2589);border-top-color:#caced4;border-top-color:color(display-p3 .796183 .806346 .830691);border-top-color:lab(82.5562% -.22167 -3.77336)}:root[data-theme=light] #fs-bottom-bar [data-column=left],:root[data-theme=light] #fs-bottom-bar [data-column=right]{background:#f1eeea;background:color(display-p3 .941472 .933762 .919279);background:lab(94.2176% .341028 2.25905)}:root[data-theme=light] #fs-bottom-bar [data-column=left]{border-right-color:#caced4;border-right-color:color(display-p3 .796183 .806346 .830691);border-right-color:lab(82.5562% -.22167 -3.77336)}:root[data-theme=light] #fs-bottom-bar [data-column=right]{border-left-color:#caced4;border-left-color:color(display-p3 .796183 .806346 .830691);border-left-color:lab(82.5562% -.22167 -3.77336)}:root[data-theme=light] #fs-bottom-bar [data-column]>*+*{border-top-color:#caced4;border-top-color:color(display-p3 .796183 .806346 .830691);border-top-color:lab(82.5562% -.22167 -3.77336)}svg.has-highlight [data-center],svg.has-highlight [data-channel],svg.has-highlight [data-gate]{opacity:.45;transition:opacity .2s,filter .2s}svg.has-highlight [data-highlighted=true]{opacity:1;filter:drop-shadow(0 0 4px rgba(212,160,23,.55))}svg.has-highlight [data-highlighted-primary=true]{opacity:1;filter:drop-shadow(0 0 8px rgba(212,160,23,.95))}svg.has-highlight [data-highlighted-primary=true] path,svg.has-highlight [data-highlighted-primary=true] circle,svg.has-highlight [data-highlighted-primary=true] polygon,svg.has-highlight [data-highlighted-primary=true] rect{stroke-width:calc(var(--stroke-w,1.5) * 1.4)}@media (max-width:480px){.pan-zoom-controls{gap:5px}.pan-btn,.pan-btn--fullscreen{background:color-mix(in oklab, var(--surface-2) 72%, transparent);-webkit-backdrop-filter:blur(6px);width:32px;height:32px;font-size:15px}.pan-btn.reset{width:32px;padding:0;font-size:0}.pan-btn.reset:before{content:"⟲";font-size:15px}}.hd-disclaimer{max-width:680px;color:var(--text-secondary);text-align:center;margin:4px auto 0;font-size:10px;line-height:1.5}.action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}body.layout-mandala #bodygraph-container,body.layout-mandala #info-panel,body.layout-mandala .channel-legend,body.layout-mandala #controls-panel,body.layout-mandala .chart-hint,body.layout-mandala .hd-disclaimer{max-width:760px}body.layout-mandala #bodygraph-container svg{max-height:min(72vh,720px)}.param-controls{background:var(--surface);border-top:1px solid var(--border);flex-shrink:0;padding:6px 12px}.param-controls-grid{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.param-group{flex-direction:row;align-items:center;gap:6px;display:flex}.param-group label{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.06em;white-space:nowrap;font-size:10px;font-weight:700}.param-group input[type=date],.param-group input[type=time],.param-group input[type=text]{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);color-scheme:inherit;border-radius:var(--radius-sm);width:120px;height:24px;padding:3px 6px;font-family:inherit;font-size:11px}@media (prefers-reduced-motion:no-preference){.param-group input[type=date],.param-group input[type=time],.param-group input[type=text]{transition:border-color .15s}}.param-group input:focus{border-color:var(--gold-dim);outline:none}.loc-searching{border-color:var(--gold-dim)!important}@media (prefers-reduced-motion:no-preference){.loc-searching{animation:1s ease-in-out infinite alternate loc-pulse}}@keyframes loc-pulse{0%{border-color:var(--gold-dim)}to{border-color:rgba(204,156,66,.55);border-color:color(display-p3 .76996 .617341 .321369/.55);border-color:lab(67.5798% 11.9379 52.333/.55)}}.param-group-loc{flex:1;position:relative}.param-group-loc input{width:100%}.loc-suggestions{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);z-index:100;max-height:200px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px rgba(0,0,0,.35);box-shadow:0 4px 12px color(display-p3 0 0 0/.35);box-shadow:0 4px 12px lab(0% 0 0/.35)}.loc-item{color:var(--text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px;overflow:hidden}.loc-item:last-child{border-bottom:none}@media (prefers-reduced-motion:no-preference){.loc-item{transition:background .1s,color .1s}}.loc-item:hover,.loc-item--active{background:var(--gold-subtle);color:var(--gold)}.loc-status{color:var(--text-secondary);letter-spacing:.01em;padding:8px 10px;font-size:11px;font-style:italic}.loc-status-error{color:#d76a5a;color:color(display-p3 .788241 .439621 .373983);color:lab(58.1265% 42.6447 29.9439);font-style:normal;font-weight:600}.param-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.param-cost-hint{color:var(--text-secondary);white-space:nowrap;letter-spacing:.02em;font-size:10px}.param-btn-icon{border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}@media (prefers-reduced-motion:no-preference){.param-btn-icon{transition:background .15s,border-color .15s,color .15s}}.param-btn-icon:hover{background:var(--surface-2);color:var(--text);border-color:var(--gold-dim)}.param-btn-primary{color:var(--gold);border-radius:var(--radius-sm);cursor:pointer;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;background:rgba(204,156,66,.12);background:color(display-p3 .76996 .617341 .321369/.12);background:lab(67.5798% 11.9379 52.333/.12);border:1px solid rgba(204,156,66,.4);border:1px solid color(display-p3 .76996 .617341 .321369/.4);border:1px solid lab(67.5798% 11.9379 52.333/.4);height:24px;padding:3px 10px;font-family:inherit;font-size:10px;font-weight:600}@media (prefers-reduced-motion:no-preference){.param-btn-primary{transition:background .15s,border-color .15s}}.param-btn-primary:hover:not(:disabled){background:rgba(204,156,66,.2);background:color(display-p3 .76996 .617341 .321369/.2);background:lab(67.5798% 11.9379 52.333/.2);border-color:rgba(204,156,66,.65);border-color:color(display-p3 .76996 .617341 .321369/.65);border-color:lab(67.5798% 11.9379 52.333/.65)}.param-btn-primary:disabled{opacity:.5;cursor:not-allowed}.param-extra-toggle{color:var(--text-secondary);white-space:nowrap;letter-spacing:.02em;cursor:pointer;align-items:center;gap:5px;font-size:10px;display:flex}.param-extra-toggle input[type=checkbox]{width:13px;height:13px;accent-color:var(--gold,oklch(72% .12 80));cursor:pointer}.param-extra-toggle input[type=checkbox]:disabled{cursor:not-allowed}.param-extra-toggle input[type=checkbox]:disabled~span{opacity:.5}:root[data-theme=light] .param-group input[type=date],:root[data-theme=light] .param-group input[type=time],:root[data-theme=light] .param-group input[type=text]{border-color:var(--border-strong);color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fdfcf9;background:color(display-p3 .990365 .986474 .97916);background:lab(98.849% .167638 1.12768)}:root[data-theme=light] .loc-suggestions{border-color:var(--border-strong);background:#fdfcf9;background:color(display-p3 .990365 .986474 .97916);background:lab(98.849% .167638 1.12768)}:root[data-theme=light] .param-btn-primary{background:rgba(160,112,0,.12);background:color(display-p3 .615135 .441554 -.0204711/.12);background:lab(51.2092% 16.2654 78.3504/.12);border-color:rgba(160,112,0,.4);border-color:color(display-p3 .615135 .441554 -.0204711/.4);border-color:lab(51.2092% 16.2654 78.3504/.4)}:root[data-theme=light] .param-btn-primary:hover:not(:disabled){background:rgba(160,112,0,.22);background:color(display-p3 .615135 .441554 -.0204711/.22);background:lab(51.2092% 16.2654 78.3504/.22);border-color:rgba(160,112,0,.65);border-color:color(display-p3 .615135 .441554 -.0204711/.65);border-color:lab(51.2092% 16.2654 78.3504/.65)}.param-summary-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:2px 0;margin-bottom:4px;padding:3px 4px 5px;font-size:10px;line-height:1.3;display:flex}.param-summary-bar[hidden]{display:none}.summary-name{color:var(--gold,#d6a54d);letter-spacing:.01em;padding-right:2px;font-size:12px;font-weight:700}@supports (color:color(display-p3 0 0 0)){.summary-name{color:var(--gold,color(display-p3 .808073 .654274 .358094))}}@supports (color:lab(0% 0 0)){.summary-name{color:var(--gold,lab(71.071% 11.7474 51.7651))}}.summary-datetime{font-variant-numeric:tabular-nums;color:var(--text-secondary);align-items:baseline;gap:4px;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:11px;display:inline-flex}.summary-time-sep{color:var(--border-strong);opacity:.7;font-family:inherit;font-size:9px}.summary-loc{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:200px;padding-left:2px;font-size:11px;font-style:italic;overflow:hidden}.summary-sep{background:var(--border-strong);opacity:.5;vertical-align:middle;flex-shrink:0;width:1px;height:11px;margin:0 7px;display:inline-block}
|
|
13
|
+
<style>:root{--bg:#010102;--surface:#030408;--surface-2:#080b11;--border:#13161d;--border-strong:#242933;--text:#e2e4e9;--text-secondary:#a1a5ab;--muted:#84868b;--gold:#cc9c42;--gold-dim:#7b6540;--gold-glow:rgba(204,156,66,.2);--gold-subtle:rgba(204,156,66,.1);--success:#1da871;--error:#c53443;--radius:10px;--radius-sm:6px;--radius-pill:99px;--oe-shadow-md:0 8px 40px rgba(0,0,0,.65), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 28px rgba(204,156,66,.15), 0 0 0 1px rgba(204,156,66,.2);--font-ui:var(--font-sans,system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif);--font-code:var(--font-mono,ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, Consolas, monospace);--oe-page-bg:var(--color-background-primary,var(--bg));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@supports (color:color(display-p3 0 0 0)){:root{--bg:color(display-p3 .00306656 .00431968 .00888397);--surface:color(display-p3 .013072 .016989 .0298495);--surface-2:color(display-p3 .0345774 .0431759 .0653236);--border:color(display-p3 .0763929 .0859556 .109705);--border-strong:color(display-p3 .144788 .159634 .196542);--text:color(display-p3 .889546 .895785 .910689);--text-secondary:color(display-p3 .635245 .644982 .668335);--muted:color(display-p3 .518127 .525635 .543633);--gold:color(display-p3 .76996 .617341 .321369);--gold-dim:color(display-p3 .469305 .400291 .270966);--gold-glow:color(display-p3 .76996 .617341 .321369/.2);--gold-subtle:color(display-p3 .76996 .617341 .321369/.1);--success:color(display-p3 .313719 .651039 .459895);--error:color(display-p3 .710345 .252818 .279408);--oe-shadow-md:0 8px 40px color(display-p3 0 0 0/.65), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 28px color(display-p3 .76996 .617341 .321369/.15), 0 0 0 1px color(display-p3 .76996 .617341 .321369/.2)}}@supports (color:lab(0% 0 0)){:root{--bg:lab(.302122% .0219196 -.522962);--surface:lab(1.18159% .0276566 -1.4848);--surface-2:lab(3.00584% .0228807 -3.15676);--border:lab(7.15581% -.0557452 -5.11242);--border-strong:lab(16.3712% -.0768155 -7.37782);--text:lab(90.6942% -.142366 -2.26941);--text-secondary:lab(67.4758% -.215352 -3.76978);--muted:lab(55.8848% -.174642 -3.01716);--gold:lab(67.5798% 11.9379 52.333);--gold-dim:lab(44.394% 5.21132 24.4453);--gold-glow:lab(67.5798% 11.9379 52.333/.2);--gold-subtle:lab(67.5798% 11.9379 52.333/.1);--success:lab(61.2436% -46.7762 18.3644);--error:lab(45.8893% 57.7361 27.393);--oe-shadow-md:0 8px 40px lab(0% 0 0/.65), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 28px lab(67.5798% 11.9379 52.333/.15), 0 0 0 1px lab(67.5798% 11.9379 52.333/.2)}}:root[data-theme=light]{--bg:#f4f5f8;--surface:#fbfcfe;--surface-2:#eceef3;--border:#d5d7dd;--border-strong:#babec6;--text:#181b1f;--text-secondary:#4a4d54;--muted:#606369;--gold:#8a6000;--gold-dim:#967c4f;--gold-glow:rgba(141,95,0,.25);--gold-subtle:rgba(141,95,0,.07);--success:#007145;--error:#b1002b;--oe-shadow-md:0 4px 24px rgba(0,0,0,.12), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 16px rgba(141,95,0,.18), 0 0 0 1px rgba(141,95,0,.22);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@supports (color:color(display-p3 0 0 0)){:root[data-theme=light]{--bg:color(display-p3 .956515 .960735 .970805);--surface:color(display-p3 .98376 .986943 .994535);--surface-2:color(display-p3 .928401 .934691 .949715);--border:color(display-p3 .836244 .844458 .864107);--border-strong:color(display-p3 .731542 .743532 .772301);--text:color(display-p3 .096883 .103987 .12134);--text-secondary:color(display-p3 .291758 .301882 .326359);--muted:color(display-p3 .379924 .388781 .410092);--gold:color(display-p3 .524671 .380491 .0387678);--gold-dim:color(display-p3 .572756 .489268 .332751);--gold-glow:color(display-p3 .542549 .371783 -.107551/.25);--gold-subtle:color(display-p3 .542549 .371783 -.107551/.07);--success:color(display-p3 -.0793084 .456092 .255685);--error:color(display-p3 .642198 .101724 .18242);--oe-shadow-md:0 4px 24px color(display-p3 0 0 0/.12), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 16px color(display-p3 .542549 .371783 -.107551/.18), 0 0 0 1px color(display-p3 .542549 .371783 -.107551/.22)}}@supports (color:lab(0% 0 0)){:root[data-theme=light]{--bg:lab(96.503% -.0977516 -1.51461);--surface:lab(98.8273% -.0742674 -1.13657);--surface-2:lab(94.1743% -.142753 -2.26963);--border:lab(86.0453% -.183702 -3.02233);--border-strong:lab(76.7468% -.254452 -4.52154);--text:lab(9.4703% -.119448 -3.722);--text-secondary:lab(32.6639% -.205323 -4.4957);--muted:lab(41.9548% -.197023 -3.7598);--gold:lab(44.2758% 13.6718 62.9124);--gold-dim:lab(53.685% 6.10271 28.558);--gold-glow:lab(44.1995% 17.0662 84.3373/.25);--gold-subtle:lab(44.1995% 17.0662 84.3373/.07);--success:lab(41.7514% -55.3249 21.5039);--error:lab(37.5238% 64.2774 32.6097);--oe-shadow-md:0 4px 24px lab(0% 0 0/.12), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 16px lab(44.1995% 17.0662 84.3373/.18), 0 0 0 1px lab(44.1995% 17.0662 84.3373/.22)}}:root{--safe-top:0px;--safe-right:0px;--safe-bottom:0px;--safe-left:0px;--oe-host-h:var(--host-height,var(--host-max-height,640px));--oe-chart-max:clamp(260px, calc(var(--oe-host-h) * .72), 560px);--oe-chart-max-lg:clamp(280px, calc(var(--oe-host-h) * .8), 720px);--oe-drawer-max:clamp(160px, calc(var(--oe-host-h) * .4), 360px);--oe-scroll-max:clamp(240px, calc(var(--oe-host-h) * .7), 560px)}html,body{font-family:var(--font-ui)}body{background-color:var(--oe-page-bg)}.oe-pannable{touch-action:pan-y}body.is-fullscreen .oe-pannable{touch-action:none}.pan-zoom-controls [hidden],.pan-btn[hidden]{display:none!important}.fs-hint-banner{top:calc(12px + var(--safe-top));z-index:9999;border-radius:var(--radius-pill);border:1px solid color-mix(in oklab, var(--gold) 35%, transparent);background:color-mix(in oklab, var(--surface-2) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);max-width:calc(100% - 32px);color:var(--text);font:600 11px/1.4 var(--font-ui);letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;opacity:0;padding:6px 16px;transition:opacity .3s;position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}.fs-hint-banner.visible{opacity:1}@media (prefers-reduced-motion:reduce){.fs-hint-banner{transition:none}}body.is-fullscreen{height:100vh;height:100dvh;overflow:hidden}body.is-fullscreen #app{width:100%;max-width:none;height:100%;min-height:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);flex-direction:column;gap:0;margin:0;display:flex;overflow:hidden}body.is-fullscreen #app:has(>#fs-bottom-bar){padding-bottom:0}body.is-fullscreen #app .oe-stage{aspect-ratio:auto;width:100%;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none;background:0 0;border:0;border-radius:0;flex:auto;justify-content:center;align-items:center;margin:0;padding:16px 24px 8px;display:flex;overflow:hidden}body.is-fullscreen #app .oe-stage>svg{width:auto;max-width:100%;height:100%;max-height:100%}body.is-fullscreen #app .oe-stage--doc{width:100%;max-width:880px;padding:20px 24px calc(16px + var(--safe-bottom));flex-direction:column;justify-content:flex-start;align-items:stretch;margin:0 auto;display:flex;overflow-y:auto}body.is-fullscreen #app #loading-state{flex:1;height:auto;min-height:0}body.is-fullscreen #app .pan-zoom-controls{top:calc(54px + var(--safe-top));right:calc(12px + var(--safe-right));bottom:auto}body .oe-info-button{top:calc(12px + var(--safe-top));right:calc(12px + var(--safe-right))}#app #fs-bottom-bar{height:clamp(170px, calc(var(--oe-host-h) * .3), 280px);padding-bottom:var(--safe-bottom);border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(200px,260px) minmax(0,1fr) minmax(200px,260px);display:grid}:root[data-safe-bottom] #app #fs-bottom-bar{height:calc(clamp(170px, calc(var(--oe-host-h) * .3), 280px) + var(--safe-bottom));grid-template-columns:minmax(0,1fr) minmax(0,1fr)}:root[data-safe-bottom] #fs-bottom-bar [data-column=center]{display:none}#fs-bottom-bar [data-column=left],#fs-bottom-bar [data-column=right]{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex-direction:column;gap:4px;min-height:0;padding:10px 14px 12px;display:flex;overflow-x:hidden;overflow-y:auto}#fs-bottom-bar [data-column=left]{border-right:1px solid var(--border)}#fs-bottom-bar [data-column=right]{border-left:1px solid var(--border)}#fs-bottom-bar [data-column=center]{pointer-events:none}#fs-bottom-bar [data-column]>*+*{border-top:1px solid var(--border);margin-top:4px;padding-top:8px}#fs-bottom-bar [class$=-action-bar],#fs-bottom-bar [class*=-action-bar\ ]{flex-direction:column;padding:8px 0 0}#fs-bottom-bar .action-btn{justify-content:center;width:100%}@media (max-width:640px){#app #fs-bottom-bar,:root[data-safe-bottom] #app #fs-bottom-bar{height:auto;max-height:42%;display:block;overflow-y:auto}#fs-bottom-bar [data-column=center]{display:none}#fs-bottom-bar [data-column=left],#fs-bottom-bar [data-column=right]{border:0;min-height:auto;overflow:visible}#fs-bottom-bar [data-column=right]{border-top:1px solid var(--border)}body.is-fullscreen #app .oe-stage{padding:8px}}body.is-pip{overflow:hidden}body.is-pip #app{gap:6px;padding:6px 8px}body.is-pip .oe-pip-hide,body.is-pip #param-controls-container,body.is-pip #chart-status,body.is-pip .oe-info-button{display:none!important}body.is-pip #app .pan-zoom-controls{top:6px;right:6px}:root{--hd-head:#855dd7;--hd-ajna:#3a61c4;--hd-throat:#94582a;--hd-g:#c99f00;--hd-heart:#cc272e;--hd-spleen:#3d9028;--hd-sp:#cb5a1a;--hd-sacral:#cc243d;--hd-root:#6f3600;--ch-personality:#79a1fc;--ch-design:#ac7d1b;--ch-both:#cc9c42;--ch-inactive:#1f2228}@supports (color:color(display-p3 0 0 0)){:root{--hd-head:color(display-p3 .496597 .372031 .817324);--hd-ajna:color(display-p3 .26389 .378111 .742207);--hd-throat:color(display-p3 .548969 .355242 .201432);--hd-g:color(display-p3 .777513 .62422 -.00225984);--hd-heart:color(display-p3 .737101 .219083 .211834);--hd-spleen:color(display-p3 .328385 .55681 .222852);--hd-sp:color(display-p3 .739686 .377576 .178173);--hd-sacral:color(display-p3 .735577 .213396 .258614);--hd-root:color(display-p3 .406873 .223096 .0609673);--ch-personality:color(display-p3 .508025 .628538 .962447);--ch-design:color(display-p3 .645333 .49681 .196492);--ch-both:color(display-p3 .76996 .617341 .321369);--ch-inactive:color(display-p3 .122731 .131518 .153019)}}@supports (color:lab(0% 0 0)){:root{--hd-head:lab(48.5159% 37.0934 -58.1781);--hd-ajna:lab(42.6654% 12.3084 -56.648);--hd-throat:lab(43.8304% 22.8021 36.6207);--hd-g:lab(67.813% 9.5214 93.33);--hd-heart:lab(45.7636% 63.3818 40.1799);--hd-spleen:lab(53.0764% -40.8778 44.314);--hd-sp:lab(52.4466% 43.5944 55.3775);--hd-sacral:lab(45.6635% 64.2059 31.2074);--hd-root:lab(29.855% 23.6799 41.1297);--ch-personality:lab(66.4233% 5.15938 -50.1959);--ch-design:lab(55.9353% 12.6865 55.2442);--ch-both:lab(67.5798% 11.9379 52.333);--ch-inactive:lab(12.9398% -.133917 -4.46223)}}:root[data-theme=light] body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=light] .chart-status,:root[data-theme=light] .tooltip{background:rgba(251,252,254,.92);background:color(display-p3 .98376 .986943 .994535/.92);background:lab(98.8273% -.0742674 -1.13657/.92)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html,body{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--oe-page-bg);height:100%;color:var(--text);font-family:var(--font-ui);font-size:13px;line-height:1.5;overflow-x:hidden}#app{flex-direction:column;gap:8px;min-height:0;padding:8px 12px;display:flex}#loading-state{min-height:300px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}#loading-state p{letter-spacing:.06em;text-transform:uppercase;font-size:11px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--gold);border-radius:50%;width:32px;height:32px;animation:1.1s cubic-bezier(.4,0,.6,1) infinite spin}@keyframes spin{to{transform:rotate(360deg)}}#bodygraph-container{border-radius:var(--radius);width:100%;max-width:680px;margin:0 auto;position:relative;overflow:visible}#bodygraph-container svg{width:100%;height:auto;max-height:var(--oe-chart-max-lg);display:block}#bodygraph-container svg .center[data-center]{transition:filter .16s}#bodygraph-container svg .center[data-center]:hover{filter:brightness(1.12)drop-shadow(0 0 6px rgba(204,156,66,.45));filter:brightness(1.12)drop-shadow(0 0 6px color(display-p3 .76996 .617341 .321369/.45));filter:brightness(1.12)drop-shadow(0 0 6px lab(67.5798% 11.9379 52.333/.45))}#bodygraph-container svg .channel[data-channel]{transition:filter .16s}#bodygraph-container svg .channel[data-channel]:hover{filter:brightness(1.25) drop-shadow(0 0 4px var(--gold-glow))}#bodygraph-container svg .gate[data-gate]:hover .gate-mark{transform:scale(1.22)}@media (prefers-reduced-motion:reduce){#bodygraph-container svg .gate[data-gate]:hover .gate-mark{transform:none}}#info-panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:6px 12px;width:100%;max-width:680px;margin:0 auto;padding:10px 14px;display:grid}.info-row{flex-direction:column;gap:1px;display:flex}.info-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:9px;font-weight:700}.info-value{color:var(--text);font-size:12px;font-weight:500}.info-connection{flex-direction:column;grid-column:1/-1;gap:14px;display:flex}.info-subject-header{letter-spacing:.08em;text-transform:uppercase;color:var(--gold,var(--text));border-bottom:1px solid var(--border-strong);margin-bottom:2px;padding-bottom:4px;font-size:10px;font-weight:700}.info-subject-grid{grid-template-columns:1fr 1fr;gap:6px 12px;display:grid}.channel-legend{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;max-width:680px;margin:0 auto;padding:4px 0;display:flex}.legend-item{color:var(--text-secondary);letter-spacing:.04em;align-items:center;gap:5px;font-size:9px;font-weight:500;display:flex}.legend-swatch{border-radius:2px;flex-shrink:0;width:18px;height:3px}#controls-panel{background:0 0;width:100%;max-width:680px;margin:0 auto;padding:4px 0}.controls-row{align-items:center;gap:6px;display:flex}.controls-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-shrink:0;font-size:9px;font-weight:700}.controls-value{color:var(--text-secondary);font-size:11px}.chart-hint{text-align:center;letter-spacing:.04em;width:100%;max-width:680px;color:var(--muted);margin:0 auto;padding:4px 0 2px;font-size:10px}.error-state{min-height:200px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-icon{opacity:.5;font-size:24px}.error-retry-btn{border:1px solid var(--border,rgba(128,128,160,.3));color:var(--accent,var(--text,inherit));font:inherit;letter-spacing:.02em;cursor:pointer;background:0 0;border-radius:999px;margin-top:4px;padding:7px 20px;font-size:11px;font-weight:600;transition:background .18s,border-color .18s}.error-retry-btn:hover{background:rgba(128,128,160,.12)}@media (max-width:420px){#app{gap:8px;padding:8px}#info-panel{grid-template-columns:1fr}}#bodygraph-container.is-loading{opacity:.55;pointer-events:none;cursor:wait;transition:opacity .15s}.chart-status{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--radius-pill);color:var(--gold);letter-spacing:.04em;z-index:900;opacity:0;pointer-events:none;background:rgba(5,7,13,.92);background:color(display-p3 .0216592 .0280553 .0483601/.92);background:lab(1.95095% .0425801 -2.41514/.92);border:1px solid rgba(204,156,66,.35);border:1px solid color(display-p3 .76996 .617341 .321369/.35);border:1px solid lab(67.5798% 11.9379 52.333/.35);max-height:0;padding:5px 18px;font-size:11px;font-weight:600;transition:max-height .24s cubic-bezier(.16,1,.3,1),opacity .24s,transform .24s cubic-bezier(.16,1,.3,1);position:fixed;top:10px;left:50%;overflow:hidden;transform:translate(-50%)translateY(-10px);box-shadow:0 4px 20px rgba(0,0,0,.5),0 0 0 1px rgba(204,156,66,.08);box-shadow:0 4px 20px color(display-p3 0 0 0/.5),0 0 0 1px color(display-p3 .76996 .617341 .321369/.08);box-shadow:0 4px 20px lab(0% 0 0/.5),0 0 0 1px lab(67.5798% 11.9379 52.333/.08)}.chart-status.visible{opacity:1;max-height:44px;transform:translate(-50%)translateY(0)}@keyframes gold-pulse{0%,to{border-color:rgba(204,156,66,.35);border-color:color(display-p3 .76996 .617341 .321369/.35);border-color:lab(67.5798% 11.9379 52.333/.35)}50%{border-color:rgba(204,156,66,.65);border-color:color(display-p3 .76996 .617341 .321369/.65);border-color:lab(67.5798% 11.9379 52.333/.65)}}.hd-popup{background:var(--surface-2);border:1px solid var(--border-strong);z-index:1000;opacity:0;pointer-events:none;border-radius:12px;width:min(340px,92vw);padding:14px 16px 12px;transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1);position:fixed;box-shadow:0 12px 48px rgba(0,0,0,.7),0 0 0 1px rgba(204,156,66,.15);box-shadow:0 12px 48px color(display-p3 0 0 0/.7),0 0 0 1px color(display-p3 .76996 .617341 .321369/.15);box-shadow:0 12px 48px lab(0% 0 0/.7),0 0 0 1px lab(67.5798% 11.9379 52.333/.15)}.hd-popup.visible{opacity:1;pointer-events:all}.hd-popup-header{align-items:flex-start;gap:10px;display:flex}.hd-popup-icon{color:var(--gold);text-align:center;flex-shrink:0;min-width:28px;font-size:18px;font-weight:700;line-height:1}.hd-popup-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.hd-popup-sub{color:var(--text-secondary);letter-spacing:.01em;margin-top:2px;font-size:11px;font-weight:400}.hd-popup-close{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:15px;line-height:1;transition:color .12s}.hd-popup-close:hover{color:var(--text)}.hd-popup-body{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;display:flex}.hd-popup-row{align-items:baseline;gap:8px;font-size:11px;line-height:1.45;display:flex}.hd-popup-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);flex-shrink:0;min-width:56px;padding-top:1px;font-size:9px;font-weight:700}.hd-popup-val{color:var(--text);font-weight:500}.hd-popup-gates{flex-wrap:wrap;gap:4px;font-weight:500;display:flex}.hd-popup-gate-chip{border:1px solid var(--border-strong);border-radius:var(--radius-pill,99px);background:var(--surface);color:var(--text);white-space:nowrap;padding:1px 7px;font-size:10px;display:inline-block}.hd-popup-note{color:var(--text-secondary);letter-spacing:.01em;margin-top:4px;font-size:10px;font-style:italic;line-height:1.5}.hd-detail-panel{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex:1;min-height:0;padding:2px 0 8px;overflow-y:auto}.hd-detail-panel .hd-popup-header{border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:8px}.hd-detail-panel .hd-popup-close{opacity:.5}.hd-detail-panel .hd-popup-close:hover{opacity:1;color:var(--text)}.ask-claude-btn{border-radius:var(--radius-sm);width:100%;color:var(--gold);font-family:var(--font-ui);letter-spacing:.04em;cursor:pointer;background:rgba(204,156,66,.12);background:color(display-p3 .76996 .617341 .321369/.12);background:lab(67.5798% 11.9379 52.333/.12);border:1px solid rgba(204,156,66,.4);border:1px solid color(display-p3 .76996 .617341 .321369/.4);border:1px solid lab(67.5798% 11.9379 52.333/.4);justify-content:center;align-items:center;gap:6px;margin-top:12px;padding:9px 16px;font-size:12px;font-weight:600;transition:background .16s,border-color .16s,box-shadow .16s;display:flex}.ask-claude-btn:hover:not(:disabled){background:rgba(204,156,66,.2);background:color(display-p3 .76996 .617341 .321369/.2);background:lab(67.5798% 11.9379 52.333/.2);border-color:rgba(204,156,66,.65);border-color:color(display-p3 .76996 .617341 .321369/.65);border-color:lab(67.5798% 11.9379 52.333/.65);box-shadow:0 0 0 3px rgba(204,156,66,.12);box-shadow:0 0 0 3px color(display-p3 .76996 .617341 .321369/.12);box-shadow:0 0 0 3px lab(67.5798% 11.9379 52.333/.12)}.ask-claude-btn:disabled{opacity:.45;cursor:not-allowed}.ask-claude-btn.sending{color:var(--gold-dim);opacity:.8;cursor:wait;pointer-events:none;background:rgba(204,156,66,.08);background:color(display-p3 .76996 .617341 .321369/.08);background:lab(67.5798% 11.9379 52.333/.08);border-color:rgba(204,156,66,.25);border-color:color(display-p3 .76996 .617341 .321369/.25);border-color:lab(67.5798% 11.9379 52.333/.25)}.ask-claude-btn.sent{color:var(--success);pointer-events:none;background:rgba(29,168,113,.15);background:color(display-p3 .313719 .651039 .459895/.15);background:lab(61.2436% -46.7762 18.3644/.15);border-color:rgba(29,168,113,.5);border-color:color(display-p3 .313719 .651039 .459895/.5);border-color:lab(61.2436% -46.7762 18.3644/.5)}.ask-claude-btn.error{color:var(--error);cursor:pointer;background:rgba(197,52,67,.15);background:color(display-p3 .710345 .252818 .279408/.15);background:lab(45.8893% 57.7361 27.393/.15);border-color:rgba(197,52,67,.5);border-color:color(display-p3 .710345 .252818 .279408/.5);border-color:lab(45.8893% 57.7361 27.393/.5)}.interactive-text{cursor:pointer;transition:color .15s,text-shadow .15s;position:relative}.interactive-text:hover{color:var(--gold);text-shadow:0 0 8px rgba(204,156,66,.4);text-shadow:0 0 8px color(display-p3 .76996 .617341 .321369/.4);text-shadow:0 0 8px lab(67.5798% 11.9379 52.333/.4)}.interactive-text:focus{color:var(--gold);text-shadow:0 0 8px rgba(204,156,66,.6);text-shadow:0 0 8px color(display-p3 .76996 .617341 .321369/.6);text-shadow:0 0 8px lab(67.5798% 11.9379 52.333/.6);outline:none}.planet-activation,.variable-arrow{outline:none;transition:opacity .15s}.planet-activation:hover,.variable-arrow:hover{opacity:.7}.planet-activation:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.variable-arrow:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[data-gate]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[data-channel]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}[data-center]:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.tooltip{-webkit-backdrop-filter:blur(14px)saturate(1.6);backdrop-filter:blur(14px)saturate(1.6);border:1px solid var(--border-strong);border-radius:var(--radius);pointer-events:none;z-index:1000;opacity:0;background:rgba(7,9,14,.92);background:color(display-p3 .0286832 .0352525 .0537785/.92);background:lab(2.44746% .00379235 -2.33402/.92);max-width:240px;padding:8px 12px;font-size:12px;transition:opacity .12s;position:fixed;box-shadow:0 8px 32px rgba(0,0,0,.55),inset 0 .5px rgba(255,255,255,.04);box-shadow:0 8px 32px color(display-p3 0 0 0/.55),inset 0 .5px color(display-p3 1 1 1/.04);box-shadow:0 8px 32px lab(0% 0 0/.55),inset 0 .5px lab(100% 0 0/.04)}.tooltip.visible{opacity:1}.tooltip-title{color:var(--text);margin-bottom:2px;font-weight:700}.tooltip-detail{color:var(--text-secondary);line-height:1.4}.tooltip-hint{color:var(--gold-dim);letter-spacing:.03em;margin-top:4px;font-size:10px}.pan-zoom-controls{z-index:800;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:12px;right:12px}.pan-zoom-controls[hidden]{display:none!important}.pan-btn{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;width:36px;height:36px;box-shadow:var(--oe-shadow-md);justify-content:center;align-items:center;font-family:inherit;font-size:18px;transition:all .15s;display:flex}.pan-btn.reset{width:auto;padding:0 10px;font-size:11px;font-weight:500}.pan-btn:hover{background:var(--surface);border-color:var(--gold-dim);color:var(--gold)}.pan-btn:active{transform:scale(.95)}.pan-btn--fullscreen{width:36px;height:36px}.cancel-toast{background:var(--surface-2,#1e1e2e);border:1px solid var(--border-strong,#444);color:var(--text-muted,#aaa);border-radius:var(--radius-sm,6px);opacity:0;z-index:9999;pointer-events:none;box-shadow:var(--oe-shadow-md,0 4px 12px rgba(0,0,0,.3));padding:8px 16px;font-family:inherit;font-size:12px;transition:opacity .3s,transform .3s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)translateY(20px)}.cancel-toast.visible{opacity:1;transform:translate(-50%)translateY(0)}.oe-loader{width:64px;height:64px;stroke:var(--gold);stroke-width:2px;fill:none;stroke-dasharray:200;stroke-dashoffset:200px;filter:drop-shadow(0 0 4px var(--gold-glow));animation:2.5s cubic-bezier(.16,1,.3,1) infinite oe-draw}@keyframes oe-draw{0%{stroke-dashoffset:200px;stroke-opacity:.1}50%{stroke-dashoffset:0;stroke-opacity:1;filter:drop-shadow(0 0 8px var(--gold))}to{stroke-dashoffset:-200px;stroke-opacity:.1}}.info-drawer{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius);width:100%;box-shadow:var(--oe-shadow-md);opacity:0;pointer-events:none;max-height:0;padding:14px 16px 12px;transition:max-height .26s cubic-bezier(.16,1,.3,1),opacity .2s,padding .2s;position:relative;overflow:hidden}.info-drawer:before{content:"";background:var(--border-strong);border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:0 auto 10px;display:block}.info-drawer.open{opacity:1;pointer-events:all;max-height:500px;padding:14px 16px 12px}.hd-action-bar{flex-wrap:wrap;gap:8px;padding:10px 16px 6px;display:flex}.action-btn{color:var(--gold);letter-spacing:.02em;cursor:pointer;white-space:nowrap;background:rgba(212,175,55,.08);border:1px solid rgba(212,175,55,.3);border-radius:8px;align-items:center;gap:6px;padding:7px 16px;font-size:12px;font-weight:600;transition:background .2s,border-color .2s,transform .1s;display:inline-flex}.action-btn:hover{background:rgba(212,175,55,.15);border-color:rgba(212,175,55,.5);transform:translateY(-1px)}.action-btn:active{background:rgba(212,175,55,.2);transform:translateY(0)}.action-btn--primary{color:var(--gold);background:linear-gradient(135deg,rgba(212,175,55,.2),rgba(180,140,30,.25));border-color:rgba(212,175,55,.5)}.action-btn--primary:hover{background:linear-gradient(135deg,rgba(212,175,55,.3),rgba(180,140,30,.35));border-color:rgba(212,175,55,.7)}:root[data-theme=light]{--bg:#f7f5f1;--surface:#fff;--surface-2:#f1eee9;--border:#dbd7d0;--border-strong:#bdb6ac;--text:#101215;--text-secondary:#4f5359;--muted:#6c6f73;--gold:#8d5f00;--gold-dim:#6d4b00;--gold-glow:rgba(141,95,0,.25);--gold-subtle:rgba(141,95,0,.1);--success:#007145;--error:#b1002b;--oe-shadow-md:0 4px 24px rgba(0,0,0,.12), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 16px rgba(141,95,0,.18), 0 0 0 1px rgba(141,95,0,.22)}@supports (color:color(display-p3 0 0 0)){:root[data-theme=light]{--bg:color(display-p3 .967616 .959866 .945308);--surface:color(display-p3 1 1 1);--surface-2:color(display-p3 .943798 .93351 .914195);--border:color(display-p3 .855616 .842987 .819292);--border-strong:color(display-p3 .73602 .716348 .67952);--text:color(display-p3 .0633107 .0687189 .081922);--text-secondary:color(display-p3 .313002 .323251 .348016);--muted:color(display-p3 .426318 .433563 .450948);--gold:color(display-p3 .542549 .371783 -.107551);--gold-dim:color(display-p3 .414099 .299019 .034461);--gold-glow:color(display-p3 .542549 .371783 -.107551/.25);--gold-subtle:color(display-p3 .542549 .371783 -.107551/.1);--success:color(display-p3 -.0793084 .456092 .255685);--error:color(display-p3 .642198 .101724 .18242);--oe-shadow-md:0 4px 24px color(display-p3 0 0 0/.12), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 16px color(display-p3 .542549 .371783 -.107551/.18), 0 0 0 1px color(display-p3 .542549 .371783 -.107551/.22)}}@supports (color:lab(0% 0 0)){:root[data-theme=light]{--bg:lab(96.5376% .34079 2.2589);--surface:lab(100% 0 0);--surface-2:lab(94.2232% .459701 3.01524);--border:lab(86.1085% .583261 3.77473);--border-strong:lab(74.5232% .975847 6.06879);--text:lab(5.23809% -.0738502 -2.43738);--text-secondary:lab(34.9842% -.210062 -4.49808);--muted:lab(46.6045% -.170052 -3.01461);--gold:lab(44.1995% 17.0662 84.3373);--gold-dim:lab(35.0077% 11.3181 50.9422);--gold-glow:lab(44.1995% 17.0662 84.3373/.25);--gold-subtle:lab(44.1995% 17.0662 84.3373/.1);--success:lab(41.7514% -55.3249 21.5039);--error:lab(37.5238% 64.2774 32.6097);--oe-shadow-md:0 4px 24px lab(0% 0 0/.12), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 16px lab(44.1995% 17.0662 84.3373/.18), 0 0 0 1px lab(44.1995% 17.0662 84.3373/.22)}}:root[data-theme=light] body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-image:none}:root[data-theme=light] .chart-status{background:rgba(247,245,241,.92);background:color(display-p3 .967616 .959866 .945308/.92);background:lab(96.5376% .34079 2.2589/.92);border-color:rgba(141,95,0,.35);border-color:color(display-p3 .542549 .371783 -.107551/.35);border-color:lab(44.1995% 17.0662 84.3373/.35)}:root[data-theme=light] .tooltip{border-color:var(--border-strong);background:rgba(255,255,255,.96);background:color(display-p3 1 1 1/.96);background:lab(100% 0 0/.96)}:root[data-theme=light] #info-panel{background:var(--surface);border-color:var(--border)}:root[data-theme=light] .hd-popup{background:var(--surface);border-color:var(--border-strong);box-shadow:0 12px 48px rgba(0,0,0,.18), 0 0 0 1px var(--border-strong)}@supports (color:color(display-p3 0 0 0)){:root[data-theme=light] .hd-popup{box-shadow:0 12px 48px color(display-p3 0 0 0/.18), 0 0 0 1px var(--border-strong)}}@supports (color:lab(0% 0 0)){:root[data-theme=light] .hd-popup{box-shadow:0 12px 48px lab(0% 0 0/.18), 0 0 0 1px var(--border-strong)}}svg.has-highlight [data-center],svg.has-highlight [data-channel],svg.has-highlight [data-gate]{opacity:.45;transition:opacity .2s,filter .2s}svg.has-highlight [data-highlighted=true]{opacity:1;filter:drop-shadow(0 0 4px rgba(212,160,23,.55))}svg.has-highlight [data-highlighted-primary=true]{opacity:1;filter:drop-shadow(0 0 8px rgba(212,160,23,.95))}svg.has-highlight [data-highlighted-primary=true] path,svg.has-highlight [data-highlighted-primary=true] circle,svg.has-highlight [data-highlighted-primary=true] polygon,svg.has-highlight [data-highlighted-primary=true] rect{stroke-width:calc(var(--stroke-w,1.5) * 1.4)}svg.has-activation-highlight [data-highlighted-context]{opacity:1;filter:none}svg.has-activation-highlight [data-highlighted-context]>:not([data-highlighted]):not([data-highlighted-context]){opacity:.35}@media (max-width:480px){.pan-zoom-controls{gap:5px}.pan-btn,.pan-btn--fullscreen{background:color-mix(in oklab, var(--surface-2) 72%, transparent);-webkit-backdrop-filter:blur(6px);width:32px;height:32px;font-size:15px}.pan-btn.reset{width:32px;padding:0;font-size:0}.pan-btn.reset:before{content:"⟲";font-size:15px}}.hd-disclaimer{max-width:680px;color:var(--text-secondary);text-align:center;margin:4px auto 0;font-size:10px;line-height:1.5}.action-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}body.layout-mandala #bodygraph-container,body.layout-mandala #info-panel,body.layout-mandala .channel-legend,body.layout-mandala #controls-panel,body.layout-mandala .chart-hint,body.layout-mandala .hd-disclaimer{max-width:760px}body.layout-mandala #bodygraph-container svg{max-height:var(--oe-chart-max-lg)}@media (min-width:900px){body.is-fullscreen #app{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) minmax(280px,340px);display:grid}body.is-fullscreen #app>.oe-stage,body.is-fullscreen #app>#loading-state{grid-area:1/1/span 2}body.is-fullscreen #app>#fs-bottom-bar{border-top:0;border-left:1px solid var(--border);grid-area:1/2/span 2;height:auto;display:block;overflow-y:auto}body.is-fullscreen #fs-bottom-bar [data-column=center]{display:none}body.is-fullscreen #fs-bottom-bar [data-column=left],body.is-fullscreen #fs-bottom-bar [data-column=right]{border:0;min-height:auto;overflow:visible}body.is-fullscreen #fs-bottom-bar [data-column=right]{border-top:1px solid var(--border)}}@media (max-width:640px){body.is-fullscreen #app #fs-bottom-bar{max-height:30%}}#fs-bottom-bar .hd-disclaimer{text-align:left;margin:8px 0 0}.param-controls{background:var(--surface);border-top:1px solid var(--border);flex-shrink:0;padding:6px 12px}.param-controls-grid{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.param-group{flex-direction:row;align-items:center;gap:6px;display:flex}.param-group label{text-transform:uppercase;color:var(--text-secondary);letter-spacing:.06em;white-space:nowrap;font-size:10px;font-weight:700}.param-group input[type=date],.param-group input[type=time],.param-group input[type=text]{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);color-scheme:inherit;border-radius:var(--radius-sm);width:120px;height:24px;padding:3px 6px;font-family:inherit;font-size:11px}@media (prefers-reduced-motion:no-preference){.param-group input[type=date],.param-group input[type=time],.param-group input[type=text]{transition:border-color .15s}}.param-group input:focus{border-color:var(--gold-dim);outline:none}.loc-searching{border-color:var(--gold-dim)!important}@media (prefers-reduced-motion:no-preference){.loc-searching{animation:1s ease-in-out infinite alternate loc-pulse}}@keyframes loc-pulse{0%{border-color:var(--gold-dim)}to{border-color:rgba(204,156,66,.55);border-color:color(display-p3 .76996 .617341 .321369/.55);border-color:lab(67.5798% 11.9379 52.333/.55)}}.param-group-loc{flex:1;position:relative}.param-group-loc input{width:100%}.loc-suggestions{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);z-index:100;max-height:200px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px rgba(0,0,0,.35);box-shadow:0 4px 12px color(display-p3 0 0 0/.35);box-shadow:0 4px 12px lab(0% 0 0/.35)}.loc-item{color:var(--text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px;overflow:hidden}.loc-item:last-child{border-bottom:none}@media (prefers-reduced-motion:no-preference){.loc-item{transition:background .1s,color .1s}}.loc-item:hover,.loc-item--active{background:var(--gold-subtle);color:var(--gold)}.loc-status{color:var(--text-secondary);letter-spacing:.01em;padding:8px 10px;font-size:11px;font-style:italic}.loc-status-error{color:#d76a5a;color:color(display-p3 .788241 .439621 .373983);color:lab(58.1265% 42.6447 29.9439);font-style:normal;font-weight:600}.param-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.param-cost-hint{color:var(--text-secondary);white-space:nowrap;letter-spacing:.02em;font-size:10px}.param-btn-icon{border:1px solid var(--border-strong);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;background:0 0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}@media (prefers-reduced-motion:no-preference){.param-btn-icon{transition:background .15s,border-color .15s,color .15s}}.param-btn-icon:hover{background:var(--surface-2);color:var(--text);border-color:var(--gold-dim)}.param-btn-primary{color:var(--gold);border-radius:var(--radius-sm);cursor:pointer;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;background:rgba(204,156,66,.12);background:color(display-p3 .76996 .617341 .321369/.12);background:lab(67.5798% 11.9379 52.333/.12);border:1px solid rgba(204,156,66,.4);border:1px solid color(display-p3 .76996 .617341 .321369/.4);border:1px solid lab(67.5798% 11.9379 52.333/.4);height:24px;padding:3px 10px;font-family:inherit;font-size:10px;font-weight:600}@media (prefers-reduced-motion:no-preference){.param-btn-primary{transition:background .15s,border-color .15s}}.param-btn-primary:hover:not(:disabled){background:rgba(204,156,66,.2);background:color(display-p3 .76996 .617341 .321369/.2);background:lab(67.5798% 11.9379 52.333/.2);border-color:rgba(204,156,66,.65);border-color:color(display-p3 .76996 .617341 .321369/.65);border-color:lab(67.5798% 11.9379 52.333/.65)}.param-btn-primary:disabled{opacity:.5;cursor:not-allowed}.param-extra-toggle{color:var(--text-secondary);white-space:nowrap;letter-spacing:.02em;cursor:pointer;align-items:center;gap:5px;font-size:10px;display:flex}.param-extra-toggle input[type=checkbox]{width:13px;height:13px;accent-color:var(--gold,oklch(72% .12 80));cursor:pointer}.param-extra-toggle input[type=checkbox]:disabled{cursor:not-allowed}.param-extra-toggle input[type=checkbox]:disabled~span{opacity:.5}:root[data-theme=light] .param-group input[type=date],:root[data-theme=light] .param-group input[type=time],:root[data-theme=light] .param-group input[type=text]{border-color:var(--border-strong);color:var(--text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#fdfcf9;background:color(display-p3 .990365 .986474 .97916);background:lab(98.849% .167638 1.12768)}:root[data-theme=light] .loc-suggestions{border-color:var(--border-strong);background:#fdfcf9;background:color(display-p3 .990365 .986474 .97916);background:lab(98.849% .167638 1.12768)}:root[data-theme=light] .param-btn-primary{background:rgba(160,112,0,.12);background:color(display-p3 .615135 .441554 -.0204711/.12);background:lab(51.2092% 16.2654 78.3504/.12);border-color:rgba(160,112,0,.4);border-color:color(display-p3 .615135 .441554 -.0204711/.4);border-color:lab(51.2092% 16.2654 78.3504/.4)}:root[data-theme=light] .param-btn-primary:hover:not(:disabled){background:rgba(160,112,0,.22);background:color(display-p3 .615135 .441554 -.0204711/.22);background:lab(51.2092% 16.2654 78.3504/.22);border-color:rgba(160,112,0,.65);border-color:color(display-p3 .615135 .441554 -.0204711/.65);border-color:lab(51.2092% 16.2654 78.3504/.65)}.param-summary-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:2px 0;margin-bottom:4px;padding:3px 4px 5px;font-size:10px;line-height:1.3;display:flex}.param-summary-bar[hidden]{display:none}.summary-name{color:var(--gold,#d6a54d);letter-spacing:.01em;padding-right:2px;font-size:12px;font-weight:700}@supports (color:color(display-p3 0 0 0)){.summary-name{color:var(--gold,color(display-p3 .808073 .654274 .358094))}}@supports (color:lab(0% 0 0)){.summary-name{color:var(--gold,lab(71.071% 11.7474 51.7651))}}.summary-datetime{font-family:var(--font-code,ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace);font-variant-numeric:tabular-nums;color:var(--text-secondary);align-items:baseline;gap:4px;font-size:11px;display:inline-flex}.summary-time-sep{color:var(--border-strong);opacity:.7;font-family:inherit;font-size:9px}.summary-loc{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:200px;padding-left:2px;font-size:11px;font-style:italic;overflow:hidden}.summary-sep{background:var(--border-strong);opacity:.5;vertical-align:middle;flex-shrink:0;width:1px;height:11px;margin:0 7px;display:inline-block}
|
|
14
14
|
/*$vite$:1*/</style>
|
|
15
15
|
</head>
|
|
16
16
|
<body>
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<p>Drawing your bodygraph…</p>
|
|
21
21
|
</div>
|
|
22
22
|
<div id="chart-status" class="chart-status" aria-live="polite"></div>
|
|
23
|
-
<div id="bodygraph-container" hidden>
|
|
23
|
+
<div id="bodygraph-container" class="oe-stage" hidden>
|
|
24
24
|
<div id="pan-zoom-controls" class="pan-zoom-controls" hidden>
|
|
25
25
|
<button id="btn-zoom-in" class="pan-btn" aria-label="Zoom in">+</button>
|
|
26
26
|
<button id="btn-zoom-out" class="pan-btn" aria-label="Zoom out">-</button>
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
<div id="param-controls-container" hidden></div>
|
|
32
32
|
<div id="info-panel" hidden></div>
|
|
33
33
|
<div id="controls-panel" hidden></div>
|
|
34
|
-
<p class="hd-disclaimer">
|
|
34
|
+
<p id="hd-disclaimer" class="hd-disclaimer">
|
|
35
35
|
For insight and entertainment; not scientifically validated. Human Design
|
|
36
36
|
was originated by Ra Uru Hu — OpenEphemeris is an independent calculation
|
|
37
37
|
service, not affiliated with or endorsed by Jovian Archive.
|
|
@@ -130,7 +130,7 @@ var l = /* @__PURE__ */ Symbol("zod_brand"), u = class extends Error {
|
|
|
130
130
|
function p(e5) {
|
|
131
131
|
return e5 && Object.assign(f, e5), f;
|
|
132
132
|
}
|
|
133
|
-
var m = t({ BIGINT_FORMAT_RANGES: () => ke, Class: () => Ze, NUMBER_FORMAT_RANGES: () => Oe, aborted: () => Le, allowsEval: () => _e, assert: () => te, assertEqual: () => h, assertIs: () => _, assertNever: () => ee, assertNotEqual: () => g, assignProp: () => se, base64ToUint8Array: () => Ge, base64urlToUint8Array: () => qe, cached: () => ne, captureStackTrace: () => he, cleanEnum: () => We, cleanRegex: () => ie, clone: () => Te, cloneDef: () => le, createTransparentProxy: () => Ee, defineLazy: () => S, esc: () => pe, escapeRegex: () => we, extend: () => Me, finalizeIssue: () => Be, floatSafeRemainder: () =>
|
|
133
|
+
var m = t({ BIGINT_FORMAT_RANGES: () => ke, Class: () => Ze, NUMBER_FORMAT_RANGES: () => Oe, aborted: () => Le, allowsEval: () => _e, assert: () => te, assertEqual: () => h, assertIs: () => _, assertNever: () => ee, assertNotEqual: () => g, assignProp: () => se, base64ToUint8Array: () => Ge, base64urlToUint8Array: () => qe, cached: () => ne, captureStackTrace: () => he, cleanEnum: () => We, cleanRegex: () => ie, clone: () => Te, cloneDef: () => le, createTransparentProxy: () => Ee, defineLazy: () => S, esc: () => pe, escapeRegex: () => we, extend: () => Me, finalizeIssue: () => Be, floatSafeRemainder: () => ae, getElementAtPath: () => ue, getEnumValues: () => v, getLengthableOrigin: () => He, getParsedType: () => xe, getSizableOrigin: () => Ve, hexToUint8Array: () => Ye, isObject: () => ge, isPlainObject: () => ve, issue: () => Ue, joinValues: () => y, jsonStringifyReplacer: () => b, merge: () => Pe, mergeDefs: () => ce, normalizeParams: () => C, nullish: () => re, numKeys: () => be, objectClone: () => oe, omit: () => je, optionalKeys: () => De, parsedType: () => T, partial: () => Fe, pick: () => Ae, prefixIssues: () => Re, primitiveTypes: () => Ce, promiseAllObject: () => de, propertyKeyTypes: () => Se, randomString: () => fe, required: () => Ie, safeExtend: () => Ne, shallowClone: () => ye, slugify: () => me, stringifyPrimitive: () => w, uint8ArrayToBase64: () => Ke, uint8ArrayToBase64url: () => Je, uint8ArrayToHex: () => Xe, unwrapMessage: () => ze });
|
|
134
134
|
function h(e5) {
|
|
135
135
|
return e5;
|
|
136
136
|
}
|
|
@@ -170,7 +170,7 @@ function ie(e5) {
|
|
|
170
170
|
let t2 = +!!e5.startsWith("^"), n2 = e5.endsWith("$") ? e5.length - 1 : e5.length;
|
|
171
171
|
return e5.slice(t2, n2);
|
|
172
172
|
}
|
|
173
|
-
function
|
|
173
|
+
function ae(e5, t2) {
|
|
174
174
|
let n2 = (e5.toString().split(".")[1] || "").length, r2 = t2.toString(), i2 = (r2.split(".")[1] || "").length;
|
|
175
175
|
if (i2 === 0 && /\d?e-\d?/.test(r2)) {
|
|
176
176
|
let e6 = r2.match(/\d?e-(\d?)/);
|
|
@@ -179,11 +179,11 @@ function x(e5, t2) {
|
|
|
179
179
|
let a2 = n2 > i2 ? n2 : i2;
|
|
180
180
|
return Number.parseInt(e5.toFixed(a2).replace(".", "")) % Number.parseInt(t2.toFixed(a2).replace(".", "")) / 10 ** a2;
|
|
181
181
|
}
|
|
182
|
-
var
|
|
182
|
+
var x = /* @__PURE__ */ Symbol("evaluating");
|
|
183
183
|
function S(e5, t2, n2) {
|
|
184
184
|
let r2;
|
|
185
185
|
Object.defineProperty(e5, t2, { get() {
|
|
186
|
-
if (r2 !==
|
|
186
|
+
if (r2 !== x) return r2 === void 0 && (r2 = x, r2 = n2()), r2;
|
|
187
187
|
}, set(n3) {
|
|
188
188
|
Object.defineProperty(e5, t2, { value: n3 });
|
|
189
189
|
}, configurable: true });
|
|
@@ -634,7 +634,7 @@ var En = /^[0-9a-fA-F]{32}$/, Dn = wn(22, "=="), On = Tn(22), kn = /^[0-9a-fA-F]
|
|
|
634
634
|
(n2 = e6._zod.bag).multipleOf != null || (n2.multipleOf = t2.value);
|
|
635
635
|
}), e5._zod.check = (n2) => {
|
|
636
636
|
if (typeof n2.value != typeof t2.value) throw Error("Cannot mix number and bigint in multiple_of check.");
|
|
637
|
-
(typeof n2.value == "bigint" ? n2.value % t2.value === BigInt(0) :
|
|
637
|
+
(typeof n2.value == "bigint" ? n2.value % t2.value === BigInt(0) : ae(n2.value, t2.value) === 0) || n2.issues.push({ origin: typeof n2.value, code: "not_multiple_of", divisor: t2.value, input: n2.value, inst: e5, continue: !t2.abort });
|
|
638
638
|
};
|
|
639
639
|
}), Gn = c("$ZodCheckNumberFormat", (e5, t2) => {
|
|
640
640
|
var n2;
|
|
@@ -2451,22 +2451,22 @@ var Oa = () => {
|
|
|
2451
2451
|
}
|
|
2452
2452
|
if (t3.origin === "number") return "\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ".concat(n4, " \u05E6\u05E8\u05D9\u05DA \u05DC\u05D4\u05D9\u05D5\u05EA ").concat(t3.inclusive ? "\u05D2\u05D3\u05D5\u05DC \u05D0\u05D5 \u05E9\u05D5\u05D5\u05D4 \u05DC-".concat(t3.minimum) : "\u05D2\u05D3\u05D5\u05DC \u05DE-".concat(t3.minimum));
|
|
2453
2453
|
if (t3.origin === "array" || t3.origin === "set") {
|
|
2454
|
-
var ie2,
|
|
2454
|
+
var ie2, ae2;
|
|
2455
2455
|
let r4 = t3.origin === "set" ? "\u05E6\u05E8\u05D9\u05DB\u05D4" : "\u05E6\u05E8\u05D9\u05DA";
|
|
2456
|
-
return t3.minimum === 1 && t3.inclusive ? "\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ".concat(n4, " ").concat(r4, " \u05DC\u05D4\u05DB\u05D9\u05DC ").concat((t3.origin, "\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3")) : "\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ".concat(n4, " ").concat(r4, " \u05DC\u05D4\u05DB\u05D9\u05DC ").concat(t3.inclusive ? "".concat(t3.minimum, " ").concat((ie2 = e6 == null ? void 0 : e6.unit) == null ? "" : ie2, " \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8") : "\u05D9\u05D5\u05EA\u05E8 \u05DE-".concat(t3.minimum, " ").concat((
|
|
2456
|
+
return t3.minimum === 1 && t3.inclusive ? "\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ".concat(n4, " ").concat(r4, " \u05DC\u05D4\u05DB\u05D9\u05DC ").concat((t3.origin, "\u05DC\u05E4\u05D7\u05D5\u05EA \u05E4\u05E8\u05D9\u05D8 \u05D0\u05D7\u05D3")) : "\u05E7\u05D8\u05DF \u05DE\u05D3\u05D9: ".concat(n4, " ").concat(r4, " \u05DC\u05D4\u05DB\u05D9\u05DC ").concat(t3.inclusive ? "".concat(t3.minimum, " ").concat((ie2 = e6 == null ? void 0 : e6.unit) == null ? "" : ie2, " \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8") : "\u05D9\u05D5\u05EA\u05E8 \u05DE-".concat(t3.minimum, " ").concat((ae2 = e6 == null ? void 0 : e6.unit) == null ? "" : ae2)).trim();
|
|
2457
2457
|
}
|
|
2458
2458
|
let r3 = t3.inclusive ? ">=" : ">", s3 = a2((v2 = t3.origin) == null ? "value" : v2);
|
|
2459
2459
|
return e6 != null && e6.unit ? "".concat(e6.shortLabel, " \u05DE\u05D3\u05D9: ").concat(n4, " ").concat(s3, " ").concat(r3).concat(t3.minimum.toString(), " ").concat(e6.unit) : "".concat((b2 = e6 == null ? void 0 : e6.shortLabel) == null ? "\u05E7\u05D8\u05DF" : b2, " \u05DE\u05D3\u05D9: ").concat(n4, " ").concat(s3, " ").concat(r3).concat(t3.minimum.toString());
|
|
2460
2460
|
}
|
|
2461
2461
|
case "invalid_format": {
|
|
2462
|
-
var
|
|
2462
|
+
var x2, S2;
|
|
2463
2463
|
let e6 = t3;
|
|
2464
2464
|
if (e6.format === "starts_with") return '\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D7\u05D9\u05DC \u05D1 "'.concat(e6.prefix, '"');
|
|
2465
2465
|
if (e6.format === "ends_with") return '\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05E1\u05EA\u05D9\u05D9\u05DD \u05D1 "'.concat(e6.suffix, '"');
|
|
2466
2466
|
if (e6.format === "includes") return '\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05DB\u05DC\u05D5\u05DC "'.concat(e6.includes, '"');
|
|
2467
2467
|
if (e6.format === "regex") return "\u05D4\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA \u05D7\u05D9\u05D9\u05D1\u05EA \u05DC\u05D4\u05EA\u05D0\u05D9\u05DD \u05DC\u05EA\u05D1\u05E0\u05D9\u05EA ".concat(e6.pattern);
|
|
2468
2468
|
let n4 = s2[e6.format];
|
|
2469
|
-
return "".concat((
|
|
2469
|
+
return "".concat((x2 = n4 == null ? void 0 : n4.label) == null ? e6.format : x2, " \u05DC\u05D0 ").concat(((S2 = n4 == null ? void 0 : n4.gender) == null ? "m" : S2) === "f" ? "\u05EA\u05E7\u05D9\u05E0\u05D4" : "\u05EA\u05E7\u05D9\u05DF");
|
|
2470
2470
|
}
|
|
2471
2471
|
case "not_multiple_of":
|
|
2472
2472
|
return "\u05DE\u05E1\u05E4\u05E8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF: \u05D7\u05D9\u05D9\u05D1 \u05DC\u05D4\u05D9\u05D5\u05EA \u05DE\u05DB\u05E4\u05DC\u05D4 \u05E9\u05DC ".concat(t3.divisor);
|
|
@@ -6333,7 +6333,15 @@ async function e_(e5, t2, n2 = "") {
|
|
|
6333
6333
|
}
|
|
6334
6334
|
return r2.value;
|
|
6335
6335
|
}
|
|
6336
|
-
|
|
6336
|
+
function t_(e5, t2 = document.documentElement) {
|
|
6337
|
+
for (let [n2, r2] of Object.entries(e5)) r2 !== void 0 && t2.style.setProperty(n2, r2);
|
|
6338
|
+
}
|
|
6339
|
+
function n_(e5) {
|
|
6340
|
+
if (document.getElementById("__mcp-host-fonts")) return;
|
|
6341
|
+
let t2 = document.createElement("style");
|
|
6342
|
+
t2.id = "__mcp-host-fonts", t2.textContent = e5, document.head.appendChild(t2);
|
|
6343
|
+
}
|
|
6344
|
+
var r_ = class e3 extends Eg {
|
|
6337
6345
|
_assertInitialized(e5) {
|
|
6338
6346
|
var t2;
|
|
6339
6347
|
if (this._initializedSent) return;
|
|
@@ -6565,49 +6573,49 @@ var t_ = class e3 extends Eg {
|
|
|
6565
6573
|
}
|
|
6566
6574
|
}
|
|
6567
6575
|
};
|
|
6568
|
-
o(
|
|
6569
|
-
var n_ = null;
|
|
6570
|
-
function r_(e5) {
|
|
6571
|
-
n_ = e5;
|
|
6572
|
-
}
|
|
6576
|
+
o(r_, "ONE_SHOT_EVENTS", /* @__PURE__ */ new Set(["toolinput", "toolinputpartial", "toolresult", "toolcancelled"]));
|
|
6573
6577
|
var i_ = null;
|
|
6574
6578
|
function a_(e5) {
|
|
6575
6579
|
i_ = e5;
|
|
6576
6580
|
}
|
|
6577
6581
|
var o_ = null;
|
|
6578
|
-
function s_() {
|
|
6579
|
-
|
|
6582
|
+
function s_(e5) {
|
|
6583
|
+
o_ = e5;
|
|
6584
|
+
}
|
|
6585
|
+
var c_ = null;
|
|
6586
|
+
function l_() {
|
|
6587
|
+
return c_ || (c_ = document.getElementById("tooltip")), c_;
|
|
6580
6588
|
}
|
|
6581
|
-
function
|
|
6582
|
-
let a2 =
|
|
6589
|
+
function u_(e5, t2, n2, r2, i2) {
|
|
6590
|
+
let a2 = l_();
|
|
6583
6591
|
if (!a2) return;
|
|
6584
|
-
a2.innerHTML = '\n <div class="tooltip-title">'.concat(
|
|
6592
|
+
a2.innerHTML = '\n <div class="tooltip-title">'.concat(y_(n2), '</div>\n <div class="tooltip-detail">').concat(y_(r2), "</div>\n ").concat(i2 ? '<div class="tooltip-hint">'.concat(y_(i2), "</div>") : "", "\n ");
|
|
6585
6593
|
let o2 = a2.getBoundingClientRect(), s2 = o2.width || 250, c2 = o2.height || 80, l2 = e5 + 14, u2 = t2 + 10;
|
|
6586
6594
|
l2 + s2 > window.innerWidth && (l2 = e5 - s2 - 8), u2 + c2 > window.innerHeight && (u2 = t2 - c2 - 8), a2.style.left = "".concat(l2, "px"), a2.style.top = "".concat(u2, "px"), a2.classList.add("visible");
|
|
6587
6595
|
}
|
|
6588
|
-
function
|
|
6596
|
+
function d_() {
|
|
6589
6597
|
var e5;
|
|
6590
|
-
(e5 =
|
|
6598
|
+
(e5 = l_()) == null || e5.classList.remove("visible");
|
|
6591
6599
|
}
|
|
6592
|
-
var
|
|
6593
|
-
function
|
|
6594
|
-
return
|
|
6600
|
+
var f_ = { 1: "The Creative", 2: "The Receptive", 3: "Ordering", 4: "Formulization", 5: "Fixed Rhythms", 6: "Friction", 7: "The Role of the Self", 8: "Contribution", 9: "Focus", 10: "Behaviour of the Self", 11: "Ideas", 12: "Caution", 13: "Fellowship", 14: "Power Skills", 15: "Extremes", 16: "Skills", 17: "Opinions", 18: "Correction", 19: "Wanting", 20: "Contemplation", 21: "The Treasurer", 22: "Openness", 23: "Splitting Apart", 24: "Rationalisation", 25: "Innocence", 26: "The Taming Power", 27: "Caring", 28: "The Game Player", 29: "The Abysmal", 30: "Feelings", 31: "Influence", 32: "Continuity", 33: "Privacy", 34: "Power", 35: "Change", 36: "Crisis", 37: "Friendship", 38: "The Fighter", 39: "Provocation", 40: "Aloneness", 41: "Contraction", 42: "Growth", 43: "Insight", 44: "Alertness", 45: "The Gatherer", 46: "Determination", 47: "Realisation", 48: "Depth", 49: "Revolution", 50: "Values", 51: "Shock", 52: "Stillness", 53: "Beginnings", 54: "Ambition", 55: "Spirit", 56: "Stimulation", 57: "Intuitive Clarity", 58: "Vitality", 59: "Sexuality", 60: "Limitation", 61: "Mystery", 62: "Detail", 63: "Doubt", 64: "Confusion" }, p_ = { head: "inspiration & pressure to think", ajna: "conceptualization & mental awareness", throat: "communication & manifestation", g: "identity, direction & love", heart: "willpower & ego", sacral: "life force & response", root: "adrenalized pressure & drive", spleen: "survival & intuition", solar_plexus: "emotions & spirit" }, m_ = null;
|
|
6601
|
+
function h_() {
|
|
6602
|
+
return m_ || (m_ = document.createElement("div"), m_.id = "hd-popup-panel", m_.className = "hd-popup", document.body.appendChild(m_)), m_;
|
|
6595
6603
|
}
|
|
6596
|
-
function
|
|
6597
|
-
|
|
6604
|
+
function g_() {
|
|
6605
|
+
m_ == null || m_.classList.remove("visible"), i_ == null || i_(null);
|
|
6598
6606
|
}
|
|
6599
|
-
function
|
|
6607
|
+
function __(e5, t2, n2, r2, i2, a2) {
|
|
6600
6608
|
var o2;
|
|
6601
|
-
let s2 =
|
|
6609
|
+
let s2 = o_ ? '<button class="ask-claude-btn" id="hd-ask-claude-btn">Interpret</button>' : "", c2 = a2 ? '<div class="hd-popup-body">'.concat(a2, "</div>") : "", l2 = '\n <div class="hd-popup-header">\n <span class="hd-popup-icon">'.concat(y_(t2), '</span>\n <div class="hd-popup-title">\n <strong>').concat(y_(n2), '</strong>\n <div class="hd-popup-sub">').concat(y_(r2), '</div>\n </div>\n <button class="hd-popup-close" id="hd-popup-close">\u2715</button>\n </div>\n ').concat(c2, "\n ").concat(s2, "\n "), u2 = document.querySelector("#fs-bottom-bar [data-column='right']");
|
|
6602
6610
|
if (u2 && document.body.classList.contains("is-fullscreen")) {
|
|
6603
6611
|
var d2;
|
|
6604
6612
|
let e6 = u2.querySelector(".hd-detail-panel");
|
|
6605
6613
|
e6 || (e6 = document.createElement("div"), e6.className = "hd-detail-panel", u2.appendChild(e6)), e6.innerHTML = l2, (d2 = e6.querySelector("#hd-popup-close")) == null || d2.addEventListener("click", () => {
|
|
6606
|
-
e6.innerHTML = "",
|
|
6607
|
-
}),
|
|
6614
|
+
e6.innerHTML = "", i_ == null || i_(null);
|
|
6615
|
+
}), v_(e6, i2);
|
|
6608
6616
|
return;
|
|
6609
6617
|
}
|
|
6610
|
-
let f2 =
|
|
6618
|
+
let f2 = h_();
|
|
6611
6619
|
f2.innerHTML = l2, f2.classList.add("visible"), requestAnimationFrame(() => {
|
|
6612
6620
|
let t3 = f2.getBoundingClientRect(), n3 = f2.offsetParent, r3, i3, a3, o3;
|
|
6613
6621
|
if (n3) {
|
|
@@ -6616,17 +6624,17 @@ function h_(e5, t2, n2, r2, i2, a2) {
|
|
|
6616
6624
|
} else r3 = window.innerWidth, i3 = window.innerHeight, a3 = 0, o3 = 0;
|
|
6617
6625
|
let s3 = e5.clientX - a3 + 14, c3 = e5.clientY - o3 + 14;
|
|
6618
6626
|
s3 + t3.width > r3 - 14 && (s3 = e5.clientX - a3 - t3.width - 14), c3 + t3.height > i3 - 14 && (c3 = e5.clientY - o3 - t3.height - 14), s3 = Math.max(14, s3), c3 = Math.max(14, c3), f2.style.left = "".concat(s3, "px"), f2.style.top = "".concat(c3, "px");
|
|
6619
|
-
}), (o2 = document.getElementById("hd-popup-close")) == null || o2.addEventListener("click",
|
|
6627
|
+
}), (o2 = document.getElementById("hd-popup-close")) == null || o2.addEventListener("click", g_), v_(f2, i2);
|
|
6620
6628
|
}
|
|
6621
|
-
function
|
|
6629
|
+
function v_(e5, t2) {
|
|
6622
6630
|
var n2;
|
|
6623
6631
|
(n2 = e5.querySelector("#hd-ask-claude-btn")) == null || n2.addEventListener("click", () => {
|
|
6624
|
-
if (!
|
|
6632
|
+
if (!o_) return;
|
|
6625
6633
|
let n3 = e5.querySelector("#hd-ask-claude-btn");
|
|
6626
6634
|
if (!n3 || n3.disabled) return;
|
|
6627
6635
|
n3.disabled = true, n3.textContent = "Sending\u2026", n3.classList.add("sending");
|
|
6628
6636
|
let r2 = Object.fromEntries(Object.entries(t2.data).filter(([e6, t3]) => t3 != null && t3 !== "" && t3 !== 0)), i2 = { type: t2.type, data: r2 };
|
|
6629
|
-
|
|
6637
|
+
o_(i2).then(() => {
|
|
6630
6638
|
n3.textContent = "Sent", n3.classList.remove("sending"), n3.classList.add("sent"), setTimeout(() => {
|
|
6631
6639
|
n3.textContent = "Interpret", n3.classList.remove("sent"), n3.disabled = false;
|
|
6632
6640
|
}, 2500);
|
|
@@ -6635,91 +6643,93 @@ function g_(e5, t2) {
|
|
|
6635
6643
|
});
|
|
6636
6644
|
});
|
|
6637
6645
|
}
|
|
6638
|
-
function
|
|
6646
|
+
function y_(e5) {
|
|
6639
6647
|
return e5.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
6640
6648
|
}
|
|
6641
|
-
function
|
|
6642
|
-
let o2 = (e6, t3) => t3 ? '<span class="info-value interactive-text" data-ask="true" data-topic="'.concat(
|
|
6643
|
-
return '\n <div class="info-row"><span class="info-label">Type</span>'.concat(o2("Type", e5), '</div>\n <div class="info-row"><span class="info-label">Profile</span>').concat(o2("Profile", t2), '</div>\n <div class="info-row"><span class="info-label">Authority</span>').concat(o2("Authority", n2), '</div>\n <div class="info-row"><span class="info-label">Definition</span>').concat(o2("Definition", r2), '</div>\n <div class="info-row"><span class="info-label">Cross</span>').concat(o2("Incarnation Cross", i2), '</div>\n <div class="info-row"><span class="info-label">Defined</span><span class="info-value">').concat(a2.length > 0 ? a2.map(
|
|
6649
|
+
function b_(e5, t2, n2, r2, i2, a2) {
|
|
6650
|
+
let o2 = (e6, t3) => t3 ? '<span class="info-value interactive-text" data-ask="true" data-topic="'.concat(y_(e6), '" data-val="').concat(y_(t3), '" tabindex="0" role="button" title="Interpret this">').concat(y_(t3), "</span>") : '<span class="info-value">None</span>';
|
|
6651
|
+
return '\n <div class="info-row"><span class="info-label">Type</span>'.concat(o2("Type", e5), '</div>\n <div class="info-row"><span class="info-label">Profile</span>').concat(o2("Profile", t2), '</div>\n <div class="info-row"><span class="info-label">Authority</span>').concat(o2("Authority", n2), '</div>\n <div class="info-row"><span class="info-label">Definition</span>').concat(o2("Definition", r2), '</div>\n <div class="info-row"><span class="info-label">Cross</span>').concat(o2("Incarnation Cross", i2), '</div>\n <div class="info-row"><span class="info-label">Defined</span><span class="info-value">').concat(a2.length > 0 ? a2.map(y_).join(", ") : "None", "</span></div>\n ");
|
|
6644
6652
|
}
|
|
6645
|
-
function
|
|
6646
|
-
let i2 = (e6, t3) => '\n <div class="info-subject-header">'.concat(
|
|
6653
|
+
function x_(e5, t2, n2, r2) {
|
|
6654
|
+
let i2 = (e6, t3) => '\n <div class="info-subject-header">'.concat(y_(e6), '</div>\n <div class="info-subject-grid">\n ').concat(b_(t3.type, t3.profile, t3.authority, t3.definition, t3.cross, t3.definedCenters), "\n </div>\n ");
|
|
6647
6655
|
return '<div class="info-connection">'.concat(i2(e5, t2)).concat(i2(n2, r2), "</div>");
|
|
6648
6656
|
}
|
|
6649
|
-
function
|
|
6657
|
+
function S_(e5, t2) {
|
|
6650
6658
|
var n2, r2, i2, a2, o2, s2;
|
|
6651
6659
|
let c2 = document.getElementById(t2), l2 = c2 == null ? void 0 : c2.querySelector("#btn-zoom-in"), u2 = c2 == null ? void 0 : c2.querySelector("#btn-zoom-out"), d2 = c2 == null ? void 0 : c2.querySelector("#btn-reset-view");
|
|
6652
6660
|
c2 && (c2.hidden = false);
|
|
6653
6661
|
let f2 = (n2 = (r2 = e5.getAttribute("viewBox")) == null ? void 0 : r2.split(/[\s,]+/).map(Number)) == null ? [0, 0, 500, 500] : n2, p2 = (i2 = f2[0]) == null ? 0 : i2, m2 = (a2 = f2[1]) == null ? 0 : a2, h2 = (o2 = f2[2]) == null ? 500 : o2, g2 = (s2 = f2[3]) == null ? 500 : s2, _2 = h2 / 5, ee2 = h2 * 2, te2 = p2, v2 = m2, y2 = h2, b2 = g2;
|
|
6654
|
-
e5.
|
|
6655
|
-
let ne2 = () => e5.setAttribute("viewBox", "".concat(te2, " ").concat(v2, " ").concat(y2, " ").concat(b2)),
|
|
6662
|
+
e5.classList.add("oe-pannable");
|
|
6663
|
+
let ne2 = () => document.body.classList.contains("is-fullscreen"), re2 = () => e5.setAttribute("viewBox", "".concat(te2, " ").concat(v2, " ").concat(y2, " ").concat(b2)), ie2 = (e6, t3, n3) => {
|
|
6656
6664
|
t3 === void 0 && (t3 = te2 + y2 / 2), n3 === void 0 && (n3 = v2 + b2 / 2);
|
|
6657
6665
|
let r3 = y2 * e6;
|
|
6658
|
-
r3 < _2 && (r3 = _2), r3 > ee2 && (r3 = ee2), r3 !== y2 && (e6 = r3 / y2, te2 = t3 - (t3 - te2) * e6, v2 = n3 - (n3 - v2) * e6, y2 = r3, b2 *= e6,
|
|
6666
|
+
r3 < _2 && (r3 = _2), r3 > ee2 && (r3 = ee2), r3 !== y2 && (e6 = r3 / y2, te2 = t3 - (t3 - te2) * e6, v2 = n3 - (n3 - v2) * e6, y2 = r3, b2 *= e6, re2());
|
|
6659
6667
|
};
|
|
6660
|
-
l2 == null || l2.addEventListener("click", () =>
|
|
6661
|
-
te2 = p2, v2 = m2, y2 = h2, b2 = g2,
|
|
6668
|
+
l2 == null || l2.addEventListener("click", () => ie2(0.8)), u2 == null || u2.addEventListener("click", () => ie2(1.25)), d2 == null || d2.addEventListener("click", () => {
|
|
6669
|
+
te2 = p2, v2 = m2, y2 = h2, b2 = g2, re2();
|
|
6662
6670
|
});
|
|
6663
|
-
let
|
|
6671
|
+
let ae2 = (t3, n3) => {
|
|
6664
6672
|
let r3 = e5.getBoundingClientRect();
|
|
6665
6673
|
return { x: te2 + (t3 - r3.left) / r3.width * y2, y: v2 + (n3 - r3.top) / r3.height * b2 };
|
|
6666
6674
|
};
|
|
6667
6675
|
e5.addEventListener("wheel", (e6) => {
|
|
6676
|
+
if (!ne2() && !e6.ctrlKey && !e6.metaKey) return;
|
|
6668
6677
|
e6.preventDefault();
|
|
6669
|
-
let t3 = Math.exp((e6.deltaY < 0 ? -1 : 1) * 0.1), n3 =
|
|
6670
|
-
|
|
6678
|
+
let t3 = Math.exp((e6.deltaY < 0 ? -1 : 1) * 0.1), n3 = ae2(e6.clientX, e6.clientY);
|
|
6679
|
+
ie2(t3, n3.x, n3.y);
|
|
6671
6680
|
}, { passive: false });
|
|
6672
|
-
let x2 = /* @__PURE__ */ new Map(),
|
|
6681
|
+
let x2 = /* @__PURE__ */ new Map(), S2 = null, oe2 = () => {
|
|
6673
6682
|
let [e6, t3] = [...x2.values()];
|
|
6674
6683
|
return { dist: Math.hypot(e6.x - t3.x, e6.y - t3.y), midX: (e6.x + t3.x) / 2, midY: (e6.y + t3.y) / 2 };
|
|
6675
|
-
},
|
|
6684
|
+
}, se2 = (t3, n3) => {
|
|
6676
6685
|
let r3 = e5.getBoundingClientRect();
|
|
6677
|
-
te2 -= t3 / r3.width * y2, v2 -= n3 / r3.height * b2,
|
|
6686
|
+
te2 -= t3 / r3.width * y2, v2 -= n3 / r3.height * b2, re2();
|
|
6678
6687
|
};
|
|
6679
6688
|
e5.addEventListener("pointerdown", (t3) => {
|
|
6689
|
+
if (t3.pointerType === "touch" && !ne2()) return;
|
|
6680
6690
|
let n3 = t3.target, r3 = !!(n3.closest && (n3.closest('[class*="-hit"]') || n3.closest('[class*="-activation"]') || n3.closest(".variable-arrow") || n3.closest("button")));
|
|
6681
|
-
x2.set(t3.pointerId, { x: t3.clientX, y: t3.clientY, interactive: r3 }), r3 || (e5.setPointerCapture(t3.pointerId), e5.style.cursor = "grabbing"), x2.size === 2 && (
|
|
6691
|
+
x2.set(t3.pointerId, { x: t3.clientX, y: t3.clientY, interactive: r3 }), r3 || (e5.setPointerCapture(t3.pointerId), e5.style.cursor = "grabbing"), x2.size === 2 && (S2 = oe2());
|
|
6682
6692
|
}), e5.addEventListener("pointermove", (e6) => {
|
|
6683
6693
|
let t3 = x2.get(e6.pointerId);
|
|
6684
|
-
if (t3) if (x2.set(e6.pointerId, { x: e6.clientX, y: e6.clientY, interactive: t3.interactive }), x2.size >= 2 &&
|
|
6685
|
-
let e7 =
|
|
6686
|
-
if (
|
|
6687
|
-
let t4 =
|
|
6688
|
-
|
|
6689
|
-
}
|
|
6690
|
-
|
|
6691
|
-
} else x2.size === 1 && !t3.interactive &&
|
|
6694
|
+
if (t3) if (x2.set(e6.pointerId, { x: e6.clientX, y: e6.clientY, interactive: t3.interactive }), x2.size >= 2 && S2) {
|
|
6695
|
+
let e7 = oe2();
|
|
6696
|
+
if (S2.dist > 0 && e7.dist > 0) {
|
|
6697
|
+
let t4 = ae2(e7.midX, e7.midY);
|
|
6698
|
+
ie2(S2.dist / e7.dist, t4.x, t4.y);
|
|
6699
|
+
}
|
|
6700
|
+
se2(e7.midX - S2.midX, e7.midY - S2.midY), S2 = e7;
|
|
6701
|
+
} else x2.size === 1 && !t3.interactive && se2(e6.clientX - t3.x, e6.clientY - t3.y);
|
|
6692
6702
|
});
|
|
6693
|
-
let
|
|
6694
|
-
x2.delete(t3.pointerId) && (e5.hasPointerCapture(t3.pointerId) && e5.releasePointerCapture(t3.pointerId),
|
|
6703
|
+
let ce2 = (t3) => {
|
|
6704
|
+
x2.delete(t3.pointerId) && (e5.hasPointerCapture(t3.pointerId) && e5.releasePointerCapture(t3.pointerId), S2 = x2.size >= 2 ? oe2() : null, x2.size === 0 && (e5.style.cursor = "default"));
|
|
6695
6705
|
};
|
|
6696
|
-
e5.addEventListener("pointerup",
|
|
6706
|
+
e5.addEventListener("pointerup", ce2), e5.addEventListener("pointercancel", ce2);
|
|
6697
6707
|
}
|
|
6698
|
-
var
|
|
6699
|
-
function
|
|
6708
|
+
var C_ = { head: "Head", ajna: "Ajna", throat: "Throat", g: "G", heart: "Heart", sacral: "Sacral", spleen: "Spleen", solar_plexus: "Solar Plexus", root: "Root" };
|
|
6709
|
+
function w_(e5) {
|
|
6700
6710
|
var t2;
|
|
6701
|
-
return (t2 =
|
|
6711
|
+
return (t2 = C_[e5]) == null ? e5 : t2;
|
|
6702
6712
|
}
|
|
6703
|
-
function
|
|
6713
|
+
function T_(e5, t2, n2, r2) {
|
|
6704
6714
|
var i2, a2, o2, s2;
|
|
6705
|
-
|
|
6715
|
+
s_((i2 = r2.onAskClaude) == null ? null : i2);
|
|
6706
6716
|
let c2 = e5.querySelector("#pan-zoom-controls");
|
|
6707
6717
|
e5.innerHTML = "", c2 && e5.appendChild(c2);
|
|
6708
6718
|
let l2 = document.createElement("div");
|
|
6709
6719
|
l2.style.cssText = "width:100%;height:100%;", l2.innerHTML = t2;
|
|
6710
6720
|
let u2 = l2.querySelector("svg");
|
|
6711
6721
|
if (!u2) return console.error("[wire-go-svg] No <svg> element found in payload"), null;
|
|
6712
|
-
u2.setAttribute("width", "100%"), u2.setAttribute("height", "100%"), u2.setAttribute("role", "group"), u2.setAttribute("aria-label", "Human Design Bodygraph"), u2.addEventListener("click", (e6) => e6.stopPropagation()), e5.appendChild(u2),
|
|
6722
|
+
u2.setAttribute("width", "100%"), u2.setAttribute("height", "100%"), u2.setAttribute("role", "group"), u2.setAttribute("aria-label", "Human Design Bodygraph"), u2.addEventListener("click", (e6) => e6.stopPropagation()), e5.appendChild(u2), S_(u2, "pan-zoom-controls"), new Set((a2 = n2.personality_gates) == null ? [] : a2), new Set((o2 = n2.design_gates) == null ? [] : o2);
|
|
6713
6723
|
let d2 = /* @__PURE__ */ new Set();
|
|
6714
6724
|
for (let e6 of (s2 = n2.centers) == null ? [] : s2) e6.defined && d2.add(e6.name);
|
|
6715
6725
|
let f2 = {};
|
|
6716
|
-
for (let [e6, t3] of Object.entries(
|
|
6717
|
-
u2.addEventListener("mouseover", (e6) =>
|
|
6726
|
+
for (let [e6, t3] of Object.entries(C_)) f2[t3.toLowerCase()] = e6;
|
|
6727
|
+
u2.addEventListener("mouseover", (e6) => g2(e6, true)), u2.addEventListener("mouseout", (e6) => g2(e6, false)), u2.addEventListener("click", _2), ee2();
|
|
6718
6728
|
function p2(e6) {
|
|
6719
6729
|
var t3;
|
|
6720
6730
|
if (!e6) return "";
|
|
6721
6731
|
let n3 = u2.querySelector('[data-gate="'.concat(e6, '"][data-center]')), r3 = (t3 = n3 == null ? void 0 : n3.getAttribute("data-center")) == null ? "" : t3;
|
|
6722
|
-
return r3 ?
|
|
6732
|
+
return r3 ? w_(r3) : "";
|
|
6723
6733
|
}
|
|
6724
6734
|
function m2(e6, t3) {
|
|
6725
6735
|
let n3 = e6;
|
|
@@ -6729,76 +6739,95 @@ function C_(e5, t2, n2, r2) {
|
|
|
6729
6739
|
}
|
|
6730
6740
|
return null;
|
|
6731
6741
|
}
|
|
6732
|
-
|
|
6733
|
-
|
|
6734
|
-
|
|
6735
|
-
|
|
6742
|
+
let h2 = null;
|
|
6743
|
+
function g2(e6, t3) {
|
|
6744
|
+
let n3 = e6, r3 = A_(u2, n3.target);
|
|
6745
|
+
if (r3) {
|
|
6746
|
+
if (t3) {
|
|
6747
|
+
var i3;
|
|
6748
|
+
j_(u2, r3), u_(n3.clientX, n3.clientY, "".concat(r3.sideLabel, " ").concat(r3.planet), r3.gate ? "Gate ".concat(r3.gate).concat(r3.line ? "." + r3.line : "", " \u2014 ").concat((i3 = f_[r3.gate]) == null ? "" : i3) : "", "Click to interpret");
|
|
6749
|
+
} else j_(u2, h2), d_();
|
|
6736
6750
|
return;
|
|
6737
6751
|
}
|
|
6738
|
-
|
|
6739
|
-
|
|
6740
|
-
|
|
6741
|
-
c_(n3.clientX, n3.clientY, "Gate ".concat(e7, " \u2014 ").concat(a4), c4, "Click to interpret");
|
|
6752
|
+
let a3 = m2(n3.target, "data-gate"), o3 = m2(n3.target, "data-center"), s3 = m2(n3.target, "data-channel");
|
|
6753
|
+
if (!t3) {
|
|
6754
|
+
d_();
|
|
6742
6755
|
return;
|
|
6743
6756
|
}
|
|
6744
6757
|
if (a3) {
|
|
6745
|
-
var c3, l3
|
|
6746
|
-
let e7 = (
|
|
6747
|
-
|
|
6758
|
+
var c3, l3;
|
|
6759
|
+
let e7 = Number(a3.getAttribute("data-gate")), t4 = (c3 = a3.getAttribute("data-source")) == null ? "inactive" : c3, r4 = a3.getAttribute("data-hanging") === "true", i4 = (l3 = f_[e7]) == null ? "Gate ".concat(e7) : l3, o4 = t4 === "inactive" ? "Inactive gate" : "".concat(N_(t4)).concat(r4 ? " \xB7 hanging" : "");
|
|
6760
|
+
u_(n3.clientX, n3.clientY, "Gate ".concat(e7, " \u2014 ").concat(i4), o4, "Click to interpret");
|
|
6761
|
+
return;
|
|
6762
|
+
}
|
|
6763
|
+
if (s3) {
|
|
6764
|
+
var d3, f3, p3, g3;
|
|
6765
|
+
let e7 = (d3 = s3.getAttribute("data-channel")) == null ? "" : d3, t4 = (f3 = s3.getAttribute("data-gate1")) == null ? "" : f3, r4 = (p3 = s3.getAttribute("data-gate2")) == null ? "" : p3, i4 = (g3 = s3.getAttribute("class")) == null ? "" : g3, a4 = i4.includes("channel--hanging") ? "Hanging gate" : i4.includes("channel--active") ? "Active channel" : "Inactive channel";
|
|
6766
|
+
u_(n3.clientX, n3.clientY, "Channel ".concat(e7), "".concat(a4, " \u2014 gates ").concat(t4, " \u2194 ").concat(r4));
|
|
6748
6767
|
return;
|
|
6749
6768
|
}
|
|
6750
|
-
if (
|
|
6751
|
-
var
|
|
6752
|
-
let e7 = (
|
|
6753
|
-
|
|
6769
|
+
if (o3) {
|
|
6770
|
+
var _3, ee3;
|
|
6771
|
+
let e7 = (_3 = o3.getAttribute("data-center")) == null ? "" : _3, t4 = o3.getAttribute("data-defined") === "true", r4 = w_(e7), i4 = (ee3 = p_[e7]) == null ? "" : ee3;
|
|
6772
|
+
u_(n3.clientX, n3.clientY, "".concat(r4, " Center"), "".concat(t4 ? "Defined" : "Open").concat(i4 ? " \u2014 " + i4 : ""), "Click to interpret");
|
|
6754
6773
|
return;
|
|
6755
6774
|
}
|
|
6756
|
-
|
|
6775
|
+
d_();
|
|
6757
6776
|
}
|
|
6758
|
-
function
|
|
6759
|
-
let t3 = e6, n3 =
|
|
6777
|
+
function _2(e6) {
|
|
6778
|
+
let t3 = e6, n3 = A_(u2, t3.target);
|
|
6760
6779
|
if (n3) {
|
|
6761
|
-
|
|
6762
|
-
|
|
6763
|
-
|
|
6764
|
-
var s3;
|
|
6765
|
-
h_(t3, "\u25C9", "Gate ".concat(e7), (s3 = u_[e7]) == null ? "Active gate" : s3, { type: "gate", data: { gate: e7, conscious: a4, center: c4 } });
|
|
6780
|
+
if (h2 = (h2 == null ? void 0 : h2.token) === n3.token ? null : n3, j_(u2, h2), r2.onAskClaude && h2) {
|
|
6781
|
+
var i3;
|
|
6782
|
+
__(t3, n3.glyph, "".concat(n3.sideLabel, " ").concat(n3.planet), n3.gate ? "Gate ".concat(n3.gate).concat(n3.line ? "." + n3.line : "", " \u2014 ").concat((i3 = f_[n3.gate]) == null ? "activation" : i3) : "Activation", { type: "planet", data: { planet: n3.planet, gate: n3.gate, line: n3.line, side: n3.side } });
|
|
6766
6783
|
}
|
|
6767
6784
|
return;
|
|
6768
6785
|
}
|
|
6786
|
+
h2 && (h2 = null, j_(u2, null));
|
|
6787
|
+
let a3 = m2(t3.target, "data-gate"), o3 = m2(t3.target, "data-center"), s3 = m2(t3.target, "data-channel");
|
|
6769
6788
|
if (a3) {
|
|
6770
|
-
var c3
|
|
6771
|
-
let e7 = (
|
|
6772
|
-
r2.
|
|
6789
|
+
var c3;
|
|
6790
|
+
let e7 = Number(a3.getAttribute("data-gate")), n4 = (c3 = a3.getAttribute("data-source")) == null ? "inactive" : c3, i4 = n4 === "personality" ? true : n4 === "design" ? false : null, o4 = w_(a3.getAttribute("data-center") || "");
|
|
6791
|
+
if (r2.onGateClick(e7, i4, o4), r2.onAskClaude) {
|
|
6792
|
+
var l3;
|
|
6793
|
+
__(t3, "\u25C9", "Gate ".concat(e7), (l3 = f_[e7]) == null ? "Active gate" : l3, { type: "gate", data: { gate: e7, conscious: i4, center: o4 } });
|
|
6794
|
+
}
|
|
6795
|
+
return;
|
|
6796
|
+
}
|
|
6797
|
+
if (s3) {
|
|
6798
|
+
var d3, f3, g3, _3;
|
|
6799
|
+
let e7 = (d3 = s3.getAttribute("data-channel")) == null ? "" : d3, n4 = Number((f3 = s3.getAttribute("data-gate1")) == null ? 0 : f3), i4 = Number((g3 = s3.getAttribute("data-gate2")) == null ? 0 : g3), a4 = (_3 = s3.getAttribute("data-source")) == null ? "" : _3, o4 = p2(n4), c4 = p2(i4);
|
|
6800
|
+
r2.onChannelClick(e7, n4, i4, o4, c4, a4), r2.onAskClaude && __(t3, "\u2194", "Channel ".concat(e7), "Gates ".concat(n4, "\u2013").concat(i4).concat(a4 ? " \xB7 " + a4 : ""), { type: "channel", data: { channel: e7, gate1: n4, gate2: i4, color_type: a4 } });
|
|
6773
6801
|
return;
|
|
6774
6802
|
}
|
|
6775
|
-
if (
|
|
6776
|
-
var
|
|
6777
|
-
let e7 = (
|
|
6778
|
-
if (r2.onCenterClick(
|
|
6779
|
-
var
|
|
6780
|
-
let r3 = (
|
|
6781
|
-
|
|
6803
|
+
if (o3) {
|
|
6804
|
+
var ee3;
|
|
6805
|
+
let e7 = (ee3 = o3.getAttribute("data-center")) == null ? "" : ee3, n4 = o3.getAttribute("data-defined") === "true", i4 = w_(e7);
|
|
6806
|
+
if (r2.onCenterClick(i4, n4, []), r2.onAskClaude) {
|
|
6807
|
+
var te2;
|
|
6808
|
+
let r3 = (te2 = p_[e7]) == null ? "" : te2;
|
|
6809
|
+
__(t3, n4 ? "\u25C9" : "\u25CB", "".concat(i4, " Center"), "".concat(n4 ? "Defined" : "Open").concat(r3 ? " \u2014 " + r3 : ""), { type: "center", data: { center_name: i4, defined: n4 } }, y_(r3));
|
|
6782
6810
|
}
|
|
6783
6811
|
return;
|
|
6784
6812
|
}
|
|
6785
6813
|
}
|
|
6786
|
-
function
|
|
6787
|
-
u2 && u2.querySelectorAll("[data-gate], [data-channel], [data-center]").forEach((e6) => {
|
|
6788
|
-
let t3;
|
|
6789
|
-
if (
|
|
6790
|
-
|
|
6791
|
-
|
|
6792
|
-
|
|
6814
|
+
function ee2() {
|
|
6815
|
+
u2 && u2.querySelectorAll("[data-gate], [data-channel], [data-center], [data-activation]").forEach((e6) => {
|
|
6816
|
+
let t3, n3 = k_(e6);
|
|
6817
|
+
if (n3) t3 = "".concat(n3.sideLabel, " ").concat(n3.planet).concat(n3.gate ? ", gate ".concat(n3.gate).concat(n3.line ? "." + n3.line : "") : "");
|
|
6818
|
+
else if (e6.hasAttribute("data-gate")) {
|
|
6819
|
+
var r3, i3;
|
|
6820
|
+
let n4 = Number(e6.getAttribute("data-gate")), a4 = (r3 = e6.getAttribute("data-source")) == null ? "inactive" : r3, o4 = (i3 = f_[n4]) == null ? "" : i3;
|
|
6821
|
+
t3 = "Gate ".concat(n4).concat(o4 ? " \u2014 " + o4 : "", ", ").concat(a4 === "inactive" ? "inactive" : N_(a4));
|
|
6793
6822
|
} else if (e6.hasAttribute("data-channel")) {
|
|
6794
|
-
var
|
|
6795
|
-
t3 = "Channel ".concat((
|
|
6823
|
+
var a3, o3, s3;
|
|
6824
|
+
t3 = "Channel ".concat((a3 = e6.getAttribute("data-channel")) == null ? "" : a3, ", gates ").concat((o3 = e6.getAttribute("data-gate1")) == null ? "" : o3, " to ").concat((s3 = e6.getAttribute("data-gate2")) == null ? "" : s3);
|
|
6796
6825
|
} else {
|
|
6797
|
-
var
|
|
6798
|
-
let n4 = (
|
|
6799
|
-
t3 = "".concat(
|
|
6826
|
+
var c3;
|
|
6827
|
+
let n4 = (c3 = e6.getAttribute("data-center")) == null ? "" : c3, r4 = e6.getAttribute("data-defined") === "true";
|
|
6828
|
+
t3 = "".concat(w_(n4), " Center, ").concat(r4 ? "defined" : "open");
|
|
6800
6829
|
}
|
|
6801
|
-
e6.setAttribute("tabindex", "0"), e6.setAttribute("role", "button"), e6.setAttribute("aria-label", t3), e6.addEventListener("keydown", (t4) => {
|
|
6830
|
+
e6.setAttribute("tabindex", "0"), e6.setAttribute("role", "button"), e6.setAttribute("aria-label", t3), n3 && (e6.addEventListener("focus", () => j_(u2, n3)), e6.addEventListener("blur", () => j_(u2, h2))), e6.addEventListener("keydown", (t4) => {
|
|
6802
6831
|
let n4 = t4;
|
|
6803
6832
|
if (n4.key !== "Enter" && n4.key !== " ") return;
|
|
6804
6833
|
n4.preventDefault(), n4.stopPropagation();
|
|
@@ -6809,7 +6838,47 @@ function C_(e5, t2, n2, r2) {
|
|
|
6809
6838
|
}
|
|
6810
6839
|
return u2;
|
|
6811
6840
|
}
|
|
6812
|
-
|
|
6841
|
+
var E_ = { sun: "\u2609", earth: "\u2295", north_node: "\u260A", south_node: "\u260B", moon: "\u263D", mercury: "\u263F", venus: "\u2640", mars: "\u2642", jupiter: "\u2643", saturn: "\u2644", uranus: "\u2645", neptune: "\u2646", pluto: "\u2647" };
|
|
6842
|
+
function D_(e5) {
|
|
6843
|
+
return e5.trim().toLowerCase().replace(/[\s-]+/g, "_");
|
|
6844
|
+
}
|
|
6845
|
+
function O_(e5) {
|
|
6846
|
+
return e5.split("_").map((e6) => e6.charAt(0).toUpperCase() + e6.slice(1)).join(" ");
|
|
6847
|
+
}
|
|
6848
|
+
function k_(e5) {
|
|
6849
|
+
var t2, n2, r2;
|
|
6850
|
+
let i2 = e5.getAttribute("data-activation"), a2 = e5.getAttribute("data-planet");
|
|
6851
|
+
if (!i2 && !a2 || e5.hasAttribute("data-variable")) return null;
|
|
6852
|
+
let o2 = null, s2 = "";
|
|
6853
|
+
return i2 && i2.includes(":") && ([o2, s2] = i2.split(":")), o2 || (o2 = (t2 = (n2 = e5.closest("[data-column]")) == null ? void 0 : n2.getAttribute("data-column")) == null ? null : t2), !s2 && a2 && (s2 = D_(a2)), o2 !== "personality" && o2 !== "design" || !s2 ? null : { token: "".concat(o2, ":").concat(s2), side: o2, sideLabel: o2 === "design" ? "Design" : "Personality", planet: a2 || O_(s2), gate: Number(e5.getAttribute("data-gate") || 0), line: Number(e5.getAttribute("data-line") || 0), glyph: (r2 = E_[s2]) == null ? "\u2022" : r2, el: e5 };
|
|
6854
|
+
}
|
|
6855
|
+
function A_(e5, t2) {
|
|
6856
|
+
let n2 = t2;
|
|
6857
|
+
for (; n2 && n2 !== e5; ) {
|
|
6858
|
+
var r2, i2;
|
|
6859
|
+
if ((r2 = n2.hasAttribute) != null && r2.call(n2, "data-activation") || (i2 = n2.hasAttribute) != null && i2.call(n2, "data-planet")) return k_(n2);
|
|
6860
|
+
n2 = n2.parentElement;
|
|
6861
|
+
}
|
|
6862
|
+
return null;
|
|
6863
|
+
}
|
|
6864
|
+
function j_(e5, t2) {
|
|
6865
|
+
if (e5.querySelectorAll("[data-highlighted], [data-highlighted-context]").forEach((e6) => {
|
|
6866
|
+
e6.removeAttribute("data-highlighted"), e6.removeAttribute("data-highlighted-primary"), e6.removeAttribute("data-highlighted-context");
|
|
6867
|
+
}), e5.classList.toggle("has-highlight", !!t2), e5.classList.toggle("has-activation-highlight", !!t2), e5.removeAttribute("data-selected-activation"), !t2) return;
|
|
6868
|
+
e5.setAttribute("data-selected-activation", t2.token);
|
|
6869
|
+
let n2 = (e6) => !!e6 && e6.split(/\s+/).some((e7) => e7 === t2.token || e7.startsWith(t2.token + ":")), r2 = e5.querySelector("[data-activations], [data-activation]") ? [...e5.querySelectorAll("[data-activations], [data-activation]")].filter((e6) => n2(e6.getAttribute("data-activations")) || n2(e6.getAttribute("data-activation"))) : [t2.el, ...t2.gate ? [...e5.querySelectorAll('.gate[data-gate="'.concat(t2.gate, '"]'))].filter((e6) => {
|
|
6870
|
+
var n3;
|
|
6871
|
+
let r3 = (n3 = e6.getAttribute("data-source")) == null ? "" : n3;
|
|
6872
|
+
return r3 === t2.side || r3 === "both";
|
|
6873
|
+
}) : []];
|
|
6874
|
+
r2.includes(t2.el) || r2.push(t2.el);
|
|
6875
|
+
for (let t3 of r2) {
|
|
6876
|
+
t3.setAttribute("data-highlighted", "true"), t3.setAttribute("data-highlighted-primary", "true");
|
|
6877
|
+
let n3 = t3.parentElement;
|
|
6878
|
+
for (; n3 && n3 !== e5; ) (n3.hasAttribute("data-gate") || n3.hasAttribute("data-channel") || n3.hasAttribute("data-center") || n3.hasAttribute("data-column")) && (n3.hasAttribute("data-highlighted-primary") || n3.setAttribute("data-highlighted-context", "true")), n3 = n3.parentElement;
|
|
6879
|
+
}
|
|
6880
|
+
}
|
|
6881
|
+
function M_(e5, t2) {
|
|
6813
6882
|
var n2, r2, i2, a2, o2, s2;
|
|
6814
6883
|
e5.querySelectorAll("[data-highlighted]").forEach((e6) => {
|
|
6815
6884
|
e6.removeAttribute("data-highlighted"), e6.removeAttribute("data-highlighted-primary");
|
|
@@ -6835,10 +6904,10 @@ function w_(e5, t2) {
|
|
|
6835
6904
|
e6.setAttribute("data-highlighted", "true"), h2.has(t3) && e6.setAttribute("data-highlighted-primary", "true");
|
|
6836
6905
|
});
|
|
6837
6906
|
}
|
|
6838
|
-
function
|
|
6907
|
+
function N_(e5) {
|
|
6839
6908
|
return e5.charAt(0).toUpperCase() + e5.slice(1);
|
|
6840
6909
|
}
|
|
6841
|
-
var
|
|
6910
|
+
var P_ = class e4 {
|
|
6842
6911
|
constructor(t2) {
|
|
6843
6912
|
var n2, r2, i2, a2, s2, c2;
|
|
6844
6913
|
o(this, "config", void 0), o(this, "params", void 0), o(this, "dateInput", void 0), o(this, "timeInput", void 0), o(this, "refreshBtn", void 0), o(this, "locInput", void 0), o(this, "locDropdown", void 0), o(this, "summaryBar", void 0), o(this, "extraToggleInput", void 0), o(this, "searchTimeout", null), o(this, "searchVersion", 0), o(this, "isSearching", false), o(this, "suggestions", []), o(this, "activeIndex", -1), o(this, "selecting", false), o(this, "listboxId", "loc-listbox-".concat(e4.comboSeq++)), this.config = t2, this.params = { date: ((n2 = t2.initialParams) == null ? void 0 : n2.date) || this.getTodayDate(), time: ((r2 = t2.initialParams) == null ? void 0 : r2.time) || "12:00", latitude: ((i2 = t2.initialParams) == null ? void 0 : i2.latitude) || null, longitude: ((a2 = t2.initialParams) == null ? void 0 : a2.longitude) || null, timezone: ((s2 = t2.initialParams) == null ? void 0 : s2.timezone) || null, locationName: ((c2 = t2.initialParams) == null ? void 0 : c2.locationName) || null }, this.render();
|
|
@@ -7018,11 +7087,11 @@ var E_ = class e4 {
|
|
|
7018
7087
|
return e5.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
7019
7088
|
}
|
|
7020
7089
|
};
|
|
7021
|
-
o(
|
|
7022
|
-
var
|
|
7023
|
-
function
|
|
7090
|
+
o(P_, "comboSeq", 0);
|
|
7091
|
+
var F_ = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2}))?(?:\.\d+)?$/;
|
|
7092
|
+
function I_(e5, t2) {
|
|
7024
7093
|
if (!e5) return null;
|
|
7025
|
-
let n2 =
|
|
7094
|
+
let n2 = F_.exec(e5.trim());
|
|
7026
7095
|
if (n2) {
|
|
7027
7096
|
let [, e6, t3, r3, i2, a2, o2] = n2, s2 = new Date(Date.UTC(+e6, t3 - 1, +r3, +i2, +a2, o2 ? +o2 : 0));
|
|
7028
7097
|
return isNaN(s2.getTime()) ? null : { date: s2, timeZone: "UTC" };
|
|
@@ -7030,27 +7099,27 @@ function O_(e5, t2) {
|
|
|
7030
7099
|
let r2 = new Date(e5);
|
|
7031
7100
|
return isNaN(r2.getTime()) ? null : { date: r2, timeZone: t2 || "UTC" };
|
|
7032
7101
|
}
|
|
7033
|
-
function
|
|
7102
|
+
function L_(e5) {
|
|
7034
7103
|
var t2;
|
|
7035
7104
|
if (!e5) return "";
|
|
7036
7105
|
let n2 = [], r2 = (t2 = e5.location) == null ? void 0 : t2.trim();
|
|
7037
7106
|
if (r2 ? n2.push(r2) : typeof e5.latitude == "number" && typeof e5.longitude == "number" && n2.push("".concat(e5.latitude.toFixed(2), ", ").concat(e5.longitude.toFixed(2))), e5.datetime) {
|
|
7038
|
-
let t3 = /^\d{4}-\d{2}-\d{2}/.test(e5.datetime.trim()) ?
|
|
7107
|
+
let t3 = /^\d{4}-\d{2}-\d{2}/.test(e5.datetime.trim()) ? I_(e5.datetime, e5.timezone) : null;
|
|
7039
7108
|
t3 ? n2.push(t3.date.toLocaleString("en-US", { timeZone: t3.timeZone, day: "numeric", month: "short", year: "numeric", hour: "numeric", minute: "2-digit" })) : n2.push(e5.datetime);
|
|
7040
7109
|
}
|
|
7041
7110
|
return n2.join(" \xB7 ");
|
|
7042
7111
|
}
|
|
7043
|
-
function
|
|
7044
|
-
let r2 =
|
|
7112
|
+
function R_(e5, t2, n2 = "Chart") {
|
|
7113
|
+
let r2 = L_(t2);
|
|
7045
7114
|
return r2 ? "".concat(n2, ": ").concat(r2, "\n\n").concat(e5) : e5;
|
|
7046
7115
|
}
|
|
7047
|
-
var
|
|
7048
|
-
function
|
|
7116
|
+
var z_ = { "chart-wheel": { stripIcon: "\u2726", stripTitle: "About the Natal Chart", stripHints: ["Click any <strong>planet</strong> for a deep placement reading", "Click any <strong>aspect line</strong> for its dynamic interpretation", "Click any <strong>house cusp</strong> for house themes", "Use the <strong>date controls</strong> to move through time"], modalText: "This wheel is an exact celestial snapshot of the sky at a given moment and place \u2014 every planet, house, and aspect line is clickable." }, "bi-wheel": { stripIcon: "\u2295", stripTitle: "About the Bi-Wheel", stripHints: ["Click any <strong>inner planet</strong> for natal placement depth", "Click any <strong>outer planet</strong> for transit or synastry meaning", "Click a <strong>cross-aspect line</strong> for inter-chart dynamics", "Use the <strong>date controls</strong> to advance transits"], modalText: "Two charts are layered here \u2014 the inner wheel is the natal chart; the outer ring shows the second chart (transits or another person's planets)." }, bodygraph: { stripIcon: "\u25C8", stripTitle: "About the Bodygraph", stripHints: ["Click any <strong>center</strong> (defined or undefined) for its meaning", "Click any <strong>channel</strong> to explore its life theme", "Click any <strong>gate number</strong> for its I Ching hexagram reading", "Click a <strong>planet row</strong> in the sidebar for its HD role"], modalText: "The bodygraph is a living map of the energy centres, channels, and gates that define a Human Design chart." }, "vedic-chart": { stripIcon: "\u{1F549}", stripTitle: "About the Jyotish Chart", stripHints: ["Click any <strong>rashi cell</strong> for its themes and any planets placed there", "The <strong>diagonal mark</strong> shows the Lagna (Ascendant) rashi", "Use the <strong>action bar</strong> for a full chart interpretation", "Click <strong>Moon & Nakshatra</strong> for lunar mansion detail"], modalText: "This is a Vedic birth chart rendered as a South Indian Rashi grid \u2014 sidereal planetary placements by fixed sign." }, "transit-timeline": { stripIcon: "\u2604", stripTitle: "About the Transit Timeline", stripHints: ["Each entry is an <strong>exact transit hit</strong> \u2014 a transiting planet contacting a natal point", "Events are <strong>grouped by month</strong> in chronological order", "The <strong>\u211E marker</strong> flags a retrograde crossing", "Click any transit for a focused <strong>interpretation</strong>"], modalText: "This timeline lists upcoming transits to the natal chart \u2014 the exact dates outer-planet energies activate each placement." }, "moon-phase": { stripIcon: "\u263E", stripTitle: "About the Moon Phase Dial", stripHints: ["Click the <strong>Moon</strong> for its phase interpretation", "Click the <strong>Void-of-Course</strong> card when the Moon is VOC", "Use the <strong>date control</strong> to move the sky to any moment"], modalText: "The dial shows the Moon's live illumination, phase, sign, and void-of-course status for the selected moment." }, bazi: { stripIcon: "\u56DB", stripTitle: "About the BaZi Chart", stripHints: ["Click any <strong>pillar</strong> (Year, Month, Day, Hour) for its interpretation", "The <strong>Day Master</strong> is the core identity element", "The <strong>Wu Xing bar</strong> shows the Five Element balance"], modalText: "This BaZi (Four Pillars of Destiny) chart maps the Heavenly Stems and Earthly Branches present at a given moment of birth." } }, B_ = '\n .oe-welcome-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: oklch(0% 0 0 / 0.55);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n z-index: 9999;\n display: flex;\n align-items: center;\n justify-content: center;\n animation: oe-fade-in 0.4s ease both;\n font-family: system-ui, sans-serif;\n }\n\n .oe-welcome-modal {\n /* Themed, not hardcoded: the title/text/hints below all resolve through\n var(--text\u2026), so a fixed dark surface here meant that once the light\n palette became reachable the modal rendered near-black text on a\n near-black card \u2014 1.09:1, effectively invisible. The fallback is the\n previous literal, and every app\'s dark --surface is oklch(11-12%), so\n dark rendering is unchanged. */\n background: var(--surface, oklch(11% 0.010 265));\n border: 1px solid var(--gold-glow, oklch(72% 0.12 80 / 0.20));\n border-radius: 16px;\n padding: 32px;\n width: 90%;\n max-width: 440px;\n box-shadow: 0 20px 40px oklch(0% 0 0 / 0.55), inset 0 1px 0 oklch(100% 0 0 / 0.06);\n animation: oe-modal-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;\n display: flex;\n flex-direction: column;\n gap: 20px;\n }\n\n @keyframes oe-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n }\n\n @keyframes oe-modal-in {\n from { opacity: 0; transform: scale(0.95) translateY(10px); }\n to { opacity: 1; transform: scale(1) translateY(0); }\n }\n\n .oe-welcome-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 4px;\n }\n\n .oe-welcome-icon {\n font-size: 28px;\n color: var(--gold, oklch(72% 0.12 80));\n line-height: 1;\n text-shadow: 0 0 10px var(--gold-glow, oklch(72% 0.12 80 / 0.30));\n }\n\n .oe-welcome-title {\n font-size: 20px;\n font-weight: 600;\n color: var(--text, oklch(92% 0.006 265));\n margin: 0;\n letter-spacing: 0.02em;\n }\n\n .oe-welcome-text {\n font-size: 14.5px;\n line-height: 1.5;\n color: var(--text-secondary, oklch(68% 0.008 265));\n margin: 0;\n }\n\n .oe-welcome-hints {\n display: flex;\n flex-direction: column;\n gap: 12px;\n margin: 8px 0 12px 0;\n padding: 0;\n list-style: none;\n }\n\n .oe-welcome-hints li {\n font-size: 13.5px;\n line-height: 1.4;\n color: var(--text-secondary, oklch(68% 0.008 265));\n display: flex;\n align-items: flex-start;\n gap: 10px;\n opacity: 0;\n animation: oe-fade-in 0.4s ease forwards;\n }\n\n /* Stagger the hints */\n .oe-welcome-hints li:nth-child(1) { animation-delay: 0.15s; }\n .oe-welcome-hints li:nth-child(2) { animation-delay: 0.25s; }\n .oe-welcome-hints li:nth-child(3) { animation-delay: 0.35s; }\n .oe-welcome-hints li:nth-child(4) { animation-delay: 0.45s; }\n\n .oe-welcome-hints li::before {\n content: "\u2726";\n color: var(--gold-dim, oklch(52% 0.06 80));\n font-size: 12px;\n padding-top: 2px;\n }\n\n .oe-welcome-hints strong {\n color: var(--text, oklch(92% 0.006 265));\n font-weight: 600;\n }\n\n .oe-welcome-button {\n align-self: flex-end;\n background: var(--gold-subtle, oklch(72% 0.12 80 / 0.10));\n color: var(--gold, oklch(72% 0.12 80));\n border: 1px solid var(--gold-glow, oklch(72% 0.12 80 / 0.20));\n padding: 10px 24px;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 600;\n cursor: pointer;\n transition: background 0.2s ease, border-color 0.2s ease;\n margin-top: 4px;\n }\n\n .oe-welcome-button:hover {\n background: oklch(72% 0.12 80 / 0.18);\n border-color: oklch(72% 0.12 80 / 0.40);\n }\n\n .oe-welcome-button:focus-visible {\n outline: 2px solid var(--gold, oklch(72% 0.12 80));\n outline-offset: 2px;\n }\n\n .oe-welcome-backdrop.is-dismissing {\n animation: oe-fade-out 0.3s ease forwards;\n }\n\n .oe-welcome-backdrop.is-dismissing .oe-welcome-modal {\n animation: oe-modal-out 0.3s cubic-bezier(0.22, 1, 0.36, 1) forwards;\n }\n\n @keyframes oe-fade-out {\n to { opacity: 0; }\n }\n\n @keyframes oe-modal-out {\n to { opacity: 0; transform: scale(0.95) translateY(10px); }\n }\n';
|
|
7117
|
+
function V_() {
|
|
7049
7118
|
if (document.getElementById("oe-first-run-styles")) return;
|
|
7050
7119
|
let e5 = document.createElement("style");
|
|
7051
|
-
e5.id = "oe-first-run-styles", e5.textContent =
|
|
7120
|
+
e5.id = "oe-first-run-styles", e5.textContent = B_, document.head.appendChild(e5);
|
|
7052
7121
|
}
|
|
7053
|
-
function
|
|
7122
|
+
function H_(e5) {
|
|
7054
7123
|
let t2 = document.activeElement, n2 = document.createElement("div");
|
|
7055
7124
|
n2.className = "oe-welcome-backdrop";
|
|
7056
7125
|
let r2 = document.createElement("div");
|
|
@@ -7068,24 +7137,24 @@ function P_(e5) {
|
|
|
7068
7137
|
e6.key === "Escape" && (e6.preventDefault(), o2()), e6.key === "Tab" && (e6.preventDefault(), a2.focus());
|
|
7069
7138
|
}), requestAnimationFrame(() => a2.focus()), n2;
|
|
7070
7139
|
}
|
|
7071
|
-
function
|
|
7072
|
-
|
|
7073
|
-
let t2 =
|
|
7140
|
+
function U_(e5) {
|
|
7141
|
+
V_();
|
|
7142
|
+
let t2 = H_(z_[e5]);
|
|
7074
7143
|
document.body.appendChild(t2);
|
|
7075
7144
|
}
|
|
7076
|
-
var
|
|
7077
|
-
function
|
|
7145
|
+
var W_ = "\n .oe-info-button {\n position: fixed;\n top: 12px;\n right: 12px;\n width: 30px;\n height: 30px;\n border-radius: 50%;\n background: var(--surface-2, oklch(16% 0.010 265));\n border: 1px solid var(--border-strong, oklch(30% 0.010 265));\n color: var(--text-secondary, oklch(68% 0.008 265));\n font: 600 14px/1 Georgia, serif;\n font-style: italic;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 9998;\n transition: all 150ms ease;\n }\n\n .oe-info-button:hover {\n background: var(--surface, oklch(11% 0.010 265));\n border-color: var(--gold-dim, oklch(52% 0.06 80));\n color: var(--gold, oklch(72% 0.12 80));\n }\n\n .oe-info-button:focus-visible {\n outline: 2px solid var(--gold, oklch(72% 0.12 80));\n outline-offset: 2px;\n }\n";
|
|
7146
|
+
function G_() {
|
|
7078
7147
|
if (document.getElementById("oe-info-button-styles")) return;
|
|
7079
7148
|
let e5 = document.createElement("style");
|
|
7080
|
-
e5.id = "oe-info-button-styles", e5.textContent =
|
|
7149
|
+
e5.id = "oe-info-button-styles", e5.textContent = W_, document.head.appendChild(e5);
|
|
7081
7150
|
}
|
|
7082
|
-
function
|
|
7151
|
+
function K_(e5) {
|
|
7083
7152
|
if (document.getElementById("oe-info-button")) return;
|
|
7084
|
-
|
|
7153
|
+
G_();
|
|
7085
7154
|
let t2 = document.createElement("button");
|
|
7086
|
-
t2.id = "oe-info-button", t2.className = "oe-info-button", t2.setAttribute("aria-label", "About this chart"), t2.title = "About this chart", t2.textContent = "i", t2.addEventListener("click", () =>
|
|
7155
|
+
t2.id = "oe-info-button", t2.className = "oe-info-button", t2.setAttribute("aria-label", "About this chart"), t2.title = "About this chart", t2.textContent = "i", t2.addEventListener("click", () => U_(e5)), document.body.appendChild(t2);
|
|
7087
7156
|
}
|
|
7088
|
-
function
|
|
7157
|
+
function q_(e5) {
|
|
7089
7158
|
var t2;
|
|
7090
7159
|
if (!e5) return null;
|
|
7091
7160
|
if (e5.structuredContent != null && typeof e5.structuredContent == "object") return e5.structuredContent;
|
|
@@ -7098,50 +7167,63 @@ function z_(e5) {
|
|
|
7098
7167
|
}
|
|
7099
7168
|
return null;
|
|
7100
7169
|
}
|
|
7101
|
-
function
|
|
7170
|
+
function J_(e5) {
|
|
7102
7171
|
return e5.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
7103
7172
|
}
|
|
7104
|
-
function
|
|
7105
|
-
let { container: t2, message: n2, onRetry: r2, retryLabel: i2 = "\u21BA Try again" } = e5, a2 = r2 ? '<button class="error-retry-btn" type="button">'.concat(
|
|
7106
|
-
if (t2.innerHTML = '<div class="error-state" role="alert"><div class="error-icon" aria-hidden="true">\u26A0\uFE0F</div><p class="error-msg">'.concat(
|
|
7173
|
+
function Y_(e5) {
|
|
7174
|
+
let { container: t2, message: n2, onRetry: r2, retryLabel: i2 = "\u21BA Try again" } = e5, a2 = r2 ? '<button class="error-retry-btn" type="button">'.concat(J_(i2), "</button>") : "";
|
|
7175
|
+
if (t2.innerHTML = '<div class="error-state" role="alert"><div class="error-icon" aria-hidden="true">\u26A0\uFE0F</div><p class="error-msg">'.concat(J_(n2), "</p>") + a2 + "</div>", t2.removeAttribute("hidden"), r2) {
|
|
7107
7176
|
var o2;
|
|
7108
7177
|
(o2 = t2.querySelector(".error-retry-btn")) == null || o2.addEventListener("click", r2);
|
|
7109
7178
|
}
|
|
7110
7179
|
}
|
|
7111
|
-
var
|
|
7112
|
-
function
|
|
7113
|
-
return
|
|
7180
|
+
var X_;
|
|
7181
|
+
function Z_() {
|
|
7182
|
+
return X_ ? X_ === "dark" : window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
7114
7183
|
}
|
|
7115
|
-
function
|
|
7184
|
+
function Q_(e5 = Z_()) {
|
|
7116
7185
|
let t2 = e5 ? "dark" : "light";
|
|
7117
7186
|
return document.documentElement.setAttribute("data-theme", t2), t2;
|
|
7118
7187
|
}
|
|
7119
|
-
function
|
|
7120
|
-
|
|
7188
|
+
function $_(e5) {
|
|
7189
|
+
Q_();
|
|
7121
7190
|
try {
|
|
7122
7191
|
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (t2) => {
|
|
7123
|
-
|
|
7192
|
+
X_ || e5 == null || e5(Q_(t2.matches));
|
|
7124
7193
|
});
|
|
7125
7194
|
} catch (e6) {
|
|
7126
7195
|
}
|
|
7127
7196
|
}
|
|
7128
|
-
function
|
|
7197
|
+
function ev(e5, t2) {
|
|
7129
7198
|
var n2, r2;
|
|
7130
7199
|
let i2 = (e6) => {
|
|
7131
7200
|
let n3 = e6 == null ? void 0 : e6.theme;
|
|
7132
7201
|
if (n3 !== "light" && n3 !== "dark") return;
|
|
7133
|
-
|
|
7134
|
-
let r3 = document.documentElement.getAttribute("data-theme"), i3 =
|
|
7202
|
+
X_ = n3;
|
|
7203
|
+
let r3 = document.documentElement.getAttribute("data-theme"), i3 = Q_(n3 === "dark");
|
|
7135
7204
|
i3 !== r3 && (t2 == null || t2(i3));
|
|
7136
7205
|
};
|
|
7137
7206
|
(n2 = e5.addEventListener) == null || n2.call(e5, "hostcontextchanged", i2), i2((r2 = e5.getHostContext) == null ? void 0 : r2.call(e5));
|
|
7138
7207
|
}
|
|
7139
|
-
|
|
7140
|
-
|
|
7208
|
+
var tv = ["inline", "fullscreen"];
|
|
7209
|
+
function nv(e5) {
|
|
7210
|
+
var t2;
|
|
7211
|
+
return (t2 = e5.getHostContext) == null ? void 0 : t2.call(e5);
|
|
7212
|
+
}
|
|
7213
|
+
function rv(e5) {
|
|
7214
|
+
var t2;
|
|
7215
|
+
let n2 = (t2 = nv(e5)) == null ? void 0 : t2.availableDisplayModes;
|
|
7216
|
+
return Array.isArray(n2) ? n2 : [];
|
|
7217
|
+
}
|
|
7218
|
+
var iv = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">\n <polyline points="5,1 1,1 1,5"/>\n <polyline points="11,1 15,1 15,5"/>\n <polyline points="5,15 1,15 1,11"/>\n <polyline points="11,15 15,15 15,11"/>\n </svg>', av = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">\n <polyline points="1,5 5,5 5,1"/>\n <polyline points="15,5 11,5 11,1"/>\n <polyline points="1,11 5,11 5,15"/>\n <polyline points="15,11 11,11 11,15"/>\n </svg>', ov = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" aria-hidden="true">\n <rect x="1" y="2.5" width="14" height="11" rx="1.5"/>\n <rect x="8" y="8" width="5.5" height="4" rx="0.8" fill="currentColor" stroke="none"/>\n </svg>', sv = '<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">\n <rect x="1" y="2.5" width="14" height="11" rx="1.5"/>\n <polyline points="6,6 10,10"/>\n <polyline points="6,9.5 6,6 9.5,6"/>\n </svg>';
|
|
7219
|
+
function cv(e5, t2, n2 = [], r2 = {}) {
|
|
7220
|
+
var i2;
|
|
7141
7221
|
if (!t2 || t2.querySelector("#btn-fullscreen")) return;
|
|
7142
7222
|
let a2 = document.createElement("button");
|
|
7143
|
-
a2.id = "btn-fullscreen", a2.className = "pan-btn pan-btn--fullscreen", a2.
|
|
7144
|
-
let o2 =
|
|
7223
|
+
a2.id = "btn-fullscreen", a2.type = "button", a2.className = "pan-btn pan-btn--fullscreen", a2.innerHTML = iv, a2.hidden = true;
|
|
7224
|
+
let o2 = null;
|
|
7225
|
+
r2.pip && (o2 = document.createElement("button"), o2.id = "btn-pip", o2.type = "button", o2.className = "pan-btn pan-btn--pip", o2.innerHTML = ov, o2.hidden = true);
|
|
7226
|
+
let s2 = ["param-controls", "aspect-filter", "controls-panel", "mode-badge"];
|
|
7145
7227
|
function c2() {
|
|
7146
7228
|
if (document.getElementById("fs-bottom-bar") || !n2.length) return;
|
|
7147
7229
|
let e6 = document.getElementById("app");
|
|
@@ -7174,59 +7256,59 @@ function q_(e5, t2, n2 = []) {
|
|
|
7174
7256
|
}
|
|
7175
7257
|
e6.remove();
|
|
7176
7258
|
}
|
|
7177
|
-
|
|
7178
|
-
|
|
7179
|
-
|
|
7259
|
+
let u2 = "inline";
|
|
7260
|
+
function d2(t3) {
|
|
7261
|
+
let n3 = u2 === "fullscreen", r3 = t3 === "fullscreen";
|
|
7262
|
+
u2 = t3, document.body.classList.toggle("is-fullscreen", r3), document.body.classList.toggle("is-pip", t3 === "pip"), document.documentElement.setAttribute("data-display-mode", t3), a2.innerHTML = r3 ? av : iv;
|
|
7263
|
+
let i3 = r3 ? "Exit fullscreen" : "Enter fullscreen";
|
|
7264
|
+
if (a2.setAttribute("aria-label", i3), a2.title = r3 ? "Exit fullscreen (Esc)" : i3, o2) {
|
|
7265
|
+
let e6 = t3 === "pip";
|
|
7266
|
+
o2.innerHTML = e6 ? sv : ov;
|
|
7267
|
+
let n4 = e6 ? "Return to the conversation" : "Pop out (picture-in-picture)";
|
|
7268
|
+
o2.setAttribute("aria-label", n4), o2.title = n4;
|
|
7269
|
+
}
|
|
7270
|
+
r3 && !n3 && (c2(), lv(e5)), !r3 && n3 && l2();
|
|
7180
7271
|
}
|
|
7181
|
-
|
|
7182
|
-
|
|
7183
|
-
|
|
7184
|
-
|
|
7185
|
-
|
|
7186
|
-
|
|
7187
|
-
|
|
7188
|
-
|
|
7189
|
-
|
|
7190
|
-
|
|
7272
|
+
function f2() {
|
|
7273
|
+
var n3, r3;
|
|
7274
|
+
let i3 = rv(e5);
|
|
7275
|
+
a2.hidden = !i3.includes("fullscreen"), o2 && (o2.hidden = !i3.includes("pip")), (!a2.hidden || o2 && !o2.hidden) && (t2.hidden = false);
|
|
7276
|
+
let s3 = (n3 = (r3 = nv(e5)) == null ? void 0 : r3.displayMode) == null ? "inline" : n3;
|
|
7277
|
+
s3 !== u2 && d2(s3);
|
|
7278
|
+
}
|
|
7279
|
+
async function p2(t3) {
|
|
7280
|
+
if (!(t3 !== "inline" && !rv(e5).includes(t3))) try {
|
|
7281
|
+
var n3;
|
|
7282
|
+
let r3 = await e5.requestDisplayMode({ mode: t3 });
|
|
7283
|
+
d2((n3 = r3 == null ? void 0 : r3.mode) == null ? u2 : n3);
|
|
7191
7284
|
} catch (e6) {
|
|
7192
7285
|
console.warn("[AppChrome] requestDisplayMode failed:", e6);
|
|
7193
7286
|
}
|
|
7194
|
-
}), document.addEventListener("keydown", async (t3) => {
|
|
7195
|
-
if (t3.key === "Escape" && document.body.classList.contains("is-fullscreen")) {
|
|
7196
|
-
t3.preventDefault();
|
|
7197
|
-
try {
|
|
7198
|
-
var n3;
|
|
7199
|
-
let t4 = await e5.requestDisplayMode({ mode: "inline" });
|
|
7200
|
-
u2((n3 = t4 == null ? void 0 : t4.mode) == null ? "inline" : n3);
|
|
7201
|
-
} catch (e6) {
|
|
7202
|
-
console.warn("[AppChrome] Escape fullscreen failed:", e6);
|
|
7203
|
-
}
|
|
7204
|
-
}
|
|
7205
|
-
}), (r2 = e5.addEventListener) == null || r2.call(e5, "hostcontextchanged", (e6) => {
|
|
7206
|
-
var t3;
|
|
7207
|
-
u2((t3 = e6 == null ? void 0 : e6.displayMode) == null ? "inline" : t3);
|
|
7208
|
-
});
|
|
7209
|
-
let d2 = (i2 = e5.getHostContext) == null ? void 0 : i2.call(e5);
|
|
7210
|
-
d2 != null && d2.displayMode && u2(d2.displayMode), t2.insertBefore(a2, t2.firstChild), t2.removeAttribute("hidden");
|
|
7211
|
-
function f2() {
|
|
7212
|
-
let e6 = document.getElementById("fs-hint-banner");
|
|
7213
|
-
e6 && e6.remove();
|
|
7214
|
-
let t3 = document.createElement("div");
|
|
7215
|
-
t3.id = "fs-hint-banner", Object.assign(t3.style, { position: "fixed", top: "12px", left: "50%", transform: "translateX(-50%)", background: "oklch(14% 0.012 265 / 0.90)", backdropFilter: "blur(12px)", WebkitBackdropFilter: "blur(12px)", border: "1px solid oklch(72% 0.12 80 / 0.3)", borderRadius: "20px", padding: "6px 16px", fontSize: "11px", fontWeight: "600", color: "oklch(80% 0.08 80)", letterSpacing: "0.04em", zIndex: "9999", pointerEvents: "none", opacity: "0", transition: "opacity 300ms ease", whiteSpace: "nowrap" }), t3.textContent = "Esc \u2014 exit fullscreen & return to chat", document.body.appendChild(t3), requestAnimationFrame(() => {
|
|
7216
|
-
t3.style.opacity = "1";
|
|
7217
|
-
}), setTimeout(() => {
|
|
7218
|
-
t3.style.opacity = "0", setTimeout(() => t3.remove(), 350);
|
|
7219
|
-
}, 4e3);
|
|
7220
7287
|
}
|
|
7288
|
+
a2.addEventListener("click", () => {
|
|
7289
|
+
p2(u2 === "fullscreen" ? "inline" : "fullscreen");
|
|
7290
|
+
}), o2 == null || o2.addEventListener("click", () => {
|
|
7291
|
+
p2(u2 === "pip" ? "inline" : "pip");
|
|
7292
|
+
}), document.addEventListener("keydown", (e6) => {
|
|
7293
|
+
e6.key !== "Escape" || u2 !== "fullscreen" || (e6.preventDefault(), p2("inline"));
|
|
7294
|
+
}), (i2 = e5.addEventListener) == null || i2.call(e5, "hostcontextchanged", f2), o2 && t2.insertBefore(o2, t2.firstChild), t2.insertBefore(a2, t2.firstChild), d2("inline"), f2();
|
|
7295
|
+
}
|
|
7296
|
+
function lv(e5) {
|
|
7297
|
+
var t2, n2;
|
|
7298
|
+
(t2 = document.getElementById("fs-hint-banner")) == null || t2.remove();
|
|
7299
|
+
let r2 = (n2 = nv(e5)) == null ? void 0 : n2.deviceCapabilities, i2 = !!(r2 != null && r2.touch) && (r2 == null ? void 0 : r2.hover) === false, a2 = document.createElement("div");
|
|
7300
|
+
a2.id = "fs-hint-banner", a2.className = "fs-hint-banner", a2.setAttribute("role", "status"), a2.textContent = i2 ? "Tap the collapse button to return to the chat" : "Esc \u2014 exit fullscreen & return to chat", document.body.appendChild(a2), requestAnimationFrame(() => a2.classList.add("visible")), setTimeout(() => {
|
|
7301
|
+
a2.classList.remove("visible"), setTimeout(() => a2.remove(), 350);
|
|
7302
|
+
}, 4e3);
|
|
7221
7303
|
}
|
|
7222
|
-
function
|
|
7304
|
+
function uv(e5, t2) {
|
|
7223
7305
|
e5.ontoolcancelled = (e6) => {
|
|
7224
7306
|
var n2, r2, i2;
|
|
7225
7307
|
let a2 = (n2 = e6.reason) == null ? "Tool call was cancelled" : n2;
|
|
7226
|
-
console.warn("[AppChrome] Tool cancelled:", a2), (r2 = t2.statusFn) == null || r2.call(t2, null), !t2.loadingEl.hidden && t2.loadingEl.getAttribute("hidden") === null && (t2.loadingEl.setAttribute("hidden", ""), t2.contentEl.removeAttribute("hidden")), (i2 = t2.paramControls) == null || (i2 = i2.call(t2)) == null || i2.setBusy(false),
|
|
7308
|
+
console.warn("[AppChrome] Tool cancelled:", a2), (r2 = t2.statusFn) == null || r2.call(t2, null), !t2.loadingEl.hidden && t2.loadingEl.getAttribute("hidden") === null && (t2.loadingEl.setAttribute("hidden", ""), t2.contentEl.removeAttribute("hidden")), (i2 = t2.paramControls) == null || (i2 = i2.call(t2)) == null || i2.setBusy(false), dv(a2);
|
|
7227
7309
|
};
|
|
7228
7310
|
}
|
|
7229
|
-
function
|
|
7311
|
+
function dv(e5) {
|
|
7230
7312
|
var t2;
|
|
7231
7313
|
(t2 = document.getElementById("cancel-toast")) == null || t2.remove();
|
|
7232
7314
|
let n2 = document.createElement("div");
|
|
@@ -7234,141 +7316,155 @@ function Y_(e5) {
|
|
|
7234
7316
|
n2.classList.remove("visible"), setTimeout(() => n2.remove(), 300);
|
|
7235
7317
|
}, 3e3);
|
|
7236
7318
|
}
|
|
7237
|
-
function
|
|
7319
|
+
function fv(e5) {
|
|
7238
7320
|
var t2;
|
|
7239
|
-
|
|
7240
|
-
|
|
7241
|
-
|
|
7242
|
-
|
|
7243
|
-
|
|
7244
|
-
|
|
7245
|
-
|
|
7246
|
-
|
|
7247
|
-
|
|
7248
|
-
|
|
7249
|
-
|
|
7250
|
-
|
|
7251
|
-
|
|
7252
|
-
|
|
7253
|
-
|
|
7254
|
-
|
|
7321
|
+
let n2 = document.documentElement, r2 = (e6, t3) => {
|
|
7322
|
+
typeof t3 == "number" && Number.isFinite(t3) && t3 > 0 ? n2.style.setProperty(e6, "".concat(t3, "px")) : n2.style.removeProperty(e6);
|
|
7323
|
+
}, i2 = (e6, t3) => {
|
|
7324
|
+
t3 === void 0 ? n2.removeAttribute(e6) : n2.setAttribute(e6, t3 ? "true" : "false");
|
|
7325
|
+
};
|
|
7326
|
+
function a2() {
|
|
7327
|
+
var t3, a3, o2;
|
|
7328
|
+
let s2 = nv(e5);
|
|
7329
|
+
if (!s2) return;
|
|
7330
|
+
let c2 = (t3 = s2.containerDimensions) == null ? {} : t3;
|
|
7331
|
+
r2("--host-width", c2.width), r2("--host-max-width", c2.maxWidth), r2("--host-height", c2.height), r2("--host-max-height", c2.maxHeight);
|
|
7332
|
+
let l2 = (a3 = s2.safeAreaInsets) == null ? {} : a3;
|
|
7333
|
+
for (let e6 of ["top", "right", "bottom", "left"]) {
|
|
7334
|
+
let t4 = l2[e6];
|
|
7335
|
+
n2.style.setProperty("--safe-".concat(e6), typeof t4 == "number" && t4 > 0 ? "".concat(t4, "px") : "0px");
|
|
7336
|
+
}
|
|
7337
|
+
let u2 = l2.bottom;
|
|
7338
|
+
n2.toggleAttribute("data-safe-bottom", typeof u2 == "number" && u2 > 0), typeof s2.platform == "string" && n2.setAttribute("data-platform", s2.platform);
|
|
7339
|
+
let d2 = s2.deviceCapabilities;
|
|
7340
|
+
i2("data-touch", d2 == null ? void 0 : d2.touch), i2("data-hover", d2 == null ? void 0 : d2.hover);
|
|
7341
|
+
let f2 = s2.styles;
|
|
7342
|
+
f2 != null && f2.variables && t_(f2.variables, n2), !(f2 == null || (o2 = f2.css) == null) && o2.fonts && n_(f2.css.fonts);
|
|
7343
|
+
}
|
|
7344
|
+
a2(), (t2 = e5.addEventListener) == null || t2.call(e5, "hostcontextchanged", a2);
|
|
7345
|
+
}
|
|
7346
|
+
var pv = document.getElementById("loading-state"), mv = document.getElementById("bodygraph-container"), hv = document.getElementById("info-panel"), gv = document.getElementById("controls-panel"), _v = document.getElementById("chart-status"), vv = document.getElementById("param-controls-container"), Z = new r_({ name: "Human Design Bodygraph Explorer", version: "1.0.0" }, { availableDisplayModes: tv }), Q = null, yv = null, bv = false, xv = "dark", Sv = false, $ = "graph", Cv = false, wv = false, Tv = false, Ev = "quarter,zodiac,planets";
|
|
7347
|
+
function Dv(e5) {
|
|
7348
|
+
return e5 === "mandala" && wv;
|
|
7349
|
+
}
|
|
7350
|
+
function Ov() {
|
|
7255
7351
|
let e5 = Q == null ? void 0 : Q._birth_params;
|
|
7256
7352
|
return typeof (e5 == null ? void 0 : e5.latitude) == "number" && typeof (e5 == null ? void 0 : e5.longitude) == "number";
|
|
7257
7353
|
}
|
|
7258
|
-
function
|
|
7354
|
+
function kv() {
|
|
7259
7355
|
let e5 = Q == null ? void 0 : Q._render_token;
|
|
7260
7356
|
return e5 ? { render_token: e5 } : {};
|
|
7261
7357
|
}
|
|
7262
|
-
function
|
|
7263
|
-
return e5 === "mandala" ? { layout: e5, rings: t2 ? "".concat(
|
|
7358
|
+
function Av(e5 = $, t2 = Dv(e5)) {
|
|
7359
|
+
return e5 === "mandala" ? { layout: e5, rings: t2 ? "".concat(Ev, ",houses") : Ev } : { layout: e5 };
|
|
7264
7360
|
}
|
|
7265
|
-
var
|
|
7266
|
-
function
|
|
7361
|
+
var jv = {};
|
|
7362
|
+
function Mv(e5, t2, n2) {
|
|
7267
7363
|
return "".concat(e5, ":").concat(t2, ":").concat(n2);
|
|
7268
7364
|
}
|
|
7269
|
-
function
|
|
7270
|
-
for (let e5 of Object.keys(
|
|
7365
|
+
function Nv() {
|
|
7366
|
+
for (let e5 of Object.keys(jv)) delete jv[e5];
|
|
7271
7367
|
}
|
|
7272
|
-
function
|
|
7273
|
-
return
|
|
7368
|
+
function Pv() {
|
|
7369
|
+
return Q_();
|
|
7274
7370
|
}
|
|
7275
|
-
|
|
7276
|
-
async function
|
|
7277
|
-
if (e5 ===
|
|
7278
|
-
let t2 =
|
|
7371
|
+
$_((e5) => void Fv(e5));
|
|
7372
|
+
async function Fv(e5) {
|
|
7373
|
+
if (e5 === xv || Sv || !Q) return;
|
|
7374
|
+
let t2 = jv[Mv($, e5, Dv($))];
|
|
7279
7375
|
if (t2) {
|
|
7280
|
-
|
|
7376
|
+
xv = e5, Jv(t2);
|
|
7281
7377
|
return;
|
|
7282
7378
|
}
|
|
7283
|
-
|
|
7379
|
+
Sv = true;
|
|
7284
7380
|
let n2 = Q._refetch;
|
|
7285
7381
|
try {
|
|
7286
7382
|
let t3;
|
|
7287
|
-
if (n2) t3 = await Z.callServerTool({ name: n2.tool, arguments: { ...n2.args, theme: e5, ...
|
|
7383
|
+
if (n2) t3 = await Z.callServerTool({ name: n2.tool, arguments: { ...n2.args, theme: e5, ...kv() } });
|
|
7288
7384
|
else {
|
|
7289
7385
|
var r2, i2, a2, o2, s2;
|
|
7290
7386
|
let n3 = (r2 = Q._birth_params) == null ? { datetime: "" } : r2;
|
|
7291
|
-
t3 = await Z.callServerTool({ name: "bodygraph_recalculate", arguments: { datetime: n3.datetime, latitude: (i2 = n3.latitude) == null ? void 0 : i2, longitude: (a2 = n3.longitude) == null ? void 0 : a2, timezone: (o2 = n3.timezone) == null ? void 0 : o2, location: (s2 = n3.location) == null ? void 0 : s2, theme: e5, ...
|
|
7387
|
+
t3 = await Z.callServerTool({ name: "bodygraph_recalculate", arguments: { datetime: n3.datetime, latitude: (i2 = n3.latitude) == null ? void 0 : i2, longitude: (a2 = n3.longitude) == null ? void 0 : a2, timezone: (o2 = n3.timezone) == null ? void 0 : o2, location: (s2 = n3.location) == null ? void 0 : s2, theme: e5, ...Av(), ...kv() } });
|
|
7292
7388
|
}
|
|
7293
|
-
let c2 =
|
|
7294
|
-
c2 && (c2.type || c2.centers) ? (
|
|
7389
|
+
let c2 = ey(q_(t3));
|
|
7390
|
+
c2 && (c2.type || c2.centers) ? (xv = e5, jv[Mv($, e5, Dv($))] = c2, Jv(c2)) : (console.error("[Bodygraph] Theme re-fetch returned no usable payload"), Bv("Couldn't switch theme \u2014 showing previous colors"));
|
|
7295
7391
|
} catch (e6) {
|
|
7296
|
-
console.error("[Bodygraph] Theme re-fetch failed:", e6),
|
|
7392
|
+
console.error("[Bodygraph] Theme re-fetch failed:", e6), Bv("Couldn't switch theme \u2014 showing previous colors");
|
|
7297
7393
|
} finally {
|
|
7298
|
-
|
|
7394
|
+
Sv = false;
|
|
7299
7395
|
}
|
|
7300
7396
|
}
|
|
7301
|
-
async function
|
|
7302
|
-
if (!Q ||
|
|
7303
|
-
let e5 = $ === "graph" ? "mandala" : "graph", t2 =
|
|
7397
|
+
async function Iv() {
|
|
7398
|
+
if (!Q || Cv || Sv) return;
|
|
7399
|
+
let e5 = $ === "graph" ? "mandala" : "graph", t2 = jv[Mv(e5, xv, Dv(e5))];
|
|
7304
7400
|
if (t2) {
|
|
7305
|
-
$ = e5,
|
|
7401
|
+
$ = e5, Jv(t2);
|
|
7306
7402
|
return;
|
|
7307
7403
|
}
|
|
7308
|
-
|
|
7404
|
+
Cv = true;
|
|
7309
7405
|
let n2 = document.getElementById("hd-layout-btn");
|
|
7310
7406
|
n2 && (n2.disabled = true);
|
|
7311
7407
|
try {
|
|
7312
7408
|
let t3 = Q._refetch, n3;
|
|
7313
|
-
if (t3 != null && t3.tool) n3 = { name: t3.tool, arguments: { ...t3.args, theme:
|
|
7409
|
+
if (t3 != null && t3.tool) n3 = { name: t3.tool, arguments: { ...t3.args, theme: xv, layout: e5, ...kv() } };
|
|
7314
7410
|
else {
|
|
7315
7411
|
var r2, i2, a2, o2, s2;
|
|
7316
7412
|
let t4 = (r2 = Q._birth_params) == null ? { datetime: "" } : r2;
|
|
7317
|
-
n3 = { name: "bodygraph_recalculate", arguments: { datetime: t4.datetime, latitude: (i2 = t4.latitude) == null ? void 0 : i2, longitude: (a2 = t4.longitude) == null ? void 0 : a2, timezone: (o2 = t4.timezone) == null ? void 0 : o2, location: (s2 = t4.location) == null ? void 0 : s2, theme:
|
|
7413
|
+
n3 = { name: "bodygraph_recalculate", arguments: { datetime: t4.datetime, latitude: (i2 = t4.latitude) == null ? void 0 : i2, longitude: (a2 = t4.longitude) == null ? void 0 : a2, timezone: (o2 = t4.timezone) == null ? void 0 : o2, location: (s2 = t4.location) == null ? void 0 : s2, theme: xv, ...Av(e5), ...kv() } };
|
|
7318
7414
|
}
|
|
7319
|
-
let c2 =
|
|
7320
|
-
c2 && (c2.type || c2.centers) ? ($ = e5,
|
|
7415
|
+
let c2 = ey(q_(await Z.callServerTool(n3)));
|
|
7416
|
+
c2 && (c2.type || c2.centers) ? ($ = e5, jv[Mv($, xv, Dv($))] = c2, Jv(c2)) : (console.error("[Bodygraph] Layout toggle returned no usable payload"), Bv("Couldn't switch layout \u2014 try again or check credits"));
|
|
7321
7417
|
} catch (e6) {
|
|
7322
|
-
console.error("[Bodygraph] Layout toggle failed:", e6),
|
|
7418
|
+
console.error("[Bodygraph] Layout toggle failed:", e6), Bv("Couldn't switch layout \u2014 try again or check credits");
|
|
7323
7419
|
} finally {
|
|
7324
|
-
|
|
7420
|
+
Cv = false;
|
|
7325
7421
|
let e6 = document.getElementById("hd-layout-btn");
|
|
7326
7422
|
e6 && (e6.disabled = false);
|
|
7327
7423
|
}
|
|
7328
7424
|
}
|
|
7329
|
-
function
|
|
7330
|
-
|
|
7425
|
+
function Lv() {
|
|
7426
|
+
wv && !Ov() && (wv = false), yv == null || yv.syncExtraToggle({ checked: wv, available: $ === "mandala" && Ov(), disabledTitle: $ === "mandala" ? "Add a birth location to draw houses" : "Switch to Mandala view to add house rings" });
|
|
7331
7427
|
}
|
|
7332
|
-
async function
|
|
7333
|
-
if (!Q || $ !== "mandala" ||
|
|
7334
|
-
|
|
7428
|
+
async function Rv(e5) {
|
|
7429
|
+
if (!Q || $ !== "mandala" || Tv) {
|
|
7430
|
+
Lv();
|
|
7335
7431
|
return;
|
|
7336
7432
|
}
|
|
7337
|
-
let t2 =
|
|
7433
|
+
let t2 = jv[Mv($, xv, e5)];
|
|
7338
7434
|
if (t2) {
|
|
7339
|
-
|
|
7435
|
+
wv = e5, Jv(t2);
|
|
7340
7436
|
return;
|
|
7341
7437
|
}
|
|
7342
|
-
|
|
7438
|
+
Tv = true, yv == null || yv.syncExtraToggle({ available: false });
|
|
7343
7439
|
try {
|
|
7344
7440
|
var n2, r2, i2, a2, o2;
|
|
7345
|
-
let t3 = (n2 = Q._birth_params) == null ? { datetime: "" } : n2, s2 =
|
|
7346
|
-
s2 && (s2.type || s2.centers) ? (
|
|
7441
|
+
let t3 = (n2 = Q._birth_params) == null ? { datetime: "" } : n2, s2 = ey(q_(await Z.callServerTool({ name: "bodygraph_recalculate", arguments: { datetime: t3.datetime, latitude: (r2 = t3.latitude) == null ? void 0 : r2, longitude: (i2 = t3.longitude) == null ? void 0 : i2, timezone: (a2 = t3.timezone) == null ? void 0 : a2, location: (o2 = t3.location) == null ? void 0 : o2, theme: xv, ...Av($, e5), ...kv() } })));
|
|
7442
|
+
s2 && (s2.type || s2.centers) ? (wv = e5, jv[Mv($, xv, e5)] = s2, Jv(s2)) : (console.error("[Bodygraph] House ring toggle returned no usable payload"), Bv("Couldn't update house rings \u2014 try again or check credits"));
|
|
7347
7443
|
} catch (e6) {
|
|
7348
|
-
console.error("[Bodygraph] House ring toggle failed:", e6),
|
|
7444
|
+
console.error("[Bodygraph] House ring toggle failed:", e6), Bv("Couldn't update house rings \u2014 try again or check credits");
|
|
7349
7445
|
} finally {
|
|
7350
|
-
|
|
7446
|
+
Tv = false, Lv();
|
|
7351
7447
|
}
|
|
7352
7448
|
}
|
|
7353
|
-
async function
|
|
7354
|
-
e5 =
|
|
7449
|
+
async function zv(e5) {
|
|
7450
|
+
e5 = R_(e5, Q == null ? void 0 : Q._birth_params, "Human Design chart");
|
|
7355
7451
|
try {
|
|
7356
7452
|
(await Z.sendMessage({ role: "user", content: [{ type: "text", text: e5 }] })).isError && console.error("[Bodygraph] Host rejected sendMessage");
|
|
7357
7453
|
} catch (e6) {
|
|
7358
7454
|
console.error("[Bodygraph] sendMessage failed:", e6);
|
|
7359
7455
|
}
|
|
7360
7456
|
}
|
|
7361
|
-
function
|
|
7362
|
-
if (
|
|
7457
|
+
function Bv(e5) {
|
|
7458
|
+
if (_v) {
|
|
7363
7459
|
if (!e5) {
|
|
7364
|
-
|
|
7460
|
+
_v.classList.remove("visible");
|
|
7365
7461
|
return;
|
|
7366
7462
|
}
|
|
7367
|
-
|
|
7463
|
+
_v.textContent = "\xB7 ".concat(e5), _v.classList.add("visible");
|
|
7368
7464
|
}
|
|
7369
7465
|
}
|
|
7370
|
-
|
|
7371
|
-
async function
|
|
7466
|
+
a_(Bv);
|
|
7467
|
+
async function Vv(e5) {
|
|
7372
7468
|
var t2, n2, r2, i2;
|
|
7373
7469
|
if (!Q) return;
|
|
7374
7470
|
let a2 = (t2 = Q.type) == null ? "Unknown" : t2, o2 = (n2 = Q.profile) == null ? "" : n2, s2 = (r2 = Q.authority) == null ? "" : r2, c2 = (i2 = Q.incarnation_cross) == null ? "" : i2, l2 = "";
|
|
@@ -7405,53 +7501,53 @@ async function Tv(e5) {
|
|
|
7405
7501
|
}
|
|
7406
7502
|
return;
|
|
7407
7503
|
}
|
|
7408
|
-
l2 && await
|
|
7504
|
+
l2 && await zv(l2);
|
|
7409
7505
|
}
|
|
7410
|
-
async function
|
|
7506
|
+
async function Hv() {
|
|
7411
7507
|
var e5, t2, n2, r2, i2, a2, o2;
|
|
7412
7508
|
if (!Q) return;
|
|
7413
7509
|
let s2 = Q, c2 = (e5 = s2.type) == null ? "Unknown" : e5, l2 = (t2 = s2.profile) == null ? "" : t2, u2 = (n2 = s2.authority) == null ? "" : n2, d2 = (r2 = s2.incarnation_cross) == null ? "" : r2, f2 = (i2 = s2.definition) == null ? "" : i2, p2 = ((a2 = s2.centers) == null ? [] : a2).filter((e6) => e6.defined).map((e6) => e6.name).join(", ") || "none", m2 = ((o2 = s2.active_channels) == null ? [] : o2).join(", ") || "none";
|
|
7414
|
-
await
|
|
7510
|
+
await zv("Please give me a complete Human Design reading for this chart.\n\nType: ".concat(c2, "\n") + (l2 ? "Profile: ".concat(l2, "\n") : "") + (u2 ? "Authority: ".concat(u2, "\n") : "") + (f2 ? "Definition: ".concat(f2, "\n") : "") + (d2 ? "Incarnation Cross: ".concat(d2, "\n") : "") + "Defined Centers: ".concat(p2, "\nDefined Channels: ").concat(m2, "\n\nCover: (1) Life theme and purpose of this Type, (2) Strategy and how it works practically, (3) Authority and how to make aligned decisions, (4) The defined channels as core personality traits, (5) Key shadows and conditioning to watch for, (6) A practical summary of how to live this design."));
|
|
7415
7511
|
}
|
|
7416
|
-
async function
|
|
7512
|
+
async function Uv() {
|
|
7417
7513
|
var e5, t2, n2, r2, i2;
|
|
7418
7514
|
if (!Q) return;
|
|
7419
7515
|
let a2 = Q, o2 = (e5 = a2.type) == null ? "Unknown" : e5, s2 = (t2 = a2.profile) == null ? "" : t2, c2 = (n2 = a2.authority) == null ? "" : n2, l2 = [...(r2 = a2.personality_gates) == null ? [] : r2, ...(i2 = a2.design_gates) == null ? [] : i2].slice(0, 6).map((e6) => {
|
|
7420
7516
|
var t3;
|
|
7421
7517
|
return typeof e6 == "number" ? "Gate ".concat(e6) : "Gate ".concat((t3 = e6.gate) == null ? e6 : t3);
|
|
7422
7518
|
}).join(", ") || "none";
|
|
7423
|
-
await
|
|
7519
|
+
await zv("I'm exploring a Human Design Bodygraph for a ".concat(o2) + (s2 ? " with Profile ".concat(s2) : "") + (c2 ? " and ".concat(c2, " authority") : "") + ". Active gates include: ".concat(l2, ".\n\nBased on this design, please suggest 3-4 specific, insightful questions I could ask to understand this chart more deeply \u2014 such as how the type and authority work in daily life, what specific gates or channels mean, or how to live in alignment with this design. Present each as a tappable question I can ask you."));
|
|
7424
7520
|
}
|
|
7425
|
-
async function
|
|
7426
|
-
|
|
7521
|
+
async function Wv(e5) {
|
|
7522
|
+
bv && setTimeout(async () => {
|
|
7427
7523
|
try {
|
|
7428
7524
|
var t2, n2, r2;
|
|
7429
7525
|
let i2 = "User selected ".concat(e5.type, ": ").concat(JSON.stringify(e5.data, null, 2), "\nHD Type: ").concat((t2 = Q == null ? void 0 : Q.type) == null ? null : t2, "\nProfile: ").concat((n2 = Q == null ? void 0 : Q.profile) == null ? null : n2, "\nAuthority: ").concat((r2 = Q == null ? void 0 : Q.authority) == null ? null : r2);
|
|
7430
7526
|
await Z.updateModelContext({ content: [{ type: "text", text: i2 }] });
|
|
7431
7527
|
} catch (e6) {
|
|
7432
|
-
|
|
7528
|
+
bv = false;
|
|
7433
7529
|
}
|
|
7434
7530
|
}, 0);
|
|
7435
7531
|
}
|
|
7436
|
-
async function
|
|
7437
|
-
|
|
7532
|
+
async function Gv(e5, t2, n2) {
|
|
7533
|
+
Bv("".concat(t2 ? "\u25C9" : "\u25CB", " ").concat(e5, " Center (").concat(t2 ? "defined" : "undefined", ")")), Wv({ type: "center", data: { center_name: e5, defined: t2, active_gates: n2 } });
|
|
7438
7534
|
}
|
|
7439
|
-
async function
|
|
7440
|
-
|
|
7535
|
+
async function Kv(e5, t2, n2) {
|
|
7536
|
+
Bv("Gate ".concat(e5, " \xB7 ").concat(n2, " \xB7 ").concat(t2 === true ? "Conscious" : t2 === false ? "Unconscious" : "Both")), Wv({ type: "gate", data: { gate: e5, conscious: t2, center: n2 } });
|
|
7441
7537
|
}
|
|
7442
|
-
async function
|
|
7443
|
-
|
|
7538
|
+
async function qv(e5, t2, n2, r2, i2, a2) {
|
|
7539
|
+
Bv(r2 && i2 ? "Channel ".concat(e5, " \xB7 ").concat(r2, "\u2013").concat(i2) : "Channel ".concat(e5)), Wv({ type: "channel", data: { channel: e5, gate1: t2, gate2: n2, center1: r2, center2: i2, color_type: a2 } });
|
|
7444
7540
|
}
|
|
7445
|
-
function
|
|
7541
|
+
function Jv(e5) {
|
|
7446
7542
|
var t2, n2, r2, i2, a2, o2, s2;
|
|
7447
|
-
Q = e5,
|
|
7543
|
+
Q = e5, pv.setAttribute("hidden", ""), mv.removeAttribute("hidden"), document.body.classList.toggle("layout-mandala", $ === "mandala"), Lv();
|
|
7448
7544
|
let c2 = e5._svg;
|
|
7449
7545
|
if (!c2) {
|
|
7450
|
-
|
|
7546
|
+
Zv("Bodygraph render unavailable \u2014 the server did not return an SVG.", Qv);
|
|
7451
7547
|
return;
|
|
7452
7548
|
}
|
|
7453
|
-
let l2 =
|
|
7454
|
-
l2 && new URLSearchParams(window.location.search).has("debugHighlight") &&
|
|
7549
|
+
let l2 = T_(mv, c2, e5, { onCenterClick: Gv, onGateClick: Kv, onChannelClick: qv, onAskClaude: Vv });
|
|
7550
|
+
l2 && new URLSearchParams(window.location.search).has("debugHighlight") && $v(l2);
|
|
7455
7551
|
let u2 = document.getElementById("hd-action-bar");
|
|
7456
7552
|
if (!u2) {
|
|
7457
7553
|
u2 = document.createElement("div"), u2.id = "hd-action-bar", u2.className = "hd-action-bar";
|
|
@@ -7459,65 +7555,65 @@ function Mv(e5) {
|
|
|
7459
7555
|
if (e6) e6.appendChild(u2);
|
|
7460
7556
|
else {
|
|
7461
7557
|
var d2;
|
|
7462
|
-
(d2 =
|
|
7558
|
+
(d2 = mv.parentElement) == null || d2.insertBefore(u2, mv);
|
|
7463
7559
|
}
|
|
7464
7560
|
}
|
|
7465
|
-
let f2 = $ === "graph" ? "mandala" : "graph", p2 = !!
|
|
7466
|
-
u2.innerHTML = '\n <button class="action-btn action-btn--primary" id="hd-interpret-btn">\u2728 Interpret this chart</button>\n <button class="action-btn" id="hd-questions-btn">\u{1F52E} What should I ask?</button>\n '.concat('<button class="action-btn" id="hd-layout-btn" title="'.concat(p2 ? "Already rendered this session \u2014 free to switch" : "Re-renders on the server (~2 credits)", '">').concat($ === "mandala" ? "\u2726 Graph view" : "\u2726 Mandala view").concat(p2 ? "" : " (~2 credits)", "</button>"), "\n "), (t2 = u2.querySelector("#hd-interpret-btn")) == null || t2.addEventListener("click", () => void
|
|
7561
|
+
let f2 = $ === "graph" ? "mandala" : "graph", p2 = !!jv[Mv(f2, xv, Dv(f2))];
|
|
7562
|
+
u2.innerHTML = '\n <button class="action-btn action-btn--primary" id="hd-interpret-btn">\u2728 Interpret this chart</button>\n <button class="action-btn" id="hd-questions-btn">\u{1F52E} What should I ask?</button>\n '.concat('<button class="action-btn" id="hd-layout-btn" title="'.concat(p2 ? "Already rendered this session \u2014 free to switch" : "Re-renders on the server (~2 credits)", '">').concat($ === "mandala" ? "\u2726 Graph view" : "\u2726 Mandala view").concat(p2 ? "" : " (~2 credits)", "</button>"), "\n "), (t2 = u2.querySelector("#hd-interpret-btn")) == null || t2.addEventListener("click", () => void Hv()), (n2 = u2.querySelector("#hd-questions-btn")) == null || n2.addEventListener("click", () => void Uv()), (r2 = u2.querySelector("#hd-layout-btn")) == null || r2.addEventListener("click", () => void Iv());
|
|
7467
7563
|
let m2 = ((i2 = (a2 = e5.personality_gates) == null ? void 0 : a2.length) == null ? 0 : i2) > 0 || ((o2 = (s2 = e5.design_gates) == null ? void 0 : s2.length) == null ? 0 : o2) > 0, h2 = document.querySelector(".channel-legend");
|
|
7468
7564
|
if (m2 && !h2) {
|
|
7469
7565
|
let e6 = document.createElement("div");
|
|
7470
|
-
e6.className = "channel-legend", e6.innerHTML = '\n <span class="legend-item">\n <span class="legend-swatch" style="background:#a5b4fc"></span>Conscious\n </span>\n <span class="legend-item">\n <span class="legend-swatch" style="background:#f87171"></span>Unconscious\n </span>\n <span class="legend-item">\n <span class="legend-swatch" style="background:#f59e0b"></span>Both\n </span>\n ',
|
|
7566
|
+
e6.className = "channel-legend", e6.innerHTML = '\n <span class="legend-item">\n <span class="legend-swatch" style="background:#a5b4fc"></span>Conscious\n </span>\n <span class="legend-item">\n <span class="legend-swatch" style="background:#f87171"></span>Unconscious\n </span>\n <span class="legend-item">\n <span class="legend-swatch" style="background:#f59e0b"></span>Both\n </span>\n ', hv.prepend(e6);
|
|
7471
7567
|
}
|
|
7472
7568
|
if (e5._connectionSubjects) {
|
|
7473
|
-
var g2, _2, ee2, te2, v2, y2, b2, ne2, re2, ie2,
|
|
7569
|
+
var g2, _2, ee2, te2, v2, y2, b2, ne2, re2, ie2, ae2, x2;
|
|
7474
7570
|
let { a: t3, b: n3 } = e5._connectionSubjects;
|
|
7475
|
-
|
|
7571
|
+
hv.innerHTML = x_("Person A", { type: (g2 = t3.type) == null ? "Unknown" : g2, profile: (_2 = t3.profile) == null ? "" : _2, authority: (ee2 = t3.authority) == null ? "" : ee2, definition: (te2 = t3.definition) == null ? "" : te2, cross: (v2 = t3.incarnation_cross) == null ? "" : v2, definedCenters: (y2 = t3.defined_centers) == null ? [] : y2 }, "Person B", { type: (b2 = n3.type) == null ? "Unknown" : b2, profile: (ne2 = n3.profile) == null ? "" : ne2, authority: (re2 = n3.authority) == null ? "" : re2, definition: (ie2 = n3.definition) == null ? "" : ie2, cross: (ae2 = n3.incarnation_cross) == null ? "" : ae2, definedCenters: (x2 = n3.defined_centers) == null ? [] : x2 });
|
|
7476
7572
|
} else {
|
|
7477
7573
|
var S2, oe2, se2, ce2, le2, ue2;
|
|
7478
7574
|
let t3 = ((S2 = e5.centers) == null ? [] : S2).filter((e6) => e6.defined).map((e6) => e6.name);
|
|
7479
|
-
|
|
7575
|
+
hv.innerHTML = b_((oe2 = e5.type) == null ? "Unknown" : oe2, (se2 = e5.profile) == null ? "" : se2, (ce2 = e5.authority) == null ? "" : ce2, (le2 = e5.definition) == null ? "" : le2, (ue2 = e5.incarnation_cross) == null ? "" : ue2, t3);
|
|
7480
7576
|
}
|
|
7481
|
-
|
|
7577
|
+
hv.removeAttribute("hidden"), hv.querySelectorAll(".interactive-text").forEach((e6) => {
|
|
7482
7578
|
e6.addEventListener("click", () => {
|
|
7483
7579
|
let t3 = e6.getAttribute("data-topic"), n3 = e6.getAttribute("data-val");
|
|
7484
|
-
t3 && n3 &&
|
|
7580
|
+
t3 && n3 && Vv({ type: "attribute", data: { topic: t3, val: n3 } });
|
|
7485
7581
|
}), e6.addEventListener("keydown", (t3) => {
|
|
7486
7582
|
let n3 = t3;
|
|
7487
7583
|
(n3.key === "Enter" || n3.key === " ") && (n3.preventDefault(), e6.dispatchEvent(new MouseEvent("click", { bubbles: true, cancelable: true })));
|
|
7488
7584
|
});
|
|
7489
|
-
}),
|
|
7585
|
+
}), gv.setAttribute("hidden", ""), vv.removeAttribute("hidden"), K_("bodygraph");
|
|
7490
7586
|
}
|
|
7491
|
-
var
|
|
7492
|
-
function
|
|
7493
|
-
|
|
7587
|
+
var Yv;
|
|
7588
|
+
function Xv() {
|
|
7589
|
+
Yv && (clearTimeout(Yv), Yv = void 0);
|
|
7494
7590
|
}
|
|
7495
|
-
function
|
|
7496
|
-
|
|
7591
|
+
function Zv(e5, t2) {
|
|
7592
|
+
Xv(), pv.setAttribute("hidden", ""), Y_({ container: mv, message: e5, onRetry: t2 });
|
|
7497
7593
|
}
|
|
7498
|
-
function
|
|
7499
|
-
|
|
7500
|
-
|
|
7594
|
+
function Qv() {
|
|
7595
|
+
Xv(), mv.setAttribute("hidden", ""), pv.removeAttribute("hidden"), Yv = setTimeout(() => {
|
|
7596
|
+
Zv("The bodygraph didn't load. Tap to try again.", Qv);
|
|
7501
7597
|
}, 3e4), Z.sendMessage({ role: "user", content: [{ type: "text", text: "Please regenerate the Human Design bodygraph." }] }).catch(() => {
|
|
7502
7598
|
});
|
|
7503
7599
|
}
|
|
7504
|
-
function
|
|
7600
|
+
function $v(e5) {
|
|
7505
7601
|
e5.addEventListener("click", (t2) => {
|
|
7506
7602
|
let n2 = t2.target;
|
|
7507
7603
|
for (; n2 && n2 !== e5; ) {
|
|
7508
7604
|
if (n2.hasAttribute("data-gate")) {
|
|
7509
7605
|
let t3 = Number(n2.getAttribute("data-gate"));
|
|
7510
7606
|
if (t3) {
|
|
7511
|
-
|
|
7607
|
+
M_(e5, { gates: [t3] });
|
|
7512
7608
|
return;
|
|
7513
7609
|
}
|
|
7514
7610
|
}
|
|
7515
7611
|
n2 = n2.parentElement;
|
|
7516
7612
|
}
|
|
7517
|
-
|
|
7613
|
+
M_(e5, {});
|
|
7518
7614
|
});
|
|
7519
7615
|
}
|
|
7520
|
-
function
|
|
7616
|
+
function ey(e5) {
|
|
7521
7617
|
var t2;
|
|
7522
7618
|
if (!e5) return null;
|
|
7523
7619
|
if (e5.type || e5.centers) return e5;
|
|
@@ -7530,18 +7626,18 @@ function Rv(e5) {
|
|
|
7530
7626
|
return null;
|
|
7531
7627
|
}
|
|
7532
7628
|
Z.ontoolresult = (e5) => {
|
|
7533
|
-
|
|
7629
|
+
Xv();
|
|
7534
7630
|
try {
|
|
7535
|
-
let a2 =
|
|
7536
|
-
if ((o2 === "light" || o2 === "dark") && (
|
|
7537
|
-
|
|
7631
|
+
let a2 = ey(q_(e5)), o2 = a2 == null ? void 0 : a2._theme;
|
|
7632
|
+
if ((o2 === "light" || o2 === "dark") && (xv = o2), !a2) {
|
|
7633
|
+
Zv("Bodygraph data could not be parsed from the server response.", Qv);
|
|
7538
7634
|
return;
|
|
7539
7635
|
}
|
|
7540
|
-
if ($ = "graph",
|
|
7636
|
+
if ($ = "graph", wv = false, Nv(), jv[Mv($, xv, false)] = a2, !yv && a2._birth_params) {
|
|
7541
7637
|
var t2, n2, r2, i2;
|
|
7542
7638
|
let e6 = (t2 = a2._birth_params) == null ? {} : t2, o3 = (n2 = e6.datetime) == null ? "" : n2, s2 = (r2 = e6.location) == null ? "" : r2, c2 = (i2 = e6.timezone) == null ? "" : i2, l2 = e6.latitude, u2 = e6.longitude, d2 = "", f2 = "12:00";
|
|
7543
7639
|
if (o3) try {
|
|
7544
|
-
let e7 =
|
|
7640
|
+
let e7 = I_(o3, c2);
|
|
7545
7641
|
if (e7) {
|
|
7546
7642
|
let { date: t3, timeZone: n3 } = e7;
|
|
7547
7643
|
d2 = t3.toLocaleDateString("en-CA", { timeZone: n3 }), f2 = t3.toLocaleTimeString("en-GB", { timeZone: n3, hour: "2-digit", minute: "2-digit", hour12: false });
|
|
@@ -7549,30 +7645,30 @@ Z.ontoolresult = (e5) => {
|
|
|
7549
7645
|
} catch (e7) {
|
|
7550
7646
|
o3.includes("T") && (d2 = o3.split("T")[0], f2 = o3.split("T")[1].substring(0, 5));
|
|
7551
7647
|
}
|
|
7552
|
-
|
|
7553
|
-
|
|
7648
|
+
yv = new P_({ app: Z, container: vv, initialParams: { date: d2, time: f2, locationName: s2, timezone: c2, latitude: typeof l2 == "number" ? l2 : null, longitude: typeof u2 == "number" ? u2 : null }, showStepControls: false, costHint: "~2 credits", extraToggle: { label: "Add house rings (+1 credit)", initialChecked: false, initialDisabled: true, disabledTitle: "Switch to Mandala view to add house rings", onChange: (e7) => void Rv(e7) }, onRefresh: async (e7) => {
|
|
7649
|
+
yv == null || yv.setBusy(true), pv.removeAttribute("hidden"), mv.setAttribute("hidden", "");
|
|
7554
7650
|
try {
|
|
7555
7651
|
var t3, n3, r3, i3;
|
|
7556
|
-
let a3 = "".concat(e7.date, "T").concat(e7.time, ":00"), o4 = e7.timezone ? a3 : "".concat(a3, "Z"), s3 = new Promise((e8, t4) => setTimeout(() => t4(Error("Bodygraph recalculate timed out after 30s")), 3e4)), c3 =
|
|
7557
|
-
l3 ? (
|
|
7652
|
+
let a3 = "".concat(e7.date, "T").concat(e7.time, ":00"), o4 = e7.timezone ? a3 : "".concat(a3, "Z"), s3 = new Promise((e8, t4) => setTimeout(() => t4(Error("Bodygraph recalculate timed out after 30s")), 3e4)), c3 = q_(await Promise.race([Z.callServerTool({ name: "bodygraph_recalculate", arguments: { datetime: o4, latitude: (t3 = e7.latitude) == null ? void 0 : t3, longitude: (n3 = e7.longitude) == null ? void 0 : n3, timezone: (r3 = e7.timezone) == null ? void 0 : r3, location: (i3 = e7.locationName) == null ? void 0 : i3, theme: xv, ...Av() } }), s3])), l3 = c3 && (c3.type || c3.centers) ? c3 : null;
|
|
7653
|
+
l3 ? (Nv(), jv[Mv($, xv, Dv($))] = l3, Jv(l3)) : Q && (pv.setAttribute("hidden", ""), mv.removeAttribute("hidden"));
|
|
7558
7654
|
} catch (e8) {
|
|
7559
|
-
console.error("[Bodygraph] Recalculate failed or timed out:", e8), Q && (
|
|
7655
|
+
console.error("[Bodygraph] Recalculate failed or timed out:", e8), Q && (pv.setAttribute("hidden", ""), mv.removeAttribute("hidden"));
|
|
7560
7656
|
} finally {
|
|
7561
|
-
|
|
7657
|
+
yv == null || yv.setBusy(false);
|
|
7562
7658
|
}
|
|
7563
7659
|
} });
|
|
7564
7660
|
}
|
|
7565
|
-
|
|
7661
|
+
Jv(a2), Fv(Pv());
|
|
7566
7662
|
} catch (e6) {
|
|
7567
|
-
|
|
7663
|
+
Zv("An error occurred while rendering the bodygraph.", Qv), console.error("[Bodygraph] Render error:", e6);
|
|
7568
7664
|
}
|
|
7569
|
-
},
|
|
7570
|
-
|
|
7665
|
+
}, uv(Z, { loadingEl: pv, contentEl: mv, statusFn: Bv, paramControls: () => yv }), Yv = setTimeout(() => {
|
|
7666
|
+
Zv("Bodygraph data is taking longer than expected.", Qv);
|
|
7571
7667
|
}, 3e4), (async () => {
|
|
7572
7668
|
try {
|
|
7573
7669
|
await Z.connect();
|
|
7574
7670
|
let e5 = Z.getHostCapabilities();
|
|
7575
|
-
|
|
7671
|
+
bv = !!(e5 != null && e5.modelContext), e5 == null || e5.sampling, cv(Z, document.getElementById("pan-zoom-controls"), ["param-controls-container", "controls-panel", "info-panel", "hd-action-bar", "hd-disclaimer"]), fv(Z), ev(Z, (e6) => void Fv(e6));
|
|
7576
7672
|
} catch (e5) {
|
|
7577
7673
|
console.error("[Bodygraph] connect() failed:", e5);
|
|
7578
7674
|
}
|