@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/chart-wheel.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>Chart Wheel Explorer</title>
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
<style>:root{--bg:#010203;--surface:#040609;--surface-2:#0b0d13;--border:#13161d;--border-strong:#242932;--text:#e2e4e9;--text-secondary:#777a80;--gold:#cc9c42;--gold-dim:#7b6540;--gold-glow:rgba(204,156,66,.2);--gold-subtle:rgba(204,156,66,.1);--on-gold:#0d0802;--success:#1da871;--error:#c53443;--radius:10px;--radius-sm:6px;--radius-pill:99px;--shadow:0 4px 20px rgba(0,0,0,.45);--shadow-md:0 8px 40px rgba(0,0,0,.65), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 0 2px var(--gold-glow), 0 6px 24px rgba(0,0,0,.5);--planet-sun:#e9ab2b;--planet-moon:#abb8d2;--planet-mercury:#37b880;--planet-venus:#de73bd;--planet-mars:#dd4d57;--planet-jupiter:#9886ed;--planet-saturn:#589194;--planet-uranus:#24c1c9;--planet-neptune:#2f8adc;--planet-pluto:#a97cc9;--aspect-conjunction:#ffa94d;--aspect-opposition:#ff6b8a;--aspect-trine:#ffd166;--aspect-square:#ff6b8a;--aspect-sextile:#38bdf8;--color-fire:#ec6d3d;--color-earth:#779e4b;--color-air:#17a9cb;--color-water:#8678c9;--color-cardinal:#d9525a;--color-fixed:#cc9c42;--color-mutable:#1da871}@supports (color:color(display-p3 0 0 0)){:root{--bg:color(display-p3 .00515318 .00655345 .0110262);--surface:color(display-p3 .0181758 .0222118 .0344746);--surface-2:color(display-p3 .0438795 .0516065 .0708656);--border:color(display-p3 .0763929 .0859556 .109705);--border-strong:color(display-p3 .146313 .159736 .192938);--text:color(display-p3 .889546 .895785 .910689);--text-secondary:color(display-p3 .470023 .47923 .50135);--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);--on-gold:color(display-p3 .0492866 .0328715 .0111297);--success:color(display-p3 .313719 .651039 .459895);--error:color(display-p3 .710345 .252818 .279408);--shadow:0 4px 20px color(display-p3 0 0 0/.45);--shadow-md:0 8px 40px color(display-p3 0 0 0/.65), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 0 2px var(--gold-glow), 0 6px 24px color(display-p3 0 0 0/.5);--planet-sun:color(display-p3 .877131 .680603 .28424);--planet-moon:color(display-p3 .679472 .718322 .813586);--planet-mercury:color(display-p3 .376022 .713332 .518194);--planet-venus:color(display-p3 .815343 .471375 .72873);--planet-mars:color(display-p3 .803557 .340931 .357065);--planet-jupiter:color(display-p3 .584642 .526796 .904819);--planet-saturn:color(display-p3 .398313 .564522 .578019);--planet-uranus:color(display-p3 .364235 .746318 .77845);--planet-neptune:color(display-p3 .290256 .532943 .838196);--planet-pluto:color(display-p3 .635092 .494812 .769187);--color-fire:color(display-p3 .864679 .454605 .289251);--color-earth:color(display-p3 .496575 .613452 .334223);--color-air:color(display-p3 .308318 .651825 .781829);--color-water:color(display-p3 .515326 .47381 .767317);--color-cardinal:color(display-p3 .790049 .355864 .367143);--color-fixed:color(display-p3 .76996 .617341 .321369);--color-mutable:color(display-p3 .313719 .651039 .459895)}}@supports (color:lab(0% 0 0)){:root{--bg:lab(.455387% .00626594 -.517511);--surface:lab(1.54195% -.000223517 -1.4246);--surface-2:lab(3.66055% -.0193194 -3.00652);--border:lab(7.15581% -.0557452 -5.11242);--border-strong:lab(16.3845% -.109598 -6.65552);--text:lab(90.6942% -.142366 -2.26941);--text-secondary:lab(51.2352% -.205308 -3.76425);--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);--on-gold:lab(2.4863% .883393 2.81807);--success:lab(61.2436% -46.7762 18.3644);--error:lab(45.8893% 57.7361 27.393);--shadow:0 4px 20px lab(0% 0 0/.45);--shadow-md:0 8px 40px lab(0% 0 0/.65), 0 0 0 1px var(--border-strong);--shadow-gold:0 0 0 2px var(--gold-glow), 0 6px 24px lab(0% 0 0/.5);--planet-sun:lab(74.5017% 15.8158 68.8514);--planet-moon:lab(74.277% -.405699 -14.8565);--planet-mercury:lab(67.0478% -46.5952 18.3141);--planet-venus:lab(62.9358% 49.4917 -19.8999);--planet-mars:lab(54.0218% 57.6814 26.7913);--planet-jupiter:lab(60.9189% 25.1968 -50.641);--planet-saturn:lab(56.5081% -18.8848 -7.81488);--planet-uranus:lab(71.0008% -37.5682 -15.4301);--planet-neptune:lab(55.2086% -4.94954 -50.4575);--planet-pluto:lab(58.8593% 28.4679 -33.3653);--color-fire:lab(61.5466% 48.3829 50.2676);--color-earth:lab(60.647% -24.5491 38.2386);--color-air:lab(63.473% -27.315 -28.2614);--color-water:lab(54.4132% 19.4196 -40.6625);--color-cardinal:lab(54.1324% 54.4527 25.0799);--color-fixed:lab(67.5798% 11.9379 52.333);--color-mutable:lab(61.2436% -46.7762 18.3644)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;height:100%}body{background:var(--bg);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.035'/%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;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;display:flex}#loading-state[hidden]{display:none}#loading-state p{letter-spacing:.05em;text-transform:uppercase;font-size:12px}.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)}}#chart-container{aspect-ratio:1;z-index:0;justify-content:center;align-items:center;width:100%;max-height:520px;padding:8px;display:flex;position:relative;overflow:hidden}#chart-container[hidden]{display:none}#chart-container svg{-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;height:100%;display:block;overflow:hidden}.info-panel,.overview-tbl td{-webkit-user-select:text;-moz-user-select:text;user-select:text}#chart-info{background:var(--surface);border-top:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:6px 12px;display:flex}#chart-info[hidden]{display:none!important}.info-chip{color:var(--text-secondary);border-radius:var(--radius-pill);white-space:nowrap;letter-spacing:.03em;background:#13161c;background:color(display-p3 .0777944 .086043 .106387);background:lab(7.16788% -.0827834 -4.39059);align-items:center;gap:3px;padding:2px 8px;font-size:10px;font-weight:500;line-height:1.6;display:inline-flex}.info-chip.sect{color:var(--gold);background:var(--gold-subtle);font-weight:600}.hit-region{cursor:pointer;fill:transparent;stroke:transparent;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--gold-subtle);stroke:var(--gold-dim);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim):hover{filter:drop-shadow(0 0 6px var(--gold-glow))}.hit-region:focus-visible{outline:2px solid var(--gold);outline-offset:2px;fill:var(--gold-subtle)}.hit-region.dim{opacity:.12}.hit-region.aspect-hit{stroke-width:13px}.hit-region.sign-hit:hover{fill:rgba(204,156,66,.06);fill:color(display-p3 .76996 .617341 .321369/.06);fill:lab(67.5798% 11.9379 52.333/.06);stroke:none}.info-panel{background:var(--surface-2);border:1px solid var(--border-strong);width:100%;box-shadow:0 8px 40px rgba(0,0,0,.6), 0 0 0 1px var(--border-strong);opacity:0;pointer-events:none;z-index:2;border-radius:10px;max-height:0;padding:0 16px;transition:max-height .26s cubic-bezier(.16,1,.3,1),opacity .2s,padding .2s;position:relative;overflow:hidden}@supports (color:color(display-p3 0 0 0)){.info-panel{box-shadow:0 8px 40px color(display-p3 0 0 0/.6), 0 0 0 1px var(--border-strong)}}@supports (color:lab(0% 0 0)){.info-panel{box-shadow:0 8px 40px lab(0% 0 0/.6), 0 0 0 1px var(--border-strong)}}.info-panel:before{content:"";background:var(--border-strong);border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:0 auto 10px;display:block}.info-panel.visible{opacity:1;pointer-events:all;max-height:520px;padding:14px 16px 12px}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);margin-top:2px;font-family:JetBrains Mono,Courier New,monospace;font-size:11px;font-weight:400}.retro{color:var(--error);font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:15px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspects-list::-webkit-scrollbar{width:3px}.aspects-list::-webkit-scrollbar-track{background:0 0}.aspects-list::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:11px}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--gold-dim);letter-spacing:.03em;text-align:center;margin-top:10px;font-size:10px}.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:.5;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);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)}.chart-status{min-height:0;max-height:0;color:var(--gold);letter-spacing:.04em;opacity:0;background:var(--surface);border-top:1px solid var(--border);padding:0 14px;font-size:11px;font-weight:500;transition:max-height .24s cubic-bezier(.16,1,.3,1),padding .24s cubic-bezier(.16,1,.3,1),opacity .24s;overflow:hidden}.chart-status[data-active]{opacity:1;max-height:32px;padding:6px 14px}.aspect-pair-row{justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.aspect-pair-planet{flex:1;align-items:center;gap:6px;display:flex}.aspect-pair-glyph{text-align:center;flex-shrink:0;width:24px;font-size:18px;line-height:1}.aspect-pair-name{color:var(--text);font-size:12px;font-weight:600}.aspect-pair-pos{color:var(--text-secondary);margin-top:1px;font-family:JetBrains Mono,monospace;font-size:10px}.aspect-pair-sym{text-align:center;flex-shrink:0;width:24px;font-size:20px}.pattern-ask-claude-btn{border-radius:var(--radius-pill);color:var(--gold);letter-spacing:.04em;cursor:pointer;background:rgba(204,156,66,.1);background:color(display-p3 .76996 .617341 .321369/.1);background:lab(67.5798% 11.9379 52.333/.1);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);flex-shrink:0;margin-left:6px;padding:3px 10px;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:10px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s}.pattern-ask-claude-btn:hover{background:rgba(204,156,66,.18);background:color(display-p3 .76996 .617341 .321369/.18);background:lab(67.5798% 11.9379 52.333/.18);border-color:rgba(204,156,66,.6);border-color:color(display-p3 .76996 .617341 .321369/.6);border-color:lab(67.5798% 11.9379 52.333/.6);box-shadow:0 0 0 2px rgba(204,156,66,.1);box-shadow:0 0 0 2px color(display-p3 .76996 .617341 .321369/.1);box-shadow:0 0 0 2px lab(67.5798% 11.9379 52.333/.1)}.pattern-ask-claude-btn:disabled{opacity:.45;cursor:default}.dignity-badge{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#4bc98f;color:color(display-p3 .438181 .776546 .577613);color:lab(72.8515% -46.4433 18.272);background:rgba(29,168,113,.15);background:color(display-p3 .313719 .651039 .459895/.15);background:lab(61.2436% -46.7762 18.3644/.15);border:1px solid rgba(29,168,113,.4);border:1px solid color(display-p3 .313719 .651039 .459895/.4);border:1px solid lab(61.2436% -46.7762 18.3644/.4)}.dignity-exaltation{color:#e6b55d;color:color(display-p3 .872302 .716587 .419329);color:lab(76.888% 11.458 50.9953);background:rgba(204,156,66,.15);background:color(display-p3 .76996 .617341 .321369/.15);background:lab(67.5798% 11.9379 52.333/.15);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)}.dignity-detriment{color:#e17174;color:color(display-p3 .827266 .46738 .465289);color:lab(61.4259% 44.7499 19.9857);background:rgba(197,52,67,.12);background:color(display-p3 .710345 .252818 .279408/.12);background:lab(45.8893% 57.7361 27.393/.12);border:1px solid rgba(197,52,67,.35);border:1px solid color(display-p3 .710345 .252818 .279408/.35);border:1px solid lab(45.8893% 57.7361 27.393/.35)}.dignity-fall{color:#7a869f;color:color(display-p3 .488637 .525017 .615022);color:lab(55.7075% -.240624 -14.7889);background:rgba(88,99,123,.12);background:color(display-p3 .353624 .387759 .473149/.12);background:lab(41.7762% -.0450611 -14.7162/.12);border:1px solid rgba(88,99,123,.3);border:1px solid color(display-p3 .353624 .387759 .473149/.3);border:1px solid lab(41.7762% -.0450611 -14.7162/.3)}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:6px;display:flex}.tally-item{white-space:nowrap;letter-spacing:.02em;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:rgba(236,109,61,.12);background:color(display-p3 .864679 .454605 .289251/.12);background:lab(61.5466% 48.3829 50.2676/.12)}.tally-item.earth{color:var(--color-earth);background:rgba(119,158,75,.12);background:color(display-p3 .496575 .613452 .334223/.12);background:lab(60.647% -24.5491 38.2386/.12)}.tally-item.air{color:var(--color-air);background:rgba(23,169,203,.12);background:color(display-p3 .308318 .651825 .781829/.12);background:lab(63.473% -27.315 -28.2614/.12)}.tally-item.water{color:var(--color-water);background:rgba(134,120,201,.12);background:color(display-p3 .515326 .47381 .767317/.12);background:lab(54.4132% 19.4196 -40.6625/.12)}.tally-item.cardinal{color:var(--color-cardinal);background:rgba(217,82,90,.1);background:color(display-p3 .790049 .355864 .367143/.1);background:lab(54.1324% 54.4527 25.0799/.1)}.tally-item.fixed{color:var(--color-fixed);background:rgba(204,156,66,.1);background:color(display-p3 .76996 .617341 .321369/.1);background:lab(67.5798% 11.9379 52.333/.1)}.tally-item.mutable{color:var(--color-mutable);background:rgba(29,168,113,.1);background:color(display-p3 .313719 .651039 .459895/.1);background:lab(61.2436% -46.7762 18.3644/.1)}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:96px;height:3px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .5s cubic-bezier(.16,1,.3,1)}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border-strong);flex-shrink:0;width:1px;height:26px}.tally-item[data-interactive]{cursor:pointer;transition:opacity .14s,box-shadow .14s,background .14s}.tally-item[data-interactive]:hover,.tally-item[data-interactive].active{opacity:1;box-shadow:0 0 0 2px}.tally-planets{flex-wrap:wrap;gap:3px;padding:2px 0 0;display:flex}.tally-planet-chip{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:rgba(255,255,255,.05);background:color(display-p3 1 1 1/.05);background:lab(100% 0 0/.05);border-radius:3px;padding:0 4px;font-size:9px;font-weight:500;transition:color .12s,background .12s}.tally-planet-chip:hover{color:var(--gold);background:rgba(204,156,66,.12);background:color(display-p3 .76996 .617341 .321369/.12);background:lab(67.5798% 11.9379 52.333/.12)}#dignity-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:4px 12px;display:flex}.dignity-chip{cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;transition:opacity .14s,box-shadow .14s;display:inline-flex}.dignity-chip:hover{opacity:1;box-shadow:0 0 0 2px}.dignity-chip.active{box-shadow:0 0 0 2px}#overview-table{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0}.overview-header{align-items:center;display:flex}.overview-header .overview-toggle{flex:auto;width:auto}.overview-copy{border:1px solid var(--border);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;border-radius:var(--radius-sm,6px);cursor:pointer;background:0 0;flex-shrink:0;margin-right:8px;padding:3px 10px;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:10px;font-weight:700;transition:color .14s,border-color .14s}.overview-copy:hover,.overview-copy.copied{color:var(--gold);border-color:var(--gold)}.overview-toggle{width:100%;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:6px 12px;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:10px;font-weight:700;transition:color .14s;display:flex}.overview-toggle:hover{color:var(--gold)}.overview-chevron{font-size:8px;transition:transform .2s}.overview-toggle[aria-expanded=true] .overview-chevron{transform:rotate(90deg)}.overview-body{grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.16,1,.3,1);display:grid;overflow:hidden}.overview-body>*{min-height:0}.overview-body.open{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;grid-template-rows:1fr;max-height:300px;overflow-x:hidden;overflow-y:auto}.overview-tbl{border-collapse:collapse;width:100%;font-size:11px}.overview-tbl th{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border);background:var(--surface);padding:3px 8px;font-size:9px;font-weight:700;position:-webkit-sticky;position:sticky;top:0}.overview-tbl td{color:var(--text);border-bottom:1px solid rgba(255,255,255,.04);border-bottom:1px solid color(display-p3 1 1 1/.04);border-bottom:1px solid lab(100% 0 0/.04);padding:4px 8px}.overview-tbl tr{cursor:pointer;transition:background .12s}.overview-tbl tbody tr:hover{background:rgba(204,156,66,.06);background:color(display-p3 .76996 .617341 .321369/.06);background:lab(67.5798% 11.9379 52.333/.06)}.overview-tbl tbody tr.active-row{background:rgba(204,156,66,.12);background:color(display-p3 .76996 .617341 .321369/.12);background:lab(67.5798% 11.9379 52.333/.12)}.overview-tbl tbody tr.extended-row{opacity:.72}.overview-tbl tbody tr.extended-row td:first-child:after{content:" ·";color:var(--text-secondary);font-size:8px}.overview-tbl .planet-sym{text-align:center;width:20px;font-family:serif;font-size:14px;display:inline-block}.overview-tbl .retro-mark{color:#e05252;margin-left:2px;font-size:9px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:9px;font-weight:700}.pattern-pill{border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;opacity:.75;background:0 0;border:1px solid;align-items:center;gap:4px;padding:5px 9px;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:10px;font-weight:600;transition:opacity .14s,box-shadow .14s;display:inline-flex}.pattern-pill:hover{opacity:1;box-shadow:0 0 0 2px currentColor / .2}.pattern-pill.active{color:#010203;color:color(display-p3 .00515318 .00655345 .0110262);color:lab(.455387% .00626594 -.517511);opacity:1;border-color:transparent;box-shadow:0 2px 10px rgba(0,0,0,.3);box-shadow:0 2px 10px color(display-p3 0 0 0/.3);box-shadow:0 2px 10px lab(0% 0 0/.3)}#aspect-filter{border-top:1px solid var(--border);scrollbar-width:none;flex-shrink:0;align-items:center;gap:4px;padding:4px 12px;display:flex;overflow-x:auto}#aspect-filter::-webkit-scrollbar{display:none}#aspect-filter[hidden]{display:none!important}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.control-btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;padding:6px 10px;font-family:Geist,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:11px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--gold-subtle);color:var(--gold);border-color:rgba(204,156,66,.4);border-color:color(display-p3 .76996 .617341 .321369/.4);border-color:lab(67.5798% 11.9379 52.333/.4)}.control-btn.active{color:var(--gold);background:rgba(204,156,66,.18);background:color(display-p3 .76996 .617341 .321369/.18);background:lab(67.5798% 11.9379 52.333/.18);border-color:rgba(204,156,66,.6);border-color:color(display-p3 .76996 .617341 .321369/.6);border-color:lab(67.5798% 11.9379 52.333/.6);font-weight:600}.controls-divider{background:var(--border-strong);flex-shrink:0;width:1px;height:18px;margin:0 4px}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{opacity:.6;margin-bottom:4px;font-size:28px}.error-retry-btn{border:1px solid var(--border,rgba(128,128,160,.3));color:var(--gold,var(--accent-warm,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)}.info-drawer{background:var(--surface-2,#080b11);border:1px solid var(--border-strong,#242933);width:100%;box-shadow:0 8px 40px rgba(0,0,0,.65), 0 0 0 1px var(--border-strong,#242933);opacity:0;pointer-events:none;border-radius:10px;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}@supports (color:color(display-p3 0 0 0)){.info-drawer{background:var(--surface-2,color(display-p3 .0345774 .0431759 .0653236));border:1px solid var(--border-strong,color(display-p3 .144788 .159634 .196542));box-shadow:0 8px 40px color(display-p3 0 0 0/.65), 0 0 0 1px var(--border-strong,color(display-p3 .144788 .159634 .196542))}}@supports (color:lab(0% 0 0)){.info-drawer{background:var(--surface-2,lab(3.00584% .0228807 -3.15676));border:1px solid var(--border-strong,lab(16.3712% -.0768155 -7.37782));box-shadow:0 8px 40px lab(0% 0 0/.65), 0 0 0 1px var(--border-strong,lab(16.3712% -.0768155 -7.37782))}}.info-drawer:before{content:"";background:var(--border-strong,#242933);border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:0 auto 10px;display:block}@supports (color:color(display-p3 0 0 0)){.info-drawer:before{background:var(--border-strong,color(display-p3 .144788 .159634 .196542))}}@supports (color:lab(0% 0 0)){.info-drawer:before{background:var(--border-strong,lab(16.3712% -.0768155 -7.37782))}}.info-drawer.open{opacity:1;pointer-events:all;max-height:500px;padding:14px 16px 12px}.hd-action-bar{z-index:2;background:var(--bg);flex-wrap:wrap;gap:8px;padding:10px 16px 6px;display:flex;position:relative}.action-btn{border:1px solid var(--gold-glow);background:var(--gold-subtle);color:var(--gold);letter-spacing:.02em;cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:7px 16px;font-size:12px;font-weight:600;transition:background .2s,border-color .2s;display:inline-flex}.action-btn:hover{background:rgba(204,156,66,.15);background:color(display-p3 .76996 .617341 .321369/.15);background:lab(67.5798% 11.9379 52.333/.15);border-color:rgba(204,156,66,.45);border-color:color(display-p3 .76996 .617341 .321369/.45);border-color:lab(67.5798% 11.9379 52.333/.45)}.action-btn:active{background:rgba(204,156,66,.2);background:color(display-p3 .76996 .617341 .321369/.2);background:lab(67.5798% 11.9379 52.333/.2)}.action-btn--primary{background:rgba(204,156,66,.18);background:color(display-p3 .76996 .617341 .321369/.18);background:lab(67.5798% 11.9379 52.333/.18);border-color:rgba(204,156,66,.5);border-color:color(display-p3 .76996 .617341 .321369/.5);border-color:lab(67.5798% 11.9379 52.333/.5)}.action-btn--primary:hover{background:rgba(204,156,66,.25);background:color(display-p3 .76996 .617341 .321369/.25);background:lab(67.5798% 11.9379 52.333/.25);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)}.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:40px;height:40px;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:40px;height:40px}body.is-fullscreen{height:100vh;overflow:hidden}body.is-fullscreen #app{flex-direction:column;gap:0;width:100vw;height:100vh;padding:0;display:flex;overflow:hidden}body.is-fullscreen #chart-container{flex:1;justify-content:center;align-items:center;min-height:0;padding:16px 24px 0;display:flex;overflow:hidden}body.is-fullscreen #chart-container>svg{width:auto;max-width:100%;height:100%;max-height:100%}body.is-fullscreen #chart-status{display:none}body.is-fullscreen #loading-state{flex:1;height:auto;min-height:0}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 .cw-action-bar,#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-secondary);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}}#aspect-filter{padding:0}.asp-panel{flex-wrap:wrap;align-items:center;gap:6px 16px;padding:6px 0;display:flex}.asp-section{align-items:center;gap:6px;display:flex}.asp-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap;font-size:10px;font-weight:700}.aspect-toggle-btn,.orb-preset-btn{border:1.5px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.aspect-toggle-btn:hover,.orb-preset-btn:hover{border-color:var(--gold-dim);color:var(--text)}.aspect-toggle-btn.active{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}.orb-preset-btn.active{background:var(--surface-2);border-color:var(--gold);color:var(--gold)}.glyph-legend{margin-top:8px;font-size:11px}.glyph-legend>summary{cursor:pointer;border:1px solid var(--border);color:var(--text-secondary);-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;list-style:none;display:inline-flex}.glyph-legend>summary::-webkit-details-marker{display:none}.glyph-legend>summary:hover{color:var(--text);border-color:var(--gold-dim)}.glyph-legend[open]>summary{color:var(--text)}.glyph-legend .legend-spark{color:var(--gold)}.legend-body{flex-direction:column;gap:10px;padding:10px 2px 2px;display:flex}.legend-group{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.legend-group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);width:100%;font-size:9px}.legend-item{color:var(--text-secondary);align-items:center;gap:4px;display:inline-flex}.legend-glyph{color:var(--text);text-align:center;min-width:16px;font-size:14px}.chart-layer{opacity:1;transform-origin:310px 310px;animation:.5s cubic-bezier(.16,1,.3,1) both svgLayerAssemble;animation-delay:calc(var(--layer-index,0) * 80ms);transform:scale(1)}@keyframes svgLayerAssemble{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.tooltip{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:var(--radius,10px);pointer-events:none;z-index:1000;opacity:0;background:rgba(12,12,22,.97);border:1px solid rgba(60,58,80,.8);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)}.tooltip.visible{opacity:1}.tooltip-title{color:#e8e8f4;margin-bottom:2px;font-weight:700}.tooltip-detail{color:#9090b0;line-height:1.4}.tooltip-hint{color:#a08840;letter-spacing:.03em;margin-top:4px;font-size:10px}:root[data-theme=light]{--aspect-conjunction:#b45d00;--aspect-opposition:#b42318;--aspect-trine:#8f6a00;--aspect-square:#b42318;--aspect-sextile:#0c6e94;--bg:#f7f5f1;--surface:#fff;--surface-2:#f1eee9;--border:#dbd7d0;--border-strong:#bdb6ac;--text:#101215;--text-secondary:#4f5359;--gold:#825700;--gold-dim:#6d4b00;--gold-glow:rgba(130,87,0,.25);--gold-subtle:rgba(130,87,0,.1);--on-gold:#fcf4e6;--success:#007145;--error:#b1002b;--shadow:0 4px 20px rgba(0,0,0,.1);--shadow-md:0 8px 32px rgba(0,0,0,.14), 0 0 0 1px var(--border-strong)}@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);--gold:color(display-p3 .49809 .342102 -.0880434);--gold-dim:color(display-p3 .414099 .299019 .034461);--gold-glow:color(display-p3 .49809 .342102 -.0880434/.25);--gold-subtle:color(display-p3 .49809 .342102 -.0880434/.1);--on-gold:color(display-p3 .983924 .957955 .909341);--success:color(display-p3 -.0793084 .456092 .255685);--error:color(display-p3 .642198 .101724 .18242);--shadow:0 4px 20px color(display-p3 0 0 0/.1);--shadow-md:0 8px 32px color(display-p3 0 0 0/.14), 0 0 0 1px var(--border-strong)}}@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);--gold:lab(40.7346% 15.7445 75.3139);--gold-dim:lab(35.0077% 11.3181 50.9422);--gold-glow:lab(40.7346% 15.7445 75.3139/.25);--gold-subtle:lab(40.7346% 15.7445 75.3139/.1);--on-gold:lab(96.574% 1.22041 7.58642);--success:lab(41.7514% -55.3249 21.5039);--error:lab(37.5238% 64.2774 32.6097);--shadow:0 4px 20px lab(0% 0 0/.1);--shadow-md:0 8px 32px lab(0% 0 0/.14), 0 0 0 1px var(--border-strong)}}:root[data-theme=light],:root[data-theme=light] body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-image:none}:root[data-theme=light] .hd-action-bar{background:var(--bg)}:root[data-theme=light] .info-chip{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border)}:root[data-theme=light] .info-chip.sect{background:var(--gold-subtle);color:var(--gold);border-color:rgba(141,95,0,.3);border-color:color(display-p3 .542549 .371783 -.107551/.3);border-color:lab(44.1995% 17.0662 84.3373/.3)}:root[data-theme=light] .tooltip{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);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);box-shadow:0 8px 32px rgba(0,0,0,.18),inset 0 .5px rgba(255,255,255,.6);box-shadow:0 8px 32px color(display-p3 0 0 0/.18),inset 0 .5px color(display-p3 1 1 1/.6);box-shadow:0 8px 32px lab(0% 0 0/.18),inset 0 .5px lab(100% 0 0/.6)}:root[data-theme=light] .tooltip-title{color:var(--text)}:root[data-theme=light] .tooltip-detail{color:var(--text-secondary)}:root[data-theme=light] .tooltip-hint{color:var(--gold-dim)}: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] .hit-region:hover{fill:rgba(141,95,0,.1);fill:color(display-p3 .542549 .371783 -.107551/.1);fill:lab(44.1995% 17.0662 84.3373/.1);stroke:var(--gold-dim)}:root[data-theme=light] .hit-region.sign-hit:hover{fill:rgba(141,95,0,.07);fill:color(display-p3 .542549 .371783 -.107551/.07);fill:lab(44.1995% 17.0662 84.3373/.07)}:root[data-theme=light] .pan-btn{background:var(--surface)}:root[data-theme=light] .pan-btn:hover{background:var(--surface-2)}: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)}@media (max-width:480px){body,#app{padding:0}#pan-zoom-controls{flex-wrap:wrap;gap:5px}.pan-btn{background:color-mix(in oklab, var(--surface-2) 72%, transparent);-webkit-backdrop-filter:blur(6px);width:32px;min-width:32px;height:32px;min-height:32px;font-size:15px}.pan-btn.reset{width:32px;padding:0;font-size:0}.pan-btn.reset:before{content:"⟲";font-size:15px}#date-controls,.controls,.control-row{flex-wrap:wrap;gap:8px}#fs-bottom-bar{flex-wrap:wrap}#fs-bottom-bar [data-column]{border:0;flex:100%}}.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{--on-gold:#0d0802;--shadow:0 4px 20px rgba(0,0,0,.45);--shadow-gold:0 0 0 2px var(--gold-glow), 0 6px 24px rgba(0,0,0,.5);--planet-sun:#e9ab2b;--planet-moon:#abb8d2;--planet-mercury:#37b880;--planet-venus:#de73bd;--planet-mars:#dd4d57;--planet-jupiter:#9886ed;--planet-saturn:#589194;--planet-uranus:#24c1c9;--planet-neptune:#2f8adc;--planet-pluto:#a97cc9;--aspect-conjunction:#ffa94d;--aspect-opposition:#ff6b8a;--aspect-trine:#ffd166;--aspect-square:#ff6b8a;--aspect-sextile:#38bdf8;--color-fire:#ec6d3d;--color-earth:#779e4b;--color-air:#17a9cb;--color-water:#8678c9;--color-cardinal:#d9525a;--color-fixed:#cc9c42;--color-mutable:#1da871}@supports (color:color(display-p3 0 0 0)){:root{--on-gold:color(display-p3 .0492866 .0328715 .0111297);--shadow:0 4px 20px color(display-p3 0 0 0/.45);--shadow-gold:0 0 0 2px var(--gold-glow), 0 6px 24px color(display-p3 0 0 0/.5);--planet-sun:color(display-p3 .877131 .680603 .28424);--planet-moon:color(display-p3 .679472 .718322 .813586);--planet-mercury:color(display-p3 .376022 .713332 .518194);--planet-venus:color(display-p3 .815343 .471375 .72873);--planet-mars:color(display-p3 .803557 .340931 .357065);--planet-jupiter:color(display-p3 .584642 .526796 .904819);--planet-saturn:color(display-p3 .398313 .564522 .578019);--planet-uranus:color(display-p3 .364235 .746318 .77845);--planet-neptune:color(display-p3 .290256 .532943 .838196);--planet-pluto:color(display-p3 .635092 .494812 .769187);--color-fire:color(display-p3 .864679 .454605 .289251);--color-earth:color(display-p3 .496575 .613452 .334223);--color-air:color(display-p3 .308318 .651825 .781829);--color-water:color(display-p3 .515326 .47381 .767317);--color-cardinal:color(display-p3 .790049 .355864 .367143);--color-fixed:color(display-p3 .76996 .617341 .321369);--color-mutable:color(display-p3 .313719 .651039 .459895)}}@supports (color:lab(0% 0 0)){:root{--on-gold:lab(2.4863% .883393 2.81807);--shadow:0 4px 20px lab(0% 0 0/.45);--shadow-gold:0 0 0 2px var(--gold-glow), 0 6px 24px lab(0% 0 0/.5);--planet-sun:lab(74.5017% 15.8158 68.8514);--planet-moon:lab(74.277% -.405699 -14.8565);--planet-mercury:lab(67.0478% -46.5952 18.3141);--planet-venus:lab(62.9358% 49.4917 -19.8999);--planet-mars:lab(54.0218% 57.6814 26.7913);--planet-jupiter:lab(60.9189% 25.1968 -50.641);--planet-saturn:lab(56.5081% -18.8848 -7.81488);--planet-uranus:lab(71.0008% -37.5682 -15.4301);--planet-neptune:lab(55.2086% -4.94954 -50.4575);--planet-pluto:lab(58.8593% 28.4679 -33.3653);--color-fire:lab(61.5466% 48.3829 50.2676);--color-earth:lab(60.647% -24.5491 38.2386);--color-air:lab(63.473% -27.315 -28.2614);--color-water:lab(54.4132% 19.4196 -40.6625);--color-cardinal:lab(54.1324% 54.4527 25.0799);--color-fixed:lab(67.5798% 11.9379 52.333);--color-mutable:lab(61.2436% -46.7762 18.3644)}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;height:100%}body{background:var(--oe-page-bg);color:var(--text);font-family:var(--font-ui);font-size:13px;line-height:1.5;overflow-x:hidden}#app{flex-direction:column;display:flex;position:relative}#loading-state{color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;display:flex}#loading-state[hidden]{display:none}#loading-state p{letter-spacing:.05em;text-transform:uppercase;font-size:12px}.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)}}#chart-container{width:min(100%, var(--oe-chart-max));aspect-ratio:1;z-index:0;justify-content:center;align-items:center;margin-left:auto;margin-right:auto;padding:8px;display:flex;position:relative;overflow:hidden}#chart-container[hidden]{display:none}#chart-container svg{-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%;height:100%;display:block;overflow:hidden}.info-panel,.overview-tbl td{-webkit-user-select:text;-moz-user-select:text;user-select:text}#chart-info{background:var(--surface);border-top:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:6px 12px;display:flex}#chart-info[hidden]{display:none!important}.info-chip{color:var(--text-secondary);border-radius:var(--radius-pill);white-space:nowrap;letter-spacing:.03em;background:#13161c;background:color(display-p3 .0777944 .086043 .106387);background:lab(7.16788% -.0827834 -4.39059);align-items:center;gap:3px;padding:2px 8px;font-size:10px;font-weight:500;line-height:1.6;display:inline-flex}.info-chip.sect{color:var(--gold);background:var(--gold-subtle);font-weight:600}.hit-region{cursor:pointer;fill:transparent;stroke:transparent;transition:fill .15s,stroke .15s,opacity .2s}.hit-region:hover{fill:var(--gold-subtle);stroke:var(--gold-dim);stroke-width:1px;stroke-opacity:.5}.hit-region.planet-hit{rx:12px;ry:12px}.hit-region.planet-hit:not(.dim):hover{filter:drop-shadow(0 0 6px var(--gold-glow))}.hit-region:focus-visible{outline:2px solid var(--gold);outline-offset:2px;fill:var(--gold-subtle)}.hit-region.dim{opacity:.12}.hit-region.aspect-hit{stroke-width:13px}.hit-region.sign-hit:hover{fill:rgba(204,156,66,.06);fill:color(display-p3 .76996 .617341 .321369/.06);fill:lab(67.5798% 11.9379 52.333/.06);stroke:none}.info-panel{background:var(--surface-2);border:1px solid var(--border-strong);width:100%;box-shadow:0 8px 40px rgba(0,0,0,.6), 0 0 0 1px var(--border-strong);opacity:0;pointer-events:none;z-index:2;border-radius:10px;max-height:0;padding:0 16px;transition:max-height .26s cubic-bezier(.16,1,.3,1),opacity .2s,padding .2s;position:relative;overflow:hidden}@supports (color:color(display-p3 0 0 0)){.info-panel{box-shadow:0 8px 40px color(display-p3 0 0 0/.6), 0 0 0 1px var(--border-strong)}}@supports (color:lab(0% 0 0)){.info-panel{box-shadow:0 8px 40px lab(0% 0 0/.6), 0 0 0 1px var(--border-strong)}}.info-panel:before{content:"";background:var(--border-strong);border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:0 auto 10px;display:block}.info-panel.visible{opacity:1;pointer-events:all;max-height:520px;padding:14px 16px 12px}.info-header{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.info-glyph{text-align:center;flex-shrink:0;width:34px;font-size:28px;line-height:1}.info-title{color:var(--text);flex:1;font-size:13px;font-weight:700}.info-name-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.info-pos{color:var(--text-secondary);font-size:11px;font-weight:400;font-family:var(--font-code);margin-top:2px}.retro{color:var(--error);font-style:normal}.info-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:2px 4px;font-size:15px;line-height:1;transition:color .12s}.info-close:hover{color:var(--text)}.aspects-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-bottom:6px;font-size:10px;font-weight:700}.aspects-list{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;flex-direction:column;gap:4px;max-height:140px;display:flex;overflow-y:auto}.aspects-list::-webkit-scrollbar{width:3px}.aspects-list::-webkit-scrollbar-track{background:0 0}.aspects-list::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.aspect-row{align-items:center;gap:7px;padding:3px 0;font-size:12px;display:flex}.aspect-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.aspect-sym{text-align:center;flex-shrink:0;width:16px;font-size:14px}.aspect-other{color:var(--text);flex:1}.aspect-meta{color:var(--text-secondary);white-space:nowrap;font-size:11px;font-family:var(--font-code)}.no-aspects{color:var(--text-secondary);padding:4px 0;font-size:11px;font-style:italic}.info-hint{color:var(--gold-dim);letter-spacing:.03em;text-align:center;margin-top:10px;font-size:10px}.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:.5;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);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)}.chart-status{min-height:0;max-height:0;color:var(--gold);letter-spacing:.04em;opacity:0;background:var(--surface);border-top:1px solid var(--border);padding:0 14px;font-size:11px;font-weight:500;transition:max-height .24s cubic-bezier(.16,1,.3,1),padding .24s cubic-bezier(.16,1,.3,1),opacity .24s;overflow:hidden}.chart-status[data-active]{opacity:1;max-height:32px;padding:6px 14px}.aspect-pair-row{justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.aspect-pair-planet{flex:1;align-items:center;gap:6px;display:flex}.aspect-pair-glyph{text-align:center;flex-shrink:0;width:24px;font-size:18px;line-height:1}.aspect-pair-name{color:var(--text);font-size:12px;font-weight:600}.aspect-pair-pos{color:var(--text-secondary);font-size:10px;font-family:var(--font-code);margin-top:1px}.aspect-pair-sym{text-align:center;flex-shrink:0;width:24px;font-size:20px}.pattern-ask-claude-btn{border-radius:var(--radius-pill);color:var(--gold);font-family:var(--font-ui);letter-spacing:.04em;cursor:pointer;background:rgba(204,156,66,.1);background:color(display-p3 .76996 .617341 .321369/.1);background:lab(67.5798% 11.9379 52.333/.1);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);flex-shrink:0;margin-left:6px;padding:3px 10px;font-size:10px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s}.pattern-ask-claude-btn:hover{background:rgba(204,156,66,.18);background:color(display-p3 .76996 .617341 .321369/.18);background:lab(67.5798% 11.9379 52.333/.18);border-color:rgba(204,156,66,.6);border-color:color(display-p3 .76996 .617341 .321369/.6);border-color:lab(67.5798% 11.9379 52.333/.6);box-shadow:0 0 0 2px rgba(204,156,66,.1);box-shadow:0 0 0 2px color(display-p3 .76996 .617341 .321369/.1);box-shadow:0 0 0 2px lab(67.5798% 11.9379 52.333/.1)}.pattern-ask-claude-btn:disabled{opacity:.45;cursor:default}.dignity-badge{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;line-height:1.6;display:inline-flex}.dignity-domicile{color:#4bc98f;color:color(display-p3 .438181 .776546 .577613);color:lab(72.8515% -46.4433 18.272);background:rgba(29,168,113,.15);background:color(display-p3 .313719 .651039 .459895/.15);background:lab(61.2436% -46.7762 18.3644/.15);border:1px solid rgba(29,168,113,.4);border:1px solid color(display-p3 .313719 .651039 .459895/.4);border:1px solid lab(61.2436% -46.7762 18.3644/.4)}.dignity-exaltation{color:#e6b55d;color:color(display-p3 .872302 .716587 .419329);color:lab(76.888% 11.458 50.9953);background:rgba(204,156,66,.15);background:color(display-p3 .76996 .617341 .321369/.15);background:lab(67.5798% 11.9379 52.333/.15);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)}.dignity-detriment{color:#e17174;color:color(display-p3 .827266 .46738 .465289);color:lab(61.4259% 44.7499 19.9857);background:rgba(197,52,67,.12);background:color(display-p3 .710345 .252818 .279408/.12);background:lab(45.8893% 57.7361 27.393/.12);border:1px solid rgba(197,52,67,.35);border:1px solid color(display-p3 .710345 .252818 .279408/.35);border:1px solid lab(45.8893% 57.7361 27.393/.35)}.dignity-fall{color:#7a869f;color:color(display-p3 .488637 .525017 .615022);color:lab(55.7075% -.240624 -14.7889);background:rgba(88,99,123,.12);background:color(display-p3 .353624 .387759 .473149/.12);background:lab(41.7762% -.0450611 -14.7162/.12);border:1px solid rgba(88,99,123,.3);border:1px solid color(display-p3 .353624 .387759 .473149/.3);border:1px solid lab(41.7762% -.0450611 -14.7162/.3)}#tally-panel{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:center;gap:8px;padding:5px 12px;display:flex}.tally-section{flex-direction:column;gap:3px;display:flex}.tally-row{align-items:center;gap:6px;display:flex}.tally-item{white-space:nowrap;letter-spacing:.02em;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:600}.tally-item.fire{color:var(--color-fire);background:rgba(236,109,61,.12);background:color(display-p3 .864679 .454605 .289251/.12);background:lab(61.5466% 48.3829 50.2676/.12)}.tally-item.earth{color:var(--color-earth);background:rgba(119,158,75,.12);background:color(display-p3 .496575 .613452 .334223/.12);background:lab(60.647% -24.5491 38.2386/.12)}.tally-item.air{color:var(--color-air);background:rgba(23,169,203,.12);background:color(display-p3 .308318 .651825 .781829/.12);background:lab(63.473% -27.315 -28.2614/.12)}.tally-item.water{color:var(--color-water);background:rgba(134,120,201,.12);background:color(display-p3 .515326 .47381 .767317/.12);background:lab(54.4132% 19.4196 -40.6625/.12)}.tally-item.cardinal{color:var(--color-cardinal);background:rgba(217,82,90,.1);background:color(display-p3 .790049 .355864 .367143/.1);background:lab(54.1324% 54.4527 25.0799/.1)}.tally-item.fixed{color:var(--color-fixed);background:rgba(204,156,66,.1);background:color(display-p3 .76996 .617341 .321369/.1);background:lab(67.5798% 11.9379 52.333/.1)}.tally-item.mutable{color:var(--color-mutable);background:rgba(29,168,113,.1);background:color(display-p3 .313719 .651039 .459895/.1);background:lab(61.2436% -46.7762 18.3644/.1)}.tally-bar-row{padding:2px 0}.tally-bar{background:var(--border);border-radius:2px;width:96px;height:3px;display:flex;overflow:hidden}.tally-bar-fill{height:100%;transition:width .5s cubic-bezier(.16,1,.3,1)}.tally-bar-fill.fire{background:var(--color-fire)}.tally-bar-fill.earth{background:var(--color-earth)}.tally-bar-fill.air{background:var(--color-air)}.tally-bar-fill.water{background:var(--color-water)}.tally-divider{background:var(--border-strong);flex-shrink:0;width:1px;height:26px}.tally-item[data-interactive]{cursor:pointer;transition:opacity .14s,box-shadow .14s,background .14s}.tally-item[data-interactive]:hover,.tally-item[data-interactive].active{opacity:1;box-shadow:0 0 0 2px}.tally-planets{flex-wrap:wrap;gap:3px;padding:2px 0 0;display:flex}.tally-planet-chip{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:rgba(255,255,255,.05);background:color(display-p3 1 1 1/.05);background:lab(100% 0 0/.05);border-radius:3px;padding:0 4px;font-size:9px;font-weight:500;transition:color .12s,background .12s}.tally-planet-chip:hover{color:var(--gold);background:rgba(204,156,66,.12);background:color(display-p3 .76996 .617341 .321369/.12);background:lab(67.5798% 11.9379 52.333/.12)}#dignity-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:4px 12px;display:flex}.dignity-chip{cursor:pointer;white-space:nowrap;border-radius:4px;align-items:center;gap:3px;padding:1px 7px;font-size:10px;font-weight:600;transition:opacity .14s,box-shadow .14s;display:inline-flex}.dignity-chip:hover{opacity:1;box-shadow:0 0 0 2px}.dignity-chip.active{box-shadow:0 0 0 2px}#overview-table{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0}.overview-header{align-items:center;display:flex}.overview-header .overview-toggle{flex:auto;width:auto}.overview-copy{border:1px solid var(--border);color:var(--text-secondary);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.08em;border-radius:var(--radius-sm,6px);cursor:pointer;background:0 0;flex-shrink:0;margin-right:8px;padding:3px 10px;font-size:10px;font-weight:700;transition:color .14s,border-color .14s}.overview-copy:hover,.overview-copy.copied{color:var(--gold);border-color:var(--gold)}.overview-toggle{width:100%;color:var(--text-secondary);font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:6px 12px;font-size:10px;font-weight:700;transition:color .14s;display:flex}.overview-toggle:hover{color:var(--gold)}.overview-chevron{font-size:8px;transition:transform .2s}.overview-toggle[aria-expanded=true] .overview-chevron{transform:rotate(90deg)}.overview-body{grid-template-rows:0fr;transition:grid-template-rows .28s cubic-bezier(.16,1,.3,1);display:grid;overflow:hidden}.overview-body>*{min-height:0}.overview-body.open{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent;grid-template-rows:1fr;max-height:300px;overflow-x:hidden;overflow-y:auto}.overview-tbl{border-collapse:collapse;width:100%;font-size:11px}.overview-tbl th{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border);background:var(--surface);padding:3px 8px;font-size:9px;font-weight:700;position:-webkit-sticky;position:sticky;top:0}.overview-tbl td{color:var(--text);border-bottom:1px solid rgba(255,255,255,.04);border-bottom:1px solid color(display-p3 1 1 1/.04);border-bottom:1px solid lab(100% 0 0/.04);padding:4px 8px}.overview-tbl tr{cursor:pointer;transition:background .12s}.overview-tbl tbody tr:hover{background:rgba(204,156,66,.06);background:color(display-p3 .76996 .617341 .321369/.06);background:lab(67.5798% 11.9379 52.333/.06)}.overview-tbl tbody tr.active-row{background:rgba(204,156,66,.12);background:color(display-p3 .76996 .617341 .321369/.12);background:lab(67.5798% 11.9379 52.333/.12)}.overview-tbl tbody tr.extended-row{opacity:.72}.overview-tbl tbody tr.extended-row td:first-child:after{content:" ·";color:var(--text-secondary);font-size:8px}.overview-tbl .planet-sym{text-align:center;width:20px;font-family:serif;font-size:14px;display:inline-block}.overview-tbl .retro-mark{color:#e05252;margin-left:2px;font-size:9px}#patterns-strip{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:5px;padding:5px 12px;display:flex}.patterns-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);white-space:nowrap;margin-right:2px;font-size:9px;font-weight:700}.pattern-pill{border-radius:var(--radius-pill);font-size:10px;font-weight:600;font-family:var(--font-ui);cursor:pointer;white-space:nowrap;opacity:.75;background:0 0;border:1px solid;align-items:center;gap:4px;padding:5px 9px;transition:opacity .14s,box-shadow .14s;display:inline-flex}.pattern-pill:hover{opacity:1;box-shadow:0 0 0 2px currentColor / .2}.pattern-pill.active{color:#010203;color:color(display-p3 .00515318 .00655345 .0110262);color:lab(.455387% .00626594 -.517511);opacity:1;border-color:transparent;box-shadow:0 2px 10px rgba(0,0,0,.3);box-shadow:0 2px 10px color(display-p3 0 0 0/.3);box-shadow:0 2px 10px lab(0% 0 0/.3)}#aspect-filter{border-top:1px solid var(--border);scrollbar-width:none;flex-shrink:0;align-items:center;gap:4px;padding:4px 12px;display:flex;overflow-x:auto}#aspect-filter::-webkit-scrollbar{display:none}#aspect-filter[hidden]{display:none!important}#controls-panel{border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;display:flex}.controls-label{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;margin-right:2px;font-size:10px;font-weight:700}.control-btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:11px;font-family:var(--font-ui);white-space:nowrap;background:0 0;padding:6px 10px;transition:background .12s,color .12s,border-color .12s}.control-btn:hover{background:var(--gold-subtle);color:var(--gold);border-color:rgba(204,156,66,.4);border-color:color(display-p3 .76996 .617341 .321369/.4);border-color:lab(67.5798% 11.9379 52.333/.4)}.control-btn.active{color:var(--gold);background:rgba(204,156,66,.18);background:color(display-p3 .76996 .617341 .321369/.18);background:lab(67.5798% 11.9379 52.333/.18);border-color:rgba(204,156,66,.6);border-color:color(display-p3 .76996 .617341 .321369/.6);border-color:lab(67.5798% 11.9379 52.333/.6);font-weight:600}.controls-divider{background:var(--border-strong);flex-shrink:0;width:1px;height:18px;margin:0 4px}.error-state{text-align:center;color:var(--text-secondary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.error-state .error-icon{opacity:.6;margin-bottom:4px;font-size:28px}.error-retry-btn{border:1px solid var(--border,rgba(128,128,160,.3));color:var(--gold,var(--accent-warm,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)}.info-drawer{background:var(--surface-2,#080b11);border:1px solid var(--border-strong,#242933);width:100%;box-shadow:0 8px 40px rgba(0,0,0,.65), 0 0 0 1px var(--border-strong,#242933);opacity:0;pointer-events:none;border-radius:10px;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}@supports (color:color(display-p3 0 0 0)){.info-drawer{background:var(--surface-2,color(display-p3 .0345774 .0431759 .0653236));border:1px solid var(--border-strong,color(display-p3 .144788 .159634 .196542));box-shadow:0 8px 40px color(display-p3 0 0 0/.65), 0 0 0 1px var(--border-strong,color(display-p3 .144788 .159634 .196542))}}@supports (color:lab(0% 0 0)){.info-drawer{background:var(--surface-2,lab(3.00584% .0228807 -3.15676));border:1px solid var(--border-strong,lab(16.3712% -.0768155 -7.37782));box-shadow:0 8px 40px lab(0% 0 0/.65), 0 0 0 1px var(--border-strong,lab(16.3712% -.0768155 -7.37782))}}.info-drawer:before{content:"";background:var(--border-strong,#242933);border-radius:2px;flex-shrink:0;width:36px;height:4px;margin:0 auto 10px;display:block}@supports (color:color(display-p3 0 0 0)){.info-drawer:before{background:var(--border-strong,color(display-p3 .144788 .159634 .196542))}}@supports (color:lab(0% 0 0)){.info-drawer:before{background:var(--border-strong,lab(16.3712% -.0768155 -7.37782))}}.info-drawer.open{opacity:1;pointer-events:all;max-height:500px;padding:14px 16px 12px}.hd-action-bar{z-index:2;background:var(--bg);flex-wrap:wrap;gap:8px;padding:10px 16px 6px;display:flex;position:relative}.action-btn{border:1px solid var(--gold-glow);background:var(--gold-subtle);color:var(--gold);letter-spacing:.02em;cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:7px 16px;font-size:12px;font-weight:600;transition:background .2s,border-color .2s;display:inline-flex}.action-btn:hover{background:rgba(204,156,66,.15);background:color(display-p3 .76996 .617341 .321369/.15);background:lab(67.5798% 11.9379 52.333/.15);border-color:rgba(204,156,66,.45);border-color:color(display-p3 .76996 .617341 .321369/.45);border-color:lab(67.5798% 11.9379 52.333/.45)}.action-btn:active{background:rgba(204,156,66,.2);background:color(display-p3 .76996 .617341 .321369/.2);background:lab(67.5798% 11.9379 52.333/.2)}.action-btn--primary{background:rgba(204,156,66,.18);background:color(display-p3 .76996 .617341 .321369/.18);background:lab(67.5798% 11.9379 52.333/.18);border-color:rgba(204,156,66,.5);border-color:color(display-p3 .76996 .617341 .321369/.5);border-color:lab(67.5798% 11.9379 52.333/.5)}.action-btn--primary:hover{background:rgba(204,156,66,.25);background:color(display-p3 .76996 .617341 .321369/.25);background:lab(67.5798% 11.9379 52.333/.25);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)}.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}@media (min-width:680px){body:not(.is-fullscreen):not(.is-pip) #chart-container{overflow:visible}body:not(.is-fullscreen):not(.is-pip) #chart-container>.pan-zoom-controls{right:-60px}}.pan-btn{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;width:40px;height:40px;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:40px;height:40px}body.is-fullscreen #chart-status{display:none}.cancel-toast{background:var(--surface-2,#1e1e2e);border:1px solid var(--border-strong,#444);color:var(--text-secondary);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}}#aspect-filter{padding:0}.asp-panel{flex-wrap:wrap;align-items:center;gap:6px 16px;padding:6px 0;display:flex}.asp-section{align-items:center;gap:6px;display:flex}.asp-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);white-space:nowrap;font-size:10px;font-weight:700}.aspect-toggle-btn,.orb-preset-btn{border:1.5px solid var(--border-strong);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.aspect-toggle-btn:hover,.orb-preset-btn:hover{border-color:var(--gold-dim);color:var(--text)}.aspect-toggle-btn.active{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}.orb-preset-btn.active{background:var(--surface-2);border-color:var(--gold);color:var(--gold)}.glyph-legend{margin-top:8px;font-size:11px}.glyph-legend>summary{cursor:pointer;border:1px solid var(--border);color:var(--text-secondary);-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;list-style:none;display:inline-flex}.glyph-legend>summary::-webkit-details-marker{display:none}.glyph-legend>summary:hover{color:var(--text);border-color:var(--gold-dim)}.glyph-legend[open]>summary{color:var(--text)}.glyph-legend .legend-spark{color:var(--gold)}.legend-body{flex-direction:column;gap:10px;padding:10px 2px 2px;display:flex}.legend-group{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.legend-group-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);width:100%;font-size:9px}.legend-item{color:var(--text-secondary);align-items:center;gap:4px;display:inline-flex}.legend-glyph{color:var(--text);text-align:center;min-width:16px;font-size:14px}.chart-layer{opacity:1;transform-origin:310px 310px;animation:.5s cubic-bezier(.16,1,.3,1) both svgLayerAssemble;animation-delay:calc(var(--layer-index,0) * 80ms);transform:scale(1)}@keyframes svgLayerAssemble{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.tooltip{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;border-radius:var(--radius,10px);pointer-events:none;z-index:1000;opacity:0;background:rgba(12,12,22,.97);border:1px solid rgba(60,58,80,.8);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)}.tooltip.visible{opacity:1}.tooltip-title{color:#e8e8f4;margin-bottom:2px;font-weight:700}.tooltip-detail{color:#9090b0;line-height:1.4}.tooltip-hint{color:#a08840;letter-spacing:.03em;margin-top:4px;font-size:10px}:root[data-theme=light]{--aspect-conjunction:#b45d00;--aspect-opposition:#b42318;--aspect-trine:#8f6a00;--aspect-square:#b42318;--aspect-sextile:#0c6e94;--bg:#f7f5f1;--surface:#fff;--surface-2:#f1eee9;--border:#dbd7d0;--border-strong:#bdb6ac;--text:#101215;--text-secondary:#4f5359;--gold:#825700;--gold-dim:#6d4b00;--gold-glow:rgba(130,87,0,.25);--gold-subtle:rgba(130,87,0,.1);--on-gold:#fcf4e6;--success:#007145;--error:#b1002b;--shadow:0 4px 20px rgba(0,0,0,.1);--oe-shadow-md:0 8px 32px rgba(0,0,0,.14), 0 0 0 1px var(--border-strong)}@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);--gold:color(display-p3 .49809 .342102 -.0880434);--gold-dim:color(display-p3 .414099 .299019 .034461);--gold-glow:color(display-p3 .49809 .342102 -.0880434/.25);--gold-subtle:color(display-p3 .49809 .342102 -.0880434/.1);--on-gold:color(display-p3 .983924 .957955 .909341);--success:color(display-p3 -.0793084 .456092 .255685);--error:color(display-p3 .642198 .101724 .18242);--shadow:0 4px 20px color(display-p3 0 0 0/.1);--oe-shadow-md:0 8px 32px color(display-p3 0 0 0/.14), 0 0 0 1px var(--border-strong)}}@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);--gold:lab(40.7346% 15.7445 75.3139);--gold-dim:lab(35.0077% 11.3181 50.9422);--gold-glow:lab(40.7346% 15.7445 75.3139/.25);--gold-subtle:lab(40.7346% 15.7445 75.3139/.1);--on-gold:lab(96.574% 1.22041 7.58642);--success:lab(41.7514% -55.3249 21.5039);--error:lab(37.5238% 64.2774 32.6097);--shadow:0 4px 20px lab(0% 0 0/.1);--oe-shadow-md:0 8px 32px lab(0% 0 0/.14), 0 0 0 1px var(--border-strong)}}:root[data-theme=light],:root[data-theme=light] body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-image:none}:root[data-theme=light] .hd-action-bar{background:var(--bg)}:root[data-theme=light] .info-chip{background:var(--surface-2);color:var(--text-secondary);border:1px solid var(--border)}:root[data-theme=light] .info-chip.sect{background:var(--gold-subtle);color:var(--gold);border-color:rgba(141,95,0,.3);border-color:color(display-p3 .542549 .371783 -.107551/.3);border-color:lab(44.1995% 17.0662 84.3373/.3)}:root[data-theme=light] .tooltip{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);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);box-shadow:0 8px 32px rgba(0,0,0,.18),inset 0 .5px rgba(255,255,255,.6);box-shadow:0 8px 32px color(display-p3 0 0 0/.18),inset 0 .5px color(display-p3 1 1 1/.6);box-shadow:0 8px 32px lab(0% 0 0/.18),inset 0 .5px lab(100% 0 0/.6)}:root[data-theme=light] .tooltip-title{color:var(--text)}:root[data-theme=light] .tooltip-detail{color:var(--text-secondary)}:root[data-theme=light] .tooltip-hint{color:var(--gold-dim)}: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] .hit-region:hover{fill:rgba(141,95,0,.1);fill:color(display-p3 .542549 .371783 -.107551/.1);fill:lab(44.1995% 17.0662 84.3373/.1);stroke:var(--gold-dim)}:root[data-theme=light] .hit-region.sign-hit:hover{fill:rgba(141,95,0,.07);fill:color(display-p3 .542549 .371783 -.107551/.07);fill:lab(44.1995% 17.0662 84.3373/.07)}:root[data-theme=light] .pan-btn{background:var(--surface)}:root[data-theme=light] .pan-btn:hover{background:var(--surface-2)}@media (max-width:480px){body,#app{padding:0}#pan-zoom-controls{flex-wrap:wrap;gap:5px}.pan-btn{background:color-mix(in oklab, var(--surface-2) 72%, transparent);-webkit-backdrop-filter:blur(6px);width:32px;min-width:32px;height:32px;min-height:32px;font-size:15px}.pan-btn.reset{width:32px;padding:0;font-size:0}.pan-btn.reset:before{content:"⟲";font-size:15px}#date-controls,.controls,.control-row{flex-wrap:wrap;gap:8px}}.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>
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<svg class="oe-loader" viewBox="0 0 100 100"><circle cx="50" cy="50" r="45"/></svg>
|
|
20
20
|
<p>Mapping the sky at your birth moment…</p>
|
|
21
21
|
</div>
|
|
22
|
-
<div id="chart-container" hidden>
|
|
22
|
+
<div id="chart-container" class="oe-stage" hidden>
|
|
23
23
|
<div id="pan-zoom-controls" class="pan-zoom-controls" hidden>
|
|
24
24
|
<button id="btn-zoom-in" class="pan-btn" aria-label="Zoom in">+</button>
|
|
25
25
|
<button id="btn-zoom-out" class="pan-btn" aria-label="Zoom out">-</button>
|
|
@@ -128,7 +128,7 @@ var l = /* @__PURE__ */ Symbol("zod_brand"), u = class extends Error {
|
|
|
128
128
|
function p(e5) {
|
|
129
129
|
return e5 && Object.assign(f, e5), f;
|
|
130
130
|
}
|
|
131
|
-
var m = t({ BIGINT_FORMAT_RANGES: () => Te, Class: () => qe, NUMBER_FORMAT_RANGES: () => we, aborted: () => Ne, allowsEval: () => pe, assert: () => ee, assertEqual: () => h, assertIs: () => _, assertNever: () => v, assertNotEqual: () => g, assignProp: () =>
|
|
131
|
+
var m = t({ BIGINT_FORMAT_RANGES: () => Te, Class: () => qe, NUMBER_FORMAT_RANGES: () => we, aborted: () => Ne, allowsEval: () => pe, assert: () => ee, assertEqual: () => h, assertIs: () => _, assertNever: () => v, assertNotEqual: () => g, assignProp: () => T, base64ToUint8Array: () => Ve, base64urlToUint8Array: () => Ue, cached: () => te, captureStackTrace: () => de, cleanEnum: () => Be, cleanRegex: () => C, clone: () => xe, cloneDef: () => ae, createTransparentProxy: () => Se, defineLazy: () => w, esc: () => le, escapeRegex: () => be, extend: () => Oe, finalizeIssue: () => Ie, floatSafeRemainder: () => ne, getElementAtPath: () => oe, getEnumValues: () => y, getLengthableOrigin: () => Re, getParsedType: () => _e, getSizableOrigin: () => Le, hexToUint8Array: () => Ge, isObject: () => fe, isPlainObject: () => me, issue: () => ze, joinValues: () => b, jsonStringifyReplacer: () => x, merge: () => Ae, mergeDefs: () => E, normalizeParams: () => D, nullish: () => S, numKeys: () => ge, objectClone: () => ie, omit: () => De, optionalKeys: () => Ce, parsedType: () => k, partial: () => je, pick: () => Ee, prefixIssues: () => Pe, primitiveTypes: () => ye, promiseAllObject: () => se, propertyKeyTypes: () => ve, randomString: () => ce, required: () => Me, safeExtend: () => ke, shallowClone: () => he, slugify: () => ue, stringifyPrimitive: () => O, uint8ArrayToBase64: () => He, uint8ArrayToBase64url: () => We, uint8ArrayToHex: () => Ke, unwrapMessage: () => Fe });
|
|
132
132
|
function h(e5) {
|
|
133
133
|
return e5;
|
|
134
134
|
}
|
|
@@ -152,7 +152,7 @@ function b(e5, t2 = "|") {
|
|
|
152
152
|
function x(e5, t2) {
|
|
153
153
|
return typeof t2 == "bigint" ? t2.toString() : t2;
|
|
154
154
|
}
|
|
155
|
-
function
|
|
155
|
+
function te(e5) {
|
|
156
156
|
return { get value() {
|
|
157
157
|
{
|
|
158
158
|
let t2 = e5();
|
|
@@ -161,14 +161,14 @@ function S(e5) {
|
|
|
161
161
|
throw Error("cached value already set");
|
|
162
162
|
} };
|
|
163
163
|
}
|
|
164
|
-
function
|
|
164
|
+
function S(e5) {
|
|
165
165
|
return e5 == null;
|
|
166
166
|
}
|
|
167
|
-
function
|
|
167
|
+
function C(e5) {
|
|
168
168
|
let t2 = +!!e5.startsWith("^"), n2 = e5.endsWith("$") ? e5.length - 1 : e5.length;
|
|
169
169
|
return e5.slice(t2, n2);
|
|
170
170
|
}
|
|
171
|
-
function
|
|
171
|
+
function ne(e5, t2) {
|
|
172
172
|
let n2 = (e5.toString().split(".")[1] || "").length, r2 = t2.toString(), i2 = (r2.split(".")[1] || "").length;
|
|
173
173
|
if (i2 === 0 && /\d?e-\d?/.test(r2)) {
|
|
174
174
|
let e6 = r2.match(/\d?e-(\d?)/);
|
|
@@ -177,28 +177,28 @@ function te(e5, t2) {
|
|
|
177
177
|
let a2 = n2 > i2 ? n2 : i2;
|
|
178
178
|
return Number.parseInt(e5.toFixed(a2).replace(".", "")) % Number.parseInt(t2.toFixed(a2).replace(".", "")) / 10 ** a2;
|
|
179
179
|
}
|
|
180
|
-
var
|
|
181
|
-
function
|
|
180
|
+
var re = /* @__PURE__ */ Symbol("evaluating");
|
|
181
|
+
function w(e5, t2, n2) {
|
|
182
182
|
let r2;
|
|
183
183
|
Object.defineProperty(e5, t2, { get() {
|
|
184
|
-
if (r2 !==
|
|
184
|
+
if (r2 !== re) return r2 === void 0 && (r2 = re, r2 = n2()), r2;
|
|
185
185
|
}, set(n3) {
|
|
186
186
|
Object.defineProperty(e5, t2, { value: n3 });
|
|
187
187
|
}, configurable: true });
|
|
188
188
|
}
|
|
189
|
-
function
|
|
189
|
+
function ie(e5) {
|
|
190
190
|
return Object.create(Object.getPrototypeOf(e5), Object.getOwnPropertyDescriptors(e5));
|
|
191
191
|
}
|
|
192
|
-
function
|
|
192
|
+
function T(e5, t2, n2) {
|
|
193
193
|
Object.defineProperty(e5, t2, { value: n2, writable: true, enumerable: true, configurable: true });
|
|
194
194
|
}
|
|
195
|
-
function
|
|
195
|
+
function E(...e5) {
|
|
196
196
|
let t2 = {};
|
|
197
197
|
for (let n2 of e5) Object.assign(t2, Object.getOwnPropertyDescriptors(n2));
|
|
198
198
|
return Object.defineProperties({}, t2);
|
|
199
199
|
}
|
|
200
200
|
function ae(e5) {
|
|
201
|
-
return
|
|
201
|
+
return E(e5._zod.def);
|
|
202
202
|
}
|
|
203
203
|
function oe(e5, t2) {
|
|
204
204
|
return t2 ? t2.reduce((e6, t3) => e6 == null ? void 0 : e6[t3], e5) : e5;
|
|
@@ -227,7 +227,7 @@ var de = "captureStackTrace" in Error ? Error.captureStackTrace : (...e5) => {
|
|
|
227
227
|
function fe(e5) {
|
|
228
228
|
return typeof e5 == "object" && !!e5 && !Array.isArray(e5);
|
|
229
229
|
}
|
|
230
|
-
var pe =
|
|
230
|
+
var pe = te(() => {
|
|
231
231
|
var e5;
|
|
232
232
|
if (typeof navigator < "u" && !((e5 = navigator) == null || (e5 = e5.userAgent) == null) && e5.includes("Cloudflare")) return false;
|
|
233
233
|
try {
|
|
@@ -319,25 +319,25 @@ var we = { safeint: [-(2 ** 53 - 1), 2 ** 53 - 1], int32: [-2147483648, 21474836
|
|
|
319
319
|
function Ee(e5, t2) {
|
|
320
320
|
let n2 = e5._zod.def, r2 = n2.checks;
|
|
321
321
|
if (r2 && r2.length > 0) throw Error(".pick() cannot be used on object schemas containing refinements");
|
|
322
|
-
return xe(e5,
|
|
322
|
+
return xe(e5, E(e5._zod.def, { get shape() {
|
|
323
323
|
let e6 = {};
|
|
324
324
|
for (let r3 in t2) {
|
|
325
325
|
if (!(r3 in n2.shape)) throw Error('Unrecognized key: "'.concat(r3, '"'));
|
|
326
326
|
t2[r3] && (e6[r3] = n2.shape[r3]);
|
|
327
327
|
}
|
|
328
|
-
return
|
|
328
|
+
return T(this, "shape", e6), e6;
|
|
329
329
|
}, checks: [] }));
|
|
330
330
|
}
|
|
331
331
|
function De(e5, t2) {
|
|
332
332
|
let n2 = e5._zod.def, r2 = n2.checks;
|
|
333
333
|
if (r2 && r2.length > 0) throw Error(".omit() cannot be used on object schemas containing refinements");
|
|
334
|
-
return xe(e5,
|
|
334
|
+
return xe(e5, E(e5._zod.def, { get shape() {
|
|
335
335
|
let r3 = { ...e5._zod.def.shape };
|
|
336
336
|
for (let e6 in t2) {
|
|
337
337
|
if (!(e6 in n2.shape)) throw Error('Unrecognized key: "'.concat(e6, '"'));
|
|
338
338
|
t2[e6] && delete r3[e6];
|
|
339
339
|
}
|
|
340
|
-
return
|
|
340
|
+
return T(this, "shape", r3), r3;
|
|
341
341
|
}, checks: [] }));
|
|
342
342
|
}
|
|
343
343
|
function Oe(e5, t2) {
|
|
@@ -347,22 +347,22 @@ function Oe(e5, t2) {
|
|
|
347
347
|
let n3 = e5._zod.def.shape;
|
|
348
348
|
for (let e6 in t2) if (Object.getOwnPropertyDescriptor(n3, e6) !== void 0) throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.");
|
|
349
349
|
}
|
|
350
|
-
return xe(e5,
|
|
350
|
+
return xe(e5, E(e5._zod.def, { get shape() {
|
|
351
351
|
let n3 = { ...e5._zod.def.shape, ...t2 };
|
|
352
|
-
return
|
|
352
|
+
return T(this, "shape", n3), n3;
|
|
353
353
|
} }));
|
|
354
354
|
}
|
|
355
355
|
function ke(e5, t2) {
|
|
356
356
|
if (!me(t2)) throw Error("Invalid input to safeExtend: expected a plain object");
|
|
357
|
-
return xe(e5,
|
|
357
|
+
return xe(e5, E(e5._zod.def, { get shape() {
|
|
358
358
|
let n2 = { ...e5._zod.def.shape, ...t2 };
|
|
359
|
-
return
|
|
359
|
+
return T(this, "shape", n2), n2;
|
|
360
360
|
} }));
|
|
361
361
|
}
|
|
362
362
|
function Ae(e5, t2) {
|
|
363
|
-
return xe(e5,
|
|
363
|
+
return xe(e5, E(e5._zod.def, { get shape() {
|
|
364
364
|
let n2 = { ...e5._zod.def.shape, ...t2._zod.def.shape };
|
|
365
|
-
return
|
|
365
|
+
return T(this, "shape", n2), n2;
|
|
366
366
|
}, get catchall() {
|
|
367
367
|
return t2._zod.def.catchall;
|
|
368
368
|
}, checks: [] }));
|
|
@@ -370,25 +370,25 @@ function Ae(e5, t2) {
|
|
|
370
370
|
function je(e5, t2, n2) {
|
|
371
371
|
let r2 = t2._zod.def.checks;
|
|
372
372
|
if (r2 && r2.length > 0) throw Error(".partial() cannot be used on object schemas containing refinements");
|
|
373
|
-
return xe(t2,
|
|
373
|
+
return xe(t2, E(t2._zod.def, { get shape() {
|
|
374
374
|
let r3 = t2._zod.def.shape, i2 = { ...r3 };
|
|
375
375
|
if (n2) for (let t3 in n2) {
|
|
376
376
|
if (!(t3 in r3)) throw Error('Unrecognized key: "'.concat(t3, '"'));
|
|
377
377
|
n2[t3] && (i2[t3] = e5 ? new e5({ type: "optional", innerType: r3[t3] }) : r3[t3]);
|
|
378
378
|
}
|
|
379
379
|
else for (let t3 in r3) i2[t3] = e5 ? new e5({ type: "optional", innerType: r3[t3] }) : r3[t3];
|
|
380
|
-
return
|
|
380
|
+
return T(this, "shape", i2), i2;
|
|
381
381
|
}, checks: [] }));
|
|
382
382
|
}
|
|
383
383
|
function Me(e5, t2, n2) {
|
|
384
|
-
return xe(t2,
|
|
384
|
+
return xe(t2, E(t2._zod.def, { get shape() {
|
|
385
385
|
let r2 = t2._zod.def.shape, i2 = { ...r2 };
|
|
386
386
|
if (n2) for (let t3 in n2) {
|
|
387
387
|
if (!(t3 in i2)) throw Error('Unrecognized key: "'.concat(t3, '"'));
|
|
388
388
|
n2[t3] && (i2[t3] = new e5({ type: "nonoptional", innerType: r2[t3] }));
|
|
389
389
|
}
|
|
390
390
|
else for (let t3 in r2) i2[t3] = new e5({ type: "nonoptional", innerType: r2[t3] });
|
|
391
|
-
return
|
|
391
|
+
return T(this, "shape", i2), i2;
|
|
392
392
|
} }));
|
|
393
393
|
}
|
|
394
394
|
function Ne(e5, t2 = 0) {
|
|
@@ -632,7 +632,7 @@ var Sn = /^[0-9a-fA-F]{32}$/, Cn = bn(22, "=="), wn = xn(22), Tn = /^[0-9a-fA-F]
|
|
|
632
632
|
(n2 = e6._zod.bag).multipleOf != null || (n2.multipleOf = t2.value);
|
|
633
633
|
}), e5._zod.check = (n2) => {
|
|
634
634
|
if (typeof n2.value != typeof t2.value) throw Error("Cannot mix number and bigint in multiple_of check.");
|
|
635
|
-
(typeof n2.value == "bigint" ? n2.value % t2.value === BigInt(0) :
|
|
635
|
+
(typeof n2.value == "bigint" ? n2.value % t2.value === BigInt(0) : ne(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 });
|
|
636
636
|
};
|
|
637
637
|
}), Vn = c("$ZodCheckNumberFormat", (e5, t2) => {
|
|
638
638
|
var n2;
|
|
@@ -669,7 +669,7 @@ var Sn = /^[0-9a-fA-F]{32}$/, Cn = bn(22, "=="), wn = xn(22), Tn = /^[0-9a-fA-F]
|
|
|
669
669
|
var n2;
|
|
670
670
|
A.init(e5, t2), (n2 = e5._zod.def).when != null || (n2.when = (e6) => {
|
|
671
671
|
let t3 = e6.value;
|
|
672
|
-
return !
|
|
672
|
+
return !S(t3) && t3.size !== void 0;
|
|
673
673
|
}), e5._zod.onattach.push((e6) => {
|
|
674
674
|
var n3;
|
|
675
675
|
let r2 = (n3 = e6._zod.bag.maximum) == null ? 1 / 0 : n3;
|
|
@@ -682,7 +682,7 @@ var Sn = /^[0-9a-fA-F]{32}$/, Cn = bn(22, "=="), wn = xn(22), Tn = /^[0-9a-fA-F]
|
|
|
682
682
|
var n2;
|
|
683
683
|
A.init(e5, t2), (n2 = e5._zod.def).when != null || (n2.when = (e6) => {
|
|
684
684
|
let t3 = e6.value;
|
|
685
|
-
return !
|
|
685
|
+
return !S(t3) && t3.size !== void 0;
|
|
686
686
|
}), e5._zod.onattach.push((e6) => {
|
|
687
687
|
var n3;
|
|
688
688
|
let r2 = (n3 = e6._zod.bag.minimum) == null ? -1 / 0 : n3;
|
|
@@ -695,7 +695,7 @@ var Sn = /^[0-9a-fA-F]{32}$/, Cn = bn(22, "=="), wn = xn(22), Tn = /^[0-9a-fA-F]
|
|
|
695
695
|
var n2;
|
|
696
696
|
A.init(e5, t2), (n2 = e5._zod.def).when != null || (n2.when = (e6) => {
|
|
697
697
|
let t3 = e6.value;
|
|
698
|
-
return !
|
|
698
|
+
return !S(t3) && t3.size !== void 0;
|
|
699
699
|
}), e5._zod.onattach.push((e6) => {
|
|
700
700
|
let n3 = e6._zod.bag;
|
|
701
701
|
n3.minimum = t2.size, n3.maximum = t2.size, n3.size = t2.size;
|
|
@@ -709,7 +709,7 @@ var Sn = /^[0-9a-fA-F]{32}$/, Cn = bn(22, "=="), wn = xn(22), Tn = /^[0-9a-fA-F]
|
|
|
709
709
|
var n2;
|
|
710
710
|
A.init(e5, t2), (n2 = e5._zod.def).when != null || (n2.when = (e6) => {
|
|
711
711
|
let t3 = e6.value;
|
|
712
|
-
return !
|
|
712
|
+
return !S(t3) && t3.length !== void 0;
|
|
713
713
|
}), e5._zod.onattach.push((e6) => {
|
|
714
714
|
var n3;
|
|
715
715
|
let r2 = (n3 = e6._zod.bag.maximum) == null ? 1 / 0 : n3;
|
|
@@ -724,7 +724,7 @@ var Sn = /^[0-9a-fA-F]{32}$/, Cn = bn(22, "=="), wn = xn(22), Tn = /^[0-9a-fA-F]
|
|
|
724
724
|
var n2;
|
|
725
725
|
A.init(e5, t2), (n2 = e5._zod.def).when != null || (n2.when = (e6) => {
|
|
726
726
|
let t3 = e6.value;
|
|
727
|
-
return !
|
|
727
|
+
return !S(t3) && t3.length !== void 0;
|
|
728
728
|
}), e5._zod.onattach.push((e6) => {
|
|
729
729
|
var n3;
|
|
730
730
|
let r2 = (n3 = e6._zod.bag.minimum) == null ? -1 / 0 : n3;
|
|
@@ -739,7 +739,7 @@ var Sn = /^[0-9a-fA-F]{32}$/, Cn = bn(22, "=="), wn = xn(22), Tn = /^[0-9a-fA-F]
|
|
|
739
739
|
var n2;
|
|
740
740
|
A.init(e5, t2), (n2 = e5._zod.def).when != null || (n2.when = (e6) => {
|
|
741
741
|
let t3 = e6.value;
|
|
742
|
-
return !
|
|
742
|
+
return !S(t3) && t3.length !== void 0;
|
|
743
743
|
}), e5._zod.onattach.push((e6) => {
|
|
744
744
|
let n3 = e6._zod.bag;
|
|
745
745
|
n3.minimum = t2.length, n3.maximum = t2.length, n3.length = t2.length;
|
|
@@ -889,7 +889,7 @@ var rr = c("$ZodCheckProperty", (e5, t2) => {
|
|
|
889
889
|
return t3(o2, i2, a3);
|
|
890
890
|
};
|
|
891
891
|
}
|
|
892
|
-
|
|
892
|
+
w(e5, "~standard", () => ({ validate: (t3) => {
|
|
893
893
|
try {
|
|
894
894
|
var n3;
|
|
895
895
|
let r3 = st(e5, t3);
|
|
@@ -1154,8 +1154,8 @@ var ti = c("$ZodObject", (e5, t2) => {
|
|
|
1154
1154
|
return Object.defineProperty(t2, "shape", { value: n3 }), n3;
|
|
1155
1155
|
} });
|
|
1156
1156
|
}
|
|
1157
|
-
let r2 =
|
|
1158
|
-
|
|
1157
|
+
let r2 = te(() => $r(t2));
|
|
1158
|
+
w(e5._zod, "propValues", () => {
|
|
1159
1159
|
let e6 = t2.shape, n3 = {};
|
|
1160
1160
|
for (let t3 in e6) {
|
|
1161
1161
|
let r3 = e6[t3]._zod;
|
|
@@ -1181,7 +1181,7 @@ var ti = c("$ZodObject", (e5, t2) => {
|
|
|
1181
1181
|
};
|
|
1182
1182
|
}), ni = c("$ZodObjectJIT", (e5, t2) => {
|
|
1183
1183
|
ti.init(e5, t2);
|
|
1184
|
-
let n2 = e5._zod.parse, r2 =
|
|
1184
|
+
let n2 = e5._zod.parse, r2 = te(() => $r(t2)), i2 = (e6) => {
|
|
1185
1185
|
let t3 = new or(["shape", "payload", "ctx"]), n3 = r2.value, i3 = (e7) => {
|
|
1186
1186
|
let t4 = le(e7);
|
|
1187
1187
|
return "shape[".concat(t4, "]._zod.run({ value: input[").concat(t4, "], issues: [] }, ctx)");
|
|
@@ -1211,12 +1211,12 @@ function ri(e5, t2, n2, r2) {
|
|
|
1211
1211
|
return i2.length === 1 ? (t2.value = i2[0].value, i2[0]) : (t2.issues.push({ code: "invalid_union", input: t2.value, inst: n2, errors: e5.map((e6) => e6.issues.map((e7) => Ie(e7, r2, p()))) }), t2);
|
|
1212
1212
|
}
|
|
1213
1213
|
var ii = c("$ZodUnion", (e5, t2) => {
|
|
1214
|
-
j.init(e5, t2),
|
|
1214
|
+
j.init(e5, t2), w(e5._zod, "optin", () => t2.options.some((e6) => e6._zod.optin === "optional") ? "optional" : void 0), w(e5._zod, "optout", () => t2.options.some((e6) => e6._zod.optout === "optional") ? "optional" : void 0), w(e5._zod, "values", () => {
|
|
1215
1215
|
if (t2.options.every((e6) => e6._zod.values)) return new Set(t2.options.flatMap((e6) => Array.from(e6._zod.values)));
|
|
1216
|
-
}),
|
|
1216
|
+
}), w(e5._zod, "pattern", () => {
|
|
1217
1217
|
if (t2.options.every((e6) => e6._zod.pattern)) {
|
|
1218
1218
|
let e6 = t2.options.map((e7) => e7._zod.pattern);
|
|
1219
|
-
return RegExp("^(".concat(e6.map((e7) =>
|
|
1219
|
+
return RegExp("^(".concat(e6.map((e7) => C(e7.source)).join("|"), ")$"));
|
|
1220
1220
|
}
|
|
1221
1221
|
});
|
|
1222
1222
|
let n2 = t2.options.length === 1, r2 = t2.options[0]._zod.run;
|
|
@@ -1253,7 +1253,7 @@ var oi = c("$ZodXor", (e5, t2) => {
|
|
|
1253
1253
|
}), si = c("$ZodDiscriminatedUnion", (e5, t2) => {
|
|
1254
1254
|
t2.inclusive = false, ii.init(e5, t2);
|
|
1255
1255
|
let n2 = e5._zod.parse;
|
|
1256
|
-
|
|
1256
|
+
w(e5._zod, "propValues", () => {
|
|
1257
1257
|
let e6 = {};
|
|
1258
1258
|
for (let n3 of t2.options) {
|
|
1259
1259
|
let r3 = n3._zod.propValues;
|
|
@@ -1265,7 +1265,7 @@ var oi = c("$ZodXor", (e5, t2) => {
|
|
|
1265
1265
|
}
|
|
1266
1266
|
return e6;
|
|
1267
1267
|
});
|
|
1268
|
-
let r2 =
|
|
1268
|
+
let r2 = te(() => {
|
|
1269
1269
|
let e6 = t2.options, n3 = /* @__PURE__ */ new Map();
|
|
1270
1270
|
for (let i2 of e6) {
|
|
1271
1271
|
var r3;
|
|
@@ -1469,9 +1469,9 @@ function Si(e5, t2) {
|
|
|
1469
1469
|
return e5.issues.length && t2 === void 0 ? { issues: [], value: void 0 } : e5;
|
|
1470
1470
|
}
|
|
1471
1471
|
var Ci = c("$ZodOptional", (e5, t2) => {
|
|
1472
|
-
j.init(e5, t2), e5._zod.optin = "optional", e5._zod.optout = "optional",
|
|
1472
|
+
j.init(e5, t2), e5._zod.optin = "optional", e5._zod.optout = "optional", w(e5._zod, "values", () => t2.innerType._zod.values ? /* @__PURE__ */ new Set([...t2.innerType._zod.values, void 0]) : void 0), w(e5._zod, "pattern", () => {
|
|
1473
1473
|
let e6 = t2.innerType._zod.pattern;
|
|
1474
|
-
return e6 ? RegExp("^(".concat(
|
|
1474
|
+
return e6 ? RegExp("^(".concat(C(e6.source), ")?$")) : void 0;
|
|
1475
1475
|
}), e5._zod.parse = (e6, n2) => {
|
|
1476
1476
|
if (t2.innerType._zod.optin === "optional") {
|
|
1477
1477
|
let r2 = t2.innerType._zod.run(e6, n2);
|
|
@@ -1480,14 +1480,14 @@ var Ci = c("$ZodOptional", (e5, t2) => {
|
|
|
1480
1480
|
return e6.value === void 0 ? e6 : t2.innerType._zod.run(e6, n2);
|
|
1481
1481
|
};
|
|
1482
1482
|
}), wi = c("$ZodExactOptional", (e5, t2) => {
|
|
1483
|
-
Ci.init(e5, t2),
|
|
1483
|
+
Ci.init(e5, t2), w(e5._zod, "values", () => t2.innerType._zod.values), w(e5._zod, "pattern", () => t2.innerType._zod.pattern), e5._zod.parse = (e6, n2) => t2.innerType._zod.run(e6, n2);
|
|
1484
1484
|
}), Ti = c("$ZodNullable", (e5, t2) => {
|
|
1485
|
-
j.init(e5, t2),
|
|
1485
|
+
j.init(e5, t2), w(e5._zod, "optin", () => t2.innerType._zod.optin), w(e5._zod, "optout", () => t2.innerType._zod.optout), w(e5._zod, "pattern", () => {
|
|
1486
1486
|
let e6 = t2.innerType._zod.pattern;
|
|
1487
|
-
return e6 ? RegExp("^(".concat(
|
|
1488
|
-
}),
|
|
1487
|
+
return e6 ? RegExp("^(".concat(C(e6.source), "|null)$")) : void 0;
|
|
1488
|
+
}), w(e5._zod, "values", () => t2.innerType._zod.values ? /* @__PURE__ */ new Set([...t2.innerType._zod.values, null]) : void 0), e5._zod.parse = (e6, n2) => e6.value === null ? e6 : t2.innerType._zod.run(e6, n2);
|
|
1489
1489
|
}), Ei = c("$ZodDefault", (e5, t2) => {
|
|
1490
|
-
j.init(e5, t2), e5._zod.optin = "optional",
|
|
1490
|
+
j.init(e5, t2), e5._zod.optin = "optional", w(e5._zod, "values", () => t2.innerType._zod.values), e5._zod.parse = (e6, n2) => {
|
|
1491
1491
|
if (n2.direction === "backward") return t2.innerType._zod.run(e6, n2);
|
|
1492
1492
|
if (e6.value === void 0) return e6.value = t2.defaultValue, e6;
|
|
1493
1493
|
let r2 = t2.innerType._zod.run(e6, n2);
|
|
@@ -1498,9 +1498,9 @@ function Di(e5, t2) {
|
|
|
1498
1498
|
return e5.value === void 0 && (e5.value = t2.defaultValue), e5;
|
|
1499
1499
|
}
|
|
1500
1500
|
var Oi = c("$ZodPrefault", (e5, t2) => {
|
|
1501
|
-
j.init(e5, t2), e5._zod.optin = "optional",
|
|
1501
|
+
j.init(e5, t2), e5._zod.optin = "optional", w(e5._zod, "values", () => t2.innerType._zod.values), e5._zod.parse = (e6, n2) => (n2.direction === "backward" || e6.value === void 0 && (e6.value = t2.defaultValue), t2.innerType._zod.run(e6, n2));
|
|
1502
1502
|
}), ki = c("$ZodNonOptional", (e5, t2) => {
|
|
1503
|
-
j.init(e5, t2),
|
|
1503
|
+
j.init(e5, t2), w(e5._zod, "values", () => {
|
|
1504
1504
|
let e6 = t2.innerType._zod.values;
|
|
1505
1505
|
return e6 ? new Set([...e6].filter((e7) => e7 !== void 0)) : void 0;
|
|
1506
1506
|
}), e5._zod.parse = (n2, r2) => {
|
|
@@ -1518,7 +1518,7 @@ var ji = c("$ZodSuccess", (e5, t2) => {
|
|
|
1518
1518
|
return r2 instanceof Promise ? r2.then((t3) => (e6.value = t3.issues.length === 0, e6)) : (e6.value = r2.issues.length === 0, e6);
|
|
1519
1519
|
};
|
|
1520
1520
|
}), Mi = c("$ZodCatch", (e5, t2) => {
|
|
1521
|
-
j.init(e5, t2),
|
|
1521
|
+
j.init(e5, t2), w(e5._zod, "optin", () => t2.innerType._zod.optin), w(e5._zod, "optout", () => t2.innerType._zod.optout), w(e5._zod, "values", () => t2.innerType._zod.values), e5._zod.parse = (e6, n2) => {
|
|
1522
1522
|
if (n2.direction === "backward") return t2.innerType._zod.run(e6, n2);
|
|
1523
1523
|
let r2 = t2.innerType._zod.run(e6, n2);
|
|
1524
1524
|
return r2 instanceof Promise ? r2.then((r3) => (e6.value = r3.value, r3.issues.length && (e6.value = t2.catchValue({ ...e6, error: { issues: r3.issues.map((e7) => Ie(e7, n2, p())) }, input: e6.value }), e6.issues = []), e6)) : (e6.value = r2.value, r2.issues.length && (e6.value = t2.catchValue({ ...e6, error: { issues: r2.issues.map((e7) => Ie(e7, n2, p())) }, input: e6.value }), e6.issues = []), e6);
|
|
@@ -1526,7 +1526,7 @@ var ji = c("$ZodSuccess", (e5, t2) => {
|
|
|
1526
1526
|
}), Ni = c("$ZodNaN", (e5, t2) => {
|
|
1527
1527
|
j.init(e5, t2), e5._zod.parse = (t3, n2) => ((typeof t3.value != "number" || !Number.isNaN(t3.value)) && t3.issues.push({ input: t3.value, inst: e5, expected: "nan", code: "invalid_type" }), t3);
|
|
1528
1528
|
}), Pi = c("$ZodPipe", (e5, t2) => {
|
|
1529
|
-
j.init(e5, t2),
|
|
1529
|
+
j.init(e5, t2), w(e5._zod, "values", () => t2.in._zod.values), w(e5._zod, "optin", () => t2.in._zod.optin), w(e5._zod, "optout", () => t2.out._zod.optout), w(e5._zod, "propValues", () => t2.in._zod.propValues), e5._zod.parse = (e6, n2) => {
|
|
1530
1530
|
if (n2.direction === "backward") {
|
|
1531
1531
|
let r3 = t2.out._zod.run(e6, n2);
|
|
1532
1532
|
return r3 instanceof Promise ? r3.then((e7) => Fi(e7, t2.in, n2)) : Fi(r3, t2.in, n2);
|
|
@@ -1539,7 +1539,7 @@ function Fi(e5, t2, n2) {
|
|
|
1539
1539
|
return e5.issues.length ? (e5.aborted = true, e5) : t2._zod.run({ value: e5.value, issues: e5.issues }, n2);
|
|
1540
1540
|
}
|
|
1541
1541
|
var Ii = c("$ZodCodec", (e5, t2) => {
|
|
1542
|
-
j.init(e5, t2),
|
|
1542
|
+
j.init(e5, t2), w(e5._zod, "values", () => t2.in._zod.values), w(e5._zod, "optin", () => t2.in._zod.optin), w(e5._zod, "optout", () => t2.out._zod.optout), w(e5._zod, "propValues", () => t2.in._zod.propValues), e5._zod.parse = (e6, n2) => {
|
|
1543
1543
|
if ((n2.direction || "forward") === "forward") {
|
|
1544
1544
|
let r2 = t2.in._zod.run(e6, n2);
|
|
1545
1545
|
return r2 instanceof Promise ? r2.then((e7) => Li(e7, t2, n2)) : Li(r2, t2, n2);
|
|
@@ -1563,10 +1563,10 @@ function Ri(e5, t2, n2, r2) {
|
|
|
1563
1563
|
return e5.issues.length ? (e5.aborted = true, e5) : n2._zod.run({ value: t2, issues: e5.issues }, r2);
|
|
1564
1564
|
}
|
|
1565
1565
|
var zi = c("$ZodReadonly", (e5, t2) => {
|
|
1566
|
-
j.init(e5, t2),
|
|
1566
|
+
j.init(e5, t2), w(e5._zod, "propValues", () => t2.innerType._zod.propValues), w(e5._zod, "values", () => t2.innerType._zod.values), w(e5._zod, "optin", () => {
|
|
1567
1567
|
var e6;
|
|
1568
1568
|
return (e6 = t2.innerType) == null || (e6 = e6._zod) == null ? void 0 : e6.optin;
|
|
1569
|
-
}),
|
|
1569
|
+
}), w(e5._zod, "optout", () => {
|
|
1570
1570
|
var e6;
|
|
1571
1571
|
return (e6 = t2.innerType) == null || (e6 = e6._zod) == null ? void 0 : e6.optout;
|
|
1572
1572
|
}), e5._zod.parse = (e6, n2) => {
|
|
@@ -1618,16 +1618,16 @@ var Vi = c("$ZodTemplateLiteral", (e5, t2) => {
|
|
|
1618
1618
|
}, e5)), Ui = c("$ZodPromise", (e5, t2) => {
|
|
1619
1619
|
j.init(e5, t2), e5._zod.parse = (e6, n2) => Promise.resolve(e6.value).then((e7) => t2.innerType._zod.run({ value: e7, issues: [] }, n2));
|
|
1620
1620
|
}), Wi = c("$ZodLazy", (e5, t2) => {
|
|
1621
|
-
j.init(e5, t2),
|
|
1621
|
+
j.init(e5, t2), w(e5._zod, "innerType", () => t2.getter()), w(e5._zod, "pattern", () => {
|
|
1622
1622
|
var t3;
|
|
1623
1623
|
return (t3 = e5._zod.innerType) == null || (t3 = t3._zod) == null ? void 0 : t3.pattern;
|
|
1624
|
-
}),
|
|
1624
|
+
}), w(e5._zod, "propValues", () => {
|
|
1625
1625
|
var t3;
|
|
1626
1626
|
return (t3 = e5._zod.innerType) == null || (t3 = t3._zod) == null ? void 0 : t3.propValues;
|
|
1627
|
-
}),
|
|
1627
|
+
}), w(e5._zod, "optin", () => {
|
|
1628
1628
|
var t3, n2;
|
|
1629
1629
|
return (t3 = (n2 = e5._zod.innerType) == null || (n2 = n2._zod) == null ? void 0 : n2.optin) == null ? void 0 : t3;
|
|
1630
|
-
}),
|
|
1630
|
+
}), w(e5._zod, "optout", () => {
|
|
1631
1631
|
var t3, n2;
|
|
1632
1632
|
return (t3 = (n2 = e5._zod.innerType) == null || (n2 = n2._zod) == null ? void 0 : n2.optout) == null ? void 0 : t3;
|
|
1633
1633
|
}), e5._zod.parse = (t3, n2) => e5._zod.innerType._zod.run(t3, n2);
|
|
@@ -2444,27 +2444,27 @@ var wa = () => {
|
|
|
2444
2444
|
var ee2, y2, x2;
|
|
2445
2445
|
let e6 = o2(t3.origin), n4 = i2((ee2 = t3.origin) == null ? "value" : ee2);
|
|
2446
2446
|
if (t3.origin === "string") {
|
|
2447
|
-
var
|
|
2448
|
-
return "".concat((
|
|
2447
|
+
var te2, S2;
|
|
2448
|
+
return "".concat((te2 = e6 == null ? void 0 : e6.shortLabel) == null ? "\u05E7\u05E6\u05E8" : te2, " \u05DE\u05D3\u05D9: ").concat(n4, " \u05E6\u05E8\u05D9\u05DB\u05D4 \u05DC\u05D4\u05DB\u05D9\u05DC ").concat(t3.minimum.toString(), " ").concat((S2 = e6 == null ? void 0 : e6.unit) == null ? "" : S2, " ").concat(t3.inclusive ? "\u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8" : "\u05DC\u05E4\u05D7\u05D5\u05EA").trim();
|
|
2449
2449
|
}
|
|
2450
2450
|
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));
|
|
2451
2451
|
if (t3.origin === "array" || t3.origin === "set") {
|
|
2452
|
-
var
|
|
2452
|
+
var C2, ne2;
|
|
2453
2453
|
let r4 = t3.origin === "set" ? "\u05E6\u05E8\u05D9\u05DB\u05D4" : "\u05E6\u05E8\u05D9\u05DA";
|
|
2454
|
-
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((
|
|
2454
|
+
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((C2 = e6 == null ? void 0 : e6.unit) == null ? "" : C2, " \u05D0\u05D5 \u05D9\u05D5\u05EA\u05E8") : "\u05D9\u05D5\u05EA\u05E8 \u05DE-".concat(t3.minimum, " ").concat((ne2 = e6 == null ? void 0 : e6.unit) == null ? "" : ne2)).trim();
|
|
2455
2455
|
}
|
|
2456
2456
|
let r3 = t3.inclusive ? ">=" : ">", s3 = a2((y2 = t3.origin) == null ? "value" : y2);
|
|
2457
2457
|
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((x2 = e6 == null ? void 0 : e6.shortLabel) == null ? "\u05E7\u05D8\u05DF" : x2, " \u05DE\u05D3\u05D9: ").concat(n4, " ").concat(s3, " ").concat(r3).concat(t3.minimum.toString());
|
|
2458
2458
|
}
|
|
2459
2459
|
case "invalid_format": {
|
|
2460
|
-
var
|
|
2460
|
+
var re2, w2;
|
|
2461
2461
|
let e6 = t3;
|
|
2462
2462
|
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, '"');
|
|
2463
2463
|
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, '"');
|
|
2464
2464
|
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, '"');
|
|
2465
2465
|
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);
|
|
2466
2466
|
let n4 = s2[e6.format];
|
|
2467
|
-
return "".concat((
|
|
2467
|
+
return "".concat((re2 = n4 == null ? void 0 : n4.label) == null ? e6.format : re2, " \u05DC\u05D0 ").concat(((w2 = n4 == null ? void 0 : n4.gender) == null ? "m" : w2) === "f" ? "\u05EA\u05E7\u05D9\u05E0\u05D4" : "\u05EA\u05E7\u05D9\u05DF");
|
|
2468
2468
|
}
|
|
2469
2469
|
case "not_multiple_of":
|
|
2470
2470
|
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);
|
|
@@ -2475,8 +2475,8 @@ var wa = () => {
|
|
|
2475
2475
|
case "invalid_union":
|
|
2476
2476
|
return "\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";
|
|
2477
2477
|
case "invalid_element":
|
|
2478
|
-
var
|
|
2479
|
-
return "\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1".concat(i2((
|
|
2478
|
+
var ie2;
|
|
2479
|
+
return "\u05E2\u05E8\u05DA \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF \u05D1".concat(i2((ie2 = t3.origin) == null ? "array" : ie2));
|
|
2480
2480
|
default:
|
|
2481
2481
|
return "\u05E7\u05DC\u05D8 \u05DC\u05D0 \u05EA\u05E7\u05D9\u05DF";
|
|
2482
2482
|
}
|
|
@@ -4942,7 +4942,7 @@ var pu = (e5, t2) => {
|
|
|
4942
4942
|
} } });
|
|
4943
4943
|
}, mu = c("ZodError", pu), hu = c("ZodError", pu, { Parent: Error }), gu = nt(hu), _u = it(hu), vu = ot(hu), yu = ct(hu), bu = ut(hu), xu = ft(hu), Su = mt(hu), Cu = gt(hu), wu = vt(hu), Tu = bt(hu), Eu = St(hu), Du = wt(hu), Ou = t({ ZodAny: () => Gd, ZodArray: () => ef, ZodBase64: () => pd, ZodBase64URL: () => hd, ZodBigInt: () => Pd, ZodBigIntFormat: () => Id, ZodBoolean: () => Nd, ZodCIDRv4: () => ld, ZodCIDRv6: () => dd, ZodCUID: () => qu, ZodCUID2: () => Yu, ZodCatch: () => Wf, ZodCodec: () => Xf, ZodCustom: () => cp, ZodCustomStringFormat: () => xd, ZodDate: () => Qd, ZodDefault: () => If, ZodDiscriminatedUnion: () => lf, ZodE164: () => _d, ZodEmail: () => ju, ZodEmoji: () => Uu, ZodEnum: () => Sf, ZodExactOptional: () => jf, ZodFile: () => Ef, ZodFunction: () => op, ZodGUID: () => Nu, ZodIPv4: () => rd, ZodIPv6: () => sd, ZodIntersection: () => df, ZodJWT: () => yd, ZodKSUID: () => td, ZodLazy: () => np, ZodLiteral: () => Tf, ZodMAC: () => ad, ZodMap: () => vf, ZodNaN: () => Kf, ZodNanoID: () => Gu, ZodNever: () => Jd, ZodNonOptional: () => Bf, ZodNull: () => Ud, ZodNullable: () => Nf, ZodNumber: () => Ed, ZodNumberFormat: () => Dd, ZodObject: () => nf, ZodOptional: () => Af, ZodPipe: () => Jf, ZodPrefault: () => Rf, ZodPromise: () => ip, ZodReadonly: () => Qf, ZodRecord: () => hf, ZodSet: () => bf, ZodString: () => Au, ZodStringFormat: () => I, ZodSuccess: () => Hf, ZodSymbol: () => zd, ZodTemplateLiteral: () => ep, ZodTransform: () => Of, ZodTuple: () => pf, ZodType: () => P, ZodULID: () => Zu, ZodURL: () => Bu, ZodUUID: () => Fu, ZodUndefined: () => Vd, ZodUnion: () => of, ZodUnknown: () => qd, ZodVoid: () => Xd, ZodXID: () => $u, ZodXor: () => sf, _ZodString: () => ku, _default: () => Lf, _function: () => sp, any: () => Kd, array: () => B, base64: () => md, base64url: () => gd, bigint: () => Fd, boolean: () => R, catch: () => Gf, check: () => lp, cidrv4: () => ud, cidrv6: () => fd, codec: () => Zf, cuid: () => Ju, cuid2: () => Xu, custom: () => up, date: () => $d, describe: () => pp, discriminatedUnion: () => uf, e164: () => vd, email: () => Mu, emoji: () => Wu, enum: () => Cf, exactOptional: () => Mf, file: () => Df, float32: () => kd, float64: () => Ad, function: () => sp, guid: () => Pu, hash: () => Td, hex: () => wd, hostname: () => Cd, httpUrl: () => Hu, instanceof: () => hp, int: () => Od, int32: () => jd, int64: () => Ld, intersection: () => ff, ipv4: () => id, ipv6: () => cd, json: () => _p, jwt: () => bd, keyof: () => tf, ksuid: () => nd, lazy: () => rp, literal: () => W, looseObject: () => af, looseRecord: () => _f, mac: () => od, map: () => yf, meta: () => mp, nan: () => qf, nanoid: () => Ku, nativeEnum: () => wf, never: () => Yd, nonoptional: () => Vf, null: () => Wd, nullable: () => Pf, nullish: () => Ff, number: () => L, object: () => V, optional: () => G, partialRecord: () => gf, pipe: () => Yf, prefault: () => zf, preprocess: () => vp, promise: () => ap, readonly: () => $f, record: () => U, refine: () => dp, set: () => xf, strictObject: () => rf, string: () => F, stringFormat: () => Sd, stringbool: () => gp, success: () => Uf, superRefine: () => fp, symbol: () => Bd, templateLiteral: () => tp, transform: () => kf, tuple: () => mf, uint32: () => Md, uint64: () => Rd, ulid: () => Qu, undefined: () => Hd, union: () => H, unknown: () => z, url: () => Vu, uuid: () => Iu, uuidv4: () => Lu, uuidv6: () => Ru, uuidv7: () => zu, void: () => Zd, xid: () => ed, xor: () => cf }), P = c("ZodType", (e5, t2) => (j.init(e5, t2), Object.assign(e5["~standard"], { jsonSchema: { input: sl(e5, "input"), output: sl(e5, "output") } }), e5.toJSONSchema = ol(e5, {}), e5.def = t2, e5.type = t2.type, Object.defineProperty(e5, "_def", { value: t2 }), e5.check = (...n2) => {
|
|
4944
4944
|
var r2;
|
|
4945
|
-
return e5.clone(
|
|
4945
|
+
return e5.clone(E(t2, { checks: [...(r2 = t2.checks) == null ? [] : r2, ...n2.map((e6) => typeof e6 == "function" ? { _zod: { check: e6, def: { check: "custom" }, onattach: [] } } : e6)] }), { parent: true });
|
|
4946
4946
|
}, e5.with = e5.check, e5.clone = (t3, n2) => xe(e5, t3, n2), e5.brand = () => e5, e5.register = ((t3, n2) => (t3.add(e5, n2), e5)), e5.parse = (t3, n2) => gu(e5, t3, n2, { callee: e5.parse }), e5.safeParse = (t3, n2) => vu(e5, t3, n2), e5.parseAsync = async (t3, n2) => _u(e5, t3, n2, { callee: e5.parseAsync }), e5.safeParseAsync = async (t3, n2) => yu(e5, t3, n2), e5.spa = e5.safeParseAsync, e5.encode = (t3, n2) => bu(e5, t3, n2), e5.decode = (t3, n2) => xu(e5, t3, n2), e5.encodeAsync = async (t3, n2) => Su(e5, t3, n2), e5.decodeAsync = async (t3, n2) => Cu(e5, t3, n2), e5.safeEncode = (t3, n2) => wu(e5, t3, n2), e5.safeDecode = (t3, n2) => Tu(e5, t3, n2), e5.safeEncodeAsync = async (t3, n2) => Eu(e5, t3, n2), e5.safeDecodeAsync = async (t3, n2) => Du(e5, t3, n2), e5.refine = (t3, n2) => e5.check(dp(t3, n2)), e5.superRefine = (t3) => e5.check(fp(t3)), e5.overwrite = (t3) => e5.check(_c(t3)), e5.optional = () => G(e5), e5.exactOptional = () => Mf(e5), e5.nullable = () => Pf(e5), e5.nullish = () => G(Pf(e5)), e5.nonoptional = (t3) => Vf(e5, t3), e5.array = () => B(e5), e5.or = (t3) => H([e5, t3]), e5.and = (t3) => ff(e5, t3), e5.transform = (t3) => Yf(e5, kf(t3)), e5.default = (t3) => Lf(e5, t3), e5.prefault = (t3) => zf(e5, t3), e5.catch = (t3) => Gf(e5, t3), e5.pipe = (t3) => Yf(e5, t3), e5.readonly = () => $f(e5), e5.describe = (t3) => {
|
|
4947
4947
|
let n2 = e5.clone();
|
|
4948
4948
|
return Jo.add(n2, { description: t3 }), n2;
|
|
@@ -5228,7 +5228,7 @@ function tf(e5) {
|
|
|
5228
5228
|
return Cf(Object.keys(t2));
|
|
5229
5229
|
}
|
|
5230
5230
|
var nf = c("ZodObject", (e5, t2) => {
|
|
5231
|
-
ni.init(e5, t2), P.init(e5, t2), e5._zod.processJSONSchema = (t3, n2, r2) => Nl(e5, t3, n2, r2),
|
|
5231
|
+
ni.init(e5, t2), P.init(e5, t2), e5._zod.processJSONSchema = (t3, n2, r2) => Nl(e5, t3, n2, r2), w(e5, "shape", () => t2.shape), e5.keyof = () => Cf(Object.keys(e5._zod.def.shape)), e5.catchall = (t3) => e5.clone({ ...e5._zod.def, catchall: t3 }), e5.passthrough = () => e5.clone({ ...e5._zod.def, catchall: z() }), e5.loose = () => e5.clone({ ...e5._zod.def, catchall: z() }), e5.strict = () => e5.clone({ ...e5._zod.def, catchall: Yd() }), e5.strip = () => e5.clone({ ...e5._zod.def, catchall: void 0 }), e5.extend = (t3) => Oe(e5, t3), e5.safeExtend = (t3) => ke(e5, t3), e5.merge = (t3) => Ae(e5, t3), e5.pick = (t3) => Ee(e5, t3), e5.omit = (t3) => De(e5, t3), e5.partial = (...t3) => je(Af, e5, t3[0]), e5.required = (...t3) => Me(Bf, e5, t3[0]);
|
|
5232
5232
|
});
|
|
5233
5233
|
function V(e5, t2) {
|
|
5234
5234
|
return new nf({ type: "object", shape: e5 == null ? {} : e5, ...D(t2) });
|
|
@@ -6331,7 +6331,15 @@ async function n_(e5, t2, n2 = "") {
|
|
|
6331
6331
|
}
|
|
6332
6332
|
return r2.value;
|
|
6333
6333
|
}
|
|
6334
|
-
|
|
6334
|
+
function r_(e5, t2 = document.documentElement) {
|
|
6335
|
+
for (let [n2, r2] of Object.entries(e5)) r2 !== void 0 && t2.style.setProperty(n2, r2);
|
|
6336
|
+
}
|
|
6337
|
+
function i_(e5) {
|
|
6338
|
+
if (document.getElementById("__mcp-host-fonts")) return;
|
|
6339
|
+
let t2 = document.createElement("style");
|
|
6340
|
+
t2.id = "__mcp-host-fonts", t2.textContent = e5, document.head.appendChild(t2);
|
|
6341
|
+
}
|
|
6342
|
+
var a_ = class e3 extends Og {
|
|
6335
6343
|
_assertInitialized(e5) {
|
|
6336
6344
|
var t2;
|
|
6337
6345
|
if (this._initializedSent) return;
|
|
@@ -6563,14 +6571,14 @@ var r_ = class e3 extends Og {
|
|
|
6563
6571
|
}
|
|
6564
6572
|
}
|
|
6565
6573
|
};
|
|
6566
|
-
o(
|
|
6567
|
-
function
|
|
6574
|
+
o(a_, "ONE_SHOT_EVENTS", /* @__PURE__ */ new Set(["toolinput", "toolinputpartial", "toolresult", "toolcancelled"]));
|
|
6575
|
+
function o_(e5, t2) {
|
|
6568
6576
|
var n2, r2, i2, a2, o2, s2;
|
|
6569
6577
|
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");
|
|
6570
6578
|
c2 && (c2.hidden = false);
|
|
6571
6579
|
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, v2 = h2 * 2, ee2 = p2, y2 = m2, b2 = h2, x2 = g2;
|
|
6572
|
-
e5.
|
|
6573
|
-
let S2 = () => e5.setAttribute("viewBox", "".concat(ee2, " ").concat(y2, " ").concat(b2, " ").concat(x2)), C2 = (e6, t3, n3) => {
|
|
6580
|
+
e5.classList.add("oe-pannable");
|
|
6581
|
+
let te2 = () => document.body.classList.contains("is-fullscreen"), S2 = () => e5.setAttribute("viewBox", "".concat(ee2, " ").concat(y2, " ").concat(b2, " ").concat(x2)), C2 = (e6, t3, n3) => {
|
|
6574
6582
|
t3 === void 0 && (t3 = ee2 + b2 / 2), n3 === void 0 && (n3 = y2 + x2 / 2);
|
|
6575
6583
|
let r3 = b2 * e6;
|
|
6576
6584
|
r3 < _2 && (r3 = _2), r3 > v2 && (r3 = v2), r3 !== b2 && (e6 = r3 / b2, ee2 = t3 - (t3 - ee2) * e6, y2 = n3 - (n3 - y2) * e6, b2 = r3, x2 *= e6, S2());
|
|
@@ -6578,119 +6586,121 @@ function i_(e5, t2) {
|
|
|
6578
6586
|
l2 == null || l2.addEventListener("click", () => C2(0.8)), u2 == null || u2.addEventListener("click", () => C2(1.25)), d2 == null || d2.addEventListener("click", () => {
|
|
6579
6587
|
ee2 = p2, y2 = m2, b2 = h2, x2 = g2, S2();
|
|
6580
6588
|
});
|
|
6581
|
-
let
|
|
6589
|
+
let ne2 = (t3, n3) => {
|
|
6582
6590
|
let r3 = e5.getBoundingClientRect();
|
|
6583
6591
|
return { x: ee2 + (t3 - r3.left) / r3.width * b2, y: y2 + (n3 - r3.top) / r3.height * x2 };
|
|
6584
6592
|
};
|
|
6585
6593
|
e5.addEventListener("wheel", (e6) => {
|
|
6594
|
+
if (!te2() && !e6.ctrlKey && !e6.metaKey) return;
|
|
6586
6595
|
e6.preventDefault();
|
|
6587
|
-
let t3 = Math.exp((e6.deltaY < 0 ? -1 : 1) * 0.1), n3 =
|
|
6596
|
+
let t3 = Math.exp((e6.deltaY < 0 ? -1 : 1) * 0.1), n3 = ne2(e6.clientX, e6.clientY);
|
|
6588
6597
|
C2(t3, n3.x, n3.y);
|
|
6589
6598
|
}, { passive: false });
|
|
6590
|
-
let
|
|
6591
|
-
let [e6, t3] = [...
|
|
6599
|
+
let re2 = /* @__PURE__ */ new Map(), w2 = null, ie2 = () => {
|
|
6600
|
+
let [e6, t3] = [...re2.values()];
|
|
6592
6601
|
return { dist: Math.hypot(e6.x - t3.x, e6.y - t3.y), midX: (e6.x + t3.x) / 2, midY: (e6.y + t3.y) / 2 };
|
|
6593
|
-
},
|
|
6602
|
+
}, T2 = (t3, n3) => {
|
|
6594
6603
|
let r3 = e5.getBoundingClientRect();
|
|
6595
6604
|
ee2 -= t3 / r3.width * b2, y2 -= n3 / r3.height * x2, S2();
|
|
6596
6605
|
};
|
|
6597
6606
|
e5.addEventListener("pointerdown", (t3) => {
|
|
6607
|
+
if (t3.pointerType === "touch" && !te2()) return;
|
|
6598
6608
|
let n3 = t3.target, r3 = !!(n3.closest && (n3.closest('[class*="-hit"]') || n3.closest('[class*="-activation"]') || n3.closest(".variable-arrow") || n3.closest("button")));
|
|
6599
|
-
|
|
6609
|
+
re2.set(t3.pointerId, { x: t3.clientX, y: t3.clientY, interactive: r3 }), r3 || (e5.setPointerCapture(t3.pointerId), e5.style.cursor = "grabbing"), re2.size === 2 && (w2 = ie2());
|
|
6600
6610
|
}), e5.addEventListener("pointermove", (e6) => {
|
|
6601
|
-
let t3 =
|
|
6602
|
-
if (t3) if (
|
|
6603
|
-
let e7 =
|
|
6604
|
-
if (
|
|
6605
|
-
let t4 =
|
|
6606
|
-
C2(
|
|
6607
|
-
}
|
|
6608
|
-
|
|
6609
|
-
} else
|
|
6611
|
+
let t3 = re2.get(e6.pointerId);
|
|
6612
|
+
if (t3) if (re2.set(e6.pointerId, { x: e6.clientX, y: e6.clientY, interactive: t3.interactive }), re2.size >= 2 && w2) {
|
|
6613
|
+
let e7 = ie2();
|
|
6614
|
+
if (w2.dist > 0 && e7.dist > 0) {
|
|
6615
|
+
let t4 = ne2(e7.midX, e7.midY);
|
|
6616
|
+
C2(w2.dist / e7.dist, t4.x, t4.y);
|
|
6617
|
+
}
|
|
6618
|
+
T2(e7.midX - w2.midX, e7.midY - w2.midY), w2 = e7;
|
|
6619
|
+
} else re2.size === 1 && !t3.interactive && T2(e6.clientX - t3.x, e6.clientY - t3.y);
|
|
6610
6620
|
});
|
|
6611
6621
|
let E2 = (t3) => {
|
|
6612
|
-
|
|
6622
|
+
re2.delete(t3.pointerId) && (e5.hasPointerCapture(t3.pointerId) && e5.releasePointerCapture(t3.pointerId), w2 = re2.size >= 2 ? ie2() : null, re2.size === 0 && (e5.style.cursor = "default"));
|
|
6613
6623
|
};
|
|
6614
6624
|
e5.addEventListener("pointerup", E2), e5.addEventListener("pointercancel", E2);
|
|
6615
6625
|
}
|
|
6616
|
-
var
|
|
6617
|
-
function
|
|
6618
|
-
return e5 ?
|
|
6626
|
+
var s_ = '"Segoe UI Symbol", "Noto Sans Symbols", "Noto Sans Symbols2", "Apple Symbols", "DejaVu Sans", serif', c_ = { background: "#1b1b1d", foreground: "#f7f3f0", dim: "#6f7580", fire: "#d9506f", earth: "#22a67a", air: "#dcb238", water: "#3f93c2", points: "#2f89ab", others: "#d69a3a", house: "#7a8695", transit: "#c19bf2", fireTint: "rgba(217,80,111,0.20)", earthTint: "rgba(34,166,122,0.20)", airTint: "rgba(220,178,56,0.20)", waterTint: "rgba(63,147,194,0.20)", zodiacFillOpacity: 0.34, houseFillOpacity: 0.1, houseStrokeOpacity: 0.45 }, l_ = { background: "#fffdf1", foreground: "#0b1220", dim: "#6b5c4a", fire: "#c9456f", earth: "#1f9968", air: "#c9a23c", water: "#1f7fa3", points: "#1f6f96", others: "#c9903f", house: "#6f8496", transit: "#7b3fb5", fireTint: "rgba(201,69,111,0.34)", earthTint: "rgba(31,153,104,0.34)", airTint: "rgba(201,162,60,0.38)", waterTint: "rgba(31,127,163,0.34)", zodiacFillOpacity: 0.48, houseFillOpacity: 0.2, houseStrokeOpacity: 0.95 };
|
|
6627
|
+
function u_(e5) {
|
|
6628
|
+
return e5 ? c_ : l_;
|
|
6619
6629
|
}
|
|
6620
|
-
function
|
|
6621
|
-
let n2 =
|
|
6630
|
+
function d_(e5, t2) {
|
|
6631
|
+
let n2 = u_(t2);
|
|
6622
6632
|
return [n2.fire, n2.earth, n2.air, n2.water][(e5 % 12 + 12) % 12 % 4];
|
|
6623
6633
|
}
|
|
6624
|
-
function
|
|
6625
|
-
let n2 =
|
|
6634
|
+
function f_(e5, t2) {
|
|
6635
|
+
let n2 = u_(t2);
|
|
6626
6636
|
return [n2.fireTint, n2.earthTint, n2.airTint, n2.waterTint][(e5 % 12 + 12) % 12 % 4];
|
|
6627
6637
|
}
|
|
6628
|
-
function
|
|
6629
|
-
let t2 =
|
|
6638
|
+
function p_(e5) {
|
|
6639
|
+
let t2 = u_(e5);
|
|
6630
6640
|
return { ring: { stroke: t2.dim, opacity: 0.85 }, cuspIntermediate: { stroke: t2.dim, opacity: 0.85 }, cuspAngular: { stroke: t2.foreground, opacity: 0.75 }, tickMajor: { stroke: t2.foreground, opacity: 0.73 }, tickMinor: { stroke: t2.foreground, opacity: 0.48 }, cuspDash: (e6) => "".concat((e6 * 1.5).toFixed(2), " ").concat((e6 * 3).toFixed(2)), center: e5 ? t2.background : "#efeae1" };
|
|
6631
6641
|
}
|
|
6632
|
-
var
|
|
6633
|
-
function
|
|
6634
|
-
return
|
|
6642
|
+
var m_;
|
|
6643
|
+
function h_() {
|
|
6644
|
+
return m_ ? m_ === "dark" : window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
6635
6645
|
}
|
|
6636
|
-
function
|
|
6646
|
+
function g_(e5 = h_()) {
|
|
6637
6647
|
let t2 = e5 ? "dark" : "light";
|
|
6638
6648
|
return document.documentElement.setAttribute("data-theme", t2), t2;
|
|
6639
6649
|
}
|
|
6640
|
-
function
|
|
6641
|
-
|
|
6650
|
+
function __(e5) {
|
|
6651
|
+
g_();
|
|
6642
6652
|
try {
|
|
6643
6653
|
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (t2) => {
|
|
6644
|
-
|
|
6654
|
+
m_ || e5 == null || e5(g_(t2.matches));
|
|
6645
6655
|
});
|
|
6646
6656
|
} catch (e6) {
|
|
6647
6657
|
}
|
|
6648
6658
|
}
|
|
6649
|
-
function
|
|
6659
|
+
function v_(e5, t2) {
|
|
6650
6660
|
var n2, r2;
|
|
6651
6661
|
let i2 = (e6) => {
|
|
6652
6662
|
let n3 = e6 == null ? void 0 : e6.theme;
|
|
6653
6663
|
if (n3 !== "light" && n3 !== "dark") return;
|
|
6654
|
-
|
|
6655
|
-
let r3 = document.documentElement.getAttribute("data-theme"), i3 =
|
|
6664
|
+
m_ = n3;
|
|
6665
|
+
let r3 = document.documentElement.getAttribute("data-theme"), i3 = g_(n3 === "dark");
|
|
6656
6666
|
i3 !== r3 && (t2 == null || t2(i3));
|
|
6657
6667
|
};
|
|
6658
6668
|
(n2 = e5.addEventListener) == null || n2.call(e5, "hostcontextchanged", i2), i2((r2 = e5.getHostContext) == null ? void 0 : r2.call(e5));
|
|
6659
6669
|
}
|
|
6660
|
-
function
|
|
6670
|
+
function y_(e5, t2) {
|
|
6661
6671
|
if (e5.length <= 1) {
|
|
6662
6672
|
let t3 = /* @__PURE__ */ new Map();
|
|
6663
6673
|
for (let n3 of e5) t3.set(n3.name, n3.longitude);
|
|
6664
6674
|
return t3;
|
|
6665
6675
|
}
|
|
6666
6676
|
let n2 = [...e5].sort((e6, t3) => e6.longitude - t3.longitude), r2 = [], i2 = [];
|
|
6667
|
-
for (let e6 of n2) r2.push(e6.longitude), i2.push(
|
|
6668
|
-
|
|
6677
|
+
for (let e6 of n2) r2.push(e6.longitude), i2.push(b_(e6.longitude, i2, t2));
|
|
6678
|
+
S_(i2, r2, t2);
|
|
6669
6679
|
let a2 = /* @__PURE__ */ new Map();
|
|
6670
|
-
for (let e6 = 0; e6 < n2.length; e6++) a2.set(n2[e6].name,
|
|
6680
|
+
for (let e6 = 0; e6 < n2.length; e6++) a2.set(n2[e6].name, w_(i2[e6]));
|
|
6671
6681
|
return a2;
|
|
6672
6682
|
}
|
|
6673
|
-
function
|
|
6683
|
+
function b_(e5, t2, n2) {
|
|
6674
6684
|
if (t2.length === 0) return e5;
|
|
6675
6685
|
let r2 = Math.max(0.55, n2 / 4), i2 = Math.max(8, Math.min(40, n2 * 5)), a2 = Math.floor(i2 / r2);
|
|
6676
|
-
if (
|
|
6686
|
+
if (x_(e5, t2, n2)) return e5;
|
|
6677
6687
|
for (let i3 = 1; i3 <= a2; i3++) {
|
|
6678
6688
|
let a3 = i3 * r2;
|
|
6679
|
-
if (
|
|
6680
|
-
if (
|
|
6689
|
+
if (x_(e5 + a3, t2, n2)) return e5 + a3;
|
|
6690
|
+
if (x_(e5 - a3, t2, n2)) return e5 - a3;
|
|
6681
6691
|
}
|
|
6682
6692
|
return e5;
|
|
6683
6693
|
}
|
|
6684
|
-
function
|
|
6685
|
-
for (let r2 of t2) if (
|
|
6694
|
+
function x_(e5, t2, n2) {
|
|
6695
|
+
for (let r2 of t2) if (C_(e5, r2) < n2) return false;
|
|
6686
6696
|
return true;
|
|
6687
6697
|
}
|
|
6688
|
-
function
|
|
6698
|
+
function S_(e5, t2, n2) {
|
|
6689
6699
|
let r2 = e5.length;
|
|
6690
6700
|
if (!(r2 <= 1)) for (let t3 = 0; t3 < 80; t3++) {
|
|
6691
6701
|
let t4 = true;
|
|
6692
6702
|
for (let i2 = 0; i2 < r2; i2++) for (let a2 = i2 + 1; a2 < r2; a2++) {
|
|
6693
|
-
let r3 = n2 -
|
|
6703
|
+
let r3 = n2 - C_(e5[i2], e5[a2]);
|
|
6694
6704
|
if (r3 > 0.01) {
|
|
6695
6705
|
t4 = false;
|
|
6696
6706
|
let n3 = r3 * 0.65 / 2, o2 = e5[a2] - e5[i2];
|
|
@@ -6702,128 +6712,128 @@ function b_(e5, t2, n2) {
|
|
|
6702
6712
|
if (t4) break;
|
|
6703
6713
|
}
|
|
6704
6714
|
}
|
|
6705
|
-
function
|
|
6715
|
+
function C_(e5, t2) {
|
|
6706
6716
|
let n2 = ((t2 - e5) % 360 + 540) % 360 - 180;
|
|
6707
6717
|
return Math.abs(n2);
|
|
6708
6718
|
}
|
|
6709
|
-
function
|
|
6719
|
+
function w_(e5) {
|
|
6710
6720
|
return (e5 % 360 + 360) % 360;
|
|
6711
6721
|
}
|
|
6712
|
-
var
|
|
6713
|
-
function
|
|
6722
|
+
var T_ = "north node (mean)", E_ = "north node (true)", D_ = "south node (mean)", O_ = "south node (true)", k_ = [T_, E_, D_, O_], A_ = { [T_]: T_, north_node_mean: T_, "north node": T_, north_node: T_, "mean node": T_, mean_node: T_, [E_]: E_, north_node_true: E_, "true node": E_, true_node: E_, [D_]: D_, south_node_mean: D_, "south node": D_, south_node: D_, [O_]: O_, south_node_true: O_, "true south node": O_, true_south_node: O_ };
|
|
6723
|
+
function j_(e5) {
|
|
6714
6724
|
var t2;
|
|
6715
|
-
return (t2 =
|
|
6725
|
+
return (t2 = A_[e5.trim().toLowerCase()]) == null ? null : t2;
|
|
6716
6726
|
}
|
|
6717
|
-
function
|
|
6718
|
-
return
|
|
6727
|
+
function M_(e5) {
|
|
6728
|
+
return j_(e5) !== null;
|
|
6719
6729
|
}
|
|
6720
|
-
var
|
|
6721
|
-
function
|
|
6730
|
+
var N_ = { [T_]: "\u260A\uFE0E", [E_]: "\u260A\uFE0E", [D_]: "\u260B\uFE0E", [O_]: "\u260B\uFE0E" }, P_ = { [T_]: "soul direction", [E_]: "soul direction", [D_]: "past-life gifts", [O_]: "past-life gifts" };
|
|
6731
|
+
function F_(e5) {
|
|
6722
6732
|
let t2 = /* @__PURE__ */ new Set();
|
|
6723
6733
|
for (let n2 of e5) {
|
|
6724
|
-
let e6 =
|
|
6734
|
+
let e6 = j_(n2);
|
|
6725
6735
|
e6 && t2.add(e6);
|
|
6726
6736
|
}
|
|
6727
6737
|
return t2.has("north node (mean)") && t2.has("north node (true)") || t2.has("south node (mean)") && t2.has("south node (true)");
|
|
6728
6738
|
}
|
|
6729
|
-
function
|
|
6730
|
-
let n2 = new Set(e5.map((e6) =>
|
|
6739
|
+
function I_(e5, t2) {
|
|
6740
|
+
let n2 = new Set(e5.map((e6) => j_(e6.name)).filter(Boolean)), r2 = /* @__PURE__ */ new Set(), i2 = [[T_, E_], [D_, O_]];
|
|
6731
6741
|
for (let [e6, a2] of i2) n2.has(e6) && n2.has(a2) && r2.add(t2 === "true" ? e6 : a2);
|
|
6732
6742
|
return r2.size === 0 ? e5 : e5.filter((e6) => {
|
|
6733
6743
|
var t3;
|
|
6734
|
-
return !r2.has((t3 =
|
|
6744
|
+
return !r2.has((t3 = j_(e6.name)) == null ? "" : t3);
|
|
6735
6745
|
});
|
|
6736
6746
|
}
|
|
6737
|
-
var
|
|
6738
|
-
function
|
|
6747
|
+
var L_ = "lilith (mean)", R_ = "lilith (true)", z_ = "lilith (interpolated)", B_ = [L_, R_, z_], V_ = { [L_]: L_, lilith: L_, mean_lilith: L_, lilith_mean: L_, "mean apogee": L_, "black moon lilith": L_, [R_]: R_, lilith_true: R_, true_lilith: R_, "osculating apogee": R_, [z_]: z_, lilith_interpolated: z_, lilith_natural: z_, "interpolated apogee": z_ };
|
|
6748
|
+
function H_(e5) {
|
|
6739
6749
|
var t2;
|
|
6740
|
-
return (t2 =
|
|
6750
|
+
return (t2 = V_[e5.trim().toLowerCase()]) == null ? null : t2;
|
|
6741
6751
|
}
|
|
6742
|
-
var
|
|
6743
|
-
function
|
|
6752
|
+
var U_ = { [L_]: "\u26B8\uFE0E", [R_]: "\u26B8\uFE0E", [z_]: "\u26B8\uFE0E" }, W_ = { [L_]: "primal feminine & shadow", [R_]: "primal feminine & shadow", [z_]: "primal feminine & shadow" };
|
|
6753
|
+
function G_(e5) {
|
|
6744
6754
|
var t2, n2;
|
|
6745
|
-
return (t2 = (n2 =
|
|
6755
|
+
return (t2 = (n2 = j_(e5)) == null ? H_(e5) : n2) == null ? e5 : t2;
|
|
6746
6756
|
}
|
|
6747
|
-
var
|
|
6757
|
+
var K_ = 250, q_ = 250, J_ = 240, Y_ = 204, X_ = 190, Z_ = 152, Q_ = 118, $_ = 112, ev = 15, tv = 20;
|
|
6748
6758
|
function Y(e5, t2, n2) {
|
|
6749
6759
|
let r2 = -(e5 - n2 + 180) * Math.PI / 180;
|
|
6750
|
-
return { x:
|
|
6760
|
+
return { x: K_ + t2 * Math.cos(r2), y: q_ + t2 * Math.sin(r2) };
|
|
6751
6761
|
}
|
|
6752
6762
|
function X(e5) {
|
|
6753
6763
|
return document.createElementNS("http://www.w3.org/2000/svg", e5);
|
|
6754
6764
|
}
|
|
6755
|
-
function
|
|
6765
|
+
function nv(e5, t2, n2, r2, i2) {
|
|
6756
6766
|
let a2 = +(((t2 - e5) % 360 + 360) % 360 > 180), o2 = Y(e5, n2, i2), s2 = Y(e5, r2, i2), c2 = Y(t2, r2, i2), l2 = Y(t2, n2, i2);
|
|
6757
6767
|
return ["M ".concat(o2.x.toFixed(2), " ").concat(o2.y.toFixed(2)), "L ".concat(s2.x.toFixed(2), " ").concat(s2.y.toFixed(2)), "A ".concat(r2, " ").concat(r2, " 0 ").concat(a2, " 0 ").concat(c2.x.toFixed(2), " ").concat(c2.y.toFixed(2)), "L ".concat(l2.x.toFixed(2), " ").concat(l2.y.toFixed(2)), "A ".concat(n2, " ").concat(n2, " 0 ").concat(a2, " 1 ").concat(o2.x.toFixed(2), " ").concat(o2.y.toFixed(2)), "Z"].join(" ");
|
|
6758
6768
|
}
|
|
6759
|
-
var
|
|
6760
|
-
function
|
|
6769
|
+
var rv = { sun: "\u2609\uFE0E", moon: "\u263D\uFE0E", mercury: "\u263F\uFE0E", venus: "\u2640\uFE0E", mars: "\u2642\uFE0E", jupiter: "\u2643\uFE0E", saturn: "\u2644\uFE0E", uranus: "\u2645\uFE0E", neptune: "\u2646\uFE0E", pluto: "\u2647\uFE0E", "north node": "\u260A\uFE0E", "south node": "\u260B\uFE0E", chiron: "\u26B7\uFE0E", "true node": "\u260A\uFE0E", ...N_, ...U_, mean_lilith: "\u26B8\uFE0E", lilith: "\u26B8\uFE0E", true_lilith: "\u26B8\uFE0E", ceres: "\u26B3\uFE0E", juno: "\u26B5\uFE0E", vesta: "\u26B6\uFE0E", pallas: "\u26B4\uFE0E", pholus: "\u2BDB\uFE0E", vertex: "Vx", part_of_fortune: "\u2295\uFE0E", "part of fortune": "\u2295\uFE0E", eris: "\u2BF0\uFE0E", sedna: "\u2BF2\uFE0E" }, iv = ["\u2648", "\u2649", "\u264A", "\u264B", "\u264C", "\u264D", "\u264E", "\u264F", "\u2650", "\u2651", "\u2652", "\u2653"].map((e5) => e5 + "\uFE0E"), av = ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"], ov = { conjunction: "\u260C", opposition: "\u260D", trine: "\u25B3", square: "\u25A1", sextile: "\u26B9", quincunx: "\u26BB", semisquare: "\u2220" };
|
|
6770
|
+
function sv(e5) {
|
|
6761
6771
|
var t2;
|
|
6762
6772
|
let n2 = e5.toLowerCase(), r2 = "--aspect-".concat(n2);
|
|
6763
6773
|
return getComputedStyle(document.documentElement).getPropertyValue(r2).trim() || ((t2 = { conjunction: "#9a7fd4", opposition: "#e05252", trine: "#52a8e0", square: "#e08a52", sextile: "#52c07a", quincunx: "#c0b052", semisquare: "#b07a5a" }[n2]) == null ? "#888" : t2);
|
|
6764
6774
|
}
|
|
6765
|
-
var
|
|
6766
|
-
function
|
|
6775
|
+
var cv = h_, lv = (e5) => d_(e5, cv());
|
|
6776
|
+
function uv(e5) {
|
|
6767
6777
|
let t2 = "--planet-".concat(e5.toLowerCase().replace(/\s+/g, "-"));
|
|
6768
6778
|
return getComputedStyle(document.documentElement).getPropertyValue(t2).trim() || "var(--text)";
|
|
6769
6779
|
}
|
|
6770
|
-
var
|
|
6771
|
-
function
|
|
6780
|
+
var dv = /* @__PURE__ */ new Set(["sun", "moon", "mercury", "venus", "mars", "jupiter", "saturn", "uranus", "neptune", "pluto", "chiron", "north node", "south node", "true node", ...k_]), fv = /* @__PURE__ */ new Set(["mean_lilith", "lilith", "true_lilith", ...B_, "ceres", "juno", "vesta", "pallas", "pholus", "vertex", "part_of_fortune", "part of fortune", "eris", "sedna"]), pv = /* @__PURE__ */ new Set([...dv, ...fv]);
|
|
6781
|
+
function mv(e5) {
|
|
6772
6782
|
let t2 = (e5 % 360 + 360) % 360, n2 = Math.floor(t2 / 30), r2 = Math.floor(t2 % 30);
|
|
6773
|
-
return "".concat(r2, "\xB0").concat(Math.floor((t2 % 30 - r2) * 60).toString().padStart(2, "0"), "\u2032 ").concat(
|
|
6783
|
+
return "".concat(r2, "\xB0").concat(Math.floor((t2 % 30 - r2) * 60).toString().padStart(2, "0"), "\u2032 ").concat(av[n2]);
|
|
6774
6784
|
}
|
|
6775
6785
|
function Z(e5) {
|
|
6776
6786
|
return e5.replace(/\b\w/g, (e6) => e6.toUpperCase());
|
|
6777
6787
|
}
|
|
6778
|
-
var
|
|
6779
|
-
function
|
|
6780
|
-
|
|
6788
|
+
var hv = "true";
|
|
6789
|
+
function gv(e5) {
|
|
6790
|
+
hv = e5;
|
|
6781
6791
|
}
|
|
6782
|
-
function
|
|
6783
|
-
return
|
|
6784
|
-
let t2 =
|
|
6792
|
+
function _v(e5) {
|
|
6793
|
+
return I_(e5.map((e6) => {
|
|
6794
|
+
let t2 = G_(e6.name);
|
|
6785
6795
|
return t2 === e6.name ? e6 : { ...e6, name: t2 };
|
|
6786
|
-
}),
|
|
6796
|
+
}), hv);
|
|
6787
6797
|
}
|
|
6788
|
-
function
|
|
6789
|
-
return Array.isArray(e5) ?
|
|
6798
|
+
function vv(e5) {
|
|
6799
|
+
return Array.isArray(e5) ? _v(e5) : e5 && typeof e5 == "object" ? _v(Object.entries(e5).filter(([e6]) => pv.has(e6.toLowerCase())).map(([e6, t2]) => {
|
|
6790
6800
|
var n2, r2, i2, a2, o2, s2;
|
|
6791
6801
|
return { name: e6.toLowerCase(), longitude: (n2 = (r2 = t2.longitude) == null ? t2.lon : r2) == null ? 0 : n2, speed: (i2 = t2.longitude_speed) == null ? t2.speed : i2, retrograde: !!((a2 = t2.is_retrograde) == null ? t2.retrograde : a2), sign: (o2 = t2.sign_name) == null ? t2.sign : o2, house: (s2 = t2.house_number) == null ? t2.house : s2 };
|
|
6792
6802
|
})) : [];
|
|
6793
6803
|
}
|
|
6794
|
-
var
|
|
6795
|
-
function
|
|
6796
|
-
|
|
6797
|
-
let a2 =
|
|
6798
|
-
c2 + o2 > window.innerWidth - 14 && (c2 = e5 - o2 - 14), l2 + s2 > window.innerHeight - 14 && (l2 = t2 - s2 - 14),
|
|
6804
|
+
var yv = document.getElementById("tooltip");
|
|
6805
|
+
function bv(e5, t2, n2, r2, i2) {
|
|
6806
|
+
yv.innerHTML = '\n <div class="tooltip-title">'.concat(n2, '</div>\n <div class="tooltip-detail">').concat(r2, "</div>\n ").concat(i2 ? '<div class="tooltip-hint">'.concat(i2, "</div>") : "", "\n ");
|
|
6807
|
+
let a2 = yv.getBoundingClientRect(), o2 = a2.width || 220, s2 = a2.height || 80, c2 = e5 + 14, l2 = t2 + 14;
|
|
6808
|
+
c2 + o2 > window.innerWidth - 14 && (c2 = e5 - o2 - 14), l2 + s2 > window.innerHeight - 14 && (l2 = t2 - s2 - 14), yv.style.left = "".concat(Math.max(14, c2), "px"), yv.style.top = "".concat(Math.max(14, l2), "px"), yv.classList.add("visible");
|
|
6799
6809
|
}
|
|
6800
|
-
function
|
|
6801
|
-
|
|
6810
|
+
function xv() {
|
|
6811
|
+
yv.classList.remove("visible");
|
|
6802
6812
|
}
|
|
6803
|
-
var
|
|
6804
|
-
function
|
|
6813
|
+
var Sv = { sun: "identity & vitality", moon: "emotions & instincts", mercury: "mind & communication", venus: "love & values", mars: "drive & desire", jupiter: "expansion & meaning", saturn: "discipline & mastery", uranus: "innovation & rebellion", neptune: "dreams & transcendence", pluto: "transformation & power", chiron: "wound & healing", "north node": "soul direction", "south node": "past-life gifts", "true node": "soul direction", ...P_, ...W_, mean_lilith: "primal feminine & shadow", lilith: "primal feminine & shadow", true_lilith: "primal feminine & shadow", ceres: "nurturing & sustenance", juno: "partnership & commitment", vesta: "devotion & sacred focus", pallas: "wisdom & strategy", pholus: "catalyst & small cause, big effect", vertex: "fated encounters", part_of_fortune: "joy & worldly success", "part of fortune": "joy & worldly success", eris: "discord & radical individuation", sedna: "deep betrayal & transcendence" }, Cv = { 1: "self & first impressions", 2: "resources & values", 3: "communication & learning", 4: "home & roots", 5: "creativity & joy", 6: "health & service", 7: "partnerships & others", 8: "transformation & shared resources", 9: "philosophy & exploration", 10: "career & public role", 11: "community & ideals", 12: "solitude & the unconscious" }, wv = { Aries: "initiative & courage", Taurus: "stability & patience", Gemini: "curiosity & adaptability", Cancer: "nurturing & emotional depth", Leo: "self-expression & confidence", Virgo: "precision & service", Libra: "harmony & relationships", Scorpio: "intensity & transformation", Sagittarius: "expansion & seeking", Capricorn: "discipline & ambition", Aquarius: "innovation & vision", Pisces: "empathy & imagination" }, Tv = { conjunction: "fusion & amplification", opposition: "polarity & integration", trine: "ease & natural flow", square: "tension & growth", sextile: "opportunity & cooperation", quincunx: "adjustment & recalibration", semisquare: "friction & minor tension" };
|
|
6814
|
+
function Ev(e5) {
|
|
6805
6815
|
return Math.floor((e5 % 360 + 360) % 360 / 30);
|
|
6806
6816
|
}
|
|
6807
|
-
var
|
|
6808
|
-
function
|
|
6809
|
-
let n2 = e5.toLowerCase(), r2 =
|
|
6817
|
+
var Dv = { sun: [4], moon: [3], mercury: [2, 5], venus: [1, 6], mars: [0, 7], jupiter: [8, 11], saturn: [9, 10] }, Ov = { sun: 0, moon: 1, mercury: 5, venus: 11, mars: 9, jupiter: 3, saturn: 6 };
|
|
6818
|
+
function kv(e5, t2) {
|
|
6819
|
+
let n2 = e5.toLowerCase(), r2 = Ev(t2), i2 = Dv[n2];
|
|
6810
6820
|
if (i2 != null && i2.includes(r2)) return { type: "domicile", label: "Domicile", emoji: "\u2302", cssClass: "dignity-domicile" };
|
|
6811
6821
|
if (i2 && i2.map((e6) => (e6 + 6) % 12).includes(r2)) return { type: "detriment", label: "Detriment", emoji: "\u2B07", cssClass: "dignity-detriment" };
|
|
6812
|
-
let a2 =
|
|
6822
|
+
let a2 = Ov[n2];
|
|
6813
6823
|
return a2 !== void 0 && a2 === r2 ? { type: "exaltation", label: "Exaltation", emoji: "\u2605", cssClass: "dignity-exaltation" } : a2 !== void 0 && (a2 + 6) % 12 === r2 ? { type: "fall", label: "Fall", emoji: "\u2193", cssClass: "dignity-fall" } : null;
|
|
6814
6824
|
}
|
|
6815
|
-
var
|
|
6816
|
-
function
|
|
6825
|
+
var Av = ["fire", "earth", "air", "water", "fire", "earth", "air", "water", "fire", "earth", "air", "water"], jv = ["cardinal", "fixed", "mutable", "cardinal", "fixed", "mutable", "cardinal", "fixed", "mutable", "cardinal", "fixed", "mutable"];
|
|
6826
|
+
function Mv(e5, t2) {
|
|
6817
6827
|
return [e5.toLowerCase(), t2.toLowerCase()].sort().join("|");
|
|
6818
6828
|
}
|
|
6819
|
-
function
|
|
6829
|
+
function Nv(e5, t2) {
|
|
6820
6830
|
return e5.filter((e6) => {
|
|
6821
6831
|
var n2;
|
|
6822
6832
|
return ((n2 = e6.type) == null ? "" : n2).toLowerCase() === t2;
|
|
6823
6833
|
});
|
|
6824
6834
|
}
|
|
6825
|
-
function
|
|
6826
|
-
let n2 = [], r2 =
|
|
6835
|
+
function Pv(e5, t2) {
|
|
6836
|
+
let n2 = [], r2 = Nv(e5, "square"), i2 = Nv(e5, "opposition"), a2 = Nv(e5, "trine"), o2 = Nv(e5, "sextile"), s2 = Nv(e5, "quincunx"), c2 = /* @__PURE__ */ new Set();
|
|
6827
6837
|
for (let e6 of i2) {
|
|
6828
6838
|
let i3 = e6.planet1.toLowerCase(), a3 = e6.planet2.toLowerCase(), o3 = r2.filter((e7) => e7.planet1.toLowerCase() === i3 || e7.planet2.toLowerCase() === i3);
|
|
6829
6839
|
for (let e7 of o3) {
|
|
@@ -6832,8 +6842,8 @@ function Mv(e5, t2) {
|
|
|
6832
6842
|
let s3 = [i3, a3, o4].sort().join("|");
|
|
6833
6843
|
if (!c2.has(s3) && r2.find((e8) => e8.planet1.toLowerCase() === o4 && e8.planet2.toLowerCase() === a3 || e8.planet2.toLowerCase() === o4 && e8.planet1.toLowerCase() === a3)) {
|
|
6834
6844
|
c2.add(s3);
|
|
6835
|
-
let e8 = t2.find((e9) => e9.name.toLowerCase() === o4), r3 = e8 ? Z(
|
|
6836
|
-
n2.push({ name: "T-Square", description: "".concat(r3 ? r3 + " \xB7 " : "", "Apex: ").concat(Z(o4)), planets: [.../* @__PURE__ */ new Set([i3, a3, o4])], aspectKeys: [
|
|
6845
|
+
let e8 = t2.find((e9) => e9.name.toLowerCase() === o4), r3 = e8 ? Z(jv[Ev(e8.longitude)]) : "";
|
|
6846
|
+
n2.push({ name: "T-Square", description: "".concat(r3 ? r3 + " \xB7 " : "", "Apex: ").concat(Z(o4)), planets: [.../* @__PURE__ */ new Set([i3, a3, o4])], aspectKeys: [Mv(i3, a3), Mv(i3, o4), Mv(a3, o4)] });
|
|
6837
6847
|
break;
|
|
6838
6848
|
}
|
|
6839
6849
|
}
|
|
@@ -6843,7 +6853,7 @@ function Mv(e5, t2) {
|
|
|
6843
6853
|
let r3 = a2[e6], i3 = a2[t3], o3 = [r3.planet1.toLowerCase(), r3.planet2.toLowerCase()], s3 = [i3.planet1.toLowerCase(), i3.planet2.toLowerCase()], c3 = o3.find((e7) => s3.includes(e7));
|
|
6844
6854
|
if (!c3) continue;
|
|
6845
6855
|
let u3 = o3.find((e7) => e7 !== c3), d3 = s3.find((e7) => e7 !== c3), f3 = [u3, c3, d3].sort().join("|");
|
|
6846
|
-
l2.has(f3) || a2.find((e7) => e7.planet1.toLowerCase() === u3 && e7.planet2.toLowerCase() === d3 || e7.planet2.toLowerCase() === u3 && e7.planet1.toLowerCase() === d3) && (l2.add(f3), n2.push({ name: "Grand Trine", description: "".concat(Z(u3), " \xB7 ").concat(Z(c3), " \xB7 ").concat(Z(d3)), planets: [u3, c3, d3], aspectKeys: [
|
|
6856
|
+
l2.has(f3) || a2.find((e7) => e7.planet1.toLowerCase() === u3 && e7.planet2.toLowerCase() === d3 || e7.planet2.toLowerCase() === u3 && e7.planet1.toLowerCase() === d3) && (l2.add(f3), n2.push({ name: "Grand Trine", description: "".concat(Z(u3), " \xB7 ").concat(Z(c3), " \xB7 ").concat(Z(d3)), planets: [u3, c3, d3], aspectKeys: [Mv(u3, c3), Mv(c3, d3), Mv(u3, d3)] }));
|
|
6847
6857
|
}
|
|
6848
6858
|
if (i2.length >= 2 && r2.length >= 4) for (let e6 = 0; e6 < i2.length; e6++) for (let a3 = e6 + 1; a3 < i2.length; a3++) {
|
|
6849
6859
|
let o3 = i2[e6], s3 = i2[a3], [c3, l3] = [o3.planet1.toLowerCase(), o3.planet2.toLowerCase()], [u3, d3] = [s3.planet1.toLowerCase(), s3.planet2.toLowerCase()];
|
|
@@ -6854,19 +6864,19 @@ function Mv(e5, t2) {
|
|
|
6854
6864
|
var n3, r3;
|
|
6855
6865
|
return { name: e8, lon: (n3 = (r3 = t2.find((t3) => t3.name.toLowerCase() === e8)) == null ? void 0 : r3.longitude) == null ? 0 : n3 };
|
|
6856
6866
|
}).sort((e8, t3) => e8.lon - t3.lon).map((e8) => e8.name);
|
|
6857
|
-
n2.push({ name: "Grand Cross", description: e7.map(Z).join(" \xB7 "), planets: [c3, l3, u3, d3], aspectKeys: [
|
|
6867
|
+
n2.push({ name: "Grand Cross", description: e7.map(Z).join(" \xB7 "), planets: [c3, l3, u3, d3], aspectKeys: [Mv(c3, l3), Mv(u3, d3), ...f3.map(([e8, t3]) => Mv(e8, t3))] });
|
|
6858
6868
|
}
|
|
6859
6869
|
}
|
|
6860
|
-
let u2 = /* @__PURE__ */ new Set(["chiron"]), d2 = t2.filter((e6) => !u2.has(e6.name.toLowerCase()) && !
|
|
6870
|
+
let u2 = /* @__PURE__ */ new Set(["chiron"]), d2 = t2.filter((e6) => !u2.has(e6.name.toLowerCase()) && !M_(e6.name)).map((e6) => ({ name: e6.name.toLowerCase(), lon: e6.longitude })), f2 = /* @__PURE__ */ new Map();
|
|
6861
6871
|
for (let { name: e6, lon: t3 } of d2) {
|
|
6862
6872
|
var p2;
|
|
6863
|
-
let n3 =
|
|
6873
|
+
let n3 = Ev(t3), r3 = (p2 = f2.get(n3)) == null ? [] : p2;
|
|
6864
6874
|
r3.push(e6), f2.set(n3, r3);
|
|
6865
6875
|
}
|
|
6866
6876
|
for (let [e6, t3] of f2) if (t3.length >= 3) {
|
|
6867
6877
|
let r3 = [...t3].sort().join("|"), i3 = [];
|
|
6868
|
-
for (let e7 = 0; e7 < t3.length; e7++) for (let n3 = e7 + 1; n3 < t3.length; n3++) i3.push(
|
|
6869
|
-
n2.push({ name: "Stellium", description: "".concat(
|
|
6878
|
+
for (let e7 = 0; e7 < t3.length; e7++) for (let n3 = e7 + 1; n3 < t3.length; n3++) i3.push(Mv(t3[e7], t3[n3]));
|
|
6879
|
+
n2.push({ name: "Stellium", description: "".concat(av[e6], ": ").concat(t3.map(Z).join(", ")), planets: t3, aspectKeys: i3, _dedupeKey: r3 });
|
|
6870
6880
|
}
|
|
6871
6881
|
let m2 = [...d2].sort((e6, t3) => e6.lon - t3.lon), h2 = [...m2, ...m2.map((e6) => ({ ...e6, lon: e6.lon + 360 }))], g2 = /* @__PURE__ */ new Set();
|
|
6872
6882
|
for (let e6 = 0; e6 < h2.length - 2; e6++) {
|
|
@@ -6879,7 +6889,7 @@ function Mv(e5, t2) {
|
|
|
6879
6889
|
if (g2.has(t4)) continue;
|
|
6880
6890
|
if (g2.add(t4), !n2.some((e8) => e8._dedupeKey === t4)) {
|
|
6881
6891
|
let t5 = [];
|
|
6882
|
-
for (let n3 = 0; n3 < e7.length; n3++) for (let r4 = n3 + 1; r4 < e7.length; r4++) t5.push(
|
|
6892
|
+
for (let n3 = 0; n3 < e7.length; n3++) for (let r4 = n3 + 1; r4 < e7.length; r4++) t5.push(Mv(e7[n3], e7[r4]));
|
|
6883
6893
|
n2.push({ name: "Stellium", description: "Tight cluster: ".concat(e7.map(Z).join(", ")), planets: e7, aspectKeys: t5 });
|
|
6884
6894
|
}
|
|
6885
6895
|
}
|
|
@@ -6889,7 +6899,7 @@ function Mv(e5, t2) {
|
|
|
6889
6899
|
let r3 = s2[e6], i3 = s2[t3], a3 = [r3.planet1.toLowerCase(), r3.planet2.toLowerCase()], c3 = [i3.planet1.toLowerCase(), i3.planet2.toLowerCase()], l3 = a3.find((e7) => c3.includes(e7));
|
|
6890
6900
|
if (!l3) continue;
|
|
6891
6901
|
let u3 = a3.find((e7) => e7 !== l3), d3 = c3.find((e7) => e7 !== l3), f3 = [l3, u3, d3].sort().join("|");
|
|
6892
|
-
_2.has(f3) || o2.find((e7) => e7.planet1.toLowerCase() === u3 && e7.planet2.toLowerCase() === d3 || e7.planet2.toLowerCase() === u3 && e7.planet1.toLowerCase() === d3) && (_2.add(f3), n2.push({ name: "Yod", description: "Apex: ".concat(Z(l3)), planets: [l3, u3, d3], aspectKeys: [
|
|
6902
|
+
_2.has(f3) || o2.find((e7) => e7.planet1.toLowerCase() === u3 && e7.planet2.toLowerCase() === d3 || e7.planet2.toLowerCase() === u3 && e7.planet1.toLowerCase() === d3) && (_2.add(f3), n2.push({ name: "Yod", description: "Apex: ".concat(Z(l3)), planets: [l3, u3, d3], aspectKeys: [Mv(l3, u3), Mv(l3, d3), Mv(u3, d3)] }));
|
|
6893
6903
|
}
|
|
6894
6904
|
let v2 = /* @__PURE__ */ new Set(), ee2 = n2.filter((e6) => e6.name === "Grand Trine");
|
|
6895
6905
|
for (let e6 of ee2) {
|
|
@@ -6900,43 +6910,43 @@ function Mv(e5, t2) {
|
|
|
6900
6910
|
let p3 = o2.find((e7) => e7.planet1.toLowerCase() === f3 && e7.planet2.toLowerCase() === l3 || e7.planet2.toLowerCase() === f3 && e7.planet1.toLowerCase() === l3), m3 = o2.find((e7) => e7.planet1.toLowerCase() === f3 && e7.planet2.toLowerCase() === u3 || e7.planet2.toLowerCase() === f3 && e7.planet1.toLowerCase() === u3);
|
|
6901
6911
|
if (!p3 || !m3) continue;
|
|
6902
6912
|
let h3 = [t3, r3, a3, f3].sort().join("|");
|
|
6903
|
-
v2.has(h3) || (v2.add(h3), n2.push({ name: "Kite", description: "Apex: ".concat(Z(f3), " \xB7 Tail: ").concat(Z(c3)), planets: [t3, r3, a3, f3], aspectKeys: [...e6.aspectKeys,
|
|
6913
|
+
v2.has(h3) || (v2.add(h3), n2.push({ name: "Kite", description: "Apex: ".concat(Z(f3), " \xB7 Tail: ").concat(Z(c3)), planets: [t3, r3, a3, f3], aspectKeys: [...e6.aspectKeys, Mv(f3, c3), Mv(f3, l3), Mv(f3, u3)] }));
|
|
6904
6914
|
}
|
|
6905
6915
|
}
|
|
6906
6916
|
for (let e6 of n2) delete e6._dedupeKey;
|
|
6907
6917
|
return n2;
|
|
6908
6918
|
}
|
|
6909
|
-
var
|
|
6910
|
-
function
|
|
6911
|
-
|
|
6919
|
+
var Fv = null, Iv = null, Q = null, Lv = null, Rv = null, zv = null;
|
|
6920
|
+
function Bv(e5) {
|
|
6921
|
+
zv = e5;
|
|
6912
6922
|
}
|
|
6913
|
-
var
|
|
6914
|
-
function
|
|
6923
|
+
var Vv = /* @__PURE__ */ new Map();
|
|
6924
|
+
function Hv() {
|
|
6915
6925
|
var e5;
|
|
6916
|
-
if (
|
|
6926
|
+
if (Fv) return Fv;
|
|
6917
6927
|
let t2 = document.getElementById("info-panel");
|
|
6918
|
-
if (t2) return
|
|
6919
|
-
|
|
6928
|
+
if (t2) return Fv = t2, Fv;
|
|
6929
|
+
Fv = document.createElement("div"), Fv.id = "info-panel", Fv.className = "info-panel";
|
|
6920
6930
|
let n2 = document.getElementById("chart-container");
|
|
6921
|
-
return n2 != null && n2.parentElement ? n2.parentElement.insertBefore(
|
|
6931
|
+
return n2 != null && n2.parentElement ? n2.parentElement.insertBefore(Fv, n2.nextSibling) : (e5 = document.getElementById("app")) == null || e5.appendChild(Fv), Fv;
|
|
6922
6932
|
}
|
|
6923
|
-
function
|
|
6933
|
+
function Uv(e5, t2, n2) {
|
|
6924
6934
|
var r2, i2, a2, o2;
|
|
6925
|
-
let s2 =
|
|
6935
|
+
let s2 = Hv(), c2 = (r2 = rv[t2.name.toLowerCase()]) == null ? "\u2605" : r2, l2 = (i2 = iv[Math.floor((t2.longitude % 360 + 360) % 360 / 30)]) == null ? "" : i2, u2 = kv(t2.name, t2.longitude), d2 = u2 ? '<span class="dignity-badge '.concat(u2.cssClass, '" title="').concat(u2.label, '">').concat(u2.emoji, " ").concat(u2.label, "</span>") : "", f2 = n2.filter((e6) => e6.planet1.toLowerCase() === t2.name.toLowerCase() || e6.planet2.toLowerCase() === t2.name.toLowerCase()).sort((e6, t3) => {
|
|
6926
6936
|
var n3, r3;
|
|
6927
6937
|
return ((n3 = e6.orb) == null ? 99 : n3) - ((r3 = t3.orb) == null ? 99 : r3);
|
|
6928
6938
|
}), p2 = f2.length ? f2.map((e6) => {
|
|
6929
6939
|
var n3, r3, i3, a3, o3, s3, c3;
|
|
6930
|
-
let l3 = e6.planet1.toLowerCase() === t2.name.toLowerCase() ? e6.planet2 : e6.planet1, u3 = (n3 =
|
|
6940
|
+
let l3 = e6.planet1.toLowerCase() === t2.name.toLowerCase() ? e6.planet2 : e6.planet1, u3 = (n3 = rv[l3.toLowerCase()]) == null ? l3 : n3, d3 = (r3 = (i3 = ov[(a3 = (o3 = e6.type) == null ? void 0 : o3.toLowerCase()) == null ? "" : a3]) == null ? e6.type : i3) == null ? "\u2014" : r3, f3 = (s3 = sv((c3 = e6.type) == null ? "" : c3)) == null ? "#888" : s3, p3 = e6.orb == null ? "" : "".concat(e6.orb.toFixed(1), "\xB0"), m3 = e6.applying === true ? "\u2197" : e6.applying === false ? "\u2198" : "\xB7";
|
|
6931
6941
|
return '<div class="aspect-row">\n <span class="aspect-dot" style="background:'.concat(f3, '"></span>\n <span class="aspect-sym" style="color:').concat(f3, '">').concat(d3, '</span>\n <span class="aspect-other">').concat(u3, " ").concat(Z(l3), '</span>\n <span class="aspect-meta">').concat(p3, " ").concat(m3, "</span>\n </div>");
|
|
6932
|
-
}).join("") : '<div class="no-aspects">No listed aspects</div>', m2 =
|
|
6933
|
-
s2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph">'.concat(c2, '</span>\n <div class="info-title">\n <div class="info-name-row">\n <strong>').concat(Z(t2.name), "</strong>").concat(t2.retrograde ? " <span class='retro'>\u211E</span>" : "", "\n ").concat(d2, '\n </div>\n <div class="info-pos">').concat(l2, " ").concat(
|
|
6934
|
-
|
|
6942
|
+
}).join("") : '<div class="no-aspects">No listed aspects</div>', m2 = Rv ? '<button class="ask-claude-btn" id="ask-claude-btn">Interpret</button>' : '<div class="info-hint">Click an aspect line for full interpretation</div>';
|
|
6943
|
+
s2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph">'.concat(c2, '</span>\n <div class="info-title">\n <div class="info-name-row">\n <strong>').concat(Z(t2.name), "</strong>").concat(t2.retrograde ? " <span class='retro'>\u211E</span>" : "", "\n ").concat(d2, '\n </div>\n <div class="info-pos">').concat(l2, " ").concat(mv(t2.longitude)).concat(t2.house ? " \xB7 House ".concat(t2.house) : "", '</div>\n </div>\n <button class="info-close" id="info-close-btn">\u2715</button>\n </div>\n <div class="aspects-title">Aspects</div>\n <div class="aspects-list">').concat(p2, "</div>\n ").concat(m2, "\n "), s2.classList.add("visible"), s2.scrollIntoView({ behavior: "smooth", block: "nearest" }), (a2 = document.getElementById("info-close-btn")) == null || a2.addEventListener("click", () => {
|
|
6944
|
+
Xv(), iy();
|
|
6935
6945
|
}), (o2 = document.getElementById("ask-claude-btn")) == null || o2.addEventListener("click", () => {
|
|
6936
6946
|
var e6, n3, r3, i3, a3;
|
|
6937
|
-
if (!
|
|
6947
|
+
if (!Rv) return;
|
|
6938
6948
|
let o3 = document.getElementById("ask-claude-btn");
|
|
6939
|
-
!o3 || o3.disabled || (o3.disabled = true, o3.textContent = "Sending\u2026", o3.classList.remove("sent", "error"), o3.classList.add("sending"),
|
|
6949
|
+
!o3 || o3.disabled || (o3.disabled = true, o3.textContent = "Sending\u2026", o3.classList.remove("sent", "error"), o3.classList.add("sending"), Rv({ type: "planet", data: { name: t2.name, longitude: t2.longitude, sign: (e6 = t2.sign) == null ? mv(t2.longitude) : e6, house: (n3 = t2.house) == null ? null : n3, retrograde: (r3 = t2.retrograde) == null ? false : r3, speed: (i3 = t2.speed) == null ? null : i3, dignity: (a3 = u2 == null ? void 0 : u2.label) == null ? null : a3, aspects: f2.map((e7) => ({ other: e7.planet1.toLowerCase() === t2.name.toLowerCase() ? e7.planet2 : e7.planet1, type: e7.type, orb: e7.orb, applying: e7.applying })) } }).then(() => {
|
|
6940
6950
|
o3.textContent = "\u2713 Sent", o3.classList.remove("sending"), o3.classList.add("sent"), setTimeout(() => {
|
|
6941
6951
|
o3.textContent = "\u2728 Interpret this", o3.classList.remove("sent"), o3.disabled = false;
|
|
6942
6952
|
}, 2500);
|
|
@@ -6945,16 +6955,16 @@ function Vv(e5, t2, n2) {
|
|
|
6945
6955
|
}));
|
|
6946
6956
|
});
|
|
6947
6957
|
}
|
|
6948
|
-
function
|
|
6958
|
+
function Wv(e5, t2, n2) {
|
|
6949
6959
|
var r2, i2, a2, o2, s2, c2, l2, u2, d2, f2;
|
|
6950
|
-
let p2 =
|
|
6951
|
-
p2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph" style="color:'.concat(ee2, '">').concat(v2, '</span>\n <div class="info-title">\n <div class="info-name-row">\n <strong>').concat(Z((u2 = t2.type) == null ? "Aspect" : u2), '</strong>\n </div>\n <div class="info-pos">').concat(y2).concat(b2 ? " \xB7 ".concat(b2) : "", '</div>\n </div>\n <button class="info-close" id="info-close-btn">\u2715</button>\n </div>\n <div class="aspects-title">Planets in Aspect</div>\n <div class="aspect-pair-row">\n <div class="aspect-pair-planet">\n <span class="aspect-pair-glyph">').concat(g2, '</span>\n <div>\n <div class="aspect-pair-name">').concat(Z(t2.planet1), '</div>\n <div class="aspect-pair-pos">').concat(x2, '</div>\n </div>\n </div>\n <span class="aspect-pair-sym" style="color:').concat(ee2, '">').concat(v2, '</span>\n <div class="aspect-pair-planet">\n <span class="aspect-pair-glyph">').concat(_2, '</span>\n <div>\n <div class="aspect-pair-name">').concat(Z(t2.planet2), '</div>\n <div class="aspect-pair-pos">').concat(
|
|
6952
|
-
|
|
6960
|
+
let p2 = Hv(), m2 = n2.find((e6) => e6.name.toLowerCase() === t2.planet1.toLowerCase()), h2 = n2.find((e6) => e6.name.toLowerCase() === t2.planet2.toLowerCase()), g2 = (r2 = rv[t2.planet1.toLowerCase()]) == null ? t2.planet1 : r2, _2 = (i2 = rv[t2.planet2.toLowerCase()]) == null ? t2.planet2 : i2, v2 = (a2 = ov[(o2 = (s2 = t2.type) == null ? void 0 : s2.toLowerCase()) == null ? "" : o2]) == null ? "" : a2, ee2 = sv((c2 = (l2 = t2.type) == null ? void 0 : l2.toLowerCase()) == null ? "" : c2), y2 = t2.orb == null ? "unknown orb" : "".concat(t2.orb.toFixed(2), "\xB0"), b2 = t2.applying === true ? "Applying (growing closer)" : t2.applying === false ? "Separating (moving apart)" : "", x2 = m2 ? "".concat(mv(m2.longitude)).concat(m2.house ? " \xB7 H".concat(m2.house) : "") : "", te2 = h2 ? "".concat(mv(h2.longitude)).concat(h2.house ? " \xB7 H".concat(h2.house) : "") : "", S2 = Rv ? '<button class="ask-claude-btn" id="ask-claude-btn">Interpret</button>' : "";
|
|
6961
|
+
p2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph" style="color:'.concat(ee2, '">').concat(v2, '</span>\n <div class="info-title">\n <div class="info-name-row">\n <strong>').concat(Z((u2 = t2.type) == null ? "Aspect" : u2), '</strong>\n </div>\n <div class="info-pos">').concat(y2).concat(b2 ? " \xB7 ".concat(b2) : "", '</div>\n </div>\n <button class="info-close" id="info-close-btn">\u2715</button>\n </div>\n <div class="aspects-title">Planets in Aspect</div>\n <div class="aspect-pair-row">\n <div class="aspect-pair-planet">\n <span class="aspect-pair-glyph">').concat(g2, '</span>\n <div>\n <div class="aspect-pair-name">').concat(Z(t2.planet1), '</div>\n <div class="aspect-pair-pos">').concat(x2, '</div>\n </div>\n </div>\n <span class="aspect-pair-sym" style="color:').concat(ee2, '">').concat(v2, '</span>\n <div class="aspect-pair-planet">\n <span class="aspect-pair-glyph">').concat(_2, '</span>\n <div>\n <div class="aspect-pair-name">').concat(Z(t2.planet2), '</div>\n <div class="aspect-pair-pos">').concat(te2, "</div>\n </div>\n </div>\n </div>\n ").concat(S2, "\n "), p2.classList.add("visible"), p2.scrollIntoView({ behavior: "smooth", block: "nearest" }), (d2 = document.getElementById("info-close-btn")) == null || d2.addEventListener("click", () => {
|
|
6962
|
+
Xv(), iy();
|
|
6953
6963
|
}), (f2 = document.getElementById("ask-claude-btn")) == null || f2.addEventListener("click", () => {
|
|
6954
6964
|
var e6, n3, r3, i3, a3, o3, s3, c3;
|
|
6955
|
-
if (!
|
|
6965
|
+
if (!Rv) return;
|
|
6956
6966
|
let l3 = document.getElementById("ask-claude-btn");
|
|
6957
|
-
!l3 || l3.disabled || (l3.disabled = true, l3.textContent = "Sending\u2026", l3.classList.add("sending"),
|
|
6967
|
+
!l3 || l3.disabled || (l3.disabled = true, l3.textContent = "Sending\u2026", l3.classList.add("sending"), Rv({ type: "aspect", data: { planet1: t2.planet1, planet2: t2.planet2, aspect_type: (e6 = t2.type) == null ? null : e6, orb: (n3 = t2.orb) == null ? null : n3, applying: (r3 = t2.applying) == null ? null : r3, angle: (i3 = t2.angle) == null ? null : i3, planet1_sign: (a3 = m2 == null ? void 0 : m2.sign) == null ? null : a3, planet1_house: (o3 = m2 == null ? void 0 : m2.house) == null ? null : o3, planet2_sign: (s3 = h2 == null ? void 0 : h2.sign) == null ? null : s3, planet2_house: (c3 = h2 == null ? void 0 : h2.house) == null ? null : c3 } }).then(() => {
|
|
6958
6968
|
l3.textContent = "Sent", l3.classList.remove("sending"), l3.classList.add("sent"), setTimeout(() => {
|
|
6959
6969
|
l3.textContent = "Interpret", l3.classList.remove("sent"), l3.disabled = false;
|
|
6960
6970
|
}, 2500);
|
|
@@ -6963,22 +6973,22 @@ function Hv(e5, t2, n2) {
|
|
|
6963
6973
|
}));
|
|
6964
6974
|
});
|
|
6965
6975
|
}
|
|
6966
|
-
function
|
|
6976
|
+
function Gv(e5, t2, n2) {
|
|
6967
6977
|
var r2, i2, a2, o2, s2;
|
|
6968
|
-
let c2 =
|
|
6978
|
+
let c2 = Hv(), l2 = Math.floor((t2.cusp_lon % 360 + 360) % 360 / 30), u2 = (r2 = iv[l2]) == null ? "" : r2, d2 = (i2 = (a2 = t2.sign) == null ? av[l2] : a2) == null ? "" : i2, f2 = n2.filter((e6) => e6.house === t2.number), p2 = f2.length ? f2.map((e6) => {
|
|
6969
6979
|
var t3;
|
|
6970
|
-
let n3 = (t3 =
|
|
6980
|
+
let n3 = (t3 = rv[e6.name.toLowerCase()]) == null ? e6.name : t3, r3 = mv(e6.longitude), i3 = e6.retrograde ? " <span class='retro'>\u211E</span>" : "";
|
|
6971
6981
|
return '<div class="aspect-row">\n <span class="aspect-sym">'.concat(n3, '</span>\n <span class="aspect-other">').concat(Z(e6.name)).concat(i3, '</span>\n <span class="aspect-meta">').concat(r3, "</span>\n </div>");
|
|
6972
|
-
}).join("") : '<div class="no-aspects">No planets in this house</div>', m2 =
|
|
6982
|
+
}).join("") : '<div class="no-aspects">No planets in this house</div>', m2 = Rv ? '<button class="ask-claude-btn" id="ask-claude-btn">Interpret</button>' : "";
|
|
6973
6983
|
c2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph">'.concat(u2, '</span>\n <div class="info-title">\n <div class="info-name-row">\n <strong>House ').concat(t2.number, '</strong>\n </div>\n <div class="info-pos">').concat(u2, " ").concat(d2, " on cusp").concat(t2.ruler ? " \xB7 ruled by ".concat(Z(t2.ruler)) : "", '</div>\n </div>\n <button class="info-close" id="info-close-btn">\u2715</button>\n </div>\n <div class="aspects-title">Planets in House ').concat(t2.number, '</div>\n <div class="aspects-list">').concat(p2, "</div>\n ").concat(m2, "\n "), c2.classList.add("visible"), c2.scrollIntoView({ behavior: "smooth", block: "nearest" }), (o2 = document.getElementById("info-close-btn")) == null || o2.addEventListener("click", () => {
|
|
6974
|
-
|
|
6984
|
+
Xv(), iy();
|
|
6975
6985
|
}), (s2 = document.getElementById("ask-claude-btn")) == null || s2.addEventListener("click", () => {
|
|
6976
6986
|
var e6;
|
|
6977
|
-
if (!
|
|
6987
|
+
if (!Rv) return;
|
|
6978
6988
|
let n3 = document.getElementById("ask-claude-btn");
|
|
6979
|
-
!n3 || n3.disabled || (n3.disabled = true, n3.textContent = "Sending\u2026", n3.classList.add("sending"),
|
|
6989
|
+
!n3 || n3.disabled || (n3.disabled = true, n3.textContent = "Sending\u2026", n3.classList.add("sending"), Rv({ type: "house", data: { house_number: t2.number, sign: d2, cusp_longitude: t2.cusp_lon, ruler: (e6 = t2.ruler) == null ? null : e6, planets_in_house: f2.map((e7) => {
|
|
6980
6990
|
var t3, n4;
|
|
6981
|
-
return { name: e7.name, sign: (t3 = e7.sign) == null ?
|
|
6991
|
+
return { name: e7.name, sign: (t3 = e7.sign) == null ? mv(e7.longitude) : t3, retrograde: (n4 = e7.retrograde) == null ? false : n4 };
|
|
6982
6992
|
}) } }).then(() => {
|
|
6983
6993
|
n3.textContent = "Sent", n3.classList.remove("sending"), n3.classList.add("sent"), setTimeout(() => {
|
|
6984
6994
|
n3.textContent = "Interpret", n3.classList.remove("sent"), n3.disabled = false;
|
|
@@ -6988,22 +6998,22 @@ function Uv(e5, t2, n2) {
|
|
|
6988
6998
|
}));
|
|
6989
6999
|
});
|
|
6990
7000
|
}
|
|
6991
|
-
var
|
|
6992
|
-
function
|
|
7001
|
+
var Kv = { Aries: "Mars", Taurus: "Venus", Gemini: "Mercury", Cancer: "Moon", Leo: "Sun", Virgo: "Mercury", Libra: "Venus", Scorpio: "Mars", Sagittarius: "Jupiter", Capricorn: "Saturn", Aquarius: "Saturn", Pisces: "Jupiter" };
|
|
7002
|
+
function qv(e5, t2, n2) {
|
|
6993
7003
|
var r2, i2, a2, o2, s2;
|
|
6994
|
-
let c2 =
|
|
7004
|
+
let c2 = Hv(), l2 = av[t2], u2 = iv[t2], d2 = Z(Av[t2]), f2 = Z(jv[t2]), p2 = (r2 = Kv[l2]) == null ? "" : r2, m2 = (i2 = rv[p2.toLowerCase()]) == null ? "" : i2, h2 = n2.filter((e6) => Math.floor((e6.longitude % 360 + 360) % 360 / 30) === t2), g2 = h2.length ? h2.map((e6) => {
|
|
6995
7005
|
var t3;
|
|
6996
|
-
let n3 = (t3 =
|
|
7006
|
+
let n3 = (t3 = rv[e6.name.toLowerCase()]) == null ? e6.name : t3, r3 = Math.floor((e6.longitude % 360 + 360) % 360 % 30), i3 = Math.floor((e6.longitude % 30 - r3) * 60), a3 = e6.retrograde ? " <span class='retro'>\u211E</span>" : "", o3 = kv(e6.name, e6.longitude), s3 = o3 ? ' <span class="dignity-badge '.concat(o3.cssClass, '">').concat(o3.emoji, " ").concat(o3.label, "</span>") : "";
|
|
6997
7007
|
return '<div class="aspect-row">\n <span class="aspect-sym">'.concat(n3, '</span>\n <span class="aspect-other">').concat(Z(e6.name)).concat(a3).concat(s3, '</span>\n <span class="aspect-meta">').concat(r3, "\xB0").concat(i3.toString().padStart(2, "0"), "\u2032</span>\n </div>");
|
|
6998
|
-
}).join("") : '<div class="no-aspects">No planets in '.concat(l2, "</div>"), _2 = (a2 = { Fire: "\u{1F525}", Earth: "\u{1F33F}", Air: "\u{1F4A8}", Water: "\u{1F4A7}" }[d2]) == null ? "" : a2, v2 =
|
|
6999
|
-
c2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph" style="color:'.concat(
|
|
7000
|
-
|
|
7008
|
+
}).join("") : '<div class="no-aspects">No planets in '.concat(l2, "</div>"), _2 = (a2 = { Fire: "\u{1F525}", Earth: "\u{1F33F}", Air: "\u{1F4A8}", Water: "\u{1F4A7}" }[d2]) == null ? "" : a2, v2 = Rv ? '<button class="ask-claude-btn" id="sign-ask-claude-btn">Interpret '.concat(l2, "</button>") : "";
|
|
7009
|
+
c2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph" style="color:'.concat(lv(t2), '">').concat(u2, '</span>\n <div class="info-title">\n <div class="info-name-row">\n <strong>').concat(l2, '</strong>\n </div>\n <div class="info-pos">').concat(_2, " ").concat(d2, " \xB7 ").concat(f2).concat(p2 ? " \xB7 Ruled by ".concat(m2, " ").concat(p2) : "", '</div>\n </div>\n <button class="info-close" id="info-close-btn">\u2715</button>\n </div>\n <div class="aspects-title">Planets in ').concat(l2, '</div>\n <div class="aspects-list">').concat(g2, "</div>\n ").concat(v2, "\n "), c2.classList.add("visible"), c2.scrollIntoView({ behavior: "smooth", block: "nearest" }), (o2 = document.getElementById("info-close-btn")) == null || o2.addEventListener("click", () => {
|
|
7010
|
+
Xv(), iy();
|
|
7001
7011
|
}), (s2 = document.getElementById("sign-ask-claude-btn")) == null || s2.addEventListener("click", () => {
|
|
7002
|
-
if (!
|
|
7012
|
+
if (!Rv) return;
|
|
7003
7013
|
let e6 = document.getElementById("sign-ask-claude-btn");
|
|
7004
|
-
!e6 || e6.disabled || (e6.disabled = true, e6.textContent = "Sending\u2026", e6.classList.add("sending"),
|
|
7014
|
+
!e6 || e6.disabled || (e6.disabled = true, e6.textContent = "Sending\u2026", e6.classList.add("sending"), Rv({ type: "sign", data: { sign: l2, element: d2, modality: f2, ruler: p2 || null, planets_in_sign: h2.map((e7) => {
|
|
7005
7015
|
var t3, n3;
|
|
7006
|
-
return { name: e7.name, longitude: e7.longitude, position:
|
|
7016
|
+
return { name: e7.name, longitude: e7.longitude, position: mv(e7.longitude), retrograde: (t3 = e7.retrograde) == null ? false : t3, house: (n3 = e7.house) == null ? null : n3 };
|
|
7007
7017
|
}) } }).then(() => {
|
|
7008
7018
|
e6.textContent = "Sent", e6.classList.remove("sending"), e6.classList.add("sent"), setTimeout(() => {
|
|
7009
7019
|
e6.textContent = "Interpret ".concat(l2), e6.classList.remove("sent"), e6.disabled = false;
|
|
@@ -7013,17 +7023,17 @@ function Gv(e5, t2, n2) {
|
|
|
7013
7023
|
}));
|
|
7014
7024
|
});
|
|
7015
7025
|
}
|
|
7016
|
-
var
|
|
7017
|
-
function
|
|
7026
|
+
var Jv = { ASC: { title: "Ascendant", symbol: "AC", keyword: "self & first impressions", meaning: "The Ascendant is the mask you wear before the world \u2014 your embodied presence, physical appearance, and instinctive approach to new situations. It colours every first impression you make.", themes: ["identity", "appearance", "beginnings", "vitality", "self-projection"] }, DSC: { title: "Descendant", symbol: "DC", keyword: "partnership & mirrors", meaning: "The Descendant describes what you seek in others and the qualities you project onto relationships. It is the shadow-partner of the Ascendant \u2014 the face you recognise in those you're drawn to.", themes: ["partnership", "marriage", "open enemies", "projection", "attraction"] }, MC: { title: "Midheaven", symbol: "MC", keyword: "vocation & public legacy", meaning: "The Midheaven (Medium Coeli) marks the highest point of the chart and governs reputation, career, and the long arc of your public life. It describes the contribution the world remembers you for.", themes: ["career", "ambition", "reputation", "authority", "life direction"] }, IC: { title: "Imum Coeli", symbol: "IC", keyword: "roots & inner foundation", meaning: "The IC (Imum Coeli) anchors the chart at its lowest point \u2014 home, ancestry, psychological foundations, and the private self that sustains the public Midheaven. It is where you return to be restored.", themes: ["home", "family", "ancestry", "inner life", "psychological roots"] } };
|
|
7027
|
+
function Yv(e5, t2, n2) {
|
|
7018
7028
|
var r2, i2;
|
|
7019
|
-
let a2 =
|
|
7029
|
+
let a2 = Hv(), o2 = Jv[t2];
|
|
7020
7030
|
if (!o2) return;
|
|
7021
|
-
let s2 =
|
|
7031
|
+
let s2 = mv(n2), c2 = Math.floor((n2 % 360 + 360) % 360 / 30), l2 = Z(Av[c2]), u2 = Z(jv[c2]), d2 = iv[c2], f2 = lv(c2);
|
|
7022
7032
|
a2.innerHTML = '\n <div class="info-header">\n <span class="info-glyph" style="color:#7060b8;font-family:system-ui;font-weight:700;font-size:15px">'.concat(o2.symbol, '</span>\n <div class="info-title">\n <div class="info-name-row"><strong>').concat(o2.title, '</strong></div>\n <div class="info-pos">').concat(o2.keyword, '</div>\n </div>\n <button class="info-close" id="info-close-btn">\u2715</button>\n </div>\n <div class="planet-in-sign" style="margin:8px 0 4px">\n <span style="color:').concat(f2, ';font-family:serif;font-size:14px;margin-right:4px">').concat(d2, '</span>\n <span style="font-size:12px;color:var(--text-muted,#888)">').concat(s2, " \xB7 ").concat(l2, " \xB7 ").concat(u2, '</span>\n </div>\n <div class="planet-meaning" style="font-size:12px;line-height:1.55;margin-bottom:8px">').concat(o2.meaning, '</div>\n <div class="aspects-title">Themes</div>\n <div class="aspects-list">\n ').concat(o2.themes.map((e6) => '<div class="aspect-row"><span class="aspect-other">'.concat(e6, "</span></div>")).join(""), '\n </div>\n <div class="panel-actions" style="margin-top:10px">\n <button class="ask-claude-btn" id="angle-ask-claude-btn">\n Interpret ').concat(o2.title, "\n </button>\n </div>\n "), a2.classList.add("visible"), a2.scrollIntoView({ behavior: "smooth", block: "nearest" }), (r2 = document.getElementById("info-close-btn")) == null || r2.addEventListener("click", () => {
|
|
7023
|
-
|
|
7033
|
+
Xv(), iy();
|
|
7024
7034
|
}), (i2 = document.getElementById("angle-ask-claude-btn")) == null || i2.addEventListener("click", (e6) => {
|
|
7025
7035
|
let t3 = e6.currentTarget;
|
|
7026
|
-
t3.textContent = "Sending\u2026", t3.disabled = true,
|
|
7036
|
+
t3.textContent = "Sending\u2026", t3.disabled = true, Rv == null || Rv({ type: "angle_interpretation", data: { angle: o2.title, longitude: n2, sign: av[c2], position: s2, element: l2, modality: u2 } }).then(() => {
|
|
7027
7037
|
t3.textContent = "Sent", setTimeout(() => {
|
|
7028
7038
|
t3.textContent = "Interpret ".concat(o2.title), t3.disabled = false;
|
|
7029
7039
|
}, 2500);
|
|
@@ -7032,22 +7042,22 @@ function qv(e5, t2, n2) {
|
|
|
7032
7042
|
});
|
|
7033
7043
|
});
|
|
7034
7044
|
}
|
|
7035
|
-
function
|
|
7036
|
-
|
|
7045
|
+
function Xv() {
|
|
7046
|
+
Fv == null || Fv.classList.remove("visible"), Iv = null, ey(), zv == null || zv(null);
|
|
7037
7047
|
}
|
|
7038
|
-
var
|
|
7039
|
-
function
|
|
7040
|
-
let n2 =
|
|
7048
|
+
var Zv = null, Qv = 0;
|
|
7049
|
+
function $v(e5, t2 = false) {
|
|
7050
|
+
let n2 = Zv;
|
|
7041
7051
|
if (!n2) return;
|
|
7042
|
-
let r2 =
|
|
7052
|
+
let r2 = Qv, i2 = Y(e5, J_, r2), a2 = Y(e5, 198, r2);
|
|
7043
7053
|
n2.setAttribute("x1", i2.x.toFixed(1)), n2.setAttribute("y1", i2.y.toFixed(1)), n2.setAttribute("x2", a2.x.toFixed(1)), n2.setAttribute("y2", a2.y.toFixed(1)), n2.style.opacity = "1", n2.style.strokeWidth = t2 ? "1.5" : "1";
|
|
7044
7054
|
}
|
|
7045
|
-
function
|
|
7046
|
-
|
|
7055
|
+
function ey() {
|
|
7056
|
+
Zv && (Zv.style.opacity = "0");
|
|
7047
7057
|
}
|
|
7048
|
-
function
|
|
7058
|
+
function ty(e5) {
|
|
7049
7059
|
let t2 = e5.toLowerCase(), n2 = /* @__PURE__ */ new Set();
|
|
7050
|
-
|
|
7060
|
+
Vv.forEach(({ vis: e6, color: r2, symbolEls: i2 }, a2) => {
|
|
7051
7061
|
let o2 = a2.split("|");
|
|
7052
7062
|
if (o2.includes(t2)) {
|
|
7053
7063
|
e6.style.stroke = r2, e6.style.strokeOpacity = "0.95", e6.style.strokeWidth = "2", e6.setAttribute("filter", "url(#aspect-glow)"), i2.forEach((e7) => {
|
|
@@ -7067,9 +7077,9 @@ function $v(e5) {
|
|
|
7067
7077
|
e6.classList.toggle("dim", i2 !== t2 && !n2.has(i2));
|
|
7068
7078
|
});
|
|
7069
7079
|
}
|
|
7070
|
-
function
|
|
7080
|
+
function ny(e5, t2) {
|
|
7071
7081
|
let n2 = new Set(e5.map((e6) => e6.toLowerCase())), r2 = new Set(t2);
|
|
7072
|
-
|
|
7082
|
+
Vv.forEach(({ vis: e6, color: t3, symbolEls: n3 }, i2) => {
|
|
7073
7083
|
r2.has(i2) ? (e6.style.stroke = t3, e6.style.strokeOpacity = "0.95", e6.style.strokeWidth = "2", e6.setAttribute("filter", "url(#aspect-glow)"), n3.forEach((e7) => {
|
|
7074
7084
|
e7.style.opacity = "1";
|
|
7075
7085
|
})) : (e6.style.strokeOpacity = "0.05", e6.style.strokeWidth = "0.7", e6.removeAttribute("filter"), n3.forEach((e7) => {
|
|
@@ -7083,8 +7093,8 @@ function ey(e5, t2) {
|
|
|
7083
7093
|
return e6.classList.toggle("dim", !n2.has((t3 = e6.dataset.planet) == null ? "" : t3));
|
|
7084
7094
|
});
|
|
7085
7095
|
}
|
|
7086
|
-
function
|
|
7087
|
-
|
|
7096
|
+
function ry() {
|
|
7097
|
+
Vv.forEach(({ vis: e5, symbolEls: t2 }) => {
|
|
7088
7098
|
e5.style.strokeOpacity = "0.05", e5.style.strokeWidth = "0.7", e5.removeAttribute("filter"), t2.forEach((e6) => {
|
|
7089
7099
|
e6.style.opacity = "0.12";
|
|
7090
7100
|
});
|
|
@@ -7092,17 +7102,17 @@ function ty() {
|
|
|
7092
7102
|
e5.style.opacity = "0.35";
|
|
7093
7103
|
}), Q == null || Q.querySelectorAll(".planet-hit").forEach((e5) => e5.classList.add("dim"));
|
|
7094
7104
|
}
|
|
7095
|
-
function
|
|
7096
|
-
|
|
7105
|
+
function iy() {
|
|
7106
|
+
Vv.forEach(({ vis: e5, color: t2, baseOpacity: n2, baseWidth: r2, symbolEls: i2 }) => {
|
|
7097
7107
|
e5.style.stroke = t2, e5.style.strokeOpacity = n2, e5.style.strokeWidth = r2, e5.removeAttribute("filter"), i2.forEach((e6) => {
|
|
7098
7108
|
e6.style.opacity = "";
|
|
7099
7109
|
});
|
|
7100
7110
|
}), Q == null || Q.querySelectorAll(".planet-glyph-group").forEach((e5) => {
|
|
7101
7111
|
e5.style.opacity = "";
|
|
7102
|
-
}), Q == null || Q.querySelectorAll(".planet-hit").forEach((e5) => e5.classList.remove("dim")),
|
|
7112
|
+
}), Q == null || Q.querySelectorAll(".planet-hit").forEach((e5) => e5.classList.remove("dim")), cy();
|
|
7103
7113
|
}
|
|
7104
|
-
var
|
|
7105
|
-
function
|
|
7114
|
+
var ay = { "T-Square": "rgba(224,138, 82, 0.14)", "Grand Trine": "rgba( 82,168,224, 0.14)", "Grand Cross": "rgba(224, 82, 82, 0.14)", Stellium: "rgba(154,127,212, 0.14)", Yod: "rgba( 82,192,122, 0.14)", Kite: "rgba(192,176, 82, 0.14)" }, oy = { "T-Square": "rgba(224,138, 82, 0.70)", "Grand Trine": "rgba( 82,168,224, 0.70)", "Grand Cross": "rgba(224, 82, 82, 0.70)", Stellium: "rgba(154,127,212, 0.70)", Yod: "rgba( 82,192,122, 0.70)", Kite: "rgba(192,176, 82, 0.70)" };
|
|
7115
|
+
function sy(e5, t2, n2) {
|
|
7106
7116
|
var r2, i2;
|
|
7107
7117
|
if (!Q) return null;
|
|
7108
7118
|
let a2 = /* @__PURE__ */ new Map();
|
|
@@ -7110,26 +7120,26 @@ function ay(e5, t2, n2) {
|
|
|
7110
7120
|
let o2 = [];
|
|
7111
7121
|
for (let t3 of e5.planets) {
|
|
7112
7122
|
let e6 = a2.get(t3.toLowerCase());
|
|
7113
|
-
e6 != null && o2.push(Y(e6,
|
|
7123
|
+
e6 != null && o2.push(Y(e6, $_, n2));
|
|
7114
7124
|
}
|
|
7115
7125
|
if (o2.length < 2) return null;
|
|
7116
|
-
let s2 = (r2 =
|
|
7126
|
+
let s2 = (r2 = ay[e5.name]) == null ? "rgba(128,128,128,0.12)" : r2, c2 = (i2 = oy[e5.name]) == null ? "rgba(128,128,128,0.60)" : i2, l2;
|
|
7117
7127
|
if (o2.length === 2) {
|
|
7118
7128
|
let e6 = X("line");
|
|
7119
7129
|
e6.setAttribute("x1", o2[0].x.toFixed(1)), e6.setAttribute("y1", o2[0].y.toFixed(1)), e6.setAttribute("x2", o2[1].x.toFixed(1)), e6.setAttribute("y2", o2[1].y.toFixed(1)), e6.setAttribute("stroke", c2), e6.setAttribute("stroke-width", "2"), e6.setAttribute("fill", "none"), l2 = e6;
|
|
7120
7130
|
} else {
|
|
7121
|
-
let e6 = [...o2].sort((e7, t4) => Math.atan2(e7.y -
|
|
7131
|
+
let e6 = [...o2].sort((e7, t4) => Math.atan2(e7.y - q_, e7.x - K_) - Math.atan2(t4.y - q_, t4.x - K_)).map((e7) => "".concat(e7.x.toFixed(1), ",").concat(e7.y.toFixed(1))).join(" "), t3 = X("polygon");
|
|
7122
7132
|
t3.setAttribute("points", e6), t3.setAttribute("fill", s2), t3.setAttribute("stroke", c2), t3.setAttribute("stroke-width", "1.5"), t3.setAttribute("stroke-linejoin", "round"), l2 = t3;
|
|
7123
7133
|
}
|
|
7124
7134
|
l2.setAttribute("pointer-events", "none"), l2.setAttribute("class", "pattern-overlay");
|
|
7125
7135
|
let u2 = Q.querySelector(".aspect-hit");
|
|
7126
7136
|
return u2 ? Q.insertBefore(l2, u2) : Q.appendChild(l2), l2;
|
|
7127
7137
|
}
|
|
7128
|
-
function
|
|
7138
|
+
function cy() {
|
|
7129
7139
|
Q == null || Q.querySelectorAll(".pattern-overlay").forEach((e5) => e5.remove());
|
|
7130
7140
|
}
|
|
7131
|
-
function
|
|
7132
|
-
|
|
7141
|
+
function ly(e5) {
|
|
7142
|
+
Vv.forEach(({ vis: t2, color: n2, baseOpacity: r2, baseWidth: i2, symbolEls: a2 }) => {
|
|
7133
7143
|
e5 ? (t2.style.stroke = n2, t2.style.strokeOpacity = r2, t2.style.strokeWidth = i2) : t2.style.strokeOpacity = "0", a2.forEach((t3) => {
|
|
7134
7144
|
t3.style.display = e5 ? "" : "none";
|
|
7135
7145
|
});
|
|
@@ -7137,8 +7147,8 @@ function sy(e5) {
|
|
|
7137
7147
|
t2.style.pointerEvents = e5 ? "all" : "none";
|
|
7138
7148
|
});
|
|
7139
7149
|
}
|
|
7140
|
-
function
|
|
7141
|
-
|
|
7150
|
+
function uy(e5) {
|
|
7151
|
+
Vv.forEach(({ vis: t2, color: n2, baseOpacity: r2, baseWidth: i2, orb: a2, symbolEls: o2 }) => {
|
|
7142
7152
|
a2 <= e5 ? (t2.style.stroke = n2, t2.style.strokeOpacity = r2, t2.style.strokeWidth = i2, t2.style.display = "") : t2.style.display = "none", o2.forEach((t3) => {
|
|
7143
7153
|
t3.style.display = a2 <= e5 ? "" : "none";
|
|
7144
7154
|
});
|
|
@@ -7146,242 +7156,242 @@ function cy(e5) {
|
|
|
7146
7156
|
e6.style.display = "";
|
|
7147
7157
|
});
|
|
7148
7158
|
}
|
|
7149
|
-
function
|
|
7159
|
+
function dy(e5, t2, n2, r2, i2, a2, o2) {
|
|
7150
7160
|
var s2, c2, l2, u2, d2, f2, p2, m2, h2;
|
|
7151
|
-
|
|
7161
|
+
Rv = a2 == null ? null : a2;
|
|
7152
7162
|
let g2 = e5.querySelector("#pan-zoom-controls");
|
|
7153
|
-
e5.innerHTML = "", g2 && e5.appendChild(g2),
|
|
7154
|
-
let _2 =
|
|
7163
|
+
e5.innerHTML = "", g2 && e5.appendChild(g2), Vv.clear(), Iv = null, Xv();
|
|
7164
|
+
let _2 = vv(t2.planets), v2 = (s2 = t2.houses) == null ? [] : s2, ee2 = (c2 = t2.aspects) == null ? [] : c2, y2 = (l2 = (u2 = (d2 = v2[0]) == null ? void 0 : d2.cusp_lon) == null ? t2.ascendant : u2) == null ? 0 : l2, b2 = X("svg");
|
|
7155
7165
|
b2.setAttribute("viewBox", "0 0 500 500"), b2.setAttribute("width", "100%"), b2.setAttribute("height", "100%"), b2.setAttribute("overflow", "visible"), b2.style.overflow = "visible", b2.style.display = "block", e5.appendChild(b2), Q = b2;
|
|
7156
7166
|
{
|
|
7157
7167
|
let e6 = X("defs");
|
|
7158
7168
|
e6.innerHTML = '\n <filter id="aspect-glow" x="-50%" y="-50%" width="200%" height="200%">\n <feGaussianBlur in="SourceGraphic" stdDeviation="3" result="blur"/>\n <feMerge>\n <feMergeNode in="blur"/>\n <feMergeNode in="SourceGraphic"/>\n </feMerge>\n </filter>\n ', b2.insertBefore(e6, b2.firstChild);
|
|
7159
7169
|
}
|
|
7160
|
-
|
|
7170
|
+
o_(b2, "pan-zoom-controls");
|
|
7161
7171
|
let x2 = X("g");
|
|
7162
7172
|
x2.setAttribute("class", "chart-layer"), x2.style.setProperty("--layer-index", "1"), b2.appendChild(x2);
|
|
7173
|
+
let te2 = X("g");
|
|
7174
|
+
te2.setAttribute("class", "chart-layer"), te2.style.setProperty("--layer-index", "2"), b2.appendChild(te2);
|
|
7163
7175
|
let S2 = X("g");
|
|
7164
|
-
S2.setAttribute("class", "chart-layer"), S2.style.setProperty("--layer-index", "
|
|
7176
|
+
S2.setAttribute("class", "chart-layer"), S2.style.setProperty("--layer-index", "3"), b2.appendChild(S2);
|
|
7165
7177
|
let C2 = X("g");
|
|
7166
|
-
C2.setAttribute("class", "chart-layer"), C2.style.setProperty("--layer-index", "
|
|
7167
|
-
let w2 = X("g");
|
|
7168
|
-
w2.setAttribute("class", "chart-layer"), w2.style.setProperty("--layer-index", "4"), b2.appendChild(w2);
|
|
7169
|
-
let te2 = X("g");
|
|
7170
|
-
te2.setAttribute("class", "chart-layer"), te2.style.setProperty("--layer-index", "5"), b2.appendChild(te2);
|
|
7178
|
+
C2.setAttribute("class", "chart-layer"), C2.style.setProperty("--layer-index", "4"), b2.appendChild(C2);
|
|
7171
7179
|
let ne2 = X("g");
|
|
7172
|
-
|
|
7173
|
-
let
|
|
7174
|
-
|
|
7175
|
-
let
|
|
7176
|
-
|
|
7177
|
-
let
|
|
7178
|
-
|
|
7180
|
+
ne2.setAttribute("class", "chart-layer"), ne2.style.setProperty("--layer-index", "5"), b2.appendChild(ne2);
|
|
7181
|
+
let re2 = X("g");
|
|
7182
|
+
b2.appendChild(re2), Qv = y2;
|
|
7183
|
+
let w2 = X("line");
|
|
7184
|
+
w2.setAttribute("stroke", "#7060b8"), w2.setAttribute("stroke-width", "1"), w2.setAttribute("stroke-dasharray", "2 2"), w2.setAttribute("pointer-events", "none"), w2.style.opacity = "0", w2.style.transition = "opacity 150ms ease", te2.appendChild(w2), Zv = w2;
|
|
7185
|
+
let ie2 = X("circle");
|
|
7186
|
+
ie2.setAttribute("cx", "250"), ie2.setAttribute("cy", "250"), ie2.setAttribute("r", "244"), ie2.style.fill = "var(--bg, #faf9f5)", ie2.setAttribute("pointer-events", "none"), x2.appendChild(ie2);
|
|
7187
|
+
let T2 = cv(), E2 = p_(T2), ae2 = (e6, t3) => {
|
|
7188
|
+
e6.setAttribute("stroke", E2.ring.stroke), e6.setAttribute("stroke-opacity", String(E2.ring.opacity)), e6.setAttribute("stroke-width", t3);
|
|
7179
7189
|
};
|
|
7180
|
-
ae2(
|
|
7190
|
+
ae2(ie2, "0.5");
|
|
7181
7191
|
let oe2 = X("circle");
|
|
7182
|
-
oe2.setAttribute("cx", "250"), oe2.setAttribute("cy", "250"), oe2.setAttribute("r", String(
|
|
7192
|
+
oe2.setAttribute("cx", "250"), oe2.setAttribute("cy", "250"), oe2.setAttribute("r", String(J_)), oe2.style.fill = "var(--surface, #f2f1ea)", ae2(oe2, "0.6"), oe2.setAttribute("pointer-events", "none"), te2.appendChild(oe2);
|
|
7183
7193
|
let se2 = X("circle");
|
|
7184
|
-
se2.setAttribute("cx", "250"), se2.setAttribute("cy", "250"), se2.setAttribute("r", String(
|
|
7185
|
-
let ce2 = Array.from({ length: 12 }, (e6, t3) =>
|
|
7194
|
+
se2.setAttribute("cx", "250"), se2.setAttribute("cy", "250"), se2.setAttribute("r", String(Y_)), se2.style.fill = "var(--bg, #faf9f5)", ae2(se2, "0.6"), se2.setAttribute("pointer-events", "none"), te2.appendChild(se2);
|
|
7195
|
+
let ce2 = Array.from({ length: 12 }, (e6, t3) => f_(t3, T2));
|
|
7186
7196
|
for (let e6 = 0; e6 < 12; e6++) {
|
|
7187
|
-
let t3 = e6 * 30, n3 = (e6 + 1) * 30, r3 = Y(t3,
|
|
7188
|
-
s3.setAttribute("d", ["M ".concat(r3.x.toFixed(1), " ").concat(r3.y.toFixed(1)), "A ".concat(
|
|
7189
|
-
let { x: c3, y: l3 } = Y(t3,
|
|
7190
|
-
f3.setAttribute("x1", c3.toFixed(1)), f3.setAttribute("y1", l3.toFixed(1)), f3.setAttribute("x2", u3.toFixed(1)), f3.setAttribute("y2", d3.toFixed(1)), ae2(f3, "0.5"), f3.setAttribute("pointer-events", "none"),
|
|
7197
|
+
let t3 = e6 * 30, n3 = (e6 + 1) * 30, r3 = Y(t3, J_, y2), i3 = Y(n3, J_, y2), a3 = Y(t3, Y_, y2), o3 = Y(n3, Y_, y2), s3 = X("path");
|
|
7198
|
+
s3.setAttribute("d", ["M ".concat(r3.x.toFixed(1), " ").concat(r3.y.toFixed(1)), "A ".concat(J_, " ").concat(J_, " 0 0 0 ").concat(i3.x.toFixed(1), " ").concat(i3.y.toFixed(1)), "L ".concat(o3.x.toFixed(1), " ").concat(o3.y.toFixed(1)), "A ".concat(Y_, " ").concat(Y_, " 0 0 1 ").concat(a3.x.toFixed(1), " ").concat(a3.y.toFixed(1)), "Z"].join(" ")), s3.setAttribute("fill", ce2[e6]), s3.setAttribute("pointer-events", "none"), b2.appendChild(s3);
|
|
7199
|
+
let { x: c3, y: l3 } = Y(t3, Y_, y2), { x: u3, y: d3 } = Y(t3, J_, y2), f3 = X("line");
|
|
7200
|
+
f3.setAttribute("x1", c3.toFixed(1)), f3.setAttribute("y1", l3.toFixed(1)), f3.setAttribute("x2", u3.toFixed(1)), f3.setAttribute("y2", d3.toFixed(1)), ae2(f3, "0.5"), f3.setAttribute("pointer-events", "none"), te2.appendChild(f3);
|
|
7191
7201
|
let { x: p3, y: m3 } = Y(t3 + 15, 444 / 2, y2), h3 = X("text");
|
|
7192
|
-
h3.setAttribute("x", p3.toFixed(1)), h3.setAttribute("y", m3.toFixed(1)), h3.setAttribute("text-anchor", "middle"), h3.setAttribute("dominant-baseline", "central"), h3.setAttribute("font-size", "13"), h3.setAttribute("fill",
|
|
7202
|
+
h3.setAttribute("x", p3.toFixed(1)), h3.setAttribute("y", m3.toFixed(1)), h3.setAttribute("text-anchor", "middle"), h3.setAttribute("dominant-baseline", "central"), h3.setAttribute("font-size", "13"), h3.setAttribute("fill", d_(e6, T2)), h3.setAttribute("pointer-events", "none"), h3.style.fontFamily = s_, h3.textContent = iv[e6], te2.appendChild(h3);
|
|
7193
7203
|
for (let e7 = 1; e7 < 30; e7++) {
|
|
7194
|
-
let n4 = t3 + e7, r4 = e7 % 5 == 0, i4 = r4 ?
|
|
7204
|
+
let n4 = t3 + e7, r4 = e7 % 5 == 0, i4 = r4 ? J_ - 7 : J_ - 3, { x: a4, y: o4 } = Y(n4, J_, y2), { x: s4, y: c4 } = Y(n4, i4, y2), l4 = X("line");
|
|
7195
7205
|
l4.setAttribute("x1", a4.toFixed(1)), l4.setAttribute("y1", o4.toFixed(1)), l4.setAttribute("x2", s4.toFixed(1)), l4.setAttribute("y2", c4.toFixed(1));
|
|
7196
|
-
let u4 = r4 ?
|
|
7197
|
-
l4.setAttribute("stroke", u4.stroke), l4.setAttribute("stroke-opacity", String(u4.opacity)), l4.setAttribute("stroke-width", r4 ? "0.8" : "0.5"), l4.setAttribute("pointer-events", "none"),
|
|
7206
|
+
let u4 = r4 ? E2.tickMajor : E2.tickMinor;
|
|
7207
|
+
l4.setAttribute("stroke", u4.stroke), l4.setAttribute("stroke-opacity", String(u4.opacity)), l4.setAttribute("stroke-width", r4 ? "0.8" : "0.5"), l4.setAttribute("pointer-events", "none"), te2.appendChild(l4);
|
|
7198
7208
|
}
|
|
7199
7209
|
}
|
|
7200
7210
|
let le2 = { Aries: "Mars", Taurus: "Venus", Gemini: "Mercury", Cancer: "Moon", Leo: "Sun", Virgo: "Mercury", Libra: "Venus", Scorpio: "Mars", Sagittarius: "Jupiter", Capricorn: "Saturn", Aquarius: "Saturn", Pisces: "Jupiter" };
|
|
7201
7211
|
for (let e6 = 0; e6 < 12; e6++) {
|
|
7202
7212
|
var ue2, de2;
|
|
7203
|
-
let t3 = e6 * 30, n3 = (e6 + 1) * 30, r3 = Y(t3,
|
|
7204
|
-
s3.setAttribute("d", ["M ".concat(r3.x.toFixed(1), " ").concat(r3.y.toFixed(1)), "A ".concat(
|
|
7205
|
-
let c3 = Z(
|
|
7206
|
-
s3.addEventListener("mouseenter", (t4) =>
|
|
7207
|
-
|
|
7208
|
-
}),
|
|
7213
|
+
let t3 = e6 * 30, n3 = (e6 + 1) * 30, r3 = Y(t3, J_, y2), i3 = Y(n3, J_, y2), a3 = Y(t3, Y_, y2), o3 = Y(n3, Y_, y2), s3 = X("path");
|
|
7214
|
+
s3.setAttribute("d", ["M ".concat(r3.x.toFixed(1), " ").concat(r3.y.toFixed(1)), "A ".concat(J_, " ").concat(J_, " 0 0 0 ").concat(i3.x.toFixed(1), " ").concat(i3.y.toFixed(1)), "L ".concat(o3.x.toFixed(1), " ").concat(o3.y.toFixed(1)), "A ".concat(Y_, " ").concat(Y_, " 0 0 1 ").concat(a3.x.toFixed(1), " ").concat(a3.y.toFixed(1)), "Z"].join(" ")), s3.setAttribute("fill", "transparent"), s3.setAttribute("class", "hit-region sign-hit"), s3.style.pointerEvents = "all", fy(s3, "".concat(av[e6], " \u2014 click for sign info"));
|
|
7215
|
+
let c3 = Z(Av[e6]), l3 = Z(jv[e6]), u3 = (ue2 = le2[av[e6]]) == null ? "" : ue2, d3 = (de2 = wv[av[e6]]) == null ? "" : de2, f3 = "".concat(d3 ? d3 + " \xB7 " : "").concat(c3, " \xB7 ").concat(l3).concat(u3 ? " \xB7 Ruled by ".concat(u3) : "");
|
|
7216
|
+
s3.addEventListener("mouseenter", (t4) => bv(t4.clientX, t4.clientY, "".concat(iv[e6], " ").concat(av[e6]), f3, "Click for sign detail")), s3.addEventListener("mousemove", (t4) => bv(t4.clientX, t4.clientY, "".concat(iv[e6], " ").concat(av[e6]), f3, "Click for sign detail")), s3.addEventListener("mouseleave", xv), s3.addEventListener("click", (t4) => {
|
|
7217
|
+
xv(), zv == null || zv("".concat(iv[e6], " ").concat(av[e6])), qv(t4, e6, _2);
|
|
7218
|
+
}), re2.appendChild(s3);
|
|
7209
7219
|
}
|
|
7210
7220
|
let fe2 = X("circle");
|
|
7211
|
-
fe2.setAttribute("cx", "250"), fe2.setAttribute("cy", "250"), fe2.setAttribute("r", String(
|
|
7221
|
+
fe2.setAttribute("cx", "250"), fe2.setAttribute("cy", "250"), fe2.setAttribute("r", String(Y_)), fe2.style.fill = "var(--surface, #f2f1ea)", fe2.setAttribute("pointer-events", "none"), S2.appendChild(fe2);
|
|
7212
7222
|
let pe2 = X("circle");
|
|
7213
|
-
if (pe2.setAttribute("cx", "250"), pe2.setAttribute("cy", "250"), pe2.setAttribute("r", String(
|
|
7223
|
+
if (pe2.setAttribute("cx", "250"), pe2.setAttribute("cy", "250"), pe2.setAttribute("r", String(Q_)), pe2.style.fill = E2.center, ae2(pe2, "0.6"), pe2.setAttribute("pointer-events", "none"), S2.appendChild(pe2), v2.length > 0) for (let e6 = 0; e6 < v2.length; e6++) {
|
|
7214
7224
|
let t3 = v2[e6], n3 = v2[(e6 + 1) % v2.length], r3 = [1, 4, 7, 10].includes(t3.number), i3 = X("path");
|
|
7215
|
-
i3.setAttribute("d",
|
|
7216
|
-
let { x: a3, y: o3 } = Y(t3.cusp_lon,
|
|
7225
|
+
i3.setAttribute("d", nv(t3.cusp_lon, n3.cusp_lon, Q_, Y_, y2)), i3.setAttribute("fill", d_(Math.floor((t3.cusp_lon % 360 + 360) % 360 / 30), T2)), i3.setAttribute("fill-opacity", String(u_(T2).houseFillOpacity)), i3.setAttribute("pointer-events", "none"), S2.appendChild(i3);
|
|
7226
|
+
let { x: a3, y: o3 } = Y(t3.cusp_lon, Q_, y2), { x: s3, y: c3 } = Y(t3.cusp_lon, Y_, y2), l3 = X("line");
|
|
7217
7227
|
l3.setAttribute("x1", a3.toFixed(1)), l3.setAttribute("y1", o3.toFixed(1)), l3.setAttribute("x2", s3.toFixed(1)), l3.setAttribute("y2", c3.toFixed(1));
|
|
7218
|
-
let u3 = r3 ?
|
|
7219
|
-
l3.setAttribute("stroke", u3.stroke), l3.setAttribute("stroke-opacity", String(u3.opacity)), l3.setAttribute("stroke-width", r3 ? "1.6" : "0.8"), r3 || l3.setAttribute("stroke-dasharray",
|
|
7220
|
-
let d3 = (n3.cusp_lon - t3.cusp_lon + 360) % 360, { x: f3, y: p3 } = Y(t3.cusp_lon + d3 / 2,
|
|
7221
|
-
m3.setAttribute("x", f3.toFixed(1)), m3.setAttribute("y", p3.toFixed(1)), m3.setAttribute("text-anchor", "middle"), m3.setAttribute("dominant-baseline", "central"), m3.setAttribute("font-size", "12"), m3.setAttribute("font-weight", r3 ? "700" : "600"), m3.setAttribute("fill",
|
|
7228
|
+
let u3 = r3 ? E2.cuspAngular : E2.cuspIntermediate;
|
|
7229
|
+
l3.setAttribute("stroke", u3.stroke), l3.setAttribute("stroke-opacity", String(u3.opacity)), l3.setAttribute("stroke-width", r3 ? "1.6" : "0.8"), r3 || l3.setAttribute("stroke-dasharray", E2.cuspDash(0.8)), l3.setAttribute("pointer-events", "none"), S2.appendChild(l3);
|
|
7230
|
+
let d3 = (n3.cusp_lon - t3.cusp_lon + 360) % 360, { x: f3, y: p3 } = Y(t3.cusp_lon + d3 / 2, Z_, y2), m3 = X("text");
|
|
7231
|
+
m3.setAttribute("x", f3.toFixed(1)), m3.setAttribute("y", p3.toFixed(1)), m3.setAttribute("text-anchor", "middle"), m3.setAttribute("dominant-baseline", "central"), m3.setAttribute("font-size", "12"), m3.setAttribute("font-weight", r3 ? "700" : "600"), m3.setAttribute("fill", u_(T2).foreground), m3.setAttribute("opacity", "0.9"), m3.setAttribute("pointer-events", "none"), m3.textContent = String(t3.number), S2.appendChild(m3);
|
|
7222
7232
|
}
|
|
7223
7233
|
let me2 = v2.find((e6) => e6.number === 1), he2 = v2.find((e6) => e6.number === 4), ge2 = v2.find((e6) => e6.number === 7), _e2 = v2.find((e6) => e6.number === 10), ve2 = [{ lon: (f2 = me2 == null ? void 0 : me2.cusp_lon) == null ? y2 : f2, label: "ASC" }, { lon: (p2 = ge2 == null ? void 0 : ge2.cusp_lon) == null ? (y2 + 180) % 360 : p2, label: "DSC" }, { lon: (m2 = _e2 == null ? void 0 : _e2.cusp_lon) == null ? (y2 + 270) % 360 : m2, label: "MC" }, { lon: (h2 = he2 == null ? void 0 : he2.cusp_lon) == null ? (y2 + 90) % 360 : h2, label: "IC" }];
|
|
7224
7234
|
for (let e6 of ve2) {
|
|
7225
7235
|
var ye2, be2;
|
|
7226
|
-
let t3 =
|
|
7236
|
+
let t3 = Jv[e6.label], { x: n3, y: r3 } = Y(e6.lon, 256, y2);
|
|
7227
7237
|
n3 = Math.min(Math.max(n3, 14), 486), r3 = Math.min(Math.max(r3, 10), 490);
|
|
7228
7238
|
let i3 = X("text");
|
|
7229
|
-
i3.setAttribute("x", n3.toFixed(1)), i3.setAttribute("y", r3.toFixed(1)), i3.setAttribute("text-anchor", "middle"), i3.setAttribute("dominant-baseline", "central"), i3.setAttribute("font-size", "11"), i3.setAttribute("font-weight", "700"), i3.setAttribute("fill",
|
|
7239
|
+
i3.setAttribute("x", n3.toFixed(1)), i3.setAttribute("y", r3.toFixed(1)), i3.setAttribute("text-anchor", "middle"), i3.setAttribute("dominant-baseline", "central"), i3.setAttribute("font-size", "11"), i3.setAttribute("font-weight", "700"), i3.setAttribute("fill", u_(T2).foreground), i3.setAttribute("pointer-events", "none"), i3.setAttribute("class", "angle-label angle-".concat(e6.label.toLowerCase())), i3.style.transition = "opacity 150ms ease", i3.textContent = e6.label, S2.appendChild(i3);
|
|
7230
7240
|
let a3 = X("circle");
|
|
7231
|
-
a3.setAttribute("cx", n3.toFixed(1)), a3.setAttribute("cy", r3.toFixed(1)), a3.setAttribute("r", "14"), a3.setAttribute("fill", "transparent"), a3.setAttribute("class", "hit-region angle-hit"), a3.style.pointerEvents = "all", a3.style.cursor = "pointer",
|
|
7232
|
-
let o3 = (be2 = t3 == null ? void 0 : t3.keyword) == null ? "" : be2, s3 =
|
|
7241
|
+
a3.setAttribute("cx", n3.toFixed(1)), a3.setAttribute("cy", r3.toFixed(1)), a3.setAttribute("r", "14"), a3.setAttribute("fill", "transparent"), a3.setAttribute("class", "hit-region angle-hit"), a3.style.pointerEvents = "all", a3.style.cursor = "pointer", fy(a3, "".concat((ye2 = t3 == null ? void 0 : t3.title) == null ? e6.label : ye2, " \u2014 click for interpretation"));
|
|
7242
|
+
let o3 = (be2 = t3 == null ? void 0 : t3.keyword) == null ? "" : be2, s3 = mv(e6.lon), c3 = "".concat(o3 ? o3 + " \xB7 " : "").concat(s3);
|
|
7233
7243
|
a3.addEventListener("mouseenter", (n4) => {
|
|
7234
7244
|
var r4;
|
|
7235
|
-
|
|
7245
|
+
bv(n4.clientX, n4.clientY, "".concat(e6.label, " \u2014 ").concat((r4 = t3 == null ? void 0 : t3.title) == null ? "" : r4), c3, "Click for interpretation"), $v(e6.lon), i3.style.opacity = "0.6";
|
|
7236
7246
|
}), a3.addEventListener("mouseleave", () => {
|
|
7237
|
-
|
|
7247
|
+
xv(), ey(), i3.style.opacity = "";
|
|
7238
7248
|
}), a3.addEventListener("click", (n4) => {
|
|
7239
7249
|
var r4;
|
|
7240
|
-
|
|
7241
|
-
}),
|
|
7250
|
+
xv(), $v(e6.lon, true), ry(), zv == null || zv("".concat(e6.label, " \u2014 ").concat((r4 = t3 == null ? void 0 : t3.title) == null ? "" : r4, " \xB7 ").concat(s3)), Yv(n4, e6.label, e6.lon);
|
|
7251
|
+
}), re2.appendChild(a3);
|
|
7242
7252
|
}
|
|
7243
7253
|
{
|
|
7244
7254
|
let e6 = X("g");
|
|
7245
7255
|
e6.setAttribute("pointer-events", "none");
|
|
7246
|
-
let t3 =
|
|
7247
|
-
e6.setAttribute("transform", "translate(".concat(t3, ",").concat(n3, ") scale(").concat(0.5813953488372093.toFixed(4), ") translate(-69,-110)")), e6.setAttribute("opacity",
|
|
7256
|
+
let t3 = K_ - 50, n3 = q_ - 50;
|
|
7257
|
+
e6.setAttribute("transform", "translate(".concat(t3, ",").concat(n3, ") scale(").concat(0.5813953488372093.toFixed(4), ") translate(-69,-110)")), e6.setAttribute("opacity", T2 ? "0.08" : "0.05");
|
|
7248
7258
|
let r3 = X("path");
|
|
7249
|
-
r3.setAttribute("fill",
|
|
7259
|
+
r3.setAttribute("fill", u_(T2).foreground), r3.setAttribute("d", "M225.711945,199.983551 C225.292816,213.680542 221.995255,226.061340 214.416275,237.110443 C193.610641,267.442230 154.827423,271.316071 127.459396,255.072189 C123.775551,252.885712 120.882744,252.441498 116.873688,254.137070 C109.048920,257.446503 100.934502,259.899628 92.190125,259.379364 C83.542915,258.864868 78.616745,253.946121 78.684906,245.377151 C78.745262,237.789108 81.850891,231.152817 85.454010,224.735641 C88.304489,219.658905 91.245934,214.612274 95.084061,210.184647 C97.704369,207.161865 98.745560,203.844788 98.740883,199.721481 C98.699577,163.227264 125.082115,136.164413 161.509293,135.193466 C165.322968,135.092 169.315643,134.951 172.935333,135.916 C178.310226,137.349 182.595856,135.650 187.146591,133.280 C195.742508,128.804 204.726822,125.462 214.488632,124.281 C227.834183,122.666 234.932129,130.259 231.851456,143.429 C230.052628,151.119 226.752274,158.212 222.361359,164.760 C220.327988,167.792 220.017624,170.616 221.473969,174.100 C224.861847,182.205 225.468460,190.867 225.711945,199.983551 M212.976044,168.510834 C218.716415,160.882339 223.731537,152.880203 226.146439,143.492218 C228.308197,135.088409 225.333649,129.095078 217.846207,128.560104 C206.177933,127.726410 196.082672,132.729645 185.171341,138.349640 C187.816025,139.540573 189.463272,140.263855 191.095154,141.020279 C200.031250,145.162369 207.546783,151.055435 213.272079,159.124069 C214.113724,160.310181 215.663269,161.586777 214.829697,163.091461 C211.652573,168.826584 208.025726,174.252899 202.566681,179.006516 C201.549835,176.444733 200.923126,174.750778 200.212067,173.093002 C195.433319,161.951874 188.776291,152.487198 177.473648,146.963547 C174.609192,145.563675 172.292969,145.608887 169.595505,147.317566 C152.514618,158.137161 136.926010,170.829269 122.270142,184.706512 C120.686935,186.205612 119.364059,187.876480 119.190598,190.236053 C118.688568,197.065308 118.869385,203.864960 119.793037,210.651215 C121.255951,221.399521 126.239235,230.774902 131.349335,240.326111 C132.993088,240.252151 134.400635,239.345810 135.765091,238.453430 C144.400665,232.805634 153.133560,227.309341 161.286926,220.942139 C164.075363,218.764557 165.766891,216.649643 165.788437,212.774612 C165.823334,206.491791 170.826294,202.743942 176.973877,204.085724 C179.390350,204.613144 181.027267,204.346497 182.788132,202.634048 C193.536697,192.180939 204.343719,181.790634 212.976044,168.510834 M196.311264,238.774429 C205.223999,223.519989 207.059082,207.185013 204.308746,188.929276 C197.720764,194.995590 193.078613,201.379272 186.899475,206.146912 C184.795013,207.770645 183.863800,209.506882 184.135178,212.471619 C184.705627,218.704117 179.426636,223.881546 173.582184,222.584213 C169.742706,221.731949 167.311813,222.850525 164.693726,225.165817 C162.585052,227.030579 160.129227,228.496109 157.916992,230.251648 C151.305984,235.497787 144.002090,239.748337 136.880554,244.346085 C150.810440,260.746155 181.289062,262.140137 196.311264,238.774429 M101.954178,222.323334 C101.003220,218.898468 100.052269,215.473602 98.901512,211.329163 C91.673454,221.459351 85.061653,230.979462 83.800476,243.065674 C83.190475,248.911530 86.140854,252.991577 91.843674,253.598953 C100.879066,254.561295 109.050667,251.508087 117.776840,247.739761 C110.183830,240.480621 105.126755,232.419739 101.954178,222.323334 M129.303619,173.800827 C141.200867,163.092194 153.936737,153.435806 167.699600,144.113556 C142.265121,138.861908 122.832809,158.201233 120.741943,181.434265 C123.701614,178.779602 126.227280,176.514221 129.303619,173.800827 z"), e6.appendChild(r3), x2.appendChild(e6);
|
|
7250
7260
|
}
|
|
7251
7261
|
for (let e6 of ee2) {
|
|
7252
7262
|
var xe2, D2, Se2, O2, Ce2, we2, Te2, Ee2, De2, Oe2, ke2, Ae2, je2, Me2, Ne2, Pe2, Fe2, Ie2, Le2;
|
|
7253
7263
|
let t3 = _2.find((t4) => t4.name.toLowerCase() === e6.planet1.toLowerCase()), n3 = _2.find((t4) => t4.name.toLowerCase() === e6.planet2.toLowerCase());
|
|
7254
7264
|
if (!t3 || !n3) continue;
|
|
7255
|
-
let r3 = (xe2 =
|
|
7256
|
-
d3.setAttribute("x1", a3.toFixed(1)), d3.setAttribute("y1", o3.toFixed(1)), d3.setAttribute("x2", s3.toFixed(1)), d3.setAttribute("y2", c3.toFixed(1)), d3.setAttribute("pointer-events", "none"), d3.style.stroke = r3, d3.style.strokeOpacity = String(u3), d3.style.strokeWidth = l3 < 2 ? "1.6" : "1.1",
|
|
7257
|
-
let f3 = (O2 =
|
|
7265
|
+
let r3 = (xe2 = sv((D2 = e6.type) == null ? "" : D2)) == null ? "#aaa" : xe2, { x: a3, y: o3 } = Y(t3.longitude, $_, y2), { x: s3, y: c3 } = Y(n3.longitude, $_, y2), l3 = Math.min((Se2 = e6.orb) == null ? 10 : Se2, 10), u3 = 0.95 - l3 / 10 * 0.55, d3 = X("line");
|
|
7266
|
+
d3.setAttribute("x1", a3.toFixed(1)), d3.setAttribute("y1", o3.toFixed(1)), d3.setAttribute("x2", s3.toFixed(1)), d3.setAttribute("y2", c3.toFixed(1)), d3.setAttribute("pointer-events", "none"), d3.style.stroke = r3, d3.style.strokeOpacity = String(u3), d3.style.strokeWidth = l3 < 2 ? "1.6" : "1.1", C2.appendChild(d3);
|
|
7267
|
+
let f3 = (O2 = ov[(Ce2 = (we2 = e6.type) == null ? void 0 : we2.toLowerCase()) == null ? "" : Ce2]) == null ? "" : O2, p3 = a3 + (s3 - a3) * 0.35, m3 = o3 + (c3 - o3) * 0.35, h3 = [];
|
|
7258
7268
|
if (f3 && Math.hypot(s3 - a3, c3 - o3) > 36) {
|
|
7259
7269
|
let e7 = X("circle");
|
|
7260
|
-
e7.setAttribute("cx", p3.toFixed(1)), e7.setAttribute("cy", m3.toFixed(1)), e7.setAttribute("r", "9"), e7.setAttribute("fill",
|
|
7270
|
+
e7.setAttribute("cx", p3.toFixed(1)), e7.setAttribute("cy", m3.toFixed(1)), e7.setAttribute("r", "9"), e7.setAttribute("fill", E2.center), e7.setAttribute("stroke", r3), e7.setAttribute("stroke-opacity", "0.9"), e7.setAttribute("stroke-width", "1"), e7.setAttribute("pointer-events", "none"), C2.appendChild(e7), h3.push(e7);
|
|
7261
7271
|
let t4 = X("text");
|
|
7262
|
-
t4.setAttribute("x", p3.toFixed(1)), t4.setAttribute("y", m3.toFixed(1)), t4.setAttribute("text-anchor", "middle"), t4.setAttribute("dominant-baseline", "central"), t4.setAttribute("font-size", "11"), t4.setAttribute("font-weight", "700"), t4.setAttribute("fill", r3), t4.setAttribute("fill-opacity", "1"), t4.setAttribute("pointer-events", "none"), t4.textContent = f3,
|
|
7272
|
+
t4.setAttribute("x", p3.toFixed(1)), t4.setAttribute("y", m3.toFixed(1)), t4.setAttribute("text-anchor", "middle"), t4.setAttribute("dominant-baseline", "central"), t4.setAttribute("font-size", "11"), t4.setAttribute("font-weight", "700"), t4.setAttribute("fill", r3), t4.setAttribute("fill-opacity", "1"), t4.setAttribute("pointer-events", "none"), t4.textContent = f3, C2.appendChild(t4), h3.push(t4);
|
|
7263
7273
|
}
|
|
7264
7274
|
let g3 = X("line");
|
|
7265
|
-
g3.setAttribute("x1", a3.toFixed(1)), g3.setAttribute("y1", o3.toFixed(1)), g3.setAttribute("x2", s3.toFixed(1)), g3.setAttribute("y2", c3.toFixed(1)), g3.setAttribute("stroke", "transparent"), g3.setAttribute("stroke-width", "13"), g3.setAttribute("fill", "none"), g3.setAttribute("class", "hit-region aspect-hit"), g3.style.pointerEvents = "all",
|
|
7266
|
-
let v3 = (Ee2 =
|
|
7275
|
+
g3.setAttribute("x1", a3.toFixed(1)), g3.setAttribute("y1", o3.toFixed(1)), g3.setAttribute("x2", s3.toFixed(1)), g3.setAttribute("y2", c3.toFixed(1)), g3.setAttribute("stroke", "transparent"), g3.setAttribute("stroke-width", "13"), g3.setAttribute("fill", "none"), g3.setAttribute("class", "hit-region aspect-hit"), g3.style.pointerEvents = "all", fy(g3, "Aspect: ".concat((Te2 = e6.type) == null ? "Aspect" : Te2, " between ").concat(t3.name, " and ").concat(n3.name));
|
|
7276
|
+
let v3 = (Ee2 = rv[t3.name.toLowerCase()]) == null ? t3.name : Ee2, ee3 = (De2 = rv[n3.name.toLowerCase()]) == null ? n3.name : De2, b3 = (Oe2 = (ke2 = ov[(Ae2 = (je2 = e6.type) == null ? void 0 : je2.toLowerCase()) == null ? "" : Ae2]) == null ? e6.type : ke2) == null ? "" : Oe2, x3 = (Me2 = Tv[(Ne2 = (Pe2 = e6.type) == null ? void 0 : Pe2.toLowerCase()) == null ? "" : Ne2]) == null ? "" : Me2, te3 = "".concat(x3 ? x3 + " \xB7 " : "").concat(v3, " ").concat(b3, " ").concat(ee3, " \xB7 ").concat((Fe2 = (Ie2 = e6.orb) == null ? void 0 : Ie2.toFixed(1)) == null ? "?" : Fe2, "\xB0 orb").concat(e6.applying === true ? " (applying)" : e6.applying === false ? " (separating)" : "");
|
|
7267
7277
|
g3.addEventListener("mouseenter", (t4) => {
|
|
7268
7278
|
var n4;
|
|
7269
|
-
return
|
|
7279
|
+
return bv(t4.clientX, t4.clientY, Z((n4 = e6.type) == null ? "Aspect" : n4), te3, "Click for interpretation");
|
|
7270
7280
|
}), g3.addEventListener("mousemove", (t4) => {
|
|
7271
7281
|
var n4;
|
|
7272
|
-
return
|
|
7273
|
-
}), g3.addEventListener("mouseleave",
|
|
7282
|
+
return bv(t4.clientX, t4.clientY, Z((n4 = e6.type) == null ? "Aspect" : n4), te3, "Click for interpretation");
|
|
7283
|
+
}), g3.addEventListener("mouseleave", xv), g3.addEventListener("click", (t4) => {
|
|
7274
7284
|
var n4, r4, a4, o4, s4, c4;
|
|
7275
|
-
|
|
7276
|
-
let l4 = "".concat((n4 =
|
|
7277
|
-
|
|
7285
|
+
xv();
|
|
7286
|
+
let l4 = "".concat((n4 = ov[(r4 = (a4 = e6.type) == null ? void 0 : a4.toLowerCase()) == null ? "" : r4]) == null ? "" : n4, " ").concat(Z((o4 = e6.type) == null ? "Aspect" : o4), ": ").concat((s4 = rv[e6.planet1.toLowerCase()]) == null ? e6.planet1 : s4, " ").concat((c4 = rv[e6.planet2.toLowerCase()]) == null ? e6.planet2 : c4);
|
|
7287
|
+
zv == null || zv(l4), Wv(t4, e6, _2), i2(e6);
|
|
7278
7288
|
});
|
|
7279
|
-
let
|
|
7280
|
-
|
|
7289
|
+
let S3 = [e6.planet1.toLowerCase(), e6.planet2.toLowerCase()].sort().join("|"), ne3 = ((Le2 = e6.type) == null ? "unknown" : Le2).toLowerCase();
|
|
7290
|
+
Vv.set(S3, { vis: d3, color: r3, baseOpacity: String(u3), baseWidth: l3 < 2 ? "1.6" : "1.1", aspectType: ne3, orb: l3, symbolEls: h3 }), re2.appendChild(g3);
|
|
7281
7291
|
}
|
|
7282
|
-
let Re2 = _2.filter((e6) => !
|
|
7292
|
+
let Re2 = _2.filter((e6) => !fv.has(e6.name.toLowerCase())), k2 = _2.filter((e6) => fv.has(e6.name.toLowerCase())), ze2 = y_(Re2.map((e6) => ({ name: e6.name.toLowerCase(), longitude: e6.longitude })), 8), Be2 = y_(k2.map((e6) => ({ name: e6.name.toLowerCase(), longitude: e6.longitude })), 6), Ve2 = new Map([...ze2.entries(), ...Be2.entries()]);
|
|
7283
7293
|
for (let e6 of _2) {
|
|
7284
7294
|
var He2, Ue2, We2, Ge2;
|
|
7285
|
-
let t3 = (He2 =
|
|
7286
|
-
|
|
7287
|
-
let r3 = e6.name.toLowerCase(), i3 =
|
|
7288
|
-
h3.setAttribute("class", "planet-glyph-group".concat(i3 ? " extended-body" : "")), h3.dataset.planet = r3, h3.style.transition = "opacity 200ms ease", h3.style.opacity = d3,
|
|
7289
|
-
let { x: g3, y: _3 } = Y(e6.longitude,
|
|
7290
|
-
if (v3.setAttribute("cx", g3.toFixed(1)), v3.setAttribute("cy", _3.toFixed(1)), v3.setAttribute("r", i3 ? "1.8" : "2.5"), v3.setAttribute("fill",
|
|
7295
|
+
let t3 = (He2 = rv[e6.name.toLowerCase()]) == null ? "\u2605" : He2;
|
|
7296
|
+
uv(e6.name);
|
|
7297
|
+
let r3 = e6.name.toLowerCase(), i3 = fv.has(r3), a3 = i3 ? X_ - 14 : X_, o3 = i3 ? X_ - 28 : X_ - 17, s3 = i3 ? X_ : 204, c3 = i3 ? "14" : "21", l3 = i3 ? "500" : "600", u3 = i3 ? ev - 2 : ev, d3 = i3 ? "0.65" : "1", f3 = (Ue2 = Ve2.get(r3)) == null ? e6.longitude : Ue2, { x: p3, y: m3 } = Y(f3, a3, y2), h3 = X("g");
|
|
7298
|
+
h3.setAttribute("class", "planet-glyph-group".concat(i3 ? " extended-body" : "")), h3.dataset.planet = r3, h3.style.transition = "opacity 200ms ease", h3.style.opacity = d3, ne2.appendChild(h3);
|
|
7299
|
+
let { x: g3, y: _3 } = Y(e6.longitude, Y_ - 5, y2), v3 = X("circle");
|
|
7300
|
+
if (v3.setAttribute("cx", g3.toFixed(1)), v3.setAttribute("cy", _3.toFixed(1)), v3.setAttribute("r", i3 ? "1.8" : "2.5"), v3.setAttribute("fill", u_(T2).house), v3.setAttribute("opacity", "0.65"), v3.setAttribute("pointer-events", "none"), h3.appendChild(v3), C_(e6.longitude, f3) > 2) {
|
|
7291
7301
|
let e7 = X("line");
|
|
7292
|
-
e7.setAttribute("x1", g3.toFixed(1)), e7.setAttribute("y1", _3.toFixed(1)), e7.setAttribute("x2", p3.toFixed(1)), e7.setAttribute("y2", m3.toFixed(1)), e7.setAttribute("stroke",
|
|
7302
|
+
e7.setAttribute("x1", g3.toFixed(1)), e7.setAttribute("y1", _3.toFixed(1)), e7.setAttribute("x2", p3.toFixed(1)), e7.setAttribute("y2", m3.toFixed(1)), e7.setAttribute("stroke", u_(T2).house), e7.setAttribute("stroke-width", "0.7"), e7.setAttribute("stroke-opacity", "0.35"), e7.setAttribute("stroke-linecap", "round"), e7.setAttribute("pointer-events", "none"), h3.appendChild(e7);
|
|
7293
7303
|
}
|
|
7294
7304
|
let b3 = X("text");
|
|
7295
|
-
b3.setAttribute("x", p3.toFixed(1)), b3.setAttribute("y", m3.toFixed(1)), b3.setAttribute("text-anchor", "middle"), b3.setAttribute("dominant-baseline", "central"), b3.setAttribute("font-size", c3), b3.setAttribute("font-weight", l3), b3.setAttribute("pointer-events", "none"), b3.style.fill =
|
|
7296
|
-
let x3 = Math.floor((e6.longitude % 360 + 360) % 360 % 30), { x:
|
|
7297
|
-
if (
|
|
7305
|
+
b3.setAttribute("x", p3.toFixed(1)), b3.setAttribute("y", m3.toFixed(1)), b3.setAttribute("text-anchor", "middle"), b3.setAttribute("dominant-baseline", "central"), b3.setAttribute("font-size", c3), b3.setAttribute("font-weight", l3), b3.setAttribute("pointer-events", "none"), b3.style.fill = u_(T2).foreground, b3.style.fontFamily = s_, b3.textContent = t3, h3.appendChild(b3);
|
|
7306
|
+
let x3 = Math.floor((e6.longitude % 360 + 360) % 360 % 30), { x: te3, y: S3 } = Y(f3, o3, y2), C3 = X("text");
|
|
7307
|
+
if (C3.setAttribute("x", te3.toFixed(1)), C3.setAttribute("y", S3.toFixed(1)), C3.setAttribute("text-anchor", "middle"), C3.setAttribute("dominant-baseline", "central"), C3.setAttribute("font-size", i3 ? "7" : "8.5"), C3.setAttribute("font-weight", "500"), C3.setAttribute("fill", u_(T2).foreground), C3.setAttribute("opacity", "0.8"), C3.setAttribute("pointer-events", "none"), C3.textContent = "".concat(x3, "\xB0"), h3.appendChild(C3), e6.retrograde) {
|
|
7298
7308
|
let { x: e7, y: t4 } = Y(f3, s3, y2), n3 = X("text");
|
|
7299
7309
|
n3.setAttribute("x", e7.toFixed(1)), n3.setAttribute("y", t4.toFixed(1)), n3.setAttribute("text-anchor", "middle"), n3.setAttribute("dominant-baseline", "central"), n3.setAttribute("font-size", i3 ? "6" : "8"), n3.setAttribute("fill", "#e05252"), n3.setAttribute("pointer-events", "none"), n3.textContent = "\u211E", h3.appendChild(n3);
|
|
7300
7310
|
}
|
|
7301
|
-
let
|
|
7302
|
-
|
|
7303
|
-
let
|
|
7304
|
-
|
|
7305
|
-
|
|
7306
|
-
}),
|
|
7307
|
-
|
|
7308
|
-
}),
|
|
7311
|
+
let w3 = X("circle");
|
|
7312
|
+
w3.setAttribute("cx", p3.toFixed(1)), w3.setAttribute("cy", m3.toFixed(1)), w3.setAttribute("r", String(u3)), w3.setAttribute("fill", "transparent"), w3.setAttribute("class", "hit-region planet-hit"), w3.dataset.planet = r3, w3.style.pointerEvents = "all", fy(w3, "".concat(i3 ? "Extended body" : "Planet", ": ").concat(e6.name));
|
|
7313
|
+
let ie3 = (We2 = Sv[e6.name.toLowerCase()]) == null ? "" : We2, E3 = e6.house ? (Ge2 = Cv[e6.house]) == null ? "" : Ge2 : "", ae3 = "".concat(ie3 ? ie3 + " \xB7 " : "").concat(mv(e6.longitude)).concat(e6.house ? " \xB7 H".concat(e6.house).concat(E3 ? " (" + E3 + ")" : "") : "").concat(e6.retrograde ? " \u211E" : "");
|
|
7314
|
+
w3.addEventListener("mouseenter", (n3) => {
|
|
7315
|
+
bv(n3.clientX, n3.clientY, "".concat(t3, " ").concat(Z(e6.name)), ae3, "Click for aspects"), $v(e6.longitude);
|
|
7316
|
+
}), w3.addEventListener("mousemove", (n3) => bv(n3.clientX, n3.clientY, "".concat(t3, " ").concat(Z(e6.name)), ae3, "Click for aspects")), w3.addEventListener("mouseleave", () => {
|
|
7317
|
+
xv(), Iv !== e6.name.toLowerCase() && ey();
|
|
7318
|
+
}), w3.addEventListener("click", (t4) => {
|
|
7309
7319
|
var r4;
|
|
7310
|
-
if (
|
|
7311
|
-
|
|
7320
|
+
if (xv(), Iv === e6.name.toLowerCase()) {
|
|
7321
|
+
iy(), Xv(), ey(), zv == null || zv(null);
|
|
7312
7322
|
return;
|
|
7313
7323
|
}
|
|
7314
|
-
|
|
7315
|
-
let i4 = (r4 =
|
|
7316
|
-
|
|
7317
|
-
}),
|
|
7324
|
+
Iv = e6.name.toLowerCase();
|
|
7325
|
+
let i4 = (r4 = rv[e6.name.toLowerCase()]) == null ? "" : r4;
|
|
7326
|
+
zv == null || zv("".concat(i4, " ").concat(Z(e6.name), " in ").concat(mv(e6.longitude))), $v(e6.longitude, true), ty(e6.name), Uv(t4, e6, ee2), n2(e6);
|
|
7327
|
+
}), re2.appendChild(w3);
|
|
7318
7328
|
}
|
|
7319
7329
|
for (let e6 = 0; e6 < v2.length; e6++) {
|
|
7320
7330
|
var Ke2, qe2, Je2;
|
|
7321
|
-
let t3 = v2[e6], n3 = v2[(e6 + 1) % v2.length], i3 = Math.floor((t3.cusp_lon % 360 + 360) % 360 / 30), a3 = (Ke2 = (qe2 = t3.sign) == null ?
|
|
7322
|
-
f3.setAttribute("x1", c3.toFixed(1)), f3.setAttribute("y1", l3.toFixed(1)), f3.setAttribute("x2", u3.toFixed(1)), f3.setAttribute("y2", d3.toFixed(1)), f3.setAttribute("stroke", "transparent"), f3.setAttribute("stroke-width", String(
|
|
7323
|
-
|
|
7324
|
-
}), f3.addEventListener("mousemove", (e7) =>
|
|
7325
|
-
|
|
7331
|
+
let t3 = v2[e6], n3 = v2[(e6 + 1) % v2.length], i3 = Math.floor((t3.cusp_lon % 360 + 360) % 360 / 30), a3 = (Ke2 = (qe2 = t3.sign) == null ? av[i3] : qe2) == null ? "" : Ke2, o3 = (Je2 = Cv[t3.number]) == null ? "" : Je2, s3 = "".concat(o3 ? o3 + " \xB7 " : "").concat(mv(t3.cusp_lon), " \xB7 ").concat(a3), { x: c3, y: l3 } = Y(t3.cusp_lon, Q_, y2), { x: u3, y: d3 } = Y(t3.cusp_lon, Y_, y2), f3 = X("line");
|
|
7332
|
+
f3.setAttribute("x1", c3.toFixed(1)), f3.setAttribute("y1", l3.toFixed(1)), f3.setAttribute("x2", u3.toFixed(1)), f3.setAttribute("y2", d3.toFixed(1)), f3.setAttribute("stroke", "transparent"), f3.setAttribute("stroke-width", String(tv)), f3.setAttribute("fill", "none"), f3.setAttribute("class", "hit-region"), f3.style.pointerEvents = "all", fy(f3, "House ".concat(t3.number, " Cusp")), f3.addEventListener("mouseenter", (e7) => {
|
|
7333
|
+
bv(e7.clientX, e7.clientY, "House ".concat(t3.number), s3, "Click for meaning"), $v(t3.cusp_lon);
|
|
7334
|
+
}), f3.addEventListener("mousemove", (e7) => bv(e7.clientX, e7.clientY, "House ".concat(t3.number), s3, "Click for meaning")), f3.addEventListener("mouseleave", () => {
|
|
7335
|
+
xv(), ey();
|
|
7326
7336
|
}), f3.addEventListener("click", (e7) => {
|
|
7327
7337
|
var n4, i4;
|
|
7328
|
-
|
|
7329
|
-
let a4 = (n4 = (i4 = t3.sign) == null ?
|
|
7330
|
-
|
|
7331
|
-
}),
|
|
7332
|
-
let p3 = (n3.cusp_lon - t3.cusp_lon + 360) % 360, { x: m3, y: h3 } = Y(t3.cusp_lon + p3 / 2,
|
|
7333
|
-
g3.setAttribute("cx", m3.toFixed(1)), g3.setAttribute("cy", h3.toFixed(1)), g3.setAttribute("r", "14"), g3.setAttribute("fill", "transparent"), g3.setAttribute("class", "hit-region"), g3.style.pointerEvents = "all",
|
|
7334
|
-
|
|
7338
|
+
xv();
|
|
7339
|
+
let a4 = (n4 = (i4 = t3.sign) == null ? av[Math.floor((t3.cusp_lon % 360 + 360) % 360 / 30)] : i4) == null ? "" : n4;
|
|
7340
|
+
zv == null || zv("House ".concat(t3.number, " \xB7 ").concat(a4)), Gv(e7, t3, _2), r2(t3);
|
|
7341
|
+
}), re2.appendChild(f3);
|
|
7342
|
+
let p3 = (n3.cusp_lon - t3.cusp_lon + 360) % 360, { x: m3, y: h3 } = Y(t3.cusp_lon + p3 / 2, Z_, y2), g3 = X("circle");
|
|
7343
|
+
g3.setAttribute("cx", m3.toFixed(1)), g3.setAttribute("cy", h3.toFixed(1)), g3.setAttribute("r", "14"), g3.setAttribute("fill", "transparent"), g3.setAttribute("class", "hit-region"), g3.style.pointerEvents = "all", fy(g3, "House ".concat(t3.number, " Area")), g3.addEventListener("mouseenter", (e7) => bv(e7.clientX, e7.clientY, "House ".concat(t3.number), s3, "Click for meaning")), g3.addEventListener("mousemove", (e7) => bv(e7.clientX, e7.clientY, "House ".concat(t3.number), s3, "Click for meaning")), g3.addEventListener("mouseleave", () => {
|
|
7344
|
+
xv();
|
|
7335
7345
|
}), g3.addEventListener("click", (e7) => {
|
|
7336
7346
|
var n4, i4;
|
|
7337
|
-
|
|
7338
|
-
let a4 = (n4 = (i4 = t3.sign) == null ?
|
|
7339
|
-
|
|
7340
|
-
}),
|
|
7347
|
+
xv();
|
|
7348
|
+
let a4 = (n4 = (i4 = t3.sign) == null ? av[Math.floor((t3.cusp_lon % 360 + 360) % 360 / 30)] : i4) == null ? "" : n4;
|
|
7349
|
+
zv == null || zv("House ".concat(t3.number, " \xB7 ").concat(a4)), Gv(e7, t3, _2), r2(t3);
|
|
7350
|
+
}), re2.appendChild(g3);
|
|
7341
7351
|
}
|
|
7342
|
-
|
|
7352
|
+
Lv && document.removeEventListener("click", Lv, false), Lv = (e6) => {
|
|
7343
7353
|
let t3 = e6.target;
|
|
7344
|
-
t3 && typeof t3.closest == "function" && !t3.closest(".hit-region") && !t3.closest("#info-panel") && !t3.closest("#patterns-strip") && (
|
|
7345
|
-
}, document.addEventListener("click",
|
|
7354
|
+
t3 && typeof t3.closest == "function" && !t3.closest(".hit-region") && !t3.closest("#info-panel") && !t3.closest("#patterns-strip") && (iy(), Xv());
|
|
7355
|
+
}, document.addEventListener("click", Lv, false);
|
|
7346
7356
|
}
|
|
7347
|
-
function
|
|
7357
|
+
function fy(e5, t2) {
|
|
7348
7358
|
e5 && (e5.setAttribute("tabindex", "0"), e5.setAttribute("role", "button"), e5.setAttribute("aria-label", t2), e5.addEventListener("keydown", (t3) => {
|
|
7349
7359
|
let n2 = t3;
|
|
7350
7360
|
(n2.key === "Enter" || n2.key === " ") && (n2.preventDefault(), e5.dispatchEvent(new MouseEvent("click", { bubbles: true, cancelable: true })));
|
|
7351
7361
|
}));
|
|
7352
7362
|
}
|
|
7353
|
-
var
|
|
7354
|
-
function
|
|
7363
|
+
var py = [{ label: "Placidus", value: "placidus" }, { label: "Whole Sign", value: "whole_sign" }, { label: "Equal", value: "equal" }, { label: "Koch", value: "koch" }, { label: "Regio.", value: "regiomontanus" }];
|
|
7364
|
+
function my(e5, t2, n2) {
|
|
7355
7365
|
e5.innerHTML = "";
|
|
7356
7366
|
let r2 = document.createElement("span");
|
|
7357
7367
|
r2.className = "controls-label", r2.textContent = "Houses:", e5.appendChild(r2);
|
|
7358
|
-
for (let r3 of
|
|
7368
|
+
for (let r3 of py) {
|
|
7359
7369
|
let i2 = document.createElement("button");
|
|
7360
7370
|
i2.className = "control-btn" + (r3.value === t2 ? " active" : ""), i2.textContent = r3.label, i2.title = "Switch to ".concat(r3.label, " house system"), i2.setAttribute("data-system", r3.value), i2.addEventListener("click", () => {
|
|
7361
7371
|
e5.querySelectorAll(".control-btn").forEach((e6) => e6.classList.remove("active")), i2.classList.add("active"), i2.disabled = true, i2.textContent = "".concat(r3.label, " \u2026"), n2(r3.value);
|
|
7362
7372
|
}), e5.appendChild(i2);
|
|
7363
7373
|
}
|
|
7364
7374
|
}
|
|
7365
|
-
function
|
|
7375
|
+
function hy(e5, t2) {
|
|
7366
7376
|
e5.querySelectorAll(".control-btn").forEach((e6) => {
|
|
7367
7377
|
var n2;
|
|
7368
7378
|
let r2 = e6.getAttribute("data-system");
|
|
7369
7379
|
e6.disabled = false;
|
|
7370
|
-
let i2 =
|
|
7380
|
+
let i2 = py.find((e7) => e7.value === r2);
|
|
7371
7381
|
e6.textContent = (n2 = i2 == null ? void 0 : i2.label) == null ? r2 : n2, e6.classList.toggle("active", r2 === t2);
|
|
7372
7382
|
});
|
|
7373
7383
|
}
|
|
7374
|
-
function
|
|
7384
|
+
function gy(e5) {
|
|
7375
7385
|
return e5.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
7376
7386
|
}
|
|
7377
|
-
function
|
|
7387
|
+
function _y(e5) {
|
|
7378
7388
|
return e5.replace(/_/g, " ").replace(/\b\w/g, (e6) => e6.toUpperCase());
|
|
7379
7389
|
}
|
|
7380
|
-
function
|
|
7381
|
-
let t2 = e5.filter((e6) => e6.items.length > 0).map((e6) => '<div class="legend-group"><span class="legend-group-title">'.concat(
|
|
7390
|
+
function vy(e5) {
|
|
7391
|
+
let t2 = e5.filter((e6) => e6.items.length > 0).map((e6) => '<div class="legend-group"><span class="legend-group-title">'.concat(gy(e6.title), "</span>") + e6.items.map((e7) => '<span class="legend-item"><span class="legend-glyph">'.concat(gy(e7.glyph), "</span>").concat(gy(e7.label), "</span>")).join("") + "</div>").join("");
|
|
7382
7392
|
return t2 ? '<details class="glyph-legend"><summary><span class="legend-spark">\u2726</span> Legend</summary><div class="legend-body">'.concat(t2, "</div></details>") : "";
|
|
7383
7393
|
}
|
|
7384
|
-
var
|
|
7394
|
+
var yy = class e4 {
|
|
7385
7395
|
constructor(t2) {
|
|
7386
7396
|
var n2, r2, i2, a2, s2, c2;
|
|
7387
7397
|
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();
|
|
@@ -7561,14 +7571,14 @@ var _y = class e4 {
|
|
|
7561
7571
|
return e5.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
7562
7572
|
}
|
|
7563
7573
|
};
|
|
7564
|
-
o(
|
|
7565
|
-
var
|
|
7566
|
-
function
|
|
7574
|
+
o(yy, "comboSeq", 0);
|
|
7575
|
+
var by = { "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." } }, xy = '\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';
|
|
7576
|
+
function Sy() {
|
|
7567
7577
|
if (document.getElementById("oe-first-run-styles")) return;
|
|
7568
7578
|
let e5 = document.createElement("style");
|
|
7569
|
-
e5.id = "oe-first-run-styles", e5.textContent =
|
|
7579
|
+
e5.id = "oe-first-run-styles", e5.textContent = xy, document.head.appendChild(e5);
|
|
7570
7580
|
}
|
|
7571
|
-
function
|
|
7581
|
+
function Cy(e5) {
|
|
7572
7582
|
let t2 = document.activeElement, n2 = document.createElement("div");
|
|
7573
7583
|
n2.className = "oe-welcome-backdrop";
|
|
7574
7584
|
let r2 = document.createElement("div");
|
|
@@ -7586,24 +7596,24 @@ function xy(e5) {
|
|
|
7586
7596
|
e6.key === "Escape" && (e6.preventDefault(), o2()), e6.key === "Tab" && (e6.preventDefault(), a2.focus());
|
|
7587
7597
|
}), requestAnimationFrame(() => a2.focus()), n2;
|
|
7588
7598
|
}
|
|
7589
|
-
function
|
|
7590
|
-
|
|
7591
|
-
let t2 =
|
|
7599
|
+
function wy(e5) {
|
|
7600
|
+
Sy();
|
|
7601
|
+
let t2 = Cy(by[e5]);
|
|
7592
7602
|
document.body.appendChild(t2);
|
|
7593
7603
|
}
|
|
7594
|
-
var
|
|
7595
|
-
function
|
|
7604
|
+
var Ty = "\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";
|
|
7605
|
+
function Ey() {
|
|
7596
7606
|
if (document.getElementById("oe-info-button-styles")) return;
|
|
7597
7607
|
let e5 = document.createElement("style");
|
|
7598
|
-
e5.id = "oe-info-button-styles", e5.textContent =
|
|
7608
|
+
e5.id = "oe-info-button-styles", e5.textContent = Ty, document.head.appendChild(e5);
|
|
7599
7609
|
}
|
|
7600
|
-
function
|
|
7610
|
+
function Dy(e5) {
|
|
7601
7611
|
if (document.getElementById("oe-info-button")) return;
|
|
7602
|
-
|
|
7612
|
+
Ey();
|
|
7603
7613
|
let t2 = document.createElement("button");
|
|
7604
|
-
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", () =>
|
|
7614
|
+
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", () => wy(e5)), document.body.appendChild(t2);
|
|
7605
7615
|
}
|
|
7606
|
-
function
|
|
7616
|
+
function Oy(e5) {
|
|
7607
7617
|
var t2;
|
|
7608
7618
|
if (!e5) return null;
|
|
7609
7619
|
if (e5.structuredContent != null && typeof e5.structuredContent == "object") return e5.structuredContent;
|
|
@@ -7616,10 +7626,10 @@ function Ey(e5) {
|
|
|
7616
7626
|
}
|
|
7617
7627
|
return null;
|
|
7618
7628
|
}
|
|
7619
|
-
var
|
|
7620
|
-
function
|
|
7629
|
+
var ky = /^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2})(?::(\d{2}))?(?:\.\d+)?$/;
|
|
7630
|
+
function Ay(e5, t2) {
|
|
7621
7631
|
if (!e5) return null;
|
|
7622
|
-
let n2 =
|
|
7632
|
+
let n2 = ky.exec(e5.trim());
|
|
7623
7633
|
if (n2) {
|
|
7624
7634
|
let [, e6, t3, r3, i2, a2, o2] = n2, s2 = new Date(Date.UTC(+e6, t3 - 1, +r3, +i2, +a2, o2 ? +o2 : 0));
|
|
7625
7635
|
return isNaN(s2.getTime()) ? null : { date: s2, timeZone: "UTC" };
|
|
@@ -7627,36 +7637,49 @@ function Oy(e5, t2) {
|
|
|
7627
7637
|
let r2 = new Date(e5);
|
|
7628
7638
|
return isNaN(r2.getTime()) ? null : { date: r2, timeZone: t2 || "UTC" };
|
|
7629
7639
|
}
|
|
7630
|
-
function
|
|
7640
|
+
function jy(e5) {
|
|
7631
7641
|
var t2;
|
|
7632
7642
|
if (!e5) return "";
|
|
7633
7643
|
let n2 = [], r2 = (t2 = e5.location) == null ? void 0 : t2.trim();
|
|
7634
7644
|
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) {
|
|
7635
|
-
let t3 = /^\d{4}-\d{2}-\d{2}/.test(e5.datetime.trim()) ?
|
|
7645
|
+
let t3 = /^\d{4}-\d{2}-\d{2}/.test(e5.datetime.trim()) ? Ay(e5.datetime, e5.timezone) : null;
|
|
7636
7646
|
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);
|
|
7637
7647
|
}
|
|
7638
7648
|
return n2.join(" \xB7 ");
|
|
7639
7649
|
}
|
|
7640
|
-
function
|
|
7641
|
-
let r2 =
|
|
7650
|
+
function My(e5, t2, n2 = "Chart") {
|
|
7651
|
+
let r2 = jy(t2);
|
|
7642
7652
|
return r2 ? "".concat(n2, ": ").concat(r2, "\n\n").concat(e5) : e5;
|
|
7643
7653
|
}
|
|
7644
|
-
function
|
|
7654
|
+
function Ny(e5) {
|
|
7645
7655
|
return e5.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
7646
7656
|
}
|
|
7647
|
-
function
|
|
7648
|
-
let { container: t2, message: n2, onRetry: r2, retryLabel: i2 = "\u21BA Try again" } = e5, a2 = r2 ? '<button class="error-retry-btn" type="button">'.concat(
|
|
7649
|
-
if (t2.innerHTML = '<div class="error-state" role="alert"><div class="error-icon" aria-hidden="true">\u26A0\uFE0F</div><p class="error-msg">'.concat(
|
|
7657
|
+
function Py(e5) {
|
|
7658
|
+
let { container: t2, message: n2, onRetry: r2, retryLabel: i2 = "\u21BA Try again" } = e5, a2 = r2 ? '<button class="error-retry-btn" type="button">'.concat(Ny(i2), "</button>") : "";
|
|
7659
|
+
if (t2.innerHTML = '<div class="error-state" role="alert"><div class="error-icon" aria-hidden="true">\u26A0\uFE0F</div><p class="error-msg">'.concat(Ny(n2), "</p>") + a2 + "</div>", t2.removeAttribute("hidden"), r2) {
|
|
7650
7660
|
var o2;
|
|
7651
7661
|
(o2 = t2.querySelector(".error-retry-btn")) == null || o2.addEventListener("click", r2);
|
|
7652
7662
|
}
|
|
7653
7663
|
}
|
|
7654
|
-
|
|
7655
|
-
|
|
7664
|
+
var Fy = ["inline", "fullscreen"];
|
|
7665
|
+
function Iy(e5) {
|
|
7666
|
+
var t2;
|
|
7667
|
+
return (t2 = e5.getHostContext) == null ? void 0 : t2.call(e5);
|
|
7668
|
+
}
|
|
7669
|
+
function Ly(e5) {
|
|
7670
|
+
var t2;
|
|
7671
|
+
let n2 = (t2 = Iy(e5)) == null ? void 0 : t2.availableDisplayModes;
|
|
7672
|
+
return Array.isArray(n2) ? n2 : [];
|
|
7673
|
+
}
|
|
7674
|
+
var Ry = '<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>', zy = '<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>', By = '<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>', Vy = '<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>';
|
|
7675
|
+
function Hy(e5, t2, n2 = [], r2 = {}) {
|
|
7676
|
+
var i2;
|
|
7656
7677
|
if (!t2 || t2.querySelector("#btn-fullscreen")) return;
|
|
7657
7678
|
let a2 = document.createElement("button");
|
|
7658
|
-
a2.id = "btn-fullscreen", a2.className = "pan-btn pan-btn--fullscreen", a2.
|
|
7659
|
-
let o2 =
|
|
7679
|
+
a2.id = "btn-fullscreen", a2.type = "button", a2.className = "pan-btn pan-btn--fullscreen", a2.innerHTML = Ry, a2.hidden = true;
|
|
7680
|
+
let o2 = null;
|
|
7681
|
+
r2.pip && (o2 = document.createElement("button"), o2.id = "btn-pip", o2.type = "button", o2.className = "pan-btn pan-btn--pip", o2.innerHTML = By, o2.hidden = true);
|
|
7682
|
+
let s2 = ["param-controls", "aspect-filter", "controls-panel", "mode-badge"];
|
|
7660
7683
|
function c2() {
|
|
7661
7684
|
if (document.getElementById("fs-bottom-bar") || !n2.length) return;
|
|
7662
7685
|
let e6 = document.getElementById("app");
|
|
@@ -7689,59 +7712,59 @@ function Ny(e5, t2, n2 = []) {
|
|
|
7689
7712
|
}
|
|
7690
7713
|
e6.remove();
|
|
7691
7714
|
}
|
|
7692
|
-
|
|
7693
|
-
|
|
7694
|
-
|
|
7715
|
+
let u2 = "inline";
|
|
7716
|
+
function d2(t3) {
|
|
7717
|
+
let n3 = u2 === "fullscreen", r3 = t3 === "fullscreen";
|
|
7718
|
+
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 ? zy : Ry;
|
|
7719
|
+
let i3 = r3 ? "Exit fullscreen" : "Enter fullscreen";
|
|
7720
|
+
if (a2.setAttribute("aria-label", i3), a2.title = r3 ? "Exit fullscreen (Esc)" : i3, o2) {
|
|
7721
|
+
let e6 = t3 === "pip";
|
|
7722
|
+
o2.innerHTML = e6 ? Vy : By;
|
|
7723
|
+
let n4 = e6 ? "Return to the conversation" : "Pop out (picture-in-picture)";
|
|
7724
|
+
o2.setAttribute("aria-label", n4), o2.title = n4;
|
|
7725
|
+
}
|
|
7726
|
+
r3 && !n3 && (c2(), Uy(e5)), !r3 && n3 && l2();
|
|
7695
7727
|
}
|
|
7696
|
-
|
|
7697
|
-
|
|
7698
|
-
|
|
7699
|
-
|
|
7700
|
-
|
|
7701
|
-
|
|
7702
|
-
|
|
7703
|
-
|
|
7704
|
-
|
|
7705
|
-
|
|
7728
|
+
function f2() {
|
|
7729
|
+
var n3, r3;
|
|
7730
|
+
let i3 = Ly(e5);
|
|
7731
|
+
a2.hidden = !i3.includes("fullscreen"), o2 && (o2.hidden = !i3.includes("pip")), (!a2.hidden || o2 && !o2.hidden) && (t2.hidden = false);
|
|
7732
|
+
let s3 = (n3 = (r3 = Iy(e5)) == null ? void 0 : r3.displayMode) == null ? "inline" : n3;
|
|
7733
|
+
s3 !== u2 && d2(s3);
|
|
7734
|
+
}
|
|
7735
|
+
async function p2(t3) {
|
|
7736
|
+
if (!(t3 !== "inline" && !Ly(e5).includes(t3))) try {
|
|
7737
|
+
var n3;
|
|
7738
|
+
let r3 = await e5.requestDisplayMode({ mode: t3 });
|
|
7739
|
+
d2((n3 = r3 == null ? void 0 : r3.mode) == null ? u2 : n3);
|
|
7706
7740
|
} catch (e6) {
|
|
7707
7741
|
console.warn("[AppChrome] requestDisplayMode failed:", e6);
|
|
7708
7742
|
}
|
|
7709
|
-
}), document.addEventListener("keydown", async (t3) => {
|
|
7710
|
-
if (t3.key === "Escape" && document.body.classList.contains("is-fullscreen")) {
|
|
7711
|
-
t3.preventDefault();
|
|
7712
|
-
try {
|
|
7713
|
-
var n3;
|
|
7714
|
-
let t4 = await e5.requestDisplayMode({ mode: "inline" });
|
|
7715
|
-
u2((n3 = t4 == null ? void 0 : t4.mode) == null ? "inline" : n3);
|
|
7716
|
-
} catch (e6) {
|
|
7717
|
-
console.warn("[AppChrome] Escape fullscreen failed:", e6);
|
|
7718
|
-
}
|
|
7719
|
-
}
|
|
7720
|
-
}), (r2 = e5.addEventListener) == null || r2.call(e5, "hostcontextchanged", (e6) => {
|
|
7721
|
-
var t3;
|
|
7722
|
-
u2((t3 = e6 == null ? void 0 : e6.displayMode) == null ? "inline" : t3);
|
|
7723
|
-
});
|
|
7724
|
-
let d2 = (i2 = e5.getHostContext) == null ? void 0 : i2.call(e5);
|
|
7725
|
-
d2 != null && d2.displayMode && u2(d2.displayMode), t2.insertBefore(a2, t2.firstChild), t2.removeAttribute("hidden");
|
|
7726
|
-
function f2() {
|
|
7727
|
-
let e6 = document.getElementById("fs-hint-banner");
|
|
7728
|
-
e6 && e6.remove();
|
|
7729
|
-
let t3 = document.createElement("div");
|
|
7730
|
-
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(() => {
|
|
7731
|
-
t3.style.opacity = "1";
|
|
7732
|
-
}), setTimeout(() => {
|
|
7733
|
-
t3.style.opacity = "0", setTimeout(() => t3.remove(), 350);
|
|
7734
|
-
}, 4e3);
|
|
7735
7743
|
}
|
|
7744
|
+
a2.addEventListener("click", () => {
|
|
7745
|
+
p2(u2 === "fullscreen" ? "inline" : "fullscreen");
|
|
7746
|
+
}), o2 == null || o2.addEventListener("click", () => {
|
|
7747
|
+
p2(u2 === "pip" ? "inline" : "pip");
|
|
7748
|
+
}), document.addEventListener("keydown", (e6) => {
|
|
7749
|
+
e6.key !== "Escape" || u2 !== "fullscreen" || (e6.preventDefault(), p2("inline"));
|
|
7750
|
+
}), (i2 = e5.addEventListener) == null || i2.call(e5, "hostcontextchanged", f2), o2 && t2.insertBefore(o2, t2.firstChild), t2.insertBefore(a2, t2.firstChild), d2("inline"), f2();
|
|
7751
|
+
}
|
|
7752
|
+
function Uy(e5) {
|
|
7753
|
+
var t2, n2;
|
|
7754
|
+
(t2 = document.getElementById("fs-hint-banner")) == null || t2.remove();
|
|
7755
|
+
let r2 = (n2 = Iy(e5)) == null ? void 0 : n2.deviceCapabilities, i2 = !!(r2 != null && r2.touch) && (r2 == null ? void 0 : r2.hover) === false, a2 = document.createElement("div");
|
|
7756
|
+
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(() => {
|
|
7757
|
+
a2.classList.remove("visible"), setTimeout(() => a2.remove(), 350);
|
|
7758
|
+
}, 4e3);
|
|
7736
7759
|
}
|
|
7737
|
-
function
|
|
7760
|
+
function Wy(e5, t2) {
|
|
7738
7761
|
e5.ontoolcancelled = (e6) => {
|
|
7739
7762
|
var n2, r2, i2;
|
|
7740
7763
|
let a2 = (n2 = e6.reason) == null ? "Tool call was cancelled" : n2;
|
|
7741
|
-
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),
|
|
7764
|
+
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), Gy(a2);
|
|
7742
7765
|
};
|
|
7743
7766
|
}
|
|
7744
|
-
function
|
|
7767
|
+
function Gy(e5) {
|
|
7745
7768
|
var t2;
|
|
7746
7769
|
(t2 = document.getElementById("cancel-toast")) == null || t2.remove();
|
|
7747
7770
|
let n2 = document.createElement("div");
|
|
@@ -7749,61 +7772,75 @@ function Fy(e5) {
|
|
|
7749
7772
|
n2.classList.remove("visible"), setTimeout(() => n2.remove(), 300);
|
|
7750
7773
|
}, 3e3);
|
|
7751
7774
|
}
|
|
7752
|
-
function
|
|
7775
|
+
function Ky(e5) {
|
|
7753
7776
|
var t2;
|
|
7754
|
-
|
|
7755
|
-
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
|
|
7760
|
-
|
|
7761
|
-
|
|
7762
|
-
|
|
7763
|
-
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
|
|
7777
|
+
let n2 = document.documentElement, r2 = (e6, t3) => {
|
|
7778
|
+
typeof t3 == "number" && Number.isFinite(t3) && t3 > 0 ? n2.style.setProperty(e6, "".concat(t3, "px")) : n2.style.removeProperty(e6);
|
|
7779
|
+
}, i2 = (e6, t3) => {
|
|
7780
|
+
t3 === void 0 ? n2.removeAttribute(e6) : n2.setAttribute(e6, t3 ? "true" : "false");
|
|
7781
|
+
};
|
|
7782
|
+
function a2() {
|
|
7783
|
+
var t3, a3, o2;
|
|
7784
|
+
let s2 = Iy(e5);
|
|
7785
|
+
if (!s2) return;
|
|
7786
|
+
let c2 = (t3 = s2.containerDimensions) == null ? {} : t3;
|
|
7787
|
+
r2("--host-width", c2.width), r2("--host-max-width", c2.maxWidth), r2("--host-height", c2.height), r2("--host-max-height", c2.maxHeight);
|
|
7788
|
+
let l2 = (a3 = s2.safeAreaInsets) == null ? {} : a3;
|
|
7789
|
+
for (let e6 of ["top", "right", "bottom", "left"]) {
|
|
7790
|
+
let t4 = l2[e6];
|
|
7791
|
+
n2.style.setProperty("--safe-".concat(e6), typeof t4 == "number" && t4 > 0 ? "".concat(t4, "px") : "0px");
|
|
7792
|
+
}
|
|
7793
|
+
let u2 = l2.bottom;
|
|
7794
|
+
n2.toggleAttribute("data-safe-bottom", typeof u2 == "number" && u2 > 0), typeof s2.platform == "string" && n2.setAttribute("data-platform", s2.platform);
|
|
7795
|
+
let d2 = s2.deviceCapabilities;
|
|
7796
|
+
i2("data-touch", d2 == null ? void 0 : d2.touch), i2("data-hover", d2 == null ? void 0 : d2.hover);
|
|
7797
|
+
let f2 = s2.styles;
|
|
7798
|
+
f2 != null && f2.variables && r_(f2.variables, n2), !(f2 == null || (o2 = f2.css) == null) && o2.fonts && i_(f2.css.fonts);
|
|
7799
|
+
}
|
|
7800
|
+
a2(), (t2 = e5.addEventListener) == null || t2.call(e5, "hostcontextchanged", a2);
|
|
7801
|
+
}
|
|
7802
|
+
var qy = document.getElementById("loading-state"), Jy = document.getElementById("chart-container"), Yy = document.getElementById("chart-info"), Xy = document.getElementById("chart-status"), Zy = document.getElementById("controls-panel"), Qy = document.getElementById("patterns-strip"), $y = document.getElementById("aspect-filter"), eb = document.getElementById("overview-table"), tb = document.getElementById("param-controls-container"), nb = new a_({ name: "Chart Wheel Explorer", version: "1.0.0" }, { availableDisplayModes: Fy }), $ = null, rb = "placidus", ib = null;
|
|
7803
|
+
__(() => {
|
|
7804
|
+
$ && cb($);
|
|
7768
7805
|
});
|
|
7769
|
-
var
|
|
7770
|
-
function
|
|
7771
|
-
|
|
7806
|
+
var ab = false, ob = false;
|
|
7807
|
+
function sb(e5) {
|
|
7808
|
+
Xy && (e5 ? (Xy.textContent = "\xB7 ".concat(e5), Xy.setAttribute("data-active", "")) : (Xy.textContent = "", Xy.removeAttribute("data-active")));
|
|
7772
7809
|
}
|
|
7773
|
-
|
|
7810
|
+
nb.ontoolresult = (e5) => {
|
|
7774
7811
|
var t2;
|
|
7775
|
-
let n2 =
|
|
7776
|
-
if (
|
|
7777
|
-
console.error("[ChartWheel] \u274C No chart data found in tool result"),
|
|
7812
|
+
let n2 = Oy(e5);
|
|
7813
|
+
if (Mb(), !n2 || !n2.planets) {
|
|
7814
|
+
console.error("[ChartWheel] \u274C No chart data found in tool result"), Nb("Chart data could not be parsed from the server response.", Pb);
|
|
7778
7815
|
return;
|
|
7779
7816
|
}
|
|
7780
|
-
if ($ = n2,
|
|
7817
|
+
if ($ = n2, rb = (t2 = n2.house_system) == null ? "placidus" : t2, !ib) {
|
|
7781
7818
|
var r2, i2, a2, o2, s2, c2, l2, u2, d2, f2;
|
|
7782
7819
|
let e6 = (r2 = n2._birth_params) == null ? {} : r2, t3 = (i2 = (a2 = (o2 = e6.datetime) == null ? n2.datetime : o2) == null ? n2.birth_datetime : a2) == null ? "" : i2, p2 = (s2 = (c2 = e6.location) == null ? n2.location : c2) == null ? "" : s2, m2 = (l2 = (u2 = e6.timezone) == null ? n2.timezone : u2) == null ? "" : l2, h2 = (d2 = e6.latitude) == null ? n2.latitude : d2, g2 = (f2 = e6.longitude) == null ? n2.longitude : f2, _2 = "", v2 = "12:00";
|
|
7783
7820
|
if (t3 && t3.includes("T")) {
|
|
7784
7821
|
let e7 = t3.split("T");
|
|
7785
7822
|
_2 = e7[0], v2 = e7[1].substring(0, 5);
|
|
7786
7823
|
}
|
|
7787
|
-
|
|
7788
|
-
|
|
7824
|
+
ib = new yy({ app: nb, container: tb, initialParams: { date: _2, time: v2, locationName: p2, timezone: m2, latitude: typeof h2 == "number" ? h2 : null, longitude: typeof g2 == "number" ? g2 : null }, showStepControls: false, costHint: "~1 credit", onRefresh: async (e7) => {
|
|
7825
|
+
ib == null || ib.setBusy(true), qy.removeAttribute("hidden"), Jy.setAttribute("hidden", "");
|
|
7789
7826
|
try {
|
|
7790
7827
|
var t4, n3, r3, i3;
|
|
7791
|
-
let a3 = "".concat(e7.date, "T").concat(e7.time, ":00"), o3 = new Promise((e8, t5) => setTimeout(() => t5(Error("Recalculate timed out after 30s")), 3e4)), s3 =
|
|
7792
|
-
s3 ? ($ = s3, s3.house_system && (
|
|
7828
|
+
let a3 = "".concat(e7.date, "T").concat(e7.time, ":00"), o3 = new Promise((e8, t5) => setTimeout(() => t5(Error("Recalculate timed out after 30s")), 3e4)), s3 = Oy(await Promise.race([nb.callServerTool({ name: "chart_wheel_recalculate", arguments: { datetime: "".concat(a3).concat(e7.timezone ? "" : "Z"), latitude: (t4 = e7.latitude) == null ? void 0 : t4, longitude: (n3 = e7.longitude) == null ? void 0 : n3, timezone: (r3 = e7.timezone) == null ? void 0 : r3, location: (i3 = e7.locationName) == null ? void 0 : i3, house_system: rb || "placidus", chart_type: "natal" } }), o3]));
|
|
7829
|
+
s3 ? ($ = s3, s3.house_system && (rb = s3.house_system), cb(s3)) : $ && (qy.setAttribute("hidden", ""), Jy.removeAttribute("hidden"));
|
|
7793
7830
|
} catch (e8) {
|
|
7794
|
-
console.error("[ChartWheel] Recalculate failed or timed out:", e8), $ && (
|
|
7831
|
+
console.error("[ChartWheel] Recalculate failed or timed out:", e8), $ && (qy.setAttribute("hidden", ""), Jy.removeAttribute("hidden"));
|
|
7795
7832
|
} finally {
|
|
7796
|
-
|
|
7833
|
+
ib == null || ib.setBusy(false);
|
|
7797
7834
|
}
|
|
7798
7835
|
} });
|
|
7799
7836
|
}
|
|
7800
|
-
|
|
7837
|
+
cb(n2);
|
|
7801
7838
|
};
|
|
7802
|
-
function
|
|
7839
|
+
function cb(e5) {
|
|
7803
7840
|
var t2, n2, r2, i2, a2, o2, s2;
|
|
7804
|
-
|
|
7805
|
-
let c2 =
|
|
7806
|
-
c2.length > 0 &&
|
|
7841
|
+
mb = null, qy.setAttribute("hidden", ""), Jy.removeAttribute("hidden"), tb.removeAttribute("hidden"), Zy.removeAttribute("hidden"), dy(Jy, e5, Sb, Cb, wb, kb, ob ? Tb() : void 0), Bv(sb), my(Zy, rb, Ab), ub(e5), Dy("chart-wheel");
|
|
7842
|
+
let c2 = vv(e5.planets), l2 = (n2 = (r2 = (i2 = ((t2 = e5.houses) == null ? [] : t2)[0]) == null ? void 0 : i2.cusp_lon) == null ? e5.ascendant : r2) == null ? 0 : n2, u2 = (a2 = e5.aspects) == null ? [] : a2;
|
|
7843
|
+
c2.length > 0 && fb(c2, u2), hb(Pv(u2, c2), c2, l2), bb();
|
|
7807
7844
|
let d2 = document.getElementById("cw-action-bar");
|
|
7808
7845
|
if (!d2) {
|
|
7809
7846
|
d2 = document.createElement("div"), d2.id = "cw-action-bar", d2.className = "hd-action-bar";
|
|
@@ -7814,19 +7851,19 @@ function Qy(e5) {
|
|
|
7814
7851
|
(f2 = document.getElementById("app")) == null || f2.prepend(d2);
|
|
7815
7852
|
}
|
|
7816
7853
|
}
|
|
7817
|
-
d2.innerHTML = '\n <button class="action-btn action-btn--primary" id="cw-interpret-btn">\u2728 Interpret this chart</button>\n <button class="action-btn" id="cw-questions-btn">\u{1F52E} What should I ask?</button>\n ', (o2 = document.getElementById("cw-interpret-btn")) == null || o2.addEventListener("click", () => void
|
|
7854
|
+
d2.innerHTML = '\n <button class="action-btn action-btn--primary" id="cw-interpret-btn">\u2728 Interpret this chart</button>\n <button class="action-btn" id="cw-questions-btn">\u{1F52E} What should I ask?</button>\n ', (o2 = document.getElementById("cw-interpret-btn")) == null || o2.addEventListener("click", () => void Db()), (s2 = document.getElementById("cw-questions-btn")) == null || s2.addEventListener("click", () => void Ob());
|
|
7818
7855
|
}
|
|
7819
|
-
function
|
|
7856
|
+
function lb(e5) {
|
|
7820
7857
|
return String(e5).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
7821
7858
|
}
|
|
7822
|
-
function
|
|
7859
|
+
function ub(e5) {
|
|
7823
7860
|
var t2, n2, r2, i2, a2, o2, s2, c2, l2, u2;
|
|
7824
|
-
if (!
|
|
7861
|
+
if (!Yy) return;
|
|
7825
7862
|
let d2 = (t2 = e5._birth_params) == null ? {} : t2, f2 = (n2 = (r2 = (i2 = d2.datetime) == null ? e5.datetime : i2) == null ? e5.birth_datetime : r2) == null ? "" : n2, p2 = (a2 = (o2 = d2.location) == null ? e5.location : o2) == null ? "" : a2, m2 = (s2 = (c2 = d2.timezone) == null ? e5.timezone : c2) == null ? "" : s2, h2 = (l2 = d2.latitude) == null ? e5.latitude : l2, g2 = (u2 = d2.longitude) == null ? e5.longitude : u2;
|
|
7826
|
-
|
|
7827
|
-
let _2 =
|
|
7863
|
+
rb.charAt(0).toUpperCase() + rb.slice(1);
|
|
7864
|
+
let _2 = vv(e5.planets).find((e6) => e6.name.toLowerCase() === "sun"), v2 = _2 != null && _2.house ? _2.house >= 7 ? "\u2609 Day Chart" : "\u263E Night Chart" : "", ee2 = f2;
|
|
7828
7865
|
try {
|
|
7829
|
-
let e6 = f2 && f2.includes("T") ?
|
|
7866
|
+
let e6 = f2 && f2.includes("T") ? Ay(f2, m2) : null;
|
|
7830
7867
|
if (e6) {
|
|
7831
7868
|
let { date: t3, timeZone: n3 } = e6;
|
|
7832
7869
|
ee2 = t3.toLocaleDateString("en-US", { weekday: "short", year: "numeric", month: "short", day: "numeric", timeZone: n3 }) + " \xB7 " + t3.toLocaleTimeString("en-US", { hour: "numeric", minute: "2-digit", hour12: true, timeZone: n3 });
|
|
@@ -7834,16 +7871,16 @@ function eb(e5) {
|
|
|
7834
7871
|
} catch (e6) {
|
|
7835
7872
|
}
|
|
7836
7873
|
let y2 = typeof h2 == "number" && typeof g2 == "number" ? "".concat(Math.abs(h2).toFixed(2), "\xB0").concat(h2 >= 0 ? "N" : "S", ", ").concat(Math.abs(g2).toFixed(2), "\xB0").concat(g2 >= 0 ? "E" : "W") : "", b2 = [];
|
|
7837
|
-
if (ee2 && b2.push('<span class="info-chip" title="Birth datetime">\u{1F4C5} '.concat(
|
|
7838
|
-
|
|
7874
|
+
if (ee2 && b2.push('<span class="info-chip" title="Birth datetime">\u{1F4C5} '.concat(lb(ee2), "</span>")), p2 && b2.push('<span class="info-chip" title="Birth location">\u{1F4CD} '.concat(lb(p2), "</span>")), y2 && !p2 && b2.push('<span class="info-chip" title="Coordinates">\u{1F4CD} '.concat(lb(y2), "</span>")), m2 && b2.push('<span class="info-chip" title="Timezone">\u{1F550} '.concat(lb(m2), "</span>")), v2 && b2.push('<span class="info-chip sect" title="Sect">'.concat(lb(v2), "</span>")), b2.length === 0) {
|
|
7875
|
+
Yy.setAttribute("hidden", "");
|
|
7839
7876
|
return;
|
|
7840
7877
|
}
|
|
7841
|
-
|
|
7878
|
+
Yy.innerHTML = b2.join(""), Yy.removeAttribute("hidden");
|
|
7842
7879
|
}
|
|
7843
|
-
var
|
|
7844
|
-
function
|
|
7845
|
-
if (!
|
|
7846
|
-
let n2 = ["sun", "moon", "mercury", "venus", "mars", "jupiter", "saturn", "uranus", "neptune", "pluto", "chiron",
|
|
7880
|
+
var db = /* @__PURE__ */ new Set([L_, R_, z_, "ceres", "juno", "vesta", "pallas", "pholus", "vertex", "part_of_fortune", "part of fortune", "eris", "sedna"]);
|
|
7881
|
+
function fb(e5, t2) {
|
|
7882
|
+
if (!eb || e5.length === 0) return;
|
|
7883
|
+
let n2 = ["sun", "moon", "mercury", "venus", "mars", "jupiter", "saturn", "uranus", "neptune", "pluto", "chiron", T_, E_, D_, O_], r2 = [...e5].sort((e6, t3) => {
|
|
7847
7884
|
let r3 = n2.indexOf(e6.name.toLowerCase()), i3 = n2.indexOf(t3.name.toLowerCase());
|
|
7848
7885
|
return r3 !== -1 && i3 !== -1 ? r3 - i3 : r3 === -1 ? i3 === -1 ? e6.name.localeCompare(t3.name) : 1 : -1;
|
|
7849
7886
|
}), i2 = {};
|
|
@@ -7853,15 +7890,15 @@ function nb(e5, t2) {
|
|
|
7853
7890
|
}
|
|
7854
7891
|
let s2 = (e6) => e6.replace(/(^|\s|_)\w/g, (e7) => e7.toUpperCase()).replace(/_/g, " "), c2 = (e6) => ["Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"][Math.floor((e6 % 360 + 360) % 360 / 30)], l2 = r2.map((e6) => {
|
|
7855
7892
|
var t3, n3, r3, a3;
|
|
7856
|
-
let o3 = e6.name.toLowerCase(), l3 = (t3 =
|
|
7893
|
+
let o3 = e6.name.toLowerCase(), l3 = (t3 = rv[o3]) == null ? "\u2605" : t3, u3 = (n3 = e6.sign) == null ? c2(e6.longitude) : n3, d3 = Math.floor((e6.longitude % 360 + 360) % 360 % 30), f3 = Math.floor((e6.longitude % 360 + 360) % 360 % 1 * 60), p3 = db.has(o3), m2 = e6.retrograde ? '<span class="retro-mark">\u211E</span>' : "", h2 = (r3 = i2[o3]) == null ? 0 : r3;
|
|
7857
7894
|
return '<tr class="'.concat(p3 ? "extended-row" : "", '" data-planet="').concat(o3, '">\n <td><span class="planet-sym">').concat(l3, "</span> ").concat(s2(e6.name)).concat(m2, "</td>\n <td>").concat(d3, "\xB0 ").concat(u3, " ").concat(String(f3).padStart(2, "0"), "\u2032</td>\n <td>H").concat((a3 = e6.house) == null ? "\u2013" : a3, "</td>\n <td>").concat(h2 > 0 ? h2 : "\u2013", "</td>\n </tr>");
|
|
7858
7895
|
}).join(""), u2 = "| Body | Sign | Degree | House | Retrograde |\n| --- | --- | --- | --- | --- |\n" + r2.map((e6) => {
|
|
7859
7896
|
var t3;
|
|
7860
7897
|
let n3 = (t3 = e6.sign) == null ? c2(e6.longitude) : t3, r3 = Math.floor((e6.longitude % 360 + 360) % 360 % 30), i3 = Math.floor((e6.longitude % 360 + 360) % 360 % 1 * 60), a3 = e6.house == null ? "\u2013" : "H".concat(e6.house), o3 = e6.retrograde ? "\u211E" : "";
|
|
7861
7898
|
return "| ".concat(s2(e6.name), " | ").concat(n3, " | ").concat(r3, "\xB0 ").concat(String(i3).padStart(2, "0"), "\u2032 | ").concat(a3, " | ").concat(o3, " |");
|
|
7862
7899
|
}).join("\n");
|
|
7863
|
-
|
|
7864
|
-
let d2 =
|
|
7900
|
+
eb.innerHTML = '\n <div class="overview-header">\n <button class="overview-toggle" aria-expanded="false">\n <span class="overview-chevron">\u25B6</span>\n Planet Positions ('.concat(r2.length, ')\n </button>\n <button class="overview-copy" type="button" title="Copy positions as a Markdown table">Copy</button>\n </div>\n <div class="overview-body">\n <table class="overview-tbl">\n <thead><tr><th>Body</th><th>Position</th><th>House</th><th>Asp</th></tr></thead>\n <tbody>').concat(l2, "</tbody>\n </table>\n </div>\n "), eb.removeAttribute("hidden");
|
|
7901
|
+
let d2 = eb.querySelector(".overview-copy");
|
|
7865
7902
|
d2 && d2.addEventListener("click", async (e6) => {
|
|
7866
7903
|
e6.stopPropagation();
|
|
7867
7904
|
try {
|
|
@@ -7871,14 +7908,14 @@ function nb(e5, t2) {
|
|
|
7871
7908
|
d2.textContent = "Copy", d2.classList.remove("copied");
|
|
7872
7909
|
}, 1600);
|
|
7873
7910
|
} catch (e7) {
|
|
7874
|
-
|
|
7911
|
+
pb("Copy unavailable");
|
|
7875
7912
|
}
|
|
7876
7913
|
});
|
|
7877
|
-
let f2 =
|
|
7914
|
+
let f2 = eb.querySelector(".overview-toggle"), p2 = eb.querySelector(".overview-body");
|
|
7878
7915
|
f2 == null || f2.addEventListener("click", () => {
|
|
7879
7916
|
let e6 = f2.getAttribute("aria-expanded") === "true";
|
|
7880
7917
|
f2.setAttribute("aria-expanded", e6 ? "false" : "true"), p2.classList.toggle("open", !e6);
|
|
7881
|
-
}),
|
|
7918
|
+
}), eb.querySelectorAll("tbody tr").forEach((e6) => {
|
|
7882
7919
|
var t3;
|
|
7883
7920
|
let n3 = (t3 = e6.dataset.planet) == null ? "" : t3;
|
|
7884
7921
|
n3 && (e6.addEventListener("mouseenter", () => {
|
|
@@ -7890,7 +7927,7 @@ function nb(e5, t2) {
|
|
|
7890
7927
|
let t4 = document.querySelector("svg");
|
|
7891
7928
|
t4 && (t4.querySelectorAll(".planet-glyph-group").forEach((e7) => {
|
|
7892
7929
|
var t5;
|
|
7893
|
-
let n4 =
|
|
7930
|
+
let n4 = db.has((t5 = e7.dataset.planet) == null ? "" : t5);
|
|
7894
7931
|
e7.style.opacity = n4 ? "0.65" : "1";
|
|
7895
7932
|
}), e6.classList.remove("active-row"));
|
|
7896
7933
|
}), e6.addEventListener("click", () => {
|
|
@@ -7901,7 +7938,7 @@ function nb(e5, t2) {
|
|
|
7901
7938
|
}));
|
|
7902
7939
|
});
|
|
7903
7940
|
}
|
|
7904
|
-
function
|
|
7941
|
+
function pb(e5) {
|
|
7905
7942
|
var t2;
|
|
7906
7943
|
(t2 = document.getElementById("copy-toast")) == null || t2.remove();
|
|
7907
7944
|
let n2 = document.createElement("div");
|
|
@@ -7909,26 +7946,26 @@ function rb(e5) {
|
|
|
7909
7946
|
n2.classList.remove("visible"), setTimeout(() => n2.remove(), 300);
|
|
7910
7947
|
}, 2500);
|
|
7911
7948
|
}
|
|
7912
|
-
var
|
|
7913
|
-
function
|
|
7914
|
-
if (!
|
|
7949
|
+
var mb = null;
|
|
7950
|
+
function hb(e5, t2, n2) {
|
|
7951
|
+
if (!Qy) return;
|
|
7915
7952
|
if (e5.length === 0) {
|
|
7916
|
-
|
|
7953
|
+
Qy.setAttribute("hidden", ""), Qy.innerHTML = "";
|
|
7917
7954
|
return;
|
|
7918
7955
|
}
|
|
7919
7956
|
let r2 = { "T-Square": "#e08a52", "Grand Trine": "#52a8e0", "Grand Cross": "#e05252", Stellium: "#9a7fd4", Yod: "#52c07a", Kite: "#c0b052" };
|
|
7920
|
-
if (
|
|
7957
|
+
if (Qy.innerHTML = '\n <span class="patterns-label">Patterns:</span>\n '.concat(e5.map((e6, t3) => {
|
|
7921
7958
|
var n3;
|
|
7922
7959
|
let i2 = (n3 = r2[e6.name]) == null ? "#888" : n3;
|
|
7923
7960
|
return '\n <button class="pattern-pill"\n data-idx="'.concat(t3, '"\n data-color="').concat(i2, '"\n style="color:').concat(i2, ";border-color:").concat(i2, '"\n title="').concat(e6.description, '">\n ').concat(e6.name, "\n </button>\n ");
|
|
7924
|
-
}).join(""), "\n "),
|
|
7961
|
+
}).join(""), "\n "), Qy.removeAttribute("hidden"), !Qy.querySelector(".pattern-ask-claude-btn")) {
|
|
7925
7962
|
let t3 = document.createElement("button");
|
|
7926
|
-
t3.className = "pattern-ask-claude-btn", t3.textContent = "\u2728 Interpret", t3.style.display = "none",
|
|
7963
|
+
t3.className = "pattern-ask-claude-btn", t3.textContent = "\u2728 Interpret", t3.style.display = "none", Qy.appendChild(t3), t3.addEventListener("click", () => {
|
|
7927
7964
|
var n3;
|
|
7928
|
-
let r3 =
|
|
7965
|
+
let r3 = mb;
|
|
7929
7966
|
if (r3 === null) return;
|
|
7930
7967
|
let i2 = e5[r3];
|
|
7931
|
-
t3.disabled = true, t3.textContent = "\u23F3 Sending\u2026",
|
|
7968
|
+
t3.disabled = true, t3.textContent = "\u23F3 Sending\u2026", kb({ type: "pattern", data: { name: i2.name, planets: i2.planets, description: (n3 = i2.description) == null ? "" : n3 } }).then(() => {
|
|
7932
7969
|
t3.textContent = "\u2713 Sent", setTimeout(() => {
|
|
7933
7970
|
t3.textContent = "\u2728 Interpret", t3.disabled = false;
|
|
7934
7971
|
}, 2500);
|
|
@@ -7937,130 +7974,130 @@ function ab(e5, t2, n2) {
|
|
|
7937
7974
|
});
|
|
7938
7975
|
});
|
|
7939
7976
|
}
|
|
7940
|
-
|
|
7977
|
+
Qy.querySelectorAll(".pattern-pill").forEach((r3) => {
|
|
7941
7978
|
r3.addEventListener("click", () => {
|
|
7942
7979
|
var i2;
|
|
7943
|
-
let a2 = Number(r3.dataset.idx), o2 = e5[a2], s2 = (i2 = r3.dataset.color) == null ? "#888" : i2, c2 =
|
|
7944
|
-
|
|
7980
|
+
let a2 = Number(r3.dataset.idx), o2 = e5[a2], s2 = (i2 = r3.dataset.color) == null ? "#888" : i2, c2 = Qy.querySelector(".pattern-ask-claude-btn");
|
|
7981
|
+
mb === a2 ? (mb = null, iy(), c2 && (c2.style.display = "none"), Qy.querySelectorAll(".pattern-pill").forEach((e6) => {
|
|
7945
7982
|
var t3;
|
|
7946
7983
|
e6.classList.remove("active");
|
|
7947
7984
|
let n3 = (t3 = e6.dataset.color) == null ? "#888" : t3;
|
|
7948
7985
|
e6.style.color = n3, e6.style.borderColor = n3, e6.style.background = "transparent";
|
|
7949
|
-
})) : (
|
|
7986
|
+
})) : (mb = a2, Qy.querySelectorAll(".pattern-pill").forEach((e6) => {
|
|
7950
7987
|
var t3;
|
|
7951
7988
|
e6.classList.remove("active");
|
|
7952
7989
|
let n3 = (t3 = e6.dataset.color) == null ? "#888" : t3;
|
|
7953
7990
|
e6.style.color = n3, e6.style.borderColor = n3, e6.style.background = "transparent";
|
|
7954
|
-
}), r3.classList.add("active"), r3.style.background = s2, r3.style.color = "#fff", r3.style.borderColor = s2,
|
|
7991
|
+
}), r3.classList.add("active"), r3.style.background = s2, r3.style.color = "#fff", r3.style.borderColor = s2, ny(o2.planets, o2.aspectKeys), t2 && n2 != null && (cy(), sy(o2, t2, n2)), c2 && (c2.style.display = "", c2.textContent = "\u2728 Interpret", c2.disabled = false));
|
|
7955
7992
|
});
|
|
7956
7993
|
});
|
|
7957
7994
|
}
|
|
7958
|
-
var
|
|
7959
|
-
function
|
|
7995
|
+
var gb = [{ label: "Tight", maxOrb: 4 }, { label: "Standard", maxOrb: 8 }, { label: "Wide", maxOrb: 12 }], _b = true, vb = 8, yb = "true";
|
|
7996
|
+
function bb() {
|
|
7960
7997
|
var e5;
|
|
7961
|
-
if (
|
|
7998
|
+
if (!$y) return;
|
|
7962
7999
|
let t2 = (() => {
|
|
7963
8000
|
let e6 = $ == null ? void 0 : $.planets, t3 = [];
|
|
7964
8001
|
return Array.isArray(e6) ? e6.forEach((e7) => {
|
|
7965
8002
|
var n3;
|
|
7966
8003
|
return t3.push(String((n3 = e7 == null ? void 0 : e7.name) == null ? "" : n3).toLowerCase());
|
|
7967
|
-
}) : e6 && typeof e6 == "object" && Object.keys(e6).forEach((e7) => t3.push(e7.toLowerCase())),
|
|
8004
|
+
}) : e6 && typeof e6 == "object" && Object.keys(e6).forEach((e7) => t3.push(e7.toLowerCase())), F_(t3);
|
|
7968
8005
|
})();
|
|
7969
|
-
|
|
7970
|
-
let n2 = t2 ? '\n <div class="asp-section">\n <span class="asp-section-label">Nodes</span>\n <button class="orb-preset-btn node-btn'.concat(
|
|
7971
|
-
|
|
7972
|
-
let r2 =
|
|
8006
|
+
gv(yb);
|
|
8007
|
+
let n2 = t2 ? '\n <div class="asp-section">\n <span class="asp-section-label">Nodes</span>\n <button class="orb-preset-btn node-btn'.concat(yb === "mean" ? " active" : "", '" data-node="mean" title="Mean lunar node (averaged orbit)">Mean</button>\n <button class="orb-preset-btn node-btn').concat(yb === "true" ? " active" : "", '" data-node="true" title="True (osculating) lunar node">True</button>\n </div>') : "";
|
|
8008
|
+
_b = true, $y.innerHTML = '\n <div class="asp-panel">\n <div class="asp-section">\n <span class="asp-section-label">Aspects</span>\n <button class="aspect-toggle-btn active" id="cw-aspect-vis-toggle"\n title="Toggle all natal aspect lines">\n <span class="toggle-icon">\u2295</span> Natal aspects\n </button>\n </div>\n <div class="asp-section">\n <span class="asp-section-label">Orb</span>\n '.concat(gb.map((e6) => '<button class="orb-preset-btn'.concat(e6.maxOrb === vb ? " active" : "", '" data-orb="').concat(e6.maxOrb, '" title="').concat(e6.label, ' orbs">').concat(e6.label, "</button>")).join(""), "\n </div>").concat(n2, "\n </div>\n ");
|
|
8009
|
+
let r2 = vv($ == null ? void 0 : $.planets), i2 = /* @__PURE__ */ new Set(), a2 = [];
|
|
7973
8010
|
for (let e6 of r2) {
|
|
7974
8011
|
let t3 = e6.name.toLowerCase();
|
|
7975
8012
|
if (i2.has(t3)) continue;
|
|
7976
8013
|
i2.add(t3);
|
|
7977
|
-
let n3 =
|
|
7978
|
-
n3 && a2.push({ glyph: n3, label:
|
|
8014
|
+
let n3 = rv[t3];
|
|
8015
|
+
n3 && a2.push({ glyph: n3, label: _y(e6.name) });
|
|
7979
8016
|
}
|
|
7980
8017
|
let o2 = [...new Set(((e5 = $ == null ? void 0 : $.aspects) == null ? [] : e5).map((e6) => {
|
|
7981
8018
|
var t3;
|
|
7982
8019
|
return ((t3 = e6.type) == null ? "" : t3).toLowerCase();
|
|
7983
8020
|
}).filter(Boolean))].map((e6) => {
|
|
7984
8021
|
var t3;
|
|
7985
|
-
return { glyph: (t3 =
|
|
8022
|
+
return { glyph: (t3 = ov[e6]) == null ? "" : t3, label: _y(e6) };
|
|
7986
8023
|
}).filter((e6) => e6.glyph);
|
|
7987
|
-
|
|
8024
|
+
$y.insertAdjacentHTML("beforeend", vy([{ title: "Bodies", items: a2 }, { title: "Aspects", items: o2 }])), $y.removeAttribute("hidden");
|
|
7988
8025
|
let s2 = document.getElementById("cw-aspect-vis-toggle");
|
|
7989
8026
|
s2 == null || s2.addEventListener("click", () => {
|
|
7990
|
-
|
|
7991
|
-
}),
|
|
8027
|
+
_b = !_b, ly(_b), s2.classList.toggle("active", _b), s2.querySelector(".toggle-icon").textContent = _b ? "\u2295" : "\u2296";
|
|
8028
|
+
}), $y.querySelectorAll(".orb-preset-btn:not(.node-btn)").forEach((e6) => {
|
|
7992
8029
|
e6.addEventListener("click", () => {
|
|
7993
8030
|
var t3;
|
|
7994
8031
|
let n3 = parseFloat((t3 = e6.dataset.orb) == null ? "8" : t3);
|
|
7995
|
-
n3 !==
|
|
8032
|
+
n3 !== vb && (vb = n3, $y.querySelectorAll(".orb-preset-btn:not(.node-btn)").forEach((e7) => e7.classList.toggle("active", e7.dataset.orb === String(n3))), uy(n3));
|
|
7996
8033
|
});
|
|
7997
|
-
}),
|
|
8034
|
+
}), $y.querySelectorAll(".node-btn").forEach((e6) => {
|
|
7998
8035
|
e6.addEventListener("click", () => {
|
|
7999
8036
|
let t3 = e6.dataset.node === "mean" ? "mean" : "true";
|
|
8000
|
-
t3 ===
|
|
8037
|
+
t3 === yb || !$ || (yb = t3, gv(t3), cb($));
|
|
8001
8038
|
});
|
|
8002
8039
|
});
|
|
8003
8040
|
}
|
|
8004
|
-
async function
|
|
8005
|
-
if (
|
|
8041
|
+
async function xb(e5, t2) {
|
|
8042
|
+
if (ab) try {
|
|
8006
8043
|
let n2 = "[Chart Wheel] Selected ".concat(e5, " \u2014 ").concat(Object.entries(t2).filter(([, e6]) => e6 != null && e6 !== false && e6 !== "").map(([e6, t3]) => "".concat(e6, ": ").concat(t3)).join(", "));
|
|
8007
|
-
await
|
|
8044
|
+
await nb.updateModelContext({ content: [{ type: "text", text: n2 }] });
|
|
8008
8045
|
} catch (e6) {
|
|
8009
8046
|
console.warn("[ChartWheel] \u26A0\uFE0F updateModelContext failed:", e6);
|
|
8010
8047
|
}
|
|
8011
8048
|
}
|
|
8012
|
-
async function
|
|
8049
|
+
async function Sb(e5) {
|
|
8013
8050
|
var t2, n2, r2, i2;
|
|
8014
|
-
|
|
8051
|
+
mb = null, Qy == null || Qy.querySelectorAll(".pattern-pill").forEach((e6) => {
|
|
8015
8052
|
var t3;
|
|
8016
8053
|
e6.classList.remove("active");
|
|
8017
8054
|
let n3 = (t3 = e6.dataset.color) == null ? "#888" : t3;
|
|
8018
8055
|
e6.style.color = n3, e6.style.borderColor = n3, e6.style.background = "transparent";
|
|
8019
|
-
}), await
|
|
8056
|
+
}), await xb("planet", { planet: e5.name, longitude: e5.longitude, sign: (t2 = e5.sign) == null ? null : t2, house: (n2 = e5.house) == null ? null : n2, retrograde: (r2 = e5.retrograde) == null ? false : r2, speed: (i2 = e5.speed) == null ? null : i2 });
|
|
8020
8057
|
}
|
|
8021
|
-
async function
|
|
8058
|
+
async function Cb(e5) {
|
|
8022
8059
|
var t2, n2;
|
|
8023
|
-
await
|
|
8060
|
+
await xb("house", { house_number: e5.number, sign: (t2 = e5.sign) == null ? null : t2, cusp_longitude: e5.cusp_lon, ruler: (n2 = e5.ruler) == null ? null : n2 });
|
|
8024
8061
|
}
|
|
8025
|
-
async function
|
|
8062
|
+
async function wb(e5) {
|
|
8026
8063
|
var t2, n2, r2, i2;
|
|
8027
|
-
await
|
|
8064
|
+
await xb("aspect", { planet1: e5.planet1, planet2: e5.planet2, aspect_type: (t2 = e5.type) == null ? null : t2, orb: (n2 = e5.orb) == null ? null : n2, applying: (r2 = e5.applying) == null ? null : r2, angle: (i2 = e5.angle) == null ? null : i2 });
|
|
8028
8065
|
}
|
|
8029
|
-
function
|
|
8066
|
+
function Tb() {
|
|
8030
8067
|
return async (e5) => {
|
|
8031
8068
|
try {
|
|
8032
8069
|
var t2, n2;
|
|
8033
|
-
let r2 = await
|
|
8070
|
+
let r2 = await nb.createSamplingMessage({ messages: [{ role: "user", content: { type: "text", text: "You are interpreting a specific element in a natal chart. Be specific to the chart data \u2014 never generic. 2-3 sentences max.\n\nUser Request: ".concat(e5) } }], systemPrompt: "You are a professional Western astrologer giving a focused natal interpretation. Be specific to the chart data provided \u2014 never generic. Insightful and concise.", maxTokens: 300 });
|
|
8034
8071
|
return (t2 = r2 == null || (n2 = r2.content) == null ? void 0 : n2.text) == null ? null : t2;
|
|
8035
8072
|
} catch (e6) {
|
|
8036
8073
|
return console.error("[ChartWheel] Sampling failed:", e6), "Unable to load interpretation right now.";
|
|
8037
8074
|
}
|
|
8038
8075
|
};
|
|
8039
8076
|
}
|
|
8040
|
-
async function
|
|
8077
|
+
async function Eb(e5) {
|
|
8041
8078
|
try {
|
|
8042
|
-
(await
|
|
8079
|
+
(await nb.sendMessage({ role: "user", content: [{ type: "text", text: e5 }] })).isError && console.error("[ChartWheel] Host rejected sendMessage");
|
|
8043
8080
|
} catch (e6) {
|
|
8044
8081
|
console.error("[ChartWheel] sendMessage failed:", e6);
|
|
8045
8082
|
}
|
|
8046
8083
|
}
|
|
8047
|
-
async function
|
|
8084
|
+
async function Db() {
|
|
8048
8085
|
var e5, t2, n2, r2;
|
|
8049
8086
|
if (!$) return;
|
|
8050
|
-
let i2 = $, a2 = (e5 = i2._birth_params) == null ? {} : e5, o2 = (t2 = (n2 = a2.name) == null ? a2.location : n2) == null ? "this person" : t2, s2 =
|
|
8087
|
+
let i2 = $, a2 = (e5 = i2._birth_params) == null ? {} : e5, o2 = (t2 = (n2 = a2.name) == null ? a2.location : n2) == null ? "this person" : t2, s2 = vv(i2.planets), c2 = ((r2 = i2.aspects) == null ? [] : r2).filter((e6) => {
|
|
8051
8088
|
var t3;
|
|
8052
8089
|
return ["conjunction", "opposition", "trine", "square", "sextile"].includes((t3 = e6.type) == null ? "" : t3);
|
|
8053
8090
|
}).slice(0, 8).map((e6) => " \u2022 ".concat(e6.planet1, " ").concat(e6.type, " ").concat(e6.planet2, " (").concat(Number(e6.orb).toFixed(1), "\xB0, ").concat(e6.applying ? "applying" : "separating", ")")).join("\n") || " \u2022 No major aspects found";
|
|
8054
|
-
await
|
|
8091
|
+
await Eb("Please give a complete natal chart interpretation for ".concat(o2, ".\n\nKey planet placements:\n").concat(s2.slice(0, 5).map((e6) => {
|
|
8055
8092
|
var t3;
|
|
8056
8093
|
return " \u2022 ".concat(e6.name, " in ").concat((t3 = e6.sign) == null ? "?" : t3).concat(e6.house ? ", House ".concat(e6.house) : "").concat(e6.retrograde ? " \u211E" : "");
|
|
8057
8094
|
}).join("\n"), "\n\nMajor aspects:\n").concat(c2, "\n\nCover: (1) Core identity and soul purpose (Sun, Moon, Ascendant), (2) The chart's dominant element, modality, and overall signature, (3) The most significant aspects and their psychological themes, (4) Key life areas of focus and challenge, (5) A practical synthesis \u2014 who is this person and what is their path?"));
|
|
8058
8095
|
}
|
|
8059
|
-
async function
|
|
8096
|
+
async function Ob() {
|
|
8060
8097
|
var e5, t2, n2, r2;
|
|
8061
8098
|
if (!$) return;
|
|
8062
8099
|
let i2 = $, a2 = (e5 = i2._birth_params) == null ? {} : e5;
|
|
8063
|
-
await
|
|
8100
|
+
await Eb("I'm exploring the natal chart for ".concat((t2 = (n2 = a2.name) == null ? a2.location : n2) == null ? "this chart" : t2, ". Key placements: ").concat(vv(i2.planets).slice(0, 4).map((e6) => {
|
|
8064
8101
|
var t3;
|
|
8065
8102
|
return "".concat(e6.name, " in ").concat((t3 = e6.sign) == null ? "?" : t3).concat(e6.house ? " H".concat(e6.house) : "");
|
|
8066
8103
|
}).join(", ") || "unknown placements", ". Major aspects: ").concat(((r2 = i2.aspects) == null ? [] : r2).filter((e6) => {
|
|
@@ -8068,7 +8105,7 @@ async function vb() {
|
|
|
8068
8105
|
return ["conjunction", "opposition", "trine", "square", "sextile"].includes((t3 = e6.type) == null ? "" : t3);
|
|
8069
8106
|
}).slice(0, 5).map((e6) => "".concat(e6.planet1, " ").concat(e6.type, " ").concat(e6.planet2, " (").concat(Number(e6.orb).toFixed(1), "\xB0)")).join(", ") || "none detected", ".\n\nBased on this chart, please suggest 3-4 specific, insightful questions I could ask to understand this person more deeply \u2014 such as how particular placements manifest in real life, the most significant aspect dynamics, or how to integrate the chart's core tensions. Present each as a tappable question I can ask you."));
|
|
8070
8107
|
}
|
|
8071
|
-
async function
|
|
8108
|
+
async function kb(e5) {
|
|
8072
8109
|
let t2 = "";
|
|
8073
8110
|
if (e5.type === "planet") {
|
|
8074
8111
|
var n2;
|
|
@@ -8097,52 +8134,52 @@ async function yb(e5) {
|
|
|
8097
8134
|
t2 = "Interpret the ".concat(n3.angle, " at ").concat(n3.position, " (").concat(n3.sign, " \xB7 ").concat(n3.element, " \xB7 ").concat(n3.modality, ") in this natal chart. Give a focused interpretation of what this angle represents for the native \u2014 identity, life direction, relationships, or roots depending on which angle \u2014 and how the sign on the angle shapes that expression.");
|
|
8098
8135
|
}
|
|
8099
8136
|
if (t2) {
|
|
8100
|
-
t2 =
|
|
8137
|
+
t2 = My(t2, $ == null ? void 0 : $._birth_params, "Natal chart");
|
|
8101
8138
|
try {
|
|
8102
|
-
let e6 = await
|
|
8139
|
+
let e6 = await nb.sendMessage({ role: "user", content: [{ type: "text", text: t2 }] });
|
|
8103
8140
|
if (e6.isError) throw console.error("[ChartWheel] \u274C Host rejected sendMessage:", e6), Error("Host rejected message");
|
|
8104
8141
|
} catch (e6) {
|
|
8105
8142
|
throw console.error("[ChartWheel] \u274C sendMessage failed:", e6), e6;
|
|
8106
8143
|
}
|
|
8107
8144
|
}
|
|
8108
8145
|
}
|
|
8109
|
-
async function
|
|
8146
|
+
async function Ab(e5) {
|
|
8110
8147
|
if (!($ != null && $._birth_params)) {
|
|
8111
|
-
|
|
8148
|
+
hy(Zy, rb);
|
|
8112
8149
|
return;
|
|
8113
8150
|
}
|
|
8114
8151
|
try {
|
|
8115
8152
|
var t2, n2, r2, i2;
|
|
8116
|
-
let a2 =
|
|
8117
|
-
a2 ? ($ = a2,
|
|
8153
|
+
let a2 = Oy(await nb.callServerTool({ name: "chart_wheel_recalculate", arguments: { datetime: $._birth_params.datetime, timezone: (t2 = $._birth_params.timezone) == null ? void 0 : t2, latitude: (n2 = $._birth_params.latitude) == null ? void 0 : n2, longitude: (r2 = $._birth_params.longitude) == null ? void 0 : r2, location: (i2 = $._birth_params.location) == null ? void 0 : i2, house_system: e5 } }));
|
|
8154
|
+
a2 ? ($ = a2, rb = e5, cb(a2)) : hy(Zy, rb);
|
|
8118
8155
|
} catch (e6) {
|
|
8119
|
-
console.error("[Chart] Recalculate failed:", e6),
|
|
8156
|
+
console.error("[Chart] Recalculate failed:", e6), hy(Zy, rb);
|
|
8120
8157
|
}
|
|
8121
8158
|
}
|
|
8122
|
-
var
|
|
8123
|
-
function
|
|
8124
|
-
|
|
8159
|
+
var jb;
|
|
8160
|
+
function Mb() {
|
|
8161
|
+
jb && (clearTimeout(jb), jb = void 0);
|
|
8125
8162
|
}
|
|
8126
|
-
function
|
|
8127
|
-
|
|
8163
|
+
function Nb(e5, t2) {
|
|
8164
|
+
Mb(), qy.setAttribute("hidden", ""), Py({ container: Jy, message: e5, onRetry: t2 });
|
|
8128
8165
|
}
|
|
8129
|
-
function
|
|
8130
|
-
|
|
8131
|
-
|
|
8132
|
-
}, 3e4),
|
|
8166
|
+
function Pb() {
|
|
8167
|
+
Mb(), Jy.setAttribute("hidden", ""), qy.removeAttribute("hidden"), jb = setTimeout(() => {
|
|
8168
|
+
Nb("The chart didn't load. Tap to try again.", Pb);
|
|
8169
|
+
}, 3e4), nb.sendMessage({ role: "user", content: [{ type: "text", text: "Please regenerate the chart wheel." }] }).catch(() => {
|
|
8133
8170
|
});
|
|
8134
8171
|
}
|
|
8135
|
-
|
|
8136
|
-
|
|
8172
|
+
Wy(nb, { loadingEl: qy, contentEl: Jy, statusFn: sb, paramControls: () => ib }), jb = setTimeout(() => {
|
|
8173
|
+
Nb("Chart data is taking longer than expected.", Pb);
|
|
8137
8174
|
}, 3e4), (async () => {
|
|
8138
8175
|
try {
|
|
8139
|
-
await
|
|
8140
|
-
let e5 =
|
|
8141
|
-
|
|
8142
|
-
$ &&
|
|
8143
|
-
}), $ &&
|
|
8176
|
+
await nb.connect();
|
|
8177
|
+
let e5 = nb.getHostCapabilities();
|
|
8178
|
+
ab = !!(e5 != null && e5.modelContext), ob = !!(e5 != null && e5.sampling), Hy(nb, document.getElementById("pan-zoom-controls"), ["aspect-filter", "controls-panel", "param-controls-container", "chart-info", "patterns-strip", "info-panel", "cw-action-bar"]), Ky(nb), v_(nb, () => {
|
|
8179
|
+
$ && cb($);
|
|
8180
|
+
}), $ && cb($);
|
|
8144
8181
|
} catch (e5) {
|
|
8145
|
-
console.error("[ChartWheel] \u274C app.connect() FAILED:", e5),
|
|
8182
|
+
console.error("[ChartWheel] \u274C app.connect() FAILED:", e5), Nb("The chart didn't load. Tap to try again.", Pb);
|
|
8146
8183
|
}
|
|
8147
8184
|
})();
|
|
8148
8185
|
</script>
|