From 907289d7dc758d974fdff18020c73edf4bed4bce Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Wed, 23 Sep 2026 21:39:07 +0200 Subject: [PATCH] umbau(boxwart): neue Oberflaeche im Cockpit-Stil (Richtung A), Werkzeuge angehoben MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drei Seiten statt zehn: Start, Updates, Modelle — am PC mit Kopfnavigation, am Handy mit Leiste unten. Umsetzung von Mockup A („Cockpit“), vom User am 23.09. gewaehlt. - Start: Hauptwarnleuchte + 8 Warnlampen, Rundinstrumente mit Live-Werten aus dem Strom (Speicher, Temperatur, Platte) und Laufzeit-Zaehlwerk, Checkliste der Waechter-Hinweise mit ihren Knoepfen, Flugplan (heute gelaufen / geplant), Radar-Kasten. - Updates: Bausteine mit „Laeuft → Neu“ und Zusammenfassung, laufende Auftraege, Verlauf der Sonntagslaeufe (neu: GET /api/updates/verlauf), Sicherungen samt Zurueckspielen mit Rueckfrage. - Modelle: Speicherbalken, Rollen Hirn/Coder/Dritte Rolle, wer die Modelle nutzt (7 Tage + 24 h je Stunde), Modell-Radar, weitere Eintraege, Modelle selbst suchen. - Schubladen: Dienste mit Protokoll und Neustart, Einstellungen (HF-Zugang), Hermes-Link. - Werkzeuge: Vite 8, React 19.3 mit React Compiler 1.0 (Babel), vitest 5, Tailwind 4.3, shadcn 4 (Radix) fuer Dialog/Schublade/Knopf, Schriften Barlow/Barlow Condensed/ JetBrains Mono. Entfernt: recharts, cmdk, Kraftgraph, zustand, Inter, Space Grotesk. - Startbuendel 115 KB gzip (Budget 140); Updates/Modelle/Schubladen laden bei Bedarf. - 16 Oberflaechen-Tests (Instrument-Bogen, Hauptleuchte, Zeitformate, Versionen). Co-Authored-By: Claude Opus 5.5 --- backend/routers/boxwart.py | 6 + backend/services/waechter.py | 22 + frontend/components.json | 25 + frontend/dist/assets/AgentView-Ddy3G6Cn.js | 6 - frontend/dist/assets/ChronikView-79MqWZGv.js | 36 - .../dist/assets/CommandPalette-CUaikJDv.js | 51 - frontend/dist/assets/ConnectView-CdvOrseN.js | 16 - frontend/dist/assets/Dienste-D4Tr6Z-Y.js | 1 + .../dist/assets/Einstellungen-PGljNxC2.js | 1 + frontend/dist/assets/GuideView-CxJU6Qxs.js | 36 - frontend/dist/assets/IdeenAnsicht-Cy8yw2ZX.js | 40 - frontend/dist/assets/JobsBar-95gsUJZs.js | 1 - frontend/dist/assets/KonsoleView-CSxygCPx.js | 1 - .../dist/assets/LiveAreaChartImpl-CUepOhWM.js | 61 - frontend/dist/assets/MehrMenue-9EJ_I5Is.js | 1 + frontend/dist/assets/Modelle-tXYT-9PF.js | 1 + frontend/dist/assets/ModelsView-dw81nBmA.js | 83 - .../dist/assets/Protokollfenster-CDb28asU.js | 1 + frontend/dist/assets/SectionLabel-B7ySrBs7.js | 1 - frontend/dist/assets/SkillsView-DqlZxdwQ.js | 6 - frontend/dist/assets/SystemDrawer-CpUj62ev.js | 42 - frontend/dist/assets/Updates-BJL5TrHW.js | 2 + frontend/dist/assets/WissenView-BoYalgKN.js | 52 - frontend/dist/assets/arrow-right-CNrCtUoh.js | 6 - ...-condensed-latin-500-normal-BgYH2mbd.woff2 | Bin 0 -> 21424 bytes ...w-condensed-latin-500-normal-HIEiP5Ov.woff | Bin 0 -> 18600 bytes ...w-condensed-latin-600-normal-BFJEwTuo.woff | Bin 0 -> 18892 bytes ...-condensed-latin-600-normal-DepVgxBB.woff2 | Bin 0 -> 22308 bytes ...w-condensed-latin-700-normal-Dmwat-ge.woff | Bin 0 -> 18824 bytes ...-condensed-latin-700-normal-v1xN8_Wq.woff2 | Bin 0 -> 22444 bytes ...ndensed-latin-ext-500-normal-B1RE8WP7.woff | Bin 0 -> 11864 bytes ...densed-latin-ext-500-normal-yA5ONLQ9.woff2 | Bin 0 -> 14180 bytes ...densed-latin-ext-600-normal-18ESti3H.woff2 | Bin 0 -> 14516 bytes ...ndensed-latin-ext-600-normal-Clv9cIcR.woff | Bin 0 -> 11972 bytes ...ndensed-latin-ext-700-normal-BIHFfxf0.woff | Bin 0 -> 11988 bytes ...densed-latin-ext-700-normal-CwuXbfVR.woff2 | Bin 0 -> 14640 bytes ...densed-vietnamese-500-normal-CsrJDWc5.woff | Bin 0 -> 6044 bytes ...ensed-vietnamese-500-normal-DjeaNLFD.woff2 | Bin 0 -> 7524 bytes ...ensed-vietnamese-600-normal-A5AYRdjN.woff2 | Bin 0 -> 7696 bytes ...densed-vietnamese-600-normal-CNlPk46_.woff | Bin 0 -> 6076 bytes ...ensed-vietnamese-700-normal-DYeBwlKR.woff2 | Bin 0 -> 7636 bytes ...densed-vietnamese-700-normal-DhIzd8Tb.woff | Bin 0 -> 6096 bytes .../barlow-latin-400-normal-fsAxiSwU.woff | Bin 0 -> 19584 bytes .../barlow-latin-400-normal-qiz4-Cze.woff2 | Bin 0 -> 22196 bytes .../barlow-latin-500-normal-BPAOfeC8.woff2 | Bin 0 -> 22008 bytes .../barlow-latin-500-normal-C1h8hMer.woff | Bin 0 -> 19516 bytes .../barlow-latin-600-normal-CNwfPWQD.woff | Bin 0 -> 19884 bytes .../barlow-latin-600-normal-DILqtrty.woff2 | Bin 0 -> 22772 bytes .../barlow-latin-ext-400-normal-CvBsJvxq.woff | Bin 0 -> 12312 bytes ...barlow-latin-ext-400-normal-HxX4XjxC.woff2 | Bin 0 -> 14268 bytes .../barlow-latin-ext-500-normal-CJPcKP2Q.woff | Bin 0 -> 12412 bytes ...barlow-latin-ext-500-normal-DOaysfXq.woff2 | Bin 0 -> 14416 bytes ...barlow-latin-ext-600-normal-B8NK_A3D.woff2 | Bin 0 -> 14968 bytes .../barlow-latin-ext-600-normal-DMVRjfRT.woff | Bin 0 -> 12600 bytes ...barlow-vietnamese-400-normal-BFeobeCK.woff | Bin 0 -> 6092 bytes ...arlow-vietnamese-400-normal-Dpl4UHAZ.woff2 | Bin 0 -> 7588 bytes ...barlow-vietnamese-500-normal-GNfB7rCE.woff | Bin 0 -> 6148 bytes ...arlow-vietnamese-500-normal-zTViEIzf.woff2 | Bin 0 -> 7668 bytes ...barlow-vietnamese-600-normal-CA_GiK2e.woff | Bin 0 -> 6228 bytes ...arlow-vietnamese-600-normal-DcjprdFV.woff2 | Bin 0 -> 7896 bytes frontend/dist/assets/button-Dd8hfusv.js | 1 + frontend/dist/assets/chevron-down-1Vx9W9jM.js | 6 - frontend/dist/assets/clock-Bth-s5Y3.js | 6 - .../dist/assets/cloud-download-BGirmHxu.js | 11 - frontend/dist/assets/code-xml-Bf-y5tB9.js | 6 - frontend/dist/assets/dist-CgRgLCFz.js | 41 + .../dist/assets/external-link-DcJao8h4.js | 6 - frontend/dist/assets/file-text-BSQuFPZM.js | 6 - frontend/dist/assets/index-CVfMhtws.js | 1 - frontend/dist/assets/index-DMY9lUCb.js | 264 - frontend/dist/assets/index-DbOQN8y9.css | 2 + frontend/dist/assets/index-Dd2BxC7X.js | 11 + frontend/dist/assets/index-d4K0juid.css | 1 - .../inter-latin-400-normal-C38fXH4l.woff2 | Bin 23664 -> 0 bytes .../inter-latin-500-normal-Cerq10X2.woff2 | Bin 24272 -> 0 bytes .../inter-latin-600-normal-LgqL8muc.woff2 | Bin 24452 -> 0 bytes .../inter-latin-700-normal-Yt3aPRUw.woff2 | Bin 24356 -> 0 bytes ...ns-mono-cyrillic-400-normal-BEIGL1Tu.woff2 | Bin 0 -> 5328 bytes ...ins-mono-cyrillic-400-normal-ugxPyKxw.woff | Bin 0 -> 6976 bytes ...ins-mono-cyrillic-500-normal-DJqRU3vO.woff | Bin 0 -> 7024 bytes ...ns-mono-cyrillic-500-normal-DmUKJPL_.woff2 | Bin 0 -> 5356 bytes ...brains-mono-greek-400-normal-B9oWc5Lo.woff | Bin 0 -> 5664 bytes ...rains-mono-greek-400-normal-C190GLew.woff2 | Bin 0 -> 4228 bytes ...brains-mono-greek-500-normal-D7SFKleX.woff | Bin 0 -> 5720 bytes ...rains-mono-greek-500-normal-JpySY46c.woff2 | Bin 0 -> 4284 bytes ...brains-mono-latin-400-normal-6-qcROiO.woff | Bin 0 -> 27496 bytes ...brains-mono-latin-500-normal-CJOVTJB7.woff | Bin 0 -> 28208 bytes ...rains-mono-latin-600-normal-C8RAYTDA.woff2 | Bin 21860 -> 0 bytes ...rains-mono-latin-700-normal-BYuf6tUa.woff2 | Bin 21908 -> 0 bytes ...s-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 | Bin 0 -> 7336 bytes ...ns-mono-latin-ext-400-normal-fXTG6kC5.woff | Bin 0 -> 10128 bytes ...s-mono-latin-ext-500-normal-Cut-4mMH.woff2 | Bin 0 -> 7528 bytes ...ns-mono-latin-ext-500-normal-ckzbgY84.woff | Bin 0 -> 10336 bytes ...s-mono-vietnamese-400-normal-CqNFfHCs.woff | Bin 0 -> 5372 bytes ...s-mono-vietnamese-500-normal-DNRqzVM1.woff | Bin 0 -> 5476 bytes frontend/dist/assets/layers-CcL78b5Q.js | 6 - frontend/dist/assets/power-DsvD9qMX.js | 6 - frontend/dist/assets/refresh-cw-hAcZthO8.js | 6 - frontend/dist/assets/search-D_8DnBvS.js | 6 - frontend/dist/assets/sheet-DWG2Q04V.js | 1 + frontend/dist/assets/shield-BtE9Fxv6.js | 6 - ...ce-grotesk-latin-400-normal-CJ-V5oYT.woff2 | Bin 13388 -> 0 bytes ...ce-grotesk-latin-600-normal-DjKNqYRj.woff2 | Bin 13284 -> 0 bytes ...ce-grotesk-latin-700-normal-RjhwGPKo.woff2 | Bin 12840 -> 0 bytes frontend/dist/assets/string-DoZi9Vij.js | 1 - frontend/dist/assets/zap-2yha4rs4.js | 21 - frontend/dist/index.html | 33 +- frontend/index.html | 6 +- frontend/package-lock.json | 7747 ++++++++++++----- frontend/package.json | 45 +- frontend/src/App.tsx | 382 - frontend/src/app/MehrMenue.tsx | 34 + frontend/src/app/Meldungen.tsx | 33 + frontend/src/app/Shell.tsx | 172 + frontend/src/app/palette/register.test.ts | 104 - frontend/src/app/palette/register.ts | 194 - frontend/src/app/router.tsx | 203 +- frontend/src/app/shell/Meldungen.tsx | 80 - frontend/src/app/shell/Statusleiste.tsx | 203 - frontend/src/app/store.test.ts | 85 - frontend/src/app/store.ts | 119 - frontend/src/components/AppErrorBoundary.tsx | 38 - frontend/src/components/CapsChips.tsx | 27 - frontend/src/components/CommandPalette.tsx | 161 - frontend/src/components/CustomDialog.tsx | 84 - frontend/src/components/ExpertToggle.tsx | 38 - frontend/src/components/RouteFehler.tsx | 61 - frontend/src/components/SystemDrawer.tsx | 576 -- .../src/components/cockpit/Bestaetigen.tsx | 37 + .../src/components/cockpit/Checkliste.tsx | 97 + frontend/src/components/cockpit/Chip.tsx | 36 + frontend/src/components/cockpit/Flugplan.tsx | 31 + .../src/components/cockpit/Instrument.tsx | 50 + frontend/src/components/cockpit/Lampe.tsx | 42 + frontend/src/components/cockpit/Panel.tsx | 33 + .../components/cockpit/Protokollfenster.tsx | 25 + frontend/src/components/cockpit/Warnpanel.tsx | 47 + frontend/src/components/cockpit/Zaehlwerk.tsx | 30 + .../src/components/cockpit/cockpit.test.tsx | 55 + .../src/components/dashboard/LatencyCard.tsx | 134 - .../dashboard/LiveAreaChart.test.tsx | 41 - .../components/dashboard/LiveAreaChart.tsx | 33 - .../dashboard/LiveAreaChartImpl.tsx | 105 - .../src/components/dashboard/RangeSwitch.tsx | 27 - .../components/dashboard/SystemStatusCard.tsx | 89 - .../dashboard/TokenPerformanceCard.tsx | 103 - .../src/components/dashboard/chartTypes.ts | 15 - frontend/src/components/models/JobsBar.tsx | 68 - frontend/src/components/models/LaneEditor.tsx | 181 - .../src/components/models/ModelBadges.tsx | 60 - .../src/components/models/SpecDraftModal.tsx | 171 - .../src/components/models/WarmSetManager.tsx | 203 - frontend/src/components/system/LogConsole.tsx | 119 - .../src/components/system/SettingsTab.tsx | 182 - .../components/system/UpdateDetailModal.tsx | 196 - frontend/src/components/system/rows.tsx | 44 - frontend/src/components/ui/SectionLabel.tsx | 12 - frontend/src/components/ui/button.tsx | 86 +- frontend/src/components/ui/dialog.tsx | 166 + frontend/src/components/ui/sheet.tsx | 147 + .../features/agent/Werkzeugverlauf.test.tsx | 99 - .../src/features/agent/Werkzeugverlauf.tsx | 138 - .../features/chronik/Dichteleiste.test.tsx | 59 - .../src/features/chronik/Dichteleiste.tsx | 74 - frontend/src/features/ideen/ErgebnisPanel.tsx | 55 - frontend/src/features/ideen/IdeenAnsicht.tsx | 676 -- frontend/src/features/ideen/KonzeptPanel.tsx | 73 - frontend/src/features/ideen/ProjektGruppe.tsx | 86 - frontend/src/features/ideen/Wahl.tsx | 27 - frontend/src/features/ideen/WeiterLeiste.tsx | 113 - frontend/src/features/ideen/quote.ts | 22 - frontend/src/features/ideen/zustaende.ts | 55 - frontend/src/index.css | 391 +- frontend/src/lib/abfragen.ts | 173 + frontend/src/lib/anzeige.ts | 78 + frontend/src/lib/api.test.ts | 116 - frontend/src/lib/api.ts | 675 +- frontend/src/lib/events.ts | 95 - frontend/src/lib/format.ts | 38 - frontend/src/lib/hashUmleitung.test.ts | 70 - frontend/src/lib/hashUmleitung.ts | 26 - frontend/src/lib/markdown.tsx | 71 - frontend/src/lib/meldungen.ts | 40 + frontend/src/lib/metricsStore.test.ts | 120 - frontend/src/lib/metricsStore.ts | 114 - frontend/src/lib/queries.ts | 262 - frontend/src/lib/roleMeta.ts | 145 - frontend/src/lib/strom.ts | 89 + frontend/src/lib/typen.ts | 153 + frontend/src/lib/useDialog.tsx | 59 - frontend/src/lib/useLucyHealth.ts | 235 - frontend/src/lib/useSystemHistory.ts | 42 - frontend/src/lib/utils.ts | 12 +- frontend/src/lib/zeit.test.ts | 64 + frontend/src/lib/zeit.ts | 65 + frontend/src/main.tsx | 38 +- frontend/src/nav.ts | 53 - frontend/src/views/AgentView.tsx | 350 - frontend/src/views/ChronikView.tsx | 249 - frontend/src/views/ConnectView.tsx | 315 - frontend/src/views/Dienste.tsx | 68 + frontend/src/views/Einstellungen.tsx | 89 + frontend/src/views/GraphErrorBoundary.tsx | 21 - frontend/src/views/GraphView.tsx | 488 -- frontend/src/views/GuideView.tsx | 528 -- frontend/src/views/IdeenView.tsx | 4 - frontend/src/views/KonsoleView.tsx | 92 - frontend/src/views/ModellSuche.tsx | 117 + frontend/src/views/Modelle.tsx | 250 + frontend/src/views/ModelsView.tsx | 71 - frontend/src/views/SkillsView.tsx | 129 - frontend/src/views/Start.tsx | 121 + frontend/src/views/Updates.tsx | 225 + frontend/src/views/WissenView.tsx | 291 - frontend/src/views/cockpit/CockpitTile.tsx | 68 - frontend/src/views/cockpit/CockpitView.tsx | 428 - frontend/src/views/guide/SystemSchaubild.tsx | 178 - frontend/src/views/models/Discover.tsx | 316 - frontend/src/views/models/ModelBrowse.tsx | 314 - .../models/werkbank/MaschinenraumBar.tsx | 133 - .../views/models/werkbank/ModelsWorkbench.tsx | 366 - .../src/views/models/werkbank/roleColors.ts | 29 - frontend/vite.config.ts | 21 +- 223 files changed, 8572 insertions(+), 15393 deletions(-) create mode 100644 frontend/components.json delete mode 100644 frontend/dist/assets/AgentView-Ddy3G6Cn.js delete mode 100644 frontend/dist/assets/ChronikView-79MqWZGv.js delete mode 100644 frontend/dist/assets/CommandPalette-CUaikJDv.js delete mode 100644 frontend/dist/assets/ConnectView-CdvOrseN.js create mode 100644 frontend/dist/assets/Dienste-D4Tr6Z-Y.js create mode 100644 frontend/dist/assets/Einstellungen-PGljNxC2.js delete mode 100644 frontend/dist/assets/GuideView-CxJU6Qxs.js delete mode 100644 frontend/dist/assets/IdeenAnsicht-Cy8yw2ZX.js delete mode 100644 frontend/dist/assets/JobsBar-95gsUJZs.js delete mode 100644 frontend/dist/assets/KonsoleView-CSxygCPx.js delete mode 100644 frontend/dist/assets/LiveAreaChartImpl-CUepOhWM.js create mode 100644 frontend/dist/assets/MehrMenue-9EJ_I5Is.js create mode 100644 frontend/dist/assets/Modelle-tXYT-9PF.js delete mode 100644 frontend/dist/assets/ModelsView-dw81nBmA.js create mode 100644 frontend/dist/assets/Protokollfenster-CDb28asU.js delete mode 100644 frontend/dist/assets/SectionLabel-B7ySrBs7.js delete mode 100644 frontend/dist/assets/SkillsView-DqlZxdwQ.js delete mode 100644 frontend/dist/assets/SystemDrawer-CpUj62ev.js create mode 100644 frontend/dist/assets/Updates-BJL5TrHW.js delete mode 100644 frontend/dist/assets/WissenView-BoYalgKN.js delete mode 100644 frontend/dist/assets/arrow-right-CNrCtUoh.js create mode 100644 frontend/dist/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2 create mode 100644 frontend/dist/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff create mode 100644 frontend/dist/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff create mode 100644 frontend/dist/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2 create mode 100644 frontend/dist/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff create mode 100644 frontend/dist/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2 create mode 100644 frontend/dist/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff create mode 100644 frontend/dist/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2 create mode 100644 frontend/dist/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2 create mode 100644 frontend/dist/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff create mode 100644 frontend/dist/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff create mode 100644 frontend/dist/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2 create mode 100644 frontend/dist/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff create mode 100644 frontend/dist/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2 create mode 100644 frontend/dist/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2 create mode 100644 frontend/dist/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff create mode 100644 frontend/dist/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2 create mode 100644 frontend/dist/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff create mode 100644 frontend/dist/assets/barlow-latin-400-normal-fsAxiSwU.woff create mode 100644 frontend/dist/assets/barlow-latin-400-normal-qiz4-Cze.woff2 create mode 100644 frontend/dist/assets/barlow-latin-500-normal-BPAOfeC8.woff2 create mode 100644 frontend/dist/assets/barlow-latin-500-normal-C1h8hMer.woff create mode 100644 frontend/dist/assets/barlow-latin-600-normal-CNwfPWQD.woff create mode 100644 frontend/dist/assets/barlow-latin-600-normal-DILqtrty.woff2 create mode 100644 frontend/dist/assets/barlow-latin-ext-400-normal-CvBsJvxq.woff create mode 100644 frontend/dist/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2 create mode 100644 frontend/dist/assets/barlow-latin-ext-500-normal-CJPcKP2Q.woff create mode 100644 frontend/dist/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2 create mode 100644 frontend/dist/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2 create mode 100644 frontend/dist/assets/barlow-latin-ext-600-normal-DMVRjfRT.woff create mode 100644 frontend/dist/assets/barlow-vietnamese-400-normal-BFeobeCK.woff create mode 100644 frontend/dist/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2 create mode 100644 frontend/dist/assets/barlow-vietnamese-500-normal-GNfB7rCE.woff create mode 100644 frontend/dist/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2 create mode 100644 frontend/dist/assets/barlow-vietnamese-600-normal-CA_GiK2e.woff create mode 100644 frontend/dist/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2 create mode 100644 frontend/dist/assets/button-Dd8hfusv.js delete mode 100644 frontend/dist/assets/chevron-down-1Vx9W9jM.js delete mode 100644 frontend/dist/assets/clock-Bth-s5Y3.js delete mode 100644 frontend/dist/assets/cloud-download-BGirmHxu.js delete mode 100644 frontend/dist/assets/code-xml-Bf-y5tB9.js create mode 100644 frontend/dist/assets/dist-CgRgLCFz.js delete mode 100644 frontend/dist/assets/external-link-DcJao8h4.js delete mode 100644 frontend/dist/assets/file-text-BSQuFPZM.js delete mode 100644 frontend/dist/assets/index-CVfMhtws.js delete mode 100644 frontend/dist/assets/index-DMY9lUCb.js create mode 100644 frontend/dist/assets/index-DbOQN8y9.css create mode 100644 frontend/dist/assets/index-Dd2BxC7X.js delete mode 100644 frontend/dist/assets/index-d4K0juid.css delete mode 100644 frontend/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 delete mode 100644 frontend/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 delete mode 100644 frontend/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 delete mode 100644 frontend/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 create mode 100644 frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2 create mode 100644 frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff create mode 100644 frontend/dist/assets/jetbrains-mono-cyrillic-500-normal-DJqRU3vO.woff create mode 100644 frontend/dist/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2 create mode 100644 frontend/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff create mode 100644 frontend/dist/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2 create mode 100644 frontend/dist/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff create mode 100644 frontend/dist/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 create mode 100644 frontend/dist/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff create mode 100644 frontend/dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff delete mode 100644 frontend/dist/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2 delete mode 100644 frontend/dist/assets/jetbrains-mono-latin-700-normal-BYuf6tUa.woff2 create mode 100644 frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 create mode 100644 frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff create mode 100644 frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 create mode 100644 frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-ckzbgY84.woff create mode 100644 frontend/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff create mode 100644 frontend/dist/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff delete mode 100644 frontend/dist/assets/layers-CcL78b5Q.js delete mode 100644 frontend/dist/assets/power-DsvD9qMX.js delete mode 100644 frontend/dist/assets/refresh-cw-hAcZthO8.js delete mode 100644 frontend/dist/assets/search-D_8DnBvS.js create mode 100644 frontend/dist/assets/sheet-DWG2Q04V.js delete mode 100644 frontend/dist/assets/shield-BtE9Fxv6.js delete mode 100644 frontend/dist/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2 delete mode 100644 frontend/dist/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2 delete mode 100644 frontend/dist/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2 delete mode 100644 frontend/dist/assets/string-DoZi9Vij.js delete mode 100644 frontend/dist/assets/zap-2yha4rs4.js delete mode 100644 frontend/src/App.tsx create mode 100644 frontend/src/app/MehrMenue.tsx create mode 100644 frontend/src/app/Meldungen.tsx create mode 100644 frontend/src/app/Shell.tsx delete mode 100644 frontend/src/app/palette/register.test.ts delete mode 100644 frontend/src/app/palette/register.ts delete mode 100644 frontend/src/app/shell/Meldungen.tsx delete mode 100644 frontend/src/app/shell/Statusleiste.tsx delete mode 100644 frontend/src/app/store.test.ts delete mode 100644 frontend/src/app/store.ts delete mode 100644 frontend/src/components/AppErrorBoundary.tsx delete mode 100644 frontend/src/components/CapsChips.tsx delete mode 100644 frontend/src/components/CommandPalette.tsx delete mode 100644 frontend/src/components/CustomDialog.tsx delete mode 100644 frontend/src/components/ExpertToggle.tsx delete mode 100644 frontend/src/components/RouteFehler.tsx delete mode 100644 frontend/src/components/SystemDrawer.tsx create mode 100644 frontend/src/components/cockpit/Bestaetigen.tsx create mode 100644 frontend/src/components/cockpit/Checkliste.tsx create mode 100644 frontend/src/components/cockpit/Chip.tsx create mode 100644 frontend/src/components/cockpit/Flugplan.tsx create mode 100644 frontend/src/components/cockpit/Instrument.tsx create mode 100644 frontend/src/components/cockpit/Lampe.tsx create mode 100644 frontend/src/components/cockpit/Panel.tsx create mode 100644 frontend/src/components/cockpit/Protokollfenster.tsx create mode 100644 frontend/src/components/cockpit/Warnpanel.tsx create mode 100644 frontend/src/components/cockpit/Zaehlwerk.tsx create mode 100644 frontend/src/components/cockpit/cockpit.test.tsx delete mode 100644 frontend/src/components/dashboard/LatencyCard.tsx delete mode 100644 frontend/src/components/dashboard/LiveAreaChart.test.tsx delete mode 100644 frontend/src/components/dashboard/LiveAreaChart.tsx delete mode 100644 frontend/src/components/dashboard/LiveAreaChartImpl.tsx delete mode 100644 frontend/src/components/dashboard/RangeSwitch.tsx delete mode 100644 frontend/src/components/dashboard/SystemStatusCard.tsx delete mode 100644 frontend/src/components/dashboard/TokenPerformanceCard.tsx delete mode 100644 frontend/src/components/dashboard/chartTypes.ts delete mode 100644 frontend/src/components/models/JobsBar.tsx delete mode 100644 frontend/src/components/models/LaneEditor.tsx delete mode 100644 frontend/src/components/models/ModelBadges.tsx delete mode 100644 frontend/src/components/models/SpecDraftModal.tsx delete mode 100644 frontend/src/components/models/WarmSetManager.tsx delete mode 100644 frontend/src/components/system/LogConsole.tsx delete mode 100644 frontend/src/components/system/SettingsTab.tsx delete mode 100644 frontend/src/components/system/UpdateDetailModal.tsx delete mode 100644 frontend/src/components/system/rows.tsx delete mode 100644 frontend/src/components/ui/SectionLabel.tsx create mode 100644 frontend/src/components/ui/dialog.tsx create mode 100644 frontend/src/components/ui/sheet.tsx delete mode 100644 frontend/src/features/agent/Werkzeugverlauf.test.tsx delete mode 100644 frontend/src/features/agent/Werkzeugverlauf.tsx delete mode 100644 frontend/src/features/chronik/Dichteleiste.test.tsx delete mode 100644 frontend/src/features/chronik/Dichteleiste.tsx delete mode 100644 frontend/src/features/ideen/ErgebnisPanel.tsx delete mode 100644 frontend/src/features/ideen/IdeenAnsicht.tsx delete mode 100644 frontend/src/features/ideen/KonzeptPanel.tsx delete mode 100644 frontend/src/features/ideen/ProjektGruppe.tsx delete mode 100644 frontend/src/features/ideen/Wahl.tsx delete mode 100644 frontend/src/features/ideen/WeiterLeiste.tsx delete mode 100644 frontend/src/features/ideen/quote.ts delete mode 100644 frontend/src/features/ideen/zustaende.ts create mode 100644 frontend/src/lib/abfragen.ts create mode 100644 frontend/src/lib/anzeige.ts delete mode 100644 frontend/src/lib/api.test.ts delete mode 100644 frontend/src/lib/events.ts delete mode 100644 frontend/src/lib/format.ts delete mode 100644 frontend/src/lib/hashUmleitung.test.ts delete mode 100644 frontend/src/lib/hashUmleitung.ts delete mode 100644 frontend/src/lib/markdown.tsx create mode 100644 frontend/src/lib/meldungen.ts delete mode 100644 frontend/src/lib/metricsStore.test.ts delete mode 100644 frontend/src/lib/metricsStore.ts delete mode 100644 frontend/src/lib/queries.ts delete mode 100644 frontend/src/lib/roleMeta.ts create mode 100644 frontend/src/lib/strom.ts create mode 100644 frontend/src/lib/typen.ts delete mode 100644 frontend/src/lib/useDialog.tsx delete mode 100644 frontend/src/lib/useLucyHealth.ts delete mode 100644 frontend/src/lib/useSystemHistory.ts create mode 100644 frontend/src/lib/zeit.test.ts create mode 100644 frontend/src/lib/zeit.ts delete mode 100644 frontend/src/nav.ts delete mode 100644 frontend/src/views/AgentView.tsx delete mode 100644 frontend/src/views/ChronikView.tsx delete mode 100644 frontend/src/views/ConnectView.tsx create mode 100644 frontend/src/views/Dienste.tsx create mode 100644 frontend/src/views/Einstellungen.tsx delete mode 100644 frontend/src/views/GraphErrorBoundary.tsx delete mode 100644 frontend/src/views/GraphView.tsx delete mode 100644 frontend/src/views/GuideView.tsx delete mode 100644 frontend/src/views/IdeenView.tsx delete mode 100644 frontend/src/views/KonsoleView.tsx create mode 100644 frontend/src/views/ModellSuche.tsx create mode 100644 frontend/src/views/Modelle.tsx delete mode 100644 frontend/src/views/ModelsView.tsx delete mode 100644 frontend/src/views/SkillsView.tsx create mode 100644 frontend/src/views/Start.tsx create mode 100644 frontend/src/views/Updates.tsx delete mode 100644 frontend/src/views/WissenView.tsx delete mode 100644 frontend/src/views/cockpit/CockpitTile.tsx delete mode 100644 frontend/src/views/cockpit/CockpitView.tsx delete mode 100644 frontend/src/views/guide/SystemSchaubild.tsx delete mode 100644 frontend/src/views/models/Discover.tsx delete mode 100644 frontend/src/views/models/ModelBrowse.tsx delete mode 100644 frontend/src/views/models/werkbank/MaschinenraumBar.tsx delete mode 100644 frontend/src/views/models/werkbank/ModelsWorkbench.tsx delete mode 100644 frontend/src/views/models/werkbank/roleColors.ts diff --git a/backend/routers/boxwart.py b/backend/routers/boxwart.py index da0c274..c698e95 100644 --- a/backend/routers/boxwart.py +++ b/backend/routers/boxwart.py @@ -176,3 +176,9 @@ def nutzung() -> dict: @router.get("/zeitplan") def zeitplan_route() -> dict: return zeitplan.flugplan() + + +@router.get("/updates/verlauf") +def updates_verlauf(anzahl: int = 8) -> dict: + """Die letzten Läufe des Sonntags-Updates (Hermes-Cron, executions.db nur lesend).""" + return {"laeufe": waechter.update_laeufe(max(1, min(anzahl, 30)))} diff --git a/backend/services/waechter.py b/backend/services/waechter.py index 193f7c4..6771b84 100644 --- a/backend/services/waechter.py +++ b/backend/services/waechter.py @@ -235,6 +235,28 @@ def _letzter_lauf(job_id: str) -> dict | None: return {"status": row[0], "started_at": row[1], "finished_at": row[2], "error": row[3]} +def update_laeufe(anzahl: int = 8) -> list[dict]: + """Letzte Läufe aller Update-Jobs (Name enthält „update“), neueste zuerst.""" + ids = {str(j.get("id")): str(j.get("name", "")) for j in _hermes_jobs() + if "update" in str(j.get("name", "")).lower()} + if not ids or not HERMES_EXEC_DB.exists(): + return [] + platz = ",".join("?" * len(ids)) + try: + con = sqlite3.connect(f"file:{HERMES_EXEC_DB}?mode=ro", uri=True, timeout=2) + try: + rows = con.execute( + f"select job_id, status, started_at, finished_at, error from executions " + f"where job_id in ({platz}) order by started_at desc limit ?", + (*ids, anzahl)).fetchall() + finally: + con.close() + except sqlite3.Error: + return [] + return [{"job": ids.get(r[0], r[0]), "status": r[1], "start": r[2], "ende": r[3], + "fehler": (r[4] or None)} for r in rows] + + def werkzeugfehler_im_lauf(zeilen: list[str], job_id: str, start_iso: str) -> tuple[int, str]: """Zählt 'Tool X returned error'-Zeilen eines Laufs in errors.log. Hermes markiert jede Zeile mit [cron___]; der Tag des Laufstarts reicht zur Zuordnung.""" diff --git a/frontend/components.json b/frontend/components.json new file mode 100644 index 0000000..5c23ec4 --- /dev/null +++ b/frontend/components.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "radix-nova", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/index.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "iconLibrary": "lucide", + "rtl": false, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "menuColor": "default", + "menuAccent": "subtle", + "registries": {} +} diff --git a/frontend/dist/assets/AgentView-Ddy3G6Cn.js b/frontend/dist/assets/AgentView-Ddy3G6Cn.js deleted file mode 100644 index 10d799e..0000000 --- a/frontend/dist/assets/AgentView-Ddy3G6Cn.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as B,M as T,j as e,N as p,W as g,b as n,J as D,T as G,z as L,O as $,f as R,k as F,u as I,r as q,P as y,Q as v,t as w,X as U,C as k,n as _,q as u}from"./index-DMY9lUCb.js";import{S}from"./SectionLabel-B7ySrBs7.js";import{C as K}from"./clock-Bth-s5Y3.js";import{E as O}from"./external-link-DcJao8h4.js";import{S as Q}from"./shield-BtE9Fxv6.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const C=B("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),h=l=>l.slice(11,19);function z(l){return l<1?`${Math.round(l*1e3)} ms`:`${l.toFixed(1)} s`}function V(){const{data:l,isLoading:s}=T();if(s)return e.jsxs("section",{className:"space-y-3",children:[e.jsx(S,{icon:p,children:"Werkzeug-Verlauf"}),e.jsx("div",{className:"mc-card-sm p-4 text-xs text-muted-foreground",children:"Lese Hermes' Log …"})]});if(!(l!=null&&l.verfuegbar))return null;const{rufe:o,werkzeuge:c,laeufe:i}=l,x=c.filter(r=>r.fehler>0);return e.jsxs("section",{className:"space-y-3",children:[e.jsxs(S,{icon:p,children:["Werkzeug-Verlauf · ",o.length," Rufe",x.length>0&&` · ${x.reduce((r,d)=>r+d.fehler,0)} Fehler`]}),e.jsxs("p",{className:"max-w-2xl text-[11px] leading-relaxed text-muted-foreground",children:["Gelesen aus Hermes' eigenem Log — Mission Control schaut zu, greift aber nicht ein. Was dort ",e.jsx("em",{children:"nicht"})," steht, steht auch hier nicht: Lucys Gedankengang und die Argumente eines Werkzeug-Rufs bleiben unsichtbar."]}),e.jsx("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:c.map(r=>{const d=r.fehler>0&&r.fehler===r.rufe;return e.jsxs("div",{className:n("mc-card-sm space-y-1.5 p-3",d&&"border-red-500/40 bg-red-500/5"),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(g,{className:n("h-3.5 w-3.5 shrink-0",d?"text-red-400":r.fehler?"text-amber-400":"text-primary"),"aria-hidden":"true"}),e.jsx("span",{className:"truncate font-mono text-xs font-semibold text-foreground",children:r.werkzeug}),d&&e.jsx("span",{className:"ml-auto shrink-0 rounded bg-red-500/15 px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wide text-red-300",children:"immer rot"})]}),e.jsxs("div",{className:"flex flex-wrap gap-x-3 gap-y-0.5 font-mono text-[10px] text-muted-foreground",children:[e.jsxs("span",{className:"tabular-nums",children:[r.rufe," Rufe"]}),e.jsxs("span",{className:n("tabular-nums",r.fehler>0&&"font-semibold text-red-400"),children:[r.fehler," Fehler"]}),e.jsxs("span",{className:"tabular-nums",children:["Ø ",z(r.dauer_schnitt_s)]})]}),r.letzter_fehler&&e.jsx("p",{className:"border-t border-border/30 pt-1.5 text-[10px] leading-relaxed text-red-300/90",children:r.letzter_fehler})]},r.werkzeug)})}),i.length>0&&e.jsx("div",{className:"mc-card-sm divide-y divide-border/30",children:i.map(r=>e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-1 px-3 py-2 font-mono text-[10px]",children:[e.jsx(K,{className:"h-3 w-3 shrink-0 text-muted-foreground","aria-hidden":"true"}),e.jsx("span",{className:"truncate font-semibold text-foreground",children:r.lauf}),e.jsxs("span",{className:"tabular-nums text-muted-foreground",children:[h(r.von),"–",h(r.bis)]}),e.jsxs("span",{className:"ml-auto tabular-nums text-muted-foreground",children:[r.rufe," Rufe"]}),r.fehler>0&&e.jsxs("span",{className:"tabular-nums font-semibold text-red-400",children:[r.fehler," Fehler"]})]},r.lauf))}),e.jsxs("details",{className:"mc-card-sm",children:[e.jsxs("summary",{className:"cursor-pointer px-3 py-2 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground hover:text-foreground",children:["Einzelne Rufe (",o.length,")"]}),e.jsx("ul",{className:"max-h-72 divide-y divide-border/20 overflow-y-auto scrollbar-thin border-t border-border/30",children:[...o].reverse().map((r,d)=>e.jsxs("li",{className:"flex items-start gap-2 px-3 py-1.5 font-mono text-[10px]",children:[r.ok?e.jsx(D,{className:"mt-px h-3 w-3 shrink-0 text-emerald-500","aria-hidden":"true"}):e.jsx(G,{className:"mt-px h-3 w-3 shrink-0 text-red-400","aria-hidden":"true"}),e.jsx("span",{className:"shrink-0 tabular-nums text-muted-foreground",children:h(r.zeit)}),e.jsx("span",{className:"shrink-0 font-semibold text-foreground",children:r.werkzeug}),e.jsx("span",{className:"shrink-0 tabular-nums text-muted-foreground",children:z(r.dauer_s)}),r.zeichen!=null&&e.jsxs("span",{className:"shrink-0 tabular-nums text-muted-foreground/60",children:[r.zeichen," Z."]}),r.fehler&&e.jsx("span",{className:"min-w-0 flex-1 truncate text-red-300/90",title:r.fehler,children:r.fehler})]},`${r.zeit}-${r.werkzeug}-${d}`))})]})]})}const J=["chat","coding","fast","heavy"];function se(){const l=L(),{data:s,error:o}=$(),{data:c}=R(),{showAlert:i,dialogElement:x}=F(),r=I(),d=o?String(o):"",[H,m]=q.useState(!1),E=(c==null?void 0:c.models)??[],f=t=>{var a;return((a=t==null?void 0:t.match(/:(\d+)/))==null?void 0:a[1])??""},b=f(s==null?void 0:s.gateway_url)||"8642",j=(s==null?void 0:s.pc_executor_url)??"",A=j.replace(/^https?:\/\//,""),P=f(j)||"7777";async function W(t){try{await _("/api/agent/brain",{method:"POST",body:JSON.stringify({model:t})}),i("Erledigt",`Hermes-Hirn zeigt jetzt auf das Alias '${t}'. Der Gateway-Dienst wurde neu gestartet.`),r.invalidateQueries({queryKey:u.agentStatus}),m(!1)}catch(a){i("Fehler",`Wechsel fehlgeschlagen: ${a.message||a}`)}}async function M(t){try{await _("/api/agent/brain/set",{method:"POST",body:JSON.stringify({model_id:t})}),i("Erledigt","Agent-Hirn gewechselt (warm gehalten). Gateway wurde neugestartet."),r.invalidateQueries({queryKey:u.agentStatus}),r.invalidateQueries({queryKey:u.models}),m(!1)}catch(a){i("Fehler",`Wechsel fehlgeschlagen: ${a.message||a}`)}}return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Hermes Agenten-Cockpit"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Hermes ist ein autonomer Agent, der im Hintergrund der Box läuft (Port ",e.jsxs("code",{children:[":",b]}),") und seine eigene UI besitzt."]})]}),(s==null?void 0:s.hermes_ui_url)&&e.jsxs("a",{href:y(s.hermes_ui_url),target:"_blank",rel:"noopener",className:n("flex h-9 px-4 items-center gap-1.5 text-xs font-semibold rounded-lg transition-all cursor-pointer shadow-md shrink-0 self-start",s.hermes_ui_reachable?"bg-primary text-primary-foreground hover:opacity-90 shadow-primary/10":"border border-border/60 text-muted-foreground bg-background/20"),children:[e.jsx(O,{className:"h-4 w-4"}),e.jsx("span",{children:"Hermes-GUI öffnen"})]})]}),d&&e.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400 font-mono",children:["Status nicht lesbar (",d,")."]}),s&&e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"mc-card p-5",children:[e.jsxs("div",{className:"mb-4 flex items-center gap-2",children:[e.jsx(v,{className:"h-4.5 w-4.5 text-primary"}),e.jsx("span",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"Agent-Fluss"})]}),e.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-stretch gap-3",children:[e.jsxs("button",{onClick:()=>s.hermes_ui_reachable&&window.open(y(s.hermes_ui_url),"_blank"),title:s.hermes_ui_reachable?"Hermes-GUI öffnen":"Desktop-Gateway offline",className:"lg:w-40 shrink-0 rounded-xl border border-border/60 bg-background/30 p-3 text-left hover:border-primary/40 transition-all cursor-pointer flex flex-col justify-center",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(p,{className:n("h-3.5 w-3.5",s.hermes_ui_reachable?"text-emerald-400":"text-amber-500")}),e.jsx("span",{className:"text-xs font-semibold text-foreground",children:"Desktop & GUI"}),e.jsx("span",{className:n("ml-auto h-1.5 w-1.5 rounded-full animate-pulse",s.hermes_ui_reachable?"bg-emerald-500":"bg-amber-500")})]}),e.jsx("span",{className:"text-[10px] text-muted-foreground font-mono mt-0.5",children:"Hermes Desktop · Clients"})]}),e.jsx("div",{className:"hidden lg:flex items-center text-muted-foreground text-lg select-none",children:"→"}),e.jsxs("div",{className:"flex-1 flex flex-col gap-2.5",children:[e.jsxs("div",{className:"rounded-xl border border-primary/40 bg-primary/5 px-3.5 py-2.5 flex items-center gap-2",children:[e.jsx(v,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-xs font-semibold text-primary",children:"Agent Gateway"}),e.jsxs("span",{className:"text-[11px] font-mono text-muted-foreground",children:[":",b]}),e.jsxs("span",{className:n("ml-auto inline-flex items-center gap-1.5 text-[10px] font-bold uppercase font-mono px-2 py-0.5 rounded-full border",s.gateway_reachable?"bg-emerald-500/10 text-emerald-400 border-emerald-500/20":"bg-red-500/10 text-red-400 border-red-500/20"),children:[e.jsx("span",{className:n("h-1.5 w-1.5 rounded-full",s.gateway_reachable?"bg-emerald-500 animate-pulse":"bg-red-500")}),s.gateway_reachable?"online":"offline"]})]}),e.jsxs("div",{className:"grid gap-2.5 sm:grid-cols-3",children:[e.jsxs("button",{onClick:()=>m(!0),className:"rounded-xl border border-border/60 bg-background/30 p-3 text-left hover:border-primary/45 transition-all cursor-pointer",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(w,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider",children:"Hirn"}),e.jsx("span",{className:"ml-auto text-[9px] text-primary/70 font-bold uppercase",children:"wechseln →"})]}),e.jsx("div",{className:"text-[11px] font-mono font-medium text-foreground truncate mt-1",title:s.brain_model,children:s.brain_model||"chat"})]}),e.jsxs("div",{className:"rounded-xl border border-border/60 bg-background/30 p-3",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(g,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider",children:"Verdrahtung"})]}),e.jsxs("div",{className:"text-[10px] font-mono mt-1 flex flex-wrap gap-x-2 text-muted-foreground",children:[e.jsxs("span",{children:["Config: ",s.has_config?"✓":"—"]}),e.jsxs("span",{children:["Skills: ",s.has_skills?"✓":"—"]}),e.jsxs("span",{children:["Memory: ",s.has_memories?"✓":"—"]})]})]}),e.jsxs("div",{className:"rounded-xl border border-border/60 bg-background/30 p-3",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(C,{className:"h-3.5 w-3.5 text-primary"}),e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider",children:"PC"}),e.jsx("span",{className:n("ml-auto h-1.5 w-1.5 rounded-full",s.pc_executor_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500")})]}),e.jsxs("div",{className:n("text-[11px] font-mono mt-1",s.pc_executor_reachable?"text-emerald-400":"text-muted-foreground"),children:[":",P," ",s.pc_executor_reachable?"verbunden":"offline"]})]})]})]})]})]}),e.jsxs("div",{className:"mc-card p-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(C,{className:"h-5 w-5 text-primary"}),e.jsx("h3",{className:"text-sm font-bold uppercase tracking-wider text-foreground",children:"PC Verbindung"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:n("h-2 w-2 rounded-full",s.pc_executor_reachable?"bg-emerald-500 animate-pulse":"bg-amber-500")}),e.jsx("span",{className:"text-xs font-semibold text-foreground",children:s.pc_executor_reachable?"Erreichbar":"Nicht verbunden"})]})]}),e.jsxs("div",{className:"grid gap-6 md:grid-cols-2 text-xs text-muted-foreground leading-relaxed text-left",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("p",{children:["Der ",e.jsx("strong",{className:"text-foreground",children:"Hermes PC Executor"})," läuft auf ",e.jsx("code",{className:"text-foreground font-mono px-1 py-0.5 rounded bg-muted/40 border border-border/30",children:A||"deinem Windows-PC"})," und ermöglicht Hermes den direkten Zugriff auf deinen Windows-PC — Shell-Befehle, Screenshots, Tastatureingaben."]}),e.jsxs("p",{children:["Hermes erreicht den PC über den MCP-Server ",e.jsx("code",{className:"text-foreground font-mono px-1 py-0.5 rounded bg-muted/40 border border-border/30",children:"hermes-pc-control"}),", der automatisch beim Gateway-Start verbunden wird."]})]}),e.jsx("div",{className:"space-y-3",children:s.pc_executor_reachable?e.jsxs("div",{className:"p-3.5 bg-emerald-500/5 border border-emerald-500/20 rounded-xl space-y-1",children:[e.jsxs("div",{className:"text-emerald-400 font-semibold text-xs flex items-center gap-1.5",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"}),"PC Executor verbunden"]}),e.jsxs("p",{className:"text-[10px]",children:["Hermes kann jetzt per Telegram oder Terminal Befehle auf TobisNicerPC ausführen. Nutze ",e.jsx("code",{className:"text-foreground",children:"pc_shell"}),", ",e.jsx("code",{className:"text-foreground",children:"pc_screenshot"})," oder ",e.jsx("code",{className:"text-foreground",children:"pc_open"}),"."]})]}):e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"text-xs font-bold text-foreground",children:"PC Executor starten"}),e.jsxs("p",{children:["Starte ",e.jsx("code",{className:"text-foreground font-mono",children:"start.bat"})," im Ordner ",e.jsx("code",{className:"text-foreground font-mono",children:"client\\hermes-pc\\"})," auf dem Windows-PC und lasse das Fenster offen."]}),e.jsx("div",{className:"p-3 bg-background/25 rounded-xl border border-border/30 font-mono text-[9px] text-cyan-300",children:"client\\hermes-pc\\start.bat"})]})})]})]}),!s.gateway_reachable&&e.jsxs("div",{className:"mc-card p-6 space-y-4 text-left",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Q,{className:"h-5 w-5 text-amber-500"}),e.jsx("h3",{className:"text-sm font-bold uppercase tracking-wider text-foreground",children:"Hermes-Agent Diagnostics"})]}),e.jsxs("div",{className:"text-xs text-muted-foreground space-y-3 leading-relaxed",children:[e.jsx("p",{children:"Der Hermes-Dienst ist auf der Box derzeit offline oder kann sich nicht mit dem lokalen llama-swap verbinden."}),e.jsxs("p",{children:["Am schnellsten: In der System-Schublade unter ",e.jsx("strong",{children:"Dienste"})," den Eintrag"," ",e.jsx("strong",{children:"Hermes-Gateway"})," mit einem Klick neu starten (dort gibt es auch die Logs dazu)."]}),e.jsxs("button",{onClick:()=>l({to:".",search:t=>({...t,system:"wartung"})}),className:"flex h-9 items-center gap-1.5 rounded-lg border border-primary/40 bg-primary/10 px-4 text-[11px] font-bold uppercase tracking-wide text-primary transition-all hover:bg-primary/20 cursor-pointer",children:[e.jsx(g,{className:"h-3.5 w-3.5"})," Dienste-Übersicht öffnen"]}),e.jsxs("p",{children:["Weitere Einrichtungsdetails (Brain-Konfiguration, MCP-Kopplungen, SSH-Tunneling und Such-Engines) findest du in der Dokumentationsdatei:",e.jsx("code",{className:"ml-1 px-1.5 py-0.5 rounded bg-muted/40 text-foreground border border-border/30",children:"docs/HERMES_SETUP.md"}),"."]})]})]})]}),s&&H&&e.jsx("div",{className:"fixed inset-0 z-50 bg-black/60 backdrop-blur-sm flex items-center justify-center p-4 overscroll-contain",role:"dialog","aria-modal":"true","aria-label":"Hermes-Hirn konfigurieren",children:e.jsxs("div",{className:"w-full max-w-md rounded-2xl border border-border/80 bg-card p-6 shadow-2xl space-y-4 animate-in fade-in zoom-in-95 duration-200",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[e.jsxs("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary flex items-center gap-1.5",children:[e.jsx(w,{className:"h-4 w-4"}),e.jsx("span",{children:"Hermes-Hirn konfigurieren"})]}),e.jsx("button",{onClick:()=>m(!1),className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground cursor-pointer",children:e.jsx(U,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:"Lane / Gateway-Alias"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:J.map(t=>{const a=s.brain_model===t;return e.jsxs("button",{onClick:()=>W(t),className:n("px-3 py-1.5 rounded-lg text-xs font-mono font-semibold border transition-all cursor-pointer flex items-center gap-1.5",a?"border-primary/40 bg-primary/10 text-primary":"border-border/30 bg-background/20 text-foreground hover:bg-accent"),children:[t,a&&e.jsx(k,{className:"h-3.5 w-3.5"})]},t)})}),e.jsxs("p",{className:"text-[10px] text-muted-foreground/70",children:["Schlank & flexibel: das Hirn folgt dem Lane-Routing (z.B. ",e.jsx("code",{className:"text-primary",children:"chat"})," = fast↔heavy)."]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:"Installiertes Modell (warm gehalten)"}),e.jsx("div",{className:"space-y-1.5 max-h-56 overflow-y-auto pr-1",children:E.map(t=>{var N;const a=t.role==="hermes";return e.jsxs("button",{onClick:()=>!a&&M(t.name),disabled:a||t.incomplete,className:n("w-full text-left px-3 py-2.5 rounded-lg text-xs flex items-center justify-between font-mono border transition-all",a?"border-indigo-500/40 bg-indigo-500/10 text-indigo-300":t.incomplete?"border-border/20 bg-background/10 text-muted-foreground/50 cursor-not-allowed":"border-border/30 bg-background/20 text-foreground hover:bg-accent cursor-pointer"),children:[e.jsxs("div",{className:"flex flex-col min-w-0",children:[e.jsx("span",{className:"font-semibold truncate max-w-[280px]",children:(N=t.name.split("/").pop())==null?void 0:N.replace(/\.gguf$/i,"")}),e.jsxs("span",{className:"text-[9px] text-muted-foreground mt-0.5",children:[t.capabilities.params_b?`${t.capabilities.params_b}B`:"?"," · ",t.capabilities.tools!=="no"?"Tools ✓":"ohne Tools",t.role&&` · Rolle: ${t.role}`]})]}),a?e.jsxs("span",{className:"text-[9px] font-bold uppercase text-indigo-300 shrink-0 flex items-center gap-1",children:[e.jsx(k,{className:"h-3.5 w-3.5"})," Aktiv"]}):e.jsx("span",{className:"text-[9px] font-bold uppercase text-primary/70 shrink-0",children:"Warm setzen →"})]},t.name)})})]}),e.jsxs("div",{className:"text-[10px] text-amber-400/80 flex items-start gap-1.5 border-t border-border/20 pt-2.5",children:[e.jsx("span",{children:"💡"}),e.jsxs("span",{children:["Für einen ",e.jsx("strong",{children:"Agenten"}),' sind Hermes-Modelle (natives Tool-Calling) meist die robustere Wahl. Neues Modell? Erst über „Modell-Manager → Modelle finden" laden.']})]})]})}),e.jsx(V,{}),x]})}export{se as AgentView}; diff --git a/frontend/dist/assets/ChronikView-79MqWZGv.js b/frontend/dist/assets/ChronikView-79MqWZGv.js deleted file mode 100644 index 9085659..0000000 --- a/frontend/dist/assets/ChronikView-79MqWZGv.js +++ /dev/null @@ -1,36 +0,0 @@ -import{c as b,r as p,j as e,b as w,ag as z,z as C,A as D,ah as A,L as y,a1 as E,R as N,ai as B,aj as L,ak as Z,u as q,k as $,n as j,q as R}from"./index-DMY9lUCb.js";import{S as T}from"./search-D_8DnBvS.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const U=b("AlarmClock",[["circle",{cx:"12",cy:"13",r:"8",key:"3y4lt7"}],["path",{d:"M12 9v4l2 2",key:"1c63tq"}],["path",{d:"M5 3 2 6",key:"18tl5t"}],["path",{d:"m22 6-3-3",key:"1opdir"}],["path",{d:"M6.38 18.7 4 21",key:"17xu3x"}],["path",{d:"M17.64 18.67 20 21",key:"kv2oe2"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const v=b("Archive",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const H=b("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const V=b("Inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const O=b("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const P=b("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const W=b("Radar",[["path",{d:"M19.07 4.93A10 10 0 0 0 6.99 3.34",key:"z3du51"}],["path",{d:"M4 6h.01",key:"oypzma"}],["path",{d:"M2.29 9.62A10 10 0 1 0 21.31 8.35",key:"qzzz0"}],["path",{d:"M16.24 7.76A6 6 0 1 0 8.23 16.67",key:"1yjesh"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M17.99 11.66A6 6 0 0 1 15.77 16.67",key:"1u2y91"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"m13.41 10.59 5.66-5.66",key:"mhq4k0"}]]),F=3600,k=48;function I({items:t,aktiv:m}){const{balken:d,von:x,bis:g,max:c}=p.useMemo(()=>{if(!t.length)return{balken:[],von:0,bis:0,max:0};const a=t.map(l=>l.ts),u=Math.min(...a),r=Math.max(...a),o=Math.max(r-u,F),n=new Array(k).fill(0);for(const l of a){const f=Math.min(k-1,Math.floor((l-u)/o*k));n[f]++}return{balken:n,von:u,bis:r,max:Math.max(...n,1)}},[t]);if(d.length===0)return null;const h=a=>new Date(a*1e3).toLocaleDateString("de-DE",{day:"2-digit",month:"2-digit",...g-x<2*86400?{hour:"2-digit",minute:"2-digit"}:{}});return e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"flex h-8 items-end gap-px",role:"img","aria-label":`Aktivitätsdichte: ${t.length} Einträge zwischen ${h(x)} und ${h(g)}`,children:d.map((a,u)=>e.jsx("div",{title:a===1?"1 Eintrag":`${a} Einträge`,className:w("min-w-px flex-1 rounded-t-sm transition-colors",a===0?"bg-border/25":m?"bg-primary/70":"bg-primary/40"),style:{height:a===0?"2px":`${Math.max(12,a/c*100)}%`}},u))}),e.jsxs("div",{className:"flex justify-between font-mono text-[9px] text-muted-foreground/60",children:[e.jsx("span",{children:h(x)}),e.jsxs("span",{className:"tabular-nums",children:[t.length," Einträge"]}),e.jsx("span",{children:h(g)})]})]})}const J={sentry:{icon:L,label:"Health-Wächter",cls:"text-red-300 bg-red-500/10 border-red-500/25"},alarm:{icon:B,label:"Alarm",cls:"text-red-200 bg-red-500/15 border-red-500/40"},notify:{icon:H,label:"Meldung",cls:"text-sky-300 bg-sky-500/10 border-sky-500/25"},"chef-gutachter":{icon:P,label:"Morgenlage",cls:"text-violet-300 bg-violet-500/10 border-violet-500/25"},radar:{icon:W,label:"Radar",cls:"text-teal-300 bg-teal-500/10 border-teal-500/25"},auftragsbuch:{icon:V,label:"Auftragsbuch",cls:"text-primary bg-primary/10 border-primary/25"},zeitmaschine:{icon:N,label:"Zeitmaschine",cls:"text-amber-300 bg-amber-500/10 border-amber-500/25"},reminder:{icon:U,label:"Erinnerung",cls:"text-amber-300 bg-amber-500/10 border-amber-500/25"},traum:{icon:E,label:"Traum",cls:"text-violet-300 bg-violet-500/10 border-violet-500/25"}},_={icon:O,label:"Box",cls:"text-muted-foreground bg-background/40 border-border/50"};function G(t){return new Date(t*1e3).toLocaleDateString("de-DE",{weekday:"long",day:"2-digit",month:"long"})}function Y(){const{data:t=[],isLoading:m}=z(),[d,x]=p.useState(!0),g=C(),{q:c=""}=D({from:"/chronik"}),h=r=>g({to:"/chronik",search:r?{q:r}:{},replace:!0}),a=p.useMemo(()=>{const r=c.trim().toLowerCase();return r?t.filter(o=>o.subject.toLowerCase().includes(r)||o.text.toLowerCase().includes(r)||o.source.toLowerCase().includes(r)):t},[t,c]),u=p.useMemo(()=>{const r=[];for(const o of a){const n=G(o.ts),l=r[r.length-1];l&&l.day===n?l.items.push(o):r.push({day:n,items:[o]})}return r},[a]);return e.jsxs("div",{className:"space-y-7",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Chronik"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Was deine Box von allein getan und gemeldet hat — und die Zeitmaschine, falls du zu einem früheren Stand zurück willst."})]}),e.jsx(K,{}),e.jsxs("section",{className:"space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("p",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:[e.jsx(A,{className:"h-3.5 w-3.5"})," Verlauf",c&&e.jsxs("span",{className:"normal-case text-primary",children:["· ",a.length," von ",t.length]})]}),e.jsxs("div",{className:"relative ml-auto w-full sm:w-64",children:[e.jsx(T,{className:"pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground","aria-hidden":"true"}),e.jsx("input",{type:"search",value:c,onChange:r=>h(r.target.value),placeholder:"Verlauf durchsuchen …","aria-label":"Chronik durchsuchen",className:"h-8 w-full rounded-lg border border-border/60 bg-background/40 pl-8 pr-3 text-xs text-foreground outline-none transition-colors focus:border-primary"})]})]}),!m&&a.length>0&&e.jsx(I,{items:a,aktiv:!!c}),m&&e.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card/30 p-6 text-xs text-muted-foreground",children:[e.jsx(y,{className:"h-4 w-4 animate-spin"})," Chronik wird geladen …"]}),!m&&a.length===0&&e.jsx("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-8 text-center text-xs text-muted-foreground",children:c?e.jsxs(e.Fragment,{children:["Nichts zu „",c,'" im Verlauf. ',e.jsx("button",{onClick:()=>h(""),className:"cursor-pointer text-primary underline underline-offset-2",children:"Filter aufheben"})]}):"Noch keine Einträge. Sobald die Box etwas von allein tut oder meldet (Updates, Wächter, Träume), steht es hier."}),u.map(({day:r,items:o})=>e.jsxs("div",{children:[e.jsx("p",{className:"mb-2 text-xs font-bold text-foreground/70",children:r}),e.jsxs("div",{className:"space-y-2 border-l-2 border-border/40 pl-4",children:[(d?o.slice(0,8):o).map(n=>{const l=J[n.source]??_,f=l.icon;return e.jsxs("div",{className:"relative rounded-xl border border-border/50 bg-card/40 p-3 backdrop-blur-sm",children:[e.jsx("span",{className:"absolute -left-[23px] top-4 h-2.5 w-2.5 rounded-full bg-border ring-4 ring-background/60"}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs("span",{className:w("flex items-center gap-1 rounded-md border px-1.5 py-0.5 text-[10px] font-bold",l.cls),children:[e.jsx(f,{className:"h-3 w-3"})," ",l.label]}),n.subject&&e.jsx("span",{className:"text-[10px] font-semibold text-muted-foreground",children:n.subject}),e.jsx("span",{className:"ml-auto font-mono text-[10px] text-muted-foreground/60",children:new Date(n.ts*1e3).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit"})})]}),e.jsx("p",{className:"mt-1.5 whitespace-pre-wrap text-xs leading-relaxed text-foreground/85",children:n.text})]},n.id)}),d&&o.length>8&&e.jsxs("button",{onClick:()=>x(!1),className:"text-[11px] text-muted-foreground underline hover:text-foreground",children:[o.length-8," weitere anzeigen"]})]})]},r))]})]})}function K(){const{data:t}=Z(),m=q(),{showAlert:d,showConfirm:x,dialogElement:g}=$(),[c,h]=p.useState(null),[a,u]=p.useState(!1),[r,o]=p.useState(!1),n=(t==null?void 0:t.backups)??[],l=r?n:n.slice(0,4);function f(s){const i=s.snapshot.match(/^(\d{4})-?(\d{2})-?(\d{2})[T_-](\d{2})[-:]?(\d{2})/);return i?`${i[3]}.${i[2]}.${i[1]}, ${i[4]}:${i[5]} Uhr`:s.snapshot}async function M(s){h(s.file);try{await j("/api/zeitmaschine/restore",{method:"POST",body:JSON.stringify({file:s.file})}),d("Zeitmaschine läuft","Die Wiederherstellung wurde gestartet. Die Dienste starten gleich neu — die Zentrale ist kurz weg und meldet sich von selbst zurück. Vorher wurde automatisch ein Sicherheits-Backup des jetzigen Zustands gemacht.")}catch(i){d("Start fehlgeschlagen",String((i==null?void 0:i.message)||i))}finally{h(null)}}async function S(){u(!0);try{const s=await j("/api/system/backup",{method:"POST"});s.ok?d("Gesichert",`Snapshot ${s.snapshot} wurde angelegt.`):d("Backup fehlgeschlagen",s.error||"Unbekannter Fehler"),m.invalidateQueries({queryKey:R.zeitmaschine})}catch(s){d("Backup fehlgeschlagen",String((s==null?void 0:s.message)||s))}finally{u(!1)}}return e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("p",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:[e.jsx(v,{className:"h-3.5 w-3.5"})," Zeitmaschine — gesicherte Stände"]}),e.jsxs("button",{onClick:S,disabled:a||!(t!=null&&t.available),className:"flex h-8 items-center gap-1.5 rounded-lg border border-border/60 bg-card/45 px-2.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground hover:border-primary/40 transition-all cursor-pointer disabled:opacity-50",children:[a?e.jsx(y,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(v,{className:"h-3.5 w-3.5"})," Jetzt sichern"]})]}),t&&!t.available&&e.jsx("div",{className:"rounded-2xl border border-amber-500/30 bg-amber-500/5 p-4 text-xs text-amber-300",children:"Die Snapshots liegen auf der Box — im lokalen Dev-Modus nicht verfügbar."}),(t==null?void 0:t.available)&&n.length===0&&e.jsx("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-5 text-center text-xs text-muted-foreground",children:'Noch keine Snapshots. Das nächtliche Backup (03:30) legt sie automatisch an — oder „Jetzt sichern".'}),l.length>0&&e.jsx("div",{className:"grid gap-2 sm:grid-cols-2",children:l.map((s,i)=>e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-xl border border-border/50 bg-card/40 p-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("p",{className:"text-xs font-semibold text-foreground",children:[f(s)," ",i===0&&e.jsx("span",{className:"ml-1 rounded bg-emerald-500/10 px-1.5 py-0.5 text-[9px] font-bold text-emerald-300",children:"neuester"})]}),e.jsxs("p",{className:"font-mono text-[10px] text-muted-foreground/70 truncate",title:s.file,children:[s.size_mb.toLocaleString("de-DE")," MB · ",s.file]})]}),e.jsxs("button",{disabled:c!==null,onClick:()=>x("Wirklich zu diesem Stand zurück?",`Die Box wird auf den Snapshot vom ${f(s)} zurückgesetzt (Gedächtnis, Hermes-Config, Modell-Router). Der JETZIGE Zustand wird vorher automatisch gesichert — der Schritt ist also umkehrbar. Die Dienste starten neu, die Zentrale ist kurz weg.`,()=>M(s)),className:"flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-amber-500/40 bg-amber-500/10 px-2.5 text-[10px] font-bold uppercase tracking-wide text-amber-300 transition-all hover:bg-amber-500/20 cursor-pointer disabled:opacity-50",children:[c===s.file?e.jsx(y,{className:"h-3 w-3 animate-spin"}):e.jsx(N,{className:"h-3 w-3"})," Zurück"]})]},s.file))}),n.length>4&&!r&&e.jsxs("button",{onClick:()=>o(!0),className:"text-[11px] text-muted-foreground underline hover:text-foreground",children:["Alle ",n.length," Snapshots anzeigen"]}),g]})}export{Y as ChronikView}; diff --git a/frontend/dist/assets/CommandPalette-CUaikJDv.js b/frontend/dist/assets/CommandPalette-CUaikJDv.js deleted file mode 100644 index 3729c47..0000000 --- a/frontend/dist/assets/CommandPalette-CUaikJDv.js +++ /dev/null @@ -1,51 +0,0 @@ -import{c as It,r as a,j as E,ar as be,W as In,as as An,$ as _n,at as Mn,au as ht,z as Tn,n as Ln,T as Fn,b as jn}from"./index-DMY9lUCb.js";import{r as At}from"./index-CVfMhtws.js";import{C as $n,a as Wn}from"./cloud-download-BGirmHxu.js";import{R as Un}from"./refresh-cw-hAcZthO8.js";import{S as Bn}from"./search-D_8DnBvS.js";import{F as Vn}from"./file-text-BSQuFPZM.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const zn=It("CornerDownLeft",[["polyline",{points:"9 10 4 15 9 20",key:"r3jprv"}],["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Kn=It("ScrollText",[["path",{d:"M15 12h-5",key:"r7krc0"}],["path",{d:"M15 8h-5",key:"1khuty"}],["path",{d:"M19 17V5a2 2 0 0 0-2-2H4",key:"zz82l3"}],["path",{d:"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3",key:"1ph1d7"}]]);var gt=1,Hn=.9,Yn=.8,Gn=.17,Me=.1,Te=.999,Xn=.9999,qn=.99,Zn=/[\\\/_+.#"@\[\(\{&]/,Jn=/[\\\/_+.#"@\[\(\{&]/g,Qn=/[\s-]/,_t=/[\s-]/g;function Ve(e,t,n,r,o,s,i){if(s===t.length)return o===e.length?gt:qn;var c=`${o},${s}`;if(i[c]!==void 0)return i[c];for(var u=r.charAt(s),d=n.indexOf(u,o),f=0,l,v,b,h;d>=0;)l=Ve(e,t,n,r,d+1,s+1,i),l>f&&(d===o?l*=gt:Zn.test(e.charAt(d-1))?(l*=Yn,b=e.slice(o,d-1).match(Jn),b&&o>0&&(l*=Math.pow(Te,b.length))):Qn.test(e.charAt(d-1))?(l*=Hn,h=e.slice(o,d-1).match(_t),h&&o>0&&(l*=Math.pow(Te,h.length))):(l*=Gn,o>0&&(l*=Math.pow(Te,d-o))),e.charAt(d)!==t.charAt(s)&&(l*=Xn)),(ll&&(l=v*Me)),l>f&&(f=l),d=n.indexOf(u,d+1);return i[c]=f,f}function bt(e){return e.toLowerCase().replace(_t," ")}function er(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,Ve(e,t,bt(e),bt(t),0,0,{})}var tr=Object.defineProperty,me=(e,t)=>tr(e,"name",{value:t,configurable:!0}),Mt=!!(typeof window<"u"&&window.document&&window.document.createElement);function Q(e,t,{checkForDefaultPrevented:n=!0}={}){return me(function(o){if(e==null||e(o),n===!1||!o||!o.defaultPrevented)return t==null?void 0:t(o)},"handleEvent")}me(Q,"composeEventHandlers");function nr(e){var t;if(!Mt)throw new Error("Cannot access window outside of the DOM");return((t=e==null?void 0:e.ownerDocument)==null?void 0:t.defaultView)??window}me(nr,"getOwnerWindow");function ze(e){if(!Mt)throw new Error("Cannot access document outside of the DOM");return(e==null?void 0:e.ownerDocument)??document}me(ze,"getOwnerDocument");function Tt(e,t=!1){const{activeElement:n}=ze(e);if(!(n!=null&&n.nodeName))return null;if(Lt(n)&&n.contentDocument)return Tt(n.contentDocument.body,t);if(t){const r=n.getAttribute("aria-activedescendant");if(r){const o=ze(n).getElementById(r);if(o)return o}}return n}me(Tt,"getActiveElement");function Lt(e){return e.tagName==="IFRAME"}me(Lt,"isFrame");var rr=Object.defineProperty,nt=(e,t)=>rr(e,"name",{value:t,configurable:!0});function Ke(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}nt(Ke,"setRef");function ee(...e){return t=>{let n=!1;const r=e.map(o=>{const s=Ke(o,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let o=0;oor(e,"name",{value:t,configurable:!0});function ar(e,t){const n=a.createContext(t);n.displayName=e+"Context";const r=j(s=>{const{children:i,...c}=s,u=a.useMemo(()=>c,Object.values(c));return E.jsx(n.Provider,{value:u,children:i})},"Provider");r.displayName=e+"Provider";function o(s,i={}){const{optional:c=!1}=i,u=a.useContext(n);if(u)return u;if(t!==void 0)return t;if(!c)throw new Error(`\`${s}\` must be used within \`${e}\``)}return j(o,"useContext"),[r,o]}j(ar,"createContext");function Ft(e,t=[]){let n=[];function r(s,i){const c=a.createContext(i);c.displayName=s+"Context";const u=n.length;n=[...n,i];const d=j(l=>{var w;const{scope:v,children:b,...h}=l,p=((w=v==null?void 0:v[e])==null?void 0:w[u])||c,g=a.useMemo(()=>h,Object.values(h));return E.jsx(p.Provider,{value:g,children:b})},"Provider");d.displayName=s+"Provider";function f(l,v,b={}){var w;const{optional:h=!1}=b,p=((w=v==null?void 0:v[e])==null?void 0:w[u])||c,g=a.useContext(p);if(g)return g;if(i!==void 0)return i;if(!h)throw new Error(`\`${l}\` must be used within \`${s}\``)}return j(f,"useContext"),[d,f]}j(r,"createContext");const o=j(()=>{const s=n.map(i=>a.createContext(i));return j(function(c){const u=(c==null?void 0:c[e])||s;return a.useMemo(()=>({[`__scope${e}`]:{...c,[e]:u}}),[c,u])},"useScope")},"createScope");return o.scopeName=e,[r,jt(o,...t)]}j(Ft,"createContextScope");function jt(...e){const t=e[0];if(e.length===1)return t;const n=j(()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return j(function(s){const i=r.reduce((c,{useScope:u,scopeName:d})=>{const l=u(s)[`__scope${d}`];return{...c,...l}},{});return a.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])},"useComposedScopes")},"createScope");return n.scopeName=t.scopeName,n}j(jt,"composeContextScopes");var fe=globalThis!=null&&globalThis.document?a.useLayoutEffect:()=>{},ir=Object.defineProperty,sr=(e,t)=>ir(e,"name",{value:t,configurable:!0}),cr=be[" useId ".trim().toString()]||(()=>{}),ur=0;function V(e){const[t,n]=a.useState(cr());return fe(()=>{e||n(r=>r??String(ur++))},[e]),e||(t?`radix-${t}`:"")}sr(V,"useId");var lr=Object.defineProperty,dr=(e,t)=>lr(e,"name",{value:t,configurable:!0}),yt=be[" useEffectEvent ".trim().toString()],Et=be[" useInsertionEffect ".trim().toString()];function $t(e){if(typeof yt=="function")return yt(e);const t=a.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof Et=="function"?Et(()=>{t.current=e}):fe(()=>{t.current=e}),a.useMemo(()=>((...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)}),[])}dr($t,"useEffectEvent");var fr=Object.defineProperty,ye=(e,t)=>fr(e,"name",{value:t,configurable:!0}),vr=be[" useInsertionEffect ".trim().toString()]||fe;function Wt({prop:e,defaultProp:t,onChange:n=ye(()=>{},"onChange"),caller:r}){const[o,s,i]=Ut({defaultProp:t,onChange:n}),c=e!==void 0,u=c?e:o,d=a.useCallback(f=>{var l;if(c){const v=Bt(f)?f(e):f;v!==e&&((l=i.current)==null||l.call(i,v))}else s(f)},[c,e,s,i]);return[u,d]}ye(Wt,"useControllableState");function Ut({defaultProp:e,onChange:t}){const[n,r]=a.useState(e),o=a.useRef(n),s=a.useRef(t);return vr(()=>{s.current=t},[t]),a.useEffect(()=>{var i;o.current!==n&&((i=s.current)==null||i.call(s,n),o.current=n)},[n,o]),[n,r,s]}ye(Ut,"useUncontrolledState");function Bt(e){return typeof e=="function"}ye(Bt,"isFunction");var wt=Symbol("RADIX:SYNC_STATE");function mr(e,t,n,r){const{prop:o,defaultProp:s,onChange:i,caller:c}=t,u=o!==void 0,d=$t(i),f=[{...n,state:s}];r&&f.push(r);const[l,v]=a.useReducer((g,w)=>{if(w.type===wt)return{...g,state:w.state};const S=e(g,w);return u&&!Object.is(S.state,g.state)&&d(S.state),S},...f),b=l.state,h=a.useRef(b);a.useEffect(()=>{h.current!==b&&(h.current=b,u||d(b))},[b,h,u]);const p=a.useMemo(()=>o!==void 0?{...l,state:o}:l,[l,o]);return a.useEffect(()=>{u&&!Object.is(o,l.state)&&v({type:wt,state:o})},[o,l.state,u]),[p,v]}ye(mr,"useControllableStateReducer");var pr=Object.defineProperty,W=(e,t)=>pr(e,"name",{value:t,configurable:!0});function rt(e){const t=a.forwardRef((n,r)=>{let{children:o,...s}=n,i=null,c=!1;const u=[];He(o)&&typeof Se=="function"&&(o=Se(o._payload)),a.Children.forEach(o,v=>{var b;if(Ht(v)){c=!0;const h=v;let p="child"in h.props?h.props.child:h.props.children;He(p)&&typeof Se=="function"&&(p=Se(p._payload)),i=gr(h,p),u.push((b=i==null?void 0:i.props)==null?void 0:b.children)}else u.push(v)}),i?i=a.cloneElement(i,void 0,u):!c&&a.Children.count(o)===1&&a.isValidElement(o)&&(i=o);const d=i?Kt(i):void 0,f=pe(r,d);if(!i){if(o||o===0)throw new Error(c?Er(e):yr(e));return o}const l=zt(s,i.props??{});return i.type!==a.Fragment&&(l.ref=r?f:d),a.cloneElement(i,l)});return t.displayName=`${e}.Slot`,t}W(rt,"createSlot");var Vt=Symbol.for("radix.slottable");function hr(e){const t=W(n=>"child"in n?n.children(n.child):n.children,"Slottable");return t.displayName=`${e}.Slottable`,t.__radixId=Vt,t}W(hr,"createSlottable");var gr=W((e,t)=>{if("child"in e.props){const n=e.props.child;return a.isValidElement(n)?a.cloneElement(n,void 0,e.props.children(n.props.children)):null}return a.isValidElement(t)?t:null},"getSlottableElementFromSlottable");function zt(e,t){const n={...t};for(const r in t){const o=e[r],s=t[r];/^on[A-Z]/.test(r)?o&&s?n[r]=(...c)=>{const u=s(...c);return o(...c),u}:o&&(n[r]=o):r==="style"?n[r]={...o,...s}:r==="className"&&(n[r]=[o,s].filter(Boolean).join(" "))}return{...e,...n}}W(zt,"mergeProps");function Kt(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}W(Kt,"getElementRef");function Ht(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Vt}W(Ht,"isSlottable");var br=Symbol.for("react.lazy");function He(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===br&&"_payload"in e&&Yt(e._payload)}W(He,"isLazyComponent");function Yt(e){return typeof e=="object"&&e!==null&&"then"in e}W(Yt,"isPromiseLike");var yr=W(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),Er=W(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),Se=be[" use ".trim().toString()],wr=Object.defineProperty,Sr=(e,t)=>wr(e,"name",{value:t,configurable:!0}),Cr=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$=Cr.reduce((e,t)=>{const n=rt(`Primitive.${t}`),r=a.forwardRef((o,s)=>{const{asChild:i,...c}=o,u=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),E.jsx(u,{...c,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Gt(e,t){e&&At.flushSync(()=>e.dispatchEvent(t))}Sr(Gt,"dispatchDiscreteCustomEvent");var xr=Object.defineProperty,Pr=(e,t)=>xr(e,"name",{value:t,configurable:!0});function ve(e){const t=a.useRef(e);return a.useEffect(()=>{t.current=e}),a.useMemo(()=>((...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)}),[])}Pr(ve,"useCallbackRef");var Rr=Object.defineProperty,_=(e,t)=>Rr(e,"name",{value:t,configurable:!0}),Ye="dismissableLayer.update",Or="dismissableLayer.pointerDownOutside",Dr="dismissableLayer.focusOutside",St,Xt=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),kr=a.forwardRef(_(function(t,n){const{disableOutsidePointerEvents:r=!1,deferPointerDownOutside:o=!1,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:c,onInteractOutside:u,onDismiss:d,...f}=t,l=a.useContext(Xt),[v,b]=a.useState(null),h=(v==null?void 0:v.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,p]=a.useState({}),g=pe(n,b),w=Array.from(l.layers),[S]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),x=S?w.indexOf(S):-1,O=v?w.indexOf(v):-1,R=l.layersWithOutsidePointerEventsDisabled.size>0,P=O>=x,N=a.useRef(!1),X=Zt(I=>{i==null||i(I),u==null||u(I),I.defaultPrevented||d==null||d()},{ownerDocument:h,deferPointerDownOutside:o,isDeferredPointerDownOutsideRef:N,dismissableSurfaces:l.dismissableSurfaces,shouldHandlePointerDownOutside:a.useCallback(I=>{if(!(I instanceof Node))return!1;const re=[...l.branches].some(K=>K.contains(I));return P&&!re},[l.branches,P])}),z=Jt(I=>{if(o&&N.current)return;const re=I.target;[...l.branches].some(J=>J.contains(re))||(c==null||c(I),u==null||u(I),I.defaultPrevented||d==null||d())},h),q=v?O===w.length-1:!1,F=ve(I=>{I.key==="Escape"&&(s==null||s(I),!I.defaultPrevented&&d&&(I.preventDefault(),d()))});return a.useEffect(()=>{if(q)return h.addEventListener("keydown",F,{capture:!0}),()=>h.removeEventListener("keydown",F,{capture:!0})},[h,q,F]),a.useEffect(()=>{if(v)return r&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(St=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),l.layersWithOutsidePointerEventsDisabled.add(v)),l.layers.add(v),Ge(),()=>{r&&(l.layersWithOutsidePointerEventsDisabled.delete(v),l.layersWithOutsidePointerEventsDisabled.size===0&&(h.body.style.pointerEvents=St))}},[v,h,r,l]),a.useEffect(()=>()=>{v&&(l.layers.delete(v),l.layersWithOutsidePointerEventsDisabled.delete(v),Ge())},[v,l]),a.useEffect(()=>{const I=_(()=>p({}),"handleUpdate");return document.addEventListener(Ye,I),()=>document.removeEventListener(Ye,I)},[]),E.jsx($.div,{...f,ref:g,style:{pointerEvents:R?P?"auto":"none":void 0,...t.style},onFocusCapture:Q(t.onFocusCapture,z.onFocusCapture),onBlurCapture:Q(t.onBlurCapture,z.onBlurCapture),onPointerDownCapture:Q(t.onPointerDownCapture,X.onPointerDownCapture)})},"DismissableLayer"));function qt(){const e=a.useContext(Xt),[t,n]=a.useState(null);return a.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}_(qt,"useDismissableLayerSurface");var Nr=_(()=>!0,"IS_TRUE");function Zt(e,t){const{ownerDocument:n=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:o,dismissableSurfaces:s,shouldHandlePointerDownOutside:i=Nr}=t,c=ve(e),u=a.useRef(!1),d=a.useRef(!1),f=a.useRef(new Map),l=a.useRef(()=>{});return a.useEffect(()=>{function v(){d.current=!1,o.current=!1,f.current.clear()}_(v,"resetOutsideInteraction");function b(){return Array.from(f.current.values()).some(Boolean)}_(b,"isOutsideInteractionIntercepted");function h(x){if(!d.current)return;const O=x.target;O instanceof Node&&[...s].some(P=>P.contains(O))||f.current.set(x.type,!0),x.type==="click"&&window.setTimeout(()=>{d.current&&l.current()},0)}_(h,"handleInteractionCapture");function p(x){d.current&&f.current.set(x.type,!1)}_(p,"handleInteractionBubble");const g=_(x=>{if(x.target&&!u.current){let O=function(){n.removeEventListener("click",l.current);const P=b();v(),P||ot(Or,c,R,{discrete:!0})};if(_(O,"handleAndDispatchPointerDownOutsideEvent"),!i(x.target)){n.removeEventListener("click",l.current),v(),u.current=!1;return}const R={originalEvent:x};d.current=!0,o.current=r&&x.button===0,f.current.clear(),!r||x.button!==0?O():(n.removeEventListener("click",l.current),l.current=O,n.addEventListener("click",l.current,{once:!0}))}else n.removeEventListener("click",l.current),v();u.current=!1},"handlePointerDown"),w=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const x of w)n.addEventListener(x,h,!0),n.addEventListener(x,p);const S=window.setTimeout(()=>{n.addEventListener("pointerdown",g)},0);return()=>{window.clearTimeout(S),n.removeEventListener("pointerdown",g),n.removeEventListener("click",l.current);for(const x of w)n.removeEventListener(x,h,!0),n.removeEventListener(x,p)}},[n,c,r,o,s,i]),{onPointerDownCapture:_(()=>u.current=!0,"onPointerDownCapture")}}_(Zt,"usePointerDownOutside");function Jt(e,t=globalThis==null?void 0:globalThis.document){const n=ve(e),r=a.useRef(!1);return a.useEffect(()=>{const o=_(s=>{s.target&&!r.current&&ot(Dr,n,{originalEvent:s},{discrete:!1})},"handleFocus");return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:_(()=>r.current=!0,"onFocusCapture"),onBlurCapture:_(()=>r.current=!1,"onBlurCapture")}}_(Jt,"useFocusOutside");function Ge(){const e=new CustomEvent(Ye);document.dispatchEvent(e)}_(Ge,"dispatchUpdate");function ot(e,t,n,{discrete:r}){const o=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Gt(o,s):o.dispatchEvent(s)}_(ot,"handleAndDispatchCustomEvent");var Ir=Object.defineProperty,T=(e,t)=>Ir(e,"name",{value:t,configurable:!0}),Le="focusScope.autoFocusOnMount",Fe="focusScope.autoFocusOnUnmount",Ct={bubbles:!1,cancelable:!0},Ar=a.forwardRef(T(function(t,n){const{loop:r=!1,trapped:o=!1,onMountAutoFocus:s,onUnmountAutoFocus:i,...c}=t,[u,d]=a.useState(null),f=ve(s),l=ve(i),v=a.useRef(null),b=pe(n,d),h=a.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;a.useEffect(()=>{if(o){let g=function(O){if(h.paused||!u)return;const R=O.target;u.contains(R)?v.current=R:H(v.current,{select:!0})},w=function(O){if(h.paused||!u)return;const R=O.relatedTarget;R!==null&&(u.contains(R)||H(v.current,{select:!0}))},S=function(O){if(document.activeElement===document.body)for(const P of O)P.removedNodes.length>0&&H(u)};T(g,"handleFocusIn"),T(w,"handleFocusOut"),T(S,"handleMutations"),document.addEventListener("focusin",g),document.addEventListener("focusout",w);const x=new MutationObserver(S);return u&&x.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",g),document.removeEventListener("focusout",w),x.disconnect()}}},[o,u,h.paused]),a.useEffect(()=>{if(u){xt.add(h);const g=document.activeElement;if(!u.contains(g)){const S=new CustomEvent(Le,Ct);u.addEventListener(Le,f),u.dispatchEvent(S),S.defaultPrevented||(Qt(on(at(u)),{select:!0}),document.activeElement===g&&H(u))}return()=>{u.removeEventListener(Le,f),setTimeout(()=>{const S=new CustomEvent(Fe,Ct);u.addEventListener(Fe,l),u.dispatchEvent(S),S.defaultPrevented||H(g??document.body,{select:!0}),u.removeEventListener(Fe,l),xt.remove(h)},0)}}},[u,f,l,h]);const p=a.useCallback(g=>{if(!r&&!o||h.paused)return;const w=g.key==="Tab"&&!g.altKey&&!g.ctrlKey&&!g.metaKey,S=document.activeElement;if(w&&S){const x=g.currentTarget,[O,R]=en(x);O&&R?!g.shiftKey&&S===R?(g.preventDefault(),r&&H(O,{select:!0})):g.shiftKey&&S===O&&(g.preventDefault(),r&&H(R,{select:!0})):S===x&&g.preventDefault()}},[r,o,h.paused]);return E.jsx($.div,{tabIndex:-1,...c,ref:b,onKeyDown:p})},"FocusScope"));function Qt(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(H(r,{select:t}),document.activeElement!==n)return}T(Qt,"focusFirst");function en(e){const t=at(e),n=Xe(t,e),r=Xe(t.reverse(),e);return[n,r]}T(en,"getTabbableEdges");function at(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:T(r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)t.push(n.currentNode);return t}T(at,"getTabbableCandidates");function Xe(e,t){const n=typeof t.checkVisibility=="function"&&t.checkVisibility({checkVisibilityCSS:!0});for(const r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):tn(r,{upTo:t})))return r}T(Xe,"findVisible");function tn(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}T(tn,"isHidden");function nn(e){return e instanceof HTMLInputElement&&"select"in e}T(nn,"isSelectableInput");function H(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&nn(e)&&t&&e.select()}}T(H,"focus");var xt=rn();function rn(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=qe(e,t),e.unshift(t)},remove(t){var n;e=qe(e,t),(n=e[0])==null||n.resume()}}}T(rn,"createFocusScopesStack");function qe(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}T(qe,"arrayRemove");function on(e){return e.filter(t=>t.tagName!=="A")}T(on,"removeLinks");var _r=Object.defineProperty,Mr=(e,t)=>_r(e,"name",{value:t,configurable:!0}),Tr=a.forwardRef(Mr(function(t,n){var u;const{container:r,...o}=t,[s,i]=a.useState(!1);fe(()=>i(!0),[]);const c=r||s&&((u=globalThis==null?void 0:globalThis.document)==null?void 0:u.body);return c?At.createPortal(E.jsx($.div,{...o,ref:n}),c):null},"Portal")),Lr=Object.defineProperty,Y=(e,t)=>Lr(e,"name",{value:t,configurable:!0});function an(e,t){return a.useReducer((n,r)=>t[n][r]??n,e)}Y(an,"useStateMachine");var it=Y(e=>{const{present:t,children:n}=e,r=sn(t),o=typeof n=="function"?n({present:r.isPresent}):a.Children.only(n),s=cn(r.ref,un(o));return typeof n=="function"||r.isPresent?a.cloneElement(o,{ref:s}):null},"Presence");function sn(e){const[t,n]=a.useState(),r=a.useRef(null),o=a.useRef(e),s=a.useRef("none"),i=a.useRef(void 0),c=e?"mounted":"unmounted",[u,d]=an(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return a.useEffect(()=>{u==="mounted"?(s.current=i.current??ce(r.current),i.current=void 0):s.current="none"},[u]),fe(()=>{const f=r.current,l=o.current;if(l!==e){const b=s.current,h=ce(f);e?(i.current=h,d("MOUNT")):h==="none"||(f==null?void 0:f.display)==="none"?d("UNMOUNT"):d(l&&b!==h?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,d]),fe(()=>{if(t){let f;const l=t.ownerDocument.defaultView??window,v=Y(h=>{const g=ce(r.current).includes(CSS.escape(h.animationName));if(h.target===t&&g&&(d("ANIMATION_END"),!o.current)){const w=t.style.animationFillMode;t.style.animationFillMode="forwards",f=l.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=w)})}},"handleAnimationEnd"),b=Y(h=>{h.target===t&&(s.current=ce(r.current))},"handleAnimationStart");return t.addEventListener("animationstart",b),t.addEventListener("animationcancel",v),t.addEventListener("animationend",v),()=>{l.clearTimeout(f),t.removeEventListener("animationstart",b),t.removeEventListener("animationcancel",v),t.removeEventListener("animationend",v)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:a.useCallback(f=>{if(f){const l=getComputedStyle(f);r.current=l,i.current=ce(l)}else r.current=null;n(f)},[])}}Y(sn,"usePresence");function Ze(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}Y(Ze,"setRef");function cn(...e){const t=a.useRef(e);return t.current=e,a.useCallback(n=>{const r=t.current;let o=!1;const s=r.map(i=>{const c=Ze(i,n);return!o&&typeof c=="function"&&(o=!0),c});if(o)return()=>{for(let i=0;iFr(e,"name",{value:t,configurable:!0}),Ce=0,U=null;function jr(e){return ct(),e.children}st(jr,"FocusGuards");function ct(){a.useEffect(()=>{U||(U={start:Je(),end:Je()});const{start:e,end:t}=U;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),Ce++,()=>{Ce===1&&(U==null||U.start.remove(),U==null||U.end.remove(),U=null),Ce=Math.max(0,Ce-1)}},[])}st(ct,"useFocusGuards");function Je(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}st(Je,"createFocusGuard");var B=function(){return B=Object.assign||function(t){for(var n,r=1,o=arguments.length;r"u")return to;var t=no(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},oo=vn(),de="data-scroll-locked",ao=function(e,t,n,r){var o=e.left,s=e.top,i=e.right,c=e.gap;return n===void 0&&(n="margin"),` - .`.concat(Wr,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(c,"px ").concat(r,`; - } - body[`).concat(de,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(o,`px; - padding-top: `).concat(s,`px; - padding-right: `).concat(i,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(c,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(c,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(De,` { - right: `).concat(c,"px ").concat(r,`; - } - - .`).concat(ke,` { - margin-right: `).concat(c,"px ").concat(r,`; - } - - .`).concat(De," .").concat(De,` { - right: 0 `).concat(r,`; - } - - .`).concat(ke," .").concat(ke,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(de,`] { - `).concat(Ur,": ").concat(c,`px; - } -`)},Rt=function(){var e=parseInt(document.body.getAttribute(de)||"0",10);return isFinite(e)?e:0},io=function(){a.useEffect(function(){return document.body.setAttribute(de,(Rt()+1).toString()),function(){var e=Rt()-1;e<=0?document.body.removeAttribute(de):document.body.setAttribute(de,e.toString())}},[])},so=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;io();var s=a.useMemo(function(){return ro(o)},[o]);return a.createElement(oo,{styles:ao(s,!t,o,n?"":"!important")})},Qe=!1;if(typeof window<"u")try{var xe=Object.defineProperty({},"passive",{get:function(){return Qe=!0,!0}});window.addEventListener("test",xe,xe),window.removeEventListener("test",xe,xe)}catch{Qe=!1}var oe=Qe?{passive:!1}:!1,co=function(e){return e.tagName==="TEXTAREA"},mn=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!co(e)&&n[t]==="visible")},uo=function(e){return mn(e,"overflowY")},lo=function(e){return mn(e,"overflowX")},Ot=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=pn(e,r);if(o){var s=hn(e,r),i=s[1],c=s[2];if(i>c)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},fo=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},vo=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},pn=function(e,t){return e==="v"?uo(t):lo(t)},hn=function(e,t){return e==="v"?fo(t):vo(t)},mo=function(e,t){return e==="h"&&t==="rtl"?-1:1},po=function(e,t,n,r,o){var s=mo(e,window.getComputedStyle(t).direction),i=s*r,c=n.target,u=t.contains(c),d=!1,f=i>0,l=0,v=0;do{if(!c)break;var b=hn(e,c),h=b[0],p=b[1],g=b[2],w=p-g-s*h;(h||w)&&pn(e,c)&&(l+=w,v+=h);var S=c.parentNode;c=S&&S.nodeType===Node.DOCUMENT_FRAGMENT_NODE?S.host:S}while(!u&&c!==document.body||u&&(t.contains(c)||t===c));return(f&&Math.abs(l)<1||!f&&Math.abs(v)<1)&&(d=!0),d},Pe=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Dt=function(e){return[e.deltaX,e.deltaY]},kt=function(e){return e&&"current"in e?e.current:e},ho=function(e,t){return e[0]===t[0]&&e[1]===t[1]},go=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},bo=0,ae=[];function yo(e){var t=a.useRef([]),n=a.useRef([0,0]),r=a.useRef(),o=a.useState(bo++)[0],s=a.useState(vn)[0],i=a.useRef(e);a.useEffect(function(){i.current=e},[e]),a.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var p=$r([e.lockRef.current],(e.shards||[]).map(kt),!0).filter(Boolean);return p.forEach(function(g){return g.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),p.forEach(function(g){return g.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var c=a.useCallback(function(p,g){if("touches"in p&&p.touches.length===2||p.type==="wheel"&&p.ctrlKey)return!i.current.allowPinchZoom;var w=Pe(p),S=n.current,x="deltaX"in p?p.deltaX:S[0]-w[0],O="deltaY"in p?p.deltaY:S[1]-w[1],R,P=p.target,N=Math.abs(x)>Math.abs(O)?"h":"v";if("touches"in p&&N==="h"&&P.type==="range")return!1;var X=window.getSelection(),z=X&&X.anchorNode,q=z?z===P||z.contains(P):!1;if(q)return!1;var F=Ot(N,P);if(!F)return!0;if(F?R=N:(R=N==="v"?"h":"v",F=Ot(N,P)),!F)return!1;if(!r.current&&"changedTouches"in p&&(x||O)&&(r.current=R),!R)return!0;var I=r.current||R;return po(I,g,p,I==="h"?x:O)},[]),u=a.useCallback(function(p){var g=p;if(!(!ae.length||ae[ae.length-1]!==s)){var w="deltaY"in g?Dt(g):Pe(g),S=t.current.filter(function(R){return R.name===g.type&&(R.target===g.target||g.target===R.shadowParent)&&ho(R.delta,w)})[0];if(S&&S.should){g.cancelable&&g.preventDefault();return}if(!S){var x=(i.current.shards||[]).map(kt).filter(Boolean).filter(function(R){return R.contains(g.target)}),O=x.length>0?c(g,x[0]):!i.current.noIsolation;O&&g.cancelable&&g.preventDefault()}}},[]),d=a.useCallback(function(p,g,w,S){var x={name:p,delta:g,target:w,should:S,shadowParent:Eo(w)};t.current.push(x),setTimeout(function(){t.current=t.current.filter(function(O){return O!==x})},1)},[]),f=a.useCallback(function(p){n.current=Pe(p),r.current=void 0},[]),l=a.useCallback(function(p){d(p.type,Dt(p),p.target,c(p,e.lockRef.current))},[]),v=a.useCallback(function(p){d(p.type,Pe(p),p.target,c(p,e.lockRef.current))},[]);a.useEffect(function(){return ae.push(s),e.setCallbacks({onScrollCapture:l,onWheelCapture:l,onTouchMoveCapture:v}),document.addEventListener("wheel",u,oe),document.addEventListener("touchmove",u,oe),document.addEventListener("touchstart",f,oe),function(){ae=ae.filter(function(p){return p!==s}),document.removeEventListener("wheel",u,oe),document.removeEventListener("touchmove",u,oe),document.removeEventListener("touchstart",f,oe)}},[]);var b=e.removeScrollBar,h=e.inert;return a.createElement(a.Fragment,null,h?a.createElement(s,{styles:go(o)}):null,b?a.createElement(so,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Eo(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const wo=Gr(fn,yo);var gn=a.forwardRef(function(e,t){return a.createElement(Ne,B({},e,{ref:t,sideCar:wo}))});gn.classNames=Ne.classNames;var So=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},ie=new WeakMap,Re=new WeakMap,Oe={},Ue=0,bn=function(e){return e&&(e.host||bn(e.parentNode))},Co=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=bn(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},xo=function(e,t,n,r){var o=Co(t,Array.isArray(e)?e:[e]);Oe[n]||(Oe[n]=new WeakMap);var s=Oe[n],i=[],c=new Set,u=new Set(o),d=function(l){!l||c.has(l)||(c.add(l),d(l.parentNode))};o.forEach(d);var f=function(l){!l||u.has(l)||Array.prototype.forEach.call(l.children,function(v){if(c.has(v))f(v);else try{var b=v.getAttribute(r),h=b!==null&&b!=="false",p=(ie.get(v)||0)+1,g=(s.get(v)||0)+1;ie.set(v,p),s.set(v,g),i.push(v),p===1&&h&&Re.set(v,!0),g===1&&v.setAttribute(n,"true"),h||v.setAttribute(r,"true")}catch(w){console.error("aria-hidden: cannot operate on ",v,w)}})};return f(t),c.clear(),Ue++,function(){i.forEach(function(l){var v=ie.get(l)-1,b=s.get(l)-1;ie.set(l,v),s.set(l,b),v||(Re.has(l)||l.removeAttribute(r),Re.delete(l)),b||l.removeAttribute(n)}),Ue--,Ue||(ie=new WeakMap,ie=new WeakMap,Re=new WeakMap,Oe={})}},Po=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=So(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),xo(r,o,n,"aria-hidden")):function(){return null}},Ro=Object.defineProperty,G=(e,t)=>Ro(e,"name",{value:t,configurable:!0}),ut="Dialog",[yn,da]=Ft(ut),[Oo,ne]=yn(ut),Do=G(e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:s,modal:i=!0}=e,c=a.useRef(null),u=a.useRef(null),[d,f]=Wt({prop:r,defaultProp:o??!1,onChange:s,caller:ut}),[l,v]=a.useState(0),[b,h]=a.useState(0);return E.jsx(Oo,{scope:t,triggerRef:c,contentRef:u,contentId:V(),titleId:V(),descriptionId:V(),titlePresent:l>0,descriptionPresent:b>0,setTitleCount:v,setDescriptionCount:h,open:d,onOpenChange:f,onOpenToggle:a.useCallback(()=>f(p=>!p),[f]),modal:i,children:n})},"Dialog"),En="DialogPortal",[ko,wn]=yn(En,{forceMount:void 0}),No=G(e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,s=ne(En,t);return E.jsx(ko,{scope:t,forceMount:n,children:a.Children.map(r,i=>E.jsx(it,{present:n||s.open,children:E.jsx(Tr,{asChild:!0,container:o,children:i})}))})},"DialogPortal"),et="DialogOverlay",Io=a.forwardRef(G(function(t,n){const r=wn(et,t.__scopeDialog),{forceMount:o=r.forceMount,...s}=t,i=ne(et,t.__scopeDialog);return i.modal?E.jsx(it,{present:o||i.open,children:E.jsx(_o,{...s,ref:n})}):null},"DialogOverlay")),Ao=rt("DialogOverlay.RemoveScroll"),_o=a.forwardRef(G(function(t,n){const{__scopeDialog:r,...o}=t,s=ne(et,r),i=qt(),c=pe(n,i);return E.jsx(gn,{as:Ao,allowPinchZoom:!0,shards:[s.contentRef],children:E.jsx($.div,{"data-state":lt(s.open),...o,ref:c,style:{pointerEvents:"auto",...o.style}})})},"DialogOverlayImpl")),ge="DialogContent",Mo=a.forwardRef(G(function(t,n){const r=wn(ge,t.__scopeDialog),{forceMount:o=r.forceMount,...s}=t,i=ne(ge,t.__scopeDialog);return E.jsx(it,{present:o||i.open,children:i.modal?E.jsx(To,{...s,ref:n}):E.jsx(Lo,{...s,ref:n})})},"DialogContent")),To=a.forwardRef(G(function(t,n){const r=ne(ge,t.__scopeDialog),o=a.useRef(null),s=pe(n,r.contentRef,o);return a.useEffect(()=>{const i=o.current;if(i)return Po(i)},[]),E.jsx(Sn,{...t,ref:s,trapFocus:r.open,disableOutsidePointerEvents:r.open,onCloseAutoFocus:Q(t.onCloseAutoFocus,i=>{var c;i.preventDefault(),(c=r.triggerRef.current)==null||c.focus()}),onPointerDownOutside:Q(t.onPointerDownOutside,i=>{const c=i.detail.originalEvent,u=c.button===0&&c.ctrlKey===!0;(c.button===2||u)&&i.preventDefault()}),onFocusOutside:Q(t.onFocusOutside,i=>i.preventDefault())})},"DialogContentModal")),Lo=a.forwardRef(G(function(t,n){const r=ne(ge,t.__scopeDialog),o=a.useRef(!1),s=a.useRef(!1);return E.jsx(Sn,{...t,ref:n,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var c,u;(c=t.onCloseAutoFocus)==null||c.call(t,i),i.defaultPrevented||(o.current||(u=r.triggerRef.current)==null||u.focus(),i.preventDefault()),o.current=!1,s.current=!1},onInteractOutside:i=>{var d,f;(d=t.onInteractOutside)==null||d.call(t,i),i.defaultPrevented||(o.current=!0,i.detail.originalEvent.type==="pointerdown"&&(s.current=!0));const c=i.target;((f=r.triggerRef.current)==null?void 0:f.contains(c))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&s.current&&i.preventDefault()}})},"DialogContentNonModal")),Sn=a.forwardRef(G(function(t,n){const{__scopeDialog:r,trapFocus:o,onOpenAutoFocus:s,onCloseAutoFocus:i,...c}=t,u=ne(ge,r);return ct(),E.jsx(E.Fragment,{children:E.jsx(Ar,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:s,onUnmountAutoFocus:i,children:E.jsx(kr,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionPresent?u.descriptionId:void 0,"aria-labelledby":u.titlePresent?u.titleId:void 0,"data-state":lt(u.open),...c,ref:n,deferPointerDownOutside:!0,onDismiss:()=>u.onOpenChange(!1)})})})},"DialogContentImpl"));function lt(e){return e?"open":"closed"}G(lt,"getState");var he='[cmdk-group=""]',Be='[cmdk-group-items=""]',Fo='[cmdk-group-heading=""]',Cn='[cmdk-item=""]',Nt=`${Cn}:not([aria-disabled="true"])`,tt="cmdk-item-select",ue="data-value",jo=(e,t,n)=>er(e,t,n),xn=a.createContext(void 0),Ee=()=>a.useContext(xn),Pn=a.createContext(void 0),dt=()=>a.useContext(Pn),Rn=a.createContext(void 0),On=a.forwardRef((e,t)=>{let n=le(()=>{var m,C;return{search:"",value:(C=(m=e.value)!=null?m:e.defaultValue)!=null?C:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=le(()=>new Set),o=le(()=>new Map),s=le(()=>new Map),i=le(()=>new Set),c=Dn(e),{label:u,children:d,value:f,onValueChange:l,filter:v,shouldFilter:b,loop:h,disablePointerSelection:p=!1,vimBindings:g=!0,...w}=e,S=V(),x=V(),O=V(),R=a.useRef(null),P=Xo();te(()=>{if(f!==void 0){let m=f.trim();n.current.value=m,N.emit()}},[f]),te(()=>{P(6,re)},[]);let N=a.useMemo(()=>({subscribe:m=>(i.current.add(m),()=>i.current.delete(m)),snapshot:()=>n.current,setState:(m,C,D)=>{var y,k,A,L;if(!Object.is(n.current[m],C)){if(n.current[m]=C,m==="search")I(),q(),P(1,F);else if(m==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let M=document.getElementById(O);M?M.focus():(y=document.getElementById(S))==null||y.focus()}if(P(7,()=>{var M;n.current.selectedItemId=(M=K())==null?void 0:M.id,N.emit()}),D||P(5,re),((k=c.current)==null?void 0:k.value)!==void 0){let M=C??"";(L=(A=c.current).onValueChange)==null||L.call(A,M);return}}N.emit()}},emit:()=>{i.current.forEach(m=>m())}}),[]),X=a.useMemo(()=>({value:(m,C,D)=>{var y;C!==((y=s.current.get(m))==null?void 0:y.value)&&(s.current.set(m,{value:C,keywords:D}),n.current.filtered.items.set(m,z(C,D)),P(2,()=>{q(),N.emit()}))},item:(m,C)=>(r.current.add(m),C&&(o.current.has(C)?o.current.get(C).add(m):o.current.set(C,new Set([m]))),P(3,()=>{I(),q(),n.current.value||F(),N.emit()}),()=>{s.current.delete(m),r.current.delete(m),n.current.filtered.items.delete(m);let D=K();P(4,()=>{I(),(D==null?void 0:D.getAttribute("id"))===m&&F(),N.emit()})}),group:m=>(o.current.has(m)||o.current.set(m,new Set),()=>{s.current.delete(m),o.current.delete(m)}),filter:()=>c.current.shouldFilter,label:u||e["aria-label"],getDisablePointerSelection:()=>c.current.disablePointerSelection,listId:S,inputId:O,labelId:x,listInnerRef:R}),[]);function z(m,C){var D,y;let k=(y=(D=c.current)==null?void 0:D.filter)!=null?y:jo;return m?k(m,n.current.search,C):0}function q(){if(!n.current.search||c.current.shouldFilter===!1)return;let m=n.current.filtered.items,C=[];n.current.filtered.groups.forEach(y=>{let k=o.current.get(y),A=0;k.forEach(L=>{let M=m.get(L);A=Math.max(M,A)}),C.push([y,A])});let D=R.current;J().sort((y,k)=>{var A,L;let M=y.getAttribute("id"),we=k.getAttribute("id");return((A=m.get(we))!=null?A:0)-((L=m.get(M))!=null?L:0)}).forEach(y=>{let k=y.closest(Be);k?k.appendChild(y.parentElement===k?y:y.closest(`${Be} > *`)):D.appendChild(y.parentElement===D?y:y.closest(`${Be} > *`))}),C.sort((y,k)=>k[1]-y[1]).forEach(y=>{var k;let A=(k=R.current)==null?void 0:k.querySelector(`${he}[${ue}="${encodeURIComponent(y[0])}"]`);A==null||A.parentElement.appendChild(A)})}function F(){let m=J().find(D=>D.getAttribute("aria-disabled")!=="true"),C=m==null?void 0:m.getAttribute(ue);N.setState("value",C||void 0)}function I(){var m,C,D,y;if(!n.current.search||c.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let k=0;for(let A of r.current){let L=(C=(m=s.current.get(A))==null?void 0:m.value)!=null?C:"",M=(y=(D=s.current.get(A))==null?void 0:D.keywords)!=null?y:[],we=z(L,M);n.current.filtered.items.set(A,we),we>0&&k++}for(let[A,L]of o.current)for(let M of L)if(n.current.filtered.items.get(M)>0){n.current.filtered.groups.add(A);break}n.current.filtered.count=k}function re(){var m,C,D;let y=K();y&&(((m=y.parentElement)==null?void 0:m.firstChild)===y&&((D=(C=y.closest(he))==null?void 0:C.querySelector(Fo))==null||D.scrollIntoView({block:"nearest"})),y.scrollIntoView({block:"nearest"}))}function K(){var m;return(m=R.current)==null?void 0:m.querySelector(`${Cn}[aria-selected="true"]`)}function J(){var m;return Array.from(((m=R.current)==null?void 0:m.querySelectorAll(Nt))||[])}function Ae(m){let C=J()[m];C&&N.setState("value",C.getAttribute(ue))}function _e(m){var C;let D=K(),y=J(),k=y.findIndex(L=>L===D),A=y[k+m];(C=c.current)!=null&&C.loop&&(A=k+m<0?y[y.length-1]:k+m===y.length?y[0]:y[k+m]),A&&N.setState("value",A.getAttribute(ue))}function ft(m){let C=K(),D=C==null?void 0:C.closest(he),y;for(;D&&!y;)D=m>0?Yo(D,he):Go(D,he),y=D==null?void 0:D.querySelector(Nt);y?N.setState("value",y.getAttribute(ue)):_e(m)}let vt=()=>Ae(J().length-1),mt=m=>{m.preventDefault(),m.metaKey?vt():m.altKey?ft(1):_e(1)},pt=m=>{m.preventDefault(),m.metaKey?Ae(0):m.altKey?ft(-1):_e(-1)};return a.createElement($.div,{ref:t,tabIndex:-1,...w,"cmdk-root":"",onKeyDown:m=>{var C;(C=w.onKeyDown)==null||C.call(w,m);let D=m.nativeEvent.isComposing||m.keyCode===229;if(!(m.defaultPrevented||D))switch(m.key){case"n":case"j":{g&&m.ctrlKey&&mt(m);break}case"ArrowDown":{mt(m);break}case"p":case"k":{g&&m.ctrlKey&&pt(m);break}case"ArrowUp":{pt(m);break}case"Home":{m.preventDefault(),Ae(0);break}case"End":{m.preventDefault(),vt();break}case"Enter":{m.preventDefault();let y=K();if(y){let k=new Event(tt);y.dispatchEvent(k)}}}}},a.createElement("label",{"cmdk-label":"",htmlFor:X.inputId,id:X.labelId,style:Zo},u),Ie(e,m=>a.createElement(Pn.Provider,{value:N},a.createElement(xn.Provider,{value:X},m))))}),$o=a.forwardRef((e,t)=>{var n,r;let o=V(),s=a.useRef(null),i=a.useContext(Rn),c=Ee(),u=Dn(e),d=(r=(n=u.current)==null?void 0:n.forceMount)!=null?r:i==null?void 0:i.forceMount;te(()=>{if(!d)return c.item(o,i==null?void 0:i.id)},[d]);let f=kn(o,s,[e.value,e.children,s],e.keywords),l=dt(),v=Z(P=>P.value&&P.value===f.current),b=Z(P=>d||c.filter()===!1?!0:P.search?P.filtered.items.get(o)>0:!0);a.useEffect(()=>{let P=s.current;if(!(!P||e.disabled))return P.addEventListener(tt,h),()=>P.removeEventListener(tt,h)},[b,e.onSelect,e.disabled]);function h(){var P,N;p(),(N=(P=u.current).onSelect)==null||N.call(P,f.current)}function p(){l.setState("value",f.current,!0)}if(!b)return null;let{disabled:g,value:w,onSelect:S,forceMount:x,keywords:O,...R}=e;return a.createElement($.div,{ref:ee(s,t),...R,id:o,"cmdk-item":"",role:"option","aria-disabled":!!g,"aria-selected":!!v,"data-disabled":!!g,"data-selected":!!v,onPointerMove:g||c.getDisablePointerSelection()?void 0:p,onClick:g?void 0:h},e.children)}),Wo=a.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:o,...s}=e,i=V(),c=a.useRef(null),u=a.useRef(null),d=V(),f=Ee(),l=Z(b=>o||f.filter()===!1?!0:b.search?b.filtered.groups.has(i):!0);te(()=>f.group(i),[]),kn(i,c,[e.value,e.heading,u]);let v=a.useMemo(()=>({id:i,forceMount:o}),[o]);return a.createElement($.div,{ref:ee(c,t),...s,"cmdk-group":"",role:"presentation",hidden:l?void 0:!0},n&&a.createElement("div",{ref:u,"cmdk-group-heading":"","aria-hidden":!0,id:d},n),Ie(e,b=>a.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?d:void 0},a.createElement(Rn.Provider,{value:v},b))))}),Uo=a.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,o=a.useRef(null),s=Z(i=>!i.search);return!n&&!s?null:a.createElement($.div,{ref:ee(o,t),...r,"cmdk-separator":"",role:"separator"})}),Bo=a.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,o=e.value!=null,s=dt(),i=Z(d=>d.search),c=Z(d=>d.selectedItemId),u=Ee();return a.useEffect(()=>{e.value!=null&&s.setState("search",e.value)},[e.value]),a.createElement($.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":u.listId,"aria-labelledby":u.labelId,"aria-activedescendant":c,id:u.inputId,type:"text",value:o?e.value:i,onChange:d=>{o||s.setState("search",d.target.value),n==null||n(d.target.value)}})}),Vo=a.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...o}=e,s=a.useRef(null),i=a.useRef(null),c=Z(d=>d.selectedItemId),u=Ee();return a.useEffect(()=>{if(i.current&&s.current){let d=i.current,f=s.current,l,v=new ResizeObserver(()=>{l=requestAnimationFrame(()=>{let b=d.offsetHeight;f.style.setProperty("--cmdk-list-height",b.toFixed(1)+"px")})});return v.observe(d),()=>{cancelAnimationFrame(l),v.unobserve(d)}}},[]),a.createElement($.div,{ref:ee(s,t),...o,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":c,"aria-label":r,id:u.listId},Ie(e,d=>a.createElement("div",{ref:ee(i,u.listInnerRef),"cmdk-list-sizer":""},d)))}),zo=a.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:o,contentClassName:s,container:i,...c}=e;return a.createElement(Do,{open:n,onOpenChange:r},a.createElement(No,{container:i},a.createElement(Io,{"cmdk-overlay":"",className:o}),a.createElement(Mo,{"aria-label":e.label,"cmdk-dialog":"",className:s},a.createElement(On,{ref:t,...c}))))}),Ko=a.forwardRef((e,t)=>Z(n=>n.filtered.count===0)?a.createElement($.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Ho=a.forwardRef((e,t)=>{let{progress:n,children:r,label:o="Loading...",...s}=e;return a.createElement($.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":o},Ie(e,i=>a.createElement("div",{"aria-hidden":!0},i)))}),se=Object.assign(On,{List:Vo,Item:$o,Input:Bo,Group:Wo,Separator:Uo,Dialog:zo,Empty:Ko,Loading:Ho});function Yo(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Go(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function Dn(e){let t=a.useRef(e);return te(()=>{t.current=e}),t}var te=typeof window>"u"?a.useEffect:a.useLayoutEffect;function le(e){let t=a.useRef();return t.current===void 0&&(t.current=e()),t}function Z(e){let t=dt(),n=()=>e(t.snapshot());return a.useSyncExternalStore(t.subscribe,n,n)}function kn(e,t,n,r=[]){let o=a.useRef(),s=Ee();return te(()=>{var i;let c=(()=>{var d;for(let f of n){if(typeof f=="string")return f.trim();if(typeof f=="object"&&"current"in f)return f.current?(d=f.current.textContent)==null?void 0:d.trim():o.current}})(),u=r.map(d=>d.trim());s.value(e,c,u),(i=t.current)==null||i.setAttribute(ue,c),o.current=c}),o}var Xo=()=>{let[e,t]=a.useState(),n=le(()=>new Map);return te(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,o)=>{n.current.set(r,o),t({})}};function qo(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function Ie({asChild:e,children:t},n){return e&&a.isValidElement(t)?a.cloneElement(qo(t),{ref:t.ref},n(t.props.children)):n(t)}var Zo={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const Nn={gehe:"Gehe zu",tun:"Tun",finden:"Finden",lucy:"An Lucy"},Jo=An.map(e=>({id:`gehe:${e.id}`,gruppe:"gehe",label:e.label,hinweis:e.hint,icon:e.icon,ausfuehren:({navigate:t})=>t(e.pfad)})),Qo=[{id:"tun:wartung",gruppe:"tun",label:"System-Wartung öffnen",hinweis:"Dienste, Updates, Snapshot",icon:In,stichworte:"pflege dienste neustart update",ausfuehren:({schublade:e})=>e("wartung")},{id:"tun:logs",gruppe:"tun",label:"System-Logs öffnen",hinweis:"Diagnose je Dienst",icon:Kn,stichworte:"fehler journal diagnose",ausfuehren:({schublade:e})=>e("logs")},{id:"tun:updates",gruppe:"tun",label:"Nach Updates suchen",hinweis:"apt + Engine + Agent prüfen",icon:$n,stichworte:"aktualisieren apt engine",ausfuehren:async({api:e,melden:t})=>{await e("/api/maintenance/check-updates",{method:"POST"}),t("info","Update-Suche läuft — das Ergebnis erscheint in der Wartung.")}},{id:"tun:snapshot",gruppe:"tun",label:"Snapshot anlegen",hinweis:"Sicherung vor riskanten Schritten",icon:Wn,stichworte:"backup sicherung zeitmaschine",ausfuehren:async({api:e,melden:t})=>{await e("/api/system/backup",{method:"POST"}),t("erfolg","Snapshot angestoßen.")}},{id:"tun:engine-neustart",gruppe:"tun",label:"Motor neu starten",hinweis:"llama-swap — alle Modelle fallen kurz weg",icon:Un,stichworte:"engine llama swap modell neu starten",rueckfrage:"Der Motor (llama-swap) wird neu gestartet. Alle geladenen Modelle fallen dabei aus dem Speicher und müssen neu aufwärmen — das dauert je nach Modell über 20 Sekunden. Laufende Antworten brechen ab.",ausfuehren:async({api:e,melden:t})=>{const n=await e("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:"llama-swap"})});t(n.ok?"erfolg":"fehler",n.ok?"Motor neu gestartet.":`Neustart fehlgeschlagen: ${n.err||"Unbekannter Fehler"}`)}}],ea=e=>{const t=e.trim();return t?[{id:"finden:chronik",gruppe:"finden",label:`„${t}“ in der Chronik`,hinweis:"Was die Box getan hat",icon:Bn,ausfuehren:({navigate:n})=>n(`/chronik?q=${encodeURIComponent(t)}`)},{id:"finden:wissen",gruppe:"finden",label:`„${t}“ im Wissens-Vault`,hinweis:"Lucys Notizen",icon:Vn,ausfuehren:({navigate:n})=>n(`/wissen?suche=${encodeURIComponent(t)}`)}]:[]},ta=e=>{const t=e.trim();return t.length<8?[]:[{id:"lucy:idee",gruppe:"lucy",label:`Als Idee erfassen: „${t.length>60?t.slice(0,57)+"…":t}“`,hinweis:"Wird nur notiert — gebaut wird erst auf deinen Klick",icon:_n,ausfuehren:async({api:n,melden:r,navigate:o})=>{await n("/api/ideen",{method:"POST",body:JSON.stringify({titel:t.length>160?t.slice(0,157)+"…":t,notiz:t.length>160?t:"",welt:"ide",tiefe:"",ziel:"",art:"idee"})}),r("erfolg","Als Idee erfasst."),o("/ideen")}}]};function na(e){return[...Jo,...Qo,...ea(e),...ta(e)]}const ra=e=>[e.label,e.hinweis,e.stichworte,Nn[e.gruppe]].filter(Boolean).join(" "),oa=["gehe","tun","finden","lucy"];function fa(){const e=Mn(),t=ht(b=>b.palette),n=ht(b=>b.melden),r=Tn(),[o,s]=a.useState(""),[i,c]=a.useState(null),[u,d]=a.useState(!1),f=a.useCallback(()=>{t(!1),s(""),c(null)},[t]),l=a.useCallback(async b=>{d(!0);try{await b.ausfuehren({text:o,navigate:h=>r({to:h}),schublade:h=>r({to:".",search:p=>({...p,system:h})}),melden:n,api:Ln}),f()}catch(h){n("fehler",h instanceof Error?h.message:String(h)),c(null)}finally{d(!1)}},[o,r,n,f]),v=a.useMemo(()=>na(o),[o]);return E.jsx(se.Dialog,{open:e,onOpenChange:b=>b?t(!0):f(),label:"Befehlspalette",className:"fixed inset-0 z-50 flex items-start justify-center overscroll-contain bg-black/50 p-4 pt-[12vh]",onClick:f,shouldFilter:!i,children:E.jsx("div",{className:"w-full max-w-xl overflow-hidden rounded-xl border border-border bg-popover text-popover-foreground shadow-2xl",onClick:b=>b.stopPropagation(),children:i?E.jsxs("div",{className:"space-y-4 p-5",children:[E.jsxs("div",{className:"flex items-center gap-2.5",children:[E.jsx(Fn,{className:"h-5 w-5 shrink-0 text-amber-400","aria-hidden":"true"}),E.jsx("h2",{className:"font-space text-sm font-bold tracking-tight",children:i.label})]}),E.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:i.rueckfrage}),E.jsxs("div",{className:"flex justify-end gap-2 pt-1",children:[E.jsx("button",{onClick:()=>c(null),className:"h-9 cursor-pointer rounded-lg border border-border/60 bg-background/20 px-4 text-xs font-semibold text-muted-foreground transition-colors hover:bg-accent",children:"Abbrechen"}),E.jsx("button",{autoFocus:!0,disabled:u,onClick:()=>l(i),className:"h-9 cursor-pointer rounded-lg bg-amber-500/90 px-4 text-xs font-bold text-black transition-colors hover:bg-amber-500 disabled:opacity-50",children:u?"Läuft …":"Ja, ausführen"})]})]}):E.jsxs(E.Fragment,{children:[E.jsx(se.Input,{autoFocus:!0,value:o,onValueChange:s,placeholder:"Springen, tun, finden — oder schreib eine Idee …",className:"w-full border-b border-border bg-transparent px-4 py-3 text-sm outline-none placeholder:text-muted-foreground"}),E.jsxs(se.List,{className:"max-h-[26rem] overflow-y-auto p-2 scrollbar-thin",children:[E.jsx(se.Empty,{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Nichts gefunden."}),oa.map(b=>{const h=v.filter(p=>p.gruppe===b);return h.length?E.jsx(se.Group,{heading:Nn[b],className:"px-1 py-1 text-[10px] font-bold uppercase tracking-widest text-muted-foreground/50",children:h.map(p=>E.jsxs(se.Item,{value:ra(p),onSelect:()=>p.rueckfrage?c(p):l(p),className:"flex cursor-pointer items-center gap-3 rounded-md px-3 py-2 text-sm text-foreground aria-selected:bg-accent aria-selected:text-accent-foreground",children:[E.jsx(p.icon,{className:jn("h-4 w-4 shrink-0",p.rueckfrage?"text-amber-400":"text-primary"),"aria-hidden":"true"}),E.jsx("span",{className:"truncate",children:p.label}),p.rueckfrage&&E.jsx("span",{className:"shrink-0 rounded bg-amber-500/15 px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wide text-amber-300",children:"fragt nach"}),p.hinweis&&E.jsx("span",{className:"ml-auto truncate pl-3 text-xs text-muted-foreground",children:p.hinweis})]},p.id))},b):null})]}),E.jsxs("div",{className:"flex items-center gap-3 border-t border-border/50 px-4 py-2 font-mono text-[10px] text-muted-foreground",children:[E.jsx("span",{className:"flex items-center gap-1",children:"↑↓ wählen"}),E.jsxs("span",{className:"flex items-center gap-1",children:[E.jsx(zn,{className:"h-3 w-3","aria-hidden":"true"})," ausführen"]}),E.jsx("span",{className:"ml-auto",children:"esc schließt"})]})]})})})}export{fa as CommandPalette}; diff --git a/frontend/dist/assets/ConnectView-CdvOrseN.js b/frontend/dist/assets/ConnectView-CdvOrseN.js deleted file mode 100644 index 965077d..0000000 --- a/frontend/dist/assets/ConnectView-CdvOrseN.js +++ /dev/null @@ -1,16 +0,0 @@ -import{c as f,r as m,D as G,F as H,j as e,t as I,B as M,I as y,G as z,b as S,L as B,J as _,K as E,C as P}from"./index-DMY9lUCb.js";import{A as u}from"./arrow-right-CNrCtUoh.js";import{C as K}from"./chevron-down-1Vx9W9jM.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const T=f("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const F=f("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const g=f("Laptop",[["path",{d:"M20 16V7a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v9m16 0H4m16 0 1.28 2.55a1 1 0 0 1-.9 1.45H3.62a1 1 0 0 1-.9-1.45L4 16",key:"tarvll"}]]),k={hermes_desktop:"Hermes Desktop: Browser-Login",kilo:"Kilo: Einstellungen → API Provider",claude_code:"env / Übersetzer"};function h({line:t,loading:n}){return n||!t?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-muted-foreground",children:[e.jsx(B,{className:"h-3 w-3 animate-spin"})," prüfe…"]}):t.ok?e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-emerald-400",children:[e.jsx(_,{className:"h-3 w-3"})," ",t.detail]}):e.jsxs("span",{className:"inline-flex items-center gap-1 text-[10px] font-semibold text-red-400",children:[e.jsx(E,{className:"h-3 w-3"})," ",t.detail]})}function C({tool:t,fileName:n,accent:o,copied:i,onCopy:c}){return e.jsxs("div",{className:"flex flex-col border border-border/60 bg-black/60 rounded-2xl overflow-hidden shadow-2xl",children:[e.jsxs("div",{className:"flex h-11 items-center justify-between px-4 border-b border-border/40 bg-black/40 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"h-3 w-3 rounded-full bg-red-500/80"}),e.jsx("span",{className:"h-3 w-3 rounded-full bg-amber-500/80"}),e.jsx("span",{className:"h-3 w-3 rounded-full bg-emerald-500/80"})]}),e.jsx("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground/75 bg-background/30 px-3 py-1 rounded-md border border-border/20",children:e.jsx("span",{children:n})}),e.jsxs("button",{onClick:c,className:"flex h-7 px-2.5 items-center gap-1.5 rounded-lg border border-border/40 bg-background/30 text-[10px] font-semibold text-muted-foreground hover:text-foreground hover:bg-background/60 transition-all cursor-pointer",children:[i?e.jsx(P,{className:"h-3.5 w-3.5 text-emerald-400"}):e.jsx(T,{className:"h-3.5 w-3.5"}),e.jsx("span",{children:i?"Kopiert":"Kopieren"})]})]}),e.jsx("pre",{className:S("p-5 overflow-x-auto text-xs font-mono whitespace-pre leading-relaxed scrollbar-thin select-text bg-black/10",o==="teal"?"text-cyan-200/90":"text-violet-200/90"),children:e.jsx("code",{children:t.snippet})})]})}function R(){const t=window.location.hostname;return t&&t!=="localhost"&&t!=="127.0.0.1"?t:"192.168.178.151"}function Z(){const[t,n]=m.useState(localStorage.getItem("mc_host")||R()),[o,i]=m.useState("kilo"),[c,L]=m.useState(!1),[b,j]=m.useState(null),A=new URLSearchParams({host:t}),{data:a,error:N}=G(A.toString()),{data:r,isLoading:p}=H(),v=N?String(N):"";function D(s){n(s),s&&localStorage.setItem("mc_host",s)}const d=a==null?void 0:a.tools.hermes_desktop,l=a==null?void 0:a.tools[o];async function w(s,x){x&&(await navigator.clipboard.writeText(x),j(s),setTimeout(()=>j(null),1500))}return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Verbindung & Integration"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[e.jsx("span",{className:"text-foreground",children:"Hermes Desktop"})," ist die Tür zur Box — einmal verbinden, fertig. Für Spezialfälle gibt es darunter den rohen Gateway-Zugang ( /v1) für sonstige Tools."]})]}),e.jsxs("div",{className:"p-5 mc-card",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-[170px_1fr] items-center",children:[e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-background/40 p-4 text-center",children:[e.jsx(g,{className:"h-7 w-7 mx-auto text-muted-foreground"}),e.jsx("div",{className:"mt-2 text-sm font-semibold text-foreground",children:"Dein lokaler Agent"}),e.jsx("div",{className:"text-[11px] text-muted-foreground",children:"Hermes Desktop · Kilo Code · Claude Code …"})]}),e.jsxs("div",{className:"flex flex-col gap-2.5",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(u,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-primary/25 bg-primary/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-primary",children:[e.jsx(I,{className:"h-3.5 w-3.5"})," Leitung 1 — Modell"]}),e.jsx(h,{line:r==null?void 0:r.gateway,loading:p})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-primary/80",children:"Gateway · :9001/v1 · Modelle coder / heavy / vision"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(u,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-violet-500/25 bg-violet-500/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-violet-300",children:[e.jsx(M,{className:"h-3.5 w-3.5"})," Leitung 2 — Gedächtnis"]}),e.jsx(h,{line:r==null?void 0:r.memory,loading:p})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-violet-300/80",children:"Hermes-nativ · im Agenten · nichts einzurichten"})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(u,{className:"h-4 w-4 text-muted-foreground shrink-0"}),e.jsxs("div",{className:"flex-1 rounded-xl border border-emerald-500/25 bg-emerald-500/5 px-3.5 py-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs font-semibold text-emerald-300",children:[e.jsx(g,{className:"h-3.5 w-3.5"})," Leitung 3 — Desktop-Gateway"]}),e.jsx(h,{line:r==null?void 0:r.desktop_gateway,loading:p})]}),e.jsx("div",{className:"mt-1 text-[11px] font-mono text-emerald-300/80",children:"Desktop-Gateway · :9119 · API-Status"})]})]})]})]}),e.jsxs("p",{className:"mt-3.5 text-[11px] text-muted-foreground leading-relaxed",children:["Der Gateway liefert ",e.jsx("span",{className:"text-foreground",children:"nur das LLM"}),". Das Gedächtnis führt",e.jsx("span",{className:"text-foreground",children:" Hermes selbst"})," (nichts einzurichten — die Kachel zeigt nur, ob es lebt), und das Desktop-Gateway bietet die Agenten-Schnittstelle. IDEs wählen die ",e.jsx("span",{className:"text-foreground",children:"echten Modelle"})," ","(coder · heavy · vision); daneben gibt es die virtuellen Lanes ",e.jsx("span",{className:"text-foreground",children:"chat"})," und"," ",e.jsx("span",{className:"text-foreground",children:"coding"}),", die je Anfrage selbst das passende Modell wählen (Alltags-Chat, simple Tools)."]})]}),e.jsx("div",{className:"p-5 mc-card",children:e.jsxs("div",{className:"space-y-1.5 max-w-md",children:[e.jsxs("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5",children:[e.jsx(F,{className:"h-3.5 w-3.5 text-primary"})," Box LAN IP-Adresse",e.jsx("span",{className:"normal-case font-semibold tracking-normal text-muted-foreground/60",children:"— vorbefüllt aus der Adresse dieser Seite"})]}),e.jsx("input",{value:t,onChange:s=>D(s.target.value),"aria-label":"Box LAN IP-Adresse",spellCheck:!1,placeholder:"z.B. 192.168.178.151",className:"w-full h-9 rounded-lg border border-border/60 bg-background/40 px-3 font-mono text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"}),e.jsx("p",{className:"text-[10px] text-muted-foreground/70",children:"Wird in alle Snippets eingebacken. Ändern musst du sie nur, wenn die Box eine neue IP bekommt."})]})}),v&&e.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Fehler beim Generieren der Snippets: ",v]}),a&&e.jsxs("div",{className:"space-y-5",children:[d&&e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-emerald-500/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx(g,{className:"h-4 w-4 text-emerald-400"}),"Hermes Desktop anbinden",e.jsx("span",{className:"text-[10px] font-medium text-emerald-400/90 normal-case",children:"der Hauptweg"})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"Die Desktop-App dockt remote an die Box an — volle Agent-Oberfläche, Projekte, Review, Gedächtnis inklusive."})]}),d.note&&e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-emerald-500/5 border border-emerald-500/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(y,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),e.jsx("span",{children:d.note})]}),e.jsx(C,{tool:d,fileName:k.hermes_desktop,accent:"teal",copied:b==="desktop",onCopy:()=>w("desktop",d.snippet)})]}),e.jsxs("div",{className:"rounded-2xl border border-border/60 bg-card/30",children:[e.jsxs("button",{onClick:()=>L(s=>!s),className:"flex w-full items-center gap-2 p-4 text-sm font-space font-bold text-foreground cursor-pointer hover:text-primary transition-colors",children:[c?e.jsx(K,{className:"h-4 w-4"}):e.jsx(z,{className:"h-4 w-4"}),"Sonstige Tools (roher /v1-Zugang)",e.jsx("span",{className:"text-[10px] font-medium text-muted-foreground normal-case",children:"Kilo Code · Claude Code · Eigenbau"})]}),c&&e.jsx("div",{className:"grid gap-5 p-4 pt-0",children:e.jsxs("div",{className:"space-y-3 rounded-2xl border border-border/60 border-t-2 border-t-primary/70 bg-card/30 p-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-space font-bold text-foreground",children:[e.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-md bg-primary/15 text-primary text-[11px]",children:"1"}),"Modell anbinden"]}),e.jsx("p",{className:"text-[11px] text-muted-foreground mt-0.5",children:"Wähle dein Tool — das Snippet zeigt auf den Gateway."})]}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:Object.entries(a.tools).filter(([s])=>s!=="hermes_desktop").map(([s,x])=>e.jsx("button",{onClick:()=>i(s),className:S("rounded-lg px-3 py-1.5 text-[11px] font-semibold tracking-wide transition-all cursor-pointer",o===s?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"border border-border/50 text-muted-foreground hover:text-foreground"),children:x.label},s))}),l&&e.jsxs(e.Fragment,{children:[l.note&&e.jsxs("div",{className:"flex items-start gap-2.5 p-3 rounded-xl bg-primary/5 border border-primary/20 text-[11px] text-muted-foreground leading-relaxed",children:[e.jsx(y,{className:"h-4 w-4 text-primary shrink-0 mt-0.5"}),e.jsx("span",{children:l.note})]}),e.jsx(C,{tool:l,fileName:k[o]||"config.json",accent:"teal",copied:b==="model",onCopy:()=>w("model",l.snippet)})]})]})})]})]})]})}export{Z as ConnectView}; diff --git a/frontend/dist/assets/Dienste-D4Tr6Z-Y.js b/frontend/dist/assets/Dienste-D4Tr6Z-Y.js new file mode 100644 index 0000000..a401661 --- /dev/null +++ b/frontend/dist/assets/Dienste-D4Tr6Z-Y.js @@ -0,0 +1 @@ +import{c as e,f as t,i as n,t as r,u as i}from"./button-Dd8hfusv.js";import{D as a,O as o,P as s,g as c,u as l}from"./index-Dd2BxC7X.js";import{a as u,i as d,n as f,r as p,t as m}from"./sheet-DWG2Q04V.js";var h=t(i(),1),g=e();function _({offen:e,onSchliessen:t}){let i=s(),_=l(),[v,y]=(0,h.useState)(null),[b,x]=(0,h.useState)(null),S=c(v);async function C(e){x(null);try{let t=await a(`/api/maintenance/restart`,{service:e});t.ok?o(`erfolg`,`${e} startet neu.`):o(`fehler`,t.err||`${e} ließ sich nicht neu starten.`),i.invalidateQueries({queryKey:[`dienste`]})}catch(e){o(`fehler`,e.message)}}return(0,g.jsx)(m,{open:e,onOpenChange:e=>!e&&t(),children:(0,g.jsxs)(f,{side:`right`,className:`w-full gap-3 overflow-y-auto border-linie bg-panel sm:max-w-2xl`,children:[(0,g.jsxs)(d,{children:[(0,g.jsx)(u,{className:`schild text-lg`,children:`Dienste und Protokolle`}),(0,g.jsx)(p,{className:`text-text-2`,children:`Welcher Dienst läuft, was er zuletzt geschrieben hat.`})]}),(0,g.jsx)(`ul`,{className:`m-0 flex list-none flex-col px-4 pb-2`,children:(_.data?.services??[]).map(e=>(0,g.jsxs)(`li`,{className:`flex flex-wrap items-center justify-between gap-2 border-t border-linie py-2.5`,children:[(0,g.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2.5`,children:[(0,g.jsx)(`span`,{className:n(`size-2.5 shrink-0 rounded-full`,e.ok?`bg-gruen`:`bg-rot`),"aria-hidden":!0}),(0,g.jsxs)(`span`,{className:`min-w-0`,children:[(0,g.jsx)(`span`,{className:`block text-[15px]`,children:e.name}),(0,g.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[e.unit,` · `,e.ok?`läuft`:`antwortet nicht`]})]})]}),(0,g.jsxs)(`span`,{className:`flex gap-2`,children:[(0,g.jsx)(r,{variant:v===e.unit?`info`:`ghost`,size:`sm`,onClick:()=>y(e.unit),children:`Protokoll`}),b===e.unit?(0,g.jsx)(r,{variant:`gefahr`,size:`sm`,onClick:()=>C(e.unit),children:`Wirklich neu starten?`}):(0,g.jsx)(r,{variant:`outline`,size:`sm`,onClick:()=>x(e.unit),children:`Neu starten`})]})]},e.unit))}),v&&(0,g.jsx)(`pre`,{className:`ziffern mx-4 mb-4 max-h-[50vh] overflow-auto rounded-lg border border-linie bg-[#0b0d0f] p-3 text-xs leading-relaxed whitespace-pre-wrap text-text-2`,children:S.isFetching?`Wird gelesen …`:S.data?.text||S.data?.err||`Kein Protokoll.`})]})})}export{_ as Dienste}; \ No newline at end of file diff --git a/frontend/dist/assets/Einstellungen-PGljNxC2.js b/frontend/dist/assets/Einstellungen-PGljNxC2.js new file mode 100644 index 0000000..3b289c2 --- /dev/null +++ b/frontend/dist/assets/Einstellungen-PGljNxC2.js @@ -0,0 +1 @@ +import{c as e,f as t,t as n,u as r}from"./button-Dd8hfusv.js";import{D as i,E as a,M as o,N as s,O as c,P as l}from"./index-Dd2BxC7X.js";import{a as u,i as d,n as f,r as p,t as m}from"./sheet-DWG2Q04V.js";var h=t(r(),1),g=e();function _({offen:e,onSchliessen:t}){let r=l(),_=s({queryKey:[`geheimnisse`],queryFn:()=>a(`/api/maintenance/geheimnisse`),enabled:e}),[v,y]=(0,h.useState)(``);async function b(e){try{await i(`/api/maintenance/geheimnisse`,{schluessel:`hf_token`,wert:e}),c(`erfolg`,e?`Hugging-Face-Zugang gespeichert.`:`Hugging-Face-Zugang gelöscht.`),y(``),r.invalidateQueries({queryKey:[`geheimnisse`]})}catch(e){c(`fehler`,e.message)}}let x=_.data;return(0,g.jsx)(m,{open:e,onOpenChange:e=>!e&&t(),children:(0,g.jsxs)(f,{side:`right`,className:`w-full gap-3 overflow-y-auto border-linie bg-panel sm:max-w-lg`,children:[(0,g.jsxs)(d,{children:[(0,g.jsx)(u,{className:`schild text-lg`,children:`Einstellungen`}),(0,g.jsx)(p,{className:`text-text-2`,children:`Was die Box sich merkt.`})]}),(0,g.jsxs)(`section`,{className:`flex flex-col gap-3 border-t border-linie px-4 pt-4`,children:[(0,g.jsx)(`h3`,{className:`schild text-sm text-text-3`,children:`Hugging-Face-Zugang`}),(0,g.jsxs)(`p`,{className:`text-sm text-text-2`,children:[x?.hf_token_gesetzt?`Ist hinterlegt.`:`Fehlt.`,` Nötig für gesperrte Modelle und schnellere Downloads.`,x?.hf_token_aus_env?` Er kommt aus der Dienst-Einstellung und lässt sich hier nicht löschen.`:``]}),(0,g.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault(),v.trim()&&b(v.trim())},children:[(0,g.jsx)(`label`,{htmlFor:`hf-token`,className:`sr-only`,children:`Hugging-Face-Zugang`}),(0,g.jsx)(`input`,{id:`hf-token`,type:`password`,autoComplete:`off`,value:v,onChange:e=>y(e.target.value),placeholder:`hf_…`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),(0,g.jsx)(n,{type:`submit`,disabled:!v.trim()||x?.schreibbar===!1,children:`Speichern`})]}),x?.hf_token_gesetzt&&!x.hf_token_aus_env&&(0,g.jsx)(n,{variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>b(null),children:`Zugang löschen`})]}),(0,g.jsxs)(`section`,{className:`flex flex-col gap-2 border-t border-linie px-4 pt-4`,children:[(0,g.jsx)(`h3`,{className:`schild text-sm text-text-3`,children:`Hinweise`}),(0,g.jsx)(`p`,{className:`text-sm text-text-2`,children:`Dringende Hinweise gehen zusätzlich per Telegram raus, alles andere bleibt hier. Einfache Probleme wie einen abgestürzten Dienst behebt der Wächter selbst und schreibt es in den Verlauf.`})]}),(0,g.jsxs)(`section`,{className:`flex flex-col gap-2 border-t border-linie px-4 pt-4 pb-4`,children:[(0,g.jsx)(`h3`,{className:`schild text-sm text-text-3`,children:`Hermes`}),(0,g.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-11 items-center gap-2 self-start rounded-lg border border-linie-stark bg-erhaben px-4 text-[15px] hover:border-text-3`,children:[(0,g.jsx)(o,{className:`size-4`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),(0,g.jsx)(`p`,{className:`text-xs text-text-3`,children:`Chat, Sitzungen und Cron-Jobs verwaltet Hermes selbst. Es fragt nach seiner eigenen Anmeldung.`})]})]})})}export{_ as Einstellungen}; \ No newline at end of file diff --git a/frontend/dist/assets/GuideView-CxJU6Qxs.js b/frontend/dist/assets/GuideView-CxJU6Qxs.js deleted file mode 100644 index 666a5ae..0000000 --- a/frontend/dist/assets/GuideView-CxJU6Qxs.js +++ /dev/null @@ -1,36 +0,0 @@ -import{c as u,j as e,r as M,t as C,Y as z,Z as k,_ as y,Q as v,$ as L,a0 as G,W as D,b as f,a1 as T}from"./index-DMY9lUCb.js";import{a as w,L as B,C as P,Z as E}from"./zap-2yha4rs4.js";import{L as I}from"./layers-CcL78b5Q.js";import{S as R}from"./shield-BtE9Fxv6.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const K=u("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const S=u("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const V=u("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const W=u("LifeBuoy",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.93 4.93 4.24 4.24",key:"1ymg45"}],["path",{d:"m14.83 9.17 4.24-4.24",key:"1cb5xl"}],["path",{d:"m14.83 14.83 4.24 4.24",key:"q42g0n"}],["path",{d:"m9.17 14.83-4.24 4.24",key:"bqpfvv"}],["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const N=u("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const H=u("Puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]),i={text:"hsl(var(--foreground))",mut:"hsl(var(--muted-foreground))",border:"hsl(var(--border))",card:"hsl(var(--card) / 0.9)",bg:"hsl(var(--background) / 0.4)",primary:"hsl(var(--primary))",teal:"#2dd4bf",sky:"#38bdf8",violet:"#a78bfa",rose:"#fb7185",amber:"#fbbf24",emerald:"#34d399",indigo:"#818cf8"};function o({x:n,y:r,w:t,h:c,color:h,title:g,sub:d,sub2:x,strong:p}){const b=n+t/2;return e.jsxs("g",{children:[e.jsx("rect",{x:n,y:r,width:t,height:c,rx:12,fill:i.card,stroke:h,strokeOpacity:p?.9:.45,strokeWidth:p?2:1.25}),e.jsx("rect",{x:n,y:r,width:t,height:3,rx:1.5,fill:h,opacity:.8}),e.jsx("text",{x:b,y:r+(d?24:c/2+4),textAnchor:"middle",fill:i.text,fontSize:12.5,fontWeight:700,children:g}),d&&e.jsx("text",{x:b,y:r+40,textAnchor:"middle",fill:i.mut,fontSize:10,children:d}),x&&e.jsx("text",{x:b,y:r+53,textAnchor:"middle",fill:i.mut,fontSize:10,children:x})]})}function j({from:n,to:r,color:t=i.border,dash:c}){const[h,g]=n,[d,x]=r,p=(h+d)/2;return e.jsxs("g",{stroke:t,strokeOpacity:.7,fill:"none",strokeWidth:1.5,strokeDasharray:c?"5 4":void 0,children:[e.jsx("path",{d:`M ${h} ${g} C ${p} ${g}, ${p} ${x}, ${d} ${x}`}),e.jsx("path",{d:`M ${d-6} ${x-4} L ${d} ${x} L ${d-6} ${x+4}`,fill:t,fillOpacity:.7,stroke:"none"})]})}function F(){const n=[{y:34,title:"Diese Oberfläche",sub:"Browser · Cockpit & Klick-Gates",color:i.teal},{y:128,title:"Lucy",sub:"Stimme & Begleiterin am PC",color:i.rose},{y:222,title:"Hermes Desktop",sub:"IDE für Projekte (PC + remote)",color:i.violet},{y:316,title:"Telegram",sub:"unterwegs, gleiche Erinnerung",color:i.sky}];return e.jsxs("svg",{viewBox:"0 0 880 432",role:"img","aria-label":"Landkarte: Du erreichst die Box über vier Türen; in der Box arbeiten Mission Control, der Hermes-Agent, der Modell-Stall, das Gedächtnis und der Wissens-Vault.",style:{width:"100%",height:"auto",fontFamily:"var(--font-sans)"},children:[e.jsx(o,{x:16,y:150,w:120,h:92,color:i.primary,strong:!0,title:"Du",sub:"entscheidest —",sub2:"die Box arbeitet"}),e.jsx(o,{x:16,y:330,w:150,h:68,color:i.emerald,title:"PC-Executor",sub:"baut & startet Lucy",sub2:"nach deiner Annahme"}),n.map(r=>e.jsx(o,{x:196,y:r.y,w:186,h:64,color:r.color,title:r.title,sub:r.sub},r.title)),n.map(r=>e.jsx(j,{from:[136,196],to:[196,r.y+32]},r.title)),e.jsx("rect",{x:420,y:14,width:444,height:404,rx:16,fill:i.bg,stroke:i.border,strokeOpacity:.7}),e.jsx("text",{x:642,y:38,textAnchor:"middle",fill:i.text,fontSize:13,fontWeight:800,letterSpacing:.5,children:"DIE BOX · 192.168.178.151"}),e.jsx(o,{x:444,y:54,w:396,h:62,color:i.teal,title:"Mission Control (:9001)",sub:"Cockpit · Ideen · Chronik · Wissen"}),e.jsx(o,{x:444,y:126,w:396,h:62,color:i.rose,title:"Hermes-Agent",sub:"denkt, nutzt Werkzeuge, betreibt die Werkstatt & Nacht-Crons"}),e.jsx(o,{x:444,y:198,w:396,h:78,color:i.sky,title:"Modell-Stall (llama-swap)",sub:"Hirn · Groß · Coder · Augen · Späher · Kritiker",sub2:"+ Embedding & Sortierer fürs Gedächtnis"}),e.jsx(o,{x:444,y:286,w:190,h:56,color:i.indigo,title:"Natives Gedächtnis",sub:"Hermes v0.20 SQLite & Embed"}),e.jsx(o,{x:650,y:286,w:190,h:56,color:i.amber,title:"Wissens-Vault",sub:"Träume & Notizen (git)"}),e.jsx(o,{x:444,y:352,w:396,h:52,color:i.emerald,title:"Selbstheilung & Backups",sub:"Health-Checks · Auto-Revert bei Rot · PBS-Sicherung"}),n.map(r=>e.jsx(j,{from:[382,r.y+32],to:[420,r.y+46]},r.title)),e.jsx(j,{from:[420,396],to:[166,364],color:i.emerald,dash:!0}),e.jsx("text",{x:272,y:412,textAnchor:"middle",fill:i.mut,fontSize:9.5,fontStyle:"italic",children:"Lucy-Karte angenommen → PC baut neu"})]})}function O(){const n=[{x:14,color:i.amber,title:"Idee",sub:"von dir oder vom",sub2:"Nacht-Radar"},{x:158,color:i.violet,title:"Ideen-Queue",sub:"Kanban sammelt,",sub2:"Specifier plant"},{x:302,color:i.rose,title:"IDE am PC",sub:"Agent baut den",sub2:"Branch (Gitea)"},{x:446,color:i.sky,title:"Ampel",sub:"CI prüft Build",sub2:"und Tests"},{x:590,color:i.primary,title:"DEIN Merge",sub:"nur du bringst",sub2:"es auf main",strong:!0},{x:734,color:i.emerald,title:"Live",sub:"deploy.sh,",sub2:"Zeitmaschine = Rückweg"}];return e.jsxs("svg",{viewBox:"0 0 880 246",role:"img","aria-label":"Kreislauf: Idee, Ideen-Queue, IDE am PC, Ampel, dein Merge, live — Chronik und Morgenlage berichten zurück.",style:{width:"100%",height:"auto",fontFamily:"var(--font-sans)"},children:[n.map(r=>e.jsx(o,{x:r.x,y:38,w:132,h:66,color:r.color,title:r.title,sub:r.sub,sub2:r.sub2,strong:r.strong},r.title)),n.slice(0,-1).map((r,t)=>e.jsx(j,{from:[r.x+132,71],to:[n[t+1].x,71]},r.title)),e.jsxs("g",{stroke:i.border,strokeOpacity:.7,fill:"none",strokeWidth:1.5,strokeDasharray:"5 4",children:[e.jsx("path",{d:"M 800 104 C 800 150, 720 150, 440 150 C 160 150, 80 150, 80 112"}),e.jsx("path",{d:"M 76 118 L 80 108 L 84 118",fill:i.border,fillOpacity:.7,stroke:"none"})]}),e.jsx("text",{x:440,y:144,textAnchor:"middle",fill:i.mut,fontSize:10,fontStyle:"italic",children:"Chronik & Morgenlage berichten · Ablehnungs-Gründe werden Lern-Futter"}),e.jsx("rect",{x:14,y:176,width:852,height:54,rx:12,fill:i.bg,stroke:i.border,strokeOpacity:.5}),e.jsx("text",{x:440,y:198,textAnchor:"middle",fill:i.text,fontSize:11,fontWeight:700,children:"Nachts, ganz allein:"}),e.jsx("text",{x:440,y:216,textAnchor:"middle",fill:i.mut,fontSize:10,children:"03:15 Traum · 03:35 Selbst-Inventur · 03:45 Idle-Radar · 04:00 Karten-Gutachter · 04:10 Bagatellen · 04:30 Morgenlage · Mo 05:15 Release-Radar"})]})}function U(){return e.jsxs("div",{className:"space-y-5",children:[e.jsx("div",{className:"overflow-x-auto",children:e.jsx("div",{className:"min-w-[680px]",children:e.jsx(F,{})})}),e.jsx("div",{className:"border-t border-border/20 pt-4 overflow-x-auto",children:e.jsx("div",{className:"min-w-[680px]",children:e.jsx(O,{})})})]})}const A=[{id:"system",label:"Dein System"},{id:"grundlagen",label:"Grundlagen"},{id:"moe",label:"MoE & Quant"},{id:"lokal",label:"Lokal betreiben"},{id:"modelle",label:"Modell-Landschaft"},{id:"gateway",label:"Gateway-Trick"},{id:"mcp",label:"MCP"},{id:"skills",label:"Skills"},{id:"memory",label:"Gedächtnis & RAG"},{id:"agents",label:"Agenten"},{id:"ide",label:"IDE anbinden"},{id:"tricks",label:"Tricks & Kniffe"},{id:"wartung",label:"Sicherheit & Wartung"},{id:"ressourcen",label:"Ressourcen"},{id:"troubleshooting",label:"Troubleshooting"}];function Q(n){var r;(r=document.getElementById(n))==null||r.scrollIntoView({behavior:"smooth",block:"start"})}function a({id:n,icon:r,color:t,title:c,kicker:h,children:g,wide:d}){return e.jsxs("section",{id:n,className:f("scroll-mt-20 mc-card p-6 space-y-3",d&&"md:col-span-2"),children:[e.jsxs("div",{className:"flex items-center gap-2.5 border-b border-border/20 pb-3",children:[e.jsx(r,{className:f("h-5 w-5 shrink-0",t)}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:c}),h&&e.jsx("span",{className:f("text-[9px] font-mono",t),children:h})]})]}),e.jsx("div",{className:"text-xs text-muted-foreground space-y-2.5 leading-relaxed",children:g})]})}function m({children:n}){return e.jsxs("div",{className:"mt-1 rounded-xl border border-primary/25 bg-primary/[0.06] p-3 text-[11px] leading-relaxed",children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-bold text-primary mb-1",children:[e.jsx(T,{className:"h-3 w-3"})," Bei dir konkret"]}),e.jsx("div",{className:"text-muted-foreground space-y-1",children:n})]})}function s({children:n}){return e.jsx("code",{className:"rounded bg-background/40 border border-border/30 px-1.5 py-0.5 font-mono text-[10px] text-foreground",children:n})}function l({href:n,name:r,note:t}){return e.jsxs("li",{className:"leading-relaxed",children:[e.jsxs("a",{href:n,target:"_blank",rel:"noopener",className:"text-primary hover:underline font-semibold inline-flex items-center gap-0.5",children:[r,e.jsx(K,{className:"h-3 w-3 opacity-60"})]}),e.jsxs("span",{className:"text-muted-foreground",children:[" — ",t]})]})}function J(){const[n,r]=M.useState(!1);return e.jsxs("div",{className:"space-y-7",children:[e.jsxs("div",{className:"mc-card p-6 flex items-start gap-4",children:[e.jsx("div",{className:"h-11 w-11 rounded-xl bg-primary/15 flex items-center justify-center shrink-0",children:e.jsx(S,{className:"h-6 w-6 text-primary"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Die AI-Bibel"}),e.jsxs("p",{className:"text-sm text-muted-foreground leading-relaxed max-w-2xl",children:["Erst ",e.jsx("span",{className:"font-semibold text-foreground",children:"dein System auf einen Blick"}),", dann das allgemeine Nachschlagewerk für lokale & agentische AI — Konzepte, Tricks, Kniffe und kuratierte Quellen. ",e.jsx("span",{className:"font-semibold text-foreground",children:"Stand Juli 2026."})," ",e.jsx("span",{className:"text-primary font-semibold",children:'„Bei dir konkret"'}),"-Kästen zeigen, was dein Stack daraus macht."]})]})]}),e.jsx("div",{className:"sticky top-0 z-10 -mx-1 px-1",children:e.jsx("div",{className:"rounded-xl border border-border/50 bg-card/70 backdrop-blur-xl p-2 shadow-lg shadow-black/20",children:e.jsxs("div",{className:"flex items-center gap-1.5 flex-wrap",children:[e.jsx(w,{className:"h-3.5 w-3.5 text-primary ml-1 mr-0.5 shrink-0"}),(n?A:A.slice(0,9)).map(t=>e.jsx("button",{onClick:()=>Q(t.id),className:"rounded-lg px-2.5 py-1 text-[11px] font-semibold text-muted-foreground hover:text-primary hover:bg-primary/10 transition-colors cursor-pointer",children:t.label},t.id)),e.jsx("button",{onClick:()=>r(t=>!t),className:"rounded-lg px-2 py-1 text-[11px] font-semibold text-primary hover:bg-primary/10 transition-colors cursor-pointer",children:n?"weniger":"+ mehr"})]})})}),e.jsxs("section",{id:"system",className:"scroll-mt-20 mc-card p-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2.5 border-b border-border/20 pb-3",children:[e.jsx(N,{className:"h-5 w-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"So funktioniert dein System"}),e.jsx("span",{className:"text-[9px] font-mono text-primary",children:"Landkarte & Kreislauf — das große Bild"})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed max-w-3xl",children:["Vier Türen führen zur selben Box: ",e.jsx("strong",{className:"text-foreground",children:"diese Oberfläche"})," zum Steuern und Abnicken, ",e.jsx("strong",{className:"text-foreground",children:"Lucy"})," für Zurufe per Stimme,",e.jsx("strong",{className:"text-foreground",children:" Hermes Desktop"})," für richtige Projekte und",e.jsx("strong",{className:"text-foreground",children:" Telegram"})," für unterwegs. In der Box denken die Modelle, das Gedächtnis lernt automatisch mit — und nachts arbeitet sie allein: Sie träumt, inventarisiert sich selbst, entwickelt Ideen zu Konzepten. Gebaut wird am PC in der IDE, jede Änderung geht als Branch nach Gitea.",e.jsx("strong",{className:"text-primary",children:" Nichts geht live ohne deinen Merge"})," — die Ampel-CI muss grün sein, danach spielt ",e.jsx("code",{children:"deploy.sh"})," den Stand ein."]}),e.jsx(U,{})]}),e.jsxs("div",{className:"grid gap-5 md:grid-cols-2",children:[e.jsxs(a,{id:"grundlagen",icon:C,color:"text-cyan-400",title:"1. Wie LLMs ticken",kicker:"Grundlagen",children:[e.jsxs("p",{children:["Ein LLM ist im Kern ein ",e.jsx("strong",{children:"Wahrscheinlichkeits-Rechner für das nächste Token"}),' (Wortteil). Es „weiß" nichts — es setzt fort, was statistisch am plausibelsten ist. Daraus folgt fast alles andere.']}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Tokens"})," sind die Einheit — ~¾ Wort. Ein- und Ausgabe werden in Tokens gezählt."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kontextfenster"}),' = wie viele Tokens das Modell gleichzeitig „sehen" kann (Prompt + Antwort). Voll = Anfang fällt raus.']}),e.jsxs("li",{children:[e.jsx("strong",{children:"Parameter"})," = die trainierten Gewichte. Training ist einmalig, ",e.jsx("strong",{children:"Inferenz"})," ist jede Antwort."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Temperatur / Sampling"})," steuert Zufall: niedrig = deterministisch/präzise (Code), hoch = kreativ."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Halluzination"})," ist kein Bug, sondern die Kehrseite des Ratens. Gegenmittel: Grounding via Tools/RAG, Verifikation."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Reasoning-/Thinking-Modelle"}),' „denken" in unsichtbaren Tokens vor der Antwort — besser bei Logik, langsamer/teurer.']})]})]}),e.jsxs(a,{id:"moe",icon:I,color:"text-violet-400",title:"2. MoE & Quantisierung",kicker:"Mehr Modell, weniger Last",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Mixture of Experts (MoE):"})," Statt für jedes Token das ganze Netz zu aktivieren, wählt ein",e.jsx("em",{children:" Router"})," nur ein paar spezialisierte ",e.jsx("em",{children:"Experts"}),' aus. So läuft ein 100B-Modell mit der aktiven Rechenlast eines viel kleineren (z.B. „122B total / 10B aktiv").']}),e.jsxs("p",{children:[e.jsx("strong",{children:"Quantisierung:"})," Gewichte von FP16 auf weniger Bits eindampfen — kleiner & schneller bei minimalem Qualitätsverlust. Faustregel:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx(s,{children:"Q8"})," nahezu verlustfrei, größter Footprint"]}),e.jsxs("li",{children:[e.jsx(s,{children:"Q6_K"})," sehr gut, guter Mittelweg"]}),e.jsxs("li",{children:[e.jsx(s,{children:"Q4_K_M"})," der Sweet-Spot für lokal — viel Modell pro GB"]})]}),e.jsxs(m,{children:["VRAM/RAM ist die harte Grenze — ",e.jsx("strong",{children:"darum"})," ist beides hier zentral: MoE lässt 100B+ überhaupt laufen, Quant entscheidet, was reinpasst. Dein Line-up fährt durchweg ",e.jsx(s,{children:"Q4_K_M"}),"/",e.jsx(s,{children:"Q6_K"}),"."]})]}),e.jsxs(a,{id:"lokal",icon:z,color:"text-emerald-400",title:"3. Lokal betreiben: Engines & Backends",kicker:"llama.cpp, vLLM & Co.",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Inference-Engines"})," — was die Modelle ausführt:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"llama.cpp / GGUF"})," — der De-facto-Standard für lokal, CPU+GPU, läuft überall."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Ollama / LM Studio"})," — bequeme Wrapper mit One-Click-Downloads (LM Studio mit GUI)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"vLLM / TGI"})," — Server-Engines für maximalen Durchsatz auf dicken GPUs."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"llama-swap"})," — Proxy, der ",e.jsx("em",{children:"mehrere"})," Modelle hinter ",e.jsx("em",{children:"einem"})," Port hält und je nach Anfrage automatisch ein-/aussattelt."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"GPU-Backends"})," — wie gerechnet wird:"]}),e.jsx("ul",{className:"list-disc pl-4 space-y-1",children:e.jsxs("li",{children:[e.jsx(s,{children:"CUDA"})," NVIDIA · ",e.jsx(s,{children:"ROCm"})," AMD · ",e.jsx(s,{children:"Vulkan"})," herstellerübergreifend · ",e.jsx(s,{children:"Metal"})," Apple"]})}),e.jsxs("p",{className:"pt-1",children:[e.jsx("strong",{children:"Begriffe, die immer wiederkommen:"})," Kontext (",e.jsx(s,{children:"-c"}),"), Slots/Parallel, KV-Cache, Modell-TTL/Swap, ",e.jsx("strong",{children:"Speculative Decoding"})," (kleines Draft-Modell rät voraus → schneller)."]})]})]}),e.jsxs(m,{children:["Deine Box hat eine AMD-APU (gfx1151). ",e.jsx("strong",{children:"Einschränkung & Trick:"})," dort schlägt ",e.jsx(s,{children:"Vulkan/RADV"})," das offizielle ",e.jsx(s,{children:"ROCm"})," bei Token-Generierung um ~12–22 % — darum läuft die Engine auf Vulkan.",e.jsx(s,{children:"llama-swap"})," hält die Alltags-Hirne dauerwarm; ",e.jsx(s,{children:"coder"})," nutzt Spec-Decoding."]})]}),e.jsxs(a,{id:"modelle",icon:k,color:"text-sky-400",title:"4. Modell-Landschaft",kicker:"Stand Juni 2026",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{children:e.jsx("strong",{children:"Open-Weight (lokal nutzbar):"})}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Qwen"})," (Alibaba) — starke Allrounder + Coder + Vision, viele Größen/MoE."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Llama"})," (Meta), ",e.jsx("strong",{children:"Gemma"})," (Google), ",e.jsx("strong",{children:"Phi"})," (Microsoft) — solide Open-Familien."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"DeepSeek"}),", ",e.jsx("strong",{children:"Mistral/Mixtral"})," — kräftige MoE-/Reasoning-Modelle."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{children:e.jsx("strong",{children:"Frontier (Cloud-API):"})}),e.jsx("ul",{className:"list-disc pl-4 space-y-1",children:e.jsxs("li",{children:[e.jsx("strong",{children:"Claude"})," (Anthropic), ",e.jsx("strong",{children:"GPT"})," (OpenAI), ",e.jsx("strong",{children:"Gemini"})," (Google) — die stärksten Allrounder, aber nicht lokal."]})}),e.jsxs("p",{className:"pt-1",children:[e.jsx("strong",{children:"Modellwahl nach Aufgabe:"})," schnelles Alltags-Hirn · großes Logik-Hirn für harte Tasks · dediziertes Code-Modell · multimodal für Bilder · Embedding-Modell fürs Gedächtnis."]})]})]}),e.jsx("p",{className:"text-[11px] italic",children:'Leaderboards (HF, LMArena) sind grobe Orientierung — der einzige Benchmark, der zählt, ist deine eigene Aufgabe. Vorsicht vor „Benchmaxxing".'}),e.jsxs(m,{children:["Dein Line-up via llama-swap (Klartext-Rollen): ",e.jsx(s,{children:"Hirn"})," (Agent, dauerwarm) · ",e.jsx(s,{children:"Groß"})," (schwere Logik) · ",e.jsx(s,{children:"Coder"})," · ",e.jsx(s,{children:"Augen"})," (Bilder) · ",e.jsx(s,{children:"Späher"})," (schnelle Recherche) ·",e.jsx(s,{children:"Kritiker"})," (Fremdblick/Review) · ",e.jsx(s,{children:"Gedächtnis"})," + ",e.jsx(s,{children:"Sortierer"})," (Embedding & Reranking). Verwalten/tauschen im ",e.jsx("strong",{children:"Modelle"}),"-Tab."]})]}),e.jsxs(a,{id:"gateway",icon:N,color:"text-amber-400",title:"5. Der Gateway-Trick",kicker:"OpenAI-kompatibel = überall andocken",children:[e.jsxs("p",{children:["Fast jedes AI-Tool spricht heute das ",e.jsx("strong",{children:"OpenAI-Format"})," (",e.jsx(s,{children:"/v1/chat/completions"}),"). Ein",e.jsx("strong",{children:" Gateway"})," davor gibt dir ",e.jsx("em",{children:"einen"})," Endpunkt für alles: zentrales Key-Management, Logging und transparentes ",e.jsx("strong",{children:"Routing"})," — der Client merkt nicht, welches Modell tatsächlich antwortet."]}),e.jsxs("p",{children:["Die Lane-Idee: du wählst ",e.jsx(s,{children:"chat"})," (Alltag, ",e.jsx(s,{children:"auto"})," geht als Alias weiter) oder"," ",e.jsx(s,{children:"coding"})," (agentisch), das Gateway pickt das passende echte Modell und lädt es bei Bedarf."]}),e.jsxs(m,{children:["Dein Gateway: ",e.jsx(s,{children:"http://192.168.178.151:9001/v1"}),", Model ",e.jsx(s,{children:"chat"})," oder ",e.jsx(s,{children:"coding"}),", API-Key beliebig. Fertige Configs erzeugt dir der ",e.jsx("strong",{children:"Verbinden"}),"-Tab live — eine Wahrheit, kein Abtippen."]})]}),e.jsxs(a,{id:"mcp",icon:y,color:"text-violet-400",title:"6. MCP — Werkzeuge für Agenten",kicker:"USB-C für AI-Tools",children:[e.jsxs("p",{children:["Das ",e.jsx("strong",{children:"Model Context Protocol"})," (offen, von Anthropic initiiert) standardisiert, wie ein AI-Client mit externen Tools & Datenquellen spricht. Ein ",e.jsx("strong",{children:"MCP-Server"})," bringt Fähigkeiten: Dateien, Web-Fetch, Git, Datenbanken, eigene APIs."]}),e.jsx("p",{children:"Statt für jeden Editor eigene Tools zu schreiben, bindet jeder MCP-fähige Agent denselben Server an."}),e.jsxs("div",{className:"flex items-start gap-1.5 rounded-xl border border-amber-500/25 bg-amber-500/[0.06] p-2.5 text-[11px]",children:[e.jsx(B,{className:"h-3.5 w-3.5 text-amber-400 shrink-0 mt-0.5"}),e.jsxs("span",{children:[e.jsx("strong",{children:"Sicherheit:"})," ein MCP-Server hat echten Zugriff (Dateien, Shell). Nur vertrauenswürdige Server laufen lassen, Rechte minimal halten, Quelle prüfen."]})]})]}),e.jsxs(a,{id:"skills",icon:H,color:"text-emerald-400",title:"7. Agent Skills",kicker:"Wiederverwendbare Fähigkeiten",children:[e.jsxs("p",{children:["Ein ",e.jsx("strong",{children:"Skill"})," ist ein Ordner mit einer ",e.jsx(s,{children:"SKILL.md"})," (YAML-Kopf + Anleitung, optional Skripte/Beispiele), den der Agent für eine bestimmte Aufgabe lädt — z.B. TDD, Code-Vereinfachung, API-Design."]}),e.jsx("pre",{className:"p-2.5 bg-background/25 rounded-lg border border-border/30 font-mono text-[9px] text-foreground overflow-x-auto whitespace-pre",children:`--- -name: tdd-pro -description: Treibt Entwicklung mit strikter TDD-Praxis ---- -# Instructions -...`}),e.jsxs("p",{children:["Suchen & installieren über die ",e.jsx("strong",{children:"skills.sh"}),"-Registry: ",e.jsx(s,{children:"npx skills find"})," /",e.jsx(s,{children:"npx skills add owner/repo"}),". Skills liegen projektweit (vom Agent beim Start gelesen) oder global."]})]}),e.jsxs(a,{id:"memory",icon:V,color:"text-indigo-400",title:"8. Gedächtnis & RAG",kicker:"Modelle vergessen — du nicht",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:["LLMs sind ",e.jsx("strong",{children:"zustandslos"}),": ohne Hilfe weiß das Modell beim nächsten Turn nichts mehr. Gedächtnis lebt extern."]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Embeddings"})," wandeln Text in Vektoren; ein ",e.jsx("strong",{children:"Vektor-Store"})," (Chroma, …) findet semantisch Ähnliches."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"RAG"})," = relevante Fakten vor dem Turn heraussuchen und einblenden statt alles im Prompt zu halten."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Long-Context vs. RAG:"}),' riesige Fenster sind bequem, aber teuer & „lost in the middle" — gezieltes Abrufen skaliert besser.']})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Auto-lernendes Gedächtnis"})," ist die nächste Stufe:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:["extrahiert Fakten ",e.jsx("em",{children:"selbst"})," aus Gesprächen, statt nur abzuspeichern"]}),e.jsx("li",{children:"dedupliziert semantisch (kein 10× derselbe Fakt)"}),e.jsxs("li",{children:[e.jsx("strong",{children:"Graph-Sicht"})," = Fakten ",e.jsx("em",{children:"plus"})," ihre Beziehungen, nicht nur eine flache Liste"]})]})]})]}),e.jsxs(m,{children:["Dein Gedächtnis führt ",e.jsx("strong",{children:"Hermes"})," selbst — auto-lernend und semantisch. Der Agent lernt im Hintergrund nach jedem Turn, egal ob du per Desktop, Konsole, Telegram oder Lucy mit ihm sprichst.",e.jsx("br",{}),"Deshalb hat das Steuerpult ",e.jsx("strong",{children:"keinen eigenen Gedächtnis-Tab"}),": bis August 2026 lag das Gedächtnis in einem MC2-Sidecar, seit dessen Ablösung ist Hermes die einzige Quelle — angesehen und gepflegt wird es dort, nicht hier. Unter ",e.jsx("strong",{children:"Wissen"})," findest du weiterhin die Graph-Sicht auf Lucys Wissens-Vault.",e.jsx("br",{}),e.jsx("strong",{children:"Gotcha:"})," ein gelöschter Fakt kann wieder auftauchen, solange die Original-Nachricht noch im Verlauf steht (additive Extraktion)."]})]}),e.jsxs(a,{id:"agents",icon:v,color:"text-rose-400",title:"9. Autonome Agenten betreiben",kicker:"LLM in der Schleife",wide:!0,children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:["Ein ",e.jsx("strong",{children:"Agent"})," ist ein LLM in einer Schleife mit Tools:",e.jsx("em",{children:" denken → Tool aufrufen → Ergebnis beobachten → weiter"}),", bis das Ziel erreicht ist."]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Guardrails"})," (Hard-Stop, Tool-Limits) verhindern Endlos-Loops, wenn ein Tool fehlt oder hängt."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kontext-Hygiene"})," ist die wichtigste Disziplin: frische Sessions starten — vollgemüllte Historien werden langsam, driften und halluzinieren."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Kanäle:"})," CLI/Terminal, Chat-UI, Messaging (z.B. Telegram), reine API."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{children:[e.jsx("strong",{children:"Least Privilege:"})," gib einem Agenten nur die Tools, die er wirklich braucht. Kritische Aktionen (Shell auf dem Host, Löschen, Geld/Deploys) hinter menschliche Freigabe."]}),e.jsxs("p",{children:[e.jsx("strong",{children:"Was sich vollautomatisch lohnt:"})," Modell-Routing, Hintergrund-Gedächtnis, Recherche. ",e.jsx("strong",{children:"Was Freigabe braucht:"})," Systembefehle, Updates/Reboots, permanentes Löschen."]})]})]}),e.jsxs(m,{children:[e.jsx("strong",{children:"Hermes"})," ist dein Box-Agent mit eigenem Agent-Hirn (Rolle ",e.jsx(s,{children:"Hirn"}),", dauerwarm). Reden tust du mit ihm über ",e.jsx("strong",{children:"Hermes Desktop"})," (am PC, remote via ",e.jsx(s,{children:"/hermes-ui"}),"), die ",e.jsx("strong",{children:"Konsole"})," (Box-Shell im Browser), ",e.jsx("strong",{children:"Telegram"})," — oder per Stimme über",e.jsx("strong",{children:" Lucy"}),". Er hat MCP-Server für Gedächtnis, Stack-Steuerung, Web-Fetch und",e.jsx("strong",{children:" PC-Steuerung"})," (Executor auf deinem Windows-PC). Nachts betreibt er Radar-Crons und meldet Funde in Chronik, Briefkasten und Telegram. Status & Verdrahtung im ",e.jsx("strong",{children:"Hermes"}),"-Tab."]})]}),e.jsxs(a,{id:"ide",icon:P,color:"text-cyan-400",title:"10. IDE / Editor anbinden",kicker:"Vibe-Coding lokal",children:[e.jsxs("p",{children:["Jede ",e.jsx("strong",{children:"OpenAI-kompatible"})," IDE oder Extension lässt sich auf einen lokalen Server umbiegen — Base-URL + Model eintragen, fertig:"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Cline"})," & ",e.jsx("strong",{children:"Roo Code"})," (VS-Code-Extensions, voller Agent + MCP)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Cursor"})," (VS-Code-Fork mit Top-Autocomplete)"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Continue"}),", ",e.jsx("strong",{children:"aider"})," (CLI), ",e.jsx("strong",{children:"OpenCode"})," (Desktop)"]})]}),e.jsxs(m,{children:["Deine Haupt-IDE ist inzwischen ",e.jsx("strong",{children:"Hermes Desktop"})," — sie ist ab Werk mit Box, Gedächtnis und Skills verdrahtet, da ist nichts zu konfigurieren. Für alles andere gilt: Tipp den Kram nicht ab — der",e.jsx("strong",{children:" Verbinden"}),"-Tab generiert die fertige Config (inkl. MCP-Gedächtnis) pro Tool zum Kopieren. Essenz: Base ",e.jsx(s,{children:"…:9001/v1"}),", Model ",e.jsx(s,{children:"coder"})," (bauen) / ",e.jsx(s,{children:"heavy"})," (denken) /"," ",e.jsx(s,{children:"vision"})," (Bilder); für simple Chat-Tools tut es die Lane ",e.jsx(s,{children:"chat"}),". Key beliebig."]})]}),e.jsx(a,{id:"tricks",icon:L,color:"text-amber-400",title:"11. Tricks & Kniffe",kicker:"Was im Alltag wirklich spart",wide:!0,children:e.jsx("div",{className:"grid md:grid-cols-3 gap-3",children:[["Kontext sauber halten","Neue Session statt Mega-Historie. Drift, Tempo und Halluzination hängen direkt am Kontext-Müll."],["Plan-then-Act","Erst Plan/Vorgehen bestätigen lassen, dann ausführen. Spart teure Holzwege."],["Gezielte Edits","Nie ganze Dateien überschreiben für eine Zeile — Such-/Ersetz-Tools nutzen. Weniger Tokens, weniger Fehler."],["Non-interaktive Befehle","Keine interaktiven Prompts im Agent-Terminal; lange Tasks als Background-Job. Sonst hängt der Loop."],["DevTools koppeln","Browser-/Konsolen-Zugriff geben — der Agent liest echte Fehler statt blind zu raten."],["Richtige Modellwahl","Schnelles Hirn für Alltag, großes für harte Logik, Coder fürs Coden. Nicht alles mit der Kanone."],["Akzeptanzkriterien","Sag konkret, woran „fertig“ erkennbar ist. Vage Prompts → vage Ergebnisse."],["Verifizieren statt vertrauen","Tests/Live-Check fordern. „Sollte funktionieren“ ist kein Beweis."],["Regeln ins Gedächtnis","Wiederkehrende Vorlieben/Konventionen einmal ablegen — der Agent zieht sie selbst."]].map(([t,c])=>e.jsxs("div",{className:"space-y-1 p-3 bg-background/10 rounded-xl border border-border/30",children:[e.jsxs("div",{className:"flex items-center gap-1.5 font-bold text-foreground text-[11px]",children:[e.jsx(E,{className:"h-3 w-3 text-amber-400"})," ",t]}),e.jsx("p",{className:"text-[11px]",children:c})]},t))})}),e.jsx(a,{id:"wartung",icon:R,color:"text-emerald-400",title:"12. Sicherheit & Wartung",kicker:"Damit's auch morgen noch läuft",wide:!0,children:e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"flex items-center gap-1.5 font-bold text-foreground",children:[e.jsx(G,{className:"h-3.5 w-3.5 text-emerald-400"})," Goldene Regeln"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Ein ungetesteter Restore ist kein Backup."})," Wiederherstellung mindestens einmal echt durchspielen."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Updates können Dinge still zerschießen"})," — gerade bei AI-Stacks (Embeddings, Provider-Interna). Versionen pinnen, Smoke-Test, Post-Check."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Least Privilege"})," für Agenten, MCP-Server und PC-Zugriff. Kritisches hinter Freigabe."]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"flex items-center gap-1.5 font-bold text-foreground",children:[e.jsx(D,{className:"h-3.5 w-3.5 text-emerald-400"})," Bei dir im SystemDrawer"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Backup:"})," PBS-Backup-Zentrum (Sicherung auf den Proxmox-Server) + tägliche Tarball-Sicherung; Restore echt durchgespielt (",e.jsx(s,{children:"restore.sh"}),", Doku in ",e.jsx(s,{children:"docs/BACKUP.md"}),")."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Updates:"})," git-basierter Update-Check; ",e.jsx("strong",{children:"Update-Buttons"})," mit anschließendem ",e.jsx("strong",{children:"Gehirn-Check"})," (rot, falls ein Update das Gedächtnis zerschießt)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Deploy-Sicherheit:"})," ",e.jsx("code",{children:"deploy.sh"})," sichert vorher und prüft danach die Gesundheit; die Zeitmaschine in der Chronik ist der Rückweg."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Dienste & Gefahrenzone:"})," Restart/Logs pro Dienst, kritische Eingriffe getrennt."]})]}),e.jsx("p",{className:"text-[10px] italic",children:'Erreichbar über das System-Icon → Tab „Wartung".'})]})]})}),e.jsxs("section",{id:"ressourcen",className:"scroll-mt-20 md:col-span-2 mc-card p-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2.5 border-b border-border/20 pb-3",children:[e.jsx(w,{className:"h-5 w-5 text-primary"}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"13. Kuratierte Ressourcen & Links"}),e.jsx("span",{className:"text-[9px] font-mono text-primary",children:"Sauber geordnet — die guten Quellen"})]})]}),e.jsxs("div",{className:"grid md:grid-cols-2 gap-5 text-xs",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(k,{className:"h-3.5 w-3.5 text-sky-400"})," Modelle & Engines"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://huggingface.co/models",name:"Hugging Face",note:"das Repository für offene Modelle (GGUF, Embeddings, Datasets)."}),e.jsx(l,{href:"https://github.com/ggml-org/llama.cpp",name:"llama.cpp",note:"die Referenz-Engine für lokale Inferenz."}),e.jsx(l,{href:"https://github.com/mostlygeek/llama-swap",name:"llama-swap",note:"mehrere Modelle hinter einem Port, Auto-Swap."}),e.jsx(l,{href:"https://ollama.com",name:"Ollama",note:"einfachster Einstieg, One-Command-Modelle."}),e.jsx(l,{href:"https://lmstudio.ai",name:"LM Studio",note:"lokale GUI zum Stöbern, Laden & Chatten."}),e.jsx(l,{href:"https://github.com/vllm-project/vllm",name:"vLLM",note:"Hochdurchsatz-Serving auf dicken GPUs."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(y,{className:"h-3.5 w-3.5 text-violet-400"})," MCP & Skills"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://modelcontextprotocol.io",name:"MCP — offizielle Doku",note:"Spezifikation & Einstieg."}),e.jsx(l,{href:"https://github.com/modelcontextprotocol/servers",name:"Offizielle MCP-Server",note:"filesystem, git, postgres, fetch & mehr."}),e.jsx(l,{href:"https://smithery.ai",name:"Smithery",note:"Registry zum Suchen & Auto-Installieren von MCP-Servern."}),e.jsx(l,{href:"https://glama.ai/mcp/servers",name:"Glama MCP Registry",note:"kuratierte Community-Datenbank."}),e.jsx(l,{href:"https://skills.sh",name:"skills.sh",note:"Registry & CLI für Agent-Skills."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(v,{className:"h-3.5 w-3.5 text-rose-400"})," Agenten & Frameworks"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://github.com/NousResearch/hermes-agent",name:"Hermes Agent (Nous)",note:"der Agent, der auf deiner Box läuft."}),e.jsx(l,{href:"https://docs.claude.com",name:"Anthropic / Claude Docs",note:"API, Tool-Use, Agent SDK, MCP."}),e.jsx(l,{href:"https://github.com/cline/cline",name:"Cline",note:"autonomer Coding-Agent für VS Code."}),e.jsx(l,{href:"https://aider.chat",name:"aider",note:"AI-Pair-Programming im Terminal, git-nativ."}),e.jsx(l,{href:"https://continue.dev",name:"Continue",note:"Open-Source-Autopilot für IDEs."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"font-bold text-foreground flex items-center gap-1.5",children:[e.jsx(S,{className:"h-3.5 w-3.5 text-amber-400"})," Lernen & Community"]}),e.jsxs("ul",{className:"list-disc pl-4 space-y-1.5",children:[e.jsx(l,{href:"https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview",name:"Prompt-Engineering (Anthropic)",note:"die beste praktische Anleitung."}),e.jsx(l,{href:"https://github.com/anthropics/anthropic-cookbook",name:"Anthropic Cookbook",note:"lauffähige Rezepte für Tools, RAG, Agenten."}),e.jsx(l,{href:"https://www.promptingguide.ai",name:"Prompt Engineering Guide",note:"herstellerneutrales Nachschlagewerk."}),e.jsx(l,{href:"https://hermes-agent.nousresearch.com",name:"Hermes Agent",note:"die autonome Open-Source Agenten-Plattform unserer Box."}),e.jsx(l,{href:"https://www.reddit.com/r/LocalLLaMA/",name:"r/LocalLLaMA",note:"der Puls der lokalen-LLM-Szene."})]})]})]})]}),e.jsx(a,{id:"troubleshooting",icon:W,color:"text-rose-400",title:"14. Troubleshooting",kicker:"Wenn's hakt",wide:!0,children:e.jsxs("ul",{className:"space-y-2 list-disc pl-4",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Keine Verbindung?"})," Selbes LAN wie die Box? IP/Port stimmen (",e.jsx(s,{children:":9001"}),")? Backend-Status im ",e.jsx("strong",{children:"Cockpit"})," prüfen."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Modell antwortet nicht / langsam?"})," Im ",e.jsx("strong",{children:"Cockpit → Dienste"})," schauen, ob ",e.jsx(s,{children:"llama-swap"})," grün ist; sonst Restart. Erstes Token nach Swap dauert (Modell lädt)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Agent dreht durch / halluziniert?"})," Frische Session starten (Hermes Desktop oder ",e.jsx("strong",{children:"Konsole"}),") — meist ist es vollgemüllter Kontext."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Gedächtnis findet nichts?"})," Embedding-Dienst online? Semantisch suchen (Sinn statt exaktem Wort)."]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Angenommene Karte hat etwas zerschossen?"})," Meist fängt es der Auto-Revert; sonst ",e.jsx("strong",{children:"Chronik → Zeitmaschine"})," (Stand von gestern) oder Backup & ",e.jsx(s,{children:"restore.sh"}),"."]})]})})]}),e.jsx("p",{className:"text-center text-[10px] text-muted-foreground/50 pt-2",children:"Mission Control 2 · AI-Bibel · Stand Juli 2026 — lebendes Dokument, wächst mit dem Stack."})]})}export{J as GuideView}; diff --git a/frontend/dist/assets/IdeenAnsicht-Cy8yw2ZX.js b/frontend/dist/assets/IdeenAnsicht-Cy8yw2ZX.js deleted file mode 100644 index a5330e8..0000000 --- a/frontend/dist/assets/IdeenAnsicht-Cy8yw2ZX.js +++ /dev/null @@ -1,40 +0,0 @@ -import{c as L,$ as O,r as u,n as z,j as e,b as S,L as D,G as T,X as Q,a2 as Se,u as De,k as Ce,z as Ke,A as ze,a3 as Ee,a4 as xe,C as Ae,T as Le,a5 as Pe,R as We,q as $e}from"./index-DMY9lUCb.js";import{S as Re}from"./SectionLabel-B7ySrBs7.js";import{C as ee}from"./code-xml-Bf-y5tB9.js";import{R as ge}from"./refresh-cw-hAcZthO8.js";import{F as fe}from"./file-text-BSQuFPZM.js";import{L as Be}from"./layers-CcL78b5Q.js";import{C as X}from"./chevron-down-1Vx9W9jM.js";import{C as he}from"./clock-Bth-s5Y3.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ie=L("ArrowDown",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Oe=L("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Te=L("ClipboardCheck",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"m9 14 2 2 4-4",key:"df797q"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const U=L("GitFork",[["circle",{cx:"12",cy:"18",r:"3",key:"1mpf1b"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["path",{d:"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9",key:"1uq4wg"}],["path",{d:"M12 12v3",key:"158kv8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Y=L("Hammer",[["path",{d:"m15 12-8.373 8.373a1 1 0 1 1-3-3L12 9",key:"eefl8a"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172V7l-2.26-2.26a6 6 0 0 0-4.202-1.756L9 2.96l.92.82A6.18 6.18 0 0 1 12 8.4V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"b7pghm"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const me=L("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ve=L("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]),qe={triage:{label:"wird ausgearbeitet …",cls:"text-violet-300 border-violet-500/40 bg-violet-500/10",spin:!0},todo:{label:"wartet",cls:"text-muted-foreground border-border/60 bg-background/30"},scheduled:{label:"geplant",cls:"text-muted-foreground border-border/60 bg-background/30"},ready:{label:"gleich dran",cls:"text-sky-300/80 border-sky-500/30 bg-sky-500/5"},running:{label:"in Arbeit …",cls:"text-sky-300 border-sky-500/40 bg-sky-500/10",spin:!0},review:{label:"im Review",cls:"text-amber-300 border-amber-500/40 bg-amber-500/10"},blocked:{label:"hängt — braucht dich",cls:"text-red-300 border-red-500/40 bg-red-500/10"},done:{label:"fertig ✓",cls:"text-emerald-300 border-emerald-500/40 bg-emerald-500/10"}},_e={box:{label:"BOX",icon:Y,cls:"border-border/60 bg-background/40 text-muted-foreground",title:"Box-Welt: die Werkstatt baut das selbst. Das Ergebnis kommt als Patch-Vorschlag zurück — nichts geht ohne deinen Klick live."},idee:{label:"IDEE",icon:O,cls:"border-sky-500/40 bg-sky-500/10 text-sky-300",title:"Nur durchdacht: die Box hat die Produkt-Idee mit voller Denk-Kaskade zu einem Konzept ausgearbeitet. Kein Gerüst, kein Bau — du liest es und entscheidest, ob ein Projekt draus wird."},projekt:{label:"IDE",icon:ee,cls:"border-violet-500/40 bg-violet-500/10 text-violet-300",title:"IDE-Welt: die Box bereitet nur vor (Konzept + Repo + Doku, kein Code). Gebaut wird von dir in der Agentic IDE."}},Ge={needs_input:"Die Box hat eine Frage:",capability:"Die Box kam hier nicht weiter:",transient:"Die Aufgabe hakt:"},R={blocked:0,running:1,review:2,ready:3,triage:4},be="mc_ideen_quote";function ke(){try{const r=JSON.parse(localStorage.getItem(be)||"{}");return{gesendet:Number(r.gesendet)||0,geaendert:Number(r.geaendert)||0}}catch{return{gesendet:0,geaendert:0}}}function pe(r){try{const d=ke();d[r]+=1,localStorage.setItem(be,JSON.stringify(d))}catch{}}function Fe({id:r}){const[d,k]=u.useState(null),[n,m]=u.useState(!1),[p,h]=u.useState(0);u.useEffect(()=>{let o=!1;return m(!1),k(null),z(`/api/ideen/${r}/ergebnis`).then(i=>{o||k(i)}).catch(()=>{o||m(!0)}),()=>{o=!0}},[r,p]);const g=d?d.summary||d.result:"";return e.jsx("div",{className:"ml-2 -mt-1",children:e.jsxs("div",{className:"rounded-lg border border-emerald-500/25 bg-emerald-500/5 p-2.5",children:[e.jsxs("p",{className:"mb-1 flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-wide text-emerald-300",children:[e.jsx(Te,{className:"h-3 w-3"})," Ergebnis des Workers"]}),n?e.jsx("button",{type:"button",onClick:()=>h(o=>o+1),className:"text-[10px] text-red-400 underline decoration-dotted underline-offset-2 hover:text-red-300",children:"Ergebnis nicht ladbar — nochmal versuchen"}):d===null?e.jsx("p",{className:"text-[10px] text-muted-foreground animate-pulse",children:"Wird geladen …"}):g?e.jsx("p",{className:"max-h-64 overflow-y-auto whitespace-pre-wrap text-xs leading-relaxed text-foreground/85",children:g}):e.jsx("p",{className:"text-[10px] text-muted-foreground italic",children:"Der Worker hat keine Abschluss-Zusammenfassung hinterlassen (ältere Karte oder Protokollverstoß)."})]})})}function Ze({text:r,className:d}){const k=(r||"").split(` -`),n=[];let m=[],p=null;const h=g=>{m.length&&(n.push(e.jsx("ul",{className:"mb-3 ml-4 list-disc space-y-1",children:m},g)),m=[])};return k.forEach((g,o)=>{const i=`l${o}`;if(p!==null){g.trimEnd()==="```"?(n.push(e.jsx("pre",{className:"mb-3 overflow-x-auto rounded-xl border border-border/50 bg-background/50 p-3 font-mono text-[11px] leading-relaxed text-foreground/85",children:p.join(` -`)},i)),p=null):p.push(g);return}if(g.trimStart().startsWith("```")){h(i),p=[];return}const j=g.trimEnd();if(!j.trim()){h(i);return}const w=j.match(/^(#{1,4})\s+(.*)$/);if(w){h(i);const N=w[1].length,c=N===1?"text-base font-bold mt-1 mb-2":N===2?"text-sm font-bold mt-4 mb-1.5":"text-xs font-bold mt-3 mb-1 uppercase tracking-wide text-muted-foreground";n.push(e.jsx("p",{className:S(c,"font-space text-foreground"),children:G(w[2],i)},i));return}const y=j.match(/^\s*[-*•]\s+(.*)$/);if(y){m.push(e.jsx("li",{className:"text-xs leading-relaxed text-foreground/85",children:G(y[1],i)},i));return}const l=j.match(/^\s*\d+\.\s+(.*)$/);if(l){m.push(e.jsx("li",{className:"text-xs leading-relaxed text-foreground/85",children:G(l[1],i)},i));return}h(i),n.push(e.jsx("p",{className:"mb-2 text-xs leading-relaxed text-foreground/85",children:G(j,i)},i))}),h("end"),p!==null&&n.push(e.jsx("pre",{className:"mb-3 overflow-x-auto rounded-xl border border-border/50 bg-background/50 p-3 font-mono text-[11px]",children:p.join(` -`)},"code-end")),e.jsx("div",{className:S("max-w-3xl",d),children:n})}function G(r,d){return r.split(/(\*\*[^*]+\*\*|\*[^*]+\*|`[^`]+`)/g).map((n,m)=>{const p=`${d}-${m}`;return/^\*\*[^*]+\*\*$/.test(n)?e.jsx("b",{className:"font-semibold text-foreground",children:n.slice(2,-2)},p):/^\*[^*]+\*$/.test(n)?e.jsx("i",{children:n.slice(1,-1)},p):/^`[^`]+`$/.test(n)?e.jsx("code",{className:"rounded bg-background/50 px-1 font-mono text-[11px] text-foreground/90",children:n.slice(1,-1)},p):e.jsx("span",{children:n},p)})}function He({id:r,onFertig:d}){const[k,n]=u.useState("lxc"),[m,p]=u.useState("simpel"),[h,g]=u.useState(!1),[o,i]=u.useState(null),[j,w]=u.useState(""),[y,l]=u.useState(""),N=async(c,P,V)=>{g(!0),w("");try{const C=await z(c,{method:"POST",body:JSON.stringify(P)});i({id:C.id,art:V}),d==null||d()}catch(C){w(String((C==null?void 0:C.message)||C))}finally{g(!1)}};return o?e.jsx("p",{className:"mt-3 border-t border-violet-500/20 pt-2 text-[11px] text-emerald-300",children:o.art==="projekt"?e.jsxs(e.Fragment,{children:["Projekt-Karte ",e.jsx("span",{className:"font-mono",children:o.id})," ist angelegt — die Box bereitet das Repo vor (Konzept übernimmt sie, sie denkt es nicht neu). Danach öffnest du es in der Agentic IDE."]}):e.jsxs(e.Fragment,{children:["Überarbeitung ",e.jsx("span",{className:"font-mono",children:o.id}),' läuft — die Box arbeitet deine Rückmeldung ein und schreibt die neue Fassung an dieselbe Stelle. Danach hier wieder „Konzept" öffnen.']})}):e.jsxs("div",{className:"mt-3 space-y-3 border-t border-violet-500/20 pt-2.5",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("p",{className:"text-[11px] text-muted-foreground",children:[e.jsx("b",{className:"text-sky-300/90",children:"Passt etwas nicht?"})," Schreib hin, was anders werden soll — die Box arbeitet es ein und lässt den Rest stehen. Beliebig oft wiederholbar."]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{value:y,onChange:c=>l(c.target.value),onKeyDown:c=>{c.key==="Enter"&&y.trim().length>=3&&!h&&N("/api/ideen/nachschaerfen",{id:r,hinweis:y},"runde")},placeholder:"z. B. „Punkt 3: kein WebSocket, das ist mir zu fragil — nimm Polling“",maxLength:2e3,className:"h-8 min-w-0 flex-1 rounded-lg border border-border/60 bg-background/60 px-2.5 text-xs text-foreground placeholder:text-muted-foreground/50 focus:border-sky-400/50 focus:outline-none"}),e.jsxs("button",{onClick:()=>N("/api/ideen/nachschaerfen",{id:r,hinweis:y},"runde"),disabled:h||y.trim().length<3,className:"flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-sky-500/40 bg-sky-500/10 px-3 text-[10px] font-bold uppercase tracking-wide text-sky-300 transition-all hover:bg-sky-500/20 cursor-pointer disabled:opacity-50",children:[h?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(ge,{className:"h-3.5 w-3.5"}),"Nachschärfen"]})]})]}),e.jsxs("p",{className:"text-[11px] text-muted-foreground",children:[e.jsx("b",{className:"text-violet-300/90",children:"Passt es so?"})," Dann macht die Box daraus ein startklares Repo — Konzept wird übernommen (nicht neu gedacht), dazu Roadmap, AGENTS.md & Co. Gebaut wird danach von dir in der Agentic IDE."]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-x-3 gap-y-2",children:[e.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"Ziel"}),e.jsx("div",{className:"flex rounded-lg border border-border/40 p-0.5",children:["lxc","docker"].map(c=>e.jsx("button",{onClick:()=>n(c),title:c==="lxc"?"Dienst in einem eigenen Proxmox-LXC (systemd, kein Docker) — wird automatisch mitgesichert.":"Natives Docker: Dockerfile + compose, portabel und pipeline-tauglich.",className:S("rounded px-2 py-0.5 text-[10px] font-semibold transition-all cursor-pointer",k===c?"bg-foreground/10 text-foreground":"text-muted-foreground/50 hover:text-foreground/80"),children:c==="lxc"?"LXC":"Docker"},c))}),e.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"Aufwand"}),e.jsx("div",{className:"flex rounded-lg border border-border/40 p-0.5",children:["simpel","gruendlich"].map(c=>e.jsx("button",{onClick:()=>p(c),title:c==="simpel"?"Konzept ist schon gehärtet — nur kurz auf die Bau-Sicht nachschärfen (empfohlen).":"Nochmal volle Kaskade über die Bau-Sicht: mehrere Rollen, Härtetests. Dauert entsprechend.",className:S("rounded px-2 py-0.5 text-[10px] font-semibold transition-all cursor-pointer",m===c?"bg-foreground/10 text-foreground":"text-muted-foreground/50 hover:text-foreground/80"),children:c==="simpel"?"schlank":"gründlich"},c))}),e.jsxs("button",{onClick:()=>N("/api/ideen/weiterfuehren",{id:r,ziel:k,tiefe:m},"projekt"),disabled:h,className:"ml-auto flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-violet-500/40 bg-violet-500/10 px-3 text-[10px] font-bold uppercase tracking-wide text-violet-300 transition-all hover:bg-violet-500/20 cursor-pointer disabled:opacity-50",children:[h?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(ee,{className:"h-3.5 w-3.5"}),"Gefällt mir — Projekt daraus machen"]})]}),j&&e.jsx("p",{className:"text-[11px] text-red-400",children:j})]})}function Je({id:r,istIdee:d,onWeiter:k}){const[n,m]=u.useState(null),[p,h]=u.useState(!1),[g,o]=u.useState(0);return u.useEffect(()=>{let i=!1;return m(null),h(!1),z(`/api/ideen/${r}/konzept`).then(j=>{i||m(j)}).catch(()=>{i||h(!0)}),()=>{i=!0}},[r,g]),e.jsx("div",{className:"ml-2 -mt-1",children:e.jsxs("div",{className:"rounded-lg border border-violet-500/25 bg-violet-500/[0.04] p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2",children:[e.jsxs("p",{className:"flex items-center gap-1.5 text-[10px] font-bold uppercase tracking-wide text-violet-300",children:[e.jsx(fe,{className:"h-3 w-3"})," Konzept"]}),(n==null?void 0:n.repo)&&e.jsxs("a",{href:`https://git.tobisniceshomelab.ddnsfree.com/${n.repo}`,className:"flex items-center gap-1 text-[10px] text-violet-300/70 hover:text-violet-200",children:[e.jsx(U,{className:"h-3 w-3"})," ",n.repo]}),!(n!=null&&n.repo)&&(n==null?void 0:n.quelle)==="datei"&&e.jsx("span",{className:"truncate font-mono text-[10px] text-muted-foreground/70",title:"Der Worker hat kein Repo angelegt — das Konzept liegt als Datei auf der Box.",children:n.pfad}),e.jsx("button",{onClick:()=>o(i=>i+1),title:"Neu laden",className:"ml-auto rounded p-0.5 text-muted-foreground/50 hover:text-foreground cursor-pointer",children:e.jsx(ge,{className:"h-3 w-3"})})]}),p?e.jsx("p",{className:"text-[11px] text-red-400",children:"Konzept nicht ladbar — später nochmal versuchen."}):n===null?e.jsx("p",{className:"text-[10px] text-muted-foreground animate-pulse",children:"Konzept wird geladen …"}):n.konzept?e.jsx("div",{className:"max-h-[28rem] overflow-y-auto pr-1",children:e.jsx(Ze,{text:n.konzept})}):e.jsx("p",{className:"text-[11px] text-muted-foreground italic",children:n.error||"Noch kein Konzept — das Projekt wird gerade vorbereitet."}),d&&(n==null?void 0:n.konzept)&&e.jsx(He,{id:r,onFertig:k})]})})}function Me({projekt:r,karten:d,zeile:k,onArchivAlle:n,raeumt:m}){const[p,h]=u.useState(!1),[g,o]=u.useState(!1),i=d.filter(l=>R[l.status]!==void 0).sort((l,N)=>R[l.status]-R[N.status]||(l.erstellt??0)-(N.erstellt??0)),j=d.filter(l=>l.status==="todo"||l.status==="scheduled").sort((l,N)=>{var c,P;return((c=l.wartet_auf)!=null&&c.length?1:0)-((P=N.wartet_auf)!=null&&P.length?1:0)||(l.erstellt??0)-(N.erstellt??0)}),w=d.filter(l=>l.status==="done").sort((l,N)=>(N.fertig??0)-(l.fertig??0)),y=r.gesamt>0?Math.round(r.fertig/r.gesamt*100):0;return e.jsxs("div",{className:"space-y-2 rounded-xl border border-border/50 bg-background/20 p-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Be,{className:"h-4 w-4 shrink-0 text-primary/70"}),e.jsx("p",{className:"min-w-0 flex-1 truncate text-xs font-semibold text-foreground",title:r.titel,children:r.titel}),e.jsxs("span",{className:"shrink-0 text-[10px] text-muted-foreground",children:[r.fertig," von ",r.gesamt," fertig"]})]}),e.jsx("div",{className:"h-1 overflow-hidden rounded-full bg-background/60",title:`${y}%`,children:e.jsx("div",{className:"h-1 rounded-full bg-primary/70 transition-all",style:{width:`${y}%`}})}),i.length>0&&e.jsx("ul",{className:"space-y-1.5",children:i.map(l=>k(l))}),j.length>0&&e.jsxs("div",{children:[e.jsxs("button",{onClick:()=>h(l=>!l),className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground hover:text-foreground transition-colors cursor-pointer",children:[p?e.jsx(X,{className:"h-3.5 w-3.5"}):e.jsx(T,{className:"h-3.5 w-3.5"}),j.length," Karte",j.length===1?"":"n"," in der Kette — laufen automatisch der Reihe nach"]}),p&&e.jsx("ul",{className:"mt-1.5 space-y-1.5",children:j.map(l=>k(l))})]}),w.length>0&&e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:()=>o(l=>!l),className:"flex items-center gap-1.5 text-[11px] font-semibold text-emerald-300/70 hover:text-emerald-300 transition-colors cursor-pointer",children:[g?e.jsx(X,{className:"h-3.5 w-3.5"}):e.jsx(T,{className:"h-3.5 w-3.5"}),w.length," fertig"]}),n&&e.jsxs("button",{disabled:m,onClick:()=>n(r.key,w.length,`„${r.titel}"`),title:"Räumt die fertigen Karten dieser Kette weg (Archiv, nichts wird gelöscht).",className:"flex items-center gap-1 text-[11px] text-muted-foreground/60 transition-colors hover:text-foreground disabled:opacity-50 cursor-pointer",children:[m?e.jsx(D,{className:"h-3 w-3 animate-spin"}):e.jsx(Q,{className:"h-3 w-3"}),"wegräumen"]})]}),g&&e.jsx("ul",{className:"mt-1.5 space-y-1.5",children:w.map(l=>k(l))})]})]})}function F({k:r,aktiv:d,onWahl:k}){return e.jsxs("button",{onClick:k,className:S("rounded-xl border p-3 text-left transition-all cursor-pointer",d?"border-primary/60 bg-primary/5":"border-border/50 hover:border-border"),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(r.icon,{className:S("h-4 w-4 shrink-0",d?"text-primary":"text-muted-foreground")}),e.jsx("span",{className:"text-xs font-semibold text-foreground",children:r.titel})]}),e.jsx("p",{className:"mt-1 text-[11px] leading-relaxed text-muted-foreground",children:r.text})]})}function Qe(){var ie,le;const{data:r,isLoading:d}=Se(),k=De(),{showAlert:n,showConfirm:m,dialogElement:p}=Ce(),[h,g]=u.useState(""),[o,i]=u.useState("denken"),[j,w]=u.useState("schlank"),[y,l]=u.useState(!1),[N,c]=u.useState(!1),P=o!=="box",V=o==="repo",[C,je]=u.useState("lxc"),[Z,te]=u.useState(!1),[v,E]=u.useState({}),Ne=Ke(),B=ze({from:"/ideen"}).offen??null,we=t=>Ne({to:"/ideen",search:s=>({...s,offen:t??void 0}),replace:!0}),[H,ye]=u.useState(null),[J,re]=u.useState({}),W=(r==null?void 0:r.items)??[],$=()=>k.invalidateQueries({queryKey:$e.ideen});u.useEffect(()=>{const t=h.trim();if(t.length<12){c(!1);return}let s=!1;const x=setTimeout(async()=>{try{const f=await z("/api/ideen/einordnen",{method:"POST",body:JSON.stringify({text:t})});if(s||!(f!=null&&f.ok))return;i(f.nur_denken?"denken":f.wer==="ide"?"repo":"box"),f.tiefe&&w(f.tiefe),c(!0)}catch{}},700);return()=>{s=!0,clearTimeout(x)}},[h]);const se=B!==null&&(((ie=r==null?void 0:r.items.find(t=>t.id===B))==null?void 0:ie.status)==="triage"||((le=r==null?void 0:r.items.find(t=>t.id===B))==null?void 0:le.status)==="running"),I=Ee(B??"",se);async function ne(){const t=h.trim();if(!(t.length<3||Z)){te(!0);try{const s=t.length>160?t.slice(0,157)+"…":t;await z("/api/ideen",{method:"POST",body:JSON.stringify({titel:s,notiz:t.length>160?t:"",welt:P?"ide":"box",tiefe:V?j==="gruendlich"?"gruendlich":"simpel":"",ziel:V?C:"",art:o==="denken"?"idee":"projekt"})}),pe("gesendet"),g(""),c(!1),l(!1),$()}catch(s){n("Das hat nicht geklappt",String((s==null?void 0:s.message)||s))}finally{te(!1)}}}function ae(t,s,x){m(`${s} fertige Karte${s===1?"":"n"} wegräumen?`,`${x} verschwindet aus der Liste. Gelöscht wird nichts — die Karten wandern ins Archiv der Queue und bleiben dort lesbar. Laufende, hängende und wartende Karten bleiben unberührt.`,async()=>{var b;const f="arch:"+(t||"*");E(a=>({...a,[f]:!0}));try{const a=await z("/api/ideen/archivieren-alle",{method:"POST",body:JSON.stringify({projekt:t})});(b=a.fehlgeschlagen)!=null&&b.length&&n("Teilweise erledigt",`${a.archiviert} weggeräumt, ${a.fehlgeschlagen.length} nicht: `+a.fehlgeschlagen.map(A=>A.titel).join(", ")),$()}catch(a){n("Das hat nicht geklappt",String((a==null?void 0:a.message)||a))}finally{E(a=>({...a,[f]:!1}))}})}async function ve(t){E(s=>({...s,[t]:!0}));try{await z("/api/ideen/archivieren",{method:"POST",body:JSON.stringify({id:t})}),$()}catch(s){n("Das hat nicht geklappt",String((s==null?void 0:s.message)||s))}finally{E(s=>({...s,[t]:!1}))}}async function q(t,s,x,f){E(b=>({...b,[t+s]:!0}));try{await z(x,{method:"POST",body:JSON.stringify(f)}),$()}catch(b){n("Das hat nicht geklappt",String((b==null?void 0:b.message)||b))}finally{E(b=>({...b,[t+s]:!1}))}}async function oe(t){const s=(J[t]||"").trim();if(!(s.length<1||v["ans:"+t])){E(x=>({...x,["ans:"+t]:!0}));try{await z("/api/ideen/antwort",{method:"POST",body:JSON.stringify({id:t,antwort:s})}),re(x=>({...x,[t]:""})),$()}catch(x){n("Das hat nicht geklappt",String((x==null?void 0:x.message)||x))}finally{E(x=>({...x,["ans:"+t]:!1}))}}}const _=t=>{var ce,ue;const s=qe[t.status]??{label:t.status,cls:"text-muted-foreground border-border/60 bg-background/30"},x=B===t.id,f=t.status==="triage"||t.status==="running"||t.status==="done",b=t.status==="blocked",a=!!v["ans:"+t.id],A=t.status==="running"&&(t.puls_alter??0)>600,de=t.status==="todo"||t.status==="ready"||t.status==="scheduled";return e.jsxs("li",{className:S("flex flex-col gap-2 rounded-xl border bg-background/30 px-3 py-2",b?"border-red-500/30":A?"border-amber-500/40":"border-border/40"),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:S("flex shrink-0 items-center gap-1.5 rounded-lg border px-2 py-0.5 text-[10px] font-bold",s.cls),children:[s.spin&&e.jsx(D,{className:"h-3 w-3 animate-spin"}),s.label]}),A&&e.jsxs("span",{className:"flex shrink-0 items-center gap-1 rounded-lg border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[10px] font-bold text-amber-300",title:"Der Worker lebt, gibt aber kein Lebenszeichen mehr — vermutlich wartet er auf etwas, das nie kommt. „Neuer Versuch“ startet die Karte frisch.",children:[e.jsx(Le,{className:"h-3 w-3"})," ",Math.round((t.puls_alter??0)/60)," min ohne Regung"]}),(t.prio??0)!==0&&e.jsxs("span",{className:"shrink-0 rounded bg-background/50 px-1.5 py-0.5 font-mono text-[10px] text-muted-foreground",title:"Priorität — höher kommt zuerst dran (bei gleicher Prio: Erstellzeit)",children:["P",t.prio]}),(()=>{const K=_e[t.art||(t.welt==="ide"?"projekt":"box")];if(!K)return null;const M=K.icon;return e.jsxs("span",{className:S("flex shrink-0 items-center gap-1 rounded-lg border px-2 py-0.5 text-[10px] font-bold",K.cls),title:K.title,children:[e.jsx(M,{className:"h-3 w-3"})," ",K.label]})})(),e.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-foreground",title:t.titel,children:t.titel}),e.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-[10px] text-muted-foreground/70",children:[e.jsx(he,{className:"h-3 w-3"}),Pe(t.erstellt)]}),de&&e.jsxs("span",{className:"flex shrink-0 items-center",children:[e.jsx("button",{disabled:!!v["pr:"+t.id],onClick:()=>q("pr:",t.id,"/api/ideen/prio",{id:t.id,richtung:"hoch"}),title:"Vorziehen (Prio +1)",className:"rounded-md p-1 text-muted-foreground/60 transition-colors hover:text-foreground cursor-pointer disabled:opacity-50",children:e.jsx(Oe,{className:"h-3.5 w-3.5"})}),e.jsx("button",{disabled:!!v["pr:"+t.id],onClick:()=>q("pr:",t.id,"/api/ideen/prio",{id:t.id,richtung:"runter"}),title:"Zurückstellen (Prio −1)",className:"rounded-md p-1 text-muted-foreground/60 transition-colors hover:text-foreground cursor-pointer disabled:opacity-50",children:e.jsx(Ie,{className:"h-3.5 w-3.5"})})]}),(t.status==="running"||b)&&e.jsx("button",{disabled:!!v["rt:"+t.id],onClick:()=>m("Neuer Versuch?",t.status==="running"?`Der laufende Worker von '${t.titel.slice(0,60)}' wird beendet (samt gestarteter Test-Prozesse) und die Karte frisch gestartet. Bisheriger Zwischenstand im Workspace bleibt liegen.`:`Die Karte '${t.titel.slice(0,60)}' wird entsperrt und läuft weiter, sobald ein Platz frei ist.`,()=>q("rt:",t.id,"/api/ideen/retry",{id:t.id})),title:"Neuer Versuch — Karte frisch starten",className:S("shrink-0 rounded-md p-1 transition-colors cursor-pointer disabled:opacity-50",A?"text-amber-300 hover:text-amber-200":"text-muted-foreground/60 hover:text-foreground"),children:v["rt:"+t.id]?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(We,{className:"h-3.5 w-3.5"})}),(t.status==="running"||de||t.status==="triage")&&e.jsx("button",{disabled:!!v["st:"+t.id],onClick:()=>m("Karte stoppen?",`'${t.titel.slice(0,60)}' wird angehalten${t.status==="running"?" und der laufende Worker beendet":""}. Sie bleibt als gestoppt im Board und kann jederzeit per „Neuer Versuch“ weiterlaufen.`,()=>q("st:",t.id,"/api/ideen/stopp",{id:t.id})),title:"Stoppen — Karte anhalten",className:"shrink-0 rounded-md p-1 text-muted-foreground/60 transition-colors hover:text-red-300 cursor-pointer disabled:opacity-50",children:v["st:"+t.id]?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Ve,{className:"h-3.5 w-3.5"})}),(t.status==="done"||b)&&e.jsx("button",{disabled:!!v[t.id],onClick:()=>ve(t.id),title:b?"Aufgeben und aus der Liste räumen (wandert ins Kanban-Archiv)":"Aus der Liste räumen (wandert ins Kanban-Archiv)",className:"shrink-0 rounded-md p-1 text-muted-foreground/60 transition-colors hover:text-foreground cursor-pointer disabled:opacity-50",children:v[t.id]?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Q,{className:"h-3.5 w-3.5"})}),t.welt==="ide"&&(t.status==="running"||t.status==="done")&&e.jsxs("button",{onClick:()=>ye(H===t.id?null:t.id),title:"Konzept ansehen (das ausgearbeitete KONZEPT.md)",className:S("flex shrink-0 items-center gap-1 rounded-md px-1.5 py-1 text-[10px] font-bold transition-colors cursor-pointer",H===t.id?"text-violet-300":"text-violet-300/70 hover:text-violet-200"),children:[e.jsx(fe,{className:"h-3.5 w-3.5"})," Konzept"]}),f&&e.jsx("button",{onClick:()=>we(x?null:t.id),title:t.status==="done"?"Ergebnis anzeigen":"Worker-Log anzeigen",className:"shrink-0 rounded-md p-1 text-muted-foreground/60 transition-colors hover:text-foreground cursor-pointer",children:x?e.jsx(X,{className:"h-3.5 w-3.5"}):e.jsx(T,{className:"h-3.5 w-3.5"})})]}),H===t.id&&e.jsx(Je,{id:t.id,istIdee:t.art==="idee"&&t.status==="done",onWeiter:$}),t.status==="running"&&t.notiz&&e.jsxs("p",{className:"-mt-1 ml-1 text-[11px] italic leading-relaxed text-sky-200/80",title:"Jüngste Zwischenmeldung des Workers (Heartbeat)",children:["„",t.notiz,"“"]}),(t.status==="todo"||t.status==="scheduled"||t.status==="ready")&&(((ce=t.wartet_auf)==null?void 0:ce.length)??0)>0&&e.jsxs("p",{className:"-mt-1 ml-1 text-[10px] text-muted-foreground/70",children:["→ wartet auf: ",t.wartet_auf.join(" · ")]}),b&&e.jsxs("div",{className:"space-y-2 border-t border-red-500/20 pt-2",children:[e.jsxs("p",{className:"flex items-start gap-1.5 text-[11px] leading-relaxed text-red-200/90",children:[e.jsx(xe,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-red-300"}),e.jsxs("span",{children:[e.jsx("b",{children:Ge[t.frage_kind||""]??"Die Aufgabe hängt und wartet auf dich:"})," ",t.frage?e.jsx("span",{className:"text-foreground/90",children:t.frage}):e.jsx("span",{className:"text-muted-foreground italic",children:"kein genauer Grund hinterlegt — antworte einfach mit einer Entscheidung, dann läuft sie weiter."})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{value:J[t.id]||"",onChange:K=>re(M=>({...M,[t.id]:K.target.value})),onKeyDown:K=>{K.key==="Enter"&&oe(t.id)},placeholder:"Deine Antwort — die Box macht damit weiter",maxLength:2e3,className:"h-8 min-w-0 flex-1 rounded-lg border border-border/60 bg-background/60 px-2.5 text-xs text-foreground placeholder:text-muted-foreground/50 focus:border-red-400/50 focus:outline-none"}),e.jsxs("button",{onClick:()=>oe(t.id),disabled:a||(J[t.id]||"").trim().length<1,className:"flex h-8 shrink-0 items-center gap-1.5 rounded-lg border border-emerald-500/40 bg-emerald-500/10 px-3 text-[10px] font-bold uppercase tracking-wide text-emerald-300 transition-all hover:bg-emerald-500/20 cursor-pointer disabled:opacity-50",children:[a?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(me,{className:"h-3.5 w-3.5"})," Antworten & weiter"]})]})]}),x&&f&&t.status!=="done"&&e.jsx("div",{className:"ml-2 -mt-1",children:e.jsx("div",{className:"rounded-lg border border-border/50 bg-background/50 p-2",children:se&&I.isLoading?e.jsx("p",{className:"text-[10px] text-muted-foreground animate-pulse",children:"Log wird geladen …"}):I.error?e.jsx("p",{className:"text-[10px] text-red-400",children:"Log nicht ladbar"}):(ue=I.data)!=null&&ue.available&&I.data.lines.length>0?e.jsx("pre",{className:"max-h-64 overflow-auto font-mono text-[10px] leading-relaxed text-foreground/80 whitespace-pre-wrap",children:I.data.lines.join(` -`)}):e.jsx("p",{className:"text-[10px] text-muted-foreground",children:"Kein Log verfügbar"})})}),x&&t.status==="done"&&e.jsx(Fe,{id:t.id})]},t.id)};return r&&!r.available?null:e.jsxs("section",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx(Re,{icon:O,children:(()=>{if(!r)return"Ideen-Queue";const t=x=>W.filter(f=>x.includes(f.status)).length,s=[t(["blocked"])>0?`${t(["blocked"])} braucht dich`:"",t(["running","triage","review"])>0?`${t(["running","triage","review"])} in Arbeit`:"",t(["todo","scheduled","ready"])>0?`${t(["todo","scheduled","ready"])} wartet`:"",t(["done"])>0?`${t(["done"])} fertig`:""].filter(Boolean);return s.length?s.join(" · "):"noch nichts in der Queue"})()}),(()=>{const t=W.filter(s=>s.status==="done").length;return t===0?null:e.jsxs("button",{disabled:!!v["arch:*"],onClick:()=>ae("",t,`Alle ${t} fertigen Karten`),title:"Räumt ALLE fertigen Karten weg — auch die in abgeschlossenen Projekt-Ketten. Laufende, hängende und wartende bleiben unberührt.",className:"flex shrink-0 items-center gap-1.5 rounded-lg border border-border/60 px-2.5 py-1 text-[11px] font-semibold text-muted-foreground transition-all hover:border-primary/40 hover:text-foreground disabled:opacity-50 cursor-pointer",children:[v["arch:*"]?e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"}):e.jsx(Q,{className:"h-3.5 w-3.5"}),t," fertige wegräumen"]})})()]}),e.jsxs("div",{className:"mc-card p-4 space-y-4",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx("input",{value:h,onChange:t=>{g(t.target.value),c(!1)},onKeyDown:t=>{t.key==="Enter"&&ne()},placeholder:"Was soll entstehen?",className:"h-10 min-w-0 flex-1 rounded-lg border border-border/60 bg-background/50 px-3 text-sm text-foreground placeholder:text-muted-foreground/50 focus:border-primary/50 focus:outline-none"}),e.jsxs("button",{onClick:ne,disabled:Z||h.trim().length<3,className:"flex h-10 shrink-0 items-center gap-1.5 rounded-lg border border-primary/40 bg-primary/10 px-4 text-xs font-semibold text-primary transition-all hover:bg-primary/20 disabled:opacity-40 cursor-pointer",children:[Z?e.jsx(D,{className:"h-4 w-4 animate-spin"}):e.jsx(me,{className:"h-4 w-4"}),"Los"]})]}),y?e.jsxs("div",{className:"space-y-3 rounded-xl border border-border/40 bg-background/20 p-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"mb-1.5 text-[11px] text-muted-foreground/70",children:"Wer baut das?"}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[e.jsx(F,{aktiv:o!=="box",onWahl:()=>i(o==="box"?"denken":o),k:{id:"ide",icon:ee,titel:"Ich, in der Agentic IDE",text:"Du bekommst Konzept und Repo — den Code schreibst du selbst."}}),e.jsx(F,{aktiv:o==="box",onWahl:()=>i("box"),k:{id:"box",icon:Y,titel:"Die Box, allein",text:"Für dein Heimlabor. Das Ergebnis kommt als Branch nach Gitea — mergen tust du."}})]})]}),o!=="box"&&e.jsxs("div",{className:"border-l-2 border-primary/40 pl-3",children:[e.jsx("p",{className:"mb-1.5 text-[11px] text-muted-foreground/70",children:"Und wie startest du?"}),e.jsxs("div",{className:"grid gap-2 sm:grid-cols-2",children:[e.jsx(F,{aktiv:o==="denken",onWahl:()=>i("denken"),k:{id:"denken",icon:O,titel:"Erst durchdenken",text:"Konzept zuerst — auf dein Ja wird ein Repo daraus."}}),e.jsx(F,{aktiv:o==="repo",onWahl:()=>i("repo"),k:{id:"repo",icon:U,titel:"Direkt ein Repo",text:"Konzept und Gitea-Repo in einem Zug."}})]}),o==="repo"?e.jsxs("div",{className:"mt-2.5 flex flex-wrap items-center gap-x-3 gap-y-2",children:[e.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"Wie gründlich?"}),e.jsx("div",{className:"flex rounded-lg border border-border/60 p-0.5",children:[["schlank","schlank"],["gruendlich","gründlich"]].map(([t,s])=>e.jsx("button",{onClick:()=>w(t),className:S("rounded px-2.5 py-1 text-[10px] font-bold uppercase tracking-wide transition-all cursor-pointer",j===t?"bg-primary/15 text-primary":"text-muted-foreground/60 hover:text-foreground"),children:s},t))}),e.jsxs("span",{className:"ml-auto flex items-center gap-1.5",children:[e.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"Läuft als"}),e.jsx("div",{className:"flex rounded-lg border border-border/40 p-0.5",children:[["lxc","LXC"],["docker","Docker"]].map(([t,s])=>e.jsx("button",{onClick:()=>je(t),title:t==="lxc"?"Dienst in einem eigenen Proxmox-LXC (systemd, kein Docker). Wird vom Backup-Server mitgesichert.":"Natives Docker: Dockerfile + compose, portabel und pipeline-tauglich.",className:S("rounded px-2 py-0.5 text-[10px] font-semibold transition-all cursor-pointer",C===t?"bg-foreground/10 text-foreground":"text-muted-foreground/50 hover:text-foreground/80"),children:s},t))})]})]}):e.jsxs("p",{className:"mt-2 flex items-start gap-1.5 text-[10px] leading-relaxed text-muted-foreground/60",children:[e.jsx(xe,{className:"mt-px h-3 w-3 shrink-0"}),'Wie gründlich und wo es läuft, fragt die Box erst beim „gefällt mir" — dann weißt du mehr.']})]}),(()=>{const t=ke();return t.gesendet<3?null:e.jsxs("p",{className:"border-t border-border/30 pt-2 text-[10px] text-muted-foreground/50",children:["Du hast ",t.geaendert," von ",t.gesendet," Vorschlägen geändert. Wird das die Regel, bauen wir hier einen richtigen Schritt-für-Schritt-Assistenten."]})})()]}):e.jsxs("div",{className:"flex flex-wrap items-center gap-2 rounded-xl border border-border/40 bg-background/20 px-3 py-2.5 text-xs",children:[o==="box"?e.jsx(Y,{className:"h-4 w-4 shrink-0 text-primary"}):o==="repo"?e.jsx(U,{className:"h-4 w-4 shrink-0 text-primary"}):e.jsx(O,{className:"h-4 w-4 shrink-0 text-primary"}),!N&&e.jsx("span",{className:"shrink-0 text-[10px] uppercase tracking-wider text-muted-foreground/50",children:"Voreingestellt"}),e.jsx("span",{className:"text-muted-foreground",children:o==="box"?"Ich baue das selbst und lege dir das Ergebnis als Vorschlag hin.":o==="repo"?"Du baust selbst — ich lege dir Konzept und Repo an.":"Du baust selbst — ich arbeite erst ein Konzept aus."}),N&&e.jsx("span",{className:"shrink-0 rounded border border-primary/40 bg-primary/10 px-1.5 py-0.5 text-[10px] font-bold text-primary",children:"gelesen"}),e.jsx("button",{onClick:()=>{l(!0),pe("geaendert")},className:"ml-auto shrink-0 text-[11px] text-muted-foreground/60 underline underline-offset-2 transition-colors hover:text-foreground cursor-pointer",children:"anders"})]}),d&&e.jsxs("p",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[e.jsx(D,{className:"h-3.5 w-3.5 animate-spin"})," Queue wird geladen …"]}),(r==null?void 0:r.fehler)&&e.jsx("p",{className:"text-xs text-amber-300",children:"Queue gerade nicht lesbar — neuer Versuch läuft."}),W.length>0&&e.jsxs("div",{className:"space-y-3",children:[((r==null?void 0:r.projekte)??[]).map(t=>e.jsx(Me,{projekt:t,karten:W.filter(s=>s.projekt===t.key),zeile:_,onArchivAlle:ae,raeumt:!!v["arch:"+t.key]},t.key)),(()=>{const t=new Set(((r==null?void 0:r.projekte)??[]).map(a=>a.key)),s=W.filter(a=>!a.projekt||!t.has(a.projekt));if(s.length===0)return null;const x=s.filter(a=>R[a.status]!==void 0).sort((a,A)=>R[a.status]-R[A.status]||(a.erstellt??0)-(A.erstellt??0)),f=s.filter(a=>["todo","scheduled"].includes(a.status)),b=s.filter(a=>a.status==="done");return e.jsxs("div",{className:"space-y-2",children:[x.length>0&&e.jsx("ul",{className:"space-y-1.5",children:x.map(a=>_(a))}),f.length>0&&e.jsxs("details",{className:"group",children:[e.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 py-1 text-[11px] text-muted-foreground/70 hover:text-foreground",children:[e.jsx(T,{className:"h-3 w-3 transition-transform group-open:rotate-90"}),e.jsx(he,{className:"h-3 w-3"})," Wartet (",f.length,")"]}),e.jsx("ul",{className:"mt-1.5 space-y-1.5",children:f.map(a=>_(a))})]}),b.length>0&&e.jsxs("details",{className:"group",children:[e.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 py-1 text-[11px] text-muted-foreground/70 hover:text-foreground",children:[e.jsx(T,{className:"h-3 w-3 transition-transform group-open:rotate-90"}),e.jsx(Ae,{className:"h-3 w-3 text-emerald-400/70"})," Fertig (",b.length,")"]}),e.jsx("ul",{className:"mt-1.5 space-y-1.5",children:b.map(a=>_(a))})]})]})})()]}),(r==null?void 0:r.available)&&!d&&W.length===0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-[11px] text-muted-foreground/70",children:"Noch nichts hier. Zum Beispiel:"}),["Ein kleines Werkzeug, das meine Fotos nach Aufnahmedatum in Ordner sortiert","Rippy soll die Untertitel-Spur automatisch auswählen statt zu fragen","Lohnt sich ein Dashboard für die Stromzähler, oder reicht Home Assistant?"].map(t=>e.jsxs("button",{onClick:()=>g(t),className:"flex w-full items-center gap-2 rounded-lg border border-border/40 bg-background/20 px-3 py-2 text-left text-xs text-muted-foreground transition-all hover:border-primary/40 hover:text-foreground cursor-pointer",children:[e.jsx(O,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground/50"}),t]},t))]})]}),p]})}function ot(){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Ideen"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Schreib hin, was entstehen soll. Die Box liest mit und schlägt vor, wie es weitergeht — ändern kannst du das immer."})]}),e.jsx(Qe,{})]})}export{ot as IdeenView}; diff --git a/frontend/dist/assets/JobsBar-95gsUJZs.js b/frontend/dist/assets/JobsBar-95gsUJZs.js deleted file mode 100644 index c5549ec..0000000 --- a/frontend/dist/assets/JobsBar-95gsUJZs.js +++ /dev/null @@ -1 +0,0 @@ -import{u,ae as m,k as x,j as s,y as n,af as b,b as p,n as f,q as h}from"./index-DMY9lUCb.js";function y(){const d=u(),{data:t=[]}=m(),{showAlert:l,dialogElement:o}=x();async function i(e){try{await f(`/api/jobs/${e}/cancel`,{method:"POST"}),d.invalidateQueries({queryKey:h.jobs})}catch(c){l("Fehler",c.message)}}const a=t.filter(e=>e.state==="running"||e.state==="queued"),r=t.filter(e=>e.state!=="running"&&e.state!=="queued").slice(-3);return a.length===0&&r.length===0?null:s.jsxs("div",{className:"space-y-3 mc-card p-4",children:[s.jsx("div",{className:"text-[11px] font-semibold text-muted-foreground uppercase tracking-wider",children:"Aktive Downloads"}),a.map(e=>s.jsxs("div",{className:"space-y-1.5 p-3 rounded-xl bg-background/20 border border-border/40",children:[s.jsxs("div",{className:"flex justify-between items-center text-xs",children:[s.jsx("span",{className:"font-semibold truncate max-w-[250px]",children:e.label}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("span",{className:"text-muted-foreground font-mono",children:[e.progress??0,"% • ",n(e.done_bytes),"/",n(e.total_bytes),e.eta_s?` • ETA ${b(e.eta_s)}`:""]}),s.jsx("button",{onClick:()=>i(e.id),className:"text-[10px] text-red-400 hover:text-red-300 font-semibold border border-red-500/25 bg-red-500/5 px-2 py-0.5 rounded transition-all cursor-pointer",children:"Abbrechen"})]})]}),s.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-muted",children:s.jsx("div",{className:"h-full rounded-full bg-primary transition-all duration-500",style:{width:`${e.progress??0}%`}})})]},e.id)),r.map(e=>s.jsxs("div",{className:"flex justify-between items-center text-xs text-muted-foreground px-1",children:[s.jsx("span",{className:"truncate",children:e.label}),s.jsx("span",{className:p("font-semibold text-[10px] px-1.5 py-0.5 rounded uppercase font-mono",e.state==="done"?"bg-emerald-500/10 text-emerald-400":"bg-amber-500/10 text-amber-400"),children:e.state})]},e.id)),o]})}export{y as J}; diff --git a/frontend/dist/assets/KonsoleView-CSxygCPx.js b/frontend/dist/assets/KonsoleView-CSxygCPx.js deleted file mode 100644 index 493977e..0000000 --- a/frontend/dist/assets/KonsoleView-CSxygCPx.js +++ /dev/null @@ -1 +0,0 @@ -import{O as h,u as g,P as p,r as d,j as e,b as x,T as j,S as N,n as v,U as m,V as w,q as f}from"./index-DMY9lUCb.js";import{E as k}from"./external-link-DcJao8h4.js";import{R as y}from"./refresh-cw-hAcZthO8.js";function K(){const{data:t}=h(),u=g(),a=t!=null&&t.box_console_url?p(t.box_console_url):void 0,n=t==null?void 0:t.box_console_reachable,[o,i]=d.useState(!1),[c,l]=d.useState("");async function b(){i(!0),l("");try{const s=await v("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:"box-console"})}),r=s.ok?"Konsolen-Dienst neu gestartet — einen Moment, dann lädt das Terminal.":`Neustart fehlgeschlagen: ${s.err||"Unbekannter Fehler"}`;l(r),m(s.ok?"erfolg":"fehler",r),w(u,f.agentStatus,f.services)}catch(s){const r=`Neustart fehlgeschlagen: ${(s==null?void 0:s.message)||s}`;l(r),m("fehler",r)}finally{i(!1)}}return e.jsxs("div",{className:"flex h-full flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-wrap items-end justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Konsole"}),e.jsx("p",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:"Direkte Shell auf der Box — wie ein SSH-Fenster, mitten im Browser."})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("span",{className:"flex items-center gap-1.5 text-[11px] font-medium text-muted-foreground",children:[e.jsx("span",{className:x("h-2 w-2 rounded-full",n?"bg-emerald-500 animate-pulse":"bg-amber-500")}),n?"online":"offline"]}),a&&e.jsxs("a",{href:a,target:"_blank",rel:"noopener",className:"flex h-8 items-center gap-1.5 rounded-lg border border-border/60 bg-background/20 px-3 text-xs font-semibold text-muted-foreground transition-all hover:border-primary/50 hover:text-foreground",children:[e.jsx(k,{className:"h-3.5 w-3.5"})," In neuem Tab"]})]})]}),a?e.jsxs("div",{className:"relative min-h-[58vh] flex-1 overflow-hidden rounded-2xl border border-border/60 bg-black/50 shadow-lg shadow-black/25",children:[n===!1&&e.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col items-center justify-center gap-3 bg-black/70 text-center",children:[e.jsx(j,{className:"h-8 w-8 text-amber-400"}),e.jsx("div",{className:"text-sm font-semibold text-amber-300",children:"Konsole nicht erreichbar"}),e.jsxs("p",{className:"max-w-sm text-[11px] leading-normal text-muted-foreground",children:["Der Terminal-Dienst (",e.jsx("code",{className:"font-mono text-primary",children:"box-console"}),") läuft gerade nicht."]}),e.jsxs("button",{onClick:b,disabled:o,className:"flex h-9 items-center gap-1.5 rounded-lg border border-amber-500/40 bg-amber-500/10 px-4 text-[11px] font-bold uppercase tracking-wide text-amber-300 transition-all hover:bg-amber-500/20 cursor-pointer disabled:opacity-50",children:[e.jsx(y,{className:x("h-3.5 w-3.5",o&&"animate-spin")})," Dienst neu starten"]}),c&&e.jsx("p",{className:"max-w-sm text-[11px] text-muted-foreground",children:c})]}),e.jsx("iframe",{src:a,title:"Box-Konsole",className:"h-full w-full border-0",style:{minHeight:"58vh"}})]}):e.jsxs("div",{className:"flex min-h-[58vh] flex-1 items-center justify-center rounded-2xl border border-border/60 bg-background/20 text-xs text-muted-foreground",children:[e.jsx(N,{className:"mr-2 h-4 w-4"})," Lade Konsole…"]})]})}export{K as KonsoleView}; diff --git a/frontend/dist/assets/LiveAreaChartImpl-CUepOhWM.js b/frontend/dist/assets/LiveAreaChartImpl-CUepOhWM.js deleted file mode 100644 index f4b0942..0000000 --- a/frontend/dist/assets/LiveAreaChartImpl-CUepOhWM.js +++ /dev/null @@ -1,61 +0,0 @@ -var Wy=Object.defineProperty;var Uy=(e,t,r)=>t in e?Wy(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Hn=(e,t,r)=>Uy(e,typeof t!="symbol"?t+"":t,r);import{r as h,av as ee,aw as Ky,ax as Hy,am as Yy,ar as Gy,j as oe}from"./index-DMY9lUCb.js";import{m as Yl,d as Gl,o as Dd,e as ot,f as Vy,i as Ao,c as Vl,a as ql,b as qy,g as Tt,h as Xy}from"./string-DoZi9Vij.js";import{r as $d}from"./index-CVfMhtws.js";var Zy=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function pu(e){if(typeof e!="string")return!1;var t=Zy;return t.includes(e)}var Qy=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],Jy=new Set(Qy);function Nd(e){return typeof e!="string"?!1:Jy.has(e)}function Ld(e){return typeof e=="string"&&e.startsWith("data-")}function it(e){if(typeof e!="object"||e===null)return{};var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(Nd(r)||Ld(r))&&(t[r]=e[r]);return t}function ia(e){if(e==null)return null;if(h.isValidElement(e)&&typeof e.props=="object"&&e.props!==null){var t=e.props;return it(t)}return typeof e=="object"&&!Array.isArray(e)?it(e):null}function Ve(e){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(Nd(r)||Ld(r)||pu(r))&&(t[r]=e[r]);return t}function eg(e){return e==null?null:h.isValidElement(e)?Ve(e.props):typeof e=="object"&&!Array.isArray(e)?Ve(e):null}var tg=["children","width","height","viewBox","className","style","title","desc"];function Oo(){return Oo=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.width,i=e.height,a=e.viewBox,o=e.className,u=e.style,l=e.title,c=e.desc,s=rg(e,tg),f=a||{width:n,height:i,x:0,y:0},d=ee("recharts-surface",o);return h.createElement("svg",Oo({},Ve(s),{className:d,width:n,height:i,style:u,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height),ref:t}),h.createElement("title",null,l),h.createElement("desc",null,c),r)}),ig=["children","className"];function Po(){return Po=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=e.children,n=e.className,i=ag(e,ig),a=ee("recharts-layer",n);return h.createElement("g",Po({className:a},Ve(i),{ref:t}),r)}),ug=h.createContext(null);function ne(e){return function(){return e}}const So=Math.PI,Eo=2*So,er=1e-6,lg=Eo-er;function zd(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return zd;const r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;ier)if(!(Math.abs(f*l-c*s)>er)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let v=n-o,p=i-u,m=l*l+c*c,y=v*v+p*p,g=Math.sqrt(m),w=Math.sqrt(d),x=a*Math.tan((So-Math.acos((m+d-y)/(2*g*w)))/2),A=x/w,O=x/g;Math.abs(A-1)>er&&this._append`L${t+A*s},${r+A*f}`,this._append`A${a},${a},0,0,${+(f*v>s*p)},${this._x1=t+O*l},${this._y1=r+O*c}`}}arc(t,r,n,i,a,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(i),l=n*Math.sin(i),c=t+u,s=r+l,f=1^o,d=o?i-a:a-i;this._x1===null?this._append`M${c},${s}`:(Math.abs(this._x1-c)>er||Math.abs(this._y1-s)>er)&&this._append`L${c},${s}`,n&&(d<0&&(d=d%Eo+Eo),d>lg?this._append`A${n},${n},0,1,${f},${t-u},${r-l}A${n},${n},0,1,${f},${this._x1=c},${this._y1=s}`:d>er&&this._append`A${n},${n},0,${+(d>=So)},${f},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Bd(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new sg(t)}function mu(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Fd(e){this._context=e}Fd.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function aa(e){return new Fd(e)}function Wd(e){return e[0]}function Ud(e){return e[1]}function Kd(e,t){var r=ne(!0),n=null,i=aa,a=null,o=Bd(u);e=typeof e=="function"?e:e===void 0?Wd:ne(e),t=typeof t=="function"?t:t===void 0?Ud:ne(t);function u(l){var c,s=(l=mu(l)).length,f,d=!1,v;for(n==null&&(a=i(v=o())),c=0;c<=s;++c)!(c=v;--p)u.point(x[p],A[p]);u.lineEnd(),u.areaEnd()}g&&(x[d]=+e(y,d,f),A[d]=+t(y,d,f),u.point(n?+n(y,d,f):x[d],r?+r(y,d,f):A[d]))}if(w)return u=null,w+""||null}function s(){return Kd().defined(i).curve(o).context(a)}return c.x=function(f){return arguments.length?(e=typeof f=="function"?f:ne(+f),n=null,c):e},c.x0=function(f){return arguments.length?(e=typeof f=="function"?f:ne(+f),c):e},c.x1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:ne(+f),c):n},c.y=function(f){return arguments.length?(t=typeof f=="function"?f:ne(+f),r=null,c):t},c.y0=function(f){return arguments.length?(t=typeof f=="function"?f:ne(+f),c):t},c.y1=function(f){return arguments.length?(r=f==null?null:typeof f=="function"?f:ne(+f),c):r},c.lineX0=c.lineY0=function(){return s().x(e).y(t)},c.lineY1=function(){return s().x(e).y(r)},c.lineX1=function(){return s().x(n).y(t)},c.defined=function(f){return arguments.length?(i=typeof f=="function"?f:ne(!!f),c):i},c.curve=function(f){return arguments.length?(o=f,a!=null&&(u=o(a)),c):o},c.context=function(f){return arguments.length?(f==null?a=u=null:u=o(a=f),c):a},c}class Hd{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function fg(e){return new Hd(e,!0)}function dg(e){return new Hd(e,!1)}function vi(){}function hi(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function Yd(e){this._context=e}Yd.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:hi(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:hi(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function vg(e){return new Yd(e)}function Gd(e){this._context=e}Gd.prototype={areaStart:vi,areaEnd:vi,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:hi(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function hg(e){return new Gd(e)}function Vd(e){this._context=e}Vd.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:hi(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function pg(e){return new Vd(e)}function qd(e){this._context=e}qd.prototype={areaStart:vi,areaEnd:vi,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function mg(e){return new qd(e)}function Xl(e){return e<0?-1:1}function Zl(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),o=(r-e._y1)/(i||n<0&&-0),u=(a*i+o*n)/(n+i);return(Xl(a)+Xl(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(u))||0}function Ql(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function Ga(e,t,r){var n=e._x0,i=e._y0,a=e._x1,o=e._y1,u=(a-n)/3;e._context.bezierCurveTo(n+u,i+u*t,a-u,o-u*r,a,o)}function pi(e){this._context=e}pi.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:Ga(this,this._t0,Ql(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,Ga(this,Ql(this,r=Zl(this,e,t)),r);break;default:Ga(this,this._t0,r=Zl(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function Xd(e){this._context=new Zd(e)}(Xd.prototype=Object.create(pi.prototype)).point=function(e,t){pi.prototype.point.call(this,t,e)};function Zd(e){this._context=e}Zd.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)}};function yg(e){return new pi(e)}function gg(e){return new Xd(e)}function Qd(e){this._context=e}Qd.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=Jl(e),i=Jl(t),a=0,o=1;o=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function wg(e){return new oa(e,.5)}function xg(e){return new oa(e,0)}function Ag(e){return new oa(e,1)}function cr(e,t){if((o=e.length)>1)for(var r=1,n,i,a=e[t[0]],o,u=a.length;r=0;)r[t]=t;return r}function Og(e,t){return e[t]}function Pg(e){const t=[];return t.key=e,t}function Sg(){var e=ne([]),t=_o,r=cr,n=Og;function i(a){var o=Array.from(e.apply(this,arguments),Pg),u,l=o.length,c=-1,s;for(const f of a)for(u=0,++c;u0){for(var r,n,i=0,a=e[0].length,o;i0){for(var r=0,n=e[t[0]],i,a=n.length;r0)||!((a=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,a,o;n1&&arguments[1]!==void 0?arguments[1]:kg,r=10**t,n=Math.round(e*r)/r;return Object.is(n,-0)?0:n}function we(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n{var u=r[o-1];return typeof u=="string"?i+u+a:u!==void 0?i+Ut(u)+a:i+a},"")}var He=e=>e===0?0:e>0?1:-1,ht=e=>typeof e=="number"&&e!=+e,sr=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,D=e=>(typeof e=="number"||e instanceof Number)&&!ht(e),pt=e=>D(e)||typeof e=="string",jg=0,yn=e=>{var t=++jg;return"".concat(e||"").concat(t)},Yt=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!D(t)&&typeof t!="string")return n;var a;if(sr(t)){if(r==null)return n;var o=t.indexOf("%");a=r*parseFloat(t.slice(0,o))/100}else a=+t;return ht(a)&&(a=n),i&&r!=null&&a>r&&(a=r),a},tv=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,r={},n=0;nn&&(typeof t=="function"?t(n):yr(n,t))===r)}var Oe=e=>e===null||typeof e>"u",bu=e=>Oe(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function De(e){return e!=null}function Fr(){}var nv=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,wu=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var r=e;if(h.isValidElement(e)&&(r=e.props),typeof r!="object"&&typeof r!="function")return null;var n={};return Object.keys(r).forEach(i=>{pu(i)&&typeof r[i]=="function"&&(n[i]=(a=>r[i](r,a)))}),n},Tg=(e,t,r)=>n=>(e(t,r,n),null),Mg=(e,t,r)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var n=null;return Object.keys(e).forEach(i=>{var a=e[i];pu(i)&&typeof a=="function"&&(n||(n={}),n[i]=Tg(a,t,r))}),n};function ec(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Dg(e){for(var t=1;t(o[u]===void 0&&n[u]!==void 0&&(o[u]=n[u]),o),r);return a}function Rg(e,t){const r=new Map;for(let n=0;nObject.prototype.propertyIsEnumerable.call(e,t))}function xu(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const Ug="[object RegExp]",av="[object String]",ov="[object Number]",uv="[object Boolean]",lv="[object Arguments]",Kg="[object Symbol]",Hg="[object Date]",Yg="[object Map]",Gg="[object Set]",Vg="[object Array]",qg="[object ArrayBuffer]",Xg="[object Object]",Zg="[object DataView]",Qg="[object Uint8Array]",Jg="[object Uint8ClampedArray]",e0="[object Uint16Array]",t0="[object Uint32Array]",r0="[object Int8Array]",n0="[object Int16Array]",i0="[object Int32Array]",a0="[object Float32Array]",o0="[object Float64Array]",tc=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function u0(e){return typeof tc.Buffer<"u"&&tc.Buffer.isBuffer(e)}function l0(e,t){return nr(e,void 0,e,new Map,t)}function nr(e,t,r,n=new Map,i=void 0){const a=i==null?void 0:i(e,t,r,n);if(a!==void 0)return a;if(Co(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){const o=new Array(e.length);n.set(e,o);for(let u=0;u{}):ko(e,t,function n(i,a,o,u,l,c){const s=r(i,a,o,u,l,c);return s!==void 0?!!s:ko(i,a,n,c,!1)},new Map,!0)}function ko(e,t,r,n,i=!1){if(t===e)return!0;switch(typeof t){case"object":return f0(e,t,r,n);case"function":return Object.keys(t).length>0?ko(e,{...t},r,n,i):oi(e,t);default:return cv(e)&&i?typeof t=="string"?t==="":!0:oi(e,t)}}function f0(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return fv(e,t,r,n);if(t instanceof Map)return d0(e,t,r,n);if(t instanceof Set)return v0(e,t,r,n);const i=Object.keys(t);if(e==null||Co(e))return i.length===0;if(i.length===0)return!0;if(n!=null&&n.has(t))return n.get(t)===e;n==null||n.set(t,e);try{for(let a=0;a{})}function h0(e){return e=s0(e),t=>dv(t,e)}function p0(e,t){return l0(e,(r,n,i,a)=>{if(typeof e=="object"){if(xu(e)==="[object Object]"&&typeof e.constructor!="function"){const o={};return a.set(e,o),tt(o,e,i,a),o}switch(Object.prototype.toString.call(e)){case ov:case av:case uv:{const o=new e.constructor(e==null?void 0:e.valueOf());return tt(o,e),o}case lv:{const o={};return tt(o,e),o.length=e.length,o[Symbol.iterator]=e[Symbol.iterator],o}default:return}}})}function m0(e){return p0(e)}const y0=/^(?:0|[1-9]\d*)$/;function vv(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e=0}function hv(e){return e!=null&&typeof e!="function"&&A0(e.length)}function O0(e){return typeof e=="object"&&e!==null}function P0(e){return O0(e)&&hv(e)}function rc(e,t=iv){return P0(e)?Rg(Array.from(e),zg(x0(t),1)):[]}function S0(e,t,r){return t===!0?rc(e,r):typeof t=="function"?rc(e,t):e}var Au=h.createContext(null),E0=e=>e,le=()=>{var e=h.useContext(Au);return e?e.store.dispatch:E0},ui=()=>{},_0=()=>ui,I0=(e,t)=>e===t;function N(e){var t=h.useContext(Au),r=h.useMemo(()=>t?n=>{if(n!=null)return e(n)}:ui,[t,e]);return Ky.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:_0,t?t.store.getState:ui,t?t.store.getState:ui,r,I0)}function C0(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function k0(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(r=>typeof r=="function")){const r=e.map(n=>typeof n=="function"?`function ${n.name||"unnamed"}()`:typeof n).join(", ");throw new TypeError(`${t}[${r}]`)}}var nc=e=>Array.isArray(e)?e:[e];function j0(e){const t=Array.isArray(e[0])?e[0]:e;return k0(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function T0(e,t){const r=[],{length:n}=e;for(let i=0;itypeof WeakRef>"u"?M0:WeakRef,pv=D0(),$0=0,ic=1;function Gn(){return{s:$0,v:void 0,o:null,p:null}}function N0(e){return e instanceof pv?e.deref():e}function mv(e,t={}){let r=Gn();const{resultEqualityCheck:n}=t;let i,a=0;function o(){let u=r;const{length:l}=arguments;for(let f=0,d=l;f{r=Gn(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function L0(e,...t){const r=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,n=(...i)=>{let a=0,o=0,u,l={},c=i.pop();typeof c=="object"&&(l=c,c=i.pop()),C0(c,`createSelector expects an output function after the inputs, but received: [${typeof c}]`);const s={...r,...l},{memoize:f,memoizeOptions:d=[],argsMemoize:v=mv,argsMemoizeOptions:p=[]}=s,m=nc(d),y=nc(p),g=j0(i),w=f(function(){return a++,c.apply(null,arguments)},...m),x=v(function(){o++;const O=T0(g,arguments);return u=w.apply(null,O),u},...y);return Object.assign(x,{resultFunc:c,memoizedResultFunc:w,dependencies:g,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>u,recomputations:()=>a,resetRecomputations:()=>{a=0},memoize:f,argsMemoize:v})};return Object.assign(n,{withTypes:()=>n}),n}var P=L0(mv);function R0(e,t=1){const r=[],n=Math.floor(t),i=(a,o)=>{for(let u=0;u{if(e!==t){const n=ac(e),i=ac(t);if(n===i&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?i-n:n-i}return 0};function yv(e){return typeof e=="symbol"||e instanceof Symbol}const B0=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,F0=/^\w*$/;function W0(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||yv(e)?!0:typeof e=="string"&&(F0.test(e)||!B0.test(e))||t!=null}function U0(e,t,r,n){if(e==null)return[];r=r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(u=>String(u));const i=(u,l)=>{let c=u;for(let s=0;sl==null||u==null?l:typeof u=="object"&&"key"in u?Object.hasOwn(l,u.key)?l[u.key]:i(l,u.path):typeof u=="function"?u(l):Array.isArray(u)?i(l,u):typeof l=="object"?l[u]:l,o=t.map(u=>(Array.isArray(u)&&u.length===1&&(u=u[0]),u==null||typeof u=="function"||Array.isArray(u)||W0(u)?u:{key:u,path:gu(u)}));return e.map(u=>({original:u,criteria:o.map(l=>a(l,u))})).slice().sort((u,l)=>{for(let c=0;cu.original)}function ua(e,...t){const r=t.length;return r>1&&jo(e,t[0],t[1])?t=[]:r>2&&jo(t[0],t[1],t[2])&&(t=[t[0]]),U0(e,R0(t),["asc"])}var gv=e=>e.legend.settings,K0=e=>e.legend.size,H0=e=>e.legend.payload;P([H0,gv],(e,t)=>{var r=t.itemSorter,n=e.flat(1);return r?ua(n,r):n});function Y0(e,t){return X0(e)||q0(e,t)||V0(e,t)||G0()}function G0(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function V0(e,t){if(e){if(typeof e=="string")return oc(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?oc(e,t):void 0}}function oc(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rVn||Math.abs(e.left-t.left)>Vn||Math.abs(e.top-t.top)>Vn||Math.abs(e.width-t.width)>Vn}function lc(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function Z0(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=h.useState({height:0,left:0,top:0,width:0}),r=Y0(t,2),n=r[0],i=r[1],a=h.useRef(null),o=h.useRef(n);o.current=n;var u=h.useCallback(l=>{if(a.current!=null&&(a.current.disconnect(),a.current=null),l!=null){var c=lc(l);if(uc(c,o.current)&&i(c),typeof ResizeObserver<"u"){var s=new ResizeObserver(()=>{var f=lc(l);uc(f,o.current)&&i(f)});s.observe(l),a.current=s}}},[...e]);return h.useEffect(()=>()=>{var l;(l=a.current)===null||l===void 0||l.disconnect()},[]),[n,u]}function be(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Q0=typeof Symbol=="function"&&Symbol.observable||"@@observable",cc=Q0,Va=()=>Math.random().toString(36).substring(7).split("").join("."),J0={INIT:`@@redux/INIT${Va()}`,REPLACE:`@@redux/REPLACE${Va()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${Va()}`},mi=J0;function Ou(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function bv(e,t,r){if(typeof e!="function")throw new Error(be(2));if(typeof t=="function"&&typeof r=="function"||typeof r=="function"&&typeof arguments[3]=="function")throw new Error(be(0));if(typeof t=="function"&&typeof r>"u"&&(r=t,t=void 0),typeof r<"u"){if(typeof r!="function")throw new Error(be(1));return r(bv)(e,t)}let n=e,i=t,a=new Map,o=a,u=0,l=!1;function c(){o===a&&(o=new Map,a.forEach((y,g)=>{o.set(g,y)}))}function s(){if(l)throw new Error(be(3));return i}function f(y){if(typeof y!="function")throw new Error(be(4));if(l)throw new Error(be(5));let g=!0;c();const w=u++;return o.set(w,y),function(){if(g){if(l)throw new Error(be(6));g=!1,c(),o.delete(w),a=null}}}function d(y){if(!Ou(y))throw new Error(be(7));if(typeof y.type>"u")throw new Error(be(8));if(typeof y.type!="string")throw new Error(be(17));if(l)throw new Error(be(9));try{l=!0,i=n(i,y)}finally{l=!1}return(a=o).forEach(w=>{w()}),y}function v(y){if(typeof y!="function")throw new Error(be(10));n=y,d({type:mi.REPLACE})}function p(){const y=f;return{subscribe(g){if(typeof g!="object"||g===null)throw new Error(be(11));function w(){const A=g;A.next&&A.next(s())}return w(),{unsubscribe:y(w)}},[cc](){return this}}}return d({type:mi.INIT}),{dispatch:d,subscribe:f,getState:s,replaceReducer:v,[cc]:p}}function eb(e){Object.keys(e).forEach(t=>{const r=e[t];if(typeof r(void 0,{type:mi.INIT})>"u")throw new Error(be(12));if(typeof r(void 0,{type:mi.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(be(13))})}function wv(e){const t=Object.keys(e),r={};for(let a=0;a"u")throw u&&u.type,new Error(be(14));c[f]=p,l=l||p!==v}return l=l||n.length!==Object.keys(o).length,l?c:o}}function yi(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,r)=>(...n)=>t(r(...n)))}function tb(...e){return t=>(r,n)=>{const i=t(r,n);let a=()=>{throw new Error(be(15))};const o={getState:i.getState,dispatch:(l,...c)=>a(l,...c)},u=e.map(l=>l(o));return a=yi(...u)(i.dispatch),{...i,dispatch:a}}}function xv(e){return Ou(e)&&"type"in e&&typeof e.type=="string"}var Av=Symbol.for("immer-nothing"),sc=Symbol.for("immer-draftable"),Te=Symbol.for("immer-state");function rt(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var Be=Object,Mr=Be.getPrototypeOf,gi="constructor",la="prototype",To="configurable",bi="enumerable",li="writable",gn="value",It=e=>!!e&&!!e[Te];function at(e){var t;return e?Ov(e)||sa(e)||!!e[sc]||!!((t=e[gi])!=null&&t[sc])||fa(e)||da(e):!1}var rb=Be[la][gi].toString(),fc=new WeakMap;function Ov(e){if(!e||!Pu(e))return!1;const t=Mr(e);if(t===null||t===Be[la])return!0;const r=Be.hasOwnProperty.call(t,gi)&&t[gi];if(r===Object)return!0;if(!Ir(r))return!1;let n=fc.get(r);return n===void 0&&(n=Function.toString.call(r),fc.set(r,n)),n===rb}function ca(e,t,r=!0){kn(e)===0?(r?Reflect.ownKeys(e):Be.keys(e)).forEach(i=>{t(i,e[i],e)}):e.forEach((n,i)=>t(i,n,e))}function kn(e){const t=e[Te];return t?t.type_:sa(e)?1:fa(e)?2:da(e)?3:0}var dc=(e,t,r=kn(e))=>r===2?e.has(t):Be[la].hasOwnProperty.call(e,t),Mo=(e,t,r=kn(e))=>r===2?e.get(t):e[t],wi=(e,t,r,n=kn(e))=>{n===2?e.set(t,r):n===3?e.add(r):e[t]=r};function nb(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var sa=Array.isArray,fa=e=>e instanceof Map,da=e=>e instanceof Set,Pu=e=>typeof e=="object",Ir=e=>typeof e=="function",qa=e=>typeof e=="boolean";function ib(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var xt=e=>e.copy_||e.base_,Su=e=>e.modified_?e.copy_:e.base_;function Do(e,t){if(fa(e))return new Map(e);if(da(e))return new Set(e);if(sa(e))return Array[la].slice.call(e);const r=Ov(e);if(t===!0||t==="class_only"&&!r){const n=Be.getOwnPropertyDescriptors(e);delete n[Te];let i=Reflect.ownKeys(n);for(let a=0;a1&&Be.defineProperties(e,{set:qn,add:qn,clear:qn,delete:qn}),Be.freeze(e),t&&ca(e,(r,n)=>{Eu(n,!0)},!1)),e}function ab(){rt(2)}var qn={[gn]:ab};function va(e){return e===null||!Pu(e)?!0:Be.isFrozen(e)}var xi="MapSet",$o="Patches",vc="ArrayMethods",Pv={};function fr(e){const t=Pv[e];return t||rt(0,e),t}var hc=e=>!!Pv[e],bn,Sv=()=>bn,ob=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:hc(xi)?fr(xi):void 0,arrayMethodsPlugin_:hc(vc)?fr(vc):void 0});function pc(e,t){t&&(e.patchPlugin_=fr($o),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function No(e){Lo(e),e.drafts_.forEach(ub),e.drafts_=null}function Lo(e){e===bn&&(bn=e.parent_)}var mc=e=>bn=ob(bn,e);function ub(e){const t=e[Te];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function yc(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];if(e!==void 0&&e!==r){r[Te].modified_&&(No(t),rt(4)),at(e)&&(e=gc(t,e));const{patchPlugin_:i}=t;i&&i.generateReplacementPatches_(r[Te].base_,e,t)}else e=gc(t,r);return lb(t,e,!0),No(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==Av?e:void 0}function gc(e,t){if(va(t))return t;const r=t[Te];if(!r)return Ai(t,e.handledSet_,e);if(!ha(r,e))return t;if(!r.modified_)return r.base_;if(!r.finalized_){const{callbacks_:n}=r;if(n)for(;n.length>0;)n.pop()(e);Iv(r,e)}return r.copy_}function lb(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Eu(t,r)}function Ev(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var ha=(e,t)=>e.scope_===t,cb=[];function _v(e,t,r,n){const i=xt(e),a=e.type_;if(n!==void 0&&Mo(i,n,a)===t){wi(i,n,r,a);return}if(!e.draftLocations_){const u=e.draftLocations_=new Map;ca(i,(l,c)=>{if(It(c)){const s=u.get(c)||[];s.push(l),u.set(c,s)}})}const o=e.draftLocations_.get(t)??cb;for(const u of o)wi(i,u,r,a)}function sb(e,t,r){e.callbacks_.push(function(i){var u;const a=t;if(!a||!ha(a,i))return;(u=i.mapSetPlugin_)==null||u.fixSetContents(a);const o=Su(a);_v(e,a.draft_??a,o,r),Iv(a,i)})}function Iv(e,t){var n;if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(((n=e.assigned_)==null?void 0:n.size)??0)>0)){const{patchPlugin_:i}=t;if(i){const a=i.getPath(e);a&&i.generatePatches_(e,a,t)}Ev(e)}}function fb(e,t,r){const{scope_:n}=e;if(It(r)){const i=r[Te];ha(i,n)&&i.callbacks_.push(function(){ci(e);const o=Su(i);_v(e,r,o,t)})}else at(r)&&e.callbacks_.push(function(){const a=xt(e);e.type_===3?a.has(r)&&Ai(r,n.handledSet_,n):Mo(a,t,e.type_)===r&&n.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Ai(Mo(e.copy_,t,e.type_),n.handledSet_,n)})}function Ai(e,t,r){return!r.immer_.autoFreeze_&&r.unfinalizedDrafts_<1||It(e)||t.has(e)||!at(e)||va(e)||(t.add(e),ca(e,(n,i)=>{if(It(i)){const a=i[Te];if(ha(a,r)){const o=Su(a);wi(e,n,o,e.type_),Ev(a)}}else at(i)&&Ai(i,t,r)})),e}function db(e,t){const r=sa(e),n={type_:r?1:0,scope_:t?t.scope_:Sv(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let i=n,a=Oi;r&&(i=[n],a=wn);const{revoke:o,proxy:u}=Proxy.revocable(i,a);return n.draft_=u,n.revoke_=o,[u,n]}var Oi={get(e,t){if(t===Te)return e;let r=e.scope_.arrayMethodsPlugin_;const n=e.type_===1&&typeof t=="string";if(n&&r!=null&&r.isArrayOperationMethod(t))return r.createMethodInterceptor(e,t);const i=xt(e);if(!dc(i,t,e.type_))return vb(e,i,t);const a=i[t];if(e.finalized_||!at(a)||n&&e.operationMethod&&(r!=null&&r.isMutatingArrayMethod(e.operationMethod))&&ib(t))return a;if(a===Xa(e.base_,t)){ci(e);const o=e.type_===1?+t:t,u=zo(e.scope_,a,e,o);return e.copy_[o]=u}return a},has(e,t){return t in xt(e)},ownKeys(e){return Reflect.ownKeys(xt(e))},set(e,t,r){const n=Cv(xt(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=Xa(xt(e),t),a=i==null?void 0:i[Te];if(a&&a.base_===r)return e.copy_[t]=r,e.assigned_.set(t,!1),!0;if(nb(r,i)&&(r!==void 0||dc(e.base_,t,e.type_)))return!0;ci(e),Ro(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_.set(t,!0),fb(e,t,r)),!0},deleteProperty(e,t){return ci(e),Xa(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),Ro(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=xt(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{[li]:!0,[To]:e.type_!==1||t!=="length",[bi]:n[bi],[gn]:r[t]}},defineProperty(){rt(11)},getPrototypeOf(e){return Mr(e.base_)},setPrototypeOf(){rt(12)}},wn={};for(let e in Oi){let t=Oi[e];wn[e]=function(){const r=arguments;return r[0]=r[0][0],t.apply(this,r)}}wn.deleteProperty=function(e,t){return wn.set.call(this,e,t,void 0)};wn.set=function(e,t,r){return Oi.set.call(this,e[0],t,r,e[0])};function Xa(e,t){const r=e[Te];return(r?xt(r):e)[t]}function vb(e,t,r){var i;const n=Cv(t,r);return n?gn in n?n[gn]:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function Cv(e,t){if(!(t in e))return;let r=Mr(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Mr(r)}}function Ro(e){e.modified_||(e.modified_=!0,e.parent_&&Ro(e.parent_))}function ci(e){e.copy_||(e.assigned_=new Map,e.copy_=Do(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var hb=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(r,n,i)=>{if(Ir(r)&&!Ir(n)){const o=n;n=r;const u=this;return function(c=o,...s){return u.produce(c,f=>n.call(this,f,...s))}}Ir(n)||rt(6),i!==void 0&&!Ir(i)&&rt(7);let a;if(at(r)){const o=mc(this),u=zo(o,r,void 0);let l=!0;try{a=n(u),l=!1}finally{l?No(o):Lo(o)}return pc(o,i),yc(a,o)}else if(!r||!Pu(r)){if(a=n(r),a===void 0&&(a=r),a===Av&&(a=void 0),this.autoFreeze_&&Eu(a,!0),i){const o=[],u=[];fr($o).generateReplacementPatches_(r,a,{patches_:o,inversePatches_:u}),i(o,u)}return a}else rt(1,r)},this.produceWithPatches=(r,n)=>{if(Ir(r))return(u,...l)=>this.produceWithPatches(u,c=>r(c,...l));let i,a;return[this.produce(r,n,(u,l)=>{i=u,a=l}),i,a]},qa(t==null?void 0:t.autoFreeze)&&this.setAutoFreeze(t.autoFreeze),qa(t==null?void 0:t.useStrictShallowCopy)&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),qa(t==null?void 0:t.useStrictIteration)&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){at(t)||rt(8),It(t)&&(t=Ye(t));const r=mc(this),n=zo(r,t,void 0);return n[Te].isManual_=!0,Lo(r),n}finishDraft(t,r){const n=t&&t[Te];(!n||!n.isManual_)&&rt(9);const{scope_:i}=n;return pc(i,r),yc(void 0,i)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}setUseStrictIteration(t){this.useStrictIteration_=t}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(t,r){let n;for(n=r.length-1;n>=0;n--){const a=r[n];if(a.path.length===0&&a.op==="replace"){t=a.value;break}}n>-1&&(r=r.slice(n+1));const i=fr($o).applyPatches_;return It(t)?i(t,r):this.produce(t,a=>i(a,r))}};function zo(e,t,r,n){const[i,a]=fa(t)?fr(xi).proxyMap_(t,r):da(t)?fr(xi).proxySet_(t,r):db(t,r);return((r==null?void 0:r.scope_)??Sv()).drafts_.push(i),a.callbacks_=(r==null?void 0:r.callbacks_)??[],a.key_=n,r&&n!==void 0?sb(r,a,n):a.callbacks_.push(function(l){var s;(s=l.mapSetPlugin_)==null||s.fixSetContents(a);const{patchPlugin_:c}=l;a.modified_&&c&&c.generatePatches_(a,[],l)}),i}function Ye(e){return It(e)||rt(10,e),kv(e)}function kv(e){if(!at(e)||va(e))return e;const t=e[Te];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=Do(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=Do(e,!0);return ca(r,(i,a)=>{wi(r,i,kv(a))},n),t&&(t.finalized_=!1),r}var pb=new hb,jv=pb.produce;function Tv(e){return({dispatch:r,getState:n})=>i=>a=>typeof a=="function"?a(r,n,e):i(a)}var mb=Tv(),yb=Tv,gb=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?yi:yi.apply(null,arguments)};function We(e,t){function r(...n){if(t){let i=t(...n);if(!i)throw new Error(Fe(0));return{type:e,payload:i.payload,..."meta"in i&&{meta:i.meta},..."error"in i&&{error:i.error}}}return{type:e,payload:n[0]}}return r.toString=()=>`${e}`,r.type=e,r.match=n=>xv(n)&&n.type===e,r}var Mv=class fn extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,fn.prototype)}static get[Symbol.species](){return fn}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new fn(...t[0].concat(this)):new fn(...t.concat(this))}};function bc(e){return at(e)?jv(e,()=>{}):e}function Xn(e,t,r){return e.has(t)?e.get(t):e.set(t,r(t)).get(t)}function bb(e){return typeof e=="boolean"}var wb=()=>function(t){const{thunk:r=!0,immutableCheck:n=!0,serializableCheck:i=!0,actionCreatorCheck:a=!0}=t??{};let o=new Mv;return r&&(bb(r)?o.push(mb):o.push(yb(r.extraArgument))),o},Dv="RTK_autoBatch",Q=()=>e=>({payload:e,meta:{[Dv]:!0}}),wc=e=>t=>{setTimeout(t,e)},xb=(e,t)=>r=>{let n=!1;const i=()=>{n||(n=!0,cancelAnimationFrame(a),clearTimeout(o),r())},a=e(i),o=setTimeout(i,t)},$v=(e={type:"raf"})=>t=>(...r)=>{const n=t(...r);let i=!0,a=!1,o=!1;const u=new Set,l=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?xb(window.requestAnimationFrame,100):wc(10):e.type==="callback"?e.queueNotification:wc(e.timeout),c=()=>{o=!1,a&&(a=!1,u.forEach(s=>s()))};return Object.assign({},n,{subscribe(s){const f=()=>i&&s(),d=n.subscribe(f);return u.add(s),()=>{d(),u.delete(s)}},dispatch(s){var f;try{return i=!((f=s==null?void 0:s.meta)!=null&&f[Dv]),a=!i,a&&(o||(o=!0,l(c))),n.dispatch(s)}finally{i=!0}}})},Ab=e=>function(r){const{autoBatch:n=!0}=r??{};let i=new Mv(e);return n&&i.push($v(typeof n=="object"?n:void 0)),i};function Ob(e){const t=wb(),{reducer:r=void 0,middleware:n,devTools:i=!0,preloadedState:a=void 0,enhancers:o=void 0}=e||{};let u;if(typeof r=="function")u=r;else if(Ou(r))u=wv(r);else throw new Error(Fe(1));let l;typeof n=="function"?l=n(t):l=t();let c=yi;i&&(c=gb({trace:!1,...typeof i=="object"&&i}));const s=tb(...l),f=Ab(s);let d=typeof o=="function"?o(f):f();const v=c(...d);return bv(u,a,v)}function Nv(e){const t={},r=[];let n;const i={addCase(a,o){const u=typeof a=="string"?a:a.type;if(!u)throw new Error(Fe(28));if(u in t)throw new Error(Fe(29));return t[u]=o,i},addAsyncThunk(a,o){return o.pending&&(t[a.pending.type]=o.pending),o.rejected&&(t[a.rejected.type]=o.rejected),o.fulfilled&&(t[a.fulfilled.type]=o.fulfilled),o.settled&&r.push({matcher:a.settled,reducer:o.settled}),i},addMatcher(a,o){return r.push({matcher:a,reducer:o}),i},addDefaultCase(a){return n=a,i}};return e(i),[t,r,n]}function Pb(e){return typeof e=="function"}function Sb(e,t){let[r,n,i]=Nv(t),a;if(Pb(e))a=()=>bc(e());else{const u=bc(e);a=()=>u}function o(u=a(),l){let c=[r[l.type],...n.filter(({matcher:s})=>s(l)).map(({reducer:s})=>s)];return c.filter(s=>!!s).length===0&&(c=[i]),c.reduce((s,f)=>{if(f)if(It(s)){const v=f(s,l);return v===void 0?s:v}else{if(at(s))return jv(s,d=>f(d,l));{const d=f(s,l);if(d===void 0){if(s===null)return s;throw Error("A case reducer on a non-draftable value must not return undefined")}return d}}return s},u)}return o.getInitialState=a,o}var Eb="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",_b=(e=21)=>{let t="",r=e;for(;r--;)t+=Eb[Math.random()*64|0];return t},Ib=Symbol.for("rtk-slice-createasyncthunk");function Cb(e,t){return`${e}/${t}`}function kb({creators:e}={}){var r;const t=(r=e==null?void 0:e.asyncThunk)==null?void 0:r[Ib];return function(i){const{name:a,reducerPath:o=a}=i;if(!a)throw new Error(Fe(11));const u=(typeof i.reducers=="function"?i.reducers(Tb()):i.reducers)||{},l=Object.keys(u),c={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},s={addCase(A,O){const b=typeof A=="string"?A:A.type;if(!b)throw new Error(Fe(12));if(b in c.sliceCaseReducersByType)throw new Error(Fe(13));return c.sliceCaseReducersByType[b]=O,s},addMatcher(A,O){return c.sliceMatchers.push({matcher:A,reducer:O}),s},exposeAction(A,O){return c.actionCreators[A]=O,s},exposeCaseReducer(A,O){return c.sliceCaseReducersByName[A]=O,s}};l.forEach(A=>{const O=u[A],b={reducerName:A,type:Cb(a,A),createNotation:typeof i.reducers=="function"};Db(O)?Nb(b,O,s,t):Mb(b,O,s)});function f(){const[A={},O=[],b=void 0]=typeof i.extraReducers=="function"?Nv(i.extraReducers):[i.extraReducers],S={...A,...c.sliceCaseReducersByType};return Sb(i.initialState,_=>{for(let I in S)_.addCase(I,S[I]);for(let I of c.sliceMatchers)_.addMatcher(I.matcher,I.reducer);for(let I of O)_.addMatcher(I.matcher,I.reducer);b&&_.addDefaultCase(b)})}const d=A=>A,v=new Map,p=new WeakMap;let m;function y(A,O){return m||(m=f()),m(A,O)}function g(){return m||(m=f()),m.getInitialState()}function w(A,O=!1){function b(_){let I=_[A];return typeof I>"u"&&O&&(I=Xn(p,b,g)),I}function S(_=d){const I=Xn(v,O,()=>new WeakMap);return Xn(I,_,()=>{const C={};for(const[j,E]of Object.entries(i.selectors??{}))C[j]=jb(E,_,()=>Xn(p,_,g),O);return C})}return{reducerPath:A,getSelectors:S,get selectors(){return S(b)},selectSlice:b}}const x={name:a,reducer:y,actions:c.actionCreators,caseReducers:c.sliceCaseReducersByName,getInitialState:g,...w(o),injectInto(A,{reducerPath:O,...b}={}){const S=O??o;return A.inject({reducerPath:S,reducer:y},b),{...x,...w(S,!0)}}};return x}}function jb(e,t,r,n){function i(a,...o){let u=t(a);return typeof u>"u"&&n&&(u=r()),e(u,...o)}return i.unwrapped=e,i}var Ce=kb();function Tb(){function e(t,r){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...r}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...r){return t(...r)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,r){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:r}},asyncThunk:e}}function Mb({type:e,reducerName:t,createNotation:r},n,i){let a,o;if("reducer"in n){if(r&&!$b(n))throw new Error(Fe(17));a=n.reducer,o=n.prepare}else a=n;i.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,o?We(e,o):We(e))}function Db(e){return e._reducerDefinitionType==="asyncThunk"}function $b(e){return e._reducerDefinitionType==="reducerWithPrepare"}function Nb({type:e,reducerName:t},r,n,i){if(!i)throw new Error(Fe(18));const{payloadCreator:a,fulfilled:o,pending:u,rejected:l,settled:c,options:s}=r,f=i(e,a,s);n.exposeAction(t,f),o&&n.addCase(f.fulfilled,o),u&&n.addCase(f.pending,u),l&&n.addCase(f.rejected,l),c&&n.addMatcher(f.settled,c),n.exposeCaseReducer(t,{fulfilled:o||Zn,pending:u||Zn,rejected:l||Zn,settled:c||Zn})}function Zn(){}var Lb="task",Lv="listener",Rv="completed",_u="cancelled",Rb=`task-${_u}`,zb=`task-${Rv}`,Bo=`${Lv}-${_u}`,Bb=`${Lv}-${Rv}`,pa=class{constructor(e){Hn(this,"code");Hn(this,"name","TaskAbortError");Hn(this,"message");this.code=e,this.message=`${Lb} ${_u} (reason: ${e})`}},Iu=(e,t)=>{if(typeof e!="function")throw new TypeError(Fe(32))},Pi=()=>{},zv=(e,t=Pi)=>(e.catch(t),e),Bv=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),ur=e=>{if(e.aborted)throw new pa(e.reason)};function Fv(e,t){let r=Pi;return new Promise((n,i)=>{const a=()=>i(new pa(e.reason));if(e.aborted){a();return}r=Bv(e,a),t.finally(()=>r()).then(n,i)}).finally(()=>{r=Pi})}var Fb=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(r){return{status:r instanceof pa?"cancelled":"rejected",error:r}}finally{t==null||t()}},Si=e=>t=>zv(Fv(e,t).then(r=>(ur(e),r))),Wv=e=>{const t=Si(e);return r=>t(new Promise(n=>setTimeout(n,r)))},{assign:jr}=Object,xc={},ma="listenerMiddleware",Wb=(e,t)=>{const r=n=>Bv(e,()=>n.abort(e.reason));return(n,i)=>{Iu(n);const a=new AbortController;r(a);const o=Fb(async()=>{ur(e),ur(a.signal);const u=await n({pause:Si(a.signal),delay:Wv(a.signal),signal:a.signal});return ur(a.signal),u},()=>a.abort(zb));return i!=null&&i.autoJoin&&t.push(o.catch(Pi)),{result:Si(e)(o),cancel(){a.abort(Rb)}}}},Ub=(e,t)=>{const r=async(n,i)=>{ur(t);let a=()=>{};const u=[new Promise((l,c)=>{let s=e({predicate:n,effect:(f,d)=>{d.unsubscribe(),l([f,d.getState(),d.getOriginalState()])}});a=()=>{s(),c()}})];i!=null&&u.push(new Promise(l=>setTimeout(l,i,null)));try{const l=await Fv(t,Promise.race(u));return ur(t),l}finally{a()}};return((n,i)=>zv(r(n,i)))},Uv=e=>{let{type:t,actionCreator:r,matcher:n,predicate:i,effect:a}=e;if(t)i=We(t).match;else if(r)t=r.type,i=r.match;else if(n)i=n;else if(!i)throw new Error(Fe(21));return Iu(a),{predicate:i,type:t,effect:a}},Kv=jr(e=>{const{type:t,predicate:r,effect:n}=Uv(e);return{id:_b(),effect:n,type:t,predicate:r,pending:new Set,unsubscribe:()=>{throw new Error(Fe(22))}}},{withTypes:()=>Kv}),Ac=(e,t)=>{const{type:r,effect:n,predicate:i}=Uv(t);return Array.from(e.values()).find(a=>(typeof r=="string"?a.type===r:a.predicate===i)&&a.effect===n)},Fo=e=>{e.pending.forEach(t=>{t.abort(Bo)})},Kb=(e,t)=>()=>{for(const r of t.keys())Fo(r);e.clear()},Oc=(e,t,r)=>{try{e(t,r)}catch(n){setTimeout(()=>{throw n},0)}},Hv=jr(We(`${ma}/add`),{withTypes:()=>Hv}),Hb=We(`${ma}/removeAll`),Yv=jr(We(`${ma}/remove`),{withTypes:()=>Yv}),Yb=(...e)=>{console.error(`${ma}/error`,...e)},jn=(e={})=>{const t=new Map,r=new Map,n=v=>{const p=r.get(v)??0;r.set(v,p+1)},i=v=>{const p=r.get(v)??1;p===1?r.delete(v):r.set(v,p-1)},{extra:a,onError:o=Yb}=e;Iu(o);const u=v=>(v.unsubscribe=()=>t.delete(v.id),t.set(v.id,v),p=>{v.unsubscribe(),p!=null&&p.cancelActive&&Fo(v)}),l=(v=>{const p=Ac(t,v)??Kv(v);return u(p)});jr(l,{withTypes:()=>l});const c=v=>{const p=Ac(t,v);return p&&(p.unsubscribe(),v.cancelActive&&Fo(p)),!!p};jr(c,{withTypes:()=>c});const s=async(v,p,m,y)=>{const g=new AbortController,w=Ub(l,g.signal),x=[];try{v.pending.add(g),n(v),await Promise.resolve(v.effect(p,jr({},m,{getOriginalState:y,condition:(A,O)=>w(A,O).then(Boolean),take:w,delay:Wv(g.signal),pause:Si(g.signal),extra:a,signal:g.signal,fork:Wb(g.signal,x),unsubscribe:v.unsubscribe,subscribe:()=>{t.set(v.id,v)},cancelActiveListeners:()=>{v.pending.forEach((A,O,b)=>{A!==g&&(A.abort(Bo),b.delete(A))})},cancel:()=>{g.abort(Bo),v.pending.delete(g)},throwIfCancelled:()=>{ur(g.signal)}})))}catch(A){A instanceof pa||Oc(o,A,{raisedBy:"effect"})}finally{await Promise.all(x),g.abort(Bb),i(v),v.pending.delete(g)}},f=Kb(t,r);return{middleware:v=>p=>m=>{if(!xv(m))return p(m);if(Hv.match(m))return l(m.payload);if(Hb.match(m)){f();return}if(Yv.match(m))return c(m.payload);let y=v.getState();const g=()=>{if(y===xc)throw new Error(Fe(23));return y};let w;try{if(w=p(m),t.size>0){const x=v.getState(),A=Array.from(t.values());for(const O of A){let b=!1;try{b=O.predicate(m,x,y)}catch(S){b=!1,Oc(o,S,{raisedBy:"predicate"})}b&&s(O,m,v,g)}}}finally{y=xc}return w},startListening:l,stopListening:c,clearListeners:f}};function Fe(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Gb={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},Gv=Ce({name:"chartLayout",initialState:Gb,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var r,n,i,a;e.margin.top=(r=t.payload.top)!==null&&r!==void 0?r:0,e.margin.right=(n=t.payload.right)!==null&&n!==void 0?n:0,e.margin.bottom=(i=t.payload.bottom)!==null&&i!==void 0?i:0,e.margin.left=(a=t.payload.left)!==null&&a!==void 0?a:0},setScale(e,t){e.scale=t.payload}}}),ya=Gv.actions,Vb=ya.setMargin,qb=ya.setLayout,Xb=ya.setChartSize,Zb=ya.setScale,Qb=Gv.reducer;function Vv(e,t,r){return Array.isArray(e)&&e&&t+r!==0?e.slice(t,r+1):e}function U(e){return Number.isFinite(e)}function mt(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function Pc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Cr(e){for(var t=1;t{if(t&&r){var n=r.width,i=r.height,a=t.align,o=t.verticalAlign,u=t.layout;if((u==="vertical"||u==="horizontal"&&o==="middle")&&a!=="center"&&D(e[a]))return Cr(Cr({},e),{},{[a]:e[a]+(n||0)});if((u==="horizontal"||u==="vertical"&&a==="center")&&o!=="middle"&&D(e[o]))return Cr(Cr({},e),{},{[o]:e[o]+(i||0)})}return e},bt=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",qv=(e,t,r,n)=>{if(n)return e.map(u=>u.coordinate);var i,a,o=e.map(u=>(u.coordinate===t&&(i=!0),u.coordinate===r&&(a=!0),u.coordinate));return i||o.push(t),a||o.push(r),o},Xv=(e,t,r)=>{if(!e)return null;var n=e.duplicateDomain,i=e.type,a=e.range,o=e.scale,u=e.realScaleType,l=e.isCategorical,c=e.categoricalDomain,s=e.tickCount,f=e.ticks,d=e.niceTicks,v=e.axisType;if(!o)return null;var p=u==="scaleBand"&&o.bandwidth?o.bandwidth()/2:2,m=i==="category"&&o.bandwidth?o.bandwidth()/p:0;if(m=v==="angleAxis"&&a&&a.length>=2?He(a[0]-a[1])*2*m:m,f||d){var y=(f||d||[]).map((g,w)=>{var x=n?n.indexOf(g):g,A=o.map(x);return U(A)?{coordinate:A+m,value:g,offset:m,index:w}:null}).filter(De);return y}return l&&c?c.map((g,w)=>{var x=o.map(g);return U(x)?{coordinate:x+m,value:g,index:w,offset:m}:null}).filter(De):o.ticks&&s!=null?o.ticks(s).map((g,w)=>{var x=o.map(g);return U(x)?{coordinate:x+m,value:g,index:w,offset:m}:null}).filter(De):o.domain().map((g,w)=>{var x=o.map(g);return U(x)?{coordinate:x+m,value:n?n[g]:g,index:w,offset:m}:null}).filter(De)},nw=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var i=0;i=0?(c[0]=a,a+=d,c[1]=a):(c[0]=o,o+=d,c[1]=o)}}}},iw=e=>{var t,r=e.length;if(!(r<=0)){var n=(t=e[0])===null||t===void 0?void 0:t.length;if(!(n==null||n<=0))for(var i=0;i=0?(l[0]=a,a+=c,l[1]=a):(l[0]=0,l[1]=0)}}}},aw={sign:nw,expand:Eg,none:cr,silhouette:_g,wiggle:Ig,positive:iw},ow=(e,t,r)=>{var n,i=(n=aw[r])!==null&&n!==void 0?n:cr,a=Sg().keys(t).value((u,l)=>Number(he(u,l,0))).order(_o).offset(i),o=a(e);return o.forEach((u,l)=>{u.forEach((c,s)=>{var f=he(e[s],t[l],0);Array.isArray(f)&&f.length===2&&D(f[0])&&D(f[1])&&(c[0]=f[0],c[1]=f[1])})}),o};function uw(e){return e==null?void 0:String(e)}function Sc(e){var t=e.axis,r=e.ticks,n=e.bandSize,i=e.entry,a=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Oe(i[t.dataKey])){var u=rv(r,"value",i[t.dataKey]);if(u)return u.coordinate+n/2}return r!=null&&r[a]?r[a].coordinate+n/2:null}var l=he(i,Oe(o)?t.dataKey:o),c=t.scale.map(l);return D(c)?c:null}var lw=e=>{var t=e.flat(2).filter(D);return[Math.min(...t),Math.max(...t)]},cw=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],sw=(e,t,r)=>{if(!(e==null||Object.keys(e).length===0))return cw(Object.keys(e).reduce((n,i)=>{var a=e[i];if(!a)return n;var o=a.stackedData,u=o.reduce((l,c)=>{var s=Vv(c,t,r),f=lw(s);return!U(f[0])||!U(f[1])?l:[Math.min(l[0],f[0]),Math.max(l[1],f[1])]},[1/0,-1/0]);return[Math.min(u[0],n[0]),Math.max(u[1],n[1])]},[1/0,-1/0]))},Ec=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,_c=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Ei=(e,t,r)=>{if(e&&e.scale&&e.scale.bandwidth){var n=e.scale.bandwidth();if(!r||n>0)return n}if(e&&t&&t.length>=2){for(var i=ua(t,s=>s.coordinate),a=1/0,o=1,u=i.length;o{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},dw=(e,t)=>t==="centric"?e.angle:e.radius,Mt=e=>e.layout.width,Dt=e=>e.layout.height,vw=e=>e.layout.scale,Qv=e=>e.layout.margin,ga=P(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),ba=P(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),hw="data-recharts-item-index",pw="data-recharts-item-id",Tn=60;function Cc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Qn(e){for(var t=1;te.brush.height;function ww(e){var t=ba(e);return t.reduce((r,n)=>{if(n.orientation==="left"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:Tn;return r+i}return r},0)}function xw(e){var t=ba(e);return t.reduce((r,n)=>{if(n.orientation==="right"&&!n.mirror&&!n.hide){var i=typeof n.width=="number"?n.width:Tn;return r+i}return r},0)}function Aw(e){var t=ga(e);return t.reduce((r,n)=>n.orientation==="top"&&!n.mirror&&!n.hide?r+n.height:r,0)}function Ow(e){var t=ga(e);return t.reduce((r,n)=>n.orientation==="bottom"&&!n.mirror&&!n.hide?r+n.height:r,0)}var Pe=P([Mt,Dt,Qv,bw,ww,xw,Aw,Ow,gv,K0],(e,t,r,n,i,a,o,u,l,c)=>{var s={left:(r.left||0)+i,right:(r.right||0)+a},f={top:(r.top||0)+o,bottom:(r.bottom||0)+u},d=Qn(Qn({},f),s),v=d.bottom;d.bottom+=n,d=rw(d,l,c);var p=e-d.left-d.right,m=t-d.top-d.bottom;return Qn(Qn({brushBottom:v},d),{},{width:Math.max(p,0),height:Math.max(m,0)})}),Pw=P(Pe,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),Jv=P(Mt,Dt,(e,t)=>({x:0,y:0,width:e,height:t})),Sw=h.createContext(null),$e=()=>h.useContext(Sw)!=null,wa=e=>e.brush,xa=P([wa,Pe,Qv],(e,t,r)=>({height:e.height,x:D(e.x)?e.x:t.left,y:D(e.y)?e.y:t.top+t.height+t.brushBottom-((r==null?void 0:r.bottom)||0),width:D(e.width)?e.width:t.width}));function Ew(e,t,{signal:r,edges:n}={}){let i,a=null;const o=n!=null&&n.includes("leading"),u=n==null||n.includes("trailing"),l=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},c=()=>{u&&l(),v()};let s=null;const f=()=>{s!=null&&clearTimeout(s),s=setTimeout(()=>{s=null,c()},t)},d=()=>{s!==null&&(clearTimeout(s),s=null)},v=()=>{d(),i=void 0,a=null},p=()=>{l()},m=function(...y){if(r!=null&&r.aborted)return;i=this,a=y;const g=s==null;f(),o&&g&&l()};return m.schedule=f,m.cancel=v,m.flush=p,r==null||r.addEventListener("abort",v,{once:!0}),m}function _w(e,t=0,r={}){typeof r!="object"&&(r={});const{leading:n=!1,trailing:i=!0,maxWait:a}=r,o=Array(2);n&&(o[0]="leading"),i&&(o[1]="trailing");let u,l=null;const c=Ew(function(...d){u=e.apply(this,d),l=null},t,{edges:o}),s=function(...d){return a!=null&&(l===null&&(l=Date.now()),Date.now()-l>=a)?(u=e.apply(this,d),l=Date.now(),c.cancel(),c.schedule(),u):(c.apply(this,d),u)},f=()=>(c.flush(),u);return s.cancel=c.cancel,s.flush=f,s}function Iw(e,t=0,r={}){const{leading:n=!0,trailing:i=!0}=r;return _w(e,t,{leading:n,maxWait:t,trailing:i})}var _i=function(t,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),a=2;ai[o++]))}},ft={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},eh=(e,t,r)=>{var n=r.width,i=n===void 0?ft.width:n,a=r.height,o=a===void 0?ft.height:a,u=r.aspect,l=r.maxHeight,c=sr(i)?e:Number(i),s=sr(o)?t:Number(o);return u&&u>0&&(c?s=c/u:s&&(c=s*u),l&&s!=null&&s>l&&(s=l)),{calculatedWidth:c,calculatedHeight:s}},Cw={width:0,height:0,overflow:"visible"},kw={width:0,overflowX:"visible"},jw={height:0,overflowY:"visible"},Tw={},Mw=e=>{var t=e.width,r=e.height,n=sr(t),i=sr(r);return n&&i?Cw:n?kw:i?jw:Tw};function Dw(e){var t=e.width,r=e.height,n=e.aspect,i=t,a=r;return i===void 0&&a===void 0?(i=ft.width,a=ft.height):i===void 0?i=n&&n>0?void 0:ft.width:a===void 0&&(a=n&&n>0?void 0:ft.height),{width:i,height:a}}var $w=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function Ii(){return Ii=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({width:r,height:n}),[r,n]);return Yw(i)?h.createElement(th.Provider,{value:i},t):null}var Cu=()=>h.useContext(th),Gw=h.forwardRef((e,t)=>{var r=e.aspect,n=e.initialDimension,i=n===void 0?ft.initialDimension:n,a=e.width,o=e.height,u=e.minWidth,l=u===void 0?ft.minWidth:u,c=e.minHeight,s=e.maxHeight,f=e.children,d=e.debounce,v=d===void 0?ft.debounce:d,p=e.id,m=e.className,y=e.onResize,g=e.style,w=g===void 0?{}:g,x=Kw(e,$w),A=h.useRef(null),O=h.useRef();O.current=y,h.useImperativeHandle(t,()=>A.current);var b=h.useState({containerWidth:i.width,containerHeight:i.height}),S=zw(b,2),_=S[0],I=S[1],C=h.useCallback((H,Y)=>{I(B=>{var q=Math.round(H),W=Math.round(Y);return B.containerWidth===q&&B.containerHeight===W?B:{containerWidth:q,containerHeight:W}})},[]);h.useEffect(()=>{if(A.current==null||typeof ResizeObserver>"u")return Fr;var H=Se=>{var ge,ae=Se[0];if(ae!=null){var Ne=ae.contentRect,Le=Ne.width,Je=Ne.height;C(Le,Je),(ge=O.current)===null||ge===void 0||ge.call(O,Le,Je)}};v>0&&(H=Iw(H,v,{trailing:!0,leading:!1}));var Y=new ResizeObserver(H),B=A.current.getBoundingClientRect(),q=B.width,W=B.height;return C(q,W),Y.observe(A.current),()=>{Y.disconnect()}},[C,v]);var j=_.containerWidth,E=_.containerHeight;_i(!r||r>0,"The aspect(%s) must be greater than zero.",r);var R=eh(j,E,{width:a,height:o,aspect:r,maxHeight:s}),$=R.calculatedWidth,V=R.calculatedHeight;return _i(j<0||E<0||$!=null&&$>0||V!=null&&V>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,$,V,a,o,l,c,r),h.createElement("div",Ii({id:p?"".concat(p):void 0,className:ee("recharts-responsive-container",m),style:jc(jc({},w),{},{width:a,height:o,minWidth:l,minHeight:c,maxHeight:s}),ref:A},x),h.createElement("div",{style:Mw({width:a,height:o})},h.createElement(rh,{width:$,height:V},f)))}),Vw=h.forwardRef((e,t)=>{var r=Cu();if(mt(r.width)&&mt(r.height))return e.children;var n=Dw({width:e.width,height:e.height,aspect:e.aspect}),i=n.width,a=n.height,o=eh(void 0,void 0,{width:i,height:a,aspect:e.aspect,maxHeight:e.maxHeight}),u=o.calculatedWidth,l=o.calculatedHeight;return D(u)&&D(l)?h.createElement(rh,{width:u,height:l},e.children):h.createElement(Gw,Ii({},e,{width:i,height:a,ref:t}))});function ku(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}var Aa=()=>{var e,t=$e(),r=N(Pw),n=N(xa),i=(e=N(wa))===null||e===void 0?void 0:e.padding;return!t||!n||!i?r:{width:n.width-i.left-i.right,height:n.height-i.top-i.bottom,x:i.left,y:i.top}},qw={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},nh=()=>{var e;return(e=N(Pe))!==null&&e!==void 0?e:qw},ih=()=>N(Mt),ah=()=>N(Dt),re=e=>e.layout.layoutType,Wr=()=>N(re),ju=()=>{var e=Wr();if(e==="horizontal"||e==="vertical")return e},oh=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},Xw=()=>{var e=Wr();return e!==void 0},Mn=e=>{var t=le(),r=$e(),n=e.width,i=e.height,a=Cu(),o=n,u=i;return a&&(o=a.width>0?a.width:n,u=a.height>0?a.height:i),h.useEffect(()=>{!r&&mt(o)&&mt(u)&&t(Xb({width:o,height:u}))},[t,r,o,u]),null},uh=Symbol.for("immer-nothing"),Mc=Symbol.for("immer-draftable"),Ue=Symbol.for("immer-state");function nt(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var xn=Object.getPrototypeOf;function Dr(e){return!!e&&!!e[Ue]}function dr(e){var t;return e?lh(e)||Array.isArray(e)||!!e[Mc]||!!((t=e.constructor)!=null&&t[Mc])||Dn(e)||Pa(e):!1}var Zw=Object.prototype.constructor.toString(),Dc=new WeakMap;function lh(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;const r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;if(r===Object)return!0;if(typeof r!="function")return!1;let n=Dc.get(r);return n===void 0&&(n=Function.toString.call(r),Dc.set(r,n)),n===Zw}function Ci(e,t,r=!0){Oa(e)===0?(r?Reflect.ownKeys(e):Object.keys(e)).forEach(i=>{t(i,e[i],e)}):e.forEach((n,i)=>t(i,n,e))}function Oa(e){const t=e[Ue];return t?t.type_:Array.isArray(e)?1:Dn(e)?2:Pa(e)?3:0}function Wo(e,t){return Oa(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function ch(e,t,r){const n=Oa(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function Qw(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Dn(e){return e instanceof Map}function Pa(e){return e instanceof Set}function tr(e){return e.copy_||e.base_}function Uo(e,t){if(Dn(e))return new Map(e);if(Pa(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const r=lh(e);if(t===!0||t==="class_only"&&!r){const n=Object.getOwnPropertyDescriptors(e);delete n[Ue];let i=Reflect.ownKeys(n);for(let a=0;a1&&Object.defineProperties(e,{set:Jn,add:Jn,clear:Jn,delete:Jn}),Object.freeze(e),t&&Object.values(e).forEach(r=>Tu(r,!0))),e}function Jw(){nt(2)}var Jn={value:Jw};function Sa(e){return e===null||typeof e!="object"?!0:Object.isFrozen(e)}var ex={};function vr(e){const t=ex[e];return t||nt(0,e),t}var An;function sh(){return An}function tx(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function $c(e,t){t&&(vr("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Ko(e){Ho(e),e.drafts_.forEach(rx),e.drafts_=null}function Ho(e){e===An&&(An=e.parent_)}function Nc(e){return An=tx(An,e)}function rx(e){const t=e[Ue];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Lc(e,t){t.unfinalizedDrafts_=t.drafts_.length;const r=t.drafts_[0];return e!==void 0&&e!==r?(r[Ue].modified_&&(Ko(t),nt(4)),dr(e)&&(e=ki(t,e),t.parent_||ji(t,e)),t.patches_&&vr("Patches").generateReplacementPatches_(r[Ue].base_,e,t.patches_,t.inversePatches_)):e=ki(t,r,[]),Ko(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==uh?e:void 0}function ki(e,t,r){if(Sa(t))return t;const n=e.immer_.shouldUseStrictIteration(),i=t[Ue];if(!i)return Ci(t,(a,o)=>Rc(e,i,t,a,o,r),n),t;if(i.scope_!==e)return t;if(!i.modified_)return ji(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const a=i.copy_;let o=a,u=!1;i.type_===3&&(o=new Set(a),a.clear(),u=!0),Ci(o,(l,c)=>Rc(e,i,a,l,c,r,u),n),ji(e,a,!1),r&&e.patches_&&vr("Patches").generatePatches_(i,r,e.patches_,e.inversePatches_)}return i.copy_}function Rc(e,t,r,n,i,a,o){if(i==null||typeof i!="object"&&!o)return;const u=Sa(i);if(!(u&&!o)){if(Dr(i)){const l=a&&t&&t.type_!==3&&!Wo(t.assigned_,n)?a.concat(n):void 0,c=ki(e,i,l);if(ch(r,n,c),Dr(c))e.canAutoFreeze_=!1;else return}else o&&r.add(i);if(dr(i)&&!u){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1||t&&t.base_&&t.base_[n]===i&&u)return;ki(e,i),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&(Dn(r)?r.has(n):Object.prototype.propertyIsEnumerable.call(r,n))&&ji(e,i)}}}function ji(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Tu(t,r)}function nx(e,t){const r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:sh(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let i=n,a=Mu;r&&(i=[n],a=On);const{revoke:o,proxy:u}=Proxy.revocable(i,a);return n.draft_=u,n.revoke_=o,u}var Mu={get(e,t){if(t===Ue)return e;const r=tr(e);if(!Wo(r,t))return ix(e,r,t);const n=r[t];return e.finalized_||!dr(n)?n:n===Za(e.base_,t)?(Qa(e),e.copy_[t]=Go(n,e)):n},has(e,t){return t in tr(e)},ownKeys(e){return Reflect.ownKeys(tr(e))},set(e,t,r){const n=fh(tr(e),t);if(n!=null&&n.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){const i=Za(tr(e),t),a=i==null?void 0:i[Ue];if(a&&a.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(Qw(r,i)&&(r!==void 0||Wo(e.base_,t)))return!0;Qa(e),Yo(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty(e,t){return Za(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,Qa(e),Yo(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const r=tr(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){nt(11)},getPrototypeOf(e){return xn(e.base_)},setPrototypeOf(){nt(12)}},On={};Ci(Mu,(e,t)=>{On[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});On.deleteProperty=function(e,t){return On.set.call(this,e,t,void 0)};On.set=function(e,t,r){return Mu.set.call(this,e[0],t,r,e[0])};function Za(e,t){const r=e[Ue];return(r?tr(r):e)[t]}function ix(e,t,r){var i;const n=fh(t,r);return n?"value"in n?n.value:(i=n.get)==null?void 0:i.call(e.draft_):void 0}function fh(e,t){if(!(t in e))return;let r=xn(e);for(;r;){const n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=xn(r)}}function Yo(e){e.modified_||(e.modified_=!0,e.parent_&&Yo(e.parent_))}function Qa(e){e.copy_||(e.copy_=Uo(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var ax=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){const a=r;r=t;const o=this;return function(l=a,...c){return o.produce(l,s=>r.call(this,s,...c))}}typeof r!="function"&&nt(6),n!==void 0&&typeof n!="function"&&nt(7);let i;if(dr(t)){const a=Nc(this),o=Go(t,void 0);let u=!0;try{i=r(o),u=!1}finally{u?Ko(a):Ho(a)}return $c(a,n),Lc(i,a)}else if(!t||typeof t!="object"){if(i=r(t),i===void 0&&(i=t),i===uh&&(i=void 0),this.autoFreeze_&&Tu(i,!0),n){const a=[],o=[];vr("Patches").generateReplacementPatches_(t,i,a,o),n(a,o)}return i}else nt(1,t)},this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(o,...u)=>this.produceWithPatches(o,l=>t(l,...u));let n,i;return[this.produce(t,r,(o,u)=>{n=o,i=u}),n,i]},typeof(e==null?void 0:e.autoFreeze)=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof(e==null?void 0:e.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),typeof(e==null?void 0:e.useStrictIteration)=="boolean"&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){dr(e)||nt(8),Dr(e)&&(e=ox(e));const t=Nc(this),r=Go(e,void 0);return r[Ue].isManual_=!0,Ho(t),r}finishDraft(e,t){const r=e&&e[Ue];(!r||!r.isManual_)&&nt(9);const{scope_:n}=r;return $c(n,t),Lc(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){const i=t[r];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}r>-1&&(t=t.slice(r+1));const n=vr("Patches").applyPatches_;return Dr(e)?n(e,t):this.produce(e,i=>n(i,t))}};function Go(e,t){const r=Dn(e)?vr("MapSet").proxyMap_(e,t):Pa(e)?vr("MapSet").proxySet_(e,t):nx(e,t);return(t?t.scope_:sh()).drafts_.push(r),r}function ox(e){return Dr(e)||nt(10,e),dh(e)}function dh(e){if(!dr(e)||Sa(e))return e;const t=e[Ue];let r,n=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=Uo(e,t.scope_.immer_.useStrictShallowCopy_),n=t.scope_.immer_.shouldUseStrictIteration()}else r=Uo(e,!0);return Ci(r,(i,a)=>{ch(r,i,dh(a))},n),t&&(t.finalized_=!1),r}var ux=new ax;ux.produce;var lx={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value"},size:{width:0,height:0},payload:[]},vh=Ce({name:"legend",initialState:lx,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter},addLegendPayload:{reducer(e,t){e.payload.push(t.payload)},prepare:Q()},replaceLegendPayload:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,a=Ye(e).payload.indexOf(n);a>-1&&(e.payload[a]=i)},prepare:Q()},removeLegendPayload:{reducer(e,t){var r=Ye(e).payload.indexOf(t.payload);r>-1&&e.payload.splice(r,1)},prepare:Q()}}}),$n=vh.actions;$n.setLegendSize;$n.setLegendSettings;var cx=$n.addLegendPayload,sx=$n.replaceLegendPayload,fx=$n.removeLegendPayload,dx=vh.reducer,Ja={exports:{}},eo={};/** - * @license React - * use-sync-external-store-with-selector.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var zc;function vx(){if(zc)return eo;zc=1;var e=Hy();function t(l,c){return l===c&&(l!==0||1/l===1/c)||l!==l&&c!==c}var r=typeof Object.is=="function"?Object.is:t,n=e.useSyncExternalStore,i=e.useRef,a=e.useEffect,o=e.useMemo,u=e.useDebugValue;return eo.useSyncExternalStoreWithSelector=function(l,c,s,f,d){var v=i(null);if(v.current===null){var p={hasValue:!1,value:null};v.current=p}else p=v.current;v=o(function(){function y(O){if(!g){if(g=!0,w=O,O=f(O),d!==void 0&&p.hasValue){var b=p.value;if(d(b,O))return x=b}return x=O}if(b=x,r(w,O))return b;var S=f(O);return d!==void 0&&d(b,S)?(w=O,b):(w=O,x=S)}var g=!1,w,x,A=s===void 0?null:s;return[function(){return y(c())},A===null?void 0:function(){return y(A())}]},[c,s,f,d]);var m=n(l,v[0],v[1]);return a(function(){p.hasValue=!0,p.value=m},[m]),u(m),m},eo}var Bc;function hx(){return Bc||(Bc=1,Ja.exports=vx()),Ja.exports}hx();function px(e){e()}function mx(){let e=null,t=null;return{clear(){e=null,t=null},notify(){px(()=>{let r=e;for(;r;)r.callback(),r=r.next})},get(){const r=[];let n=e;for(;n;)r.push(n),n=n.next;return r},subscribe(r){let n=!0;const i=t={callback:r,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!n||e===null||(n=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var Fc={notify(){},get:()=>[]};function yx(e,t){let r,n=Fc,i=0,a=!1;function o(m){s();const y=n.subscribe(m);let g=!1;return()=>{g||(g=!0,y(),f())}}function u(){n.notify()}function l(){p.onStateChange&&p.onStateChange()}function c(){return a}function s(){i++,r||(r=e.subscribe(l),n=mx())}function f(){i--,r&&i===0&&(r(),r=void 0,n.clear(),n=Fc)}function d(){a||(a=!0,s())}function v(){a&&(a=!1,f())}const p={addNestedSub:o,notifyNestedSubs:u,handleChangeWrapper:l,isSubscribed:c,trySubscribe:d,tryUnsubscribe:v,getListeners:()=>n};return p}var gx=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",bx=gx(),wx=()=>typeof navigator<"u"&&navigator.product==="ReactNative",xx=wx(),Ax=()=>bx||xx?h.useLayoutEffect:h.useEffect,Ox=Ax();function Wc(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function Px(e,t){if(Wc(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let i=0;i{const l=yx(i);return{store:i,subscription:l,getServerState:n?()=>n:void 0}},[i,n]),o=h.useMemo(()=>i.getState(),[i]);Ox(()=>{const{subscription:l}=a;return l.onStateChange=l.notifyNestedSubs,l.trySubscribe(),o!==i.getState()&&l.notifyNestedSubs(),()=>{l.tryUnsubscribe(),l.onStateChange=void 0}},[a,o]);const u=r||Ex;return h.createElement(u.Provider,{value:a},t)}var Ix=_x,Cx=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function kx(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function Ea(e,t){var r=new Set([...Object.keys(e),...Object.keys(t)]);for(var n of r)if(Cx.has(n)){if(e[n]==null&&t[n]==null)continue;if(!Px(e[n],t[n]))return!1}else if(!kx(e[n],t[n]))return!1;return!0}function Vo(){return Vo=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.separator,r=t===void 0?xr.separator:t,n=e.contentStyle,i=e.itemStyle,a=e.labelStyle,o=a===void 0?xr.labelStyle:a,u=e.payload,l=e.formatter,c=e.itemSorter,s=e.wrapperClassName,f=e.labelClassName,d=e.label,v=e.labelFormatter,p=e.accessibilityLayer,m=p===void 0?xr.accessibilityLayer:p,y=()=>{if(u&&u.length){var _={padding:0,margin:0},I=Bx(u,c),C=I.map((j,E)=>{if(!j||j.type==="none")return null;var R=j.formatter||l||zx,$=j.value,V=j.name,H=$,Y=V;if(R){var B=R($,V,j,E,u);if(Array.isArray(B)){var q=Dx(B,2);H=q[0],Y=q[1]}else if(B!=null)H=B;else return null}var W=en(en({},xr.itemStyle),{},{color:j.color||xr.itemStyle.color},i);return h.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(E),style:W},pt(Y)?h.createElement("span",{className:"recharts-tooltip-item-name"},Y):null,pt(Y)?h.createElement("span",{className:"recharts-tooltip-item-separator"},r):null,h.createElement("span",{className:"recharts-tooltip-item-value"},H),h.createElement("span",{className:"recharts-tooltip-item-unit"},j.unit||""))});return h.createElement("ul",{className:"recharts-tooltip-item-list",style:_},C)}return null},g=en(en({},xr.contentStyle),n),w=en({margin:0},o),x=!Oe(d),A=x?d:"",O=ee("recharts-default-tooltip",s),b=ee("recharts-tooltip-label",f);x&&v&&u!==void 0&&u!==null&&(A=v(d,u));var S=m?{role:"status","aria-live":"assertive"}:{};return h.createElement("div",Vo({className:O,style:g},S),h.createElement("p",{className:b,style:w},h.isValidElement(A)?A:"".concat(A)),y())},tn="recharts-tooltip-wrapper",Wx={visibility:"hidden"};function Ux(e){var t=e.coordinate,r=e.translateX,n=e.translateY;return ee(tn,{["".concat(tn,"-right")]:D(r)&&t&&D(t.x)&&r>=t.x,["".concat(tn,"-left")]:D(r)&&t&&D(t.x)&&r=t.y,["".concat(tn,"-top")]:D(n)&&t&&D(t.y)&&n0?i:0),f=r[n]+i;if(t[n])return o[n]?s:f;var d=l[n];if(d==null)return 0;if(o[n]){var v=s,p=d;return vy?Math.max(s,d):Math.max(f,d)}function Kx(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function Hx(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTop,i=e.offsetLeft,a=e.position,o=e.reverseDirection,u=e.tooltipBox,l=e.useTranslate3d,c=e.viewBox,s,f,d;return u.height>0&&u.width>0&&r?(f=Hc({allowEscapeViewBox:t,coordinate:r,key:"x",offset:i,position:a,reverseDirection:o,tooltipDimension:u.width,viewBox:c,viewBoxDimension:c.width}),d=Hc({allowEscapeViewBox:t,coordinate:r,key:"y",offset:n,position:a,reverseDirection:o,tooltipDimension:u.height,viewBox:c,viewBoxDimension:c.height}),s=Kx({translateX:f,translateY:d,useTranslate3d:l})):s=Wx,{cssProperties:s,cssClasses:Ux({translateX:f,translateY:d,coordinate:r})}}var Yx=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Nn={isSsr:Yx()};function Gx(e,t){return Zx(e)||Xx(e,t)||qx(e,t)||Vx()}function Vx(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qx(e,t){if(e){if(typeof e=="string")return Yc(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Yc(e,t):void 0}}function Yc(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rNn.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=Gx(e,2),r=t[0],n=t[1];return h.useEffect(()=>{if(window.matchMedia){var i=window.matchMedia("(prefers-reduced-motion: reduce)"),a=()=>{n(i.matches)};return i.addEventListener("change",a),()=>{i.removeEventListener("change",a)}}},[]),r}function Gc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ar(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),c=tA(l,2),s=c[0],f=c[1];h.useEffect(()=>{var g=w=>{if(w.key==="Escape"){var x,A,O,b;f({dismissed:!0,dismissedAtCoordinate:{x:(x=(A=e.coordinate)===null||A===void 0?void 0:A.x)!==null&&x!==void 0?x:0,y:(O=(b=e.coordinate)===null||b===void 0?void 0:b.y)!==null&&O!==void 0?O:0}})}};return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(r=e.coordinate)===null||r===void 0?void 0:r.y]),s.dismissed&&(((n=(i=e.coordinate)===null||i===void 0?void 0:i.x)!==null&&n!==void 0?n:0)!==s.dismissedAtCoordinate.x||((a=(o=e.coordinate)===null||o===void 0?void 0:o.y)!==null&&a!==void 0?a:0)!==s.dismissedAtCoordinate.y)&&f(Ar(Ar({},s),{},{dismissed:!1}));var d=Hx({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:{height:e.lastBoundingBox.height,width:e.lastBoundingBox.width},useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),v=d.cssClasses,p=d.cssProperties,m=e.hasPortalFromProps?{}:Ar(Ar({transition:oA({prefersReducedMotion:u,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},p),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),y=Ar(Ar({},m),{},{visibility:!s.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return h.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:v,style:y,ref:e.innerRef},e.children)}var lA=h.memo(uA),ph=()=>{var e;return(e=N(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};function qo(){return qo=Object.assign?Object.assign.bind():function(e){for(var t=1;tU(e.x)&&U(e.y),Qc=e=>e.base!=null&&Ti(e.base)&&Ti(e),rn=e=>e.x,nn=e=>e.y,dA=(e,t)=>{if(typeof e=="function")return e;var r="curve".concat(bu(e));if((r==="curveMonotone"||r==="curveBump")&&t){var n=Zc["".concat(r).concat(t==="vertical"?"Y":"X")];if(n)return n}return Zc[r]||aa},Jc={connectNulls:!1,type:"linear"},vA=e=>{var t=e.type,r=t===void 0?Jc.type:t,n=e.points,i=n===void 0?[]:n,a=e.baseLine,o=e.layout,u=e.connectNulls,l=u===void 0?Jc.connectNulls:u,c=dA(r,o),s=l?i.filter(Ti):i;if(Array.isArray(a)){var f,d=i.map((g,w)=>Xc(Xc({},g),{},{base:a[w]}));o==="vertical"?f=Yn().y(nn).x1(rn).x0(g=>g.base.x):f=Yn().x(rn).y1(nn).y0(g=>g.base.y);var v=f.defined(Qc).curve(c),p=l?d.filter(Qc):d;return v(p)}var m;o==="vertical"&&D(a)?m=Yn().y(nn).x1(rn).x0(a):D(a)?m=Yn().x(rn).y1(nn).y0(a):m=Kd().x(rn).y(nn);var y=m.defined(Ti).curve(c);return y(s)},si=e=>{var t=e.className,r=e.points,n=e.path,i=e.pathRef,a=Wr();if((!r||!r.length)&&!n)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||a,connectNulls:e.connectNulls},u=r&&r.length?vA(o):n;return h.createElement("path",qo({},it(e),wu(e),{className:ee("recharts-curve",t),d:u===null?void 0:u,ref:i}))},hA=["x","y","top","left","width","height","className"];function Xo(){return Xo=Object.assign?Object.assign.bind():function(e){for(var t=1;t"M".concat(e,",").concat(i,"v").concat(n,"M").concat(a,",").concat(t,"h").concat(r),AA=e=>{var t=e.x,r=t===void 0?0:t,n=e.y,i=n===void 0?0:n,a=e.top,o=a===void 0?0:a,u=e.left,l=u===void 0?0:u,c=e.width,s=c===void 0?0:c,f=e.height,d=f===void 0?0:f,v=e.className,p=bA(e,hA),m=pA({x:r,y:i,top:o,left:l,width:s,height:d},p);return!D(r)||!D(i)||!D(s)||!D(d)||!D(o)||!D(l)?null:h.createElement("path",Xo({},Ve(m),{className:ee("recharts-cross",v),d:xA(r,i,s,d,o,l)}))};function OA(e,t,r,n){var i=n/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-i:r.left+.5,y:e==="horizontal"?r.top+.5:t.y-i,width:e==="horizontal"?n:r.width-1,height:e==="horizontal"?r.height-1:n}}var Mi=1e-4,mh=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],yh=(e,t)=>e.map((r,n)=>r*t**n).reduce((r,n)=>r+n),ts=(e,t)=>r=>{var n=mh(e,t);return yh(n,r)},PA=(e,t)=>r=>{var n=mh(e,t),i=[...n.map((a,o)=>a*o).slice(1),0];return yh(i,r)},SA=e=>{var t,r=e.split("(");if(r.length!==2||r[0]!=="cubic-bezier")return null;var n=(t=r[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(n==null||n.length!==4)return null;var i=n.map(a=>parseFloat(a));return[i[0],i[1],i[2],i[3]]},EA=function(){for(var t=arguments.length,r=new Array(t),n=0;n{var i=ts(e,r),a=ts(t,n),o=PA(e,r),u=c=>c>1?1:c<0?0:c,l=c=>{for(var s=c>1?1:c,f=s,d=0;d<8;++d){var v=i(f)-s,p=o(f);if(Math.abs(v-s)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,i=t.damping,a=i===void 0?8:i,o=t.dt,u=o===void 0?16.67:o,l=1,c=[0],s=0,f=0,d=1e4,v=0;v{var w,x,A;if(g<=0)return 0;if(g>=1)return l;var O=g*y,b=Math.floor(O),S=O-b;return((w=c[b])!==null&&w!==void 0?w:0)+(((x=c[b+1])!==null&&x!==void 0?x:0)-((A=c[b])!==null&&A!==void 0?A:0))*S}},CA=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return rs(e);case"spring":return IA();default:if(e.split("(")[0]==="cubic-bezier")return rs(e)}return typeof e=="function"?e:null},kA=(e,t,r)=>{var n,i=a=>{var o=t.tick(a);if(t.getState()==="active"){if(r(t.getInterpolated()),t.getProgress()===1){t.complete(),n=void 0;return}n=e.setTimeout(i,o);return}n=e.setTimeout(i,o)};return n=e.setTimeout(i,0),()=>{var a;return(a=n)===null||a===void 0?void 0:a()}},gh=h.createContext(kA);gh.Provider;function jA(e){var t=h.useContext(gh);return h.useMemo(()=>e??t,[e,t])}function TA(e,t,r){return(t=MA(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function MA(e){var t=DA(e,"string");return typeof t=="symbol"?t:t+""}function DA(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var ns="init",is="pending",as="active",$A="completed";function no(e){return Math.max(0,e)}class NA{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var r;TA(this,"state",ns),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=no(t.animationDuration),this.animationBegin=no(t.animationBegin),this.progress=0,this.from=t.from,this.to=t.to,this.easing=t.easing,(r=t.onAnimationStart)===null||r===void 0||r.call(t)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(t){if(this.getState()===ns)return this.state=is,this.beginStartedTime=t,this.animationBegin;if(this.getState()===is){if(this.beginStartedTime==null)throw new Error;var r=t-this.beginStartedTime;return r>=this.animationBegin?(this.state=as,this.animationStartedTime=t,this.nextAnimationUpdate(0)):no(this.animationBegin-r)}if(this.getState()===as){if(this.animationStartedTime==null)throw new Error;var n=t-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(t){this.progress=Math.min(1,Math.max(0,t))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state==="active"){var t;(t=this.onAnimationEnd)===null||t===void 0||t.call(this)}this.state=$A}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}}class LA extends NA{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(Ot(this.getFrom(),this.getTo(),this.getProgress()))}}class RA{setTimeout(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),i=null,a=o=>{o-n>=r?t(o):i=requestAnimationFrame(a)};return i=requestAnimationFrame(a),()=>{i!=null&&cancelAnimationFrame(i)}}}function zA(e,t){return UA(e)||WA(e,t)||FA(e,t)||BA()}function BA(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function FA(e,t){if(e){if(typeof e=="string")return os(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?os(e,t):void 0}}function os(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{},onAnimationStart:()=>{}},us=0,io=1;function bh(e){var t=Ze(e,KA),r=t.animationId,n=t.isActive,i=t.canBegin,a=t.duration,o=t.easing,u=t.begin,l=t.onAnimationEnd,c=t.onAnimationStart,s=t.children,f=hh(),d=n==="auto"?!Nn.isSsr&&!f:n,v=jA(t.animationController),p=h.useState(d?us:io),m=zA(p,2),y=m[0],g=m[1];return h.useEffect(()=>{d||g(io)},[d]),h.useEffect(()=>{var w=CA(o);if(!d||!i||w==null)return Fr;var x=new RA,A=new LA({animationId:r,easing:w,animationDuration:a,animationBegin:u,onAnimationStart:c,onAnimationEnd:l,from:us,to:io});return v(x,A,g)},[v,r,d,i,a,o,u,c,l]),s(Number(y))}function wh(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",r=h.useRef(yn(t)),n=h.useRef(e);return n.current!==e&&(r.current=yn(t),n.current=e),r.current}var HA=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),YA=(e,t,r)=>e.map(n=>"".concat(HA(n)," ").concat(t,"ms ").concat(r)).join(","),GA=["radius"],VA=["radius"],ls,cs,ss,fs,ds,vs,hs,ps,ms,ys;function gs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function bs(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{var a=Ut(r),o=Ut(n),u=Math.min(Math.abs(a)/2,Math.abs(o)/2),l=o>=0?1:-1,c=a>=0?1:-1,s=o>=0&&a>=0||o<0&&a<0?1:0,f;if(u>0&&Array.isArray(i)){for(var d=[0,0,0,0],v=0,p=4;vu?u:y}f=we(ls||(ls=lt(["M",",",""])),e,t+l*d[0]),d[0]>0&&(f+=we(cs||(cs=lt(["A ",",",",0,0,",",",",",""])),d[0],d[0],s,e+c*d[0],t)),f+=we(ss||(ss=lt(["L ",",",""])),e+r-c*d[1],t),d[1]>0&&(f+=we(fs||(fs=lt(["A ",",",",0,0,",`, - `,",",""])),d[1],d[1],s,e+r,t+l*d[1])),f+=we(ds||(ds=lt(["L ",",",""])),e+r,t+n-l*d[2]),d[2]>0&&(f+=we(vs||(vs=lt(["A ",",",",0,0,",`, - `,",",""])),d[2],d[2],s,e+r-c*d[2],t+n)),f+=we(hs||(hs=lt(["L ",",",""])),e+c*d[3],t+n),d[3]>0&&(f+=we(ps||(ps=lt(["A ",",",",0,0,",`, - `,",",""])),d[3],d[3],s,e,t+n-l*d[3])),f+="Z"}else if(u>0&&i===+i&&i>0){var g=Math.min(u,i);f=we(ms||(ms=lt(["M ",",",` - A `,",",",0,0,",",",",",` - L `,",",` - A `,",",",0,0,",",",",",` - L `,",",` - A `,",",",0,0,",",",",",` - L `,",",` - A `,",",",0,0,",",",","," Z"])),e,t+l*g,g,g,s,e+c*g,t,e+r-c*g,t,g,g,s,e+r,t+l*g,e+r,t+n-l*g,g,g,s,e+r-c*g,t+n,e+c*g,t+n,g,g,s,e,t+n-l*g)}else f=we(ys||(ys=lt(["M ",","," h "," v "," h "," Z"])),e,t,r,n,-r);return f},Os={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},i1=e=>{var t=Ze(e,Os),r=h.useRef(null),n=h.useState(-1),i=JA(n,2),a=i[0],o=i[1];h.useEffect(()=>{if(r.current&&r.current.getTotalLength)try{var B=r.current.getTotalLength();B&&o(B)}catch{}},[]);var u=t.x,l=t.y,c=t.width,s=t.height,f=t.radius,d=t.className,v=t.animationEasing,p=t.animationDuration,m=t.animationBegin,y=t.isAnimationActive,g=t.isUpdateAnimationActive,w=h.useRef(c),x=h.useRef(s),A=h.useRef(u),O=h.useRef(l),b=h.useMemo(()=>({x:u,y:l,width:c,height:s,radius:f}),[u,l,c,s,f]),S=wh(b,"rectangle-");if(u!==+u||l!==+l||c!==+c||s!==+s||c===0||s===0)return null;var _=ee("recharts-rectangle",d);if(!g){var I=Ve(t);I.radius;var C=ws(I,GA);return h.createElement("path",Di({},C,{x:Ut(u),y:Ut(l),width:Ut(c),height:Ut(s),radius:typeof f=="number"?f:void 0,className:_,d:As(u,l,c,s,f)}))}var j=w.current,E=x.current,R=A.current,$=O.current,V="0px ".concat(a===-1?1:a,"px"),H="".concat(a,"px ").concat(a,"px"),Y=YA(["strokeDasharray"],p,typeof v=="string"?v:Os.animationEasing);return h.createElement(bh,{animationId:S,key:S,canBegin:a>0,duration:p,easing:v,isActive:g,begin:m},B=>{var q=Ot(j,c,B),W=Ot(E,s,B),Se=Ot(R,u,B),ge=Ot($,l,B);r.current&&(w.current=q,x.current=W,A.current=Se,O.current=ge);var ae;y?B>0?ae={transition:Y,strokeDasharray:H}:ae={strokeDasharray:V}:ae={strokeDasharray:H};var Ne=Ve(t);Ne.radius;var Le=ws(Ne,VA);return h.createElement("path",Di({},Le,{radius:typeof f=="number"?f:void 0,className:_,d:As(Se,ge,q,W,f),ref:r,style:bs(bs({},ae),t.style)}))})};function Ps(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ss(e){for(var t=1;te*180/Math.PI,Ae=(e,t,r,n)=>({x:e+Math.cos(-$i*n)*r,y:t+Math.sin(-$i*n)*r}),c1=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},s1=(e,t)=>{var r=e.x,n=e.y,i=t.x,a=t.y;return Math.sqrt((r-i)**2+(n-a)**2)},f1=(e,t)=>{var r=e.x,n=e.y,i=t.cx,a=t.cy,o=s1({x:r,y:n},{x:i,y:a});if(o<=0)return{radius:o,angle:0};var u=(r-i)/o,l=Math.acos(u);return n>a&&(l=2*Math.PI-l),{radius:o,angle:l1(l),angleInRadian:l}},d1=e=>{var t=e.startAngle,r=e.endAngle,n=Math.floor(t/360),i=Math.floor(r/360),a=Math.min(n,i);return{startAngle:t-a*360,endAngle:r-a*360}},v1=(e,t)=>{var r=t.startAngle,n=t.endAngle,i=Math.floor(r/360),a=Math.floor(n/360),o=Math.min(i,a);return e+o*360},h1=(e,t)=>{var r=e.relativeX,n=e.relativeY,i=f1({x:r,y:n},t),a=i.radius,o=i.angle,u=t.innerRadius,l=t.outerRadius;if(al||a===0)return null;var c=d1(t),s=c.startAngle,f=c.endAngle,d=o,v;if(s<=f){for(;d>f;)d-=360;for(;d=s&&d<=f}else{for(;d>s;)d-=360;for(;d=f&&d<=s}return v?Ss(Ss({},t),{},{radius:a,angle:v1(d,t)}):null};function xh(e){var t=e.cx,r=e.cy,n=e.radius,i=e.startAngle,a=e.endAngle,o=Ae(t,r,n,i),u=Ae(t,r,n,a);return{points:[o,u],cx:t,cy:r,radius:n,startAngle:i,endAngle:a}}var Es,_s,Is,Cs,ks,js,Ts;function Zo(){return Zo=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var r=He(t-e),n=Math.min(Math.abs(t-e),359.999);return r*n},ei=e=>{var t=e.cx,r=e.cy,n=e.radius,i=e.angle,a=e.sign,o=e.isExternal,u=e.cornerRadius,l=e.cornerIsExternal,c=u*(o?1:-1)+n,s=Math.asin(u/c)/$i,f=l?i:i+a*s,d=Ae(t,r,c,f),v=Ae(t,r,n,f),p=l?i-a*s:i,m=Ae(t,r,c*Math.cos(s*$i),p);return{center:d,circleTangency:v,lineTangency:m,theta:s}},Ah=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,i=e.outerRadius,a=e.startAngle,o=e.endAngle,u=p1(a,o),l=a+u,c=Ae(t,r,i,a),s=Ae(t,r,i,l),f=we(Es||(Es=ir(["M ",",",` - A `,",",`,0, - `,",",`, - `,",",` - `])),c.x,c.y,i,i,+(Math.abs(u)>180),+(a>l),s.x,s.y);if(n>0){var d=Ae(t,r,n,a),v=Ae(t,r,n,l);f+=we(_s||(_s=ir(["L ",",",` - A `,",",`,0, - `,",",`, - `,","," Z"])),v.x,v.y,n,n,+(Math.abs(u)>180),+(a<=l),d.x,d.y)}else f+=we(Is||(Is=ir(["L ",","," Z"])),t,r);return f},m1=e=>{var t=e.cx,r=e.cy,n=e.innerRadius,i=e.outerRadius,a=e.cornerRadius,o=e.forceCornerRadius,u=e.cornerIsExternal,l=e.startAngle,c=e.endAngle,s=He(c-l),f=ei({cx:t,cy:r,radius:i,angle:l,sign:s,cornerRadius:a,cornerIsExternal:u}),d=f.circleTangency,v=f.lineTangency,p=f.theta,m=ei({cx:t,cy:r,radius:i,angle:c,sign:-s,cornerRadius:a,cornerIsExternal:u}),y=m.circleTangency,g=m.lineTangency,w=m.theta,x=u?Math.abs(l-c):Math.abs(l-c)-p-w;if(x<0)return o?we(Cs||(Cs=ir(["M ",",",` - a`,",",",0,0,1,",`,0 - a`,",",",0,0,1,",`,0 - `])),v.x,v.y,a,a,a*2,a,a,-a*2):Ah({cx:t,cy:r,innerRadius:n,outerRadius:i,startAngle:l,endAngle:c});var A=we(ks||(ks=ir(["M ",",",` - A`,",",",0,0,",",",",",` - A`,",",",0,",",",",",",",` - A`,",",",0,0,",",",",",` - `])),v.x,v.y,a,a,+(s<0),d.x,d.y,i,i,+(x>180),+(s<0),y.x,y.y,a,a,+(s<0),g.x,g.y);if(n>0){var O=ei({cx:t,cy:r,radius:n,angle:l,sign:s,isExternal:!0,cornerRadius:a,cornerIsExternal:u}),b=O.circleTangency,S=O.lineTangency,_=O.theta,I=ei({cx:t,cy:r,radius:n,angle:c,sign:-s,isExternal:!0,cornerRadius:a,cornerIsExternal:u}),C=I.circleTangency,j=I.lineTangency,E=I.theta,R=u?Math.abs(l-c):Math.abs(l-c)-_-E;if(R<0&&a===0)return"".concat(A,"L").concat(t,",").concat(r,"Z");A+=we(js||(js=ir(["L",",",` - A`,",",",0,0,",",",",",` - A`,",",",0,",",",",",",",` - A`,",",",0,0,",",",",","Z"])),j.x,j.y,a,a,+(s<0),C.x,C.y,n,n,+(R>180),+(s>0),b.x,b.y,a,a,+(s<0),S.x,S.y)}else A+=we(Ts||(Ts=ir(["L",",","Z"])),t,r);return A},y1={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},g1=e=>{var t=Ze(e,y1),r=t.cx,n=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.cornerRadius,u=t.forceCornerRadius,l=t.cornerIsExternal,c=t.startAngle,s=t.endAngle,f=t.className;if(a0&&Math.abs(c-s)<360?m=m1({cx:r,cy:n,innerRadius:i,outerRadius:a,cornerRadius:Math.min(p,v/2),forceCornerRadius:u,cornerIsExternal:l,startAngle:c,endAngle:s}):m=Ah({cx:r,cy:n,innerRadius:i,outerRadius:a,startAngle:c,endAngle:s}),h.createElement("path",Zo({},Ve(t),{className:d,d:m}))};function b1(e,t,r){if(e==="horizontal")return[{x:t.x,y:r.top},{x:t.x,y:r.top+r.height}];if(e==="vertical")return[{x:r.left,y:t.y},{x:r.left+r.width,y:t.y}];if(nv(t)){if(e==="centric"){var n=t.cx,i=t.cy,a=t.innerRadius,o=t.outerRadius,u=t.angle,l=Ae(n,i,a,u),c=Ae(n,i,o,u);return[{x:l.x,y:l.y},{x:c.x,y:c.y}]}return xh(t)}}function w1(e){return yv(e)?NaN:Number(e)}function ao(e){return e?(e=w1(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function Oh(e,t,r){r&&typeof r!="number"&&jo(e,t,r)&&(t=r=void 0),e=ao(e),t===void 0?(t=e,e=0):t=ao(t),r=r===void 0?ee.chartData,Du=P([ut],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),_a=(e,t,r,n)=>n?Du(e):ut(e),x1=(e,t,r)=>r?Du(e):ut(e),A1=P([_a],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});P([Du],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});var O1=P([ut],e=>{var t=e.chartData,r=e.dataStartIndex,n=e.dataEndIndex;return t!=null?t.slice(r,n+1):[]});function $u(e,t){return _1(e)||E1(e,t)||S1(e,t)||P1()}function P1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function S1(e,t){if(e){if(typeof e=="string")return Ms(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ms(e,t):void 0}}function Ms(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.e^a.s<0?1:-1;for(n=a.d.length,i=e.d.length,t=0,r=ne.d[t]^a.s<0?1:-1;return n===i?0:n>i^a.s<0?1:-1};M.decimalPlaces=M.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*J;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};M.dividedBy=M.div=function(e){return Et(this,new this.constructor(e))};M.dividedToIntegerBy=M.idiv=function(e){var t=this,r=t.constructor;return Z(Et(t,new r(e),0,1),r.precision)};M.equals=M.eq=function(e){return!this.cmp(e)};M.exponent=function(){return ue(this)};M.greaterThan=M.gt=function(e){return this.cmp(e)>0};M.greaterThanOrEqualTo=M.gte=function(e){return this.cmp(e)>=0};M.isInteger=M.isint=function(){return this.e>this.d.length-2};M.isNegative=M.isneg=function(){return this.s<0};M.isPositive=M.ispos=function(){return this.s>0};M.isZero=function(){return this.s===0};M.lessThan=M.lt=function(e){return this.cmp(e)<0};M.lessThanOrEqualTo=M.lte=function(e){return this.cmp(e)<1};M.logarithm=M.log=function(e){var t,r=this,n=r.constructor,i=n.precision,a=i+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(ze))throw Error(Xe+"NaN");if(r.s<1)throw Error(Xe+(r.s?"NaN":"-Infinity"));return r.eq(ze)?new n(0):(te=!1,t=Et(Pn(r,a),Pn(e,a),a),te=!0,Z(t,i))};M.minus=M.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Ih(t,e):Eh(t,(e.s=-e.s,e))};M.modulo=M.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(Xe+"NaN");return r.s?(te=!1,t=Et(r,e,0,1).times(e),te=!0,r.minus(t)):Z(new n(r),i)};M.naturalExponential=M.exp=function(){return _h(this)};M.naturalLogarithm=M.ln=function(){return Pn(this)};M.negated=M.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};M.plus=M.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Eh(t,e):Ih(t,(e.s=-e.s,e))};M.precision=M.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(lr+e);if(t=ue(i)+1,n=i.d.length-1,r=n*J+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};M.squareRoot=M.sqrt=function(){var e,t,r,n,i,a,o,u=this,l=u.constructor;if(u.s<1){if(!u.s)return new l(0);throw Error(Xe+"NaN")}for(e=ue(u),te=!1,i=Math.sqrt(+u),i==0||i==1/0?(t=dt(u.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=Kr((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new l(t)):n=new l(i.toString()),r=l.precision,i=o=r+3;;)if(a=n,n=a.plus(Et(u,a,o+2)).times(.5),dt(a.d).slice(0,o)===(t=dt(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),i==o&&t=="4999"){if(Z(a,r+1,0),a.times(a).eq(u)){n=a;break}}else if(t!="9999")break;o+=4}return te=!0,Z(n,r)};M.times=M.mul=function(e){var t,r,n,i,a,o,u,l,c,s=this,f=s.constructor,d=s.d,v=(e=new f(e)).d;if(!s.s||!e.s)return new f(0);for(e.s*=s.s,r=s.e+e.e,l=d.length,c=v.length,l=0;){for(t=0,i=l+n;i>n;)u=a[i]+v[n]*d[i-n-1]+t,a[i--]=u%ve|0,t=u/ve|0;a[i]=(a[i]+t)%ve|0}for(;!a[--o];)a.pop();return t?++r:a.shift(),e.d=a,e.e=r,te?Z(e,f.precision):e};M.toDecimalPlaces=M.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(yt(e,0,Ur),t===void 0?t=n.rounding:yt(t,0,8),Z(r,e+ue(r)+1,t))};M.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=hr(n,!0):(yt(e,0,Ur),t===void 0?t=i.rounding:yt(t,0,8),n=Z(new i(n),e+1,t),r=hr(n,!0,e+1)),r};M.toFixed=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?hr(i):(yt(e,0,Ur),t===void 0?t=a.rounding:yt(t,0,8),n=Z(new a(i),e+ue(i)+1,t),r=hr(n.abs(),!1,e+ue(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};M.toInteger=M.toint=function(){var e=this,t=e.constructor;return Z(new t(e),ue(e)+1,t.rounding)};M.toNumber=function(){return+this};M.toPower=M.pow=function(e){var t,r,n,i,a,o,u=this,l=u.constructor,c=12,s=+(e=new l(e));if(!e.s)return new l(ze);if(u=new l(u),!u.s){if(e.s<1)throw Error(Xe+"Infinity");return u}if(u.eq(ze))return u;if(n=l.precision,e.eq(ze))return Z(u,n);if(t=e.e,r=e.d.length-1,o=t>=r,a=u.s,o){if((r=s<0?-s:s)<=Sh){for(i=new l(ze),t=Math.ceil(n/J+4),te=!1;r%2&&(i=i.times(u),Ns(i.d,t)),r=Kr(r/2),r!==0;)u=u.times(u),Ns(u.d,t);return te=!0,e.s<0?new l(ze).div(i):Z(i,n)}}else if(a<0)throw Error(Xe+"NaN");return a=a<0&&e.d[Math.max(t,r)]&1?-1:1,u.s=1,te=!1,i=e.times(Pn(u,n+c)),te=!0,i=_h(i),i.s=a,i};M.toPrecision=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?(r=ue(i),n=hr(i,r<=a.toExpNeg||r>=a.toExpPos)):(yt(e,1,Ur),t===void 0?t=a.rounding:yt(t,0,8),i=Z(new a(i),e,t),r=ue(i),n=hr(i,e<=r||r<=a.toExpNeg,e)),n};M.toSignificantDigits=M.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(yt(e,1,Ur),t===void 0?t=n.rounding:yt(t,0,8)),Z(new n(r),e,t)};M.toString=M.valueOf=M.val=M.toJSON=M[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=ue(e),r=e.constructor;return hr(e,t<=r.toExpNeg||t>=r.toExpPos)};function Eh(e,t){var r,n,i,a,o,u,l,c,s=e.constructor,f=s.precision;if(!e.s||!t.s)return t.s||(t=new s(e)),te?Z(t,f):t;if(l=e.d,c=t.d,o=e.e,i=t.e,l=l.slice(),a=o-i,a){for(a<0?(n=l,a=-a,u=c.length):(n=c,i=o,u=l.length),o=Math.ceil(f/J),u=o>u?o+1:u+1,a>u&&(a=u,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for(u=l.length,a=c.length,u-a<0&&(a=u,n=c,c=l,l=n),r=0;a;)r=(l[--a]=l[a]+c[a]+r)/ve|0,l[a]%=ve;for(r&&(l.unshift(r),++i),u=l.length;l[--u]==0;)l.pop();return t.d=l,t.e=i,te?Z(t,f):t}function yt(e,t,r){if(e!==~~e||er)throw Error(lr+e)}function dt(e){var t,r,n,i=e.length-1,a="",o=e[0];if(i>0){for(a+=o,t=1;to?1:-1;else for(u=l=0;ui[u]?1:-1;break}return l}function r(n,i,a){for(var o=0;a--;)n[a]-=o,o=n[a]1;)n.shift()}return function(n,i,a,o){var u,l,c,s,f,d,v,p,m,y,g,w,x,A,O,b,S,_,I=n.constructor,C=n.s==i.s?1:-1,j=n.d,E=i.d;if(!n.s)return new I(n);if(!i.s)throw Error(Xe+"Division by zero");for(l=n.e-i.e,S=E.length,O=j.length,v=new I(C),p=v.d=[],c=0;E[c]==(j[c]||0);)++c;if(E[c]>(j[c]||0)&&--l,a==null?w=a=I.precision:o?w=a+(ue(n)-ue(i))+1:w=a,w<0)return new I(0);if(w=w/J+2|0,c=0,S==1)for(s=0,E=E[0],w++;(c1&&(E=e(E,s),j=e(j,s),S=E.length,O=j.length),A=S,m=j.slice(0,S),y=m.length;y=ve/2&&++b;do s=0,u=t(E,m,S,y),u<0?(g=m[0],S!=y&&(g=g*ve+(m[1]||0)),s=g/b|0,s>1?(s>=ve&&(s=ve-1),f=e(E,s),d=f.length,y=m.length,u=t(f,m,d,y),u==1&&(s--,r(f,S16)throw Error(Nu+ue(e));if(!e.s)return new s(ze);for(te=!1,u=f,o=new s(.03125);e.abs().gte(.1);)e=e.times(o),c+=5;for(n=Math.log(rr(2,c))/Math.LN10*2+5|0,u+=n,r=i=a=new s(ze),s.precision=u;;){if(i=Z(i.times(e),u),r=r.times(++l),o=a.plus(Et(i,r,u)),dt(o.d).slice(0,u)===dt(a.d).slice(0,u)){for(;c--;)a=Z(a.times(a),u);return s.precision=f,t==null?(te=!0,Z(a,f)):a}a=o}}function ue(e){for(var t=e.e*J,r=e.d[0];r>=10;r/=10)t++;return t}function oo(e,t,r){if(t>e.LN10.sd())throw te=!0,r&&(e.precision=r),Error(Xe+"LN10 precision limit exceeded");return Z(new e(e.LN10),t)}function Bt(e){for(var t="";e--;)t+="0";return t}function Pn(e,t){var r,n,i,a,o,u,l,c,s,f=1,d=10,v=e,p=v.d,m=v.constructor,y=m.precision;if(v.s<1)throw Error(Xe+(v.s?"NaN":"-Infinity"));if(v.eq(ze))return new m(0);if(t==null?(te=!1,c=y):c=t,v.eq(10))return t==null&&(te=!0),oo(m,c);if(c+=d,m.precision=c,r=dt(p),n=r.charAt(0),a=ue(v),Math.abs(a)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)v=v.times(e),r=dt(v.d),n=r.charAt(0),f++;a=ue(v),n>1?(v=new m("0."+r),a++):v=new m(n+"."+r.slice(1))}else return l=oo(m,c+2,y).times(a+""),v=Pn(new m(n+"."+r.slice(1)),c-d).plus(l),m.precision=y,t==null?(te=!0,Z(v,y)):v;for(u=o=v=Et(v.minus(ze),v.plus(ze),c),s=Z(v.times(v),c),i=3;;){if(o=Z(o.times(s),c),l=u.plus(Et(o,new m(i),c)),dt(l.d).slice(0,c)===dt(u.d).slice(0,c))return u=u.times(2),a!==0&&(u=u.plus(oo(m,c+2,y).times(a+""))),u=Et(u,new m(f),c),m.precision=y,t==null?(te=!0,Z(u,y)):u;u=l,i+=2}}function $s(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=Kr(r/J),e.d=[],n=(r+1)%J,r<0&&(n+=J),nNi||e.e<-Ni))throw Error(Nu+r)}else e.s=0,e.e=0,e.d=[0];return e}function Z(e,t,r){var n,i,a,o,u,l,c,s,f=e.d;for(o=1,a=f[0];a>=10;a/=10)o++;if(n=t-o,n<0)n+=J,i=t,c=f[s=0];else{if(s=Math.ceil((n+1)/J),a=f.length,s>=a)return e;for(c=a=f[s],o=1;a>=10;a/=10)o++;n%=J,i=n-J+o}if(r!==void 0&&(a=rr(10,o-i-1),u=c/a%10|0,l=t<0||f[s+1]!==void 0||c%a,l=r<4?(u||l)&&(r==0||r==(e.s<0?3:2)):u>5||u==5&&(r==4||l||r==6&&(n>0?i>0?c/rr(10,o-i):0:f[s-1])%10&1||r==(e.s<0?8:7))),t<1||!f[0])return l?(a=ue(e),f.length=1,t=t-a-1,f[0]=rr(10,(J-t%J)%J),e.e=Kr(-t/J)||0):(f.length=1,f[0]=e.e=e.s=0),e;if(n==0?(f.length=s,a=1,s--):(f.length=s+1,a=rr(10,J-n),f[s]=i>0?(c/rr(10,o-i)%rr(10,i)|0)*a:0),l)for(;;)if(s==0){(f[0]+=a)==ve&&(f[0]=1,++e.e);break}else{if(f[s]+=a,f[s]!=ve)break;f[s--]=0,a=1}for(n=f.length;f[--n]===0;)f.pop();if(te&&(e.e>Ni||e.e<-Ni))throw Error(Nu+ue(e));return e}function Ih(e,t){var r,n,i,a,o,u,l,c,s,f,d=e.constructor,v=d.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new d(e),te?Z(t,v):t;if(l=e.d,f=t.d,n=t.e,c=e.e,l=l.slice(),o=c-n,o){for(s=o<0,s?(r=l,o=-o,u=f.length):(r=f,n=c,u=l.length),i=Math.max(Math.ceil(v/J),u)+2,o>i&&(o=i,r.length=1),r.reverse(),i=o;i--;)r.push(0);r.reverse()}else{for(i=l.length,u=f.length,s=i0;--i)l[u++]=0;for(i=f.length;i>o;){if(l[--i]0?a=a.charAt(0)+"."+a.slice(1)+Bt(n):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+Bt(-i-1)+a,r&&(n=r-o)>0&&(a+=Bt(n))):i>=o?(a+=Bt(i+1-o),r&&(n=r-i-1)>0&&(a=a+"."+Bt(n))):((n=i+1)0&&(i+1===o&&(a+="."),a+=Bt(n))),e.s<0?"-"+a:a}function Ns(e,t){if(e.length>t)return e.length=t,!0}function Ch(e){var t,r,n;function i(a){var o=this;if(!(o instanceof i))return new i(a);if(o.constructor=i,a instanceof i){o.s=a.s,o.e=a.e,o.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(lr+a);if(a>0)o.s=1;else if(a<0)a=-a,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(a===~~a&&a<1e7){o.e=0,o.d=[a];return}return $s(o,a.toString())}else if(typeof a!="string")throw Error(lr+a);if(a.charCodeAt(0)===45?(a=a.slice(1),o.s=-1):o.s=1,k1.test(a))$s(o,a);else throw Error(lr+a)}if(i.prototype=M,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=Ch,i.config=i.set=j1,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(lr+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(lr+r+": "+n);return this}var Lu=Ch(C1);ze=new Lu(1);const K=Lu;function kh(e){var t;return e===0?t=1:t=Math.floor(new K(e).abs().log(10).toNumber())+1,t}function jh(e,t,r){for(var n=new K(e),i=0,a=[];n.lt(t)&&i<1e5;)a.push(n.toNumber()),n=n.add(r),i++;return a}function Sn(e,t){return $1(e)||D1(e,t)||M1(e,t)||T1()}function T1(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function M1(e,t){if(e){if(typeof e=="string")return Ls(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ls(e,t):void 0}}function Ls(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=Sn(e,2),r=t[0],n=t[1],i=r,a=n;return r>n&&(i=n,a=r),[i,a]},Ru=(e,t,r)=>{if(e.lte(0))return new K(0);var n=kh(e.toNumber()),i=new K(10).pow(n),a=e.div(i),o=n!==1?.05:.1,u=new K(Math.ceil(a.div(o).toNumber())).add(r).mul(o),l=u.mul(i);return t?new K(l.toNumber()):new K(Math.ceil(l.toNumber()))},Mh=(e,t,r)=>{var n;if(e.lte(0))return new K(0);var i=[1,2,2.5,5],a=e.toNumber(),o=Math.floor(new K(a).abs().log(10).toNumber()),u=new K(10).pow(o),l=e.div(u).toNumber(),c=i.findIndex(v=>v>=l-1e-10);if(c===-1&&(u=u.mul(10),c=0),c+=r,c>=i.length){var s=Math.floor(c/i.length);c%=i.length,u=u.mul(new K(10).pow(s))}var f=(n=i[c])!==null&&n!==void 0?n:1,d=new K(f).mul(u);return t?d:new K(Math.ceil(d.toNumber()))},N1=(e,t,r)=>{var n=new K(1),i=new K(e);if(!i.isint()&&r){var a=Math.abs(e);a<1?(n=new K(10).pow(kh(e)-1),i=new K(Math.floor(i.div(n).toNumber())).mul(n)):a>1&&(i=new K(Math.floor(e)))}else e===0?i=new K(Math.floor((t-1)/2)):r||(i=new K(Math.floor(e)));for(var o=Math.floor((t-1)/2),u=[],l=0;l4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:Ru;if(!Number.isFinite((r-t)/(n-1)))return{step:new K(0),tickMin:new K(0),tickMax:new K(0)};var u=o(new K(r).sub(t).div(n-1),i,a),l;t<=0&&r>=0?l=new K(0):(l=new K(t).add(r).div(2),l=l.sub(new K(l).mod(u)));var c=Math.ceil(l.sub(t).div(u).toNumber()),s=Math.ceil(new K(r).sub(l).div(u).toNumber()),f=c+s+1;return f>n?Dh(t,r,n,i,a+1,o):(f0?s+(n-f):s,c=r>0?c:c+(n-f)),{step:u,tickMin:l.sub(new K(c).mul(u)),tickMax:l.add(new K(s).mul(u))})},Rs=function(t){var r=Sn(t,2),n=r[0],i=r[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=Math.max(a,2),c=Th([n,i]),s=Sn(c,2),f=s[0],d=s[1];if(f===-1/0||d===1/0){var v=d===1/0?[f,...Array(a-1).fill(1/0)]:[...Array(a-1).fill(-1/0),d];return n>i?v.reverse():v}if(f===d)return N1(f,a,o);var p=u==="snap125"?Mh:Ru,m=Dh(f,d,l,o,0,p),y=m.step,g=m.tickMin,w=m.tickMax,x=jh(g,w.add(new K(.1).mul(y)),y);return n>i?x.reverse():x},zs=function(t,r){var n=Sn(t,2),i=n[0],a=n[1],o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",l=Th([i,a]),c=Sn(l,2),s=c[0],f=c[1];if(s===-1/0||f===1/0)return[i,a];if(s===f)return[s];var d=u==="snap125"?Mh:Ru,v=Math.max(r,2),p=d(new K(f).sub(s).div(v-1),o,0),m=[...jh(new K(s),new K(f),p),f];return o===!1&&(m=m.map(y=>Math.round(y))),i>a?m.reverse():m},L1=e=>e.rootProps.barCategoryGap,Ia=e=>e.rootProps.stackOffset,$h=e=>e.rootProps.reverseStackOrder,zu=e=>e.options.chartName,Bu=e=>e.rootProps.syncId,Nh=e=>e.rootProps.syncMethod,Fu=e=>e.options.eventEmitter,R1=e=>e.rootProps.baseValue,ke={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},Xt={allowDecimals:!1,allowDataOverflow:!1,angleAxisId:0,reversed:!1,scale:"auto",tick:!0,type:"auto"},ct={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,includeHidden:!1,radiusAxisId:0,reversed:!1,scale:"auto",tick:!0,tickCount:5,type:"auto"},Ca=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function ka(e,t,r){if(r!=="auto")return r;if(e!=null)return bt(e,t)?"category":"number"}function Bs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Li(e){for(var t=1;t{if(t!=null)return e.polarAxis.angleAxis[t]},Wu=P([W1,oh],(e,t)=>{var r;if(e!=null)return e;var n=(r=ka(t,"angleAxis",Fs.type))!==null&&r!==void 0?r:"category";return Li(Li({},Fs),{},{type:n})}),U1=(e,t)=>e.polarAxis.radiusAxis[t],Uu=P([U1,oh],(e,t)=>{var r;if(e!=null)return e;var n=(r=ka(t,"radiusAxis",Ws.type))!==null&&r!==void 0?r:"category";return Li(Li({},Ws),{},{type:n})}),ja=e=>e.polarOptions,Ku=P([Mt,Dt,Pe],c1),Lh=P([ja,Ku],(e,t)=>{if(e!=null)return Yt(e.innerRadius,t,0)}),Rh=P([ja,Ku],(e,t)=>{if(e!=null)return Yt(e.outerRadius,t,t*.8)}),K1=e=>{if(e==null)return[0,0];var t=e.startAngle,r=e.endAngle;return[t,r]},zh=P([ja],K1);P([Wu,zh],Ca);var Bh=P([Ku,Lh,Rh],(e,t,r)=>{if(!(e==null||t==null||r==null))return[t,r]});P([Uu,Bh],Ca);var Fh=P([re,ja,Lh,Rh,Mt,Dt],(e,t,r,n,i,a)=>{if(!(e!=="centric"&&e!=="radial"||t==null||r==null||n==null)){var o=t.cx,u=t.cy,l=t.startAngle,c=t.endAngle;return{cx:Yt(o,i,i/2),cy:Yt(u,a,a/2),innerRadius:r,outerRadius:n,startAngle:l,endAngle:c,clockWise:!1}}}),pe=(e,t)=>t,Ta=(e,t,r)=>r;function Hu(e){return e==null?void 0:e.id}function Wh(e,t,r){var n=t.chartData,i=n===void 0?[]:n,a=r.allowDuplicatedCategory,o=r.dataKey,u=new Map;return e.forEach(l=>{var c,s=(c=l.data)!==null&&c!==void 0?c:i;if(!(s==null||s.length===0)){var f=Hu(l);s.forEach((d,v)=>{var p=o==null||a?v:String(he(d,o,null)),m=he(d,l.dataKey,0),y;u.has(p)?y=u.get(p):y={},Object.assign(y,{[f]:m}),u.set(p,y)})}}),Array.from(u.values())}function Yu(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var Ma=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function Da(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function H1(e,t){if(e.length===t.length){for(var r=0;r{var t=re(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"},Hr=e=>e.tooltip.settings.axisId;function Gu(e){if(e!=null){var t=e.ticks,r=e.bandwidth,n=e.range(),i=[Math.min(...n),Math.max(...n)];return{domain:()=>e.domain(),range:(function(a){function o(){return a.apply(this,arguments)}return o.toString=function(){return a.toString()},o})(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(a){var o=i[0],u=i[1];return o<=u?a>=o&&a<=u:a>=u&&a<=o},bandwidth:r?()=>r.call(e):void 0,ticks:t?a=>t.call(e,a):void 0,map:(a,o)=>{var u=e(a);if(u!=null){if(e.bandwidth&&o!==null&&o!==void 0&&o.position){var l=e.bandwidth();switch(o.position){case"middle":u+=l/2;break;case"end":u+=l;break}}return u}}}}}var Y1=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!vt(t)){for(var r,n,i=0;in)&&(n=a))}return r!==void 0&&n!==void 0?[r,n]:void 0}return t}default:return t}};function Kt(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function G1(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function Vu(e){let t,r,n;e.length!==2?(t=Kt,r=(u,l)=>Kt(e(u),l),n=(u,l)=>e(u)-l):(t=e===Kt||e===G1?e:V1,r=e,n=e);function i(u,l,c=0,s=u.length){if(c>>1;r(u[f],l)<0?c=f+1:s=f}while(c>>1;r(u[f],l)<=0?c=f+1:s=f}while(cc&&n(u[f-1],l)>-n(u[f],l)?f-1:f}return{left:i,center:o,right:a}}function V1(){return 0}function Uh(e){return e===null?NaN:+e}function*q1(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const X1=Vu(Kt),Ln=X1.right;Vu(Uh).center;function Z1(e=Kt){if(e===Kt)return Kh;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function Kh(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const Q1=Math.sqrt(50),J1=Math.sqrt(10),eO=Math.sqrt(2);function Ri(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),o=a>=Q1?10:a>=J1?5:a>=eO?2:1;let u,l,c;return i<0?(c=Math.pow(10,-i)/o,u=Math.round(e*c),l=Math.round(t*c),u/ct&&--l,c=-c):(c=Math.pow(10,i)*o,u=Math.round(e/c),l=Math.round(t/c),u*ct&&--l),l0))return[];if(e===t)return[e];const n=t=i))return[];const u=a-i+1,l=new Array(u);if(n)if(o<0)for(let c=0;cr;){if(n-r>600){const l=n-r+1,c=t-r+1,s=Math.log(l),f=.5*Math.exp(2*s/3),d=.5*Math.sqrt(s*f*(l-f)/l)*(c-l/2<0?-1:1),v=Math.max(r,Math.floor(t-c*f/l+d)),p=Math.min(n,Math.floor(t+(l-c)*f/l+d));Hh(e,t,v,p,i)}const a=e[t];let o=r,u=n;for(an(e,r,t),i(e[n],a)>0&&an(e,r,n);o0;)--u}i(e[r],a)===0?an(e,r,u):(++u,an(e,u,n)),u<=t&&(r=u+1),t<=u&&(n=u-1)}return e}function an(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function tO(e,t,r){if(e=Float64Array.from(q1(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return Yl(e);if(t>=1)return Gl(e);var n,i=(n-1)*t,a=Math.floor(i),o=Gl(Hh(e,a).subarray(0,a+1)),u=Yl(e.subarray(a+1));return o+(u-o)*(i-a)}}function rO(e,t,r=Uh){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,a=Math.floor(i),o=+r(e[a],a,e),u=+r(e[a+1],a+1,e);return o+(u-o)*(i-a)}}function nO(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(i);++nt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function vO(e,t,r){var n=e[0],i=e[1],a=t[0],o=t[1];return i2?hO:vO,l=c=null,f}function f(d){return d==null||isNaN(d=+d)?a:(l||(l=u(e.map(n),t,r)))(n(o(d)))}return f.invert=function(d){return o(i((c||(c=u(t,e.map(n),Ao)))(d)))},f.domain=function(d){return arguments.length?(e=Array.from(d,zi),s()):e.slice()},f.range=function(d){return arguments.length?(t=Array.from(d),s()):t.slice()},f.rangeRound=function(d){return t=Array.from(d),r=Xu,s()},f.clamp=function(d){return arguments.length?(o=d?!0:je,s()):o!==je},f.interpolate=function(d){return arguments.length?(r=d,s()):r},f.unknown=function(d){return arguments.length?(a=d,f):a},function(d,v){return n=d,i=v,s()}}function Zu(){return $a()(je,je)}function pO(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Bi(e,t){if(!isFinite(e)||e===0)return null;var r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function $r(e){return e=Bi(Math.abs(e)),e?e[1]:NaN}function mO(e,t){return function(r,n){for(var i=r.length,a=[],o=0,u=e[0],l=0;i>0&&u>0&&(l+u+1>n&&(u=Math.max(1,n-l)),a.push(r.substring(i-=u,i+u)),!((l+=u+1)>n));)u=e[o=(o+1)%e.length];return a.reverse().join(t)}}function yO(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var gO=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function En(e){if(!(t=gO.exec(e)))throw new Error("invalid format: "+e);var t;return new Qu({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}En.prototype=Qu.prototype;function Qu(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}Qu.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function bO(e){e:for(var t=e.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var Fi;function wO(e,t){var r=Bi(e,t);if(!r)return Fi=void 0,e.toPrecision(t);var n=r[0],i=r[1],a=i-(Fi=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=n.length;return a===o?n:a>o?n+new Array(a-o+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Bi(e,Math.max(0,t+a-1))[0]}function Ks(e,t){var r=Bi(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const Hs={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:pO,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Ks(e*100,t),r:Ks,s:wO,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Ys(e){return e}var Gs=Array.prototype.map,Vs=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function xO(e){var t=e.grouping===void 0||e.thousands===void 0?Ys:mO(Gs.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?Ys:yO(Gs.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",l=e.nan===void 0?"NaN":e.nan+"";function c(f,d){f=En(f);var v=f.fill,p=f.align,m=f.sign,y=f.symbol,g=f.zero,w=f.width,x=f.comma,A=f.precision,O=f.trim,b=f.type;b==="n"?(x=!0,b="g"):Hs[b]||(A===void 0&&(A=12),O=!0,b="g"),(g||v==="0"&&p==="=")&&(g=!0,v="0",p="=");var S=(d&&d.prefix!==void 0?d.prefix:"")+(y==="$"?r:y==="#"&&/[boxX]/.test(b)?"0"+b.toLowerCase():""),_=(y==="$"?n:/[%p]/.test(b)?o:"")+(d&&d.suffix!==void 0?d.suffix:""),I=Hs[b],C=/[defgprs%]/.test(b);A=A===void 0?6:/[gprs]/.test(b)?Math.max(1,Math.min(21,A)):Math.max(0,Math.min(20,A));function j(E){var R=S,$=_,V,H,Y;if(b==="c")$=I(E)+$,E="";else{E=+E;var B=E<0||1/E<0;if(E=isNaN(E)?l:I(Math.abs(E),A),O&&(E=bO(E)),B&&+E==0&&m!=="+"&&(B=!1),R=(B?m==="("?m:u:m==="-"||m==="("?"":m)+R,$=(b==="s"&&!isNaN(E)&&Fi!==void 0?Vs[8+Fi/3]:"")+$+(B&&m==="("?")":""),C){for(V=-1,H=E.length;++VY||Y>57){$=(Y===46?i+E.slice(V+1):E.slice(V))+$,E=E.slice(0,V);break}}}x&&!g&&(E=t(E,1/0));var q=R.length+E.length+$.length,W=q>1)+R+E+$+W.slice(q);break;default:E=W+R+E+$;break}return a(E)}return j.toString=function(){return f+""},j}function s(f,d){var v=Math.max(-8,Math.min(8,Math.floor($r(d)/3)))*3,p=Math.pow(10,-v),m=c((f=En(f),f.type="f",f),{suffix:Vs[8+v/3]});return function(y){return m(p*y)}}return{format:c,formatPrefix:s}}var ti,Ju,Gh;AO({thousands:",",grouping:[3],currency:["$",""]});function AO(e){return ti=xO(e),Ju=ti.format,Gh=ti.formatPrefix,ti}function OO(e){return Math.max(0,-$r(Math.abs(e)))}function PO(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor($r(t)/3)))*3-$r(Math.abs(e)))}function SO(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,$r(t)-$r(e))+1}function Vh(e,t,r,n){var i=eu(e,t,r),a;switch(n=En(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=PO(i,o))&&(n.precision=a),Gh(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=SO(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=OO(i))&&(n.precision=a-(n.type==="%")*2);break}}return Ju(n)}function Gt(e){var t=e.domain;return e.ticks=function(r){var n=t();return Qo(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return Vh(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,a=n.length-1,o=n[i],u=n[a],l,c,s=10;for(u0;){if(c=Jo(o,u,r),c===l)return n[i]=o,n[a]=u,t(n);if(c>0)o=Math.floor(o/c)*c,u=Math.ceil(u/c)*c;else if(c<0)o=Math.ceil(o*c)/c,u=Math.floor(u*c)/c;else break;l=c}return e},e}function qh(){var e=Zu();return e.copy=function(){return Rn(e,qh())},ot.apply(e,arguments),Gt(e)}function Xh(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,zi),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return Xh(e).unknown(t)},e=arguments.length?Array.from(e,zi):[0,1],Gt(r)}function Zh(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],a=e[n],o;return aMath.pow(e,t)}function kO(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function Zs(e){return(t,r)=>-e(-t,r)}function el(e){const t=e(qs,Xs),r=t.domain;let n=10,i,a;function o(){return i=kO(n),a=CO(n),r()[0]<0?(i=Zs(i),a=Zs(a),e(EO,_O)):e(qs,Xs),t}return t.base=function(u){return arguments.length?(n=+u,o()):n},t.domain=function(u){return arguments.length?(r(u),o()):r()},t.ticks=u=>{const l=r();let c=l[0],s=l[l.length-1];const f=s0){for(;d<=v;++d)for(p=1;ps)break;g.push(m)}}else for(;d<=v;++d)for(p=n-1;p>=1;--p)if(m=d>0?p/a(-d):p*a(d),!(ms)break;g.push(m)}g.length*2{if(u==null&&(u=10),l==null&&(l=n===10?"s":","),typeof l!="function"&&(!(n%1)&&(l=En(l)).precision==null&&(l.trim=!0),l=Ju(l)),u===1/0)return l;const c=Math.max(1,n*u/t.ticks().length);return s=>{let f=s/a(Math.round(i(s)));return f*nr(Zh(r(),{floor:u=>a(Math.floor(i(u))),ceil:u=>a(Math.ceil(i(u)))})),t}function Qh(){const e=el($a()).domain([1,10]);return e.copy=()=>Rn(e,Qh()).base(e.base()),ot.apply(e,arguments),e}function Qs(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function Js(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function tl(e){var t=1,r=e(Qs(t),Js(t));return r.constant=function(n){return arguments.length?e(Qs(t=+n),Js(t)):t},Gt(r)}function Jh(){var e=tl($a());return e.copy=function(){return Rn(e,Jh()).constant(e.constant())},ot.apply(e,arguments)}function ef(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function jO(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function TO(e){return e<0?-e*e:e*e}function rl(e){var t=e(je,je),r=1;function n(){return r===1?e(je,je):r===.5?e(jO,TO):e(ef(r),ef(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},Gt(t)}function nl(){var e=rl($a());return e.copy=function(){return Rn(e,nl()).exponent(e.exponent())},ot.apply(e,arguments),e}function MO(){return nl.apply(null,arguments).exponent(.5)}function tf(e){return Math.sign(e)*e*e}function DO(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function ep(){var e=Zu(),t=[0,1],r=!1,n;function i(a){var o=DO(e(a));return isNaN(o)?n:r?Math.round(o):o}return i.invert=function(a){return e.invert(tf(a))},i.domain=function(a){return arguments.length?(e.domain(a),i):e.domain()},i.range=function(a){return arguments.length?(e.range((t=Array.from(a,zi)).map(tf)),i):t.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(r=!!a,i):r},i.clamp=function(a){return arguments.length?(e.clamp(a),i):e.clamp()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return ep(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},ot.apply(i,arguments),Gt(i)}function tp(){var e=[],t=[],r=[],n;function i(){var o=0,u=Math.max(1,t.length);for(r=new Array(u-1);++o0?r[u-1]:e[0],u=r?[n[r-1],t]:[n[c-1],n[c]]},o.unknown=function(l){return arguments.length&&(a=l),o},o.thresholds=function(){return n.slice()},o.copy=function(){return rp().domain([e,t]).range(i).unknown(a)},ot.apply(Gt(o),arguments)}function np(){var e=[.5],t=[0,1],r,n=1;function i(a){return a!=null&&a<=a?t[Ln(e,a,0,n)]:r}return i.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return np().domain(e).range(t).unknown(r)},ot.apply(i,arguments)}const uo=new Date,lo=new Date;function fe(e,t,r,n){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{const o=i(a),u=i.ceil(a);return a-o(t(a=new Date(+a),o==null?1:Math.floor(o)),a),i.range=(a,o,u)=>{const l=[];if(a=i.ceil(a),u=u==null?1:Math.floor(u),!(a0))return l;let c;do l.push(c=new Date(+a)),t(a,u),e(a);while(cfe(o=>{if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},(o,u)=>{if(o>=o)if(u<0)for(;++u<=0;)for(;t(o,-1),!a(o););else for(;--u>=0;)for(;t(o,1),!a(o););}),r&&(i.count=(a,o)=>(uo.setTime(+a),lo.setTime(+o),e(uo),e(lo),Math.floor(r(uo,lo))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?o=>n(o)%a===0:o=>i.count(0,o)%a===0):i)),i}const Wi=fe(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Wi.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?fe(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Wi);Wi.range;const Pt=1e3,Ge=Pt*60,St=Ge*60,Ct=St*24,il=Ct*7,rf=Ct*30,co=Ct*365,ar=fe(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Pt)},(e,t)=>(t-e)/Pt,e=>e.getUTCSeconds());ar.range;const al=fe(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Pt)},(e,t)=>{e.setTime(+e+t*Ge)},(e,t)=>(t-e)/Ge,e=>e.getMinutes());al.range;const ol=fe(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ge)},(e,t)=>(t-e)/Ge,e=>e.getUTCMinutes());ol.range;const ul=fe(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Pt-e.getMinutes()*Ge)},(e,t)=>{e.setTime(+e+t*St)},(e,t)=>(t-e)/St,e=>e.getHours());ul.range;const ll=fe(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*St)},(e,t)=>(t-e)/St,e=>e.getUTCHours());ll.range;const zn=fe(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ge)/Ct,e=>e.getDate()-1);zn.range;const Na=fe(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Ct,e=>e.getUTCDate()-1);Na.range;const ip=fe(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Ct,e=>Math.floor(e/Ct));ip.range;function gr(e){return fe(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*Ge)/il)}const La=gr(0),Ui=gr(1),$O=gr(2),NO=gr(3),Nr=gr(4),LO=gr(5),RO=gr(6);La.range;Ui.range;$O.range;NO.range;Nr.range;LO.range;RO.range;function br(e){return fe(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/il)}const Ra=br(0),Ki=br(1),zO=br(2),BO=br(3),Lr=br(4),FO=br(5),WO=br(6);Ra.range;Ki.range;zO.range;BO.range;Lr.range;FO.range;WO.range;const cl=fe(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());cl.range;const sl=fe(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());sl.range;const kt=fe(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());kt.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:fe(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});kt.range;const jt=fe(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());jt.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:fe(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});jt.range;function ap(e,t,r,n,i,a){const o=[[ar,1,Pt],[ar,5,5*Pt],[ar,15,15*Pt],[ar,30,30*Pt],[a,1,Ge],[a,5,5*Ge],[a,15,15*Ge],[a,30,30*Ge],[i,1,St],[i,3,3*St],[i,6,6*St],[i,12,12*St],[n,1,Ct],[n,2,2*Ct],[r,1,il],[t,1,rf],[t,3,3*rf],[e,1,co]];function u(c,s,f){const d=sy).right(o,d);if(v===o.length)return e.every(eu(c/co,s/co,f));if(v===0)return Wi.every(Math.max(eu(c,s,f),1));const[p,m]=o[d/o[v-1][2]53)return null;"w"in k||(k.w=1),"Z"in k?(X=fo(on(k.y,0,1)),L=X.getUTCDay(),X=L>4||L===0?Ki.ceil(X):Ki(X),X=Na.offset(X,(k.V-1)*7),k.y=X.getUTCFullYear(),k.m=X.getUTCMonth(),k.d=X.getUTCDate()+(k.w+6)%7):(X=so(on(k.y,0,1)),L=X.getDay(),X=L>4||L===0?Ui.ceil(X):Ui(X),X=zn.offset(X,(k.V-1)*7),k.y=X.getFullYear(),k.m=X.getMonth(),k.d=X.getDate()+(k.w+6)%7)}else("W"in k||"U"in k)&&("w"in k||(k.w="u"in k?k.u%7:"W"in k?1:0),L="Z"in k?fo(on(k.y,0,1)).getUTCDay():so(on(k.y,0,1)).getDay(),k.m=0,k.d="W"in k?(k.w+6)%7+k.W*7-(L+5)%7:k.w+k.U*7-(L+6)%7);return"Z"in k?(k.H+=k.Z/100|0,k.M+=k.Z%100,fo(k)):so(k)}}function _(T,F,z,k){for(var Ee=0,X=F.length,L=z.length,Re,qt;Ee=L)return-1;if(Re=F.charCodeAt(Ee++),Re===37){if(Re=F.charAt(Ee++),qt=O[Re in nf?F.charAt(Ee++):Re],!qt||(k=qt(T,z,k))<0)return-1}else if(Re!=z.charCodeAt(k++))return-1}return k}function I(T,F,z){var k=c.exec(F.slice(z));return k?(T.p=s.get(k[0].toLowerCase()),z+k[0].length):-1}function C(T,F,z){var k=v.exec(F.slice(z));return k?(T.w=p.get(k[0].toLowerCase()),z+k[0].length):-1}function j(T,F,z){var k=f.exec(F.slice(z));return k?(T.w=d.get(k[0].toLowerCase()),z+k[0].length):-1}function E(T,F,z){var k=g.exec(F.slice(z));return k?(T.m=w.get(k[0].toLowerCase()),z+k[0].length):-1}function R(T,F,z){var k=m.exec(F.slice(z));return k?(T.m=y.get(k[0].toLowerCase()),z+k[0].length):-1}function $(T,F,z){return _(T,t,F,z)}function V(T,F,z){return _(T,r,F,z)}function H(T,F,z){return _(T,n,F,z)}function Y(T){return o[T.getDay()]}function B(T){return a[T.getDay()]}function q(T){return l[T.getMonth()]}function W(T){return u[T.getMonth()]}function Se(T){return i[+(T.getHours()>=12)]}function ge(T){return 1+~~(T.getMonth()/3)}function ae(T){return o[T.getUTCDay()]}function Ne(T){return a[T.getUTCDay()]}function Le(T){return l[T.getUTCMonth()]}function Je(T){return u[T.getUTCMonth()]}function et(T){return i[+(T.getUTCHours()>=12)]}function Jr(T){return 1+~~(T.getUTCMonth()/3)}return{format:function(T){var F=b(T+="",x);return F.toString=function(){return T},F},parse:function(T){var F=S(T+="",!1);return F.toString=function(){return T},F},utcFormat:function(T){var F=b(T+="",A);return F.toString=function(){return T},F},utcParse:function(T){var F=S(T+="",!0);return F.toString=function(){return T},F}}}var nf={"-":"",_:" ",0:"0"},ye=/^\s*\d+/,VO=/^%/,qO=/[\\^$*+?|[\]().{}]/g;function G(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",a=i.length;return n+(a[t.toLowerCase(),r]))}function ZO(e,t,r){var n=ye.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function QO(e,t,r){var n=ye.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function JO(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function eP(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function tP(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function af(e,t,r){var n=ye.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function of(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function rP(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function nP(e,t,r){var n=ye.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function iP(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function uf(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function aP(e,t,r){var n=ye.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function lf(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function oP(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function uP(e,t,r){var n=ye.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function lP(e,t,r){var n=ye.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function cP(e,t,r){var n=ye.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function sP(e,t,r){var n=VO.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function fP(e,t,r){var n=ye.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function dP(e,t,r){var n=ye.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function cf(e,t){return G(e.getDate(),t,2)}function vP(e,t){return G(e.getHours(),t,2)}function hP(e,t){return G(e.getHours()%12||12,t,2)}function pP(e,t){return G(1+zn.count(kt(e),e),t,3)}function op(e,t){return G(e.getMilliseconds(),t,3)}function mP(e,t){return op(e,t)+"000"}function yP(e,t){return G(e.getMonth()+1,t,2)}function gP(e,t){return G(e.getMinutes(),t,2)}function bP(e,t){return G(e.getSeconds(),t,2)}function wP(e){var t=e.getDay();return t===0?7:t}function xP(e,t){return G(La.count(kt(e)-1,e),t,2)}function up(e){var t=e.getDay();return t>=4||t===0?Nr(e):Nr.ceil(e)}function AP(e,t){return e=up(e),G(Nr.count(kt(e),e)+(kt(e).getDay()===4),t,2)}function OP(e){return e.getDay()}function PP(e,t){return G(Ui.count(kt(e)-1,e),t,2)}function SP(e,t){return G(e.getFullYear()%100,t,2)}function EP(e,t){return e=up(e),G(e.getFullYear()%100,t,2)}function _P(e,t){return G(e.getFullYear()%1e4,t,4)}function IP(e,t){var r=e.getDay();return e=r>=4||r===0?Nr(e):Nr.ceil(e),G(e.getFullYear()%1e4,t,4)}function CP(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+G(t/60|0,"0",2)+G(t%60,"0",2)}function sf(e,t){return G(e.getUTCDate(),t,2)}function kP(e,t){return G(e.getUTCHours(),t,2)}function jP(e,t){return G(e.getUTCHours()%12||12,t,2)}function TP(e,t){return G(1+Na.count(jt(e),e),t,3)}function lp(e,t){return G(e.getUTCMilliseconds(),t,3)}function MP(e,t){return lp(e,t)+"000"}function DP(e,t){return G(e.getUTCMonth()+1,t,2)}function $P(e,t){return G(e.getUTCMinutes(),t,2)}function NP(e,t){return G(e.getUTCSeconds(),t,2)}function LP(e){var t=e.getUTCDay();return t===0?7:t}function RP(e,t){return G(Ra.count(jt(e)-1,e),t,2)}function cp(e){var t=e.getUTCDay();return t>=4||t===0?Lr(e):Lr.ceil(e)}function zP(e,t){return e=cp(e),G(Lr.count(jt(e),e)+(jt(e).getUTCDay()===4),t,2)}function BP(e){return e.getUTCDay()}function FP(e,t){return G(Ki.count(jt(e)-1,e),t,2)}function WP(e,t){return G(e.getUTCFullYear()%100,t,2)}function UP(e,t){return e=cp(e),G(e.getUTCFullYear()%100,t,2)}function KP(e,t){return G(e.getUTCFullYear()%1e4,t,4)}function HP(e,t){var r=e.getUTCDay();return e=r>=4||r===0?Lr(e):Lr.ceil(e),G(e.getUTCFullYear()%1e4,t,4)}function YP(){return"+0000"}function ff(){return"%"}function df(e){return+e}function vf(e){return Math.floor(+e/1e3)}var Or,sp,fp;GP({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function GP(e){return Or=GO(e),sp=Or.format,Or.parse,fp=Or.utcFormat,Or.utcParse,Or}function VP(e){return new Date(e)}function qP(e){return e instanceof Date?+e:+new Date(+e)}function fl(e,t,r,n,i,a,o,u,l,c){var s=Zu(),f=s.invert,d=s.domain,v=c(".%L"),p=c(":%S"),m=c("%I:%M"),y=c("%I %p"),g=c("%a %d"),w=c("%b %d"),x=c("%B"),A=c("%Y");function O(b){return(l(b)t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,a)=>tO(e,a/n))},r.copy=function(){return pp(t).domain(e)},Tt.apply(r,arguments)}function Ba(){var e=0,t=.5,r=1,n=1,i,a,o,u,l,c=je,s,f=!1,d;function v(m){return isNaN(m=+m)?d:(m=.5+((m=+s(m))-a)*(n*m{if(e!=null){var n=e.scale,i=e.type;if(n==="auto")return i==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!t)?"point":i==="category"?"band":"linear";if(typeof n=="string")return rS(n)?n:"point"}};function nS(e,t){for(var r=0,n=e.length,i=e[0]t)?r=a+1:n=a}return r}function xp(e,t){if(e){var r=t??e.domain(),n=r.map(a=>{var o;return(o=e(a))!==null&&o!==void 0?o:0}),i=e.range();if(!(r.length===0||i.length<2))return a=>{var o,u,l=nS(n,a);if(l<=0)return r[0];if(l>=r.length)return r[r.length-1];var c=(o=n[l-1])!==null&&o!==void 0?o:0,s=(u=n[l])!==null&&u!==void 0?u:0;return Math.abs(a-c)<=Math.abs(a-s)?r[l-1]:r[l]}}}function iS(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):xp(e,void 0)}function pf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Hi(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);re.cartesianAxis.xAxis[t],$t=(e,t)=>{var r=Op(e,t);return r??ce},se={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:ru,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:Tn},Pp=(e,t)=>e.cartesianAxis.yAxis[t],Nt=(e,t)=>{var r=Pp(e,t);return r??se},dS={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},pl=(e,t)=>{var r=e.cartesianAxis.zAxis[t];return r??dS},Me=(e,t,r)=>{switch(t){case"xAxis":return $t(e,r);case"yAxis":return Nt(e,r);case"zAxis":return pl(e,r);case"angleAxis":return Wu(e,r);case"radiusAxis":return Uu(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},vS=(e,t,r)=>{switch(t){case"xAxis":return $t(e,r);case"yAxis":return Nt(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Bn=(e,t,r)=>{switch(t){case"xAxis":return $t(e,r);case"yAxis":return Nt(e,r);case"angleAxis":return Wu(e,r);case"radiusAxis":return Uu(e,r);default:throw new Error("Unexpected axis type: ".concat(t))}},Sp=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function Ep(e,t){return r=>{switch(e){case"xAxis":return"xAxisId"in r&&r.xAxisId===t;case"yAxis":return"yAxisId"in r&&r.yAxisId===t;case"zAxis":return"zAxisId"in r&&r.zAxisId===t;case"angleAxis":return"angleAxisId"in r&&r.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in r&&r.radiusAxisId===t;default:return!1}}}var _p=e=>e.graphicalItems.cartesianItems,hS=P([pe,Ta],Ep),Ip=(e,t,r)=>e.filter(r).filter(n=>(t==null?void 0:t.includeHidden)===!0?!0:!n.hide),Gr=P([_p,Me,hS],Ip,{memoizeOptions:{resultEqualityCheck:Da}}),Cp=P([Gr],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(Yu)),kp=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),pS=P([Gr],kp),jp=e=>e.map(t=>t.data).filter(Boolean).flat(1),mS=P([Gr],e=>e.some(t=>!t.data)),Tp=P([Gr],jp,{memoizeOptions:{resultEqualityCheck:Da}}),Mp=(e,t)=>{var r=t.chartData,n=r===void 0?[]:r,i=t.dataStartIndex,a=t.dataEndIndex;return e.length>0?e:n.slice(i,a+1)},ml=P([Tp,_a],Mp),yS=(e,t,r)=>(t==null?void 0:t.dataKey)!=null?e.map(n=>({value:he(n,t.dataKey)})):r.length>0?r.map(n=>n.dataKey).flatMap(n=>e.map(i=>({value:he(i,n)}))):e.map(n=>({value:n})),Dp=(e,t,r,n,i,a)=>{var o=n.chartData,u=o===void 0?[]:o,l=n.dataStartIndex,c=n.dataEndIndex,s=yS(e,t,r);if(i&&(t==null?void 0:t.dataKey)!=null&&a.length>0){var f=u.slice(l,c+1),d=f.map(v=>({value:he(v,t.dataKey)})).filter(v=>v.value!=null);return[...d,...s]}return s},Fn=P([ml,Me,Gr,_a,mS,Tp],Dp);function Tr(e){if(pt(e)||e instanceof Date){var t=Number(e);if(U(t))return t}}function yf(e){if(Array.isArray(e)){var t=[Tr(e[0]),Tr(e[1])];return vt(t)?t:void 0}var r=Tr(e);if(r!=null)return[r,r]}function gt(e){return e.map(Tr).filter(De)}function gS(e,t){var r=Tr(e),n=Tr(t);return r==null&&n==null?0:r==null?-1:n==null?1:r-n}var bS=P([Fn],e=>e==null?void 0:e.map(t=>t.value).sort(gS));function $p(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function wS(e,t,r){if(!r)return[];if(!r.length)return[];var n;if(typeof t=="number"&&!ht(t))n=t;else if(Array.isArray(t)){var i=gt(t);i.length>0&&(n=Math.max(...i))}return n==null?[]:gt(r.flatMap(a=>{var o=he(e,a.dataKey),u,l;if(Array.isArray(o)){var c=Ap(o,2);u=c[0],l=c[1]}else u=l=o;if(!(!U(u)||!U(l)))return[n-u,n+l]}))}var de=e=>{var t=me(e),r=Hr(e);return Bn(e,t,r)},Rr=P([de],e=>e==null?void 0:e.dataKey),xS=P([Cp,_a,de],Wh),Np=(e,t,r,n)=>{var i={},a=t.reduce((o,u)=>{if(u.stackId==null)return o;var l=o[u.stackId];return l==null&&(l=[]),l.push(u),o[u.stackId]=l,o},i);return Object.fromEntries(Object.entries(a).map(o=>{var u=Ap(o,2),l=u[0],c=u[1],s=n?[...c].reverse():c,f=s.map(Hu);return[l,{stackedData:ow(e,f,r),graphicalItems:s}]}))},Lp=P([xS,Cp,Ia,$h],Np),Rp=(e,t,r,n)=>{var i=t.dataStartIndex,a=t.dataEndIndex;if(n==null&&r!=="zAxis")return sw(e,i,a)},AS=P([Me],e=>e.allowDataOverflow),yl=e=>{var t;if(e==null||!("domain"in e))return ru;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var r=gt(e.ticks);return[Math.min(...r),Math.max(...r)]}if(e.type==="category")return e.ticks.map(String)}return(t=e==null?void 0:e.domain)!==null&&t!==void 0?t:ru},zp=P([Me],yl),Bp=P([zp,AS],Ph),OS=P([Lp,ut,pe,Bp],Rp,{memoizeOptions:{resultEqualityCheck:Ma}}),gl=e=>e.errorBars,PS=(e,t,r)=>e.flatMap(n=>t[n.id]).filter(Boolean).filter(n=>$p(r,n)),Yi=function(){for(var t=arguments.length,r=new Array(t),n=0;n5&&arguments[5]!==void 0?arguments[5]:[],u,l;if(n.length>0&&n.forEach(c=>{var s,f=c.data!=null?[...c.data]:o,d=(s=i[c.id])===null||s===void 0?void 0:s.filter(v=>$p(a,v));f.forEach(v=>{var p,m=he(v,(p=r.dataKey)!==null&&p!==void 0?p:c.dataKey),y=wS(v,m,d);if(y.length>=2){var g=Math.min(...y),w=Math.max(...y);(u==null||gl)&&(l=w)}var x=yf(m);x!=null&&(u=u==null?x[0]:Math.min(u,x[0]),l=l==null?x[1]:Math.max(l,x[1]))})}),(r==null?void 0:r.dataKey)!=null&&n.length===0&&t.forEach(c=>{var s=yf(he(c,r.dataKey));s!=null&&(u=u==null?s[0]:Math.min(u,s[0]),l=l==null?s[1]:Math.max(l,s[1]))}),U(u)&&U(l))return[u,l]},SS=P([ml,Me,pS,gl,pe,A1],Fp,{memoizeOptions:{resultEqualityCheck:Ma}});function ES(e){var t=e.value;if(pt(t)||t instanceof Date)return t}var _S=(e,t,r)=>{var n=e.map(ES).filter(i=>i!=null);return r&&(t.dataKey==null||t.allowDuplicatedCategory&&tv(n))?Oh(0,e.length):t.allowDuplicatedCategory?n:Array.from(new Set(n))},Wp=e=>e.referenceElements.dots,Vr=(e,t,r)=>e.filter(n=>n.ifOverflow==="extendDomain").filter(n=>t==="xAxis"?n.xAxisId===r:n.yAxisId===r),IS=P([Wp,pe,Ta],Vr),Up=e=>e.referenceElements.areas,CS=P([Up,pe,Ta],Vr),Kp=e=>e.referenceElements.lines,kS=P([Kp,pe,Ta],Vr),Hp=(e,t)=>{if(e!=null){var r=gt(e.map(n=>t==="xAxis"?n.x:n.y));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},jS=P(IS,pe,Hp),Yp=(e,t)=>{if(e!=null){var r=gt(e.flatMap(n=>[t==="xAxis"?n.x1:n.y1,t==="xAxis"?n.x2:n.y2]));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},TS=P([CS,pe],Yp);function MS(e){var t;if(e.x!=null)return gt([e.x]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.x);return r==null||r.length===0?[]:gt(r)}function DS(e){var t;if(e.y!=null)return gt([e.y]);var r=(t=e.segment)===null||t===void 0?void 0:t.map(n=>n.y);return r==null||r.length===0?[]:gt(r)}var Gp=(e,t)=>{if(e!=null){var r=e.flatMap(n=>t==="xAxis"?MS(n):DS(n));if(r.length!==0)return[Math.min(...r),Math.max(...r)]}},$S=P([kS,pe],Gp),NS=P(jS,$S,TS,(e,t,r)=>Yi(e,r,t)),Vp=(e,t,r,n,i,a,o,u)=>{if(r!=null)return r;var l=o==="vertical"&&u==="xAxis"||o==="horizontal"&&u==="yAxis",c=l?Yi(n,a,i):Yi(a,i);return I1(t,c,e.allowDataOverflow)},LS=P([Me,zp,Bp,OS,SS,NS,re,pe],Vp,{memoizeOptions:{resultEqualityCheck:Ma}}),RS=[0,1],qp=(e,t,r,n,i,a,o)=>{if(!((e==null||r==null||r.length===0)&&o===void 0)){var u=e.dataKey,l=e.type,c=bt(t,a);if(c&&u==null){var s;return Oh(0,(s=r==null?void 0:r.length)!==null&&s!==void 0?s:0)}return l==="category"?_S(n,e,c):i==="expand"&&!c?RS:o}},bl=P([Me,re,ml,Fn,Ia,pe,LS],qp),qr=P([Me,Sp,zu],wp),Xp=(e,t,r)=>{var n=t.niceTicks;if(n!=="none"){var i=yl(t),a=Array.isArray(i)&&(i[0]==="auto"||i[1]==="auto");if((n==="snap125"||n==="adaptive")&&t!=null&&t.tickCount&&vt(e)){if(a)return Rs(e,t.tickCount,t.allowDecimals,n);if(t.type==="number")return zs(e,t.tickCount,t.allowDecimals,n)}if(n==="auto"&&r==="linear"&&t!=null&&t.tickCount){if(a&&vt(e))return Rs(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&vt(e))return zs(e,t.tickCount,t.allowDecimals,"adaptive")}}},wl=P([bl,Bn,qr],Xp),Zp=(e,t,r,n)=>{if(n!=="angleAxis"&&(e==null?void 0:e.type)==="number"&&vt(t)&&Array.isArray(r)&&r.length>0){var i,a,o=t[0],u=(i=r[0])!==null&&i!==void 0?i:0,l=t[1],c=(a=r[r.length-1])!==null&&a!==void 0?a:0;return[Math.min(o,u),Math.max(l,c)]}return t},zS=P([Me,bl,wl,pe],Zp),BS=P(Fn,Me,(e,t)=>{if(!(!t||t.type!=="number")){var r=1/0,n=Array.from(gt(e.map(f=>f.value))).sort((f,d)=>f-d),i=n[0],a=n[n.length-1];if(i==null||a==null)return 1/0;var o=a-i;if(o===0)return 1/0;for(var u=0;ui,(e,t,r,n,i)=>{if(!U(e))return 0;var a=t==="vertical"?n.height:n.width;if(i==="gap")return e*a/2;if(i==="no-gap"){var o=Yt(r,e*a),u=e*a/2;return u-o-(u-o)/a*o}return 0}),FS=(e,t,r)=>{var n=$t(e,t);return n==null||typeof n.padding!="string"?0:Qp(e,"xAxis",t,r,n.padding)},WS=(e,t,r)=>{var n=Nt(e,t);return n==null||typeof n.padding!="string"?0:Qp(e,"yAxis",t,r,n.padding)},US=P($t,FS,(e,t)=>{var r,n;if(e==null)return{left:0,right:0};var i=e.padding;return typeof i=="string"?{left:t,right:t}:{left:((r=i.left)!==null&&r!==void 0?r:0)+t,right:((n=i.right)!==null&&n!==void 0?n:0)+t}}),KS=P(Nt,WS,(e,t)=>{var r,n;if(e==null)return{top:0,bottom:0};var i=e.padding;return typeof i=="string"?{top:t,bottom:t}:{top:((r=i.top)!==null&&r!==void 0?r:0)+t,bottom:((n=i.bottom)!==null&&n!==void 0?n:0)+t}}),Jp=P([Pe,US,xa,wa,(e,t,r)=>r],(e,t,r,n,i)=>{var a=n.padding;return i?[a.left,r.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),em=P([Pe,re,KS,xa,wa,(e,t,r)=>r],(e,t,r,n,i,a)=>{var o=i.padding;return a?[n.height-o.bottom,o.top]:t==="horizontal"?[e.top+e.height-r.bottom,e.top+r.top]:[e.top+r.top,e.top+e.height-r.bottom]}),Wn=(e,t,r,n)=>{var i;switch(t){case"xAxis":return Jp(e,r,n);case"yAxis":return em(e,r,n);case"zAxis":return(i=pl(e,r))===null||i===void 0?void 0:i.range;case"angleAxis":return zh(e);case"radiusAxis":return Bh(e,r);default:return}},tm=P([Me,Wn],Ca),HS=P([qr,zS],Y1),xl=P([Me,qr,HS,tm],hl),rm=(e,t,r,n)=>{if(!(r==null||r.dataKey==null)){var i=r.type,a=r.scale,o=bt(e,n);if(o&&(i==="number"||a!=="auto"))return t.map(u=>u.value)}},Al=P([re,Fn,Bn,pe],rm),Fa=P([xl],Gu);P([xl],iS);P([xl,bS],xp);P([Gr,gl,pe],PS);function nm(e,t){return e.idt.id?1:0}var Wa=(e,t)=>t,Ua=(e,t,r)=>r,YS=P(ga,Wa,Ua,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(nm)),GS=P(ba,Wa,Ua,(e,t,r)=>e.filter(n=>n.orientation===t).filter(n=>n.mirror===r).sort(nm)),im=(e,t)=>({width:e.width,height:t.height}),VS=(e,t)=>{var r=typeof t.width=="number"?t.width:Tn;return{width:r,height:e.height}},qS=P(Pe,$t,im),XS=(e,t,r)=>{switch(t){case"top":return e.top;case"bottom":return r-e.bottom;default:return 0}},ZS=(e,t,r)=>{switch(t){case"left":return e.left;case"right":return r-e.right;default:return 0}},QS=P(Dt,Pe,YS,Wa,Ua,(e,t,r,n,i)=>{var a={},o;return r.forEach(u=>{var l=im(t,u);o==null&&(o=XS(t,n,e));var c=n==="top"&&!i||n==="bottom"&&i;a[u.id]=o-Number(c)*l.height,o+=(c?-1:1)*l.height}),a}),JS=P(Mt,Pe,GS,Wa,Ua,(e,t,r,n,i)=>{var a={},o;return r.forEach(u=>{var l=VS(t,u);o==null&&(o=ZS(t,n,e));var c=n==="left"&&!i||n==="right"&&i;a[u.id]=o-Number(c)*l.width,o+=(c?-1:1)*l.width}),a}),eE=(e,t)=>{var r=$t(e,t);if(r!=null)return QS(e,r.orientation,r.mirror)},tE=P([Pe,$t,eE,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var i=r==null?void 0:r[n];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),rE=(e,t)=>{var r=Nt(e,t);if(r!=null)return JS(e,r.orientation,r.mirror)},nE=P([Pe,Nt,rE,(e,t)=>t],(e,t,r,n)=>{if(t!=null){var i=r==null?void 0:r[n];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),iE=P(Pe,Nt,(e,t)=>{var r=typeof t.width=="number"?t.width:Tn;return{width:r,height:e.height}}),am=(e,t,r,n)=>{if(r!=null){var i=r.allowDuplicatedCategory,a=r.type,o=r.dataKey,u=bt(e,n),l=t.map(s=>s.value),c=l.filter(s=>s!=null);if(o&&u&&a==="category"&&i&&tv(c))return l}},Ol=P([re,Fn,Me,pe],am),gf=P([re,vS,qr,Fa,Ol,Al,Wn,wl,pe],(e,t,r,n,i,a,o,u,l)=>{if(t!=null){var c=bt(e,l);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:l,categoricalDomain:a,duplicateDomain:i,isCategorical:c,niceTicks:u,range:o,realScaleType:r,scale:n}}}),aE=(e,t,r,n,i,a,o,u,l)=>{if(!(t==null||n==null)){var c=bt(e,l),s=t.type,f=t.ticks,d=t.tickCount,v=r==="scaleBand"&&typeof n.bandwidth=="function"?n.bandwidth()/2:2,p=s==="category"&&n.bandwidth?n.bandwidth()/v:0;p=l==="angleAxis"&&a!=null&&a.length>=2?He(a[0]-a[1])*2*p:p;var m=f||i;return m?m.map((y,g)=>{var w=o?o.indexOf(y):y,x=n.map(w);return U(x)?{index:g,coordinate:x+p,value:y,offset:p}:null}).filter(De):c&&u?u.map((y,g)=>{var w=n.map(y);return U(w)?{coordinate:w+p,value:y,index:g,offset:p}:null}).filter(De):n.ticks?n.ticks(d).map((y,g)=>{var w=n.map(y);return U(w)?{coordinate:w+p,value:y,index:g,offset:p}:null}).filter(De):n.domain().map((y,g)=>{var w=n.map(y);return U(w)?{coordinate:w+p,value:o?o[y]:y,index:g,offset:p}:null}).filter(De)}},om=P([re,Bn,qr,Fa,wl,Wn,Ol,Al,pe],aE),oE=(e,t,r,n,i,a,o)=>{if(!(t==null||r==null||n==null||n[0]===n[1])){var u=bt(e,o),l=t.tickCount,c=0;return c=o==="angleAxis"&&(n==null?void 0:n.length)>=2?He(n[0]-n[1])*2*c:c,u&&a?a.map((s,f)=>{var d=r.map(s);return U(d)?{coordinate:d+c,value:s,index:f,offset:c}:null}).filter(De):r.ticks?r.ticks(l).map((s,f)=>{var d=r.map(s);return U(d)?{coordinate:d+c,value:s,index:f,offset:c}:null}).filter(De):r.domain().map((s,f)=>{var d=r.map(s);return U(d)?{coordinate:d+c,value:i?i[s]:s,index:f,offset:c}:null}).filter(De)}},um=P([re,Bn,Fa,Wn,Ol,Al,pe],oE),lm=P(Me,Fa,(e,t)=>{if(!(e==null||t==null))return Hi(Hi({},e),{},{scale:t})}),uE=P([Me,qr,bl,tm],hl),lE=P([uE],Gu);P((e,t,r)=>pl(e,r),lE,(e,t)=>{if(!(e==null||t==null))return Hi(Hi({},e),{},{scale:t})});var cE=P([re,ga,ba],(e,t,r)=>{switch(e){case"horizontal":return t.some(n=>n.reversed)?"right-to-left":"left-to-right";case"vertical":return r.some(n=>n.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),sE=(e,t,r)=>{var n;return(n=e.renderedTicks[t])===null||n===void 0?void 0:n[r]};P([sE],e=>{if(!(!e||e.length===0))return t=>{var r,n=1/0,i=e[0];for(var a of e){var o=Math.abs(a.coordinate-t);oe.options.defaultTooltipEventType,sm=e=>e.options.validateTooltipEventTypes;function fm(e,t,r){if(e==null)return t;var n=e?"axis":"item";return r==null?t:r.includes(n)?n:t}function Un(e,t){var r=cm(e),n=sm(e);return fm(t,r,n)}function fE(e){return N(t=>Un(t,e))}var dm=(e,t)=>{var r,n=Number(t);if(!(ht(n)||t==null))return n>=0?e==null||(r=e[n])===null||r===void 0?void 0:r.value:void 0},dE=e=>e.tooltip.settings,Wt={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},vE={itemInteraction:{click:Wt,hover:Wt},axisInteraction:{click:Wt,hover:Wt},keyboardInteraction:Wt,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},vm=Ce({name:"tooltip",initialState:vE,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(t.payload)},prepare:Q()},replaceTooltipEntrySettings:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,a=Ye(e).tooltipItemPayloads.indexOf(n);a>-1&&(e.tooltipItemPayloads[a]=i)},prepare:Q()},removeTooltipEntrySettings:{reducer(e,t){var r=Ye(e).tooltipItemPayloads.indexOf(t.payload);r>-1&&e.tooltipItemPayloads.splice(r,1)},prepare:Q()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),Qe=vm.actions,hE=Qe.addTooltipEntrySettings,pE=Qe.replaceTooltipEntrySettings,mE=Qe.removeTooltipEntrySettings,yE=Qe.setTooltipSettingsState,gE=Qe.setActiveMouseOverItemIndex;Qe.mouseLeaveItem;var hm=Qe.mouseLeaveChart;Qe.setActiveClickItemIndex;var pm=Qe.setMouseOverAxisIndex,bE=Qe.setMouseClickAxisIndex,dn=Qe.setSyncInteraction,Gi=Qe.setKeyboardInteraction,wE=vm.reducer;function bf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ri(e){for(var t=1;t{if(t==null)return Wt;var i=PE(e,t,r);if(i==null)return Wt;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(SE(i)){if(a)return ri(ri({},i),{},{active:!0})}else if(n!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:n,graphicalItemId:void 0};return ri(ri({},Wt),{},{coordinate:i.coordinate})};function EE(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var r=Number(e);return Number.isFinite(r)?r:void 0}function _E(e,t){var r=EE(e),n=t[0],i=t[1];if(r===void 0)return!1;var a=Math.min(n,i),o=Math.max(n,i);return r>=a&&r<=o}function IE(e,t,r){if(r==null||t==null)return!0;var n=he(e,t);return n==null||!vt(r)?!0:_E(n,r)}var hn=(e,t,r,n)=>{var i=e==null?void 0:e.index;if(i==null)return null;var a=Number(i);if(!U(a))return i;var o=0,u=1/0;t.length>0&&(u=t.length-1);var l=Math.max(o,Math.min(a,u)),c=t[l];return c==null||IE(c,r,n)?String(l):null},ym=(e,t,r,n,i,a,o)=>{if(a!=null){var u=o[0],l=u==null?void 0:u.getPosition(a);if(l!=null)return l;var c=i==null?void 0:i[Number(a)];if(c)switch(r){case"horizontal":return{x:c.coordinate,y:(n.top+t)/2};default:return{x:(n.left+e)/2,y:c.coordinate}}}},gm=(e,t,r,n)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i;if(r==="hover"?i=e.itemInteraction.hover.graphicalItemId:i=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&i==null)return e.tooltipItemPayloads;if(i==null&&(n!=null||e.keyboardInteraction.active)){var a=e.tooltipItemPayloads[0];return a!=null?[a]:[]}return e.tooltipItemPayloads.filter(o=>{var u;return((u=o.settings)===null||u===void 0?void 0:u.graphicalItemId)===i})},bm=e=>e.options.tooltipPayloadSearcher,Xr=e=>e.tooltip;function wf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function xf(e){for(var t=1;te(t)}function Af(e){if(typeof e=="string")return e}function $E(e){if(!(e==null||typeof e!="object")){var t="name"in e?TE(e.name):void 0,r="unit"in e?ME(e.unit):void 0,n="dataKey"in e?DE(e.dataKey):void 0,i="payload"in e?e.payload:void 0,a="color"in e?Af(e.color):void 0,o="fill"in e?Af(e.fill):void 0;return{name:t,unit:r,dataKey:n,payload:i,color:a,fill:o}}}function NE(e,t){return e??t}var wm=(e,t,r,n,i,a,o)=>{if(!(t==null||a==null)){var u=r.chartData,l=r.computedData,c=r.dataStartIndex,s=r.dataEndIndex,f=[];return e.reduce((d,v)=>{var p,m=v.dataDefinedOnItem,y=v.settings,g=NE(m,u),w=Array.isArray(g)?Vv(g,c,s):g,x=(p=y==null?void 0:y.dataKey)!==null&&p!==void 0?p:n,A=y==null?void 0:y.nameKey,O;if(n&&Array.isArray(w)&&!Array.isArray(w[0])&&o==="axis"?O=rv(w,n,i):O=a(w,t,l,A),Array.isArray(O))O.forEach(S=>{var _,I,C=$E(S),j=C==null?void 0:C.name,E=C==null?void 0:C.dataKey,R=C==null?void 0:C.payload,$=xf(xf({},y),{},{name:j,unit:C==null?void 0:C.unit,color:(_=C==null?void 0:C.color)!==null&&_!==void 0?_:y==null?void 0:y.color,fill:(I=C==null?void 0:C.fill)!==null&&I!==void 0?I:y==null?void 0:y.fill});d.push(Ic({tooltipEntrySettings:$,dataKey:E,payload:R,value:he(R,E),name:j==null?void 0:String(j)}))});else{var b;d.push(Ic({tooltipEntrySettings:y,dataKey:x,payload:O,value:he(O,x),name:(b=he(O,A))!==null&&b!==void 0?b:y==null?void 0:y.name}))}return d},f)}},Pl=P([de,Sp,zu],wp),LE=P([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),RE=P([me,Hr],Ep),wr=P([LE,de,RE],Ip,{memoizeOptions:{resultEqualityCheck:Da}}),zE=P([wr],e=>e.filter(Yu)),xm=P([wr],jp,{memoizeOptions:{resultEqualityCheck:Da}}),BE=P([wr],e=>e.some(t=>!t.data)),pr=P([xm,ut],Mp),FE=P([zE,ut,de],Wh),Sl=P([pr,de,wr,ut,BE,xm],Dp),Am=P([de],yl),WE=P([de],e=>e.allowDataOverflow),Om=P([Am,WE],Ph),UE=P([wr],e=>e.filter(Yu)),KE=P([FE,UE,Ia,$h],Np),HE=P([KE,ut,me,Om],Rp),YE=P([wr],kp),GE=P([pr,de,YE,gl,me,O1],Fp,{memoizeOptions:{resultEqualityCheck:Ma}}),VE=P([Wp,me,Hr],Vr),qE=P([VE,me],Hp),XE=P([Up,me,Hr],Vr),ZE=P([XE,me],Yp),QE=P([Kp,me,Hr],Vr),JE=P([QE,me],Gp),e_=P([qE,JE,ZE],Yi),t_=P([de,Am,Om,HE,GE,e_,re,me],Vp),zr=P([de,re,pr,Sl,Ia,me,t_],qp),r_=P([zr,de,Pl],Xp),n_=P([de,zr,r_,me],Zp),Pm=e=>{var t=me(e),r=Hr(e),n=!1;return Wn(e,t,r,n)},Sm=P([de,Pm],Ca),i_=P([de,Pl,n_,Sm],hl),Em=P([i_],Gu),a_=P([re,Sl,de,me],am),o_=P([re,Sl,de,me],rm),u_=(e,t,r,n,i,a,o,u)=>{if(t){var l=t.type,c=bt(e,u);if(n){var s=r==="scaleBand"&&n.bandwidth?n.bandwidth()/2:2,f=l==="category"&&n.bandwidth?n.bandwidth()/s:0;return f=u==="angleAxis"&&i!=null&&(i==null?void 0:i.length)>=2?He(i[0]-i[1])*2*f:f,c&&o?o.map((d,v)=>{var p=n.map(d);return U(p)?{coordinate:p+f,value:d,index:v,offset:f}:null}).filter(De):n.domain().map((d,v)=>{var p=n.map(d);return U(p)?{coordinate:p+f,value:a?a[d]:d,index:v,offset:f}:null}).filter(De)}}},Lt=P([re,de,Pl,Em,Pm,a_,o_,me],u_),El=P([cm,sm,dE],(e,t,r)=>fm(r.shared,e,t)),_m=e=>e.tooltip.settings.trigger,_l=e=>e.tooltip.settings.defaultIndex,Kn=P([Xr,El,_m,_l],mm),_n=P([Kn,pr,Rr,zr],hn),Im=P([Lt,_n],dm),l_=P([Kn],e=>{if(e)return e.dataKey}),c_=P([Kn],e=>{if(e)return e.graphicalItemId}),Cm=P([Xr,El,_m,_l],gm),s_=P([Mt,Dt,re,Pe,Lt,_l,Cm],ym),f_=P([Kn,s_],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),d_=P([Kn],e=>{var t;return(t=e==null?void 0:e.active)!==null&&t!==void 0?t:!1}),v_=P([Cm,_n,ut,Rr,Im,bm,El],wm),h_=P([v_],e=>{if(e!=null){var t=e.map(r=>r.payload).filter(r=>r!=null);return Array.from(new Set(t))}});function Of(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Pf(e){for(var t=1;tN(de),b_=()=>{var e=g_(),t=N(Lt),r=N(Em);return Ei(!e||!r?void 0:Pf(Pf({},e),{},{scale:r}),t)};function Sf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Pr(e){for(var t=1;t{var i=t.find(a=>a&&a.index===r);if(i){if(e==="horizontal")return{x:i.coordinate,y:n.relativeY};if(e==="vertical")return{x:n.relativeX,y:i.coordinate}}return{x:0,y:0}},P_=(e,t,r,n)=>{var i=t.find(c=>c&&c.index===r);if(i){if(e==="centric"){var a=i.coordinate,o=n.radius;return Pr(Pr(Pr({},n),Ae(n.cx,n.cy,o,a)),{},{angle:a,radius:o})}var u=i.coordinate,l=n.angle;return Pr(Pr(Pr({},n),Ae(n.cx,n.cy,u,l)),{},{angle:l,radius:u})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function S_(e,t){var r=e.relativeX,n=e.relativeY;return r>=t.left&&r<=t.left+t.width&&n>=t.top&&n<=t.top+t.height}var km=(e,t,r,n,i)=>{var a,o=(a=t==null?void 0:t.length)!==null&&a!==void 0?a:0;if(o<=1||e==null)return 0;if(n==="angleAxis"&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var u=0;u0?(l=r[u-1])===null||l===void 0?void 0:l.coordinate:(c=r[o-1])===null||c===void 0?void 0:c.coordinate,p=(s=r[u])===null||s===void 0?void 0:s.coordinate,m=u>=o-1?(f=r[0])===null||f===void 0?void 0:f.coordinate:(d=r[u+1])===null||d===void 0?void 0:d.coordinate,y=void 0;if(!(v==null||p==null||m==null))if(He(p-v)!==He(m-p)){var g=[];if(He(m-p)===He(i[1]-i[0])){y=m;var w=p+i[1]-i[0];g[0]=Math.min(w,(w+v)/2),g[1]=Math.max(w,(w+v)/2)}else{y=v;var x=m+i[1]-i[0];g[0]=Math.min(p,(x+p)/2),g[1]=Math.max(p,(x+p)/2)}var A=[Math.min(p,(y+p)/2),Math.max(p,(y+p)/2)];if(e>A[0]&&e<=A[1]||e>=g[0]&&e<=g[1]){var O;return(O=r[u])===null||O===void 0?void 0:O.index}}else{var b=Math.min(v,m),S=Math.max(v,m);if(e>(b+p)/2&&e<=(S+p)/2){var _;return(_=r[u])===null||_===void 0?void 0:_.index}}}else if(t)for(var I=0;I(C.coordinate+E.coordinate)/2||I>0&&I(C.coordinate+E.coordinate)/2&&e<=(C.coordinate+j.coordinate)/2)return C.index}}return-1},jm=()=>N(zu),Il=(e,t)=>t,Tm=(e,t,r)=>r,Cl=(e,t,r,n)=>n,E_=P(Lt,e=>ua(e,t=>t.coordinate)),kl=P([Xr,Il,Tm,Cl],mm),jl=P([kl,pr,Rr,zr],hn),__=(e,t,r)=>{if(t!=null){var n=Xr(e);return t==="axis"?r==="hover"?n.axisInteraction.hover.dataKey:n.axisInteraction.click.dataKey:r==="hover"?n.itemInteraction.hover.dataKey:n.itemInteraction.click.dataKey}},Mm=P([Xr,Il,Tm,Cl],gm),Vi=P([Mt,Dt,re,Pe,Lt,Cl,Mm],ym),I_=P([kl,Vi],(e,t)=>{var r;return(r=e.coordinate)!==null&&r!==void 0?r:t}),Dm=P([Lt,jl],dm),C_=P([Mm,jl,ut,Rr,Dm,bm,Il],wm),k_=P([kl,jl],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),j_=(e,t,r,n,i,a,o)=>{if(!(!e||!r||!n||!i)&&S_(e,o)){var u=fw(e,t),l=km(u,a,i,r,n),c=O_(t,i,l,e);return{activeIndex:String(l),activeCoordinate:c}}},T_=(e,t,r,n,i,a,o)=>{if(!(!e||!n||!i||!a||!r)){var u=h1(e,r);if(u){var l=dw(u,t),c=km(l,o,a,n,i),s=P_(t,a,c,u);return{activeIndex:String(c),activeCoordinate:s}}}},M_=(e,t,r,n,i,a,o,u)=>{if(!(!e||!t||!n||!i||!a))return t==="horizontal"||t==="vertical"?j_(e,t,n,i,a,o,u):T_(e,t,r,n,i,a,o)},D_=P(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,r)=>r,(e,t,r)=>{if(t!=null){var n=e[t];if(n!=null)return r?n.panoramaElement:n.element}}),$_=P(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(n=>parseInt(n,10)).concat(Object.values(ke)),r=Array.from(new Set(t));return r.sort((n,i)=>n-i)},{memoizeOptions:{resultEqualityCheck:H1}});function Ef(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function _f(e){for(var t=1;t_f(_f({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),z_)},F_=new Set(Object.values(ke));function W_(e){return F_.has(e)}var $m=Ce({name:"zIndex",initialState:B_,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]?e.zIndexMap[r].consumers+=1:e.zIndexMap[r]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:Q()},unregisterZIndexPortal:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(e.zIndexMap[r].consumers-=1,e.zIndexMap[r].consumers<=0&&!W_(r)&&delete e.zIndexMap[r])},prepare:Q()},registerZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload,n=r.zIndex,i=r.element,a=r.isPanorama;e.zIndexMap[n]?a?e.zIndexMap[n].panoramaElement=i:e.zIndexMap[n].element=i:e.zIndexMap[n]={consumers:0,element:a?void 0:i,panoramaElement:a?i:void 0}},prepare:Q()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var r=t.payload.zIndex;e.zIndexMap[r]&&(t.payload.isPanorama?e.zIndexMap[r].panoramaElement=void 0:e.zIndexMap[r].element=void 0)},prepare:Q()}}}),Ka=$m.actions,U_=Ka.registerZIndexPortal,vo=Ka.unregisterZIndexPortal,K_=Ka.registerZIndexPortalElement,H_=Ka.unregisterZIndexPortalElement,Y_=$m.reducer;function Rt(e){var t=e.zIndex,r=e.children,n=Xw(),i=n&&t!==void 0&&t!==0,a=$e(),o=h.useRef(void 0),u=h.useRef(new Set),l=le(),c=N(f=>D_(f,t,a));if(h.useLayoutEffect(()=>{if(!i){var f=u.current;f.forEach(v=>{l(vo({zIndex:v}))}),f.clear(),o.current=void 0;return}if(u.current.has(t)||(l(U_({zIndex:t})),u.current.add(t)),c){o.current=c;var d=u.current;d.forEach(v=>{v!==t&&(l(vo({zIndex:v})),d.delete(v))})}},[l,t,i,c]),h.useLayoutEffect(()=>{var f=u.current;return()=>{f.forEach(d=>{l(vo({zIndex:d}))}),f.clear()}},[l]),!i)return r;var s=c??o.current;return s?$d.createPortal(r,s):null}function nu(){return nu=Object.assign?Object.assign.bind():function(e){for(var t=1;th.useContext(Nm),ho={exports:{}},Cf;function eI(){return Cf||(Cf=1,(function(e){var t=Object.prototype.hasOwnProperty,r="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(r=!1));function i(l,c,s){this.fn=l,this.context=c,this.once=s||!1}function a(l,c,s,f,d){if(typeof s!="function")throw new TypeError("The listener must be a function");var v=new i(s,f||l,d),p=r?r+c:c;return l._events[p]?l._events[p].fn?l._events[p]=[l._events[p],v]:l._events[p].push(v):(l._events[p]=v,l._eventsCount++),l}function o(l,c){--l._eventsCount===0?l._events=new n:delete l._events[c]}function u(){this._events=new n,this._eventsCount=0}u.prototype.eventNames=function(){var c=[],s,f;if(this._eventsCount===0)return c;for(f in s=this._events)t.call(s,f)&&c.push(r?f.slice(1):f);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(s)):c},u.prototype.listeners=function(c){var s=r?r+c:c,f=this._events[s];if(!f)return[];if(f.fn)return[f.fn];for(var d=0,v=f.length,p=new Array(v);d{if(t&&Array.isArray(e)){var r=Number.parseInt(t,10);if(!ht(r))return e[r]}},iI={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},Lm=Ce({name:"options",initialState:iI,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),aI=Lm.reducer,oI=Lm.actions.createEventEmitter;function uI(e){return e.tooltip.syncInteraction}var lI={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},Rm=Ce({name:"chartData",initialState:lI,reducers:{setChartData(e,t){if(e.chartData=t.payload,t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var r=t.payload,n=r.startIndex,i=r.endIndex;n!=null&&(e.dataStartIndex=n),i!=null&&(e.dataEndIndex=i)}}}),Tl=Rm.actions,jf=Tl.setChartData,cI=Tl.setDataStartEndIndexes;Tl.setComputedData;var sI=Rm.reducer,fI=["x","y"];function Tf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Sr(e){for(var t=1;tl.rootProps.className);h.useEffect(()=>{if(e==null)return Fr;var l=(c,s,f)=>{if(t!==f&&e===c){if(s.payload.active===!1){r(dn({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(n==="index"){var d;if(o&&s!==null&&s!==void 0&&(d=s.payload)!==null&&d!==void 0&&d.coordinate&&s.payload.sourceViewBox){var v=s.payload.coordinate,p=v.x,m=v.y,y=pI(v,fI),g=s.payload.sourceViewBox,w=g.x,x=g.y,A=g.width,O=g.height,b=Sr(Sr({},y),{},{x:o.x+(A?(p-w)/A:0)*o.width,y:o.y+(O?(m-x)/O:0)*o.height});r(Sr(Sr({},s),{},{payload:Sr(Sr({},s.payload),{},{coordinate:b})}))}else r(s);return}if(i!=null){var S;if(typeof n=="function"){var _={activeTooltipIndex:s.payload.index==null?void 0:Number(s.payload.index),isTooltipActive:s.payload.active,activeIndex:s.payload.index==null?void 0:Number(s.payload.index),activeLabel:s.payload.label,activeDataKey:s.payload.dataKey,activeCoordinate:s.payload.coordinate},I=n(i,_);S=i[I]}else n==="value"&&(S=i.find(Y=>String(Y.value)===s.payload.label));var C=s.payload.coordinate;if(C==null||o==null){r(dn({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(S==null){r(dn({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:s.payload.sourceViewBox,graphicalItemId:void 0}));return}var j=C.x,E=C.y,R=Math.min(j,o.x+o.width),$=Math.min(E,o.y+o.height),V={x:a==="horizontal"?S.coordinate:R,y:a==="horizontal"?$:S.coordinate},H=dn({active:s.payload.active,coordinate:V,dataKey:s.payload.dataKey,index:String(S.index),label:s.payload.label,sourceViewBox:s.payload.sourceViewBox,graphicalItemId:s.payload.graphicalItemId});r(H)}}};return In.on(iu,l),()=>{In.off(iu,l)}},[u,r,t,e,n,i,a,o])}function gI(){var e=N(Bu),t=N(Fu),r=le();h.useEffect(()=>{if(e==null)return Fr;var n=(i,a,o)=>{t!==o&&e===i&&r(cI(a))};return In.on(kf,n),()=>{In.off(kf,n)}},[r,t,e])}function bI(){var e=le();h.useEffect(()=>{e(oI())},[e]),yI(),gI()}function wI(e,t,r,n,i,a){var o=N(p=>__(p,e,t)),u=N(c_),l=N(Fu),c=N(Bu),s=N(Nh),f=N(uI),d=(f==null?void 0:f.sourceViewBox)!=null,v=Aa();h.useEffect(()=>{if(!d&&c!=null&&l!=null){var p=dn({active:a,coordinate:r,dataKey:o,index:i,label:typeof n=="number"?String(n):n,sourceViewBox:v,graphicalItemId:u});In.emit(iu,c,p,l)}},[d,r,o,u,i,n,l,c,s,a,v])}function Mf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Df(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r{S(yE({shared:w,trigger:x,axisId:b,active:i,defaultIndex:_}))},[S,w,x,b,i,_]);var I=Aa(),C=ph(),j=fE(w),E=(t=N(z=>k_(z,j,x,_)))!==null&&t!==void 0?t:{},R=E.activeIndex,$=E.isActive,V=N(z=>C_(z,j,x,_)),H=N(z=>Dm(z,j,x,_)),Y=N(z=>I_(z,j,x,_)),B=V,q=J_(),W=(r=i??$)!==null&&r!==void 0?r:!1,Se=Z0([B,W]),ge=PI(Se,2),ae=ge[0],Ne=ge[1],Le=j==="axis"?H:void 0;wI(j,x,Y,Le,R,W);var Je=O??q;if(Je==null||I==null||j==null)return null;var et=B??Nf;W||(et=Nf),c&&et.length&&(et=S0(et.filter(z=>z.value!=null&&(z.hide!==!0||n.includeHidden)),d,CI));var Jr=et.length>0,T=Df(Df({},n),{},{payload:et,label:Le,active:W,activeIndex:R,coordinate:Y,accessibilityLayer:C}),F=h.createElement(lA,{allowEscapeViewBox:a,animationDuration:o,animationEasing:u,isAnimationActive:s,active:W,coordinate:Y,hasPayload:Jr,offset:f,position:v,reverseDirection:p,useTranslate3d:m,viewBox:I,wrapperStyle:y,lastBoundingBox:ae,innerRef:Ne,hasPortalFromProps:!!O},kI(l,T));return h.createElement(h.Fragment,null,$d.createPortal(F,Je),W&&h.createElement(Q_,{cursor:g,tooltipEventType:j,coordinate:Y,payload:et,index:R}))}function MI(e,t,r){return(t=DI(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function DI(e){var t=$I(e,"string");return typeof t=="symbol"?t:t+""}function $I(e,t){if(typeof e!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class NI{constructor(t){MI(this,"cache",new Map),this.maxSize=t}get(t){var r=this.cache.get(t);return r!==void 0&&(this.cache.delete(t),this.cache.set(t,r)),r}set(t,r){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(t,r)}clear(){this.cache.clear()}size(){return this.cache.size}}function Lf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function LI(e){for(var t=1;t{try{var r=document.getElementById(zf);r||(r=document.createElement("span"),r.setAttribute("id",zf),r.setAttribute("aria-hidden","true"),document.body.appendChild(r)),Object.assign(r.style,WI,t),r.textContent="".concat(e);var n=r.getBoundingClientRect();return{width:n.width,height:n.height}}catch{return{width:0,height:0}}},pn=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Nn.isSsr)return{width:0,height:0};if(!zm.enableCache)return Bf(t,r);var n=UI(t,r),i=Rf.get(n);if(i)return i;var a=Bf(t,r);return Rf.set(n,a),a},Bm;function qi(e,t){return GI(e)||YI(e,t)||HI(e,t)||KI()}function KI(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function HI(e,t){if(e){if(typeof e=="string")return Ff(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ff(e,t):void 0}}function Ff(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=e.breakAll,n=e.style;try{var i=[];Oe(t)||(r?i=t.toString().split(""):i=t.toString().split(Wm));var a=i.map(u=>({word:u,width:pn(u,n).width})),o=r?0:pn(" ",n).width;return{wordsWithComputedWidth:a,spaceWidth:o}}catch{return null}};function Km(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function vC(e){return Oe(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var Hm=(e,t,r,n)=>e.reduce((i,a)=>{var o=a.word,u=a.width,l=i[i.length-1];if(l&&u!=null&&(t==null||n||l.width+u+re.reduce((t,r)=>t.width>r.width?t:r),hC="…",Vf=(e,t,r,n,i,a,o,u)=>{var l=e.slice(0,t),c=Um({breakAll:r,style:n,children:l+hC});if(!c)return[!1,[]];var s=Hm(c.wordsWithComputedWidth,a,o,u),f=s.length>i||Ym(s).width>Number(a);return[f,s]},pC=(e,t,r,n,i)=>{var a=e.maxLines,o=e.children,u=e.style,l=e.breakAll,c=D(a),s=String(o),f=Hm(t,n,r,i);if(!c||i)return f;var d=f.length>a||Ym(f).width>Number(n);if(!d)return f;for(var v=0,p=s.length-1,m=0,y;v<=p&&m<=s.length-1;){var g=Math.floor((v+p)/2),w=g-1,x=Vf(s,w,l,u,a,n,r,i),A=Yf(x,2),O=A[0],b=A[1],S=Vf(s,g,l,u,a,n,r,i),_=Yf(S,1),I=_[0];if(!O&&!I&&(v=g+1),O&&I&&(p=g-1),!O&&I){y=b;break}m++}return y||f},qf=e=>{var t=Oe(e)?[]:e.toString().split(Wm);return[{words:t,width:void 0}]},mC=e=>{var t=e.width,r=e.scaleToFit,n=e.children,i=e.style,a=e.breakAll,o=e.maxLines;if((t||r)&&!Nn.isSsr){var u,l,c=Um({breakAll:a,children:n,style:i});if(c){var s=c.wordsWithComputedWidth,f=c.spaceWidth;u=s,l=f}else return qf(n);return pC({breakAll:a,children:n,maxLines:o,style:i},u,l,t,!!r)}return qf(n)},Gm="#808080",yC={angle:0,breakAll:!1,capHeight:"0.71em",fill:Gm,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},Ml=h.forwardRef((e,t)=>{var r=Ze(e,yC),n=r.x,i=r.y,a=r.lineHeight,o=r.capHeight,u=r.fill,l=r.scaleToFit,c=r.textAnchor,s=r.verticalAnchor,f=Hf(r,oC),d=h.useMemo(()=>mC({breakAll:f.breakAll,children:f.children,maxLines:f.maxLines,scaleToFit:l,style:f.style,width:f.width}),[f.breakAll,f.children,f.maxLines,l,f.style,f.width]),v=f.dx,p=f.dy,m=f.angle,y=f.className,g=f.breakAll,w=Hf(f,uC);if(!pt(n)||!pt(i)||d.length===0)return null;var x=Number(n)+(D(v)?v:0),A=Number(i)+(D(p)?p:0);if(!U(x)||!U(A))return null;var O;switch(s){case"start":O=po("calc(".concat(o,")"));break;case"middle":O=po("calc(".concat((d.length-1)/2," * -").concat(a," + (").concat(o," / 2))"));break;default:O=po("calc(".concat(d.length-1," * -").concat(a,")"));break}var b=[],S=d[0];if(l&&S!=null){var _=S.width,I=f.width;b.push("scale(".concat(D(I)&&D(_)?I/_:1,")"))}return m&&b.push("rotate(".concat(m,", ").concat(x,", ").concat(A,")")),b.length&&(w.transform=b.join(" ")),h.createElement("text",au({},Ve(w),{ref:t,x,y:A,className:ee("recharts-text",y),textAnchor:c,fill:u.includes("url")?Gm:u}),d.map((C,j)=>{var E=C.words.join(g?"":" ");return h.createElement("tspan",{x,dy:j===0?O:a,key:"".concat(E,"-").concat(j)},E)}))});Ml.displayName="Text";function Xf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function st(e){for(var t=1;t{var t=e.viewBox,r=e.position,n=e.offset,i=n===void 0?0:n,a=e.parentViewBox,o=ku(t),u=o.x,l=o.y,c=o.height,s=o.upperWidth,f=o.lowerWidth,d=u,v=u+(s-f)/2,p=(d+v)/2,m=(s+f)/2,y=d+s/2,g=c>=0?1:-1,w=g*i,x=g>0?"end":"start",A=g>0?"start":"end",O=s>=0?1:-1,b=O*i,S=O>0?"end":"start",_=O>0?"start":"end",I=a;if(r==="top"){var C={x:d+s/2,y:l-w,horizontalAnchor:"middle",verticalAnchor:x};return I&&(C.height=Math.max(l-I.y,0),C.width=s),C}if(r==="bottom"){var j={x:v+f/2,y:l+c+w,horizontalAnchor:"middle",verticalAnchor:A};return I&&(j.height=Math.max(I.y+I.height-(l+c),0),j.width=f),j}if(r==="left"){var E={x:p-b,y:l+c/2,horizontalAnchor:S,verticalAnchor:"middle"};return I&&(E.width=Math.max(E.x-I.x,0),E.height=c),E}if(r==="right"){var R={x:p+m+b,y:l+c/2,horizontalAnchor:_,verticalAnchor:"middle"};return I&&(R.width=Math.max(I.x+I.width-R.x,0),R.height=c),R}var $=I?{width:m,height:c}:{};return r==="insideLeft"?st({x:p+b,y:l+c/2,horizontalAnchor:_,verticalAnchor:"middle"},$):r==="insideRight"?st({x:p+m-b,y:l+c/2,horizontalAnchor:S,verticalAnchor:"middle"},$):r==="insideTop"?st({x:d+s/2,y:l+w,horizontalAnchor:"middle",verticalAnchor:A},$):r==="insideBottom"?st({x:v+f/2,y:l+c-w,horizontalAnchor:"middle",verticalAnchor:x},$):r==="insideTopLeft"?st({x:d+b,y:l+w,horizontalAnchor:_,verticalAnchor:A},$):r==="insideTopRight"?st({x:d+s-b,y:l+w,horizontalAnchor:S,verticalAnchor:A},$):r==="insideBottomLeft"?st({x:v+b,y:l+c-w,horizontalAnchor:_,verticalAnchor:x},$):r==="insideBottomRight"?st({x:v+f-b,y:l+c-w,horizontalAnchor:S,verticalAnchor:x},$):r&&typeof r=="object"&&(D(r.x)||sr(r.x))&&(D(r.y)||sr(r.y))?st({x:u+Yt(r.x,m),y:l+Yt(r.y,c),horizontalAnchor:"end",verticalAnchor:"end"},$):st({x:y,y:l+c/2,horizontalAnchor:"middle",verticalAnchor:"middle"},$)},AC=["labelRef"],OC=["content"];function Zf(e,t){if(e==null)return{};var r,n,i=PC(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var t=e.x,r=e.y,n=e.upperWidth,i=e.lowerWidth,a=e.width,o=e.height,u=e.children,l=h.useMemo(()=>({x:t,y:r,upperWidth:n,lowerWidth:i,width:a,height:o}),[t,r,n,i,a,o]);return h.createElement(Vm.Provider,{value:l},u)},qm=()=>{var e=h.useContext(Vm),t=Aa();return e||(t?ku(t):void 0)},CC=h.createContext(null),kC=()=>{var e=h.useContext(CC),t=N(Fh);return e||t},jC=e=>{var t=e.value,r=e.formatter,n=Oe(e.children)?t:e.children;return typeof r=="function"?r(n):n},Dl=e=>e!=null&&typeof e=="function",TC=(e,t)=>{var r=He(t-e),n=Math.min(Math.abs(t-e),360);return r*n},MC=(e,t,r,n,i)=>{var a=e.offset,o=e.className,u=i.cx,l=i.cy,c=i.innerRadius,s=i.outerRadius,f=i.startAngle,d=i.endAngle,v=i.clockWise,p=(c+s)/2,m=TC(f,d),y=m>=0?1:-1,g,w;switch(t){case"insideStart":g=f+y*a,w=v;break;case"insideEnd":g=d-y*a,w=!v;break;case"end":g=d+y*a,w=v;break;default:throw new Error("Unsupported position ".concat(t))}w=m<=0?w:!w;var x=Ae(u,l,p,g),A=Ae(u,l,p,g+(w?1:-1)*359),O="M".concat(x.x,",").concat(x.y,` - A`).concat(p,",").concat(p,",0,1,").concat(w?0:1,`, - `).concat(A.x,",").concat(A.y),b=Oe(e.id)?yn("recharts-radial-line-"):e.id;return h.createElement("text",At({},n,{dominantBaseline:"central",className:ee("recharts-radial-bar-label",o)}),h.createElement("defs",null,h.createElement("path",{id:b,d:O})),h.createElement("textPath",{xlinkHref:"#".concat(b)},r))},DC=(e,t,r)=>{var n=e.cx,i=e.cy,a=e.innerRadius,o=e.outerRadius,u=e.startAngle,l=e.endAngle,c=(u+l)/2;if(r==="outside"){var s=Ae(n,i,o+t,c),f=s.x,d=s.y;return{x:f,y:d,textAnchor:f>=n?"start":"end",verticalAnchor:"middle"}}if(r==="center")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"middle"};if(r==="centerTop")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"start"};if(r==="centerBottom")return{x:n,y:i,textAnchor:"middle",verticalAnchor:"end"};var v=(a+o)/2,p=Ae(n,i,v,c),m=p.x,y=p.y;return{x:m,y,textAnchor:"middle",verticalAnchor:"middle"}},fi=e=>e!=null&&"cx"in e&&D(e.cx),$C={angle:0,offset:5,zIndex:ke.label,position:"middle",textBreakAll:!1};function NC(e){if(!fi(e))return e;var t=e.cx,r=e.cy,n=e.outerRadius,i=n*2;return{x:t-n,y:r-n,width:i,upperWidth:i,lowerWidth:i,height:i}}function Ft(e){var t=Ze(e,$C),r=t.viewBox,n=t.parentViewBox,i=t.position,a=t.value,o=t.children,u=t.content,l=t.className,c=l===void 0?"":l,s=t.textBreakAll,f=t.labelRef,d=kC(),v=qm(),p=i==="center"?v:d??v,m,y,g;r==null?m=p:fi(r)?m=r:m=ku(r);var w=NC(m);if(!m||Oe(a)&&Oe(o)&&!h.isValidElement(u)&&typeof u!="function")return null;var x=vn(vn({},t),{},{viewBox:m});if(h.isValidElement(u)){x.labelRef;var A=Zf(x,AC);return h.cloneElement(u,A)}if(typeof u=="function"){x.content;var O=Zf(x,OC);if(y=h.createElement(u,O),h.isValidElement(y))return y}else y=jC(t);var b=Ve(t);if(fi(m)){if(i==="insideStart"||i==="insideEnd"||i==="end")return MC(t,i,y,b,m);g=DC(m,t.offset,t.position)}else{if(!w)return null;var S=xC({viewBox:w,position:i,offset:t.offset,parentViewBox:fi(n)?void 0:n});g=vn(vn({x:S.x,y:S.y,textAnchor:S.horizontalAnchor,verticalAnchor:S.verticalAnchor},S.width!==void 0?{width:S.width}:{}),S.height!==void 0?{height:S.height}:{})}return h.createElement(Rt,{zIndex:t.zIndex},h.createElement(Ml,At({ref:f,className:ee("recharts-label",c)},b,g,{textAnchor:Km(b.textAnchor)?b.textAnchor:g.textAnchor,breakAll:s}),y))}Ft.displayName="Label";var LC=(e,t,r)=>{if(!e)return null;var n={viewBox:t,labelRef:r};return e===!0?h.createElement(Ft,At({key:"label-implicit"},n)):pt(e)?h.createElement(Ft,At({key:"label-implicit",value:e},n)):h.isValidElement(e)?e.type===Ft?h.cloneElement(e,vn({key:"label-implicit"},n)):h.createElement(Ft,At({key:"label-implicit",content:e},n)):Dl(e)?h.createElement(Ft,At({key:"label-implicit",content:e},n)):e&&typeof e=="object"?h.createElement(Ft,At({},e,{key:"label-implicit"},n)):null};function RC(e){var t=e.label,r=e.labelRef,n=qm();return LC(t,n,r)||null}var zC=["valueAccessor"],BC=["dataKey","clockWise","id","textBreakAll","zIndex"];function Xi(){return Xi=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(vC(t))return t},Xm=h.createContext(void 0),UC=Xm.Provider,Zm=h.createContext(void 0);Zm.Provider;function KC(){return h.useContext(Xm)}function HC(){return h.useContext(Zm)}function di(e){var t=e.valueAccessor,r=t===void 0?WC:t,n=Jf(e,zC),i=n.dataKey;n.clockWise;var a=n.id,o=n.textBreakAll,u=n.zIndex,l=Jf(n,BC),c=KC(),s=HC(),f=c||s;return!f||!f.length?null:h.createElement(Rt,{zIndex:u??ke.label},h.createElement(qe,{className:"recharts-label-list"},f.map((d,v)=>{var p,m=Oe(i)?r(d,v):he(d.payload,i),y=Oe(a)?{}:{id:"".concat(a,"-").concat(v)};return h.createElement(Ft,Xi({key:"label-".concat(v)},Ve(d),l,y,{fill:(p=n.fill)!==null&&p!==void 0?p:d.fill,parentViewBox:d.parentViewBox,value:m,textBreakAll:o,viewBox:d.viewBox,index:v,zIndex:0}))})))}di.displayName="LabelList";function YC(e){var t=e.label;return t?t===!0?h.createElement(di,{key:"labelList-implicit"}):h.isValidElement(t)||Dl(t)?h.createElement(di,{key:"labelList-implicit",content:t}):typeof t=="object"?h.createElement(di,Xi({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}function ou(){return ou=Object.assign?Object.assign.bind():function(e){for(var t=1;t{var t=e.cx,r=e.cy,n=e.r,i=e.className,a=ee("recharts-dot",i);return D(t)&&D(r)&&D(n)?h.createElement("circle",ou({},it(e),wu(e),{className:a,cx:t,cy:r,r:n})):null},GC={radiusAxis:{},angleAxis:{}},Jm=Ce({name:"polarAxis",initialState:GC,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=t.payload},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=t.payload},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),Ha=Jm.actions;Ha.addRadiusAxis;Ha.removeRadiusAxis;Ha.addAngleAxis;Ha.removeAngleAxis;var VC=Jm.reducer;function qC(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var ey=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;function ed(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function td(e){for(var t=1;t{n||(i.current===null?r(hE(t)):i.current!==t&&r(pE({prev:i.current,next:t})),i.current=t)},[t,r,n]),h.useLayoutEffect(()=>()=>{i.current&&(r(mE(i.current)),i.current=null)},[r]),null}function ak(e){var t=e.legendPayload,r=le(),n=$e(),i=h.useRef(null);return h.useLayoutEffect(()=>{n||(i.current===null?r(cx(t)):i.current!==t&&r(sx({prev:i.current,next:t})),i.current=t)},[r,n,t]),h.useLayoutEffect(()=>()=>{i.current&&(r(fx(i.current)),i.current=null)},[r]),null}function ok(e,t){return sk(e)||ck(e,t)||lk(e,t)||uk()}function uk(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lk(e,t){if(e){if(typeof e=="string")return rd(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?rd(e,t):void 0}}function rd(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&arguments[2]!==void 0?arguments[2]:[],n=[];for(var i of r)n.push({status:"removed",prev:i});for(var a=0;ae[Math.floor(a*r)]);return Nl(n,t)}function vk(e,t){var r=t.map((n,i)=>e[i]);return Nl(r,t)}function hk(e,t){for(var r=new Map,n=0;n{var v=r(f,d);if(v!=null){var p=n.get(v);if(p!==void 0)return i.add(v),p}}),o=[];for(var u of n){var l=ok(u,2),c=l[0],s=l[1];i.has(c)||o.push(s)}return Nl(a,t,o)}function uu(e,t,r){return t==null?null:e==null?t.map(n=>({status:"added",next:n})):r===$l?dk(e,t):r===fk?vk(e,t):pk(e,t,r)}function ry(e,t){var r=h.useRef(e),n=h.useRef(t.current),i=h.useRef(!0);r.current!==e&&(r.current=e,n.current=t.current,i.current=!1);var a=h.useCallback(function(o,u){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(u===0){i.current=!0;return}u===1&&(n.current=o),u>0&&i.current&&l&&(t.current=o)},[t]);return{startValue:n.current,syncStepValue:a}}function mk(e,t){return wk(e)||bk(e,t)||gk(e,t)||yk()}function yk(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gk(e,t){if(e){if(typeof e=="string")return nd(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?nd(e,t):void 0}}function nd(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{typeof e=="function"&&e(),a(!0)},[e]),u=h.useCallback(()=>{typeof t=="function"&&t(),a(!1)},[t]);return{isAnimating:i,handleAnimationStart:o,handleAnimationEnd:u}}function Ak(e){var t,r=e.animationInput,n=e.animationIdPrefix,i=e.items,a=e.previousItemsRef,o=e.isAnimationActive,u=e.animationBegin,l=e.animationDuration,c=e.animationEasing,s=e.onAnimationStart,f=e.onAnimationEnd,d=e.animationInterpolateFn,v=e.animationMatchBy,p=e.shouldUpdatePreviousRef,m=e.children,y=e.layout,g=wh(r,n),w=ry(g,a),x=(t=w.startValue)!==null&&t!==void 0?t:null,A=uu(x,i,v??$l);return h.createElement(bh,{animationId:g,begin:u,duration:l,isActive:o,easing:c,onAnimationEnd:f,onAnimationStart:s,key:g},O=>{var b=x==null,S=i==null?i:d(A,O,y),_=p?p(O):O>0;return w.syncStepValue(S,O,_),S==null?null:m(S,O,b)})}var mo;function Ok(e,t){return _k(e)||Ek(e,t)||Sk(e,t)||Pk()}function Pk(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sk(e,t){if(e){if(typeof e=="string")return id(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?id(e,t):void 0}}function id(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var e=h.useState(()=>yn("uid-")),t=Ok(e,1),r=t[0];return r},ny=(mo=Gy.useId)!==null&&mo!==void 0?mo:Ik;function Ck(e,t){var r=ny();return t||(e?"".concat(e,"-").concat(r):r)}var kk=h.createContext(void 0),jk=e=>{var t=e.id,r=e.type,n=e.children,i=Ck("recharts-".concat(r),t);return h.createElement(kk.Provider,{value:i},n(i))},Tk={cartesianItems:[],polarItems:[]},iy=Ce({name:"graphicalItems",initialState:Tk,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(t.payload)},prepare:Q()},replaceCartesianGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,a=Ye(e).cartesianItems.indexOf(n);a>-1&&(e.cartesianItems[a]=i)},prepare:Q()},removeCartesianGraphicalItem:{reducer(e,t){var r=Ye(e).cartesianItems.indexOf(t.payload);r>-1&&e.cartesianItems.splice(r,1)},prepare:Q()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(t.payload)},prepare:Q()},removePolarGraphicalItem:{reducer(e,t){var r=Ye(e).polarItems.indexOf(t.payload);r>-1&&e.polarItems.splice(r,1)},prepare:Q()},replacePolarGraphicalItem:{reducer(e,t){var r=t.payload,n=r.prev,i=r.next,a=Ye(e).polarItems.indexOf(n);a>-1&&(e.polarItems[a]=i)},prepare:Q()}}}),Zr=iy.actions,Mk=Zr.addCartesianGraphicalItem,Dk=Zr.replaceCartesianGraphicalItem,$k=Zr.removeCartesianGraphicalItem;Zr.addPolarGraphicalItem;Zr.removePolarGraphicalItem;Zr.replacePolarGraphicalItem;var Nk=iy.reducer,Lk=e=>{var t=le(),r=h.useRef(null);return h.useLayoutEffect(()=>{r.current===null?t(Mk(e)):r.current!==e&&t(Dk({prev:r.current,next:e})),r.current=e},[t,e]),h.useLayoutEffect(()=>()=>{r.current&&(t($k(r.current)),r.current=null)},[t]),null},Rk=h.memo(Lk),zk=["points"];function ad(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function yo(e){for(var t=1;t{var g,w,x=yo(yo(yo({r:3},o),d),{},{index:y,cx:(g=m.x)!==null&&g!==void 0?g:void 0,cy:(w=m.y)!==null&&w!==void 0?w:void 0,dataKey:a,value:m.value,payload:m.payload,points:t});return h.createElement(Hk,{key:"dot-".concat(y),option:r,dotProps:x,className:i})}),p={};return u&&l!=null&&(p.clipPath="url(#clipPath-".concat(f?"":"dots-").concat(l,")")),h.createElement(Rt,{zIndex:s},h.createElement(qe,Zi({className:n},p),v))}function od(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ud(e){for(var t=1;t({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),uj=P([oj,Mt,Dt],(e,t,r)=>{if(!(!e||t==null||r==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,r-e.top-e.bottom)}}),Ll=()=>N(uj),lj=()=>N(h_);function ld(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function go(e){for(var t=1;t{var t=e.point,r=e.childIndex,n=e.mainColor,i=e.activeDot,a=e.dataKey,o=e.clipPath;if(i===!1||t.x==null||t.y==null)return null;var u={index:r,dataKey:a,cx:t.x,cy:t.y,r:4,fill:n??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},l=go(go(go({},u),ia(i)),wu(i)),c;return h.isValidElement(i)?c=h.cloneElement(i,l):typeof i=="function"?c=i(l):c=h.createElement(Qm,l),h.createElement(qe,{className:"recharts-active-dot",clipPath:o},c)};function cd(e){var t=e.points,r=e.mainColor,n=e.activeDot,i=e.itemDataKey,a=e.clipPath,o=e.zIndex,u=o===void 0?ke.activeDot:o,l=N(_n),c=lj();if(t==null||c==null)return null;var s=t.find(f=>c.includes(f.payload));return Oe(s)?null:h.createElement(Rt,{zIndex:u},h.createElement(dj,{point:s,childIndex:Number(l),mainColor:r,dataKey:i,activeDot:n,clipPath:a}))}var vj=e=>{var t=e.chartData,r=le(),n=$e();return h.useEffect(()=>n?()=>{}:(r(jf(t)),()=>{r(jf(void 0))}),[t,r,n]),null},sd={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},uy=Ce({name:"brush",initialState:sd,reducers:{setBrushSettings(e,t){return t.payload==null?sd:t.payload}}});uy.actions.setBrushSettings;var hj=uy.reducer;function pj(e){return(e%180+180)%180}var mj=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=pj(i),o=a*Math.PI/180,u=Math.atan(n/r),l=o>u&&o{e.dots.push(t.payload)},removeDot:(e,t)=>{var r=Ye(e).dots.findIndex(n=>n===t.payload);r!==-1&&e.dots.splice(r,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var r=Ye(e).areas.findIndex(n=>n===t.payload);r!==-1&&e.areas.splice(r,1)},addLine:(e,t)=>{e.lines.push(t.payload)},removeLine:(e,t)=>{var r=Ye(e).lines.findIndex(n=>n===t.payload);r!==-1&&e.lines.splice(r,1)}}}),Qr=ly.actions;Qr.addDot;Qr.removeDot;Qr.addArea;Qr.removeArea;Qr.addLine;Qr.removeLine;var gj=ly.reducer;function bj(e,t){return Oj(e)||Aj(e,t)||xj(e,t)||wj()}function wj(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xj(e,t){if(e){if(typeof e=="string")return fd(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?fd(e,t):void 0}}function fd(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var t=e.children,r=h.useState("".concat(yn("recharts"),"-clip")),n=bj(r,1),i=n[0],a=Ll();if(a==null)return null;var o=a.x,u=a.y,l=a.width,c=a.height;return h.createElement(Pj.Provider,{value:i},h.createElement("defs",null,h.createElement("clipPath",{id:i},h.createElement("rect",{x:o,y:u,height:c,width:l}))),t)};function cy(e,t){if(t<1)return[];if(t===1)return e;for(var r=[],n=0;ne*i)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-i)<=0}function Ij(e,t){return cy(e,t+1)}function Cj(e,t,r,n,i){for(var a=(n||[]).slice(),o=t.start,u=t.end,l=0,c=1,s=o,f=function(){var p=n==null?void 0:n[l];if(p===void 0)return{v:cy(n,c)};var m=l,y,g=()=>(y===void 0&&(y=r(p,m)),y),w=p.coordinate,x=l===0||Cn(e,w,g,s,u);x||(l=0,s=o,c+=1),x&&(s=w+e*(g()/2+i),l+=c)},d;c<=a.length;)if(d=f(),d)return d.v;return[]}function kj(e,t,r,n,i){var a=(n||[]).slice(),o=a.length;if(o===0)return[];for(var u=t.start,l=t.end,c=1;c<=o;c++){for(var s=(o-1)%c,f=u,d=!0,v=function(){var A=n[m];if(A==null)return 0;var O=m,b,S=()=>(b===void 0&&(b=r(A,O)),b),_=A.coordinate,I=m===s||Cn(e,_,S,f,l);if(!I)return d=!1,1;I&&(f=_+e*(S()/2+i))},p,m=s;m(m===void 0&&(m=r(v,d)),m);if(d===o-1){var g=e*(p.coordinate+e*y()/2-l);a[d]=p=_e(_e({},p),{},{tickCoord:g>0?p.coordinate-g*e:p.coordinate})}else a[d]=p=_e(_e({},p),{},{tickCoord:p.coordinate});if(p.tickCoord!=null){var w=Cn(e,p.tickCoord,y,u,l);w&&(l=p.tickCoord-e*(y()/2+i),a[d]=_e(_e({},p),{},{isShow:!0}))}},s=o-1;s>=0;s--)c(s);return a}function $j(e,t,r,n,i,a){var o=(n||[]).slice(),u=o.length,l=t.start,c=t.end;if(a){var s=n[u-1];if(s!=null){var f=r(s,u-1),d=e*(s.coordinate+e*f/2-c);if(o[u-1]=s=_e(_e({},s),{},{tickCoord:d>0?s.coordinate-d*e:s.coordinate}),s.tickCoord!=null){var v=Cn(e,s.tickCoord,()=>f,l,c);v&&(c=s.tickCoord-e*(f/2+i),o[u-1]=_e(_e({},s),{},{isShow:!0}))}}}for(var p=a?u-1:u,m=function(w){var x=o[w];if(x==null)return 1;var A=x,O,b=()=>(O===void 0&&(O=r(x,w)),O);if(w===0){var S=e*(A.coordinate-e*b()/2-l);o[w]=A=_e(_e({},A),{},{tickCoord:S<0?A.coordinate-S*e:A.coordinate})}else o[w]=A=_e(_e({},A),{},{tickCoord:A.coordinate});if(A.tickCoord!=null){var _=Cn(e,A.tickCoord,b,l,c);_&&(l=A.tickCoord+e*(b()/2+i),o[w]=_e(_e({},A),{},{isShow:!0}))}},y=0;y{var S=typeof c=="function"?c(O.value,b):O.value;return p==="width"?Ej(pn(S,{fontSize:t,letterSpacing:r}),m,f):pn(S,{fontSize:t,letterSpacing:r})[p]},g=i[0],w=i[1],x=i.length>=2&&g!=null&&w!=null?He(w.coordinate-g.coordinate):1,A=_j(a,x,p);return l==="equidistantPreserveStart"?Cj(x,A,y,i,o):l==="equidistantPreserveEnd"?kj(x,A,y,i,o):(l==="preserveStart"||l==="preserveStartEnd"?v=$j(x,A,y,i,o,l==="preserveStartEnd"):v=Dj(x,A,y,i,o),v.filter(O=>O.isShow))}var Nj=e=>{var t=e.ticks,r=e.label,n=e.labelGapWithTick,i=n,a=e.tickSize,o=a===void 0?0:a,u=e.tickMargin,l=u===void 0?0:u,c=0;if(t){Array.from(t).forEach(v=>{if(v){var p=v.getBoundingClientRect();p.width>c&&(c=p.width)}});var s=r?r.getBoundingClientRect().width:0,f=o+l,d=c+f+s+(r?i:0);return Math.round(d)}return 0},Lj={xAxis:{},yAxis:{}},sy=Ce({name:"renderedTicks",initialState:Lj,reducers:{setRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,i=r.axisId,a=r.ticks;e[n][i]=a},removeRenderedTicks:(e,t)=>{var r=t.payload,n=r.axisType,i=r.axisId;delete e[n][i]}}}),fy=sy.actions,Rj=fy.setRenderedTicks,zj=fy.removeRenderedTicks,Bj=sy.reducer,Fj=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function vd(e,t){return Hj(e)||Kj(e,t)||Uj(e,t)||Wj()}function Wj(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Uj(e,t){if(e){if(typeof e=="string")return hd(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?hd(e,t):void 0}}function hd(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n==null||r==null)return Fr;var a=t.map(o=>({value:o.value,coordinate:o.coordinate,offset:o.offset,index:o.index}));return i(Rj({ticks:a,axisId:n,axisType:r})),()=>{i(zj({axisId:n,axisType:r}))}},[i,t,n,r]),null}var nT=h.forwardRef((e,t)=>{var r=e.ticks,n=r===void 0?[]:r,i=e.tick,a=e.tickLine,o=e.stroke,u=e.tickFormatter,l=e.unit,c=e.padding,s=e.tickTextProps,f=e.orientation,d=e.mirror,v=e.x,p=e.y,m=e.width,y=e.height,g=e.tickSize,w=e.tickMargin,x=e.fontSize,A=e.letterSpacing,O=e.getTicksConfig,b=e.events,S=e.axisType,_=e.axisId,I=Rl(ie(ie({},O),{},{ticks:n}),x,A),C=it(O),j=ia(i),E=Km(C.textAnchor)?C.textAnchor:Jj(f,d),R=eT(f,d),$={};typeof a=="object"&&($=a);var V=ie(ie({},C),{},{fill:"none"},$),H=I.map(q=>ie({entry:q},Qj(q,v,p,m,y,f,g,d,w))),Y=H.map(q=>{var W=q.entry,Se=q.line;return h.createElement(qe,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(W.value,"-").concat(W.coordinate,"-").concat(W.tickCoord)},a&&h.createElement("line",mr({},V,Se,{className:ee("recharts-cartesian-axis-tick-line",yr(a,"className"))})))}),B=H.map((q,W)=>{var Se,ge,ae=q.entry,Ne=q.tick,Le=ie(ie(ie(ie({verticalAnchor:R},C),{},{textAnchor:E,stroke:"none",fill:o},Ne),{},{index:W,payload:ae,visibleTicksCount:I.length,tickFormatter:u,padding:c},s),{},{angle:(Se=(ge=s==null?void 0:s.angle)!==null&&ge!==void 0?ge:C.angle)!==null&&Se!==void 0?Se:0}),Je=ie(ie({},Le),j);return h.createElement(qe,mr({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(ae.value,"-").concat(ae.coordinate,"-").concat(ae.tickCoord)},Mg(b,ae,W)),i&&h.createElement(tT,{option:i,tickProps:Je,value:"".concat(typeof u=="function"?u(ae.value,W):ae.value).concat(l||"")}))});return h.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(S,"-ticks")},h.createElement(rT,{ticks:I,axisId:_,axisType:S}),B.length>0&&h.createElement(Rt,{zIndex:ke.label},h.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(S,"-tick-labels"),ref:t},B)),Y.length>0&&h.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(S,"-tick-lines")},Y))}),iT=h.forwardRef((e,t)=>{var r=e.axisLine,n=e.width,i=e.height,a=e.className,o=e.hide,u=e.ticks,l=e.axisType,c=e.axisId,s=Yj(e,Fj),f=h.useState(""),d=vd(f,2),v=d[0],p=d[1],m=h.useState(""),y=vd(m,2),g=y[0],w=y[1],x=h.useRef(null);h.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var O;return Nj({ticks:x.current,label:(O=e.labelRef)===null||O===void 0?void 0:O.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var A=h.useCallback(O=>{if(O){var b=O.getElementsByClassName("recharts-cartesian-axis-tick-value");x.current=b;var S=b[0];if(S){var _=window.getComputedStyle(S),I=_.fontSize,C=_.letterSpacing;(I!==v||C!==g)&&(p(I),w(C))}}},[v,g]);return o||n!=null&&n<=0||i!=null&&i<=0?null:h.createElement(Rt,{zIndex:e.zIndex},h.createElement(qe,{className:ee("recharts-cartesian-axis",a)},h.createElement(Zj,{x:e.x,y:e.y,width:n,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:r,otherSvgProps:it(e)}),h.createElement(nT,{ref:A,axisType:l,events:s,fontSize:v,getTicksConfig:e,height:e.height,letterSpacing:g,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:u,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:c}),h.createElement(IC,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},h.createElement(RC,{label:e.label,labelRef:e.labelRef}),e.children)))}),zl=h.forwardRef((e,t)=>{var r=Ze(e,_t);return h.createElement(iT,mr({},r,{ref:t}))});zl.displayName="CartesianAxis";var aT=["x1","y1","x2","y2","key"],oT=["offset"],uT=["xAxisId","yAxisId"],lT=["xAxisId","yAxisId"];function md(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ie(e){for(var t=1;t{var t=e.fill;if(!t||t==="none")return null;var r=e.fillOpacity,n=e.x,i=e.y,a=e.width,o=e.height,u=e.ry;return h.createElement("rect",{x:n,y:i,ry:u,width:a,height:o,stroke:"none",fill:t,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function dy(e){var t=e.option,r=e.lineItemProps,n;if(h.isValidElement(t))n=h.cloneElement(t,r);else if(typeof t=="function")n=t(r);else{var i,a=r.x1,o=r.y1,u=r.x2,l=r.y2,c=r.key,s=Qi(r,aT),f=(i=it(s))!==null&&i!==void 0?i:{};f.offset;var d=Qi(f,oT);n=h.createElement("line",or({},d,{x1:a,y1:o,x2:u,y2:l,fill:"none",key:c}))}return n}function hT(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,a=e.horizontalPoints;if(!i||!a||!a.length)return null;e.xAxisId,e.yAxisId;var o=Qi(e,uT),u=a.map((l,c)=>{var s=Ie(Ie({},o),{},{x1:t,y1:l,x2:t+r,y2:l,key:"line-".concat(c),index:c});return h.createElement(dy,{key:"line-".concat(c),option:i,lineItemProps:s})});return h.createElement("g",{className:"recharts-cartesian-grid-horizontal"},u)}function pT(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,a=e.verticalPoints;if(!i||!a||!a.length)return null;e.xAxisId,e.yAxisId;var o=Qi(e,lT),u=a.map((l,c)=>{var s=Ie(Ie({},o),{},{x1:l,y1:t,x2:l,y2:t+r,key:"line-".concat(c),index:c});return h.createElement(dy,{option:i,lineItemProps:s,key:"line-".concat(c)})});return h.createElement("g",{className:"recharts-cartesian-grid-vertical"},u)}function mT(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,a=e.width,o=e.height,u=e.horizontalPoints,l=e.horizontal,c=l===void 0?!0:l;if(!c||!t||!t.length||u==null)return null;var s=u.map(d=>Math.round(d+i-i)).sort((d,v)=>d-v);i!==s[0]&&s.unshift(0);var f=s.map((d,v)=>{var p=s[v+1],m=p==null,y=m?i+o-d:p-d;if(y<=0)return null;var g=v%t.length;return h.createElement("rect",{key:"react-".concat(v),y:d,x:n,height:y,width:a,stroke:"none",fill:t[g],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return h.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},f)}function yT(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,u=e.width,l=e.height,c=e.verticalPoints;if(!r||!n||!n.length)return null;var s=c.map(d=>Math.round(d+a-a)).sort((d,v)=>d-v);a!==s[0]&&s.unshift(0);var f=s.map((d,v)=>{var p=s[v+1],m=p==null,y=m?a+u-d:p-d;if(y<=0)return null;var g=v%n.length;return h.createElement("rect",{key:"react-".concat(v),x:d,y:o,width:y,height:l,stroke:"none",fill:n[g],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return h.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},f)}var gT=(e,t)=>{var r=e.xAxis,n=e.width,i=e.height,a=e.offset;return qv(Rl(Ie(Ie(Ie({},_t),r),{},{ticks:Xv(r),viewBox:{x:0,y:0,width:n,height:i}})),a.left,a.left+a.width,t)},bT=(e,t)=>{var r=e.yAxis,n=e.width,i=e.height,a=e.offset;return qv(Rl(Ie(Ie(Ie({},_t),r),{},{ticks:Xv(r),viewBox:{x:0,y:0,width:n,height:i}})),a.top,a.top+a.height,t)},wT={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:ke.grid};function vy(e){var t=ih(),r=ah(),n=nh(),i=Ie(Ie({},Ze(e,wT)),{},{x:D(e.x)?e.x:n.left,y:D(e.y)?e.y:n.top,width:D(e.width)?e.width:n.width,height:D(e.height)?e.height:n.height}),a=i.xAxisId,o=i.yAxisId,u=i.x,l=i.y,c=i.width,s=i.height,f=i.syncWithTicks,d=i.horizontalValues,v=i.verticalValues,p=$e(),m=N(I=>gf(I,"xAxis",a,p)),y=N(I=>gf(I,"yAxis",o,p));if(!mt(c)||!mt(s)||!D(u)||!D(l))return null;var g=i.verticalCoordinatesGenerator||gT,w=i.horizontalCoordinatesGenerator||bT,x=i.horizontalPoints,A=i.verticalPoints;if((!x||!x.length)&&typeof w=="function"){var O=d&&d.length,b=w({yAxis:y?Ie(Ie({},y),{},{ticks:O?d:y.ticks}):void 0,width:t??c,height:r??s,offset:n},O?!0:f);_i(Array.isArray(b),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof b,"]")),Array.isArray(b)&&(x=b)}if((!A||!A.length)&&typeof g=="function"){var S=v&&v.length,_=g({xAxis:m?Ie(Ie({},m),{},{ticks:S?v:m.ticks}):void 0,width:t??c,height:r??s,offset:n},S?!0:f);_i(Array.isArray(_),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof _,"]")),Array.isArray(_)&&(A=_)}return h.createElement(Rt,{zIndex:i.zIndex},h.createElement("g",{className:"recharts-cartesian-grid"},h.createElement(vT,{fill:i.fill,fillOpacity:i.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),h.createElement(mT,or({},i,{horizontalPoints:x})),h.createElement(yT,or({},i,{verticalPoints:A})),h.createElement(hT,or({},i,{offset:n,horizontalPoints:x,xAxis:m,yAxis:y})),h.createElement(pT,or({},i,{offset:n,verticalPoints:A,xAxis:m,yAxis:y}))))}vy.displayName="CartesianGrid";var xT={},hy=Ce({name:"errorBars",initialState:xT,reducers:{addErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.errorBar;e[n]||(e[n]=[]),e[n].push(i)},replaceErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.prev,a=r.next;e[n]&&(e[n]=e[n].map(o=>o.dataKey===i.dataKey&&o.direction===i.direction?a:o))},removeErrorBar:(e,t)=>{var r=t.payload,n=r.itemId,i=r.errorBar;e[n]&&(e[n]=e[n].filter(a=>a.dataKey!==i.dataKey||a.direction!==i.direction))}}}),Bl=hy.actions;Bl.addErrorBar;Bl.replaceErrorBar;Bl.removeErrorBar;var AT=hy.reducer;function py(e,t){var r,n,i=N(c=>$t(c,e)),a=N(c=>Nt(c,t)),o=(r=i==null?void 0:i.allowDataOverflow)!==null&&r!==void 0?r:ce.allowDataOverflow,u=(n=a==null?void 0:a.allowDataOverflow)!==null&&n!==void 0?n:se.allowDataOverflow,l=o||u;return{needClip:l,needClipX:o,needClipY:u}}function OT(e){var t=e.xAxisId,r=e.yAxisId,n=e.clipPathId,i=Ll(),a=py(t,r),o=a.needClipX,u=a.needClipY,l=a.needClip,c=N(x=>Jp(x,t,!1)),s=N(x=>em(x,r,!1));if(!l||!i)return null;var f=i.x,d=i.y,v=i.width,p=i.height,m=o&&c?Math.min(c[0],c[1]):f-v/2,y=u&&s?Math.min(s[0],s[1]):d-p/2,g=o&&c?Math.abs(c[1]-c[0]):v*2,w=u&&s?Math.abs(s[1]-s[0]):p*2;return h.createElement("clipPath",{id:"clipPath-".concat(n)},h.createElement("rect",{x:m,y,width:g,height:w}))}function PT(e){var t=ia(e),r=3,n=2;if(t!=null){var i=t.r,a=t.strokeWidth,o=Number(i),u=Number(a);return(Number.isNaN(o)||o<0)&&(o=r),(Number.isNaN(u)||u<0)&&(u=n),{r:o,strokeWidth:u}}return{r,strokeWidth:n}}function Fl(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||n===void 0?void 0:n.xAxisId)!==null&&r!==void 0?r:ay}function Wl(e,t){var r,n;return(r=(n=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||n===void 0?void 0:n.yAxisId)!==null&&r!==void 0?r:ay}var my=(e,t,r)=>lm(e,"xAxis",Fl(e,t),r),yy=(e,t,r)=>um(e,"xAxis",Fl(e,t),r),gy=(e,t,r)=>lm(e,"yAxis",Wl(e,t),r),by=(e,t,r)=>um(e,"yAxis",Wl(e,t),r),ST=P([re,my,gy,yy,by],(e,t,r,n,i)=>bt(e,"xAxis")?Ei(t,n,!1):Ei(r,i,!1)),ET=(e,t)=>t,wy=P([_p,ET],(e,t)=>e.filter(r=>r.type==="area").find(r=>r.id===t)),xy=e=>{var t=re(e),r=bt(t,"xAxis");return r?"yAxis":"xAxis"},_T=(e,t)=>{var r=xy(e);return r==="yAxis"?Wl(e,t):Fl(e,t)},IT=(e,t,r)=>Lp(e,xy(e),_T(e,t),r),CT=P([wy,IT],(e,t)=>{var r;if(!(e==null||t==null)){var n=e.stackId,i=Hu(e);if(!(n==null||i==null)){var a=(r=t[n])===null||r===void 0?void 0:r.stackedData,o=a==null?void 0:a.find(u=>u.key===i);if(o!=null)return o.map(u=>[u[0],u[1]])}}}),kT=P([re,my,gy,yy,by,CT,x1,ST,wy,R1],(e,t,r,n,i,a,o,u,l,c)=>{var s=o.chartData,f=o.dataStartIndex,d=o.dataEndIndex;if(!(l==null||e!=="horizontal"&&e!=="vertical"||t==null||r==null||n==null||i==null||n.length===0||i.length===0||u==null)){var v=l.data,p;if(v&&v.length>0?p=v:p=s==null?void 0:s.slice(f,d+1),p!=null)return rM({layout:e,xAxis:t,yAxis:r,xAxisTicks:n,yAxisTicks:i,dataStartIndex:f,areaSettings:l,stackedData:a,displayedData:p,chartBaseValue:c,bandSize:u})}}),jT=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],TT=["id","baseLine"];function mn(){return mn=Object.assign?Object.assign.bind():function(e){for(var t=1;tf.y||0));return D(i)?s=Math.max(i,s):i&&Array.isArray(i)&&i.length&&(s=Math.max(...i.map(f=>f.y||0),s)),D(s)?h.createElement("rect",{x:uf.x||0));return D(i)?s=Math.max(i,s):i&&Array.isArray(i)&&i.length&&(s=Math.max(...i.map(f=>f.x||0),s)),D(s)?h.createElement("rect",{x:0,y:ue==null?[]:t===1?e.flatMap(r=>r.status==="removed"?[]:[r.next]):e.flatMap(r=>r.status==="matched"?[Br(Br({},r.next),{},{x:Ot(r.prev.x,r.next.x,t),y:Ot(r.prev.y,r.next.y,t)})]:r.status==="added"?[r.next]:[]),Oy={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:$l,animationInterpolateFn:KT,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:LT,xAxisId:0,yAxisId:0,zIndex:ke.area};function ea(e,t){return e&&e!=="none"?e:t}var HT=e=>{var t=e.dataKey,r=e.name,n=e.stroke,i=e.fill,a=e.legendType,o=e.hide;return[{inactive:o,dataKey:t,type:a,color:ea(n,i),value:Zv(r,t),payload:e}]},YT=h.memo(e=>{var t=e.dataKey,r=e.data,n=e.stroke,i=e.strokeWidth,a=e.fill,o=e.name,u=e.hide,l=e.unit,c=e.tooltipType,s=e.id,f={dataDefinedOnItem:r,getPosition:Fr,settings:{stroke:n,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:Zv(o,t),hide:u,type:c,color:ea(n,a),unit:l,graphicalItemId:s}};return h.createElement(ik,{tooltipEntrySettings:f})});function GT(e){var t=e.clipPathId,r=e.points,n=e.props,i=n.needClip,a=n.dot,o=n.dataKey,u=it(n);return h.createElement(Gk,{points:r,dot:a,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:o,baseProps:u,needClip:i,clipPathId:t})}function VT(e){var t=e.showLabels,r=e.children,n=e.points,i=n.map(a=>{var o,u,l={x:(o=a.x)!==null&&o!==void 0?o:0,y:(u=a.y)!==null&&u!==void 0?u:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Br(Br({},l),{},{value:a.value,payload:a.payload,parentViewBox:void 0,viewBox:l,fill:void 0})});return h.createElement(UC,{value:t?i:void 0},r)}function qT(e){var t=e.points,r=e.baseLine,n=e.needClip,i=e.clipPathId,a=e.props,o=e.animationElapsedTime,u=e.isAnimating,l=e.isEntrance,c=a.layout,s=a.type,f=a.stroke,d=a.connectNulls,v=a.isRange,p=a.shape,m=a.id,y=Ay(a,RT),g=Ve(y),w=Br(Br({},g),{},{id:m,points:t,connectNulls:d,type:s,baseLine:r,layout:c,stroke:f,isRange:v,animationElapsedTime:o,isAnimating:u,isEntrance:l});return h.createElement(h.Fragment,null,(t==null?void 0:t.length)>1&&h.createElement(qe,{clipPath:n?"url(#clipPath-".concat(i,")"):void 0},h.createElement(nk,{option:p,DefaultShape:Oy.shape,shapeProps:w})),h.createElement(GT,{points:t,props:y,clipPathId:i}))}function XT(e,t,r){if(D(e)){var n=D(t)?t:void 0;return Ot(n,e,r)}if(Oe(e)||ht(e)){var i=D(t)?t:void 0;return Ot(i,0,r)}return e}function ZT(e){var t=e.needClip,r=e.clipPathId,n=e.props,i=e.previousPointsRef,a=e.previousBaselineRef,o=n.points,u=n.baseLine,l=n.isAnimationActive,c=n.animationBegin,s=n.animationDuration,f=n.animationEasing,d=n.animationMatchBy,v=n.animationInterpolateFn,p=h.useMemo(()=>({points:o,baseLine:u}),[o,u]),m=ry(p,a),y=ju(),g=xk(n.onAnimationStart,n.onAnimationEnd),w=g.isAnimating,x=g.handleAnimationStart,A=g.handleAnimationEnd,O=m.startValue;if(y==null)return null;var b;return Array.isArray(u)&&Array.isArray(O)?b=uu(O,u,d):Array.isArray(u)?b=uu(null,u,d):b=null,h.createElement(Ak,{animationInput:p,animationIdPrefix:"recharts-area-",items:o,previousItemsRef:i,isAnimationActive:l,animationBegin:c,animationDuration:s,animationEasing:f,onAnimationStart:x,onAnimationEnd:A,animationInterpolateFn:v,animationMatchBy:d,layout:y},(S,_,I)=>{var C;return _===1?C=u:Array.isArray(u)?C=v(b,_,y):C=I?u:XT(u,O,_),m.syncStepValue(C,_),h.createElement(VT,{showLabels:!w,points:o},n.children,h.createElement(qT,{points:S,baseLine:C,needClip:t,clipPathId:r,props:n,animationElapsedTime:_,isAnimating:w||_<1,isEntrance:I}),h.createElement(YC,{label:n.label}))})}function QT(e){var t=e.needClip,r=e.clipPathId,n=e.props,i=h.useRef(null),a=h.useRef();return h.createElement(ZT,{needClip:t,clipPathId:r,props:n,previousPointsRef:i,previousBaselineRef:a})}class JT extends h.PureComponent{render(){var t=this.props,r=t.hide,n=t.dot,i=t.points,a=t.className,o=t.top,u=t.left,l=t.needClip,c=t.xAxisId,s=t.yAxisId,f=t.width,d=t.height,v=t.id,p=t.baseLine,m=t.zIndex;if(r)return null;var y=ee("recharts-area",a),g=v,w=PT(n),x=w.r,A=w.strokeWidth,O=ey(n),b=x*2+A,S=l?"url(#clipPath-".concat(O?"":"dots-").concat(g,")"):void 0;return h.createElement(Rt,{zIndex:m},h.createElement(qe,{className:y},l&&h.createElement("defs",null,h.createElement(OT,{clipPathId:g,xAxisId:c,yAxisId:s}),!O&&h.createElement("clipPath",{id:"clipPath-dots-".concat(g)},h.createElement("rect",{x:u-b/2,y:o-b/2,width:f+b,height:d+b}))),h.createElement(QT,{needClip:l,clipPathId:g,props:this.props})),h.createElement(cd,{points:i,mainColor:ea(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:S}),this.props.isRange&&Array.isArray(p)&&h.createElement(cd,{points:p,mainColor:ea(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:S}))}}function eM(e){var t,r=e.activeDot,n=e.animationBegin,i=e.animationDuration,a=e.animationEasing,o=e.connectNulls,u=e.dot,l=e.fill,c=e.fillOpacity,s=e.hide,f=e.isAnimationActive,d=e.legendType,v=e.stroke,p=e.xAxisId,m=e.yAxisId,y=Ay(e,zT),g=Wr(),w=jm(),x=py(p,m),A=x.needClip,O=$e(),b=(t=N(V=>kT(V,e.id,O)))!==null&&t!==void 0?t:{},S=b.points,_=b.isRange,I=b.baseLine,C=Ll();if(g!=="horizontal"&&g!=="vertical"||C==null||w!=="AreaChart"&&w!=="ComposedChart")return null;var j=C.height,E=C.width,R=C.x,$=C.y;return!S||!S.length?null:h.createElement(JT,Ji({},y,{activeDot:r,animationBegin:n,animationDuration:i,animationEasing:a,baseLine:I,connectNulls:o,dot:u,fill:l,fillOpacity:c,height:j,hide:s,layout:g,isAnimationActive:f,isRange:_,legendType:d,needClip:A,points:S,stroke:v,width:E,left:R,top:$,xAxisId:p,yAxisId:m}))}var tM=(e,t,r,n,i)=>{var a=r??t;if(D(a))return a;var o=e==="horizontal"?i:n,u=o.scale.domain();if(o.type==="number"){var l=Math.max(u[0],u[1]),c=Math.min(u[0],u[1]);return a==="dataMin"?c:a==="dataMax"||l<0?l:Math.max(Math.min(u[0],u[1]),0)}return a==="dataMin"?u[0]:a==="dataMax"?u[1]:u[0]};function rM(e){var t=e.areaSettings,r=t.connectNulls,n=t.baseValue,i=t.dataKey,a=e.stackedData,o=e.layout,u=e.chartBaseValue,l=e.xAxis,c=e.yAxis,s=e.displayedData,f=e.dataStartIndex,d=e.xAxisTicks,v=e.yAxisTicks,p=e.bandSize,m=a&&a.length,y=tM(o,u,n,l,c),g=o==="horizontal",w=!1,x=s.map((O,b)=>{var S,_,I,C;if(m)C=a[f+b];else{var j=he(O,i);Array.isArray(j)?(C=j,w=!0):C=[y,j]}var E=(S=(_=C)===null||_===void 0?void 0:_[1])!==null&&S!==void 0?S:null,R=E==null||m&&!r&&he(O,i)==null;if(g){var $;return{x:Sc({axis:l,ticks:d,bandSize:p,entry:O,index:b}),y:R?null:($=c.scale.map(E))!==null&&$!==void 0?$:null,value:C,payload:O}}return{x:R?null:(I=l.scale.map(E))!==null&&I!==void 0?I:null,y:Sc({axis:c,ticks:v,bandSize:p,entry:O,index:b}),value:C,payload:O}}),A;return m||w?A=x.map(O=>{var b,S=Array.isArray(O.value)?O.value[0]:null;if(g){var _;return{x:O.x,y:S!=null&&O.y!=null&&(_=c.scale.map(S))!==null&&_!==void 0?_:null,payload:O.payload}}return{x:S!=null&&(b=l.scale.map(S))!==null&&b!==void 0?b:null,y:O.y,payload:O.payload}}):A=g?c.scale.map(y):l.scale.map(y),{points:x,baseLine:A??0,isRange:w}}function nM(e){var t=Ze(e,Oy),r=$e();return h.createElement(jk,{id:t.id,type:"area"},n=>h.createElement(h.Fragment,null,h.createElement(ak,{legendPayload:HT(t)}),h.createElement(YT,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,tooltipType:t.tooltipType,id:n}),h.createElement(Rk,{type:"area",id:n,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:uw(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:r,connectNulls:t.connectNulls}),h.createElement(eM,Ji({},t,{id:n}))))}var Py=h.memo(nM,Ea);Py.displayName="Area";var iM=["domain","range"],aM=["domain","range"];function bd(e,t){if(e==null)return{};var r,n,i=oM(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{if(o!=null)return Ad(Ad({},a),{},{type:o})},[a,o]);return h.useLayoutEffect(()=>{u!=null&&(r.current===null?t(Qk(u)):r.current!==u&&t(Jk({prev:r.current,next:u})),r.current=u)},[u,t]),h.useLayoutEffect(()=>()=>{r.current&&(t(ej(r.current)),r.current=null)},[t]),null}var pM=e=>{var t=e.xAxisId,r=e.className,n=N(Jv),i=$e(),a="xAxis",o=N(d=>om(d,a,t,i)),u=N(d=>qS(d,t)),l=N(d=>tE(d,t)),c=N(d=>Op(d,t));if(u==null||l==null||c==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var s=cu(e,lM);c.id,c.scale;var f=cu(c,cM);return h.createElement(zl,lu({},s,f,{x:l.x,y:l.y,width:u.width,height:u.height,className:ee("recharts-".concat(a," ").concat(a),r),viewBox:n,ticks:o,axisType:a,axisId:t}))},mM={allowDataOverflow:ce.allowDataOverflow,allowDecimals:ce.allowDecimals,allowDuplicatedCategory:ce.allowDuplicatedCategory,angle:ce.angle,axisLine:_t.axisLine,height:ce.height,hide:!1,includeHidden:ce.includeHidden,interval:ce.interval,label:!1,minTickGap:ce.minTickGap,mirror:ce.mirror,orientation:ce.orientation,padding:ce.padding,reversed:ce.reversed,scale:ce.scale,tick:ce.tick,tickCount:ce.tickCount,tickLine:_t.tickLine,tickSize:_t.tickSize,type:ce.type,niceTicks:ce.niceTicks,xAxisId:0},yM=e=>{var t=Ze(e,mM);return h.createElement(h.Fragment,null,h.createElement(hM,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),h.createElement(pM,t))},su=h.memo(yM,Sy);su.displayName="XAxis";var gM=["type"],bM=["dangerouslySetInnerHTML","ticks","scale"],wM=["id","scale"];function fu(){return fu=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(o!=null)return Pd(Pd({},a),{},{type:o})},[o,a]);return h.useLayoutEffect(()=>{u!=null&&(r.current===null?t(tj(u)):r.current!==u&&t(rj({prev:r.current,next:u})),r.current=u)},[u,t]),h.useLayoutEffect(()=>()=>{r.current&&(t(nj(r.current)),r.current=null)},[t]),null}function EM(e){var t=e.yAxisId,r=e.className,n=e.width,i=e.label,a=h.useRef(null),o=h.useRef(null),u=N(Jv),l=$e(),c=le(),s="yAxis",f=N(g=>iE(g,t)),d=N(g=>nE(g,t)),v=N(g=>om(g,s,t,l)),p=N(g=>Pp(g,t));if(h.useLayoutEffect(()=>{if(!(n!=="auto"||!f||Dl(i)||h.isValidElement(i)||p==null)){var g=a.current;if(g){var w=g.getCalculatedWidth();Math.round(f.width)!==Math.round(w)&&c(ij({id:t,width:w}))}}},[v,f,c,i,t,n,p]),f==null||d==null||p==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var m=du(e,bM);p.id,p.scale;var y=du(p,wM);return h.createElement(zl,fu({},m,y,{ref:a,labelRef:o,x:d.x,y:d.y,tickTextProps:n==="auto"?{width:void 0}:{width:n},width:f.width,height:f.height,className:ee("recharts-".concat(s," ").concat(s),r),viewBox:u,ticks:v,axisType:s,axisId:t}))}var _M={allowDataOverflow:se.allowDataOverflow,allowDecimals:se.allowDecimals,allowDuplicatedCategory:se.allowDuplicatedCategory,angle:se.angle,axisLine:_t.axisLine,hide:!1,includeHidden:se.includeHidden,interval:se.interval,label:!1,minTickGap:se.minTickGap,mirror:se.mirror,orientation:se.orientation,padding:se.padding,reversed:se.reversed,scale:se.scale,tick:se.tick,tickCount:se.tickCount,tickLine:_t.tickLine,tickSize:_t.tickSize,type:se.type,niceTicks:se.niceTicks,width:se.width,yAxisId:0},IM=e=>{var t=Ze(e,_M);return h.createElement(h.Fragment,null,h.createElement(SM,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),h.createElement(EM,t))},Ey=h.memo(IM,Sy);Ey.displayName="YAxis";var CM=(e,t)=>t,Ul=P([CM,re,Fh,me,Sm,Lt,E_,Pe],M_);function kM(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function Kl(e){var t=e.currentTarget.getBoundingClientRect(),r,n;if(kM(e)){var i=e.currentTarget.getBBox();r=i.width>0?t.width/i.width:1,n=i.height>0?t.height/i.height:1}else{var a=e.currentTarget;r=a.offsetWidth>0?t.width/a.offsetWidth:1,n=a.offsetHeight>0?t.height/a.offsetHeight:1}var o=(u,l)=>({relativeX:Math.round((u-t.left)/r),relativeY:Math.round((l-t.top)/n)});return"touches"in e?Array.from(e.touches).map(u=>o(u.clientX,u.clientY)):o(e.clientX,e.clientY)}var _y=We("mouseClick"),Iy=jn();Iy.startListening({actionCreator:_y,effect:(e,t)=>{var r=e.payload,n=Ul(t.getState(),Kl(r));(n==null?void 0:n.activeIndex)!=null&&t.dispatch(bE({activeIndex:n.activeIndex,activeDataKey:void 0,activeCoordinate:n.activeCoordinate}))}});var vu=We("mouseMove"),Cy=jn(),Er=null,Zt=null,bo=null;Cy.startListening({actionCreator:vu,effect:(e,t)=>{var r=e.payload,n=t.getState(),i=n.eventSettings,a=i.throttleDelay,o=i.throttledEvents,u=o==="all"||(o==null?void 0:o.includes("mousemove"));Er!==null&&(cancelAnimationFrame(Er),Er=null),Zt!==null&&(typeof a!="number"||!u)&&(clearTimeout(Zt),Zt=null),bo=Kl(r);var l=()=>{var c=t.getState(),s=Un(c,c.tooltip.settings.shared);if(!bo){Er=null,Zt=null;return}if(s==="axis"){var f=Ul(c,bo);(f==null?void 0:f.activeIndex)!=null?t.dispatch(pm({activeIndex:f.activeIndex,activeDataKey:void 0,activeCoordinate:f.activeCoordinate})):t.dispatch(hm())}Er=null,Zt=null};if(!u){l();return}a==="raf"?Er=requestAnimationFrame(l):typeof a=="number"&&Zt===null&&(Zt=setTimeout(l,a))}});function jM(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<>":t}var Sd={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},ky=Ce({name:"rootProps",initialState:Sd,reducers:{updateOptions:(e,t)=>{var r;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(r=t.payload.barGap)!==null&&r!==void 0?r:Sd.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),TM=ky.reducer,MM=ky.actions.updateOptions,DM=null,$M={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},jy=Ce({name:"polarOptions",initialState:DM,reducers:$M});jy.actions.updatePolarOptions;var NM=jy.reducer,Ty=We("keyDown"),My=We("focus"),Dy=We("blur"),Ya=jn(),_r=null,Qt=null,ii=null;Ya.startListening({actionCreator:Ty,effect:(e,t)=>{ii=e.payload,_r!==null&&(cancelAnimationFrame(_r),_r=null);var r=t.getState(),n=r.eventSettings,i=n.throttleDelay,a=n.throttledEvents,o=a==="all"||a.includes("keydown");Qt!==null&&(typeof i!="number"||!o)&&(clearTimeout(Qt),Qt=null);var u=()=>{try{var l=t.getState(),c=l.rootProps.accessibilityLayer!==!1;if(!c)return;var s=l.tooltip.keyboardInteraction,f=ii;if(f!=="ArrowRight"&&f!=="ArrowLeft"&&f!=="Enter")return;var d=hn(s,pr(l),Rr(l),zr(l)),v=d==null?-1:Number(d),p=!Number.isFinite(v)||v<0,m=Lt(l),y=pr(l),g=Un(l,l.tooltip.settings.shared);if(f==="Enter"){if(p)return;var w=Vi(l,g,"hover",String(s.index));t.dispatch(Gi({active:!s.active,activeIndex:s.index,activeCoordinate:w}));return}var x=cE(l),A=x==="left-to-right"?1:-1,O=f==="ArrowRight"?1:-1,b;if(p){var S=Rr(l),_=zr(l),I=O*A,C=V=>({active:!1,index:String(V),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(b=-1,I>0){for(var j=0;j=0;E--)if(hn(C(E),y,S,_)!=null){b=E;break}if(b<0)return}else{b=v+O*A;var R=(m==null?void 0:m.length)||y.length;if(R===0||b>=R||b<0)return}var $=Vi(l,g,"hover",String(b));t.dispatch(Gi({active:!0,activeIndex:b.toString(),activeCoordinate:$}))}finally{_r=null,Qt=null}};if(!o){u();return}i==="raf"?_r=requestAnimationFrame(u):typeof i=="number"&&Qt===null&&(u(),ii=null,Qt=setTimeout(()=>{ii?u():(Qt=null,_r=null)},i))}});Ya.startListening({actionCreator:My,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var i=r.tooltip.keyboardInteraction;if(!i.active&&i.index==null){var a="0",o=Un(r,r.tooltip.settings.shared),u=Vi(r,o,"hover",String(a));t.dispatch(Gi({active:!0,activeIndex:a,activeCoordinate:u}))}}}});Ya.startListening({actionCreator:Dy,effect:(e,t)=>{var r=t.getState(),n=r.rootProps.accessibilityLayer!==!1;if(n){var i=r.tooltip.keyboardInteraction;i.active&&t.dispatch(Gi({active:!1,activeIndex:i.index,activeCoordinate:i.coordinate}))}}});function $y(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(r,n)=>{if(n==="currentTarget")return t;var i=Reflect.get(r,n);return typeof i=="function"?i.bind(r):i}})}var Ke=We("externalEvent"),Ny=jn(),ai=new Map,cn=new Map,wo=new Map;Ny.startListening({actionCreator:Ke,effect:(e,t)=>{var r=e.payload,n=r.handler,i=r.reactEvent;if(n!=null){var a=i.type,o=$y(i);wo.set(a,{handler:n,reactEvent:o});var u=ai.get(a);u!==void 0&&(cancelAnimationFrame(u),ai.delete(a));var l=t.getState(),c=l.eventSettings,s=c.throttleDelay,f=c.throttledEvents,d=f,v=d==="all"||(d==null?void 0:d.includes(a)),p=cn.get(a);p!==void 0&&(typeof s!="number"||!v)&&(clearTimeout(p),cn.delete(a));var m=()=>{var w=wo.get(a);try{if(!w)return;var x=w.handler,A=w.reactEvent,O=t.getState(),b={activeCoordinate:f_(O),activeDataKey:l_(O),activeIndex:_n(O),activeLabel:Im(O),activeTooltipIndex:_n(O),isTooltipActive:d_(O)};x&&x(b,A)}finally{ai.delete(a),cn.delete(a),wo.delete(a)}};if(!v){m();return}if(s==="raf"){var y=requestAnimationFrame(m);ai.set(a,y)}else if(typeof s=="number"){if(!cn.has(a)){m();var g=setTimeout(m,s);cn.set(a,g)}}else m()}}});var LM=P([Xr],e=>e.tooltipItemPayloads),RM=P([LM,(e,t)=>t,(e,t,r)=>r],(e,t,r)=>{if(t!=null){var n=e.find(a=>a.settings.graphicalItemId===r);if(n!=null){var i=n.getPosition;if(i!=null)return i(t)}}}),Ly=We("touchMove"),Ry=jn(),Jt=null,zt=null,Ed=null,sn=null;Ry.startListening({actionCreator:Ly,effect:(e,t)=>{var r=e.payload;if(!(r.touches==null||r.touches.length===0)){sn=$y(r);var n=t.getState(),i=n.eventSettings,a=i.throttleDelay,o=i.throttledEvents,u=o==="all"||o.includes("touchmove");Jt!==null&&(cancelAnimationFrame(Jt),Jt=null),zt!==null&&(typeof a!="number"||!u)&&(clearTimeout(zt),zt=null),Ed=Array.from(r.touches).map(c=>Kl({clientX:c.clientX,clientY:c.clientY,currentTarget:r.currentTarget}));var l=()=>{if(sn!=null){var c=t.getState(),s=Un(c,c.tooltip.settings.shared);if(s==="axis"){var f,d=(f=Ed)===null||f===void 0?void 0:f[0];if(d==null){Jt=null,zt=null;return}var v=Ul(c,d);(v==null?void 0:v.activeIndex)!=null&&t.dispatch(pm({activeIndex:v.activeIndex,activeDataKey:void 0,activeCoordinate:v.activeCoordinate}))}else if(s==="item"){var p,m=sn.touches[0];if(document.elementFromPoint==null||m==null)return;var y=document.elementFromPoint(m.clientX,m.clientY);if(!y||!y.getAttribute)return;var g=y.getAttribute(hw),w=(p=y.getAttribute(pw))!==null&&p!==void 0?p:void 0,x=wr(c).find(b=>b.id===w);if(g==null||x==null||w==null)return;var A=x.dataKey,O=RM(c,g,w);t.dispatch(gE({activeDataKey:A,activeIndex:g,activeCoordinate:O,activeGraphicalItemId:w}))}Jt=null,zt=null}};if(!u){l();return}a==="raf"?Jt=requestAnimationFrame(l):typeof a=="number"&&zt===null&&(l(),sn=null,zt=setTimeout(()=>{sn?l():(zt=null,Jt=null)},a))}}});var zy={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},By=Ce({name:"eventSettings",initialState:zy,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=t.payload.throttledEvents)}}}),zM=By.actions.setEventSettings,BM=By.reducer,FM=wv({brush:hj,cartesianAxis:aj,chartData:sI,errorBars:AT,eventSettings:BM,graphicalItems:Nk,layout:Qb,legend:dx,options:aI,polarAxis:VC,polarOptions:NM,referenceElements:gj,renderedTicks:Bj,rootProps:TM,tooltip:wE,zIndex:Y_}),WM=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return Ob({reducer:FM,preloadedState:t,middleware:n=>{var i;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((i="es6")!==null&&i!==void 0?i:"")}).concat([Iy.middleware,Cy.middleware,Ya.middleware,Ny.middleware,Ry.middleware])},enhancers:n=>{var i=n;return typeof n=="function"&&(i=n()),i.concat($v({type:"raf"}))},devTools:{serialize:{replacer:jM},name:"recharts-".concat(r)}})};function UM(e){var t=e.preloadedState,r=e.children,n=e.reduxStoreName,i=$e(),a=h.useRef(null);if(i)return r;a.current==null&&(a.current=WM(t,n));var o=Au;return h.createElement(Ix,{context:o,store:a.current},r)}function KM(e){var t=e.layout,r=e.margin,n=le(),i=$e();return h.useEffect(()=>{i||(n(qb(t)),n(Vb(r)))},[n,i,t,r]),null}var HM=h.memo(KM,Ea);function YM(e){var t=le();return h.useEffect(()=>{t(MM(e))},[t,e]),null}var GM=e=>{var t=le();return h.useEffect(()=>{t(zM(e))},[t,e]),null},VM=h.memo(GM,Ea);function _d(e){var t=e.zIndex,r=e.isPanorama,n=h.useRef(null),i=le();return h.useLayoutEffect(()=>(n.current&&i(K_({zIndex:t,element:n.current,isPanorama:r})),()=>{i(H_({zIndex:t,isPanorama:r}))}),[i,t,r]),h.createElement("g",{tabIndex:-1,ref:n,className:"recharts-zIndex-layer_".concat(t)})}function Id(e){var t=e.children,r=e.isPanorama,n=N($_);if(!n||n.length===0)return t;var i=n.filter(o=>o<0),a=n.filter(o=>o>0);return h.createElement(h.Fragment,null,i.map(o=>h.createElement(_d,{key:o,zIndex:o,isPanorama:r})),t,a.map(o=>h.createElement(_d,{key:o,zIndex:o,isPanorama:r})))}var qM=["children"];function XM(e,t){if(e==null)return{};var r,n,i=ZM(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var r=ih(),n=ah(),i=ph();if(!mt(r)||!mt(n))return null;var a=e.children,o=e.otherAttributes,u=e.title,l=e.desc,c,s;return o!=null&&(typeof o.tabIndex=="number"?c=o.tabIndex:c=i?0:void 0,typeof o.role=="string"?s=o.role:s=i?"application":void 0),h.createElement(Rd,ta({},o,{title:u,desc:l,role:s,tabIndex:c,width:r,height:n,style:QM,ref:t}),a)}),eD=e=>{var t=e.children,r=N(xa);if(!r)return null;var n=r.width,i=r.height,a=r.y,o=r.x;return h.createElement(Rd,{width:n,height:i,x:o,y:a},t)},Cd=h.forwardRef((e,t)=>{var r=e.children,n=XM(e,qM),i=$e();return i?h.createElement(eD,null,h.createElement(Id,{isPanorama:!0},r)):h.createElement(JM,ta({ref:t},n),h.createElement(Id,{isPanorama:!1},r))});function tD(e,t){return aD(e)||iD(e,t)||nD(e,t)||rD()}function rD(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function nD(e,t){if(e){if(typeof e=="string")return kd(e,t);var r={}.toString.call(e).slice(8,-1);return r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set"?Array.from(e):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?kd(e,t):void 0}}function kd(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{if(n!=null){var o=n.getBoundingClientRect(),u=o.width/n.offsetWidth;U(u)&&u!==a&&e(Zb(u))}},[n,e,a]),i}function jd(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function uD(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r(bI(),null);function na(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var mD=h.forwardRef((e,t)=>{var r,n,i=h.useRef(null),a=h.useState({containerWidth:na((r=e.style)===null||r===void 0?void 0:r.width),containerHeight:na((n=e.style)===null||n===void 0?void 0:n.height)}),o=ra(a,2),u=o[0],l=o[1],c=h.useCallback((f,d)=>{l(v=>{var p=Math.round(f),m=Math.round(d);return v.containerWidth===p&&v.containerHeight===m?v:{containerWidth:p,containerHeight:m}})},[]),s=h.useCallback(f=>{if(typeof t=="function"&&t(f),i.current!=null&&(i.current.disconnect(),i.current=null),f!=null&&typeof ResizeObserver<"u"){var d=f.getBoundingClientRect(),v=d.width,p=d.height;c(v,p);var m=g=>{var w=g[0];if(w!=null){var x=w.contentRect,A=x.width,O=x.height;c(A,O)}},y=new ResizeObserver(m);y.observe(f),i.current=y}},[t,c]);return h.useEffect(()=>()=>{var f=i.current;f!=null&&f.disconnect()},[c]),h.createElement(h.Fragment,null,h.createElement(Mn,{width:u.containerWidth,height:u.containerHeight}),h.createElement("div",Ht({ref:s},e)))}),yD=h.forwardRef((e,t)=>{var r=e.width,n=e.height,i=h.useState({containerWidth:na(r),containerHeight:na(n)}),a=ra(i,2),o=a[0],u=a[1],l=h.useCallback((s,f)=>{u(d=>{var v=Math.round(s),p=Math.round(f);return d.containerWidth===v&&d.containerHeight===p?d:{containerWidth:v,containerHeight:p}})},[]),c=h.useCallback(s=>{if(typeof t=="function"&&t(s),s!=null){var f=s.getBoundingClientRect(),d=f.width,v=f.height;l(d,v)}},[t,l]);return h.createElement(h.Fragment,null,h.createElement(Mn,{width:o.containerWidth,height:o.containerHeight}),h.createElement("div",Ht({ref:c},e)))}),gD=h.forwardRef((e,t)=>{var r=e.width,n=e.height;return h.createElement(h.Fragment,null,h.createElement(Mn,{width:r,height:n}),h.createElement("div",Ht({ref:t},e)))}),bD=h.forwardRef((e,t)=>{var r=e.width,n=e.height;return typeof r=="string"||typeof n=="string"?h.createElement(yD,Ht({},e,{ref:t})):typeof r=="number"&&typeof n=="number"?h.createElement(gD,Ht({},e,{width:r,height:n,ref:t})):h.createElement(h.Fragment,null,h.createElement(Mn,{width:r,height:n}),h.createElement("div",Ht({ref:t},e)))});function wD(e){return e?mD:bD}var xD=h.forwardRef((e,t)=>{var r=e.children,n=e.className,i=e.height,a=e.onClick,o=e.onContextMenu,u=e.onDoubleClick,l=e.onMouseDown,c=e.onMouseEnter,s=e.onMouseLeave,f=e.onMouseMove,d=e.onMouseUp,v=e.onTouchEnd,p=e.onTouchMove,m=e.onTouchStart,y=e.style,g=e.width,w=e.responsive,x=e.dispatchTouchEvents,A=x===void 0?!0:x,O=h.useRef(null),b=le(),S=h.useState(null),_=ra(S,2),I=_[0],C=_[1],j=h.useState(null),E=ra(j,2),R=E[0],$=E[1],V=oD(),H=Cu(),Y=(H==null?void 0:H.width)>0?H.width:g,B=(H==null?void 0:H.height)>0?H.height:i,q=h.useCallback(L=>{V(L),typeof t=="function"&&t(L),C(L),$(L),L!=null&&(O.current=L)},[V,t,C,$]),W=h.useCallback(L=>{b(_y(L)),b(Ke({handler:a,reactEvent:L}))},[b,a]),Se=h.useCallback(L=>{b(vu(L)),b(Ke({handler:c,reactEvent:L}))},[b,c]),ge=h.useCallback(L=>{b(hm()),b(Ke({handler:s,reactEvent:L}))},[b,s]),ae=h.useCallback(L=>{b(vu(L)),b(Ke({handler:f,reactEvent:L}))},[b,f]),Ne=h.useCallback(()=>{b(My())},[b]),Le=h.useCallback(()=>{b(Dy())},[b]),Je=h.useCallback(L=>{b(Ty(L.key))},[b]),et=h.useCallback(L=>{b(Ke({handler:o,reactEvent:L}))},[b,o]),Jr=h.useCallback(L=>{b(Ke({handler:u,reactEvent:L}))},[b,u]),T=h.useCallback(L=>{b(Ke({handler:l,reactEvent:L}))},[b,l]),F=h.useCallback(L=>{b(Ke({handler:d,reactEvent:L}))},[b,d]),z=h.useCallback(L=>{b(Ke({handler:m,reactEvent:L}))},[b,m]),k=h.useCallback(L=>{A&&b(Ly(L)),b(Ke({handler:p,reactEvent:L}))},[b,A,p]),Ee=h.useCallback(L=>{b(Ke({handler:v,reactEvent:L}))},[b,v]),X=wD(w);return h.createElement(Nm.Provider,{value:I},h.createElement(ug.Provider,{value:R},h.createElement(X,{width:Y??(y==null?void 0:y.width),height:B??(y==null?void 0:y.height),className:ee("recharts-wrapper",n),style:uD({position:"relative",cursor:"default",width:Y,height:B},y),onClick:W,onContextMenu:et,onDoubleClick:Jr,onFocus:Ne,onBlur:Le,onKeyDown:Je,onMouseDown:T,onMouseEnter:Se,onMouseLeave:ge,onMouseMove:ae,onMouseUp:F,onTouchEnd:Ee,onTouchMove:k,onTouchStart:z,ref:q},h.createElement(pD,null),r)))}),AD=["width","height","responsive","children","className","style","compact","title","desc"];function OD(e,t){if(e==null)return{};var r,n,i=PD(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n{var r=e.width,n=e.height,i=e.responsive,a=e.children,o=e.className,u=e.style,l=e.compact,c=e.title,s=e.desc,f=OD(e,AD),d=it(f);return l?h.createElement(h.Fragment,null,h.createElement(Mn,{width:r,height:n}),h.createElement(Cd,{otherAttributes:d,title:c,desc:s},a)):h.createElement(xD,{className:o,style:u,width:r,height:n,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},h.createElement(Cd,{otherAttributes:d,title:c,desc:s,ref:t},h.createElement(Sj,null,a)))});function hu(){return hu=Object.assign?Object.assign.bind():function(e){for(var t=1;th.createElement(TD,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:MD,tooltipPayloadSearcher:nI,categoricalChartProps:e,ref:t}));const $D="rgba(130,130,150,0.14)",xo="rgba(130,130,150,0.85)";function ND(e){if(e<=0)return 10;const t=Math.pow(10,Math.floor(Math.log10(e))),r=e/t;return(r<=1?1:r<=2?2:r<=5?5:10)*t}function Fy(e,t){return`${t==="%"?Math.round(e):e>=1e3?`${(e/1e3).toFixed(1)}k`:Math.round(e).toString()}${t}`}function LD({active:e,payload:t,unit:r,label:n}){return!e||!(t!=null&&t.length)?null:oe.jsxs("div",{className:"rounded-lg border border-border/70 bg-popover/95 px-3 py-2 shadow-xl backdrop-blur",children:[Number.isFinite(n)&&oe.jsx("div",{className:"mb-1 border-b border-border/40 pb-1 font-mono text-[10px] text-muted-foreground/80",children:new Date(n).toLocaleTimeString("de-DE",{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),oe.jsx("div",{className:"space-y-1",children:t.map(i=>oe.jsxs("div",{className:"flex items-center gap-2 text-[11px] font-mono",children:[oe.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:i.color}}),oe.jsx("span",{className:"uppercase tracking-wider text-muted-foreground",children:i.name}),oe.jsx("span",{className:"ml-auto pl-3 font-bold tabular-nums text-foreground",children:Fy(i.value,r)})]},i.dataKey))})]})}function UD({data:e,series:t,unit:r="%",yMode:n="percent",height:i=176,showTime:a=!1}){var s,f;const o=e.reduce((d,v)=>t.reduce((p,m)=>Math.max(p,Number(v[m.key])||0),d),0),u=n==="percent"?Math.min(100,Math.max(25,Math.ceil(o*1.2/25)*25)):Math.max(ND(o*1.15),10),l=e.length>1?Number((s=e[e.length-1])==null?void 0:s.t)-Number((f=e[0])==null?void 0:f.t):0,c=d=>new Date(d).toLocaleTimeString("de-DE",l<=10*6e4?{hour:"2-digit",minute:"2-digit",second:"2-digit"}:{hour:"2-digit",minute:"2-digit"});return oe.jsx("div",{style:{height:i},className:"w-full",children:oe.jsx(Vw,{width:"100%",height:"100%",children:oe.jsxs(DD,{data:e,margin:{top:8,right:6,bottom:0,left:-12},children:[oe.jsx("defs",{children:t.map(d=>oe.jsxs("linearGradient",{id:`grad-${d.key}`,x1:"0",y1:"0",x2:"0",y2:"1",children:[oe.jsx("stop",{offset:"0%",stopColor:d.color,stopOpacity:.22}),oe.jsx("stop",{offset:"100%",stopColor:d.color,stopOpacity:0})]},d.key))}),oe.jsx(vy,{vertical:!1,stroke:$D}),a?oe.jsx(su,{dataKey:"t",type:"number",domain:["dataMin","dataMax"],tickFormatter:c,tickCount:5,minTickGap:40,interval:"preserveStartEnd",axisLine:!1,tickLine:!1,tick:{fontSize:10,fill:xo},height:18}):oe.jsx(su,{dataKey:"t",hide:!0}),oe.jsx(Ey,{domain:[0,u],ticks:[0,u/2,u],tickFormatter:d=>Fy(d,r),width:42,axisLine:!1,tickLine:!1,tick:{fontSize:10,fill:xo}}),oe.jsx(TI,{content:oe.jsx(LD,{unit:r}),cursor:{stroke:xo,strokeOpacity:.4,strokeDasharray:"3 3"}}),t.map(d=>oe.jsx(Py,{type:"monotone",dataKey:d.key,name:d.label,stroke:d.color,strokeWidth:2,fill:`url(#grad-${d.key})`,dot:!1,activeDot:{r:3,strokeWidth:0},isAnimationActive:!1,connectNulls:!0},d.key))]})})})}export{UD as default}; diff --git a/frontend/dist/assets/MehrMenue-9EJ_I5Is.js b/frontend/dist/assets/MehrMenue-9EJ_I5Is.js new file mode 100644 index 0000000..a4fc976 --- /dev/null +++ b/frontend/dist/assets/MehrMenue-9EJ_I5Is.js @@ -0,0 +1 @@ +import{c as e,s as t}from"./button-Dd8hfusv.js";import{A as n,M as r,j as i}from"./index-Dd2BxC7X.js";import{a,i as o,n as s,r as c,t as l}from"./sheet-DWG2Q04V.js";var u=t(),d=e();function f(e){let t=(0,u.c)(17),{verbindung:f,onDienste:p,onEinstellungen:m,onSchliessen:h}=e,g;t[0]===h?g=t[1]:(g=e=>!e&&h(),t[0]=h,t[1]=g);let _;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,d.jsxs)(o,{children:[(0,d.jsx)(a,{className:`schild text-lg`,children:`Mehr`}),(0,d.jsx)(c,{className:`sr-only`,children:`Weitere Bereiche`})]}),t[2]=_):_=t[2];let v;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,d.jsxs)(`a`,{href:`/hermes-ui/`,target:`_blank`,rel:`noopener`,className:`flex h-12 items-center gap-3 rounded-lg border border-linie px-4 text-base`,children:[(0,d.jsx)(r,{className:`size-5`,"aria-hidden":!0}),` Hermes-Dashboard öffnen`]}),t[3]=v):v=t[3];let y;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,d.jsx)(i,{className:`size-5`,"aria-hidden":!0}),t[4]=y):y=t[4];let b;t[5]===p?b=t[6]:(b=(0,d.jsxs)(`button`,{type:`button`,onClick:p,className:`flex h-12 items-center gap-3 rounded-lg border border-linie px-4 text-left text-base`,children:[y,` Dienste und Protokolle`]}),t[5]=p,t[6]=b);let x;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,d.jsx)(n,{className:`size-5`,"aria-hidden":!0}),t[7]=x):x=t[7];let S;t[8]===m?S=t[9]:(S=(0,d.jsxs)(`button`,{type:`button`,onClick:m,className:`flex h-12 items-center gap-3 rounded-lg border border-linie px-4 text-left text-base`,children:[x,` Einstellungen`]}),t[8]=m,t[9]=S);let C;t[10]!==b||t[11]!==S||t[12]!==f?(C=(0,d.jsxs)(s,{side:`bottom`,className:`border-linie bg-panel pb-[calc(1rem+env(safe-area-inset-bottom))]`,children:[_,(0,d.jsxs)(`div`,{className:`flex flex-col gap-2 px-4`,children:[f,v,b,S]})]}),t[10]=b,t[11]=S,t[12]=f,t[13]=C):C=t[13];let w;return t[14]!==g||t[15]!==C?(w=(0,d.jsx)(l,{open:!0,onOpenChange:g,children:C}),t[14]=g,t[15]=C,t[16]=w):w=t[16],w}export{f as MehrMenue}; \ No newline at end of file diff --git a/frontend/dist/assets/Modelle-tXYT-9PF.js b/frontend/dist/assets/Modelle-tXYT-9PF.js new file mode 100644 index 0000000..a6b2a7e --- /dev/null +++ b/frontend/dist/assets/Modelle-tXYT-9PF.js @@ -0,0 +1 @@ +import{c as e,f as t,o as n,s as r,t as i,u as a}from"./button-Dd8hfusv.js";import{D as o,E as s,N as c,O as l,P as u,_ as d,a as f,c as p,h as m,i as h,k as g,l as _,m as v,n as y,o as b,p as x,s as S,t as C,v as w,x as T,y as E}from"./index-Dd2BxC7X.js";import{a as D,i as O,n as k,r as A,t as j}from"./sheet-DWG2Q04V.js";var M={name:`search`,size:24,node:[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]};M.node;var N=n(M),P=r(),F=t(a(),1),I=e();function L({offen:e,onSchliessen:t}){let n=u(),[r,a]=(0,F.useState)(``),[d,f]=(0,F.useState)(``),[p,m]=(0,F.useState)(null),[h,g]=(0,F.useState)(``),v=c({queryKey:[`hf-suche`,d],queryFn:()=>s(`/api/hf/search?q=${encodeURIComponent(d)}`),enabled:d.length>1}),y=c({queryKey:[`hf-quants`,p],queryFn:()=>s(`/api/hf/quants?repo=${encodeURIComponent(p??``)}`),enabled:!!p});async function b(e){if(p)try{await o(`/api/models/install`,{repo:p,quant:e,role:h||null}),l(`erfolg`,`${p} (${e}) wird heruntergeladen. Den Fortschritt siehst du unter Updates.`),n.invalidateQueries({queryKey:[`jobs`]}),n.invalidateQueries({queryKey:[`models`]}),t()}catch(e){l(`fehler`,e.message)}}let x=(y.data?.quants??[]).map(e=>typeof e==`string`?{quant:e}:e);return(0,I.jsx)(j,{open:e,onOpenChange:e=>!e&&t(),children:(0,I.jsxs)(k,{side:`right`,className:`w-full gap-3 overflow-y-auto border-linie bg-panel sm:max-w-xl`,children:[(0,I.jsxs)(O,{children:[(0,I.jsx)(D,{className:`schild text-lg`,children:`Modelle selbst suchen`}),(0,I.jsx)(A,{className:`text-text-2`,children:`Auf Hugging Face suchen, Quantisierung wählen, installieren.`})]}),(0,I.jsxs)(`form`,{className:`flex gap-2 px-4`,onSubmit:e=>{e.preventDefault(),m(null),f(r.trim())},children:[(0,I.jsx)(`label`,{htmlFor:`hf-suche`,className:`sr-only`,children:`Suchbegriff`}),(0,I.jsx)(`input`,{id:`hf-suche`,value:r,onChange:e=>a(e.target.value),placeholder:`z. B. Qwen3.8 GGUF`,className:`h-11 min-w-0 flex-1 rounded-lg border border-linie-stark bg-erhaben px-3 text-[15px] outline-none focus:border-cyan`}),(0,I.jsx)(i,{type:`submit`,children:`Suchen`})]}),(0,I.jsxs)(`div`,{className:`flex flex-col px-4 pb-4`,children:[v.isFetching&&(0,I.jsx)(`p`,{className:`py-3 text-sm text-text-2`,children:`Suche läuft …`}),!p&&v.data?.results.map(e=>(0,I.jsxs)(`button`,{type:`button`,onClick:()=>m(e.repo),className:`flex min-h-11 items-center justify-between gap-3 border-t border-linie py-2 text-left hover:text-cyan`,children:[(0,I.jsx)(`span`,{className:`ziffern min-w-0 text-sm break-all`,children:e.repo}),(0,I.jsxs)(`span`,{className:`ziffern shrink-0 text-xs text-text-3`,children:[_(e.downloads),` ↓`]})]},e.repo)),p&&(0,I.jsxs)(`div`,{className:`flex flex-col gap-3 pt-2`,children:[(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,I.jsx)(`span`,{className:`ziffern text-sm break-all`,children:p}),(0,I.jsx)(i,{variant:`ghost`,size:`sm`,onClick:()=>m(null),children:`Zurück`})]}),(0,I.jsxs)(`label`,{className:`flex items-center gap-3 text-sm text-text-2`,children:[`Rolle`,(0,I.jsxs)(`select`,{value:h,onChange:e=>g(e.target.value),className:`h-11 rounded-lg border border-linie-stark bg-erhaben px-3 text-foreground`,children:[(0,I.jsx)(`option`,{value:``,children:`ohne Rolle (nur installieren)`}),(0,I.jsx)(`option`,{value:`coder`,children:`Coder`})]})]}),y.isFetching&&(0,I.jsx)(`p`,{className:`text-sm text-text-2`,children:`Quantisierungen werden gelesen …`}),x.map(e=>{let t=e.quant??e.name??`?`,n=e.total_bytes??e.size_bytes;return(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2`,children:[(0,I.jsx)(`span`,{className:`ziffern text-sm`,children:t}),(0,I.jsxs)(`span`,{className:`flex items-center gap-3`,children:[n?(0,I.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[(n/1024**3).toFixed(1).replace(`.`,`,`),` GB`]}):null,(0,I.jsx)(i,{variant:`outline`,size:`sm`,onClick:()=>b(t),children:`Installieren`})]})]},t)})]})]})]})})}var R=115;function z(e){let t=(0,P.c)(55),{modelle:n,laufend:r}=e,i=g(),a=T(),o,s,c,l,u,d,f,p,m,h;if(t[0]!==r||t[1]!==i?.ram_total||t[2]!==i?.ram_used||t[3]!==n||t[4]!==a){let e=S(i?.ram_total??a.data?.box.ram_total)??122.7,g=S(i?.ram_used??a.data?.box.ram_used)??0,_;t[15]===r?_=t[16]:(_=e=>r.includes(e.name),t[15]=r,t[16]=_);let v=n.filter(_).reduce(B,0);s=Math.max(0,g-v);let y=t=>`${Math.min(100,t/e*100)}%`;o=C,p=`Speicher`,m=(0,I.jsxs)(`span`,{className:`ziffern text-sm text-text-2`,children:[Math.round(g),` von `,Math.round(e),` GB belegt · Grenze ~`,R,` GB`]});let b=`Speicher: ${Math.round(g)} von ${Math.round(e)} GB belegt`,x=y(g),w;t[17]===x?w=t[18]:(w={width:x},t[17]=x,t[18]=w);let T=`${g?v/g*100:0}%`,E;t[19]===T?E=t[20]:(E=(0,I.jsx)(`div`,{className:`h-full bg-cyan`,style:{width:T}}),t[19]=T,t[20]=E);let D=`${g?s/g*100:0}%`,O;t[21]===D?O=t[22]:(O=(0,I.jsx)(`div`,{className:`h-full bg-cyan/35`,style:{width:D}}),t[21]=D,t[22]=O);let k;t[23]!==w||t[24]!==E||t[25]!==O?(k=(0,I.jsxs)(`div`,{className:`absolute inset-y-0 left-0 flex overflow-hidden rounded-lg`,style:w,children:[E,O]}),t[23]=w,t[24]=E,t[25]=O,t[26]=k):k=t[26];let A=y(R),j;t[27]===A?j=t[28]:(j=(0,I.jsx)(`div`,{className:`absolute -top-1.5 -bottom-1.5 w-0.5 bg-bernstein`,style:{left:A}}),t[27]=A,t[28]=j),t[29]!==b||t[30]!==k||t[31]!==j?(h=(0,I.jsxs)(`div`,{className:`relative h-8 rounded-lg bg-erhaben`,role:`img`,"aria-label":b,children:[k,j]}),t[29]=b,t[30]=k,t[31]=j,t[32]=h):h=t[32],f=`flex flex-wrap gap-x-6 gap-y-2 text-sm text-text-2`,c=`flex items-center gap-2`,t[33]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,I.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan`}),t[33]=l):l=t[33],u=` Geladene Modelle: `,d=Math.round(v),t[0]=r,t[1]=i?.ram_total,t[2]=i?.ram_used,t[3]=n,t[4]=a,t[5]=o,t[6]=s,t[7]=c,t[8]=l,t[9]=u,t[10]=d,t[11]=f,t[12]=p,t[13]=m,t[14]=h}else o=t[5],s=t[6],c=t[7],l=t[8],u=t[9],d=t[10],f=t[11],p=t[12],m=t[13],h=t[14];let _;t[34]!==c||t[35]!==l||t[36]!==u||t[37]!==d?(_=(0,I.jsxs)(`span`,{className:c,children:[l,u,d,` GB Dateien`]}),t[34]=c,t[35]=l,t[36]=u,t[37]=d,t[38]=_):_=t[38];let v;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,I.jsx)(`span`,{className:`size-2.5 rounded-sm bg-cyan/35`}),t[39]=v):v=t[39];let y;t[40]===s?y=t[41]:(y=Math.round(s),t[40]=s,t[41]=y);let b;t[42]===y?b=t[43]:(b=(0,I.jsxs)(`span`,{className:`flex items-center gap-2`,children:[v,` Cache, Dienste, System: `,y,` GB`]}),t[42]=y,t[43]=b);let x;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,I.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`span`,{className:`h-3 w-0.5 bg-bernstein`}),` Ab hier wird es eng`]}),t[44]=x):x=t[44];let w;t[45]!==b||t[46]!==f||t[47]!==_?(w=(0,I.jsxs)(`div`,{className:f,children:[_,b,x]}),t[45]=b,t[46]=f,t[47]=_,t[48]=w):w=t[48];let E;return t[49]!==o||t[50]!==w||t[51]!==p||t[52]!==m||t[53]!==h?(E=(0,I.jsxs)(o,{titel:p,rechts:m,children:[h,w]}),t[49]=o,t[50]=w,t[51]=p,t[52]=m,t[53]=h,t[54]=E):E=t[54],E}function B(e,t){return e+(S(t.size_bytes)??0)}function V(e){let t=(0,P.c)(7),{name:n,wert:r}=e,i;t[0]===n?i=t[1]:(i=(0,I.jsx)(`dt`,{className:`text-xs text-text-3`,children:n}),t[0]=n,t[1]=i);let a;t[2]===r?a=t[3]:(a=(0,I.jsx)(`dd`,{className:`ziffern m-0 text-lg`,children:r}),t[2]=r,t[3]=a);let o;return t[4]!==i||t[5]!==a?(o=(0,I.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i,a]}),t[4]=i,t[5]=a,t[6]=o):o=t[6],o}function H(e){let t=(0,P.c)(47),{titel:n,modell:r,laeuft:a,nutzer:o}=e,s=x();if(!r){let e;t[0]===n?e=t[1]:(e=(0,I.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[0]=n,t[1]=e);let r;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,I.jsx)(h,{children:`Frei`}),t[2]=r):r=t[2];let i;t[3]===e?i=t[4]:(i=(0,I.jsxs)(`div`,{className:`flex items-center justify-between`,children:[e,r]}),t[3]=e,t[4]=i);let a,o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,I.jsx)(`h3`,{className:`font-anzeige text-xl font-semibold text-text-2`,children:`Nicht belegt`}),o=(0,I.jsx)(`p`,{className:`text-sm text-text-2`,children:`Nur belegen, wenn ein Modell hier echten Mehrwert bringt. Das Radar meldet Kandidaten.`}),t[5]=a,t[6]=o):(a=t[5],o=t[6]);let s;return t[7]===i?s=t[8]:(s=(0,I.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-dashed border-linie-stark p-5`,children:[i,a,o]}),t[7]=i,t[8]=s),s}let c;t[9]!==r.ctx||t[10]!==r.parallel_slots?(c=r.ctx?Math.round(r.ctx/Math.max(1,r.parallel_slots)/1024):null,t[9]=r.ctx,t[10]=r.parallel_slots,t[11]=c):c=t[11];let l=c,u=!!r.capabilities?.vision,d;t[12]===n?d=t[13]:(d=(0,I.jsx)(`span`,{className:`schild text-sm text-text-3`,children:n}),t[12]=n,t[13]=d);let f=a?`gruen`:`grau`,m=a?`Geladen`:`Auf Abruf`,g;t[14]!==f||t[15]!==m?(g=(0,I.jsx)(h,{art:f,children:m}),t[14]=f,t[15]=m,t[16]=g):g=t[16];let _;t[17]!==d||t[18]!==g?(_=(0,I.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[d,g]}),t[17]=d,t[18]=g,t[19]=_):_=t[19];let v;t[20]===r.name?v=t[21]:(v=(0,I.jsx)(`h3`,{className:`ziffern m-0 text-lg font-medium break-all`,children:r.name}),t[20]=r.name,t[21]=v);let y;t[22]===r.size_bytes?y=t[23]:(y=p(r.size_bytes),t[22]=r.size_bytes,t[23]=y);let b;t[24]===y?b=t[25]:(b=(0,I.jsx)(V,{name:`Größe`,wert:y}),t[24]=y,t[25]=b);let S=l?`${l}k`:`–`,C;t[26]===S?C=t[27]:(C=(0,I.jsx)(V,{name:`Kontext`,wert:S}),t[26]=S,t[27]=C);let w=u?`ja`:`nein`,T;t[28]===w?T=t[29]:(T=(0,I.jsx)(V,{name:`Bilder`,wert:w}),t[28]=w,t[29]=T);let E;t[30]!==C||t[31]!==T||t[32]!==b?(E=(0,I.jsxs)(`dl`,{className:`m-0 grid grid-cols-3 gap-3`,children:[b,C,T]}),t[30]=C,t[31]=T,t[32]=b,t[33]=E):E=t[33];let D=r.spec_active?` Mit Draft-Beschleunigung.`:``,O;t[34]!==o||t[35]!==D?(O=(0,I.jsxs)(`p`,{className:`text-sm text-text-2`,children:[`Genutzt von `,o,`.`,D]}),t[34]=o,t[35]=D,t[36]=O):O=t[36];let k;t[37]!==s||t[38]!==a||t[39]!==r.name?(k=!a&&(0,I.jsx)(i,{variant:`outline`,size:`sm`,className:`mt-auto self-start`,onClick:()=>s.mutate(r.name),disabled:s.isPending,children:`Jetzt laden`}),t[37]=s,t[38]=a,t[39]=r.name,t[40]=k):k=t[40];let A;return t[41]!==E||t[42]!==O||t[43]!==k||t[44]!==_||t[45]!==v?(A=(0,I.jsxs)(`article`,{className:`flex flex-col gap-3.5 rounded-2xl border border-linie bg-panel p-5`,children:[_,v,E,O,k]}),t[41]=E,t[42]=O,t[43]=k,t[44]=_,t[45]=v,t[46]=A):A=t[46],A}function U(e){let t=(0,P.c)(51),{nutzung:n}=e;if(!n)return null;let r;t[0]===n.absender?r=t[1]:(r=Math.max(1,...n.absender.map(q)),t[0]=n.absender,t[1]=r);let i=r,a,o,s,c,l,u,d,f,p,m,h,g;if(t[2]!==i||t[3]!==n.absender||t[4]!==n.letzte_24h||t[5]!==n.tage){let e=n.letzte_24h.map(G),r=Math.max(1,...e);a=C,g=`Wer nutzt die Modelle`,t[18]===n.tage?o=t[19]:(o=(0,I.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[`letzte `,n.tage,` Tage`]}),t[18]=n.tage,t[19]=o),t[20]===n.absender.length?s=t[21]:(s=n.absender.length===0&&(0,I.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Keine Anfragen aufgezeichnet.`}),t[20]=n.absender.length,t[21]=s);let v;if(t[22]!==i||t[23]!==n.absender){let e;t[25]===i?e=t[26]:(e=e=>(0,I.jsxs)(`li`,{className:`flex flex-col gap-1.5`,children:[(0,I.jsxs)(`div`,{className:`flex justify-between gap-3 text-sm`,children:[(0,I.jsx)(`span`,{children:e.name}),(0,I.jsx)(`span`,{className:`ziffern`,children:_(e.anfragen)})]}),(0,I.jsx)(`div`,{className:`h-2 rounded-full bg-erhaben`,children:(0,I.jsx)(`div`,{className:`h-2 rounded-full bg-cyan`,style:{width:`${e.anfragen/i*100}%`}})})]},e.name),t[25]=i,t[26]=e),v=n.absender.map(e),t[22]=i,t[23]=n.absender,t[24]=v}else v=t[24];t[27]===v?c=t[28]:(c=(0,I.jsx)(`ul`,{className:`m-0 flex list-none flex-col gap-3.5 p-0`,children:v}),t[27]=v,t[28]=c),m=`flex flex-col gap-1.5`,t[29]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,I.jsx)(`span`,{className:`schild text-xs text-text-3`,children:`Anfragen je Stunde, letzte 24 h`}),t[29]=h):h=t[29],l=`0 0 240 64`,u=`h-16 w-full`,d=`img`,f=`Anfragen je Stunde in den letzten 24 Stunden`;let y;t[30]===r?y=t[31]:(y=(e,t)=>{let n=e?Math.max(3,e/r*50):2;return(0,I.jsx)(`rect`,{x:t*10+1.5,y:52-n,width:7,height:n,rx:1.5,fill:e?`var(--cyan)`:`var(--linie)`},t)},t[30]=r,t[31]=y),p=e.map(y),t[2]=i,t[3]=n.absender,t[4]=n.letzte_24h,t[5]=n.tage,t[6]=a,t[7]=o,t[8]=s,t[9]=c,t[10]=l,t[11]=u,t[12]=d,t[13]=f,t[14]=p,t[15]=m,t[16]=h,t[17]=g}else a=t[6],o=t[7],s=t[8],c=t[9],l=t[10],u=t[11],d=t[12],f=t[13],p=t[14],m=t[15],h=t[16],g=t[17];let v;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(v=[0,6,12,18].map(W),t[32]=v):v=t[32];let y;t[33]!==l||t[34]!==u||t[35]!==d||t[36]!==f||t[37]!==p?(y=(0,I.jsxs)(`svg`,{viewBox:l,className:u,role:d,"aria-label":f,children:[p,v]}),t[33]=l,t[34]=u,t[35]=d,t[36]=f,t[37]=p,t[38]=y):y=t[38];let b;t[39]!==y||t[40]!==m||t[41]!==h?(b=(0,I.jsxs)(`div`,{className:m,children:[h,y]}),t[39]=y,t[40]=m,t[41]=h,t[42]=b):b=t[42];let x;t[43]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,I.jsx)(`p`,{className:`text-xs text-text-3`,children:`Anfragen an llama-swap. NerdQuiz geht direkt dorthin, alles andere über MC2.`}),t[43]=x):x=t[43];let S;return t[44]!==a||t[45]!==o||t[46]!==s||t[47]!==c||t[48]!==b||t[49]!==g?(S=(0,I.jsxs)(a,{titel:g,rechts:o,children:[s,c,b,x]}),t[44]=a,t[45]=o,t[46]=s,t[47]=c,t[48]=b,t[49]=g,t[50]=S):S=t[50],S}function W(e){return(0,I.jsx)(`text`,{x:e*10+5,y:63,textAnchor:`middle`,style:{fontSize:9,fill:`var(--text-3)`,fontFamily:`var(--font-mono)`},children:e},e)}function G(e){return Object.values(e.je_absender).reduce(K,0)}function K(e,t){return e+t}function q(e){return e.anfragen}var J={bestanden:`gruen`,durchgefallen:`rot`,wartet:`cyan`,neu:`cyan`,getestet:`grau`,uebernommen:`gruen`,verworfen:`grau`};function Y(e){let t=(0,P.c)(31),{k:n}=e,r=w(),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=[`bestanden`,`wartet`,`neu`],t[0]=a):a=t[0];let o=a.includes(n.status),s;t[1]===n.name?s=t[2]:(s=(0,I.jsx)(`span`,{className:`ziffern text-[15px] font-medium`,children:n.name}),t[1]=n.name,t[2]=s);let c=n.rolle===`hirn`?`fürs Hirn`:`fürs Coden`,l;t[3]===c?l=t[4]:(l=(0,I.jsx)(h,{art:`cyan`,children:c}),t[3]=c,t[4]=l);let u=n.eng?`bernstein`:n.passt?`gruen`:`rot`,d=n.eng?`passt knapp`:n.passt?`passt`:`passt nicht`,f;t[5]!==u||t[6]!==d?(f=(0,I.jsx)(h,{art:u,children:d}),t[5]=u,t[6]=d,t[7]=f):f=t[7];let p=J[n.status]??`grau`,m;t[8]!==n.status||t[9]!==p?(m=(0,I.jsx)(h,{art:p,children:n.status}),t[8]=n.status,t[9]=p,t[10]=m):m=t[10];let g;t[11]!==s||t[12]!==l||t[13]!==f||t[14]!==m?(g=(0,I.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[s,l,f,m]}),t[11]=s,t[12]=l,t[13]=f,t[14]=m,t[15]=g):g=t[15];let _;t[16]===n.groesse_gb?_=t[17]:(_=n.groesse_gb==null?``:`${n.groesse_gb.toLocaleString(`de-DE`)} GB. `,t[16]=n.groesse_gb,t[17]=_);let v;t[18]!==n.begruendung||t[19]!==_?(v=(0,I.jsxs)(`p`,{className:`text-sm text-text-2`,children:[_,n.begruendung]}),t[18]=n.begruendung,t[19]=_,t[20]=v):v=t[20];let y;t[21]!==r||t[22]!==n.id||t[23]!==n.name||t[24]!==n.status||t[25]!==o?(y=o&&(0,I.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[n.status===`bestanden`&&(0,I.jsx)(i,{size:`sm`,disabled:r.isPending,onClick:()=>r.mutate({id:n.id,aktion:`uebernehmen`,name:n.name}),children:`Übernehmen`}),(0,I.jsx)(i,{variant:`outline`,size:`sm`,disabled:r.isPending,onClick:()=>r.mutate({id:n.id,aktion:`verwerfen`,name:n.name}),children:`Verwerfen`})]}),t[21]=r,t[22]=n.id,t[23]=n.name,t[24]=n.status,t[25]=o,t[26]=y):y=t[26];let b;return t[27]!==g||t[28]!==v||t[29]!==y?(b=(0,I.jsxs)(`li`,{className:`flex flex-col gap-2 border-t border-linie py-3.5`,children:[g,v,y]}),t[27]=g,t[28]=v,t[29]=y,t[30]=b):b=t[30],b}function X(){let e=(0,P.c)(18),t=d(),n=E();if(t.isError){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,I.jsx)(C,{titel:`Modell-Radar`,id:`radar`,children:(0,I.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Das Radar ist auf dieser Box noch nicht eingerichtet.`})}),e[0]=t):t=e[0],t}let r=t.data,a;e[1]===n?a=e[2]:(a=()=>n.mutate(void 0),e[1]=n,e[2]=a);let o;e[3]!==n.isPending||e[4]!==a?(o=(0,I.jsx)(i,{variant:`info`,size:`sm`,onClick:a,disabled:n.isPending,children:`Jetzt suchen`}),e[3]=n.isPending,e[4]=a,e[5]=o):o=e[5];let s;e[6]===r?s=e[7]:(s=r?.naechster_test?` Nächster Test: ${b(r.naechster_test)}.`:``,e[6]=r,e[7]=s);let c;e[8]===s?c=e[9]:(c=(0,I.jsxs)(`p`,{className:`-mt-2 text-sm text-text-2`,children:[`Testet nachts zwischen 00:30 und 02:30 selbst, höchstens einen Kandidaten pro Woche.`,s]}),e[8]=s,e[9]=c);let l,u;e[10]===r?(l=e[11],u=e[12]):(l=r?r.kandidaten.length===0?(0,I.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Nichts Besseres in Sicht.`}):(0,I.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:r.kandidaten.map(Q)}):(0,I.jsx)(`p`,{className:`text-[15px] text-text-2`,children:`Wird gelesen …`}),u=r&&r.tests.length>0&&(0,I.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,I.jsx)(`h3`,{className:`schild text-xs text-text-3`,children:`Letzte Tests`}),r.tests.slice(0,3).map(Z)]}),e[10]=r,e[11]=l,e[12]=u);let f;return e[13]!==o||e[14]!==c||e[15]!==l||e[16]!==u?(f=(0,I.jsxs)(C,{titel:`Modell-Radar`,id:`radar`,rechts:o,children:[c,l,u]}),e[13]=o,e[14]=c,e[15]=l,e[16]=u,e[17]=f):f=e[17],f}function Z(e){return(0,I.jsxs)(`p`,{className:`text-sm text-text-2`,children:[(0,I.jsx)(`span`,{className:`ziffern text-text-3`,children:b(e.datum)}),` · `,e.zusammenfassung]},e.id)}function Q(e){return(0,I.jsx)(Y,{k:e},e.id)}function $(){let e=(0,P.c)(52),t=v(),n=m(),[r,a]=(0,F.useState)(!1);if(t.isPending){let t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,I.jsx)(f,{text:`Modelle werden gelesen …`}),e[0]=t):t=e[0],t}if(t.error||!t.data){let n=`Die Modell-Liste fehlt: ${t.error?.message??`keine Daten`}`,r;return e[1]===n?r=e[2]:(r=(0,I.jsx)(f,{fehler:!0,text:n}),e[1]=n,e[2]=r),r}let o=t.data.models,s=t.data.running,c,l,u,d,h,g,_,y;if(e[3]!==s||e[4]!==o||e[5]!==n.data){let t=o.find(te),r=o.find(ee),f=o.filter(e=>e!==t&&e!==r),m;e[14]===n.data?.zuletzt_geladen?m=e[15]:(m=n.data?.zuletzt_geladen??{},e[14]=n.data?.zuletzt_geladen,e[15]=m);let v=m;e[16]!==s||e[17]!==o?(g=(0,I.jsx)(z,{modelle:o,laufend:s}),e[16]=s,e[17]=o,e[18]=g):g=e[18];let x=(0,I.jsx)(H,{titel:`Hirn`,modell:t,laeuft:!!t&&s.includes(t.name),nutzer:`Lucy, NerdQuiz und OpenChamber für Kleinkram`}),S=!!r&&s.includes(r.name),w;e[19]!==r||e[20]!==S?(w=(0,I.jsx)(H,{titel:`Coder`,modell:r,laeuft:S,nutzer:`OpenChamber zum Planen und Bauen und Lucys Delegation`}),e[19]=r,e[20]=S,e[21]=w):w=e[21];let T;e[22]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,I.jsx)(H,{titel:`Dritte Rolle`,laeuft:!1,nutzer:``}),e[22]=T):T=e[22],e[23]!==w||e[24]!==x?(_=(0,I.jsxs)(`section`,{"aria-label":`Rollen`,className:`grid gap-5 md:grid-cols-3 md:gap-6`,children:[x,w,T]}),e[23]=w,e[24]=x,e[25]=_):_=e[25];let E;e[26]===n.data?E=e[27]:(E=(0,I.jsx)(U,{nutzung:n.data}),e[26]=n.data,e[27]=E);let D;e[28]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,I.jsx)(X,{}),e[28]=D):D=e[28],e[29]===E?y=e[30]:(y=(0,I.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.3fr)]`,children:[E,D]}),e[29]=E,e[30]=y),c=C,d=`Weitere Einträge`,e[31]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,I.jsxs)(i,{variant:`outline`,size:`sm`,onClick:()=>a(!0),children:[(0,I.jsx)(N,{"aria-hidden":!0}),` Modelle selbst suchen`]}),e[31]=h):h=e[31],l=`m-0 flex list-none flex-col p-0`;let O;e[32]!==s||e[33]!==v?(O=e=>(0,I.jsxs)(`li`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 border-t border-linie py-2.5 sm:grid-cols-[minmax(0,1fr)_120px_160px]`,children:[(0,I.jsxs)(`span`,{className:`min-w-0`,children:[(0,I.jsx)(`span`,{className:`ziffern block text-sm break-all`,children:e.name}),(0,I.jsx)(`span`,{className:`text-xs text-text-3`,children:e.aliases.length?e.aliases.join(`, `):`ohne Rolle`})]}),(0,I.jsx)(`span`,{className:`ziffern text-sm text-text-2`,children:p(e.size_bytes)}),(0,I.jsx)(`span`,{className:`ziffern hidden text-xs text-text-3 sm:block`,children:s.includes(e.name)?`geladen`:v[e.name]?`zuletzt ${b(v[e.name])}`:`länger nicht geladen`})]},e.name),e[32]=s,e[33]=v,e[34]=O):O=e[34],u=f.map(O),e[3]=s,e[4]=o,e[5]=n.data,e[6]=c,e[7]=l,e[8]=u,e[9]=d,e[10]=h,e[11]=g,e[12]=_,e[13]=y}else c=e[6],l=e[7],u=e[8],d=e[9],h=e[10],g=e[11],_=e[12],y=e[13];let x;e[35]!==l||e[36]!==u?(x=(0,I.jsx)(`ul`,{className:l,children:u}),e[35]=l,e[36]=u,e[37]=x):x=e[37];let S;e[38]!==c||e[39]!==d||e[40]!==h||e[41]!==x?(S=(0,I.jsx)(c,{titel:d,rechts:h,children:x}),e[38]=c,e[39]=d,e[40]=h,e[41]=x,e[42]=S):S=e[42];let w;e[43]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>a(!1),e[43]=w):w=e[43];let T;e[44]===r?T=e[45]:(T=(0,I.jsx)(L,{offen:r,onSchliessen:w}),e[44]=r,e[45]=T);let E;return e[46]!==T||e[47]!==g||e[48]!==_||e[49]!==y||e[50]!==S?(E=(0,I.jsxs)(I.Fragment,{children:[g,_,y,S,T]}),e[46]=T,e[47]=g,e[48]=_,e[49]=y,e[50]=S,e[51]=E):E=e[51],E}function ee(e){return y(e)===`coder`}function te(e){return y(e)===`hirn`}export{$ as ModelleSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/ModelsView-dw81nBmA.js b/frontend/dist/assets/ModelsView-dw81nBmA.js deleted file mode 100644 index 91a5a96..0000000 --- a/frontend/dist/assets/ModelsView-dw81nBmA.js +++ /dev/null @@ -1,83 +0,0 @@ -import{c as E,u as he,a as qe,r as v,j as e,C as Y,L as Fe,b as k,d as Re,q as V,R as Ie,B as re,e as Pe,E as ze,f as le,g as Be,h as Ae,i as Oe,k as Ge,l as ee,X as xe,H as be,T as se,s as Te,m as He,n as q,o as U,p as Qe,t as Ue,v as Ve,w as We,x as Ze,y as Je,z as Xe,A as Ye}from"./index-DMY9lUCb.js";import{J as et}from"./JobsBar-95gsUJZs.js";import{C as tt}from"./code-xml-Bf-y5tB9.js";import{C as ue,Z as ie,L as rt,a as st}from"./zap-2yha4rs4.js";import{S as ge}from"./search-D_8DnBvS.js";import{P as nt}from"./power-DsvD9qMX.js";import{C as $e}from"./chevron-down-1Vx9W9jM.js";import{L as at}from"./layers-CcL78b5Q.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ot=E("BrainCircuit",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M9 13a4.5 4.5 0 0 0 3-4",key:"10igwf"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M12 13h4",key:"1ku699"}],["path",{d:"M12 18h6a2 2 0 0 1 2 2v1",key:"105ag5"}],["path",{d:"M12 8h8",key:"1lhi5i"}],["path",{d:"M16 8V5a2 2 0 0 1 2-2",key:"u6izg6"}],["circle",{cx:"16",cy:"13",r:".5",key:"ry7gng"}],["circle",{cx:"18",cy:"3",r:".5",key:"1aiba7"}],["circle",{cx:"20",cy:"21",r:".5",key:"yhc1fs"}],["circle",{cx:"20",cy:"8",r:".5",key:"1e43v0"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const lt=E("BrainCog",[["path",{d:"M12 5a3 3 0 1 0-5.997.142 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588 4 4 0 0 0 7.636 2.106 3.2 3.2 0 0 0 .164-.546c.028-.13.306-.13.335 0a3.2 3.2 0 0 0 .163.546 4 4 0 0 0 7.636-2.106 4 4 0 0 0 .556-6.588 4 4 0 0 0-2.526-5.77A3 3 0 1 0 12 5",key:"1kgmhc"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m15.7 10.4-.9.4",key:"ayzo6p"}],["path",{d:"m9.2 13.2-.9.4",key:"1uzb3g"}],["path",{d:"m13.6 15.7-.4-.9",key:"11ifqf"}],["path",{d:"m10.8 9.2-.4-.9",key:"1pmk2v"}],["path",{d:"m15.7 13.5-.9-.4",key:"7ng02m"}],["path",{d:"m9.2 10.9-.9-.4",key:"1x66zd"}],["path",{d:"m10.5 15.7.4-.9",key:"3js94g"}],["path",{d:"m13.1 9.2.4-.9",key:"18n7mc"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const De=E("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ae=E("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const it=E("Flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const dt=E("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ct=E("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mt=E("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const xt=E("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ut=E("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const pt=E("PowerOff",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Ee=E("Scale",[["path",{d:"m16 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"7g6ntu"}],["path",{d:"m2 16 3-8 3 8c-.87.65-1.92 1-3 1s-2.13-.35-3-1Z",key:"ijws7r"}],["path",{d:"M7 21h10",key:"1b0cd5"}],["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"M3 7h2c2 0 5-1 7-2 2 1 5 2 7 2h2",key:"3gwbw2"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ht=E("SlidersVertical",[["line",{x1:"4",x2:"4",y1:"21",y2:"14",key:"1p332r"}],["line",{x1:"4",x2:"4",y1:"10",y2:"3",key:"gb41h5"}],["line",{x1:"12",x2:"12",y1:"21",y2:"12",key:"hf2csr"}],["line",{x1:"12",x2:"12",y1:"8",y2:"3",key:"1kfi7u"}],["line",{x1:"20",x2:"20",y1:"21",y2:"16",key:"1lhrwl"}],["line",{x1:"20",x2:"20",y1:"12",y2:"3",key:"16vvfq"}],["line",{x1:"2",x2:"6",y1:"14",y2:"14",key:"1uebub"}],["line",{x1:"10",x2:"14",y1:"8",y2:"8",key:"1yglbp"}],["line",{x1:"18",x2:"22",y1:"16",y2:"16",key:"1jxqpz"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const bt=E("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const gt=E("Telescope",[["path",{d:"m10.065 12.493-6.18 1.318a.934.934 0 0 1-1.108-.702l-.537-2.15a1.07 1.07 0 0 1 .691-1.265l13.504-4.44",key:"k4qptu"}],["path",{d:"m13.56 11.747 4.332-.924",key:"19l80z"}],["path",{d:"m16 21-3.105-6.21",key:"7oh9d"}],["path",{d:"M16.485 5.94a2 2 0 0 1 1.455-2.425l1.09-.272a1 1 0 0 1 1.212.727l1.515 6.06a1 1 0 0 1-.727 1.213l-1.09.272a2 2 0 0 1-2.425-1.455z",key:"m7xp4m"}],["path",{d:"m6.158 8.633 1.114 4.456",key:"74o979"}],["path",{d:"m8 21 3.105-6.21",key:"1fvxut"}],["circle",{cx:"12",cy:"13",r:"2",key:"1c1ljs"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ft=E("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]),yt=["fast","heavy","heavy_chars"],jt=["coder_lite","coder","coding_escalate_chars"];function vt(){const t=he(),{data:r,isLoading:b}=qe(),[n,i]=v.useState(null),[M,w]=v.useState(!1),[N,S]=v.useState(""),[g,z]=v.useState(0);if(v.useEffect(()=>{r!=null&&r.policy&&!n&&i({...r.policy})},[r,n]),b||!r||!n)return e.jsx("div",{className:"mc-card p-5 text-xs text-muted-foreground",children:"Lade Routing-Policy…"});const m=s=>r.fields.find(o=>o.key===s),f=Object.keys(n).some(s=>n[s]!==r.policy[s]),p=(s,o)=>{i(d=>d&&{...d,[s]:o}),S("")},c=s=>p(s,r.defaults[s]);async function L(){if(!n)return;const s={};for(const o of Object.keys(n))n[o]!==r.policy[o]&&(s[o]=n[o]);if(Object.keys(s).length!==0){w(!0),S("");try{const{policy:o}=await Re(s);i({...o}),t.invalidateQueries({queryKey:V.routingPolicy}),t.invalidateQueries({queryKey:V.routing}),z(Date.now()),setTimeout(()=>z(0),2e3)}catch(o){S(o.message||String(o))}finally{w(!1)}}}function A({k:s}){const o=m(s),d=n[s],G=n[s]===r.defaults[s];return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("label",{className:"text-[10px] font-semibold text-muted-foreground",children:o.label}),!G&&e.jsxs("button",{onClick:()=>c(s),className:"flex items-center gap-0.5 text-[9px] text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer",title:`Auf Default zurücksetzen (${String(r.defaults[s])||"leer"})`,children:[e.jsx(Ie,{className:"h-2.5 w-2.5"})," Default"]})]}),o.type==="bool"?e.jsxs("button",{onClick:()=>p(s,!d),className:k("flex h-8 w-full items-center justify-between rounded-lg border px-3 text-[11px] font-semibold transition-all cursor-pointer",d?"border-emerald-500/40 bg-emerald-500/10 text-emerald-300":"border-border/40 bg-background/40 text-muted-foreground"),children:[e.jsx("span",{children:d?"An":"Aus"}),e.jsx("span",{className:k("h-3.5 w-3.5 rounded-full transition-colors",d?"bg-emerald-400":"bg-muted-foreground/40")})]}):o.type==="int"?e.jsx("input",{type:"number",value:d,min:o.min,max:o.max,"aria-label":o.label,onChange:B=>p(s,Number(B.target.value)),className:"h-8 w-full rounded-lg border border-border/40 bg-background/40 px-3 font-mono text-[11px] text-foreground outline-none focus:border-primary/50"}):e.jsx("input",{type:"text",value:d,"aria-label":o.label,spellCheck:!1,placeholder:s==="coder_lite"?"(leer = aus)":"",onChange:B=>p(s,B.target.value),className:"h-8 w-full rounded-lg border border-border/40 bg-background/40 px-3 font-mono text-[11px] text-foreground outline-none focus:border-primary/50"})]})}return e.jsxs("div",{className:"mc-card p-5 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ht,{className:"h-4.5 w-4.5 text-primary"}),e.jsx("span",{className:"text-xs font-bold uppercase tracking-wider text-foreground",children:"Lane-Routing & Policy"}),e.jsx("span",{className:"text-[9px] font-mono px-1.5 py-0.5 rounded bg-emerald-500/10 text-emerald-300 border border-emerald-500/20",children:"hot-reload"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[N&&e.jsx("span",{className:"text-[10px] text-red-400 max-w-[280px] truncate",title:N,children:N}),g>0&&e.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-emerald-400",children:[e.jsx(Y,{className:"h-3.5 w-3.5"})," gespeichert"]}),e.jsxs("button",{onClick:L,disabled:!f||M,className:k("h-8 px-4 rounded-lg text-[10px] font-bold uppercase tracking-wide transition-all flex items-center gap-1.5",f&&!M?"bg-primary text-primary-foreground hover:opacity-90 cursor-pointer shadow-md shadow-primary/10":"bg-background/40 text-muted-foreground/50 border border-border/40 cursor-not-allowed"),children:[M?e.jsx(Fe,{className:"h-3.5 w-3.5 animate-spin"}):null,"Speichern"]})]})]}),e.jsxs("p",{className:"text-[10px] text-muted-foreground/70 leading-relaxed -mt-1",children:["Welches echte Modell hinter den virtuellen Lanes ",e.jsx("code",{className:"text-cyan-300",children:"chat"})," und"," ",e.jsx("code",{className:"text-cyan-300",children:"coding"})," steckt. Änderungen greifen sofort (kein Neustart). Die Keyword-Heuristiken bleiben im Code."]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("div",{className:"rounded-xl border border-border/40 bg-background/25 p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 border-b border-border/30 pb-2",children:[e.jsx(mt,{className:"h-4 w-4 text-teal-400"}),e.jsx("span",{className:"text-[11px] font-bold uppercase tracking-wider text-foreground",children:"chat"}),e.jsx("span",{className:"text-[9px] text-muted-foreground/60 font-mono",children:"(= auto)"})]}),yt.map(s=>e.jsx(A,{k:s},s))]}),e.jsxs("div",{className:"rounded-xl border border-border/40 bg-background/25 p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 border-b border-border/30 pb-2",children:[e.jsx(tt,{className:"h-4 w-4 text-indigo-400"}),e.jsx("span",{className:"text-[11px] font-bold uppercase tracking-wider text-foreground",children:"coding"}),e.jsx("span",{className:"text-[9px] text-muted-foreground/60 font-mono",children:"(agentisch → immer Coder)"})]}),jt.map(s=>e.jsx(A,{k:s},s))]})]}),e.jsx("div",{className:"rounded-xl border border-border/40 bg-background/25 p-4",children:e.jsx("div",{className:"max-w-xs",children:e.jsx(A,{k:"fast_no_think"})})})]})}const fe=[{role:"hermes",label:"Lucys Hirn",short:"Hirn",icon:re,desc:"Lucys Alltags-Verstand — denkt und redet mit dir. Immer bereit.",tone:"bg-indigo-500/15 text-indigo-400 border-indigo-500/25",protected:!0},{role:"embed",label:"Lucys Gedächtnis",short:"Gedächtnis",icon:Pe,desc:"Merkt sich Wichtiges und findet es später wieder.",tone:"bg-emerald-500/15 text-emerald-400 border-emerald-500/25",protected:!0},{role:"reranker",label:"Gedächtnis-Sortierer",short:"Sortierer",icon:ct,desc:"Ordnet gefundene Erinnerungen nach echter Relevanz — die Feinsortierung hinter dem Gedächtnis.",tone:"bg-lime-500/15 text-lime-400 border-lime-500/25"},{role:"vision",label:"Lucys Augen",short:"Augen",icon:ze,desc:"Sieht Bilder und Screenshots und beschreibt, was drauf ist.",tone:"bg-pink-500/15 text-pink-400 border-pink-500/25"},{role:"heavy",label:"Großes Hirn",short:"Groß",icon:lt,desc:"Das schwere Geschütz — wird für besonders knifflige Fragen dazugeholt.",tone:"bg-amber-500/15 text-amber-400 border-amber-500/25"},{role:"coder-lite",label:"Programmierer (schnell)",short:"Code schnell",icon:ue,desc:"Schnelles Programmieren im Alltag.",tone:"bg-violet-500/15 text-violet-400 border-violet-500/25"},{role:"coder",label:"Programmierer",short:"Code",icon:ue,desc:"Baut und plant. Der Kopf der Coding-Mannschaft — er hält den Faden und verteilt Zuarbeit.",tone:"bg-fuchsia-500/15 text-fuchsia-400 border-fuchsia-500/25",protected:!0},{role:"scout",label:"Späher",short:"Späher",icon:gt,desc:"Schneller erster Blick und grobe Einschätzung.",tone:"bg-teal-500/15 text-teal-400 border-teal-500/25"},{role:"kritiker",label:"Kritiker",short:"Kritiker",icon:Ee,desc:"Liest dem Programmierer nach jeder Etappe gegen — bewusst aus einer FREMDEN Modellfamilie (Mistral statt Qwen), damit er andere blinde Flecken hat.",tone:"bg-cyan-500/15 text-cyan-400 border-cyan-500/25"}];fe.map(t=>t.role);const je=Object.fromEntries(fe.map(t=>[t.role,t])),ve=t=>({role:t||"?",label:t||"unbekannt",short:t||"?",icon:re,desc:"Rolle ohne hinterlegten Klartext-Namen.",tone:"bg-slate-500/15 text-slate-300 border-slate-500/25"}),Nt={fast:"hermes",coder_lite:"coder-lite"};function F(t){return t&&(je[t]||je[Nt[t]])||ve(t)}function pe({role:t,dense:r=!1,className:b}){const n=F(t),i=n.icon;return e.jsxs("span",{className:k("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-semibold border tracking-wide",n.tone,b),title:`${n.desc} (${n.role})`,children:[e.jsx(i,{className:"h-3 w-3 shrink-0","aria-hidden":"true"}),r?n.short:n.label]})}function kt({fit:t}){const r={perfect:"bg-emerald-500/15 text-emerald-400 border border-emerald-500/20",marginal:"bg-amber-500/15 text-amber-400 border border-amber-500/20",too_tight:"bg-red-500/15 text-red-400 border border-red-500/20"}[t.level];return e.jsxs("span",{className:k("rounded px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wider font-mono",r),children:[t.text," • ",t.req_gb," GB RAM"]})}function Ke(t){const r=t.toLowerCase();return r.includes("qwen")?{name:"Qwen",color:"bg-purple-500/20 text-purple-300 border-purple-500/30",initial:"Q"}:r.includes("gemma")?{name:"Gemma",color:"bg-blue-500/20 text-blue-300 border-blue-500/30",initial:"G"}:r.includes("llama")?{name:"Llama",color:"bg-red-500/20 text-red-300 border-red-500/30",initial:"🦙"}:r.includes("mistral")||r.includes("mixtral")?{name:"Mistral",color:"bg-orange-500/20 text-orange-300 border-orange-500/30",initial:"M"}:r.includes("deepseek")?{name:"DeepSeek",color:"bg-cyan-500/20 text-cyan-300 border-cyan-500/30",initial:"D"}:r.includes("hermes")||r.includes("nous")?{name:"Hermes",color:"bg-amber-500/20 text-amber-300 border-amber-500/30",initial:"H"}:r.includes("phi")?{name:"Phi",color:"bg-emerald-500/20 text-emerald-300 border-emerald-500/30",initial:"Φ"}:{name:"Other",color:"bg-slate-500/20 text-slate-300 border-slate-500/30",initial:"AI"}}function wt(){var te,T,$;const t=he(),{data:r}=le(),{data:b}=Be(),{data:n}=Ae(),{data:i}=Oe(),{showAlert:M,dialogElement:w}=Ge(),[N,S]=v.useState(!1),[g,z]=v.useState(!1),m=(r==null?void 0:r.models)??[],f=(r==null?void 0:r.running)??[],p=(te=b==null?void 0:b.groups)==null?void 0:te.brains,c=(p==null?void 0:p.members)??[],L=u=>m.find(_=>_.name===u),A=u=>{var _;return((_=u.split("/").pop())==null?void 0:_.replace(/\.gguf$/i,""))||u},s=c.map(L).filter(Boolean),o=1024**3,d=i==null?void 0:i.budget,G=s.reduce((u,_)=>u+(_.size_bytes||0),0)/o,B=((T=n==null?void 0:n.gpu)==null?void 0:T.gtt_total)||(($=n==null?void 0:n.gpu)==null?void 0:$.vram_total)||0,C=(d==null?void 0:d.gtt_gb)||(B?B/o:0),j=(d==null?void 0:d.warm_projected_gb)??G,R=C>0?Math.min(100,j/C*100):0,K=m.filter(u=>!c.includes(u.name)&&!u.incomplete);async function I(u){z(!0);try{await Te("brains",u,(p==null?void 0:p.swap)??!1,(p==null?void 0:p.persist)??!0),t.invalidateQueries({queryKey:V.groups}),t.invalidateQueries({queryKey:V.models}),t.invalidateQueries({queryKey:V.hermesBrain})}catch(_){M("Fehler",`Immer-bereit-Set konnte nicht geändert werden: ${(_==null?void 0:_.message)||_}`)}finally{z(!1)}}function O(u){const _=L(u);if(_&&F(_.role).protected){M("Geschützt",`„${F(_.role).label}" ist lebenswichtig und bleibt immer bereit.`);return}I(c.filter(H=>H!==u))}function W(u){S(!1),I([...c,u])}return p?e.jsxs("div",{className:"mc-card p-5 space-y-4",children:[e.jsx(Ne,{}),e.jsxs("div",{className:"space-y-1.5",children:[s.length===0&&e.jsx("div",{className:"text-xs text-muted-foreground",children:"Noch keine Modelle im Set."}),s.map(u=>{const _=f.includes(u.name),H=F(u.role).protected;return e.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-xl border border-border/30 bg-background/20 p-2.5",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2.5",children:[e.jsx("span",{className:k("h-2 w-2 shrink-0 rounded-full ring-2 ring-black/40",_?"bg-emerald-500 animate-pulse":"bg-muted-foreground/40"),title:_?"Gerade warm (bereit)":"Reserviert — lädt bei Bedarf sofort"}),u.role&&e.jsx(pe,{role:u.role,dense:!0,className:"shrink-0"}),e.jsx("span",{className:"truncate font-mono text-xs font-semibold text-foreground",title:u.name,children:A(u.name)}),e.jsx("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground/70",children:ee(u.size_bytes)})]}),H?e.jsx("span",{className:"shrink-0 text-[10px] font-semibold text-muted-foreground",title:"Lebenswichtig — bleibt immer im Set.",children:"🔒"}):e.jsx("button",{onClick:()=>O(u.name),disabled:g,className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-border/40 text-muted-foreground transition-colors hover:bg-red-500/5 hover:text-red-400 cursor-pointer disabled:opacity-50",title:"Aus dem Immer-bereit-Set nehmen (lädt dann nur noch bei Bedarf)",children:e.jsx(xe,{className:"h-3.5 w-3.5"})})]},u.name)})]}),e.jsxs("button",{onClick:()=>S(!0),disabled:g||K.length===0,className:"flex h-8 w-full items-center justify-center gap-1.5 rounded-lg border border-dashed border-border/50 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground transition-colors hover:border-primary/40 hover:text-primary cursor-pointer disabled:opacity-50",children:[e.jsx(ut,{className:"h-3.5 w-3.5"})," Modell dauerhaft bereithalten"]}),e.jsxs("div",{className:"rounded-xl border border-border/30 bg-background/20 p-3",children:[e.jsxs("div",{className:"mb-1.5 flex items-center justify-between text-[11px]",children:[e.jsxs("span",{className:"flex items-center gap-1.5 font-semibold uppercase tracking-wider text-muted-foreground",title:"Modellgewichte + KV-Cache, berechnet aus den echten Architektur-Daten jedes Modells (Layer × KV-Köpfe × Kontext) und seiner KV-Quantisierung. So viel legt llama.cpp beim Laden wirklich für den eingestellten Kontext an — kein Aufschlag mehr.",children:[e.jsx(be,{className:"h-3.5 w-3.5"})," Reserviert fürs Set"]}),e.jsxs("span",{className:"font-mono font-bold text-foreground",children:[j.toFixed(1),C>0?` / ${C.toFixed(0)}`:""," GB"]})]}),e.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full border border-border/30 bg-background/50",children:e.jsx("div",{className:k("h-full rounded-full transition-all duration-500",R>=85?"bg-red-500":R>=65?"bg-amber-500":"bg-teal-500"),style:{width:`${R}%`}})}),d&&!d.fits&&e.jsxs("p",{className:"mt-2 flex items-start gap-1.5 text-[11px] text-amber-400",children:[e.jsx(se,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),e.jsxs("span",{children:["Zusammen mit dem größten Gelegenheits-Modell (~",d.largest_ondemand_gb," GB) wird der Speicher knapp. Das Set bleibt dabei immer geladen — wird es wirklich eng, schlägt das Laden des großen Modells fehl (es wartet dann, statt das Set zu verdrängen)."]})]}),d&&d.fits&&e.jsxs("p",{className:"mt-2 flex items-center gap-1.5 text-[11px] text-emerald-400",children:[e.jsx(Y,{className:"h-3.5 w-3.5 shrink-0"})," Passt auch neben dem größten Gelegenheits-Modell — nichts wird verdrängt."]})]}),N&&e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4 backdrop-blur-sm",role:"dialog","aria-modal":"true","aria-label":"Modell zum Immer-bereit-Set hinzufügen",children:e.jsxs("div",{className:"w-full max-w-md space-y-3 rounded-2xl border border-border/80 bg-card p-6 shadow-2xl animate-in fade-in zoom-in-95 duration-200",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary",children:"Dauerhaft bereithalten"}),e.jsx("button",{onClick:()=>S(!1),className:"rounded p-1 text-muted-foreground hover:bg-accent hover:text-foreground cursor-pointer",children:e.jsx(xe,{className:"h-4 w-4"})})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Wähle ein Modell, das ohne Ladezeit bereitstehen soll:"}),e.jsx("div",{className:"max-h-60 space-y-1.5 overflow-y-auto pr-1",children:K.map(u=>e.jsxs("button",{onClick:()=>W(u.name),className:"flex w-full items-center justify-between gap-2 rounded-lg border border-border/30 bg-background/20 px-3 py-2.5 text-left transition-colors hover:bg-accent cursor-pointer",children:[e.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[u.role&&e.jsx(pe,{role:u.role,dense:!0,className:"shrink-0"}),e.jsx("span",{className:"truncate font-mono text-xs font-semibold text-foreground",children:A(u.name)})]}),e.jsx("span",{className:"shrink-0 font-mono text-[10px] text-muted-foreground/70",children:ee(u.size_bytes)})]},u.name))})]})}),w]}):e.jsxs("div",{className:"mc-card p-5",children:[e.jsx(Ne,{}),e.jsx("p",{className:"mt-3 text-xs text-muted-foreground",children:"Es gibt noch kein Immer-bereit-Set. Es entsteht automatisch, sobald Lucys Hirn zugewiesen ist."}),w]})}function Ne(){return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ie,{className:"h-4.5 w-4.5 text-primary"}),e.jsxs("div",{children:[e.jsx("h2",{className:"text-sm font-bold uppercase tracking-wide text-foreground",children:"Immer-bereit-Set"}),e.jsx("p",{className:"text-[11px] text-muted-foreground",children:"Diese Modelle hält Lucy immer bereit — sie antworten ohne Ladezeit."})]})]})}function J({children:t,tone:r="muted"}){const b={muted:"bg-muted text-muted-foreground",primary:"bg-primary/15 text-primary",warn:"bg-amber-500/15 text-amber-500"};return e.jsx("span",{className:`rounded px-1.5 py-0.5 text-[11px] font-medium ${b[r]}`,children:t})}function Mt({caps:t}){return t?e.jsxs("span",{className:"inline-flex flex-wrap gap-1",children:[t.coder&&e.jsx(J,{children:"💻 Code"}),t.vision&&e.jsx(J,{children:"👁 Bild"}),t.reasoning&&e.jsx(J,{children:"🧠 Reason"}),t.moe&&e.jsxs(J,{tone:"primary",children:["🧩 MoE",t.active_b?`·${t.active_b}b`:""]}),t.tools==="yes"&&e.jsx(J,{tone:"primary",children:"🛠 Tools"}),t.tools==="likely"&&e.jsx(J,{tone:"warn",children:"🛠 Tools?"}),t.embedding&&e.jsx(J,{children:"🔢 Embed"})]}):null}function St({model:t,onClose:r,onChanged:b}){var L,A;const{data:n,isLoading:i}=He(t.gguf_path),[M,w]=v.useState(null),[N,S]=v.useState(""),g=n==null?void 0:n.target_vocab,z=(n==null?void 0:n.drafts)??[],m=z.filter(s=>s.compatible===!0),f=t.spec_draft_model;async function p(s){w(s??"__clear__"),S("");try{await q(`/api/models/${encodeURIComponent(t.name)}/draft`,{method:"POST",body:JSON.stringify({draft_path:s})}),b(),r()}catch(o){S(String((o==null?void 0:o.message)||o)),w(null)}}const c=s=>{var o;return s?`${s.pre??"?"} · ${((o=s.n_vocab)==null?void 0:o.toLocaleString())??"?"} Tokens`:"—"};return e.jsx("div",{className:"fixed inset-0 z-50 bg-black/60 backdrop-blur-sm flex items-center justify-center p-4",children:e.jsxs("div",{className:"w-full max-w-lg rounded-2xl border border-border/80 bg-card p-6 shadow-2xl space-y-4 animate-in fade-in zoom-in-95 duration-200",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-border/20 pb-2",children:[e.jsxs("h3",{className:"text-xs font-bold uppercase tracking-wider text-primary flex items-center gap-2",children:[e.jsx(ie,{className:"h-4 w-4"})," Speculative Draft"]}),e.jsx("button",{onClick:r,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-foreground cursor-pointer",children:e.jsx(xe,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"text-xs text-muted-foreground leading-relaxed",children:['Beschleunigt die Token-Generierung mit einem kleinen "Draft"-Modell. Voraussetzung: der Draft muss den ',e.jsx("strong",{className:"text-foreground",children:"exakt gleichen Tokenizer (Vocab)"})," haben wie das Modell — sonst lehnt llama.cpp es ab."]}),e.jsxs("div",{className:"rounded-lg border border-border/40 bg-background/30 px-3 py-2 text-[11px] font-mono flex items-center justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:(L=t.name.split("/").pop())==null?void 0:L.replace(/\.gguf$/i,"")}),e.jsxs("span",{className:"text-foreground",children:["Vocab: ",c(g)]})]}),t.spec_active&&f&&e.jsxs("div",{className:"rounded-lg border border-emerald-500/30 bg-emerald-500/5 px-3 py-2 flex items-center justify-between gap-2",children:[e.jsxs("span",{className:"text-[11px] text-emerald-400 font-mono flex items-center gap-1.5 truncate",children:[e.jsx(Y,{className:"h-3.5 w-3.5 shrink-0"})," Aktiv: ",f]}),e.jsx("button",{onClick:()=>p(null),disabled:M!==null,className:"h-6 px-2.5 rounded border border-amber-500/30 bg-amber-500/5 hover:bg-amber-500/10 text-amber-400 text-[9px] font-bold uppercase shrink-0 cursor-pointer disabled:opacity-50",children:"Deaktivieren"})]}),!(n!=null&&n.target_exists)&&e.jsxs("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/5 px-3 py-2 text-[11px] text-amber-400 flex items-center gap-2",children:[e.jsx(se,{className:"h-3.5 w-3.5 shrink-0"}),"Modell-GGUF noch nicht vorhanden — Spec-Draft ist nach dem Download konfigurierbar."]}),e.jsx("div",{className:"space-y-1.5 max-h-64 overflow-y-auto pr-1",children:i?e.jsx("div",{className:"text-xs text-muted-foreground py-6 text-center",children:"Prüfe Vocab-Kompatibilität…"}):z.length===0?e.jsxs("div",{className:"text-[11px] text-muted-foreground border border-dashed border-border/50 rounded-lg p-4 text-center",children:["Keine Draft-Modelle in ",e.jsx("code",{className:"font-mono",children:"/srv/models/drafts"}),". Lade ein kleines same-family-Modell (z.B. Qwen3-0.6B) und lege es dort ab."]}):z.map(s=>{var G,B;const o=s.filename===f,d=s.compatible===!0;return e.jsxs("div",{className:k("rounded-lg border px-3 py-2 flex items-center justify-between gap-2 text-left",d?"border-border/40 bg-background/20":"border-border/20 bg-background/10 opacity-60",o&&"border-primary/40 bg-primary/10"),children:[e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"text-[11px] font-mono font-semibold text-foreground truncate flex items-center gap-1.5",children:[s.filename,s.mtp&&e.jsx("span",{className:"shrink-0 rounded bg-indigo-500/15 px-1.5 py-0.5 text-[8px] font-bold uppercase tracking-wider text-indigo-400 border border-indigo-500/25",title:"MTP-Kopf (Multi-Token-Prediction) — by-construction vocab-identisch, höchste Akzeptanzrate",children:"MTP"})]}),e.jsxs("div",{className:"text-[9px] text-muted-foreground font-mono",children:[ee(s.size_bytes)," · Vocab: ",c(s.vocab)]})]}),d?o?e.jsxs("span",{className:"text-[9px] font-bold uppercase text-primary flex items-center gap-1 shrink-0",children:[e.jsx(Y,{className:"h-3.5 w-3.5"})," Aktiv"]}):e.jsx("button",{onClick:()=>p(s.path),disabled:M!==null,className:"h-7 px-3 rounded-lg border border-emerald-500/30 bg-emerald-500/5 hover:bg-emerald-500/15 text-emerald-400 text-[9px] font-bold uppercase shrink-0 cursor-pointer disabled:opacity-50",children:"Aktivieren"}):e.jsxs("span",{className:"text-[9px] font-bold uppercase text-amber-400/80 flex items-center gap-1 shrink-0",title:s.compatible===!1?`Inkompatibel: Tokenizer/Vocab weicht ab (Draft ${(G=s.vocab)==null?void 0:G.pre}/${(B=s.vocab)==null?void 0:B.n_vocab} ≠ Modell ${g==null?void 0:g.pre}/${g==null?void 0:g.n_vocab}).`:"Kompatibilität nicht prüfbar (Datei fehlt).",children:[e.jsx(se,{className:"h-3.5 w-3.5"})," ",s.compatible===!1?"Vocab ≠":"n/a"]})]},s.path)})}),!i&&(n==null?void 0:n.target_exists)&&z.length>0&&m.length===0&&e.jsxs("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/5 px-3 py-2 text-[11px] text-amber-400 leading-relaxed",children:["Kein vocab-kompatibler Draft verfügbar — Speculative Decoding ist für dieses Modell nicht möglich. Es braucht einen Draft mit identischem Tokenizer (pre=",e.jsx("span",{className:"font-mono",children:g==null?void 0:g.pre}),", n_vocab=",e.jsx("span",{className:"font-mono",children:(A=g==null?void 0:g.n_vocab)==null?void 0:A.toLocaleString()}),")."]}),N&&e.jsx("div",{className:"text-[10px] text-red-400 font-mono",children:N})]})})}const ke={hermes:{bar:"bg-indigo-500",dot:"bg-indigo-500",text:"text-indigo-400"},embed:{bar:"bg-emerald-500",dot:"bg-emerald-500",text:"text-emerald-400"},vision:{bar:"bg-pink-500",dot:"bg-pink-500",text:"text-pink-400"},heavy:{bar:"bg-amber-500",dot:"bg-amber-500",text:"text-amber-400"},"coder-lite":{bar:"bg-violet-500",dot:"bg-violet-500",text:"text-violet-400"},coder:{bar:"bg-fuchsia-500",dot:"bg-fuchsia-500",text:"text-fuchsia-400"},scout:{bar:"bg-teal-500",dot:"bg-teal-500",text:"text-teal-400"},kritiker:{bar:"bg-cyan-500",dot:"bg-cyan-500",text:"text-cyan-400"},reranker:{bar:"bg-lime-500",dot:"bg-lime-500",text:"text-lime-400"}},Ct={fast:"hermes",coder_lite:"coder-lite"},we={bar:"bg-slate-400",dot:"bg-slate-400",text:"text-slate-300"};function oe(t){return t&&(ke[t]||ke[Ct[t]])||we}const Me=1024**3,Se=t=>{var r;return((r=t.split("/").pop())==null?void 0:r.replace(/\.gguf$/i,""))??t};function _t({running:t,capacityBytes:r,realUsedBytes:b,selected:n,onSelect:i}){const M=r>2*Me?r:124*Me,w=t.reduce((m,f)=>m+(f.size_bytes||0),0),N=Math.max(0,b-w),S=Math.max(0,M-Math.max(w,b)),g=S/M*100,z=N/M*100;return e.jsxs("div",{className:"mc-card p-5",children:[e.jsxs("div",{className:"mb-3 flex flex-wrap items-end justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(be,{className:"h-5 w-5 text-primary"}),e.jsxs("div",{children:[e.jsx("div",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:"Modell-Speicher (GPU-Pool)"}),e.jsxs("div",{className:"font-space text-xl font-bold tracking-tight text-foreground",children:[U(M)," GB ",e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"gesamt"})]})]})]}),e.jsxs("div",{className:"text-right text-[11px] font-mono text-muted-foreground",children:[e.jsxs("div",{children:[e.jsxs("span",{className:"font-bold text-foreground",children:[U(w)," GB"]})," Modell-Gewichte"]}),N>0&&e.jsxs("div",{children:[U(N)," GB KV-Cache & Betrieb"]}),e.jsxs("div",{className:"text-emerald-400",children:[U(S)," GB frei"]})]})]}),e.jsx("div",{className:"flex h-12 w-full overflow-hidden rounded-xl border border-border/40 bg-background/50 p-1",children:t.length===0?e.jsx("div",{className:"flex w-full items-center justify-center text-[11px] italic text-muted-foreground/60",children:"Kein Modell geladen — Auto-Swap holt bei Anfrage automatisch das passende."}):e.jsxs(e.Fragment,{children:[t.map(m=>{const f=(m.size_bytes||0)/M*100,p=oe(m.role),c=n===m.name;return e.jsxs("button",{onClick:()=>i==null?void 0:i(m.name),style:{width:`${f}%`},title:`${F(m.role).label} · ${Se(m.name)} · ${ee(m.size_bytes)}`,className:k("group flex h-full min-w-[2.5rem] shrink-0 flex-col justify-center gap-0.5 rounded-lg px-2 text-left text-white transition-all",p.bar,c?"ring-2 ring-white/70":"opacity-90 hover:opacity-100"),children:[e.jsx("span",{className:"truncate font-space text-[10px] font-bold leading-tight tracking-wide",children:F(m.role).short}),e.jsx("span",{className:"truncate font-mono text-[9px] leading-tight opacity-85",children:ee(m.size_bytes)})]},m.name)}),z>1.5&&e.jsx("div",{style:{width:`${z}%`},className:"flex h-full min-w-[2rem] items-center justify-center rounded-lg border border-dashed border-border/60 bg-background/40 text-[9px] font-mono text-muted-foreground/70",title:`${U(N)} GB KV-Cache & Betrieb (reale Belegung über den Modell-Gewichten)`,children:"KV"}),g>1.5&&e.jsx("div",{style:{width:`${g}%`},className:"flex h-full min-w-[2rem] items-center justify-center rounded-lg text-[9px] font-mono text-muted-foreground/50",title:`${U(S)} GB frei`,children:"frei"})]})}),t.length>0&&e.jsxs("div",{className:"mt-3 flex flex-wrap gap-x-4 gap-y-1.5",children:[t.map(m=>{const f=oe(m.role);return e.jsxs("button",{onClick:()=>i==null?void 0:i(m.name),className:"flex items-center gap-1.5 text-[11px] text-muted-foreground transition-colors hover:text-foreground",children:[e.jsx("span",{className:k("h-2.5 w-2.5 rounded-sm",f.dot)}),e.jsx("span",{className:k("font-semibold",f.text),children:F(m.role).short}),e.jsx("span",{className:"font-mono text-muted-foreground/70",children:Se(m.name)})]},m.name)}),N>0&&e.jsxs("span",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground/60",title:"Reale Belegung über den Modell-Gewichten (Kontext-Speicher der laufenden Modelle)",children:[e.jsx("span",{className:"h-2.5 w-2.5 rounded-sm border border-dashed border-border/60 bg-background/40"})," KV-Cache & Betrieb · ",U(N)," GB"]}),e.jsxs("span",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground/60",children:[e.jsx("span",{className:"h-2.5 w-2.5 rounded-sm border border-border/50 bg-background/50"})," frei · ",U(S)," GB"]})]})]})}const Ce=1024**3,X=t=>{var r;return((r=t.split("/").pop())==null?void 0:r.replace(/\.gguf$/i,""))??t};function Lt(){var a,h,D,Q;const t=he(),{data:r,isLoading:b,error:n}=le(),{data:i}=Ae(),{data:M}=Be(),{showAlert:w,showConfirm:N,showPrompt:S,dialogElement:g}=Ge(),z=Qe(),m=(r==null?void 0:r.models)??[],f=(r==null?void 0:r.running)??[],p=l=>!!F(l).protected,c=(a=M==null?void 0:M.groups)==null?void 0:a.brains,L=(c==null?void 0:c.members)??[],A=l=>L.includes(l),[s,o]=v.useState(null),[d,G]=v.useState(""),[B,C]=v.useState("all"),[j,R]=v.useState(null),K=()=>{t.invalidateQueries({queryKey:V.models}),t.invalidateQueries({queryKey:V.routing}),t.invalidateQueries({queryKey:V.groups})},I=m.filter(l=>f.includes(l.name)),O=((h=i==null?void 0:i.gpu)==null?void 0:h.gtt_total)||((D=i==null?void 0:i.gpu)==null?void 0:D.vram_total)||0,W=((Q=i==null?void 0:i.gpu)==null?void 0:Q.gtt_used)||0,te=O>2*Ce?O:124*Ce,T=v.useMemo(()=>{const l=d.trim().toLowerCase();return m.filter(x=>B==="in_use"?!!x.role||f.includes(x.name):!0).filter(x=>l?x.name.toLowerCase().includes(l):!0).sort((x,y)=>{const P=f.includes(x.name)?0:1,Z=f.includes(y.name)?0:1;return P!==Z?P-Z:X(x.name).localeCompare(X(y.name))})},[m,f,B,d]),$=m.find(l=>l.name===s)??null;async function u(l){try{await q(`/api/models/${encodeURIComponent(l)}/load`,{method:"POST"}),K()}catch(x){w("Fehler",`Laden fehlgeschlagen: ${x.message||x}`)}}async function _(l){const x=L.some(y=>f.includes(y));if(c&&x&&!A(l)){const y=L.filter(P=>f.includes(P)).map(X).join(", ");N("Verdrängt das Hirn?",`„${X(l)}" ist nicht ko-resident. Beim Laden wirft es das warme Hirn (${y}) raus — Lucy verliert Hirn bzw. Augen. - -Trotzdem exklusiv laden?`,()=>u(l));return}u(l)}async function H(l){const x=m.find(y=>y.name===l);if(x&&p(x.role)){w("Geschützt",`„${F(x.role).label}" ist lebenswichtig und bleibt geladen.`);return}try{await q(`/api/models/${encodeURIComponent(l)}/unload`,{method:"POST"}),K()}catch(y){w("Fehler",`Entladen fehlgeschlagen: ${y.message||y}`)}}async function de(l,x){try{const y=await q(`/api/models/${encodeURIComponent(x)}/role`,{method:"POST",body:JSON.stringify({role:l||null})});K(),y!=null&&y.warning&&w("Rolle gesetzt — Hinweis",y.warning)}catch(y){w("Fehler",`Rolle zuweisen fehlgeschlagen: ${y.message||y}`)}}async function ce(l,x){let y=null;try{y=await q(`/api/models/${encodeURIComponent(l)}/ctx/auto`)}catch{}const P=y?`Optimal für dein Setup: ${(y.ctx/1024).toFixed(0)}k (${y.ctx}). »Auto« trägt diesen Wert ein.`:"Gib die gewünschte Kontextlänge in Tokens an:";S("Kontextlänge anpassen",P,String(x||32768),async Z=>{if(Z)try{await q(`/api/models/${encodeURIComponent(l)}/ctx`,{method:"POST",body:JSON.stringify({ctx:parseInt(Z,10)})}),K()}catch(ye){w("Fehler",`Kontext setzen fehlgeschlagen: ${ye.message||ye}`)}},void 0,y?{autoValue:String(y.ctx),autoLabel:`Auto (${(y.ctx/1024).toFixed(0)}k)`}:void 0)}async function me(l){const x=m.find(y=>y.name===l);if(x&&p(x.role)){w("Geschützt",`„${F(x.role).label}" kann nicht gelöscht werden. Weise die Rolle zuerst einem anderen Modell zu.`);return}N("Modell löschen?",`„${X(l)}" und alle GGUF-Dateien unwiderruflich von der Box löschen?`,async()=>{try{await q(`/api/models/${encodeURIComponent(l)}`,{method:"DELETE"}),s===l&&o(null),K()}catch(y){w("Fehler",`Löschen fehlgeschlagen: ${y.message||y}`)}})}return b?e.jsx("div",{className:"py-16 text-center text-xs text-muted-foreground",children:"Werkbank wird geladen …"}):n?e.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Gateway oder Engine nicht erreichbar (",String(n),")."]}):e.jsxs("div",{className:"space-y-5",children:[e.jsx(_t,{running:I,capacityBytes:te,realUsedBytes:W,selected:s,onSelect:o}),e.jsxs("div",{className:"grid gap-5 lg:grid-cols-[minmax(0,1fr)_minmax(0,1.3fr)]",children:[e.jsxs("div",{className:"mc-card p-4",children:[e.jsxs("div",{className:"mb-3 flex items-center gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(ge,{className:"pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground/60"}),e.jsx("input",{value:d,onChange:l=>G(l.target.value),placeholder:"Modell suchen …",className:"h-8 w-full rounded-lg border border-border/40 bg-background/40 pl-8 pr-2 text-xs text-foreground placeholder:text-muted-foreground/50 focus:border-primary/50 focus:outline-none"})]}),e.jsx("div",{className:"flex rounded-lg border border-border/40 bg-background/30 p-0.5",children:["all","in_use"].map(l=>e.jsx("button",{onClick:()=>C(l),className:k("rounded-md px-2 py-1 text-[9px] font-bold uppercase transition-all cursor-pointer",B===l?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"),children:l==="all"?"Alle":"In Benutzung"},l))})]}),e.jsx("div",{className:"max-h-[60vh] space-y-1.5 overflow-y-auto scrollbar-thin pr-1",children:T.length===0?e.jsx("div",{className:"rounded-xl border border-dashed border-border/50 p-8 text-center text-xs text-muted-foreground",children:"Keine Modelle."}):T.map(l=>{const x=f.includes(l.name),y=s===l.name,P=Ke(l.name),Z=oe(l.role);return e.jsxs("button",{onClick:()=>o(l.name),className:k("flex w-full items-center gap-2.5 rounded-xl border p-2.5 text-left transition-all cursor-pointer",y?"border-primary/60 bg-primary/10":"border-border/40 bg-background/20 hover:border-primary/30 hover:bg-background/40"),children:[e.jsx("span",{className:k("flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border text-[10px] font-bold",P.color),children:P.initial}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"truncate font-mono text-xs font-semibold text-foreground",children:X(l.name)}),e.jsxs("div",{className:"mt-0.5 flex items-center gap-1.5",children:[l.role&&e.jsx("span",{className:k("h-2 w-2 rounded-sm",Z.dot)}),e.jsx("span",{className:"text-[10px] text-muted-foreground",children:l.role?F(l.role).short:"keine Rolle"}),e.jsxs("span",{className:"text-[10px] text-muted-foreground/50",children:["· ",ee(l.size_bytes)]})]})]}),x?e.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-[9px] font-bold uppercase text-emerald-400",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"}),"warm"]}):l.incomplete?e.jsx("span",{className:"shrink-0 text-[9px] font-bold uppercase text-amber-400",children:"⚠ fehlt"}):e.jsx("span",{className:"shrink-0 text-[9px] font-semibold uppercase text-muted-foreground/50",children:"bereit"})]},l.name)})})]}),e.jsx("div",{className:"mc-card p-5",children:$?e.jsx(zt,{m:$,warm:f.includes($.name),expert:z,protectedRole:p($.role),coresident:A($.name),onLoad:()=>_($.name),onUnload:()=>H($.name),onRole:l=>de(l,$.name),onCtx:()=>ce($.name,$.ctx),onSpec:()=>R($),onDelete:()=>me($.name)}):e.jsxs("div",{className:"flex h-full min-h-[16rem] flex-col items-center justify-center gap-2 text-center text-muted-foreground",children:[e.jsx(Ue,{className:"h-8 w-8 opacity-40"}),e.jsx("p",{className:"text-sm font-semibold",children:"Links ein Modell wählen"}),e.jsx("p",{className:"text-xs",children:"Dann verwaltest du es hier — laden, Rolle, Kontext, löschen."})]})})]}),j&&e.jsx(St,{model:j,onClose:()=>R(null),onChanged:K}),g]})}function zt({m:t,warm:r,expert:b,protectedRole:n,coresident:i,onLoad:M,onUnload:w,onRole:N,onCtx:S,onSpec:g,onDelete:z}){const m=Ke(t.name),f=r&&n;return e.jsxs("div",{className:"flex h-full flex-col gap-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("span",{className:k("flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border text-sm font-bold",m.color),children:m.initial}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("h2",{className:"break-all font-mono text-sm font-bold text-foreground",children:X(t.name)}),e.jsxs("div",{className:"mt-1.5 flex flex-wrap items-center gap-1.5",children:[t.role?e.jsx(pe,{role:t.role}):e.jsx("span",{className:"rounded border border-dashed border-border/50 px-1.5 py-0.5 text-[10px] text-muted-foreground",children:"keine Rolle"}),n&&e.jsxs("span",{className:"rounded bg-background/40 px-1.5 py-0.5 text-[10px] text-muted-foreground",title:"Lebenswichtig — geschützt",children:[e.jsx(rt,{className:"mr-0.5 inline h-3 w-3"}),"geschützt"]}),i&&e.jsxs("span",{className:"rounded border border-fuchsia-500/30 bg-fuchsia-500/10 px-1.5 py-0.5 text-[10px] font-bold uppercase text-fuchsia-300",children:[e.jsx(re,{className:"mr-0.5 inline h-3 w-3"}),"Ko-resident"]}),r&&e.jsxs("span",{className:"flex items-center gap-1 text-[10px] font-bold uppercase text-emerald-400",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"}),"warm"]})]})]})]}),e.jsxs("button",{onClick:r?w:M,disabled:t.incomplete&&!r||f,className:k("flex h-11 w-full items-center justify-center gap-2 rounded-xl border text-sm font-bold transition-all cursor-pointer disabled:cursor-not-allowed disabled:opacity-50",r?"border-amber-500/40 bg-amber-500/10 text-amber-300 hover:bg-amber-500/20":"border-primary/40 bg-primary/10 text-primary hover:bg-primary/20"),title:f?`„${F(t.role).label}" bleibt geladen (geschützt).`:void 0,children:[r?e.jsx(pt,{className:"h-4 w-4"}):e.jsx(nt,{className:"h-4 w-4"}),f?"🔒 bleibt geladen":r?"Entladen":"Ins Warm-Set laden"]}),e.jsxs("div",{className:"rounded-xl border border-border/30 bg-background/20 p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:[e.jsx("span",{children:"Rolle"}),n&&e.jsx("span",{className:"normal-case font-medium tracking-normal text-muted-foreground/70",children:"🔒 lebenswichtig — zum Tausch die Rolle woanders zuweisen"})]}),e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[e.jsx(_e,{active:!t.role,onClick:()=>N(""),dot:"bg-slate-400",label:"keine",disabled:n}),fe.map(p=>e.jsx(_e,{active:t.role===p.role,onClick:()=>N(p.role),dot:oe(p.role).dot,label:p.short,disabled:n&&t.role!==p.role},p.role))]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[e.jsx(Bt,{icon:be,label:"Größe",value:ee(t.size_bytes)}),e.jsxs("button",{onClick:S,className:"group flex items-center gap-2 rounded-lg border border-border/30 bg-background/20 p-2.5 text-left transition-colors hover:border-primary/40 cursor-pointer",children:[e.jsx(xt,{className:"h-4 w-4 text-primary/80"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-[9px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:"Kontext · ändern"}),e.jsx("div",{className:"font-semibold text-foreground",children:Ve(t.ctx)})]})]})]}),e.jsxs("div",{className:"rounded-xl border border-border/30 bg-background/20 p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between",children:[e.jsx("span",{className:"text-[11px] font-semibold uppercase tracking-wider text-muted-foreground",children:"Beschleuniger"}),b&&e.jsxs("button",{onClick:g,className:k("flex h-6 items-center gap-1 rounded-lg border px-2 text-[9px] font-bold uppercase transition-colors cursor-pointer",t.spec_active?"border-emerald-500/30 text-emerald-400 hover:bg-emerald-500/10":t.spec_draft_model?"border-amber-500/30 text-amber-400 hover:bg-amber-500/10":"border-border/40 text-muted-foreground hover:bg-accent"),children:[e.jsx(ie,{className:"h-3 w-3"})," Spec"]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[t.spec_active&&e.jsx(ne,{tone:"emerald",label:"Spec-Decoding aktiv"}),!t.spec_active&&t.spec_draft_model&&e.jsx(ne,{tone:"amber",label:"Spec inaktiv"}),t.prompt_cache&&e.jsx(ne,{tone:"cyan",label:"Prompt-Cache"}),t.parallel_slots>1&&e.jsx(ne,{tone:"violet",label:`${t.parallel_slots} Slots`}),!t.spec_active&&!t.spec_draft_model&&!t.prompt_cache&&t.parallel_slots<=1&&e.jsx("span",{className:"text-[11px] text-muted-foreground/60",children:"keine aktiv"})]})]}),e.jsx("div",{className:"flex flex-wrap gap-1",children:e.jsx(Mt,{caps:t.capabilities})}),e.jsxs("button",{onClick:z,disabled:n,className:k("mt-auto flex h-9 items-center justify-center gap-1.5 rounded-lg border text-xs font-semibold transition-colors",n?"cursor-not-allowed border-border/30 text-muted-foreground/40":"border-red-500/30 text-red-400 hover:bg-red-500/10 cursor-pointer"),children:[e.jsx(ft,{className:"h-3.5 w-3.5"})," ",n?"geschützt — nicht löschbar":"Modell löschen"]})]})}function _e({active:t,onClick:r,dot:b,label:n,disabled:i}){return e.jsxs("button",{onClick:r,disabled:i,title:i?"Gesperrt: dieses Modell hält eine lebenswichtige Rolle.":void 0,className:k("flex items-center gap-1.5 rounded-lg border px-2 py-1 text-[10px] font-semibold transition-all",i?"cursor-not-allowed opacity-40 border-border/40 bg-background/20 text-muted-foreground":t?"cursor-pointer border-primary/60 bg-primary/15 text-foreground":"cursor-pointer border-border/40 bg-background/20 text-muted-foreground hover:border-primary/30"),children:[e.jsx("span",{className:k("h-2 w-2 rounded-sm",b)}),n,t&&e.jsx(Y,{className:"h-3 w-3 text-primary"})]})}function Bt({icon:t,label:r,value:b}){return e.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-border/30 bg-background/20 p-2.5",children:[e.jsx(t,{className:"h-4 w-4 text-primary/80"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-[9px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:r}),e.jsx("div",{className:"font-semibold text-foreground",children:b})]})]})}function ne({tone:t,label:r}){const b={emerald:"bg-emerald-500/10 text-emerald-400 border-emerald-500/20",amber:"bg-amber-500/10 text-amber-400 border-amber-500/20",cyan:"bg-cyan-500/10 text-cyan-400 border-cyan-500/20",violet:"bg-violet-500/10 text-violet-400 border-violet-500/20"}[t];return e.jsx("span",{className:k("rounded border px-1.5 py-0.5 text-[10px] font-semibold",b),children:r})}const At=[{key:"popular",label:"Beliebt",q:""},{key:"coder",label:"Coder",q:"coder"},{key:"vision",label:"Vision",q:"vision"},{key:"reasoning",label:"Reasoning",q:"reasoning"},{key:"small",label:"Klein (≤4B)",q:"3B"}],Gt=["fast","heavy","coder","vision","hermes","scout"],$t=new Intl.NumberFormat(void 0,{notation:"compact",maximumFractionDigits:1});function Le(t){return $t.format(t)}function Dt(){const{data:t}=le(),r=(t==null?void 0:t.models)??[],[b,n]=v.useState(""),[i,M]=v.useState([]),[w,N]=v.useState(!1),[S,g]=v.useState(""),[z,m]=v.useState("popular"),[f,p]=v.useState(""),[c,L]=v.useState(null),[A,s]=v.useState([]),[o,d]=v.useState("Q4_K_M"),[G,B]=v.useState(""),[C,j]=v.useState(null),[R,K]=v.useState(!1),[I,O]=v.useState({});async function W(a){N(!0),g("");try{const h=await q(`/api/hf/search?q=${encodeURIComponent(a)}`);M(h.results),h.results.length||g("Keine Ergebnisse.")}catch(h){g(`Suche fehlgeschlagen: ${h}`)}finally{N(!1)}}v.useEffect(()=>{W("")},[]);function te(a){m(a.key),n(""),W(a.q)}function T(){m(""),W(b)}async function $(a,h,D){K(!1);try{const Q=await q(`/api/fit?params_b=0&quant=${encodeURIComponent(h)}&ctx=8192&name=${encodeURIComponent(a)}&role=${encodeURIComponent(D)}`);j(Q)}catch{j(null)}}async function u(a){if(c===a){L(null);return}L(a),s([]),j(null),B(""),K(!1),g("Analysiere Repository…");try{const h=await q(`/api/hf/quants?repo=${encodeURIComponent(a)}`);s(h.quants);const D=h.quants.includes("Q4_K_M")?"Q4_K_M":h.quants[0]||"Q4_K_M";d(D),g(h.quants.length?"":"Keine GGUF-Dateien in diesem Repo gefunden."),h.quants.length&&$(h.repo,D,"")}catch(h){g(`Fehler: ${h}`)}}function _(){const a=f.trim();a&&(M(h=>h.some(D=>D.repo===a)?h:[{repo:a,downloads:0,likes:0},...h]),p(""),u(a))}const H=G?r.find(a=>(a.role||"").toLowerCase()===G):void 0;async function de(a){if((C==null?void 0:C.fit.level)==="too_tight"&&!R){K(!0);return}O(h=>({...h,[a]:"Starte…"}));try{await q("/api/models/install",{method:"POST",body:JSON.stringify({repo:a,quant:o,role:G||void 0,jinja:!0})}),O(h=>({...h,[a]:"Download läuft"})),K(!1)}catch(h){O(D=>({...D,[a]:`Fehler: ${h instanceof Error?h.message:String(h)}`}))}}const ce=a=>{var D;const h=((D=a.split("/").pop())==null?void 0:D.toLowerCase().replace(/-gguf$/i,""))||"";return h.length>3&&r.some(Q=>Q.name.toLowerCase().includes(h))},me=a=>a==="perfect"?"text-emerald-400 border-emerald-500/40 bg-emerald-500/10":a==="marginal"?"text-amber-400 border-amber-500/40 bg-amber-500/10":"text-red-400 border-red-500/40 bg-red-500/10";return e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(ge,{className:"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx("input",{value:b,onChange:a=>n(a.target.value),onKeyDown:a=>a.key==="Enter"&&T(),"aria-label":"HuggingFace durchsuchen",type:"search",spellCheck:!1,placeholder:"HuggingFace durchsuchen (z.B. Qwen Coder, Llama-3.1, gemma)…",className:"w-full h-10 pl-9 pr-3 rounded-xl border border-border/60 bg-background/40 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground"})]}),e.jsx("button",{onClick:T,className:"h-10 px-5 rounded-xl bg-primary text-primary-foreground text-xs font-semibold hover:opacity-90 transition-all cursor-pointer",children:"Suchen"})]}),e.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:At.map(a=>e.jsxs("button",{onClick:()=>te(a),className:k("flex items-center gap-1.5 rounded-full px-3 py-1.5 text-[11px] font-semibold transition-all cursor-pointer border",z===a.key?"bg-primary/15 text-primary border-primary/30":"border-border/50 text-muted-foreground hover:text-foreground hover:border-border"),children:[a.key==="popular"&&e.jsx(it,{className:"h-3 w-3"}),a.label]},a.key))}),w?e.jsx("div",{className:"text-xs text-muted-foreground py-10 text-center",children:"Lade GGUF-Modelle von HuggingFace…"}):e.jsxs("div",{className:"space-y-2",children:[i.map(a=>{const h=c===a.repo,D=ce(a.repo),Q=a.repo.includes("/")?a.repo.split("/")[0]:"—",l=a.repo.split("/").pop();return e.jsxs("div",{className:k("mc-card-sm",h?"border-primary/40 shadow-lg shadow-primary/5":"border-border/50 hover:border-primary/30"),children:[e.jsxs("button",{onClick:()=>u(a.repo),className:"w-full flex items-center gap-3 p-3.5 text-left cursor-pointer",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx("span",{className:"text-xs font-bold font-mono text-foreground truncate max-w-[280px]",title:a.repo,children:l}),D&&e.jsxs("span",{className:"flex items-center gap-1 text-[8px] font-bold text-emerald-400 uppercase tracking-wider bg-emerald-500/10 border border-emerald-500/20 px-1.5 py-0.5 rounded",children:[e.jsx(Y,{className:"h-2.5 w-2.5"})," installiert"]})]}),e.jsxs("div",{className:"text-[10px] text-muted-foreground/80 flex items-center gap-3 mt-0.5 font-mono",children:[e.jsx("span",{children:Q}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(ae,{className:"h-3 w-3"})," ",Le(a.downloads)]}),a.likes>0&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(dt,{className:"h-3 w-3"})," ",Le(a.likes)]})]})]}),h?e.jsx(De,{className:"h-4 w-4 text-muted-foreground shrink-0"}):e.jsx($e,{className:"h-4 w-4 text-muted-foreground shrink-0"})]}),h&&e.jsx("div",{className:"border-t border-border/30 p-3.5 space-y-3",children:A.length===0?e.jsx("div",{className:"text-[11px] text-muted-foreground font-mono",children:S||"Lade Quants…"}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground",children:"Quant"}),e.jsx("select",{value:o,onChange:x=>{d(x.target.value),$(a.repo,x.target.value,G)},"aria-label":"Quantisierung",className:"h-8 rounded-lg border border-border/60 bg-background/40 px-2 text-xs text-foreground font-semibold outline-none",children:A.map(x=>e.jsx("option",{value:x,className:"bg-popover text-foreground",children:x},x))}),e.jsx("label",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground ml-1",children:"Rolle"}),e.jsxs("select",{value:G,onChange:x=>{B(x.target.value),$(a.repo,o,x.target.value)},"aria-label":"Rolle",title:"Optional — bestimmt Auto-Konfiguration + setup-bewussten Kontext",className:"h-8 rounded-lg border border-border/60 bg-background/40 px-2 text-xs text-foreground font-semibold outline-none",children:[e.jsx("option",{value:"",className:"bg-popover text-foreground",children:"keine"}),Gt.map(x=>e.jsx("option",{value:x,className:"bg-popover text-foreground",children:x},x))]}),e.jsx("button",{onClick:()=>de(a.repo),disabled:!!I[a.repo]&&I[a.repo]==="Download läuft",className:k("h-8 px-3.5 ml-auto rounded-lg text-xs font-semibold transition-all cursor-pointer flex items-center gap-1.5",R?"bg-red-500 text-white hover:opacity-90":"bg-primary text-primary-foreground hover:opacity-90"),children:I[a.repo]?I[a.repo]:R?e.jsxs(e.Fragment,{children:[e.jsx(se,{className:"h-3.5 w-3.5"})," OOM — trotzdem laden"]}):e.jsxs(e.Fragment,{children:[e.jsx(ae,{className:"h-3.5 w-3.5"})," Herunterladen"]})})]}),C&&e.jsxs("div",{className:k("flex flex-wrap items-center gap-x-3 gap-y-1 rounded-lg border px-3 py-2 text-[11px] font-medium",me(C.fit.level)),children:[e.jsx("span",{className:"font-bold uppercase tracking-wide",children:C.fit.text}),e.jsxs("span",{className:"font-mono opacity-90",children:["~",C.params_b,"B · ~",C.fit.req_gb," GB / ",C.sys_ram_gb," GB · ~",C.fit.tps," t/s"]}),C.fit.level!=="too_tight"?e.jsxs("span",{className:"font-mono opacity-80",children:["ctx → ",(C.assigned_ctx/1024).toFixed(0),"k"]}):e.jsx("span",{className:"opacity-90",children:"— passt nicht, würde beim Laden abstürzen (OOM)."})]}),H&&e.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-[11px] text-amber-400",children:[e.jsx(se,{className:"h-3.5 w-3.5 mt-0.5 shrink-0"}),e.jsxs("span",{children:["Rolle ",e.jsxs("strong",{children:["„",G,'"']})," hält aktuell ",e.jsx("strong",{children:H.name.split("/").pop()})," — wird beim Download übernommen."]})]})]})})]},a.repo)}),!i.length&&!w&&e.jsx("div",{className:"text-xs text-muted-foreground py-10 text-center",children:S||"Keine Ergebnisse."})]}),e.jsxs("div",{className:"border-t border-border/30 pt-4 flex flex-col sm:flex-row gap-2 items-stretch sm:items-center",children:[e.jsx("span",{className:"text-[10px] font-bold uppercase tracking-wider text-muted-foreground shrink-0",children:"Direkt:"}),e.jsx("input",{value:f,onChange:a=>p(a.target.value),onKeyDown:a=>a.key==="Enter"&&_(),"aria-label":"Repository oder URL direkt eingeben",spellCheck:!1,placeholder:"org/repo oder HF-URL (z.B. unsloth/Qwen2.5-Coder-7B-Instruct-GGUF)",className:"flex-1 h-9 rounded-lg border border-border/60 bg-background/40 px-3 text-xs outline-none focus:ring-1 focus:ring-primary/50 text-foreground font-mono"}),e.jsx("button",{onClick:_,className:"h-9 px-4 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold hover:border-primary/50 hover:bg-background/40 transition-all cursor-pointer whitespace-nowrap",children:"Laden"})]})]})}const Et={fast:{title:"Schnelles Alltags-Hirn",desc:"Schnelle MoE-Antworten für Chat, Zusammenfassungen und alltägliche Aufgaben.",icon:ie},heavy:{title:"Schweres Reasoning",desc:"Große Modelle für komplexe Logik, Mathematik und tiefgründiges Planen.",icon:re},coder:{title:"Coden & Entwicklung",desc:"Autovervollständigung, Refactoring und Codegenerierung direkt in deiner IDE.",icon:ue},vision:{title:"Bilder & Vision",desc:"Verarbeitet Bilder, Screenshots und visuelle Diagramme in multimodalen Chats.",icon:ze},hermes:{title:"Lucys Hirn (Agent)",desc:"Lucys dauer-warmes Agent-Hirn mit Tool-Calling — bleibt ko-resident, lädt nie kalt nach.",icon:ot},scout:{title:"Multimodal-Allrounder",desc:"Multimodaler Allrounder für schnelle Antworten, Übersetzungen und Alltag.",icon:st},kritiker:{title:"Kritisches Prüf-Hirn",desc:"Schärfer Blick für Fehler, Schwachstellen und Sicherheitslücken — denkt skeptisch, bevor du deployst.",icon:Ee},reranker:{title:"Gedächtnis-Sortierer",desc:"Sortiert und gewichtet gespeicherte Fakten nach Relevanz — damit die richtige Info sofort da ist.",icon:ge},debugger:{title:"Debugger & Selbstheiler",desc:"Agentisches Debugging, multimodale Fehleranalyse und Selbstreparatur (z.B. Muse-Glimmer).",icon:re}};function Kt(){const{data:t,isLoading:r,error:b}=We(),{data:n}=le(),{data:i}=Ze(),M=(n==null?void 0:n.models)??[],w=b?String(b):"",[N,S]=v.useState({}),[g,z]=v.useState({}),[m,f]=v.useState("recommended");async function p(c,L,A,s){S(o=>({...o,[c]:"Starte..."}));try{await q("/api/models/install",{method:"POST",body:JSON.stringify({repo:c,role:L,quant:A,jinja:s})}),S(o=>({...o,[c]:"Download läuft"}))}catch(o){S(d=>({...d,[c]:`Fehler: ${o instanceof Error?o.message:String(o)}`}))}}return e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"flex mc-card-sm p-1 w-fit",children:[["recommended","Empfohlen"],["browse","Stöbern & Suchen"]].map(([c,L])=>e.jsx("button",{onClick:()=>f(c),className:k("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide transition-all cursor-pointer",m===c?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:L},c))}),m==="browse"?e.jsx(Dt,{}):r?e.jsx("div",{className:"text-xs text-muted-foreground py-12 text-center",children:"Analysiere Hardware und suche passende GGUF-Empfehlungen…"}):w||!t?e.jsxs("div",{className:"rounded-xl border border-red-500/20 bg-red-500/5 p-4 text-xs text-red-400",children:["Empfehlungsdienst temporär nicht erreichbar (",w,")."]}):e.jsxs("div",{className:"space-y-8",children:[e.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground bg-background/25 border border-border/40 p-4 rounded-xl flex flex-col sm:flex-row sm:items-center justify-between gap-3 shadow-sm",children:[e.jsxs("div",{children:["Modell-Registry geladen für ",e.jsxs("span",{className:"text-foreground font-bold",children:[t.sys_ram_gb," GB"]})," System-RAM."]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(bt,{className:"h-3.5 w-3.5 text-primary fill-primary/20"}),e.jsx("span",{children:"Empfehlungen sind automatisch auf deine Box-Hardware optimiert."})]})]}),e.jsx("div",{className:"grid gap-6 md:grid-cols-2",children:t.categories.map(c=>{const L=Et[c.role]||{title:c.title||c.role,desc:"Spezifisches Modell für diese Systemrolle.",icon:at},A=L.icon,s=M.find(j=>j.role===c.role||(j.aliases||[]).includes(c.role)),o=i==null?void 0:i.model_list.find(j=>j.role===c.role),d=c.models.find(j=>j.repo===c.recommended)||c.models[0];if(!d)return null;const G=N[d.repo],B=c.models.filter(j=>j.repo!==c.recommended),C=!!g[c.role];return e.jsxs("div",{className:k("mc-card p-5 flex flex-col justify-between gap-5",s?"border-border/60":"border-primary/20 shadow-primary/5"),children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-xl bg-primary/10 border border-primary/20 flex items-center justify-center text-primary shadow-sm shrink-0",children:e.jsx(A,{className:"h-5.5 w-5.5"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-sm font-bold tracking-tight text-foreground",children:L.title}),e.jsxs("span",{className:"text-[9px] font-mono text-muted-foreground uppercase bg-background/50 px-1.5 py-0.5 rounded border border-border/30 inline-block mt-0.5",children:["Rolle: ",c.role]})]})]}),s?e.jsxs("span",{className:"flex items-center gap-1.5 text-[9px] font-bold text-emerald-400 uppercase tracking-wider bg-emerald-500/10 border border-emerald-500/20 px-2.5 py-1 rounded-lg",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse"}),"Aktiviert"]}):e.jsx("span",{className:"text-[9px] font-bold text-primary/70 uppercase tracking-wider bg-primary/10 border border-primary/20 px-2.5 py-1 rounded-lg",children:"Frei"})]}),e.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:L.desc}),e.jsx("div",{className:"p-3.5 rounded-xl bg-background/35 border border-border/30 space-y-2.5",children:s?e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("div",{className:"text-[9px] font-bold uppercase tracking-wider text-muted-foreground/60",children:"Aktive GGUF-Belegung"}),e.jsx("div",{className:"text-xs font-mono font-bold text-foreground truncate",title:s.name,children:s.name.split("/").pop()}),e.jsxs("div",{className:"text-[10px] text-muted-foreground/80 flex items-center gap-2",children:[e.jsxs("span",{children:["Größe: ",Je(s.size_bytes||0)]}),e.jsx("span",{children:"•"}),e.jsxs("span",{children:["Quant: ",s.quant||"GGUF"]})]})]}):e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("div",{className:"text-[9px] font-bold uppercase tracking-wider text-primary/80",children:"Empfohlenes Modell"}),e.jsx("div",{className:"text-xs font-mono font-bold text-foreground truncate",title:d.name,children:d.name}),e.jsxs("div",{className:"text-[10px] text-muted-foreground/80 flex items-center gap-2 flex-wrap",children:[e.jsxs("span",{children:["Ersteller: ",d.author]}),e.jsx("span",{children:"•"}),e.jsxs("span",{children:["Quant: ",d.quant]})]}),e.jsx("div",{className:"flex items-center gap-1.5 pt-0.5",children:e.jsx(kt,{fit:d.fit})})]})}),e.jsx("div",{className:"pt-1",children:s?o?e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"text-[9px] font-semibold text-amber-400 flex items-center gap-1.5",children:[e.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-amber-400 animate-ping shrink-0"}),e.jsxs("span",{children:["Bessere Version in der Registry: ",o.repo.split("/").pop()]})]}),e.jsxs("button",{onClick:()=>p(o.repo,c.role,o.repo===d.repo&&d.quant||"Q4_K_M",d.caps.tools!=="no"),disabled:!!N[o.repo],className:"h-8 w-full flex items-center justify-center gap-1.5 rounded-lg bg-amber-500 text-black text-xs font-bold hover:bg-amber-400 disabled:opacity-50 transition-all cursor-pointer shadow-md shadow-amber-500/10",children:[e.jsx(ae,{className:"h-3.5 w-3.5"}),N[o.repo]||"Auf neue Version aktualisieren"]})]}):e.jsxs("div",{className:"h-8 flex items-center justify-center gap-1.5 text-[10px] font-bold text-emerald-400 uppercase tracking-wide bg-emerald-500/5 border border-emerald-500/10 rounded-lg select-none",children:[e.jsx(Y,{className:"h-4 w-4"})," Auf neuestem Stand"]}):e.jsxs("button",{onClick:()=>p(d.repo,c.role,d.quant||"Q4_K_M",d.caps.tools!=="no"),disabled:!!G,className:k("h-8 w-full flex items-center justify-center gap-1.5 rounded-lg text-xs font-bold transition-all cursor-pointer border",G?"border-primary/40 bg-primary/5 text-primary":"bg-primary text-primary-foreground hover:opacity-90 shadow-md shadow-primary/10"),children:[e.jsx(ae,{className:"h-3.5 w-3.5"}),G||"Optimales Modell einsetzen"]})})]}),B.length>0&&e.jsxs("div",{className:"border-t border-border/20 pt-3",children:[e.jsxs("button",{onClick:()=>z(j=>({...j,[c.role]:!C})),className:"flex items-center gap-1.5 text-[10px] text-muted-foreground/80 hover:text-foreground transition-colors cursor-pointer",children:[C?e.jsx(De,{className:"h-3 w-3"}):e.jsx($e,{className:"h-3 w-3"}),e.jsxs("span",{children:["Alternative Empfehlungen anzeigen (",B.length,")"]})]}),C&&e.jsx("div",{className:"mt-2.5 space-y-2 max-h-36 overflow-y-auto pr-1 scrollbar-thin",children:B.map(j=>e.jsxs("div",{className:"p-2 rounded-lg bg-background/25 border border-border/20 flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-[10px] font-mono font-bold text-foreground truncate",title:j.name,children:j.name}),e.jsxs("div",{className:"text-[9px] text-muted-foreground flex items-center gap-1.5 mt-0.5",children:[e.jsxs("span",{children:["Quant: ",j.quant]}),e.jsx("span",{children:"•"}),e.jsx("span",{children:j.fit.text})]})]}),e.jsx("button",{onClick:()=>p(j.repo,c.role,j.quant||"Q4_K_M",j.caps.tools!=="no"),disabled:!!N[j.repo],className:"h-6 px-2.5 rounded bg-background/40 hover:bg-background/80 border border-border/40 text-[9px] font-bold text-foreground transition-all cursor-pointer shrink-0 disabled:opacity-50",children:N[j.repo]||"Installieren"})]},j.repo))})]})]},c.role)})})]})]})}const qt=[{id:"werkbank",label:"Werkbank"},{id:"routing",label:"Routing & Warm-Set"},{id:"discover",label:"Modelle finden"}];function Ut(){const t=Xe(),{reiter:r}=Ye({from:"/modelle"}),b=r??"werkbank",n=i=>t({to:"/modelle",search:M=>({...M,reiter:i}),replace:!0});return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Modell-Manager"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Modelle verwalten, das Lane-Routing einstellen und Neues von HuggingFace holen."})]}),e.jsx("div",{className:"flex mc-card-sm p-1 self-start",children:qt.map(i=>e.jsx("button",{onClick:()=>n(i.id),className:k("rounded-lg px-4 py-1.5 text-xs font-semibold tracking-wide uppercase transition-all cursor-pointer",b===i.id?"bg-primary text-primary-foreground shadow-md shadow-primary/10":"text-muted-foreground hover:text-foreground"),children:i.label},i.id))})]}),e.jsx(et,{}),e.jsxs("div",{className:"transition-all duration-300",children:[b==="werkbank"&&e.jsx(Lt,{}),b==="routing"&&e.jsxs("div",{className:"space-y-5",children:[e.jsx(vt,{}),e.jsx(wt,{})]}),b==="discover"&&e.jsx(Kt,{})]})]})}export{Ut as ModelsView}; diff --git a/frontend/dist/assets/Protokollfenster-CDb28asU.js b/frontend/dist/assets/Protokollfenster-CDb28asU.js new file mode 100644 index 0000000..7953af6 --- /dev/null +++ b/frontend/dist/assets/Protokollfenster-CDb28asU.js @@ -0,0 +1 @@ +import{c as e,s as t}from"./button-Dd8hfusv.js";import{a as n,i as r,n as i,r as a,t as o}from"./sheet-DWG2Q04V.js";var s=t(),c=e();function l(e){let t=(0,s.c)(14),{offen:l,titel:u,text:d,onSchliessen:f}=e,p;t[0]===f?p=t[1]:(p=e=>!e&&f(),t[0]=f,t[1]=p);let m;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,c.jsx)(n,{className:`schild text-lg`,children:`Protokoll`}),t[2]=m):m=t[2];let h;t[3]===u?h=t[4]:(h=(0,c.jsxs)(r,{children:[m,(0,c.jsx)(a,{className:`text-text-2`,children:u})]}),t[3]=u,t[4]=h);let g;t[5]===d?g=t[6]:(g=(0,c.jsx)(`pre`,{className:`ziffern mx-4 mb-4 flex-1 overflow-auto rounded-lg border border-linie bg-[#0b0d0f] p-3 text-xs leading-relaxed whitespace-pre-wrap text-text-2`,children:d}),t[5]=d,t[6]=g);let _;t[7]!==h||t[8]!==g?(_=(0,c.jsxs)(i,{side:`right`,className:`w-full border-linie bg-panel sm:max-w-2xl`,children:[h,g]}),t[7]=h,t[8]=g,t[9]=_):_=t[9];let v;return t[10]!==l||t[11]!==p||t[12]!==_?(v=(0,c.jsx)(o,{open:l,onOpenChange:p,children:_}),t[10]=l,t[11]=p,t[12]=_,t[13]=v):v=t[13],v}export{l as Protokollfenster}; \ No newline at end of file diff --git a/frontend/dist/assets/SectionLabel-B7ySrBs7.js b/frontend/dist/assets/SectionLabel-B7ySrBs7.js deleted file mode 100644 index 9fb6652..0000000 --- a/frontend/dist/assets/SectionLabel-B7ySrBs7.js +++ /dev/null @@ -1 +0,0 @@ -import{j as e}from"./index-DMY9lUCb.js";function n({icon:t,children:s}){return e.jsxs("p",{className:"flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wider text-muted-foreground/60",children:[e.jsx(t,{className:"h-3.5 w-3.5"})," ",s]})}export{n as S}; diff --git a/frontend/dist/assets/SkillsView-DqlZxdwQ.js b/frontend/dist/assets/SkillsView-DqlZxdwQ.js deleted file mode 100644 index f167048..0000000 --- a/frontend/dist/assets/SkillsView-DqlZxdwQ.js +++ /dev/null @@ -1,6 +0,0 @@ -var E=r=>{throw TypeError(r)};var O=(r,e,t)=>e.has(r)||E("Cannot "+t);var a=(r,e,t)=>(O(r,e,"read from private field"),t?t.call(r):e.get(r)),y=(r,e,t)=>e.has(r)?E("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),v=(r,e,t,n)=>(O(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t),j=(r,e,t)=>(O(r,e,"access private method"),t);import{a6 as Q,a7 as A,a8 as M,a9 as B,aa as P,u as J,r as f,ab as F,ac as I,c as T,ad as U,j as s,J as D,T as H,b as K,L,Q as V,q as _,n as R}from"./index-DMY9lUCb.js";import{J as z}from"./JobsBar-95gsUJZs.js";var c,g,o,h,m,w,C,q,G=(q=class extends Q{constructor(e,t){super();y(this,m);y(this,c);y(this,g);y(this,o);y(this,h);v(this,c,e),this.setOptions(t),this.bindMethods(),j(this,m,w).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){var n;const t=this.options;this.options=a(this,c).defaultMutationOptions(e),A(this.options,t)||a(this,c).getMutationCache().notify({type:"observerOptionsUpdated",mutation:a(this,o),observer:this}),t!=null&&t.mutationKey&&this.options.mutationKey&&M(t.mutationKey)!==M(this.options.mutationKey)?this.reset():((n=a(this,o))==null?void 0:n.state.status)==="pending"&&a(this,o).setOptions(this.options)}onUnsubscribe(){var e;this.hasListeners()||(e=a(this,o))==null||e.removeObserver(this)}onMutationUpdate(e){j(this,m,w).call(this),j(this,m,C).call(this,e)}getCurrentResult(){return a(this,g)}reset(){var e;(e=a(this,o))==null||e.removeObserver(this),v(this,o,void 0),j(this,m,w).call(this),j(this,m,C).call(this)}mutate(e,t){var n;return v(this,h,t),(n=a(this,o))==null||n.removeObserver(this),v(this,o,a(this,c).getMutationCache().build(a(this,c),this.options)),a(this,o).addObserver(this),a(this,o).execute(e)}},c=new WeakMap,g=new WeakMap,o=new WeakMap,h=new WeakMap,m=new WeakSet,w=function(){var t;const e=((t=a(this,o))==null?void 0:t.state)??B();v(this,g,{...e,isPending:e.status==="pending",isSuccess:e.status==="success",isError:e.status==="error",isIdle:e.status==="idle",mutate:this.mutate,reset:this.reset})},C=function(e){P.batch(()=>{var t,n,l,x,d,p,k,i;if(a(this,h)&&this.hasListeners()){const u=a(this,g).variables,N=a(this,g).context,S={client:a(this,c),meta:this.options.meta,mutationKey:this.options.mutationKey};if((e==null?void 0:e.type)==="success"){try{(n=(t=a(this,h)).onSuccess)==null||n.call(t,e.data,u,N,S)}catch(b){Promise.reject(b)}try{(x=(l=a(this,h)).onSettled)==null||x.call(l,e.data,null,u,N,S)}catch(b){Promise.reject(b)}}else if((e==null?void 0:e.type)==="error"){try{(p=(d=a(this,h)).onError)==null||p.call(d,e.error,u,N,S)}catch(b){Promise.reject(b)}try{(i=(k=a(this,h)).onSettled)==null||i.call(k,void 0,e.error,u,N,S)}catch(b){Promise.reject(b)}}}this.listeners.forEach(u=>{u(a(this,g))})})},q);function W(r,e){const t=J(),[n]=f.useState(()=>new G(t,r));f.useEffect(()=>{n.setOptions(r)},[n,r]);const l=f.useSyncExternalStore(f.useCallback(d=>n.subscribe(P.batchCalls(d)),[n]),()=>n.getCurrentResult(),()=>n.getCurrentResult()),x=f.useCallback((d,p)=>{n.mutate(d,p).catch(F)},[n]);if(l.error&&I(n.options.throwOnError,[l.error]))throw l.error;return{...l,mutate:x,mutateAsync:l.mutate}}/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const X=T("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);function ee(){const r=J(),{data:e,isLoading:t,isError:n}=U({queryKey:["skills-list"],queryFn:()=>R("/api/skills"),refetchInterval:5e3}),[l,x]=f.useState(null),[d,p]=f.useState(null),k=W({mutationFn:i=>R("/api/skills/run",{method:"POST",body:JSON.stringify({skill_name:i})}),onMutate:i=>{x(i),p(null)},onSuccess:(i,u)=>{x(null),p({name:u,ok:i.ok,msg:i.msg||i.err||"Unbekannter Fehler"}),r.invalidateQueries({queryKey:_.jobs}),r.invalidateQueries({queryKey:["skills-list"]})},onError:(i,u)=>{x(null),p({name:u,ok:!1,msg:String(i)})}});return s.jsxs("div",{className:"space-y-6",children:[s.jsx("div",{className:"flex flex-col sm:flex-row justify-between sm:items-center gap-4",children:s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-space font-bold tracking-tight bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text text-transparent",children:"Skills & Jobs"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:"Löst autonome Agent-Skills manuell auf der Box aus. Die Ausführung erfolgt im Hintergrund durch Hermes."})]})}),s.jsx(z,{}),d&&s.jsxs("div",{className:K("p-4 rounded-lg border flex gap-3 items-start",d.ok?"bg-emerald-500/10 border-emerald-500/20 text-emerald-600 dark:text-emerald-400":"bg-red-500/10 border-red-500/20 text-red-600 dark:text-red-400"),children:[d.ok?s.jsx(D,{className:"h-5 w-5 mt-0.5 shrink-0"}):s.jsx(H,{className:"h-5 w-5 mt-0.5 shrink-0"}),s.jsxs("div",{children:[s.jsx("div",{className:"font-semibold text-sm",children:d.name}),s.jsx("div",{className:"text-sm opacity-90",children:d.msg})]})]}),t&&s.jsx("div",{className:"flex h-32 items-center justify-center",children:s.jsx(L,{className:"h-6 w-6 animate-spin text-muted-foreground"})}),n&&s.jsx("div",{className:"text-red-500 p-4 mc-card text-sm",children:"Fehler beim Laden der Skills. Ist das Backend erreichbar?"}),(e==null?void 0:e.skills)&&s.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-4",children:[e.skills.map(i=>s.jsxs("div",{className:"mc-card p-5 flex flex-col hover:border-primary/40 transition-colors group",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3 mb-2",children:[s.jsxs("div",{className:"flex items-center gap-2 font-semibold text-base font-space",children:[s.jsx(V,{className:"h-5 w-5 text-primary/80"}),i.name]}),s.jsxs("button",{onClick:()=>k.mutate(i.name),disabled:l===i.name||i.running||k.isPending,className:K("shrink-0 h-8 px-3 rounded-md text-xs font-semibold uppercase tracking-wider flex items-center gap-1.5 transition-all cursor-pointer",l===i.name||i.running?"bg-sky-500/10 border border-sky-500/40 text-sky-400 cursor-not-allowed":"bg-primary/10 text-primary hover:bg-primary hover:text-primary-foreground group-hover:shadow-md group-hover:shadow-primary/20"),children:[l===i.name||i.running?s.jsx(L,{className:"h-3.5 w-3.5 animate-spin"}):s.jsx(X,{className:"h-3.5 w-3.5"}),l===i.name||i.running?"Läuft …":"Starten"]})]}),s.jsx("div",{className:"text-sm text-muted-foreground flex-1",children:i.description})]},i.name)),e.skills.length===0&&s.jsxs("div",{className:"col-span-full p-8 text-center text-muted-foreground mc-card border-dashed border-2",children:["Keine Skills im Ordner ",s.jsx("code",{className:"text-xs text-foreground bg-muted px-1.5 py-0.5 rounded",children:"deploy/skills"})," gefunden."]})]})]})}export{ee as SkillsView}; diff --git a/frontend/dist/assets/SystemDrawer-CpUj62ev.js b/frontend/dist/assets/SystemDrawer-CpUj62ev.js deleted file mode 100644 index 34b27b1..0000000 --- a/frontend/dist/assets/SystemDrawer-CpUj62ev.js +++ /dev/null @@ -1,42 +0,0 @@ -import{c as v,j as e,b as c,r as l,T as W,L as ae,E as ve,n as b,Q as le,Y as oe,X as de,J as Se,u as _e,k as Ce,x as ze,aq as Fe,ae as Le,ak as Ue,V as P,t as Ae,y as q,q as N}from"./index-DMY9lUCb.js";import{R as F}from"./refresh-cw-hAcZthO8.js";import{F as Pe}from"./file-text-BSQuFPZM.js";import{S as Be}from"./search-D_8DnBvS.js";import{S as ce}from"./shield-BtE9Fxv6.js";import{A as ne}from"./arrow-right-CNrCtUoh.js";import{C as Re}from"./clock-Bth-s5Y3.js";import{E as $e}from"./external-link-DcJao8h4.js";import{C as De,a as Ee}from"./cloud-download-BGirmHxu.js";import{P as Oe}from"./power-DsvD9qMX.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Te=v("Box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const Me=v("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const He=v("GitCommitHorizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const qe=v("Key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const ie=v("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const me=v("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const xe=v("Shuffle",[["path",{d:"M2 18h1.4c1.3 0 2.5-.6 3.3-1.7l6.1-8.6c.7-1.1 2-1.7 3.3-1.7H22",key:"1wmou1"}],["path",{d:"m18 2 4 4-4 4",key:"pucp1d"}],["path",{d:"M2 6h1.9c1.5 0 2.9.9 3.6 2.2",key:"10bdb2"}],["path",{d:"M22 18h-5.9c-1.3 0-2.6-.7-3.3-1.8l-.5-.8",key:"vgxac0"}],["path",{d:"m18 14 4 4-4 4",key:"10pe0f"}]]);/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const We=v("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);function B({icon:n,iconClass:d,name:i,status:m,available:s,busy:u,actionLabel:f,onAction:r}){return e.jsxs("div",{className:c("flex items-center gap-3 rounded-lg border px-3 py-2",s?"border-amber-500/30 bg-amber-500/5":"border-border/50 bg-background/20"),children:[e.jsx(n,{className:c("h-4 w-4 shrink-0",d)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-xs text-foreground truncate",children:i}),e.jsx("div",{className:c("text-[10px] truncate",s?"text-amber-400/90":"text-muted-foreground"),children:m})]}),e.jsx("button",{onClick:r,disabled:!s||u,className:c("text-[11px] font-semibold rounded-lg px-2.5 py-1 transition-colors shrink-0",s?"bg-primary text-primary-foreground hover:opacity-90 cursor-pointer":"border border-border/50 text-muted-foreground/40 cursor-default"),children:u?"…":f})]})}function Ge({label:n,ok:d,system:i,busy:m,onRestart:s,onLogs:u}){return e.jsxs("div",{className:"flex items-center gap-2.5 rounded-lg border border-border/50 bg-background/20 px-3 py-2",children:[e.jsx("span",{className:c("w-1.5 h-1.5 rounded-full shrink-0",d===!0?"bg-emerald-500":d===!1?"bg-red-500":"bg-muted-foreground/40")}),e.jsxs("span",{className:"flex-1 text-xs text-foreground truncate",children:[n,i&&e.jsx("span",{className:"text-[9px] text-muted-foreground",children:" (root)"})]}),e.jsx("button",{onClick:s,disabled:m,title:"Neu starten",className:"text-muted-foreground hover:text-primary transition-colors disabled:opacity-50",children:e.jsx(F,{className:c("h-3.5 w-3.5",m&&"animate-spin")})}),e.jsx("button",{onClick:u,title:"Logs ansehen",className:"text-muted-foreground hover:text-primary transition-colors",children:e.jsx(Pe,{className:"h-3.5 w-3.5"})})]})}const Je=/\b(error|fehler|fail(ed|ure)?|fatal|critical|crit|panic|traceback|exception|denied|refused|unable|emerg|alert|oom|killed)\b/i,Ke=/\b(warn(ing)?|deprecat\w*|retry(ing)?|timeout|timed out|degraded|missing|not found|nicht gefunden)\b/i;function Ve(n){return Je.test(n)?"error":Ke.test(n)?"warn":"info"}const Ze={error:"text-red-400",warn:"text-amber-300",info:"text-cyan-300/80"};function Qe({service:n,text:d,loading:i,logStatus:m,onRefresh:s,onOpenSettings:u}){const[f,r]=l.useState(!1),[j,y]=l.useState(""),o=l.useRef(null),h=l.useMemo(()=>d?d.split(` -`).map(p=>({t:p,level:Ve(p)})):[],[d]),S=l.useMemo(()=>h.filter(p=>p.level!=="info").length,[h]),_=j.trim().toLowerCase(),g=h.filter(p=>(!f||p.level!=="info")&&(!_||p.t.toLowerCase().includes(_))),k=m==="password_required"||m==="incorrect_password";return e.jsxs("div",{className:"flex-1 flex flex-col min-h-[300px] border border-border/60 bg-black/50 rounded-xl overflow-hidden shadow-inner",children:[e.jsxs("div",{className:"flex h-10 items-center justify-between gap-2 px-3 border-b border-border/40 bg-black/30 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground shrink-0",children:[e.jsx(We,{className:"h-3 w-3 text-primary"}),e.jsx("span",{className:"hidden sm:inline",children:"stdout/stderr —"})," ",n]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Be,{className:"pointer-events-none absolute left-2 top-1/2 h-3 w-3 -translate-y-1/2 text-muted-foreground"}),e.jsx("input",{value:j,onChange:p=>y(p.target.value),placeholder:"filtern…",className:"h-7 w-24 sm:w-36 rounded-md border border-border/50 bg-background/40 pl-6 pr-2 text-[10px] text-foreground outline-none focus:border-primary/50"})]}),e.jsxs("button",{onClick:()=>r(p=>!p),title:"Nur Fehler und Warnungen zeigen",className:c("flex h-7 items-center gap-1 rounded-md border px-2 text-[10px] font-semibold transition-colors",f?"border-amber-500/50 bg-amber-500/15 text-amber-300":"border-border/50 bg-background/20 text-muted-foreground hover:text-foreground"),children:[e.jsx(W,{className:"h-3 w-3"}),"Nur Probleme",S>0?` (${S})`:""]}),e.jsx("button",{onClick:s,disabled:i,title:"Neu laden",className:"flex h-7 w-7 items-center justify-center rounded-md border border-border/50 bg-background/20 text-muted-foreground hover:text-foreground transition-colors disabled:opacity-50",children:e.jsx(F,{className:c("h-3 w-3",i&&"animate-spin")})})]})]}),e.jsx("div",{ref:o,className:"flex-1 overflow-y-auto p-3 text-[10px] font-mono leading-relaxed scrollbar-thin select-text",children:k?e.jsxs("div",{className:"flex h-full flex-col items-center justify-center space-y-3 p-6 text-center",children:[e.jsx(W,{className:"h-8 w-8 text-amber-400 animate-pulse animate-duration-1000"}),e.jsx("div",{className:"text-xs font-semibold text-amber-300",children:m==="incorrect_password"?"Falsches Sudo-Passwort hinterlegt.":"Sudo-Passwort für systemd-Dienste erforderlich."}),e.jsxs("p",{className:"max-w-xs text-[10px] leading-normal text-muted-foreground",children:["Für das Auslesen der systemd-Logs von ",n," werden Root-Rechte benötigt. Hinterlege dein Passwort in den Einstellungen."]}),e.jsx("button",{onClick:u,className:"mt-2 rounded-md bg-primary px-3 py-1.5 text-[10px] font-semibold text-primary-foreground transition-colors hover:bg-primary/95",children:"Sudo-Passwort eintragen"})]}):i&&!d?e.jsx("span",{className:"text-muted-foreground",children:"Lade Logs…"}):h.length===0?e.jsx("span",{className:"text-muted-foreground",children:"Keine Logeinträge vorhanden."}):g.length===0?e.jsx("span",{className:"text-muted-foreground",children:f?"Keine Fehler oder Warnungen — der Dienst läuft sauber. ✓":"Kein Treffer für den Filter."}):g.map((p,$)=>e.jsx("div",{className:c("whitespace-pre-wrap",Ze[p.level]),children:p.t||" "},$))})]})}function Xe({open:n,showAlert:d}){const[i,m]=l.useState(null),[s,u]=l.useState(""),[f,r]=l.useState(!1),[j,y]=l.useState(!1),[o,h]=l.useState(!1);async function S(){y(!0);try{m(await b("/api/maintenance/geheimnisse"))}catch(g){d("Nicht erreichbar",`Der Geheimnis-Zustand konnte nicht geladen werden: ${(g==null?void 0:g.message)||g}`)}finally{y(!1)}}l.useEffect(()=>{n&&(u(""),r(!1),S())},[n]);async function _(g){h(!0);try{const k=await b("/api/maintenance/geheimnisse",{method:"POST",body:JSON.stringify({schluessel:"hf_token",wert:g})});m(k),u(""),d(g?"Gespeichert":"Gelöscht",g?"Der Token liegt jetzt auf der Box — der Browser behält ihn nicht.":"Der Token wurde von der Box entfernt.")}catch(k){d("Fehlgeschlagen",(k==null?void 0:k.message)||String(k))}finally{h(!1)}}return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Zugangsdaten & Schlüssel"}),e.jsx("p",{className:"text-[10px] leading-normal text-muted-foreground",children:"Geheimnisse liegen auf der Box (Datei mit Rechten 0600), nicht im Browser. Diese Seite zeigt nur, ob etwas gesetzt ist — den Wert bekommt sie nie zurück."})]}),e.jsxs("div",{className:"mc-card-sm space-y-1.5 p-3",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-xs font-semibold",children:[e.jsx(me,{className:"h-4 w-4 text-emerald-400","aria-hidden":"true"}),"Box-Sudo-Passwort — nicht mehr nötig"]}),e.jsxs("p",{className:"text-[10px] leading-normal text-muted-foreground",children:["Systemdienste, OS-Update und Neustart laufen passwortlos (",e.jsx("code",{className:"font-mono text-primary",children:"NOPASSWD"})," in",e.jsx("code",{className:"font-mono",children:" /etc/sudoers"}),"). Das frühere Feld hat nie etwas bewirkt und lag dabei im Browser-Speicher — es ist am 28.08.2026 ersatzlos entfallen. Verlangt ",e.jsx("code",{className:"font-mono",children:"sudo"})," auf der Box je doch ein Passwort, sagt die Wartung das im Klartext; das ist dann dort zu lösen."]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("label",{htmlFor:"hf-token",className:"flex items-center gap-1.5 text-xs font-semibold",children:[e.jsx(qe,{className:"h-4 w-4 text-violet-400","aria-hidden":"true"}),"HuggingFace-Token"]}),e.jsx("div",{className:"flex items-center gap-2 text-[11px]",children:j?e.jsxs("span",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx(ae,{className:"h-3 w-3 animate-spin","aria-hidden":"true"})," Zustand wird geladen …"]}):i!=null&&i.hf_token_gesetzt?e.jsxs("span",{className:"flex items-center gap-1.5 font-semibold text-emerald-400",children:[e.jsx("span",{className:"h-2 w-2 rounded-full bg-emerald-500","aria-hidden":"true"}),"Gesetzt",i.hf_token_aus_env?" (aus der Dienst-Umgebung)":""]}):e.jsxs("span",{className:"flex items-center gap-1.5 text-muted-foreground",children:[e.jsx("span",{className:"h-2 w-2 rounded-full bg-muted-foreground/50","aria-hidden":"true"}),"Nicht gesetzt"]})}),(i==null?void 0:i.hf_token_aus_env)&&e.jsxs("p",{className:"text-[9px] leading-normal text-amber-400/90",children:["Der Token kommt aus der Umgebung des Dienstes und hat Vorrang. Hier gespeicherte Werte bleiben wirkungslos, solange ",e.jsx("code",{className:"font-mono",children:"HF_TOKEN"})," gesetzt ist."]}),i&&!i.schreibbar&&e.jsx("p",{className:"text-[9px] leading-normal text-amber-400/90",children:"Die Ablage ist nicht beschreibbar — auf einem Entwicklungsrechner ohne den Modell-Ordner der Box ist das normal. Speichern würde hier ins Leere laufen."}),e.jsxs("div",{className:"relative",children:[e.jsx("input",{id:"hf-token",type:f?"text":"password",value:s,onChange:g=>u(g.target.value),autoComplete:"off",spellCheck:!1,placeholder:i!=null&&i.hf_token_gesetzt?"Neuen Token eingeben, um zu ersetzen":"hf_…",className:"h-10 w-full rounded-lg border border-border/60 bg-background/40 pl-3 pr-10 text-xs text-foreground outline-none transition-colors focus:border-primary"}),e.jsx("button",{type:"button",onClick:()=>r(!f),"aria-label":f?"Token verbergen":"Token anzeigen",className:"absolute inset-y-0 right-0 flex items-center pr-3 text-muted-foreground transition-colors hover:text-foreground",children:f?e.jsx(Me,{className:"h-4 w-4","aria-hidden":"true"}):e.jsx(ve,{className:"h-4 w-4","aria-hidden":"true"})})]}),e.jsxs("p",{className:"text-[9px] leading-normal text-muted-foreground",children:["Nötig für Modelle mit Zugangsschranke. Wird beim Download als",e.jsx("code",{className:"font-mono",children:" HF_TOKEN"})," an den Job gereicht und verlässt die Box nicht."]})]}),e.jsxs("div",{className:"flex gap-3 pt-2",children:[e.jsxs("button",{onClick:()=>_(s.trim()),disabled:o||!s.trim(),className:"flex h-9 flex-1 cursor-pointer items-center justify-center gap-1.5 rounded-lg bg-primary text-xs font-semibold text-primary-foreground shadow shadow-primary/10 transition-colors hover:bg-primary/90 disabled:cursor-not-allowed disabled:opacity-40",children:[o&&e.jsx(ae,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":"true"}),"Auf der Box speichern"]}),e.jsx("button",{onClick:()=>_(null),disabled:o||!(i!=null&&i.hf_token_gesetzt),className:"flex h-9 cursor-pointer items-center justify-center rounded-lg border border-border/60 bg-background/20 px-4 text-xs font-semibold text-muted-foreground transition-colors hover:bg-accent disabled:cursor-not-allowed disabled:opacity-40",children:"Löschen"})]})]})}function Ye({detail:n,maintenanceJob:d,onClose:i,onApply:m}){var j,y;const s=n.data,u={os:{icon:ce,cls:"text-cyan-400",title:"OS-Pakete (apt)"},engine:{icon:oe,cls:"text-violet-400",title:"Inferenz-Engine (llama.cpp)"},swap:{icon:xe,cls:"text-fuchsia-400",title:"Router (llama-swap)"},hermes:{icon:le,cls:"text-amber-400",title:"Hermes-Agent"}}[n.kind],f=u.icon,r=s?n.kind==="os"?(s.count??0)===0:n.kind==="hermes"?(s.behind??0)===0:s.installed_build!=null&&s.latest_build!=null&&s.latest_build<=s.installed_build:!0;return e.jsxs("div",{className:"fixed inset-0 z-[60] flex items-center justify-center p-4",children:[e.jsx("div",{className:"absolute inset-0 bg-black/70 backdrop-blur-sm",onClick:i}),e.jsxs("div",{className:"relative w-full max-w-lg max-h-[80vh] flex flex-col rounded-2xl border border-border/60 bg-card shadow-2xl font-sans text-foreground",children:[e.jsxs("div",{className:"flex h-14 shrink-0 items-center justify-between border-b border-border/40 px-5",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{className:c("h-4.5 w-4.5",u.cls)}),e.jsx("h3",{className:"text-sm font-semibold",children:u.title})]}),e.jsx("button",{onClick:i,className:"flex h-7 w-7 items-center justify-center rounded-lg border border-border/40 text-muted-foreground hover:bg-accent transition-colors",children:e.jsx(de,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto p-5 text-xs space-y-3 scrollbar-thin",children:n.loading?e.jsxs("div",{className:"flex h-24 items-center justify-center gap-2 text-muted-foreground",children:[e.jsx(F,{className:"h-4 w-4 animate-spin"})," Details werden geladen…"]}):s!=null&&s.error?e.jsx("div",{className:"rounded-lg border border-red-500/30 bg-red-500/5 p-3 text-red-400",children:s.error}):e.jsxs(e.Fragment,{children:[(s==null?void 0:s.action_needed)!=null&&e.jsxs("div",{className:c("flex items-start gap-2 rounded-lg border p-3",s.action_needed?"border-amber-500/40 bg-amber-500/10":"border-emerald-500/40 bg-emerald-500/10"),children:[s.action_needed?e.jsx(W,{className:"h-4 w-4 text-amber-400 shrink-0 mt-0.5"}):e.jsx(Se,{className:"h-4 w-4 text-emerald-400 shrink-0 mt-0.5"}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:c("text-xs font-semibold",s.action_needed?"text-amber-300":"text-emerald-300"),children:["Musst du etwas tun? ",s.action_needed?"Ja":"Nein — die Box regelt das (Fangnetz)"]}),s.action_needed&&s.action_text&&e.jsx("div",{className:"mt-0.5 text-[11px] text-foreground/90",children:s.action_text})]})]}),(s==null?void 0:s.summary)&&e.jsxs("div",{className:"rounded-lg border border-primary/25 bg-primary/5 p-3 space-y-1",children:[e.jsx("div",{className:"text-[10px] font-bold uppercase tracking-wider text-primary",children:"Was dieses Update bedeutet (Zusammenfassung der Box)"}),e.jsx("pre",{className:"whitespace-pre-wrap text-[11px] leading-relaxed text-foreground/90 font-sans",children:s.summary})]}),n.kind==="os"?e.jsxs(e.Fragment,{children:[((s==null?void 0:s.count)??0)===0?e.jsx("div",{className:"text-muted-foreground",children:"Keine Pakete zu aktualisieren — System ist aktuell."}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"text-muted-foreground",children:[s.count," Paket(e) werden aktualisiert:"]}),e.jsx("div",{className:"space-y-1",children:s.packages.map(o=>e.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-md border border-border/40 bg-background/30 px-2.5 py-1.5",children:[e.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[e.jsx(ie,{className:"h-3 w-3 text-cyan-400 shrink-0"}),o.name]}),e.jsxs("span",{className:"flex items-center gap-1 font-mono text-[10px] text-muted-foreground shrink-0",children:[e.jsx("span",{children:o.current}),e.jsx(ne,{className:"h-3 w-3"}),e.jsx("span",{className:"text-emerald-400",children:o.candidate})]})]},o.name))})]}),(((j=s==null?void 0:s.held_back)==null?void 0:j.length)??0)>0&&e.jsxs("div",{className:"space-y-1.5 rounded-lg border border-border/40 bg-background/20 p-3",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] font-semibold text-muted-foreground",children:[e.jsx(Re,{className:"h-3.5 w-3.5"})," Vom Hersteller zurückgestellt — kein Handeln nötig"]}),e.jsx("p",{className:"text-[10px] text-muted-foreground leading-normal",children:"Diese Pakete gäbe es bereits, Ubuntu spielt sie aber gestaffelt aus (Phasen-Rollout) bzw. hält sie kurz zurück. Sie kommen bei einem der nächsten automatischen Läufe von selbst — das ist kein Fehler und nichts hängt fest."}),e.jsx("div",{className:"space-y-1",children:s.held_back.map(o=>e.jsxs("div",{className:"flex items-center justify-between gap-2 rounded-md border border-border/30 bg-background/30 px-2.5 py-1.5",children:[e.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] truncate",children:[e.jsx(ie,{className:"h-3 w-3 text-muted-foreground shrink-0"}),o.name]}),e.jsx("span",{className:"text-[9px] text-muted-foreground shrink-0",children:o.reason==="phasing"?"Phasen-Rollout":"vorerst zurückgehalten"})]},o.name))})]})]}):n.kind==="engine"||n.kind==="swap"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2 font-mono text-[11px]",children:[e.jsxs("span",{className:"rounded-md border border-border/40 bg-background/30 px-2 py-1",children:["Build ",(s==null?void 0:s.installed_build)??"?"]}),e.jsx(ne,{className:"h-3.5 w-3.5 text-muted-foreground"}),e.jsxs("span",{className:"rounded-md border border-emerald-500/30 bg-emerald-500/5 px-2 py-1 text-emerald-400",children:["Build ",(s==null?void 0:s.latest_build)??"?"]})]}),((s==null?void 0:s.name)||(s==null?void 0:s.latest_tag))&&e.jsxs("div",{className:"text-muted-foreground",children:["Release: ",e.jsx("span",{className:"text-foreground",children:s==null?void 0:s.name}),s!=null&&s.latest_tag?` (${s.latest_tag})`:""]}),(s==null?void 0:s.url)&&e.jsxs("a",{href:s.url,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 text-primary hover:underline",children:["Original-Release-Notes auf GitHub ",e.jsx($e,{className:"h-3 w-3"})]}),(s==null?void 0:s.body)&&e.jsxs("details",{className:"group",children:[e.jsx("summary",{className:"cursor-pointer text-[10px] text-muted-foreground hover:text-foreground",children:"Original-Notizen (englisch) anzeigen"}),e.jsx("pre",{className:"mt-1.5 whitespace-pre-wrap rounded-lg border border-border/40 bg-background/30 p-3 text-[10px] leading-relaxed text-muted-foreground max-h-60 overflow-y-auto scrollbar-thin",children:s.body})]})]}):(((y=s==null?void 0:s.commits)==null?void 0:y.length)??0)===0?e.jsx("div",{className:"text-muted-foreground",children:"Keine neuen Commits — Hermes-Agent ist bereits aktuell."}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"text-muted-foreground",children:[s.behind," neue Commit(s) auf ",e.jsxs("span",{className:"font-mono text-foreground",children:["origin/",s.branch]}),":"]}),e.jsx("div",{className:"space-y-1",children:s.commits.map(o=>e.jsxs("div",{className:"flex items-start gap-2 rounded-md border border-border/40 bg-background/30 px-2.5 py-1.5",children:[e.jsx(He,{className:"h-3.5 w-3.5 text-primary shrink-0 mt-0.5"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-[11px] truncate",children:o.subject}),e.jsxs("div",{className:"font-mono text-[9px] text-muted-foreground",children:[o.hash," · ",o.when]})]})]},o.hash))})]}),n.kind!=="os"&&!r&&e.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-border/40 bg-background/20 p-2.5",children:[e.jsx(me,{className:"h-3.5 w-3.5 text-emerald-400 shrink-0 mt-0.5"}),e.jsxs("p",{className:"text-[10px] text-muted-foreground leading-normal",children:["Vor dem Update sichert die Box automatisch den alten Stand. Danach prüft sie den ganzen Stack per echter Anfrage — läuft etwas nicht, rollt sie von selbst zurück",n.kind==="hermes"?" und startet den Gateway neu":"","."]})]})]})}),e.jsxs("div",{className:"flex gap-3 border-t border-border/40 p-4 shrink-0",children:[e.jsx("button",{onClick:i,className:"h-9 flex-1 rounded-lg border border-border/60 bg-background/20 text-xs font-semibold text-muted-foreground hover:bg-accent transition-colors cursor-pointer",children:"Schließen"}),e.jsx("button",{onClick:m,disabled:n.loading||r||!!d,title:d?`Update läuft bereits: ${d.label}`:void 0,className:"h-9 flex-1 rounded-lg bg-primary text-xs font-semibold text-primary-foreground hover:opacity-90 transition-all cursor-pointer disabled:opacity-40 disabled:cursor-default",children:d?"Update läuft…":"Jetzt aktualisieren"})]})]})]})}function dt({open:n,onClose:d,defaultTab:i="maintenance"}){var se,re;const m=_e(),{showAlert:s,showConfirm:u,dialogElement:f}=Ce(),{data:r}=ze(),{data:j}=Fe(),y=Le(3e3,n).data??[],{data:o}=Ue(void 0,n),[h,S]=l.useState("llama-swap"),[_,g]=l.useState(""),[k,p]=l.useState(!1),[$,G]=l.useState(null),[D,J]=l.useState({}),[C,w]=l.useState("maintenance"),[K,V]=l.useState(!1),[Z,E]=l.useState(""),[Q,X]=l.useState(!1),[ue,Y]=l.useState(!1),[L,U]=l.useState(null),O=(j==null?void 0:j.services)??[],z=()=>P(m,N.jobs);function he(t){return t?new Date(t*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}):"Nie"}l.useEffect(()=>{n&&i&&w(i)},[n,i]),l.useEffect(()=>{n&&P(m,N.updates,N.services,N.jobs,N.zeitmaschine)},[n]);function T(t){p(!0),G(null),b(`/api/maintenance/logs?service=${t}&lines=150`).then(a=>{a.ok?g(a.text):(g(`Fehler beim Laden der Logs: ${a.err||"Unbekannter Fehler"}`),(a.status==="incorrect_password"||a.status==="password_required")&&G(a.status))}).catch(a=>g(`Fehler: ${a.message}`)).finally(()=>p(!1))}l.useEffect(()=>{!n||C!=="logs"||T(h)},[n,C,h]);function M(t){return(t==null?void 0:t.status)==="busy"?(s("Update läuft bereits",`Es läuft gerade „${t.running}". Bitte warte, bis es fertig ist.`),z(),!0):!1}function I(t){return(t==null?void 0:t.status)==="password_required"||(t==null?void 0:t.status)==="incorrect_password"?(s("Box-Passwort nötig",(t.status==="incorrect_password"?"Das gespeicherte Box-Passwort stimmt nicht. ":"Für dieses Update braucht die Box dein Passwort. ")+"Bitte oben im Reiter „Einstellungen“ setzen bzw. korrigieren."),!0):t&&t.ok===!1?(s("Update fehlgeschlagen",t.err||"Unbekannter Fehler."),!0):!1}async function ge(t){const a={os:"os-update",engine:"engine-update",swap:"swap-update"}[t];try{const x=await b(`/api/maintenance/${a}`,{method:"POST"});if(M(x)||I(x))return;z(),w("maintenance")}catch(x){s("Fehler",`Update konnte nicht starten: ${x.message}`)}}async function pe(){Y(!0);try{const t=await b("/api/maintenance/hermes-update",{method:"POST"});if(M(t))return;z()}catch(t){s("Fehler",`Hermes-Update fehlgeschlagen: ${t.message}`)}finally{Y(!1)}}async function R(t){U({kind:t,loading:!0,data:null});try{const a=await b(`/api/maintenance/update-details?kind=${t}`);U({kind:t,loading:!1,data:a})}catch(a){U({kind:t,loading:!1,data:{kind:t,error:a.message}})}}function fe(){const t=L==null?void 0:L.kind;U(null),t==="os"||t==="engine"||t==="swap"?ge(t):t==="hermes"&&pe()}function be(){var a;const t=[r!=null&&r.engine?"Engine":null,r!=null&&r.swap?"Router":null,(a=r==null?void 0:r.components)!=null&&a.some(x=>x.update===!0)?"Hermes-Agent":null,r!=null&&r.os?`OS (${r.os} Pakete)`:null].filter(Boolean);u("Alle Updates einspielen?",`Nacheinander in einem Job: ${t.join(" → ")}. Jeder Schritt sichert und prüft sich selbst; schlägt einer fehl, stoppt der Rest. (OS braucht das Box-Passwort aus den Einstellungen — fehlt es, wird OS übersprungen.)`,async()=>{try{const x=await b("/api/maintenance/update-all",{method:"POST"});if(M(x)||I(x))return;if((x==null?void 0:x.status)==="nothing"){s("Nichts zu tun","Es stehen keine Updates aus.");return}z(),w("maintenance")}catch(x){s("Fehler",`„Alle aktualisieren" konnte nicht starten: ${x.message}`)}})}async function ye(){V(!0);try{await b("/api/maintenance/check-updates",{method:"POST"}),P(m,N.jobs,N.updates),w("maintenance")}catch(t){s("Fehler",`Fehler bei der Update-Suche: ${t.message}`)}finally{V(!1)}}async function je(t,a){try{await b("/api/models/install",{method:"POST",body:JSON.stringify({repo:t,role:a})}),s("Gestartet",`Modell-Upgrade für '${a}' (${t}) gestartet.`),z(),w("maintenance")}catch(x){s("Fehler",`Fehler beim Starten des Modell-Upgrades: ${x.message}`)}}async function Ne(){u("Reboot bestätigen","Bist du sicher, dass du das gesamte Host-System neu starten willst?",async()=>{try{await b("/api/maintenance/reboot",{method:"POST"}),s("Reboot","Reboot ausgelöst. System startet neu...",()=>d())}catch(t){s("Fehler",`Fehler beim Reboot: ${t.message}`)}})}async function ke(){X(!0),E("Snapshot wird erzeugt...");try{const t=await b("/api/system/backup",{method:"POST"});E(t.ok?`Snapshot erzeugt: ${t.snapshot} (${t.files.length} Komponenten)`:"Backup fehlgeschlagen."),P(m,N.zeitmaschine)}catch(t){E(`Fehler: ${t.message}`)}finally{X(!1)}}async function ee(t){J(a=>({...a,[t]:!0}));try{const a=await b("/api/maintenance/restart",{method:"POST",body:JSON.stringify({service:t})});a.ok?(s("Dienst neu gestartet",`Dienst ${t} wurde erfolgreich neu gestartet.`,()=>{C==="logs"&&h===t&&T(t)}),P(m,N.services,N.health,N.models)):s("Fehler",`Fehler beim Neustart: ${a.err||"Unbekannter Fehler"}`)}catch(a){s("Fehler",`Fehler beim Neustart: ${a.message}`)}finally{J(a=>({...a,[t]:!1}))}}async function we(t){try{await b(`/api/jobs/${t}/cancel`,{method:"POST"}),z()}catch(a){s("Fehler",`Fehler beim Abbrechen: ${a.message}`)}}const A=y.find(t=>(t.state==="running"||t.state==="queued")&&t.group==="maintenance"),te=(r?(r.os>0?1:0)+(r.engine?1:0)+(r.swap?1:0):0)+(((se=r==null?void 0:r.components)==null?void 0:se.filter(t=>t.update===!0).length)??0),H=(o==null?void 0:o.backups)??[];return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:c("fixed inset-0 bg-black/60 backdrop-blur-sm z-50 transition-opacity duration-300",n?"opacity-100 pointer-events-auto":"opacity-0 pointer-events-none"),onClick:d}),e.jsxs("div",{className:c("fixed inset-y-0 right-0 w-full sm:w-[640px] bg-card/85 backdrop-blur-xl border-l border-border/60 shadow-2xl z-50 flex flex-col transform transition-transform duration-300 ease-in-out font-sans text-foreground",n?"translate-x-0":"translate-x-full"),children:[e.jsxs("div",{className:"flex h-16 shrink-0 items-center justify-between border-b border-border/40 px-6",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ae,{className:"h-4.5 w-4.5 text-primary"}),e.jsx("h2",{className:"text-sm font-semibold tracking-wide uppercase font-space",children:"OS-Zentrale & Pflege"})]}),e.jsx("button",{onClick:d,"aria-label":"System-Schublade schließen",className:"flex h-8 w-8 items-center justify-center rounded-lg border border-border/40 text-muted-foreground hover:bg-accent transition-colors cursor-pointer",children:e.jsx(de,{className:"h-4 w-4","aria-hidden":"true"})})]}),e.jsx("div",{className:"flex border-b border-border/40 px-6",children:["maintenance","logs","settings"].map(t=>e.jsx("button",{onClick:()=>w(t),className:c("flex-1 py-3 text-xs font-semibold uppercase tracking-wider border-b-2 text-center transition-all",C===t?"border-primary text-primary":"border-transparent text-muted-foreground hover:text-foreground"),children:t==="maintenance"?"System-Wartung":t==="logs"?"System-Logs":"Einstellungen"},t))}),e.jsxs("div",{className:"flex-1 overflow-y-auto p-6 space-y-6",children:[C==="maintenance"&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"space-y-2.5",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Updates"}),e.jsxs("div",{className:"flex items-center gap-3",children:[te>0&&e.jsxs("button",{onClick:be,disabled:!!A,className:"flex items-center gap-1 rounded-md border border-primary/40 bg-primary/10 px-2 py-1 text-[10px] font-bold text-primary transition-colors hover:bg-primary/20 disabled:opacity-50",children:[e.jsx(De,{className:"h-3 w-3"})," Alle aktualisieren (",te,")"]}),e.jsxs("button",{onClick:ye,disabled:K||!!A,className:"flex items-center gap-1 text-[10px] font-semibold text-primary hover:text-primary/80 transition-colors disabled:opacity-50",children:[e.jsx(F,{className:c("h-3 w-3",K&&"animate-spin")})," Nach Updates suchen"]})]})]}),(r==null?void 0:r.last_check)&&e.jsxs("div",{className:"text-[9px] text-muted-foreground -mt-1",children:["Zuletzt gesucht: ",he(r.last_check)]}),A&&e.jsxs("div",{className:"flex items-center gap-2 rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-[11px] text-amber-300",children:[e.jsx(F,{className:"h-3.5 w-3.5 shrink-0 animate-spin"}),e.jsxs("span",{children:["Update läuft: ",e.jsx("span",{className:"font-semibold",children:A.label})," — bitte warten. Weitere Updates sind solange gesperrt."]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(B,{icon:ce,iconClass:"text-cyan-400",name:"OS-Pakete (apt)",available:!!(r!=null&&r.os),status:r!=null&&r.os?`${r.os} verfügbar`:"aktuell",actionLabel:"Anzeigen",onAction:()=>R("os")}),e.jsx(B,{icon:oe,iconClass:"text-violet-400",name:"Inferenz-Engine (llama.cpp)",available:!!(r!=null&&r.engine),status:r!=null&&r.engine?"Update verfügbar":"aktuell",actionLabel:"Anzeigen",onAction:()=>R("engine")}),e.jsx(B,{icon:xe,iconClass:"text-fuchsia-400",name:"Router (llama-swap)",available:!!(r!=null&&r.swap),status:r!=null&&r.swap?"Update verfügbar":"aktuell",actionLabel:"Anzeigen",onAction:()=>R("swap")}),(()=>{var a;const t=(a=r==null?void 0:r.components)==null?void 0:a.find(x=>x.key==="hermes_agent");return e.jsx(B,{icon:le,iconClass:"text-amber-400",name:"Hermes-Agent",available:(t==null?void 0:t.update)===!0,busy:ue,status:(t==null?void 0:t.update)===!0?`Update: ${t.latest}`:(t==null?void 0:t.reachable)===!1?"offline":"aktuell",actionLabel:"Anzeigen",onAction:()=>R("hermes")})})(),(re=r==null?void 0:r.model_list)==null?void 0:re.map(t=>e.jsx(B,{icon:Te,iconClass:"text-emerald-400",name:`Modell · ${t.role}`,available:!0,status:t.title,actionLabel:"Upgrade",onAction:()=>je(t.repo,t.role)},t.role))]})]}),e.jsxs("div",{className:"space-y-2.5",children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Dienste"}),e.jsxs("div",{className:"space-y-1.5",children:[O.length===0&&e.jsx("div",{className:"rounded-lg border border-dashed border-border/50 p-4 text-center text-xs text-muted-foreground",children:"Dienste-Liste wird geladen …"}),O.map(t=>e.jsx(Ge,{label:t.name,system:t.scope==="system",ok:t.ok,busy:D[t.unit],onRestart:()=>ee(t.unit),onLogs:()=>{S(t.unit),w("logs")}},t.unit))]})]}),e.jsxs("div",{className:"space-y-2.5",children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Backup"}),e.jsxs("div",{className:"rounded-lg border border-border/50 bg-background/20 px-3 py-2.5 flex items-center gap-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"text-xs text-foreground truncate",children:H[0]?`Letztes: ${H[0].snapshot}`:"Noch kein Backup"}),e.jsxs("div",{className:"text-[10px] text-muted-foreground",children:[H.length," Snapshots · Wiederherstellen: Chronik → Zeitmaschine"]})]}),e.jsxs("button",{onClick:ke,disabled:Q,className:"flex items-center gap-1.5 text-[11px] font-semibold rounded-lg px-2.5 py-1 bg-primary text-primary-foreground hover:opacity-90 transition-all cursor-pointer disabled:opacity-50 shrink-0",children:[e.jsx(Ee,{className:c("h-3.5 w-3.5",Q&&"animate-pulse")})," Snapshot"]})]}),Z&&e.jsx("div",{className:"text-[10px] font-mono text-primary bg-primary/5 p-2 rounded-lg border border-primary/20 break-all leading-normal",children:Z})]}),e.jsxs("div",{className:"space-y-2.5",children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-red-400/80",children:"Gefahrenzone"}),e.jsxs("button",{onClick:Ne,className:"flex w-full items-center gap-3 p-3 rounded-lg border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 text-red-400 transition-all text-left text-xs font-semibold",children:[e.jsx(Oe,{className:"h-4.5 w-4.5"}),e.jsxs("div",{children:[e.jsx("div",{children:"Host-System neu starten"}),e.jsx("div",{className:"text-[10px] text-red-400/80 font-normal",children:"Startet die ganze Box neu"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h3",{className:"text-xs font-bold uppercase tracking-wider text-muted-foreground",children:"Hintergrund-Aufgaben"}),e.jsxs("span",{className:"text-[10px] font-mono bg-primary/10 text-primary px-1.5 py-0.5 rounded-full",children:[y.filter(t=>t.state==="running"||t.state==="queued").length," Aktiv"]})]}),e.jsx("div",{className:"space-y-3",children:y.length===0?e.jsx("div",{className:"text-xs text-muted-foreground border border-dashed border-border/60 rounded-xl p-6 text-center",children:"Aktuell keine aktiven Hintergrund-Jobs."}):y.map(t=>{const a=t.state==="running"||t.state==="queued";return e.jsxs("div",{className:c("p-3 rounded-xl border transition-all duration-300",a?"border-primary/40 bg-primary/5 shadow-md shadow-primary/5":"border-border/40 bg-background/20 opacity-80"),children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"text-xs font-semibold flex items-center gap-1.5",children:[a&&e.jsxs("span",{className:"flex h-2 w-2 relative",children:[e.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75"}),e.jsx("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]}),t.label]}),e.jsxs("div",{className:"text-[10px] font-mono text-muted-foreground uppercase flex items-center gap-2",children:[e.jsxs("span",{children:["ID: ",t.id]}),e.jsx("span",{children:"•"}),e.jsx("span",{className:c(t.state==="done"&&"text-emerald-400",t.state==="failed"&&"text-red-400",t.state==="running"&&"text-primary",t.state==="queued"&&"text-amber-400",t.state==="canceled"&&"text-muted-foreground"),children:t.state})]})]}),a&&e.jsx("button",{onClick:()=>we(t.id),className:"text-[10px] font-semibold text-red-400 hover:text-red-300 border border-red-500/20 bg-red-500/5 hover:bg-red-500/10 px-2 py-0.5 rounded transition-colors",children:"Abbrechen"})]}),t.state==="running"&&e.jsxs("div",{className:"mt-3 space-y-1",children:[e.jsx("div",{className:"w-full h-1.5 bg-muted rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-primary transition-all duration-500",style:{width:`${t.progress??0}%`}})}),e.jsxs("div",{className:"flex justify-between items-center text-[9px] font-mono text-muted-foreground",children:[e.jsxs("span",{children:[t.progress??0,"%"]}),t.done_bytes!=null&&t.total_bytes!=null&&e.jsxs("span",{children:[q(t.done_bytes)," / ",q(t.total_bytes),t.rate_bps!=null&&` (${q(t.rate_bps)}/s)`]}),t.eta_s!=null&&e.jsxs("span",{children:["ETA: ",t.eta_s,"s"]})]})]})]},t.id)})})]})]}),C==="logs"&&e.jsxs("div",{className:"flex flex-col h-full space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("select",{value:h,onChange:t=>S(t.target.value),className:"flex-1 h-9 px-3 text-xs bg-background/40 border border-border/60 rounded-lg outline-none text-foreground font-semibold",children:O.map(t=>e.jsxs("option",{value:t.unit,children:[t.name," (",t.scope==="system"?"systemd-root":"user",")"]},t.unit))}),e.jsxs("button",{onClick:()=>ee(h),disabled:D[h],className:"flex h-9 px-3 items-center gap-1.5 text-xs font-semibold rounded-lg border border-border/60 bg-background/20 hover:border-primary/50 transition-colors disabled:opacity-50",title:"Dienst neu starten",children:[e.jsx(F,{className:c("h-3.5 w-3.5",D[h]&&"animate-spin")}),"Restart"]})]}),e.jsx(Qe,{service:h,text:_,loading:k,logStatus:$,onRefresh:()=>T(h),onOpenSettings:()=>w("settings")})]}),C==="settings"&&e.jsx(Xe,{open:n,showAlert:s})]})]}),L&&e.jsx(Ye,{detail:L,maintenanceJob:A,onClose:()=>U(null),onApply:fe}),f]})}export{dt as SystemDrawer}; diff --git a/frontend/dist/assets/Updates-BJL5TrHW.js b/frontend/dist/assets/Updates-BJL5TrHW.js new file mode 100644 index 0000000..bc4cee0 --- /dev/null +++ b/frontend/dist/assets/Updates-BJL5TrHW.js @@ -0,0 +1,2 @@ +import{a as e,c as t,f as n,i as r,s as i,t as a,u as o}from"./button-Dd8hfusv.js";import{a as s,i as c,n as l,o as u,r as d,s as f,t as p}from"./dist-CgRgLCFz.js";import{C as m,S as h,T as g,a as _,b as v,d as y,f as b,i as x,o as S,r as C,t as w,w as T,x as E}from"./index-Dd2BxC7X.js";var D=i(),O=n(o(),1),k=t();function A(e){let t=(0,D.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,k.jsx)(p,{"data-slot":`dialog`,...n}),t[2]=n,t[3]=r),r}function j(e){let t=(0,D.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,k.jsx)(u,{"data-slot":`dialog-portal`,...n}),t[2]=n,t[3]=r),r}function M(e){let t=(0,D.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,k.jsx)(s,{"data-slot":`dialog-overlay`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function N(t){let n=(0,D.c)(15),i,o,s,c;n[0]===t?(i=n[1],o=n[2],s=n[3],c=n[4]):({className:o,children:i,showCloseButton:c,...s}=t,n[0]=t,n[1]=i,n[2]=o,n[3]=s,n[4]=c);let u=c===void 0||c,f;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,k.jsx)(M,{}),n[5]=f):f=n[5];let p;n[6]===o?p=n[7]:(p=r(`fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,o),n[6]=o,n[7]=p);let m;n[8]===u?m=n[9]:(m=u&&(0,k.jsx)(l,{"data-slot":`dialog-close`,asChild:!0,children:(0,k.jsxs)(a,{variant:`ghost`,className:`absolute top-2 right-2`,size:`icon-sm`,children:[(0,k.jsx)(e,{}),(0,k.jsx)(`span`,{className:`sr-only`,children:`Schließen`})]})}),n[8]=u,n[9]=m);let h;return n[10]!==i||n[11]!==s||n[12]!==p||n[13]!==m?(h=(0,k.jsxs)(j,{children:[f,(0,k.jsxs)(d,{"data-slot":`dialog-content`,className:p,...s,children:[i,m]})]}),n[10]=i,n[11]=s,n[12]=p,n[13]=m,n[14]=h):h=n[14],h}function P(e){let t=(0,D.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`flex flex-col gap-2`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,k.jsx)(`div`,{"data-slot":`dialog-header`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function F(e){let t=(0,D.c)(14),n,i,o,s;t[0]===e?(n=t[1],i=t[2],o=t[3],s=t[4]):({className:i,showCloseButton:s,children:n,...o}=e,t[0]=e,t[1]=n,t[2]=i,t[3]=o,t[4]=s);let c=s!==void 0&&s,u;t[5]===i?u=t[6]:(u=r(`-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end`,i),t[5]=i,t[6]=u);let d;t[7]===c?d=t[8]:(d=c&&(0,k.jsx)(l,{asChild:!0,children:(0,k.jsx)(a,{variant:`outline`,children:`Schließen`})}),t[7]=c,t[8]=d);let f;return t[9]!==n||t[10]!==o||t[11]!==u||t[12]!==d?(f=(0,k.jsxs)(`div`,{"data-slot":`dialog-footer`,className:u,...o,children:[n,d]}),t[9]=n,t[10]=o,t[11]=u,t[12]=d,t[13]=f):f=t[13],f}function I(e){let t=(0,D.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`font-heading text-base leading-none font-medium`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,k.jsx)(f,{"data-slot":`dialog-title`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function L(e){let t=(0,D.c)(8),n,i;t[0]===e?(n=t[1],i=t[2]):({className:n,...i}=e,t[0]=e,t[1]=n,t[2]=i);let a;t[3]===n?a=t[4]:(a=r(`text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,n),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,k.jsx)(c,{"data-slot":`dialog-description`,className:a,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function R(e){let t=(0,D.c)(26),{offen:n,titel:r,text:i,knopf:o,gefahr:s,onJa:c,onNein:l,children:u}=e,d;t[0]===l?d=t[1]:(d=e=>!e&&l(),t[0]=l,t[1]=d);let f;t[2]===r?f=t[3]:(f=(0,k.jsx)(I,{className:`schild text-xl`,children:r}),t[2]=r,t[3]=f);let p;t[4]===i?p=t[5]:(p=(0,k.jsx)(L,{className:`text-[15px] leading-relaxed text-text-2`,children:i}),t[4]=i,t[5]=p);let m;t[6]!==f||t[7]!==p?(m=(0,k.jsxs)(P,{children:[f,p]}),t[6]=f,t[7]=p,t[8]=m):m=t[8];let h;t[9]===l?h=t[10]:(h=(0,k.jsx)(a,{variant:`outline`,onClick:l,children:`Abbrechen`}),t[9]=l,t[10]=h);let g=s?`gefahr`:`default`,_;t[11]!==o||t[12]!==c||t[13]!==g?(_=(0,k.jsx)(a,{variant:g,onClick:c,children:o}),t[11]=o,t[12]=c,t[13]=g,t[14]=_):_=t[14];let v;t[15]!==h||t[16]!==_?(v=(0,k.jsxs)(F,{className:`gap-2 sm:gap-2`,children:[h,_]}),t[15]=h,t[16]=_,t[17]=v):v=t[17];let y;t[18]!==u||t[19]!==m||t[20]!==v?(y=(0,k.jsxs)(N,{className:`border-linie bg-panel sm:max-w-lg`,children:[m,u,v]}),t[18]=u,t[19]=m,t[20]=v,t[21]=y):y=t[21];let b;return t[22]!==n||t[23]!==d||t[24]!==y?(b=(0,k.jsx)(A,{open:n,onOpenChange:d,children:y}),t[22]=n,t[23]=d,t[24]=y,t[25]=b):b=t[25],b}var z=[{id:`os`,name:`Betriebssystem`},{id:`engine`,name:`Motor (llama.cpp)`},{id:`swap`,name:`llama-swap`},{id:`hermes`,name:`Hermes`}];function B(e){let t=(0,D.c)(29),{id:n,name:r,hatUpdate:i,onStart:o,laeuftGerade:s}=e,{data:c,isPending:l}=h(n),u;t[0]!==c||t[1]!==n?(u=C(n,c),t[0]=c,t[1]=n,t[2]=u):u=t[2];let d=u,f=i?d.neu??`neu`:null,p;t[3]!==c?.count||t[4]!==c?.summary||t[5]!==i||t[6]!==n||t[7]!==l?(p=i?c?.summary?.trim()||(n===`os`&&c?.count?`Paketliste unten in den Details.`:l?`Wird gelesen …`:``):`Aktuell.`,t[3]=c?.count,t[4]=c?.summary,t[5]=i,t[6]=n,t[7]=l,t[8]=p):p=t[8];let m=p,g;t[9]===r?g=t[10]:(g=(0,k.jsx)(`th`,{scope:`row`,className:`py-3.5 pr-4 text-left font-sans text-[15px] font-semibold`,children:r}),t[9]=r,t[10]=g);let _;t[11]===d.laeuft?_=t[12]:(_=(0,k.jsx)(`td`,{className:`ziffern py-3.5 pr-4 text-sm text-text-2`,children:d.laeuft}),t[11]=d.laeuft,t[12]=_);let v;t[13]===f?v=t[14]:(v=(0,k.jsx)(`td`,{className:`ziffern py-3.5 pr-4 text-sm`,children:f?(0,k.jsx)(`span`,{className:`text-cyan`,children:f}):(0,k.jsx)(`span`,{className:`text-text-3`,children:`–`})}),t[13]=f,t[14]=v);let y;t[15]===m?y=t[16]:(y=(0,k.jsx)(`td`,{className:`py-3.5 pr-4 text-sm leading-relaxed text-text-2`,children:(0,k.jsx)(`span`,{className:`line-clamp-3 whitespace-pre-line`,children:m})}),t[15]=m,t[16]=y);let b;t[17]!==i||t[18]!==s||t[19]!==o?(b=i&&(0,k.jsx)(a,{variant:`outline`,size:`sm`,onClick:o,disabled:s,children:`Aktualisieren`}),t[17]=i,t[18]=s,t[19]=o,t[20]=b):b=t[20];let x;t[21]===b?x=t[22]:(x=(0,k.jsx)(`td`,{className:`py-2.5 text-right`,children:b}),t[21]=b,t[22]=x);let S;return t[23]!==g||t[24]!==_||t[25]!==v||t[26]!==y||t[27]!==x?(S=(0,k.jsxs)(`tr`,{className:`border-t border-linie align-top`,children:[g,_,v,y,x]}),t[23]=g,t[24]=_,t[25]=v,t[26]=y,t[27]=x,t[28]=S):S=t[28],S}function V(e){let t=(0,D.c)(13),{job:n}=e,r=n.state===`done`?`gruen`:n.state===`failed`?`rot`:`cyan`,i=n.state===`done`?`Fertig`:n.state===`failed`?`Fehler`:n.state===`queued`?`Wartet`:`Läuft`,a;t[0]===n.label?a=t[1]:(a=(0,k.jsx)(`span`,{className:`text-[15px] font-semibold`,children:n.label}),t[0]=n.label,t[1]=a);let o;t[2]!==r||t[3]!==i?(o=(0,k.jsx)(x,{art:r,children:i}),t[2]=r,t[3]=i,t[4]=o):o=t[4];let s;t[5]!==a||t[6]!==o?(s=(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[a,o]}),t[5]=a,t[6]=o,t[7]=s):s=t[7];let c;t[8]===n.log?c=t[9]:(c=n.log&&n.log.length>0&&(0,k.jsx)(`pre`,{className:`ziffern max-h-40 overflow-auto rounded-md bg-[#0b0d0f] p-2 text-xs whitespace-pre-wrap text-text-2`,children:n.log.slice(-8).join(` +`)}),t[8]=n.log,t[9]=c);let l;return t[10]!==s||t[11]!==c?(l=(0,k.jsxs)(`div`,{className:`flex flex-col gap-2 rounded-xl border border-linie bg-erhaben/50 p-3`,children:[s,c]}),t[10]=s,t[11]=c,t[12]=l):l=t[12],l}function H(e){return e.mtime?S(new Date(e.mtime*1e3).toISOString()):e.snapshot}function U(){let e=(0,D.c)(55),t=E(),n=b(),r=T(),i=v(),o=m(),s=y(),c=g(),[l,u]=(0,O.useState)(null),d;e[0]===t.data?.updates.bausteine?d=e[1]:(d=new Set(t.data?.updates.bausteine.map(J)??[]),e[0]=t.data?.updates.bausteine,e[1]=d);let f=d,p;if(e[2]!==n.data?.jobs||e[3]!==f||e[4]!==t.isPending||e[5]!==o){let r=(n.data?.jobs??[]).filter(q),i=r.some(K),s;e[7]===o?s=e[8]:(s=()=>o.mutate(`pruefen`),e[7]=o,e[8]=s);let c;e[9]!==s||e[10]!==o.isPending?(c=(0,k.jsx)(a,{variant:`outline`,onClick:s,disabled:o.isPending,children:`Nach Neuem suchen`}),e[9]=s,e[10]=o.isPending,e[11]=c):c=e[11];let l;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(l=()=>u({art:`alle`}),e[12]=l):l=e[12];let d;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,k.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Jeden Sonntag um 04:30 automatisch. Vorher wird gesichert, danach geprüft.`}),e[13]=d):d=e[13],p=(0,k.jsxs)(w,{titel:`Updates`,rechts:(0,k.jsxs)(`div`,{className:`flex flex-wrap gap-2.5`,children:[c,(0,k.jsx)(a,{onClick:l,disabled:i||f.size===0,children:`Alles jetzt aktualisieren`})]}),children:[d,t.isPending?(0,k.jsx)(_,{text:`Updates werden gelesen …`}):(0,k.jsx)(`div`,{className:`overflow-x-auto`,children:(0,k.jsxs)(`table`,{className:`w-full min-w-[680px] border-collapse`,children:[(0,k.jsx)(`thead`,{children:(0,k.jsxs)(`tr`,{className:`schild text-left text-xs text-text-3`,children:[(0,k.jsx)(`th`,{scope:`col`,className:`pb-2 font-semibold`,children:`Baustein`}),(0,k.jsx)(`th`,{scope:`col`,className:`pb-2 font-semibold`,children:`Läuft`}),(0,k.jsx)(`th`,{scope:`col`,className:`pb-2 font-semibold`,children:`Neu`}),(0,k.jsx)(`th`,{scope:`col`,className:`pb-2 font-semibold`,children:`Was sich ändert`}),(0,k.jsx)(`th`,{scope:`col`,className:`pb-2 text-right font-semibold`,children:(0,k.jsx)(`span`,{className:`sr-only`,children:`Aktion`})})]})}),(0,k.jsx)(`tbody`,{children:z.map(e=>(0,k.jsx)(B,{id:e.id,name:e.name,hatUpdate:f.has(e.id),laeuftGerade:i,onStart:()=>o.mutate(e.id)},e.id))})]})}),r.length>0&&(0,k.jsxs)(`div`,{className:`flex flex-col gap-2.5`,children:[(0,k.jsx)(`h3`,{className:`schild text-sm text-text-3`,children:`Laufende und letzte Aufträge`}),r.slice(-3).reverse().map(G)]})]}),e[2]=n.data?.jobs,e[3]=f,e[4]=t.isPending,e[5]=o,e[6]=p}else p=e[6];let h;e[14]!==r.data||e[15]!==r.isPending?(h=(0,k.jsx)(w,{titel:`Verlauf`,children:r.data?.laeufe.length?(0,k.jsx)(`ol`,{className:`m-0 flex list-none flex-col p-0`,children:r.data.laeufe.map(W)}):(0,k.jsx)(`p`,{className:`text-[15px] text-text-2`,children:r.isPending?`Wird gelesen …`:`Noch keine Update-Läufe aufgezeichnet.`})}),e[14]=r.data,e[15]=r.isPending,e[16]=h):h=e[16];let x;e[17]===s?x=e[18]:(x=()=>s.mutate(void 0),e[17]=s,e[18]=x);let S;e[19]!==s.isPending||e[20]!==x?(S=(0,k.jsx)(a,{variant:`outline`,size:`sm`,onClick:x,disabled:s.isPending,children:`Jetzt sichern`}),e[19]=s.isPending,e[20]=x,e[21]=S):S=e[21];let C;e[22]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,k.jsx)(`p`,{className:`-mt-2 text-[15px] text-text-2`,children:`Täglich um 03:35, mit Kopie auf einem zweiten Gerät.`}),e[22]=C):C=e[22];let A;if(e[23]!==i.data?.available||e[24]!==i.data?.backups){let t;e[26]===i.data?.available?t=e[27]:(t=e=>(0,k.jsxs)(`li`,{className:`flex items-center justify-between gap-3 border-t border-linie py-2.5`,children:[(0,k.jsx)(`span`,{className:`ziffern text-sm`,children:H(e)}),(0,k.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,k.jsxs)(`span`,{className:`ziffern text-xs text-text-3`,children:[e.size_mb.toLocaleString(`de-DE`),` MB`]}),(0,k.jsx)(a,{variant:`ghost`,size:`sm`,disabled:!i.data?.available,onClick:()=>u({art:`zurueck`,datei:e.file,zeit:H(e)}),children:`Zurückspielen`})]})]},e.file),e[26]=i.data?.available,e[27]=t),A=(i.data?.backups??[]).slice(0,5).map(t),e[23]=i.data?.available,e[24]=i.data?.backups,e[25]=A}else A=e[25];let j;e[28]===A?j=e[29]:(j=(0,k.jsx)(`ul`,{className:`m-0 flex list-none flex-col p-0`,children:A}),e[28]=A,e[29]=j);let M;e[30]!==S||e[31]!==j?(M=(0,k.jsxs)(w,{titel:`Sicherungen`,rechts:S,children:[C,j]}),e[30]=S,e[31]=j,e[32]=M):M=e[32];let N;e[33]!==h||e[34]!==M?(N=(0,k.jsxs)(`div`,{className:`grid gap-5 md:gap-6 lg:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[h,M]}),e[33]=h,e[34]=M,e[35]=N):N=e[35];let P=l?.art===`alle`,F;e[36]===Symbol.for(`react.memo_cache_sentinel`)?(F=()=>u(null),e[36]=F):F=e[36];let I;e[37]===o?I=e[38]:(I=()=>{o.mutate(`alle`),u(null)},e[37]=o,e[38]=I);let L;e[39]!==P||e[40]!==I?(L=(0,k.jsx)(R,{offen:P,titel:`Alles jetzt aktualisieren?`,text:`Betriebssystem, Motor, llama-swap und Hermes werden nacheinander aktualisiert. Vorher wird gesichert, danach geprüft. Lucy ist dabei ein paar Minuten nicht erreichbar.`,knopf:`Aktualisieren`,onNein:F,onJa:I}),e[39]=P,e[40]=I,e[41]=L):L=e[41];let V=l?.art===`zurueck`,U=`Die Einstellungen von Hermes und llama-swap werden auf den Stand von ${l?.art===`zurueck`?l.zeit:``} gesetzt. Vorher wird der jetzige Stand gesichert. Die Dienste starten danach neu.`,Y;e[42]===Symbol.for(`react.memo_cache_sentinel`)?(Y=()=>u(null),e[42]=Y):Y=e[42];let X;e[43]!==l||e[44]!==c?(X=()=>{l?.art===`zurueck`&&c.mutate(l.datei),u(null)},e[43]=l,e[44]=c,e[45]=X):X=e[45];let Z;e[46]!==V||e[47]!==U||e[48]!==X?(Z=(0,k.jsx)(R,{offen:V,gefahr:!0,titel:`Sicherung zurückspielen?`,text:U,knopf:`Zurückspielen`,onNein:Y,onJa:X}),e[46]=V,e[47]=U,e[48]=X,e[49]=Z):Z=e[49];let Q;return e[50]!==p||e[51]!==L||e[52]!==Z||e[53]!==N?(Q=(0,k.jsxs)(k.Fragment,{children:[p,N,L,Z]}),e[50]=p,e[51]=L,e[52]=Z,e[53]=N,e[54]=Q):Q=e[54],Q}function W(e){let t=e.status===`completed`,n=t?`gruen`:e.status===`failed`?`rot`:`cyan`;return(0,k.jsxs)(`li`,{className:`grid grid-cols-[112px_minmax(0,1fr)_auto] items-start gap-3 border-t border-linie py-3`,children:[(0,k.jsx)(`span`,{className:`ziffern text-sm text-text-3`,children:e.start?S(e.start):`–`}),(0,k.jsxs)(`span`,{className:`min-w-0 text-[15px]`,children:[e.job,e.fehler&&(0,k.jsx)(`span`,{className:`block text-sm text-rot-text`,children:e.fehler})]}),(0,k.jsx)(x,{art:n,children:t?`Durchgelaufen`:e.status===`failed`?`Fehlgeschlagen`:`Läuft`})]},`${e.start}-${e.job}`)}function G(e){return(0,k.jsx)(V,{job:e},e.id)}function K(e){return e.state===`running`||e.state===`queued`}function q(e){return e.group===`maintenance`}function J(e){return e.id}export{U as UpdatesSeite}; \ No newline at end of file diff --git a/frontend/dist/assets/WissenView-BoYalgKN.js b/frontend/dist/assets/WissenView-BoYalgKN.js deleted file mode 100644 index 342cf81..0000000 --- a/frontend/dist/assets/WissenView-BoYalgKN.js +++ /dev/null @@ -1,52 +0,0 @@ -var to=Object.defineProperty;var eo=(e,n,r)=>n in e?to(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r;var Bn=(e,n,r)=>eo(e,typeof n!="symbol"?n+"":n,r);import{c as no,r as W,al as ro,am as io,j as $,an as oo,z as ao,A as so,ao as uo,n as lo,b as Ae,L as Ke,a1 as co,ap as fo}from"./index-DMY9lUCb.js";import{i as Ft,c as Xn,a as Yn,b as ho,o as po,m as Zn,d as Kn}from"./string-DoZi9Vij.js";import{R as go}from"./refresh-cw-hAcZthO8.js";import{S as yo}from"./search-D_8DnBvS.js";import{F as _o}from"./file-text-BSQuFPZM.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const vo=no("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);function mo(e,n){let r=0;for(let i of e)(i=+i)&&(r+=i);return r}var Qn=180/Math.PI,fn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Yr(e,n,r,i,o,a){var s,u,c;return(s=Math.sqrt(e*e+n*n))&&(e/=s,n/=s),(c=e*r+n*i)&&(r-=e*c,i-=n*c),(u=Math.sqrt(r*r+i*i))&&(r/=u,i/=u,c/=u),e*i180?f+=360:f-l>180&&(l+=360),d.push({i:h.push(o(h)+"rotate(",null,i)-2,x:Ft(l,f)})):f&&h.push(o(h)+"rotate("+f+i)}function u(l,f,h,d){l!==f?d.push({i:h.push(o(h)+"skewX(",null,i)-2,x:Ft(l,f)}):f&&h.push(o(h)+"skewX("+f+i)}function c(l,f,h,d,p,y){if(l!==h||f!==d){var m=p.push(o(p)+"scale(",null,",",null,")");y.push({i:m-4,x:Ft(l,h)},{i:m-2,x:Ft(f,d)})}else(h!==1||d!==1)&&p.push(o(p)+"scale("+h+","+d+")")}return function(l,f){var h=[],d=[];return l=e(l),f=e(f),a(l.translateX,l.translateY,f.translateX,f.translateY,h,d),s(l.rotate,f.rotate,h,d),u(l.skewX,f.skewX,h,d),c(l.scaleX,l.scaleY,f.scaleX,f.scaleY,h,d),l=f=null,function(p){for(var y=-1,m=d.length,v;++ye.length)&&(n=e.length);for(var r=0,i=new Array(n);ra,methodNames:i=[],initPropNames:o=[]}={}){return W.forwardRef((a,s)=>{const u=W.useRef(),c=W.useMemo(()=>{const h=Object.fromEntries(o.filter(d=>a.hasOwnProperty(d)).map(d=>[d,a[d]]));return e(h)},[]);er(()=>{c(r(u.current))},W.useLayoutEffect),er(()=>c._destructor instanceof Function?c._destructor:void 0);const l=W.useCallback((h,...d)=>c[h]instanceof Function?c[h](...d):void 0,[c]),f=W.useRef({});return Object.keys($o(a,[...i,...o])).filter(h=>f.current[h]!==a[h]).forEach(h=>l(h,a[h])),f.current=a,W.useImperativeHandle(s,()=>Object.fromEntries(i.map(h=>[h,(...d)=>l(h,...d)])),[l]),ro.createElement(n,{ref:u})})}function er(e,n=W.useEffect){const r=W.useRef(),i=W.useRef(!1),o=W.useRef(!1),[a,s]=W.useState(0);i.current&&(o.current=!0),n(()=>(i.current||(r.current=e(),i.current=!0),s(u=>u+1),()=>{o.current&&(r.current&&r.current(),r.current=void 0,i.current=!1,o.current=!1)}),[])}var dn="http://www.w3.org/1999/xhtml";const nr={svg:"http://www.w3.org/2000/svg",xhtml:dn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function We(e){var n=e+="",r=n.indexOf(":");return r>=0&&(n=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),nr.hasOwnProperty(n)?{space:nr[n],local:e}:e}function Fo(e){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===dn&&n.documentElement.namespaceURI===dn?n.createElement(e):n.createElementNS(r,e)}}function Uo(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Qr(e){var n=We(e);return(n.local?Uo:Fo)(n)}function Ho(){}function Tn(e){return e==null?Ho:function(){return this.querySelector(e)}}function qo(e){typeof e!="function"&&(e=Tn(e));for(var n=this._groups,r=n.length,i=new Array(r),o=0;o=M&&(M=k+1);!(_=v[M])&&++M=0;)(s=i[o])&&(a&&s.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(s,a),a=s);return this}function pa(e){e||(e=ga);function n(h,d){return h&&d?e(h.__data__,d.__data__):!h-!d}for(var r=this._groups,i=r.length,o=new Array(i),a=0;an?1:e>=n?0:NaN}function ya(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function _a(){return Array.from(this)}function va(){for(var e=this._groups,n=0,r=e.length;n1?this.each((n==null?Pa:typeof n=="function"?Ea:Oa)(e,n,r??"")):Bt(this.node(),e)}function Bt(e,n){return e.style.getPropertyValue(n)||ri(e).getComputedStyle(e,null).getPropertyValue(n)}function Na(e){return function(){delete this[e]}}function Ra(e,n){return function(){this[e]=n}}function ja(e,n){return function(){var r=n.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function Da(e,n){return arguments.length>1?this.each((n==null?Na:typeof n=="function"?ja:Ra)(e,n)):this.node()[e]}function ii(e){return e.trim().split(/^|\s+/)}function Pn(e){return e.classList||new oi(e)}function oi(e){this._node=e,this._names=ii(e.getAttribute("class")||"")}oi.prototype={add:function(e){var n=this._names.indexOf(e);n<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var n=this._names.indexOf(e);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function ai(e,n){for(var r=Pn(e),i=-1,o=n.length;++i=0&&(r=n.slice(i+1),n=n.slice(0,i)),{type:n,name:r}})}function cs(e){return function(){var n=this.__on;if(n){for(var r=0,i=-1,o=n.length,a;r{}};function ve(){for(var e=0,n=arguments.length,r={},i;e=0&&(i=r.slice(o+1),r=r.slice(0,o)),r&&!n.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:i}})}Se.prototype=ve.prototype={constructor:Se,on:function(e,n){var r=this._,i=xs(e+"",r),o,a=-1,s=i.length;if(arguments.length<2){for(;++a0)for(var r=new Array(o),i=0,o,a;i()=>e;function pn(e,{sourceEvent:n,subject:r,target:i,identifier:o,active:a,x:s,y:u,dx:c,dy:l,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:a,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:f}})}pn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function ks(e){return!e.ctrlKey&&!e.button}function Cs(){return this.parentNode}function As(e,n){return n??{x:e.x,y:e.y}}function Ss(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ms(){var e=ks,n=Cs,r=As,i=Ss,o={},a=ve("start","drag","end"),s=0,u,c,l,f,h=0;function d(b){b.on("mousedown.drag",p).filter(i).on("touchstart.drag",v).on("touchmove.drag",g,ws).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(b,_){if(!(f||!e.call(this,b,_))){var w=M(this,n.call(this,b,_),b,_,"mouse");w&&(pt(b.view).on("mousemove.drag",y,pe).on("mouseup.drag",m,pe),ci(b.view),Qe(b),l=!1,u=b.clientX,c=b.clientY,w("start",b))}}function y(b){if(Vt(b),!l){var _=b.clientX-u,w=b.clientY-c;l=_*_+w*w>h}o.mouse("drag",b)}function m(b){pt(b.view).on("mousemove.drag mouseup.drag",null),fi(b.view,l),Vt(b),o.mouse("end",b)}function v(b,_){if(e.call(this,b,_)){var w=b.changedTouches,A=n.call(this,b,_),T=w.length,R,P;for(R=0;R=0&&e._call.call(void 0,n),e=e._next;--Xt}function ir(){Ht=(Re=ge.now())+Ge,Xt=ae=0;try{Ps()}finally{Xt=0,Es(),Ht=0}}function Os(){var e=ge.now(),n=e-Re;n>hi&&(Ge-=n,Re=e)}function Es(){for(var e,n=Ne,r,i=1/0;n;)n._call?(i>n._time&&(i=n._time),e=n,n=n._next):(r=n._next,n._next=null,n=e?e._next=r:Ne=r);se=e,gn(i)}function gn(e){if(!Xt){ae&&(ae=clearTimeout(ae));var n=e-Ht;n>24?(e<1/0&&(ae=setTimeout(ir,e-ge.now()-Ge)),Qt&&(Qt=clearInterval(Qt))):(Qt||(Re=ge.now(),Qt=setInterval(Os,hi)),Xt=1,di(ir))}}function or(e,n,r){var i=new je;return n=n==null?0:+n,i.restart(o=>{i.stop(),e(o+n)},n,r),i}var zs=ve("start","end","cancel","interrupt"),Ns=[],pi=0,ar=1,yn=2,Me=3,sr=4,_n=5,Te=6;function Ve(e,n,r,i,o,a){var s=e.__transition;if(!s)e.__transition={};else if(r in s)return;Rs(e,r,{name:n,index:i,group:o,on:zs,tween:Ns,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:pi})}function zn(e,n){var r=vt(e,n);if(r.state>pi)throw new Error("too late; already scheduled");return r}function Ct(e,n){var r=vt(e,n);if(r.state>Me)throw new Error("too late; already running");return r}function vt(e,n){var r=e.__transition;if(!r||!(r=r[n]))throw new Error("transition not found");return r}function Rs(e,n,r){var i=e.__transition,o;i[n]=r,r.timer=En(a,0,r.time);function a(l){r.state=ar,r.timer.restart(s,r.delay,r.time),r.delay<=l&&s(l-r.delay)}function s(l){var f,h,d,p;if(r.state!==ar)return c();for(f in i)if(p=i[f],p.name===r.name){if(p.state===Me)return or(s);p.state===sr?(p.state=Te,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete i[f]):+fyn&&i.state<_n,i.state=Te,i.timer.stop(),i.on.call(o?"interrupt":"cancel",e,e.__data__,i.index,i.group),delete r[s]}a&&delete e.__transition}}function js(e){return this.each(function(){Pe(this,e)})}function Ds(e,n){var r,i;return function(){var o=Ct(this,e),a=o.tween;if(a!==r){i=r=a;for(var s=0,u=i.length;s=0&&(n=n.slice(0,r)),!n||n==="start"})}function cu(e,n,r){var i,o,a=lu(n)?zn:Ct;return function(){var s=a(this,e),u=s.on;u!==i&&(o=(i=u).copy()).on(n,r),s.on=o}}function fu(e,n){var r=this._id;return arguments.length<2?vt(this.node(),r).on.on(e):this.each(cu(r,e,n))}function hu(e){return function(){var n=this.parentNode;for(var r in this.__transition)if(+r!==e)return;n&&n.removeChild(this)}}function du(){return this.on("end.remove",hu(this._id))}function pu(e){var n=this._name,r=this._id;typeof e!="function"&&(e=Tn(e));for(var i=this._groups,o=i.length,a=new Array(o),s=0;s()=>e;function Lu(e,{sourceEvent:n,target:r,transform:i,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function Et(e,n,r){this.k=e,this.x=n,this.y=r}Et.prototype={constructor:Et,scale:function(e){return e===1?this:new Et(this.k*e,this.x,this.y)},translate:function(e,n){return e===0&n===0?this:new Et(this.k,this.x+this.k*e,this.y+this.k*n)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Rn=new Et(1,0,0);mt.prototype=Et.prototype;function mt(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Rn;return e.__zoom}function Je(e){e.stopImmediatePropagation()}function Jt(e){e.preventDefault(),e.stopImmediatePropagation()}function Fu(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Uu(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function ur(){return this.__zoom||Rn}function Hu(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function qu(){return navigator.maxTouchPoints||"ontouchstart"in this}function Wu(e,n,r){var i=e.invertX(n[0][0])-r[0][0],o=e.invertX(n[1][0])-r[1][0],a=e.invertY(n[0][1])-r[0][1],s=e.invertY(n[1][1])-r[1][1];return e.translate(o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o),s>a?(a+s)/2:Math.min(0,a)||Math.max(0,s))}function Gu(){var e=Fu,n=Uu,r=Wu,i=Hu,o=qu,a=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],u=250,c=Mo,l=ve("start","zoom","end"),f,h,d,p=500,y=150,m=0,v=10;function g(S){S.property("__zoom",ur).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",R).on("dblclick.zoom",P).filter(o).on("touchstart.zoom",N).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",U).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(S,j,E,C){var O=S.selection?S.selection():S;O.property("__zoom",ur),S!==O?_(S,j,E,C):O.interrupt().each(function(){w(this,arguments).event(C).start().zoom(null,typeof j=="function"?j.apply(this,arguments):j).end()})},g.scaleBy=function(S,j,E,C){g.scaleTo(S,function(){var O=this.__zoom.k,I=typeof j=="function"?j.apply(this,arguments):j;return O*I},E,C)},g.scaleTo=function(S,j,E,C){g.transform(S,function(){var O=n.apply(this,arguments),I=this.__zoom,L=E==null?b(O):typeof E=="function"?E.apply(this,arguments):E,H=I.invert(L),F=typeof j=="function"?j.apply(this,arguments):j;return r(M(k(I,F),L,H),O,s)},E,C)},g.translateBy=function(S,j,E,C){g.transform(S,function(){return r(this.__zoom.translate(typeof j=="function"?j.apply(this,arguments):j,typeof E=="function"?E.apply(this,arguments):E),n.apply(this,arguments),s)},null,C)},g.translateTo=function(S,j,E,C,O){g.transform(S,function(){var I=n.apply(this,arguments),L=this.__zoom,H=C==null?b(I):typeof C=="function"?C.apply(this,arguments):C;return r(Rn.translate(H[0],H[1]).scale(L.k).translate(typeof j=="function"?-j.apply(this,arguments):-j,typeof E=="function"?-E.apply(this,arguments):-E),I,s)},C,O)};function k(S,j){return j=Math.max(a[0],Math.min(a[1],j)),j===S.k?S:new Et(j,S.x,S.y)}function M(S,j,E){var C=j[0]-E[0]*S.k,O=j[1]-E[1]*S.k;return C===S.x&&O===S.y?S:new Et(S.k,C,O)}function b(S){return[(+S[0][0]+ +S[1][0])/2,(+S[0][1]+ +S[1][1])/2]}function _(S,j,E,C){S.on("start.zoom",function(){w(this,arguments).event(C).start()}).on("interrupt.zoom end.zoom",function(){w(this,arguments).event(C).end()}).tween("zoom",function(){var O=this,I=arguments,L=w(O,I).event(C),H=n.apply(O,I),F=E==null?b(H):typeof E=="function"?E.apply(O,I):E,G=Math.max(H[1][0]-H[0][0],H[1][1]-H[0][1]),V=O.__zoom,X=typeof j=="function"?j.apply(O,I):j,tt=c(V.invert(F).concat(G/V.k),X.invert(F).concat(G/X.k));return function(Z){if(Z===1)Z=X;else{var st=tt(Z),et=G/st[2];Z=new Et(et,F[0]-st[0]*et,F[1]-st[1]*et)}L.zoom(null,Z)}})}function w(S,j,E){return!E&&S.__zooming||new A(S,j)}function A(S,j){this.that=S,this.args=j,this.active=0,this.sourceEvent=null,this.extent=n.apply(S,j),this.taps=0}A.prototype={event:function(S){return S&&(this.sourceEvent=S),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(S,j){return this.mouse&&S!=="mouse"&&(this.mouse[1]=j.invert(this.mouse[0])),this.touch0&&S!=="touch"&&(this.touch0[1]=j.invert(this.touch0[0])),this.touch1&&S!=="touch"&&(this.touch1[1]=j.invert(this.touch1[0])),this.that.__zoom=j,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(S){var j=pt(this.that).datum();l.call(S,this.that,new Lu(S,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:l}),j)}};function T(S,...j){if(!e.apply(this,arguments))return;var E=w(this,j).event(S),C=this.__zoom,O=Math.max(a[0],Math.min(a[1],C.k*Math.pow(2,i.apply(this,arguments)))),I=xt(S);if(E.wheel)(E.mouse[0][0]!==I[0]||E.mouse[0][1]!==I[1])&&(E.mouse[1]=C.invert(E.mouse[0]=I)),clearTimeout(E.wheel);else{if(C.k===O)return;E.mouse=[I,C.invert(I)],Pe(this),E.start()}Jt(S),E.wheel=setTimeout(L,y),E.zoom("mouse",r(M(k(C,O),E.mouse[0],E.mouse[1]),E.extent,s));function L(){E.wheel=null,E.end()}}function R(S,...j){if(d||!e.apply(this,arguments))return;var E=S.currentTarget,C=w(this,j,!0).event(S),O=pt(S.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",G,!0),I=xt(S,E),L=S.clientX,H=S.clientY;ci(S.view),Je(S),C.mouse=[I,this.__zoom.invert(I)],Pe(this),C.start();function F(V){if(Jt(V),!C.moved){var X=V.clientX-L,tt=V.clientY-H;C.moved=X*X+tt*tt>m}C.event(V).zoom("mouse",r(M(C.that.__zoom,C.mouse[0]=xt(V,E),C.mouse[1]),C.extent,s))}function G(V){O.on("mousemove.zoom mouseup.zoom",null),fi(V.view,C.moved),Jt(V),C.event(V).end()}}function P(S,...j){if(e.apply(this,arguments)){var E=this.__zoom,C=xt(S.changedTouches?S.changedTouches[0]:S,this),O=E.invert(C),I=E.k*(S.shiftKey?.5:2),L=r(M(k(E,I),C,O),n.apply(this,j),s);Jt(S),u>0?pt(this).transition().duration(u).call(_,L,C,S):pt(this).call(g.transform,L,C,S)}}function N(S,...j){if(e.apply(this,arguments)){var E=S.touches,C=E.length,O=w(this,j,S.changedTouches.length===C).event(S),I,L,H,F;for(Je(S),L=0;L=n||A<0||h&&T>=a}function g(){var w=tn();if(v(w))return k(w);u=setTimeout(g,m(w))}function k(w){return u=void 0,d&&i?p(w):(i=o=void 0,s)}function M(){u!==void 0&&clearTimeout(u),l=0,i=c=o=u=void 0}function b(){return u===void 0?s:k(tn())}function _(){var w=tn(),A=v(w);if(i=arguments,o=this,c=w,A){if(u===void 0)return y(c);if(h)return clearTimeout(u),u=setTimeout(g,n),p(c)}return u===void 0&&(u=setTimeout(g,n)),s}return _.cancel=M,_.flush=b,_}var _l="Expected a function";function vl(e,n,r){var i=!0,o=!0;if(typeof e!="function")throw new TypeError(_l);return Ie(r)&&(i="leading"in r?!!r.leading:i,o="trailing"in r?!!r.trailing:o),xi(e,n,{leading:i,maxWait:n,trailing:o})}var Ut=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var n=1.70158;return e===1?1:e*e*((n+1)*e-n)},Out:function(e){var n=1.70158;return e===0?0:--e*e*((n+1)*e+n)+1},InOut:function(e){var n=2.5949095;return(e*=2)<1?.5*(e*e*((n+1)*e-n)):.5*((e-=2)*e*((n+1)*e+n)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Ut.Bounce.Out(1-e)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(e){return e<.5?Ut.Bounce.In(e*2)*.5:Ut.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e1e4?1e4:e,{In:function(n){return Math.pow(n,e)},Out:function(n){return 1-Math.pow(1-n,e)},InOut:function(n){return n<.5?Math.pow(n*2,e)/2:(1-Math.pow(2-n*2,e))/2+.5}}}}),ue=function(){return performance.now()},bi=(function(){function e(){this._tweens={},this._tweensAddedDuringUpdate={}}return e.prototype.getAll=function(){var n=this;return Object.keys(this._tweens).map(function(r){return n._tweens[r]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(n){this._tweens[n.getId()]=n,this._tweensAddedDuringUpdate[n.getId()]=n},e.prototype.remove=function(n){delete this._tweens[n.getId()],delete this._tweensAddedDuringUpdate[n.getId()]},e.prototype.update=function(n,r){n===void 0&&(n=ue()),r===void 0&&(r=!1);var i=Object.keys(this._tweens);if(i.length===0)return!1;for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o1?a(e[r],e[r-1],r-i):a(e[o],e[o+1>r?r:o+1],i-o)},Utils:{Linear:function(e,n,r){return(n-e)*r+e}}},wi=(function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e})(),mn=new bi,hr=(function(){function e(n,r){r===void 0&&(r=mn),this._object=n,this._group=r,this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Ut.Linear.None,this._interpolationFunction=vn.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=wi.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(n,r){if(r===void 0&&(r=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=n,this._propertiesAreSetUp=!1,this._duration=r<0?0:r,this},e.prototype.duration=function(n){return n===void 0&&(n=1e3),this._duration=n<0?0:n,this},e.prototype.dynamic=function(n){return n===void 0&&(n=!1),this._isDynamic=n,this},e.prototype.start=function(n,r){if(n===void 0&&(n=ue()),r===void 0&&(r=!1),this._isPlaying)return this;if(this._group&&this._group.add(this),this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=n,this._startTime+=this._delayTime,!this._propertiesAreSetUp||r){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var a in this._valuesEnd)o[a]=this._valuesEnd[a];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,r)}return this},e.prototype.startFromCurrentValues=function(n){return this.start(n,!0)},e.prototype._setupProperties=function(n,r,i,o,a){for(var s in i){var u=n[s],c=Array.isArray(u),l=c?"array":typeof u,f=!c&&Array.isArray(i[s]);if(!(l==="undefined"||l==="function")){if(f){var h=i[s];if(h.length===0)continue;for(var d=[u],p=0,y=h.length;p"u"||a)&&(r[s]=u),c||(r[s]*=1),f?o[s]=i[s].slice().reverse():o[s]=r[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._group&&this._group.remove(this),this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(1/0),this},e.prototype.pause=function(n){return n===void 0&&(n=ue()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=n,this._group&&this._group.remove(this),this)},e.prototype.resume=function(n){return n===void 0&&(n=ue()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=n-this._pauseStart,this._pauseStart=0,this._group&&this._group.add(this),this)},e.prototype.stopChainedTweens=function(){for(var n=0,r=this._chainedTweens.length;ns)return!1;r&&this.start(n,!0)}if(this._goToEnd=!1,nl)return 1;var v=Math.trunc(u/c),g=u-v*c,k=Math.min(g/i._duration,1);return k===0&&u===i._duration?1:k},h=f(),d=this._easingFunction(h);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,d),this._onUpdateCallback&&this._onUpdateCallback(this._object,h),this._duration===0||u>=this._duration)if(this._repeat>0){var p=Math.min(Math.trunc((u-this._duration)/c)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=p);for(a in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[a]=="string"&&(this._valuesStartRepeat[a]=this._valuesStartRepeat[a]+parseFloat(this._valuesEnd[a])),this._yoyo&&this._swapEndStartRepeatValues(a),this._valuesStart[a]=this._valuesStartRepeat[a];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=c*p,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var y=0,m=this._chainedTweens.length;ye.length)&&(n=e.length);for(var r=0,i=Array(n);r=0,a=!r&&o&&(n==="hex"||n==="hex6"||n==="hex3"||n==="hex4"||n==="hex8"||n==="name");return a?n==="name"&&this._a===0?this.toName():this.toRgbString():(n==="rgb"&&(i=this.toRgbString()),n==="prgb"&&(i=this.toPercentageRgbString()),(n==="hex"||n==="hex6")&&(i=this.toHexString()),n==="hex3"&&(i=this.toHexString(!0)),n==="hex4"&&(i=this.toHex8String(!0)),n==="hex8"&&(i=this.toHex8String()),n==="name"&&(i=this.toName()),n==="hsl"&&(i=this.toHslString()),n==="hsv"&&(i=this.toHsvString()),i||this.toHexString())},clone:function(){return q(this.toString())},_applyModification:function(n,r){var i=n.apply(null,[this].concat([].slice.call(r)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(Il,arguments)},brighten:function(){return this._applyModification($l,arguments)},darken:function(){return this._applyModification(Ll,arguments)},desaturate:function(){return this._applyModification(Rl,arguments)},saturate:function(){return this._applyModification(jl,arguments)},greyscale:function(){return this._applyModification(Dl,arguments)},spin:function(){return this._applyModification(Fl,arguments)},_applyCombination:function(n,r){return n.apply(null,[this].concat([].slice.call(r)))},analogous:function(){return this._applyCombination(ql,arguments)},complement:function(){return this._applyCombination(Ul,arguments)},monochromatic:function(){return this._applyCombination(Wl,arguments)},splitcomplement:function(){return this._applyCombination(Hl,arguments)},triad:function(){return this._applyCombination(vr,[3])},tetrad:function(){return this._applyCombination(vr,[4])}};q.fromRatio=function(e,n){if($e(e)=="object"){var r={};for(var i in e)e.hasOwnProperty(i)&&(i==="a"?r[i]=e[i]:r[i]=le(e[i]));e=r}return q(e,n)};function Pl(e){var n={r:0,g:0,b:0},r=1,i=null,o=null,a=null,s=!1,u=!1;return typeof e=="string"&&(e=Yl(e)),$e(e)=="object"&&(Mt(e.r)&&Mt(e.g)&&Mt(e.b)?(n=Ol(e.r,e.g,e.b),s=!0,u=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Mt(e.h)&&Mt(e.s)&&Mt(e.v)?(i=le(e.s),o=le(e.v),n=zl(e.h,i,o),s=!0,u="hsv"):Mt(e.h)&&Mt(e.s)&&Mt(e.l)&&(i=le(e.s),a=le(e.l),n=El(e.h,i,a),s=!0,u="hsl"),e.hasOwnProperty("a")&&(r=e.a)),r=ki(r),{ok:s,format:e.format||u,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:r}}function Ol(e,n,r){return{r:Q(e,255)*255,g:Q(n,255)*255,b:Q(r,255)*255}}function pr(e,n,r){e=Q(e,255),n=Q(n,255),r=Q(r,255);var i=Math.max(e,n,r),o=Math.min(e,n,r),a,s,u=(i+o)/2;if(i==o)a=s=0;else{var c=i-o;switch(s=u>.5?c/(2-i-o):c/(i+o),i){case e:a=(n-r)/c+(n1&&(h-=1),h<1/6?l+(f-l)*6*h:h<1/2?f:h<2/3?l+(f-l)*(2/3-h)*6:l}if(n===0)i=o=a=r;else{var u=r<.5?r*(1+n):r+n-r*n,c=2*r-u;i=s(c,u,e+1/3),o=s(c,u,e),a=s(c,u,e-1/3)}return{r:i*255,g:o*255,b:a*255}}function gr(e,n,r){e=Q(e,255),n=Q(n,255),r=Q(r,255);var i=Math.max(e,n,r),o=Math.min(e,n,r),a,s,u=i,c=i-o;if(s=i===0?0:c/i,i==o)a=0;else{switch(i){case e:a=(n-r)/c+(n>1)+720)%360;--n;)i.h=(i.h+o)%360,a.push(q(i));return a}function Wl(e,n){n=n||6;for(var r=q(e).toHsv(),i=r.h,o=r.s,a=r.v,s=[],u=1/n;n--;)s.push(q({h:i,s:o,v:a})),a=(a+u)%1;return s}q.mix=function(e,n,r){r=r===0?0:r||50;var i=q(e).toRgb(),o=q(n).toRgb(),a=r/100,s={r:(o.r-i.r)*a+i.r,g:(o.g-i.g)*a+i.g,b:(o.b-i.b)*a+i.b,a:(o.a-i.a)*a+i.a};return q(s)};q.readability=function(e,n){var r=q(e),i=q(n);return(Math.max(r.getLuminance(),i.getLuminance())+.05)/(Math.min(r.getLuminance(),i.getLuminance())+.05)};q.isReadable=function(e,n,r){var i=q.readability(e,n),o,a;switch(a=!1,o=Zl(r),o.level+o.size){case"AAsmall":case"AAAlarge":a=i>=4.5;break;case"AAlarge":a=i>=3;break;case"AAAsmall":a=i>=7;break}return a};q.mostReadable=function(e,n,r){var i=null,o=0,a,s,u,c;r=r||{},s=r.includeFallbackColors,u=r.level,c=r.size;for(var l=0;lo&&(o=a,i=q(n[l]));return q.isReadable(e,i,{level:u,size:c})||!s?i:(r.includeFallbackColors=!1,q.mostReadable(e,["#fff","#000"],r))};var xn=q.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},Gl=q.hexNames=Vl(xn);function Vl(e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[e[r]]=r);return n}function ki(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Q(e,n){Bl(e)&&(e="100%");var r=Xl(e);return e=Math.min(n,Math.max(0,parseFloat(e))),r&&(e=parseInt(e*n,10)/100),Math.abs(e-n)<1e-6?1:e%n/parseFloat(n)}function Be(e){return Math.min(1,Math.max(0,e))}function ct(e){return parseInt(e,16)}function Bl(e){return typeof e=="string"&&e.indexOf(".")!=-1&&parseFloat(e)===1}function Xl(e){return typeof e=="string"&&e.indexOf("%")!=-1}function _t(e){return e.length==1?"0"+e:""+e}function le(e){return e<=1&&(e=e*100+"%"),e}function Ci(e){return Math.round(parseFloat(e)*255).toString(16)}function mr(e){return ct(e)/255}var yt=(function(){var e="[-\\+]?\\d+%?",n="[-\\+]?\\d*\\.\\d+%?",r="(?:"+n+")|(?:"+e+")",i="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?",o="[\\s|\\(]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")[,|\\s]+("+r+")\\s*\\)?";return{CSS_UNIT:new RegExp(r),rgb:new RegExp("rgb"+i),rgba:new RegExp("rgba"+o),hsl:new RegExp("hsl"+i),hsla:new RegExp("hsla"+o),hsv:new RegExp("hsv"+i),hsva:new RegExp("hsva"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}})();function Mt(e){return!!yt.CSS_UNIT.exec(e)}function Yl(e){e=e.replace(Ml,"").replace(Tl,"").toLowerCase();var n=!1;if(xn[e])e=xn[e],n=!0;else if(e=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var r;return(r=yt.rgb.exec(e))?{r:r[1],g:r[2],b:r[3]}:(r=yt.rgba.exec(e))?{r:r[1],g:r[2],b:r[3],a:r[4]}:(r=yt.hsl.exec(e))?{h:r[1],s:r[2],l:r[3]}:(r=yt.hsla.exec(e))?{h:r[1],s:r[2],l:r[3],a:r[4]}:(r=yt.hsv.exec(e))?{h:r[1],s:r[2],v:r[3]}:(r=yt.hsva.exec(e))?{h:r[1],s:r[2],v:r[3],a:r[4]}:(r=yt.hex8.exec(e))?{r:ct(r[1]),g:ct(r[2]),b:ct(r[3]),a:mr(r[4]),format:n?"name":"hex8"}:(r=yt.hex6.exec(e))?{r:ct(r[1]),g:ct(r[2]),b:ct(r[3]),format:n?"name":"hex"}:(r=yt.hex4.exec(e))?{r:ct(r[1]+""+r[1]),g:ct(r[2]+""+r[2]),b:ct(r[3]+""+r[3]),a:mr(r[4]+""+r[4]),format:n?"name":"hex8"}:(r=yt.hex3.exec(e))?{r:ct(r[1]+""+r[1]),g:ct(r[2]+""+r[2]),b:ct(r[3]+""+r[3]),format:n?"name":"hex"}:!1}function Zl(e){var n,r;return e=e||{level:"AA",size:"small"},n=(e.level||"AA").toUpperCase(),r=(e.size||"small").toLowerCase(),n!=="AA"&&n!=="AAA"&&(n="AA"),r!=="small"&&r!=="large"&&(r="small"),{level:n,size:r}}function bn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r0&&arguments[0]!==void 0?arguments[0]:6;Jl(this,e),xr(this,Lt,void 0),xr(this,Tt,void 0),br(Tt,this,n),this.reset()}return ec(e,[{key:"reset",value:function(){br(Lt,this,["__reserved for background__"])}},{key:"register",value:function(r){if(ht(Lt,this).length>=Math.pow(2,24-ht(Tt,this)))return null;var i=ht(Lt,this).length,o=wr(i,ht(Tt,this)),a=lc(i+(o<<24-ht(Tt,this)));return ht(Lt,this).push(r),a}},{key:"lookup",value:function(r){if(!r)return null;var i=typeof r=="string"?cc(r):Si.apply(void 0,ic(r));if(!i)return null;var o=i&Math.pow(2,24-ht(Tt,this))-1,a=i>>24-ht(Tt,this)&Math.pow(2,ht(Tt,this))-1;return wr(o,ht(Tt,this))!==a||o>=ht(Lt,this).length?null:ht(Lt,this)[o]}}])})(),me,J,Mi,Ti,$t,kr,Pi,Oi,en,Oe,ce,Ei,Dn,wn,kn,Le={},Fe=[],hc=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Xe=Array.isArray;function bt(e,n){for(var r in n)e[r]=n[r];return e}function In(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function dc(e,n,r){var i,o,a,s={};for(a in n)a=="key"?i=n[a]:a=="ref"?o=n[a]:s[a]=n[a];if(arguments.length>2&&(s.children=arguments.length>3?me.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)s[a]===void 0&&(s[a]=e.defaultProps[a]);return fe(e,s,i,o,null)}function fe(e,n,r,i,o){var a={type:e,props:n,key:r,ref:i,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o??++Mi,__i:-1,__u:0};return o==null&&J.vnode!=null&&J.vnode(a),a}function Ye(e){return e.children}function Ee(e,n){this.props=e,this.context=n}function Yt(e,n){if(n==null)return e.__?Yt(e.__,e.__i+1):null;for(var r;nn&&$t.sort(Oi),e=$t.shift(),n=$t.length,pc(e)}finally{$t.length=Ue.__r=0}}function Ni(e,n,r,i,o,a,s,u,c,l,f){var h,d,p,y,m,v,g,k=i&&i.__k||Fe,M=n.length;for(c=gc(r,n,k,c,M),h=0;h0?s=e.__k[a]=fe(s.type,s.props,s.key,s.ref?s.ref:null,s.__v):e.__k[a]=s,c=a+d,s.__=e,s.__b=e.__b+1,u=null,(l=s.__i=yc(s,r,c,h))!=-1&&(h--,(u=r[l])&&(u.__u|=2)),u==null||u.__v==null?(l==-1&&(o>f?d--:oc?d--:d++,s.__u|=4))):e.__k[a]=null;if(h)for(a=0;a(f?1:0)){for(o=r-1,a=r+1;o>=0||a=0?o--:a++])!=null&&(2&l.__u)==0&&u==l.key&&c==l.type)return s}return-1}function Ar(e,n,r){n[0]=="-"?e.setProperty(n,r??""):e[n]=r==null?"":typeof r!="number"||hc.test(n)?r:r+"px"}function ke(e,n,r,i,o){var a,s;t:if(n=="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof i=="string"&&(e.style.cssText=i=""),i)for(n in i)r&&n in r||Ar(e.style,n,"");if(r)for(n in r)i&&r[n]==i[n]||Ar(e.style,n,r[n])}else if(n[0]=="o"&&n[1]=="n")a=n!=(n=n.replace(Ei,"$1")),s=n.toLowerCase(),n=s in e||n=="onFocusOut"||n=="onFocusIn"?s.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+a]=r,r?i?r[ce]=i[ce]:(r[ce]=Dn,e.addEventListener(n,a?kn:wn,a)):e.removeEventListener(n,a?kn:wn,a);else{if(o=="http://www.w3.org/2000/svg")n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(n!="width"&&n!="height"&&n!="href"&&n!="list"&&n!="form"&&n!="tabIndex"&&n!="download"&&n!="rowSpan"&&n!="colSpan"&&n!="role"&&n!="popover"&&n in e)try{e[n]=r??"";break t}catch{}typeof r=="function"||(r==null||r===!1&&n[4]!="-"?e.removeAttribute(n):e.setAttribute(n,n=="popover"&&r==1?"":r))}}function Sr(e){return function(n){if(this.l){var r=this.l[n.type+e];if(n[Oe]==null)n[Oe]=Dn++;else if(n[Oe]0?e:Xe(e)?e.map(Ii):e.constructor!==void 0?null:bt({},e)}function _c(e,n,r,i,o,a,s,u,c){var l,f,h,d,p,y,m,v=r.props||Le,g=n.props,k=n.type;if(k=="svg"?o="http://www.w3.org/2000/svg":k=="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),a!=null){for(l=0;l2&&(u.children=arguments.length>3?me.call(arguments,2):r),fe(e.type,u,i||e.key,o||e.ref,null)}me=Fe.slice,J={__e:function(e,n,r,i){for(var o,a,s;n=n.__;)if((o=n.__c)&&!o.__)try{if((a=o.constructor)&&a.getDerivedStateFromError!=null&&(o.setState(a.getDerivedStateFromError(e)),s=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,i||{}),s=o.__d),s)return o.__E=o}catch(u){e=u}throw e}},Mi=0,Ti=function(e){return e!=null&&e.constructor===void 0},Ee.prototype.setState=function(e,n){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=bt({},this.state),typeof e=="function"&&(e=e(bt({},r),this.props)),e&&bt(r,e),e!=null&&this.__v&&(n&&this._sb.push(n),Cr(this))},Ee.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Cr(this))},Ee.prototype.render=Ye,$t=[],Pi=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,Oi=function(e,n){return e.__v.__b-n.__v.__b},Ue.__r=0,en=Math.random().toString(8),Oe="__d"+en,ce="__a"+en,Ei=/(PointerCapture)$|Capture$/i,Dn=0,wn=Sr(!1),kn=Sr(!0);function Mr(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var zc=`.float-tooltip-kap { - position: absolute; - width: max-content; /* prevent shrinking near right edge */ - max-width: max(50%, 150px); - padding: 3px 5px; - border-radius: 3px; - font: 12px sans-serif; - color: #eee; - background: rgba(0,0,0,0.6); - pointer-events: none; -} -`;Ec(zc);var Nc=jn({props:{content:{default:!1},offsetX:{triggerUpdate:!1},offsetY:{triggerUpdate:!1}},init:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=i.style,a=o===void 0?{}:o,s=!!n&&He(n)==="object"&&!!n.node&&typeof n.node=="function",u=pt(s?n.node():n);u.style("position")==="static"&&u.style("position","relative"),r.tooltipEl=u.append("div").attr("class","float-tooltip-kap"),Object.entries(a).forEach(function(l){var f=Ac(l,2),h=f[0],d=f[1];return r.tooltipEl.style(h,d)}),r.tooltipEl.style("left","-10000px").style("display","none");var c="tooltip-".concat(Math.round(Math.random()*1e12));r.mouseInside=!1,u.on("mousemove.".concat(c),function(l){r.mouseInside=!0;var f=xt(l),h=u.node(),d=h.offsetWidth,p=h.offsetHeight,y=[r.offsetX===null||r.offsetX===void 0?"-".concat(f[0]/d*100,"%"):typeof r.offsetX=="number"?"calc(-50% + ".concat(r.offsetX,"px)"):r.offsetX,r.offsetY===null||r.offsetY===void 0?p>130&&p-f[1]<100?"calc(-100% - 6px)":"21px":typeof r.offsetY=="number"?r.offsetY<0?"calc(-100% - ".concat(Math.abs(r.offsetY),"px)"):"".concat(r.offsetY,"px"):r.offsetY];r.tooltipEl.style("left",f[0]+"px").style("top",f[1]+"px").style("transform","translate(".concat(y.join(","),")")),r.content&&r.tooltipEl.style("display","inline")}),u.on("mouseover.".concat(c),function(){r.mouseInside=!0,r.content&&r.tooltipEl.style("display","inline")}),u.on("mouseout.".concat(c),function(){r.mouseInside=!1,r.tooltipEl.style("display","none")})},update:function(n){n.tooltipEl.style("display",n.content&&n.mouseInside?"inline":"none"),n.content?n.content instanceof HTMLElement?(n.tooltipEl.text(""),n.tooltipEl.append(function(){return n.content})):typeof n.content=="string"?n.tooltipEl.html(n.content):Pc(n.content)?(n.tooltipEl.text(""),Oc(n.content,n.tooltipEl.node())):(n.tooltipEl.style("display","none"),console.warn("Tooltip content is invalid, skipping.",n.content,n.content.toString())):n.tooltipEl.text("")}});function Rc(e,n,r){var i,o=1;e==null&&(e=0),n==null&&(n=0),r==null&&(r=0);function a(){var s,u=i.length,c,l=0,f=0,h=0;for(s=0;s=(c=(s+u)/2))?s=c:u=c,i=o,!(o=o[h=+f]))return i[h]=a,e;if(l=+e._x.call(null,o.data),n===l)return a.next=o,i?i[h]=a:e._root=a,e;do i=i?i[h]=new Array(2):e._root=new Array(2),(f=n>=(c=(s+u)/2))?s=c:u=c;while((h=+f)==(d=+(l>=c)));return i[d]=o,i[h]=a,e}function Dc(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n);let i=1/0,o=-1/0;for(let a=0,s;ao&&(o=s));if(i>o)return this;this.cover(i).cover(o);for(let a=0;ae||e>=r;)switch(s=+(es||(a=l.x1)=h))&&(l=u[u.length-1],u[u.length-1]=u[u.length-1-f],u[u.length-1-f]=l)}else{var d=Math.abs(e-+this._x.call(null,c.data));d=(l=(s+u)/2))?s=l:u=l,n=r,!(r=r[h=+f]))return this;if(!r.length)break;n[h+1&1]&&(i=n,d=h)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[h]=a:delete n[h],(r=n[0]||n[1])&&r===(n[1]||n[0])&&!r.length&&(i?i[d]=r:this._root=r),this):(this._root=a,this)}function Hc(e){for(var n=0,r=e.length;n=(h=(u+l)/2))?u=h:l=h,(v=r>=(d=(c+f)/2))?c=d:f=d,o=a,!(a=a[g=v<<1|m]))return o[g]=s,e;if(p=+e._x.call(null,a.data),y=+e._y.call(null,a.data),n===p&&r===y)return s.next=a,o?o[g]=s:e._root=s,e;do o=o?o[g]=new Array(4):e._root=new Array(4),(m=n>=(h=(u+l)/2))?u=h:l=h,(v=r>=(d=(c+f)/2))?c=d:f=d;while((g=v<<1|m)===(k=(y>=d)<<1|p>=h));return o[k]=a,o[g]=s,e}function Zc(e){var n,r,i=e.length,o,a,s=new Array(i),u=new Array(i),c=1/0,l=1/0,f=-1/0,h=-1/0;for(r=0;rf&&(f=o),ah&&(h=a));if(c>f||l>h)return this;for(this.cover(c,l).cover(f,h),r=0;re||e>=o||i>n||n>=a;)switch(l=(nf||(u=y.y0)>h||(c=y.x1)=g)<<1|e>=v)&&(y=d[d.length-1],d[d.length-1]=d[d.length-1-m],d[d.length-1-m]=y)}else{var k=e-+this._x.call(null,p.data),M=n-+this._y.call(null,p.data),b=k*k+M*M;if(b=(d=(s+c)/2))?s=d:c=d,(m=h>=(p=(u+l)/2))?u=p:l=p,n=r,!(r=r[v=m<<1|y]))return this;if(!r.length)break;(n[v+1&3]||n[v+2&3]||n[v+3&3])&&(i=n,g=v)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[v]=a:delete n[v],(r=n[0]||n[1]||n[2]||n[3])&&r===(n[3]||n[2]||n[1]||n[0])&&!r.length&&(i?i[g]=r:this._root=r),this):(this._root=a,this)}function nf(e){for(var n=0,r=e.length;n=(y=(c+h)/2))?c=y:h=y,(_=r>=(m=(l+d)/2))?l=m:d=m,(w=i>=(v=(f+p)/2))?f=v:p=v,a=s,!(s=s[A=w<<2|_<<1|b]))return a[A]=u,e;if(g=+e._x.call(null,s.data),k=+e._y.call(null,s.data),M=+e._z.call(null,s.data),n===g&&r===k&&i===M)return u.next=s,a?a[A]=u:e._root=u,e;do a=a?a[A]=new Array(8):e._root=new Array(8),(b=n>=(y=(c+h)/2))?c=y:h=y,(_=r>=(m=(l+d)/2))?l=m:d=m,(w=i>=(v=(f+p)/2))?f=v:p=v;while((A=w<<2|_<<1|b)===(T=(M>=v)<<2|(k>=m)<<1|g>=y));return a[T]=s,a[A]=u,e}function df(e){Array.isArray(e)||(e=Array.from(e));const n=e.length,r=new Float64Array(n),i=new Float64Array(n),o=new Float64Array(n);let a=1/0,s=1/0,u=1/0,c=-1/0,l=-1/0,f=-1/0;for(let h=0,d,p,y,m;hc&&(c=p),yl&&(l=y),mf&&(f=m));if(a>c||s>l||u>f)return this;this.cover(a,s,u).cover(c,l,f);for(let h=0;he||e>=s||o>n||n>=u||a>r||r>=c;)switch(d=(ry||(l=M.y0)>m||(f=M.z0)>v||(h=M.x1)=A)<<2|(n>=w)<<1|e>=_)&&(M=g[g.length-1],g[g.length-1]=g[g.length-1-b],g[g.length-1-b]=M)}else{var T=e-+this._x.call(null,k.data),R=n-+this._y.call(null,k.data),P=r-+this._z.call(null,k.data),N=T*T+R*R+P*P;if(NMath.sqrt((e-i)**2+(n-o)**2+(r-a)**2);function mf(e,n,r,i){const o=[],a=e-i,s=n-i,u=r-i,c=e+i,l=n+i,f=r+i;return this.visit((h,d,p,y,m,v,g)=>{if(!h.length)do{const k=h.data;vf(e,n,r,this._x(k),this._y(k),this._z(k))<=i&&o.push(k)}while(h=h.next);return d>c||p>l||y>f||m=(m=(s+l)/2))?s=m:l=m,(M=p>=(v=(u+f)/2))?u=v:f=v,(b=y>=(g=(c+h)/2))?c=g:h=g,n=r,!(r=r[_=b<<2|M<<1|k]))return this;if(!r.length)break;(n[_+1&7]||n[_+2&7]||n[_+3&7]||n[_+4&7]||n[_+5&7]||n[_+6&7]||n[_+7&7])&&(i=n,w=_)}for(;r.data!==e;)if(o=r,!(r=r.next))return this;return(a=r.next)&&delete r.next,o?(a?o.next=a:delete o.next,this):n?(a?n[_]=a:delete n[_],(r=n[0]||n[1]||n[2]||n[3]||n[4]||n[5]||n[6]||n[7])&&r===(n[7]||n[6]||n[5]||n[4]||n[3]||n[2]||n[1]||n[0])&&!r.length&&(i?i[w]=r:this._root=r),this):(this._root=a,this)}function bf(e){for(var n=0,r=e.length;n1&&(R=A.y+A.vy-w.y-w.vy||Ot(f)),u>2&&(P=A.z+A.vz-w.z-w.vz||Ot(f)),N=Math.sqrt(T*T+R*R+P*P),N=(N-a[b])/N*g*i[b],T*=N,R*=N,P*=N,A.vx-=T*(D=l[b]),u>1&&(A.vy-=R*D),u>2&&(A.vz-=P*D),w.vx+=T*(D=1-D),u>1&&(w.vy+=R*D),u>2&&(w.vz+=P*D)}function y(){if(s){var g,k=s.length,M=e.length,b=new Map(s.map((w,A)=>[n(w,A,s),w])),_;for(g=0,c=new Array(k);gtypeof M=="function")||Math.random,u=k.find(M=>[1,2,3].includes(M))||2,y()},p.links=function(g){return arguments.length?(e=g,y(),p):e},p.id=function(g){return arguments.length?(n=g,p):n},p.iterations=function(g){return arguments.length?(h=+g,p):h},p.strength=function(g){return arguments.length?(r=typeof g=="function"?g:zt(+g),m(),p):r},p.distance=function(g){return arguments.length?(o=typeof g=="function"?g:zt(+g),v(),p):o},p}const Rf=1664525,jf=1013904223,Nr=4294967296;function Df(){let e=1;return()=>(e=(Rf*e+jf)%Nr)/Nr}var Rr=3;function nn(e){return e.x}function jr(e){return e.y}function If(e){return e.z}var $f=10,Lf=Math.PI*(3-Math.sqrt(5)),Ff=Math.PI*20/(9+Math.sqrt(221));function Uf(e,n){n=n||2;var r=Math.min(Rr,Math.max(1,Math.round(n))),i,o=1,a=.001,s=1-Math.pow(a,1/300),u=0,c=.6,l=new Map,f=En(p),h=ve("tick","end"),d=Df();e==null&&(e=[]);function p(){y(),h.call("tick",i),o1&&(b.fy==null?b.y+=b.vy*=c:(b.y=b.fy,b.vy=0)),r>2&&(b.fz==null?b.z+=b.vz*=c:(b.z=b.fz,b.vz=0));return i}function m(){for(var g=0,k=e.length,M;g1&&isNaN(M.y)||r>2&&isNaN(M.z)){var b=$f*(r>2?Math.cbrt(.5+g):r>1?Math.sqrt(.5+g):g),_=g*Lf,w=g*Ff;r===1?M.x=b:r===2?(M.x=b*Math.cos(_),M.y=b*Math.sin(_)):(M.x=b*Math.sin(_)*Math.cos(w),M.y=b*Math.cos(_),M.z=b*Math.sin(_)*Math.sin(w))}(isNaN(M.vx)||r>1&&isNaN(M.vy)||r>2&&isNaN(M.vz))&&(M.vx=0,r>1&&(M.vy=0),r>2&&(M.vz=0))}}function v(g){return g.initialize&&g.initialize(e,d,r),g}return m(),i={tick:y,restart:function(){return f.restart(p),i},stop:function(){return f.stop(),i},numDimensions:function(g){return arguments.length?(r=Math.min(Rr,Math.max(1,Math.round(g))),l.forEach(v),i):r},nodes:function(g){return arguments.length?(e=g,m(),l.forEach(v),i):e},alpha:function(g){return arguments.length?(o=+g,i):o},alphaMin:function(g){return arguments.length?(a=+g,i):a},alphaDecay:function(g){return arguments.length?(s=+g,i):+s},alphaTarget:function(g){return arguments.length?(u=+g,i):u},velocityDecay:function(g){return arguments.length?(c=1-g,i):1-c},randomSource:function(g){return arguments.length?(d=g,l.forEach(v),i):d},force:function(g,k){return arguments.length>1?(k==null?l.delete(g):l.set(g,v(k)),i):l.get(g)},find:function(){var g=Array.prototype.slice.call(arguments),k=g.shift()||0,M=(r>1?g.shift():null)||0,b=(r>2?g.shift():null)||0,_=g.shift()||1/0,w=0,A=e.length,T,R,P,N,D,U;for(_*=_,w=0;w1?(h.on(g,k),i):h.on(g)}}}function Hf(){var e,n,r,i,o,a=zt(-30),s,u=1,c=1/0,l=.81;function f(y){var m,v=e.length,g=(n===1?Ui(e,nn):n===2?Un(e,nn,jr):n===3?Wi(e,nn,jr,If):null).visitAfter(d);for(o=y,m=0;m1&&(y.y=b/k),n>2&&(y.z=_/k)}else{v=y,v.x=v.data.x,n>1&&(v.y=v.data.y),n>2&&(v.z=v.data.z);do m+=s[v.data.index];while(v=v.next)}y.value=m}function p(y,m,v,g,k){if(!y.value)return!0;var M=[v,g,k][n-1],b=y.x-r.x,_=n>1?y.y-r.y:0,w=n>2?y.z-r.z:0,A=M-m,T=b*b+_*_+w*w;if(A*A/l1&&_===0&&(_=Ot(i),T+=_*_),n>2&&w===0&&(w=Ot(i),T+=w*w),T1&&(r.vy+=_*y.value*o/T),n>2&&(r.vz+=w*y.value*o/T)),!0;if(y.length||T>=c)return;(y.data!==r||y.next)&&(b===0&&(b=Ot(i),T+=b*b),n>1&&_===0&&(_=Ot(i),T+=_*_),n>2&&w===0&&(w=Ot(i),T+=w*w),T1&&(r.vy+=_*A),n>2&&(r.vz+=w*A));while(y=y.next)}return f.initialize=function(y,...m){e=y,i=m.find(v=>typeof v=="function")||Math.random,n=m.find(v=>[1,2,3].includes(v))||2,h()},f.strength=function(y){return arguments.length?(a=typeof y=="function"?y:zt(+y),h(),f):a},f.distanceMin=function(y){return arguments.length?(u=y*y,f):Math.sqrt(u)},f.distanceMax=function(y){return arguments.length?(c=y*y,f):Math.sqrt(c)},f.theta=function(y){return arguments.length?(l=y*y,f):Math.sqrt(l)},f}function qf(e,n,r,i){var o,a,s=zt(.1),u,c;typeof e!="function"&&(e=zt(+e)),n==null&&(n=0),r==null&&(r=0),i==null&&(i=0);function l(h){for(var d=0,p=o.length;d1&&(y.vy+=v*M),a>2&&(y.vz+=g*M)}}function f(){if(o){var h,d=o.length;for(u=new Array(d),c=new Array(d),h=0;h[1,2,3].includes(p))||2,f()},l.strength=function(h){return arguments.length?(s=typeof h=="function"?h:zt(+h),f(),l):s},l.radius=function(h){return arguments.length?(e=typeof h=="function"?h:zt(+h),f(),l):e},l.x=function(h){return arguments.length?(n=+h,l):n},l.y=function(h){return arguments.length?(r=+h,l):r},l.z=function(h){return arguments.length?(i=+h,l):i},l}const{abs:ee,cos:Pt,sin:Wt,acos:Wf,atan2:ne,sqrt:Dt,pow:dt}=Math;function re(e){return e<0?-dt(-e,1/3):dt(e,1/3)}const Gi=Math.PI,Ce=2*Gi,It=Gi/2,Gf=1e-6,rn=Number.MAX_SAFE_INTEGER||9007199254740991,on=Number.MIN_SAFE_INTEGER||-9007199254740991,Vf={x:0,y:0,z:0},z={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(e,n){const r=n(e);let i=r.x*r.x+r.y*r.y;return typeof r.z<"u"&&(i+=r.z*r.z),Dt(i)},compute:function(e,n,r){if(e===0)return n[0].t=0,n[0];const i=n.length-1;if(e===1)return n[i].t=1,n[i];const o=1-e;let a=n;if(i===0)return n[0].t=e,n[0];if(i===1){const u={x:o*a[0].x+e*a[1].x,y:o*a[0].y+e*a[1].y,t:e};return r&&(u.z=o*a[0].z+e*a[1].z),u}if(i<4){let u=o*o,c=e*e,l,f,h,d=0;i===2?(a=[a[0],a[1],a[2],Vf],l=u,f=o*e*2,h=c):i===3&&(l=u*o,f=u*e*3,h=o*c*3,d=e*c);const p={x:l*a[0].x+f*a[1].x+h*a[2].x+d*a[3].x,y:l*a[0].y+f*a[1].y+h*a[2].y+d*a[3].y,t:e};return r&&(p.z=l*a[0].z+f*a[1].z+h*a[2].z+d*a[3].z),p}const s=JSON.parse(JSON.stringify(n));for(;s.length>1;){for(let u=0;u1;o--,a--){const s=[];for(let u=0,c;u"u")e=.5;else if(e===0||e===1)return e;const r=dt(e,n)+dt(1-e,n),i=r-1;return ee(i/r)},projectionratio:function(e,n){if(n!==2&&n!==3)return!1;if(typeof e>"u")e=.5;else if(e===0||e===1)return e;const r=dt(1-e,n),i=dt(e,n)+r;return r/i},lli8:function(e,n,r,i,o,a,s,u){const c=(e*i-n*r)*(o-s)-(e-r)*(o*u-a*s),l=(e*i-n*r)*(a-u)-(n-i)*(o*u-a*s),f=(e-r)*(a-u)-(n-i)*(o-s);return f==0?!1:{x:c/f,y:l/f}},lli4:function(e,n,r,i){const o=e.x,a=e.y,s=n.x,u=n.y,c=r.x,l=r.y,f=i.x,h=i.y;return z.lli8(o,a,s,u,c,l,f,h)},lli:function(e,n){return z.lli4(e,e.c,n,n.c)},makeline:function(e,n){return new K(e.x,e.y,(e.x+n.x)/2,(e.y+n.y)/2,n.x,n.y)},findbbox:function(e){let n=rn,r=rn,i=on,o=on;return e.forEach(function(a){const s=a.bbox();n>s.x.min&&(n=s.x.min),r>s.y.min&&(r=s.y.min),i0&&(f.c1=c,f.c2=l,f.s1=e,f.s2=r,a.push(f))})}),a},makeshape:function(e,n,r){const i=n.points.length,o=e.points.length,a=z.makeline(n.points[i-1],e.points[0]),s=z.makeline(e.points[o-1],n.points[0]),u={startcap:a,forward:e,back:n,endcap:s,bbox:z.findbbox([a,e,n,s])};return u.intersections=function(c){return z.shapeintersections(u,u.bbox,c,c.bbox,r)},u},getminmax:function(e,n,r){if(!r)return{min:0,max:0};let i=rn,o=on,a,s;r.indexOf(0)===-1&&(r=[0].concat(r)),r.indexOf(1)===-1&&r.push(1);for(let u=0,c=r.length;uo&&(o=s[n]);return{min:i,mid:(i+o)/2,max:o,size:o-i}},align:function(e,n){const r=n.p1.x,i=n.p1.y,o=-ne(n.p2.y-i,n.p2.x-r),a=function(s){return{x:(s.x-r)*Pt(o)-(s.y-i)*Wt(o),y:(s.x-r)*Wt(o)+(s.y-i)*Pt(o)}};return e.map(a)},roots:function(e,n){n=n||{p1:{x:0,y:0},p2:{x:1,y:0}};const r=e.length-1,i=z.align(e,n),o=function(A){return 0<=A&&A<=1};if(r===2){const A=i[0].y,T=i[1].y,R=i[2].y,P=A-2*T+R;if(P!==0){const N=-Dt(T*T-A*R),D=-A+T,U=-(N+D)/P,S=-(-N+D)/P;return[U,S].filter(o)}else if(T!==R&&P===0)return[(2*T-R)/(2*T-2*R)].filter(o);return[]}const a=i[0].y,s=i[1].y,u=i[2].y,c=i[3].y;let l=-a+3*s-3*u+c,f=3*a-6*s+3*u,h=-3*a+3*s,d=a;if(z.approximately(l,0)){if(z.approximately(f,0))return z.approximately(h,0)?[]:[-d/h].filter(o);const A=Dt(h*h-4*f*d),T=2*f;return[(A-h)/T,(-h-A)/T].filter(o)}f/=l,h/=l,d/=l;const p=(3*h-f*f)/3,y=p/3,m=(2*f*f*f-9*f*h+27*d)/27,v=m/2,g=v*v+y*y*y;let k,M,b,_,w;if(g<0){const A=-p/3,T=A*A*A,R=Dt(T),P=-m/(2*R),N=P<-1?-1:P>1?1:P,D=Wf(N),U=re(R),S=2*U;return b=S*Pt(D/3)-f/3,_=S*Pt((D+Ce)/3)-f/3,w=S*Pt((D+2*Ce)/3)-f/3,[b,_,w].filter(o)}else{if(g===0)return k=v<0?re(-v):-re(v),b=2*k-f/3,_=-k-f/3,[b,_].filter(o);{const A=Dt(g);return k=re(-v+A),M=re(v+A),[k-M-f/3].filter(o)}}},droots:function(e){if(e.length===3){const n=e[0],r=e[1],i=e[2],o=n-2*r+i;if(o!==0){const a=-Dt(r*r-n*i),s=-n+r,u=-(a+s)/o,c=-(-a+s)/o;return[u,c]}else if(r!==i&&o===0)return[(2*r-i)/(2*(r-i))];return[]}if(e.length===2){const n=e[0],r=e[1];return n!==r?[n/(n-r)]:[]}return[]},curvature:function(e,n,r,i,o){let a,s,u,c,l=0,f=0;const h=z.compute(e,n),d=z.compute(e,r),p=h.x*h.x+h.y*h.y;if(i?(a=Dt(dt(h.y*d.z-d.y*h.z,2)+dt(h.z*d.x-d.z*h.x,2)+dt(h.x*d.y-d.x*h.y,2)),s=dt(p+h.z*h.z,3/2)):(a=h.x*d.y-h.y*d.x,s=dt(p,3/2)),a===0||s===0)return{k:0,r:0};if(l=a/s,f=s/a,!o){const y=z.curvature(e-.001,n,r,i,!0).k,m=z.curvature(e+.001,n,r,i,!0).k;c=(m-l+(l-y))/2,u=(ee(m-l)+ee(l-y))/2}return{k:l,r:f,dk:c,adk:u}},inflections:function(e){if(e.length<4)return[];const n=z.align(e,{p1:e[0],p2:e.slice(-1)[0]}),r=n[2].x*n[1].y,i=n[3].x*n[1].y,o=n[1].x*n[2].y,a=n[3].x*n[2].y,s=18*(-3*r+2*i+3*o-a),u=18*(3*r-i-3*o),c=18*(o-r);if(z.approximately(s,0)){if(!z.approximately(u,0)){let d=-c/u;if(0<=d&&d<=1)return[d]}return[]}const l=2*s;if(z.approximately(l,0))return[];const f=u*u-4*s*c;if(f<0)return[];const h=Math.sqrt(f);return[(h-u)/l,-(u+h)/l].filter(function(d){return 0<=d&&d<=1})},bboxoverlap:function(e,n){const r=["x","y"],i=r.length;for(let o=0,a,s,u,c;o=c)return!1;return!0},expandbox:function(e,n){n.x.mine.x.max&&(e.x.max=n.x.max),n.y.max>e.y.max&&(e.y.max=n.y.max),n.z&&n.z.max>e.z.max&&(e.z.max=n.z.max),e.x.mid=(e.x.min+e.x.max)/2,e.y.mid=(e.y.min+e.y.max)/2,e.z&&(e.z.mid=(e.z.min+e.z.max)/2),e.x.size=e.x.max-e.x.min,e.y.size=e.y.max-e.y.min,e.z&&(e.z.size=e.z.max-e.z.min)},pairiteration:function(e,n,r){const i=e.bbox(),o=n.bbox(),a=1e5,s=r||.5;if(i.x.size+i.y.sizew||w>A)&&(_+=Ce),_>A&&(T=A,A=_,_=T)):A4){if(arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");o=!0}}else if(a!==6&&a!==8&&a!==9&&a!==12&&arguments.length!==1)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const s=this._3d=!o&&(a===9||a===12)||n&&n[0]&&typeof n[0].z<"u",u=this.points=[];for(let p=0,y=s?3:2;pp+ie(y.y),0)"u"&&(o=.5),o===0)return new K(r,r,i);if(o===1)return new K(n,r,r);const a=K.getABC(2,n,r,i,o);return new K(n,a.A,i)}static cubicFromPoints(n,r,i,o,a){typeof o>"u"&&(o=.5);const s=K.getABC(3,n,r,i,o);typeof a>"u"&&(a=z.dist(r,s.C));const u=a*(1-o)/o,c=z.dist(n,i),l=(i.x-n.x)/c,f=(i.y-n.y)/c,h=a*l,d=a*f,p=u*l,y=u*f,m={x:r.x-h,y:r.y-d},v={x:r.x+p,y:r.y+y},g=s.A,k={x:g.x+(m.x-g.x)/(1-o),y:g.y+(m.y-g.y)/(1-o)},M={x:g.x+(v.x-g.x)/o,y:g.y+(v.y-g.y)/o},b={x:n.x+(k.x-n.x)/o,y:n.y+(k.y-n.y)/o},_={x:i.x+(M.x-i.x)/(1-o),y:i.y+(M.y-i.y)/(1-o)};return new K(n,b,_,i)}static getUtils(){return z}getUtils(){return K.getUtils()}static get PolyBezier(){return he}valueOf(){return this.toString()}toString(){return z.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const n=this.points,r=n[0].x,i=n[0].y,o=["M",r,i,this.order===2?"Q":"C"];for(let a=1,s=n.length;a0}length(){return z.length(this.derivative.bind(this))}static getABC(n=2,r,i,o,a=.5){const s=z.projectionratio(a,n),u=1-s,c={x:s*r.x+u*o.x,y:s*r.y+u*o.y},l=z.abcratio(a,n);return{A:{x:i.x+(i.x-c.x)/l,y:i.y+(i.y-c.y)/l},B:i,C:c,S:r,E:o}}getABC(n,r){r=r||this.get(n);let i=this.points[0],o=this.points[this.order];return K.getABC(this.order,i,r,o,n)}getLUT(n){if(this.verify(),n=n||100,this._lut.length===n+1)return this._lut;this._lut=[],n++,this._lut=[];for(let r=0,i,o;r1?1:h,d=this.compute(h),d.t=h,d.d=l,d}get(n){return this.compute(n)}point(n){return this.points[n]}compute(n){return this.ratios?z.computeWithRatios(n,this.points,this.ratios,this._3d):z.compute(n,this.points,this._3d,this.ratios)}raise(){const n=this.points,r=[n[0]],i=n.length;for(let o=1,a,s;o1;){i=[];for(let s=0,u,c=r.length-1;s=0&&s<=1}),r=r.concat(n[i].sort(z.numberSort))}).bind(this)),n.values=r.sort(z.numberSort).filter(function(i,o){return r.indexOf(i)===o}),n}bbox(){const n=this.extrema(),r={};return this.dims.forEach((function(i){r[i]=z.getminmax(this,i,n[i])}).bind(this)),r}overlaps(n){const r=this.bbox(),i=n.bbox();return z.bboxoverlap(r,i)}offset(n,r){if(typeof r<"u"){const i=this.get(n),o=this.normal(n),a={c:i,n:o,x:i.x+o.x*r,y:i.y+o.y*r};return this._3d&&(a.z=i.z+o.z*r),a}if(this._linear){const i=this.normal(0),o=this.points.map(function(a){const s={x:a.x+n*i.x,y:a.y+n*i.y};return a.z&&i.z&&(s.z=a.z+n*i.z),s});return[new K(o)]}return this.reduce().map(function(i){return i._linear?i.offset(n)[0]:i.scale(n)})}simple(){if(this.order===3){const o=z.angle(this.points[0],this.points[3],this.points[1]),a=z.angle(this.points[0],this.points[3],this.points[2]);if(o>0&&a<0||o<0&&a>0)return!1}const n=this.normal(0),r=this.normal(1);let i=n.x*r.x+n.y*r.y;return this._3d&&(i+=n.z*r.z),ie(Yf(i))(1-u/o)*r+u/o*i);return new K(this.points.map((s,u)=>({x:s.x+n.x*a[u],y:s.y+n.y*a[u]})))}scale(n){const r=this.order;let i=!1;if(typeof n=="function"&&(i=n),i&&r===2)return this.raise().scale(i);const o=this.clockwise,a=this.points;if(this._linear)return this.translate(this.normal(0),i?i(0):n,i?i(1):n);const s=i?i(0):n,u=i?i(1):n,c=[this.offset(0,10),this.offset(1,10)],l=[],f=z.lli4(c[0],c[0].c,c[1],c[1].c);if(!f)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach(function(h){const d=l[h*r]=z.copy(a[h*r]);d.x+=(h?u:s)*c[h].n.x,d.y+=(h?u:s)*c[h].n.y}),i?([0,1].forEach(function(h){if(!(r===2&&h)){var d=a[h+1],p={x:d.x-f.x,y:d.y-f.y},y=i?i((h+1)/r):n;i&&!o&&(y=-y);var m=oe(p.x*p.x+p.y*p.y);p.x/=m,p.y/=m,l[h+1]={x:d.x+y*p.x,y:d.y+y*p.y}}}),new K(l)):([0,1].forEach(h=>{if(r===2&&h)return;const d=l[h*r],p=this.derivative(h),y={x:d.x+p.x,y:d.y+p.y};l[h+1]=z.lli4(d,y,f,a[h+1])}),new K(l))}outline(n,r,i,o){if(r=r===void 0?n:r,this._linear){const _=this.normal(0),w=this.points[0],A=this.points[this.points.length-1];let T,R,P;i===void 0&&(i=n,o=r),T={x:w.x+_.x*n,y:w.y+_.y*n},P={x:A.x+_.x*i,y:A.y+_.y*i},R={x:(T.x+P.x)/2,y:(T.y+P.y)/2};const N=[T,R,P];T={x:w.x-_.x*r,y:w.y-_.y*r},P={x:A.x-_.x*o,y:A.y-_.y*o},R={x:(T.x+P.x)/2,y:(T.y+P.y)/2};const D=[P,R,T],U=z.makeline(D[2],N[0]),S=z.makeline(N[2],D[0]),j=[U,new K(N),S,new K(D)];return new he(j)}const a=this.reduce(),s=a.length,u=[];let c=[],l,f=0,h=this.length();const d=typeof i<"u"&&typeof o<"u";function p(_,w,A,T,R){return function(P){const N=T/A,D=(T+R)/A,U=w-_;return z.map(P,0,1,_+N*U,_+D*U)}}a.forEach(function(_){const w=_.length();d?(u.push(_.scale(p(n,i,h,f,w))),c.push(_.scale(p(-r,-o,h,f,w)))):(u.push(_.scale(n)),c.push(_.scale(-r))),f+=w}),c=c.map(function(_){return l=_.points,l[3]?_.points=[l[3],l[2],l[1],l[0]]:_.points=[l[2],l[1],l[0]],_}).reverse();const y=u[0].points[0],m=u[s-1].points[u[s-1].points.length-1],v=c[s-1].points[c[s-1].points.length-1],g=c[0].points[0],k=z.makeline(v,y),M=z.makeline(m,g),b=[k].concat(u).concat([M]).concat(c);return new he(b)}outlineshapes(n,r,i){r=r||n;const o=this.outline(n,r).curves,a=[];for(let s=1,u=o.length;s1,c.endcap.virtual=s{var u=this.get(s);return z.between(u.x,r,o)&&z.between(u.y,i,a)})}selfintersects(n){const r=this.reduce(),i=r.length-2,o=[];for(let a=0,s,u,c;a0&&(a=a.concat(u))}),a}arcs(n){return n=n||.5,this._iterate(n,[])}_error(n,r,i,o){const a=(o-i)/4,s=this.get(i+a),u=this.get(o-a),c=z.dist(n,r),l=z.dist(n,s),f=z.dist(n,u);return ie(l-c)+ie(f-c)}_iterate(n,r){let i=0,o=1,a;do{a=0,o=1;let s=this.get(i),u,c,l,f,h=!1,d=!1,p,y=o,m=1;do if(d=h,f=l,y=(i+o)/2,u=this.get(y),c=this.get(o),l=z.getccenter(s,u,c),l.interval={start:i,end:o},h=this._error(l,s,i,o)<=n,p=d&&!h,p||(m=o),h){if(o>=1){if(l.interval.end=m=1,f=l,o>1){let g={x:l.x+l.r*Bf(l.e),y:l.y+l.r*Xf(l.e)};l.e+=z.angle({x:l.x,y:l.y},g,this.get(1))}break}o=o+(o-i)/2}else o=y;while(!p&&a++<100);if(a>=100)break;f=f||l,r.push(f),i=m}while(o<1);return r}}function An(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,o=(n instanceof Array?n.length?n:[void 0]:[n]).map(function(u){return{keyAccessor:u,isProp:!(u instanceof Function)}}),a=e.reduce(function(u,c){var l=u,f=c;return o.forEach(function(h,d){var p=h.keyAccessor,y=h.isProp,m;if(y){var v=f,g=v[p],k=rh(v,[p].map(uh));m=g,f=k}else m=p(f,d);d+11&&arguments[1]!==void 0?arguments[1]:1;l===o.length?Object.keys(c).forEach(function(f){return c[f]=r(c[f])}):Object.values(c).forEach(function(f){return u(f,l+1)})})(a);var s=a;return i&&(s=[],(function u(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];l.length===o.length?s.push({keys:l,vals:c}):Object.entries(c).forEach(function(f){var h=oh(f,2),d=h[0],p=h[1];return u(p,[].concat(ah(l),[d]))})})(a),n instanceof Array&&n.length===0&&s.length===1&&(s[0].keys=[])),s});function ch(e){for(var n=e.length/6|0,r=new Array(n),i=0;i"u")){var i=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",r==="top"&&i.firstChild?i.insertBefore(o,i.firstChild):i.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var dh=`.force-graph-container canvas { - display: block; - user-select: none; - outline: none; - -webkit-tap-highlight-color: transparent; -} - -.force-graph-container .clickable { - cursor: pointer; -} - -.force-graph-container .grabbable { - cursor: move; - cursor: grab; - cursor: -moz-grab; - cursor: -webkit-grab; -} - -.force-graph-container .grabbable:active { - cursor: grabbing; - cursor: -moz-grabbing; - cursor: -webkit-grabbing; -} -`;hh(dh);function Sn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=Array(n);r2&&arguments[2]!==void 0?arguments[2]:{},a=o.nodeFilter,s=a===void 0?function(){return!0}:a,u=o.onLoopError,c=u===void 0?function(p){throw"Invalid DAG structure! Found cycle in node path: ".concat(p.join(" -> "),".")}:u,l={};r.forEach(function(p){return l[n(p)]={data:p,out:[],depth:-1,skip:!s(p)}}),i.forEach(function(p){var y=p.source,m=p.target,v=b(y),g=b(m);if(!l.hasOwnProperty(v))throw"Missing source node with id: ".concat(v);if(!l.hasOwnProperty(g))throw"Missing target node with id: ".concat(g);var k=l[v],M=l[g];k.out.push(M);function b(_){return Mn(_)==="object"?n(_):_}});var f=[];d(Object.values(l));var h=Object.assign.apply(Object,[{}].concat(gt(Object.entries(l).filter(function(p){var y=de(p,2),m=y[1];return!m.skip}).map(function(p){var y=de(p,2),m=y[0],v=y[1];return ye({},m,v.depth)}))));return h;function d(p){for(var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,v=function(){var b=p[g];if(y.indexOf(b)!==-1){var _=[].concat(gt(y.slice(y.indexOf(b))),[b]).map(function(w){return n(w.data)});return f.some(function(w){return w.length===_.length&&w.every(function(A,T){return A===_[T]})})||(f.push(_),c(_)),1}m>b.depth&&(b.depth=m,d(b.out,[].concat(gt(y),[b]),m+(b.skip?0:1)))},g=0,k=p.length;gn.cooldownTicks||new Date-n.startTickTime>n.cooldownTime||n.d3AlphaMin>0&&n.forceLayout.alpha()0){var D=Math.atan2(P.y-R.y,P.x-R.x),U=N*T,S={x:(R.x+P.x)/2+U*Math.cos(D-Math.PI/2),y:(R.y+P.y)/2+U*Math.sin(D-Math.PI/2)};A.__controlPoints=[S.x,S.y]}else{var j=T*70;A.__controlPoints=[P.x,P.y-j,P.x+j,P.y]}}}}function a(){var u=1.6,c=.2,l=B(n.linkDirectionalArrowLength),f=B(n.linkDirectionalArrowRelPos),h=B(n.linkVisibility),d=B(n.linkDirectionalArrowColor||n.linkColor),p=B(n.nodeVal),y=n.ctx;y.save(),n.graphData.links.filter(h).forEach(function(m){var v=l(m);if(!(!v||v<0)){var g=m.source,k=m.target;if(!(!g||!k||!g.hasOwnProperty("x")||!k.hasOwnProperty("x"))){var M=Math.sqrt(Math.max(0,p(g)||1))*n.nodeRelSize,b=Math.sqrt(Math.max(0,p(k)||1))*n.nodeRelSize,_=Math.min(1,Math.max(0,f(m))),w=d(m)||"rgba(0,0,0,0.28)",A=v/u/2,T=m.__controlPoints&&$r(K,[g.x,g.y].concat(gt(m.__controlPoints),[k.x,k.y])),R=T?function(E){return T.get(E)}:function(E){return{x:g.x+(k.x-g.x)*E||0,y:g.y+(k.y-g.y)*E||0}},P=T?T.length():Math.sqrt(Math.pow(k.x-g.x,2)+Math.pow(k.y-g.y,2)),N=M+v+(P-M-b-v)*_,D=R(N/P),U=R((N-v)/P),S=R((N-v*(1-c))/P),j=Math.atan2(D.y-U.y,D.x-U.x)-Math.PI/2;y.beginPath(),y.moveTo(D.x,D.y),y.lineTo(U.x+A*Math.cos(j),U.y+A*Math.sin(j)),y.lineTo(S.x,S.y),y.lineTo(U.x-A*Math.cos(j),U.y-A*Math.sin(j)),y.fillStyle=w,y.fill()}}}),y.restore()}function s(){var u=B(n.linkDirectionalParticles),c=B(n.linkDirectionalParticleSpeed),l=B(n.linkDirectionalParticleOffset),f=B(n.linkDirectionalParticleWidth),h=B(n.linkVisibility),d=B(n.linkDirectionalParticleColor||n.linkColor),p=n.ctx;p.save(),n.graphData.links.filter(h).forEach(function(y){var m=u(y);if(!(!y.hasOwnProperty("__photons")||!y.__photons.length)){var v=y.source,g=y.target;if(!(!v||!g||!v.hasOwnProperty("x")||!g.hasOwnProperty("x"))){var k=c(y),M=Math.abs(l(y)),b=y.__photons||[],_=Math.max(0,f(y)/2)/Math.sqrt(n.globalScale),w=d(y)||"rgba(0,0,0,0.28)";p.fillStyle=w;var A=y.__controlPoints?$r(K,[v.x,v.y].concat(gt(y.__controlPoints),[g.x,g.y])):null,T=0,R=!1;b.forEach(function(P){var N=!!P.__singleHop;if(P.hasOwnProperty("__progressRatio")||(P.__progressRatio=N?k<0?1:0:(T+M)/m),!N&&T++,P.__progressRatio+=k,P.__progressRatio>=1||P.__progressRatio<0)if(!N)P.__progressRatio=P.__progressRatio%1,P.__progressRatio<0&&P.__progressRatio++;else{R=!0;return}var D=P.__progressRatio,U=A?A.get(D):{x:v.x+(g.x-v.x)*D||0,y:v.y+(g.y-v.y)*D||0};n.linkDirectionalParticleCanvasObject?n.linkDirectionalParticleCanvasObject(U.x,U.y,y,p,n.globalScale):(p.beginPath(),p.arc(U.x,U.y,_,0,2*Math.PI,!1),p.fill())}),R&&(y.__photons=y.__photons.filter(function(P){return!P.__singleHop||P.__progressRatio<=1&&P.__progressRatio>=0}))}}}),p.restore()}},emitParticle:function(n,r){return r&&(!r.__photons&&(r.__photons=[]),r.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:Uf().force("link",Nf()).force("charge",Hf()).force("center",Rc()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(n,r){r.ctx=n},update:function(n,r){n.engineRunning=!1,n.onUpdate(),n.nodeAutoColorBy!==null&&Fr(n.graphData.nodes,B(n.nodeAutoColorBy),n.nodeColor),n.linkAutoColorBy!==null&&Fr(n.graphData.links,B(n.linkAutoColorBy),n.linkColor),n.graphData.links.forEach(function(d){d.source=d[n.linkSource],d.target=d[n.linkTarget]}),n.forceLayout.stop().alpha(1).nodes(n.graphData.nodes);var i=n.forceLayout.force("link");i&&i.id(function(d){return d[n.nodeId]}).links(n.graphData.links);var o=n.dagMode&&kh(n.graphData,function(d){return d[n.nodeId]},{nodeFilter:n.dagNodeFilter,onLoopError:n.onDagError||void 0}),a=Math.max.apply(Math,gt(Object.values(o||[]))),s=n.dagLevelDistance||n.graphData.nodes.length/(a||1)*Ch*(["radialin","radialout"].indexOf(n.dagMode)!==-1?.7:1);if(["lr","rl","td","bu"].includes(r.dagMode)){var u=["lr","rl"].includes(r.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return delete d[u]})}if(["lr","rl","td","bu"].includes(n.dagMode)){var c=["rl","bu"].includes(n.dagMode),l=function(p){return(o[p[n.nodeId]]-a/2)*s*(c?-1:1)},f=["lr","rl"].includes(n.dagMode)?"fx":"fy";n.graphData.nodes.filter(n.dagNodeFilter).forEach(function(d){return d[f]=l(d)})}n.forceLayout.force("dagRadial",["radialin","radialout"].indexOf(n.dagMode)!==-1?qf(function(d){var p=o[d[n.nodeId]]||-1;return(n.dagMode==="radialin"?a-p:p)*s}).strength(function(d){return n.dagNodeFilter(d)?1:0}):null);for(var h=0;h0&&n.forceLayout.alpha()1?u-1:0),l=1;l1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:10,o=arguments.length,a=new Array(o>3?o-3:0),s=3;s1&&arguments[1]!==void 0?arguments[1]:function(){return!0},i=B(n.nodeVal),o=function(u){return Math.sqrt(Math.max(0,i(u)||1))*n.nodeRelSize},a=n.graphData.nodes.filter(r).map(function(s){return{x:s.x,y:s.y,r:o(s)}});return a.length?{x:[Zn(a,function(s){return s.x-s.r}),Kn(a,function(s){return s.x+s.r})],y:[Zn(a,function(s){return s.y-s.r}),Kn(a,function(s){return s.y+s.r})]}:null},pauseAnimation:function(n){return n.animationFrameRequestId&&(cancelAnimationFrame(n.animationFrameRequestId),n.animationFrameRequestId=null),this},resumeAnimation:function(n){return n.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},Oh),stateInit:function(){return{lastSetZoom:1,zoom:Gu(),forceGraph:new qe,shadowGraph:new qe().cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new fc,tweenGroup:new bi}},init:function(n,r){var i=this;n.innerHTML="";var o=document.createElement("div");o.classList.add("force-graph-container"),o.style.position="relative",n.appendChild(o),r.canvas=document.createElement("canvas"),r.backgroundColor&&(r.canvas.style.background=r.backgroundColor),o.appendChild(r.canvas),r.shadowCanvas=document.createElement("canvas");var a=r.canvas.getContext("2d"),s=r.shadowCanvas.getContext("2d",{willReadFrequently:!0}),u={x:-1e12,y:-1e12},c=function(){var h=null,d=window.devicePixelRatio,p=u.x>0&&u.y>0?s.getImageData(u.x*d,u.y*d,1,1):null;return p&&(h=r.colorTracker.lookup(p.data)),h};pt(r.canvas).call(Ms().subject(function(){if(!r.enableNodeDrag)return null;var f=c();return f&&f.type==="Node"?f.d:null}).on("start",function(f){var h=f.subject;h.__initialDragPos={x:h.x,y:h.y,fx:h.fx,fy:h.fy},f.active||(h.fx=h.x,h.fy=h.y),r.canvas.classList.add("grabbable")}).on("drag",function(f){var h=f.subject,d=h.__initialDragPos,p=f,y=mt(r.canvas).k,m={x:d.x+(p.x-d.x)/y-h.x,y:d.y+(p.y-d.y)/y-h.y};["x","y"].forEach(function(v){return h["f".concat(v)]=h[v]=d[v]+(p[v]-d[v])/y}),!(!h.__dragged&&Mh>=Math.sqrt(mo(["x","y"].map(function(v){return Math.pow(f[v]-d[v],2)}))))&&(r.forceGraph.d3AlphaTarget(.3).resetCountdown(),r.isPointerDragging=!0,h.__dragged=!0,r.onNodeDrag(h,m))}).on("end",function(f){var h=f.subject,d=h.__initialDragPos,p={x:h.x-d.x,y:h.y-d.y};d.fx===void 0&&(h.fx=void 0),d.fy===void 0&&(h.fy=void 0),delete h.__initialDragPos,r.forceGraph.d3AlphaTarget()&&r.forceGraph.d3AlphaTarget(0).resetCountdown(),r.canvas.classList.remove("grabbable"),r.isPointerDragging=!1,h.__dragged&&(delete h.__dragged,r.onNodeDragEnd(h,p))})),r.zoom(r.zoom.__baseElem=pt(r.canvas)),r.zoom.__baseElem.on("dblclick.zoom",null),r.zoom.filter(function(f){return!f.button&&r.enableZoomPanInteraction&&(f.type!=="wheel"||B(r.enableZoomInteraction)(f))&&(f.type==="wheel"||B(r.enablePanInteraction)(f))}).on("zoom",function(f){var h=f.transform;[a,s].forEach(function(d){Ki(d),d.translate(h.x,h.y),d.scale(h.k,h.k)}),r.isPointerDragging=!0,r.onZoom&&r.onZoom(Gt(Gt({},h),i.centerAt())),r.needsRedraw=!0}).on("end",function(f){r.isPointerDragging=!1,r.onZoomEnd&&r.onZoomEnd(Gt(Gt({},f.transform),i.centerAt()))}),an(r),r.forceGraph.onNeedsRedraw(function(){return r.needsRedraw=!0}).onFinishUpdate(function(){mt(r.canvas).k===r.lastSetZoom&&r.graphData.nodes.length&&(r.zoom.scaleTo(r.zoom.__baseElem,r.lastSetZoom=Sh/Math.cbrt(r.graphData.nodes.length)),r.needsRedraw=!0)}),r.tooltip=new Nc(o),["pointermove","pointerdown"].forEach(function(f){return o.addEventListener(f,function(h){f==="pointerdown"&&(r.isPointerPressed=!0,r.pointerDownEvent=h),!r.isPointerDragging&&h.type==="pointermove"&&r.onBackgroundClick&&(h.pressure>0||r.isPointerPressed)&&(h.pointerType==="mouse"||h.movementX===void 0||[h.movementX,h.movementY].some(function(y){return Math.abs(y)>1}))&&(r.isPointerDragging=!0);var d=p(o);u.x=h.pageX-d.left,u.y=h.pageY-d.top;function p(y){var m=y.getBoundingClientRect(),v=window.pageXOffset||document.documentElement.scrollLeft,g=window.pageYOffset||document.documentElement.scrollTop;return{top:m.top+g,left:m.left+v}}},{passive:!0})}),o.addEventListener("pointerup",function(f){if(r.isPointerPressed){if(r.isPointerPressed=!1,r.isPointerDragging){r.isPointerDragging=!1;return}var h=[f,r.pointerDownEvent];requestAnimationFrame(function(){if(f.button===0)if(r.hoverObj){var d=r["on".concat(r.hoverObj.type,"Click")];d&&d.apply(void 0,[r.hoverObj.d].concat(h))}else r.onBackgroundClick&&r.onBackgroundClick.apply(r,h);if(f.button===2)if(r.hoverObj){var p=r["on".concat(r.hoverObj.type,"RightClick")];p&&p.apply(void 0,[r.hoverObj.d].concat(h))}else r.onBackgroundRightClick&&r.onBackgroundRightClick.apply(r,h)})}},{passive:!0}),o.addEventListener("contextmenu",function(f){return!r.onBackgroundRightClick&&!r.onNodeRightClick&&!r.onLinkRightClick?!0:(f.preventDefault(),!1)}),r.forceGraph(a),r.shadowGraph(s);var l=vl(function(){Hr(s,r.width,r.height),r.shadowGraph.linkWidth(function(h){return B(r.linkWidth)(h)+r.linkHoverPrecision});var f=mt(r.canvas);r.shadowGraph.globalScale(f.k).tickFrame()},Ah);r.flushShadowCanvas=l.flush,(this._animationCycle=function f(){var h=!r.autoPauseRedraw||!!r.needsRedraw||r.forceGraph.isEngineRunning()||r.graphData.links.some(function(M){return M.__photons&&M.__photons.length});if(r.needsRedraw=!1,r.enablePointerInteraction){var d=r.isPointerDragging?null:c();if(d!==r.hoverObj){var p=r.hoverObj,y=p?p.type:null,m=d?d.type:null;if(y&&y!==m){var v=r["on".concat(y,"Hover")];v&&v(null,p.d)}if(m){var g=r["on".concat(m,"Hover")];g&&g(d.d,y===m?p.d:null)}r.tooltip.content(d&&B(r["".concat(d.type.toLowerCase(),"Label")])(d.d)||null),r.canvas.classList[(d&&r["on".concat(m,"Click")]||!d&&r.onBackgroundClick)&&B(r.showPointerCursor)(d==null?void 0:d.d)?"add":"remove"]("clickable"),r.hoverObj=d}h&&l()}if(h){Hr(a,r.width,r.height);var k=mt(r.canvas).k;r.onRenderFramePre&&r.onRenderFramePre(a,k),r.forceGraph.globalScale(k).tickFrame(),r.onRenderFramePost&&r.onRenderFramePost(a,k)}r.tweenGroup.update(),r.animationFrameRequestId=requestAnimationFrame(f)})()},update:function(n){}}),sn={exports:{}},un,qr;function zh(){if(qr)return un;qr=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return un=e,un}var ln,Wr;function Nh(){if(Wr)return ln;Wr=1;var e=zh();function n(){}function r(){}return r.resetWarningCache=n,ln=function(){function i(s,u,c,l,f,h){if(h!==e){var d=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw d.name="Invariant Violation",d}}i.isRequired=i;function o(){return i}var a={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:o,element:i,elementType:i,instanceOf:o,node:i,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:r,resetWarningCache:n};return a.PropTypes=a,a},ln}var Gr;function Rh(){return Gr||(Gr=1,sn.exports=Nh()()),sn.exports}var jh=Rh();const x=io(jh),Ze={width:x.number,height:x.number,graphData:x.shape({nodes:x.arrayOf(x.object).isRequired,links:x.arrayOf(x.object).isRequired}),backgroundColor:x.string,nodeRelSize:x.number,nodeId:x.string,nodeLabel:x.oneOfType([x.string,x.func]),nodeVal:x.oneOfType([x.number,x.string,x.func]),nodeVisibility:x.oneOfType([x.bool,x.string,x.func]),nodeColor:x.oneOfType([x.string,x.func]),nodeAutoColorBy:x.oneOfType([x.string,x.func]),onNodeHover:x.func,onNodeClick:x.func,linkSource:x.string,linkTarget:x.string,linkLabel:x.oneOfType([x.string,x.func]),linkVisibility:x.oneOfType([x.bool,x.string,x.func]),linkColor:x.oneOfType([x.string,x.func]),linkAutoColorBy:x.oneOfType([x.string,x.func]),linkWidth:x.oneOfType([x.number,x.string,x.func]),linkCurvature:x.oneOfType([x.number,x.string,x.func]),linkDirectionalArrowLength:x.oneOfType([x.number,x.string,x.func]),linkDirectionalArrowColor:x.oneOfType([x.string,x.func]),linkDirectionalArrowRelPos:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticles:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleSpeed:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleOffset:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleWidth:x.oneOfType([x.number,x.string,x.func]),linkDirectionalParticleColor:x.oneOfType([x.string,x.func]),onLinkHover:x.func,onLinkClick:x.func,dagMode:x.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:x.number,dagNodeFilter:x.func,onDagError:x.func,d3AlphaMin:x.number,d3AlphaDecay:x.number,d3VelocityDecay:x.number,warmupTicks:x.number,cooldownTicks:x.number,cooldownTime:x.number,onEngineTick:x.func,onEngineStop:x.func,getGraphBbox:x.func},Qi={zoomToFit:x.func,onNodeRightClick:x.func,onNodeDrag:x.func,onNodeDragEnd:x.func,onLinkRightClick:x.func,linkHoverPrecision:x.number,onBackgroundClick:x.func,onBackgroundRightClick:x.func,showPointerCursor:x.oneOfType([x.bool,x.func]),enablePointerInteraction:x.bool,enableNodeDrag:x.bool},Wn={showNavInfo:x.bool,nodeOpacity:x.number,nodeResolution:x.number,nodeThreeObject:x.oneOfType([x.object,x.string,x.func]),nodeThreeObjectExtend:x.oneOfType([x.bool,x.string,x.func]),nodePositionUpdate:x.func,linkOpacity:x.number,linkResolution:x.number,linkCurveRotation:x.oneOfType([x.number,x.string,x.func]),linkMaterial:x.oneOfType([x.object,x.string,x.func]),linkThreeObject:x.oneOfType([x.object,x.string,x.func]),linkThreeObjectExtend:x.oneOfType([x.bool,x.string,x.func]),linkPositionUpdate:x.func,linkDirectionalArrowResolution:x.number,linkDirectionalParticleResolution:x.number,linkDirectionalParticleThreeObject:x.oneOfType([x.object,x.string,x.func]),forceEngine:x.oneOf(["d3","ngraph"]),ngraphPhysics:x.object,numDimensions:x.oneOf([1,2,3])},Dh=Object.assign({},Ze,Qi,{linkLineDash:x.oneOfType([x.arrayOf(x.number),x.string,x.func]),nodeCanvasObjectMode:x.oneOfType([x.string,x.func]),nodeCanvasObject:x.func,nodePointerAreaPaint:x.func,linkCanvasObjectMode:x.oneOfType([x.string,x.func]),linkCanvasObject:x.func,linkPointerAreaPaint:x.func,linkDirectionalParticleCanvasObject:x.func,autoPauseRedraw:x.bool,minZoom:x.number,maxZoom:x.number,enableZoomInteraction:x.oneOfType([x.bool,x.func]),enablePanInteraction:x.oneOfType([x.bool,x.func]),onZoom:x.func,onZoomEnd:x.func,onRenderFramePre:x.func,onRenderFramePost:x.func});Object.assign({},Ze,Qi,Wn,{enableNavigationControls:x.bool,controlType:x.oneOf(["trackball","orbit","fly"]),rendererConfig:x.object,extraRenderers:x.arrayOf(x.shape({render:x.func.isRequired}))});Object.assign({},Ze,Wn,{nodeDesc:x.oneOfType([x.string,x.func]),linkDesc:x.oneOfType([x.string,x.func])});Object.assign({},Ze,Wn,{markerAttrs:x.object,yOffset:x.number,glScale:x.number});const Gn=Lo(Eh,{methodNames:["emitParticle","d3Force","d3ReheatSimulation","stopAnimation","pauseAnimation","resumeAnimation","centerAt","zoom","zoomToFit","getGraphBbox","screen2GraphCoords","graph2ScreenCoords"]});Gn.displayName="ForceGraph2D";Gn.propTypes=Dh;function wt(e){return function(){return e}}function Vr(e){return(e()-.5)*1e-6}function Ih(e){return e.x+e.vx}function $h(e){return e.y+e.vy}function Lh(e){var n,r,i,o=1,a=1;typeof e!="function"&&(e=wt(e==null?1:+e));function s(){for(var l,f=n.length,h,d,p,y,m,v,g=0;gd.index){var N=p-T.x-T.vx,D=y-T.y-T.vy,U=N*N+D*D;Up+P||wy+P||Al.r&&(l.r=l[f].r)}function c(){if(n){var l,f=n.length,h;for(r=new Array(f),l=0;la[0]-s[0]||a[1]-s[1]),r=(a,s,u)=>(s[0]-a[0])*(u[1]-a[1])-(s[1]-a[1])*(u[0]-a[0]),i=[];for(const a of n){for(;i.length>=2&&r(i[i.length-2],i[i.length-1],a)<=0;)i.pop();i.push(a)}const o=[];for(let a=n.length-1;a>=0;a--){const s=n[a];for(;o.length>=2&&r(o[o.length-2],o[o.length-1],s)<=0;)o.pop();o.push(s)}return i.pop(),o.pop(),i.concat(o)}function Zh({data:e,selectedNodeId:n,onNodeSelect:r}){const[i,o]=W.useState(null),[a,s]=W.useState(.75),u=W.useRef(null),c=W.useRef(null),[l,f]=W.useState({width:500,height:560});W.useEffect(()=>{if(!u.current)return;const C=new ResizeObserver(O=>{for(const I of O)I.contentRect.width>0&&I.contentRect.height>0&&f({width:Math.floor(I.contentRect.width),height:Math.floor(I.contentRect.height)})});return C.observe(u.current),()=>C.disconnect()},[]);const h=W.useRef(new Map),d=W.useMemo(()=>{const C=h.current,O=new Set,I=e.nodes.map(F=>{O.add(F.id);let G=C.get(F.id);return G?(G.content!==F.content||G.category!==F.category)&&(G.content=F.content,G.category=F.category,G.__baseTextWidth=void 0):(G={...F},C.set(F.id,G)),G});for(const F of Array.from(C.keys()))O.has(F)||C.delete(F);const L=new Map(e.nodes.map(F=>[F.id,F.category])),H=e.edges.map(F=>({source:F.source,target:F.target,weight:F.weight||0,__sid:F.source,__tid:F.target,__sameCat:L.get(F.source)===L.get(F.target),__restColor:Wh[L.get(F.source)??""]??qh}));return{nodes:I,links:H}},[e]),p=W.useMemo(()=>{const C={};return e.edges.forEach(O=>{C[O.source]=(C[O.source]||0)+1,C[O.target]=(C[O.target]||0)+1}),C},[e]),y=C=>({identity:-240,knowledge:240,rules:-240,events:240})[C]||0,m=C=>({identity:-240,knowledge:-240,rules:240,events:240})[C]||0,v=W.useMemo(()=>`${e.nodes.map(C=>C.id).sort().join(",")}#${e.edges.length}`,[e]);W.useEffect(()=>{const C=c.current;if(!C)return;C.d3Force("center",null),C.d3Force("x",Fh().x(L=>y(L.category)).strength(.1)),C.d3Force("y",Uh().y(L=>m(L.category)).strength(.1));const O=C.d3Force("charge");O&&O.strength(-380),C.d3Force("collide",Lh().radius(28).iterations(2));const I=C.d3Force("link");I&&I.distance(L=>L.__sameCat?70:200).strength(L=>L.__sameCat?.3*(L.weight||.6):.01),C.d3ReheatSimulation()},[v]);const g=i||n,k=W.useMemo(()=>d.links.filter(C=>C.__sameCat&&(C.weight||0)>=a).length,[d,a]),M=()=>{c.current&&c.current.zoomToFit(400,40)},b=W.useMemo(()=>{if(!g)return new Set;const C=new Set;return e.edges.forEach(O=>{O.source===g&&C.add(O.target),O.target===g&&C.add(O.source)}),C},[g,e]),_=W.useCallback(C=>g?C.__sid===g||C.__tid===g:C.__sameCat&&(C.weight||0)>=a,[g,a]),w=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?Hh:C.__restColor,[g]),A=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?2.5:1.4,[g]),T=W.useCallback(C=>g&&(C.__sid===g||C.__tid===g)?4:0,[g]),R=W.useCallback((C,O)=>{const I=c.current,L=u.current;if(!I||!L)return null;const H=L.getBoundingClientRect(),{x:F,y:G}=I.screen2GraphCoords(C-H.left,O-H.top),V=Math.max(I.zoom()||1,.01);let X=null,tt=1/0;for(const Z of d.nodes){if(Z.x==null||Z.y==null)continue;const st=6+Math.min(p[Z.id]||0,15)*.8,et=Math.max(st+3,16/V),qt=Z.x-F,At=Z.y-G,nt=qt*qt+At*At;nt<=et*et&&nt{const O=C.target instanceof HTMLCanvasElement?R(C.clientX,C.clientY):null;o(O?O.id:null),u.current&&(u.current.style.cursor=O?"pointer":"default")},[R]),N=W.useCallback(()=>{o(null),u.current&&(u.current.style.cursor="default")},[]),D=W.useRef(null),U=W.useCallback(C=>{D.current={x:C.clientX,y:C.clientY}},[]),S=W.useCallback(C=>{if(!(C.target instanceof HTMLCanvasElement))return;const O=D.current;if(O&&Math.hypot(C.clientX-O.x,C.clientY-O.y)>6)return;const I=R(C.clientX,C.clientY);r(I?I.id:null)},[R,r]),j=W.useCallback((C,O)=>{var L;const I={};for(const H of d.nodes)H.x==null||H.y==null||(I[L=H.category]??(I[L]=[])).push([H.x,H.y]);for(const[H,F]of Object.entries(I)){const G=Vh[H];if(!G||F.length===0)continue;const V=Yh(F);let X=0,tt=0;V.forEach(et=>{X+=et[0],tt+=et[1]}),X/=V.length,tt/=V.length;const Z=34;if(C.beginPath(),V.length<3)C.arc(X,tt,Z+16,0,2*Math.PI);else{const et=V.map(([nt,lt])=>{const jt=nt-X,Zt=lt-tt,Kt=Math.hypot(jt,Zt)||1;return[nt+jt/Kt*Z,lt+Zt/Kt*Z]}),qt=(nt,lt)=>[(nt[0]+lt[0])/2,(nt[1]+lt[1])/2],At=qt(et[et.length-1],et[0]);C.moveTo(At[0],At[1]);for(let nt=0;ntet[1]));C.font='600 26px "Space Grotesk", sans-serif',C.textAlign="center",C.textBaseline="bottom",C.fillStyle=Xh[H],C.fillText(Xr[H]||H,X,st-Z-8)}},[d]),E=W.useCallback((C,O,I)=>{const L=C.x??0,H=C.y??0,F=6+Math.min(p[C.id]||0,15)*.8,G=Br[C.category]||"#64748b",V=C.id===i,X=C.id===n,tt=g&&C.id!==g&&!b.has(C.id),Z=tt?"#1e293b":G;if(tt||(O.beginPath(),O.arc(L,H,F*1.9,0,2*Math.PI,!1),O.fillStyle=Gh[C.category]||"rgba(100, 116, 139, 0.14)",O.fill()),(V||X)&&(O.shadowColor=G,O.shadowBlur=15),O.beginPath(),O.arc(L,H,F,0,2*Math.PI,!1),O.fillStyle=Z,O.fill(),O.shadowBlur=0,(V||X)&&(O.beginPath(),O.arc(L,H,F+2.5,0,2*Math.PI,!1),O.strokeStyle=X?"#ffffff":"rgba(255, 255, 255, 0.7)",O.lineWidth=1.5,O.stroke()),V||X||g&&b.has(C.id)){const et=C.content.length>35?C.content.slice(0,34)+"…":C.content;if(C.__baseTextWidth===void 0){const Ji=O.font;O.font='500 10px "Space Grotesk", sans-serif',C.__baseTextWidth=O.measureText(et).width,O.font=Ji}const At=(V||X?10.5:9.5)/Math.max(.5,I);O.font=`${V||X?"bold":"500"} ${At}px "Space Grotesk", sans-serif`;const nt=C.__baseTextWidth*(At/10),lt=4.5/Math.max(.5,I),jt=L-nt/2-lt,Zt=H+F+6/Math.max(.5,I),Kt=nt+lt*2,Vn=At+lt*1.6;O.fillStyle=tt?"rgba(10, 15, 25, 0.45)":"rgba(8, 12, 20, 0.88)",O.fillRect(jt,Zt,Kt,Vn),O.strokeStyle=V||X?"rgba(255, 255, 255, 0.2)":"rgba(255, 255, 255, 0.08)",O.lineWidth=.6/Math.max(.5,I),O.strokeRect(jt,Zt,Kt,Vn),O.textAlign="center",O.textBaseline="top",O.fillStyle=tt?"#475569":V||X?"#ffffff":"#cbd5e1",O.fillText(et,L,H+F+7/Math.max(.5,I))}},[p,i,n,g,b]);return $.jsxs("div",{className:"absolute inset-0",ref:u,onPointerMove:P,onPointerLeave:N,onPointerDown:U,onClick:S,style:{background:"radial-gradient(circle at center, rgba(59, 130, 246, 0.08) 0%, #030712 100%)"},children:[$.jsx(Gn,{ref:c,width:l.width,height:l.height,graphData:d,backgroundColor:"rgba(0,0,0,0)",cooldownTicks:120,enablePointerInteraction:!1,enableNodeDrag:!1,onRenderFramePre:j,linkVisibility:_,linkColor:w,linkWidth:A,linkDirectionalParticles:T,linkDirectionalParticleWidth:2.2,linkDirectionalParticleSpeed:.006,nodeCanvasObject:E}),$.jsxs("button",{onClick:M,title:"Zentrieren",className:"absolute right-3 top-3 z-10 flex items-center gap-1.5 rounded-lg border border-border/60 bg-background/50 px-2.5 py-1.5 text-[11px] text-muted-foreground hover:text-foreground backdrop-blur-sm transition-colors cursor-pointer",children:[$.jsx(go,{className:"h-3.5 w-3.5"})," Zentrieren"]}),$.jsxs("div",{className:"absolute left-3 bottom-3 flex flex-wrap items-center gap-x-3 gap-y-1.5 rounded-lg bg-background/40 px-2.5 py-1.5 backdrop-blur-sm",children:[Object.entries(Xr).map(([C,O])=>$.jsxs("span",{className:"flex items-center gap-1 text-[10px] text-muted-foreground",children:[$.jsx("span",{className:"h-2 w-2 rounded-full",style:{background:Br[C]}}),O]},C)),$.jsxs("label",{className:"flex items-center gap-1.5 text-[10px] text-muted-foreground border-l border-border/40 pl-3",children:[$.jsx("span",{children:"Verbindungen"}),$.jsx("span",{className:"text-[9px] text-muted-foreground/60",children:"alle"}),$.jsx("input",{type:"range",min:.45,max:.95,step:.05,value:a,onChange:C=>s(Number(C.target.value)),className:"w-20 accent-primary cursor-pointer",title:"Nur Verbindungen ab dieser Stärke zeigen"}),$.jsx("span",{className:"text-[9px] text-muted-foreground/60",children:"stark"}),$.jsx("span",{className:"font-mono text-[9px] text-muted-foreground/80 min-w-[3ch] text-right",children:k})]})]})]})}class Kh extends W.Component{constructor(){super(...arguments);Bn(this,"state",{error:null})}static getDerivedStateFromError(r){return{error:r}}render(){return this.state.error?$.jsxs("div",{className:"h-[480px] rounded-2xl border border-red-500/20 bg-red-500/5 p-6 text-xs text-red-400 overflow-auto",children:[$.jsx("div",{className:"font-semibold mb-2",children:"Graph konnte nicht gerendert werden"}),$.jsx("pre",{className:"whitespace-pre-wrap break-words text-[11px] leading-relaxed",children:this.state.error.message})]}):this.props.children}}const Qh={"":"Allgemein",traeume:"Träume",muster:"Muster","skill-kandidaten":"Skill-Kandidaten","skill-kandidaten/beauftragt":"Skill-Kandidaten · beauftragt","skill-kandidaten/verworfen":"Skill-Kandidaten · verworfen"};function ad(){const{data:e,isLoading:n}=oo(),[r,i]=W.useState(null),[o,a]=W.useState(null),[s,u]=W.useState(!1),c=ao(),{suche:l=""}=so({from:"/wissen"}),f=l,h=_=>c({to:"/wissen",search:w=>({...w,suche:_||void 0}),replace:!0}),[d,p]=W.useState(!1),{data:y,isLoading:m}=uo(d),v=W.useMemo(()=>(e==null?void 0:e.files)??[],[e]),g=W.useMemo(()=>{const _=new Map;for(const w of v)_.set(w.name.toLowerCase(),w.path);return _},[v]),k=W.useMemo(()=>{if(!f.trim())return v;const _=f.toLowerCase();return v.filter(w=>w.title.toLowerCase().includes(_)||w.path.toLowerCase().includes(_))},[v,f]),M=W.useMemo(()=>{const _=[];for(const w of k){const A=_.find(T=>T.dir===w.dir);A?A.files.push(w):_.push({dir:w.dir,files:[w]})}return _.sort((w,A)=>w.dir===""?-1:A.dir===""?1:w.dir.localeCompare(A.dir))},[k]);W.useEffect(()=>{if(!r&&v.length){const _=v.find(w=>w.path.toLowerCase()==="index.md");i((_==null?void 0:_.path)??v[0].path)}},[v,r]),W.useEffect(()=>{r&&(u(!0),lo(`/api/wissen/datei?pfad=${encodeURIComponent(r)}`).then(a).catch(()=>a({path:r,content:"*(Notiz nicht ladbar)*",mtime:0})).finally(()=>u(!1)))},[r]);const b=_=>{const w=g.get(_.toLowerCase());w&&i(w)};return $.jsxs("div",{className:"space-y-5",children:[$.jsxs("div",{className:"flex items-center justify-between",children:[$.jsxs("div",{children:[$.jsx("h1",{className:"bg-gradient-to-r from-foreground via-foreground to-primary bg-clip-text font-space text-2xl font-bold tracking-tight text-transparent",children:"Wissen"}),$.jsx("p",{className:"text-sm text-muted-foreground",children:"Was sich die Box nachts erschließt — Traum-Notizen, Muster und Skill-Ideen aus dem Wissens-Vault, verlinkt wie ein Wiki."})]}),v.length>0&&$.jsxs("div",{className:"flex rounded-lg border border-border/60 bg-card p-1",children:[$.jsx("button",{onClick:()=>p(!1),className:Ae("rounded-md px-3 py-1.5 text-xs font-medium transition-colors",d?"text-muted-foreground hover:bg-muted":"bg-primary text-primary-foreground shadow"),children:"Liste"}),$.jsx("button",{onClick:()=>p(!0),className:Ae("rounded-md px-3 py-1.5 text-xs font-medium transition-colors",d?"bg-primary text-primary-foreground shadow":"text-muted-foreground hover:bg-muted"),children:"Graph"})]})]}),e&&!e.available&&$.jsx("div",{className:"rounded-2xl border border-amber-500/30 bg-amber-500/5 p-4 text-xs text-amber-300",children:"Der Wissens-Vault liegt auf der Box (~/wissens-vault) — im lokalen Dev-Modus nicht verfügbar."}),n&&$.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card/30 p-6 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Vault wird geladen …"]}),(e==null?void 0:e.available)&&v.length===0&&$.jsx("div",{className:"rounded-2xl border border-dashed border-border/60 bg-card/20 p-8 text-center text-xs text-muted-foreground",children:"Noch keine Notizen. Der nächtliche Traum (03:15) legt sie an — morgen früh steht hier die erste."}),d?$.jsxs("div",{className:"mc-card flex h-[70vh] flex-col overflow-hidden p-0 relative",children:[m&&$.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-background/50 z-10",children:$.jsxs("div",{className:"flex items-center gap-2 rounded-2xl border border-border/60 bg-card p-6 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Graph wird berechnet …"]})}),$.jsx(Kh,{children:y&&$.jsx(Zh,{data:y,selectedNodeId:r,onNodeSelect:_=>{_&&(i(_),p(!1))}})})]}):v.length>0&&$.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row",children:[$.jsxs("aside",{className:"w-full shrink-0 space-y-3 lg:w-72",children:[$.jsxs("div",{className:"relative",children:[$.jsx("input",{value:f,onChange:_=>h(_.target.value),type:"search",placeholder:"Notizen durchsuchen…","aria-label":"Notizen durchsuchen",className:"h-9 w-full rounded-lg border border-border/60 bg-card/45 pl-8 pr-3 text-xs text-foreground outline-none focus:ring-1 focus:ring-primary/50"}),$.jsx(yo,{className:"absolute left-2.5 top-2.5 h-3.5 w-3.5 text-muted-foreground"})]}),$.jsx("div",{className:"max-h-[70vh] space-y-3 overflow-y-auto pr-1 scrollbar-thin",children:M.map(({dir:_,files:w})=>$.jsxs("div",{children:[$.jsxs("p",{className:"mb-1 flex items-center gap-1 text-[10px] font-bold uppercase tracking-wider text-muted-foreground/60",children:[$.jsx(vo,{className:"h-3 w-3"})," ",Qh[_]??_]}),$.jsx("div",{className:"space-y-0.5",children:w.map(A=>$.jsxs("button",{onClick:()=>i(A.path),className:Ae("flex w-full items-center gap-1.5 rounded-lg px-2 py-1.5 text-left text-xs transition-all cursor-pointer",r===A.path?"bg-primary/15 text-primary":"text-muted-foreground hover:bg-accent hover:text-foreground"),children:[$.jsx(_o,{className:"h-3.5 w-3.5 shrink-0"}),$.jsx("span",{className:"truncate",title:A.title,children:A.name}),A.neu&&$.jsxs("span",{className:"ml-auto flex items-center gap-0.5 rounded bg-violet-500/15 px-1 py-0.5 text-[8px] font-bold uppercase text-violet-300",children:[$.jsx(co,{className:"h-2.5 w-2.5"}),"neu"]})]},A.path))})]},_||"__root"))})]}),$.jsx("div",{className:"min-w-0 flex-1 mc-card p-5",children:s?$.jsxs("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[$.jsx(Ke,{className:"h-4 w-4 animate-spin"})," Notiz wird geladen …"]}):o?$.jsxs($.Fragment,{children:[$.jsxs("div",{className:"mb-3 flex items-center justify-between border-b border-border/40 pb-2",children:[$.jsxs("span",{className:"flex items-center gap-1.5 font-mono text-[11px] text-muted-foreground",children:[$.jsx(fo,{className:"h-3.5 w-3.5"})," ",o.path]}),o.mtime>0&&$.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["Stand ",new Date(o.mtime*1e3).toLocaleString("de-DE",{day:"2-digit",month:"2-digit",hour:"2-digit",minute:"2-digit"})]})]}),$.jsx(Jh,{text:o.content,onWikiLink:b,known:g})]}):null})]})]})}function Jh({text:e,onWikiLink:n,known:r}){const i=e.split(` -`),o=[];let a=[],s=null;const u=c=>{a.length&&(o.push($.jsx("ul",{className:"mb-3 ml-4 list-disc space-y-1",children:a},c)),a=[])};return i.forEach((c,l)=>{const f=`l${l}`;if(s!==null){c.trimEnd()==="```"?(o.push($.jsx("pre",{className:"mb-3 overflow-x-auto rounded-xl border border-border/50 bg-background/50 p-3 font-mono text-[11px] leading-relaxed text-foreground/85",children:s.join(` -`)},f)),s=null):s.push(c);return}if(c.trimStart().startsWith("```")){u(f),s=[];return}const h=c.trimEnd();if(!h.trim()){u(f);return}const d=h.match(/^(#{1,4})\s+(.*)$/);if(d){u(f);const y=d[1].length,m=y===1?"text-lg font-bold mt-1 mb-3":y===2?"text-base font-bold mt-4 mb-2":"text-sm font-bold mt-3 mb-1.5";o.push($.jsx("p",{className:Ae(m,"font-space text-foreground"),children:cn(d[2],n,r,f)},f));return}const p=h.match(/^\s*[-*•]\s+(.*)$/);if(p){a.push($.jsx("li",{className:"text-xs leading-relaxed text-foreground/85",children:cn(p[1],n,r,f)},f));return}u(f),o.push($.jsx("p",{className:"mb-2 text-xs leading-relaxed text-foreground/85",children:cn(h,n,r,f)},f))}),u("end"),s!==null&&o.push($.jsx("pre",{className:"mb-3 overflow-x-auto rounded-xl border border-border/50 bg-background/50 p-3 font-mono text-[11px]",children:s.join(` -`)},"code-end")),$.jsx("div",{className:"max-w-3xl",children:o})}function cn(e,n,r,i){return e.split(/(\[\[[^\]]+\]\]|\*\*[^*]+\*\*|\*[^*]+\*|`[^`]+`)/g).map((a,s)=>{const u=`${i}-${s}`,c=a.match(/^\[\[([^\]|]+)(?:\|([^\]]+))?\]\]$/);if(c){const l=c[1].trim(),f=(c[2]??c[1]).trim();return r.has(l.toLowerCase())?$.jsx("button",{onClick:()=>n(l),className:"rounded bg-primary/10 px-1 text-primary underline decoration-primary/40 underline-offset-2 hover:bg-primary/20 cursor-pointer",children:f},u):$.jsx("span",{className:"rounded bg-background/40 px-1 text-muted-foreground",title:"Notiz existiert (noch) nicht",children:f},u)}return a.startsWith("**")&&a.endsWith("**")?$.jsx("b",{className:"font-semibold text-foreground",children:a.slice(2,-2)},u):a.startsWith("*")&&a.endsWith("*")&&a.length>2?$.jsx("i",{children:a.slice(1,-1)},u):a.startsWith("`")&&a.endsWith("`")?$.jsx("code",{className:"rounded bg-background/50 px-1 font-mono text-[11px] text-teal-300",children:a.slice(1,-1)},u):$.jsx("span",{children:a},u)})}export{ad as WissenView}; diff --git a/frontend/dist/assets/arrow-right-CNrCtUoh.js b/frontend/dist/assets/arrow-right-CNrCtUoh.js deleted file mode 100644 index fe1eaba..0000000 --- a/frontend/dist/assets/arrow-right-CNrCtUoh.js +++ /dev/null @@ -1,6 +0,0 @@ -import{c as r}from"./index-DMY9lUCb.js";/** - * @license lucide-react v0.460.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const o=r("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);export{o as A}; diff --git a/frontend/dist/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2 b/frontend/dist/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e30e2395f93890ed62beb172f637adb6f5e6cd31 GIT binary patch literal 21424 zcmV({K+?Z=Pew8T0RR9108_945dZ)H0K-H808>o>0RR9100000000000000000000 z0000QfjS$hY8;7n24Db%4hVrD37i!X2nvFaIDzXF3xpy70X7081BgHbAO(YP2Z(kI zfmR#NttHCs6Wk7voyPSxGuSrl-K~0>r~*7PkjDXJ_qfIXpK+jujQukY*i^Nw0SL*e zX7;4KR(J2mc`dE`I@D_Fc&w&A&YE@$oAwQ^4KqR=vB$Fz=b=>DYp6wp`e$Y3DTeM~ z+4T8aN^g{}<2VkMAmZGp;@x&*EnzW5M2tpEoMPr!C0Mx`xoQ{LESg2Ni!3GnW4|x^ z-1nC$K#IW;xT)1amJtRBB(gAxON3q*Va84lQL&`;%-$On0HM&?eW6oG){=$7XcP*S zCEW0|&4;@O+&z;}0RfK_II?U)G6igO&Q-d7zuVl}eSgKWf93Www_nviHCNvQGZaXR z0Tqc=6v0R^b~~@N!^GhH6n2k$IREqBF7^+p9{m0PH?`e+-+TYhA8A9>h8PI;26;ss zf@pkH4I_dWSH^@=X9%XNDJfcf{%!hp@57llAV7QkWm$lhNivb(lOshxJjpUuTW`r# z&)ig7)j6_Mbaq;sN{5$T@07n~J7uCbI}q)#j1&NP0sJ3cn$uKouzbNvkZ7Vex=1Rv zew4Nqq*rU2%M~A5+3_e02vcE^WQ_T>yAxpxI6gGKAk^>gXEwwo{QviJv({Ik22O_< z32EkjpUD>x<~GiGNEVwl{GhGPY^YkB+$4w>^+>1Qt^X@2NW87-+OCEo8IS@f$^NG; z-E)$n0#e{9KfJRWAOq^i2>L77C$OowY~yx)xuzZ(P^APqD`i6Tgu1gRBB z$TCb!U^hTd6VkXS*_xu{NkN-4g98ORP@*cDTRoa{4-*g`GaZ02N9`M3!PHLS2S)UZAhCIdcM8xEz8i_r8|j7 zn!G}tJQcN+<6BWUWQ6=U9U&3!Lv14VUOE9%Sdd_y({KCA=INx((LxW#RNTTXM2v`t zxtsm%*=t!VGmwY~D#H~Z(0P2??%vB#wd9{VMmBs&i1@4<#@y3qV!gNTu0eu|N`W%A zP&fX6NPqy`008izHe3V%L4emr;79LvXk19Z8nUH?RJ0cz8R3SfW=jVz!b0Io2#$c;zR zyMW?xV|6(Q(Ey;m9R*Ps{tF!_bVeKqfum|G(z}Y)x=uH^2GW0SwZ} zL^g7fk0M|K#4`6|N;$=tG+C-`sTp*m7d6v~f$%A3!d@+=Q>J6Cf)Cv!OaV29g`{cD%p zEYHHshN(I`tkVWlNYgZD6%NO9qDHe$A>bCb z#v3F%__9xJRSpblbkhpV1^#rm2R$xUtHA4UEyv5sYsj@KpClQt4|d>9ZV#OsfK&N8 zP2Shn_tko$IdT0SlhA}8R6c_7J;~L2UcqoPc?;i*QJ!xzq`sQ{%)g#EAn6O*m;A7) zQTg2?`46lR$Z24kPFxR|0LxrP^{G-0e8==rK3c%@;a}Qf;jse3m+r!|E;g^0p_sYj zC+yxG%NGEIXhH+9utJU+AAAW#hn{r0(w)9j{iepT9r~>*{X0XtMA5Fz6Pj?uauu_N#CRnY1d-Y;+t_u6!KBMf(w*S1b_cinoM{6R>9GV~8vu*y!zVHu}^=h{OX8$obJ@kpUH(?$biEk$(v&bZ;(R zZjlVX!HemvZ`0n)lWoI4{){qBGPwC{t-0gNZY-g2_785@#!U$)I{9)DQ>pV6ZSL{g zc$pahoL82FnzQIk`E>bVn(NS;g%3y@;@Dv)iz6<(>YCf`Al%V-IQXC95&}XZQ$oy! zgsq4uM94{)l%7S!r6Xz{V_v+Y`bZ@FL_{N20{#Sr3PXhJh!QCtSE5V|S(gZ8f1cJ) ze>_Ho7>X1pT7u9@g{MsT%0;5$^8%HsiPfmZRDtQKYiX=e~<^Hrf&21_+m>n<&R zT-|g!&rec-%9w_`=){fChm1s^xlK0Pud9`T(ULfux2#v>cun?5C+V#C2~1GmIW>_Q z^_cqh`af=*dLR#x^rA$I5i3r@B%GBZOSVo7diT+6Ba90Djw zmqHi*cWZiaXbF-owBQK2`Beh@8}uye$R}vUU%3yf@xc+voHvyvV@s~n8Wa3E<xoC!W(@-PZvnQ}QLj)b3F)QaKaENRM+3US$SLtbW7CV5tz3C8A7BnTRqO3MaGXr!Kzvw|%M{_Q33| z$MKh))A&~i{#TvAN(z}ek}~mhbzq4c21k|{CnGS4#;N|}5DuxTQPFz?=xT6ZQmHG2 z#rx{x3C`f^RRg?l3GvRTc|=6lGIK%_LYcP#R5KegwG)_HdsHXrkmB>X?H5_NWNK*G z#cVx0SDFo}_KOc;}L#fL9H8sV~(t5m1yBjiU>oC=hE@Gpmy z1dt9FI)Xzgu~bqZnG{kZ*iS>Nvh1 zht=GKmbP2uG`k@f!2Bxq6vae?kB}_}7|0>=`~?WLKsyj(g0NwV9|e>=?ZT4oQu4@X zqisv95MX`c{#UW%4%%b0wU(P}y6IYsF-)UsCVdznu`$LPXS@j}YB9-VE3CBEI_sGo z@f0z(QcE9D3jo@@DvN3?W@i~DWbOts10sMR0O7~O@kqd8uI^ugYJ{bopUbMnb-=pwIb>PfX0Nv>T!6hM= z#e_x}EbHs!X)$~5{Dtn%!m7w-#f}@lJ4An9PFW=$b;Iapc|{po&i>wDRfOBZ>S0lV z5jSR6EnCr*V&K$_C*GeR|&zHY4=1l4^?qK!Ol_STG<^AT-P(lzMBB zN6J=T0VMg9){8qZPshScPUC%PBM%?unxK*!jI1V9ghm>*u4bP37FcMJ#gYc&t4+NTGE&wI~!VMP% zNgzJ}2tbTL^DGApbcmL;t*{Ysx;Y6pAK~;7{Yys1n^1^kw8;ZAD3y3&nmim*5kkYnzD{j$dcQu7c{l*|u{s3vB`T|Lw#c0PyIO)1Q2_Xz8Qu;rQU{ zgA0HF073v5+y(ev=Gxlu4c{cbmg#=8Quey-um?W+?2coOJLIXI&e-9IU3PozrC0X* zgvKWzB4)#u9eWB+l$@!k`S9aUBY;+@FgoEPoO0A@?_CHVA|*(aEOjTw=;?MJ(^a(p z!Yd80+mHT#kDc(xN$=dVPpe1nd+e{T;lVc}UH8^m-y?vZ-q>tQ*zmy@2f~3(M!8{| zt+umZV_@Q9;ouRnCLtx`NUj41R$O>+<;IJ<=RAc76eL(jzRJbWixMYVtawQ>rAe2e zhc3G6CdB}GOmY;+^+LXC0}WE8L9s^O3jOy_TbOXwH5XlW#U-0%cjL_QuGXu-K0jrE zLFXT5VgR{y)g+mio7b7iCTjs&@nS#aDtKDD8-Z9M8spF+9H7;$YO76kH2 zHP-$_+j10cL5-2l5dJ4SQN`l10Lic?5@lmSBwZ(^vs#1m3IzO!qFF!C5w_PBft~h8z*^ zc;abmSXMV$sEx0k#p`Ss!S3T)hq7uDm2}lSKpzX1DNZYDpbsjG4QRRTY1PqFXRMtp zt`Edq8gq25LfINX_aUohI`o$JC^yl@A17Ia#5t99_D1MP&i~)GTN)caZRMnDqr8aLZDf%<4Hhp2$dwtyM(L6~vU* zQfE;Q=xp0tBUV3Hs>mRV%7R}JAE=mx)d6mXt7c+(R-N{!3E$z_qCrkB88&ZnT&pmW znuR$Aq%R0_>ZD>GYx_Q{pPs&Abd=MI1+4A(wY^U%W35=&x`>Q?_dw656UgG2b4{!$ z%;n4hvlZl6Kxy90C?=^IZu%*lAIR>kOvf860|F6C*r`;R;gDH~^?W$1hsk9#P>>!; z;;v=n@zP2tGQ@1(Gp`PP#_AX;b#`EpZyLyQRh@RgF76i2IXd*>IssOYi>)DlRxVy@ z#WFHVWdRj|P!$Ah2@_&`mX$8IR-EUyZsU;Wty)aW*Q3MMA`M{xUmr6Vm#hu z9ZP-xNpt06l%@bIOn~q4_nx9q$Jl#zNsp*@Yg3fZ0RZ!Pnaq<|%J_%n44B0*i!3oS zzmF=OqkcGB@uEYL?8l}mFOfy4e~o%~iRRZcw32>0)K@XWADdCQQeAryS-ST@kG%p> zX5~&Pit5^C*T!s2Q76SD9fLGmLz`J#$g8Qj%m4CyjL-2QygO(bsJT ztSlL0b#oIZIc+iV)pe;-D1sR>RY%rI9(BDFH-s4Ib?cmdsS)2k+xakTo;>zvG*DoayWX zL`+o5$ntwet|GCUOo=&Z}+AZnTPQvMv-)!I(o!ovQr7}hdnMw8juvodLH)pT2p z7GCVbRY{HUl9OGxm9?6ah6KK{N?*UzVwmf9yWz9l?z|p)LI!Ioo}>Pj(74QCd3PxH z1vLh#StxT>kada;UslFs`D_D7+%a1~=+uIM1_7aS8$c3v5fHkzAYeBE$9DJG4ghh4 zJw$|_8xgRVh|qfz0Ae2zq3=cn>?fkx-!mo%184!p76dd22sv#4$(So3spL!@o23q@jmD3UiQcELvV0!UDU`R7$>EwOX94sXT=!HCB73 zb15#1v1@#^Pm$;J6V_5AhC_v@svtL4Z?d0m!;4YaYNxU4R#Ti_j`aaupR^#Yo2Wf} zp+}lJN#0EUkUFqFqR%iUGiQ@qo1%1q%(uTG&luNFR7%F&uwit(-aD2c8u_wrtt$4D z3r!27tgRTm*sP&wdBkn1edCXfOKkEB_5Y8(M*uo0DGamyQH{ReV@7)!kk!ycjm z-eyKXYxr&FF?^_xamrajH(g*IZPesKSb^+N8bXk9 zMvimns`HmtC0(6Qdk*LnWO%r=6UpY_(C9XNrA0&{ABiQfiVUxVaB+p2ZhXu9K5 zn}I9zY#Mk9E$~&CFCt{&xc`wdhf8&G0BD3%gLo0>#L?nmIG9hbnHYrXwFs`vu&|X( z7406@O)#rk`+k*BSJx=HH89@DSW0YK>cZubreSF&wd}lsP#wgUPGopIM{&A!$<$|7 zXDdvg!)yz*`7`t*lGBc5PmHD%{9KB&h)t+SM~a# z)ujc;d1YSgX>Nj*Z^)nB5^yFL-(Fg^uHsN=qFxZ+%E>5lz8I5QKh&- z0BV5qt&bG1#CV!NA{)4#cW#7H+1&;CYh3F8W3bbjXlChZC(Om;bAj3+j%uU*(b791Q%BMghJAMU#M(B8 zFvC?5XdcXgxDUf!Bb)dXfKC`mt~&|Sf)P4oO0L}jm>l)i4*(j6($o3d;3~q4 zb!HmNufgfTA}ws~>7inWW_>{xob-`il0b(Ci{ z%dU>{g9B@H^5`a8u|daciA-egGoK0aq%s=aziZKjsx__i>0CyiyvAIGCP0=dS&yYl zD5di*k$kjOk>%mG$B*U(q>7!&54W0rQLuhX!aeH$8oF*7?_T z8}l`dpX7}}^%}e4?!*fIDe`r|)2rm%G-UhY=PebwHk|G{B#BJvA(*y7@ewm6b zOfZd6-=!X=@l^^rjMUX@^^S)uU}Lsx=02t4tOWlvkaT3F`4MM511ce-`2aF(^N{f0 zwa{=76*HwTm-X7!eIglT!OEIgE&f|~tQf3v#{vhXcj0Nw#TfHt<@mxYDquHIV2j>t zSq==eZ(i@-Gnb~Z`?eZmLN9P-252Os1X+}8E=s9as7O8slg};R>nwtXP8FeNa_3bl zno!K~CXnoT&!(Cv5^AAYF%0Odq)nskxq-Bc_x^W8!d9%;kJ67lltXANsF8C#*)T@; zp(%V)dj-~msD-lA<=KWHSRWz3;HU{_* z)aAeclo|R;M?eL@dZ&9|8p)+^<%ESPoni762zfpv_q##PL_-mX%w5t@Xu95q#wK7G z5ik_+TN_6uZRUlPkw%Mm&y%>u69rHEh@(3>q#ek-0$|By#JVW1b|(f4&JylzAf}L^ zwT|j@e6^Qku=zdCEWDdRu}O~XDEYu%g_spw8?x0g%Ne^~CZQI#++py$C)r4rey|B{ zIoy9p^Fy68SLMAgxcF~&)ZGm6?ZKD~x;5VQ=mCD>T0Irvoi|}}7|m_3w=cKk4|0GR zYb^(+$4Rt%2HaUm$G)@ld?pPgC6-F2e5wDgvHQ1WgH7$dipJ%n$6PeVRl#r>PZZ-` zIg?9LlpZy~GRgpj!SZlUp=j$%7Bsn_QXHtk`8traNZkU;&h1H(L+4N2!=N-g@LCr-|s zpw^(uUXb>@dYVAEwpV*iGomVDnviI8T8&YUJ+Dx1T&dh@iYnm3o zpHvhsjZ(GErV~`5On3DQV%O|vWAw-M3 z67*w)mw?+hq-OeOeOLaI2LFO0oz_KfV{<0UYYFQJCwzQLP(?V?z1{}V`cV}_idL*Q z!bEFEmCVJmX$yum7!vZ>zw~lbWnKCXQ*xd+bFn_UqOajPwP%Drxqcr00J=GgUa8*< zcA~$38@xX^JHh-)DbV2!_=}i7%2>@vbklbN1zWuu31y(OQ07T2xf&@Ye?=+B^q7^V z7D8o!r!zg%Hh%C9gB596JeFQW`Hkuqgr@d#Wxtg^_L*@?KVx4j67hZtL4P;ZAR4t) zwQo?h$wE^x6lrX$t9Jkm7C4|w;PWIFj@x?O-DIGd_ukR-hex@L;vsaf8=Mg&;qX#q)PS7d_7vdH* zNO0()45shMQV>vyHYyT3B<+AtZu1*X#WZ^@P!%v|MiB67TaDB@*px2MYYCB^tZx+* zneiHY@3kn3J1tB>-6jWPh_yeh>Ii}lEwn2w7UNBS#6R``=3n**Rzi@TOlmEw614KS z6a6&>nzgffF-_mW3iFJCG~b7PTC?&h>8)@d8Rc0i+&5N!ppnKNl zNsg8Bgl8h~WdQB~&yV`-mryF*di~f)W7Fdef=`KB2!90cGpgFULr#a=-=_QcUbBWP zhR_7Ax`D^L{($ZC?cn7C{JQ0c6gf=m!ds5PD8mP?KF-IB5WD6$g5&XX&!SsU;4RY; zx~FWzZl$Nk;fDacsoG~C>}sC@;4S`PLwh@f%YQlCig1i8DJ;S8^O}!S*a(DOpB?5P zmjOT0i5*huy`geM@pp?7SccVSfNF->T5Z51cMD*(6*PK&M8;9Aa$wX|AX zdOrYP0pPP;$tsuABkA&RN^g~}g)oBNn^5(kLh+(%sp>_A;zO12Q>rE{e`)R4{|fsh z2crXS=q4wutfuv6#XPVPOJE0$%-Zfc>S;P~!6OiK=yY{PTzVukJg3Lg6JKEFNG=V6 zG{s%SX?dFp0Z^@-b9M-TL(L%c0w91;0ighZ=HB|l!(nBx@EQPJte^~TJ9!~Q750G8xh*$P(A0*@6=O>5q&~} zUBwz1$@FJNM$?(m(Oe(p=AqKRXvQ?ZD5+1p`w6AZulnSpDv1w4CR$<3w(l}>MjV@t zt)z$uhcnk{<$T(nHFDC<&DYmHj{^GD89H}LV^TN9IK1XZVzEZ~i^hf(_u_eols)0r z26gJRz2C0R1a(^1cD59$EBcA+sQ8w7&wp-UajDR|ATj^|nIfEA@$G^xiQQpxslot! z3P9MXk;lyHQk%GSVWdAe!zXO-D+*jSE20rUTf%C1ba-wy>+=rnlcN1Q#4fHMmG1Wp z`m)*KxryYh>c?cV$JFC5KdvT1^{NomUnL(Tw_9Q+b*Z(>()SpN%rT=ZJbvdm_yB;g zN@BH3RAI|j)=)VqgfI+Yo&GhM>=TW6=f)T1*H95lYH%Qy9Ga66KptkJ?lpPyEn4MW z-=2Gt@aVI{qY3-=KC4~RmFKTs>Nc1Hq1W?~q_?<1w}S3;bj z)ip4)5oO^?oXT?PfFA1A)^fDBmLpld}FTZ3Lyf*>ri_rV!1_Jc; zMzT461gS@)Y*lwl-j(SYPv%+y5UZCH0=62$6oiT1L^u1MHf1*e9m>B{GK=KihAZ>^ z!JHQWr6$!ZnpWX3f?@F={L+0O;fT*Wm8SWtnAUrEv!;5bUsk(iCLlwrAJ)_gUdqk4I-vJOf=mfhAp7| zwAQ$L)3G^|Mc8VbzWBXva;{bPYcm&Y#5&QeYa;)Nc=Jqj@TM>AayYY7Fy>uAEh1%0 zf8=|j`M`y6H0$C2n8w8O>ao#|4?9LhA-|1fv&6i%7}CBF*&%TahDy13yp#*wucv~3 zN@Ln%X6(J3D~<4sOsWTEF2BW1>RZ_Wv48+8w>N+1KsZ_dj%g^Otg@ReeRoPq%*t++ z%@Wcn*{!9EUV|S2V3$o1qEwi|LMX$BGF{nVC|1e^FGOA%FZKksJb7Wpu>l^y)+cqI zqUBrrAv8nihm#P2lU&{m@(U0aL(xnXgdzx`^evr5@K3sr^(XTNm#;c-Ids8_6w>aG z)FA|0+~x6SLr;YRS-1ONwiFR6_Aiv3lPw~MsjT{9Vrd8J$;Nx|`Yk5Z9fUN>XVN1a z<69MNZe28L5s9Llm=veFzRSPVp~cL&^0#h5031_AuL!$cB=JI$Hkg6^F4lDN!x2@e zqM@k_DsKh4ow)~lyNTg#)={rwHq zJHKN8{i>}HPR*OMY?ONMbX{fWPx9}_?DV9?IoEGtmGZ&!f!>~2JXtt!KG>U&H)Zz7 zACc|VT?3mvBEN*tZmeqHK11hjwVoHsO2t=hG#1(-Hnrd?=aUWs*|_cn3Xx)5)DWcOeoTwZgB<`9<+$-&ny)`hW6xnyF%E|KNCm7jC^X zTnFB7Z&SM5^$o~1Ds zytSWWupr&YpZ^7d;~|K36zB-Ov%tqa5OYC{fII>gJbDqF-x;7I^!5M-gUWh4Z_Rfc z&YJJ(C=1Ktir{WKpoexV@C>8B-Ng3@GVvW`T0(mtkG%>kOHfbPKpTWVxQEw+_1_~H zOhYU2oR6nx_Bd?ka=PUnPh%&86hS{rexHZVL2iVw8^T5i11$N2*Wq69R*;6J zQHw}y{!v12WsPq{0PwNO^qIqrFd94n;R+m3G*@OKffStup%FqBag&a~j`c9S0h@V} zFj{x`-d(g&KK+NO_OEB`+aT#9;lgYfAn?9}PM&#As%p zFBaSH>2De4;7yQee;8?AwzxZ`1i?Fh-E9^C_@edowHrGz_%Oo00rt{}w0#Pzb*gG_2w+8iMaaD2J!39xjaEW7=+b+G>5;u-){O)$u^X z`i2L1bxm*G#BOZbSGZ>J;W@cd4&79${0rr3dHPlDnD$kL{BV?9yZS6M$-&iy5Rz6X z8<~6uULMp6ugY3YhQ`HGSDirr23WW^@|L`wl|bmY=@oPHuAc@4Zu4H!T!0vsm1TdT)xf! zDH~fDp`JvzJ0HRW{Yske?f!vSpfr%EAM~BUQKd!FjjF{A&vV-DT!!T<&Tnp7T;*~& zs=NseWvmK0#ew|zh!317(nzuo0A=Elq^(ro|Ip8i2u_q5@MOZY)MNQ2?y|owOSU>4 z$rjm{whkd2F`I2ju%#{FjAQJiY&n(NWsA!|OoyOi=^EH*fr8VW6bH?#V;uP!d(cC?RQRt$9qdvRl0wnj;$ zJlZ5qt((v}kIr;9RzGP*fhC^{Y&*y1Ag}Gj?&Ris>Oc6}kKAondT#m_{|sFLJFd+^ zEF;c>@n&S&*>78$7EU%|7kqlj?;=w6uX&<1 zy8c$w$g02@OoNX9l@l|YDuVr^IM&TI`eI}lk#V`QVsl;t#kYw>W!G*;JWGtQg+wc zR=(|zn<&ZhDU(Q)S!~<6>BH(MV^pn)Tj~C|Ba-Gv-+uF(+QLEHgVIXJ@-Akml!yj; zf-ty5v2stfFR5w@RE0ZHQ-twH~1(W%OY?1d(!CApeg4sIWZe4lm zmcuL~gqK68gRq2UVmBL;wySJgvM1GJo(5}}QcR20hZcB_a z&qn7UD-kN28v1TXsoUJbt$1j-w8-TSPj4sO?*f~RwD%ssoyBvSfP%5MJEw200A5bEK}|H zWLKla*s@5g?Ta?Ft)LRjC7MRMgo4iHlIo6jC1xP_oZm<3x~v0$wp>WrX|nl-z?yIO zN=T2tq*giCxSMDX&#yP?))*^Dy>qboNDXH}eFP!cHj=#0-!+7GuUab~B_b&IQY0ewK-Ou>=>Va(PtrE{1z5ga%wUsN-|O@qk#gMkrV#5(h-igE^G@Iu1Py zA5grGLA|>7bBH}Cp9T)SEwoQ!7kbZY_dR-{{N;e+Q`jQq4|MtYU=R4Vo`+^#3-K?~ z)vc7uuGQr$o7ZQD#uCxqaz?wJb^X29H0pl4ULbb1x3S~fpGc>TFMMHD^yY6kJQk0Y z=2(o4T;unf&HnC0@X5?dCD+Zs1&Fk^Xm>Mg1Q%ht`yI8Q)|IRbN{g$Cke4D0^O!@l z1yagpV^WZY8J=rs0K;r4N}ErMsuhQ!ivc)00BW^Me{yaHsNaj>5gK?O)a?T3#WlCp zmZu}w!S(6!8Wu=ByxTJbc6JwAg+B1e2?~oanhI`?g~13$)oi3{&MlAF)e-Ak>o(Zl z(?sl8s9@bRrGMk1wffhZlPHEq_`CkZyW;IBA>5iYy!k}K>&=N(Mft_)Rj;Z~9ht^k z;D$o-!s>-Cx|in*4wHB3x9xR%)Wx&p5dr_+3NF2D`g|1)!XxBa{q{W`_ug&#yU4@B zhQ4d)TD1CtYWM9MU<*Ed`)>8Cs}`Ar({LSxHzAd00r(hz9GSkGmE?5HuJGJV$Z{8Y z|2k5{s?tBfQ&%GT@yJy$NhKmhM8bs*cgO1UQsA`DW6whrZm&=q9>idHTJ2Kc5cEaa z6=&6M9QwY2kB6`8LA4=!19lEO89tzSvN6HsQ`n)mfWTWSD)?Y7|KNTO#))HP zDbp?++=n1%YBxFn0bu|KFn~icoLu&GXAQ%Z_~w%db2tsTsB=g}A42S5h=*VT4`-~K zU?JRD_J3y>WZhf>(YZ zQMuhD3M^mzbtT`D((k+4-;t8{jm`ODZtfkDW2x#t4z{>l!k_S5yP>^{taNovgxqfZ4(<(y?_sIQWhc(A?qSPXo=ZjDLmu{RP$o!Eou%3Gky8 zg0J}<|6m~Bx-ySFTp)$hA$SFbd3$2sNU5AIY+whnUA{_c;ArreHm+5SLJ(cWc6iEKw^s#phK|6$(0B{LxTuQ_{ zrsu=c36j!rj4YSQLmNisrhIJ-^U))0KK~S?g$K4n+puUW*>ek<-@t*CxuHMzIJ*V4 zf*@9|TbE9|xkp$b#;9lhjU$*38?m#QyELcxrZO=S$W?|8`qHW7{vzl#cL?sg;VR+ zpe(!-r?Pc)K+n}tcn8%~hA878G?Lua=(k!Pdk;&KmE*_vcqoNerA&rA3MJ)cT0KgY zT-+5U+vArlKB2%(%w03@OLiq?mn-~~(yws8-C0oTR8VT#XO&sUlk>~vqyG!DE3W)| z)fRtfIww$94i3)`bzvm=>g^52JB@6Y1;u=uXH3<9KT9LR!f*p4kMbX3R5tU(N?T+- zRqtz=JMQp>H$<}AVUB8uv@INUwCh3*8_hJt$VRvb!=o%qT9Q+Nz}6DSQ8_mM(7{rl z>ErL7Gy)v0UJiKU-1-`o%!jeO!bSD}D>y(bAkE6vlB6psF{TId>F$n!62X;XCxqdi zLLk^%40m)ECJC;=+Y;wmpzh4^r(I2 zK(P>1&8xdt(k$$g@*W>LN=Qxs)eRQb(SiQMqoe(Yj`q(PJJLUJNT2V(;UfcMImb*Q zK9kMHcg)1|`I&fp$EMG8)}E&}iv&QhvWu?cTkIL}uwI z3*+L{Vg#)OpdG?m2oFN&x<#QFhBh@od4Bmst#qC~O*j=)$|z%Ri5 z532rp49FcUJcjc%44KoQUT?(0NuAh}-`Mq@HA%B$O5ZllrVG8#_Z$W$6uaRdSm zpHE)z6q4^8>zOC;R6K@NsrPZ0nQxzCe}1o^_UvD#zkjWVt(Q8lIcR1A`PXlB?H9_> z0O9>`_h>7EN;~i5*tyHAt2{OA_)CRVOIP)DtRKi63Yf>muW6u%<@15>j|n&ph6reXbQF%QI+#-I_xb8v!sAjPa4sL%knAY!aT z)E)%Oz8tirMP*?7b>^-{8k0# z+YIN4xp}56X?tdE$5WcH%Ap;BxRzPEo!J}R?Kiv0-q9@Ez4|r|yhbfbde}CU9$)oAR|`NFh6||` zgRgMi(N49jj=eZ)!XGo5rYfY5YSe(*?2VE@~R>CaAP;sUqwV=TTTrtYF!@P~A z(nob&z!nz(yHo2Dyoy!hb<3~==0?_wF|LgPqg$62-pTw_@B*nM-=wMbD1xRBTlG8D zDwDl1dEH;w|80-ZS52qZlXj8%-s2>(6YVAG;A6U99^=|1Z`KYkO}0`$KBnt zCcQa^jV}DVs{Wf}A!y$ig<)cqWL{2j3`GLdjiUoukn23HZwMSfgcyGP93&PE111#KP4Z=n5eFjpF)H`Ot zE*x`4>k%1WjWZGoPw%p;&5E3aM;&UJMz^jp(rA=U4l#8Fr3nc&h7Qp26NEOF6)AF) ztC|VeX$zzb8$L;p+Dl_ekBlWK&YZtJ}ZP(u>xRQ*u1d>Y2F&T zZ>rT~vDoFif~MKgKRS}TFvL`)iwy)kTfn~Pz3P2Z~38OjdTfB5kQF|?SRh^-=;;hegqT2_l7VqEdXE()d|fjR4wK^ zBfYK!HVkBZSxVXz&>cEx^?An4U;qy4TS-tw4w>n=>`q~k(Y7ot{e%!8#389{bH$ON zH9Q>3g2P;DNn+XBpO@X41cd(uA`FKsG^79fj@;rZj)C}Wyj{{E!uYyzlkaV9nA)Nc zU!252S?WY6VAep09moPPcfZvcR@a-^#4@9@>6JV?8|xFw$0HHxJe8?Q8c`M&)^xd- zGwEk9@0#!gXTT#M1a~rBO1{jz)2gfzJmwg`3l3*3C6>~&2h&cy@G5QdvlI#R%|{0< z9!fuBYaPmO*Eivk2f}}p>@E&*V$`Zukfv5sT-d@aQP2T}UES>WAdl>2)|UFOWKpHT z!+d2K00S#@Y_>fBYD45)d1@KO^IX@35jR&*O}?UJSSkPv(Qoso zwd&6NphupeNGDkAMPXRR`YxT0ENsM%ZB);fljc?&w*=5$A5sIrN8~|>AIc1f!yog0 z_Mvj2&1Owhc8bCak*#?;>+2J8f6;2bSB8|8`U86IY}s(F;g0)o3lX=%PN$}!xxF~< zV1SVAnesYY6zucuat`Q@c{+`ugZ7xwAeY=(kDWi6W|g!pPeAX{CTkKnjI9*?7dQn$ zP#9ug7%>u}cU=D^XUk@&lyVn&%6ZG`Q^8HQ0376xn8ooJ{8CeNpFP7p;OWC>AK$*b zzuiB@r*Mm#KBLUfqCrin4b99mZc*8RB7_D*S}B@k>ffkx>&)mG9V``Q4ILyBb_J6I zG)++h^t+w|H9Q-ym{NWJ&(7-lBczeRKJ#55E~MohCddK^f9za}>eJRkH&ncgJ5vBr zvuj3S0fQ5K>~g=&gvzcqMC~Iotl`NOfC)e}WY{?ws=Y|c2g770!`TwE)$5^Z;*7_P zXY=YAm5XDqSEi0VubQWGx<286x8#=q=4-M5mGLiV0AWtsS%66lUqF7b!2LK0!ioV% z6rM7S=of*N;XlGVD4!V~4xraV_1H;PjQPw77?zn^0@6_ms)0!+o=^R3H9AG$ehC(! zd|ddQ+((|>mE5X}8b>LU_+_}O@m@4Jo3dwf=@-)~Tc5DI^cB&0Hd%y$ zvT8`30YC`{lc7(O_QACNW;n-LH_Pek1sm@C@Q)g4LvvjKnJ*${s$_YOCp8xI3@Iw_ zhyIwN&IFb48**>&Gs=p&qK@1-d${lQvKrC|aia=7CZj%34X~E9;bT;$`j)FcWFqh{OR?iMr0ip%k_FW5L~5;QHw z0%bIC$~oqcFQ`w79rUYEakst2E5<01I=2#c@gAfql?o9uVidiYMnVFwO*JvU`z=j+ z)N4OPze-#>xOE-MRJA;Y_vcQ5LC<$#7q#(fh;Vb)hOymQWZSqjA(|2OPjAv1a(gsI0?>VZuj0WhKPo(W4y>4Y8%629q~NcV_y=mFYHb;TAFTs zdK9}^;nZ{!g3G+ORU&5(aw*6dc1!VP^Z@qqWAHD35^T2iSq+AU(!Cn#9=jWb?&^NS zX&ddUz61;1E#Fi*yVcl!r6;?)X1clUL<{Q683ytCy}5~_++VO^sO zJ=yRZG=aS4*0i=S{c%v4tQ@>(8cVQnYR>vY8DuF_aQryb({Hz?6pgMvKAiv`efjkL zH(!2u`|A1q&Gmk_&KA>2QDUUu(KX^YgnYStHxN->aOKK6Pw-_{RqjGdVoftkMYO)r zKBFj~@jMA~2*(@C4!6@0xG8q$(*ES`h%6p3Qo~i-^IRF$x)i=Q8zMmmeV)0tM;}I}hA74FvjQicDNN1BU zut)u#uCW$lWp>3tlEsc0!6xkP$Q(N6eg~>9WL16atrGOzn`Tp_f&MSe7YDRXX+9fA z-0%(88j?y_&eMR=TL!-=F?g3YsR0pS46y9ke1HH7y~{#k@ZY~z*?V}URNL^X(!#IG zSG^E$cfBscJj`ZO=%Ulfna@aYc8FI12!nb{OQains0iPN@@PGV$5%V18Us6BlX|m#+@AE zt`JnbN9k8cvj);1qiO)<)Vg8ix%ga@GeE~@&I%^KBa+AWew=VM*2qQBu@hx>>lj@r zt?f9Pbe4zQuR6>HnGe;9m`9Y+d|JVN7c9)P^)PArzMh|@31u+KE)4&uQ(I${@0Wrw zH|;?ol1IN0fazy3$zsU2--l+A6s1l#pgCuu`U^^BLNy7qcUL_i4BP`y2C*SBwv6_Z z+R&7xe+J|HXmww0%5||E%x2xy|*aZ5rLp_thx!Xxa2CX=-5HJlOzy?|dCv>I=e< z9^w|Pb~<4C1%4#_*eswtkA>GvUC{Jih~1s=&#dleSoaeTxLM_K*Ji? zfco|^NYRX|9#jn-rRWqfW5aUooxKOVPY2?Pl<;g~ov7Iq8xFd=kO7uePwW62#wQ;qtFGjD= z(Q43H;Kb_dvaaX0_p5BPo{GYR{HV{V-5OdnfuAJi;aB&sc9~BSGm5(8$L~Rtc`tVp zR3+*~rd*5O57~9J(lUwp%^sltnEdiI2TD~ByjE4aFIeL(gvP(xgyTvc-t6zN>?nCh#4Wg$>>-mGaGS+{9K$?#|F0=4${i6vE2U!Y0c- zcbxFWBpGS7^0=OYVrm3~1sI~RiD1*BQHn~=5`fm<7d<8{0-D&XzcDbo4@|G66>r97 zj9&2p{P+Jn4Gy{Q2sUW|7iBf_?cDD-Me>)meuo}$zh@DgTtIz8zYY@D?Jt4OcIX@B^*K4AZ-@&*ceW5`m+IT<*uErJ(J>;wgaRz%pKHs^&eBr^W zx6XDs4@;7-npCzYeoV;3y4o40D&J~Nh~H;%V+nuMW$brBi;oTv8Zk2f+EkW zgCWFL65$qk0q8_?bb!G8@zHKQ8`I6Q3OZho1(UNTyDs;^qZbyx?%Gi!axC_+`DMgG zh2yb@TpGapc<=2OPw$S`M?YYGoIXZ{h)?^>7jzntXbzn$g$|Gz{Lz2bW+rzZOu~ctj=z{$%d5-&~fN9VlgE$=mq>yu|bSOaJH} z@|eFZ#jaTeh<%X1x2b4O4Uty0Oau)pkQDLPqR`(&eKG*$0_#;MFo%BI3;5(84-AYz zWSY`YTlJnFj9$QkLY@qaOVrS5bKl|%vD4?;8WbYF-)htFEc4li?Te=UT{j!qtR4C- z13pP3j)ZdA5n>)?VdEB7BtL&Tll4bv0C0bnY&W(uQ_Oe8ugd?g0mMJG3@8_h$WLD} zGaJL1qitP)uSOERk=Pp>Jf2sgVpFpUUA4bdp0KKY*#1Wg13It)wurvnRM>+Wv7 zzI%K3=AXpmC%pa4Bf~qs|CNN${^KS1xPmyAC4P2D^O@71DDBYL8zR$#q?m&AwAK3) zFxgXH`^@l+^-GA*6g}Z%%ppPY@B3OfxNaUoiv1@~0I$*~r#G+QC0?A&#}V^sF6pAO z!QXlVI#nsw$;-Lg1t1*ip^(B;4?AYDTy_E)X^UV}4ekizJi#4-R5g&E?5(ywtSv>) zaWoB3f8pF69_==HI!!p!Y|S#dB94(}2dd>q+Unt+sQ4*199v~bmmM_SD&O@OuYWfpTvrQnTzI9!hXk|7%yib;dj zlK%FTKw@!m1lajfA$7^sdA^84bEiWCDkx6;OfshpWN?zfAkK+eR5Y8xY@!WpfNkbb zUzp?{e1)UPjZR1D6JfrXCSHW`NfpCZQTxV3S^ycSMpip*M2ReNF3~PTWmG-EQm~cF=CeQ((1*+prU> zzJ&V`=Tc>uoiW-`6>dXzrcNMu8LDn`$JSjfg`lIgL&Vivo=f5Th03Uu{*Y}~* zUlj4T&Z1rcfZJRCy}!M8@mpDI{#}nw>kts7=uJUQ;(2qn!zB63sMVi6{ zarJaFJLH(i9F^@)`UHK}Q)f3t?$hC}&v2SC?s_gS(X#c{1|=Tq0c>)dcN|7Z*Fn5?Lk4AsUYa%rv@V#&xgd?H=Zf z$Sius?Q~gBlkJ9PG(3_^_8vcYDeIVN^p+{CC+a{ZlMK47@M+69a~L*qKG*A4!BD4+nUDunK^^7ucb}E&vj?hdGZ&{nc`kSuf*Dy4tf`9iZ|?h)djN z3fC|o4s8?IouAxA?(ycBBGTzjlM>d~7Ol3meFu^8(m~Wec|f8$LS1;WQyDj&uLo7E z0iF)&0GJLtFxP}PkBvY7M2U@r%y=@;kWpt9MoQAX?pvB6T6Bbvl+$dohoj>*bM|Tj zZ&lBx$WB2EyOHbXJweoY!7;PAErB%IK{^5uC7(2*FbQOqaDtNU5Cz)45@~P5JR>K? zABNX~-_alMoO>{ivNZ}F1luH&Qfi+a28NZS62TS(xVL~|?(|uUTBb<=X6?2{qXDqx zqu`2DEBlvzD)Mvosf3W_sgziaL7Mqg2Dt%GW%3bZ2-h$`q3YdHDV+bd=2xmOmoKS4CY z{AcW_3xilaZ?ObuFbd$Mk)HTtDNVGJSoul~CG&z>%&(-S5g?ROmmKqagpF+FDip(W zqH-~64qjNJ!&Q_#YHC**qhJv)SHomRPTwf2+KN@m3Yt7wOVzdphiY$$dnZZ zWb34!L4zjE8Z9%}R-Jv&MOWR7*If@o3^UwNJ@wLCAMfnb*I`G(L>97es5l0efWU-D-Y-1Pu$kQPXaf~8PQN}r{xI`V-xWzpl@r+lz zS$y-|4`L#Y6gHr(pt9UCV+k-xMB(Ai!R~mn21D1 zpD2?&aNA^Y?z->JD)Ur&I;UuFX+=(H7egAW=5dimYjJ?mn-$gUlq;!zr9}lsZvK`0 z{zXrSr337OE5(acWU_w8_;JXt=9Qh(_i9<2s_xaZtCl6j zjvz}9>GFF&hjT>f>Z44yWsk`cIM*`EIhNg%RoG-1m}THxt2~fpP%K?76oEY^FeqS_ zf!#AO5ZJu}W)(0nuzOb9UX4e$O4?B1S?+jAVZ;9@!|H!lUQp!+91Z>3G|^LoTCK?z zoe5@M39iLF4z1F-Zcm&i#y%m?=seMZ|693Y{oyhb$9Us!@>PayUVi{Lr}|!L?pkK8 zDtuB=a+F#M75KSNs;{7yp1K!E`xB?vdTb?5K4<2^FPc2P6|Cz&BjE~&VNc@@?&E>H zR#)DE>8PsJ^)rjC#MDgGKF}XzO8%|?2=sQ(k6oUpZN*655;x{Z^~AQ;2k-omn|+pl P@hkDC@xQ5j#o*l>+`3n* literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff b/frontend/dist/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff new file mode 100644 index 0000000000000000000000000000000000000000..c39ecb18bbad88ef207255b997b88c9d9d0b480d GIT binary patch literal 18600 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 KxMd|K0001wWMtO> literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff b/frontend/dist/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff new file mode 100644 index 0000000000000000000000000000000000000000..caccfe2a810eb91dfeb4ab48e3564d9071dc9a5e GIT binary patch literal 18892 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2 b/frontend/dist/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..da60c9a90e758f7924dfac415f24961ee74c59c9 GIT binary patch literal 22308 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 PKP}bZXI*N7khDDj=5*Dq literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff b/frontend/dist/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff new file mode 100644 index 0000000000000000000000000000000000000000..e9ffa4f265a40f646eb6bf0551326b4329b78628 GIT binary patch literal 18824 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2 b/frontend/dist/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3726e9dccc00171c2b54534fc148d5dc5dcfddf7 GIT binary patch literal 22444 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 v_4%hd0wdG({ntnFzXxP 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
?T^WRtLB6~mpu?||B!2z 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 mvgPfrq6VcT`0rR4gdg0f;+$f literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff b/frontend/dist/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff new file mode 100644 index 0000000000000000000000000000000000000000..d44f0b6c985716c4e2bf96ad1964bb35a4ffa07d GIT binary patch literal 6044 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 N&w!R~C3vO%e*nhCW^Dif literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2 b/frontend/dist/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9f046489a264c077700ec67fabdda3cbb5f22cbe GIT binary patch literal 7524 zcmV-q9h>5JPew8T0RR9103Boi5dZ)H07X0i038AV0RR9100000000000000000000 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 KBY;*50000Jnc?aH literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff b/frontend/dist/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff new file mode 100644 index 0000000000000000000000000000000000000000..c0e2851f5ab09c3cafc34d70c9e466a364a7cf38 GIT binary patch literal 6076 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2 b/frontend/dist/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..60af6f8c8dd9a6667b67cebb3d749fe5f744dacd GIT binary patch literal 7636 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 C8^mA$ literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff b/frontend/dist/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff new file mode 100644 index 0000000000000000000000000000000000000000..58ba92405cace28c7f3844d8f6f7987ab95f4d63 GIT binary patch literal 6096 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-latin-400-normal-qiz4-Cze.woff2 b/frontend/dist/assets/barlow-latin-400-normal-qiz4-Cze.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3914af46036a03369558f46123f337ce0e8c5ce6 GIT binary patch literal 22196 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 H0ssI2wBg|@ literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-latin-500-normal-BPAOfeC8.woff2 b/frontend/dist/assets/barlow-latin-500-normal-BPAOfeC8.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b1d06c6db025bd438736e9192a33569d353906c6 GIT binary patch literal 22008 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-latin-600-normal-CNwfPWQD.woff b/frontend/dist/assets/barlow-latin-600-normal-CNwfPWQD.woff new file mode 100644 index 0000000000000000000000000000000000000000..9d839ebd62b3a4f47fdf30e80102f1a0a5e21fd6 GIT binary patch literal 19884 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 KxMd|K0000uOz^+} literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-latin-600-normal-DILqtrty.woff2 b/frontend/dist/assets/barlow-latin-600-normal-DILqtrty.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b1a019f9d0eb0043beac510d1c932e8bc58cbbcc GIT binary patch literal 22772 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2 b/frontend/dist/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4966af7fbefcfa491e92d4c1f76f4f3ff2500f7e GIT binary patch literal 14416 zcmV-WIIqWdPew8T0RR91060(p5dZ)H0ERdK05|Ob0RR9100000000000000000000 z0000Qf+!oC7#t`DU;u?Q2!S98oD~rW3W2FOfs=I$gH!+kHUcCAha?0b1%o&Tjv@?! zRvUYGC)hTP7#hY7j2GU$#zzK%jRP2M*5y&u4$5iR;Q#+mODZyE(qYnWn+Tx(KNQ)f zl&bf#(BT{cn zf26qUmogP4gz=`kP@=3^Eh{+b3_gd0fg#wa2b|Zqf*bYM3l)!c#oEY0r#sj~>%Z~X z?g)*2l1ucwfALkHnGYidBS>px2!+rw(+wh#@p|61zsfkhle7D!+a*~fo-JZ3I?5wLi*>2>BKFqg(G+_4(;FQw|X?Ti{gIZRzW5@!i2s zyGq5VaJ81z)CA{pE}*~xI%Jn905ay7gmC2=)eg4Ypl%h|bweuVS^58FO1X5cT`*?N`M!eyAmeWETl3gY|DStE%q)Gx}p<8IZKgKAJV~MDmz) z${aadqYfyF0Wiofito9AfCtZk`NX2~Vc|CPewsR>p|2EN{r{iVY+mkUTWF8J)e-1& z55lYj7mMR~j^9aUll{4Qlpabgl0LWvp|GG39$cxiRH2au;S9oC{(qbLwfAW>C-O%* z=w0?=2#Ut`$1=_WP>G}WX5P%3HzP|UDG@mvNkKUz>4UA{XyhCz)+Z+m$RBtD_yM?G zZoLFtZ^h-d{V$qk%W6x4{`5X>Eg0bwzK7&C#Gv4U{fLhLy}c!olpIYV4|K)m=s`~*OP1Ve-(AW=jR ziFin&6o|}l$VdvvWYZuSvLU&0A^A!n<*FenGa+*AhjAH%~~NE8iWp=2wHszIywXdj3iVHZ~aag0S;fkR0)Pi zKpQj=0_6#1y^?n2Pq7jLgKUasgLhw<-xA~;V(#uh?o&a3n9NnPvCs-27!XAne`O2~ z3ZDaOrZ`aS+5&Y?_A97OY6H~fGy=6Fuo-15f4=xR8W{RbEuYB;@|L{PJO?qRVffy4 zJ1xo8lYCG3zJ^)s|x|56q`-T$|z(d-@ZZPCewy}Fl0&W?Y35AW38y$3Kc zvUS(%%B@U_H*Yh8$(tT?@#D5ZtCZnD<@0y9!?%66-Zxj?zd_)A=c% zZ+`oj&%ivMUdvt!?cbDX$~0uDGRVRwrfVK-x2Kw0(*mihF8g+H;_RHBqcZ8_zQCH@ zbLVC2x1*I^i(UU?E_1yKQZ9v(E7L_GV|L3Yg&xH9Z-R&=>}240k1OD$c4OIVydsMr z@!$F*nXT{pJm~Lx%vb2ccJ$tY8*LiP)vC_)Woa|%T!OE2(eInQ4n4TIsi$i>D*JEV z*~#wd_HML(HDswDi%%+>-KkPdt-wwBWAt%F>Q5YTZ>vpSYhyLddsD=rWS-@-$XGH! z70o-8!u;_$#$}*JxPhz${K23UbbHt68x+4r_*o(_$^524B4JPL6H8p^yd?%0&3W?- z@yRW*@GzwpHMHE~q68NOsMxjkEK`@0P|fOORe|2v1}f$10xVCX=A$GtLCpmR^hJ z&=0r?%MEWy3sC1N5!x-O+DX1j0d3uG2cSzvafrtdL{gxX0uPA>0t9OaU@FFJQYep| zMpBp_+d(_0O{1#jsq0gf1^r@-Owpn(Dnbka2h_^+JpNKk*|FE&$PMf>o-%lFTz-5+b;&V2QE z_Q$@^SMO`@@GqZKPVX1Ko#g`4mycv>_cuBDwg2$r8e8`EBfnud-G8h6JKgj3V6ET! zQdBCh;-Vg-Ik!;doxOuQ)$YvJUHKQcUMT;xSH8U6aSIBgcRUbEy!&|xrXRdZhF;Ki zUwu50z1%@6FMjKfVrSBu(7Zq1`Hs^jF~WF#RL}@V$1d(X+@zhSOgd( zPR}5PIyoB6m`afeN>Grfb8-$YFu(u<4AQF|Mqt1Q2A8uOb(~?%lYXevsLsKH!R0LH zU1aFNB=c~CF*u%u{Un2n6p>MoBri!M?2;@lDbt{Vbvd0>JccLJH>9zZV&h3!2c2|_ z4a*8K=Ka}_fFLprpu8u`vDX$2eMW)0yEVX`@TED2fBXPLZLB>X4D;DX-_o(r02Vxm zffIuMNk4edy?_iV(zcHvB|Sgc5P2nQ_n&_jF^U~92G8!q#v{H7NmLS&n)J-fs_e-F zIiDBPk!R88Mc!o)_v%=;hIDM#HqxhivwedIl3)@;KNmPZ#PfOk+^cTw$jqn`Imzx> zXllF?kkE*elwle1@R;}KTwXx!j$B)T=n;(0vz?E6PDU@9n~eqCiBpl^mCmmCUH$HP z7rfg+rvP1A#~pmqnRY21`QM0tKNzTBpay*Nc)x4EX}_^f4JhBeRom~Vv%=OpG`dby zmc}*i{FIpwvY7gXCU>43hc$yo+KSCvjMu3!)tp>%1ga$kZBUq-LYF8l{Dw zO{9*ZnPQ@|6wWcHq|qnEHHj`uc2&B1Y3j%|7_N~srauj#Eg%EXgh<$A!0;2P1k}#M zIDW}cn?i=x5mQX*QGiw@s zwh4btGil#^fqFjCWm@Wq?l|wkyWpyW4n&wj1p#g`tDsP?zCwab_oSsur$V0wC8bd4 zQa=>GdxdgiE*J)7KTnZw<{j;Hm;$5rhKI7>naigyHv~!zT_ZL6DJXa)?pkLj+B3)n zQqW{f(k$3Y!^`VrDm=MC&c8aI${bFHsE5%bxvl+;mc-oPgINc>aZXUvuhlikmq!Avs z;l_c3z9_|Tf->=X`6;dY_f3kD^nK*K8qB*T`KlS{I0p*Jxra5oW|iz7K{4Ek!M+)Ws78o}`qOgyslzE_@??%_)GPQ5+$ z6%`cPIphmIQ&GjP36d3l=_t_1TQI69dW~1-4Qi4@va>@umZff4NsUR`Pt?XOs9y9s zzHY=KHv_v%xz%|^17BC;*Y&+&=XaqowuORve^aZQGDsPyg^evwJ(S8js`i4cs37^J zmpq1$d&&0q+JB}x@%o%%hNA%u)Z}wzqrx#&1i}iFR?SrIwg3$sKnRW=2*K`8cC#U2Wg87)X}Ll{Bk2nAR{b{oP8J2y47y_u8Wf(T6E z5XBLh;ub_=`&1uPWHYb44N-)B2{WJys@o7vcpagjnaKSZy@G8y0pCrtKX(wD*}xH~ zniq&g0WB-E;;eF6=k7N!Z>Q}M8fsTS`vN*t=wvzOamwSI$7Kn+7SOH0_Ky1V$mf~Q zE1&lg^eLckftMda{FknE|BkxZ$(`a_6w`-s;qLX94f4`jO~0l-WtXA z(`baoY@Avav*Jo+xO!!JXEQUlpFPE%Yi6srH)U_ZhiWE5-Ind;8)IYO*j@LAHuQ@X zFfE}zkO@L7$l#{5^9JFY@DqZ<&>47)Eck6|JKg6O(m7nfS-~k4%4ohtoJV$icT_2w z36Ye;;q#@|ycHQwrY!cA9dhuxE4C1e6e-@z5gI6+4RQZvEQ*XVq)BIKwQ@5g6h?(} z`HYmip&z1IL=J(@7-8fvqKM(>1VqM&#EbqZEzY%00`3z#XQ~1}&KJcr;8m}L1trQ_ zE25au1;PY}kn!`jOX;z8l)nzj;u4mIHxULiN)S3rr7D$b6C@txn4BzW=wS!%7M#x_ zFO2Iq)N3GVDJe%Xxu6k>!`ulI^hI)sCuTZ{jBp?DysseR>0&hKiK1A! zq$*H>qzW#_a~q+ada#xqp~c&@!oDFkfxlkiq#_y3)fn)-_$O|95fPTA3ZKj){gK3J z!r6S)9CfnfQpxEWhg`p2!0O^;9giF+&F?5-IIRk#S4S*cR=TWMsfdCqb$$7Vq^qyZ z?{|7Y&rOO;7$`1YL3W5xF+f<>2g>^y)rLqvgdH=}U>a3s@`k6o&y!qj-Qr$lIHJo6 zB{c&GnF>Jj@@iUH8t^Qv(aBlR>`R??{`83|{c~(;sXE$ufHSbcWYuG)L0Y^;Y7Wv2 zDK)(7&C@$pwR%6ZG807cC#oatK%_nvJ))+^fJAf$PJO6o3NCVRsNjo5{z)N;(ZG$0 zi8J&$0yRyUgL*evrtSdSK!7rDa`2)l29$=pI#ViQf44kT_*5XAFpF?Q7oxN zMrXjN2uwx@oqQAU17F>rbQtd>J=g!r#>#)|M0X66tJAA7M(=)SLpg5@iZqir5S^Tj zzgN_u_;xT{8gN#;mYXJZA&QZR&sm~r^k*|=311Ic$PPtsZMNT3p{yP#VSXu1rEJ7 zkipDF*YM0QCRVR%C*Tl%P)j&wV|9kvLRlKf$IneL$^bF1 z5B9HQ0sDq0s09X=e*E3A(h{*MvT^n`O(Z=Ar648B;q$kKDV{H984gQQP>Ju0%ZN0H zxakL-A&|Tf&Ye7IU&z8^9#I-YovoQi_t$dAe5N)``cU!b+UVZKxz1}cFsUbMk8^qI z7MP0CFFeHkmje?EZg!|Nz8S_ob{PzqYf1SVqmNXOgsV(HhOpK&4gPGJ zag3kWU3!X8V!%un}Y-+y<_wy7J^*imr>00Wpq2i!KZ-)YQkH|(vA z6#=O6y?4Y~TjH!c;;hNIH)j=W3?~u^JddrQ0=&$3kDtGGO7Z@2f=dMrFG}$*aVa*s z07J|5noW}Ax8$IK?zR(lx^vLrat-L{HY>&sAujyl4hdPe486P7MHHX(8FDAb{F|{?Qar-@by>~H#PBj z7gcIP0Ou|kPZTE&XGP`S65#k1xzy;l+`Qh2<)FKI>*;U_4}gJ`q02qibh#`XONGyF zW$d&Mp-liK0G|M?8eO|=*sxn~PPgL6+nz`ULL!7RAR@><;WEic3FHCfAoOF4{ErCb z0ts@3Az?_x@;MWiQSUwyaK}v2M6QV>Nj}K!)fTpzOZU2z(q5Oj#OI6 z@7QAtR#Z4{JBL@=?ZHatZO6KId$#;gH0a$X8IJQ)(`s~#I=9s4+d5;VQea}wT1gQy zcN=8R*iK)Bazx z{9jtLbn<=fa2{Q46alyagay?WpTkj@muj@jEQzk9${f9?uxe>*k7r0t*Bavhya3Uf zpxs?!%U4MftzvtkGpRbakSVNL-8rHo$)wKS_GWIY^}B<{r_jHh!_;tBdD0I-1DSj; z*Qw5J?2BiX)>n0|9GctU*W>`KLTKKWml*@Ca_3aXjpQF(U;6uq$XB~GBxFvFxC_sB zWFeG>(0tni-lD=B;WU^59zm$?6Y8vM5XpWd5q9m@9^G4d0hG|oLro#X+dXe5DeVHr zC4>B(J7_5Gw!cnydD9Xsv)KY=mN$3Ld)-cVQ+ser$ShklXze8&gpTcN#NFD}DI#P5 z8Tlmn#_%@<|y% z*rY6=D%eih%NwD&08APQZW-VtHH{ortQ0ydArk0#n!VL5kKO`B(Wov{#i)ZPq(2?8 zt#^8ob3H8{#@}BP9!4lBTdc`6*JrFQhu!R@1D=Zc(>{Hc5uqldBPS!>ku^#^w~CWs zCOF}ZLN{qRV~+L=zk!2f3Ats!6)YY?Q6)DNQRumR6;XRm-%9d3f9gqY9}{c&!Rz?U z)bI6rhrCoXpIqYsoU6v2Z{xBOcxe2T@GaklU+SbNaph zCAdUTGoAKKlQZ5d^Ezka&dqMG^w}DL1pf%*R90?#%s{_1(@)*`l(p!MM(HT5yx=t4 zk504}7Vd(K++7G2wR)F|5Gt5_M);5X+GlY%fC(XK;FvYLz_Z*vzM(@G=`66g+e}-R zR=SS}Zhd9Gj<$Aa{cp5-Z-)S(FA(CJ4xG)NQ@(g%xk?wX{(XQ?lq`+kdl>lo=(aJaauR}CdHiVX1=3>?gr|WDtbt)cX2<(lw~xz1?xTV$t=`ZZ ztS~kfz~^cY?=iiH!1tv78?*UrbomH$ud4OA`&a0FW=re>3b(M^Ew&haFzof%f(>OV z6`$awcgEtV;Fa?xb^ILwJ3s?~l@mHSp)0KX2N-~NmTc}C5qb-SI+S%geD^}$!j`U%Se)KOhIz;W>)QmuYm+ve+hiElR!F=Y-rIel8Ta0 zk$gMTQ<#&_GNKMO+N$tXr+HX)SuZy5`cO?QH6H%uUxTZ$>(6M&T8><^dS5J=bQ2_1 zPAbNuR#t%@7fd>6s7F0hD^>FF%lxP)&>=Mx;+a%|w99YqqN6h-aB zWN+3zq72ES-GXdvmQ;OFwcd`_UmOQp9kA=F<-18_F?5_+qHw9L2e2zQd ziMPhvOIh)rbBi&qUe7#pjKdihZ|(EA6~V|eM}+ylXCfYx$TL%6+e6o%&&noe9S!R} zofO4|Sj67&mBS|zfUva|s5u$_3tyVjnKS&&*Oe$vRO8Z`@w$%E?wFW!kK(27|K^?h zJ&fT>9BR*l1IK@PEa6BHQ(;GE8cAJBCU$&p)W7J1W&t)2JNI9moR#w4=dQJ5cZY@1 z9&(D4@bV{j{A9L22DOA3%Xavg2)iyVMa~0o0kD&A<>id0i0J!vF=9q#>-JX{)yVQJ z83ce6fDmm|$E_lf@BaIklm@lEx2#qd2?iJ^8L)zicT)Ne9EDYTqGHG5V~;JskeAcI zX!>z2F`t2cgs99)rRWO#!pzKN7@a2zp<)0dKruq&-D~4u{eh9e%Xty%UJ=l}v857l zH#bng(2!TIr*P~a@D>Za?&-K#FkYb!rmNlBP~_W+UelMKA1PSdNy<v+?PT4qenWN9i)y=&I2o^Y@R!!S%h2A??o3k)|!zyv=*Bx_QC#V7p0<7V^l z5_cuXjQ9ZaaVcw@kWX+phX~GsK9Pjb0)MGvb}24cu1GkFz3ENfljS1qo-6YWV%M{K z!-Pkln1fI$LLUPt06s?OfRJ|J6sn+#mtunP0^|ck(+%qUdZSTW+o+;18!ymb!{df? ziB4}Z8;%$MLvpcVZD;kZSOS;n>*)a#ZnQv)5rwo@-rg%=FaUIhJTa@n_WwS1l|p*(~L}^aK-MDs$^r9}$1{ zm~?)U1aU#q{6Gg108HYU$T`3drs zitk>opgGu+=cWAsIY8+Ll9C7X6l4Qc;w?64Q!f++=y7yj76Q%jjhvFDC1QI?^Hz>r zW-q#S$`^|~juWIaV+`&a&;x5^@w8{-QY5nW9pHon83s>nR*x?0$#b>)^iEO6=^01| z08=}2w}A9BE7RTSb?vD#!$hLnjTuRrsYtN4^y&7foZbmoFMDc@re)oEsM)or((EYu zRzu72xEtzWP~W~+|Mv8;YlU;#@N2$UT)F0A9d>jni~gTo1?u`U$2=L(o2N}2g0Jf; z=ZXse=8bu;oCLJzM&&Q_9zyH(;!hrq;PUmLI3v{~BbtPe> zJD1rrAyDU3T3mZ9F9|MN9wSIEQP-PIRsuLwmnjXekIK+$Wg5^Jl|f-OZvT0;=p?k( zS({y1Y6O_G_->&u^=$L}0Slg|7ip&@4nEeEqfQ%RTcia}wj?=@+OqkEi7h+qkkeWg zYZ_Q~Pp;$E&(;(j$6IT{t8Ie;oWcg}%0PiSz4^9P3j1w4M8&yqxYBkJu)4Jiho%f- zr|ma^)!m2m6zHO!Tsu*!E1(2hQiCY9H4Zhc?Xf!BRl7R*i0y~{a+I__OnCuLo71?I z?krZiyR6fiV!MuPHFc%1V|pVRkON#eC8|wpiVUWomw~Sav#F>;mAA>2c z*s?a&DeBT_FMiY6{aX#dTu{d+!;4iQ`x05$oT`Zil}}AL<8pFPE2e71wN;N=G&SOK zCYwXZ%m#55Uky{Q9Th3?obOOm#-25Qp(~Bt0WzOsTriKaRG2f;=rhtUsM1PjZ-e0XGs1e_aRhH|S1y?C{Gm5}@A%c}i% z3B$b;&BB3s6~w!R2L(+_2Us9R>UvPcMfI9@#esZ2Rd9Kgw*!CTOT<%hvM=0I;9tCp zXrWF($GnWjwFq!2jMey=#BzxWX?r{!jwV37QQ{rk4CnFGi}a}}KNLYb}?vw71xnR++_b~p0g zs&r8Az8e*JQ`J`i;ojjTH(nb%-{zhaCc`h&0R;fYxM+ z0{s#cxODWXm$&;q#3!7SQD#B?Zt2Sl0gtwJq# zA+WmeLWv0^Lm$BYMFoj{N8=5@)CAhL*)4l0qdMm0)grb<7GxbLk%c&fyY)-V&VNvv ziw)p_mw?4I;{M3#qk|S}E(@bXKb;Q|fIvnK04RM#yocY+&&9pxTs)Ru+0|9^dZq99 z`EP<(-VvM)`u=4ZF39KhK}yjgVluQV{5J7~hzESYJR9d?BaH2XPguV%rjR#fNQzE- z!uOIw^-%l~=^;~^Opk9MMLOJf@^utT5QP{|5pWA1O!aiBEl6oPElw~`ueo~}>IE}@ zhuS~FvlR{$h@pWq&xSO^@uO*0>PfCItGMJO(mE=rUJw=**@Y@FLqIZNcc?sbnpZ?|faf%RM8*sr`J>^b-z zz^wOy#1`ZvwJRE+p!k4xw)Vy5XSQX2qU7#45lTT2z#Yxl!nAK$-K{>XJDnD4sD`_~ z>oF0vp(pdY(lkqrAPVT2nuEJUevMI>7sCe&XR2BDmDHTGg0~4gZ>>8(g!+)cklKEY zPr`b;j2Tl%4mUh4d$>w29#(AXVE!?G+ z;VytPE{+!8@n{{k;R1*V5=7Gwga>^vKQ)84yC_}pfYbOA$kD_o|;@Fjq_gq~)Z(IiYNglaBp!WQ>>YNeLopM~(=_5-A-XSKf z8lRd2c#%jAxAs~rO8r#eYetd_)wVj2K{%fpQz3L02`1-uh0Ov8O!9}cWq7Ii**i>T zf#)z$&hr|DfDW7lCnAmvKx$2XvJBVR`W#Lj=ndRrdB3mWhO%qzej2D+Za{(^|80MKOn# zRJ#|~6&@`EL)cSnk+c`E5lzkkp7C`4fDnQ21jSt-bYG1XUK!IO~T@@>(&id|Ff5h{8~KSjn2qVK}4K0ak*Jf3Ke(T#@K=-YtDml z-lN_x7Gm0@Mwqo>v@fc^NfgFlj7Yb z1Zp(DWGk6Xn)amp`NMO!^ERK%FR(5c=gV$LTG%otJ*NWS-(S*nLClXMTS&@k$Y|oz zMvjjcY1G2gOOL(p@i4+hiHL?{C!zC+2I~(;0kyxosbR98Dk6nrp+%)q_@P!k3 zMp&{=ctI=OhKS&Q3T4}&ER!4LxWz7SQB%BoJrX%&++SB77rM%X58QNbi zKqKnL0>D_EtgI@ikhgaxq$xZ&r!Gx<_`c#Z8#*L!6Yj6McIi64;KU>gIKswcL#J8$ zSx%)*YfTZ!`*|vYO+*!nP*LIyhgFjg{|vF(=56Vp;;tr1PGcP?+O= z=Nu9Tq)`+_hM$^t@x$^f(KXPbXRLs;z1Vci#%@?5xlVoIV<;^WE%k z<$o0TitTl5BTm)bPeDdQ=kGz9KZ1M7CbgmzcL7{MFcS$yLc0+Vj1&`$=jnp`m*_Ec zs5mvTnAQ|iNto41Nz|h`uk5w^DjW2C*<~Zv5_o2d2!VkkT<8JQ&?7l1N56wXQ>|5H zd)(oye~HZdkP4 zG$*WAC;a9V%@e2#!R^*o8H$lp8rJW`>iRUK1$zOQ5m(ayQ#@qeGRTd44wdts7TQjf zUCirHE&{+!e$7a$O>!e;83SFtoH)9RLiY^(H$*s_LWjR^i}|=fQ9Pe;5Ghzd541!N{AJc6byywiRhqqJ?bW9&_K5 z5JbvsyQV>HjrCSJIQtDqdJMM0!+dzh`()3(SdG{F_2mNj7Rw?JY6r>RzyU*|%sbe`hwDDa#b@bDaX9 z1`PuvtwGCfU_s>d+y2yGEd(Hb5>tTS%AQI8 z{Xvoj5kC5VG>LN>DsX#>o<{(cB#b#Z=xTTFK{@*Qjhi2NJ211qSim=gn>uonq=ud6 zuDl0T`Wf#B37O*#QQhB!C8R1Gnsq8qAha5}$0xY8?>DIW@0Nc=)vpvA2LZY4_tv_w zF|JX>Kaxuf06rP^`$4$y;t!`c{BJtBpR*ER7z_~bJG|MA6x1&QvT^5MbCL1N+e5GG zILvwyQEM)F57MxaQP4SqsCfZ7vK%1~3DSbW?>+(_Jp+x#1(wb8FhHq-d`b4*-J`X; zp|g@`Oa}R^Q}|3dov={^_xBvhPsLH8{6IIakc|(lWr?DVPbodVMw>uVK`@UYK zq?re6)53xHRIrj&;Z1o6uDu^_%HwV+5%<{ieDi8_5#G~K8=~41TO3kiIgWXXgdJX_ zp6&L-PA|*O%^cj!#MAP&4?a9D=n{^dOWrvoRg>qOq4_9*=8I(?x?7-C3(5h%rtS#3 zi|(_Y2=P%1dI^eHo5n*iJjdYEfmJ5u*5XQa(q^* z&E85_o@E6g%i{VD6DNh#6rbhEg{$BtRfg$ul*uTT0n`%kGDX+gviw4Mv#*l zTdg3Hvn=pDqK)33$D*TDp(^z}%T!+;f4=;LIBY}!8I@#MnkEY55_}pjAyH;|w%HXW zcwCEPmb|30 zL8KuDxOfpJVu5Seh=UA}AuHY zJ=>`i3vf6*fk@KQ*2&YK()9EV@*0vUF};--8lAz+$71K_RL14;1$`!6C=wTxNM-UK z017EpRjK>JZ_28TjH@v*H8Z!cw6eCbwX=6{bgIr7gy1H)qZm#!(I1Oad*>UgMNU9By^d6zL;-b{)CyG8x z=tnT{$Cm>=r2ED5rC}gZ44ZSga1mdYZ!eqj@V&Cc;=ejI0(lfssQt82-)ctE+ zrJSND#r)2{3#x@sS1qPcr0My`i>8UuR20Nfj23_}YCrOh;&L==N1su^ zoc=18%a~O`o0;X!7ngTlyO@jI8Q&sR`-OL*Ot;9Qi7J}N;?mqIi&I#57v5Fd)v%R! z)$yiN3L7yWS;Dr1?eM<)f~flj;lvQt?&o2I>Td4SMJ%VY|JS-X?*k(W#q>}lF+{a? z9;=O6GX89IEPt`@deIW(7LDFN?7QA$j5HK&Pjh5E|1JLQ$8QNgY5wGQhVSChw!2MAOdmc}r#CBrWN zFyQu?N8Y=leIwrQ;Beo=)4%9=D#ESleY@*rrQh_Yp!2goA2z@n=UEtU-MqujZfl(z Wi}wEbYT_S%rm^BLl>5od%m4s6#KbWG literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2 b/frontend/dist/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..3d7c7a2d9371ca6e7a0ec125b0697870cb553f3a GIT binary patch literal 14968 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

- - + + + + + + + + + MC2 · Box-Wart + + + + + +
+ + diff --git a/frontend/index.html b/frontend/index.html index 32f4db5..7778789 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -2,11 +2,11 @@ - - + + - Mission Control 2.0 + MC2 · Box-Wart
diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 41abe0b..42a2ab3 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,51 +1,52 @@ { "name": "mission-control-2-frontend", - "version": "2.0.0", + "version": "3.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mission-control-2-frontend", - "version": "2.0.0", + "version": "3.0.0", "dependencies": { - "@fontsource/inter": "^5.2.8", - "@fontsource/jetbrains-mono": "^5.2.8", - "@fontsource/space-grotesk": "^5.2.10", - "@tanstack/react-query": "^5.101.1", - "@tanstack/react-router": "^1.170.32", - "clsx": "^2.1.1", - "cmdk": "^1.1.1", - "d3-force": "^3.0.0", - "lucide-react": "^0.460.0", - "react": "^19.2.8", - "react-dom": "^19.2.8", - "react-force-graph-2d": "^1.29.1", - "recharts": "^3.9.0", - "tailwind-merge": "^2.5.5", - "zustand": "^5.0.15" + "@fontsource/barlow": "^5.3.0", + "@fontsource/barlow-condensed": "^5.3.0", + "@fontsource/jetbrains-mono": "^5.3.0", + "@tanstack/react-query": "^5.103.2", + "@tanstack/react-router": "^1.170.39", + "class-variance-authority": "^0.7.1", + "cn": "^0.4.0", + "lucide-react": "^1.47.0", + "radix-ui": "^1.6.7", + "react": "^19.3.0", + "react-dom": "^19.3.0", + "shadcn": "^4.21.0", + "tw-animate-css": "^1.4.0" }, "devDependencies": { + "@babel/core": "^7.29.7", "@eslint/js": "^10.0.1", - "@tailwindcss/vite": "^4.0.0", + "@rolldown/plugin-babel": "^0.2.4", + "@tailwindcss/vite": "^4.3.3", "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "^16.3.3", "@testing-library/user-event": "^14.6.6", - "@types/d3-force": "^3.0.10", + "@types/babel__core": "^7.20.5", "@types/node": "^22.10.1", "@types/react": "^19.2.18", "@types/react-dom": "^19.2.5", - "@vitejs/plugin-react": "^4.3.4", + "@vitejs/plugin-react": "^6.1.1", + "babel-plugin-react-compiler": "^1.0.0", "eslint": "^10.9.1", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.5", "globals": "^17.11.0", "jsdom": "^30.0.1", "prettier": "^3.9.6", - "tailwindcss": "^4.0.0", + "tailwindcss": "^4.3.3", "typescript": "^5.6.3", "typescript-eslint": "^8.68.0", - "vite": "^6.0.3", - "vitest": "^3.2.7" + "vite": "^8.3.0", + "vitest": "^5.0.1" } }, "node_modules/@adobe/css-tools": { @@ -56,26 +57,26 @@ "license": "MIT" }, "node_modules/@asamuzakjp/css-color": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-6.0.7.tgz", - "integrity": "sha512-vC/bk1Lz7Tn/EfU9/apOTBk80/8dyGyWMowPoV1tJ52muDGsDqt2HPT2klrFUiY60MQmQv9q8yIht15JnBgDGw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-7.0.1.tgz", + "integrity": "sha512-C9duntabagkBZ1LebM7FKmphR4Q1pBclLxVbZETQV0akkFjV0ooFxo8FlvAQyKj9F6l8rEnmidgcTlpyxFYizg==", "dev": true, "license": "MIT", "dependencies": { - "@csstools/css-calc": "^3.3.0", - "@csstools/css-color-parser": "^4.1.10", + "@csstools/css-calc": "^3.4.0", + "@csstools/css-color-parser": "^4.2.3", "@csstools/css-parser-algorithms": "^4.0.0", - "@csstools/css-tokenizer": "^4.0.0", - "lru-cache": "^11.5.2" + "@csstools/css-tokenizer": "^4.0.1", + "lru-cache": "^11.5.3" }, "engines": { - "node": "^22.13.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "11.5.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", - "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -83,25 +84,25 @@ } }, "node_modules/@asamuzakjp/dom-selector": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-8.3.2.tgz", - "integrity": "sha512-93Z1N+BQNXysodoicpOIyNh2drHfz/CTf9nnT0FEx72GJcIiwgydD7tGAr78j41LsYn3hlRn+LdGPuBLn1Bl8Q==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-9.2.1.tgz", + "integrity": "sha512-NT4s3yZLjovPpliRpTvdsdzyPjqRqiCZj9MxnarBihbaY5MbAG7DWAJcrLlhmC7xKTNCXsTELcqB8YsqpLnUFQ==", "dev": true, "license": "MIT", "dependencies": { - "bidi-js": "^1.0.3", + "bidi-js": "^1.1.0", "css-tree": "^3.2.1", "is-potential-custom-element-name": "^1.0.1", - "lru-cache": "^11.5.2" + "lru-cache": "^11.5.3" }, "engines": { - "node": "^22.13.0 || >=24.0.0" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { - "version": "11.5.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", - "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -112,7 +113,6 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.29.7", @@ -127,7 +127,6 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -137,7 +136,6 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.7", @@ -165,14 +163,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", - "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", - "dev": true, + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.7", - "@babel/types": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -181,11 +178,22 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz", + "integrity": "sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", - "dev": true, "license": "MIT", "dependencies": { "@babel/compat-data": "^7.29.7", @@ -198,21 +206,53 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz", + "integrity": "sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/helper-replace-supers": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/traverse": "^7.29.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/helper-globals": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz", + "integrity": "sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-module-imports": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", - "dev": true, "license": "MIT", "dependencies": { "@babel/traverse": "^7.29.7", @@ -226,7 +266,6 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.29.7", @@ -240,21 +279,61 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz", + "integrity": "sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-plugin-utils": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz", + "integrity": "sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.29.7", + "@babel/helper-optimise-call-expression": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz", + "integrity": "sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-string-parser": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -264,7 +343,6 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -274,7 +352,6 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -284,7 +361,6 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/template": "^7.29.7", @@ -295,13 +371,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", - "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", - "dev": true, + "version": "7.29.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.9.tgz", + "integrity": "sha512-CjXrNHTnvqBVqHgdBysY3vk2T8tpJHb5/RMeHJBTyVa9xgugCB0CJTx/3oO8RV2QRQP391RWpB7D6hLjm8V9uA==", "license": "MIT", "dependencies": { - "@babel/types": "^7.29.7" + "@babel/types": "^7.29.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -310,11 +385,10 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-transform-react-jsx-self": { + "node_modules/@babel/plugin-syntax-jsx": { "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", - "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==", - "dev": true, + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" @@ -326,11 +400,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-react-jsx-source": { + "node_modules/@babel/plugin-syntax-typescript": { "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", - "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==", - "dev": true, + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", + "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" @@ -342,6 +415,60 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.29.7.tgz", + "integrity": "sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.29.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.29.9.tgz", + "integrity": "sha512-FFwIwzU+7SCOuxxV4YtJql6T9981ZVTm+FHO5GhVsRqCTdy0WwrEZh3l42ARpXruJUDGOptdduHW6Zr7pNPLNg==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.29.7", + "@babel/helper-create-class-features-plugin": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", + "@babel/plugin-syntax-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.29.7.tgz", + "integrity": "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "@babel/plugin-syntax-jsx": "^7.29.7", + "@babel/plugin-transform-modules-commonjs": "^7.29.7", + "@babel/plugin-transform-typescript": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/runtime": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.7.tgz", @@ -356,7 +483,6 @@ "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.7", @@ -368,18 +494,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", - "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", - "dev": true, + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.7", - "@babel/generator": "^7.29.7", + "@babel/generator": "^7.29.8", "@babel/helper-globals": "^7.29.7", - "@babel/parser": "^7.29.7", + "@babel/parser": "^7.29.8", "@babel/template": "^7.29.7", - "@babel/types": "^7.29.7", + "@babel/types": "^7.29.8", "debug": "^4.3.1" }, "engines": { @@ -387,10 +512,9 @@ } }, "node_modules/@babel/types": { - "version": "7.29.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", - "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", - "dev": true, + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.29.7", @@ -413,6 +537,30 @@ "specificity": "bin/cli.js" } }, + "node_modules/@cacheable/memory": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.2.0.tgz", + "integrity": "sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "^2.5.0", + "@keyv/bigmap": "^1.3.1", + "hookified": "^1.15.1", + "keyv": "^5.6.0" + } + }, + "node_modules/@cacheable/utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.5.0.tgz", + "integrity": "sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.5.1", + "keyv": "^5.6.0" + } + }, "node_modules/@csstools/color-helpers": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-6.1.1.tgz", @@ -434,9 +582,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.3.0.tgz", - "integrity": "sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-3.4.0.tgz", + "integrity": "sha512-XQKj5B7QiZcHiegCOCAzcAOJdhGgWOHbbu62h5e5mkHnn8lWcfiJhllkqWmxu5zWR9jucPHuo1iTB56P033hcg==", "dev": true, "funding": [ { @@ -458,9 +606,9 @@ } }, "node_modules/@csstools/css-color-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.2.1.tgz", - "integrity": "sha512-YpAJZhaHplYQkG8ib+/Fx5Y0eF2lVWi3tIvMJA6i39TLyUNp2439cifzW8VMjhlqrBjHzK5hVGugRRm2zTKI/A==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-4.2.3.tgz", + "integrity": "sha512-y4LpL+lmpuyKDiEFq2PnZUVFdAjsoB/qQJod79yLNokXyW7jewi+/WJ69EfItj8A2unWtxXnGjw6LYXgXu5ZjA==", "dev": true, "funding": [ { @@ -475,7 +623,7 @@ "license": "MIT", "dependencies": { "@csstools/color-helpers": "^6.1.1", - "@csstools/css-calc": "^3.3.0" + "@csstools/css-calc": "^3.4.0" }, "engines": { "node": ">=20.19.0" @@ -509,9 +657,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.9.tgz", - "integrity": "sha512-iGGw4OsAYsS6pD29MdJ2bX/nJx65a04ZZiw6x+VwWlP2DdXf6f++Zmuv/OzALpdyfVhjbduIIF2cXM7HWBIe9A==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.1.14.tgz", + "integrity": "sha512-HpbVXyrofRXpHpgkNIjU/3EWR4WJvOkO3emNK/L6X/mTJU7bGUI3AkkpoTNXznQLp0KRjLHELTGeKI5dIkI9JQ==", "dev": true, "funding": [ { @@ -534,9 +682,9 @@ } }, "node_modules/@csstools/css-tokenizer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.0.tgz", - "integrity": "sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-4.0.1.tgz", + "integrity": "sha512-bPlN9S9O1A0euCpEWE4qnvB5YDuyYVsUTrxSgmAM1Is0j4tICHoVyOVAXfWMP/kS9ZrjvyIXWV2PmomiAXXqOw==", "dev": true, "funding": [ { @@ -553,447 +701,219 @@ "node": ">=20.19.0" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", - "cpu": [ - "ppc64" - ], - "dev": true, + "node_modules/@dotenvx/dotenvx": { + "version": "1.75.1", + "resolved": "https://registry.npmjs.org/@dotenvx/dotenvx/-/dotenvx-1.75.1.tgz", + "integrity": "sha512-/BITOC9dmS/edY2zQwZNicQ059O6RKabtQfyEafV0nGtfYRNHYy1DIPiYVcov40+tob9hfmBnbR963dS+EQ1DQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@dotenvx/primitives": "^0.8.0", + "commander": "^11.1.0", + "conf": "^10.2.0", + "dotenv": "^17.2.1", + "enquirer": "^2.4.1", + "env-paths": "^2.2.1", + "execa": "^5.1.1", + "fdir": "^6.2.0", + "ignore": "^5.3.0", + "object-treeify": "1.1.33", + "open": "^8.4.2", + "picomatch": "^4.0.4", + "systeminformation": "^5.22.11", + "undici": "^7.11.0", + "which": "^4.0.0", + "yocto-spinner": "^1.1.0" + }, + "bin": { + "dotenvx": "src/cli/dotenvx.js" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", "license": "MIT", - "optional": true, - "os": [ - "aix" - ], + "engines": { + "node": ">=16" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@dotenvx/dotenvx/node_modules/isexe": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", + "license": "BlueOak-1.0.0", "engines": { "node": ">=18" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", - "cpu": [ - "arm" - ], - "dev": true, + "node_modules/@dotenvx/dotenvx/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "path-key": "^3.0.0" + }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@dotenvx/dotenvx/node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, "engines": { - "node": ">=18" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/@dotenvx/dotenvx/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/@dotenvx/dotenvx/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "license": "MIT", - "optional": true, - "os": [ - "android" - ], "engines": { - "node": ">=18" + "node": ">=6" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", - "cpu": [ - "arm64" - ], - "dev": true, + "node_modules/@dotenvx/dotenvx/node_modules/undici": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz", + "integrity": "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==", "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": ">=18" + "node": ">=20.18.1" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@dotenvx/dotenvx/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, "engines": { - "node": ">=18" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } + "node_modules/@dotenvx/primitives": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@dotenvx/primitives/-/primitives-0.8.0.tgz", + "integrity": "sha512-VYJy0uhFm9zTJ1TxBaW/pA8bjbOM/OttaNMwZ1RHG4JKyRG7DhSdiqD1ipQoAyoD22olUtxbP78W9xY3Wd11bg==", + "license": "BSD-3-Clause" }, "node_modules/@eslint-community/eslint-utils": { "version": "4.10.1", @@ -1110,9 +1030,9 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", - "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.3.tgz", + "integrity": "sha512-IkO+/KEUvwbVpiURZg+P7zF74z5Jxe0UgJxVni+RtoHQ6IZieXaO02kmadomap/q+l6bc/jdPGGqTjhuZnuz1Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1124,9 +1044,9 @@ } }, "node_modules/@exodus/bytes": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.15.1.tgz", - "integrity": "sha512-S6mL0yNB/Abt9Ei4tq8gDhcczc4S3+vQ4ra7vxnAf+YHC02srtqxKKZghx2Dq6p0e66THKwR6r8N6P95wEty7Q==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@exodus/bytes/-/bytes-1.16.0.tgz", + "integrity": "sha512-IcpW84uEn3N7ETtNZMlxKhfl6Pec8rUNGOTBtWbK1FKhJxIFAptZyVrvVRVBimAJxJCgc3PxepxkdWWG4DVzfA==", "dev": true, "license": "MIT", "engines": { @@ -1141,31 +1061,81 @@ } } }, - "node_modules/@fontsource/inter": { - "version": "5.2.8", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.2.8.tgz", - "integrity": "sha512-P6r5WnJoKiNVV+zvW2xM13gNdFhAEpQ9dQJHt3naLvfg+LkF2ldgSLiF4T41lf1SQCM9QmkqPTn4TH568IRagg==", + "node_modules/@floating-ui/core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.8.0.tgz", + "integrity": "sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.12" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.8.0.tgz", + "integrity": "sha512-yXSrzeHZBTZadLOlfyhCkJHNeLJnHRnRInwdZ40L7ZiaAtrBwoYlsDrX3v5zB1Utk7CLfzcOVnVVWoXEky7Ceg==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.8.0", + "@floating-ui/utils": "^0.2.12" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.9.tgz", + "integrity": "sha512-JDjEFGCpImxDCA7JJKviA0M9+RtmJdj0m/NVU5IMgBK+AmZouAQQ7/+2GLH0GXXY0YMw9oXPB8hKdbPYg5QLYg==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.8.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.12.tgz", + "integrity": "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww==", + "license": "MIT" + }, + "node_modules/@fontsource/barlow": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/barlow/-/barlow-5.3.0.tgz", + "integrity": "sha512-tGR0y6QObRtKv71MOth44222+mdNFM/ZWFWDV1VLzNbG4oK9PNRlyJzmkck4vHAi9ibHBXgt4SlY51amFP55CA==", + "license": "OFL-1.1", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, + "node_modules/@fontsource/barlow-condensed": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/barlow-condensed/-/barlow-condensed-5.3.0.tgz", + "integrity": "sha512-RA7MmIx0v3eQ6Gcf74qLVLOwLB0GpPOzx+eU9iG/AmCnSJGcIWYeU8y6CEMGZ210MGwGg5CZhzLkkvyZdTTk1g==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" } }, "node_modules/@fontsource/jetbrains-mono": { - "version": "5.2.8", - "resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.2.8.tgz", - "integrity": "sha512-6w8/SG4kqvIMu7xd7wt6x3idn1Qux3p9N62s6G3rfldOUYHpWcc2FKrqf+Vo44jRvqWj2oAtTHrZXEP23oSKwQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-5.3.0.tgz", + "integrity": "sha512-fqDfB5I9f1p1TV486aUgB9t8zP84P0O1FtQR5Ol9vjwPy+S+EIGlVYm1cvj2W5shcZMTg2nZFdVMoH5wFu8a1A==", "license": "OFL-1.1", "funding": { "url": "https://github.com/sponsors/ayuhito" } }, - "node_modules/@fontsource/space-grotesk": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@fontsource/space-grotesk/-/space-grotesk-5.2.10.tgz", - "integrity": "sha512-XNXEbT74OIITPqw2H6HXwPDp85fy43uxfBwFR5PU+9sLnjuLj12KlhVM9nZVN6q6dlKjkuN8JisW/OBxwxgUew==", - "license": "OFL-1.1", - "funding": { - "url": "https://github.com/sponsors/ayuhito" + "node_modules/@hono/node-server": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-2.1.1.tgz", + "integrity": "sha512-ELuehkj5VCBdgEw9zs+ivkKwyzzUCSQuE96YmiPvn1ECBoZCczbFXJLeEGMTYjphP6gydh4pHMqEYPVMYUVgQg==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "hono": "^4" } }, "node_modules/@humanfs/core": { @@ -1238,7 +1208,6 @@ "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", @@ -1249,7 +1218,6 @@ "version": "2.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -1260,36 +1228,410 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", - "dev": true, + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.6.0.tgz", + "integrity": "sha512-T7jf+5zgsZHwNJ4lvQ7/aezbyk0nNX+zJVWpmHA7VYsEx7a7qr5Rg5IbtJFqkgze5Y2sruq1RUY8Q837Od7iFw==", "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@keyv/bigmap": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.1.tgz", + "integrity": "sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.4.0", + "hookified": "^1.15.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "^5.6.0" + } + }, + "node_modules/@keyv/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.1.tgz", + "integrity": "sha512-H2HxLvC3HDNybePJaLdSrU1hhUK5iQw+WvV1b01myFyI7sdVGe1u/IPTE5D9fGCiJDVtgMV/lmFkQXLmQyIFYA==", + "license": "MIT", + "dependencies": { + "@hono/node-server": "^1.19.9 || ^2.0.5", + "ajv": "^8.17.1", + "ajv-formats": "^3.0.1", + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.5", + "eventsource": "^3.0.2", + "eventsource-parser": "^3.0.0", + "express": "^5.2.1", + "express-rate-limit": "^8.2.1", + "hono": "^4.11.4", + "jose": "^6.1.3", + "json-schema-typed": "^8.0.2", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.25 || ^4.0", + "zod-to-json-schema": "^3.25.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@cfworker/json-schema": "^4.1.1", + "zod": "^3.25 || ^4.0" + }, + "peerDependenciesMeta": { + "@cfworker/json-schema": { + "optional": true + }, + "zod": { + "optional": false + } + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@modelcontextprotocol/sdk/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.151.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.151.0.tgz", + "integrity": "sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/oxc-project" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.3.tgz", + "integrity": "sha512-Road2bidD0uu/1BGDOWNdPI06g0lIRy6IF9GZcIrDK2KGItfor8IQwQa+yM2ERgHM1MmHxaxpTzk0/Jp42lNfA==", + "license": "MIT" + }, "node_modules/@radix-ui/primitive": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.7.tgz", "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", "license": "MIT" }, + "node_modules/@radix-ui/react-accessible-icon": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accessible-icon/-/react-accessible-icon-1.1.15.tgz", + "integrity": "sha512-WTQwcAvQf5sOcuUyi90lKPbhwcvQ+j55cjrSmeaN+L2vKU3DooOvlKw2MDeiJ5IkV5N905KW0/fGojKOBhD11A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-visually-hidden": "1.2.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.20", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.20.tgz", + "integrity": "sha512-jDhG9FvAEnlhnjrsINbNXcUa4G+L1KqSkJSunkbKEzFRcAb52jvM0PjPxPRvhe1HNc5F5yc0yzzWeeqlH4yBIg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collapsible": "1.1.20", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-alert-dialog": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.23.tgz", + "integrity": "sha512-VAYOiQRqj3GPpYJE0I9J+X8Ip05cyVlNdKOFeiGS2Ou1HHGfpl0BxOyZm6nmVDyU+W+NF3/XLzmjHmVGydhwgA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dialog": "1.1.23", + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.15.tgz", + "integrity": "sha512-v4zggRcjadnI+ClKDuijlQEW4tw3NoaeHc/PwpKnLoLLKNUG4InLegkstooLcRIUWCs+8L22dGURCVuFfOKfnA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-aspect-ratio": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-aspect-ratio/-/react-aspect-ratio-1.1.15.tgz", + "integrity": "sha512-fy+dyVR+90nelK8rqIznFlxzx7uPcGbhxH8Nfr2bHb4UfSe+e3hklOC0luK0hDwVwnRX7xTRySpsrQVeW+/oNQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.2.6.tgz", + "integrity": "sha512-4ULOTJ/mqy2hT9GlWa/MFHxHSvH3nJzHnZM1waNsc5Bonv7i70aNenghXmD97S6OJ81ekXONGGt4nT1r0PfEdA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-checkbox": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-checkbox/-/react-checkbox-1.3.11.tgz", + "integrity": "sha512-Gnptr9pDDQxD3hgq2dtPbtrp/c2qH1mBwIzw3X/ivrMb2e1t0jMTi606fVEqFPaQR1ggXIVQWKj3P2WW9v7zGQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-size": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.20.tgz", + "integrity": "sha512-mcGesGplBnzN2sbvJETzpCNfSMyPnb29q1GRLU+Ib7bJrpIG2ywmRoh2V5VbA2uNvKikKUlVbAPks7JDjz4A8Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.15.tgz", + "integrity": "sha512-9W+B9NPF0NaaPh/1NJd3+KqsnlLqU9H7T2rvww+fp+T/evVXdNAyYcnfRQZFOjkR1ajQp3yORlqnI8soawLvNA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-compose-refs": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", @@ -1320,6 +1662,33 @@ } } }, + "node_modules/@radix-ui/react-context-menu": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context-menu/-/react-context-menu-2.3.7.tgz", + "integrity": "sha512-CtXP35dxaB5T3zXSd+E3uHe/QpXcpYnZmxp6OaIbfthtfW4wyb77M23BG+bwIJDtsMwEP/YssdsmNyZu7jhWew==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-menu": "2.1.24", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-dialog": { "version": "1.1.23", "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.23.tgz", @@ -1357,6 +1726,21 @@ } } }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.4.tgz", + "integrity": "sha512-5pzg4FGQNpExhnhT2zlrP1wZFaYCd1K0nYWoFAdcYoYK868IEigqMX3B3f8yIoRlAhAeDWciLI6ZdCKHF9P4Vg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-dismissable-layer": { "version": "1.1.19", "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.19.tgz", @@ -1384,6 +1768,35 @@ } } }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.24.tgz", + "integrity": "sha512-geq8l2rJkxvkXsT9RMgtUE3P8pITFpTsvYpbySi1IH4fZEABD/Gp85myayFgxk0ktljGMJnCbeFkyTusvSvv7g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-menu": "2.1.24", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-focus-guards": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.6.tgz", @@ -1424,6 +1837,65 @@ } } }, + "node_modules/@radix-ui/react-form": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-form/-/react-form-0.1.16.tgz", + "integrity": "sha512-Q4TLEn2A7TAypxwmd6R9EwrlXDvkfYSDMrq9/887AXAGh+G1rH+kYJKSTv+Si9Y0JPKTwKYv6PviAJosysNimA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-label": "2.1.15", + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-hover-card": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.23.tgz", + "integrity": "sha512-H8qONfZd3ltrU3+jHCIgITbWo6e1iTKvP9DHdrvYbX48ooRM5FjEDTn16AMwdfuOGkWdZEhpl3PLL/Wk/AnHDQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-id": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.4.tgz", @@ -1442,6 +1914,270 @@ } } }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.15.tgz", + "integrity": "sha512-o/rdYEwZTTo5tjknnPeyQFU45kUC4i/XyeDPP+HGyi6XqpOP6Zf5Ya5vh/Yfe9Id5JiuWnnAx2XqIeD3UYZt0g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.24.tgz", + "integrity": "sha512-uW7RVuU6Lp/ZtfeY4b3kL32zccgEWvPv1+cf17ubYzHa9cL8AHokmk36cG/XEiH/smbQvumnieXX9j/e9RqJWA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-callback-ref": "1.1.4", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menubar": { + "version": "1.1.24", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menubar/-/react-menubar-1.1.24.tgz", + "integrity": "sha512-eeVs0vf7cuqXaM0qLQCPcufImiJNVBXdJDLu7ZGYl2732UH23Qat/foNGrr6vYV3/DdTsBqASoggUFgH14OcZA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-menu": "2.1.24", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-navigation-menu": { + "version": "1.2.22", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.22.tgz", + "integrity": "sha512-ou7iLEJ+yrhQndkkA4U21XIdS/CS45F4iXIkTZcb6/Ne9EMsOuDudVmCwmDnfFZZ+y1FZqXRNSIgBy+YMvZVZg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-previous": "1.1.4", + "@radix-ui/react-visually-hidden": "1.2.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-one-time-password-field": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-one-time-password-field/-/react-one-time-password-field-0.1.16.tgz", + "integrity": "sha512-Tj9P6ntAJEw52oq/F0AGknXR4XncxEt7XU47O3xJQOiWfLzEy3d9gtgKfvjSzGxzHkfL+VzvxGu2KTFsloJqXw==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.3", + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-password-toggle-field": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-password-toggle-field/-/react-password-toggle-field-0.1.11.tgz", + "integrity": "sha512-4gvFnmDXu3dgj21CqsufzIameRvlRd4SBqaWhcrlrNhRo0Y5i/49AmRJYe1fdAM3G2VNBbmin4b0D6cdQocwgw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-is-hydrated": "0.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.23.tgz", + "integrity": "sha512-mw58MrBlyHWFisTOYignD0vf/3gdcgAR+9of1s9G/38CbFiUwH1nCDkc0AUM9IrXFgN5Ue8n45j9WCgyM1sbiQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-controllable-state": "1.2.6", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.7.tgz", + "integrity": "sha512-UsJrrd7w4wuKKTdvd/DNERVlwSlUcyXzjhyDwBk+3aPOsCjOY6ZSbxuw8E6lZTjjfP8Cpd0J8VVkrYUWyGYXyg==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-rect": "1.1.4", + "@radix-ui/react-use-size": "1.1.4", + "@radix-ui/rect": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-portal": { "version": "1.1.17", "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.17.tgz", @@ -1512,6 +2248,225 @@ } } }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.16.tgz", + "integrity": "sha512-5XnomAsoZZCY+KNTxbIghpGqPruZvKFNlvcAljVAOdDRDsH4/OZQxhtwo5wdtoDM5R6MhJBb2sPnDuRFep3lzg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-radio-group": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-radio-group/-/react-radio-group-1.4.7.tgz", + "integrity": "sha512-cgYFEkntCxppHZgtSZ+7vh0wbZQ+IC7PPMw8DSnRG27B6kDd32/Zw0OJt7dGDigCoprMuWHjg2PvUn3PYvPFoQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-size": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.19.tgz", + "integrity": "sha512-V9jI6hDjT7l3jsCQD9bLNvDLM3tH/gdbOTp7Tefp3hbbgCGQoK7tUvrWiRlcoBHIZ809ElXwNQwVo0B98LuTXQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.18", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.18.tgz", + "integrity": "sha512-Zn5Cd171wxsO3Dfg8HaW6RifTb9CYTKQJHs/G4+LN1GfmJpaQMZQyQxMprVPHpaz7QY4l9BxK2JwQuzHsXC8nA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.3", + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.3.7.tgz", + "integrity": "sha512-WFGImkmbzcfxeIwq/+4HvRN0pizBwbwQUED4I13ezQsDdfl38ZntN6TmR8XaSzPBqoCToe8rF75j6NPNDSzhbg==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.3", + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-previous": "1.1.4", + "@radix-ui/react-visually-hidden": "1.2.11", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-separator": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.1.15.tgz", + "integrity": "sha512-jOLO4lssEzWpoDu7G+Ze4VjwMRUBt291pnZD0gmalREZipnTX3wadQo7Fy48GCTfe14/YRN6rw/rOJqrE85Wxw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slider": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.4.7.tgz", + "integrity": "sha512-mTSLf1GC/C0moWjTbvCM6Qn/gBjvlFt1azuWF2v7MN5C3Zq2U2J2lN3ZEYkpujuOU5Ro7A28wkviSxaKnG0BYg==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.3", + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-previous": "1.1.4", + "@radix-ui/react-use-size": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-slot": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.3.tgz", @@ -1530,6 +2485,216 @@ } } }, + "node_modules/@radix-ui/react-switch": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.3.7.tgz", + "integrity": "sha512-48tB/4dn2UVLBCYhTu9AuR63IHl73l/qLbLgxd86noTUor4/K4LFDAcYjK+isP5313qxaFpjPVogE7+Y0/V3Kw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-size": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tabs": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.21.tgz", + "integrity": "sha512-UKxJlZid7FVtsk/WTxj4i4uSEgj2Au+KBbS7SQyTlzMhhn+86Cz3tISZdTa87bfEfcuvZezf2ZsxD4xuEKtkog==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.23", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.23.tgz", + "integrity": "sha512-ofhyAsYaocRGOs/n0XWdUOSVzEAG6BfrMVM8z0c0kLEWY38w/0WuMFPTJP/HVaZPYkMvHZoKIIhNcjbTCBILPg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-visually-hidden": "1.2.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.18.tgz", + "integrity": "sha512-7lonPlKfSacd20GlOBx2ltuVKz9oqWYZz+oMQyOltw6t1y2nyftj2ZmwwUHYn49kqfDWcp8dNZm5NgV+5Z+mug==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toggle-group": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.19.tgz", + "integrity": "sha512-OtnwuSVjd1Ofi+AdnvhsjQdyuhCDwYs1w9RyB5BN/OavXOVQo42SYqQjwUnbPnaiPFBpQ9aX70dWeee+v2oBLA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-toggle": "1.1.18", + "@radix-ui/react-use-controllable-state": "1.2.6" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toolbar": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.1.19.tgz", + "integrity": "sha512-Ph0IvtYw4VB12ZnZg+YtrGs8yJQsnizwo/zu0R4Y/nWugtJzA7Pg1eWeuDR9+LSqn+xjamss+UOSOJJJ4gx8jw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-separator": "1.1.15", + "@radix-ui/react-toggle-group": "1.1.19" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.16.tgz", + "integrity": "sha512-6EamKFRRnlpdadndbZ6LMwycfwkwPte1B42hs6QA0gYhjaOKqW4PZ4pjaW9UrlDX5eVt/OjncE7BFTPL5nmZhg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-visually-hidden": "1.2.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-use-callback-ref": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.4.tgz", @@ -1583,6 +2748,39 @@ } } }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.5.tgz", + "integrity": "sha512-ge3ipobwSXTj4JyVtswQ7qZj0ZHdtbGuOno/LrgAAeSxtsJ6Vs4Gz5IkPH2bmqpjcLUFoqGhA/mueuIf63UXlA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-is-hydrated": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.3.tgz", + "integrity": "sha512-umO/aJ+82CpOnhDZUTbILCQf7kU/g0iv+oGs/Q8jw7IkhWBzaEP4sA268PhFAJTFetbwp3ICc6ktpI4TqtxcIw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-use-layout-effect": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", @@ -1598,53 +2796,90 @@ } } }, - "node_modules/@reduxjs/toolkit": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.12.0.tgz", - "integrity": "sha512-KiT+RzZbp6mQET+Mg+h2c97+9j1sNflUxQkIHI7Yuzf6Peu+OYpmkn6nbHWmLLWj+1ZODUJFwGZ7gx3L9R9EOw==", + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.4.tgz", + "integrity": "sha512-XoSLhbRbqxFtgJoi2fNHA3C6pDlY34x508vUpUGoFZfvePfHXHbE1lC4FYFMnJWgiCRroSTw6fOsXQoVS9RwZg==", "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.0.0", - "@standard-schema/utils": "^0.3.0", - "immer": "^11.0.0", - "redux": "^5.0.1", - "redux-thunk": "^3.1.0", - "reselect": "^5.1.0" - }, "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", - "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { + "@types/react": { "optional": true } } }, - "node_modules/@reduxjs/toolkit/node_modules/immer": { - "version": "11.1.8", - "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.8.tgz", - "integrity": "sha512-/tbkHMW7y10Lx6i1crLjD4/OhNkRG+Fo7byZHtah0547nIeXYcpIXaUh0IAQY6gO5459qpGGYapcEOHtFXkIuA==", + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.4.tgz", + "integrity": "sha512-cSOCh6JlkmfjLyNcLiu2nB4v+nm+dkZ+Q5KHWk/soo4U7ZLiEQFKHK9/YmtBHjfCEaU43IBKQOc4/uJmCaiCTQ==", "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" + "dependencies": { + "@radix-ui/rect": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", - "dev": true, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.4.tgz", + "integrity": "sha512-D3anSY15EJoxrihpsXI6SMrmmonnQtR2ni7arO+Lfdg3O95b9hNXxONk8jA5C8ANdF/h5HMAxejgs8PWJ6rlhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.11.tgz", + "integrity": "sha512-NFS86RYYZb4/exihaESBGOpMJFz8MGLAfu3mOBSGByVnVPC9JPASfYubxd/8KbkQK0sYAv8lVQDEQukDX/qXvQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.3.tgz", + "integrity": "sha512-JtyZR+mqgBibTo8xea3B6ZRmzZiM/YeVBtUkas6zMuXjAlfIFIW2FgqeM9eLyvEaYX66vr6DJMK+4U6LV0KhNw==", "license": "MIT" }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz", - "integrity": "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==", + "node_modules/@rolldown/binding-android-arm-eabi": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm-eabi/-/binding-android-arm-eabi-1.2.10.tgz", + "integrity": "sha512-bp9svZb+QurZeh+8H4BhrZkifEB0YBNvTVzNSJnJQkj4NrRwmQoDUCGP0vSN7PbvLeM7l1tK6GXL8mrTiH2myg==", "cpu": [ "arm" ], @@ -1653,12 +2888,15 @@ "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz", - "integrity": "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==", + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.2.10.tgz", + "integrity": "sha512-wm6Dld3RXUAZ/gRWKyUy+4W1B5CB5UeFaOzsSWJWEdxZXHH8rCYiZ5dGe6oJmhsunAPWzL7FZV+VtvmN5Ye2eA==", "cpu": [ "arm64" ], @@ -1667,12 +2905,15 @@ "optional": true, "os": [ "android" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz", - "integrity": "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==", + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.2.10.tgz", + "integrity": "sha512-UbEfXq/AqGNgRTV3ik+X/iR6mUxu2QdYAadwRxJWquUGnW6gDqdP1FtLtFXRow7RJx0ssRwi80XAPr4r+4DtsA==", "cpu": [ "arm64" ], @@ -1681,12 +2922,15 @@ "optional": true, "os": [ "darwin" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz", - "integrity": "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==", + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.2.10.tgz", + "integrity": "sha512-7f5h17q5KZVx/ji1vb8OTq31ch1O2I7K8NPIr44GkyWTApXMIsmhWqZfgpOH10xeauqghDAvGlZktasCkcF6Eg==", "cpu": [ "x64" ], @@ -1695,26 +2939,15 @@ "optional": true, "os": [ "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz", - "integrity": "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==", - "cpu": [ - "arm64" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz", - "integrity": "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==", + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.2.10.tgz", + "integrity": "sha512-ynOk/eEYhC6ZB2xCGvKrEOwE58oBy9LnrAqtkrDF9Fz1VTaNdGZTsV0VarJdhPwb+sOJTGjCLwcuyRJZ1dnMcQ==", "cpu": [ "x64" ], @@ -1723,46 +2956,32 @@ "optional": true, "os": [ "freebsd" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz", - "integrity": "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==", + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.2.10.tgz", + "integrity": "sha512-ERrAs185meZZhGan7a4l3RiiJK1ArSDlHdST++uvSxe+FDbR4TwUPahT/cbZJvaG6fIpDpF78surN+tX708Y4Q==", "cpu": [ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz", - "integrity": "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==", - "cpu": [ - "arm" ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz", - "integrity": "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==", + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.2.10.tgz", + "integrity": "sha512-KN7OHKD0J3jy1UzBwZWPxpwhODf9IARUIJcrH+yLYKOcmegZ8luEUM38lDP1bDVj40yP6PsSzCqOJF76vljFnQ==", "cpu": [ "arm64" ], @@ -1774,12 +2993,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz", - "integrity": "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==", + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.2.10.tgz", + "integrity": "sha512-8l9wP8O+wa8zD6iw6egSfzVtu7oZVfH3hlUsMM4MwbLMhxleqeoXbZzjddyK3YyNlwLhqznq3tF7PkNJ8T/V2w==", "cpu": [ "arm64" ], @@ -1791,46 +3013,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz", - "integrity": "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz", - "integrity": "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz", - "integrity": "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==", + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.2.10.tgz", + "integrity": "sha512-SeXNKeQzA5kLhz/J0CH6ZP0/HJ3v1xm/0YbiYpE0kK7emfRC2OIGGIaE14xzkISEGv2aYuUSpiLiU5Gbq+OI0A==", "cpu": [ "ppc64" ], @@ -1842,63 +3033,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz", - "integrity": "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz", - "integrity": "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz", - "integrity": "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==", - "cpu": [ - "riscv64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz", - "integrity": "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==", + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.2.10.tgz", + "integrity": "sha512-mtht0nR+y8/hart4175Ll15w7lY8dg7CtQ+j2FDNTsDRspOWTK/2V3l0aj9sIj7XmvqxT8Yli/wq22e7feTTWg==", "cpu": [ "s390x" ], @@ -1910,12 +3053,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz", - "integrity": "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==", + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.2.10.tgz", + "integrity": "sha512-FSM94nGd55NYo48usCyM/nHfUKRnqc9+b0vJNuKV0oCCpIp/OGims7rO1Nv/DkFkt0S/s2rxsJ2kkS8J3HcpeA==", "cpu": [ "x64" ], @@ -1927,12 +3073,15 @@ "optional": true, "os": [ "linux" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz", - "integrity": "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==", + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.2.10.tgz", + "integrity": "sha512-C3YxNB16myRLs7o+B+6PnQ6jBsdIS4+AE4Ah8glVGhDpEv9AOvxhZ/1duAb4B0UGczEK/lBbccksd8VI+p6zfw==", "cpu": [ "x64" ], @@ -1944,26 +3093,15 @@ "optional": true, "os": [ "linux" - ] - }, - "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz", - "integrity": "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==", - "cpu": [ - "x64" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz", - "integrity": "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==", + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.2.10.tgz", + "integrity": "sha512-571TlE/F1eeTjjdjYAMMMPs1Mfv3MtX6s3+ZKVU6HiUjZ5Njc6c/qzNy/8K3zALTZnaw3JQVYrHxvNfjm43KAg==", "cpu": [ "arm64" ], @@ -1972,12 +3110,15 @@ "optional": true, "os": [ "openharmony" - ] + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz", - "integrity": "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==", + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.2.10.tgz", + "integrity": "sha512-QXW+ZWaiqs2c7Fi++D/SsW07LTPcUrncxcskJGfGNBoaLik1IU6fJymz4HsqwEO0u5Iq11yTO0B/mc4cPk7jrQ==", "cpu": [ "arm64" ], @@ -1986,26 +3127,15 @@ "optional": true, "os": [ "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz", - "integrity": "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==", - "cpu": [ - "ia32" ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "engines": { + "node": "^20.19.0 || >=22.12.0" + } }, - "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz", - "integrity": "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==", + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.2.10.tgz", + "integrity": "sha512-5FQFGgah17YeMtG1Yd5a+rMxQpTksyNXxRtKz06FVTaQw3RKYUJQbUoKk0/5jrXBpDo+7makNP7UHA2LQyH64A==", "cpu": [ "x64" ], @@ -2014,78 +3144,111 @@ "optional": true, "os": [ "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz", - "integrity": "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==", - "cpu": [ - "x64" ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/plugin-babel": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@rolldown/plugin-babel/-/plugin-babel-0.2.4.tgz", + "integrity": "sha512-ygmm2j/mN+aCvstHo0x3IOu4uc6LqXT9SJ3q4kpfG/+Yhfz0B+E47FITcC0FljZADwUFARP6E2kiE+Lc26D8wg==", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "picomatch": "^4.0.7" + }, + "engines": { + "node": ">=22.12.0 || ^24.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.29.0 || ^8.0.0-rc.1", + "@babel/plugin-transform-runtime": "^7.29.0 || ^8.0.0-rc.1", + "@babel/runtime": "^7.27.0 || ^8.0.0-rc.1", + "rolldown": "^1.0.0-rc.5", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@babel/plugin-transform-runtime": { + "optional": true + }, + "@babel/runtime": { + "optional": true + }, + "vite": { + "optional": true + } + } }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, "license": "MIT" }, - "node_modules/@standard-schema/utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", - "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", "license": "MIT" }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@tailwindcss/node": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.1.tgz", - "integrity": "sha512-6NDaqRoAMSXD1mr/RXu0HBvNE9a2n5tHPsxu9XHLws8o4Twes5rBM2205SUUiJ9goAtadrN6xTGX0UDEwp/N4A==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.3.3.tgz", + "integrity": "sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.5", - "enhanced-resolve": "5.21.6", + "enhanced-resolve": "^5.24.1", "jiti": "^2.7.0", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", - "tailwindcss": "4.3.1" + "tailwindcss": "4.3.3" } }, "node_modules/@tailwindcss/oxide": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.1.tgz", - "integrity": "sha512-yVPyo8RNkabVr3O2EhHEE0Rewu7YKzc1DhIqfL46LKveFrmu9XbDazNOJY7/GRuvw1h6u3utWnR29H/p5JPlgA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.3.3.tgz", + "integrity": "sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==", "dev": true, "license": "MIT", "engines": { "node": ">= 20" }, "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.3.1", - "@tailwindcss/oxide-darwin-arm64": "4.3.1", - "@tailwindcss/oxide-darwin-x64": "4.3.1", - "@tailwindcss/oxide-freebsd-x64": "4.3.1", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.1", - "@tailwindcss/oxide-linux-arm64-gnu": "4.3.1", - "@tailwindcss/oxide-linux-arm64-musl": "4.3.1", - "@tailwindcss/oxide-linux-x64-gnu": "4.3.1", - "@tailwindcss/oxide-linux-x64-musl": "4.3.1", - "@tailwindcss/oxide-wasm32-wasi": "4.3.1", - "@tailwindcss/oxide-win32-arm64-msvc": "4.3.1", - "@tailwindcss/oxide-win32-x64-msvc": "4.3.1" + "@tailwindcss/oxide-android-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-arm64": "4.3.3", + "@tailwindcss/oxide-darwin-x64": "4.3.3", + "@tailwindcss/oxide-freebsd-x64": "4.3.3", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.3", + "@tailwindcss/oxide-linux-arm64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-arm64-musl": "4.3.3", + "@tailwindcss/oxide-linux-x64-gnu": "4.3.3", + "@tailwindcss/oxide-linux-x64-musl": "4.3.3", + "@tailwindcss/oxide-wasm32-wasi": "4.3.3", + "@tailwindcss/oxide-win32-arm64-msvc": "4.3.3", + "@tailwindcss/oxide-win32-x64-msvc": "4.3.3" } }, "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.1.tgz", - "integrity": "sha512-SVlyf61g374l5cHyg8x9kf5xmLcOaxvOTsbsqDnSsDJaKOEFZ7GCvi84VAVGpxojYOs1+3K6M0UjXfqPU8vmOQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.3.3.tgz", + "integrity": "sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==", "cpu": [ "arm64" ], @@ -2100,9 +3263,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.1.tgz", - "integrity": "sha512-hVnWLwv+e/l7c4WKyVtHVrIPvYdqWHjRB3MDIqARynzFtnQg85kmQEFCbV9Ja0VVx4xXTIiDWY60Y7iz/iNoDA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.3.3.tgz", + "integrity": "sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==", "cpu": [ "arm64" ], @@ -2117,9 +3280,9 @@ } }, "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.1.tgz", - "integrity": "sha512-Cf7abu0WVgbhU7ANgPUnSAvm7nCvMweusHb8FnaHlLfv/Caq4GYaEZg7ZImzzmjx4lIAfuS8q+eLIS7A7IzxIg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.3.3.tgz", + "integrity": "sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==", "cpu": [ "x64" ], @@ -2134,9 +3297,9 @@ } }, "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.1.tgz", - "integrity": "sha512-ZZqzX2Y+GXtXXfqSfpJhDm60OoZfvLHLCgm+J7NVqgHHJjG/m9ugZI77RwTsVd4fnBJuCFP6Ae6kTJb71UdS8g==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.3.3.tgz", + "integrity": "sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==", "cpu": [ "x64" ], @@ -2151,9 +3314,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.1.tgz", - "integrity": "sha512-/Ah/xik0LaMYfv9DZ0S/t4pBlBNYOcqtRwusjgovHkvT8ixueWCLyJjsaF5kQIckjb4IT8Q6K6p/iPmZMixYgg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.3.3.tgz", + "integrity": "sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==", "cpu": [ "arm" ], @@ -2168,9 +3331,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.1.tgz", - "integrity": "sha512-gqdFoVJlw444GvpnheZLHmvTzSxI/cOUUh2KSNejQjTcYkW062SVD+En0rUgD+QV91bz1XGIGtt1HJd48xUGbQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.3.3.tgz", + "integrity": "sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==", "cpu": [ "arm64" ], @@ -2188,9 +3351,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.1.tgz", - "integrity": "sha512-Bwv9KwOvE0VKa86xPFif9b9c3Y1NxOV1P0gLti/IYaWEsQYZXDlxfGEtA8mdDZ7SG3wyNXAWYT5SIn3giL57oA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.3.3.tgz", + "integrity": "sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==", "cpu": [ "arm64" ], @@ -2208,9 +3371,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.1.tgz", - "integrity": "sha512-Ymi8O8T15HYQdOUWUtTI6ldN0neHP85FC+Qz32xTcZ7iJXtem/x8ITev0o1e9e5rkqj4lONZfTRLvkmin1+tKg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.3.3.tgz", + "integrity": "sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==", "cpu": [ "x64" ], @@ -2228,9 +3391,9 @@ } }, "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.1.tgz", - "integrity": "sha512-M+P/91qJ6uILLw4k2G93GMDRAXj61SMvFQYt39AqvUqYgExXpLL5aepfns7sj4HiAQeolirQF9E0lzRvdf4zPQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.3.3.tgz", + "integrity": "sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==", "cpu": [ "x64" ], @@ -2248,9 +3411,9 @@ } }, "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.1.tgz", - "integrity": "sha512-zsM8uOeqvVGHsAXsJxsT28ttosFahLJKCLOTUBqRAtKnVgGSRitds9T432QiT8b77Yga7JIBkulIRRlJPtYhRA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.3.3.tgz", + "integrity": "sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==", "bundleDependencies": [ "@napi-rs/wasm-runtime", "@emnapi/core", @@ -2266,9 +3429,9 @@ "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.10.0", - "@emnapi/runtime": "^1.10.0", - "@emnapi/wasi-threads": "^1.2.1", + "@emnapi/core": "^1.11.1", + "@emnapi/runtime": "^1.11.1", + "@emnapi/wasi-threads": "^1.2.2", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.2", "tslib": "^2.8.1" @@ -2278,9 +3441,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.1.tgz", - "integrity": "sha512-aiNvSq9BsVk8V513lDKlrCFAgf8qBMPZTpgEhInL+NwQqs97mYmupVMrPrgBBSL8Pv/0zXu9MrMF9rMun1ZeNg==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", + "integrity": "sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==", "cpu": [ "arm64" ], @@ -2295,9 +3458,9 @@ } }, "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.1.tgz", - "integrity": "sha512-xDEyu1rg290472FEGaKHnzyDyh5QH+AlWvsU5hMoMtPpzmKlRI0jaYKCgSHDYtaQWZOYbMaduSyCwFwY4n1HmA==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.3.3.tgz", + "integrity": "sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==", "cpu": [ "x64" ], @@ -2312,24 +3475,24 @@ } }, "node_modules/@tailwindcss/vite": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.1.tgz", - "integrity": "sha512-hItDHuIIlEV61R+faXu66s1K36aTurO/Qw0e45Vskz57gXl9pWOT6eg3zmcEui6CZXddbN7zd41bwmvag4JGwQ==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.3.3.tgz", + "integrity": "sha512-yYU8cogLeSh/ms2jh8Fj7jaba/EWa7Ja6GoUqYZaraEuCI5YS6ms6ObZgjjedm+jm6XZjdNRWBpPP6Z86oOxcw==", "dev": true, "license": "MIT", "dependencies": { - "@tailwindcss/node": "4.3.1", - "@tailwindcss/oxide": "4.3.1", - "tailwindcss": "4.3.1" + "@tailwindcss/node": "4.3.3", + "@tailwindcss/oxide": "4.3.3", + "tailwindcss": "4.3.3" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, "node_modules/@tanstack/history": { - "version": "1.162.1", - "resolved": "https://registry.npmjs.org/@tanstack/history/-/history-1.162.1.tgz", - "integrity": "sha512-DR9t6lfLVdrjgCwpglrR9DR7Ok8/HlXjcOE+goWXF3zyuLUO/ug7vMbSFxTqrQTtbRghJfyhmIZ0S6LhPIy44w==", + "version": "1.162.4", + "resolved": "https://registry.npmjs.org/@tanstack/history/-/history-1.162.4.tgz", + "integrity": "sha512-utTS5L2OkeYUzXGohL1Z8sefu1GLNOJcxe8Hd6iIdc/Xo1K1nDB2JEp4iSFhvYh33xKC9V91TxrS8qfrpoKobQ==", "license": "MIT", "engines": { "node": ">=20.19" @@ -2340,9 +3503,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.101.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.101.1.tgz", - "integrity": "sha512-Y6Y92dkXtNqx67m2pMSxUsA3zOCwv862JexZRP8/EPwvKXMPu9m8rv43spiXWzOUIggQ3SQApttALStzhA8B4g==", + "version": "5.103.2", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.103.2.tgz", + "integrity": "sha512-I8DkFXls5jXLqtm8+QpOhEmG07hIblhSZFzafg9wHsMSEvMzULy9hK17wU1T/ahfhMbtITJhbxutwwCoihkR7A==", "license": "MIT", "funding": { "type": "github", @@ -2350,12 +3513,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.101.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.101.1.tgz", - "integrity": "sha512-ZnONUuQKJe1bJMStXUL1s5uKN9FcfC28j5cK+iDZcdSHtUv1wtin1cGc/Oewhf2Oc4eKY7lggtpvT/AbMmhHew==", + "version": "5.103.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.103.2.tgz", + "integrity": "sha512-B+fWiYZBc+0uUD5zDZAeLw9dKj7XEsdnuu6zRZ+no6LNKpeE3P3bJ+N6HINjcIlWR6fW3vUoTneEaGa2V6ehqw==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.101.1" + "@tanstack/query-core": "5.103.2" }, "funding": { "type": "github", @@ -2366,14 +3529,14 @@ } }, "node_modules/@tanstack/react-router": { - "version": "1.170.32", - "resolved": "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.170.32.tgz", - "integrity": "sha512-SIpxvaTKco100a5ZR3ePmArbhtm3XOx+w1dpGYY9gxHDta4iXSKDdQuhLonwJbIMkVJsU1rwXf0UDHMrF/1snw==", + "version": "1.170.39", + "resolved": "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.170.39.tgz", + "integrity": "sha512-wLZi/hXW/kTeLlMIvI2VB8Oj38GLz8YkHmTM14lLScAzx79UZEwBHWMj6JZw/imuyuhrcmbe8KTFsFBHzJUftg==", "license": "MIT", "dependencies": { - "@tanstack/history": "1.162.1", - "@tanstack/react-store": "^0.9.3", - "@tanstack/router-core": "1.171.27", + "@tanstack/history": "1.162.4", + "@tanstack/react-store": "^0.11.0", + "@tanstack/router-core": "1.171.32", "isbot": "^5.1.22" }, "engines": { @@ -2389,12 +3552,12 @@ } }, "node_modules/@tanstack/react-store": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.9.3.tgz", - "integrity": "sha512-y2iHd/N9OkoQbFJLUX1T9vbc2O9tjH0pQRgTcx1/Nz4IlwLvkgpuglXUx+mXt0g5ZDFrEeDnONPqkbfxXJKwRg==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.11.1.tgz", + "integrity": "sha512-HaIGKI3YLmjBYIvy5DFDY23oNaYZIsTZfngey07Uh5iLVJgM3bIGCnZeOFOqzjFld9JHWcaHJnasD/bKoGKwJQ==", "license": "MIT", "dependencies": { - "@tanstack/store": "0.9.3", + "@tanstack/store": "0.11.1", "use-sync-external-store": "^1.6.0" }, "funding": { @@ -2407,12 +3570,12 @@ } }, "node_modules/@tanstack/router-core": { - "version": "1.171.27", - "resolved": "https://registry.npmjs.org/@tanstack/router-core/-/router-core-1.171.27.tgz", - "integrity": "sha512-wDwSLvoLwIaNcnx9UNcN9Mb7Y8QwCYq1U1RQZwyN186gnkIoIYI2SOxy8VqH1vFigbkHkk4FmwMAQlghPgDK2g==", + "version": "1.171.32", + "resolved": "https://registry.npmjs.org/@tanstack/router-core/-/router-core-1.171.32.tgz", + "integrity": "sha512-X86Jqk3vB2KJcUfS6oLi7B7yxbaa59QEhZRPPP1fRx3k+Jw/Fu1UYVBcRtdwK/OccQnrlQdVoKvNO3QXmyEBOw==", "license": "MIT", "dependencies": { - "@tanstack/history": "1.162.1", + "@tanstack/history": "1.162.4", "cookie-es": "^3.0.0", "seroval": "^1.6.2", "seroval-plugins": "^1.6.2" @@ -2426,9 +3589,9 @@ } }, "node_modules/@tanstack/store": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@tanstack/store/-/store-0.9.3.tgz", - "integrity": "sha512-8reSzl/qGWGGVKhBoxXPMWzATSbZLZFWhwBAFO9NAyp0TxzfBP0mIrGb8CP8KrQTmvzXlR/vFPPUrHTLBGyFyw==", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@tanstack/store/-/store-0.11.1.tgz", + "integrity": "sha512-mzTOBhypOuDJAy/D8n2MfUZ1HFkXnmSETviRyhqEC8LUE7/IZQExOTxMANj3KjTofYTkFNpBY67qaVrT41YccA==", "license": "MIT", "funding": { "type": "github", @@ -2436,9 +3599,9 @@ } }, "node_modules/@testing-library/dom": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", - "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.2.tgz", + "integrity": "sha512-yzr2S9HyAIdhz2/6qHgbs665Q7PKVcDF05vsOlHPxG1mo36gKVesdYVeDLnXgfjJ03CrKRk08knc6+E/9m8v2Q==", "dev": true, "license": "MIT", "peer": true, @@ -2521,9 +3684,9 @@ } }, "node_modules/@testing-library/user-event": { - "version": "14.6.6", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.6.tgz", - "integrity": "sha512-Jbs9FpkkIDw8FgSc6kOVsOv8JuuqGAL7J4X1oot77JxAoDlkNn2GRkd0aYRVuQ+pVQAiHWVkE4rX/dkF5fBiCw==", + "version": "14.6.7", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.7.tgz", + "integrity": "sha512-MPCpX8bxe8zS+JmmTwLp8jd0dy1rAm60Te/SL8JrQM3qvQJcBOs1d7IefJMyZzqM3EWBrDn/LWDt1BCGu4ASfg==", "dev": true, "license": "MIT", "engines": { @@ -2534,11 +3697,16 @@ "@testing-library/dom": ">=7.21.4" } }, - "node_modules/@tweenjs/tween.js": { - "version": "23.1.3", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", - "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", - "license": "MIT" + "node_modules/@ts-morph/common": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.27.0.tgz", + "integrity": "sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==", + "license": "MIT", + "dependencies": { + "fast-glob": "^3.3.3", + "minimatch": "^10.0.1", + "path-browserify": "^1.0.1" + } }, "node_modules/@types/aria-query": { "version": "5.0.4", @@ -2604,76 +3772,6 @@ "assertion-error": "^2.0.1" } }, - "node_modules/@types/d3-array": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "license": "MIT" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "license": "MIT" - }, - "node_modules/@types/d3-force": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", - "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "license": "MIT", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-shape": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", - "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "license": "MIT" - }, "node_modules/@types/deep-eql": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", @@ -2703,9 +3801,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.20.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.0.tgz", - "integrity": "sha512-QWlFW2wf3nTjC13/DqRnBpR4ZO36VJH/JVBkA/vcnmbTBNQIlnObqyqZE1tUR7+Ni23Lda8R1BxMfbXRpCUx5g==", + "version": "22.20.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.4.tgz", + "integrity": "sha512-zJRE40jpHtKqE/C4fgHrAKQLJuSpzEnP9ff9Y7YtoR3Wd2pwqzlekDeEuUQXjRd+QCYnVnNwuJYmhdk9XV8gvA==", "dev": true, "license": "MIT", "dependencies": { @@ -2713,9 +3811,9 @@ } }, "node_modules/@types/react": { - "version": "19.2.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", - "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.3.0.tgz", + "integrity": "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==", "devOptional": true, "license": "MIT", "dependencies": { @@ -2723,33 +3821,33 @@ } }, "node_modules/@types/react-dom": { - "version": "19.2.5", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.5.tgz", - "integrity": "sha512-fMPwH9v7r/pp43yUd2/Mbiex5KouJwwR3dzHkhLREUC6764VyDsqxhAxv6OFEYR1RhjOyD1naqba8ECDBe7ZQg==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.3.0.tgz", + "integrity": "sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q==", "devOptional": true, "license": "MIT", "peerDependencies": { - "@types/react": "^19.2.0" + "@types/react": "^19.3.0" } }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", - "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "node_modules/@types/validate-npm-package-name": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/validate-npm-package-name/-/validate-npm-package-name-4.0.2.tgz", + "integrity": "sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==", "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.68.0.tgz", - "integrity": "sha512-WASHDpCm6qO5jj9g1a+8NiW5+GCkAyLReR56/4VruYmNgfUmqpxOfZ2Yfb8xGfJPWv5Qi6LSD8sXdces3vbp/Q==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.70.1.tgz", + "integrity": "sha512-nDNrUQ/4ruSNYbu749TRY7cfrzPtoLHEXSNBI8aaNY32LlZCajixqRf3FqcKC4p5Cam4VOHYx/t+i5+nKXvrqA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.68.0", - "@typescript-eslint/type-utils": "8.68.0", - "@typescript-eslint/utils": "8.68.0", - "@typescript-eslint/visitor-keys": "8.68.0", + "@typescript-eslint/scope-manager": "8.70.1", + "@typescript-eslint/type-utils": "8.70.1", + "@typescript-eslint/utils": "8.70.1", + "@typescript-eslint/visitor-keys": "8.70.1", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.5.0" @@ -2762,15 +3860,15 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.68.0", + "@typescript-eslint/parser": "^8.70.1", "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", "typescript": ">=4.8.4 <6.1.0" } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", - "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.10.tgz", + "integrity": "sha512-HpbUakT7xp5miBUywCHf36ZEuAJNklBJDDsGpUIjMzOSmM8ELSfA9Sa/QDPeNeqeoN31u+UTCkL4klCOVvRm4Q==", "dev": true, "license": "MIT", "engines": { @@ -2778,16 +3876,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.68.0.tgz", - "integrity": "sha512-fHq2VC1kpyYfvEcbiMjOpySY4WS7voEp89yAThrHRX5sm9j2lzYppCb2umFMEed4fWcyeLjHxrz0mpjNBaBxMQ==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.70.1.tgz", + "integrity": "sha512-nO974WLllwhSFWQXnMLj6nDGa8f0khKEz1JzpPJ1u7Vm/4X1X6ZHajpoknU4bb41vJyMB0HHVyS2GqdhWfIXZw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.68.0", - "@typescript-eslint/types": "8.68.0", - "@typescript-eslint/typescript-estree": "8.68.0", - "@typescript-eslint/visitor-keys": "8.68.0", + "@typescript-eslint/scope-manager": "8.70.1", + "@typescript-eslint/types": "8.70.1", + "@typescript-eslint/typescript-estree": "8.70.1", + "@typescript-eslint/visitor-keys": "8.70.1", "debug": "^4.4.3" }, "engines": { @@ -2803,14 +3901,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.68.0.tgz", - "integrity": "sha512-5GQtWZCXFcFYux955pvoS02WLc49pXNlvIxocKjS0clvwo3in1RdlzVKyiqQH9vE5AKWFLTaUgeQkOrTS+0Qxw==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.70.1.tgz", + "integrity": "sha512-62xOgboPfwc3/IgPSX/W6oQR3ZbF04194FPGUGH8HL8iLFHbt/456/8Ph1wLNUgVF+s94FlHoipBsz+v7+LMnA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.68.0", - "@typescript-eslint/types": "^8.68.0", + "@typescript-eslint/tsconfig-utils": "^8.70.1", + "@typescript-eslint/types": "^8.70.1", "debug": "^4.4.3" }, "engines": { @@ -2825,14 +3923,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.68.0.tgz", - "integrity": "sha512-T5eXpcaJNg8bhjHJ8Rjp68Vq/QBteYtTKY8TZqVNPaUbuz0f6jI9t6aDkylwvalpAB9XTTFeFOjrjXAZ3YvmVA==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.70.1.tgz", + "integrity": "sha512-Pa0EeSeAusQc1WbjQMac+YfenewYTBu0KjgYvkUKwhXaHUKbFog23Dm/rp0DX/6tyYOQ3Xl1a+3EcFNZynGHCw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.68.0", - "@typescript-eslint/visitor-keys": "8.68.0" + "@typescript-eslint/types": "8.70.1", + "@typescript-eslint/visitor-keys": "8.70.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2843,9 +3941,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.68.0.tgz", - "integrity": "sha512-F7zrGQfiJHojPwi8vhxZQC1tWtJzvL74cK/nqri2lk8YUXvYaYwl263xOJ69jDWPUk1hmcdoayFwk9lX09npVw==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.70.1.tgz", + "integrity": "sha512-jumze1fPI+sDOaM2TWGQdn39PDxTr7TZGeuyLkAbNyx2vtMT3uRnVKChN0hfht5V2TugphJzF6bYXvBcE09qqg==", "dev": true, "license": "MIT", "engines": { @@ -2860,15 +3958,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.68.0.tgz", - "integrity": "sha512-X77zqoY1EjeWGs/0JNxeaMfp5C5lIz4Tw8y66F1Ne8Faq6g424sBNYM6xBAqElfGZPLpWS+CZAp0DXyKDzWiHg==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.70.1.tgz", + "integrity": "sha512-7zKTnyvaVWqzLZHPFQtX1hVHqgkMC+WebPWakNCSyrQVbIP1AM0L0TlBZtACldIRb6PptI8Odk+jyZ5kP3B1VA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.68.0", - "@typescript-eslint/typescript-estree": "8.68.0", - "@typescript-eslint/utils": "8.68.0", + "@typescript-eslint/types": "8.70.1", + "@typescript-eslint/typescript-estree": "8.70.1", + "@typescript-eslint/utils": "8.70.1", "debug": "^4.4.3", "ts-api-utils": "^2.5.0" }, @@ -2885,9 +3983,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.68.0.tgz", - "integrity": "sha512-9RnpsGJjrAllCMefGVVsImJM24YurhC0Q1h4UbvivtvOqXmR/vEJge2OoE++z9m6hyg8T1Q8t5SNT6tHSbrxcg==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.70.1.tgz", + "integrity": "sha512-Dm1ypdhhrGCTyyehxElhgJ6kgk8MVCv5qXdoOVqPr1uqk42jX8KjrZqhROvdShczA8qrDoYiOWn1ykWlx2k81Q==", "dev": true, "license": "MIT", "engines": { @@ -2899,16 +3997,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.68.0.tgz", - "integrity": "sha512-OKKsD0tYmoNiU5PW2zehO1yO56jYOm1ShYlxon/Z0SJNidAkdVg86eg9ruRuoXf8xfnuWZGbwDsStkoXbZtIIA==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.70.1.tgz", + "integrity": "sha512-TU8PwyGN0PQJUcE96mw8eCQ44SmxGdQlJmlWakHaHQ15eIuuvye5yNtmh/i6oS88jzXVQB71xdNkbkB/fMwL0g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.68.0", - "@typescript-eslint/tsconfig-utils": "8.68.0", - "@typescript-eslint/types": "8.68.0", - "@typescript-eslint/visitor-keys": "8.68.0", + "@typescript-eslint/project-service": "8.70.1", + "@typescript-eslint/tsconfig-utils": "8.70.1", + "@typescript-eslint/types": "8.70.1", + "@typescript-eslint/visitor-keys": "8.70.1", "debug": "^4.4.3", "minimatch": "^10.2.2", "semver": "^7.7.3", @@ -2940,16 +4038,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.68.0.tgz", - "integrity": "sha512-PB5gJMMOg0Q5P1tsgWtEAqQacJXq0qEqRHDX/YJ4FaTMLfZPpHB3gjl2EJuiZyPABxmj4ZQYiY9m1bdAJ5y7tQ==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.70.1.tgz", + "integrity": "sha512-Esgul8MsnKnRLdYU2Eb2cRV9bS5HJYtKj1ByJnOzzG2M58DGdSUQ1jUuILxipqcpB2h9WLrbD5GijIWUjX/Tqw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.68.0", - "@typescript-eslint/types": "8.68.0", - "@typescript-eslint/typescript-estree": "8.68.0" + "@typescript-eslint/scope-manager": "8.70.1", + "@typescript-eslint/types": "8.70.1", + "@typescript-eslint/typescript-estree": "8.70.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -2964,13 +4062,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.68.0.tgz", - "integrity": "sha512-YR65gGdGvTUAWLldC3xLOvOzamdGzB4A5/N8rehEaHs3Zvoe39BhgY+u0SPch1OvrVTfLcc55wsSgK2NcnTS/A==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.70.1.tgz", + "integrity": "sha512-Vwj9lUIW5Xq3wQ9w6gv3R86g1hMK8f2zNOdGTAgeXUMMXFK78G9ruCjjqutHMNJc0+CH7LYRnHeUB9IT8wFmcw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/types": "8.70.1", "eslint-visitor-keys": "^5.0.0" }, "engines": { @@ -2982,60 +4080,53 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.1.1.tgz", + "integrity": "sha512-yxLaQV9gkhS8ezJqCM6+ndU7mDY6gqAg75NQ+0IjwEI8IYOmQCgkRwHKVSfWXW076DsqMo0Dk+0FK1U+M5RgFw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.28.0", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" + "@rolldown/pluginutils": "^1.0.1" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/@vitest/expect": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.7.tgz", - "integrity": "sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/chai": "^5.2.2", - "@vitest/spy": "3.2.7", - "@vitest/utils": "3.2.7", - "chai": "^5.2.0", - "tinyrainbow": "^2.0.0" + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "oxc-transform-react": "^0.145.0", + "vite": "^8.0.0" }, - "funding": { - "url": "https://opencollective.com/vitest" + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "oxc-transform-react": { + "optional": true + } } }, "node_modules/@vitest/mocker": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.7.tgz", - "integrity": "sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-5.0.1.tgz", + "integrity": "sha512-6K1DoBNAPGvuOcSsGA4D6x+5zEEff/KmOOP3uetT2TrGpVfI+HRHRnJJfKi5ib/g1vx8IYHQD8s0pbJz8WQI7Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.2.7", + "@jridgewell/trace-mapping": "0.3.31", + "@vitest/spy": "5.0.1", "estree-walker": "^3.0.3", - "magic-string": "^0.30.17" + "magic-string": "^1.2.3" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "msw": "^2.4.9", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "msw": { @@ -3046,84 +4137,37 @@ } } }, - "node_modules/@vitest/pretty-format": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.7.tgz", - "integrity": "sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==", + "node_modules/@vitest/mocker/node_modules/magic-string": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.2.tgz", + "integrity": "sha512-vG+rjFRj1PqdIBozIxAGMjPlOhaVe+GXpbttY/iSK7rGcJRMlwNJO7dcUwmUqkymsFLJiNGI06t4D7Fr7yRC9g==", "dev": true, "license": "MIT", "dependencies": { - "tinyrainbow": "^2.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/runner": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.7.tgz", - "integrity": "sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/utils": "3.2.7", - "pathe": "^2.0.3", - "strip-literal": "^3.0.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/@vitest/snapshot": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.7.tgz", - "integrity": "sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@vitest/pretty-format": "3.2.7", - "magic-string": "^0.30.17", - "pathe": "^2.0.3" - }, - "funding": { - "url": "https://opencollective.com/vitest" + "@jridgewell/sourcemap-codec": "^1.6.0" } }, "node_modules/@vitest/spy": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.7.tgz", - "integrity": "sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-5.0.1.tgz", + "integrity": "sha512-rbto/mF/SGERxEgYOek7Xm6B9b+y+mVoo+f4b2LymYO8zM1b7uB5nHuhVMTP2hxdzgxvGiZYGxGIaMvL5y180Q==", "dev": true, "license": "MIT", - "dependencies": { - "tinyspy": "^4.0.3" - }, "funding": { "url": "https://opencollective.com/vitest" } }, - "node_modules/@vitest/utils": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.7.tgz", - "integrity": "sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw==", - "dev": true, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.2.7", - "loupe": "^3.1.4", - "tinyrainbow": "^2.0.0" + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" }, - "funding": { - "url": "https://opencollective.com/vitest" - } - }, - "node_modules/accessor-fn": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/accessor-fn/-/accessor-fn-1.5.3.tgz", - "integrity": "sha512-rkAofCwe/FvYFUlMB0v0gWmhqtfAtV1IUkdPbfhTUyYniu5LrC0A0UJkTH0Jv3S8SvwkmfuAlY+mQIJATdocMA==", - "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 0.6" } }, "node_modules/acorn": { @@ -3166,13 +4210,59 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=8" } @@ -3191,6 +4281,12 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, "node_modules/aria-hidden": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", @@ -3223,21 +4319,50 @@ "node": ">=12" } }, + "node_modules/ast-types": { + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.3.tgz", + "integrity": "sha512-FvWoWYfSCM6kRxCSH+MGLHIKKGRL6A6AW7Zek2O32REPQRdg131428uRTKMBYAeRd3XXAaHDS60Wpri7CdKDrA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/atomically": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", + "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==", + "license": "MIT", + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/babel-plugin-react-compiler": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-react-compiler/-/babel-plugin-react-compiler-1.0.0.tgz", + "integrity": "sha512-Ixm8tFfoKKIPYdCCKYTsqv+Fd4IJ0DQqMyEimo+pxUOMUR9cVPlwTrFt9Avu+3cb6Zp3mAzl+t1MrG2fxxKsxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.0" + } + }, "node_modules/balanced-match": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, "license": "MIT", "engines": { "node": "18 || 20 || >=22" } }, "node_modules/baseline-browser-mapping": { - "version": "2.10.38", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.38.tgz", - "integrity": "sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==", - "dev": true, + "version": "2.11.25", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.25.tgz", + "integrity": "sha512-gMmEShwwq7FJqMwvfRwvCl00v4kN+KOfJqXn+f4nrufak5gNHJOksd/60Dvjuz7sI8Y5WiSFBa8FEYr+zoyqCw==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" @@ -3246,31 +4371,57 @@ "node": ">=6.0.0" } }, - "node_modules/bezier-js": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/bezier-js/-/bezier-js-6.1.4.tgz", - "integrity": "sha512-PA0FW9ZpcHbojUCMu28z9Vg/fNkwTj5YhusSAjHHDfHDGLxJ6YUKrAN2vk1fP2MMOxVw4Oko16FMlRGVBGqLKg==", - "license": "MIT", - "funding": { - "type": "individual", - "url": "https://github.com/Pomax/bezierjs/blob/master/FUNDING.md" - } - }, "node_modules/bidi-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", - "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.1.0.tgz", + "integrity": "sha512-fX1Onk0tdVPC7obPWB5EbJ1z7NVhLq4m2xZLq2YXBkxzMXIGRpNMU88n0EPgWseKl12J7zXs7qrDxPK4sRs2fg==", "dev": true, "license": "MIT", "dependencies": { "require-from-string": "^2.0.2" } }, + "node_modules/body-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.3.0.tgz", + "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==", + "license": "MIT", + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^2.0.0", + "debug": "^4.4.3", + "http-errors": "^2.0.1", + "iconv-lite": "^0.7.2", + "on-finished": "^2.4.1", + "qs": "^6.15.2", + "raw-body": "^3.0.2", + "type-is": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/body-parser/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/brace-expansion": { - "version": "5.0.9", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", - "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", - "dev": true, + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", + "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" @@ -3279,11 +4430,22 @@ "node": "20 || >=22" } }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/browserslist": { - "version": "4.28.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz", - "integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==", - "dev": true, + "version": "4.29.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.29.0.tgz", + "integrity": "sha512-3GSvyjvDI4Dur1Meg2BekJquu5uF+9R9a1+5M1Mde192eZoXbeXjzgOsgqPS2V8D5wrrip0gR5Hf/GhWQ9ZzaA==", "funding": [ { "type": "opencollective", @@ -3300,11 +4462,11 @@ ], "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.10.38", - "caniuse-lite": "^1.0.30001799", - "electron-to-chromium": "^1.5.376", - "node-releases": "^2.0.48", - "update-browserslist-db": "^1.2.3" + "baseline-browser-mapping": "^2.11.23", + "caniuse-lite": "^1.0.30001810", + "electron-to-chromium": "^1.5.427", + "node-releases": "^2.0.55", + "update-browserslist-db": "^1.3.3" }, "bin": { "browserslist": "cli.js" @@ -3313,21 +4475,86 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", - "dev": true, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.8" + } + }, + "node_modules/cacheable": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.5.0.tgz", + "integrity": "sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "^2.2.0", + "@cacheable/utils": "^2.5.0", + "hookified": "^1.15.0", + "keyv": "^5.6.0", + "qified": "^0.10.1" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001799", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz", - "integrity": "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==", - "dev": true, + "version": "1.0.30001810", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz", + "integrity": "sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==", "funding": [ { "type": "opencollective", @@ -3344,43 +4571,65 @@ ], "license": "CC-BY-4.0" }, - "node_modules/canvas-color-tracker": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/canvas-color-tracker/-/canvas-color-tracker-1.3.2.tgz", - "integrity": "sha512-ryQkDX26yJ3CXzb3hxUVNlg1NKE4REc5crLBq661Nxzr8TNd236SaEf2ffYLXyI5tSABSeguHLqcVq4vf9L3Zg==", - "license": "MIT", - "dependencies": { - "tinycolor2": "^1.6.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/chai": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", - "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", - "dependencies": { - "assertion-error": "^2.0.1", - "check-error": "^2.1.1", - "deep-eql": "^5.0.1", - "loupe": "^3.1.0", - "pathval": "^2.0.0" - }, "engines": { "node": ">=18" } }, - "node_modules/check-error": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", - "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", - "dev": true, + "node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "license": "MIT", "engines": { - "node": ">= 16" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/clsx": { @@ -3392,40 +4641,213 @@ "node": ">=6" } }, - "node_modules/cmdk": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz", - "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==", + "node_modules/cn": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cn/-/cn-0.4.0.tgz", + "integrity": "sha512-qOAeUhPwPzBxx6jaeQdo646XIKliKHc2j1ZF7Ngb1o0pJZKH5gq8FkA0aVdUdPFUDXNXyUCXpCtoJISo6dhizg==", + "license": "MIT", + "bin": { + "cn": "bin/cn.mjs" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/code-block-writer": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz", + "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, + "node_modules/conf": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", + "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "^1.1.1", - "@radix-ui/react-dialog": "^1.1.6", - "@radix-ui/react-id": "^1.1.0", - "@radix-ui/react-primitive": "^2.0.2" + "ajv": "^8.6.3", + "ajv-formats": "^2.1.1", + "atomically": "^1.7.0", + "debounce-fn": "^4.0.0", + "dot-prop": "^6.0.1", + "env-paths": "^2.2.1", + "json-schema-typed": "^7.0.3", + "onetime": "^5.1.2", + "pkg-up": "^3.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/conf/node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/conf/node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" }, "peerDependencies": { - "react": "^18 || ^19 || ^19.0.0-rc", - "react-dom": "^18 || ^19 || ^19.0.0-rc" + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/conf/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/conf/node_modules/json-schema-typed": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", + "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==", + "license": "BSD-2-Clause" + }, + "node_modules/conf/node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/content-disposition": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", + "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/cookie-es": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-3.1.1.tgz", "integrity": "sha512-UaXxwISYJPTr9hwQxMFYZ7kNhSXboMXP+Z3TRX6f1/NyaGPfuNUZOWP1pUEb75B2HjfklIYLVRfWiFZJyC6Npg==", "license": "MIT" }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cors": { + "version": "2.8.6", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz", + "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.2.tgz", + "integrity": "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==", + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -3457,6 +4879,18 @@ "dev": true, "license": "MIT" }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/csstype": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", @@ -3464,257 +4898,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-binarytree": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz", - "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==", - "license": "MIT" - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force-3d": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.6.tgz", - "integrity": "sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA==", - "license": "MIT", - "dependencies": { - "d3-binarytree": "1", - "d3-dispatch": "1 - 3", - "d3-octree": "1", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", - "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-octree": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-1.1.0.tgz", - "integrity": "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A==", - "license": "MIT" - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale-chromatic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", - "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-interpolate": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "d3-selection": "2 - 3" - } - }, - "node_modules/d3-zoom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", - "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "2 - 3", - "d3-transition": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/data-urls": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-7.0.0.tgz", @@ -3744,11 +4927,25 @@ "node": "^20.19.0 || ^22.12.0 || >=24.0.0" } }, + "node_modules/debounce-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", + "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -3769,20 +4966,18 @@ "dev": true, "license": "MIT" }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", - "license": "MIT" - }, - "node_modules/deep-eql": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", - "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", - "dev": true, + "node_modules/dedent": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", "license": "MIT", - "engines": { - "node": ">=6" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, "node_modules/deep-is": { @@ -3792,6 +4987,64 @@ "dev": true, "license": "MIT" }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.1.tgz", + "integrity": "sha512-m1pAzaJgZ/gssEqlOhJkPJp8Xly7QyW6xcrkUa2KKcDeDSEMP7X8xipU3snUcfisTQx0w1AGae+9UtJSfVnXGw==", + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/dequal": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", @@ -3818,6 +5071,15 @@ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", "license": "MIT" }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/dom-accessibility-api": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", @@ -3826,17 +5088,78 @@ "license": "MIT", "peer": true }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-17.4.2.tgz", + "integrity": "sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, "node_modules/electron-to-chromium": { - "version": "1.5.378", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.378.tgz", - "integrity": "sha512-VinvOAuuPmdD1guEgGv5f2Qp7/vlfqOrUOMYNnOD4wj3pit8kRsQHzfIf6teyUGWo15Tg5+bOJaRunvyltpVWQ==", - "dev": true, + "version": "1.5.438", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.438.tgz", + "integrity": "sha512-AN9xMU1hJiT65LkCUPL1DZm5TCbOPb2Qsm5pYwFLEXp6/qj9SdT4yMiqs7Qqstwvkn1zF7l36SRGt+s6XcJ0FA==", "license": "ISC" }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/enhanced-resolve": { - "version": "5.21.6", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.21.6.tgz", - "integrity": "sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==", + "version": "5.25.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.25.1.tgz", + "integrity": "sha512-nGXts5znJzmWPu+mIE9izCOzdg63oJca2mDzGWWTth7sr4aCToKcoyFVBQwN75Ij5Pf6p510EwkTqViTRzDV+w==", "dev": true, "license": "MIT", "dependencies": { @@ -3847,10 +5170,23 @@ "node": ">=10.13.0" } }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/entities": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", - "integrity": "sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-8.1.0.tgz", + "integrity": "sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -3860,75 +5196,76 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", - "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.2.tgz", + "integrity": "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==", "dev": true, "license": "MIT" }, - "node_modules/es-toolkit": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.49.0.tgz", - "integrity": "sha512-G5iZ6Pc/FNRY/soKZHC+TxGDD83rHUDXxzaWhGCX44vAv/tMs56WMusnm/KMNK+luUPsgA9U28cGr4RDlSzL2g==", + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "license": "MIT", - "workspaces": [ - "docs", - "benchmarks" - ] - }, - "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "es-errors": "^1.3.0" }, "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" + "node": ">= 0.4" } }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -3943,9 +5280,9 @@ } }, "node_modules/eslint": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.9.1.tgz", - "integrity": "sha512-9VaAkDURekixUQJy0oJYl2DcN6oKMfxay7XzaGYAWQwsb6qfKf+x76R2k1L8kb1boc+FyCAaTA9GmiKaaiaF+A==", + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.11.0.tgz", + "integrity": "sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==", "dev": true, "license": "MIT", "workspaces": [ @@ -3957,7 +5294,7 @@ "@eslint/config-array": "^0.23.5", "@eslint/config-helpers": "^0.7.0", "@eslint/core": "^1.2.1", - "@eslint/plugin-kit": "^0.7.2", + "@eslint/plugin-kit": "^0.7.3", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -3972,7 +5309,7 @@ "esquery": "^1.7.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", + "file-entry-cache": "11.1.5 || >11.1.6 <12", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", @@ -4022,9 +5359,9 @@ } }, "node_modules/eslint-plugin-react-refresh": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.5.tgz", - "integrity": "sha512-vG7yLURXNvCHy0FBdbZRwIu0BLPJMlUUJS2Ep7ud9w1YCLftFZtuEjyjhym0Qq9yuZ6LJUitNlu/hMk0gakXAw==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.5.7.tgz", + "integrity": "sha512-XhJSzLljuYD4UjNuFGJu2v7aD3sqNVK12w5/DCUfrNfHWegZo2+TsavNx8MuxMwEquuFAzNbNfXKU0WoZ+YUIg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -4081,6 +5418,19 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", @@ -4137,11 +5487,61 @@ "node": ">=0.10.0" } }, - "node_modules/eventemitter3": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", - "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "license": "MIT" + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventsource": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz", + "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==", + "license": "MIT", + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.1.1.tgz", + "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/execa": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.1.tgz", + "integrity": "sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==", + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.6", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.2.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } }, "node_modules/expect-type": { "version": "1.4.0", @@ -4153,13 +5553,102 @@ "node": ">=12.0.0" } }, + "node_modules/express": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz", + "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==", + "license": "MIT", + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.1", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "depd": "^2.0.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.7.0.tgz", + "integrity": "sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "ip-address": "^10.2.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": ">= 4.11" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT" }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -4174,11 +5663,35 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", + "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz", + "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -4192,17 +5705,62 @@ } } }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "version": "11.1.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.5.tgz", + "integrity": "sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^4.0.0" + "flat-cache": "^6.1.23" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", + "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/find-up": { @@ -4223,17 +5781,15 @@ } }, "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "version": "6.1.23", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.23.tgz", + "integrity": "sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==", "dev": true, "license": "MIT", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" + "cacheable": "^2.5.0", + "flatted": "^3.4.2", + "hookified": "^1.15.0" } }, "node_modules/flatted": { @@ -4243,44 +5799,36 @@ "dev": true, "license": "ISC" }, - "node_modules/float-tooltip": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/float-tooltip/-/float-tooltip-1.7.5.tgz", - "integrity": "sha512-/kXzuDnnBqyyWyhDMH7+PfP8J/oXiAavGzcRxASOMRHFuReDtofizLLJsf7nnDLAfEaMW4pVWaXrAjtnglpEkg==", + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "license": "MIT", - "dependencies": { - "d3-selection": "2 - 3", - "kapsule": "^1.16", - "preact": "10" - }, "engines": { - "node": ">=12" + "node": ">= 0.6" } }, - "node_modules/force-graph": { - "version": "1.51.4", - "resolved": "https://registry.npmjs.org/force-graph/-/force-graph-1.51.4.tgz", - "integrity": "sha512-TdJ2KbkoiDQ7NIRx8IPGD0mAXXpLhamS7c+b7W98b0MHG7lphnda1VOQX/98UDTsttIAdH4TcP0l0MauSnLK8w==", + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/fs-extra": { + "version": "11.4.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.4.1.tgz", + "integrity": "sha512-KYAb4c9BJQI6QqGKthV68OHe0badztdXJWKo0WtBA9IuCFPTKvE5ZdUBglP833aMjhaSPNO4A5j/EkzZtGlKjA==", "license": "MIT", "dependencies": { - "@tweenjs/tween.js": "18 - 25", - "accessor-fn": "1", - "bezier-js": "3 - 6", - "canvas-color-tracker": "^1.3", - "d3-array": "1 - 3", - "d3-drag": "2 - 3", - "d3-force-3d": "2 - 3", - "d3-scale": "1 - 4", - "d3-scale-chromatic": "1 - 3", - "d3-selection": "2 - 3", - "d3-zoom": "2 - 3", - "float-tooltip": "^1.7", - "index-array-by": "1", - "kapsule": "^1.16", - "lodash-es": "4" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/fsevents": { @@ -4298,16 +5846,66 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fuzzysort": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fuzzysort/-/fuzzysort-3.1.0.tgz", + "integrity": "sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==", + "license": "MIT" + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, + "node_modules/get-east-asian-width": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz", + "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-nonce": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", @@ -4317,6 +5915,47 @@ "node": ">=6" } }, + "node_modules/get-own-enumerable-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-own-enumerable-keys/-/get-own-enumerable-keys-1.0.0.tgz", + "integrity": "sha512-PKsK2FSrQCyxcGHsGrLDcK0lx+0Ke+6e8KFFozA9/fIQLhQzPaRvJFdcz7+Axg3jUH/Mq+NI4xa5u/UT2tQskA==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -4331,9 +5970,9 @@ } }, "node_modules/globals": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz", - "integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==", + "version": "17.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.12.0.tgz", + "integrity": "sha512-cezEd/DTyyht9cvSSURyygXPfy04GtWO/5e6ZPvH7fCtjKz9PYOmuawphw1Ctd1f6C+5JypXfGD7ahNMXvevBA==", "dev": true, "license": "MIT", "engines": { @@ -4343,13 +5982,61 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hashery": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.1.tgz", + "integrity": "sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.15.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hermes-estree": { "version": "0.25.1", "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", @@ -4367,37 +6054,103 @@ "hermes-estree": "0.25.1" } }, + "node_modules/hono": { + "version": "4.13.8", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.13.8.tgz", + "integrity": "sha512-/Gng7NfoykZl2pjukW5Z6+8Yxm3BPRf86GTbQnt0SbySkvax4fyL4H3HhY1cCpBGmiW9XDRFzRV+CXK2W8QudQ==", + "license": "MIT", + "engines": { + "node": ">=16.9.0" + } + }, + "node_modules/hookified": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.15.1.tgz", + "integrity": "sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==", + "dev": true, + "license": "MIT" + }, "node_modules/html-encoding-sniffer": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-6.0.0.tgz", - "integrity": "sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-7.0.0.tgz", + "integrity": "sha512-UikN5yr7xsCDAq87Or5or0PAlD3HJJOKVzM05az588WnpDJ4Ux7a2A53Qi6gofGg2/EtvF/H4hCi/TXfCW4Y6w==", "dev": true, "license": "MIT", "dependencies": { - "@exodus/bytes": "^1.6.0" + "@exodus/bytes": "^1.15.1" }, "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + "node": "^22.13.0 || >=24.0.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/immer": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", - "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { @@ -4420,29 +6173,55 @@ "node": ">=8" } }, - "node_modules/index-array-by": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/index-array-by/-/index-array-by-1.4.2.tgz", - "integrity": "sha512-SP23P27OUKzXWEC/TOyWlwLviofQkCSCKONnc62eItjp69yCZZPqDQtr3Pw5gJDnPeUMqExmKydNZaJO0FU9pw==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ip-address": { + "version": "10.7.2", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.7.2.tgz", + "integrity": "sha512-7H/2gFSIitxc0hG3nOI1glS8QLo/EHBFFLk8vEUjXY/xu0AdL8jZ9U1IzO2PUm0d2D/ofQcAifb0g6OBkt8U7w==", "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 12" } }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", "engines": { - "node": ">=12" + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4452,7 +6231,6 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" @@ -4461,6 +6239,78 @@ "node": ">=0.10.0" } }, + "node_modules/is-in-ssh": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-in-ssh/-/is-in-ssh-1.0.0.tgz", + "integrity": "sha512-jYa6Q9rH90kR1vKB6NM7qqd1mge3Fx4Dhw5TVlK1MUBqhEOuCagrEHMevNuCcbECmXZ0ThXkRm+Ymr51HwEPAw==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-potential-custom-element-name": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", @@ -4468,6 +6318,63 @@ "dev": true, "license": "MIT" }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "license": "MIT" + }, + "node_modules/is-regexp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", + "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/isbot": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/isbot/-/isbot-5.2.2.tgz", @@ -4481,18 +6388,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, "license": "ISC" }, - "node_modules/jerrypick": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/jerrypick/-/jerrypick-1.1.2.tgz", - "integrity": "sha512-YKnxXEekXKzhpf7CLYA0A+oDP8V0OhICNCr5lv96FvSsDEmrb0GKM776JgQvHTMjr7DTTPEVv/1Ciaw0uEWzBA==", - "license": "MIT", - "engines": { - "node": ">=12" - } - }, "node_modules/jiti": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", @@ -4503,39 +6400,69 @@ "jiti": "lib/jiti-cli.mjs" } }, + "node_modules/jose": { + "version": "6.2.12", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.12.tgz", + "integrity": "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "license": "MIT" }, + "node_modules/js-yaml": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.2.tgz", + "integrity": "sha512-SFNOvSJ+Dgf/9An904Yx+CgSlIPCkIpao4qo51lpee25TIRejdH3rhR4EZMGoNx3/TP3O+wzWuiTFl4sqbltzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsdom": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.0.1.tgz", - "integrity": "sha512-52v7mUVUfNQVYYqE1lcdaymWL0njO7lTLUog6ZvW2U5KsbiLk/GnZlVJ+qx0xfNJZ6Gn+KSpPNE52vurbxZwrA==", + "version": "30.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-30.1.1.tgz", + "integrity": "sha512-FahmoPK5vbPc+jxV1iErMHmAZypCZ942NHF4+qqaWAuvaKKTBZxawnmAtrbGWLU7MtlxfqIP0qw6aSI+aWGtLg==", "dev": true, "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^6.0.5", - "@asamuzakjp/dom-selector": "^8.3.0", + "@asamuzakjp/css-color": "^7.0.0", + "@asamuzakjp/dom-selector": "^9.2.1", "@bramus/specificity": "^2.4.2", - "@csstools/css-syntax-patches-for-csstree": "^1.1.7", + "@csstools/css-syntax-patches-for-csstree": "^1.1.13", "@exodus/bytes": "^1.15.1", "css-tree": "^3.2.1", "data-urls": "^7.0.0", "decimal.js": "^10.6.0", - "html-encoding-sniffer": "^6.0.0", + "html-encoding-sniffer": "^7.0.0", "is-potential-custom-element-name": "^1.0.1", "lru-cache": "^11.5.2", "parse5": "^8.0.1", "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", "tough-cookie": "^6.0.2", - "undici": "^8.9.0", - "w3c-xmlserializer": "^5.0.0", + "undici": "^8.10.2", + "w3c-xmlserializer": "^6.0.0", "webidl-conversions": "^8.0.1", "whatwg-mimetype": "^5.0.0", - "whatwg-url": "^17.1.0", + "whatwg-url": "^17.1.1", "xml-name-validator": "^5.0.0" }, "engines": { @@ -4551,9 +6478,9 @@ } }, "node_modules/jsdom/node_modules/lru-cache": { - "version": "11.5.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz", - "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==", + "version": "11.5.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.3.tgz", + "integrity": "sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -4564,7 +6491,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -4573,11 +6499,10 @@ "node": ">=6" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, "node_modules/json-schema-traverse": { @@ -4587,6 +6512,12 @@ "dev": true, "license": "MIT" }, + "node_modules/json-schema-typed": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz", + "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==", + "license": "BSD-2-Clause" + }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", @@ -4598,7 +6529,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, "license": "MIT", "bin": { "json5": "lib/cli.js" @@ -4607,26 +6537,35 @@ "node": ">=6" } }, - "node_modules/kapsule": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/kapsule/-/kapsule-1.16.3.tgz", - "integrity": "sha512-4+5mNNf4vZDSwPhKprKwz3330iisPrb08JyMgbsdFrimBCKNHecua/WBwvVg3n7vwx0C1ARjfhwIpbrbd9n5wg==", + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", "license": "MIT", "dependencies": { - "lodash-es": "4" + "universalify": "^2.0.0" }, - "engines": { - "node": ">=12" + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.6.0.tgz", + "integrity": "sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==", "dev": true, "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "license": "MIT", + "engines": { + "node": ">=6" } }, "node_modules/levn": { @@ -4916,6 +6855,12 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -4932,48 +6877,50 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash-es": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.18.1.tgz", - "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", "license": "MIT", "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" }, - "bin": { - "loose-envify": "cli.js" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/loupe": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", - "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", - "dev": true, - "license": "MIT" + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/lucide-react": { - "version": "0.460.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.460.0.tgz", - "integrity": "sha512-BVtq/DykVeIvRTJvRAgCsOwaGL8Un3Bxh8MbDxMhEWlZay3T4IpEKDEpwt5KZ0KJMHzgm6jrltxlT5eXOWXDHg==", + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.47.0.tgz", + "integrity": "sha512-o8C23aXpNQypRY73W7fW02EyvWJinEMXgKeGjFoKym0zj3Q73hD97A1IQps1g8C14HTGsOpZL0Am+xjfgFZAbg==", "license": "ISC", "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/lz-string": { @@ -4997,6 +6944,15 @@ "@jridgewell/sourcemap-codec": "^1.5.5" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mdn-data": { "version": "2.27.1", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", @@ -5004,6 +6960,117 @@ "dev": true, "license": "CC0-1.0" }, + "node_modules/media-typer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz", + "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/min-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", @@ -5018,7 +7085,6 @@ "version": "10.2.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", - "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.8" @@ -5030,18 +7096,25 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.15", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", - "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", - "dev": true, + "version": "3.3.19", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", + "integrity": "sha512-Y2tUNy4ouw6tq5oDSKeQYGOyhkUBhNOcGV/02KC+6kd9eDGqdZd++mjMiIDilrBYvjEnCYvVtsuHCuP+okSfug==", "funding": [ { "type": "github", @@ -5063,14 +7136,70 @@ "dev": true, "license": "MIT" }, - "node_modules/node-releases": { - "version": "2.0.49", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.49.tgz", - "integrity": "sha512-f06bl1D+8ZDkn2oOQQKAh5/otFWqVnM1Q5oerA8Pex7UfT66Tx4IPHIqVVFKqFT3FUtaDstdgkM7yT7JWhqxfw==", - "dev": true, + "node_modules/negotiator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.1.0.tgz", + "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==", + "license": "MIT", + "dependencies": { + "content-type": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/negotiator/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", "license": "MIT", "engines": { "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/node-releases": { + "version": "2.0.57", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.57.tgz", + "integrity": "sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/object-assign": { @@ -5082,6 +7211,106 @@ "node": ">=0.10.0" } }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-treeify": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", + "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/obug": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.2.1.tgz", + "integrity": "sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/open/-/open-11.0.4.tgz", + "integrity": "sha512-++Zlftm0kVLPmzC06t6epuWmcRMDbI4z5P3NNX979WA/k23+NtSOynEGzsVfZwguKw2mi5umVgnBlJQMwRz4Pg==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.5.1", + "define-lazy-prop": "^3.0.0", + "is-in-ssh": "^1.0.0", + "is-inside-container": "^1.0.0", + "powershell-utils": "^0.2.1", + "wsl-utils": "^1.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -5100,6 +7329,56 @@ "node": ">= 0.8.0" } }, + "node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", + "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -5132,6 +7411,57 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse5": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.1.tgz", @@ -5145,6 +7475,21 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -5159,41 +7504,31 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/pathe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", - "dev": true, - "license": "MIT" - }, - "node_modules/pathval": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", - "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", - "dev": true, + "node_modules/path-to-regexp": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz", + "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==", "license": "MIT", - "engines": { - "node": ">= 14.16" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", - "dev": true, + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", "license": "MIT", "engines": { "node": ">=12" @@ -5202,11 +7537,92 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkce-challenge": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz", + "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==", + "license": "MIT", + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", - "dev": true, + "version": "8.5.28", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.28.tgz", + "integrity": "sha512-RRuzqDtt5Y9h3quz5hWhK+TPnsmVs6WwSU6LkJMeY4HstUEDuYTG8UJSdawMRzmzAtV+KEoG8N3Qg2qLy5vM/A==", "funding": [ { "type": "opencollective", @@ -5223,7 +7639,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.18", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -5231,22 +7647,29 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/preact": { - "version": "10.29.7", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.29.7.tgz", - "integrity": "sha512-DCHYrK/B10yUD3ZjLfhZ3WIE/9Vf9VFUODcRE2dRomTYDpJk6z6L9wecSfhfE6M9ZTHUdyQkoC46arIDhEV84Q==", + "node_modules/postcss-selector-parser": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/powershell-utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.2.1.tgz", + "integrity": "sha512-C+y9x90UElAddDZmV4qOx9W53B61PO7cIqWz2dQsWlwswuq4mr8NEwytdGKboYbQlGZ3awrkTeNvcZiZNHnQ8A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" - }, - "peerDependencies": { - "preact-render-to-string": ">=5" - }, - "peerDependenciesMeta": { - "preact-render-to-string": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/prelude-ls": { @@ -5260,9 +7683,9 @@ } }, "node_modules/prettier": { - "version": "3.9.6", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", - "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.9.tgz", + "integrity": "sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg==", "dev": true, "license": "MIT", "bin": { @@ -5291,30 +7714,59 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "license": "MIT", - "peer": true - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "node_modules/pretty-ms": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.1.tgz", + "integrity": "sha512-HzMy3Geq23nVALD/M2LliU+F+M+gVNsvkQWWqeBZ8HDiCgzo6YPJ/Omrmtq24EFrIsk0a3EkQGEd7bDOo+IhGA==", "license": "MIT", "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz", + "integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } }, "node_modules/punycode": { "version": "2.3.1", @@ -5326,98 +7778,195 @@ "node": ">=6" } }, + "node_modules/qified": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.10.1.tgz", + "integrity": "sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^2.1.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/qified/node_modules/hookified": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-2.2.0.tgz", + "integrity": "sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==", + "dev": true, + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.16.0.tgz", + "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==", + "license": "BSD-3-Clause", + "dependencies": { + "es-define-property": "^1.0.1", + "side-channel": "^1.1.1" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/radix-ui": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/radix-ui/-/radix-ui-1.6.7.tgz", + "integrity": "sha512-QBdhh1arIEUvPC0dQ5+nwWAxt7+N+oP/9jPwjJkGFoSk/sqxg32gJtSXGtFh8frAIcS6oC9cx2Q+7KYCQLOAeA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-accessible-icon": "1.1.15", + "@radix-ui/react-accordion": "1.2.20", + "@radix-ui/react-alert-dialog": "1.1.23", + "@radix-ui/react-arrow": "1.1.15", + "@radix-ui/react-aspect-ratio": "1.1.15", + "@radix-ui/react-avatar": "1.2.6", + "@radix-ui/react-checkbox": "1.3.11", + "@radix-ui/react-collapsible": "1.1.20", + "@radix-ui/react-collection": "1.1.15", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-context-menu": "2.3.7", + "@radix-ui/react-dialog": "1.1.23", + "@radix-ui/react-direction": "1.1.4", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-dropdown-menu": "2.1.24", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-form": "0.1.16", + "@radix-ui/react-hover-card": "1.1.23", + "@radix-ui/react-label": "2.1.15", + "@radix-ui/react-menu": "2.1.24", + "@radix-ui/react-menubar": "1.1.24", + "@radix-ui/react-navigation-menu": "1.2.22", + "@radix-ui/react-one-time-password-field": "0.1.16", + "@radix-ui/react-password-toggle-field": "0.1.11", + "@radix-ui/react-popover": "1.1.23", + "@radix-ui/react-popper": "1.3.7", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-progress": "1.1.16", + "@radix-ui/react-radio-group": "1.4.7", + "@radix-ui/react-roving-focus": "1.1.19", + "@radix-ui/react-scroll-area": "1.2.18", + "@radix-ui/react-select": "2.3.7", + "@radix-ui/react-separator": "1.1.15", + "@radix-ui/react-slider": "1.4.7", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-switch": "1.3.7", + "@radix-ui/react-tabs": "1.1.21", + "@radix-ui/react-toast": "1.2.23", + "@radix-ui/react-toggle": "1.1.18", + "@radix-ui/react-toggle-group": "1.1.19", + "@radix-ui/react-toolbar": "1.1.19", + "@radix-ui/react-tooltip": "1.2.16", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-escape-keydown": "1.1.5", + "@radix-ui/react-use-is-hydrated": "0.1.3", + "@radix-ui/react-use-layout-effect": "1.1.4", + "@radix-ui/react-use-size": "1.1.4", + "@radix-ui/react-visually-hidden": "1.2.11" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/range-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.3.0.tgz", + "integrity": "sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/raw-body": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz", + "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.7.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/react": { - "version": "19.2.8", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", - "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", + "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.2.8", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", - "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", + "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", "license": "MIT", "dependencies": { - "scheduler": "^0.27.0" + "scheduler": "^0.28.0" }, "peerDependencies": { - "react": "^19.2.8" - } - }, - "node_modules/react-force-graph-2d": { - "version": "1.29.1", - "resolved": "https://registry.npmjs.org/react-force-graph-2d/-/react-force-graph-2d-1.29.1.tgz", - "integrity": "sha512-1Rl/1Z3xy2iTHKj6a0jRXGyiI86xUti81K+jBQZ+Oe46csaMikp47L5AjrzA9hY9fNGD63X8ffrqnvaORukCuQ==", - "license": "MIT", - "dependencies": { - "force-graph": "^1.51", - "prop-types": "15", - "react-kapsule": "^2.5" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": "*" + "react": "^19.3.0" } }, "node_modules/react-is": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.7.tgz", - "integrity": "sha512-kZFnouyVv7eP/Phmrlo9FK+zcAdriZJvzxXHF1Sl1P377WSGe2G/JxVolhTrB/jeV47lKImhNUsijjHAAbcl/A==", - "license": "MIT", - "peer": true - }, - "node_modules/react-kapsule": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-kapsule/-/react-kapsule-2.6.0.tgz", - "integrity": "sha512-HzLJoYb1n1kfwjXbqFFcRR0EA6oPsJ64tNdDmCSaL/bz2o9wUZRSb0cMe//grLFeF9EVoL4CD/e6ozLyzEv+PQ==", - "license": "MIT", - "dependencies": { - "jerrypick": "^1.1.2" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "react": ">=16.13.1" - } - }, - "node_modules/react-redux": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.3.0.tgz", - "integrity": "sha512-KQopgqFo/p/fgmAs5qz6p5RWaNAzq40WAu7fJIXnQpYxFPbJYtsJPWvGeF2rOBaY/kEuV77AVsX8TsQzKm+A/g==", - "license": "MIT", - "dependencies": { - "@types/use-sync-external-store": "^0.0.6", - "use-sync-external-store": "^1.4.0" - }, - "peerDependencies": { - "@types/react": "^18.2.25 || ^19", - "react": "^18.0 || ^19", - "redux": "^5.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, - "node_modules/react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true, "license": "MIT", - "engines": { - "node": ">=0.10.0" - } + "peer": true }, "node_modules/react-remove-scroll": { "version": "2.7.2", @@ -5488,34 +8037,20 @@ } } }, - "node_modules/recharts": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.9.0.tgz", - "integrity": "sha512-dCEcE9y20c8H2tkVeByrAXhhnBJk6/QLbxKmn+dJUptOfc5NMjwRh1jo0vZPRLD+5dMrHrP+hPEsfbGBMfnf5Q==", + "node_modules/recast": { + "version": "0.23.21", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.21.tgz", + "integrity": "sha512-mFAyJq9vUbSTARLZUvAEf1z3YxlvAwswbmxMx2mPA/MSm4KmpwvwvhsH/NIrZhyOuwD60Lzyw2qh83uCbgTPYw==", "license": "MIT", - "workspaces": [ - "www" - ], "dependencies": { - "@reduxjs/toolkit": "^1.9.0 || 2.x.x", - "clsx": "^2.1.1", - "decimal.js-light": "^2.5.1", - "es-toolkit": "^1.39.3", - "eventemitter3": "^5.0.1", - "immer": "^10.1.1", - "react-redux": "8.x.x || 9.x.x", - "reselect": "5.2.0", + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", "tiny-invariant": "^1.3.3", - "use-sync-external-store": "^1.2.2", - "victory-vendor": "^37.0.2" + "tslib": "^2.0.1" }, "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node": ">= 4" } }, "node_modules/redent": { @@ -5532,82 +8067,156 @@ "node": ">=8" } }, - "node_modules/redux": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT" - }, - "node_modules/redux-thunk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", - "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", - "license": "MIT", - "peerDependencies": { - "redux": "^5.0.0" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/reselect": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.2.0.tgz", - "integrity": "sha512-AgZ3UOZm3YndfrJ4OYjgrT7bmCm/1iqkjvEfH/oYjzh6PD2qw4QuT3jjnXIrpdt4MTpMXclMT3lXbmRY+XRakw==", - "license": "MIT" + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "node_modules/rollup": { - "version": "4.62.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.2.tgz", - "integrity": "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==", + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rolldown": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.2.10.tgz", + "integrity": "sha512-OxkA08pSryMK7B3XiFA09B4OJ1xJMPgIYCBMY2xchzpqgBGsV1o0DetPAE+Sl3N3L4oCPiEzmHVSOj7iR04Zog==", "dev": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.9" + "@oxc-project/types": "=0.151.0", + "@rolldown/pluginutils": "^1.0.0" }, "bin": { - "rollup": "dist/bin/rollup" + "rolldown": "bin/cli.mjs" }, "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" + "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.62.2", - "@rollup/rollup-android-arm64": "4.62.2", - "@rollup/rollup-darwin-arm64": "4.62.2", - "@rollup/rollup-darwin-x64": "4.62.2", - "@rollup/rollup-freebsd-arm64": "4.62.2", - "@rollup/rollup-freebsd-x64": "4.62.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", - "@rollup/rollup-linux-arm-musleabihf": "4.62.2", - "@rollup/rollup-linux-arm64-gnu": "4.62.2", - "@rollup/rollup-linux-arm64-musl": "4.62.2", - "@rollup/rollup-linux-loong64-gnu": "4.62.2", - "@rollup/rollup-linux-loong64-musl": "4.62.2", - "@rollup/rollup-linux-ppc64-gnu": "4.62.2", - "@rollup/rollup-linux-ppc64-musl": "4.62.2", - "@rollup/rollup-linux-riscv64-gnu": "4.62.2", - "@rollup/rollup-linux-riscv64-musl": "4.62.2", - "@rollup/rollup-linux-s390x-gnu": "4.62.2", - "@rollup/rollup-linux-x64-gnu": "4.62.2", - "@rollup/rollup-linux-x64-musl": "4.62.2", - "@rollup/rollup-openbsd-x64": "4.62.2", - "@rollup/rollup-openharmony-arm64": "4.62.2", - "@rollup/rollup-win32-arm64-msvc": "4.62.2", - "@rollup/rollup-win32-ia32-msvc": "4.62.2", - "@rollup/rollup-win32-x64-gnu": "4.62.2", - "@rollup/rollup-win32-x64-msvc": "4.62.2", - "fsevents": "~2.3.2" + "@rolldown/binding-android-arm-eabi": "1.2.10", + "@rolldown/binding-android-arm64": "1.2.10", + "@rolldown/binding-darwin-arm64": "1.2.10", + "@rolldown/binding-darwin-x64": "1.2.10", + "@rolldown/binding-freebsd-x64": "1.2.10", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.10", + "@rolldown/binding-linux-arm64-gnu": "1.2.10", + "@rolldown/binding-linux-arm64-musl": "1.2.10", + "@rolldown/binding-linux-ppc64-gnu": "1.2.10", + "@rolldown/binding-linux-s390x-gnu": "1.2.10", + "@rolldown/binding-linux-x64-gnu": "1.2.10", + "@rolldown/binding-linux-x64-musl": "1.2.10", + "@rolldown/binding-openharmony-arm64": "1.2.10", + "@rolldown/binding-win32-arm64-msvc": "1.2.10", + "@rolldown/binding-win32-x64-msvc": "1.2.10" } }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, "node_modules/saxes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", @@ -5622,34 +8231,59 @@ } }, "node_modules/scheduler": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.28.0.tgz", + "integrity": "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw==", "license": "MIT" }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" } }, + "node_modules/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz", + "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==", + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.1", + "mime-types": "^3.0.2", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/seroval": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.6.4.tgz", - "integrity": "sha512-LErWMNS2RRFdu2RMA5u/PA59/IWs0XsikyEXGQ2/36iEWFrdG0ABmg17E17cikrv76891kOAMq3TkTFXpwAHXw==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.6.7.tgz", + "integrity": "sha512-AeDcLh0yO2SFm9W71essgnSzLV9DI8ZH0x0knXn2DMnUZj728mpLbxjlbB6IqKCmqh8JA3cEqRyGoNkt584JcQ==", "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/seroval-plugins": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.6.4.tgz", - "integrity": "sha512-R0f1U9hmn38+dFMz6b6ab8lwucmw4AtiY7St+JPWudy1dm+Bs3g884nyrsH9Cy6rKpZKLYayXuMda9GZ/fl8JQ==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/seroval-plugins/-/seroval-plugins-1.6.7.tgz", + "integrity": "sha512-4Nk35ttD3DTDJW4hgw5StsVAPeU6qnDFnULAouw6tQ7oLTV/ICXrWpsXo2EE52eSP2joUMazbVf52mFEcADqRw==", "license": "MIT", "engines": { "node": ">=10" @@ -5658,11 +8292,112 @@ "seroval": "^1.0" } }, + "node_modules/serve-static": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz", + "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/shadcn": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/shadcn/-/shadcn-4.21.0.tgz", + "integrity": "sha512-UU2mFNusW8C5rvadKdH69vERYZqUlOOlXBcf0MYhYLdTGP6DPti7X4qovCu+RTfCqsAgq/T+YfE0Vnttxh9aiw==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/parser": "^7.28.0", + "@babel/plugin-transform-typescript": "^7.28.0", + "@babel/preset-typescript": "^7.27.1", + "@dotenvx/dotenvx": "^1.48.4", + "@modelcontextprotocol/sdk": "^1.26.0", + "@types/validate-npm-package-name": "^4.0.2", + "browserslist": "^4.26.2", + "cn": "^0.2.4", + "commander": "^14.0.0", + "cosmiconfig": "^9.0.0", + "dedent": "^1.6.0", + "deepmerge": "^4.3.1", + "diff": "^8.0.2", + "execa": "^9.6.0", + "fast-glob": "^3.3.3", + "fs-extra": "^11.3.1", + "fuzzysort": "^3.1.0", + "kleur": "^4.1.5", + "open": "^11.0.0", + "ora": "^8.2.0", + "postcss": "^8.5.6", + "postcss-selector-parser": "^7.1.0", + "prompts": "^2.4.2", + "recast": "^0.23.11", + "socks": "^2.8.8", + "stringify-object": "^5.0.0", + "ts-morph": "^26.0.0", + "tsconfig-paths": "^4.2.0", + "undici": "^7.27.2", + "validate-npm-package-name": "^7.0.1", + "zod": "^3.24.1", + "zod-to-json-schema": "^3.24.6" + }, + "bin": { + "shadcn": "dist/index.js" + }, + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/shadcn/node_modules/cn": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/cn/-/cn-0.2.6.tgz", + "integrity": "sha512-+i4L0zUGgRcEnhsxueVrP7iBGxBx5iD0WOTYg1MwFEu2ZyCmH5Ov2V1cul2Ht5UchRQQgftCf4be/RxspuW6QQ==", + "license": "MIT", + "bin": { + "cn": "bin/cn.mjs" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/shadcn/node_modules/undici": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.29.1.tgz", + "integrity": "sha512-RYONW2MeafgYlkVOKYKkA/Ag7BmXqgIWCa8t1m0JcxrQg9pI9lEqRhAOruOBCbAohOa/gkCF+iPi9hrgvTzu6Q==", + "license": "MIT", + "engines": { + "node": ">=20.18.1" + } + }, + "node_modules/shadcn/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -5675,12 +8410,83 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/side-channel": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz", + "integrity": "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4", + "side-channel-list": "^1.0.1", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/siginfo": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", @@ -5688,11 +8494,61 @@ "dev": true, "license": "ISC" }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.10.tgz", + "integrity": "sha512-e0VyvkVTwVYViNovRkZ9aodhxVlyoMn7eJhVUPxZ+eK9P/7CBkxvvsBOHqFPEH416726W8tLXXXjKwqgTErrCQ==", + "license": "MIT", + "dependencies": { + "ip-address": "^10.1.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -5705,13 +8561,140 @@ "dev": true, "license": "MIT" }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/std-env": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", - "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.2.0.tgz", + "integrity": "sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==", "dev": true, "license": "MIT" }, + "node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", + "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-5.0.0.tgz", + "integrity": "sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-keys": "^1.0.0", + "is-obj": "^3.0.0", + "is-regexp": "^3.1.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/yeoman/stringify-object?sponsor=1" + } + }, + "node_modules/stringify-object/node_modules/is-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-3.0.0.tgz", + "integrity": "sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", @@ -5725,47 +8708,36 @@ "node": ">=8" } }, - "node_modules/strip-literal": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", - "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", - "dev": true, + "node_modules/systeminformation": { + "version": "5.33.13", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.33.13.tgz", + "integrity": "sha512-GtyakkchTQKymM1WeAB652zi3rM1q00RKdc+jZe9KGstuc/mWUwAnQGN/RE5gVYvHIR8xYOUIUD9irVKDtA0wA==", "license": "MIT", - "dependencies": { - "js-tokens": "^9.0.1" + "os": [ + "darwin", + "linux", + "win32", + "freebsd", + "openbsd", + "netbsd", + "sunos", + "android" + ], + "bin": { + "systeminformation": "lib/cli.js" + }, + "engines": { + "node": ">=10.0.0" }, "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/strip-literal/node_modules/js-tokens": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", - "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true, - "license": "MIT" - }, - "node_modules/tailwind-merge": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.1.tgz", - "integrity": "sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" + "type": "Buy me a coffee", + "url": "https://www.buymeacoffee.com/systeminfo" } }, "node_modules/tailwindcss": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.1.tgz", - "integrity": "sha512-hk+TB1m+K8CYNrP6rjQaq/Y+4Zylwpa87mLYBKCunwnnQ9p+fHb7kmSfGqyEJoxF/O6CDyABWVFEafNSYKll+Q==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.3.tgz", + "integrity": "sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==", "dev": true, "license": "MIT" }, @@ -5790,24 +8762,24 @@ "license": "MIT" }, "node_modules/tinybench": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-6.1.4.tgz", + "integrity": "sha512-9APumHG7r4yOk4X4WlkmE71aZcv1gvin1czO3OQ1U9iJcFA5Ja/ygyb0vPOVHTthFozUYs8CLoLUlM8grb2lTQ==", "dev": true, - "license": "MIT" - }, - "node_modules/tinycolor2": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", - "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } }, "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.3.0.tgz", + "integrity": "sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/tinyglobby": { "version": "0.2.17", @@ -5826,56 +8798,47 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinypool": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", - "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.0.0 || >=20.0.0" - } - }, - "node_modules/tinyrainbow": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", - "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tinyspy": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", - "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/tldts": { - "version": "7.4.11", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.11.tgz", - "integrity": "sha512-aBiNayCfTQxuIJBm06M+xR14cYaYlDlSXZbgsnKzKNxDKUVq7KFwTjwBSsb7m9Y5xO8WfPnBc63WaYFMTGlvqw==", + "version": "7.4.14", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.4.14.tgz", + "integrity": "sha512-EahQoi+Q5oqmG3yxRHx+bwn36OaLbtw6jnTFcGjc8fcmktzTgk45xRnzAx8Ch87PFEiqRhoc3FWBmY+LBrvEGQ==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.4.11" + "tldts-core": "^7.4.14" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.4.11", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.11.tgz", - "integrity": "sha512-CW3WN2rIIE/Of21mulhgnGOwoDyEFNygyIBOONSdyAuSATgMMUCpLeUlB+E8sAwA5xRV9hYPl+kyZ9citHCaKg==", + "version": "7.4.14", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.4.14.tgz", + "integrity": "sha512-KYkjfJHnIC5t+Gy7hPrMHgJmWc/N9FfmS+fggRPSlpFckidpB9HD6OzPsSTkfDH+MpZgcu2tJPGgLfHl979N1Q==", "dev": true, "license": "MIT" }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, "node_modules/tough-cookie": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.2.tgz", @@ -5915,12 +8878,45 @@ "typescript": ">=4.8.4" } }, + "node_modules/ts-morph": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-26.0.0.tgz", + "integrity": "sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==", + "license": "MIT", + "dependencies": { + "@ts-morph/common": "~0.27.0", + "code-block-writer": "^13.0.3" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "license": "MIT", + "dependencies": { + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, + "node_modules/tw-animate-css": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", + "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Wombosvideo" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5934,11 +8930,42 @@ "node": ">= 0.8.0" } }, + "node_modules/type-is": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.1.0.tgz", + "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==", + "license": "MIT", + "dependencies": { + "content-type": "^2.0.0", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/type-is/node_modules/content-type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-2.1.0.tgz", + "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/typescript": { "version": "5.9.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -5949,16 +8976,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.68.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.68.0.tgz", - "integrity": "sha512-MHy0Y0ynqeEbx/S45+i/bBssdy3X6KNBfmJAP35GrgtNxu2TQ5K5xsFDhAnmsq1jvpdoZOPG1LGtJo0HWqYCrQ==", + "version": "8.70.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.70.1.tgz", + "integrity": "sha512-AcWG7KDjZ2THNXsgwttMaGmzVi0VFRlFYfqFHYQRbDpF3owuYbuiL8c7UUrd2k8s3PoSfIQrWfrGXfcElrWLYA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.68.0", - "@typescript-eslint/parser": "8.68.0", - "@typescript-eslint/typescript-estree": "8.68.0", - "@typescript-eslint/utils": "8.68.0" + "@typescript-eslint/eslint-plugin": "8.70.1", + "@typescript-eslint/parser": "8.70.1", + "@typescript-eslint/typescript-estree": "8.70.1", + "@typescript-eslint/utils": "8.70.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5973,9 +9000,9 @@ } }, "node_modules/undici": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.0.tgz", - "integrity": "sha512-HvltHd7avK13QIw/oLe4qoOLyoVSoafqJ2jYOrtMRBkbYT31eiBQ8O0ehRKZiEZCMEyLFQNIADpgCWC5fALvYQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-8.11.0.tgz", + "integrity": "sha512-AdzuGcAkzhbha3GgCSoUBx2P0quwym6qdFNCQz/fDGZc8w9XJ741wHUbt2kTmfPz+ZIOMkySFkiY7RXmiDDC8w==", "dev": true, "license": "MIT", "engines": { @@ -5989,11 +9016,40 @@ "dev": true, "license": "MIT" }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", - "dev": true, + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.3.tgz", + "integrity": "sha512-pJ2sYawQS0R/WI928Gj5GlPhTGzbMelq0+4INtSYNDV9ErKJcX6xjGWkoG/VnB3dpUm00zALaqkrUD77pO5TDQ==", "funding": [ { "type": "opencollective", @@ -6074,55 +9130,56 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.7.0.tgz", + "integrity": "sha512-6L+EeigHMQhdaIPNIFUKwfWJSwWFQ8gJbJ2DLOs5sDIegTwR9fRxvnM3uciHKjIZhFz+KAv2emhWMRvDmMcY8A==", "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/victory-vendor": { - "version": "37.3.6", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", - "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", - "license": "MIT AND ISC", - "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/validate-npm-package-name": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz", + "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==", + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, "node_modules/vite": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.3.tgz", - "integrity": "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.3.0.tgz", + "integrity": "sha512-lhZBVvEHefgE+HQZC9O7EBJgCU/nVzFNl7vkS4RE0APtWLP02/8QVIkQtzBxPquh7lq5/78NHipTj7ODQ6XuyQ==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" + "lightningcss": "^1.33.0", + "picomatch": "^4.0.7", + "postcss": "^8.5.28", + "rolldown": "~1.2.6", + "tinyglobby": "^0.2.17" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -6131,14 +9188,15 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.7.1", + "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" @@ -6147,15 +9205,18 @@ "@types/node": { "optional": true }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, "jiti": { "optional": true }, "less": { "optional": true }, - "lightningcss": { - "optional": true - }, "sass": { "optional": true }, @@ -6179,89 +9240,346 @@ } } }, - "node_modules/vite-node": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz", - "integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==", + "node_modules/vite/node_modules/lightningcss": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.33.0.tgz", + "integrity": "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==", "dev": true, - "license": "MIT", + "license": "MPL-2.0", "dependencies": { - "cac": "^6.7.14", - "debug": "^4.4.1", - "es-module-lexer": "^1.7.0", - "pathe": "^2.0.3", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0" - }, - "bin": { - "vite-node": "vite-node.mjs" + "detect-libc": "^2.0.3" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": ">= 12.0.0" }, "funding": { - "url": "https://opencollective.com/vitest" + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" + } + }, + "node_modules/vite/node_modules/lightningcss-android-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.33.0.tgz", + "integrity": "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.33.0.tgz", + "integrity": "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-darwin-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.33.0.tgz", + "integrity": "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-freebsd-x64": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.33.0.tgz", + "integrity": "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.33.0.tgz", + "integrity": "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.33.0.tgz", + "integrity": "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-arm64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.33.0.tgz", + "integrity": "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-gnu": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.33.0.tgz", + "integrity": "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-linux-x64-musl": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.33.0.tgz", + "integrity": "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.33.0.tgz", + "integrity": "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/vite/node_modules/lightningcss-win32-x64-msvc": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.33.0.tgz", + "integrity": "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, "node_modules/vitest": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.7.tgz", - "integrity": "sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-5.0.1.tgz", + "integrity": "sha512-iA95lQbKEkvrtTkdAgnWbXfbipWiiWe/hDl2P5tMi6WFwD76G0NxXAGp/M9EOcYupeGJRr6wppMc7CoA41TQjg==", "dev": true, "license": "MIT", "dependencies": { "@types/chai": "^5.2.2", - "@vitest/expect": "3.2.7", - "@vitest/mocker": "3.2.7", - "@vitest/pretty-format": "^3.2.7", - "@vitest/runner": "3.2.7", - "@vitest/snapshot": "3.2.7", - "@vitest/spy": "3.2.7", - "@vitest/utils": "3.2.7", - "chai": "^5.2.0", - "debug": "^4.4.1", - "expect-type": "^1.2.1", - "magic-string": "^0.30.17", - "pathe": "^2.0.3", - "picomatch": "^4.0.2", - "std-env": "^3.9.0", - "tinybench": "^2.9.0", - "tinyexec": "^0.3.2", - "tinyglobby": "^0.2.14", - "tinypool": "^1.1.1", - "tinyrainbow": "^2.0.0", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0", - "vite-node": "3.2.4", + "@vitest/mocker": "5.0.1", + "chai": "^6.2.2", + "es-module-lexer": "^2.3.2", + "expect-type": "^1.4.0", + "magic-string": "^1.2.3", + "obug": "^2.1.4", + "picomatch": "^4.0.7", + "std-env": "^4.2.0", + "tinybench": "6.1.4", + "tinyexec": "1.3.0", + "tinyglobby": "^0.2.17", "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^22.12.0 || ^24.0.0 || >=26.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@types/debug": "^4.1.12", - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.2.7", - "@vitest/ui": "3.2.7", + "@opentelemetry/api": "^1.9.0", + "@types/node": "^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "5.0.1", + "@vitest/browser-preview": "5.0.1", + "@vitest/browser-webdriverio": "^5.0.0-beta.5 || >=5.0.0", + "@vitest/coverage-istanbul": "5.0.1", + "@vitest/coverage-v8": "5.0.1", + "@vitest/ui": "5.0.1", "happy-dom": "*", - "jsdom": "*" + "jsdom": "*", + "vite": "^6.4.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "@edge-runtime/vm": { "optional": true }, - "@types/debug": { + "@opentelemetry/api": { "optional": true }, "@types/node": { "optional": true }, - "@vitest/browser": { + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/coverage-istanbul": { + "optional": true + }, + "@vitest/coverage-v8": { "optional": true }, "@vitest/ui": { @@ -6272,20 +9590,33 @@ }, "jsdom": { "optional": true + }, + "vite": { + "optional": false } } }, + "node_modules/vitest/node_modules/magic-string": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-1.4.2.tgz", + "integrity": "sha512-vG+rjFRj1PqdIBozIxAGMjPlOhaVe+GXpbttY/iSK7rGcJRMlwNJO7dcUwmUqkymsFLJiNGI06t4D7Fr7yRC9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.6.0" + } + }, "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-6.0.0.tgz", + "integrity": "sha512-4Nsy8K5Tr6SPDH9jhKJOHf7ChDrc1zufZTVSF7x72hwuEXBqxqk9G6cK+K2NRUtB3iELRJqjXb4JPDMBjMTl2Q==", "dev": true, "license": "MIT", "dependencies": { "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=18" + "node": "^22.22.2 || ^24.15.0 || >=26.0.0" } }, "node_modules/webidl-conversions": { @@ -6309,9 +9640,9 @@ } }, "node_modules/whatwg-url": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.0.tgz", - "integrity": "sha512-3GeworPmc2ZfEEHP7lEbUfBX/L75wdEsi0rLNhXcXxnoN5jyq0SL5gCy06SGW2cyTIZdTvWIDQNQoza++vKeaw==", + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-17.1.2.tgz", + "integrity": "sha512-TEZA+Zqxin7Jjsm2cjRohCmen5awh+hT6Zi3VZdqZlNRk7zvOI/9WpBFg/DWlA56bWnzwm6DuB8NS0EsxQH9uQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6327,7 +9658,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -6366,6 +9696,40 @@ "node": ">=0.10.0" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/wsl-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-1.0.0.tgz", + "integrity": "sha512-Hl0ZOAs672vg+06kfujwRhoS6/jehvULrlFkuF2dRu6pHgA8U06h3xqNIqNNU1LTXPcedxByAR4GS6pwQK0mgA==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", @@ -6387,7 +9751,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, "license": "ISC" }, "node_modules/yocto-queue": { @@ -6403,16 +9766,51 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yocto-spinner": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-1.2.2.tgz", + "integrity": "sha512-DODGl1wJjA/s5pnJFKau9lIYHT81lnhob1i3e1TjxZRxEhWRKl74nTbWE6H5KlkViQQTo/Z29YFdxzTZAMY3ng==", + "license": "MIT", + "dependencies": { + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18.19" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.2.0.tgz", + "integrity": "sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zod": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", - "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", - "dev": true, + "version": "4.6.5", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.6.5.tgz", + "integrity": "sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, + "node_modules/zod-to-json-schema": { + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz", + "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==", + "license": "ISC", + "peerDependencies": { + "zod": "^3.25.28 || ^4" + } + }, "node_modules/zod-validation-error": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", @@ -6425,35 +9823,6 @@ "peerDependencies": { "zod": "^3.25.0 || ^4.0.0" } - }, - "node_modules/zustand": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.15.tgz", - "integrity": "sha512-MpSEjRiBkA9crSYeOUH32rJC7SVqAbm0Fqcqge/bUi2PPoLcBWKOsG+C8mevmpr8TwXHBVkChbbJiyvkE+i/3A==", - "license": "MIT", - "engines": { - "node": ">=12.20.0" - }, - "peerDependencies": { - "@types/react": ">=18.0.0", - "immer": ">=9.0.6", - "react": ">=18.0.0", - "use-sync-external-store": ">=1.2.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - }, - "use-sync-external-store": { - "optional": true - } - } } } } diff --git a/frontend/package.json b/frontend/package.json index 6e9100a..93047ee 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "mission-control-2-frontend", "private": true, - "version": "2.0.0", + "version": "3.0.0", "type": "module", "scripts": { "dev": "vite", @@ -13,43 +13,44 @@ "format": "prettier --write \"src/**/*.{ts,tsx,css}\"" }, "dependencies": { - "@fontsource/inter": "^5.2.8", - "@fontsource/jetbrains-mono": "^5.2.8", - "@fontsource/space-grotesk": "^5.2.10", - "@tanstack/react-query": "^5.101.1", - "@tanstack/react-router": "^1.170.32", - "clsx": "^2.1.1", - "cmdk": "^1.1.1", - "d3-force": "^3.0.0", - "lucide-react": "^0.460.0", - "react": "^19.2.8", - "react-dom": "^19.2.8", - "react-force-graph-2d": "^1.29.1", - "recharts": "^3.9.0", - "tailwind-merge": "^2.5.5", - "zustand": "^5.0.15" + "@fontsource/barlow": "^5.3.0", + "@fontsource/barlow-condensed": "^5.3.0", + "@fontsource/jetbrains-mono": "^5.3.0", + "@tanstack/react-query": "^5.103.2", + "@tanstack/react-router": "^1.170.39", + "class-variance-authority": "^0.7.1", + "cn": "^0.4.0", + "lucide-react": "^1.47.0", + "radix-ui": "^1.6.7", + "react": "^19.3.0", + "react-dom": "^19.3.0", + "shadcn": "^4.21.0", + "tw-animate-css": "^1.4.0" }, "devDependencies": { + "@babel/core": "^7.29.7", "@eslint/js": "^10.0.1", - "@tailwindcss/vite": "^4.0.0", + "@rolldown/plugin-babel": "^0.2.4", + "@tailwindcss/vite": "^4.3.3", "@testing-library/jest-dom": "^7.0.1", "@testing-library/react": "^16.3.3", "@testing-library/user-event": "^14.6.6", - "@types/d3-force": "^3.0.10", + "@types/babel__core": "^7.20.5", "@types/node": "^22.10.1", "@types/react": "^19.2.18", "@types/react-dom": "^19.2.5", - "@vitejs/plugin-react": "^4.3.4", + "@vitejs/plugin-react": "^6.1.1", + "babel-plugin-react-compiler": "^1.0.0", "eslint": "^10.9.1", "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-refresh": "^0.5.5", "globals": "^17.11.0", "jsdom": "^30.0.1", "prettier": "^3.9.6", - "tailwindcss": "^4.0.0", + "tailwindcss": "^4.3.3", "typescript": "^5.6.3", "typescript-eslint": "^8.68.0", - "vite": "^6.0.3", - "vitest": "^3.2.7" + "vite": "^8.3.0", + "vitest": "^5.0.1" } } diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx deleted file mode 100644 index 1b96ddf..0000000 --- a/frontend/src/App.tsx +++ /dev/null @@ -1,382 +0,0 @@ -import { useEffect, useState, useCallback, Suspense, lazy } from "react" -import { Link, Outlet, useNavigate, useRouterState } from "@tanstack/react-router" -import { Command as CommandIcon, ChevronLeft, ChevronRight, Loader2, Menu, X } from "lucide-react" -import { NAV, navFuerPfad } from "@/nav" -import { ExpertToggle } from "@/components/ExpertToggle" - -import { useHealth, useSystemStatus } from "@/lib/queries" -import type { Health } from "@/lib/api" -import { useMetricsFeeder } from "@/lib/metricsStore" -import { useEventStream } from "@/lib/events" -import { useMC, usePaletteOffen, useSchieneEingeklappt } from "@/app/store" -import { Statusleiste } from "@/app/shell/Statusleiste" -import { Meldungen } from "@/app/shell/Meldungen" -import { cn } from "@/lib/utils" - -// Beide sind beim Start UNSICHTBAR und gehoeren deshalb nicht ins Start-Buendel (P2): -// die Schublade zieht Wartung, Logs, Einstellungen und den Update-Dialog mit, die Palette -// bringt cmdk mit. Zusammen waren das rund 30 kB gzip, die niemand beim ersten Bild braucht. -// Der Router kostete P2 ungefaehr dasselbe — so bleibt das Buendel-Budget der Ampel scharf, -// statt es einfach hochzusetzen. -const SystemDrawer = lazy(() => import("@/components/SystemDrawer").then((m) => ({ default: m.SystemDrawer }))) -const CommandPalette = lazy(() => import("@/components/CommandPalette").then((m) => ({ default: m.CommandPalette }))) - -// Dezenter Lade-Zustand während eine View nachgeladen wird (lokales Netz: kaum sichtbar). -function ViewLoading() { - return ( -
- -
- ) -} - -// Tastatur-Hinweis passend zum Betriebssystem (Palette hört auf Ctrl UND Cmd). -const IS_MAC = /Mac|iPhone|iPad/.test(navigator.platform) - -/** - * Die Shell: Schiene, Kopfzeile, System-Schublade — alles, was über JEDER Ansicht liegt. - * - * v3-Umbau P2 (28.08.2026): Hier stand vorher der Ansichts-Umschalter - * (`{view === "ideen" && }`), gespeist aus einem `useState`, das am URL-Hash - * hing. Das funktionierte für Reload und Lesezeichen — aber nur auf View-Ebene. Jetzt - * rendert der Router in den ``, und der Zustand DARUNTER (offene Idee, Reiter, - * Schublade) liegt in echten Suchparametern. Siehe app/router.tsx. - */ -export function Shell() { - useMetricsFeeder() // sammelt Live-Verlauf global, unabhängig vom aktiven Tab - useEventStream() // SSE-Invalidation-Bus (P3a): sofortige Updates, Poller nur Netz - - const navigate = useNavigate() - const pfad = useRouterState({ select: (s) => s.location.pathname }) - // Die Schublade liegt über allem und gehört deshalb in die Wurzel-Suche (?system=). - // Vorher war sie lokaler State und wurde per CustomEvent von außen aufgestoßen — - // nicht teilbar, nicht reload-fest. - const drawerTab = useRouterState({ - select: (s) => (s.location.search as { system?: "wartung" | "logs" }).system, - }) - - // v3-Umbau P3: Schienen-Zustand und Palette liegen jetzt im Store (Befund B-08/B-09). - // Vorher: ein localStorage-Zugriff mitten in useState plus ein GEFAELSCHTES - // KeyboardEvent, das der Kopfzeilen-Knopf aufs Dokument feuerte. - const schieneEingeklappt = useSchieneEingeklappt() - const schieneUmschalten = useMC((st) => st.schieneUmschalten) - const paletteOffen = usePaletteOffen() - const palette = useMC((st) => st.palette) - const [mobileNavOpen, setMobileNavOpen] = useState(false) - // Die Palette wird beim ERSTEN Ruf geladen und bleibt dann gemountet — sie haelt ihren - // Inhalt und soll nicht bei jedem Strg+K neu nachgeladen werden. - const [paletteBereit, setPaletteBereit] = useState(false) - - useEffect(() => { - if (paletteOffen) setPaletteBereit(true) - }, [paletteOffen]) - - useEffect(() => { - const taste = (e: KeyboardEvent) => { - if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === "k") { - e.preventDefault() - palette(!useMC.getState().ui.paletteOffen) - } - } - document.addEventListener("keydown", taste) - return () => document.removeEventListener("keydown", taste) - }, [palette]) - - const schubladeSetzen = useCallback((tab: "wartung" | "logs" | undefined) => { - navigate({ to: ".", search: (alt) => ({ ...alt, system: tab }), replace: true }) - }, [navigate]) - - // isError mitnehmen: React Query behält bei Fehlern die letzten Daten — ohne den - // Fehler-Blick zeigte die Sidebar bei totem Backend ewig den letzten grünen Stand. - const { data: health, isError: backendDown } = useHealth() - - useEffect(() => { - document.documentElement.classList.add("dark") - }, []) - - // Hier hingen bis P2 zwei CustomEvent-Zuhörer (`open-system-drawer`, `mc-navigate`), - // über die andere Ansichten die Shell fernsteuerten. In P3 sind sie ersatzlos weg: - // Wer die Schublade öffnen will, setzt `?system=`; wer springen will, navigiert. Der - // Zustand liegt damit da, wo man ihn sehen und teilen kann (Befund B-08). - - // Mobile-Navigation schließt nach jedem View-Wechsel (ein Tipp = ein Ziel). - useEffect(() => { setMobileNavOpen(false) }, [pfad]) - - const active = navFuerPfad(pfad) - - return ( -
- {/* Ruhiger Ambient-Hintergrund: statische radial-gradients statt animierter - Fullscreen-Blur-Filter — gleicher Look, praktisch keine GPU-Last. */} -
- - {/* Beilaeufige Rueckmeldungen — EINE Stelle, und endlich mit aria-live (B-11). */} - - - {/* Erst laden, wenn wirklich gebraucht — ohne Platzhalter, beide sind Overlays. */} - - {paletteBereit && } - {drawerTab && ( - schubladeSetzen(undefined)} - defaultTab={drawerTab === "logs" ? "logs" : "maintenance"} - /> - )} - - - {/* Sidebar (Desktop, ab md) */} - - - {/* Sidebar (Mobile, Off-Canvas mit Backdrop) */} -
-
setMobileNavOpen(false)} /> - -
- - {/* Main */} -
-
-
- -
{active?.hint}
-
-
- - - Hilfe - - - -
-
- - {/* Bahnbreiten-Deckel (Befund B-10): Ohne ihn zieht sich das Cockpit auf einem - 3440-px-Ultrawide auf ueber 3 000 px Breite; die Wurzel-Schriftgroesse waechst - dabei mit und macht die Zeilen GROESSER statt lesbarer. 1600 px sind die Grenze, - ab der eine Zeile nicht mehr am Stueck ueberblickt wird — der Rest bleibt Rand. */} -
-
- }> - - -
-
- - {/* Zeigt den Zustand der Box IMMER, ohne den Arbeitsbereich zu blockieren (§4.1). */} - -
-
- ) -} - -// Sidebar-Inhalt (Logo, Navigation, Status-Fuß) — geteilt zwischen Desktop-Leiste -// und Mobile-Off-Canvas, damit beide immer identisch bleiben. -function SidebarContent({ - collapsed, onToggleCollapse, onClose, pfad, health, backendDown, -}: { - collapsed: boolean - onToggleCollapse?: () => void - onClose?: () => void - pfad: string - health: Health | undefined - backendDown: boolean -}) { - const aktiv = navFuerPfad(pfad) - // Kein Prop-Drilling mehr: derselbe Query-Key, also dieselbe Anfrage — TanStack Query - // dedupliziert. Die Versionen stehen bewusst hier unten und nicht in der Statusleiste: - // Man schaut sie selten an, und die Leiste soll knapp bleiben. - const { data: sysStatus } = useSystemStatus() - - return ( - <> -
-
-
- {!collapsed && ( -
-
Mission Control
-
2.0
-
- )} -
- {onToggleCollapse && ( - - )} - {onClose && ( - - )} -
- - - -
- {collapsed ? ( -
- -
- ) : ( -
- {backendDown ? ( - - - Zentrale antwortet nicht - - ) : health ? ( - <> - - - Engine {health.engine_reachable ? "online" : "offline"} - - {health.brain && !health.brain.ready && ( - - - Hirn offline{health.brain.model ? ` (${health.brain.model})` : ""} - - )} - - ) : ( - - Backend offline - - )} - - {sysStatus?.versions && ( -
-
- MC2: {sysStatus.versions.mc2 ? `${sysStatus.versions.mc2.hash}${sysStatus.versions.mc2.dirty ? "*" : ""}` : "—"} -
-
- Engine: {sysStatus.versions.engine?.type === "git" ? `${sysStatus.versions.engine.hash}${sysStatus.versions.engine.dirty ? "*" : ""}` : (sysStatus.versions.engine?.version_text?.split(" ").pop() || "—")} -
-
- Hermes Agent: {sysStatus.versions.hermes_agent ? `${sysStatus.versions.hermes_agent.hash}${sysStatus.versions.hermes_agent.dirty ? "*" : ""}` : "—"} -
-
- )} -
- )} -
- - ) -} diff --git a/frontend/src/app/MehrMenue.tsx b/frontend/src/app/MehrMenue.tsx new file mode 100644 index 0000000..826d50b --- /dev/null +++ b/frontend/src/app/MehrMenue.tsx @@ -0,0 +1,34 @@ +import type { ReactNode } from "react" +import { ExternalLink, ScrollText, Settings } from "lucide-react" +import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "@/components/ui/sheet" + +/** Handy-Menü „Mehr“: Hermes, Dienste, Einstellungen. Eigene Datei, damit es erst beim Öffnen lädt. */ +export function MehrMenue({ verbindung, onDienste, onEinstellungen, onSchliessen }: { + verbindung: ReactNode + onDienste: () => void + onEinstellungen: () => void + onSchliessen: () => void +}) { + return ( + !o && onSchliessen()}> + + + Mehr + Weitere Bereiche + +
+ {verbindung} + + Hermes-Dashboard öffnen + + + +
+
+
+ ) +} diff --git a/frontend/src/app/Meldungen.tsx b/frontend/src/app/Meldungen.tsx new file mode 100644 index 0000000..e94fd2e --- /dev/null +++ b/frontend/src/app/Meldungen.tsx @@ -0,0 +1,33 @@ +import { X } from "lucide-react" +import { cn } from "cn" +import { entfernen, useMeldungen } from "@/lib/meldungen" + +const FARBE = { + erfolg: "border-gruen-rand bg-gruen-grund text-gruen-text", + fehler: "border-rot-rand bg-rot-grund text-rot-text", + info: "border-cyan-rand bg-cyan-grund text-cyan-text", +} + +/** Rückmeldungen unten rechts (am Handy über der Tab-Leiste), für Screenreader angesagt. */ +export function Meldungen() { + const liste = useMeldungen() + return ( +
+ {liste.map((m) => ( +
+ {m.text} + +
+ ))} +
+ ) +} diff --git a/frontend/src/app/Shell.tsx b/frontend/src/app/Shell.tsx new file mode 100644 index 0000000..9d2c6b4 --- /dev/null +++ b/frontend/src/app/Shell.tsx @@ -0,0 +1,172 @@ +import { lazy, Suspense, useEffect, useState } from "react" +import { Link, Outlet } from "@tanstack/react-router" +import { Cpu, Ellipsis, ExternalLink, House, RefreshCw, ScrollText, Settings } from "lucide-react" +import { cn } from "cn" +import { useStrom, useStromLage } from "@/lib/strom" +import { Meldungen } from "./Meldungen" + +// Schubladen werden erst beim Öffnen geladen — sie gehören nicht zum Normalfall, und die +// Radix-Dialog-Kette (Fokus-Falle, Scroll-Sperre) sprengte sonst das 140-KB-Budget. +const Dienste = lazy(() => import("@/views/Dienste").then((m) => ({ default: m.Dienste }))) +const Einstellungen = lazy(() => import("@/views/Einstellungen").then((m) => ({ default: m.Einstellungen }))) +const MehrMenue = lazy(() => import("./MehrMenue").then((m) => ({ default: m.MehrMenue }))) + +const NAV = [ + { to: "/", label: "Start", Icon: House }, + { to: "/updates", label: "Updates", Icon: RefreshCw }, + { to: "/modelle", label: "Modelle", Icon: Cpu }, +] as const + +const uhrzeit = new Intl.DateTimeFormat("de-DE", { hour: "2-digit", minute: "2-digit", timeZone: "Europe/Berlin" }) +const datum = new Intl.DateTimeFormat("de-DE", { weekday: "short", day: "2-digit", month: "2-digit", timeZone: "Europe/Berlin" }) + +function Uhr() { + const [jetzt, setJetzt] = useState(() => new Date()) + useEffect(() => { + const t = window.setInterval(() => setJetzt(new Date()), 20_000) + return () => window.clearInterval(t) + }, []) + return ( +
+ {uhrzeit.format(jetzt)} + {datum.format(jetzt).replace(",", "")} +
+ ) +} + +function Verbindung() { + const lage = useStromLage() + const live = lage === "live" + return ( +
+ + {live ? "Box online" : lage === "verbinde" ? "Verbinde" : "Getrennt"} +
+ ) +} + +function Marke() { + return ( +
+ + + + + MC2 + + Box-Wart +
+ ) +} + +type Schublade = "dienste" | "einstellungen" | "mehr" | null + +export function Shell() { + useStrom() + const [schublade, setSchublade] = useState(null) + const zu = () => setSchublade(null) + + return ( +
+
+ + +
+
+ +
+
+ + + + + +
+ +
+
+ +
+ +
+ + {/* Handy: Leiste unten, mit Abstand zur Wisch-Leiste des Telefons. */} + + + + {schublade === "mehr" && ( + } + onDienste={() => setSchublade("dienste")} + onEinstellungen={() => setSchublade("einstellungen")} + onSchliessen={zu} + /> + )} + {schublade === "dienste" && } + {schublade === "einstellungen" && } + + +
+ ) +} diff --git a/frontend/src/app/palette/register.test.ts b/frontend/src/app/palette/register.test.ts deleted file mode 100644 index 626cd6b..0000000 --- a/frontend/src/app/palette/register.test.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { describe, expect, it, vi } from "vitest" -import { befehle, suchtext, type BefehlsKontext } from "./register" -import { NAV } from "@/nav" - -function kontext(ueberschreiben: Partial = {}): BefehlsKontext { - return { - text: "", - navigate: vi.fn(), - schublade: vi.fn(), - melden: vi.fn(), - api: vi.fn(async () => ({}) as never), - ...ueberschreiben, - } -} - -describe("Befehls-Register", () => { - it("führt jedes Navigations-Ziel auf — genau einmal", () => { - const ziele = befehle("").filter((b) => b.gruppe === "gehe") - expect(ziele).toHaveLength(NAV.length) - expect(new Set(ziele.map((z) => z.id)).size).toBe(NAV.length) - }) - - it("zeigt Suche und „An Lucy“ erst, wenn etwas getippt ist", () => { - const leer = befehle("") - expect(leer.some((b) => b.gruppe === "finden")).toBe(false) - expect(leer.some((b) => b.gruppe === "lucy")).toBe(false) - - const getippt = befehle("Wissensgraph-Ansicht bauen") - expect(getippt.filter((b) => b.gruppe === "finden")).toHaveLength(2) - expect(getippt.filter((b) => b.gruppe === "lucy")).toHaveLength(1) - }) - - // Unter acht Zeichen ist es kein Auftrag, sondern ein Tippfehler auf dem Weg zu - // einem Sprungziel. Sonst böte die Palette bei „mod" an, daraus eine Idee zu machen. - it("bietet kurze Eingaben NICHT als Idee an", () => { - expect(befehle("mod").some((b) => b.gruppe === "lucy")).toBe(false) - expect(befehle("modelle").some((b) => b.gruppe === "lucy")).toBe(false) - expect(befehle("modellwechsel").some((b) => b.gruppe === "lucy")).toBe(true) - }) - - // ── Die Sicherheitsregel ────────────────────────────────────────────────── - // Die Palette ist schnell genug, dass „Strg+K, mot, Enter" einen Dienst neu startet, - // bevor man es zu Ende gedacht hat. Alles Eingreifende MUSS deshalb `rueckfrage` - // tragen — die Oberfläche hält dann an und sagt erst, was passieren wird. - it("verlangt für jeden eingreifenden Befehl eine Rückfrage", () => { - const eingreifend = /neu starten|löschen|loeschen|deploy|zurücksetzen|reboot|entfernen/i - for (const b of befehle("etwas getipptes")) { - if (eingreifend.test(b.label)) { - expect(b.rueckfrage, `„${b.label}" muss nachfragen`).toBeTruthy() - } - } - }) - - it("nennt in der Rückfrage die Folge, nicht nur die Aktion", () => { - const motor = befehle("").find((b) => b.id === "tun:engine-neustart")! - expect(motor.rueckfrage).toBeTruthy() - // Der Text muss sagen, was der Nutzer DANACH merkt. - expect(motor.rueckfrage).toMatch(/Modelle/) - expect(motor.rueckfrage).toMatch(/aufwärmen|abbrechen|abbrechen/i) - }) - - it("lässt harmlose Befehle ohne Rückfrage durch", () => { - const wartung = befehle("").find((b) => b.id === "tun:wartung")! - expect(wartung.rueckfrage).toBeUndefined() - }) - - // ── Verhalten einzelner Befehle ─────────────────────────────────────────── - it("öffnet die Schublade über die URL, nicht über ein Ereignis", () => { - const ctx = kontext() - befehle("").find((b) => b.id === "tun:logs")!.ausfuehren(ctx) - expect(ctx.schublade).toHaveBeenCalledWith("logs") - }) - - it("erfasst eine Idee zum Durchdenken — und startet keinen Bau", async () => { - const ctx = kontext({ text: "Wissensgraph-Ansicht bauen" }) - await befehle(ctx.text).find((b) => b.gruppe === "lucy")!.ausfuehren(ctx) - - expect(ctx.api).toHaveBeenCalledTimes(1) - const [pfad, init] = (ctx.api as ReturnType).mock.calls[0] - expect(pfad).toBe("/api/ideen") - const rumpf = JSON.parse((init as RequestInit).body as string) - // `art: "idee"` heisst durchdenken. `"projekt"` wuerde sofort ein Repo anlegen — - // das darf die Palette niemals aus einem Tastendruck heraus tun. - expect(rumpf.art).toBe("idee") - expect(rumpf.titel).toBe("Wissensgraph-Ansicht bauen") - }) - - it("kürzt einen überlangen Ideen-Titel und hebt den vollen Text in die Notiz", async () => { - const lang = "a".repeat(200) - const ctx = kontext({ text: lang }) - await befehle(lang).find((b) => b.gruppe === "lucy")!.ausfuehren(ctx) - const rumpf = JSON.parse( - ((ctx.api as ReturnType).mock.calls[0][1] as RequestInit).body as string, - ) - expect(rumpf.titel.length).toBeLessThanOrEqual(160) - expect(rumpf.notiz).toBe(lang) - }) - - it("packt Suchwörter in den Suchtext, damit cmdk sie findet", () => { - const wartung = befehle("").find((b) => b.id === "tun:wartung")! - expect(suchtext(wartung)).toMatch(/neustart/) // steht nur in den Stichworten - expect(suchtext(wartung)).toMatch(/System-Wartung/) - }) -}) diff --git a/frontend/src/app/palette/register.ts b/frontend/src/app/palette/register.ts deleted file mode 100644 index fb30a2a..0000000 --- a/frontend/src/app/palette/register.ts +++ /dev/null @@ -1,194 +0,0 @@ -import type { LucideIcon } from "lucide-react" -import { - Camera, CloudDownload, FileText, Lightbulb, RefreshCw, ScrollText, Search, Wrench, -} from "lucide-react" -import { NAV } from "@/nav" - -// Befehls-Register der Palette (v3-Umbau P6, Spezifikation §4.6). -// -// Bis hierher listete die Palette die elf Navigations-Einträge — sie war ein Sprungbrett. -// Jetzt ist sie das primäre Bedienwerkzeug: Man tippt, was man will, nicht wo es liegt. -// -// VIER KATEGORIEN, in der Reihenfolge, in der man sie braucht: -// Gehe zu Sprungziele (wie bisher) -// Tun Aktionen — Dienste, Modelle, Wartung -// Finden Suche in Chronik und Wissens-Vault -// An Lucy den getippten Text direkt als Idee erfassen -// -// SICHERHEITSREGEL (aus der Spezifikation, hier hart verdrahtet): Alles, was neu startet, -// löscht oder deployt, trägt `rueckfrage` und wird zweistufig bestätigt. Die Palette ist -// zu schnell für einen unbedachten Treffer — zwei Tastendrücke und ein Dienst wäre weg. - -export type BefehlsGruppe = "gehe" | "tun" | "finden" | "lucy" - -export interface Befehl { - id: string - gruppe: BefehlsGruppe - label: string - hinweis?: string - icon: LucideIcon - /** Zusätzliche Wörter für die Suche — was der Nutzer tippen könnte, aber nicht dasteht. */ - stichworte?: string - /** Gesetzt = zweistufige Rückfrage mit diesem Text, bevor irgendetwas passiert. */ - rueckfrage?: string - /** Was der Befehl tut. `text` ist die aktuelle Eingabe der Palette. */ - ausfuehren: (ctx: BefehlsKontext) => void | Promise -} - -export interface BefehlsKontext { - text: string - navigate: (pfad: string) => void - schublade: (tab: "wartung" | "logs") => void - melden: (art: "info" | "erfolg" | "warnung" | "fehler", text: string) => void - api: (pfad: string, init?: RequestInit) => Promise -} - -export const GRUPPEN_TITEL: Record = { - gehe: "Gehe zu", - tun: "Tun", - finden: "Finden", - lucy: "An Lucy", -} - -/** Sprungziele — direkt aus der Navigations-Tabelle, damit es nie zwei Listen gibt. */ -const ZIELE: Befehl[] = NAV.map((n) => ({ - id: `gehe:${n.id}`, - gruppe: "gehe" as const, - label: n.label, - hinweis: n.hint, - icon: n.icon, - ausfuehren: ({ navigate }) => navigate(n.pfad), -})) - -/** Aktionen. Bewusst wenige: nur was man wirklich aus dem Stand heraus tut. */ -const AKTIONEN: Befehl[] = [ - { - id: "tun:wartung", - gruppe: "tun", - label: "System-Wartung öffnen", - hinweis: "Dienste, Updates, Snapshot", - icon: Wrench, - stichworte: "pflege dienste neustart update", - ausfuehren: ({ schublade }) => schublade("wartung"), - }, - { - id: "tun:logs", - gruppe: "tun", - label: "System-Logs öffnen", - hinweis: "Diagnose je Dienst", - icon: ScrollText, - stichworte: "fehler journal diagnose", - ausfuehren: ({ schublade }) => schublade("logs"), - }, - { - id: "tun:updates", - gruppe: "tun", - label: "Nach Updates suchen", - hinweis: "apt + Engine + Agent prüfen", - icon: CloudDownload, - stichworte: "aktualisieren apt engine", - ausfuehren: async ({ api, melden }) => { - await api("/api/maintenance/check-updates", { method: "POST" }) - melden("info", "Update-Suche läuft — das Ergebnis erscheint in der Wartung.") - }, - }, - { - id: "tun:snapshot", - gruppe: "tun", - label: "Snapshot anlegen", - hinweis: "Sicherung vor riskanten Schritten", - icon: Camera, - stichworte: "backup sicherung zeitmaschine", - ausfuehren: async ({ api, melden }) => { - await api("/api/system/backup", { method: "POST" }) - melden("erfolg", "Snapshot angestoßen.") - }, - }, - { - id: "tun:engine-neustart", - gruppe: "tun", - label: "Motor neu starten", - hinweis: "llama-swap — alle Modelle fallen kurz weg", - icon: RefreshCw, - stichworte: "engine llama swap modell neu starten", - // Zweistufig: Ein Neustart wirft jedes geladene Modell aus dem Speicher, und ein - // grosses Modell braucht danach ueber 20 Sekunden zum Aufwaermen. - rueckfrage: - "Der Motor (llama-swap) wird neu gestartet. Alle geladenen Modelle fallen dabei aus " + - "dem Speicher und müssen neu aufwärmen — das dauert je nach Modell über 20 Sekunden. " + - "Laufende Antworten brechen ab.", - ausfuehren: async ({ api, melden }) => { - const r = await api<{ ok: boolean; err?: string }>("/api/maintenance/restart", { - method: "POST", - body: JSON.stringify({ service: "llama-swap" }), - }) - melden(r.ok ? "erfolg" : "fehler", - r.ok ? "Motor neu gestartet." : `Neustart fehlgeschlagen: ${r.err || "Unbekannter Fehler"}`) - }, - }, -] - -/** Suchen — führen in die jeweilige Ansicht, mit dem Suchwort in der URL. */ -const SUCHEN = (text: string): Befehl[] => { - const q = text.trim() - if (!q) return [] - return [ - { - id: "finden:chronik", - gruppe: "finden", - label: `„${q}“ in der Chronik`, - hinweis: "Was die Box getan hat", - icon: Search, - ausfuehren: ({ navigate }) => navigate(`/chronik?q=${encodeURIComponent(q)}`), - }, - { - id: "finden:wissen", - gruppe: "finden", - label: `„${q}“ im Wissens-Vault`, - hinweis: "Lucys Notizen", - icon: FileText, - ausfuehren: ({ navigate }) => navigate(`/wissen?suche=${encodeURIComponent(q)}`), - }, - ] -} - -/** An Lucy — den getippten Text als Idee erfassen. Erfasst nur, startet nichts. */ -const AN_LUCY = (text: string): Befehl[] => { - const q = text.trim() - if (q.length < 8) return [] // unter acht Zeichen ist es kein Auftrag, sondern ein Tippfehler - return [ - { - id: "lucy:idee", - gruppe: "lucy", - label: `Als Idee erfassen: „${q.length > 60 ? q.slice(0, 57) + "…" : q}“`, - hinweis: "Wird nur notiert — gebaut wird erst auf deinen Klick", - icon: Lightbulb, - ausfuehren: async ({ api, melden, navigate }) => { - // Rumpf exakt wie im Ideen-Verfasser (routers/ideen.py → IdeeIn). `art: "idee"` - // heisst durchdenken, nicht bauen — die Palette startet nie einen Bau. - await api("/api/ideen", { - method: "POST", - body: JSON.stringify({ - titel: q.length > 160 ? q.slice(0, 157) + "…" : q, - notiz: q.length > 160 ? q : "", - welt: "ide", - tiefe: "", - ziel: "", - art: "idee", - }), - }) - melden("erfolg", "Als Idee erfasst.") - navigate("/ideen") - }, - }, - ] -} - -/** Das vollständige Register für die aktuelle Eingabe. */ -export function befehle(text: string): Befehl[] { - return [...ZIELE, ...AKTIONEN, ...SUCHEN(text), ...AN_LUCY(text)] -} - -/** Suchtext eines Befehls — cmdk filtert darüber. */ -export const suchtext = (b: Befehl) => - [b.label, b.hinweis, b.stichworte, GRUPPEN_TITEL[b.gruppe]].filter(Boolean).join(" ") diff --git a/frontend/src/app/router.tsx b/frontend/src/app/router.tsx index 715b2f8..f2df423 100644 --- a/frontend/src/app/router.tsx +++ b/frontend/src/app/router.tsx @@ -1,197 +1,30 @@ -import { lazy } from "react" -import { - createRootRoute, - createRoute, - createRouter, - redirect, - useNavigate, -} from "@tanstack/react-router" -import { Shell } from "@/App" -import { NAV } from "@/nav" -import { RouteFehler } from "@/components/RouteFehler" -import { CockpitView } from "@/views/cockpit/CockpitView" +import { createRootRoute, createRoute, createRouter, lazyRouteComponent, Navigate } from "@tanstack/react-router" +import { Shell } from "./Shell" +import { StartSeite } from "@/views/Start" -// Routenbaum (v3-Umbau P2). -// -// Bewusst code-based statt dateibasiert: Es sind zwölf Routen, und sie stehen dadurch -// alle an EINER Stelle — inklusive dem, was in den Suchparametern erlaubt ist. Eine -// Datei-Konvention würde diese Übersicht auf zwölf Dateien verteilen, ohne dass jemand -// etwas davon hätte. -// -// Code-Splitting bleibt exakt wie bisher: die Views hängen an React.lazy, das Cockpit als -// Startseite lädt eifrig. Kein Chunk verschiebt sich durch den Router. -const ModelsView = lazy(() => import("@/views/ModelsView").then((m) => ({ default: m.ModelsView }))) -const ConnectView = lazy(() => import("@/views/ConnectView").then((m) => ({ default: m.ConnectView }))) -const AgentView = lazy(() => import("@/views/AgentView").then((m) => ({ default: m.AgentView }))) -const KonsoleView = lazy(() => import("@/views/KonsoleView").then((m) => ({ default: m.KonsoleView }))) -const GuideView = lazy(() => import("@/views/GuideView").then((m) => ({ default: m.GuideView }))) -const IdeenView = lazy(() => import("@/features/ideen/IdeenAnsicht").then((m) => ({ default: m.IdeenView }))) -const SkillsView = lazy(() => import("@/views/SkillsView").then((m) => ({ default: m.SkillsView }))) -const ChronikView = lazy(() => import("@/views/ChronikView").then((m) => ({ default: m.ChronikView }))) -const WissenView = lazy(() => import("@/views/WissenView").then((m) => ({ default: m.WissenView }))) - -// ── Suchparameter ─────────────────────────────────────────────────────────── -// Regel für das, was hier steht: Alles, was ein Kollege per Link teilen können soll und -// was einen Reload überleben muss. Nichts Flüchtiges (Hover, Entwürfe im Eingabefeld). - -/** Wurzel: die System-Schublade. Gehört hierher, weil sie über JEDER Ansicht liegt. */ -export interface WurzelSuche { - system?: "wartung" | "logs" -} - -const wurzelSuche = (roh: Record): WurzelSuche => { - const s = roh.system - return s === "wartung" || s === "logs" ? { system: s } : {} -} - -export const rootRoute = createRootRoute({ +const wurzel = createRootRoute({ component: Shell, - validateSearch: wurzelSuche, - notFoundComponent: () => ( - - ), + // Alte Lesezeichen (/ideen, /wissen, /cockpit …) führen einfach zum Start. + notFoundComponent: () => , }) -// Wurzelpfad → Cockpit. `redirect` statt einer Kopie der Startseite: sonst gäbe es -// zwei URLs für denselben Inhalt und die aktive Markierung in der Sidebar flackert. -const indexRoute = createRoute({ - getParentRoute: () => rootRoute, - path: "/", - beforeLoad: () => { - throw redirect({ to: "/cockpit" }) - }, +// Der Start ist der Normalfall und kommt im ersten Bündel mit; Updates und Modelle +// werden erst beim ersten Besuch nachgeladen (Budget der CI-Ampel: 140 KB gzip). +const start = createRoute({ getParentRoute: () => wurzel, path: "/", component: StartSeite }) +const updates = createRoute({ + getParentRoute: () => wurzel, + path: "/updates", + component: lazyRouteComponent(() => import("@/views/Updates"), "UpdatesSeite"), }) - -/** Eine Route je Ansicht — kurze Schreibweise, weil sich nur Pfad und Bauteil ändern. - * Generisch über den Pfad, damit TanStack Router den Literal-Typ behält: mit - * `path: string` verlöre `navigate({ to: "/cockpit" })` seine Typprüfung. */ -function ansicht

(path: P, component: () => React.ReactNode) { - return createRoute({ - getParentRoute: () => rootRoute, - path, - component, - // Fehlergrenze PRO Route (Befund B-13): Vorher hing eine einzige Grenze in main.tsx - // um die ganze App — ein Renderfehler in den Modellen nahm Cockpit, Konsole und - // Chronik mit. Jetzt bleiben Schiene, Kopfzeile und Statusanzeige stehen. - errorComponent: ({ error, reset }) => ( - - ), - }) -} - -// Das Cockpit verlinkt in andere Bereiche und bekam den Sprung bisher als Prop von der -// App gereicht. Jetzt kommt er aus dem Router — die Ansicht selbst bleibt unverändert. -function CockpitSeite() { - const navigate = useNavigate() - return { - const ziel = NAV.find((n) => n.id === v) - if (ziel) navigate({ to: ziel.pfad }) - }} /> -} - -const cockpitRoute = ansicht("/cockpit", () => ) -const skillsRoute = ansicht("/skills", () => ) -/** Chronik: `?q=` filtert den Verlauf — Ziel der „Finden"-Einträge der Palette (P6). */ -export interface ChronikSuche { - q?: string -} -const chronikRoute = createRoute({ - getParentRoute: () => rootRoute, - path: "/chronik", - validateSearch: (roh: Record): ChronikSuche => - typeof roh.q === "string" && roh.q ? { q: roh.q } : {}, - component: () => , - errorComponent: ({ error, reset }) => ( - - ), -}) -const verbindenRoute = ansicht("/verbinden", () => ) -const konsoleRoute = ansicht("/konsole", () => ) -const anleitungRoute = ansicht("/anleitung", () => ) -const agentRoute = ansicht("/agent", () => ) - -/** Ideen: `?offen=` hält die aufgeklappte Karte fest (Befund B-05). - * Vorher lag das in `useState` — wer während eines laufenden Workers neu lud, - * verlor seinen Platz in der Liste. */ -export interface IdeenSuche { - offen?: string -} -const ideenRoute = createRoute({ - getParentRoute: () => rootRoute, - path: "/ideen", - validateSearch: (roh: Record): IdeenSuche => - typeof roh.offen === "string" && roh.offen ? { offen: roh.offen } : {}, - component: () => , - errorComponent: ({ error, reset }) => ( - - ), -}) - -/** Wissen: `?datei=` macht jede Notiz verlinkbar, `?suche=` trägt das Suchwort - * aus der Befehlspalette herein (P6). */ -export interface WissenSuche { - datei?: string - suche?: string -} -const wissenRoute = createRoute({ - getParentRoute: () => rootRoute, - path: "/wissen", - validateSearch: (roh: Record): WissenSuche => ({ - ...(typeof roh.datei === "string" && roh.datei ? { datei: roh.datei } : {}), - ...(typeof roh.suche === "string" && roh.suche ? { suche: roh.suche } : {}), - }), - component: () => , - errorComponent: ({ error, reset }) => ( - - ), -}) - -/** Modelle: `?reiter=` — der Reiter war lokaler State und damit nicht teilbar. */ -export type ModellReiter = "werkbank" | "routing" | "discover" -export interface ModelleSuche { - reiter?: ModellReiter -} -const modelleRoute = createRoute({ - getParentRoute: () => rootRoute, +const modelle = createRoute({ + getParentRoute: () => wurzel, path: "/modelle", - validateSearch: (roh: Record): ModelleSuche => { - const r = roh.reiter - return r === "werkbank" || r === "routing" || r === "discover" ? { reiter: r } : {} - }, - component: () => , - errorComponent: ({ error, reset }) => ( - - ), + component: lazyRouteComponent(() => import("@/views/Modelle"), "ModelleSeite"), }) -export const routeTree = rootRoute.addChildren([ - indexRoute, - cockpitRoute, - ideenRoute, - skillsRoute, - chronikRoute, - wissenRoute, - verbindenRoute, - konsoleRoute, - anleitungRoute, - modelleRoute, - agentRoute, -]) - export const router = createRouter({ - routeTree, - // Ein LAN-Gerät: der Verlauf muss nicht scrollen-restaurieren, aber die Position - // oben zu haben ist beim Ansichtswechsel richtig. - scrollRestoration: true, - defaultPreload: false, + routeTree: wurzel.addChildren([start, updates, modelle]), + defaultPreload: "intent", }) declare module "@tanstack/react-router" { diff --git a/frontend/src/app/shell/Meldungen.tsx b/frontend/src/app/shell/Meldungen.tsx deleted file mode 100644 index 2d68950..0000000 --- a/frontend/src/app/shell/Meldungen.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { useEffect } from "react" -import { AlertTriangle, CheckCircle2, Info, X, XCircle } from "lucide-react" -import { useMC, useMeldungen, type MeldungsArt } from "@/app/store" -import { cn } from "@/lib/utils" - -// Meldungs-Region (v3-Umbau P3, Befund B-11). -// -// Vorher gab es im ganzen Frontend KEIN einziges `aria-live`. Dienst neu gestartet, -// Idee angenommen, Modell geladen, Backend weg — für Screenreader war all das stumm, -// und für sehende Nutzer stand es je nach Ansicht irgendwo anders (oder in einem Dialog, -// den man wegklicken musste). -// -// Jetzt eine Stelle für alle beiläufigen Rückmeldungen. `role="status"` mit -// `aria-live="polite"` heißt: vorlesen, aber den Nutzer nicht unterbrechen. Fehler -// bekommen `assertive` — die dürfen unterbrechen. -// -// Dialoge bleiben, was sie sind: Sie fragen etwas und warten auf eine Antwort. Hier -// landet nur, was man zur Kenntnis nimmt. - -const AUSBLENDEN_NACH_MS = 6_000 - -const STIL: Record = { - info: { rand: "border-sky-500/40", farbe: "text-sky-300", Icon: Info }, - erfolg: { rand: "border-emerald-500/40", farbe: "text-emerald-300", Icon: CheckCircle2 }, - warnung: { rand: "border-amber-500/40", farbe: "text-amber-300", Icon: AlertTriangle }, - fehler: { rand: "border-red-500/40", farbe: "text-red-300", Icon: XCircle }, -} - -export function Meldungen() { - const meldungen = useMeldungen() - const meldungWeg = useMC((s) => s.meldungWeg) - - // Alte Meldungen räumen sich selbst weg. Fehler bleiben stehen — wer einen Fehler - // verpasst, weil er gerade woanders hinsah, hat nichts davon. - useEffect(() => { - const uhren = meldungen - .filter((m) => m.art !== "fehler") - .map((m) => - window.setTimeout( - () => meldungWeg(m.id), - Math.max(1_000, AUSBLENDEN_NACH_MS - (Date.now() - m.seit)), - ), - ) - return () => uhren.forEach(window.clearTimeout) - }, [meldungen, meldungWeg]) - - return ( -

- {meldungen.map((m) => { - const { rand, farbe, Icon } = STIL[m.art] - return ( -
-
- ) - })} -
- ) -} diff --git a/frontend/src/app/shell/Statusleiste.tsx b/frontend/src/app/shell/Statusleiste.tsx deleted file mode 100644 index b28dc3b..0000000 --- a/frontend/src/app/shell/Statusleiste.tsx +++ /dev/null @@ -1,203 +0,0 @@ -import { Link } from "@tanstack/react-router" -import { useHealth, useRouting, useSystemStatus, useTokenStats } from "@/lib/queries" -import { useLetzteMetrik, useSysHistory, useTokHistory } from "@/lib/metricsStore" -import { useStromLage } from "@/app/store" -import { gb } from "@/lib/format" -import { cn } from "@/lib/utils" - -// Die Statusleiste (v3-Umbau P3, Spezifikation §4.1). -// -// Sie zeigt den Zustand der Box IMMER und blockiert dabei nie den Arbeitsbereich. -// Vorher stand dasselbe verstreut: die Ampel unten in der Sidebar, Auslastung nur im -// Cockpit, das aktive Modell nur im Modell-Manager. Wer in der Konsole arbeitete, sah -// gar nichts — und merkte einen Engine-Ausfall erst, wenn etwas nicht ging. -// -// Die wichtigste Zahl hier ist nicht CPU oder RAM: Es ist der geteilte Speicher. Die Box -// hat 128 GB Unified Memory für alles — Modelle, System, Dienste. Deshalb steht er als -// BALKEN da und nicht als Prozentzahl: Man muss auf einen Blick sehen, wie viel Platz ein -// weiteres Modell noch hätte. - -/** Sekunden → „12 T 4 Std". Bewusst grob: auf die Minute genau interessiert hier niemand. */ -function betriebszeit(s: number | null | undefined): string | null { - if (s == null || s < 0) return null - const tage = Math.floor(s / 86_400) - const std = Math.floor((s % 86_400) / 3_600) - const min = Math.floor((s % 3_600) / 60) - if (tage > 0) return `${tage} T ${std} Std` - if (std > 0) return `${std} Std ${min} min` - return `${min} min` -} - -/** Winziger Sparkline-Pfad aus Messwerten. Eigenes SVG statt einer Diagramm-Bibliothek: - * Für eine 60-Pixel-Linie in einer Statusleiste wäre alles andere Verschwendung. */ -function Sparkline({ werte, farbe, breite = 56, hoehe = 14 }: { - werte: number[] - farbe: string - breite?: number - hoehe?: number -}) { - if (werte.length < 2) return

+n!c>-Vno1H$$tkmod^{i|alu7;_#|dy- z05)@6JN@nloFv)+B9|OdYFbNY2dri$pbDB0_eWhIv=$skh8E!SJJGAcL$Hhnv|0c# CU8ZgT literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-latin-ext-600-normal-DMVRjfRT.woff b/frontend/dist/assets/barlow-latin-ext-600-normal-DMVRjfRT.woff new file mode 100644 index 0000000000000000000000000000000000000000..1e9f60588ffceaa4e8b5bc608a4732c73670b433 GIT binary patch literal 12600 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-vietnamese-400-normal-BFeobeCK.woff b/frontend/dist/assets/barlow-vietnamese-400-normal-BFeobeCK.woff new file mode 100644 index 0000000000000000000000000000000000000000..51ea245bb543d560caf9439cf706323fc0213632 GIT binary patch literal 6092 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2 b/frontend/dist/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e37b886fb41d068b74cc368b4063db2857e892ff GIT binary patch literal 7896 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 C*)taa literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/button-Dd8hfusv.js b/frontend/dist/assets/button-Dd8hfusv.js new file mode 100644 index 0000000..88ac006 --- /dev/null +++ b/frontend/dist/assets/button-Dd8hfusv.js @@ -0,0 +1 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var S=x.prototype=new b;S.constructor=x,_(S,y.prototype),S.isPureReactComponent=!0;var C=Array.isArray;function w(){}var T={H:null,A:null,T:null,S:null},E=Object.prototype.hasOwnProperty;function D(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function O(e,t){return D(e.type,t,e.props)}function k(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function A(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ee=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?A(``+e.key):t.toString(36)}function te(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(w,w):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,C(o)?(i=``,c!=null&&(i=c.replace(ee,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(k(o)&&(o=O(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ee,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(C(e))for(var u=0;u{t.exports=l()})),d=o((e=>{var t=u();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=d()})),p=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),m=o(((e,t)=>{t.exports=p()})),h=o((e=>{var t=u().__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;e.c=function(e){return t.H.useMemoCache(e)}})),g=o(((e,t)=>{t.exports=h()})),_=c(u(),1),v=e=>e?.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase();function y(e,t,n=[]){if(t==null)throw Error(`[lucide]: iconNode is required when icon name is used`);return{name:v(e),size:24,node:t,...n.length>0?{aliases:n}:{}}}var b=e=>{let t=``,n=!1;for(let r of e){if(r===`-`||r===`_`||r<=` `){n=t.length>0;continue}t.length===0?t+=r.toLowerCase():t+=n?r.toUpperCase():r,n=!1}return t},x=e=>{let t=b(e);return t.charAt(0).toUpperCase()+t.slice(1)},S=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),C={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":2,"stroke-linecap":`round`,"stroke-linejoin":`round`};function w(e){return e!=null}function T(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??C.width,a=e.size??e.height??C.height,o=e.aliases?.filter(e=>typeof e==`string`&&e.trim()!==``).map(e=>`lucide-${e}`)??[],s=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(` `).filter(Boolean)??[],l=t.includeDefaultClasses===!1?S(...c):S(`lucide`,...s,...c),u=t.absoluteStrokeWidth?Number(t.strokeWidth??C[`stroke-width`])*Number(e.size??e.width??C.width)/Number(t.size??t.width??C.width):t.strokeWidth??C[`stroke-width`];return[`svg`,{...Object.entries(C).reduce((e,[t,n])=>(e[r(t)]=n,e),{}),...`color`in t&&t.color&&{[r(`stroke`)]:t.color},...`size`in t&&w(t.size)&&{[r(`width`)]:t.size,[r(`height`)]:t.size},...`width`in t&&w(t.width)&&{[r(`width`)]:t.width},...`height`in t&&w(t.height)&&{[r(`height`)]:t.height},[r(`stroke-width`)]:u,...l&&{[r(`class`)]:l},[r(`viewBox`)]:`0 0 ${i} ${a}`,...t.hasA11yProp===!1?{[r(`aria-hidden`)]:`true`}:{},...`attributes`in t&&t.attributes},e.node.map(e=>{let[n,i,a]=e,o=t.nonScalingStroke?{[r(`vector-effect`)]:`non-scaling-stroke`,...i}:i;return a?[n,o,a]:[n,o]})]}function E(e,t={}){return T(e,{...t,attributeNames:{...t.attributeNames,class:`className`,"stroke-width":`strokeWidth`,"stroke-linecap":`strokeLinecap`,"stroke-linejoin":`strokeLinejoin`,"vector-effect":`vectorEffect`}})}var D=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},O=(0,_.createContext)({}),k=()=>(0,_.useContext)(O),A=(0,_.forwardRef)(({color:e,size:t,width:n,height:r,strokeWidth:i,absoluteStrokeWidth:a,nonScalingStroke:o,className:s=``,children:c,iconNode:l=[],icon:u={node:l,aliases:[],size:24},...d},f)=>{let{size:p=24,strokeWidth:m=2,absoluteStrokeWidth:h=!1,nonScalingStroke:g=!1,color:v=`currentColor`,className:y=``}=k()??{},b=!!c||D(d),[x,C,w=[]]=E(u,{color:e??v,width:n??t??p,height:r??t??p,strokeWidth:i??m,absoluteStrokeWidth:a??h,nonScalingStroke:o??g,className:S(y,s),hasA11yProp:b,attributes:d});return(0,_.createElement)(x,{ref:f,...C},[...w.map(([e,t])=>(0,_.createElement)(e,t)),...Array.isArray(c)?c:[c]])});function ee(e,t=[],n=[]){let r=typeof e==`string`?y(e,t,n):e,i=(0,_.forwardRef)(({className:e,...t},n)=>(0,_.createElement)(A,{ref:n,icon:r,className:e,...t}));return r.name&&(i.displayName=x(r.name)),i}var j={name:`x`,size:24,node:[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]};j.node;var te=ee(j),M=g(),N=48,P=(e,t=0)=>{let n=new Int32Array(e.length);for(let r=0;r{let t=new Int32Array(e.length+1);for(let n=0;n{let t=new Int32Array(e.length),n=0;for(let r=0;r>>1^-(i&1),t[r]=n}return t},L=384,ne=[],R=F(P(`E0500002005282000000002000150000020021820000011200000003022202000300004200120000200420001200021200301200010400162000010000220021010:2192001200220012000220012000200200200400010200040000000000400200108200110100000022010313000162002000020020012020080213000228200000000082000000000120002000120020020040101020300130001001010`)),re=F(P(`:11111111211111119311546544411119731869:671397415686432441111111111161114151214313433415:78311132233313187211117221449443411141111151152226611131111112212518142224214215421421542142424242516171151615616347111111111197911327451111111111111111111113134714133513411111311111111111111111111112444411111342312715245411117:3`)),ie=`@containerabcdefghinlmoprstunderlineviawzccentlignnimatespectuto-colsrowsaglorightnessckdrop-sisbcontrastfiltergrayscalehue-rotateinvertopacityslurrightnessaturateepia-coniclinearpositionradialsizeockurrderttom-belrstxyespacing-xyaretoursorlnt-umnsendspantartainentrasteividerop-shadowurationcorationlay-xyasendillexontromlter-featuresstretchapr-xyayscaleidow-colsrowsue-rotatedentlinesetvert-beringsxyeshadoweiadingftnest-clamp-imageabein-lrstxyskx--b-coniclpositionrsizet-x-y-fromto-fromto-inearfromto-fromto-adialfromto-fromtofromtofromtofromtoblockhinlinew-screenesblockhinlinewbjectpacityrutlinederigin-offsetbelrstxyesrspective-originaceholderioghtng-offsettateundedw-xyz-belrstlreseslr-endspantartaturatecepiahizekewpace-taleroll-xyz-barmpbelrstxyesbelrstxyes-thumbrackadowrink-xyxyartrokeabextora-shadowpckingnsformitionlate-xyz-offsetill-changeoom`,z=(()=>{let e=R.length-1,t=new Int32Array(e);for(let n=e-1;n>=0;n--){let e=1,r=n+1;for(let i=R[n];iE?F@03263243255B:032523853:0325B:8GA032542HE?3257D>032585:0325B:;0328B:032`),B=P(`012113445661666666789111:5;;;;;;;;444;;;:62999<1161=62>>?61:21@ABCD4446996:64E:::;:?::64:F114GHHIHHHHIHH1HH1HH1HHHHHH::EEJ4444::EE4444441691;644444114244444:;K6666555555555555555999666664444444444444444444444226?6:66644L9M?D:111::::6DE199`),ce=I(`020200202020020020020020020020200200200200200200200002020202001003040106000200200200200200200200200200200200200200200200200200200200200200200200200200200200020020020020020020002020200202002002002002002002002002002020002002020020200220200200200200200200200200200200020020020000200020002000200200200020020020002000200200200020020202002020202000200200020022000200200020020002002000200220002002000200W0Z00020020002002020002002000200g0j0002002000200200020020002002000200200020020002000200002000002002002002002000200020000200002002002002002002002020020020200200200200200200200200202020020020020020020020020002002002020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020002002002002002002000200200200200200200200200200020202020002000200020002002002002000020200200`),le=(()=>{let e=new Int32Array(319).fill(-1),t=I(`02422242:222222242224222242442222222422222244442242226224222426222422442462222422622222222626222462242622422622422424242422222222422222222242422222222222222222622442224222222222222224424442262222222222222222222226224222424242422224422422422222`),n=I(`02222222222222222222202222222222222222222222221422222222222222222222222222222222222Y\\222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221422222222222222222222222222222222222222Ŀł222222222222222222`);for(let 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 diff --git a/frontend/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 b/frontend/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 deleted file mode 100644 index 54f0a595dd3c76344a980109e7517ed42416de93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24272 zcmZ6x1FSGSur0c6+qP}nwr$(CZQHi-ZQHhO>;5MX_r5o6)5$bVnyl$$+F9=MVoU&l z0RM^JJOILf6Ch~Af4c4eW&0od|5vaA6|e*A-EdYMzzq16RRmSE07BUiA)o@gIRXn= zpd;V_0NH>@fDlt42Z$)?Ak4y|2oaS%Da%D~U6(5#H%VD)ADQF_ zt$SDe(nD{qO?Mg6_?7BqYEbG5z)5`NOeV3AnNc7h42ArakRMwcHtq(?UDofmKxAEb z!sxCpPEzRXu+|hjV-9$sv3fXe_pOn zwcjT!9Wvv>F05WOPKg-o4vMX;W~ZM1>c{@(TAh=^;j>b86j5sypjY}oJpJtaZ+-2p z#o+mf;6y}JN-n7lj=-_sBP3b_u!+f2fyvSQz9TXUl*A6&$IOsSS=bUM#S4niS|{^% z{yO*r1MVSGK#veTK=cYhA2EVDT{A*pDU6olmxIPdL0H=c*Tt428e`W-N5v%Df;0qM zi+(DQqu2b4`@H+^7Ax;n{e|-1Fl`292c-uoIYQ4^^R+#ofPH)*`U)LttCJ zgKe*Wwg4%WWmk;GBn8bGTy|WhZ7L>9dY4@o*0aQ=mU>zgL}0&FDT{Wle~>|Bucc(a z>%0ElGm1e-o|_!F5uk@O#?ECVDNQw*VR~ma!PrjcFxt;CrF*f|r~H=MKt5U${Kfkp zdeWkxSofF!v|Z~{Sk+dYatf#n#0}Q-y9yN|(vXDfAI$>wF5oAVTSucVcq0$jiVB(K zHp=}sT1zK2$U%{cMP%*0)_WreibxZY(4DDM|G7%($drgoY$rwh$sj6^ODt{>TlNzN zmIa+%rSn`pd+#vgS2-+1q_D&ZjaN|ENR1K+8Y@~Tte=lZ^>kDH>-^Wh)yED7!Ax=! zmb9JcU-$7-oKAxtdt-u}W@7`W(H;ERAuj0RezuDq0|t_mxeBfOyHf>{E2$+VubQvW z#m!I@BdOm!O8=c#MPUB;R+e?+59HRN&_PIdYbuo3g%B;~5S4^ubhi7l_2=IC{?)i_ zBzfKdK^~;A54DIRh$jwkGGNL97U~k1lv|B}s&Srljd)2B=|b+Y`Gt5k`j^p5;5_aALB z4W1&@IHtITRe)>)V2hgc2z6q%w~4z2@X)V%9l86mhL8doO@x`%Y}1B3qj-Y2ivU_g ztbO;+ZOfJp9)iz`ZNmg$pij_)!0pDxoBcHP66cDuh!zi^t7%p_52p1I&oegP95hz+ zKsaUm#Ar~ygaC(2z?ksgSL-Lek*#pfJ6x&9wLL7xeaS?YMvxg&QcGJUApD+O-Cp-> zG6_UTH$!%;$tCfiN1yGfGGDx%g=7NlL@Jt^QqCWXE8B%M7u_`)pKu{#nd>-tHAy?y zU32-+VYxLf5`<$`^pAk3Z-kU#ZSoQ@65!Uh@AvvIEeZyBfViPngHnVDaET;($r$xGc5=dAS)oA) zV5kU+fFUtkfkOgO!So=sDPFLG8ezy`6rNONm;#&ye5sB(#osw(>1d|HEEoQyD{~=B zHnixap~xp}2-82*L`EwR5a1`EC83H$D?(y+5m-S_44|@2fuQZ@u}_%l;wW8=+(s7z zmxbkUG$aNqI0Xnmu#Dh}HO77;e70!I_rFb$-K__`CNu;Tdqxgz0klsQz+s`i3`zX! z_LXf%1xmpT1Qr$(AlUD93Kt8d!CM$%Q6(~APsg_~rN2`gs3ALwN~%Nwu{mvWRwjBl zyYImW$x0a<_D@{$@YKac0vS8b0V*CzKNXBE)nRF2TBZcm$&yGs`Un{2!2P7-mQ<;~ z=PmWnH@&biy599X*n@i#eqT8wX`kPZ!n(xmLRVnR65j5NjG=F8RR)a@RqdG-D)bOT@l7B>cidrXUu)Ua$#hE1 z;4_09JTA-P%t`Ec+#QcPmq@b{_i5XxT6o=)*jwW+SNt!zJ$Jas`ZT*STZ6scxjHY$J(4X3^0FaEJzsD#2YT;gO3SZOR%C;0p-Smq>(#m5Y zp`izdR?;eFx;G>;)WyQ0P&+)`ht2*&592J1)WxdU$Xtn{{2Y*GV&5QUpv{jk91e<@ zU<5(ylu6+UZlJ9(q5NM^<%L*UF=euF`+1!%V#>?sD4Qunw&1Q{NZNzmGZbM(AFWx7 z`BTYVZyDf)&X%K0Rm_u=Y;Jw_*3o;5b7Lle5 zGol%mLE{^YR0n57>e7T&x@NH>v>EPNH0X$9ukTVpqUNDw)3gyFM#S6&mtqK`K|(*Z z#{wiL``(WtP&+1EZZo8jm@tcVpQ7l>7j>bOZ@-dRWL*>8G~4R~iZRYX{k-e4oFNy` z3N7v0YBnC5>tg=-K&YAx;}Z=ww0O|wBKazA8R&63dJX*ZIlJyV{wccefW?pRyKaKF zujBQF)#7qdS*Vz*Mg@=Vy$#}_-4>A25%ZOkJ20?nfa!{CTn$zEsGNkibF;!BbCUi4 zqKxf})-Q|*$O_VUDvon(4*?7Bx%ZyvN2F>#yH_^PZR3fh5 zbAIh25(3lh*3D2(CKCgQg(r{+n>JNTA0%STJ zaY|Y`WLZeYi@q-~cm-w?(cm;YDLc(_Ys^o(Z%=amE9yE`6azLR-F|e>x+VfJ@^xFX zA)8Sr>`r5I0<0cMJMq8b{gp+h&Y+(p!)3Rie)#Uh+P6cNcse_Q+4N9450#lr0fN9J zQMmwl$O(WDX{r+;-m`x?%blOo@bG{NQy&PuB{7t5M1G4+Iohwr^Dr7gjpA-(5xM1kT!tiP$OOMY=Ai0(TjM^s!$XNVM32S+Q|S zMAIYM?0%fBs^<5`5pTfs@i{6d9J=mL|+jORr8_Ojg50pcv}?UY5({b+sgoFPRS zSfWk)3V@NUzciN0p^%ekW#qS+OmzznC=S|GEQf7;Ck3jYEB0pZ4Ttg8#*~|nn73^u zZI@ftkHe1Qfhe;yvFQ`TsKCGEGpA;9eqgU@b!+}*_fWJ^P$C!+pwH(()XobJ>zU-C z7<@6v(r}ccn53~f_!n)z483jpuH(Wodz)hO-);%*1rC{+t;&9Ckg3NCSjtn?D(TWQ zSz8*_vurD|JeR5F;xF#Nh@P&K7j3Su3$J1Pv*naaH{(Ub{dyk?2sXkA}nbr&q$ z7!@J_wGs^!P#MUm6{6r&i~~U#()03kaYZ!4jYhaputdhxDBK6@&?AB-Ii=f9mTgKo zHE874BazV+8%3eEsEF_vCzL6+L`SqKxI{*?Zs08)!HYKur|NVoaMo(5QywQfmFg2rD@1oORYn^; z>$svVdwT_PJB82Zu*Ln8(R^JF^8o`0u0M(zr?KgIp&A8>OY?=%dY7Jwp;O%SG#IzN z=Iuaiq}$4!s`r$U6VKKN<)vaDP;RTOZLzbugUd92A1f5yC^$MaZ0ONTUhXz6U7=VV zo*ka2rD;TSlid_GS){q>$Wq9lVgiJ`|*fs ztWvq)rxVXaM`oJMPapI2mECD76==u};Gik+qx~ucHmyjQn=Km@>^(hcVH?9Z&>T^QVQk6SX#6QyXTPrHf6-HEi zPEcK=sHzT;)Fp9ion4cq_9UL5_4Ww_S$-5Y;coUSSP@WXo9<6QmFakh<1;iFpb#%% zFk_dv83I)=kl5k}K8AoJkHPB$(B&y2Q*Wdb45tfVAVAaubV!9?xE|9EY@r0oM|f7A zdWIAUN+<{+AxJtw9EUp_k_SM#fG1GT>IDX5k=0Y0kiu&jnXD|BSB)s!WJtGAm4`{C#z%@O<}Vcwv9&mPoj06fk2x{QmnR?pn5&p}^WImPJrdyoAj9(3^kJ(x z4l3jTQi=22UoR@_TC&(DW@n#>D)IA5(He?~#orK62BN9(L`mO$A{`(}!A{-&>PjZ= zeX;<*x}q4WER#C#ik14ceN&JpyV%Y;8x|HJsHX{gFOW%65azY z<(14a;&sT*_jr-JUHn(-omsI@y+&Yx*HNo#MkV%JpzF7 zlx{3=h51iw7uJ_NNmm71#Qh812zsH8sQTx@@ssPZNFl$@`P_4~+nEYam+g=NuV8?V zk*eEXyQfV6*y$`N zUuhL`BwVKRj-Ics;zd4lY%jR5fg}jK0t$FS;8(B{DNkg#^?U9y#+R39r$ycZr5+Tu z8O*AYK&dgbn_~6Y=gnP((kFinhQlwY@36$`bUBtT1~aUAkkv97%0x=;WJKYr;~`?! zCD2)+KB!lQ&KE@KP3N|^p0i%;RTLXPn>sZpSPQw6z20axqZN35IX1DPYJ(K6tW{PZ zJqdK)>d1X91Halh=U6;n63mp;c7&>v%&3!^l)IP$a>%3^QZYUx&X2trXbF5PV2-lNUAt_!Um4v-qUFQYRC~Z#jA(7;x#BL_u?>TvY*tM8BU#HZGOWtrZzE~P>SeWidEcijZ8}-?3X_zS%_=RV?-1vqcQFn*gHGskBki)S;v#G$8-$kC z{aKuCdn;?$8-EfcubxFs|1ia>6nqmwTolSPSm5}q9YQ&srtT+?AP_NiHWLttj7PVL zh8R5^Ehh|yq)i&$m2BoQ0?9e3iMk_ZO?G)QdguW3`g*|XZ<5B1Lcr|J!!GRk$OnIo zw2Mri|rjs8q3Mlk8MWk7p08m5!+U z7d;t(ceoJ0ccz3Q*TDU7DEUU50z4YvBGXxrBosj(V2#>cwgK6f!2oA=gW7?MWokmJ zk6*)I7)}m&{i~>v`OQ@_pv)E-RF`>$rG;kA=V1(;Usl5G(nK~jL<6U@_ z#pYFyDfdL@;h8OOxQ7JX)3$4<2dKWK{?@3+_3P(dR}uvh-G{_M&nCsQC0oz^VlrR$ zz!Reb?!3)txVz;dfEQXF{~s>01Zu(f(yEo=!+D3}yt&0dGW#7s`Xzf+xt+)Q)hW1ErFQ zG0w+^-IF(KH5(-Nf9VaGABpfVpO)%F?tqnc}|IjV}ZG6sXm0kA<7 zwgIwW4wI3in8uVsH7qpK(2AM4E z(h1dZ#y*G}Yaq`f;(3But->u7Mo+WbNx+*^?7fHDv970m85MW&~1h@SGv%q8t zyeOB%`hDX!nMAp6-@BH{ZX<|cpotU!(GU|vX^4xeFhIgxFqDM(7huYWhSY)C>w ziCDHIWciBd7&}N0f(;aGpln51c#QHtO+AL&et3vZPR~D+Qx~qelothNFw7vCNidm- zQ0PEdL!r4KOt68F0RkonHc)W9VS~Z!cfN-FhV>>Cw$_W=rQoghXAxSn39WO-ZOdU# z+|_Ad1~v&E8_HFL=!s&Jj_B+-N7K-G{iZ3Lyc?^I)io-Gd<7^vq=KhqfxWx_B2c^x z&wKEGlUodB6oloX=pqZxc;^t=a^^iXF&F@Z(pd|qSTr6%R9>5wfg^|w#vg5;nh?bL z#CqX9IhlHoDfBR%5+$D($7Cjq6?@f2rIUq|lao9m6&3|QN?vvXj+Hdjj7zqP1w7>k z$H4ys0Ht4M3MJ~!f>B8Gz&RsIw?>2J=uAU?HSL6R>=i}VtLC@%jdJmsM@pFM60zix zb=^&ArWfdsZEtLr-Ckxmc=qh z*5I$*G=}%a+Q^lK^0mpEy7^SZ_0Ja>mr=yy@kHAw|3~Ikfk8Un&g3AeI_)+-wK=m* z<Ip6iNIQ<778jP;yO&ds@POz-R3eLyh0<9>f)irnWt zC?E(Lg+wDl!Ei`40tFNhGBlc8D@Mchk`=>cTOsG1!SE^tt96#EUe1?A^CBpkuJbyo zx~}s!%#8i#ENv^#qe?Z~ZReMsQP6259mnHZgg{YYVV;qpv4L`5fu`{$&_}APA|$en z+2~QDhNJslS_po=JD$mTQL22o!gbZt^^*PJYm*ygRsj0B!EF>bKzP0y9w1l%fI7f@Fy&>0hyS;1?8-2%O@x)OPG@35c12z zmM{jF^UJhs^7z`R)Rwu4t;jeWG9AUL{mSDRok*bA zoQZszHMMlfw|BqHy&@GiadbqeEe7<_QP)>@uF#Ezhs!_QyzGE#h5avZK0w}Vs>26a zA!DDS_@FZN!0wRq*kah--TL{Pv)fty_WtH44JOTn6~4Z!`bCYSw(7Q%s3vI2+tZqI zdZWmxEi#C9`(m9gw@xZm?dAL4%6w##@2;z(rlC5!{ojo4Tg}={YV7X&V6%PnKJiVQ z`$DVCH4VAZq%mcib*7SzwQ#|^UJH^MozywD)F+v|d>_3KIZXOIsZ`Q;gH~6*hKrV1 zRZnGBMW*x~&up5uVX3N`wlOXG)%Qqh_6ys(Me@wHu{T8iHscby-!~}4|BHQ0g}{QF zSgOA4D*TL<)&!luFS#^xK5FzR$~yJ3q|-y?sWcak1fs(DD^8 z6Zniops1jz(AdDpP5MK*cx77%3EDH(BAjE&#vL*3n&IuR?tO+d2VdHykF4~Q zbmzhHszD9yl>_6l&ijFATe`mIbyWMV=WTH8+skZRzCTOSkmcyLO~h*E93A)kBzy|G z5F@1jv2$&q5oSplL5x;ZULg7`Zww_bD&0Fawu+{wAUO$y34`9AtgOoj0&Z)X@tr|x zw=@EwwNGf&ez@;lyJd*!ck<5tXg-|H^KctPCLj#Xq;JJKCE;}`Y~XzNY`9*8|F}Gx z=yzW);=CN+1HyMCW%vZDBN{b-I=b=s>kY=nFM8U?6a-Cx_3%q3JT5X;I1-9gC#%I` zX|Oq6e5>NY9*fr*GsFHs@9XtS7^N8IqrI}rpVANw7#q!*W3FVjpnR4RVZ2Z=GiRsW z=}SfRFWi7id~y2h@~QtUG2S&J7|I4n9s+`kCdt#LB!EK#ky5ctC>6`K*&;jGoDH|@ zdD_^3&i4uPaIxS5UJH$(X`Uz=Q+p_c(ix3Lv(aog4cFTY=iAZ}gBha{povmxx@K60 zQl8QAiAC|rjTQ< zw0g*81QS;AS_gm<1C0C}XR%P1fsg~o1$*hbNl^mfIms7yA2;nt<*f=NMT|&$WN5=9 zOuc8B&v^7Nkt9t9rnIFIeNQ+aKGMOnaWRbc=_pTY_uvR=)qcT=n@90&DtExz@+DIO zqqeYB3nu%+@k4=FgdZkEfF@WXe8GTd`R)HoP6cfJ0vron?t_X1Ix>|vrSyeEs->Jl zE1lp&ij0|Ja*Wuvm;6Tyt0xLF!WzcN_7B0gQxzIU@#Mx93r3Ns+!sJtrCiuT0LNgrIM8C))G7XiQ zsBGQ5$o;q$-w`n)=1~rxs(1xrm1d{QytR!ZKzvxEdSm-Fj0p=%%$Aa~(G}Md(J+f8 z=731Qb(hQ-=1FtWTu2H(nqo~D|HC<-&21E91zUMY^MyeSVJtY6&q={bIi(K%h;=kY zwge;gjn%U!;vS>l%*Rq@z>uh!&~SV7@)|FJ?g#Ld@bwf<^s4uXh=h`nlBuNnUpz_& zmPfb%>m0QLu1Ch8lzTUYEe;S+06%)Bt5En)a^R> zG>mpsG=Y?GNJ?SdYqFl^VXWkCSqwC3#SA+DpjH5?0r)brPRED&;-K=;;L`W*^rEna z-bZBR`x{H6yD9T2_os^m-kxwb>2qB>2OQ0@l96a+PV{jC*)Xv5DAPLB zq4vCxvp)m|6Gb(;v+DfL%id3i0Qa{<7aTth`93&MlAr*YwPx}oVv*xYEcy_dj^Itq zen9jR5eRUO`#ed-{;Gwj1En%d;vvyuqOMp`W; z_+ct$y6*MeMuxhkaS$nA0*%{BcJ^RPWhTEhsTBlqp3z7oznDlXQy`aL7c$|~;o#Gqut#ZfOq7-?9MV)0i5LU^?OofXl3EOA zh@sC7qGYi$%Bs*#$mghvHKZvm3G%2tu`l+GaU*XD1GP;Eo!of{@Ih}8!#`?&lQZX} zVDt1(rm#vT!s`5*n9(puVXqcPN>fSS4+ZpR$F3@6ajKW-jO@8!R|wvqyS!2tn$0+8 zdCJMG2@R8--AQj5-ddAqh)lI&MSq#*KukP1APP8|0Dx%QINSaI!dBNpq-q|P>k)7N zg(?`5W}TvE>@5-SiqOwe!dVi85$BQk2Ym^k}b>nW?3W(P8=Rrd5qf9EonL8l8F*h~Z|1 z8ij6+Kr55z0fGI=G)hJ`CV(hpYAYif6N`YX7zlX4L6?|?Zh7RL zEIdSX(ltg?YI7rp*%i*SoXpHj5=jzCAONJNc;4s5xnr3e8$JHB9A`5#vm}y45=a1u zE1vM2NcbG*Sx#nVX2~RpBoKfQy||g_|DVVtkx2gUF7dxr5=o^0lm9TVpX@kMfZWAe zr9h>R#mGn1f-w4QsVEdmIn3u>nmg@JSEX8-BN7NBc^L9^W(wVo7Z%)5$`fAh^O%`$ z9K{$?)K5FG#=bWu1XO5BD*4}O05HCts6WX0)k&e&q%u=V7y=*UZ*4G>4+$JiW#gh_ z07k>I5OC27gpdas=bzucX!{S=KBe})-2ZC*9)C_J@+dj+pxoP1-YWng++-pc4+JYE zF$o1YgarPYyvnzX-F00T66{7EO(n<%M5o1ae@bkE>^k%BgDNH4hg5juxLPeh~m50ShWF!&Rz8u`Vk>q^Xgj>E# zWqE!pgy~I2m-1Ir#6*?1yLuPpPWjPuU1hqp#IQI`K-MFQG#G}4N5nAvF5d*}%WtjS z7C6aq8uK;a52|7&-pIzrFEtA`9o||DUMI+}ex0 ziT;N#G$hPF>SwZ$S)SJ7Yf(@s;d0LG7levUG9atjGrvNU9<~MqkP}6dYMIh`55T?! zPy>qa9JsPI+>-1l%y90Vs%7KykL}%a%NUA8ps^~?p-6je{ML<5m6;bVMV1+hEk?B& z$8vKO@WMOe6`OW#k-_j1;}x1-sS?@w$VQ{G?iB|R<`ibNnS$3hZB#C+E}2iPB~31! zGbKIOSM-R#K4`kG<0eC5GMOwk)9nhzQCh{wumP5(L!Q$0^2vtOKU*CwKc`D*U}mMe zHY-%7hS2@O;Rf`QEEURBvao*IRfh(ME^!7?2zjsqh>VyF>8m_Jq1n<_^ArU((jR6i z@my)_JXIm@ER)6N$(Uaj%jEoImzZ+N>_?nZ#(dSyiK@+xXk+@$#UGL;{`{CBwaZH88!{daC6?> z5mrdDsJISr2mbsSB^9CYFr;RW%1 zUD4QDqla)=p6}!>_g3eN5-r;J!D^@Dt)+3bbq83_UB^_da##JUvwX z%jRU-wfJ_|k^T_z%#_qK!xGtF@jLvo+U~>7;agfz25Ut)c0t(kl4;a!8Z84sGv-ca zOPL-SQsnG0j8(AoUwFO<9KhfWpgIvFv)-6FbjJ>pvtE=riqb?EBQO@@S$KOE1MY9e z6IJnwy@bn0b#~&d$hmdFs~5vriDfUy;$mx6LHNk2Db-vZFd?3^#6K4`c~2K>I+b4G5q@04)rY5E5M_$P*G0BHN{dTGSg@ zN@HO-J0U3yD3WoF;$>TkWkWnt4P_6kLN>_BO2gg*eivp5FF;SF5)e}v8jV9CBr+*s zu}%a4JTZ=pT@x{A$KtH4Zp9#-E5{l6Ny-XgG+F?L|K;ovEIg=j7kMskVX#-Jrv6>M zNs@G61)D{pNNS=D!?iG3-W3o%(??wiij}mvrz>Qj5_*+aCYr?vPEw!?>*9gUK0_mo ziGgh^KH(e}BAx&n(6S01MdImb0g~NJ9UNxu(O@ zch(RMFXDp{GKjGoNge0#ke5d@K7jBeGZz3=mS=y_=K;N;`Y2bj+`9@JQ@<>lSy zZc-;%zK4Qj)+=4;B4o48G=N0J=h1ymEgxId?M9nHZSymRk6_F5-{Upp+q;nSpK1BE z`r0D`^7lft-auNf?K%%$e#bo1|6XErto$F*i8Ev(y2943U2C9>$*m1VJ zgC~=#hlCW3)8%J?&C*OoAKE$!HTrnXSZgU1>m|FwwbTj6VL#Z%nJh-|C%)HozCgJ^ zDp~(|rm6p)Z_HKwrD~eCv8ZX~mZbXseKttk_uF+cnNp_I3MBTzQM#`SvRdW3Zl+}8 zC0IGm?Id;I#kTKyTCU>>vw8Cbz&Tl)hmD7PcB9jsmE&POKq>$O*lGn_qf9@7)7%5d z^cyp@0vb>$9Mxc&kk^TOG$a=rYb+4Ka|;4DR%OC(Ee{0x9^^9#f)CU^y17ZkjI=F3 zY4Sjcqo>SEEEX;hCHB!xcxCUQqWlXcfOv<`QbqlDl&XFNGoY~BjS4sf!%eDN0bok- z4pKXDMuLX|K_CynJv0u|Q9ewOxbQG>78NBcySUz^=1z9Uz&r`1Mx&^Vgh{3$;(-{! zJxHB9`>n>@LWu=vfE*YJ$$$W135ijP!EqU&2^J%Ht)Vs-SV|hHHZA!POW2(83+W>c z1J>6U`fug#~?fssun1UH%zd7-u4iJmAGAqP{XAVl4`6E3{HNw-Cn#xHKh zbE{2dI?U&@fdQ6@oYmcd45Ev?-=0;jPVGD##kh^$4TH>>kw!$l4k(8H;4W(*XO~GW znGg_fvH)CX_FY3X{fW%Lgph>>E)&N_PLSQ)q*h(7-25K5xNFxzOclwvjp81rMD~7> z7K#N?1!8+GR8TCSp_453&1RhJbzE4^C{$|w({K3no^OBJo#oXlTe}%nfq|^F?nI7f zfGw`~@rojF_%LI3pp#%O{-Gp?GocfWfaw%O$iU*m8{ZAMtt_Rw@T!C%sa zg{uGwUE*gFE?<&9WyCLdrph0*Ecp%Os-pn;C~lM!p*1P(6vG5fD{W;i@lQ<*eIxt; zZLcbJm%^15R68T->2s+lGK;u|M6XD(TWvB2bv7;us?4U_ z&`}F*Y$k4nW0n!#I-`49_?7x98C)~mQ;zeDnI~QW6?YMw*0a% z-8-c{o_P_QYb^yk+b$|n)vH+D<(FE=e}$K|w^p9eB@?n2G1LuV{@Mrk3fO1e@s2=J z7(-Mb1UHgl=4I!pB27si>F1P=yE}E_q|T|0%nuomu^104Sz5VLIgUn9s#!ry+%2@L z9L!5sJQd5{&S-5FjJ9ECIobjgVFcB-I7Kp#csBm6*uv<|h@RBA$TbOLj>+}&wKz?^ z;NOinL4b0%9e0@PBb1j|=8x7v5q>NJ|E3u4b!Xie;wm*Nd0<*a~HCt#XF> zv~GRnHxV|Y8|S*hB#x7kMJSZ9K$-g;-7NIvlyGC4Cu}yK5Tjws7{V57T;15XpWh%# zBOJm1{Ojrcr={u}Xv1%1d8_zW-QMQ5AM;jj=8sO5gfGE3A|Z6%ooc#k)n42SR75%V zgcq)e8991AXFQF?VHfU5?rrZ-nM1eVaW)FHP(EohS2Zb;Gj4q!Wj%)BeO$-9M$T_Y zp`3)IxYcf&GYRM9Ovw$16lDEkqoiZ8$w|{Nqp?q1SB4Qw4#Bd z`?@V8$zZCk!Zhx zDBJdm{-h7Pfd70FtziZvsmi0Z0YUg6am6^*wIC@qwS6_`-5$K21Jsh6?A?G8` zPvCV6QTI3aN32@Io0Fec&-fUVb#*giIC0(q(J}cifb98i{JFzG@|;aw%tMM(S-m`G zzWy?&G-l-UU<||af>uUF`OBv*GLF+xr)lU!j$>nSteu@}twd-`>%r5>8%!q2uqc>s zry8)t8^c%+PI$jcKcefjI?~mbS*#02Qn$Hf_f66W*L)sljS0=xsrId=&EjqTcfZez z8CxG1F7WMO{ya+1$z&mFj*s8Z$5_!TCm1ihv-`aUOtf28JE3QbZ@x1G+9*#uox|24 z0;}(qXHkv(CpB4V-k^h2+<)$1Y26?9ty(q=3ZOm}M}wYpIF=5cscJpvdAWQYFgI*hD=3h zZ+FVJ@jpNKWS9I|XWI~94NltSQ2Hj!Y&8?isi*HkU(C6ttf(JBNnr{pI+ZHa@&R|Doj~{B+JgZyc6IT)#&LAeI z?0+FN3BB5~Oz`~IILMOe(X!z&Fu_AC6W2psiwvJzyB&G#yRh*h?v*!~uwf@wMn)Be zQp_|-xtQ>VtM6s{uPc#>YP=E5KnKgg?IfBHTtW#6#x?A$H}uw zD#~w`>1YIijQs`L@BAPnBChz#R)B>gap`eCf8A}NlSZNM1WGZ>M0#{~e?4wTtI=2G z{mD-M0NloR4qeW(PTWz~#)T)QZ|*($&xw`{`z^ecOUy^MM>zvQwY)6lZ(+4TFn zU4UxDMY{EcNmO9<@xjIhy{3BlyqzvaYCvQx=}^0UsXb>9XMa{i zfr$9z<710;cw`jA50xN+YRhnd2nGxn{I7BTx&xhk{vJe69v_WATPAQp?@;dFVJJ)g z;nsK8PJJ1hlW^TlL9rJ=KCogf*LnZ`c*$PiWslmSlyPEsEY=HQk&} zjE#N;7#9p5321!!z60yf9(X@2+Ur=~dlP2uZw&R`%r5%o7aL^)5v}enRTUF|^sfiY zu^%Lxo!9T`osO|`;775vm`Q`scr2P3aQw?$}NA52}qp@Z1-yVpOwhed?i8btjA&Q!&gEivHdBTV8 z;NB~&*LtU`Z9Ov1a&(G)bS`tD(8e~0AtNJ%@bP18Y1_r^?`0LDE?bk5ep&O24tyEo zl-`hj8~CKfH~c|+w_R<}Ej+&ZCo`_U{0yj8h*x%us(Rd)|Ga91D2 zOt1E1lYaVkJWz@_*B@tBP%N2-cX!^^LJz)5&_$gW}{=^g-*GCJJf+1IKzP)lW=kyH~{E z?B|R*mq4=37(47wAJ8ptVRn(!PK&6ZBWvkitWCa-YQxFy2RxWV{zR0Z3Fed;S7ri&Y+3ifwml#3odF1##T;P%kQV2jmddV|o>FhC$2MAgV) znp;TTYWkPcgtcjzZUI3&O~=_Jk54Z{5kJB%c6Pkr9nXMVl%yNsvF^)WzMd52DV69H zreow3w}E>lNUicLN)}Box{}hY2Ddn7Ig&>rMj<_c^e^>r-m{{F!ru?bKVSbEPhU0A z`Eu9n&K5^aPvk#t_Zh{CVdO&tE;?TDOB(uacES69hcXW4~4vySsGP&sOufi?xaTvfXnweAx7A$AVpU z-kWIgp$=~YC1b2dB{8nYB1ToHvzw6t--(?!f>#&4MzXG9^Z^`dJT=rh%+887uMBG` z$`PbPT{cgC@GII}bhnPA!&Z&=6a{iY{b_oE+?7btNG{4pA2qhiBt1B&jh(t?xK8AOD6b&u@49qJ;2D7m#XLLR|lSY7Adn9 z6x1J|kEYXp)Mm-LVFXaRtRe%x zz(XN3x5)A}f9qGf5iGR4mifhI)>{Xz<_76{O8I{8cnYf&cSuspCx|4n(pPp%dSmY{ zw%k-&i*wQ(r9T%RPdP@A@Z^xNDTcSNKB(#0c-WapNU0-O<}{=&1xng=*C`S$bg5fU zsfmh6yuFl7w?4IgwyBbtjIf@Jw78y_i%gY+%T;1NJAzA!4S+m&TL)6LsC{mguLr(W z=(n~j&Z}fc_QIFA^#!=b@$fJ*pa1MX%?^soWWSEMk0s--anlT^#nh{?0w)Ob0qnR} zm^oBKeHWV+(VU_+se!^lMgga3_(&6OT=4>78BaN4-RT4b|dID_ZDL@i>8K;*}vL@Pvp@)Zr`gLOyeTUAfI zD&^fQd~u|`=Eu~%7~)dlNWbpU8V+-4zHdWEX+h04sKxIRhiU34=aTyv`R)rA9dqxE z7n{;}9{F$jg1xzk{@%E=PSC4PG%FGRz%L4Ya}WN$Y-b+T#la7vztiDF=JeiK21R{Q8IaM7=h7@Y#J1cf%e-SD5u-a0oSxc96+&P zXDMIVxVK-s@Ul>B8rSc^b9bzR`}gvN`t8&lT95R8X(MX~x8djX1qeuG`m-<_+HTJh zUsW69yH;GKIzwhHZ9UyRwMnjgOfW+6=-7(3(`yGqqeB2MxsBPoSm|wkPr%JZ$QQ1p zvbF-IwF&+S22At>+UCJpg|T}aZV3f%Leyh_C`S$@*r1#2N;F=-O-$SaVl5mOGQmRz z5fzbFbZk{SjpmGfdF;KsJ>-&)I@#BO&b*%aX{S$aWhH%_LGR`v9c@wV&fKmXM^p=%XuB|_@}Hf{nYH%eq&w6|5-{KPe=nj&7;_K zF{MmW2oOPK#`}F%XxJE5^iKUG`lL_rV@u6)ppp;4R}FAs8;8fUXrb$`rL|1DS;t- zfMIn~vBjxboBcDG@f!vITIUDRSN(X=l)r&I9iK&zo_ZkuFMVIbe<@ht`m)> zsaj|D-dNN17+GV%p>CQt?$BmtUkPFU45@mWdAHO}26B>ELc-_xDS!+^&kGLE!R6ey!0b^k(nlKu>(vXG|6{@-`*ZV6k$-!?*UYY~}tV zg$fwEWi$WFup{DaNq%qjjy{Jsyaz*3{jcuf8`U#5@c!} z3N`FzCW7on9%i>7YL0TEUZb-YsE;DrzZ&^9TA01+ut}P}%+*Wsh`^SU+Q+bIGuhf* z5GB2M6QPHnG0SCnsz4z)q`*fSrbHKO?ZVT6DcuSX_yb{V?xW}t#f6wQ9rKLm~t=efkRP|2M%Zg z(FA?E>_(Lbh`-wSSS%&hJRkg;f+RgQ;?ODJ_EIfbGdUstQN(-Xv@y{z$izZLqKRIr zC+-o{PzI}ybUwqLbUQf4)rOYc8tqX*k0nhggjAw1 z(XhqCc0GZmY2HOT$@jwLj*?@|WY&g_C~p6v8G0KDt|<9w+~fr~y-voBqI3dcC+Bty z(^KJ-!x-_t<2$kiAR^b!9)mPk_M$0a<-;V!Wxv$1@tsh^Ehu)qIXyq{h2EPknCCVw zpVcd1lS%Y{1w$UZ;gQG@&JS%%iR<&qxTtG7D2^o@?|Rso(dXHiQ0Nj#ixj49HkNb{ zWL+7#@BDUa;C?DTm1K;k33v(co`0C8YL+uPrwy`G2i zLhpfY%5aZIuA3H@xHEH9++U^J=5+8I+L z$}^4Y6JC~9r9ZtTJ@2#gg0OW#)P*f zs+rN8E?i8?y(iM;F5glY7G6!vTTUy@yLU(9!dY9azxAnBZ@n(*x3pM$S5DYgwz2PM zd;X%VrN8?r@OkXCf5RWw_*`Ib^krbv_~82Bdh6{Aw>J%aJ#+gE*!V?bIh6gdxpfX8 zaYq2?5;_p89oin#z~eQ<#PaGziHWV}DX}rUhW^0TwQ`WyA58=$n)q#X^DTyaC*o_( zdK-poU>}48kK#r}cH@B`p4C4IjlbkSNdsER#{8vlqrmCkhawsty}5zT z*q?U8=@pRc|8O-{Ufn`z_7~rBeq&dHC%3MixEiKdoTdYa+gI_)O*j*8`^X?1#|QjtYqYGRl~g9B7(qq(4tswGRD&V7G3c=^GrtNa;*K=m!8a|(_Z0m3XVGwcU3qUtFn0Y^~G5dRE&bjQK|C~8;mWhS6>qpTuW3FQckV99wL0ezd2L#w^{%9 zJ*Ul{4EI1vSXeNd<>fse+v6PR=Lg*_p8@MX#48qVhJUmn0r&;N@BF~WJ+Z7(@T-0aH@D|SvtqOy4bllj(z>5PavT%tdm;h#K3+Zt^v&JwW^? z&0(kY2H_`DULL2ty*fO-+rhS_<@cAJ&geHD;gi{l+D84R%l#w<2ZM>`12o04@Y}8Z zFVu>aT$94`QqzBT(|=6i@n3@w zauL|b(N)G+Tkb9Fg~x=UvFs4oWWjV*bKj&X-NhaoOidTWgz5wvPnUyz_DacML{bJI z+*MEX$C2Yhef$zbxzXBaLR^UNVFnC^iHA5%0mAl-?ubN5OC&oLgH4I$SZ|Epq!3dH z!i*D@AmXcx<@g#Rk#Ge6!mk8-VGziL zKAYJ+CkBc^ve5A$K9J!PfQR`9T=hSh-CwHGcN!Dj4{$`9grwL+TTBBuV$Cu8v*RK! z@u~a$gUCTX0XQU)SI!GWheNy*{e773kQ4qKkui`SU5G%)!*DbKa+A&9wtNXgda)ev z5~?vi%1>S98JixI*r<+0F$W-^%9d3cN=)2$+6D88cLJc=u6GTqE&Pzt+;{+8m%FUeaUP@kG?5(@lb+*Q4&c{wMCtO__ZG?rbK1?Te<@p zpN&Q<>6#ORN2(&2tjI7bJJNlr7#__O0L{iW+o}>&3#SX1tP^U(8FF-h7nc}%(x!H$ zG!j8h)P`_a`cQIWR1`ir%f`Gq^e`8KX31;A;|)lB1T>I}3JV825SpqXWe`+ofd2=0 z;N#|#{Vz~686{El3>)OI!(0}YDzMtj`A zP98@0B22^s1(-dR;U@wzdx-_~UqKKZrU*N^+l(wA96*|Sd{CGv&+9P-)L$t=@W&J= z77L-HFi=Q27Dx>751Wk-O@f!j5KLn#-g2WY;9#Dg#KgrN;nI2d8Z$RhQqINJ@K%ku zn(~|9L<*H4=uyE^3Nc(7MMs25&~IKPnYmchS-9hqO%7FWde#yB@ocJG~xs92Md zpawxNodyO52MmVQr>u2wo*h$D`io#%e<{6|m7o(~9G$wa$`f(q zoCIRLtWdBmdcG@jE53F4R+VgBd5B2?3ooz1FgO76|3lQd84S76Xc%~QJFLLIC9bhf z0gTdKm)_mO-A&!Jp_2)EhiN7fOiy9;>C?pNDUcs?687-$P)?q#vudut2&Sf#RtY8e zcp&hlbyNSW2E(nJYS|0xB?EYb$1O;M@r%u%+QVjeG#@l3B+^jem*oI*%V}Gb7K*{d zRQdy-5FeZ;gOm3$?^ic8bY>yc51HMp%WfK2?N8Hu_6(k5N--j3=B)xdq3?(J55Bg- zZGuACAW6uP`E%i)^?*dP>Os6%<>@n6u32tCDOIPgt{$G2Wd&TE~ zgYg7OjUnU`@C1b#OCqbVf(25S3PaMvu^kTk$zkbp12`sszn^H<^>1&~H{!Uik#@8R zFnTmg9oXgO))mM*@LJ|?#TNsiD=Rjer2+oD`Ce%6oyPKQPv*7(*xMg0Dda#-!+~V7 zmJbF#Jt&DLtQU4{M>VYaqc0(GX4_-aHZI(sO0AA!aOOe#0*hHXf&Oo1$pppCSx~!v%)O zBcoSlMF^r0VQ@q2nw2>RC&8mU5{mWUbZynnp($c)quvXzb zXo8s&Pz9g;oC8ezq{c>Yg?;-@0M(CoxqgqaosCRcqnw*NWcprm?HPaBcftT`v3hUj?ZlC<(>ik_sN;$1*>pr8Hd}xURy8F zU`d9rhSg%jOfS;T#dS&kLd?~0Vrhl&h%=64K-=0 zN>^&EFTa3-elzrS8XWO+j1{iID6&^US{!jq$k)M05nc?|p3HQ?uf3 z@S2r(m{pJ6t^Ox40X88%oei0ew*!8LXz_FnsPV4gMsR|e_|J{-Pm}P6?Ie;!GAWjN zkCXywXhVSJ-y%N$3t_B9LM&NgmXsx1ij`UFLk^*)@ZW&(EBLUIRjg)>t-U)9xd45; zm8V_sw|R|2+t%MQDF3KB|KbC~x9}|qe!X86ft*q`t_o07gmDLi`q1jLv{pYY&k$%R zt|(>d`#G=%#2i<^&9YKEf5`GH`3c8Ab}~Kf1}+%;iLIK57}w&oX7gF80jsY@g%aFu zB1-*Daif6bh~z4Gsq{bx;D`#0L)yI0eA2tIG8%`p->^ZUky7{u5gE&np-Q#$9R zgTyqDx?;>k!9@T_k|seo>l7&|?j8|K6G1omMkrq!_Lx=|CtYP@loC5msC&A{Ub{y) zeaNwDCVAYEPT+UbhlV5yx*c)TMSbsgZxwOekgbt$3lZFaD5oeNL-qvt)^y5E7Z4^! zM7GO?!r@eCjcj+uWyD+QbQ5|4&u=cdHdHm2wN(nz+W4|M4h?hT1BmXLJMxS}gP8h4 zD2+8&e~Jj=$lv5a(YHs8pxgbr5lUUF>R>>=wreHOImBP0B)w?;mjX;g!qe5aNH|Kp z;a-@pQ|XLpR@2ZViKMuo+q@g$J<=uWb1`-`w_cOJ8k?Oy^(#|kLsW=$G8|gV;sB^- z=#rZda|L$zTzbS20$(yBoYgPe=5+0e!&wnq1i2KQVN1@cE*+copL2|xs8CPpm0cTJ zGOc_s*iIdZ9FuC`3qDlOxgSir2ejIz*HyUt`b;qGitQ(+)DtM{?l7%M0vz@!k^szg z2WKV~*u4+t%s*h)oatDAIWe{lVCN*1csKw|=De{V56t}}p-1gGIFN!K?GxpKT-2xF z4?V@9NFbU5+#F2sIU$K`x8so!*52!O%+2 zjU)g8^U-XH^Ki7e?DA{?c8;}YLSu}}KGiIiARBQo zY3@v`8X7IRzo30go-y!8-*96fyss^YM;%PHj1~&fY%CO>u5s^35!Bj!dUdh^HJEMb zX(_<{Pg2lSYS#jP+4RYZwU5DredNt)Rly5@OkQi^w2LO728~;ybAPezdSWVdZgSP> z(tzAXA!kLOjo?=BO*a4Z%fvUK-ifM}qF5%2Pto!%CbStr`}2ArmjP*gcxxn~u| zMQu2(5xJcoW%UM0)4f}#I-(aj<98dn%f*$`3ENFw0eMlknXEI>Ge$a8-Snb0rz>}p z%f?&TFUS&bRUC!f2N*#c>;^vYNJ;Wm5in6dHtV0rqd>{Z+w=Bnz}yD7sp?&w-u}J7 zlbyfIPpc}VMBp!-a6NG@I%_>OH*|^EH9M48Y7{cJdmfAHI9?j0)a^EsJ!~5aneTOZ znRMSCe3f={9l05Z&Ryen^GDe`sF`keo$B4a$W3G2-cQI^P8V-C_X^0Hx=pgq8R;4D zKu4GM45(Uj`oeCqZXH~0^PKBCT6di*u1(c=Y-9~Y|x z@%y(HO1W@U0l zOvm4Hb&BUZ-hQ1TQN1fE*pco~0T~Pxh-4EiFo7^vzE!hI63g9Yg~{*eU7B4Dgo~!t z38!C;iHykYvEuK@T>(zH$C< zl?lv$5j#*EYfaaI@G$c~{)Pr)#>sL1mDuF_j&H1PV=hgY|HY<{InFI(XFf9DjsYET ze=E$0Q|Q7aUGDEmbDZxS{OM|4hr%w^6YIE99X)!EA36*sSmFb}Pmy zP%&l>v)+CQ^K>5J0e7Lz{JF`59#+O5;cFdU!Nx^41JrtqZ|YNJvn1&vA%Q7#&ZL5W zf<*`MjOiF`wu6*_LgPD8naAz$o~H0i_>eyw{_OZCnesznpP;qLh$X>~J^ntv^_z-{;fmabe@f zYK+A0O?GrY@sPkDM{(U|voj&KCA@~wnL4}mEY-8DMV4R{GMygEJX!{}^_iKmZS%Yn zvF@m*it!@T=`1N1n$)1)U1wa}s3Q%!I4?T67vLT)F9Sg532XCRI~_Z|ZETDLt`RbD zhqefR=O}rB`R5C<=9@LzbmpVfHO6q=HN9dySntx^sH6du0r^e6(+kT+m58K!vPUB_ zRr_w!VF`=VtiFlZt;&j$syKG8LFtI+Z1dZkFA=wX#W&(M9%|qnbi+-MTlW+^*cny! zLw~uOfcuDB8%ZArH)o@ObAwYoVbeY(Ri(@JTP}6df2fOj^%H?zBz9#A+51H7V}fe` z6|;4$Te@7=D6g%|dmC`y6o}cX)~)-Tw<4@t^LsYoj>n#Q=^3ScRcen|H&n(h5A<)g zexB=ES#$Hsd;6)bY3LNwDc|=gpXj`%H9TIIyECQzIYPP!b}~?bSI_&wa3FQK1h=#S zIV6Bd_a(coCVQ?!p_c&}SWUo6P3v!fcSQU7^6wJ&yHk(h)Mh~^0A!}XdBEPldcdK; zv%stS0p+x)=yxucw*h=$S1})1e|*NO^gSNCwY90U34m8ud}a`+0lYAIp+IKQ>FF8W ze>_oR0JyOLu?W#ja}mY~a}mMVi?O7A5rvf#i>Ne-IVX}l7b#(KTd0i9If0NQtFh)- zWRoVHMYhp#xuZ!;?(`i#*x61|{6t%e&rhT<0Zdtl!MA>)8)kHQHcu}}5RYCNCPXMc zSFSlw7=b8jMdJ$+Cu;M>*u~BgOYDRPZFq2@b{2wd_^y{52b1H3_>N!9DcrZ2UBWyC z?`H_yqcD&HZP7aa@)`fYv;FeDd5N){8bE>+SA3m9Fj z#A%_tmKJ%OT2DOmDD{h!bheoBWlEfuT)M=`WGG}R`1&QcOgA$j&fBBSQ_s>fm;Pl; zvhx|@N~&YtqAXZm!^Fu--lbV*nvG8FI)nzjmWh&W_D**4SCnNOv(G69-&_j~0}BV= zpRGo0g)k8!BNZMQrD#zqqoTDkdi_?}Y1---t+7k27;!PNuyI<;B`#j;;*0JtU4+FX zz!!hnfmE*8BqVD6zt-TiL4F3cQ9@EO@-|74>Zl}%l1q^)O?vecL~ zkwR{s(#woMyXyOeO`NvNJKPUn(PY^#J5#FEsN>T35`9j) z+<*FERkh62Yxpr!v001O@7r&?LB|dK`iY;)L;l9;&&8-Q<0eeTKsrWG6&ALo z9Qp7yx2vYjm^EkKLR2@X*x|Eflr(6R+oId%!e0Y`6bg6Ppjt4i9()Lpiq%a6^>-lR-T+zbm;7QPju_i z>$w+RdgZk@7hqxkklyd+K`w3{UaB6w`WiK699^;H#Jct9_0p?;88B$ba73nQ7W_Z} z!i1t3mgDhL;>kRYAs z{Z_HqC5P#KLtk&-kHhhBc?+kcq+!;>Ma1zJ3s@qMRNMtgr6FkNMQ+JD%R^a&o4!q7 zOUHVA?(8PE%U2exeI~UI8Sd!_WfUG-RWk8Fl9M$&8JA4bwy+;Vbj70{C;dbcD+DBy z&V-V)f@yTzBy9spWEEJ78gKc7WRk87%+Z|<=~7wB3#>MLjqI;0&JS>TGungcSvUjV zQzV1k_+UsW95@w$ggt2MXP? zmIA=c=@U&)TGSKBJF zK0M&8taw^kS*?8Qw8k%fGC-R>2&@)&59d=`fjsMLpt79Kj@#OD#p9l!EuECaDj~Y5JX+>ax*_*E_4M z(PPsF@%(vnMJGJst<$F`L?_{U`QqxDeML*$6(fm``+0v}?l`h-@|3j6Mz`Dr7AR~301Bi{ zHpW0_$s4dYfFh^ZppRzRY|M_+^D`qnv!|4vu?QYdL+ofINLEts6qe@0 zWi-Cs5C$kcsU+$Hc{?h#t#z6l>l_KzY;`1?Tz}P6&3_iN!=g3R%xLzwekI*i^RJULhXUdW+d&)UJ_jOfRzy}D|1Nh^{2YS=+XE-?eSqwr$(C?LE6^ZQHhOTlf3r-uuVXCeyS{noMUhok_=C zUW^$C80bIfhX5h|HvmIO{3jFszqw~-O0AawdtRkqQ1r*AL1O*e= z#S>VF4jTav1k46P3YvfkMhG5?4p|8H2NK8U(cQv&ELdyVwgWEk%&MyP_&0d9-gaZU zhP~PZwrv}LW9W_BckpTU`yV1DMMq?~WH#j>fC|(RG~tOTtJO{SBda_OBqt68MD$x5 zieG)j6LDPo5O70Lc<;NC9`xwkA5*ZHOHZ5yNdK_oTB){EX~Ijs?2o8P7EVA3v*fJM zph%6acbAYQLOJCGN_ThQ5^<=&o`|4g&>uM-3ei{P<_;i&!^+b#cnD|^UbuEP=G&Fo zq~|853o}GTEZj(dqb(z=qm~au=-srCQ`>&-y&lF@QU7>L?4JEJRr}`J8QiceyQ@2` z$!8{2p06aAjHn!@n??ZUgAiY1zqgs?6Uvr;q$hpnFhV`{THim|b-lWFN24qVaITfN zPKfIru}H?bwqXfOR)6y^&ik9)^J@?|icke3BA(3WmS!I}znpKpc?jYu_>ktAhA7aD zNZ3xQWNWlCcMEAX)0|c7Ca&EXl0=((b?(pK*KXI>KNYg=WTpFAh%!x-Mx_anx%hH# zKElIYf08}dG#VRXQGCOl6LXw(4sLQd6h}j0U6~P3ip?9F8;nq_t!b>$-|4>2-UD0S zZ*O?4Qu~Q(O&cZ9V-vrI`Yae>U@y_9iSOH3n4ANB38!{^KHHT%OptnSTeiPW*n2C* zcBBYRm?ecrP!g2_K-SlIOJoRzBvarAgJulq>Nb-XKaagmAIn2ZgGr@RhE_}I**kGR zy>?quRrhok|KMWGqrCPGX=9q%YdQ`@$;s#U>EnNisU~Cuoax+dW-sneS%Ns?m>3Y& zZ|ftY6PkfW*&G>eCgiBIJQ4%E8GmT}$NDLI?LJ9BB*NBGtK+<*LA4-siA8-&}vIGPtYUeJFE?s@r z2X&wz{_dzWe#hry8c?kdP$Rixb>LcI!xO3BY(Vy(^QURhN?2mhFpdWj4k1Zs zkpxMFKej+-{1!KyhJ6cj{isL8k#KeBX6F@y)w~A!~tZLHD+j+RbBheg0EfNfb8Au z7_d&F*_Lq!tR$(D;x6j@?FuHFS+(Apx`>4I`@K;F? zB{Wg2hy*iN7{kc45E}k-EBpNlb_NR1H;?*6XY0mY>Oz}~Yz`1r=I*V#Rj zMIng@)soi4D@|GtL?TZGe+7GX>S@co-TBq^23_6)j#yI31VWUENz`C*Zo~JOzG6rP zqZ%t2f`dgievS9MqL?jyriAy9JH!zKQg!|5FaI2{L)wX$IPH)i2tjf(?$2jztFkQO zl>)S^Fs&q^EJ2hfaS%yCOsoVDCGowTRD&Va!?3=WLRHVo^y7}Pg=c$2fBYwT+1O1! zD_|^H>W}5Td(bO9{Vg0pJPrz!C!j>q+`r)q@;N2CX3B2R+7;@%7XpPW0FVN@9|KJ) z#v#-wTTBeU0+vV^ypjZ`7FhmKYdsW^`LK}mF) zR<`2R^<&lDLrL=Ax8qG>XI&?$W6;Uxc`DwYSrLmEKP%=# z%H@&P?W+!}Z|4jy%XM2)lc(bl#E;PHRiPhXV-w~P)ftlTcWKv!ev>j@gQc4Vs$H%e zI2#GwKFvoP-efq1k8U}2hlSGfCwM56sQ{cvp4wSQz(&Obh@5z?SU8wIqypkmjiWE` zYO-HrWmgd78YI$CGjTL?Gi#dt}ufqf_?L#)9glFuvqMUSEsDMJEv-r+;S$q3lv509I| zmF2QbgxN=f8Bb7nAm|ZMt#0elFpl*a`yK{;r6H;Zrf-o7H+%c9w@g3-M zW3FdxeK&K_yc5j>yR0?9I0Hges9J~hwPG3yWZ0+xeA8WFfwb4MW~f4?6(qx(V+Lec zrMdKK&O@;b`*MD9LdAPDgJn%gmqszAICTKv$7_?zV>T3XU;*v>@Vv?dVvh!!#f^j!A>I~Hn?LW_#mp#sA89mz1((`y; zoPK9PKk3m>?Z;kz$UOZs68wGolUD}ajZm*Lr#~FDBp93Vb>C{19QtTd^eGJOV|@Nv zGPw9_7;!O2{kO!xyRAALpLy=R3<2<2kJW@%&Un7OE>@>2lFe1?-qLx4%x3{5iR}1*WonJ&?4tgt_%iAQDP`8XZ6SN)A?p}d}_9;itnH?YIQ3BWY zaH-CuBf7!V(!5;sJH`|RZa6Q@MbLOMYDPEulZpd4o(JC4SBss*h-COGHwMAh*2-t_vME8sQGMJ21h-B2~#nf2u*x_qJ*I72%!re*-# zgo9WM2GM0oDs1+UR;z?nP}25of4*Sk0B$2+-LMqFx60JEZ|%e2*Y^%abh0~pIJ1dv zbNli7GJx~4yWmT{{!daau4QsdP`KHF%IZVz#- zJZ#%aOMvgFBmW2+^|j=HzV71UgO9)&P0ekzcAS4~(D>h`B37=wh&<8K!uoj@+n8i^ zAX%Yhw-vgNMC19V3o!YGq#^_@KXy`#{{c9;`o}Ff#$-;mOra<1QR)}An|X&5+j1z7&BXGV+v^h@+6H$h6F@%hayRO2P)DzC)QAYW+g`&#->L_d5n?d$RCuIR&si=IPsn|tDF3?lbDi)uE&tMJ2Y5MzoSb(z7R8eR#ZL zr1@&)cPpg5D`k5tWbrHIdA2e}*-7SjB-!ZiNrkms+JtTMJ{%RW=)&o|u?oSHGyw#h z45+-b7m6Bz#pfM=O!rh5HEbG6^U&HQJk3KzD{h`E*=<1b#=Cp&ppAG=K1t-HY{v(s zQTaDDi>M-yhi_+SD7_nkj8V_2M6p@@o(W=pQG?VUCNwLf(LA+wghT1n7Brc#WTH7n zibp0;giUL$DjAa_$E2j$Z|C1VT^Nwc;RcE4fNSmO;O?SlT{>EIKa&}-L!D(-s6 zZtSeLH8JddAv%+qdkl5DnkO_`@Ahiy3$SYKZ|s$}K)h{0s87{!BK>@%fTX_C?(!&y zC<7(b%Td+B{8o8;S;opn%(;e!yDS%P9Rnj+@c`oJ$N&yOocCj!Sgb%;7_+S1|2l{NF7i=xzL&AXnl&Gc6#bPwR4 z>8Ua( z_K^DXt4Nw_UEDVvucWFI)))R;Hi4mZ>cgs!x*GbnjzRW~ekQ63XtyALtzKvdDlt#q zr6Gb0s2^t}S)aVA&&AeB$y(h8$AZeI7TEkCKCWX-(O#X=$UtDpscSQ+$Cj&>3NaVd znov>ftXD89XzG29#*T|wC&H`$sjmALx%8N-P7_mi-^iF$mzC5aE0m^YG2gwY1u#5W zjh1#IdX!sF_>BhW8M)tUYV6A5QToke@s?g&AtvwRT`r@qy1(Uc5nS(+%Tm9>g;cha zBJ9_BDWkGDINi?j`3Jy-!<)#>I~(sQii#tc*~C)~RU4RD3S68*q%m8+e%Ch~3V-Zf zzO#M7^AnEMhRa2lrOvw}fpKD^h(7nm2BGK@( z-G)zE6AO^v-mJu{Yb$?Ch^xGS84&DGvr8?9<^#G2;|}st5@WADRLkB`@MmO>Ra+~R zXKdy)R)LG$NC6%ElqlBoM5HttzR+91urivr5^=4RC=L=~D`C@+p1<`?+Qi>)2k*MGXK??6N#N)^N2pFiB*N{GsR zUjM4ZgVoKQE1KoDYNROliktf4fG5WXKeR)H6*e!edjCGZjI8WYbhNm4W*#>6DIb^L zkX4G$#?n7fs*7diyCV32Ta%|sqQfESBP}~AMqF0?jIP#?EX0vF!^rrR+b_51m$brk zV@N_VTp%aU_7hOPim`4+#EbXeW67*gS&?))CDG6HlE2n0Ote>tBogaKUZ1(_!^znn z=KO&2V)8nIOR9>d#yevm2SZ>^5rz@a6x5DZILzM#qrvCr#qfT6T8(|78F`&gP=7@d z9Lu-{y*M0uUjFG!b)0Z5YM+VV+l+dNs4@`P%vi0@#pe6!`2CW1?uXkg~z zoBI9rp#7APZw^6`We4+jLm#6L#d$gIG1t+3aGG>-zUj|Saa-H+KmKH=FL$*OIx0H! zRC1?}fq3VDTnhdxxL`7y(;ybu{SZgsJTo4O!2PM|;`gbsb%=?>S+{2MDlQ&lzvf+48_4{53ExQf$D+ujR zQW1uJwpj|~c*RFH=s+%ToXs7%R%OB_>cIIuq6UoXhlA{*sk zqe#BaW^B4qn;1fq4YE^KiD=NHW^uitnB$_<29BUe=N)}h{dXP0Q3z2OrO3S33-E~9y3Lj+Ka%J+0Ac6BG zO8&!3roF-L2l(<|IpSO=>}4$T1l*ZIu3KWwbe$kwH?&1o_WErXX>y`z$Y_Qs%%-<=m z7P^=9P3r7>R}{0SEa9aGzJ29O7mydPO|i-=xj>rwdvvv*shqgYx-hZ;S#pq?@tk?A!{FlIM{Pl|wP@6F(tpyTZq&ESrkAMjPB`RgZBU)T(c=IQRyr z9@ayMi~vXjg0Tatpe4e>B^=jnh-oyJ@#IJ%dvQK*cO=SQ>&n&kG~n(xq$!gZuS&eY zjTC+s6^?Tj2fKrtTB|FAaF?7C@#wjG+y4Z*#rBAyu|Pdkl$(M__TvE*B_Nh0J4Yzb zh-^Zo;%V&AifK;?P!F>Pa>O03p`IBOW?Qu;f9f3fv*x%0ZqjR6GMf#thVngi7E-2GlT7rx<$6v?=6u51sAD=={AgmgmdZ%tFY}T+ZSDx z(?Bx%&{&&P*D|*TN-cs>foQ#7s`A?@EDiCQjT)`Jcr4XYh4{!=nDSQ+AK$qb@htc{ zE2>LbVZvL3?%JMKj@-cDEg8{xxZjPtz|dfS4+$|b1WFV=j2KrnL;^6iS0{PT>_$r9 zct9pWnn0=R6O@mYn9@9}CC;qdZ6_FF9l;;BuV;;w88IjReIHpH(^xt9$ zv5}Sd|3cjR$sPyC^Sxh1>({*9gsb*`OyB-g{Lq>`vJ$P-lqwONZZ4GwBpb9DNIIH$ z)E#XN@kmI7$8{7}mc^F&HM~swA9Ylh_Y_ zWTiFq&Nz!=a#7_$wBoyGu4rI6DtS))OlALKW6Y1A7A~&FSd);YA;)r-Ef7{&MZypf z(}-|VMD)J8hmnvI|J3a^lG~fbb?+f(gZwIjo!MW3=QQdD%;$@zPmT>WV$7@;xvCQY zaOZR9&7+v_F07vXzVb@=dP^lezR6>H27s`IunOocgl%+u9>8FvsCSkCO(FpUS%%#% zMqEEZV6eHb44a>=FTuW&1id-OuN9V-6InxKG``0SlAkbg!W6UtR*Wd2M~?!(rmwwF zRX>z_ImfFhnpRG)+&!a%%G>h7aInthk+mB?tkmC(q*z{71y5UDQJ=g$} zz!}Mz(DYu$aK^A9g*1Us;ElgdRzQGDs|o0Uk-Wd&Ko(ULD~>=L{i=gm%S1qcR;y|} zplb#*8la6_F(#l5(aas7CNuqK7zoy|fx7oUT`0O<+N)U8 zZ>;yNJ429*4)q55nCXBZ0vXPPR4o2$$nOGznBH(_HSN_=IhV%64FfS!7B~Hp-Yte9 zwXzAd?y^_-q9)ex`)xw~_s0dbAA_Ll?PLmMU;PHOv>|b7+hals>jPbFF}WDIfjK2h zllF0>aOB0YABfQ!XMrXPK;7R~e8XKmn0<$u1fknwzaV03wkU8kr zsf1+MU})(KyD;Hm{=+bd)-Khn?qeGXnb%SQ-HMoprA1|;?cHqn9qf3&EQDAquYRxQ zn-LY89@(qi`IPgPE<9{*EeixO{$~8qK)7T~VP&)t?C>qN=wg%1DfZxD@}#U7EEn{p zU3j{#P2s+SLch*=_A`9%d)kq%nLW$__;3ofev@YP^7ZD;4_#bdH z@-{60Mkr8(0sX1&eVDIr(c6U=ay`h8GJ{V6D1NxKfjX^ZZW;W_E83>`3IHBrqqNr1 zO^giQ zG%N(qunW4#JebJ%dw|h}T}$2>%7-VCSm#TTIs?=)90qP_{jQodEz_iktQhq%pS5pk z6bca~$nOfGDRycR^I}=B?3WR9bi_#(8%TC5@^v<)m*uIYN!BEQt#{hKy5U(mDNn;M z{*`h(i(;B@xPZETzMLW_TN=9P?A)RPN)s93frwsc%io0FBO~ga_+)6(Kr?1pX~BJ0 zh#K}r|1=CWbVz5CYYTnYx_wy6{D?7Y5Nb*^63(17NgO<6N(Kl#hG!bvuE0LzRJMW# z*p)=vfqBf%5~Y$mH}nQ8FR=b9eD}^O^4MwA|Ef0oCv)@7{Z0ODaCb5WKEd~uOWyAt z!#6hF|Li^QvWHd`L82`Ci>E+lGNv&pxg-s&QP4XM+wB!F*CNF?~la z4dQ|)syMVK>t9LSzZ620+W|3#;zxtx%vSH+Z@Jda)aI9-&Rje5<7s;roNWE39@TWc z!wdD!iDS%!uX*WJyk<}951i9FE}P<}^B1Ws%Qm-RJ=P*%Rdq_?-dPsF`J6{-Ubo8FiuFX9h(>!> zHEATNBoNTl)Krf1%<&1q@qK|OKC#X2_@sQ2ND?U!keQj;4CkqnavYgt66ycq#Q!b+ zr~AM9D+-MM4?oGI|KApHOtZ;oR1qlk*@d6JXz1LWi|5=?y^6vb4jc{^*aM-crvn*C zBxu*0;QjYza#6UnmZcO`(abA=DYINOC`04F@IXLm1Xk=%HMEyzw*UHzR8OdcIt*=y zny3sNOb0X2i8Y~E85MO*fE2+B1%adGx`YU+C6yZ&|j^lrU=5)C*d=l`GSyS}`Q z_z+FY)||@GPKP5Rpo>xEEmmI_RSMm=m5YZ*E2b+MV9k8>OTxN^su-Aqwk8}7Vl@hQ zb%%nkb!GJEdJIT=b)1r)KT)*oyH3rOlOj~?7P~m)-X+0Tpl*{c$xClMT|kg9Z5O-H zGKsW=8){@#5|5{nRErq2E@{aj?x2mxwGK%;a^Yl`nraZSLOwmw9zIhAm?-U-FO<_} z&TN@GzUhm89dMttp^W4JZekkAbDcLrlw%ydBZYunr5wXhy>sVRPd~F`v|8PA69dfh zzKt|e|0I4zYMePu8|JT9O#@`9kI!al|M2k^h(SF76`TQQ1Vl+ms1Z@&r6Q_RRhB3U zam75bC_=B-Cv~7oW+Bk{+9ZY)k)EfcOIA=Rg0RPnDf0>R}3 zstT5&JB^7MnzNOFls@fnZU4%hf?qC|?*<48zi{srD3XL-M~gTsA>!g3PagBwuQTE| zE2{%2Qg5x8@BRtsNm0rl9}iqN=>s$DE|oFT?y%MVz33e}YLgIz&&i2k$fcx&-5c{L zyEmd?r#nP6V|wkW3;D%+i>j9d176%sy{{*vkSfnX|d)s%M29ckOcO^{u4 zW{jFhBof~V<&Mg{q15p*R-4te0dq9c5l0bvPopx zw~CV}O zW4e6jrfui+O5>4brKu#~HSk|Z=Sgt^elw#3UBo4$@wqKd?!yKM1{I6`XsNv>B+Vv= zwN=8#fig<2HAn+%i>#fBtWqPydhtf_RY!8~SOVDOTR#+r7!E9a+McQ`eHeLNV=Dh{ zZS7&-JpImBAGqLPp>gC08jUg=RVFdn1;A?FEFO69h1+1uGMTaH100XJ~O=L<-|0A?3*^viP|Ti}T!L3AqiPhX^csRRH36#vFUFAOS)f``+g zfEdvN5Sl9gx!1PoSd3iMH?;)O~s!dHwpeH_mi+Nhh=X(PzHE zLQ3lWmh3>xv9V2DC0a|70wR*hC~3{x(#rg{wMO|hO-@-rG=&t8>oI{f`40}TRpHvR zTl7xRi6qXjNW#Y!`KL%Wo&WdrDZ^pft>22-QkC^|f4sJK+V01{U*_TsRur{PtzA6+ zfdJD0U*0`1uL6Fcxo+WM=MwGy60bj0f+hqXgc`@Jb;59-x>KfUc&shW4kVKxt_1=Ck)16KIdDiCjxrju|4Z56szUPy3P3Kw&VgJhn`1l z2p+#){cp*#rwkEn(ScymHW`6DKu`898PfvH=;mgDG#P;i;p*3+x(e|y&Por&*fh^? z;#$%KHM?y*dGh-2LiKM3c!4n5H&nM`GbZG^u@0!5mt&!KOK`Jp;LjnGXwUtUm(ZLA z?_j6$V1l}{tk}Rqh~-I#9XVX%RZ~zFgjTkk7eXxvML7htnNonXxR%C_-nN{{hEK>W z&G0JHJi=`NG%}TbMTv|jB13NbZ zkyIrb`SnWT&mY(M7rfmi(0n43|e-% zHF`8wXQa1`&ZCEf$Tn$qYfVTywAOxfm3dS`D^}{uLpWnu+mpRA6{zbnz8^8WXMQYh ztp&??^y*f070_HL$(1fF_eA52QT{KO<*)oXjx-xNn=1{f5yl1SZI21T^f#B}VjaR2XbjApqdPbIa z8)hWq+3xR9IGysOG*;_~!lVr3WS!(p>uj;xRG^xywFgz1Os?5Z@yxh6(k&DjJECRu z=4KxfhLu=J3(hIXQ_{rK&ZBP@r9GWdt$G%&X-Y9ckYQDwMtGMgLzJNnv?u+Noaa)$ zOG`3qI=nJ*{#yyzYDAjl3u%yFGE7lMM~N>Q=tCL8=(Ky|n`@IDfAf(5a`z<7t&6Z0 z_;hXe2?)qkc@q#!LY>g-s1yi+8bYC*2Xor$+2kn7sPY zy2(wF24RdR1_;@?3HbtB<@selTbjhiC6V87ahb{G3b4U&P zgv4sty(Qq=Hdo#*jv2dw|8gUhx3thIs{zUO%+f05>E`cif^=q2;W?USSdK)pr!X3M z>LduKP}T-u;Hmf9Dn&+h7ZnIyLnjYO!&s#KGf!$*mz1p|#}u0`<~IHNA?P^M!6&cU zn|sRokeV21q!;3d4=cL`QL2%cb$4ZIyiB2}iwtZ7QHi}Z*_?>Xb5x$sqGS|!-hAZA zcdaPRIeavtl!gLM9nC~PudnrpgzLJL%R|J|eW7eRO9L3LC}4udU<~HW0LM_e+*#iN z3!O-$Se8N5EV3QyCh&75uDlu*D`nX~=$f*%HnJA6pha*QkW?d#4x@{;6?1K^T#aht z*%sop1#ynWOe}ywH-fJjvl6CMFxv4l$HGz492cKfZZfm^y|-Km{tjWu-9U`aO3CL3 zqVL++_SI!Yq2Sw)AH2I+&R{+YJk;+j0%dTLwXOpFgQy9#zGk*LRyDVfOjRYyD_Y`Pyp=F9l60Sw9( zu;-}=XBUe5yn1~bd6H;QNROLPbV5v{z?R9=`g{IMFe*?EnBfU7?Abb0<=vHKTR>~C ziYIs|PzV<)4@iHd&Ai*f9AW5GtLB9{u{p%yjDi{lNhd0hRbGr~`S}T^@SyTs9&JbPt zafO3#nCE2sUP^-8lBB<=7|OBi=GaZUh@KF)V_k9QGWT(pA20<8@qC9!fO|JDM$Qlf zTTaXtF+)27TUK1Ql!R$Yk(82A#zbc_AGQHDF=2yHY|G{imEB$lntMMm&N2M8nnAMb z>jqm>VahM=`x?}rz?RjoLpplbgjgTQ9Q%(LZK6lv+gI!6t-;HSdo=qF+!&7s+1g=H zKwMz0btmR}r%sJDm&3m6bu6pvL=0W&EpJVjVWtd?h|388v4lSTdvC@16w2Z?>6Uz| zoQ_hCdD@yDt7HPjsX_5aACRhjk%iYAi^le&!PX6wp$wcCmU7NpoKhm9O}7EnDFf=& z&Q3Q{B+*!d620fX7f8nPOxIwvy0g2QCZ%(v^#Kj?@zSG5B99T>yZwE3BfhQa*z33P z7k>~z`gTA5(|M^AVIs}n655b$(9`{`y*gtzI|(?@Ch+2?&oYLqz*u*HCb~0Ri<|9-;wMDu z=>!GL{0nb&*zEp05tOx|pC(aX7Zel2Y@gb{s+h6lxD3-ySd2=2Y_CBDl(h=9i2c8h zR|7c;{H0(Bw>YZ7VA3mFnodAW@Env^S6ylRJF(stzZ$kON<~p8$KLW`p!oAEv&S>{ zf>+$*4jB-El}~D0#GlN*-eZ_6ozt;-XU_FzGMWN}T(>^M*Fxb+&|hwq`m>XkrHK|q z&C(yyNkX!JBB>jg$P%y8M3KZKZJ#Nu>TN*w{{C}n?<3b(z%B2Q(1Uh%C_(QAI>{5@T(A0Y*l>!bdPCZ-d%QPx!W`XI=Ey?AwhxB8d)4 zcWd?UI6Gjw&rahH{rBGIZ2b;mi(_XP-mbN(DCYc}bN`xA+`%0&-RuI_NTAIFk=IGj zu%(@6Q|+m_$kNFJ>++Nc|LOK|r03}g-UNyV>9bcz_#D9qQJxfnGCfVHHBBq0A1C7B zMfI$(HhEo3#;J&@lEo7Nk;_U1)t%5_ktReL9$=`FOeO zUt(u>=6d8?>iNUv$apna9*p|5MxF~^aL72J3Lby5@$jB@k-q%hI9cwV;5<26#-e97 z7bu>*Y@6RGj;Ze#!_+OOJLN5aNhO`lI9tCKu=kH?{YB$Fh4_21AM`wbmIhXYq~!I&MpCCLtmdUMnfr*hfj_+-40OiTlfyg z*!bV==1`?Hg+!QoCfRh=2hWdHoIlZdLvn+xE>^zmMc=tgU$FH(ytl?Z2R%9&JHJ(( z!)>!Q@1ECo_n^()`= zBE_JAT%{Xk9$?oZ(q+U|8I{)Y;w_xc>A|9$D1 z!;Ev3Kq%}KECPZGs&Uef9ymddzkNF*%?Ax8DPP}+t8TiOv4587KXEv?2XB2Rc=j#{ z4Agf>Q>6;Q^{RlY9h?NNCSGr-r%l}V%o}Iva#4Bqm^7VhNptnLkcUJEmx`@y7|uPP znd=)Hd(H3TU6z5*9#gd`s}oDCp_X#WGbedc*f7Fy=`H#t4iTXa#rMdPk+y{gnqRZP zxbsn`tA|(uu|JF}WYqC==j^d2Aiat34fy7VHkWvjcH9RMwxM z5VwwowWBsiL8o_YY?&SMm&rcM1L&iMxFLrAeiu)B8TThln`P#?1mlcqPd1EduNo{Z z`T2ajv?I&3Wz4*XUr=H95suonzUVydUN7W{(UG=y=({}P{?*EF{GEGTx<^)FJOk!F zP%h>I9pVRzud$;)eSg%qEN5Il#!a2M)kyo&2fI|$oQICLCt-Ha(eO)}1?=q^g zC)rF(EcI4pzFA^TZIr|&9d7(Hy7zQi$iqYO@(~WztSpYpXUS|wi9Fzx<$t^BVeQd! zCF0=j^7rPX5z75OzNH_8AXh!MV?`l?7Aqs1sGAMTK!lTealq?J+_|}t_+U%0B;k>Y zv!6T=Pg@ql-R@_FeqKHOU_TaP&Tz7F0GG`av`|UJbeK{5<1~38maUK9CHf7NJPpq)_*_voObYqCFyLD(Uq(NWu6hOc=71 zDh7UMW(Eqk&zsDKiveu=TJ*d$*@SnqqyPv6bn`ze97EU6G!bPO+9EYx_*;?uNM@(# zB!`fH%E=+Gl7X3SQs6M$6JIXeRba8Zn-Ugpfz1RbZq&vAGdapZouySnLM{?9$w(?V zdvVR9oAJ2H0ZqPR31X0Nre+W?r(#TNN^*S$Qc`^m^ax`%V(ORDfH*uw%kPDSd>4pi zgRaG0rvah;;b7K?flL`JG(|z>GNi0%NtulM+tV`r?dzf_niC-)K%%?zP1!x@&a+Ki z2RkWxx|Qy+ukNM;4z!?ve85v9nmS`>5?qOS$~2V9#0`|FbIVsxEJ|b^LbURBDvf^* zSMuxcwto~#ltLjc|6-%{sr~U5hTbK9SPJ%1W*+()jVa4|drrVk$x+{o4p)V}h0TI4 zf{Lw!ZI(q9Izil_teW2P`6N09+5Q4(kVrvT`84PUjR%)+)Y%P5p;Uf&oCzrsf=L5# zr`8FN8m_PW`~PIdVRU`!H!kn0i8(1L8e^^NA*?(TY0GkKm`qVrTjEfZPqz#ZIy*us;<13VJ_F42#2 z-J4vSPK&7D(enklHA(q;G1hgOQB?e86Vtp2O~WoF3T{ydFu6yt7|fkbUplYeS6vvZ8tUrw4k#Z0 zCgS&(8G6T;7>Ql-!fLv)`o)v=tq50%M=zW7(2a!S_ccCSzLg0(ZUo92{5x6}ij{Im zi?wH)#>+noTM4PW_p7GHZdid?I32n4{&3tch) z#{~_A_rAi5nMMT9xXnB|hdi2p5L#W%2H}Kia_3GHg*Sv~O&VWTZEXY#vB~ZZGl0X9 zj)Xy5DKrnc>#+OsfWG~kf`M)r=e@ZLLBiFYQq^IjQ&!bT!=nk%N2&J%LH>|4%3@(^ z{{h)STRvc`v~p03yX@pwL-W18PNu70ix5f1@R+Q@k zD3*Ly7GA<@&j>W#7k_)3+&9esv+#h-hrLW04hYc}_$vtiguPe3v!(J#ed7WL5>>w)C$@=13|@&6&}9vOgN^C$0{&06ytB7< zxVYqE#w=!^*LI()&dco`-@eQS?CY+y4QKM51?VRCAbx7Q{Lr_<1K8_f&y|eI23y%` zeozqOl&j55`!q^$jQuWTX107jiatqz;Mm(nW5M4#H6}l~82K7rgpms?aNldqo~UZd zA%A`!u;1b$N_u=n2m;QSPd!a29sIJcUj^(g)|mHC3Oz__v!>t1rZ^05Gs1fb!88UU z01Y7_jm`AsmN%W1tu{LP6xv*n*GC;-)#?IEwHJgnA#d4b7FO$>Jn+A_8t%-hr$LIM zhL9sC51aLC=BOnMv~ZZ0(=v}kM=OIh35kOybZ&WjtbOMOXksLBkz&UI| z($BC_;)Nhai#~TD00IwM7&OHE8^{~2WjeDo`D~geqL{CykQ6b|v24D*W+@6<8N%sRSD2fY%gnvo3>9%;U6wWXl(2rZcf4&g&g@vs9B0+DdLI{BU4I? zaG5VAJpp}PI-ZBmp`kYd6!4hk<*z~inE2iU44Q;p`J9q2BeHz`BGStvXpd1c7{*VR zeX1kfIUU%!0cI?AML>DLHQK+hE9KKiAQsuDL4R!!imQl8wc3{@B5xv;7IjXN6BrXy zSMh=k%k{LgU)dp<*}uns=`RJn3!mzxv1IOk=To!z^SR!#>it})Peisv)@K|$t>33y z=GlL3BXjBp=Q{rB^r1zVrPOx|ofLF;58jZ~cYp!eHlKQyxhPE$t)xVq1A9?0kl6^| zgoG8v0x3`*}K5F8#$!8;gn88_fFrx_rB{JD*d z6DHitQIY5APS?=D_mXSUiEl&Em;VqW;^_;>mIvVeY!vK2rxzt64vrict${)B)zfE8 zwH@|4YxVB;v0n5gX>x46s-L4tR9Z^|9uc0p&i=q`rK4ZNJRWdCidh=2D7+4^ymEv# z!}^>{n*Kil0U!S0f#_gjz<4OmK9&NJJ|=M3SR99b>Onh=DU3gN0P~@9T>ZT{Gu#T# z2IF$asCXvUo?pkp>3C*x7h{35ynQHvm=r4il^B*r^$%?;b2m(JjXeEpVL{0(AluL< zlil3(i`)D|Q>moxUqkK0BvjJya_L;bJ#f(muzTOQaTn-x-n{`bY`T12=>zHt%kueg zFjmlBDeI7Z#(WWo&Z^ia@WUotw$a)%>a>&@l;`sW`DLvWP|dKr)IOILn5`R^n7_NVt~d%4@H-}UtIP5Mzr;r;mpNKH7k959to+K+ z79$Bxm%c5&jVGx(R}{CT zZp?T-n_m!DjXQ3{ztHRLiT1{XFgK6a*F^rZ|M>rL%Ht-9XQp|OV<&i)=O?XWPe-)d zDjg{3GrH}&CpNSeva|3$HA$)d$}FD8a1hz8nJ@H}4KyKDPL{_c1_f4g`QIsRBhc zEq8V^gVD^6Vl+vJ9o57LMX?#pgMnc$*^%f|tmqsU-T24{rZZ)B(Hi}PK#%J4_WVb= z9PBj5aAL4L6@%>pD~(N$^Pp|@<1`3uoEo+l)xm)ew-MWJXJ;=kl)T{mc5w^GMtYaZj|JxisUZ0%Zh-lBEhNE&}c zK&lExqT~zFy?xOOayg^mVaXNf_Vq=D2u5F?*DAjxkz90$C@Hz@7?epa-P+#nm;GH^ z`1jqhhR_HnFER}7L#6L>Jr~ot>0cKYtquG$!04eQ`}~D$andMD*k%-a?Y1zSfJh2N zBn1Z}1W7>%f*}0XH6vcyo?&K^*n+ld-L-wzx%cnqTKDxa3LcgE&a3r47G0%xbkMJg zM1+J?NmSk%fbYd~FV3Y&yk&)1>W%hpG%m#;tjQSs4kOmJQRHYM2ed%3(GejKm2 zm&fP#@VLEkd~Qz2_!8QS|sm zlN+@CDTokqG~D2_y&WktvC}geRlGS3g~|-~x+yWZsv^5}1an+GNl@M*-i&H+l4!v8 z@$#a11AT4jOh(FVaY@SDOnPZ4px7nF#e^lJL=M(9HzX7)<>H8VZf1psAmTWH@nQXy z^}1dn7bL>j84Q;k;d%)I!&)!DxV(O<#GpYGLKoGylo?$90Pw`H;NXZzfF53xJjUQF zh3G+Lg=pcGa`3r{&qtRp!Jm8p=Asx2Pgg?(FI+6ccx)am7KeuRVqN$qh1ktWJilBd zIxr4wmbYd*1w1q~WcER@*mVu3iH6j^n8dPyOFS%G#EJDw3DN5t1)EAGi3bo#IU1y= zno%xj9NlZTbCeI6U&2Sxe0J{)aYF<%T&!+}#0m$35|X+Qj0_wmokiEz6B&tO$;3F} z;UM6P)LFQg{Yx6O=?@%veB2)sL+8U~x53 zv);r_P;ZRaZYU-I&8%a3qWoQ*!l5o9JGM?}qG<_L{t>JKBswh!8xf5*GUOOW#Zgkn zD*#p8hJltor=CU`-S4s%59pw2NBw}G0j(?`RA6?-0l9OR9}x!+2n`Lg?qv_Ude(pH zX0E%W_k^*_J2V>;EDMhaFRCSiJ^J3#%>o9px41cGwwuqRsZi7mef0UUiJgSVBC+Aw z925?hfksHlMTdqPTi~G-xId8s-#!TU!iBPcl-z1q))CSh-T`X$c`ZS-WVE|8od`Q) zSWid_LXzW4VRTwKoSc9_kOY~Adx&r-%>zwOZVBR62Vep`ya+*le#9UzcT8Y_!0jUx zdd0)z6cl<56d2M}sBobH=KR=!UG7-e_RKJY>tZYhmxV#(lIdY(HDs=*WMgV1roX%; z=3)n*GqQ6Z!onex5eN$nhrF0!WzNIa)*Bh$h+I_+`ij%kMkZNZe=-L z!Jc(NA3#*#HcQdA)$sjp!UG{v%I{zq#Zv?uT~~pWVmAj@jJlvOXPvIFrR3j3?SMA# zOCtGXHNM1WED+~`TY6lx1hmIq#d4)Kn2lS$9+$yZuZ>ByEMha0!Xh=*u@aMOSokIu zg+*wtVG8!)y?Fr?xF?^8^NoX10(^Mbp%+PYOhPjY_6cfPf+wtHCf4}%`0~*1wNY9f z7_L~U@%ZohGB8@QvgrRGmn~R)`Sr1YV_@fHV;9oKD=s#hA6R#2<_JpIP{PJG7rQMt z5p9~{loH^d?J+f8HLdF9WlXKOGI@2AJjpW6*lpzTh+CR*5=6EM#wVrG;^~Z~CCFzn zscu>7NM8bvc{ph2xX%nZ(`xl+j-?HN$9NucYdjZc7wC}Qy?e#xKwE4fUjyRr?ErP$ z;~o=_nGsJ!_T^aoOQWRLqH@&V(t`%dJms{0SQ$XwvsTIZ0lP@i+Tc##~ z#b@Bt+B!RJxo&V-tphMS)2g1H2B;<`z zE>IU|B&$(F&o4FydH2LWilq4ang@Kd&G&XsN)wBXGIEYPKH#GUQ)yb&N^^EYDvjM? zp;Cda3b*QUaWf7gDRR~ey>qvM%zLR3KFM+4a$rBzM~$e^-m9*$Tso+ddQQ|eHC=wj z+uWz7CZ}4|%S+zk+T=>NdzF>~<8-&l$CGZx=@5bJo|?p`rP1R9Bc13uI8c11a4D<^ zk{klA#1&7Ls=7BsT=EE4}iuxao>b|fOW zTLA%MAb^zp{fT3`Y2ovD`k(6$0_)#KL-Mdh5rH7|Tu7(_OAO^2apBY$AvGVkUcP!X z;OO=GV$-+hOu@+sP8{|}Wsy)3gmGA4GgVHn>DgUv@U~@fWae4Zw<^;p zn*WjhUJ|b6XdZP%hX@?+Cb09;uP&sGm;1u0C=QA%Hhnv33P$~*zgLOE32|TbEYG7* z6exU_S$HA&VJdG7+RL+V%-b7__VoJO-pBX5CIc2h_VtYjg~6$zdZdz9;Cdepi`W|P z^ZpOSrnZ1KpdZ6mlAE)umNwB#HdRp^k;~fR=RnlM^>JvOH{YHIlMkhy3ex7i9RqCc zVa>X`BO8Ycm*?hB(O*qfrhw)sngF?&q#@Cm*1($B&SX4igRQH5s(~UEw&r42a;)mz z|C@ASbQ3TsQY#fhvRusE2YIl3GMSqmT#%^)vvxvuS{HxQYq#!ej$lKln8}bR=~KZB z4vK!Kp~h3#C~in|FozhwYS54hggG+cy*b8#s-74H%jM z=1Q9a0{egfqawrs{Qx!yV=8dm)iD3j$nU+{ME_JUL(Dt+9pfKg6QjQlMo0WCx=Cp#y*xwlp6v3>S8 zcD&Tw;E`np4rG~5c!2D_CL^LYEpizMV{mrTT!2YaLuQiUXWS9Yl)_XPize3jIB?Bm z5o6lPP;5o))*^xr%B;kE;|Gu!%74hjJX@m2_%7CPWg{n{K8IpQZ;cK5Dbx+Am=9t| zX1z6rK`C1LCJqXX6$#en1X|jI?1MivIz)yClfh&|-9icQY}GKI6!6&7px?9sAl?T2 z5#@%#v*FH(;DZCW(0_*`7=OrlFg;w+jMdhGkOA1R+F7J#qf5v5ac|Ub(Ku?WE2)3 zFRWeq{b4{M`dW(Esg516p#wsR_Cc!AzRVddP+?SR@;H`Ry}a#?`Cu4nL3BLTjG!}r zSP!T|1Hv&qK_`_~L;tf3)AO{m;?bl(j;Z32dyZuH9EaU=#JT4XxaVM{_uL0BP;>zf zpN32y!$UN&$Cn!6?h~;1+F)L$?*gx5tcVDLDc+(X_gq<-LIqIy_wvj37hC43q>-1L zCL=GK*;to`vvyus=RQh6_aW_Z( zzM6Hl<2rb3=L2T`;M(GEU;?k_p=}a$lidzp;!8apcLtC(FPTLD0h!H@W_#1@et|t4 z;7BKnIDeGOLk2O3rkAd0Gg*V}d>0n&reW89*J0POI_-#`IDZ#RSDwFuTG)YyoiK+5 zEXC?WJ;WN|n=2fb#}kl~DV0;38#zXNRP%*s1p@f-T#O?woR86xQzW0h184i%Mz85nQL3G~zzP7AS z5x_0ZCbqdXcDc6N>(v1qHa#(W&o{my3=47&?p_pO?|C_tGbBR8RRQas7SFArOK46P?--%s&r;s zKi2z0cpXUjt@SQv{{N3df6{!Bj5^56dB zzu5AF*_MxF*v|kAP4;jA&Kv;1G$6hEs8qhZheYlBy_Olclm|}So_fK>&hNLWrx$7)b-s^EQb6}@+erk%2^%tBK-jtU{`>}XMQrUrn2I!ka2~W}$M$Q7SMcm$ z>4}T|+m;-CiZ?|kk4y1c5YIf+p-2&02uLcK=HHgM$%Oq5nHyt&`IH_bKS{IK|!;*!XF4DRp? z;$azF4Y&EUA<%TVyHRK{Bf7C^@&xWe3Qo{}v=XTtmrCcNWu&b`{M&m`5<*abD zYN=2K>`0d41cD}(Dv5#`UAz6Cb>-3v89CL_n+zLNTpHuiQp!T~{5;znm8h@TmphGPX-Gy0Ep&ttDHdkH_Jgf)ksxJByPF&*c)m$lhIj>ma&ACh1k* zg!y&=oJ67cP`d+eq*~Wz{HF)fVbm3mtEsLO5?OG{8db8jy~!eQ_T1iymTE1ONuTRL zJ@GZ=)wg1t@wJZDI}7-DskD_D*)`a@urVQZdCjoMmVDdK?91-B+Y9!S%whPU3~rMH zQohOF%I2Jx;tC67(;l-*prGm0z4UO|8#KqBxH*et{>=8`4IyYzD-4cA1MRzp7iY!V2$ag7#I4EGODiGC`?@>*8 z-7UTvF)%W=ZUv;b^#ZvRXA$Hq6Ult))sxru8xr`tz7_`n_~}cDuUbB$jL)s^p#I{& zzAFR7;qU*nIzC@W|Lv>*wlPA6ZwX=@2gc)0@~i%`!5WR%UjNS3=~o3mu4<8tuhTzE zp8aR-b?GO~OL$|Nbclm|_`?&~ad{1)bielcs!)H#d2}1{baj**xNKa#cWF;mEt?WjHP8);8&S~0-qhvfb2F;35NpXRbg)$@GHCpgWn zq|9rK#+pH?Kea@cc8Sex09BpEzX_68JYM}*VXu?kbm{e;us2Jty=c8f@?c$t%7j^H zha8|oB?zG#vckf26w*){4q01Wf+W*b(eI_0Uf9sUlVl$Z!#MQ8sMt$UGnDKW|GRV_ zOh-U$E8Qq6Ta2t$QK;eg{I7Em2A9H_Ye@a8oq7B$nNC+bvg@CfEPc@BE2gY;`}m}; zv+4@~1whQstCgwDhW(fyg>X5@ zkB=S_UY>?9dv~w&-`M`W@I5l>fkwL+z~Q_@$(<>p-i0aVExdH$o7Lk)o=43C?g1VK zxEY{f4hHxP@N~Tj)3g*Z2#b(W0G_uqj605RoFpo(1;guwgR#O7 z;OSMylLinnC}c<>9gs~Vdb-(_*K*N~L<+!FA;kumrhpAda;goejP8}w_6;P(>D+)x zqn*n$U-1S4t}N~z;+fbSBJjmM0h-z%A#d6Z5@S>G^j#mvGu{^**rrjv3JnIZs!(T) zD$z`uSPk3Rq#9jO_Q+0DBfl4pG0JFG+3@;0d8S5nstwS>y5-r&%V_1cYdtxfbtKyXuIb^eB z8*=aR zLz{ZBATSn!RQn(}Dd-(j$Ef3^B2H>$^2k?jL{)6g=G@Ud5K+|`bjOm=n`CT z&UvHrh1cIWA8FDYRfI^i1{fF}qd_sT8tful>{?j0@;Bf#1T5rQ6r2` zAW3prCYxf5i6)p-id1RR`&f1v<;X2lR(T0!H(!1^L|IHvOwv?#(|A0wD^TZFs0J!} zJr(=LGagOsO4M`Qb5FQ5%PO<0$b*t66|bM3&uE$}=R=}a^_n#Q6;rNNoAw{H-}%nJ zdCCpjXXMYG_-GyWkDLBbOgQDVGtMTBZX2DgWbvg+SE`(U-FX6OMT%>T#`QXx!?WPWmj^`-9A43nbxm<@S{EU^5sV)@1PStTVz=%?J49?qS-NfE+i_WPimXi zEKb;=t9N=ngLFe=QW}ZsY?5H-EPQN<>RiIz#jF1rrs%tecMR-BGCeWsV|26t!U)=C z5PKgaymP5Sj}nPT7ABWdov|I%_)22(2kom0CaQgo0$Cp-auPEVWVH zu}Ta7&=pwMSaPEL3{}B#qaZ6aL{XEd_~>P-FZ>7^&LiZ(L<%iD&oXf96_EB~NVTMX zOATQtqKKJgVlQb8*h{T$y0F4hL~$A(G4Wbpq#-qKY za9pxiy&9OnuV575J*mfpPY`StYapd8)_Mdy=I{%j)G-MGV2Qtbh>j)$EaR(g8G5OW zV7N(NEhd)b6=wmLI9HmdZ;@lu3Xn9a*cpL+RR!lxvrw``+MJcDl=*qGGC2hVWQcU7 z5)+xA%$5=L6?>B+Sc`@ln7FjM3sTNpJS8C7EspLn!rMID;nB=d?_$SzRYpX)h3V11 zCmp|>k;?(@6`VR1GdG8RtCrLYq9Q=iFpfsGk!2}4O| zSP8666dV`q7LNfOg1n2RIxJ8eM`IJ?9-pK!?EJ-Xv<4F+Of5!+g3O;2p3_s5z6RS% z_^))rCMA^aB_VS4TEqlLXc{7^MbHpQqYMpGG=`;d9E~z`Drh|4Rs|5cfgjr?ms@g&}V3Mhz zZB)zaoTpUdO#CDM_Ti^#RgR@Erh!_6&Qki_F^ARM;)YX<%g=Q=0Bx~6KmY&$ diff --git a/frontend/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 b/frontend/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 deleted file mode 100644 index a68fb101cd9224aa7bb6ca80356b5132c40c6f3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24356 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff b/frontend/dist/assets/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff new file mode 100644 index 0000000000000000000000000000000000000000..086ce0c6d733b0043e610529013c9338219073d9 GIT binary patch literal 6976 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 B}A02GV>0RR9100000000000000000000 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 K>~{T!JHrClhj(89 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff b/frontend/dist/assets/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff new file mode 100644 index 0000000000000000000000000000000000000000..bfb875b58cb58d8542c047de3a0bd5f6114769fd GIT binary patch literal 5664 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 aC7n`rsgcQ`15vKZJDqLd#eeDTG1(71L;7g| literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff b/frontend/dist/assets/jetbrains-mono-greek-500-normal-D7SFKleX.woff new file mode 100644 index 0000000000000000000000000000000000000000..98d1e5365665f6d16b157909f137ad3c13634b3a GIT binary patch literal 5720 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 b/frontend/dist/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ec8722e6f69679bd0b0edf182e8d411ca3a41c9a GIT binary patch literal 4284 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 SPVD^p?;o%K18)r%=>P!EI0OX% literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff b/frontend/dist/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff new file mode 100644 index 0000000000000000000000000000000000000000..4e8415add19feeb7a25606ae3cd8c0e30d1113f7 GIT binary patch literal 28208 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 t8xu|Qcxbvrnfn{dv9)K6N;4A_t=k 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 diff --git a/frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 b/frontend/dist/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9d97c9b797658435b1e504d4ffc250f8bbbd6c1e GIT binary patch literal 7336 zcmV;Z99QFaPew8T0RR91034_Q5C8xG08V@W031aC0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 b/frontend/dist/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5cc89b16d9d1c89831a9c3a2dd4d055a920ad3fe GIT binary patch literal 7528 zcmV-u9hc&FPew8T0RR9103B!m5C8xG08XF)038MZ0RR9100000000000000000000 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 ya*KwSMMnsRWQd}xG5}9bCnA^I6sii)a`DiG5J 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff b/frontend/dist/assets/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff new file mode 100644 index 0000000000000000000000000000000000000000..619ec080e8d2322c6342e7230ac62ba720105c0c GIT binary patch literal 5372 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 RX0;d|*I=T`!uzYv{{e*u_|X6W literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff b/frontend/dist/assets/jetbrains-mono-vietnamese-500-normal-DNRqzVM1.woff new file mode 100644 index 0000000000000000000000000000000000000000..672dd50be5e6bd05b7daa9903c2437bbf60f31f3 GIT binary patch literal 5476 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 diff --git a/frontend/dist/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2 b/frontend/dist/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2 deleted file mode 100644 index a1db41a0ac0cbe2edd0d0a0d07d90fb8fa366d14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13284 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 GLCRiVB40oN diff --git a/frontend/dist/assets/string-DoZi9Vij.js b/frontend/dist/assets/string-DoZi9Vij.js deleted file mode 100644 index 37fa019..0000000 --- a/frontend/dist/assets/string-DoZi9Vij.js +++ /dev/null @@ -1 +0,0 @@ -class P extends Map{constructor(t,n=U){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,i]of t)this.set(r,i)}get(t){return super.get(_(this,t))}has(t){return super.has(_(this,t))}set(t,n){return super.set(Q(this,t),n)}delete(t){return super.delete(T(this,t))}}function _({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Q({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function T({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function U(e){return e!==null&&typeof e=="object"?e.valueOf():e}function ge(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n=i)&&(n=i)}return n}function be(e,t){let n;if(t===void 0)for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function V(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function pe(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const j=Symbol("implicit");function W(){var e=new P,t=[],n=[],r=j;function i(f){let a=e.get(f);if(a===void 0){if(r!==j)return r;e.set(f,a=t.push(f)-1)}return n[a%n.length]}return i.domain=function(f){if(!arguments.length)return t.slice();t=[],e=new P;for(const a of f)e.has(a)||e.set(a,t.push(a)-1);return i},i.range=function(f){return arguments.length?(n=Array.from(f),i):n.slice()},i.unknown=function(f){return arguments.length?(r=f,i):r},i.copy=function(){return W(t,n).unknown(r)},V.apply(i,arguments),i}function q(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function D(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function m(){}var b=.7,$=1/b,g="\\s*([+-]?\\d+)\\s*",p="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",x="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",X=/^#([0-9a-f]{3,8})$/,Y=new RegExp(`^rgb\\(${g},${g},${g}\\)$`),Z=new RegExp(`^rgb\\(${x},${x},${x}\\)$`),ee=new RegExp(`^rgba\\(${g},${g},${g},${p}\\)$`),te=new RegExp(`^rgba\\(${x},${x},${x},${p}\\)$`),ne=new RegExp(`^hsl\\(${p},${x},${x}\\)$`),re=new RegExp(`^hsla\\(${p},${x},${x},${p}\\)$`),O={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};q(m,E,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:S,formatHex:S,formatHex8:ie,formatHsl:fe,formatRgb:C,toString:C});function S(){return this.rgb().formatHex()}function ie(){return this.rgb().formatHex8()}function fe(){return F(this).formatHsl()}function C(){return this.rgb().formatRgb()}function E(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=X.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?z(t):n===3?new o(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?w(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?w(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Y.exec(e))?new o(t[1],t[2],t[3],1):(t=Z.exec(e))?new o(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=ee.exec(e))?w(t[1],t[2],t[3],t[4]):(t=te.exec(e))?w(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=ne.exec(e))?G(t[1],t[2]/100,t[3]/100,1):(t=re.exec(e))?G(t[1],t[2]/100,t[3]/100,t[4]):O.hasOwnProperty(e)?z(O[e]):e==="transparent"?new o(NaN,NaN,NaN,0):null}function z(e){return new o(e>>16&255,e>>8&255,e&255,1)}function w(e,t,n,r){return r<=0&&(e=t=n=NaN),new o(e,t,n,r)}function ae(e){return e instanceof m||(e=E(e)),e?(e=e.rgb(),new o(e.r,e.g,e.b,e.opacity)):new o}function R(e,t,n,r){return arguments.length===1?ae(e):new o(e,t,n,r??1)}function o(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}q(o,R,D(m,{brighter(e){return e=e==null?$:Math.pow($,e),new o(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?b:Math.pow(b,e),new o(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new o(d(this.r),d(this.g),d(this.b),k(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:A,formatHex:A,formatHex8:se,formatRgb:B,toString:B}));function A(){return`#${h(this.r)}${h(this.g)}${h(this.b)}`}function se(){return`#${h(this.r)}${h(this.g)}${h(this.b)}${h((isNaN(this.opacity)?1:this.opacity)*255)}`}function B(){const e=k(this.opacity);return`${e===1?"rgb(":"rgba("}${d(this.r)}, ${d(this.g)}, ${d(this.b)}${e===1?")":`, ${e})`}`}function k(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function d(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function h(e){return e=d(e),(e<16?"0":"")+e.toString(16)}function G(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new u(e,t,n,r)}function F(e){if(e instanceof u)return new u(e.h,e.s,e.l,e.opacity);if(e instanceof m||(e=E(e)),!e)return new u;if(e instanceof u)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),f=Math.max(t,n,r),a=NaN,s=f-i,l=(f+i)/2;return s?(t===f?a=(n-r)/s+(n0&&l<1?0:a,new u(a,s,l,e.opacity)}function oe(e,t,n,r){return arguments.length===1?F(e):new u(e,t,n,r??1)}function u(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}q(u,oe,D(m,{brighter(e){return e=e==null?$:Math.pow($,e),new u(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?b:Math.pow(b,e),new u(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new o(v(e>=240?e-240:e+120,i,r),v(e,i,r),v(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new u(L(this.h),y(this.s),y(this.l),k(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=k(this.opacity);return`${e===1?"hsl(":"hsla("}${L(this.h)}, ${y(this.s)*100}%, ${y(this.l)*100}%${e===1?")":`, ${e})`}`}}));function L(e){return e=(e||0)%360,e<0?e+360:e}function y(e){return Math.max(0,Math.min(1,e||0))}function v(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const J=e=>()=>e;function le(e,t){return function(n){return e+n*t}}function ue(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function xe(e){return(e=+e)==1?K:function(t,n){return n-t?ue(t,n,e):J(isNaN(t)?n:t)}}function K(e,t){var n=t-e;return n?le(e,n):J(isNaN(e)?t:e)}const me=(function e(t){var n=xe(t);function r(i,f){var a=n((i=R(i)).r,(f=R(f)).r),s=n(i.g,f.g),l=n(i.b,f.b),N=K(i.opacity,f.opacity);return function(c){return i.r=a(c),i.g=s(c),i.b=l(c),i.opacity=N(c),i+""}}return r.gamma=e,r})(1);function ce(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var H=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,M=new RegExp(H.source,"g");function he(e){return function(){return e}}function de(e){return function(t){return e(t)+""}}function we(e,t){var n=H.lastIndex=M.lastIndex=0,r,i,f,a=-1,s=[],l=[];for(e=e+"",t=t+"";(r=H.exec(e))&&(i=M.exec(t));)(f=i.index)>n&&(f=t.slice(n,f),s[a]?s[a]+=f:s[++a]=f),(r=r[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:ce(r,i)})),n=M.lastIndex;return n - - - - - - - - Mission Control 2.0 - - - - -

sE;9CJ+NwkoOzbn&QC7kLc;Y02S~eUkct9t$Yc1 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 literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2 b/frontend/dist/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..400ed84269756e6ef11ea49b7a4287cf587ab97b GIT binary patch literal 14516 zcmV;lI7`QOPew8T0RR91064S&5dZ)H0E|cg060$o0RR9100000000000000000000 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 S`=4ulDfw1??O|gb0001+H48QX literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff b/frontend/dist/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff new file mode 100644 index 0000000000000000000000000000000000000000..afc23bc3fa9609b3516693c7625593cfb733bfae GIT binary patch literal 11972 zcmYki18^nX6Fz+7Y@BSk@y51o+qP}n_GV){+3?2P*tTsuH=BHUfB#RX&NE&8Om|P! zoHJ*-s@p?BTpR!f_!{&B0HptL4|?&i<|k<<-cI4RzDhSVrS$C z0DL3*iZ%HaqiOvXnt4>tIP zg%p`WaXTZ=ujf+Je)-{jfe7#hhG}nPXZFQOe(Bd=cJEYj;wp{~F0KFo4d+*^SO5U# zXIKs4q30UH0E99n03bFCvLjh<<{KH})G4xEZ*B|fjAo70IX%6BbA;TXsr4F9d&|VN zKjcfe)AAd%$@UtS(7(-axTEMfAVereC7(lZv5Jao>X+x<`?-0OsQ)4<@NPy_z?=<> zBNiJ=qC}oT+&Gftg+69HW(tMTkg2Vu&}dtt=RQjTgPq!sFs?*?$lBKP7W;`ef0(IH&{4%%P?#fC<+A~D_mv~99$L#AZ0RJ zzf&mZB^bvy379Ed$PyRGl~j-)V2k#X1#=rAd(w%>yUa_Z+!=PKg#ANOh-rw zPYdju?Duo@2ix!L@|%4s?#~Aoz7_Yv znmC)IA1J^`>MMii4$!QhoG*3f^%m`p*)#2JtIy1)+{PI}?7VGlS@)dY#T16T2L+mh z17sJMKjrGjK<>blXuS-cE*hcz@<2q#06hsNO5 z9pSni3HD}R^Uur`q^qTwIpyi49UnwypqKvWhul9Kg6-qmLvexuf7wo%PWetrUO8Ur z4TTM<4cl6^jl+Skfz^SEf!ilZAIAFHx(+&uZU!QooK-`0RGA50mXP13M}t<)CKHS- zfhT6|E6($SP3!1J`bM3JDt-|a)1;55!nrXvLQ9e5BB~_RzXc|zk96+2){&!HqBN`m zws@@w%t4Glo1%E#K#Ez|)nkMh-QW*M29VT{@LVWjEfvl_P%;mkg5C1(uwKYmJ%YE5 zsYXrA9HKW@c55jCmRn_i;?Ug`#GaHVNN>CS5#7FPd5_<9iffVbBh743L(}mqCD9z@ zkjm)YrWX^=`$n@}bv)6XjYfM3Z&55hTTR}x-TDN_Pfa?-F>msJ_da|U)!qV|6Olt} za*ltfLd`%o89CHT-1k@e-S%_XlCXLYG_t;34gbp4V)g`aX4S0BiK;yUTvu_?^?Qcr zZC5^T7k℞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 T_ITePga^2cACUiLqBs0s(px3I literal 0 HcmV?d00001 diff --git a/frontend/dist/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff b/frontend/dist/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff new file mode 100644 index 0000000000000000000000000000000000000000..0b76402d63e10f0d0de653eaf780d5b0b2eef9a8 GIT binary patch literal 11988 zcmYki18^qI`vv;O*d&`|W81c~v2Ev#v9WF2+}PaMwr$(CZ@%BX^{?C2r@EdqPe0vL zJu}@seO%;3MFAjy??g8bK=`lJrunx2$NXpg|C5-oh$sL6BK*yDf0q=f9;iuT@^VT5 z04O*B0GS2=!1cdaLaB)UGqqL11dS^;eV z02rL_SQFnd>ep`G+)RNE-yH1uw-5CH2Sn39ZYJN{Jph2+0RV74Kd1!xm>C0&006T3 zZy&b*fY|YG-t3$F=KiaT_YD#VPcSnxD@WJwZoqxF@dp3^D*#48@c*$f{Pv^x=0SSD zF(0#()nx^A{ce|v=eyo_e*gr4R}ffhpq24Ar~YkUeEWS;#)@3n+Bi4@0Mz2&u_6Hg zD59WB`~%ljxPCB23IIT4=FN(Dt&w+lkV7l~&st-PUwb%9sMg8JHLNZ8Hg&bzSkh}c zw)FvT%&mskfMurJkeKdGn$0bF*FHX60TS6PoP&8-RDGW;*DleZ>26@I?k}TEcRc8%hlx6Oo(n zHi2Q2`xW*(FFR@6JNwt_ySBT(8(x6%4Au!+du%~377(Y#J3IY;;2-Ot2FV$_gD}MF z1dU$HOA}7Em7!$9ylQgr(;YG>Z7Cad{d<=O4A~a}`)wPQm+m`~ zE{t}U&bBQ1a>ZP69O)d1%UcJnp}rg2+x8b!1~82D<4w%xB;3Ilsje5!7#%HW2POyy zCYDgkx@!Vgbd9(({$?mm=cR__E3l1NNvjo~OP{izj1kp!&yH=;6P3B%*{%t$e_i8T z(_IsrvzzBOao$!e!^XmXgw=&9UEDm1?`~sQC(x422I~J^F<4AP?I&U$k|rig%{X-bHiFDJt>uD!Fft$zqi>3Hi!@D$gnTar19-6{HBC}71-o(?NE)qVn zO=F)@w*{W5M>p_eGq@H@?F@{<(QH&72n=(y5)*C-EpUNSDi_!FU!GvGLML~u?p61= zw|aTd5Bm;rC(<7QFX`*TTRj9XaH^Xvv&8T2_S6q>3R7yRQ;bQUpf%LZ`)#vDYW=5zb)B0Wd+JRBjH#r3#{2SMVP>mU~ z+K_X0LWU62Mary#&jrkjrMTjZP#%@yI3kBDEL@Yt_#?9*t@D)qfkv_xZjTbTRU