From a5c6f5192e52a75f1480f4713917bb89fa80a90e Mon Sep 17 00:00:00 2001 From: conradolandia Date: Wed, 28 Aug 2024 04:07:34 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20spyder-i?= =?UTF-8?q?de/spyder-website@abd936b496a8b64493ec1f9131fdee13b1c4f43d=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _app/immutable/assets/0.BultMj2y.css | 1 + _app/immutable/assets/0.CE92UdaT.css | 1 - _app/immutable/assets/2.DA1N_58T.css | 1 - _app/immutable/assets/2.JhICGo_n.css | 1 + _app/immutable/assets/Button.C8SB3FfM.css | 1 + _app/immutable/assets/Button.CH7FK0tB.css | 1 - _app/immutable/assets/_layout.BGzYrw8D.css | 1 - _app/immutable/assets/_layout.wuVaXtH9.css | 1 + _app/immutable/assets/_page.De31MlVU.css | 1 - _app/immutable/assets/_page.SPhxHNlQ.css | 1 + _app/immutable/chunks/28.BXboE3l1.js | 445 ++++++++++++++++++ _app/immutable/chunks/28.D5QBwc6E.js | 445 ------------------ _app/immutable/chunks/Blog.Ok4J1JLa.js | 1 - _app/immutable/chunks/Blog.Sphi6VKa.js | 1 + _app/immutable/chunks/Button.Bc5NNSmk.js | 1 - _app/immutable/chunks/Button.Bg-1Yv3Z.js | 1 + ...ivider.DkyJmbrB.js => Divider.BQLjv_0p.js} | 2 +- ...{Loader.CgdetROw.js => Loader.lmq2X6M7.js} | 2 +- .../{entry.BmaD9OfL.js => entry.DlRyyYa4.js} | 2 +- _app/immutable/chunks/index.BMEkiqFO.js | 1 + _app/immutable/chunks/index.CNd5CZrX.js | 4 + _app/immutable/chunks/index.CXB4hq09.js | 1 - _app/immutable/chunks/index.Ch6n4Zkw.js | 1 - _app/immutable/chunks/index.DjvOVdNM.js | 4 - _app/immutable/chunks/paths.BCdhk5uV.js | 1 + _app/immutable/chunks/paths.CQpuyKeJ.js | 1 - _app/immutable/entry/app.Pj71VunT.js | 2 + _app/immutable/entry/app.u1YdZlIS.js | 2 - _app/immutable/entry/start.5cYTButu.js | 1 - _app/immutable/entry/start.BKJrtzwY.js | 1 + _app/immutable/nodes/0.CSmdKsAW.js | 5 + _app/immutable/nodes/0.kNY_3weG.js | 5 - .../nodes/{1.C0YpDV2r.js => 1.Bg0ugIg7.js} | 2 +- _app/immutable/nodes/10.BP4esORN.js | 1 - _app/immutable/nodes/10.CVIBc15s.js | 1 + _app/immutable/nodes/11.1Q5Bw8DN.js | 1 + _app/immutable/nodes/11.BgEq8n9f.js | 1 - _app/immutable/nodes/12.CrK6FaVq.js | 1 - _app/immutable/nodes/12.DkNM-cyR.js | 1 + _app/immutable/nodes/13.0bWQumfu.js | 1 - _app/immutable/nodes/13.FBAjejiw.js | 1 + _app/immutable/nodes/14.C21SKQFf.js | 1 - _app/immutable/nodes/14.I8ScdxfY.js | 1 + _app/immutable/nodes/15.Cli1CEbw.js | 1 + _app/immutable/nodes/15.DBviWFJq.js | 1 - _app/immutable/nodes/16.-j9j-41P.js | 1 - _app/immutable/nodes/16.HnMTK0Qz.js | 1 + _app/immutable/nodes/17.BHEWaUws.js | 1 - _app/immutable/nodes/17.CjhexHgP.js | 1 + _app/immutable/nodes/18.3TE2CvJq.js | 1 + _app/immutable/nodes/18.W1MqEQCq.js | 1 - _app/immutable/nodes/19.Cu7n3Bx_.js | 1 + _app/immutable/nodes/19.D1WqYe5_.js | 1 - _app/immutable/nodes/2.BMF7pCz9.js | 29 -- _app/immutable/nodes/2.C9Bf-2g4.js | 26 + _app/immutable/nodes/20.Bc_msup8.js | 1 + _app/immutable/nodes/20.CDwgYxgm.js | 1 - _app/immutable/nodes/21.CYWNATs-.js | 1 - _app/immutable/nodes/21.DecIwDkG.js | 1 + _app/immutable/nodes/22.BVqEWefF.js | 1 + _app/immutable/nodes/22.DuKzqYrJ.js | 1 - _app/immutable/nodes/23.BdXNThUZ.js | 1 - _app/immutable/nodes/23.BiIHyvVm.js | 1 + _app/immutable/nodes/24.DsGOjT-K.js | 1 - _app/immutable/nodes/24.DtLtXIr-.js | 1 + _app/immutable/nodes/25.CSNUowDE.js | 1 + _app/immutable/nodes/25.DPEas6BZ.js | 1 - _app/immutable/nodes/26.Cv4DYfmK.js | 1 - _app/immutable/nodes/26.CxVeZHYL.js | 1 + _app/immutable/nodes/27.DXApBUaA.js | 1 + _app/immutable/nodes/27.F91EPrph.js | 1 - _app/immutable/nodes/28.BBIYXl3t.js | 1 + _app/immutable/nodes/28.XF0Vbiun.js | 1 - _app/immutable/nodes/29.DHAFXepX.js | 3 - _app/immutable/nodes/29.DVDykO3x.js | 5 + .../nodes/{3.CCMn4aAO.js => 3.CtwBHwWF.js} | 2 +- .../nodes/{4.C3AAa8uA.js => 4.DuQyjg-5.js} | 2 +- _app/immutable/nodes/5.BP5UJ69h.js | 1 - _app/immutable/nodes/5.D4ge11wY.js | 1 + .../nodes/{6.BR8RjYzT.js => 6.ZUhNexrD.js} | 2 +- _app/immutable/nodes/7.B2r3wU7E.js | 1 + _app/immutable/nodes/7.CogwfLtn.js | 1 - _app/immutable/nodes/8.BOy55Jow.js | 1 - _app/immutable/nodes/8.CKuYnlDs.js | 1 + _app/immutable/nodes/9.09u8HEQO.js | 1 - _app/immutable/nodes/9.FcUVz71X.js | 1 + _app/version.json | 2 +- about/index.html | 39 +- assets/media/banner.svg | 168 +------ assets/media/bg.svg | 28 +- assets/media/bg_more_dark.svg | 102 ++++ assets/media/code_analysis.webp | Bin 49340 -> 56852 bytes assets/media/conda.webp | Bin 213504 -> 110178 bytes assets/media/czi_dark.svg | 12 + ...uckerberg_Initiative.svg => czi_light.svg} | 0 assets/media/developer_tools.webp | Bin 39260 -> 90844 bytes assets/media/help.mp4 | Bin 0 -> 851062 bytes assets/media/numpy.webp | Bin 66332 -> 132184 bytes assets/media/pandas.webp | Bin 36918 -> 79964 bytes assets/media/projects.webp | Bin 37104 -> 64036 bytes assets/media/search.webp | Bin 31208 -> 33728 bytes assets/media/sympy.webp | Bin 63218 -> 59962 bytes assets/media/variable_explorer.mp4 | Bin 2436449 -> 738526 bytes assets/vendor/three.js/three.min.js | 6 + assets/vendor/vanta/vanta.dots.min.js | 1 + blog/1/index.html | 44 +- blog/2/index.html | 44 +- blog/3/index.html | 44 +- blog/STX-interview/index.html | 44 +- blog/cbi-installers/index.html | 48 +- blog/czi-grant/index.html | 42 +- blog/index.html | 44 +- blog/installer-improvements/index.html | 44 +- blog/introducing-unittest-plugin/index.html | 44 +- blog/introducing-watchlist-plugin/index.html | 42 +- blog/release-qtconsole-440/index.html | 44 +- blog/release-spyder-330/index.html | 60 +-- blog/release-spyder-4/index.html | 42 +- blog/release-spyder-4beta2/index.html | 52 +- .../index.html | 42 +- .../index.html | 42 +- blog/spyder-debugger/index.html | 64 +-- blog/spyder-files-improvements/index.html | 42 +- blog/spyder-kite-funding/index.html | 40 +- blog/spyder-roadmap-proposals-2022/index.html | 42 +- blog/spyder-status-2018-past/index.html | 52 +- blog/spyder-status-2018-present/index.html | 48 +- blog/spyder-terminal-030/index.html | 40 +- blog/spyder-variable-explorer/index.html | 44 +- .../index.html | 48 +- blog/tutorial-docs/index.html | 42 +- blog/webcast-quansight-ep1/index.html | 42 +- download/index.html | 40 +- index.html | 134 +++--- 134 files changed, 1405 insertions(+), 1409 deletions(-) create mode 100644 _app/immutable/assets/0.BultMj2y.css delete mode 100644 _app/immutable/assets/0.CE92UdaT.css delete mode 100644 _app/immutable/assets/2.DA1N_58T.css create mode 100644 _app/immutable/assets/2.JhICGo_n.css create mode 100644 _app/immutable/assets/Button.C8SB3FfM.css delete mode 100644 _app/immutable/assets/Button.CH7FK0tB.css delete mode 100644 _app/immutable/assets/_layout.BGzYrw8D.css create mode 100644 _app/immutable/assets/_layout.wuVaXtH9.css delete mode 100644 _app/immutable/assets/_page.De31MlVU.css create mode 100644 _app/immutable/assets/_page.SPhxHNlQ.css create mode 100644 _app/immutable/chunks/28.BXboE3l1.js delete mode 100644 _app/immutable/chunks/28.D5QBwc6E.js delete mode 100644 _app/immutable/chunks/Blog.Ok4J1JLa.js create mode 100644 _app/immutable/chunks/Blog.Sphi6VKa.js delete mode 100644 _app/immutable/chunks/Button.Bc5NNSmk.js create mode 100644 _app/immutable/chunks/Button.Bg-1Yv3Z.js rename _app/immutable/chunks/{Divider.DkyJmbrB.js => Divider.BQLjv_0p.js} (95%) rename _app/immutable/chunks/{Loader.CgdetROw.js => Loader.lmq2X6M7.js} (94%) rename _app/immutable/chunks/{entry.BmaD9OfL.js => entry.DlRyyYa4.js} (99%) create mode 100644 _app/immutable/chunks/index.BMEkiqFO.js create mode 100644 _app/immutable/chunks/index.CNd5CZrX.js delete mode 100644 _app/immutable/chunks/index.CXB4hq09.js delete mode 100644 _app/immutable/chunks/index.Ch6n4Zkw.js delete mode 100644 _app/immutable/chunks/index.DjvOVdNM.js create mode 100644 _app/immutable/chunks/paths.BCdhk5uV.js delete mode 100644 _app/immutable/chunks/paths.CQpuyKeJ.js create mode 100644 _app/immutable/entry/app.Pj71VunT.js delete mode 100644 _app/immutable/entry/app.u1YdZlIS.js delete mode 100644 _app/immutable/entry/start.5cYTButu.js create mode 100644 _app/immutable/entry/start.BKJrtzwY.js create mode 100644 _app/immutable/nodes/0.CSmdKsAW.js delete mode 100644 _app/immutable/nodes/0.kNY_3weG.js rename _app/immutable/nodes/{1.C0YpDV2r.js => 1.Bg0ugIg7.js} (87%) delete mode 100644 _app/immutable/nodes/10.BP4esORN.js create mode 100644 _app/immutable/nodes/10.CVIBc15s.js create mode 100644 _app/immutable/nodes/11.1Q5Bw8DN.js delete mode 100644 _app/immutable/nodes/11.BgEq8n9f.js delete mode 100644 _app/immutable/nodes/12.CrK6FaVq.js create mode 100644 _app/immutable/nodes/12.DkNM-cyR.js delete mode 100644 _app/immutable/nodes/13.0bWQumfu.js create mode 100644 _app/immutable/nodes/13.FBAjejiw.js delete mode 100644 _app/immutable/nodes/14.C21SKQFf.js create mode 100644 _app/immutable/nodes/14.I8ScdxfY.js create mode 100644 _app/immutable/nodes/15.Cli1CEbw.js delete mode 100644 _app/immutable/nodes/15.DBviWFJq.js delete mode 100644 _app/immutable/nodes/16.-j9j-41P.js create mode 100644 _app/immutable/nodes/16.HnMTK0Qz.js delete mode 100644 _app/immutable/nodes/17.BHEWaUws.js create mode 100644 _app/immutable/nodes/17.CjhexHgP.js create mode 100644 _app/immutable/nodes/18.3TE2CvJq.js delete mode 100644 _app/immutable/nodes/18.W1MqEQCq.js create mode 100644 _app/immutable/nodes/19.Cu7n3Bx_.js delete mode 100644 _app/immutable/nodes/19.D1WqYe5_.js delete mode 100644 _app/immutable/nodes/2.BMF7pCz9.js create mode 100644 _app/immutable/nodes/2.C9Bf-2g4.js create mode 100644 _app/immutable/nodes/20.Bc_msup8.js delete mode 100644 _app/immutable/nodes/20.CDwgYxgm.js delete mode 100644 _app/immutable/nodes/21.CYWNATs-.js create mode 100644 _app/immutable/nodes/21.DecIwDkG.js create mode 100644 _app/immutable/nodes/22.BVqEWefF.js delete mode 100644 _app/immutable/nodes/22.DuKzqYrJ.js delete mode 100644 _app/immutable/nodes/23.BdXNThUZ.js create mode 100644 _app/immutable/nodes/23.BiIHyvVm.js delete mode 100644 _app/immutable/nodes/24.DsGOjT-K.js create mode 100644 _app/immutable/nodes/24.DtLtXIr-.js create mode 100644 _app/immutable/nodes/25.CSNUowDE.js delete mode 100644 _app/immutable/nodes/25.DPEas6BZ.js delete mode 100644 _app/immutable/nodes/26.Cv4DYfmK.js create mode 100644 _app/immutable/nodes/26.CxVeZHYL.js create mode 100644 _app/immutable/nodes/27.DXApBUaA.js delete mode 100644 _app/immutable/nodes/27.F91EPrph.js create mode 100644 _app/immutable/nodes/28.BBIYXl3t.js delete mode 100644 _app/immutable/nodes/28.XF0Vbiun.js delete mode 100644 _app/immutable/nodes/29.DHAFXepX.js create mode 100644 _app/immutable/nodes/29.DVDykO3x.js rename _app/immutable/nodes/{3.CCMn4aAO.js => 3.CtwBHwWF.js} (87%) rename _app/immutable/nodes/{4.C3AAa8uA.js => 4.DuQyjg-5.js} (82%) delete mode 100644 _app/immutable/nodes/5.BP5UJ69h.js create mode 100644 _app/immutable/nodes/5.D4ge11wY.js rename _app/immutable/nodes/{6.BR8RjYzT.js => 6.ZUhNexrD.js} (84%) create mode 100644 _app/immutable/nodes/7.B2r3wU7E.js delete mode 100644 _app/immutable/nodes/7.CogwfLtn.js delete mode 100644 _app/immutable/nodes/8.BOy55Jow.js create mode 100644 _app/immutable/nodes/8.CKuYnlDs.js delete mode 100644 _app/immutable/nodes/9.09u8HEQO.js create mode 100644 _app/immutable/nodes/9.FcUVz71X.js create mode 100644 assets/media/bg_more_dark.svg create mode 100644 assets/media/czi_dark.svg rename assets/media/{Chan_Zuckerberg_Initiative.svg => czi_light.svg} (100%) create mode 100644 assets/media/help.mp4 create mode 100644 assets/vendor/three.js/three.min.js create mode 100644 assets/vendor/vanta/vanta.dots.min.js diff --git a/_app/immutable/assets/0.BultMj2y.css b/_app/immutable/assets/0.BultMj2y.css new file mode 100644 index 00000000..28d86782 --- /dev/null +++ b/_app/immutable/assets/0.BultMj2y.css @@ -0,0 +1 @@ +.menu-link.svelte-6klv6f{grid-template-rows:auto 1fr auto}.menu-link.svelte-6klv6f:before:not(.mobile),.menu-link.svelte-6klv6f:after:not(.mobile){content:""}@font-face{font-family:silka;font-style:normal;font-weight:900;src:url(../../../assets/fonts/silka/silka-black-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:900;src:url(../../../assets/fonts/silka/silka-blackitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:600;src:url(../../../assets/fonts/silka/silka-bold-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:600;src:url(../../../assets/fonts/silka/silka-bolditalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:400;src:url(../../../assets/fonts/silka/silka-regular-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:400;src:url(../../../assets/fonts/silka/silka-regularitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:300;src:url(../../../assets/fonts/silka/silka-light-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:300;src:url(../../../assets/fonts/silka/silka-lightitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:200;src:url(../../../assets/fonts/silka/silka-extralight-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:200;src:url(../../../assets/fonts/silka/silka-extralightitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:100;src:url(../../../assets/fonts/silka/silka-thin-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:100;src:url(../../../assets/fonts/silka/silka-thinitalic-webfont.ttf) format("truetype")}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:silka,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:start;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;border:1px solid;background-color:#00000003;border-color:#00000008;padding:1em;border-radius:.6em;display:flex;flex-direction:column;align-items:center}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)) img{box-shadow:#0000000a 0 .5em 2em,#00000014 0 0 0 1px;border-radius:.6em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;border-radius:.3125rem;padding-top:.2222222em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-inline-start:.4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;padding-inline-start:1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-inline-start:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-z-10{z-index:-10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.order-first{order:-9999}.col-span-10{grid-column:span 10 / span 10}.col-span-full{grid-column:1 / -1}.m-16{margin:4rem}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-16{margin-top:4rem;margin-bottom:4rem}.my-20{margin-top:5rem;margin-bottom:5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mb-16{margin-bottom:4rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-28{margin-top:7rem}.mt-3{margin-top:.75rem}.mt-32{margin-top:8rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.box-content{box-sizing:content-box}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-video{aspect-ratio:16 / 9}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-dvh{height:100dvh}.h-full{height:100%}.w-10{width:2.5rem}.w-12{width:3rem}.w-24{width:6rem}.w-52{width:13rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-48{max-width:12rem}.max-w-\[72ch\]{max-width:72ch}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-screen-lg{max-width:1024px}.max-w-screen-md{max-width:768px}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-24{gap:6rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-mine-shaft-200{--tw-border-opacity: 1;border-color:rgb(209 209 209 / var(--tw-border-opacity))}.border-mine-shaft-300{--tw-border-opacity: 1;border-color:rgb(176 176 176 / var(--tw-border-opacity))}.border-neutral-500{--tw-border-opacity: 1;border-color:rgb(115 115 115 / var(--tw-border-opacity))}.border-spring-wood-50{--tw-border-opacity: 1;border-color:rgb(247 247 242 / var(--tw-border-opacity))}.border-t-mine-shaft-300{--tw-border-opacity: 1;border-top-color:rgb(176 176 176 / var(--tw-border-opacity))}.bg-quill-gray-200{--tw-bg-opacity: 1;background-color:rgb(217 216 210 / var(--tw-bg-opacity))}.bg-spring-wood-50{--tw-bg-opacity: 1;background-color:rgb(247 247 242 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-mine-shaft-50{--tw-gradient-from: #f6f6f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(246 246 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-berry-900{--tw-gradient-from: #8c0000 var(--tw-gradient-from-position);--tw-gradient-to: rgb(140 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-spring-wood-50{--tw-gradient-from: #f7f7f2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(247 247 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-25\%{--tw-gradient-from-position: 25%}.to-mine-shaft-100{--tw-gradient-to: #e7e7e7 var(--tw-gradient-to-position)}.to-red-berry-950{--tw-gradient-to: #560000 var(--tw-gradient-to-position)}.to-spring-wood-100{--tw-gradient-to: #efefe5 var(--tw-gradient-to-position)}.fill-black{fill:#000}.fill-mine-shaft-950{fill:#303030}.fill-none{fill:none}.fill-red-berry-900{fill:#8c0000}.fill-spring-wood-50{fill:#f7f7f2}.stroke-mine-shaft-200{stroke:#d1d1d1}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-2{padding:.5rem}.p-4{padding:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-14{padding-bottom:3.5rem}.pb-2{padding-bottom:.5rem}.pt-2{padding-top:.5rem}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.95rem\]{font-size:.95rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-extralight{font-weight:200}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-mine-shaft-500{--tw-text-opacity: 1;color:rgb(109 109 109 / var(--tw-text-opacity))}.text-mine-shaft-600{--tw-text-opacity: 1;color:rgb(93 93 93 / var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.text-neutral-700{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity))}.text-red-berry-900{--tw-text-opacity: 1;color:rgb(140 0 0 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.no-underline{text-decoration-line:none}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-md{--tw-blur: blur(12px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}a:not(.menu-link):not(.icon-link):not(.button):not(.post-link):not(.card-link){--tw-text-opacity: 1;color:rgb(140 0 0 / var(--tw-text-opacity));text-decoration-line:underline;text-underline-offset:2px}a:not(.menu-link):not(.icon-link):not(.button):not(.post-link):not(.card-link):is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}a:not(.menu-link):not(.icon-link):not(.button):not(.post-link):not(.card-link):hover{--tw-text-opacity: 1;color:rgb(61 61 61 / var(--tw-text-opacity))}a:not(.menu-link):not(.icon-link):not(.button):not(.post-link):not(.card-link):hover:is(.dark *){--tw-text-opacity: 1;color:rgb(164 160 147 / var(--tw-text-opacity))}.figure{margin-left:auto;margin-right:auto;width:100%}@media screen and (max-width: 1279px){.figure img{width:100%}}.figure figcaption{margin-top:.75rem;font-size:.95rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity))}.figure figcaption:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.dark\:prose-invert:is(.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.dark\:prose-invert:is(.dark *) :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:#ffffff03}.before\:h-1:before{content:var(--tw-content);height:.25rem}.hover\:text-red-berry-950:hover{--tw-text-opacity: 1;color:rgb(86 0 0 / var(--tw-text-opacity))}.before\:hover\:bg-red-berry-900:hover:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(140 0 0 / var(--tw-bg-opacity))}.prose-headings\:font-light :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:300}.prose-headings\:font-medium :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:500}.prose-headings\:tracking-tight :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){letter-spacing:-.025em}.prose-headings\:text-gray-700 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.prose-headings\:text-neutral-700 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity))}.prose-h1\:text-xl :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.25rem;line-height:1.75rem}.prose-h2\:text-lg :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.125rem;line-height:1.75rem}.prose-h2\:text-xl :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.25rem;line-height:1.75rem}.prose-p\:text-base :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1rem;line-height:1.5rem}.prose-p\:font-light :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:300}.prose-p\:text-gray-700 :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.dark\:border-mine-shaft-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(93 93 93 / var(--tw-border-opacity))}.dark\:border-mine-shaft-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(69 69 69 / var(--tw-border-opacity))}.dark\:border-mine-shaft-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(61 61 61 / var(--tw-border-opacity))}.dark\:border-t-mine-shaft-600:is(.dark *){--tw-border-opacity: 1;border-top-color:rgb(93 93 93 / var(--tw-border-opacity))}.dark\:bg-mine-shaft-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(61 61 61 / var(--tw-bg-opacity))}.dark\:bg-mine-shaft-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(48 48 48 / var(--tw-bg-opacity))}.dark\:from-mine-shaft-950:is(.dark *){--tw-gradient-from: #303030 var(--tw-gradient-from-position);--tw-gradient-to: rgb(48 48 48 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-mine-shaft-900:is(.dark *){--tw-gradient-to: #3d3d3d var(--tw-gradient-to-position)}.dark\:fill-mine-shaft-950:is(.dark *){fill:#303030}.dark\:fill-white:is(.dark *){fill:#fff}.dark\:stroke-mine-shaft-700:is(.dark *){stroke:#4f4f4f}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:text-mine-shaft-200:is(.dark *){--tw-text-opacity: 1;color:rgb(209 209 209 / var(--tw-text-opacity))}.dark\:text-mine-shaft-300:is(.dark *){--tw-text-opacity: 1;color:rgb(176 176 176 / var(--tw-text-opacity))}.dark\:text-neutral-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.dark\:text-neutral-300:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.dark\:text-spring-wood-50:is(.dark *){--tw-text-opacity: 1;color:rgb(247 247 242 / var(--tw-text-opacity))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:hover\:text-neutral-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.prose-headings\:dark\:text-neutral-300:is(.dark *) :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.prose-p\:dark\:text-gray-300:is(.dark *) :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:max-w-md{max-width:28rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:gap-2{gap:.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 768px){.md\:my-32{margin-top:8rem;margin-bottom:8rem}.md\:mt-0{margin-top:0}.md\:mt-24{margin-top:6rem}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:h-32{height:8rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:gap-12{gap:3rem}.md\:gap-16{gap:4rem}.md\:bg-contain{background-size:contain}.md\:bg-center{background-position:center}.md\:bg-no-repeat{background-repeat:no-repeat}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:font-extralight{font-weight:200}}@media (min-width: 1024px){.lg\:col-span-4{grid-column:span 4 / span 4}.lg\:col-span-6{grid-column:span 6 / span 6}.lg\:-mt-8{margin-top:-2rem}.lg\:mb-24{margin-bottom:6rem}.lg\:h-8{height:2rem}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:justify-end{justify-content:flex-end}.lg\:gap-4{gap:1rem}.lg\:gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.lg\:text-base{font-size:1rem;line-height:1.5rem}.lg\:tracking-tight{letter-spacing:-.025em}}@media (min-width: 1280px){.xl\:mb-20{margin-bottom:5rem}.xl\:mt-32{margin-top:8rem}.xl\:aspect-square{aspect-ratio:1 / 1}.xl\:max-w-6xl{max-width:72rem}.xl\:gap-12{gap:3rem}.xl\:gap-32{gap:8rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-8{gap:2rem}.xl\:gap-x-32{-moz-column-gap:8rem;column-gap:8rem}.xl\:text-3xl{font-size:1.875rem;line-height:2.25rem}.xl\:text-6xl{font-size:3.75rem;line-height:1}.xl\:text-7xl{font-size:4.5rem;line-height:1}.xl\:text-xl{font-size:1.25rem;line-height:1.75rem}.xl\:tracking-tight{letter-spacing:-.025em}}@media (min-width: 1536px){.\32xl\:max-w-screen-xl{max-width:1280px}}.layout.svelte-wsl9xs{grid-template-rows:auto 1fr auto} diff --git a/_app/immutable/assets/0.CE92UdaT.css b/_app/immutable/assets/0.CE92UdaT.css deleted file mode 100644 index 40333fa7..00000000 --- a/_app/immutable/assets/0.CE92UdaT.css +++ /dev/null @@ -1 +0,0 @@ -.menu-link.svelte-vo5t57{grid-template-rows:auto 1fr auto}.menu-link.svelte-vo5t57:before,.menu-link.svelte-vo5t57:after{content:""}@font-face{font-family:silka;font-style:normal;font-weight:900;src:url(../../../assets/fonts/silka/silka-black-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:900;src:url(../../../assets/fonts/silka/silka-blackitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:600;src:url(../../../assets/fonts/silka/silka-bold-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:600;src:url(../../../assets/fonts/silka/silka-bolditalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:400;src:url(../../../assets/fonts/silka/silka-regular-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:400;src:url(../../../assets/fonts/silka/silka-regularitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:300;src:url(../../../assets/fonts/silka/silka-light-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:300;src:url(../../../assets/fonts/silka/silka-lightitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:200;src:url(../../../assets/fonts/silka/silka-extralight-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:200;src:url(../../../assets/fonts/silka/silka-extralightitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:100;src:url(../../../assets/fonts/silka/silka-thin-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:100;src:url(../../../assets/fonts/silka/silka-thinitalic-webfont.ttf) format("truetype")}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:silka,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:start;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;border:1px solid;background-color:#00000003;border-color:#00000008;padding:2em 2em 1em;border-radius:.6em;display:flex;flex-direction:column;align-items:center}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)) img{box-shadow:#0000000a 0 .5em 2em,#00000014 0 0 0 1px;border-radius:.6em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;border-radius:.3125rem;padding-top:.2222222em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-inline-start:.4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;padding-inline-start:1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-inline-start:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.static{position:static}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-z-10{z-index:-10}.z-20{z-index:20}.z-30{z-index:30}.order-first{order:-9999}.col-span-10{grid-column:span 10 / span 10}.m-16{margin:4rem}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-32{margin-top:8rem;margin-bottom:8rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-16{margin-bottom:4rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mt-14{margin-top:3.5rem}.mt-20{margin-top:5rem}.mt-28{margin-top:7rem}.mt-3{margin-top:.75rem}.mt-32{margin-top:8rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.box-content{box-sizing:content-box}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.aspect-video{aspect-ratio:16 / 9}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-48{height:12rem}.h-8{height:2rem}.h-dvh{height:100dvh}.h-full{height:100%}.w-10{width:2.5rem}.w-12{width:3rem}.w-24{width:6rem}.w-48{width:12rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[72ch\]{max-width:72ch}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-screen-sm{max-width:640px}.max-w-xl{max-width:36rem}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.gap-0{gap:0px}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-24{gap:6rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-mine-shaft-200{--tw-border-opacity: 1;border-color:rgb(209 209 209 / var(--tw-border-opacity))}.border-mine-shaft-300{--tw-border-opacity: 1;border-color:rgb(176 176 176 / var(--tw-border-opacity))}.border-neutral-500{--tw-border-opacity: 1;border-color:rgb(115 115 115 / var(--tw-border-opacity))}.border-spring-wood-50{--tw-border-opacity: 1;border-color:rgb(247 247 242 / var(--tw-border-opacity))}.border-t-mine-shaft-300{--tw-border-opacity: 1;border-top-color:rgb(176 176 176 / var(--tw-border-opacity))}.bg-quill-gray-200{--tw-bg-opacity: 1;background-color:rgb(217 216 210 / var(--tw-bg-opacity))}.bg-spring-wood-50{--tw-bg-opacity: 1;background-color:rgb(247 247 242 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-mine-shaft-50{--tw-gradient-from: #f6f6f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(246 246 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-berry-900{--tw-gradient-from: #8c0000 var(--tw-gradient-from-position);--tw-gradient-to: rgb(140 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-mine-shaft-100{--tw-gradient-to: #e7e7e7 var(--tw-gradient-to-position)}.to-red-berry-950{--tw-gradient-to: #560000 var(--tw-gradient-to-position)}.fill-black{fill:#000}.fill-mine-shaft-950{fill:#303030}.fill-none{fill:none}.fill-red-berry-900{fill:#8c0000}.fill-spring-wood-50{fill:#f7f7f2}.stroke-mine-shaft-200{stroke:#d1d1d1}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-2{padding:.5rem}.p-4{padding:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-14{padding-bottom:3.5rem}.pb-2{padding-bottom:.5rem}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-extralight{font-weight:200}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-mine-shaft-400{--tw-text-opacity: 1;color:rgb(136 136 136 / var(--tw-text-opacity))}.text-mine-shaft-500{--tw-text-opacity: 1;color:rgb(109 109 109 / var(--tw-text-opacity))}.text-mine-shaft-600{--tw-text-opacity: 1;color:rgb(93 93 93 / var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.text-neutral-600{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity))}.text-neutral-700{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity))}.text-neutral-950{--tw-text-opacity: 1;color:rgb(10 10 10 / var(--tw-text-opacity))}.text-red-berry-900{--tw-text-opacity: 1;color:rgb(140 0 0 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-md{--tw-blur: blur(12px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}a:not(.menu-link):not(.icon-link):not(.button){--tw-text-opacity: 1;color:rgb(86 0 0 / var(--tw-text-opacity))}a:not(.menu-link):not(.icon-link):not(.button):is(.dark *){--tw-text-opacity: 1;color:rgb(145 140 126 / var(--tw-text-opacity))}a:not(.menu-link):not(.icon-link):not(.button):hover{--tw-text-opacity: 1;color:rgb(48 48 48 / var(--tw-text-opacity))}a:not(.menu-link):not(.icon-link):not(.button):hover:is(.dark *){--tw-text-opacity: 1;color:rgb(164 160 147 / var(--tw-text-opacity))}.figure{margin-left:auto;margin-right:auto;width:100%}@media screen and (max-width: 1279px){.figure img{width:100%}}.figure figcaption{margin-top:.75rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity))}.figure figcaption:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.dark\:prose-invert:is(.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.dark\:prose-invert:is(.dark *) :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:#ffffff03}.before\:h-1:before{content:var(--tw-content);height:.25rem}.hover\:text-red-berry-950:hover{--tw-text-opacity: 1;color:rgb(86 0 0 / var(--tw-text-opacity))}.before\:hover\:bg-red-berry-900:hover:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(140 0 0 / var(--tw-bg-opacity))}.prose-headings\:font-light :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:300}.prose-headings\:font-medium :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:500}.prose-headings\:tracking-tight :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){letter-spacing:-.025em}.prose-headings\:text-neutral-500 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.prose-p\:font-light :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:300}.prose-p\:text-neutral-500 :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.prose-a\:no-underline :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){text-decoration-line:none}.dark\:border-mine-shaft-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(93 93 93 / var(--tw-border-opacity))}.dark\:border-mine-shaft-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(69 69 69 / var(--tw-border-opacity))}.dark\:border-mine-shaft-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(61 61 61 / var(--tw-border-opacity))}.dark\:border-t-mine-shaft-600:is(.dark *){--tw-border-opacity: 1;border-top-color:rgb(93 93 93 / var(--tw-border-opacity))}.dark\:bg-mine-shaft-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(61 61 61 / var(--tw-bg-opacity))}.dark\:bg-mine-shaft-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(48 48 48 / var(--tw-bg-opacity))}.dark\:fill-mine-shaft-950:is(.dark *){fill:#303030}.dark\:fill-white:is(.dark *){fill:#fff}.dark\:stroke-mine-shaft-900:is(.dark *){stroke:#3d3d3d}.dark\:text-mine-shaft-200:is(.dark *){--tw-text-opacity: 1;color:rgb(209 209 209 / var(--tw-text-opacity))}.dark\:text-mine-shaft-300:is(.dark *){--tw-text-opacity: 1;color:rgb(176 176 176 / var(--tw-text-opacity))}.dark\:text-neutral-300:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.dark\:text-spring-wood-50:is(.dark *){--tw-text-opacity: 1;color:rgb(247 247 242 / var(--tw-text-opacity))}.dark\:hover\:text-neutral-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.prose-headings\:dark\:text-neutral-300:is(.dark *) :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.prose-headings\:dark\:text-neutral-400:is(.dark *) :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.prose-p\:dark\:text-neutral-400:is(.dark *) :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}@media (min-width: 768px){.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width: 1280px){.xl\:col-span-4{grid-column:span 4 / span 4}.xl\:col-span-6{grid-column:span 6 / span 6}.xl\:my-32{margin-top:8rem;margin-bottom:8rem}.xl\:-mt-8{margin-top:-2rem}.xl\:mb-24{margin-bottom:6rem}.xl\:aspect-square{aspect-ratio:1 / 1}.xl\:h-24{height:6rem}.xl\:max-w-4xl{max-width:56rem}.xl\:grid-flow-row{grid-auto-flow:row}.xl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:justify-end{justify-content:flex-end}.xl\:gap-12{gap:3rem}.xl\:gap-16{gap:4rem}.xl\:gap-32{gap:8rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-8{gap:2rem}.xl\:gap-x-32{-moz-column-gap:8rem;column-gap:8rem}.xl\:bg-contain{background-size:contain}.xl\:bg-center{background-position:center}.xl\:bg-no-repeat{background-repeat:no-repeat}.xl\:text-3xl{font-size:1.875rem;line-height:2.25rem}.xl\:text-6xl{font-size:3.75rem;line-height:1}.xl\:text-7xl{font-size:4.5rem;line-height:1}.xl\:text-base{font-size:1rem;line-height:1.5rem}.xl\:text-xl{font-size:1.25rem;line-height:1.75rem}.xl\:tracking-tight{letter-spacing:-.025em}}@media (min-width: 1536px){.\32xl\:max-w-screen-xl{max-width:1280px}}.layout.svelte-wsl9xs{grid-template-rows:auto 1fr auto} diff --git a/_app/immutable/assets/2.DA1N_58T.css b/_app/immutable/assets/2.DA1N_58T.css deleted file mode 100644 index adbe9080..00000000 --- a/_app/immutable/assets/2.DA1N_58T.css +++ /dev/null @@ -1 +0,0 @@ -button.svelte-1fjjdj2{height:100%;width:100%}.handle.svelte-1fjjdj2{top:calc(50% - 15px)}.handle.svelte-1fjjdj2:before,.handle.svelte-1fjjdj2:after{content:"";height:9999px;position:absolute;left:calc(50% - 2px);border-width:2px;--tw-border-opacity:1;border-color:rgb(247 247 242 / var(--tw-border-opacity))}.handle.svelte-1fjjdj2:is(.dark *):before,.handle.svelte-1fjjdj2:is(.dark *):after{--tw-border-opacity:1;border-color:rgb(61 61 61 / var(--tw-border-opacity))}.handle.svelte-1fjjdj2:before{top:40px}.handle.svelte-1fjjdj2:after{bottom:40px}@media screen and (min-width: 1024px){.hero-content-container.svelte-pi8at7{height:calc(100dvh - 5rem)}.hero-image.svelte-pi8at7{margin-block-start:-40dvh}}.play__btn.svelte-1srk8gt,.custom__play__btn.svelte-1srk8gt{all:unset}.play__btn.svelte-1srk8gt{display:grid;place-items:center;height:80px;width:80px;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;cursor:pointer}.custom__play__btn.svelte-1srk8gt{display:grid;place-items:center;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;cursor:pointer}iframe.svelte-11gebsu,img.svelte-hw9fhp{height:auto;aspect-ratio:var(--aspect-ratio);width:100%}.you__tube.svelte-w0t24e.svelte-w0t24e{position:relative;aspect-ratio:1.76991;overflow:hidden}.v__title.svelte-w0t24e.svelte-w0t24e{position:absolute;top:0;width:100%;background:linear-gradient(to bottom,hsla(0,0%,0%,.1),transparent);pointer-events:none}.v__title.svelte-w0t24e h3.svelte-w0t24e{font-family:var( --title-font-family, "Segoe UI", Geneva, Verdana, sans-serif );color:var(--title-color, #ffffff);padding:0 2ch;font-weight:400;text-shadow:0px 1px 3px var(--title-shadow-color, rgb(0, 0, 0, .2))}.b__overlay.svelte-w0t24e.svelte-w0t24e{position:absolute;top:0;left:0;width:100%;aspect-ratio:var(--aspect-ratio);cursor:pointer;transition:var(--overlay-transition, all .25s ease-in-out)}.you__tube.svelte-w0t24e:hover .b__overlay.svelte-w0t24e{background:var(--overlay-bg-color, #00000030)}.selected.svelte-1r7x3ba{border-color:#f11;color:#171717}.selected.svelte-1r7x3ba:is(.dark *){--tw-text-opacity:1;color:rgb(217 216 210 / var(--tw-text-opacity))}.tab-content.svelte-1r7x3ba{width:100%;margin-top:1em;min-height:200px}@media screen and (min-width: 1024px){.tab-content.svelte-1r7x3ba{min-height:500px}}.controls.svelte-1avzpyw{position:absolute;bottom:0;width:100%;pointer-events:none;transition:opacity 1s;cursor:pointer}span.svelte-1avzpyw{padding:.2em .5em;color:#fff;font-size:.75em}.time.svelte-1avzpyw{width:3em}.time.svelte-1avzpyw:last-child{text-align:right}progress.svelte-1avzpyw{display:block;position:absolute;bottom:0;width:100%;height:5px;-webkit-appearance:none;-moz-appearance:none;appearance:none}progress.svelte-1avzpyw::-webkit-progress-bar,progress.svelte-1avzpyw::-moz-progress-bar{background-color:#c80000}progress.svelte-1avzpyw::-webkit-progress-value,progress.svelte-1avzpyw::-moz-progress-value{background-color:#fff}video.svelte-1avzpyw{width:100%} diff --git a/_app/immutable/assets/2.JhICGo_n.css b/_app/immutable/assets/2.JhICGo_n.css new file mode 100644 index 00000000..58cab5a7 --- /dev/null +++ b/_app/immutable/assets/2.JhICGo_n.css @@ -0,0 +1 @@ +button.svelte-1fjjdj2{height:100%;width:100%}.handle.svelte-1fjjdj2{top:calc(50% - 15px)}.handle.svelte-1fjjdj2:before,.handle.svelte-1fjjdj2:after{content:"";height:9999px;position:absolute;left:calc(50% - 2px);border-width:2px;--tw-border-opacity:1;border-color:rgb(247 247 242 / var(--tw-border-opacity))}.handle.svelte-1fjjdj2:is(.dark *):before,.handle.svelte-1fjjdj2:is(.dark *):after{--tw-border-opacity:1;border-color:rgb(61 61 61 / var(--tw-border-opacity))}.handle.svelte-1fjjdj2:before{top:40px}.handle.svelte-1fjjdj2:after{bottom:40px}.hero-image.svelte-14gclcs{margin-top:4rem}.play__btn.svelte-1srk8gt,.custom__play__btn.svelte-1srk8gt{all:unset}.play__btn.svelte-1srk8gt{display:grid;place-items:center;height:80px;width:80px;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;cursor:pointer}.custom__play__btn.svelte-1srk8gt{display:grid;place-items:center;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;cursor:pointer}iframe.svelte-11gebsu,img.svelte-hw9fhp{height:auto;aspect-ratio:var(--aspect-ratio);width:100%}.you__tube.svelte-w0t24e.svelte-w0t24e{position:relative;aspect-ratio:1.76991;overflow:hidden}.v__title.svelte-w0t24e.svelte-w0t24e{position:absolute;top:0;width:100%;background:linear-gradient(to bottom,hsla(0,0%,0%,.1),transparent);pointer-events:none}.v__title.svelte-w0t24e h3.svelte-w0t24e{font-family:var( --title-font-family, "Segoe UI", Geneva, Verdana, sans-serif );color:var(--title-color, #ffffff);padding:0 2ch;font-weight:400;text-shadow:0px 1px 3px var(--title-shadow-color, rgb(0, 0, 0, .2))}.b__overlay.svelte-w0t24e.svelte-w0t24e{position:absolute;top:0;left:0;width:100%;aspect-ratio:var(--aspect-ratio);cursor:pointer;transition:var(--overlay-transition, all .25s ease-in-out)}.you__tube.svelte-w0t24e:hover .b__overlay.svelte-w0t24e{background:var(--overlay-bg-color, #00000030)}.selected.svelte-wk0a0w{border-color:#f11;color:#374151}.selected.svelte-wk0a0w:is(.dark *){--tw-text-opacity:1;color:rgb(212 212 212 / var(--tw-text-opacity))}.tab-content.svelte-wk0a0w{position:relative;height:100%;width:100%;margin-top:1em;min-height:200px}@media screen and (min-width: 1024px){.tab-content.svelte-wk0a0w{min-height:500px}}.skeleton-loader.svelte-wk0a0w{position:absolute;width:100%;height:100%;z-index:-1}.skeleton-image.svelte-wk0a0w{width:100%;height:80%;background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from:#f7f7f2 var(--tw-gradient-from-position);--tw-gradient-to:rgb(247 247 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-from-position:25%;--tw-gradient-to:#efefe5 var(--tw-gradient-to-position);--tw-gradient-to-position:75%}.skeleton-image.svelte-wk0a0w:is(.dark *){--tw-gradient-from:#303030 var(--tw-gradient-from-position);--tw-gradient-to:rgb(48 48 48 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to:#3d3d3d var(--tw-gradient-to-position)}.skeleton-image.svelte-wk0a0w{background-size:200% 100%;animation:svelte-wk0a0w-loading 1.5s infinite}@keyframes svelte-wk0a0w-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.controls.svelte-1avzpyw{position:absolute;bottom:0;width:100%;pointer-events:none;transition:opacity 1s;cursor:pointer}span.svelte-1avzpyw{padding:.2em .5em;color:#fff;font-size:.75em}.time.svelte-1avzpyw{width:3em}.time.svelte-1avzpyw:last-child{text-align:right}progress.svelte-1avzpyw{display:block;position:absolute;bottom:0;width:100%;height:5px;-webkit-appearance:none;-moz-appearance:none;appearance:none}progress.svelte-1avzpyw::-webkit-progress-bar,progress.svelte-1avzpyw::-moz-progress-bar{background-color:#c80000}progress.svelte-1avzpyw::-webkit-progress-value,progress.svelte-1avzpyw::-moz-progress-value{background-color:#fff}video.svelte-1avzpyw{width:100%} diff --git a/_app/immutable/assets/Button.C8SB3FfM.css b/_app/immutable/assets/Button.C8SB3FfM.css new file mode 100644 index 00000000..f867ad12 --- /dev/null +++ b/_app/immutable/assets/Button.C8SB3FfM.css @@ -0,0 +1 @@ +.button.svelte-856y4r.svelte-856y4r{min-height:3rem;background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.button.highlight.svelte-856y4r.svelte-856y4r{--tw-border-opacity:1;border-color:rgb(86 0 0 / var(--tw-border-opacity));--tw-gradient-from:#8c0000 var(--tw-gradient-from-position);--tw-gradient-to:rgb(140 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to:#560000 var(--tw-gradient-to-position);--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.button.regular.svelte-856y4r.svelte-856y4r{border-width:1px;--tw-border-opacity:1;border-color:rgb(176 176 176 / var(--tw-border-opacity));--tw-gradient-from:#f6f6f6 var(--tw-gradient-from-position);--tw-gradient-to:rgb(246 246 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to:#e7e7e7 var(--tw-gradient-to-position);--tw-text-opacity:1;color:rgb(64 64 64 / var(--tw-text-opacity))}.button.svelte-856y4r .icon-right.svelte-856y4r{margin-right:-.4em}.button.svelte-856y4r .icon-left.svelte-856y4r{margin-left:-.4em} diff --git a/_app/immutable/assets/Button.CH7FK0tB.css b/_app/immutable/assets/Button.CH7FK0tB.css deleted file mode 100644 index 8a5d37b0..00000000 --- a/_app/immutable/assets/Button.CH7FK0tB.css +++ /dev/null @@ -1 +0,0 @@ -.button.svelte-13pwg5b.svelte-13pwg5b{min-height:3rem;background-image:linear-gradient(to bottom,var(--tw-gradient-stops));--tw-shadow:0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.button.highlight.svelte-13pwg5b.svelte-13pwg5b{--tw-border-opacity:1;border-color:rgb(86 0 0 / var(--tw-border-opacity));--tw-gradient-from:#8c0000 var(--tw-gradient-from-position);--tw-gradient-to:rgb(140 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to:#560000 var(--tw-gradient-to-position);--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.button.regular.svelte-13pwg5b.svelte-13pwg5b{border-width:1px;--tw-border-opacity:1;border-color:rgb(176 176 176 / var(--tw-border-opacity));--tw-gradient-from:#f6f6f6 var(--tw-gradient-from-position);--tw-gradient-to:rgb(246 246 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to:#e7e7e7 var(--tw-gradient-to-position);--tw-text-opacity:1;color:rgb(64 64 64 / var(--tw-text-opacity))}.button.svelte-13pwg5b .icon-right.svelte-13pwg5b{margin-right:-.2em}.button.svelte-13pwg5b .icon-left.svelte-13pwg5b{margin-left:-.2em} diff --git a/_app/immutable/assets/_layout.BGzYrw8D.css b/_app/immutable/assets/_layout.BGzYrw8D.css deleted file mode 100644 index 602c00d1..00000000 --- a/_app/immutable/assets/_layout.BGzYrw8D.css +++ /dev/null @@ -1 +0,0 @@ -.menu-link.svelte-vo5t57{grid-template-rows:auto 1fr auto}.menu-link.svelte-vo5t57:before,.menu-link.svelte-vo5t57:after{content:""}@font-face{font-family:silka;font-style:normal;font-weight:900;src:url(/assets/fonts/silka/silka-black-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:900;src:url(/assets/fonts/silka/silka-blackitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:600;src:url(/assets/fonts/silka/silka-bold-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:600;src:url(/assets/fonts/silka/silka-bolditalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:400;src:url(/assets/fonts/silka/silka-regular-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:400;src:url(/assets/fonts/silka/silka-regularitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:300;src:url(/assets/fonts/silka/silka-light-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:300;src:url(/assets/fonts/silka/silka-lightitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:200;src:url(/assets/fonts/silka/silka-extralight-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:200;src:url(/assets/fonts/silka/silka-extralightitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:100;src:url(/assets/fonts/silka/silka-thin-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:100;src:url(/assets/fonts/silka/silka-thinitalic-webfont.ttf) format("truetype")}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:silka,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:start;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;border:1px solid;background-color:#00000003;border-color:#00000008;padding:2em 2em 1em;border-radius:.6em;display:flex;flex-direction:column;align-items:center}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)) img{box-shadow:#0000000a 0 .5em 2em,#00000014 0 0 0 1px;border-radius:.6em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;border-radius:.3125rem;padding-top:.2222222em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-inline-start:.4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;padding-inline-start:1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-inline-start:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.static{position:static}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-z-10{z-index:-10}.z-20{z-index:20}.z-30{z-index:30}.order-first{order:-9999}.col-span-10{grid-column:span 10 / span 10}.m-16{margin:4rem}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-32{margin-top:8rem;margin-bottom:8rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-16{margin-bottom:4rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mt-14{margin-top:3.5rem}.mt-20{margin-top:5rem}.mt-28{margin-top:7rem}.mt-3{margin-top:.75rem}.mt-32{margin-top:8rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.box-content{box-sizing:content-box}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.aspect-video{aspect-ratio:16 / 9}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-48{height:12rem}.h-8{height:2rem}.h-dvh{height:100dvh}.h-full{height:100%}.w-10{width:2.5rem}.w-12{width:3rem}.w-24{width:6rem}.w-48{width:12rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[72ch\]{max-width:72ch}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-screen-sm{max-width:640px}.max-w-xl{max-width:36rem}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.gap-0{gap:0px}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-24{gap:6rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-mine-shaft-200{--tw-border-opacity: 1;border-color:rgb(209 209 209 / var(--tw-border-opacity))}.border-mine-shaft-300{--tw-border-opacity: 1;border-color:rgb(176 176 176 / var(--tw-border-opacity))}.border-neutral-500{--tw-border-opacity: 1;border-color:rgb(115 115 115 / var(--tw-border-opacity))}.border-spring-wood-50{--tw-border-opacity: 1;border-color:rgb(247 247 242 / var(--tw-border-opacity))}.border-t-mine-shaft-300{--tw-border-opacity: 1;border-top-color:rgb(176 176 176 / var(--tw-border-opacity))}.bg-quill-gray-200{--tw-bg-opacity: 1;background-color:rgb(217 216 210 / var(--tw-bg-opacity))}.bg-spring-wood-50{--tw-bg-opacity: 1;background-color:rgb(247 247 242 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-mine-shaft-50{--tw-gradient-from: #f6f6f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(246 246 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-berry-900{--tw-gradient-from: #8c0000 var(--tw-gradient-from-position);--tw-gradient-to: rgb(140 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-mine-shaft-100{--tw-gradient-to: #e7e7e7 var(--tw-gradient-to-position)}.to-red-berry-950{--tw-gradient-to: #560000 var(--tw-gradient-to-position)}.fill-black{fill:#000}.fill-mine-shaft-950{fill:#303030}.fill-none{fill:none}.fill-red-berry-900{fill:#8c0000}.fill-spring-wood-50{fill:#f7f7f2}.stroke-mine-shaft-200{stroke:#d1d1d1}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-2{padding:.5rem}.p-4{padding:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-14{padding-bottom:3.5rem}.pb-2{padding-bottom:.5rem}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-extralight{font-weight:200}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-mine-shaft-400{--tw-text-opacity: 1;color:rgb(136 136 136 / var(--tw-text-opacity))}.text-mine-shaft-500{--tw-text-opacity: 1;color:rgb(109 109 109 / var(--tw-text-opacity))}.text-mine-shaft-600{--tw-text-opacity: 1;color:rgb(93 93 93 / var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.text-neutral-600{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity))}.text-neutral-700{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity))}.text-neutral-950{--tw-text-opacity: 1;color:rgb(10 10 10 / var(--tw-text-opacity))}.text-red-berry-900{--tw-text-opacity: 1;color:rgb(140 0 0 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-md{--tw-blur: blur(12px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}a:not(.menu-link):not(.icon-link):not(.button){--tw-text-opacity: 1;color:rgb(86 0 0 / var(--tw-text-opacity))}a:not(.menu-link):not(.icon-link):not(.button):is(.dark *){--tw-text-opacity: 1;color:rgb(145 140 126 / var(--tw-text-opacity))}a:not(.menu-link):not(.icon-link):not(.button):hover{--tw-text-opacity: 1;color:rgb(48 48 48 / var(--tw-text-opacity))}a:not(.menu-link):not(.icon-link):not(.button):hover:is(.dark *){--tw-text-opacity: 1;color:rgb(164 160 147 / var(--tw-text-opacity))}.figure{margin-left:auto;margin-right:auto;width:100%}@media screen and (max-width: 1279px){.figure img{width:100%}}.figure figcaption{margin-top:.75rem;font-size:.75rem;line-height:1rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity))}.figure figcaption:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.dark\:prose-invert:is(.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.dark\:prose-invert:is(.dark *) :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:#ffffff03}.before\:h-1:before{content:var(--tw-content);height:.25rem}.hover\:text-red-berry-950:hover{--tw-text-opacity: 1;color:rgb(86 0 0 / var(--tw-text-opacity))}.before\:hover\:bg-red-berry-900:hover:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(140 0 0 / var(--tw-bg-opacity))}.prose-headings\:font-light :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:300}.prose-headings\:font-medium :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:500}.prose-headings\:tracking-tight :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){letter-spacing:-.025em}.prose-headings\:text-neutral-500 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.prose-p\:font-light :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:300}.prose-p\:text-neutral-500 :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.prose-a\:no-underline :is(:where(a):not(:where([class~=not-prose],[class~=not-prose] *))){text-decoration-line:none}.dark\:border-mine-shaft-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(93 93 93 / var(--tw-border-opacity))}.dark\:border-mine-shaft-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(69 69 69 / var(--tw-border-opacity))}.dark\:border-mine-shaft-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(61 61 61 / var(--tw-border-opacity))}.dark\:border-t-mine-shaft-600:is(.dark *){--tw-border-opacity: 1;border-top-color:rgb(93 93 93 / var(--tw-border-opacity))}.dark\:bg-mine-shaft-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(61 61 61 / var(--tw-bg-opacity))}.dark\:bg-mine-shaft-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(48 48 48 / var(--tw-bg-opacity))}.dark\:fill-mine-shaft-950:is(.dark *){fill:#303030}.dark\:fill-white:is(.dark *){fill:#fff}.dark\:stroke-mine-shaft-900:is(.dark *){stroke:#3d3d3d}.dark\:text-mine-shaft-200:is(.dark *){--tw-text-opacity: 1;color:rgb(209 209 209 / var(--tw-text-opacity))}.dark\:text-mine-shaft-300:is(.dark *){--tw-text-opacity: 1;color:rgb(176 176 176 / var(--tw-text-opacity))}.dark\:text-neutral-300:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.dark\:text-spring-wood-50:is(.dark *){--tw-text-opacity: 1;color:rgb(247 247 242 / var(--tw-text-opacity))}.dark\:hover\:text-neutral-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.prose-headings\:dark\:text-neutral-300:is(.dark *) :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.prose-headings\:dark\:text-neutral-400:is(.dark *) :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.prose-p\:dark\:text-neutral-400:is(.dark *) :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}@media (min-width: 768px){.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width: 1280px){.xl\:col-span-4{grid-column:span 4 / span 4}.xl\:col-span-6{grid-column:span 6 / span 6}.xl\:my-32{margin-top:8rem;margin-bottom:8rem}.xl\:-mt-8{margin-top:-2rem}.xl\:mb-24{margin-bottom:6rem}.xl\:aspect-square{aspect-ratio:1 / 1}.xl\:h-24{height:6rem}.xl\:max-w-4xl{max-width:56rem}.xl\:grid-flow-row{grid-auto-flow:row}.xl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:flex-row{flex-direction:row}.xl\:justify-end{justify-content:flex-end}.xl\:gap-12{gap:3rem}.xl\:gap-16{gap:4rem}.xl\:gap-32{gap:8rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-8{gap:2rem}.xl\:gap-x-32{-moz-column-gap:8rem;column-gap:8rem}.xl\:bg-contain{background-size:contain}.xl\:bg-center{background-position:center}.xl\:bg-no-repeat{background-repeat:no-repeat}.xl\:text-3xl{font-size:1.875rem;line-height:2.25rem}.xl\:text-6xl{font-size:3.75rem;line-height:1}.xl\:text-7xl{font-size:4.5rem;line-height:1}.xl\:text-base{font-size:1rem;line-height:1.5rem}.xl\:text-xl{font-size:1.25rem;line-height:1.75rem}.xl\:tracking-tight{letter-spacing:-.025em}}@media (min-width: 1536px){.\32xl\:max-w-screen-xl{max-width:1280px}}.layout.svelte-wsl9xs{grid-template-rows:auto 1fr auto} diff --git a/_app/immutable/assets/_layout.wuVaXtH9.css b/_app/immutable/assets/_layout.wuVaXtH9.css new file mode 100644 index 00000000..77cbebb8 --- /dev/null +++ b/_app/immutable/assets/_layout.wuVaXtH9.css @@ -0,0 +1 @@ +.menu-link.svelte-6klv6f{grid-template-rows:auto 1fr auto}.menu-link.svelte-6klv6f:before:not(.mobile),.menu-link.svelte-6klv6f:after:not(.mobile){content:""}@font-face{font-family:silka;font-style:normal;font-weight:900;src:url(/assets/fonts/silka/silka-black-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:900;src:url(/assets/fonts/silka/silka-blackitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:600;src:url(/assets/fonts/silka/silka-bold-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:600;src:url(/assets/fonts/silka/silka-bolditalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:400;src:url(/assets/fonts/silka/silka-regular-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:400;src:url(/assets/fonts/silka/silka-regularitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:300;src:url(/assets/fonts/silka/silka-light-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:300;src:url(/assets/fonts/silka/silka-lightitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:200;src:url(/assets/fonts/silka/silka-extralight-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:200;src:url(/assets/fonts/silka/silka-extralightitalic-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:normal;font-weight:100;src:url(/assets/fonts/silka/silka-thin-webfont.ttf) format("truetype")}@font-face{font-family:silka;font-style:italic;font-weight:100;src:url(/assets/fonts/silka/silka-thinitalic-webfont.ttf) format("truetype")}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:silka,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;text-align:start;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em;border:1px solid;background-color:#00000003;border-color:#00000008;padding:1em;border-radius:.6em;display:flex;flex-direction:column;align-items:center}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)) img{box-shadow:#0000000a 0 .5em 2em,#00000014 0 0 0 1px;border-radius:.6em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-lg{font-size:1.125rem;line-height:1.7777778}.prose-lg :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.2222222em;line-height:1.4545455;margin-top:1.0909091em;margin-bottom:1.0909091em}.prose-lg :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.6666667em;margin-bottom:1.6666667em;padding-inline-start:1em}.prose-lg :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:2.6666667em;margin-top:0;margin-bottom:.8333333em;line-height:1}.prose-lg :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.6666667em;margin-top:1.8666667em;margin-bottom:1.0666667em;line-height:1.3333333}.prose-lg :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:1.3333333em;margin-top:1.6666667em;margin-bottom:.6666667em;line-height:1.5}.prose-lg :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:.4444444em;line-height:1.5555556}.prose-lg :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;border-radius:.3125rem;padding-top:.2222222em;padding-inline-end:.4444444em;padding-bottom:.2222222em;padding-inline-start:.4444444em}.prose-lg :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em}.prose-lg :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8666667em}.prose-lg :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.875em}.prose-lg :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.75;margin-top:2em;margin-bottom:2em;border-radius:.375rem;padding-top:1em;padding-inline-end:1.5em;padding-bottom:1em;padding-inline-start:1.5em}.prose-lg :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em;padding-inline-start:1.5555556em}.prose-lg :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;margin-bottom:.6666667em}.prose-lg :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.4444444em}.prose-lg :where(.prose-lg>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(.prose-lg>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(.prose-lg>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.3333333em}.prose-lg :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.8888889em;margin-bottom:.8888889em}.prose-lg :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em;margin-bottom:1.3333333em}.prose-lg :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.3333333em}.prose-lg :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.6666667em;padding-inline-start:1.5555556em}.prose-lg :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:3.1111111em;margin-bottom:3.1111111em}.prose-lg :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5}.prose-lg :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.75em;padding-inline-end:.75em;padding-bottom:.75em;padding-inline-start:.75em}.prose-lg :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose-lg :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose-lg :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.7777778em;margin-bottom:1.7777778em}.prose-lg :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose-lg :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){font-size:.8888889em;line-height:1.5;margin-top:1em}.prose-lg :where(.prose-lg>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose-lg :where(.prose-lg>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.-z-10{z-index:-10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.order-first{order:-9999}.col-span-10{grid-column:span 10 / span 10}.col-span-full{grid-column:1 / -1}.m-16{margin:4rem}.m-auto{margin:auto}.mx-auto{margin-left:auto;margin-right:auto}.my-16{margin-top:4rem;margin-bottom:4rem}.my-20{margin-top:5rem;margin-bottom:5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.mb-16{margin-bottom:4rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.mt-14{margin-top:3.5rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-28{margin-top:7rem}.mt-3{margin-top:.75rem}.mt-32{margin-top:8rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.box-content{box-sizing:content-box}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-video{aspect-ratio:16 / 9}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-dvh{height:100dvh}.h-full{height:100%}.w-10{width:2.5rem}.w-12{width:3rem}.w-24{width:6rem}.w-52{width:13rem}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-48{max-width:12rem}.max-w-\[72ch\]{max-width:72ch}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-screen-lg{max-width:1024px}.max-w-screen-md{max-width:768px}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.gap-0{gap:0px}.gap-1{gap:.25rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-24{gap:6rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-t{border-top-width:1px}.border-mine-shaft-200{--tw-border-opacity: 1;border-color:rgb(209 209 209 / var(--tw-border-opacity))}.border-mine-shaft-300{--tw-border-opacity: 1;border-color:rgb(176 176 176 / var(--tw-border-opacity))}.border-neutral-500{--tw-border-opacity: 1;border-color:rgb(115 115 115 / var(--tw-border-opacity))}.border-spring-wood-50{--tw-border-opacity: 1;border-color:rgb(247 247 242 / var(--tw-border-opacity))}.border-t-mine-shaft-300{--tw-border-opacity: 1;border-top-color:rgb(176 176 176 / var(--tw-border-opacity))}.bg-quill-gray-200{--tw-bg-opacity: 1;background-color:rgb(217 216 210 / var(--tw-bg-opacity))}.bg-spring-wood-50{--tw-bg-opacity: 1;background-color:rgb(247 247 242 / var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-mine-shaft-50{--tw-gradient-from: #f6f6f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(246 246 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-berry-900{--tw-gradient-from: #8c0000 var(--tw-gradient-from-position);--tw-gradient-to: rgb(140 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-spring-wood-50{--tw-gradient-from: #f7f7f2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(247 247 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-25\%{--tw-gradient-from-position: 25%}.to-mine-shaft-100{--tw-gradient-to: #e7e7e7 var(--tw-gradient-to-position)}.to-red-berry-950{--tw-gradient-to: #560000 var(--tw-gradient-to-position)}.to-spring-wood-100{--tw-gradient-to: #efefe5 var(--tw-gradient-to-position)}.fill-black{fill:#000}.fill-mine-shaft-950{fill:#303030}.fill-none{fill:none}.fill-red-berry-900{fill:#8c0000}.fill-spring-wood-50{fill:#f7f7f2}.stroke-mine-shaft-200{stroke:#d1d1d1}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.p-2{padding:.5rem}.p-4{padding:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-14{padding-bottom:3.5rem}.pb-2{padding-bottom:.5rem}.pt-2{padding-top:.5rem}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.95rem\]{font-size:.95rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-extralight{font-weight:200}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-mine-shaft-500{--tw-text-opacity: 1;color:rgb(109 109 109 / var(--tw-text-opacity))}.text-mine-shaft-600{--tw-text-opacity: 1;color:rgb(93 93 93 / var(--tw-text-opacity))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.text-neutral-700{--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity))}.text-red-berry-900{--tw-text-opacity: 1;color:rgb(140 0 0 / var(--tw-text-opacity))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.no-underline{text-decoration-line:none}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-md{--tw-blur: blur(12px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}a:not(.menu-link):not(.icon-link):not(.button):not(.post-link):not(.card-link){--tw-text-opacity: 1;color:rgb(140 0 0 / var(--tw-text-opacity));text-decoration-line:underline;text-underline-offset:2px}a:not(.menu-link):not(.icon-link):not(.button):not(.post-link):not(.card-link):is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}a:not(.menu-link):not(.icon-link):not(.button):not(.post-link):not(.card-link):hover{--tw-text-opacity: 1;color:rgb(61 61 61 / var(--tw-text-opacity))}a:not(.menu-link):not(.icon-link):not(.button):not(.post-link):not(.card-link):hover:is(.dark *){--tw-text-opacity: 1;color:rgb(164 160 147 / var(--tw-text-opacity))}.figure{margin-left:auto;margin-right:auto;width:100%}@media screen and (max-width: 1279px){.figure img{width:100%}}.figure figcaption{margin-top:.75rem;font-size:.95rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity))}.figure figcaption:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.dark\:prose-invert:is(.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.dark\:prose-invert:is(.dark *) :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:#ffffff03}.before\:h-1:before{content:var(--tw-content);height:.25rem}.hover\:text-red-berry-950:hover{--tw-text-opacity: 1;color:rgb(86 0 0 / var(--tw-text-opacity))}.before\:hover\:bg-red-berry-900:hover:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(140 0 0 / var(--tw-bg-opacity))}.prose-headings\:font-light :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:300}.prose-headings\:font-medium :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:500}.prose-headings\:tracking-tight :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){letter-spacing:-.025em}.prose-headings\:text-gray-700 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.prose-headings\:text-neutral-700 :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(64 64 64 / var(--tw-text-opacity))}.prose-h1\:text-xl :is(:where(h1):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.25rem;line-height:1.75rem}.prose-h2\:text-lg :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.125rem;line-height:1.75rem}.prose-h2\:text-xl :is(:where(h2):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1.25rem;line-height:1.75rem}.prose-p\:text-base :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){font-size:1rem;line-height:1.5rem}.prose-p\:font-light :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:300}.prose-p\:text-gray-700 :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.dark\:border-mine-shaft-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(93 93 93 / var(--tw-border-opacity))}.dark\:border-mine-shaft-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(69 69 69 / var(--tw-border-opacity))}.dark\:border-mine-shaft-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(61 61 61 / var(--tw-border-opacity))}.dark\:border-t-mine-shaft-600:is(.dark *){--tw-border-opacity: 1;border-top-color:rgb(93 93 93 / var(--tw-border-opacity))}.dark\:bg-mine-shaft-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(61 61 61 / var(--tw-bg-opacity))}.dark\:bg-mine-shaft-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(48 48 48 / var(--tw-bg-opacity))}.dark\:from-mine-shaft-950:is(.dark *){--tw-gradient-from: #303030 var(--tw-gradient-from-position);--tw-gradient-to: rgb(48 48 48 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-mine-shaft-900:is(.dark *){--tw-gradient-to: #3d3d3d var(--tw-gradient-to-position)}.dark\:fill-mine-shaft-950:is(.dark *){fill:#303030}.dark\:fill-white:is(.dark *){fill:#fff}.dark\:stroke-mine-shaft-700:is(.dark *){stroke:#4f4f4f}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.dark\:text-mine-shaft-200:is(.dark *){--tw-text-opacity: 1;color:rgb(209 209 209 / var(--tw-text-opacity))}.dark\:text-mine-shaft-300:is(.dark *){--tw-text-opacity: 1;color:rgb(176 176 176 / var(--tw-text-opacity))}.dark\:text-neutral-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.dark\:text-neutral-300:is(.dark *){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.dark\:text-spring-wood-50:is(.dark *){--tw-text-opacity: 1;color:rgb(247 247 242 / var(--tw-text-opacity))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.dark\:hover\:text-neutral-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(245 245 245 / var(--tw-text-opacity))}.prose-headings\:dark\:text-neutral-300:is(.dark *) :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(212 212 212 / var(--tw-text-opacity))}.prose-p\:dark\:text-gray-300:is(.dark *) :is(:where(p):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:max-w-md{max-width:28rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:gap-2{gap:.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 768px){.md\:my-32{margin-top:8rem;margin-bottom:8rem}.md\:mt-0{margin-top:0}.md\:mt-24{margin-top:6rem}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:h-32{height:8rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:gap-12{gap:3rem}.md\:gap-16{gap:4rem}.md\:bg-contain{background-size:contain}.md\:bg-center{background-position:center}.md\:bg-no-repeat{background-repeat:no-repeat}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:font-extralight{font-weight:200}}@media (min-width: 1024px){.lg\:col-span-4{grid-column:span 4 / span 4}.lg\:col-span-6{grid-column:span 6 / span 6}.lg\:-mt-8{margin-top:-2rem}.lg\:mb-24{margin-bottom:6rem}.lg\:h-8{height:2rem}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:justify-end{justify-content:flex-end}.lg\:gap-4{gap:1rem}.lg\:gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.lg\:text-base{font-size:1rem;line-height:1.5rem}.lg\:tracking-tight{letter-spacing:-.025em}}@media (min-width: 1280px){.xl\:mb-20{margin-bottom:5rem}.xl\:mt-32{margin-top:8rem}.xl\:aspect-square{aspect-ratio:1 / 1}.xl\:max-w-6xl{max-width:72rem}.xl\:gap-12{gap:3rem}.xl\:gap-32{gap:8rem}.xl\:gap-6{gap:1.5rem}.xl\:gap-8{gap:2rem}.xl\:gap-x-32{-moz-column-gap:8rem;column-gap:8rem}.xl\:text-3xl{font-size:1.875rem;line-height:2.25rem}.xl\:text-6xl{font-size:3.75rem;line-height:1}.xl\:text-7xl{font-size:4.5rem;line-height:1}.xl\:text-xl{font-size:1.25rem;line-height:1.75rem}.xl\:tracking-tight{letter-spacing:-.025em}}@media (min-width: 1536px){.\32xl\:max-w-screen-xl{max-width:1280px}}.layout.svelte-wsl9xs{grid-template-rows:auto 1fr auto} diff --git a/_app/immutable/assets/_page.De31MlVU.css b/_app/immutable/assets/_page.De31MlVU.css deleted file mode 100644 index 93228797..00000000 --- a/_app/immutable/assets/_page.De31MlVU.css +++ /dev/null @@ -1 +0,0 @@ -button.svelte-1fjjdj2{height:100%;width:100%}.handle.svelte-1fjjdj2{top:calc(50% - 15px)}.handle.svelte-1fjjdj2:before,.handle.svelte-1fjjdj2:after{content:"";height:9999px;position:absolute;left:calc(50% - 2px);border-width:2px;--tw-border-opacity:1;border-color:rgb(247 247 242 / var(--tw-border-opacity))}.handle.svelte-1fjjdj2:is(.dark *):before,.handle.svelte-1fjjdj2:is(.dark *):after{--tw-border-opacity:1;border-color:rgb(61 61 61 / var(--tw-border-opacity))}.handle.svelte-1fjjdj2:before{top:40px}.handle.svelte-1fjjdj2:after{bottom:40px}@media screen and (min-width: 1024px){.hero-content-container.svelte-pi8at7{height:calc(100dvh - 5rem)}.hero-image.svelte-pi8at7{margin-block-start:-40dvh}}.play__btn.svelte-1srk8gt,.custom__play__btn.svelte-1srk8gt{all:unset}.play__btn.svelte-1srk8gt{display:grid;place-items:center;height:80px;width:80px;position:absolute;inset:0;margin:auto;cursor:pointer}.custom__play__btn.svelte-1srk8gt{display:grid;place-items:center;position:absolute;inset:0;margin:auto;cursor:pointer}iframe.svelte-11gebsu,img.svelte-hw9fhp{height:auto;aspect-ratio:var(--aspect-ratio);width:100%}.you__tube.svelte-w0t24e.svelte-w0t24e{position:relative;aspect-ratio:1.76991;overflow:hidden}.v__title.svelte-w0t24e.svelte-w0t24e{position:absolute;top:0;width:100%;background:linear-gradient(to bottom,hsla(0,0%,0%,.1),transparent);pointer-events:none}.v__title.svelte-w0t24e h3.svelte-w0t24e{font-family:var( --title-font-family, "Segoe UI", Geneva, Verdana, sans-serif );color:var(--title-color, #ffffff);padding:0 2ch;font-weight:400;text-shadow:0px 1px 3px var(--title-shadow-color, rgb(0, 0, 0, .2))}.b__overlay.svelte-w0t24e.svelte-w0t24e{position:absolute;top:0;left:0;width:100%;aspect-ratio:var(--aspect-ratio);cursor:pointer;transition:var(--overlay-transition, all .25s ease-in-out)}.you__tube.svelte-w0t24e:hover .b__overlay.svelte-w0t24e{background:var(--overlay-bg-color, #00000030)}.selected.svelte-1r7x3ba{border-color:#f11;color:#171717}.selected.svelte-1r7x3ba:is(.dark *){--tw-text-opacity:1;color:rgb(217 216 210 / var(--tw-text-opacity))}.tab-content.svelte-1r7x3ba{width:100%;margin-top:1em;min-height:200px}@media screen and (min-width: 1024px){.tab-content.svelte-1r7x3ba{min-height:500px}}.controls.svelte-1avzpyw{position:absolute;bottom:0;width:100%;pointer-events:none;transition:opacity 1s;cursor:pointer}span.svelte-1avzpyw{padding:.2em .5em;color:#fff;font-size:.75em}.time.svelte-1avzpyw{width:3em}.time.svelte-1avzpyw:last-child{text-align:right}progress.svelte-1avzpyw{display:block;position:absolute;bottom:0;width:100%;height:5px;-webkit-appearance:none;-moz-appearance:none;appearance:none}progress.svelte-1avzpyw::-webkit-progress-bar,progress.svelte-1avzpyw::-moz-progress-bar{background-color:#c80000}progress.svelte-1avzpyw::-webkit-progress-value,progress.svelte-1avzpyw::-moz-progress-value{background-color:#fff}video.svelte-1avzpyw{width:100%} diff --git a/_app/immutable/assets/_page.SPhxHNlQ.css b/_app/immutable/assets/_page.SPhxHNlQ.css new file mode 100644 index 00000000..7fe8eed6 --- /dev/null +++ b/_app/immutable/assets/_page.SPhxHNlQ.css @@ -0,0 +1 @@ +button.svelte-1fjjdj2{height:100%;width:100%}.handle.svelte-1fjjdj2{top:calc(50% - 15px)}.handle.svelte-1fjjdj2:before,.handle.svelte-1fjjdj2:after{content:"";height:9999px;position:absolute;left:calc(50% - 2px);border-width:2px;--tw-border-opacity:1;border-color:rgb(247 247 242 / var(--tw-border-opacity))}.handle.svelte-1fjjdj2:is(.dark *):before,.handle.svelte-1fjjdj2:is(.dark *):after{--tw-border-opacity:1;border-color:rgb(61 61 61 / var(--tw-border-opacity))}.handle.svelte-1fjjdj2:before{top:40px}.handle.svelte-1fjjdj2:after{bottom:40px}.hero-image.svelte-14gclcs{margin-top:4rem}.play__btn.svelte-1srk8gt,.custom__play__btn.svelte-1srk8gt{all:unset}.play__btn.svelte-1srk8gt{display:grid;place-items:center;height:80px;width:80px;position:absolute;inset:0;margin:auto;cursor:pointer}.custom__play__btn.svelte-1srk8gt{display:grid;place-items:center;position:absolute;inset:0;margin:auto;cursor:pointer}iframe.svelte-11gebsu,img.svelte-hw9fhp{height:auto;aspect-ratio:var(--aspect-ratio);width:100%}.you__tube.svelte-w0t24e.svelte-w0t24e{position:relative;aspect-ratio:1.76991;overflow:hidden}.v__title.svelte-w0t24e.svelte-w0t24e{position:absolute;top:0;width:100%;background:linear-gradient(to bottom,hsla(0,0%,0%,.1),transparent);pointer-events:none}.v__title.svelte-w0t24e h3.svelte-w0t24e{font-family:var( --title-font-family, "Segoe UI", Geneva, Verdana, sans-serif );color:var(--title-color, #ffffff);padding:0 2ch;font-weight:400;text-shadow:0px 1px 3px var(--title-shadow-color, rgb(0, 0, 0, .2))}.b__overlay.svelte-w0t24e.svelte-w0t24e{position:absolute;top:0;left:0;width:100%;aspect-ratio:var(--aspect-ratio);cursor:pointer;transition:var(--overlay-transition, all .25s ease-in-out)}.you__tube.svelte-w0t24e:hover .b__overlay.svelte-w0t24e{background:var(--overlay-bg-color, #00000030)}.selected.svelte-wk0a0w{border-color:#f11;color:#374151}.selected.svelte-wk0a0w:is(.dark *){--tw-text-opacity:1;color:rgb(212 212 212 / var(--tw-text-opacity))}.tab-content.svelte-wk0a0w{position:relative;height:100%;width:100%;margin-top:1em;min-height:200px}@media screen and (min-width: 1024px){.tab-content.svelte-wk0a0w{min-height:500px}}.skeleton-loader.svelte-wk0a0w{position:absolute;width:100%;height:100%;z-index:-1}.skeleton-image.svelte-wk0a0w{width:100%;height:80%;background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from:#f7f7f2 var(--tw-gradient-from-position);--tw-gradient-to:rgb(247 247 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-from-position:25%;--tw-gradient-to:#efefe5 var(--tw-gradient-to-position);--tw-gradient-to-position:75%}.skeleton-image.svelte-wk0a0w:is(.dark *){--tw-gradient-from:#303030 var(--tw-gradient-from-position);--tw-gradient-to:rgb(48 48 48 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to:#3d3d3d var(--tw-gradient-to-position)}.skeleton-image.svelte-wk0a0w{background-size:200% 100%;animation:svelte-wk0a0w-loading 1.5s infinite}@keyframes svelte-wk0a0w-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.controls.svelte-1avzpyw{position:absolute;bottom:0;width:100%;pointer-events:none;transition:opacity 1s;cursor:pointer}span.svelte-1avzpyw{padding:.2em .5em;color:#fff;font-size:.75em}.time.svelte-1avzpyw{width:3em}.time.svelte-1avzpyw:last-child{text-align:right}progress.svelte-1avzpyw{display:block;position:absolute;bottom:0;width:100%;height:5px;-webkit-appearance:none;-moz-appearance:none;appearance:none}progress.svelte-1avzpyw::-webkit-progress-bar,progress.svelte-1avzpyw::-moz-progress-bar{background-color:#c80000}progress.svelte-1avzpyw::-webkit-progress-value,progress.svelte-1avzpyw::-moz-progress-value{background-color:#fff}video.svelte-1avzpyw{width:100%} diff --git a/_app/immutable/chunks/28.BXboE3l1.js b/_app/immutable/chunks/28.BXboE3l1.js new file mode 100644 index 00000000..f5754591 --- /dev/null +++ b/_app/immutable/chunks/28.BXboE3l1.js @@ -0,0 +1,445 @@ +import{s as pt,z as Mn,b as Kt,A as Ln,B as In,C as jn,o as En,a as Fn,g as Ce,H as qe,n as yt}from"./scheduler.CZFVEtgY.js";import{S as ht,i as ct,e as o,s,u as Zt,F as $n,c as i,d as e,h as r,f as Ht,v as Yt,a as k,j as Mt,b as t,w as Xt,l as ft,t as mt,o as gt,p as wt,q as vt,r as bt,g as l,A as Jt,H as Wt,D as Nt}from"./index.CNd5CZrX.js";import{t as An,g as xt,i as Oe}from"./index.BMEkiqFO.js";import{b as Hn}from"./paths.BCdhk5uV.js";import{w as Cn}from"./index.Ba7-f4DY.js";import{_ as Gn}from"./preload-helper.D6kgxu3v.js";function zn(v){let n,f,p,d,a,u,c,de,Q,w,ye,V,b,ce,C,x=Sn(v[3])+"",ke,oe,T,fe;const ie=v[11].default,_=Mn(ie,v,v[10],null);return{c(){n=o("link"),f=s(),p=o("article"),d=o("div"),a=o("h1"),u=Zt(v[2]),c=s(),de=o("div"),Q=o("img"),ye=s(),V=o("div"),b=Zt(v[1]),ce=s(),C=o("div"),ke=Zt(x),oe=s(),T=o("div"),_&&_.c(),this.h()},l(se){const G=$n("svelte-1feejup",document.head);n=i(G,"LINK",{rel:!0,href:!0}),G.forEach(e),f=r(se),p=i(se,"ARTICLE",{class:!0});var S=Ht(p);d=i(S,"DIV",{class:!0});var Te=Ht(d);a=i(Te,"H1",{class:!0});var O=Ht(a);u=Yt(O,v[2]),O.forEach(e),c=r(Te),de=i(Te,"DIV",{class:!0});var M=Ht(de);Q=i(M,"IMG",{class:!0,src:!0,alt:!0}),ye=r(M),V=i(M,"DIV",{class:!0});var Se=Ht(V);b=Yt(Se,v[1]),ce=r(Se),C=i(Se,"DIV",{class:!0});var P=Ht(C);ke=Yt(P,x),P.forEach(e),Se.forEach(e),M.forEach(e),Te.forEach(e),oe=r(S),T=i(S,"DIV",{class:!0});var m=Ht(T);_&&_.l(m),m.forEach(e),S.forEach(e),this.h()},h(){k(n,"rel","stylesheet"),k(n,"href",Hn+"/assets/vendor/prism/prism-nord.css"),k(a,"class","text-2xl md:text-4xl lg:tracking-tight xl:text-6xl text-center font-light md:font-extralight tracking-tight text-mine-shaft-600 dark:text-mine-shaft-200"),k(Q,"class","w-24 h-24 rounded-full object-cover"),Kt(Q.src,w=v[0])||k(Q,"src",w),k(Q,"alt",v[4]),k(C,"class","text-neutral-500 text-xs font-medium"),k(V,"class","font-light text-center"),k(de,"class","max-w-[72ch] mx-auto flex flex-col items-center gap-4 mt-20"),k(d,"class","my-20 xl:mt-32 xl:mb-20"),k(T,"class","prose prose-lg dark:prose-invert prose-headings:font-medium prose-p:font-light max-w-[72ch] mx-auto"),k(p,"class","container")},m(se,G){Mt(document.head,n),t(se,f,G),t(se,p,G),Mt(p,d),Mt(d,a),Mt(a,u),Mt(d,c),Mt(d,de),Mt(de,Q),Mt(de,ye),Mt(de,V),Mt(V,b),Mt(V,ce),Mt(V,C),Mt(C,ke),Mt(p,oe),Mt(p,T),_&&_.m(T,null),fe=!0},p(se,[G]){(!fe||G&4)&&Xt(u,se[2]),(!fe||G&1&&!Kt(Q.src,w=se[0]))&&k(Q,"src",w),(!fe||G&16)&&k(Q,"alt",se[4]),(!fe||G&2)&&Xt(b,se[1]),(!fe||G&8)&&x!==(x=Sn(se[3])+"")&&Xt(ke,x),_&&_.p&&(!fe||G&1024)&&Ln(_,ie,se,se[10],fe?jn(ie,se[10],G,null):In(se[10]),null)},i(se){fe||(ft(_,se),fe=!0)},o(se){mt(_,se),fe=!1},d(se){se&&(e(f),e(p)),e(n),_&&_.d(se)}}}function qn(v,n,f){let{$$slots:p={},$$scope:d}=n,{data:a}=n,{form:u}=n,{title:c}=n,{pub_date:de}=n,{author:Q}=n,{tags:w}=n,{category:ye}=n,{summary:V}=n,{src:b=""}=n,{name:ce=""}=n;return En(async()=>{const C=await Bi(Q);Pn.setMetadata({title:`${An} | ${c}`,description:V,keywords:`${w}, ${ye}`,author:C?C.name:""}),f(0,b=C.src),f(1,ce=C.name)}),Fn(()=>{Pn.reset()}),v.$$set=C=>{"data"in C&&f(5,a=C.data),"form"in C&&f(6,u=C.form),"title"in C&&f(2,c=C.title),"pub_date"in C&&f(3,de=C.pub_date),"author"in C&&f(4,Q=C.author),"tags"in C&&f(7,w=C.tags),"category"in C&&f(8,ye=C.category),"summary"in C&&f(9,V=C.summary),"src"in C&&f(0,b=C.src),"name"in C&&f(1,ce=C.name),"$$scope"in C&&f(10,d=C.$$scope)},[b,ce,c,de,Q,a,u,w,ye,V,d,p]}class kt extends ht{constructor(n){super(),ct(this,n,qn,zn,pt,{data:5,form:6,title:2,pub_date:3,author:4,tags:7,category:8,summary:9,src:0,name:1})}}function On(v){let n,f=`STX Next, one of Europe’s largest Python development companies, has shared with us how Spyder has been a powerful tool for them when performing data analysis. +It is a pleasure for us on the Spyder team to work every day to improve the workflow of developers, scientists, engineers and data analysts. +We are very glad to receive and share a STX Next testimonial about Spyder, along with an interview with one of their developers, Michael Wiśniewski, who has found Spyder very useful in his job.`,p,d,a='The Company
The Company
',u,c,de="What Michael Wiśniewski says about Spyder",Q,w,ye=`In an era of a continuously growing demand for analysis of vast amounts of data, we are facing increasingly complex tasks to perform. +Sure, we are not alone—there are many great tools designed for scientists and data analysts. +We have NumPy, SciPy, Matplotlib, Pandas, and others. +But, wouldn’t it be nice to have one extra tool that could combine all the required packages into one compact working environment? Asking this question is precisely how my journey with Spyder began.`,V,b,ce=`In my opinion, Spyder is the go-to-solution that helps to speed up the data analysis processes. +For me, the biggest strength of this IDE is that it has all the benefits of Matlab/RStudio and makes them available to the Pythonista community. +It provides us with an easy-to-organize workspace that accommodates code, visualizations and shell in just one window. +Besides, the pane called variable explorer allows direct access to all data placed in the memory.`,C,x,ke=`Another cool feature is the tool’s integration with Jupyter notebooks. +Just open and browse different notebooks without thinking about server-side and file paths. +Want to run a single line of code or quickly check a chart update? IPython is on board and ready by default.`,oe,T,fe="Michael Wiśniewski’s interview",ie,_,se,G,S,Te=`I’m Michael Wiśniewski and I’ve been working at STX Next as a full-stack developer for over a year. +During this time, I was involved in various projects from many different areas—from typical web applications where I used Python and JavaScript to implementing ML solutions for image recognition on the nVidia Jetson platform. +After hours, my colleagues and I run a machine learning community of practice. Today, I’d like to share my thoughts on using Spyder.`,O,M,Se="How long have you been using Spyder?",P,m,be="I discovered Spyder around a year ago, at the time it was transitioning from version 3 to the current one.",me,B,Ie="How many people in your company use Spyder?",pe,K,je=`In my department, three of my colleagues use Spyder on a daily basis. +Some of them use it for commercial projects, while others use it for personal research. +The number is growing, since most people try Spyder out after their first contact with it.`,W,z,Ae="What kind of projects have you done using Spyder?",R,D,Ue=`I’ve found applications for Spyder in many different areas. +One time, I used it for a project that relied on machine learning algorithms to assess risk based on documents provided by a user. +Since Spyder aggregates out-of-the-box the most popular scientific Python packages, it was used during the whole development process, from data pre-processing and visualization to assessment of the final solution.`,ge,ne,Ne=`Another time, Spyder proved to be very helpful in a project involving the analysis of ancient religious texts. +The task was to create a script that would check file integrity and the correctness of the texts themselves. +Because of the large size of the data sets, the script had to be efficient and able to handle a lot of edge cases. +A built-in ipdb debugger and script profiler (together with the Spyder-memory-profiler plugin) was very helpful in achieving this goal.`,xe,X,Re=`To me, this IDE is also a great tool for conducting workshops. +The ability to discuss algorithms while visualizing their results in a separate plot panel, without the need to switch windows, greatly facilitates presentations.`,_e,Z,We="What are the Spyder features that you like the most?",g,L,Ve=`One of my personal favorites is the Variable Explorer and its integration withJupyter notebooks through the Spyder-notebook plugin. +I also greatly appreciate the way that plugin automatically handles Jupyter server management.`,U,J,Ze="Integration with Kite is also a great feature that makes it easier to use dozens of packages without the need to memorize all their methods and dependencies.",N,Y,Ye="I also highly enjoy the ability to manage Spyder’s window layouts, especially when using large/many displays.",Fe,we,Xe="How does Spyder make your workflow better?",$e,ve,Be=`The possibility to work on code, track its performance, debug it, and analyze visualized data at the same time is invaluable. +It saves time and helps me to stay focused longer.`,q,ee,tt=`The great thing about Spyder is that it allows you to compare several solutions side by side. +We can easily test several sets of given parameter values and examine how that affects a given function by observing charts.`,Ge,He,ot=`Interactive window tools often simplify and speed up code analysis. +For example, checking class inheritance via the new object explorer is clearer and immediately gives more information than when doing it through the editor.`,De,Me,it="What features would you like to see in the future in Spyder?",ze,Pe,nt=`Possibly further integration with Git services would be a good idea. +Personally, I like to use Git directly from the Spyder-terminal plugin together with the Gitk repository browser. +However, many users prefer to have some features like comparing file versions, conflict solving, and auto update changes to the repository built into the IDE.`,A,te,at="Closing remarks",Qe,Le,lt=`We would like to thank Michael Wiśniewski, Milosz Galganek and all the STX Next team for sharing their experiences with Spyder. +It is very important for us to provide a scientific tool that can make a positive impact on the amazing work our users are doing, and Michael’s testimony gives us great insight on how Spyder is making a difference in the real world and how to make it better for the future.`,Je,Ee,et=`If you have your own stories about how Spyder is helping you with a cool programming project, conduct critical scientific research, or use data to improve your community, we’d love to feature it here! +Feel free to reach out to us on Github, Gitter, Twitter, Facebook or our other platforms linked below if you’re interested. +We’re looking forward to hearing about what Spyder means to you! Happy Spydering!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("figure"),d.innerHTML=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),b=o("p"),b.textContent=ce,C=s(),x=o("p"),x.textContent=ke,oe=s(),T=o("h2"),T.textContent=fe,ie=s(),_=o("img"),G=s(),S=o("p"),S.innerHTML=Te,O=s(),M=o("h3"),M.innerHTML=Se,P=s(),m=o("p"),m.textContent=be,me=s(),B=o("h3"),B.innerHTML=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),z=o("h3"),z.innerHTML=Ae,R=s(),D=o("p"),D.innerHTML=Ue,ge=s(),ne=o("p"),ne.textContent=Ne,xe=s(),X=o("p"),X.textContent=Re,_e=s(),Z=o("h3"),Z.innerHTML=We,g=s(),L=o("p"),L.textContent=Ve,U=s(),J=o("p"),J.textContent=Ze,N=s(),Y=o("p"),Y.textContent=Ye,Fe=s(),we=o("h3"),we.innerHTML=Xe,$e=s(),ve=o("p"),ve.textContent=Be,q=s(),ee=o("p"),ee.textContent=tt,Ge=s(),He=o("p"),He.textContent=ot,De=s(),Me=o("h3"),Me.innerHTML=it,ze=s(),Pe=o("p"),Pe.textContent=nt,A=s(),te=o("h2"),te.textContent=at,Qe=s(),Le=o("p"),Le.textContent=lt,Je=s(),Ee=o("p"),Ee.innerHTML=et,this.h()},l(h){n=i(h,"P",{"data-svelte-h":!0}),l(n)!=="svelte-kews3d"&&(n.innerHTML=f),p=r(h),d=i(h,"FIGURE",{class:!0,"data-svelte-h":!0}),l(d)!=="svelte-5z9s7q"&&(d.innerHTML=a),u=r(h),c=i(h,"H2",{class:!0,"data-svelte-h":!0}),l(c)!=="svelte-fds9bo"&&(c.textContent=de),Q=r(h),w=i(h,"P",{"data-svelte-h":!0}),l(w)!=="svelte-tls944"&&(w.textContent=ye),V=r(h),b=i(h,"P",{"data-svelte-h":!0}),l(b)!=="svelte-11gdkg3"&&(b.textContent=ce),C=r(h),x=i(h,"P",{"data-svelte-h":!0}),l(x)!=="svelte-f7p1p0"&&(x.textContent=ke),oe=r(h),T=i(h,"H2",{class:!0,"data-svelte-h":!0}),l(T)!=="svelte-tyqqpr"&&(T.textContent=fe),ie=r(h),_=i(h,"IMG",{src:!0,alt:!0,style:!0}),G=r(h),S=i(h,"P",{"data-svelte-h":!0}),l(S)!=="svelte-r3tlcv"&&(S.innerHTML=Te),O=r(h),M=i(h,"H3",{class:!0,"data-svelte-h":!0}),l(M)!=="svelte-1u0qnka"&&(M.innerHTML=Se),P=r(h),m=i(h,"P",{"data-svelte-h":!0}),l(m)!=="svelte-kb9g40"&&(m.textContent=be),me=r(h),B=i(h,"H3",{class:!0,"data-svelte-h":!0}),l(B)!=="svelte-3h0xdv"&&(B.innerHTML=Ie),pe=r(h),K=i(h,"P",{"data-svelte-h":!0}),l(K)!=="svelte-1ftru3t"&&(K.textContent=je),W=r(h),z=i(h,"H3",{class:!0,"data-svelte-h":!0}),l(z)!=="svelte-qx6ucj"&&(z.innerHTML=Ae),R=r(h),D=i(h,"P",{"data-svelte-h":!0}),l(D)!=="svelte-fxaik2"&&(D.innerHTML=Ue),ge=r(h),ne=i(h,"P",{"data-svelte-h":!0}),l(ne)!=="svelte-1nrra0"&&(ne.textContent=Ne),xe=r(h),X=i(h,"P",{"data-svelte-h":!0}),l(X)!=="svelte-zabeqe"&&(X.textContent=Re),_e=r(h),Z=i(h,"H3",{class:!0,"data-svelte-h":!0}),l(Z)!=="svelte-15n1h4"&&(Z.innerHTML=We),g=r(h),L=i(h,"P",{"data-svelte-h":!0}),l(L)!=="svelte-18chqp3"&&(L.textContent=Ve),U=r(h),J=i(h,"P",{"data-svelte-h":!0}),l(J)!=="svelte-1govvtq"&&(J.textContent=Ze),N=r(h),Y=i(h,"P",{"data-svelte-h":!0}),l(Y)!=="svelte-1gpnatq"&&(Y.textContent=Ye),Fe=r(h),we=i(h,"H3",{class:!0,"data-svelte-h":!0}),l(we)!=="svelte-t88324"&&(we.innerHTML=Xe),$e=r(h),ve=i(h,"P",{"data-svelte-h":!0}),l(ve)!=="svelte-ql0rbr"&&(ve.textContent=Be),q=r(h),ee=i(h,"P",{"data-svelte-h":!0}),l(ee)!=="svelte-1g3s3gx"&&(ee.textContent=tt),Ge=r(h),He=i(h,"P",{"data-svelte-h":!0}),l(He)!=="svelte-xt4eh4"&&(He.textContent=ot),De=r(h),Me=i(h,"H3",{class:!0,"data-svelte-h":!0}),l(Me)!=="svelte-of4y7"&&(Me.innerHTML=it),ze=r(h),Pe=i(h,"P",{"data-svelte-h":!0}),l(Pe)!=="svelte-yme7yj"&&(Pe.textContent=nt),A=r(h),te=i(h,"H2",{class:!0,"data-svelte-h":!0}),l(te)!=="svelte-1mvchr8"&&(te.textContent=at),Qe=r(h),Le=i(h,"P",{"data-svelte-h":!0}),l(Le)!=="svelte-p7lgn8"&&(Le.textContent=lt),Je=r(h),Ee=i(h,"P",{"data-svelte-h":!0}),l(Ee)!=="svelte-iukeoi"&&(Ee.innerHTML=et),this.h()},h(){k(d,"class","figure text-center"),k(c,"class","section"),k(T,"class","section"),Kt(_.src,se="profile.png")||k(_,"src",se),k(_,"alt","Michael Wiśniewski"),Jt(_,"margin-top","0.5em"),Jt(_,"width","200px"),Jt(_,"margin-right","1em"),Jt(_,"float","left"),k(M,"class","subsection"),k(B,"class","subsection"),k(z,"class","subsection"),k(Z,"class","subsection"),k(we,"class","subsection"),k(Me,"class","subsection"),k(te,"class","section")},m(h,E){t(h,n,E),t(h,p,E),t(h,d,E),t(h,u,E),t(h,c,E),t(h,Q,E),t(h,w,E),t(h,V,E),t(h,b,E),t(h,C,E),t(h,x,E),t(h,oe,E),t(h,T,E),t(h,ie,E),t(h,_,E),t(h,G,E),t(h,S,E),t(h,O,E),t(h,M,E),t(h,P,E),t(h,m,E),t(h,me,E),t(h,B,E),t(h,pe,E),t(h,K,E),t(h,W,E),t(h,z,E),t(h,R,E),t(h,D,E),t(h,ge,E),t(h,ne,E),t(h,xe,E),t(h,X,E),t(h,_e,E),t(h,Z,E),t(h,g,E),t(h,L,E),t(h,U,E),t(h,J,E),t(h,N,E),t(h,Y,E),t(h,Fe,E),t(h,we,E),t(h,$e,E),t(h,ve,E),t(h,q,E),t(h,ee,E),t(h,Ge,E),t(h,He,E),t(h,De,E),t(h,Me,E),t(h,ze,E),t(h,Pe,E),t(h,A,E),t(h,te,E),t(h,Qe,E),t(h,Le,E),t(h,Je,E),t(h,Ee,E)},p:yt,d(h){h&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(Fe),e(we),e($e),e(ve),e(q),e(ee),e(Ge),e(He),e(De),e(Me),e(ze),e(Pe),e(A),e(te),e(Qe),e(Le),e(Je),e(Ee))}}}function Un(v){let n,f;const p=[v[0],en];let d={$$slots:{default:[On]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Rn=class extends ht{constructor(n){super(),ct(this,n,Dn,Un,pt,{})}};const Wn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn,metadata:en},Symbol.toStringTag,{value:"Module"}));function Nn(v){let n,f=`For the last several years, Spyder has offered standalone installers for Windows and macOS which isolate Spyder’s runtime environment from users’ development environments. +This provides a more stable user experience than traditional conda or pip installation methods. +However, these standalone installers did not allow implementing desirable features, such as automatic incremental updates or installing external Spyder plugins like Spyder-Notebook and Spyder-Unittest. +Additionally, these standalone applications were limited to Windows and macOS.`,p,d,a=`Our new installers will provide a more consistent experience for users across all platforms, including Linux, while maintaining the benefits of an isolated runtime environment for Spyder. +Additionally, they are fully compatible with incremental updates and external plugin management. +Look for future announcements about these and other features!`,u,c,de=`So, what will you see with these new installers? +If you are a Windows user, you will continue to have a graphical interface guiding you through the installation process, and will likely not notice any difference from the previous experience.`,Q,w,ye='Windows installer
Windows installer
',V,b,ce=`If you are a macOS user, you will now have a .pkg package installer instead of a .dmg disk image. +Rather than drag-and-drop the application to the Applications folder, the .pkg installer provides a graphical interface that will guide you through the installation process with more flexibility.`,C,x,ke='macOS installer
macOS installer
',oe,T,fe=`If you are a Linux user, you will have an interactive shell script guiding you through the installation process. +This ensures it is compatible with as many distributions and desktop environments as possible.`,ie,_,se='Linux installer
Linux installer
',G,S,Te=`In all cases, you will not need to have Anaconda installed, nor do you need an existing Python environment; in fact, you don’t even need a preexisting Python installation! +These installers are completely self-contained. +Spyder will continue to include popular packages such as NumPy, SciPy, Pandas and Matplotlib so you can start coding out-of-the-box. +However, you will still be able to use Spyder with your existing conda, venv, Python.org, and other Python installers and environments as before. +Furthermore, only Spyder and its critical dependencies will be updated on each new release, which will make getting the latest version a lean and frictionless process.`,O,M,Se="The Spyder team is really excited about these new installers and the new features they will make possible, and we hope you enjoy them too!";return{c(){n=o("p"),n.textContent=f,p=s(),d=o("p"),d.textContent=a,u=s(),c=o("p"),c.textContent=de,Q=s(),w=o("figure"),w.innerHTML=ye,V=s(),b=o("p"),b.innerHTML=ce,C=s(),x=o("figure"),x.innerHTML=ke,oe=s(),T=o("p"),T.textContent=fe,ie=s(),_=o("figure"),_.innerHTML=se,G=s(),S=o("p"),S.textContent=Te,O=s(),M=o("p"),M.textContent=Se,this.h()},l(P){n=i(P,"P",{"data-svelte-h":!0}),l(n)!=="svelte-17k8m9n"&&(n.textContent=f),p=r(P),d=i(P,"P",{"data-svelte-h":!0}),l(d)!=="svelte-1xb2iod"&&(d.textContent=a),u=r(P),c=i(P,"P",{"data-svelte-h":!0}),l(c)!=="svelte-1hp8xla"&&(c.textContent=de),Q=r(P),w=i(P,"FIGURE",{class:!0,"data-svelte-h":!0}),l(w)!=="svelte-9wqegd"&&(w.innerHTML=ye),V=r(P),b=i(P,"P",{"data-svelte-h":!0}),l(b)!=="svelte-1gj7hcv"&&(b.innerHTML=ce),C=r(P),x=i(P,"FIGURE",{class:!0,"data-svelte-h":!0}),l(x)!=="svelte-c5yjdh"&&(x.innerHTML=ke),oe=r(P),T=i(P,"P",{"data-svelte-h":!0}),l(T)!=="svelte-1rk3wa0"&&(T.textContent=fe),ie=r(P),_=i(P,"FIGURE",{class:!0,"data-svelte-h":!0}),l(_)!=="svelte-na9h90"&&(_.innerHTML=se),G=r(P),S=i(P,"P",{"data-svelte-h":!0}),l(S)!=="svelte-d1uzh2"&&(S.textContent=Te),O=r(P),M=i(P,"P",{"data-svelte-h":!0}),l(M)!=="svelte-6951fz"&&(M.textContent=Se),this.h()},h(){k(w,"class","figure text-center"),k(x,"class","figure text-center"),k(_,"class","figure text-center")},m(P,m){t(P,n,m),t(P,p,m),t(P,d,m),t(P,u,m),t(P,c,m),t(P,Q,m),t(P,w,m),t(P,V,m),t(P,b,m),t(P,C,m),t(P,x,m),t(P,oe,m),t(P,T,m),t(P,ie,m),t(P,_,m),t(P,G,m),t(P,S,m),t(P,O,m),t(P,M,m)},p:yt,d(P){P&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M))}}}function Qn(v){let n,f;const p=[v[0],tn];let d={$$slots:{default:[Nn]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Bn=class extends ht{constructor(n){super(),ct(this,n,Vn,Qn,pt,{})}};const Jn=Object.freeze(Object.defineProperty({__proto__:null,default:Bn,metadata:tn},Symbol.toStringTag,{value:"Module"}));function Kn(v){let n,f=`During the last few years, Spyder has positioned itself as a popular data science IDE by combining interactive computing and ease of use with robust programming tools. +However, limited remote development support compared to some other IDEs has hindered adoption, as many users would like to work with data and code on high performance computing (HPC) clusters or cloud providers like AWS, GCP or DigitalOcean while developing on their personal computers. Adding such features would open up many new research possibilities by enabling the scientific community to tackle data and compute-intensive programming tasks from the ease and efficiency of their local development environments. Thanks to a two-year grant from the Chan Zuckerberg Initiative, we will be now able to address this shortcoming.`,p,d,a=`Right now, users have two main options to work remotely using a local IDE (aside from a purely web browser-based approach, which is sometimes not available or desirable): +They can either edit and execute their files in a terminal, which is not user-friendly; or start their IDE on the server and display it locally, which is typically slow, resource-intensive and difficult to set up. Furthermore, scientists typically find it difficult to sync remote files to the local machine and version control their code on the remote one, so remote changes are often lost, out of sync or difficult to integrate with code developed locally.`,u,c,de=`To address this situation, we will add and enhance support for local Spyder installations to run code and sync files on remote servers and clusters. +The first step in that direction is to enhance the existing remote code execution features in Spyder, as the current workflow is error-prone and quite cumbersome. +It requires users to install the Spyder-Kernels package on the remote machine, manually start a kernel on it and provide the kernel connection file to the local machine.`,Q,w,ye='Dialog to create a connection to a remote kernel
Dialog to create a connection to a remote kernel
',V,b,ce="Since Spyder does not currently have a way to identify and store state changes, users currently have to repeat this costly setup process if there are any configuration modifications on the remote machine. Our plan is to fully automate this procedure so that Spyder can start and connect to a remote kernel automatically, with the user only needing to provide their SSH credentials and specify the Python environment they want to use.",C,x,ke='After that is implemented, we will add support to create and manage remote Python environments, explore the remote filesystem in the Files pane, and edit remote files in the Editor. This will make most of the core Spyder functionality work when developing code remotely. In addition, users will be able to easily start system shells connected to the server once we implement that capability in Spyder-Terminal. This will allow the remote execution of any operating system-level command or program, such as Git commit and push instructions.',oe,T,fe='Finally, we want to announce that we’re hiring for this project! We are looking for a Python developer with solid networking knowledge to help us implement the backend infrastructure that will power the features described above. This is a part time position to work as a contractor through NumFOCUS; it does not require experience with PyQt (although some would be beneficial) and it lasts until the end of the year, with the possibility to renew the contract for the next. Interested? Contact me to talk more about it!',ie,_,se="We hope you will be as thrilled as we are by this fantastic news, and are looking forward to sharing more with you on this project in the near future!";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.textContent=a,u=s(),c=o("p"),c.textContent=de,Q=s(),w=o("figure"),w.innerHTML=ye,V=s(),b=o("p"),b.textContent=ce,C=s(),x=o("p"),x.innerHTML=ke,oe=s(),T=o("p"),T.innerHTML=fe,ie=s(),_=o("p"),_.textContent=se,this.h()},l(G){n=i(G,"P",{"data-svelte-h":!0}),l(n)!=="svelte-1g1hb0u"&&(n.innerHTML=f),p=r(G),d=i(G,"P",{"data-svelte-h":!0}),l(d)!=="svelte-17bxxnw"&&(d.textContent=a),u=r(G),c=i(G,"P",{"data-svelte-h":!0}),l(c)!=="svelte-5icbhl"&&(c.textContent=de),Q=r(G),w=i(G,"FIGURE",{class:!0,"data-svelte-h":!0}),l(w)!=="svelte-agpeml"&&(w.innerHTML=ye),V=r(G),b=i(G,"P",{"data-svelte-h":!0}),l(b)!=="svelte-11hbk73"&&(b.textContent=ce),C=r(G),x=i(G,"P",{"data-svelte-h":!0}),l(x)!=="svelte-16qirh4"&&(x.innerHTML=ke),oe=r(G),T=i(G,"P",{"data-svelte-h":!0}),l(T)!=="svelte-dehezw"&&(T.innerHTML=fe),ie=r(G),_=i(G,"P",{"data-svelte-h":!0}),l(_)!=="svelte-17tyvcv"&&(_.textContent=se),this.h()},h(){k(w,"class","figure text-center")},m(G,S){t(G,n,S),t(G,p,S),t(G,d,S),t(G,u,S),t(G,c,S),t(G,Q,S),t(G,w,S),t(G,V,S),t(G,b,S),t(G,C,S),t(G,x,S),t(G,oe,S),t(G,T,S),t(G,ie,S),t(G,_,S)},p:yt,d(G){G&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_))}}}function Zn(v){let n,f;const p=[v[0],nn];let d={$$slots:{default:[Kn]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Xn=class extends ht{constructor(n){super(),ct(this,n,Yn,Zn,pt,{})}};const eo=Object.freeze(Object.defineProperty({__proto__:null,default:Xn,metadata:nn},Symbol.toStringTag,{value:"Module"}));function to(v){let n,f='Juan Sebastian Bautista, C.A.M. Gerlach and Carlos Cordoba also contributed to this post.',p,d,a=`Spyder 5.4.0 was released recently, featuring some major enhancements to its Windows and macOS standalone installers. +You’ll now get more detailed feedback when new versions are available, and you can download and start the update to them from right within Spyder, instead of having to install them manually. +In this post, we’ll go over how these new update features work and how you can start using them!`,u,c,de='Before proceeding, we want to acknowledge that this work was made possible by a Small Development Grant awarded to Spyder by NumFOCUS, which has enabled us to hire a new developer (Juan Sebastian Bautista Rojas) to be in charge of all the implementation details.',Q,w,ye=`Before these improvements, Spyder already had a mechanism to detect more recent versions, but that functionality was very simple. +There was a pop-up dialog warning that a new version was available, but users had to follow a link to manually download the installer and then run it themselves:`,V,b,ce='Update available dialog from Spyder version 5.3.3 to 5.4.0 - Old update available dialog
Update available dialog from Spyder version 5.3.3 to 5.4.0 - Old update available dialog
',C,x,ke="Once you upgrade to Spyder 5.4.0 or above, you’ll get this message on future Spyder updates:",oe,T,fe='Update available dialog from Spyder version 5.4.0 to 5.4.1 - New update available dialog
Update available dialog from Spyder version 5.4.0 to 5.4.1 - New update available dialog
',ie,_,se="Spyder will now be able to automatically download and install a new version for you, much like many other popular applications.",G,S,Te="After clicking “Yes” on that dialog, Spyder will display another with the status and percent completion of the download.",O,M,Se='Dialog downloading Spyder 5.4.1 installer
Dialog downloading Spyder 5.4.1 installer
',P,m,be="If it is closed, the download will continue in the background, with its progress shown in a new status bar widget.",me,B,Ie='User clicking the update status in the taskbar to monitor the download status
User clicking the update status in the taskbar to monitor the download status
',pe,K,je="After the download completes, Spyder will ask if you want to update immediately, cancel the update or defer it to when you close Spyder, to avoid interrupting your current workflow.",W,z,Ae='Options available to run installer, run installer after Spyder closes or not run it at all
Options available to run installer, run installer after Spyder closes or not run it at all
',R,D,Ue=`If you chose to update immediately, or once you close Spyder if you deferred the update, our installer will be started automatically. +On Windows, the installer has a series of automated prompts to close the current instance, uninstall the previous version and finally install the new one:`,ge,ne,Ne='Series of screenshots of installation steps, with arrows between: Yes/no dialog to close spyder, confirm close dialog, uninstall old version dialog, uninstalling status and finally installation wizard
Series of screenshots of installation steps, with arrows between: Yes/no dialog to close spyder, confirm close dialog, uninstall old version dialog, uninstalling status and finally installation wizard
',xe,X,Re="On macOS, Spyder will automatically mount the new version’s DMG, so you can simply drag and drop it in the Applications folder",_e,Z,We='macOS new version's DMG mounted with a drag and drop dialog to move new Spyder version into the Application folder
macOS new version's DMG mounted with a drag and drop dialog to move new Spyder version into the Application folder
',g,L,Ve="We hope these improvements will make updating to future Spyder versions smoother and more straightforward, so we can bring you new features and enhancements more easily in the future!";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),b=o("figure"),b.innerHTML=ce,C=s(),x=o("p"),x.textContent=ke,oe=s(),T=o("figure"),T.innerHTML=fe,ie=s(),_=o("p"),_.textContent=se,G=s(),S=o("p"),S.textContent=Te,O=s(),M=o("figure"),M.innerHTML=Se,P=s(),m=o("p"),m.textContent=be,me=s(),B=o("figure"),B.innerHTML=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),z=o("figure"),z.innerHTML=Ae,R=s(),D=o("p"),D.textContent=Ue,ge=s(),ne=o("figure"),ne.innerHTML=Ne,xe=s(),X=o("p"),X.textContent=Re,_e=s(),Z=o("figure"),Z.innerHTML=We,g=s(),L=o("p"),L.textContent=Ve,this.h()},l(U){n=i(U,"P",{"data-svelte-h":!0}),l(n)!=="svelte-1ftrv0b"&&(n.innerHTML=f),p=r(U),d=i(U,"P",{"data-svelte-h":!0}),l(d)!=="svelte-17vnzk9"&&(d.innerHTML=a),u=r(U),c=i(U,"P",{"data-svelte-h":!0}),l(c)!=="svelte-ioyfa7"&&(c.innerHTML=de),Q=r(U),w=i(U,"P",{"data-svelte-h":!0}),l(w)!=="svelte-16nh17h"&&(w.textContent=ye),V=r(U),b=i(U,"FIGURE",{class:!0,"data-svelte-h":!0}),l(b)!=="svelte-jxm6wb"&&(b.innerHTML=ce),C=r(U),x=i(U,"P",{"data-svelte-h":!0}),l(x)!=="svelte-v1njoz"&&(x.textContent=ke),oe=r(U),T=i(U,"FIGURE",{class:!0,"data-svelte-h":!0}),l(T)!=="svelte-r916za"&&(T.innerHTML=fe),ie=r(U),_=i(U,"P",{"data-svelte-h":!0}),l(_)!=="svelte-1vp66pc"&&(_.textContent=se),G=r(U),S=i(U,"P",{"data-svelte-h":!0}),l(S)!=="svelte-ibvyz7"&&(S.textContent=Te),O=r(U),M=i(U,"FIGURE",{class:!0,"data-svelte-h":!0}),l(M)!=="svelte-1km58h1"&&(M.innerHTML=Se),P=r(U),m=i(U,"P",{"data-svelte-h":!0}),l(m)!=="svelte-poq8kp"&&(m.textContent=be),me=r(U),B=i(U,"FIGURE",{class:!0,"data-svelte-h":!0}),l(B)!=="svelte-1kes4mj"&&(B.innerHTML=Ie),pe=r(U),K=i(U,"P",{"data-svelte-h":!0}),l(K)!=="svelte-12d0ric"&&(K.textContent=je),W=r(U),z=i(U,"FIGURE",{class:!0,"data-svelte-h":!0}),l(z)!=="svelte-5mmyvh"&&(z.innerHTML=Ae),R=r(U),D=i(U,"P",{"data-svelte-h":!0}),l(D)!=="svelte-pnhb8r"&&(D.textContent=Ue),ge=r(U),ne=i(U,"FIGURE",{class:!0,"data-svelte-h":!0}),l(ne)!=="svelte-1y50dd9"&&(ne.innerHTML=Ne),xe=r(U),X=i(U,"P",{"data-svelte-h":!0}),l(X)!=="svelte-7cjgq9"&&(X.textContent=Re),_e=r(U),Z=i(U,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Z)!=="svelte-im6kz2"&&(Z.innerHTML=We),g=r(U),L=i(U,"P",{"data-svelte-h":!0}),l(L)!=="svelte-1443q5a"&&(L.textContent=Ve),this.h()},h(){k(b,"class","figure text-center"),k(T,"class","figure text-center"),k(M,"class","figure text-center"),k(B,"class","figure text-center"),k(z,"class","figure text-center"),k(ne,"class","figure text-center"),k(Z,"class","figure text-center")},m(U,J){t(U,n,J),t(U,p,J),t(U,d,J),t(U,u,J),t(U,c,J),t(U,Q,J),t(U,w,J),t(U,V,J),t(U,b,J),t(U,C,J),t(U,x,J),t(U,oe,J),t(U,T,J),t(U,ie,J),t(U,_,J),t(U,G,J),t(U,S,J),t(U,O,J),t(U,M,J),t(U,P,J),t(U,m,J),t(U,me,J),t(U,B,J),t(U,pe,J),t(U,K,J),t(U,W,J),t(U,z,J),t(U,R,J),t(U,D,J),t(U,ge,J),t(U,ne,J),t(U,xe,J),t(U,X,J),t(U,_e,J),t(U,Z,J),t(U,g,J),t(U,L,J)},p:yt,d(U){U&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L))}}}function no(v){let n,f;const p=[v[0],on];let d={$$slots:{default:[to]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let io=class extends ht{constructor(n){super(),ct(this,n,oo,no,pt,{})}};const lo=Object.freeze(Object.defineProperty({__proto__:null,default:io,metadata:on},Symbol.toStringTag,{value:"Module"}));function ao(v){let n,f='Automatic testing can increase the quality of your code. This is especially true of dynamic languages like Python, where a typo may only be noticed when that particular code path is executed. The new Spyder unittest plugin lets you run tests and view the results, all within the IDE. Here, I’ll demonstrate what it can do by way of a real-world example.',p,d,a='There are numerous unit testing frameworks available for Python, of which the plugin supports several of the most prominent. However, I’m using my favorite here, pytest. I prefer to write the tests in a separate file from the code, so that’s what I’ll do here.',u,c,de="Installing the plugin",Q,w,ye="If you use the Anaconda distribution (as we recommend), then you can install the Spyder unittest plugin with the command",V,b,ce,C='conda install -c spyder-ide spyder-unittest',x,ke,oe="This will also grab all its mandatory dependencies (including Spyder itself if necessary). The -c option instructs conda to use the custom channel spyder-ide run by the Spyder developers, since the plugin isn’t part of the default channel.",T,fe,ie="Since we will be using the pytest framework, you also need to install it:",_,se,G,S='conda install pytest',Te,O,M="We’ll be running Python 3.6.4, Spyder 3.2.6, spyder-unittest 0.3.0 and pytest 3.3.2 for this example.",Se,P,m="Creating a project",be,me,B="I’ll be using separate files for the tests and the code to be tested, so let’s start by creating a project which will contain these files. In the Projects menu, click on New Project .... Enter a name for the project (in my example, prime_example), and under Location, select the directory in which to store it. Click Create.",Ie,pe,K=''Create new project' window
'Create new project' window
',je,W,z="Writing code to be tested",Ae,R,D="Create a Python file primes.py with the following function, which checks whether a number is prime:",Ue,ge,ne,Ne=`def is_prime(number): + """Return True if `number` is prime.""" + for element in range(2, number): + if number % element == 0: + return False + return True`,xe,X,Re='This example is taken from the blog post Improve Your Python: Understanding Unit Testing by Jeff Knupp.',_e,Z,We="Writing the tests",g,L,Ve="To test our is_prime function, we will write two tests: one to check that 5 is considered a prime, and one to ensure 4 is not. They can be implemented as follows:",U,J,Ze,N=`from primes import is_prime + +def test_five_is_prime(): + assert is_prime(5) == True + +def test_four_is_not_prime(): + assert is_prime(4) == False`,Y,Ye,Fe="One of the cool things about pytest is that it can find the tests automatically, so you don’t need to mark them in any way. By default pytest uses a naming convention: all functions starting with test_ in files starting with test_ are considered test functions. We’ll save the code in the file test_primes.py which follows this naming convention.",we,Xe,$e="In Spyder, the project now looks as follows:",ve,Be,q='Spyder window with code
Spyder window with code
',ee,tt,Ge="Running the tests",He,ot,De="Now comes the fun part, where we actually get to use the plugin. In the Run menu, select Run unit tests. If you do not see this menu item, then the plugin is not installed; refer to the installation instructions above.",Me,it,ze="A window appears in which to configure the test run. One of the advantages of using a project is that it is automatically selected as the directory in which to find tests (another advantage is that Spyder will remember the testing configuration). So the only thing we need to do is select the test framework, which is pytest.",Pe,nt,A=''Configure tests' window
'Configure tests' window
',te,at,Qe="Press the OK button to run the tests, and lo and behold, the results appear in a new pane called “Unit testing”:",Le,lt,Je='Test results in Spyder windows
Test results in Spyder windows
',Ee,et,h="As you can see, both tests pass. This means that our function correctly identifies 5 as prime and 4 as not prime.",E,st,ut="A failing test",Ke,rt,F="Unfortunately, our function is_prime has a bug. The number 1 is not considered a prime, but is_prime(1) in fact returns True. Therefore, to test for this, we add the following code to test_primes.py:",le,dt,$,y=`def test_one_is_not_prime(): + assert is_prime(1) == False`,he,_t,Lt="Now, run the tests again by clicking on Run unit tests in the Run menu. Spyder remembers the configuration so you are not asked for it again. This time, the results are:",At,Ct,Ft='Test results in Spyder windows
Test results in Spyder windows
',Gt,Tt,It="Our new test fails. The details clarify that is_prime(1) returns True, while the assert in the test function claims that it should return False.",zt,St,jt="Where to go from here",qt,Pt,$t="With this demonstration under your belt, you should be able to write tests for your code and run them with the plugin. For example, try fixing the bug so that 1 is correctly identified as non-prime, and run the tests again to check verify it.",I,ae,Et='Spyder-unittest supports not only the pytest framework, but also the nose framework and the unittest module in the Python standard library. It is still fairly new (as its version number suggests), so I look forward to your comments. Please send your ideas, bug reports and pull requests to the spyder-unittest repo on Github.',Qt,Ot,Ut="Happy Spydering with automatic tests!";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),b=o("pre"),ce=new Wt(!1),x=s(),ke=o("p"),ke.innerHTML=oe,T=s(),fe=o("p"),fe.innerHTML=ie,_=s(),se=o("pre"),G=new Wt(!1),Te=s(),O=o("p"),O.innerHTML=M,Se=s(),P=o("h2"),P.textContent=m,be=s(),me=o("p"),me.innerHTML=B,Ie=s(),pe=o("figure"),pe.innerHTML=K,je=s(),W=o("h2"),W.textContent=z,Ae=s(),R=o("p"),R.innerHTML=D,Ue=s(),ge=o("pre"),ne=new Wt(!1),xe=s(),X=o("p"),X.innerHTML=Re,_e=s(),Z=o("h2"),Z.textContent=We,g=s(),L=o("p"),L.innerHTML=Ve,U=s(),J=o("pre"),Ze=new Wt(!1),Y=s(),Ye=o("p"),Ye.innerHTML=Fe,we=s(),Xe=o("p"),Xe.textContent=$e,ve=s(),Be=o("figure"),Be.innerHTML=q,ee=s(),tt=o("h2"),tt.textContent=Ge,He=s(),ot=o("p"),ot.innerHTML=De,Me=s(),it=o("p"),it.innerHTML=ze,Pe=s(),nt=o("figure"),nt.innerHTML=A,te=s(),at=o("p"),at.innerHTML=Qe,Le=s(),lt=o("figure"),lt.innerHTML=Je,Ee=s(),et=o("p"),et.innerHTML=h,E=s(),st=o("h2"),st.textContent=ut,Ke=s(),rt=o("p"),rt.innerHTML=F,le=s(),dt=o("pre"),$=new Wt(!1),he=s(),_t=o("p"),_t.innerHTML=Lt,At=s(),Ct=o("figure"),Ct.innerHTML=Ft,Gt=s(),Tt=o("p"),Tt.innerHTML=It,zt=s(),St=o("h2"),St.textContent=jt,qt=s(),Pt=o("p"),Pt.innerHTML=$t,I=s(),ae=o("p"),ae.innerHTML=Et,Qt=s(),Ot=o("p"),Ot.textContent=Ut,this.h()},l(j){n=i(j,"P",{"data-svelte-h":!0}),l(n)!=="svelte-10px6oi"&&(n.innerHTML=f),p=r(j),d=i(j,"P",{"data-svelte-h":!0}),l(d)!=="svelte-k0bcfd"&&(d.innerHTML=a),u=r(j),c=i(j,"H2",{class:!0,"data-svelte-h":!0}),l(c)!=="svelte-kfy64d"&&(c.textContent=de),Q=r(j),w=i(j,"P",{"data-svelte-h":!0}),l(w)!=="svelte-16t9tw8"&&(w.textContent=ye),V=r(j),b=i(j,"PRE",{class:!0});var re=Ht(b);ce=Nt(re,!1),re.forEach(e),x=r(j),ke=i(j,"P",{"data-svelte-h":!0}),l(ke)!=="svelte-njy31v"&&(ke.innerHTML=oe),T=r(j),fe=i(j,"P",{"data-svelte-h":!0}),l(fe)!=="svelte-1sexflf"&&(fe.innerHTML=ie),_=r(j),se=i(j,"PRE",{class:!0});var Dt=Ht(se);G=Nt(Dt,!1),Dt.forEach(e),Te=r(j),O=i(j,"P",{"data-svelte-h":!0}),l(O)!=="svelte-1xrf77s"&&(O.innerHTML=M),Se=r(j),P=i(j,"H2",{class:!0,"data-svelte-h":!0}),l(P)!=="svelte-txs3l7"&&(P.textContent=m),be=r(j),me=i(j,"P",{"data-svelte-h":!0}),l(me)!=="svelte-1245yxu"&&(me.innerHTML=B),Ie=r(j),pe=i(j,"FIGURE",{class:!0,"data-svelte-h":!0}),l(pe)!=="svelte-pdn6xi"&&(pe.innerHTML=K),je=r(j),W=i(j,"H2",{class:!0,"data-svelte-h":!0}),l(W)!=="svelte-1v4ahdm"&&(W.textContent=z),Ae=r(j),R=i(j,"P",{"data-svelte-h":!0}),l(R)!=="svelte-1xjia97"&&(R.innerHTML=D),Ue=r(j),ge=i(j,"PRE",{class:!0});var Bt=Ht(ge);ne=Nt(Bt,!1),Bt.forEach(e),xe=r(j),X=i(j,"P",{"data-svelte-h":!0}),l(X)!=="svelte-16e9nmo"&&(X.innerHTML=Re),_e=r(j),Z=i(j,"H2",{class:!0,"data-svelte-h":!0}),l(Z)!=="svelte-16ooc6o"&&(Z.textContent=We),g=r(j),L=i(j,"P",{"data-svelte-h":!0}),l(L)!=="svelte-f8jn7"&&(L.innerHTML=Ve),U=r(j),J=i(j,"PRE",{class:!0});var Vt=Ht(J);Ze=Nt(Vt,!1),Vt.forEach(e),Y=r(j),Ye=i(j,"P",{"data-svelte-h":!0}),l(Ye)!=="svelte-eb8p40"&&(Ye.innerHTML=Fe),we=r(j),Xe=i(j,"P",{"data-svelte-h":!0}),l(Xe)!=="svelte-1yiixpi"&&(Xe.textContent=$e),ve=r(j),Be=i(j,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Be)!=="svelte-12l1tnd"&&(Be.innerHTML=q),ee=r(j),tt=i(j,"H2",{class:!0,"data-svelte-h":!0}),l(tt)!=="svelte-1h4aoe5"&&(tt.textContent=Ge),He=r(j),ot=i(j,"P",{"data-svelte-h":!0}),l(ot)!=="svelte-23q0zs"&&(ot.innerHTML=De),Me=r(j),it=i(j,"P",{"data-svelte-h":!0}),l(it)!=="svelte-109famq"&&(it.innerHTML=ze),Pe=r(j),nt=i(j,"FIGURE",{class:!0,"data-svelte-h":!0}),l(nt)!=="svelte-rlfdz"&&(nt.innerHTML=A),te=r(j),at=i(j,"P",{"data-svelte-h":!0}),l(at)!=="svelte-ksdppo"&&(at.innerHTML=Qe),Le=r(j),lt=i(j,"FIGURE",{class:!0,"data-svelte-h":!0}),l(lt)!=="svelte-1rl7r1z"&&(lt.innerHTML=Je),Ee=r(j),et=i(j,"P",{"data-svelte-h":!0}),l(et)!=="svelte-j36jai"&&(et.innerHTML=h),E=r(j),st=i(j,"H2",{class:!0,"data-svelte-h":!0}),l(st)!=="svelte-btgw7r"&&(st.textContent=ut),Ke=r(j),rt=i(j,"P",{"data-svelte-h":!0}),l(rt)!=="svelte-16ntxvs"&&(rt.innerHTML=F),le=r(j),dt=i(j,"PRE",{class:!0});var Rt=Ht(dt);$=Nt(Rt,!1),Rt.forEach(e),he=r(j),_t=i(j,"P",{"data-svelte-h":!0}),l(_t)!=="svelte-uptah"&&(_t.innerHTML=Lt),At=r(j),Ct=i(j,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Ct)!=="svelte-cmchqd"&&(Ct.innerHTML=Ft),Gt=r(j),Tt=i(j,"P",{"data-svelte-h":!0}),l(Tt)!=="svelte-15ajb52"&&(Tt.innerHTML=It),zt=r(j),St=i(j,"H2",{class:!0,"data-svelte-h":!0}),l(St)!=="svelte-1u9atu6"&&(St.textContent=jt),qt=r(j),Pt=i(j,"P",{"data-svelte-h":!0}),l(Pt)!=="svelte-rz1utf"&&(Pt.innerHTML=$t),I=r(j),ae=i(j,"P",{"data-svelte-h":!0}),l(ae)!=="svelte-1e7smp0"&&(ae.innerHTML=Et),Qt=r(j),Ot=i(j,"P",{"data-svelte-h":!0}),l(Ot)!=="svelte-uewclk"&&(Ot.textContent=Ut),this.h()},h(){k(c,"class","section"),ce.a=null,k(b,"class","language-bash"),G.a=null,k(se,"class","language-bash"),k(P,"class","section"),k(pe,"class","figure text-center"),k(W,"class","section"),ne.a=null,k(ge,"class","language-python"),k(Z,"class","section"),Ze.a=null,k(J,"class","language-python"),k(Be,"class","figure text-center"),k(tt,"class","section"),k(nt,"class","figure text-center"),k(lt,"class","figure text-center"),k(st,"class","section"),$.a=null,k(dt,"class","language-python"),k(Ct,"class","figure text-center"),k(St,"class","section")},m(j,re){t(j,n,re),t(j,p,re),t(j,d,re),t(j,u,re),t(j,c,re),t(j,Q,re),t(j,w,re),t(j,V,re),t(j,b,re),ce.m(C,b),t(j,x,re),t(j,ke,re),t(j,T,re),t(j,fe,re),t(j,_,re),t(j,se,re),G.m(S,se),t(j,Te,re),t(j,O,re),t(j,Se,re),t(j,P,re),t(j,be,re),t(j,me,re),t(j,Ie,re),t(j,pe,re),t(j,je,re),t(j,W,re),t(j,Ae,re),t(j,R,re),t(j,Ue,re),t(j,ge,re),ne.m(Ne,ge),t(j,xe,re),t(j,X,re),t(j,_e,re),t(j,Z,re),t(j,g,re),t(j,L,re),t(j,U,re),t(j,J,re),Ze.m(N,J),t(j,Y,re),t(j,Ye,re),t(j,we,re),t(j,Xe,re),t(j,ve,re),t(j,Be,re),t(j,ee,re),t(j,tt,re),t(j,He,re),t(j,ot,re),t(j,Me,re),t(j,it,re),t(j,Pe,re),t(j,nt,re),t(j,te,re),t(j,at,re),t(j,Le,re),t(j,lt,re),t(j,Ee,re),t(j,et,re),t(j,E,re),t(j,st,re),t(j,Ke,re),t(j,rt,re),t(j,le,re),t(j,dt,re),$.m(y,dt),t(j,he,re),t(j,_t,re),t(j,At,re),t(j,Ct,re),t(j,Gt,re),t(j,Tt,re),t(j,zt,re),t(j,St,re),t(j,qt,re),t(j,Pt,re),t(j,I,re),t(j,ae,re),t(j,Qt,re),t(j,Ot,re)},p:yt,d(j){j&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(x),e(ke),e(T),e(fe),e(_),e(se),e(Te),e(O),e(Se),e(P),e(be),e(me),e(Ie),e(pe),e(je),e(W),e(Ae),e(R),e(Ue),e(ge),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(Y),e(Ye),e(we),e(Xe),e(ve),e(Be),e(ee),e(tt),e(He),e(ot),e(Me),e(it),e(Pe),e(nt),e(te),e(at),e(Le),e(lt),e(Ee),e(et),e(E),e(st),e(Ke),e(rt),e(le),e(dt),e(he),e(_t),e(At),e(Ct),e(Gt),e(Tt),e(zt),e(St),e(qt),e(Pt),e(I),e(ae),e(Qt),e(Ot))}}}function so(v){let n,f;const p=[v[0],ln];let d={$$slots:{default:[ao]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let uo=class extends ht{constructor(n){super(),ct(this,n,ro,so,pt,{})}};const po=Object.freeze(Object.defineProperty({__proto__:null,default:uo,metadata:ln},Symbol.toStringTag,{value:"Module"}));function ho(v){let n,f=`Spyder’s Variable Explorer is a great tool which aids the development and debugging of Python code by displaying all variables from the current scope. +One thing the Variable Explorer is missing is the ability to display the value of arbitrary, user-definable expressions while debugging. +For example, it might be useful to see the value of a specific attribute of an object, or the value of an array at some index. +Such a feature is known as a “watchlist” or “watches” in other Integrated Development Environments (IDEs). +This blog post introduces the Watchlist plugin developed for Spyder.`,p,d,a="Features",u,c,de=`The watchlist consists of a user-definable list of expressions. +They are evaluated after each debugger step, and the result of the evaluation is displayed as a string. +This means that value = str(eval(expression)) is performed behind the scenes, and the result is shown in the plugin. +The watchlist is a very powerful tool, but this comes at a cost: Any side effect of an expression will affect the execution environment.`,Q,w,ye=`Expressions can be added, removed and modified at any time. +The value of an invalid expression is shown as <exception name>. +You can hover the mouse over the value to show the full exception message in a tooltip. +Values which have changed with the most recent debugger step are shown with a bold font, so you can recognise them more easily.`,V,b,ce="A picture is worth a thousand words, as they say, so here is a whole screencast of the Watchlist plugin in action:",C,x,ke=` + Sorry, your browser doesn’t support HTML5 video. Download the MP4 file`,oe,T,fe="Installation and going forwards",ie,_,se="For conda or pip-installed Spyder, the plugin can be installed by running the following with your Spyder environment activated:",G,S,Te,O='pip install spyder-watchlist',M,Se,P='Feel free to send your ideas, bug reports and pull requests to the spyder-watchlist repository on GitHub.';return{c(){n=o("p"),n.textContent=f,p=s(),d=o("h2"),d.textContent=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),b=o("p"),b.textContent=ce,C=s(),x=o("video"),x.innerHTML=ke,oe=s(),T=o("h2"),T.textContent=fe,ie=s(),_=o("p"),_.innerHTML=se,G=s(),S=o("pre"),Te=new Wt(!1),M=s(),Se=o("p"),Se.innerHTML=P,this.h()},l(m){n=i(m,"P",{"data-svelte-h":!0}),l(n)!=="svelte-do3eua"&&(n.textContent=f),p=r(m),d=i(m,"H2",{class:!0,"data-svelte-h":!0}),l(d)!=="svelte-6uqxh"&&(d.textContent=a),u=r(m),c=i(m,"P",{"data-svelte-h":!0}),l(c)!=="svelte-1tlqj16"&&(c.innerHTML=de),Q=r(m),w=i(m,"P",{"data-svelte-h":!0}),l(w)!=="svelte-1jwwz49"&&(w.innerHTML=ye),V=r(m),b=i(m,"P",{"data-svelte-h":!0}),l(b)!=="svelte-pztoku"&&(b.textContent=ce),C=r(m),x=i(m,"VIDEO",{"data-svelte-h":!0}),l(x)!=="svelte-18vyys8"&&(x.innerHTML=ke),oe=r(m),T=i(m,"H2",{class:!0,"data-svelte-h":!0}),l(T)!=="svelte-1ujtgcf"&&(T.textContent=fe),ie=r(m),_=i(m,"P",{"data-svelte-h":!0}),l(_)!=="svelte-1fx19nf"&&(_.innerHTML=se),G=r(m),S=i(m,"PRE",{class:!0});var be=Ht(S);Te=Nt(be,!1),be.forEach(e),M=r(m),Se=i(m,"P",{"data-svelte-h":!0}),l(Se)!=="svelte-1sbgnrp"&&(Se.innerHTML=P),this.h()},h(){k(d,"class","section"),x.controls=!0,k(T,"class","section"),Te.a=null,k(S,"class","language-bash")},m(m,be){t(m,n,be),t(m,p,be),t(m,d,be),t(m,u,be),t(m,c,be),t(m,Q,be),t(m,w,be),t(m,V,be),t(m,b,be),t(m,C,be),t(m,x,be),t(m,oe,be),t(m,T,be),t(m,ie,be),t(m,_,be),t(m,G,be),t(m,S,be),Te.m(O,S),t(m,M,be),t(m,Se,be)},p:yt,d(m){m&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(M),e(Se))}}}function co(v){let n,f;const p=[v[0],an];let d={$$slots:{default:[ho]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let mo=class extends ht{constructor(n){super(),ct(this,n,fo,co,pt,{})}};const yo=Object.freeze(Object.defineProperty({__proto__:null,default:mo,metadata:an},Symbol.toStringTag,{value:"Module"}));function go(v){let n,f=`We’re excited to announce a significant update to QtConsole—the package that powers Spyder’s IPython Console interface—which the Spyder team maintains in collaboration with Project Jupyter. +Two of the biggest changes—user-selectable syntax highlighting themes, and enhanced external editor/IDE integration—are already built right into Spyder, so they’ll likely be of more interest if you use QtConsole standalone or with another editor/IDE. +However, most of the other changes should prove quite useful within Spyder as well, and many were in fact suggested and even implemented by users of our IDE. +Particular highlights include a block indent/unindent feature, Select-All (Ctrl-Shift-A) being made cell-specific, Ctrl-Backspace and Ctrl-Delete behaving more intelligently across whitespace and line boundaries, Ctrl-D allowing you to easily exit ipdb, input() and the like, and numerous smaller enhancements and bug fixes. +If you’d like to learn more about what’s new, please check out our article over on the Jupyter blog, where we go over the major changes in more detail, with plenty of screenshots and GIFs to illustrate each feature and how to use it.`,p,d,a='Screenshot of the QtConsole main window, with a new syntax highlighting theme applied
Screenshot of the QtConsole main window, with a new syntax highlighting theme applied
',u,c,de=`To update to the newest version with your existing Spyder install, open an Anaconda Prompt (Windows), Terminal (macOS) or command line (Linux), activate the conda environment or virtualenv/venv of the Spyder install you are using, and run conda update qtconsole (or pip install --upgrade qtconsole, if not using Anaconda). +If you’d like to try QtConsole out separate from Spyder or integrate it in with your own editor or IDE, it is also available as a standalone GUI by running jupyter qtconsole from the Python environment where it or Spyder is installed.`,Q,w,ye=`If you have any questions, problems or feedback, we’d love to hear from you. Report issues, request features or participate in QtConsole’s development at its Github site, and check out its documentation for help using it. +For the latest Spyder news, releases, previews and tips, you can follow our Facebook and Twitter, and help support the development on Spyder and its sister projects like QtConsole on OpenCollective.`,V,b,ce=`Our new documentation and Spyder 4 beta 1 have been fully live for some time now; given the dramatic scale of the changes in both, their respective blog posts are still in the works. +We’ll also have an upcoming article on our official Spyder 4 feature roadmap and more, and Spyder 3.3.2 is due out soon, so keep in right here for your Spyder fix! +Until then, happy Spydering and enjoy QtConsole 4.4!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("figure"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),b=o("p"),b.textContent=ce,this.h()},l(C){n=i(C,"P",{"data-svelte-h":!0}),l(n)!=="svelte-tpudl9"&&(n.innerHTML=f),p=r(C),d=i(C,"FIGURE",{class:!0,"data-svelte-h":!0}),l(d)!=="svelte-ic4irj"&&(d.innerHTML=a),u=r(C),c=i(C,"P",{"data-svelte-h":!0}),l(c)!=="svelte-1mdc2k8"&&(c.innerHTML=de),Q=r(C),w=i(C,"P",{"data-svelte-h":!0}),l(w)!=="svelte-stzk5x"&&(w.innerHTML=ye),V=r(C),b=i(C,"P",{"data-svelte-h":!0}),l(b)!=="svelte-18gepk8"&&(b.textContent=ce),this.h()},h(){k(d,"class","figure text-center")},m(C,x){t(C,n,x),t(C,p,x),t(C,d,x),t(C,u,x),t(C,c,x),t(C,Q,x),t(C,w,x),t(C,V,x),t(C,b,x)},p:yt,d(C){C&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b))}}}function wo(v){let n,f;const p=[v[0],sn];let d={$$slots:{default:[go]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let bo=class extends ht{constructor(n){super(),ct(this,n,vo,wo,pt,{})}};const xo=Object.freeze(Object.defineProperty({__proto__:null,default:bo,metadata:sn},Symbol.toStringTag,{value:"Module"}));function ko(v){let n,f=`We’re pleased to release the next significant update in the stable Spyder 3 line, 3.3.0, along with its follow-on bugfix point release, 3.3.1, which is now live on PyPI and conda. +As always, you can update with conda update spyder in the Anaconda Prompt/Terminal/command line (on Windows/macOS/Linux, respectively) if on Anaconda (recommended), or pip update spyder otherwise. +If you run into any trouble, please carefully read our new installation documentation and consult our Troubleshooting Guide, which contains straightforward solutions to the vast majority of install-related issues users have reported.`,p,d,a=`As a new minor version (3.3), it makes several substantial changes to Spyder’s underpinnings that deserve some explanation, particularly the newly modular and portable console system that’s now separated into its own spyder-kernels package, opening up several new options for users running Spyder in different environments. +There’s also a brand-new error reporting process, new options in the IPython console, usability and performance improvements for the Variable Explorer, multiple new and changed dependency requirements and more, so there’s plenty to go over. +Finally, we’d like to briefly share a few final notes on this release and the latest on our plans going forward.`,u,c,de="Modular, flexible Console architecture",Q,w,ye=`The biggest single change with version 3.3.0/3.3.1 is a major overhaul of how IPython Consoles are started and managed in Spyder. +More precisely, we’ve moved all the kernel-related code from the Spyder core into a new modular package, spyder-kernels, available on the same distribution channels as Spyder itself (and installed automatically when updating to >=3.3.0). +While the most dramatic differences are under the hood, there’s plenty for everyone to like (and a few things to be aware of).`,V,b,ce=`Most importantly, for our everyday users, this makes Spyder much more flexible and powerful when working with multiple Python environments. +With the changes, Spyder itself does not need to be present in every environment you’d like to launch a kernel in; you can install the full IDE in whatever manner you prefer, and then set it to run code and consoles in any Anaconda environment, virtualenv/venv, or even a totally separate Python installation, so long as it has spyder-kernels package available. +Just set the path under Tools -> Preferences -> Python interpreter -> Use the following Python interpreter to the desired Python executable, and any new Console you open will start in the selected environment. +Check out our new wiki page on using environments with Spyder, for more details and tips on the subject, and keep an eye out for the further improvements coming in Spyder 4, which will greatly simplify the process and include full GUI-based project, package and environment management functionality built right in.`,C,x,ke='Python interpreter pane of the Spyder preferences dialog, with the 'Use the following Python interpreter' option highlighted
Python interpreter pane of the Spyder preferences dialog, with the 'Use the following Python interpreter' option highlighted
',oe,T,fe=`Furthermore, the new package allows you to independently launch a kernel from anywhere (on your local computer, or a remote machine, server or even supercomputing cluster), connect to it with Spyder, and use it just like a “natively” started one. +After installing spyder-kernels on the host environment, you can start one with python -m spyder_kernels.console, and then enter the kernel’s 4-digit ID (and SSH connection details, if a remote machine) in the Spyder Connect to an existing kernel dialog under the IPython Console pane context- or “gear”-menu). +For more information on the process, see the Connecting to a Console section in our new documentation.`,ie,_,se='A remote kernel running in a system console alongside Spyder's connect to kernel dialog
A remote kernel running in a system console alongside Spyder's connect to kernel dialog
',G,S,Te=`Best of all, no matter how or where a kernel is started, every console now supports the full suite of Spyder’s features, including completion, the Variable Explorer, interactive Help and more, unlike before. +You can even mix and match internal, external and remote kernels in different environments, all in the same Spyder session, by either changing the Python interpreter preferences setting between starting a console, or starting and connecting to multiple consoles externally—or both! +Finally, for those of us (and those of you!) who help develop Spyder, the changes also make it easier to maintain and improve the code, and opens the door to one of the biggest features coming in Spyder 4: a new, full-featured debugging kernel that many of you have been asking for.`,O,M,Se=`The one key thing to remember: make sure you install the appropriate version of spyder-kernels for your version of Spyder. For most users, that will be spyder-kernels 0.x (currently 0.2.6) to match Spyder 3 on our stable 3.x branch; if testing a Spyder 4 beta or Github clone of the master branch, you’ll want the latest 1.x version of spyder-kernels (currently 1.1.0). +To install the correct build, you can use the following conda command,`,P,m,be,me='conda install spyder-kernels=<0 or 1>.*',B,Ie,pe="or with pip,",K,je,W,z='pip install spyder-kernels==<0 or 1>.*',Ae,R,D=`replacing <0 or 1> with the major version number (0 or 1) to match your Spyder version. +Further details specific to installing a development build can be found in our Contributing Guide or our install documentation.`,Ue,ge,ne="New IPython Console completion and plotting features",Ne,xe,X='Advanced tab of the IPython console pane of Spyder's preferences, with the new Jedi completion section highlighted
Advanced tab of the IPython console pane of Spyder's preferences, with the new Jedi completion section highlighted
',Re,_e,Z=`Spyder’s IPython Consoles can now use an advanced jedi-based completion engine that, similar to the Editor, analyzes your code without actually having to run it first. +This allows for advanced completion functionality on objects not yet assigned to a variable, similar to the existing “greedy” completion option, but without the need for dynamic evaluation. +It can be slow if working with very large Pandas DataFrames so it is disabled by default, but you can activate it under Tools -> Preferences -> IPython console -> Advanced Settings -> Jedi completion. +The descriptive text for the “greedy” completion option (also off by default) was also clarified, particularly to explain an IPython bug (not present in the jedi completer) with the feature and a consequent workaround.`,We,g,L='Graphics tab of the IPython console pane of Spyder's preferences, with the new 'Use a tight layout for inline plots' option highlighted
Graphics tab of the IPython console pane of Spyder's preferences, with the new 'Use a tight layout for inline plots' option highlighted
',Ve,U,J=`We’ve also added a new plotting setting, Use a tight layout for inline plots, for the Inline Matplotlib graphics backend. +The default behavior (as in previous Spyder versions) sets bbox_inches to "tight" in Matplotlib calls when drawing to the inline backend. +However, if you prefer your own bbox_inches argument be respected even when plots are rendered in the Console, you can now do so by unchecking this option under Tools -> Preferences -> IPython console -> Graphics -> Inline backend.`,Ze,N,Y='Comparison of inline plots in Spyder's IPython Console with and without the 'tight layout' option set
Comparison of inline plots in Spyder's IPython Console with and without the 'tight layout' option set
',Ye,Fe,we="Better Variable Explorer usability and performance",Xe,$e,ve=`We’ve made several changes and optimizations to greatly improve performance and efficiency in the Variable Explorer, to make it much faster and use less memory when opening and editing large objects. +In particular, we’ve fixed several major memory leaks when saving edited objects and closing the Variable Explorer dialogs through better length validation and garbage collection, and now skip the whole saving process entirely if the object was not modified (or cannot be modified). +We’ve also changed the names and functions of the Cancel and Ok buttons in Variable Explorer dialogs to be easier to understand and use. +They now feature a Close button which exits the dialog without saving any edits to the object’s contents, and a Save and Close button—automatically enabled once modifications are made—that commits the changes back to the kernel.`,Be,q,ee='A Variable Explorer DataFrame editor dialog, showing the new 'Close' and 'Save and Close' buttons
A Variable Explorer DataFrame editor dialog, showing the new 'Close' and 'Save and Close' buttons
',tt,Ge,He="Streamlined error reporting experience",ot,De,Me=`While we hope you never need to use it, Spyder 3.3.0 includes a brand-new error handling backend that can submit bug reports directly through the Github API. +Based off Colin Duquesnoy’s excellent QCrash framework, this is a major improvement in speed, functionality, reliability and user convenience over the old approach (essentially just opening a link in a web browser). +Just as before, we won’t send anything without your explicit consent, you need a Github account (or create one for free), and you can view and edit the report on Github at any time.`,it,ze,Pe='The new authentication dialogs for submitting a Github report, with a username/password and a token option
The new authentication dialogs for submitting a Github report, with a username/password and a token option
',nt,A,te=`You will need to enter your Github credentials the first time you submit a report. +For this, you can create an app token which only grants the very limited permissions needed to create a public issue report, can be easily revoked and re-created, and works with two-factor authentication (which you should be using); however, if you have not yet enabled 2FA, it also offers the option to enter your Github username and password. +Either way, Spyder can securely remember your login using the keyring package, so you only have to do this once on any given machine (if you select the “remember” option).`,at,Qe,Le='The new error reporting interface, with a title field, more descriptive text, and a polished UI
The new error reporting interface, with a title field, more descriptive text, and a polished UI
',lt,Je,Ee=`The dialog itself has also been made more functional and user-friendly, designed to help encourage high-quality, useful reports, and with more accessible, descriptive text. +The reports themselves also contain more useful data about the problem, and there is now a --safe-mode command-line option for Spyder to start in a clean, temporary config directly, so you can test to see if the problem reoccurs without the hassle of a spyder --reset, and play around with other settings without impacting your main configuration. Finally, we’ve fixed over 40 bugs in this release and further improved our documentation and troubleshooting material, so hopefully you’ll see this less often.`,et,h,E="Cleaner under the hood and more",st,ut,Ke=`Alongside the aforementioned internal changes, we’ve also made a number of other under-the-hood changes to clean out old cruft and improve maintainability, readability and performance of our codebase. +In particular, we’ve officially dropped support for Python 3.3, PyQt4, and PyQt5 under 5.5, all versions which have been end-of-life for years, and (aside from PyQt4) have minimal or no remaining Spyder users. +Furthermore, dropping PyQt4 in particular allows us to avoid or resolve a number of unfixable bugs specific to that version that have been causing problems for users, and opens the door to easier development in the future. +Finally, we moved our legacy documentation (and its many associated images) from the main Spyder codebase to its own repo, executed a major overhaul to greatly modernize and expand the text, images, style, and presentation, and now deploy them onto their own subdomain of our site, all of which we will discuss in a separate post coming soon.`,rt,F,le="Even more fixes and refinements with Spyder 3.3.1",dt,$,y=`As a quick follow-on to the 3.3.0 release, Spyder 3.3.1 fixed a handful of bugs and minor issues with the new functionality and cleaned up several other existing ones, as well made a number of lower-level maintenance and development-oriented changes—over two dozen in all. +Furthermore, several user-visible enhancements made it into the release, primary aimed at improving usability. +To make it easier for users to manage multiple environments, the selection UI under Preferences > Python interpreter > Use the following Python interpreter remembers the executables you’ve previously selected and allows quick switching between them.`,he,_t,Lt='Python interpreter pane of Spyder's preferences, showing the new environment selection UI
Python interpreter pane of Spyder's preferences, showing the new environment selection UI
',At,Ct,Ft=`In the Console, mundane ipdb commands are automatically filtered from the history, and the Editor now supports syntax highlighting for the new numeric literal syntax introduced in Python 3.6. +Spyder’s tutorial has been re-written for modern Spyder as well as to be clearer and more understandable, and overhauled for better and more consistent formatting and visuals with the rest of our documentation. +Finally, our update checker now consults the Anaconda defaults channel rather than PyPI to determine if an update is available, so it doesn’t bug the majority of our users on Anaconda until they can actually acquire the package.`,Gt,Tt,It="What to know and what’s next",zt,St,jt=`If you have any questions, problems or feedback, we’d love to hear from you (just make sure you read our documentation, Troubleshooting Guide and the other previously-mentioned resources first)! +For general questions or install issues that aren’t addressed by the above, our Google Group and Gitter live chat are a good place to ask, while our Github is the place to report bugs, request features, or help develop Spyder itself (though make sure to search our issues list to ensure it hasn’t already been submitted). +Finally, you can follow our Facebook and Twitter for the latest Spyder news, releases, previews and tips, and help support Spyder development on OpenCollective.`,qt,Pt,$t=`There’s plenty to look forward to in the coming days, with the official release of our all-new documentation (that’s already live now), Spyder 4 beta 1 having just been released on PyPI, conda-forge and our own spyder-ide channel (with a blog post coming soon), an upcoming article on our official Spyder 4 feature roadmap and more, so stay tuned! +In the meantime, happy Spydering and enjoy the new 3.3.1!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),b=o("p"),b.innerHTML=ce,C=s(),x=o("figure"),x.innerHTML=ke,oe=s(),T=o("p"),T.innerHTML=fe,ie=s(),_=o("figure"),_.innerHTML=se,G=s(),S=o("p"),S.textContent=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("pre"),be=new Wt(!1),B=s(),Ie=o("p"),Ie.innerHTML=pe,K=s(),je=o("pre"),W=new Wt(!1),Ae=s(),R=o("p"),R.innerHTML=D,Ue=s(),ge=o("h2"),ge.textContent=ne,Ne=s(),xe=o("figure"),xe.innerHTML=X,Re=s(),_e=o("p"),_e.innerHTML=Z,We=s(),g=o("figure"),g.innerHTML=L,Ve=s(),U=o("p"),U.innerHTML=J,Ze=s(),N=o("figure"),N.innerHTML=Y,Ye=s(),Fe=o("h2"),Fe.textContent=we,Xe=s(),$e=o("p"),$e.innerHTML=ve,Be=s(),q=o("figure"),q.innerHTML=ee,tt=s(),Ge=o("h2"),Ge.textContent=He,ot=s(),De=o("p"),De.innerHTML=Me,it=s(),ze=o("figure"),ze.innerHTML=Pe,nt=s(),A=o("p"),A.innerHTML=te,at=s(),Qe=o("figure"),Qe.innerHTML=Le,lt=s(),Je=o("p"),Je.innerHTML=Ee,et=s(),h=o("h2"),h.textContent=E,st=s(),ut=o("p"),ut.innerHTML=Ke,rt=s(),F=o("h2"),F.textContent=le,dt=s(),$=o("p"),$.innerHTML=y,he=s(),_t=o("figure"),_t.innerHTML=Lt,At=s(),Ct=o("p"),Ct.innerHTML=Ft,Gt=s(),Tt=o("h2"),Tt.textContent=It,zt=s(),St=o("p"),St.innerHTML=jt,qt=s(),Pt=o("p"),Pt.innerHTML=$t,this.h()},l(I){n=i(I,"P",{"data-svelte-h":!0}),l(n)!=="svelte-mg9z24"&&(n.innerHTML=f),p=r(I),d=i(I,"P",{"data-svelte-h":!0}),l(d)!=="svelte-1ykc4ml"&&(d.innerHTML=a),u=r(I),c=i(I,"H2",{class:!0,"data-svelte-h":!0}),l(c)!=="svelte-1wmevih"&&(c.textContent=de),Q=r(I),w=i(I,"P",{"data-svelte-h":!0}),l(w)!=="svelte-4zemt9"&&(w.innerHTML=ye),V=r(I),b=i(I,"P",{"data-svelte-h":!0}),l(b)!=="svelte-nnkqp3"&&(b.innerHTML=ce),C=r(I),x=i(I,"FIGURE",{class:!0,"data-svelte-h":!0}),l(x)!=="svelte-1lb0aj3"&&(x.innerHTML=ke),oe=r(I),T=i(I,"P",{"data-svelte-h":!0}),l(T)!=="svelte-19rgc6"&&(T.innerHTML=fe),ie=r(I),_=i(I,"FIGURE",{class:!0,"data-svelte-h":!0}),l(_)!=="svelte-lew4h2"&&(_.innerHTML=se),G=r(I),S=i(I,"P",{"data-svelte-h":!0}),l(S)!=="svelte-szwtzd"&&(S.textContent=Te),O=r(I),M=i(I,"P",{"data-svelte-h":!0}),l(M)!=="svelte-1g7rkrc"&&(M.innerHTML=Se),P=r(I),m=i(I,"PRE",{class:!0});var ae=Ht(m);be=Nt(ae,!1),ae.forEach(e),B=r(I),Ie=i(I,"P",{"data-svelte-h":!0}),l(Ie)!=="svelte-152yfdn"&&(Ie.innerHTML=pe),K=r(I),je=i(I,"PRE",{class:!0});var Et=Ht(je);W=Nt(Et,!1),Et.forEach(e),Ae=r(I),R=i(I,"P",{"data-svelte-h":!0}),l(R)!=="svelte-1gxhmsj"&&(R.innerHTML=D),Ue=r(I),ge=i(I,"H2",{class:!0,"data-svelte-h":!0}),l(ge)!=="svelte-1fdwxup"&&(ge.textContent=ne),Ne=r(I),xe=i(I,"FIGURE",{class:!0,"data-svelte-h":!0}),l(xe)!=="svelte-ml6j49"&&(xe.innerHTML=X),Re=r(I),_e=i(I,"P",{"data-svelte-h":!0}),l(_e)!=="svelte-1xagtyr"&&(_e.innerHTML=Z),We=r(I),g=i(I,"FIGURE",{class:!0,"data-svelte-h":!0}),l(g)!=="svelte-1s6me3s"&&(g.innerHTML=L),Ve=r(I),U=i(I,"P",{"data-svelte-h":!0}),l(U)!=="svelte-2p22vt"&&(U.innerHTML=J),Ze=r(I),N=i(I,"FIGURE",{class:!0,"data-svelte-h":!0}),l(N)!=="svelte-1xm6czd"&&(N.innerHTML=Y),Ye=r(I),Fe=i(I,"H2",{class:!0,"data-svelte-h":!0}),l(Fe)!=="svelte-ik1l0a"&&(Fe.textContent=we),Xe=r(I),$e=i(I,"P",{"data-svelte-h":!0}),l($e)!=="svelte-at3942"&&($e.innerHTML=ve),Be=r(I),q=i(I,"FIGURE",{class:!0,"data-svelte-h":!0}),l(q)!=="svelte-e6sbh4"&&(q.innerHTML=ee),tt=r(I),Ge=i(I,"H2",{class:!0,"data-svelte-h":!0}),l(Ge)!=="svelte-1pxsziw"&&(Ge.textContent=He),ot=r(I),De=i(I,"P",{"data-svelte-h":!0}),l(De)!=="svelte-y6otfj"&&(De.innerHTML=Me),it=r(I),ze=i(I,"FIGURE",{class:!0,"data-svelte-h":!0}),l(ze)!=="svelte-1w4lwbj"&&(ze.innerHTML=Pe),nt=r(I),A=i(I,"P",{"data-svelte-h":!0}),l(A)!=="svelte-2g04g9"&&(A.innerHTML=te),at=r(I),Qe=i(I,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Qe)!=="svelte-168hia0"&&(Qe.innerHTML=Le),lt=r(I),Je=i(I,"P",{"data-svelte-h":!0}),l(Je)!=="svelte-nkjzz9"&&(Je.innerHTML=Ee),et=r(I),h=i(I,"H2",{class:!0,"data-svelte-h":!0}),l(h)!=="svelte-1ola6uf"&&(h.textContent=E),st=r(I),ut=i(I,"P",{"data-svelte-h":!0}),l(ut)!=="svelte-16df67"&&(ut.innerHTML=Ke),rt=r(I),F=i(I,"H2",{class:!0,"data-svelte-h":!0}),l(F)!=="svelte-i2ag27"&&(F.textContent=le),dt=r(I),$=i(I,"P",{"data-svelte-h":!0}),l($)!=="svelte-18tidt1"&&($.innerHTML=y),he=r(I),_t=i(I,"FIGURE",{class:!0,"data-svelte-h":!0}),l(_t)!=="svelte-13h4q55"&&(_t.innerHTML=Lt),At=r(I),Ct=i(I,"P",{"data-svelte-h":!0}),l(Ct)!=="svelte-26y4pa"&&(Ct.innerHTML=Ft),Gt=r(I),Tt=i(I,"H2",{class:!0,"data-svelte-h":!0}),l(Tt)!=="svelte-e0owd2"&&(Tt.textContent=It),zt=r(I),St=i(I,"P",{"data-svelte-h":!0}),l(St)!=="svelte-1a467wt"&&(St.innerHTML=jt),qt=r(I),Pt=i(I,"P",{"data-svelte-h":!0}),l(Pt)!=="svelte-18p7ian"&&(Pt.innerHTML=$t),this.h()},h(){k(c,"class","section"),k(x,"class","figure text-center"),k(_,"class","figure text-center"),be.a=null,k(m,"class","language-bash"),W.a=null,k(je,"class","language-bash"),k(ge,"class","section"),k(xe,"class","figure text-center"),k(g,"class","figure text-center"),k(N,"class","figure text-center"),k(Fe,"class","section"),k(q,"class","figure text-center"),k(Ge,"class","section"),k(ze,"class","figure text-center"),k(Qe,"class","figure text-center"),k(h,"class","section"),k(F,"class","section"),k(_t,"class","figure text-center"),k(Tt,"class","section")},m(I,ae){t(I,n,ae),t(I,p,ae),t(I,d,ae),t(I,u,ae),t(I,c,ae),t(I,Q,ae),t(I,w,ae),t(I,V,ae),t(I,b,ae),t(I,C,ae),t(I,x,ae),t(I,oe,ae),t(I,T,ae),t(I,ie,ae),t(I,_,ae),t(I,G,ae),t(I,S,ae),t(I,O,ae),t(I,M,ae),t(I,P,ae),t(I,m,ae),be.m(me,m),t(I,B,ae),t(I,Ie,ae),t(I,K,ae),t(I,je,ae),W.m(z,je),t(I,Ae,ae),t(I,R,ae),t(I,Ue,ae),t(I,ge,ae),t(I,Ne,ae),t(I,xe,ae),t(I,Re,ae),t(I,_e,ae),t(I,We,ae),t(I,g,ae),t(I,Ve,ae),t(I,U,ae),t(I,Ze,ae),t(I,N,ae),t(I,Ye,ae),t(I,Fe,ae),t(I,Xe,ae),t(I,$e,ae),t(I,Be,ae),t(I,q,ae),t(I,tt,ae),t(I,Ge,ae),t(I,ot,ae),t(I,De,ae),t(I,it,ae),t(I,ze,ae),t(I,nt,ae),t(I,A,ae),t(I,at,ae),t(I,Qe,ae),t(I,lt,ae),t(I,Je,ae),t(I,et,ae),t(I,h,ae),t(I,st,ae),t(I,ut,ae),t(I,rt,ae),t(I,F,ae),t(I,dt,ae),t(I,$,ae),t(I,he,ae),t(I,_t,ae),t(I,At,ae),t(I,Ct,ae),t(I,Gt,ae),t(I,Tt,ae),t(I,zt,ae),t(I,St,ae),t(I,qt,ae),t(I,Pt,ae)},p:yt,d(I){I&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(B),e(Ie),e(K),e(je),e(Ae),e(R),e(Ue),e(ge),e(Ne),e(xe),e(Re),e(_e),e(We),e(g),e(Ve),e(U),e(Ze),e(N),e(Ye),e(Fe),e(Xe),e($e),e(Be),e(q),e(tt),e(Ge),e(ot),e(De),e(it),e(ze),e(nt),e(A),e(at),e(Qe),e(lt),e(Je),e(et),e(h),e(st),e(ut),e(rt),e(F),e(dt),e($),e(he),e(_t),e(At),e(Ct),e(Gt),e(Tt),e(zt),e(St),e(qt),e(Pt))}}}function _o(v){let n,f;const p=[v[0],rn];let d={$$slots:{default:[ko]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let To=class extends ht{constructor(n){super(),ct(this,n,Co,_o,pt,{})}};const So=Object.freeze(Object.defineProperty({__proto__:null,default:To,metadata:rn},Symbol.toStringTag,{value:"Module"}));function Po(v){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a=`After more than three years in development and more than 5000 commits from 60 authors around the world, Spyder 4 finally saw the light on December 5, 2019! +I decided to wait until now to write a blogpost about it because shortly after the initial release, we found several critical performance issues and some regressions with respect to Spyder 3, most of which are fixed now in version 4.1.3, released on May 8th 2020.`,u,c,de=`This new release comes with a lengthy list of user-requested features aimed at providing an enhanced development experience at the level of top general-purpose editors and IDEs, while strengthening Spyder’s specialized focus on scientific programming in Python. +The interested reader can take a look at some of them in previous blog posts, and in detail in our Changelog. +However, this post is not meant to describe those improvements, but to acknowledge all people that contributed to making Spyder 4 possible.`,Q,w,ye=`Spyder 4 is the first version developed with financial support from multiple companies and organizations, as well as donations by the international user community. +However, as a project, we couldn’t have been able to reach the level of maturity needed to receive and handle that support without the pivotal opportunities Travis Oliphant, former CEO of Anaconda and current leader of Quansight, gave me to work in Scientific Python. +Thanks to him, I became part of Anaconda Inc. in 2015; I was able to hire a small small team to improve Spyder within Anaconda in late 2016; and I was hired by Quansight to work solely on Spyder in 2018. +As with other projects in our ecosystem, such as Bokeh, Dask and Numba, Spyder benefited immensely from Travis’ trust in the role these efforts and ours could play in the future. +He certainly believed in the vision their maintainers worked so hard to make a reality, even if their beginnings were humble and their chances of survival uncertain. +Therefore, my first big acknowledgment is to Travis: thanks for giving us a chance!`,V,b,ce=`I also want to thank our community for its continued support. +As I’ve witnessed during my years as Spyder’s lead developer, many newbies and veterans alike keep choosing Spyder as their primary tool for scientific programming in Python. +It’s really you, the members of this fantastic community, which keep Spyder relevant in a highly competitive field by using and contributing back to it. +Furthermore, when the future looked grim, after my team and I were let go from Anaconda at the end of 2017 (not by Travis’ decision), a lot of users came to our rescue by making donations through our Open Collective page. +That, and a NumFOCUS development grant we received the next year, filled us with confidence and allowed us to continue with Spyder’s development in 2018, even after losing part of our team in the process.`,C,x,ke=`Last year it was also a pleasant surprise to learn that several companies were interested in seeing Spyder prosper and thrive. +Through Quansight Labs and its Community Work Order concept, we were able to sign contracts with two of them: TDK-Micronas and Kite. +Their support was critical to finish Spyder 4 because it allowed me to hire most of my old Anaconda team back, plus two new additions, to work full-time on the project. +Therefore, I can’t thank them enough for showing up just at the right time!`,oe,T,fe=`And finally, even when I am often seen as the public face of Spyder, due to my presence in our issue tracker and Stack Overflow, it’s really the Spyder team that is in charge of implementing new features and fixing most bugs. +So my last round of acknowledgments goes to them. +I was fortunate enough to convince some of the most talented Colombian software developers to work for the project, and to attract the interest of several other equally accomplished developers from around the world. +All of them did a hell of a job in this release!`,ie,_,se=`Jean-Sébastien Gosselin contributed our new Plots pane in its entirety; Quentin Peter did a complete re-architecting of our IPython console, which enabled numerous improvements to our debugger; Jitse Niesen added auto-saving functionality to our editor; Brian Olsen contributed the initial implementation of the runcell command; and CAM Gerlach made significant improvements to our documentation. +Gonzalo Peña-Castellanos helped us to greatly improve the user experience of code completion and linting in the editor, implemented most of the enhancements to the Files pane, and refactored and improved our configuration system; Edgar Margffoy single-handedly created a client to support the same protocol used by VSCode to provide completion and linting for lots of programming languages, added code snippet completions and vastly improved code folding in the editor; Daniel Althviz developed the necessary infrastructure to install and use Kite smoothly within Spyder, and added the new object viewer to the Variable Explorer. +Finally, our junior developers, Stephannie Jimenez and Juanita Gomez, although still finding their way around our complex codebase, managed to make important contributions, such as improving the icons we use per file type in Files (Juanita), and allowing users to run code in an external system terminal on macOS (Stephannie).`,G,S,Te=`I hope you all enjoy the results of this massive effort! +And happy Spydering!!!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),b=o("p"),b.innerHTML=ce,C=s(),x=o("p"),x.innerHTML=ke,oe=s(),T=o("p"),T.innerHTML=fe,ie=s(),_=o("p"),_.innerHTML=se,G=s(),S=o("p"),S.textContent=Te},l(O){n=i(O,"P",{"data-svelte-h":!0}),l(n)!=="svelte-9f6r3h"&&(n.innerHTML=f),p=r(O),d=i(O,"P",{"data-svelte-h":!0}),l(d)!=="svelte-118umf4"&&(d.innerHTML=a),u=r(O),c=i(O,"P",{"data-svelte-h":!0}),l(c)!=="svelte-19d7044"&&(c.innerHTML=de),Q=r(O),w=i(O,"P",{"data-svelte-h":!0}),l(w)!=="svelte-1t3rmts"&&(w.innerHTML=ye),V=r(O),b=i(O,"P",{"data-svelte-h":!0}),l(b)!=="svelte-q3u02e"&&(b.innerHTML=ce),C=r(O),x=i(O,"P",{"data-svelte-h":!0}),l(x)!=="svelte-ma1pu9"&&(x.innerHTML=ke),oe=r(O),T=i(O,"P",{"data-svelte-h":!0}),l(T)!=="svelte-epmo9k"&&(T.innerHTML=fe),ie=r(O),_=i(O,"P",{"data-svelte-h":!0}),l(_)!=="svelte-wwph68"&&(_.innerHTML=se),G=r(O),S=i(O,"P",{"data-svelte-h":!0}),l(S)!=="svelte-1nf22io"&&(S.textContent=Te)},m(O,M){t(O,n,M),t(O,p,M),t(O,d,M),t(O,u,M),t(O,c,M),t(O,Q,M),t(O,w,M),t(O,V,M),t(O,b,M),t(O,C,M),t(O,x,M),t(O,oe,M),t(O,T,M),t(O,ie,M),t(O,_,M),t(O,G,M),t(O,S,M)},p:yt,d(O){O&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S))}}}function Ho(v){let n,f;const p=[v[0],un];let d={$$slots:{default:[Po]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Lo=class extends ht{constructor(n){super(),ct(this,n,Mo,Ho,pt,{})}};const Io=Object.freeze(Object.defineProperty({__proto__:null,default:Lo,metadata:un},Symbol.toStringTag,{value:"Module"}));function jo(v){let n,f='This blogpost was originally published on the Quansight Labs website',p,d,a=`It has been almost two months since I joined Quansight in April, to start +working on Spyder maintenance and +development. So far, it has been a very exciting and rewarding journey under +the guidance of long time Spyder maintainer +Carlos Córdoba. +This is the first of a series of blog posts we will be writing to showcase +updates on the development of Spyder, new planned features and news on the +road to Spyder 4.0 and beyond.`,u,c,de=`First off, I would like to give a warm welcome to +Edgar Margffoy, +who recently joined Quansight and will be working with the Spyder team to +take its development even further. Edgar has been a core Spyder developer +for more than two years now, and we are very excited to have his (almost) +full-time commitment to the project.`,Q,w,ye="Spyder 4.0 Beta 2 released!",V,b,ce=`Since August 2018, when the first beta of the 4.x series was released, the +Spyder development team has been working hard on our next release. +Over the past year, we’ve implemented the long awaited full-interface dark theme; +overhauled our entire code completion and linting architecture to use the +Language Server Protocol, +opening the door to supporting many other languages in the future; +added a new Plots pane to view and manage the figures generated by your code; +and numerous other feature enhancements, bug fixes and internal improvements.`,C,x,ke="Dark theme",oe,T,fe=`A full-interface dark theme has been a +long awaited feature, +and is enabled by default in Spyder 4. You can still select the +light theme under Preferences > Appearance by either choosing a light-background +syntax-highlighting scheme, or changing Interface theme to Light.`,ie,_,se='Screenshot of the Spyder main window with default panes, with the dark theme applied across the entire interface
Screenshot of the Spyder main window with default panes, with the dark theme applied across the entire interface
',G,S,Te="Pretty, right :-) ?",O,M,Se=`This enhancement was made possible by the work of +Colin Duquesnoy, +Daniel Pizzeta +and their QDarkStyle +package. The Spyder team is now actively collaborating with Colin and Daniel +to pursue the release of QDarkStyle 3.x, which will be using Spyder’s +QtSASS +package to harness the power of SASS/SCSS and allow users to fully customize +the theme dynamically.`,P,m,be="Language Server Protocol architecture",me,B,Ie=`The Language Server Protocol (LSP) was created by Microsoft for Visual Studio Code to standardize how +development tools (e.g. editors and IDEs) communicate with +servers that provide code completion, linting and related facilities for +different programming languages. With LSP, as +they describe it:`,pe,K,je=`

A single Language Server can be reused in multiple development tools, +which in turn can support multiple languages with minimal effort. +LSP is a win for both language providers and tooling vendors!

`,W,z,Ae=`As of Spyder 4 Beta 2, Spyder is now one of those tools! +We developed our own client to communicate with any server that implements +LSP v3.0 through a transport layer that uses ZeroMQ sockets. Code completion, +help generation, calltips, and real-time code/style analysis were rewritten to take advantage of this +architecture, and hover hints and docstring style analysis were added. +Further LSP features, such as workspace functionality and on the fly completion, will come in future betas.`,R,D,Ue='Hover hint and calltips
Hover hint and calltips
',ge,ne,Ne=`Our current support is geared towards Python, using the great +Python-Language-Server +package. This has allowed us to provide fine-grained configurability for +Pycodestyle and +Pydocstyle options, and in future +betas we’ll also add the ability to use and configure code formatters like +YAPF and autopep8.`,xe,X,Re='Docstring style preferences
Docstring style preferences
',_e,Z,We=`We support configuring LSP servers for additional, non-Python programming languages. +In the future, we hope to include out-of-the-box LSP integration for +some of the most popular languages in the scientific computing space, +including Fortran, Julia and C/C++.`,g,L,Ve='Spyder Completion and Linting preferences pane, showing example PyLS servers configured for Go and Julia
Spyder Completion and Linting preferences pane, showing example PyLS servers configured for Go and Julia
',U,J,Ze="Plots pane",N,Y,Ye=`Similar to RStudio and other data science IDEs, +Spyder now includes a Plots pane, allowing you to browse all figures created during a +session. Beyond just viewing plots, you can also zoom, save/export, copy and remove +them.`,Fe,we,Xe='Spyder main window, showing a figure displayed in the plots pane
Spyder main window, showing a figure displayed in the plots pane
',$e,ve,Be="But wait, there’s more!",q,ee,tt=`There are numerous additional features we’ve added in the previous 10 +months! These include:`,Ge,He,ot=`
  • Autosave and File Recovery in the editor, so Spyder can restore your +unsaved files in case it crashes or something else goes wrong.
  • Dedicated Sympy, Cython and Pylab consoles, making it +very simple to quickly explore and create code for these libraries.
  • OS level window pane undocking, allowing you to easily +organize panes across different monitors.
  • Support for multi-indexes +in our Dataframe viewer, making working with complex datasets much easier.
  • `,De,Me,it=`We will describe all of these additional enhancements in greater detail in +future blog posts.`,ze,Pe,nt="You can help!",A,te,at=`If would like to help us test this beta release and try out the new features it offers, +you can! You can install it with conda (if using Anaconda/Miniconda, as we recommend), +or with pip; we suggest doing so in a new Conda env or virtualenv/venv +so you can easily switch between your existing Spyder install and the Spyder 4 beta. +For example, to do so with conda, enter the following at the Terminal/Anaconda prompt:`,Qe,Le,lt,Je=`$ conda create --channel spyder-ide --name spyder-beta spyder=4.0.0b2 +$ conda activate spyder-beta +$ spyder`,Ee,et,h=`This is a safe process because Spyder now uses a different configuration +directory for its development versions, so you can easily switch between our stable +and beta releases without worrying about one affecting the other.`,E,st,ut=`If you find any bugs, you can report them on our +issue tracker; +make sure to search for your error message or behavior before making a new one.`,Ke,rt,F="Closing remarks",le,dt,$=`I would like to thank Quansight for the opportunity of working in open source +development on an awesome project like Spyder. I am also grateful to our +users, contributors +and core developers for helping +making Spyder amazing!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("h1"),w.textContent=ye,V=s(),b=o("p"),b.innerHTML=ce,C=s(),x=o("h2"),x.textContent=ke,oe=s(),T=o("p"),T.innerHTML=fe,ie=s(),_=o("figure"),_.innerHTML=se,G=s(),S=o("p"),S.textContent=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("h2"),m.textContent=be,me=s(),B=o("p"),B.innerHTML=Ie,pe=s(),K=o("blockquote"),K.innerHTML=je,W=s(),z=o("p"),z.textContent=Ae,R=s(),D=o("figure"),D.innerHTML=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("figure"),X.innerHTML=Re,_e=s(),Z=o("p"),Z.textContent=We,g=s(),L=o("figure"),L.innerHTML=Ve,U=s(),J=o("h2"),J.textContent=Ze,N=s(),Y=o("p"),Y.innerHTML=Ye,Fe=s(),we=o("figure"),we.innerHTML=Xe,$e=s(),ve=o("h2"),ve.textContent=Be,q=s(),ee=o("p"),ee.textContent=tt,Ge=s(),He=o("ul"),He.innerHTML=ot,De=s(),Me=o("p"),Me.textContent=it,ze=s(),Pe=o("h2"),Pe.textContent=nt,A=s(),te=o("p"),te.innerHTML=at,Qe=s(),Le=o("pre"),lt=new Wt(!1),Ee=s(),et=o("p"),et.textContent=h,E=s(),st=o("p"),st.innerHTML=ut,Ke=s(),rt=o("h2"),rt.textContent=F,le=s(),dt=o("p"),dt.innerHTML=$,this.h()},l(y){n=i(y,"P",{"data-svelte-h":!0}),l(n)!=="svelte-1wz2w3n"&&(n.innerHTML=f),p=r(y),d=i(y,"P",{"data-svelte-h":!0}),l(d)!=="svelte-1eabgyx"&&(d.innerHTML=a),u=r(y),c=i(y,"P",{"data-svelte-h":!0}),l(c)!=="svelte-1ihfkr1"&&(c.innerHTML=de),Q=r(y),w=i(y,"H1",{"data-svelte-h":!0}),l(w)!=="svelte-7kmlv3"&&(w.textContent=ye),V=r(y),b=i(y,"P",{"data-svelte-h":!0}),l(b)!=="svelte-4cvjwe"&&(b.innerHTML=ce),C=r(y),x=i(y,"H2",{class:!0,"data-svelte-h":!0}),l(x)!=="svelte-1a2hh4r"&&(x.textContent=ke),oe=r(y),T=i(y,"P",{"data-svelte-h":!0}),l(T)!=="svelte-gf6243"&&(T.innerHTML=fe),ie=r(y),_=i(y,"FIGURE",{class:!0,"data-svelte-h":!0}),l(_)!=="svelte-10qnh4o"&&(_.innerHTML=se),G=r(y),S=i(y,"P",{"data-svelte-h":!0}),l(S)!=="svelte-1yijxxv"&&(S.textContent=Te),O=r(y),M=i(y,"P",{"data-svelte-h":!0}),l(M)!=="svelte-q9vdms"&&(M.innerHTML=Se),P=r(y),m=i(y,"H2",{class:!0,"data-svelte-h":!0}),l(m)!=="svelte-11mywl0"&&(m.textContent=be),me=r(y),B=i(y,"P",{"data-svelte-h":!0}),l(B)!=="svelte-1bk4269"&&(B.innerHTML=Ie),pe=r(y),K=i(y,"BLOCKQUOTE",{"data-svelte-h":!0}),l(K)!=="svelte-1j0l5ju"&&(K.innerHTML=je),W=r(y),z=i(y,"P",{"data-svelte-h":!0}),l(z)!=="svelte-awzqvi"&&(z.textContent=Ae),R=r(y),D=i(y,"FIGURE",{class:!0,"data-svelte-h":!0}),l(D)!=="svelte-1lp1aom"&&(D.innerHTML=Ue),ge=r(y),ne=i(y,"P",{"data-svelte-h":!0}),l(ne)!=="svelte-1cdnc4"&&(ne.innerHTML=Ne),xe=r(y),X=i(y,"FIGURE",{class:!0,"data-svelte-h":!0}),l(X)!=="svelte-10phqtd"&&(X.innerHTML=Re),_e=r(y),Z=i(y,"P",{"data-svelte-h":!0}),l(Z)!=="svelte-1yzljlb"&&(Z.textContent=We),g=r(y),L=i(y,"FIGURE",{class:!0,"data-svelte-h":!0}),l(L)!=="svelte-xidfm4"&&(L.innerHTML=Ve),U=r(y),J=i(y,"H2",{class:!0,"data-svelte-h":!0}),l(J)!=="svelte-1jbtxpk"&&(J.textContent=Ze),N=r(y),Y=i(y,"P",{"data-svelte-h":!0}),l(Y)!=="svelte-r6n6cd"&&(Y.innerHTML=Ye),Fe=r(y),we=i(y,"FIGURE",{class:!0,"data-svelte-h":!0}),l(we)!=="svelte-m8gs28"&&(we.innerHTML=Xe),$e=r(y),ve=i(y,"H2",{class:!0,"data-svelte-h":!0}),l(ve)!=="svelte-66qyz8"&&(ve.textContent=Be),q=r(y),ee=i(y,"P",{"data-svelte-h":!0}),l(ee)!=="svelte-11dz64v"&&(ee.textContent=tt),Ge=r(y),He=i(y,"UL",{"data-svelte-h":!0}),l(He)!=="svelte-1u30ia1"&&(He.innerHTML=ot),De=r(y),Me=i(y,"P",{"data-svelte-h":!0}),l(Me)!=="svelte-r8brsp"&&(Me.textContent=it),ze=r(y),Pe=i(y,"H2",{class:!0,"data-svelte-h":!0}),l(Pe)!=="svelte-vp73cb"&&(Pe.textContent=nt),A=r(y),te=i(y,"P",{"data-svelte-h":!0}),l(te)!=="svelte-ye9ycf"&&(te.innerHTML=at),Qe=r(y),Le=i(y,"PRE",{class:!0});var he=Ht(Le);lt=Nt(he,!1),he.forEach(e),Ee=r(y),et=i(y,"P",{"data-svelte-h":!0}),l(et)!=="svelte-1w248v4"&&(et.textContent=h),E=r(y),st=i(y,"P",{"data-svelte-h":!0}),l(st)!=="svelte-1mi7edq"&&(st.innerHTML=ut),Ke=r(y),rt=i(y,"H2",{class:!0,"data-svelte-h":!0}),l(rt)!=="svelte-1mvchr8"&&(rt.textContent=F),le=r(y),dt=i(y,"P",{"data-svelte-h":!0}),l(dt)!=="svelte-19r1btb"&&(dt.innerHTML=$),this.h()},h(){k(x,"class","section"),k(_,"class","figure text-center"),k(m,"class","section"),k(D,"class","figure text-center"),k(X,"class","figure text-center"),k(L,"class","figure text-center"),k(J,"class","section"),k(we,"class","figure text-center"),k(ve,"class","section"),k(Pe,"class","section"),lt.a=null,k(Le,"class","language-bash"),k(rt,"class","section")},m(y,he){t(y,n,he),t(y,p,he),t(y,d,he),t(y,u,he),t(y,c,he),t(y,Q,he),t(y,w,he),t(y,V,he),t(y,b,he),t(y,C,he),t(y,x,he),t(y,oe,he),t(y,T,he),t(y,ie,he),t(y,_,he),t(y,G,he),t(y,S,he),t(y,O,he),t(y,M,he),t(y,P,he),t(y,m,he),t(y,me,he),t(y,B,he),t(y,pe,he),t(y,K,he),t(y,W,he),t(y,z,he),t(y,R,he),t(y,D,he),t(y,ge,he),t(y,ne,he),t(y,xe,he),t(y,X,he),t(y,_e,he),t(y,Z,he),t(y,g,he),t(y,L,he),t(y,U,he),t(y,J,he),t(y,N,he),t(y,Y,he),t(y,Fe,he),t(y,we,he),t(y,$e,he),t(y,ve,he),t(y,q,he),t(y,ee,he),t(y,Ge,he),t(y,He,he),t(y,De,he),t(y,Me,he),t(y,ze,he),t(y,Pe,he),t(y,A,he),t(y,te,he),t(y,Qe,he),t(y,Le,he),lt.m(Je,Le),t(y,Ee,he),t(y,et,he),t(y,E,he),t(y,st,he),t(y,Ke,he),t(y,rt,he),t(y,le,he),t(y,dt,he)},p:yt,d(y){y&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(Fe),e(we),e($e),e(ve),e(q),e(ee),e(Ge),e(He),e(De),e(Me),e(ze),e(Pe),e(A),e(te),e(Qe),e(Le),e(Ee),e(et),e(E),e(st),e(Ke),e(rt),e(le),e(dt))}}}function Eo(v){let n,f;const p=[v[0],dn];let d={$$slots:{default:[jo]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let $o=class extends ht{constructor(n){super(),ct(this,n,Fo,Eo,pt,{})}};const Ao=Object.freeze(Object.defineProperty({__proto__:null,default:$o,metadata:dn},Symbol.toStringTag,{value:"Module"}));function Go(v){let n,f=`The Spyder team and collaborators hosted a Birds of a Feather (BoF) session at SciPy 2023, focused on moving beyond just scripts and notebooks toward truly reproducible, reusable research. +In Part 1 of this two-part series, we went over our motivation and goals for the session and the challenges that attendees brought up. +Now, we’ll review the tips, strategies, tools and platforms (including Spyder!) that participants shared as ways to address these obstacles. +We’d again like to thank Juanita Gomez for helping organize the BoF, Hari for his hard work compiling a summary of the outcomes, and everyone for attending and sharing such great ideas and insights!`,p,d,a="Making notebooks more reusable",u,c,de=`As far as reproducibility is concerned, it was brought up that it can be difficult to easily compare outputs between notebooks created by different researchers. +In response, one participant mentioned that VSCode recently made an improvement to the notebook diff viewers to more easily show just the code changes. +However, users stressed that it was critical to be able to diff the actual notebook output, not just its contents, and expressed a desire for a tool to cover that aspect.`,Q,w,ye=`In response to these concerns, others responded that notebooks should not be considered a unit of reproducible research, which should instead be a complete software project, including notebooks or scripts, an environment/requirements file and a record of commands to run there. +They recommended the 8-levels of Reproducibility and Conda Project to help guide and implement this.`,V,b,ce=`Additionally, attendees recommended Papermill, describing it as a very useful tool for parameterizing and executing notebooks programmatically. +Others suggested Devcontainers, to allow collaborating with a lab group or team in a shared environment and seeing everything on their screen, as well as Live Share in VSCode.`,C,x,ke=`Participants also expressed frustration that despite notebooks being intended to make programming more literate, this often does not happen in practice. +Beginners like the interactivity in notebooks because they don’t know how to use more advanced programming tools, but they don’t always take advantage of their readability features. +To address this, attendees stressed the importance of getting users accustomed to best practices that can also be helpful for reproducibility. +A participant mentioned a nbflake8 tool to lint notebooks, though it could not be easily found online, and others wished for a Ruff implementation (which at the time of this writing is now complete).`,oe,T,fe="Migrating notebooks to modules",ie,_,se=`As one participant put it, “I love notebooks, and also love modules, and love the flow of code from notebooks into modules once it approaches that point.” +They went on to describe modules as a key unit of documented, tested code, but which doesn’t mean a lot on its own, whereas combined with a notebook, it gives them context and meaning. +For communities that may be afraid of modules, the participant recommended trying to make creating and transitioning to them easier, so users have fully importable, reusable Python code. +For students, notebooks often turn into a fancy scratch pad or script file, and once they get stuff that works, they can move that stuff out into modules, and then the notebooks start to morph into examples and the history of what the work was about that can be interpreted by other researchers.`,G,S,Te=`Other attendees chimed in with similar stories, with a NIST researcher mentioning this is an area they’d been working on for 10 years, with their approach being putting the stuff they want to be modular in a regular Python module, and then have a Jupyter notebook that shows an example using the code, such as in their IPRPy project. +To aid this process, participants suggested tools like the Autodocstring extension in VSCode and the docstring generator built into Spyder’s editor as great ways to reduce the friction for students when writing documentation, as they just add the triple quotes and the IDE generates a pre-filled docstring for them.`,O,M,Se=`An important reproducibility and reusability tool many cited for this was nbdev, which can allow users to develop their code and let it grow, and then eventually export the parts as modules at the end. +According to attendees, its documentation mostly talks about everything as packages, but it can also be used for individual notebooks and modules. +Some participants were initially hesitant to show it to their students since they’re early Python programmers, but it was actually quite easy for them, only requiring as little as one line of code at the end. +(Unfortunately as of this writing, it seems ndbdev development has stalled due to its expected commercial opportunities not materializing.) +Others asked for more documentation resources for this, since they were still learning Python themselves and would like to learn more about this and teach it to their students. +In addition to this very blog post and guide, one attendee brought up that they did a tutorial on that topic at SciPy, adding that the documentation is pretty intimidating but it would be great to have something more focused on smaller-scale usage.`,P,m,be=`As additional approaches, attendees mentioned they have their students use Jupytext, which helps the student to convert notebooks to Python files that can be committed to a Git repository. +This allows the code to be committed as a Python file, while allowing Jupyter to open it as a notebook and continue working on it. +Others brought up nb-convert, a command line tool that can convert notebooks to many different formats including a Python script, which is integrated into IDEs like Spyder, and that there is also a similar VSCode feature.`,me,B,Ie="Enabling reusable Python packages",pe,K,je=`When it comes to overall workflow, all agreed that going from a script or notebook to a reusable, installable Python package could be a major challenge, especially for students and non-programmers. +Attendees from NASA mentioned that for their projects everything has to be documented, and one of the things they’ve struggled with was converting a notebook to the type of report NASA is typically looking for. +Others described their workflow being as simple and “old school” as writing a aaa_readme.txt file where they record a diary of what they were doing on that project so if they have a break working on it, they can go back to those notes and remind themselves.`,W,z,Ae=`To help address this, participants recommended a “really cool” tool called “Show Your Work” that comes out of the astrophysics community, which is primarily aimed at producing a paper at the end but also a Python package, and includes all the steps that show users’ work along the way. +It is built around a tool called Snakemake, which then sets up a template for both the Python package and the paper. +Additionally, attendees described it as having a “really helpful” guide for getting started and ensuring all of a user’s projects have the same structure. +It was brought up that Azel Donath, maintainer of Gammapy and speaker at SciPy 2023, published their Gammapy paper by using this tool.`,R,D,Ue=`As a followup, participants asked how this differed from Quarto, to which the response was that Quarto is much more general, whereas Show Your Work was specifically built to allow users to produce a PDF in LaTeX at the end. +Others mentioned Duecredit, a related tool for citing open source authors which looks at code and finds the authors (via Git commits) that wrote it.`,ge,ne,Ne=`Additionally, users expressed particular appreciation for the Cookiecutter template that Henry Schreiner III has for packaging. +They mentioned that a lot of their workflows are just messing around with their data, and having something like a package structure from the get go helps make it easier to not miss things. +As a followup, a nuclear engineer mentioned they often have two week projects leveraging Jupyter at their center, with a cookiecutter template that has Sphinx, and a directory structure, and metadata that looks familiar and has everything set up by default. +They described how this particularly helps ensure that different colleagues and team members are on the same page with doing things. +Finally, others suggested the data-driven Cookiecutter template, which provides an ordered structure for where things go, what they are named and how they are run.`,xe,X,Re="Next steps",_e,Z,We=`Now that we’ve gathered a wealth of community feedback, ideas and resources, we’re currently working to further translate these insights into an actionable guide (or series of such) on a community platform, to make it easier for everyone to apply them. +Keep an eye out for that, and until then, happy Spydering!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("h2"),d.textContent=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),b=o("p"),b.innerHTML=ce,C=s(),x=o("p"),x.innerHTML=ke,oe=s(),T=o("h2"),T.textContent=fe,ie=s(),_=o("p"),_.textContent=se,G=s(),S=o("p"),S.innerHTML=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("p"),m.innerHTML=be,me=s(),B=o("h2"),B.textContent=Ie,pe=s(),K=o("p"),K.innerHTML=je,W=s(),z=o("p"),z.innerHTML=Ae,R=s(),D=o("p"),D.innerHTML=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("h2"),X.textContent=Re,_e=s(),Z=o("p"),Z.textContent=We,this.h()},l(g){n=i(g,"P",{"data-svelte-h":!0}),l(n)!=="svelte-1rsron7"&&(n.innerHTML=f),p=r(g),d=i(g,"H2",{class:!0,"data-svelte-h":!0}),l(d)!=="svelte-1oivyqz"&&(d.textContent=a),u=r(g),c=i(g,"P",{"data-svelte-h":!0}),l(c)!=="svelte-usjxwz"&&(c.innerHTML=de),Q=r(g),w=i(g,"P",{"data-svelte-h":!0}),l(w)!=="svelte-hx5j5j"&&(w.innerHTML=ye),V=r(g),b=i(g,"P",{"data-svelte-h":!0}),l(b)!=="svelte-1089bxp"&&(b.innerHTML=ce),C=r(g),x=i(g,"P",{"data-svelte-h":!0}),l(x)!=="svelte-1ms9red"&&(x.innerHTML=ke),oe=r(g),T=i(g,"H2",{class:!0,"data-svelte-h":!0}),l(T)!=="svelte-paakq"&&(T.textContent=fe),ie=r(g),_=i(g,"P",{"data-svelte-h":!0}),l(_)!=="svelte-173yon5"&&(_.textContent=se),G=r(g),S=i(g,"P",{"data-svelte-h":!0}),l(S)!=="svelte-1799m22"&&(S.innerHTML=Te),O=r(g),M=i(g,"P",{"data-svelte-h":!0}),l(M)!=="svelte-1upcstj"&&(M.innerHTML=Se),P=r(g),m=i(g,"P",{"data-svelte-h":!0}),l(m)!=="svelte-1x1q5a2"&&(m.innerHTML=be),me=r(g),B=i(g,"H2",{class:!0,"data-svelte-h":!0}),l(B)!=="svelte-18hhit8"&&(B.textContent=Ie),pe=r(g),K=i(g,"P",{"data-svelte-h":!0}),l(K)!=="svelte-m81akp"&&(K.innerHTML=je),W=r(g),z=i(g,"P",{"data-svelte-h":!0}),l(z)!=="svelte-eee2gu"&&(z.innerHTML=Ae),R=r(g),D=i(g,"P",{"data-svelte-h":!0}),l(D)!=="svelte-185l8gx"&&(D.innerHTML=Ue),ge=r(g),ne=i(g,"P",{"data-svelte-h":!0}),l(ne)!=="svelte-1y8nhb4"&&(ne.innerHTML=Ne),xe=r(g),X=i(g,"H2",{class:!0,"data-svelte-h":!0}),l(X)!=="svelte-18hazx0"&&(X.textContent=Re),_e=r(g),Z=i(g,"P",{"data-svelte-h":!0}),l(Z)!=="svelte-w2m65z"&&(Z.textContent=We),this.h()},h(){k(d,"class","section"),k(T,"class","section"),k(B,"class","section"),k(X,"class","section")},m(g,L){t(g,n,L),t(g,p,L),t(g,d,L),t(g,u,L),t(g,c,L),t(g,Q,L),t(g,w,L),t(g,V,L),t(g,b,L),t(g,C,L),t(g,x,L),t(g,oe,L),t(g,T,L),t(g,ie,L),t(g,_,L),t(g,G,L),t(g,S,L),t(g,O,L),t(g,M,L),t(g,P,L),t(g,m,L),t(g,me,L),t(g,B,L),t(g,pe,L),t(g,K,L),t(g,W,L),t(g,z,L),t(g,R,L),t(g,D,L),t(g,ge,L),t(g,ne,L),t(g,xe,L),t(g,X,L),t(g,_e,L),t(g,Z,L)},p:yt,d(g){g&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z))}}}function zo(v){let n,f;const p=[v[0],pn];let d={$$slots:{default:[Go]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Oo=class extends ht{constructor(n){super(),ct(this,n,qo,zo,pt,{})}};const Uo=Object.freeze(Object.defineProperty({__proto__:null,default:Oo,metadata:pn},Symbol.toStringTag,{value:"Module"}));function Do(v){let n,f=`The Spyder team and collaborators hosted a Birds of a Feather (BoF) session at SciPy 2023, focused on moving beyond just scripts and notebooks toward truly reproducible, reusable research. +Here, we’ll recap the motivation and goals of the BoF and share the common challenges that participants brought up with notebooks and moving toward reproducible, reusable research. +In our next post, we’ll follow up with some of the tips, tools, platforms and strategies attendees brought up as ways to address them, including using Spyder! +We’d like to thank Juanita Gomez for helping organize the BoF, Hari for his hard work compiling a summary of the outcomes, and everyone for attending and sharing such great ideas and insights!`,p,d,a="The trouble with notebooks",u,c,de=`The overwhelming majority of current scientific code is siloed away into one-off scripts and notebooks, where the only real mechanism for reusing and building upon them is good old copy and paste. +In order to keep “building upon the shoulders of giants”, we need to achieve not only reproducibility of individual results but also true reusability of research methods, that can be shared, built upon, and deployed by researchers across the world.`,Q,w,ye="In particular, scripts and notebooks are not typically very reproducible or reusable, as users generally cannot easily import them, specify dependencies, extend them or use them for another project (without copy/paste and managing multiple code versions by hand). Additionally, for notebooks specifically, authors and readers alike cannot easily track them in Git (with clean diffs), lint, type check, test or format them with standard Python tools, or interoperate with most other non-notebook-specific ecosystems.",V,b,ce=`To address these pressing issues, the Spyder team and interested community members convened a Birds of a Feather (BoF) session, “Beyond Notebooks: From reproducible to reusable research”, at the SciPy 2023 conference in Austin, TX, where we invited attendees to share their tools and workflows for reusable science, and explored how we can encourage users to expand beyond the current notebook-centric monoculture and toward more holistic, modular and interoperable approaches to conducting research and developing scientific code. +The goal was to not only share and discuss ideas and insights on the topic among BoF participants, which numbered over ≈50 interested community members, but also to help inform future guides and resources on this topic, to be hosted on central platforms like the Scientific Python organization, as is currently in progress.`,C,x,ke="Goals and themes",oe,T,fe="The BoF was motivated by the following key questions:",ie,_,se="
  • What is reusable research and why is it important?
  • What tools and techniques do people have to share for effective reusable research?
  • How can we integrate reusable research into existing workflows?
  • How do we teach students and researchers about reusable research, and encourage them to practice it?
  • ",G,S,Te="While the resulting community ideas and insights centered around three related themes:",O,M,Se="
  • How can we make existing notebooks more readable, reproducible and reusable?
  • How can notebooks be progressively migrated to Python modules for basic reusability?
  • How can the community simplify and advocate the process of creating fully reusable Python packages?
  • ",P,m,be="Common challenges",me,B,Ie=`Participants commented that students mostly get introduced to notebooks through classes in contexts that are very different from how they would use them for their research, and they don’t have a good resource for that to hand to them if they have a question or are confused about that. +Others responded that they think that should be part of the curriculum, questioning why are people learning machine learning using Jupyter notebooks without actually learning how to use Jupyter notebooks themselves, and that many folks don’t come from a traditional computer science background and may not know about all these tools.`,pe,K,je='It was also remarked that some feel the fact that students are only exposed to notebooks really makes them not necessarily want to reach for other tools even when they would be more appropriate down the line, which participants suggested addressing by encouraging students to use IDEs like Spyder and JupyterLab that offer many features for reusability and reproducibility, but while also allowing them to take advantage of notebooks.',W,z,Ae=`In particular, one former Spyder developer commented that they feel that we should show students how to use tools like debugging and make it easier for them to do that, but give them the choice whether they want to use those tools, and that the right approach is not necessarily telling them what tool to use, but having documentation and exposure to those tools so students can pick the best option for them. +Others remarked in response that we do want to give students options, though many might not need a full debugger.`,R,D,Ue=`One library worker mentioned that they often only have an hour to introduce users to Python, and use Google Collab notebooks because it makes it a lot easier for students to get started with Python over having to download and install an IDE, but then students tend to be familiar with that tool and continue to use it. +Another participant mentioned they are a big fan of using videos to help reach students over reading the documentation, as they feel students are much more likely to watch them.`,ge,ne,Ne="The discussion shifted to tools in larger organizations, with a participant commenting “It’s one thing when it’s students, but how do you do that when it’s your whole organizational culture that needs to change?” One participant responded saying she’s a student herself, and no one ever really talked to her about IDEs and explained what they were and why you’d want to use one, remarking that it’s important for teachers to actually train them to use the proper tools, but they have no idea when it comes to coworkers using these things.",xe,X,Re=`Another participant suggested “nerd sniping” as an effective way to handle that in larger organizations, which involves figuring out what is the biggest pain point for the team, usually something that should be automated, and then getting them to follow better practices by showing them how these tools can fix that problem. +Others agreed that it’s really about awareness, and if you show someone a cool tool most people will make the decision to adopt them on their own, but there will always be some who might not want that.`,_e,Z,We="Finally, it was brought up that students might have familiarity with Python or R, but Git is a completely different animal and is quite challenging to factor that into education; people like writers would really benefit from Git but it’s really hard to get them to use it, and people might not be aware of how inefficient the workflows they use are, because that’s all they know.",g,L,Ve="Next up",U,J,Ze=`Now that we’ve surfaced the reproducibility and reusability challenges that participants brought up at the BoF, check out our next blog post, where we share all the helpful tips, cool tools, awesome platforms and useful strategies attendees suggested to help address them. +Until then, happy Spydering!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("h2"),d.textContent=a,u=s(),c=o("p"),c.textContent=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),b=o("p"),b.innerHTML=ce,C=s(),x=o("h2"),x.textContent=ke,oe=s(),T=o("p"),T.textContent=fe,ie=s(),_=o("ul"),_.innerHTML=se,G=s(),S=o("p"),S.textContent=Te,O=s(),M=o("ul"),M.innerHTML=Se,P=s(),m=o("h2"),m.textContent=be,me=s(),B=o("p"),B.textContent=Ie,pe=s(),K=o("p"),K.innerHTML=je,W=s(),z=o("p"),z.textContent=Ae,R=s(),D=o("p"),D.innerHTML=Ue,ge=s(),ne=o("p"),ne.textContent=Ne,xe=s(),X=o("p"),X.textContent=Re,_e=s(),Z=o("p"),Z.textContent=We,g=s(),L=o("h2"),L.textContent=Ve,U=s(),J=o("p"),J.innerHTML=Ze,this.h()},l(N){n=i(N,"P",{"data-svelte-h":!0}),l(n)!=="svelte-1ph6npe"&&(n.innerHTML=f),p=r(N),d=i(N,"H2",{class:!0,"data-svelte-h":!0}),l(d)!=="svelte-1yzon88"&&(d.textContent=a),u=r(N),c=i(N,"P",{"data-svelte-h":!0}),l(c)!=="svelte-1tnobeu"&&(c.textContent=de),Q=r(N),w=i(N,"P",{"data-svelte-h":!0}),l(w)!=="svelte-hnmsep"&&(w.textContent=ye),V=r(N),b=i(N,"P",{"data-svelte-h":!0}),l(b)!=="svelte-165q07j"&&(b.innerHTML=ce),C=r(N),x=i(N,"H2",{class:!0,"data-svelte-h":!0}),l(x)!=="svelte-32889v"&&(x.textContent=ke),oe=r(N),T=i(N,"P",{"data-svelte-h":!0}),l(T)!=="svelte-17px8a5"&&(T.textContent=fe),ie=r(N),_=i(N,"UL",{"data-svelte-h":!0}),l(_)!=="svelte-vf89vd"&&(_.innerHTML=se),G=r(N),S=i(N,"P",{"data-svelte-h":!0}),l(S)!=="svelte-1bfog1w"&&(S.textContent=Te),O=r(N),M=i(N,"UL",{"data-svelte-h":!0}),l(M)!=="svelte-1oppegz"&&(M.innerHTML=Se),P=r(N),m=i(N,"H2",{class:!0,"data-svelte-h":!0}),l(m)!=="svelte-1uxg9mh"&&(m.textContent=be),me=r(N),B=i(N,"P",{"data-svelte-h":!0}),l(B)!=="svelte-spy2hy"&&(B.textContent=Ie),pe=r(N),K=i(N,"P",{"data-svelte-h":!0}),l(K)!=="svelte-10m97u6"&&(K.innerHTML=je),W=r(N),z=i(N,"P",{"data-svelte-h":!0}),l(z)!=="svelte-47otnf"&&(z.textContent=Ae),R=r(N),D=i(N,"P",{"data-svelte-h":!0}),l(D)!=="svelte-1uq8h27"&&(D.innerHTML=Ue),ge=r(N),ne=i(N,"P",{"data-svelte-h":!0}),l(ne)!=="svelte-1am33iv"&&(ne.textContent=Ne),xe=r(N),X=i(N,"P",{"data-svelte-h":!0}),l(X)!=="svelte-jbmlzp"&&(X.textContent=Re),_e=r(N),Z=i(N,"P",{"data-svelte-h":!0}),l(Z)!=="svelte-qfjoan"&&(Z.textContent=We),g=r(N),L=i(N,"H2",{class:!0,"data-svelte-h":!0}),l(L)!=="svelte-1yo5tes"&&(L.textContent=Ve),U=r(N),J=i(N,"P",{"data-svelte-h":!0}),l(J)!=="svelte-11j93d7"&&(J.innerHTML=Ze),this.h()},h(){k(d,"class","section"),k(x,"class","section"),k(m,"class","section"),k(L,"class","section")},m(N,Y){t(N,n,Y),t(N,p,Y),t(N,d,Y),t(N,u,Y),t(N,c,Y),t(N,Q,Y),t(N,w,Y),t(N,V,Y),t(N,b,Y),t(N,C,Y),t(N,x,Y),t(N,oe,Y),t(N,T,Y),t(N,ie,Y),t(N,_,Y),t(N,G,Y),t(N,S,Y),t(N,O,Y),t(N,M,Y),t(N,P,Y),t(N,m,Y),t(N,me,Y),t(N,B,Y),t(N,pe,Y),t(N,K,Y),t(N,W,Y),t(N,z,Y),t(N,R,Y),t(N,D,Y),t(N,ge,Y),t(N,ne,Y),t(N,xe,Y),t(N,X,Y),t(N,_e,Y),t(N,Z,Y),t(N,g,Y),t(N,L,Y),t(N,U,Y),t(N,J,Y)},p:yt,d(N){N&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J))}}}function Ro(v){let n,f;const p=[v[0],hn];let d={$$slots:{default:[Do]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let No=class extends ht{constructor(n){super(),ct(this,n,Wo,Ro,pt,{})}};const Qo=Object.freeze(Object.defineProperty({__proto__:null,default:No,metadata:hn},Symbol.toStringTag,{value:"Module"}));function Vo(v){let n,f='IPython is a great improvement over the standard Python interpreter, bringing many enhancements such as autocompletion and “magic” commands. When debugging, however, many of these features become inaccessible. With Spyder, we aim to bring back these capabilities and more for a truly premium debugging experience! (And believe me, I use this debugger a lot, and not only because I write code that might contain bugs :p).',p,d,a="In this post, I will describe the debugger improvements we’ve already made in Spyder 4, as well as those that are already implemented or under review for Spyder 4.2 and beyond.",u,c,de="Make the debugger more like IPython",Q,w,ye=`IPython improves on the stock Python interpreter by adding syntax highlighting, completion, and history. +We have done the same for the debugger!`,V,b,ce='Debugger ipdb
    Debugger ipdb
    ',C,x,ke="The output is prettier (and easier to read) than plain black text, as it was in Spyder 3!",oe,T,fe=`Code completion and history for the debugger use the same functionality as the IPython console, so you should not notice any difference in behaviour. +Just press Tab to trigger autocomplete suggestions, and use the up and down arrows to recall previous commands.`,ie,_,se='Debugger-autocomplete
    Debugger-autocomplete
    ',G,S,Te="This can result useful if you don’t know every library’s documentation by heart!",O,M,Se="Another improvement that we added is the ability to write multiline statements.",P,m,be='Debugger-multiline
    Debugger-multiline
    ',me,B,Ie="This is better than getting SyntaxError: unexpected EOF while parsing, as was the case in Spyder 3.",pe,K,je=`Finally, IPython has a lot of nice magic functions you can take advantage of. +I personally often use %matplotlib to switch between the qt5 and inline plotting backends, and %timeit to check how fast a given snippet of code is. +Now, these can be used in the debugger as well!`,W,z,Ae='Debugger timeit
    Debugger timeit
    ',R,D,Ue="Core improvements",ge,ne,Ne=`When debugging code, a lot of time can be lost stepping through other Python packages. +To avoid that, enable the new Ignore Python libraries while debugging option in Spyder’s preferences under IPython Console > Debugger > Debug. +This will skip all the built-in and third-party Python modules and help you focus on your own code.`,xe,X,Re='Debugger preferences
    Debugger preferences
    ',_e,Z,We=`Another pain point for me is the mix of Pdb commands and Python statements when using the interactive prompt. +While debugging a script with a variable named step, for example, typing step in the Pdb prompt will not display the value of step, but will instead step through the code. +To avoid this, the Spyder 4.2 debugger will give precedence to Python expressions over Pdb commands; prefixing an expression with an exclamation mark will explicitly run it as a Pdb command. +This matches how the IPython Console handles clashes between magic functions and Python expressions, and contrasts with the previous behavior, where Pdb commands took precedence. +You can toggle this under IPython Console > Debugger > Debug in Spyder’s preferences.`,g,L,Ve='Debugger
    Debugger
    ',U,J,Ze="Here, you can see I can have a variable named step, and use it just as I would in the IPython console!",N,Y,Ye=`While debugging, the context changes constantly, which can be annoying if you need to use a certain module in each frame. +To address this, Spyder 4.2 will allow you to execute a snippet of code before any Pdb command. +I personally use import matplotlib.pyplot as plt so I can use Matplotlib anywhere with no extra commands! +You’ll be able to set this up for yourself under Preferences > IPython Console > Debugger > Run code while debugging.`,Fe,we,Xe='Debugger modules
    Debugger modules
    ',$e,ve,Be="Matplotlib support",q,ee,tt=`Speaking of using Matplotlib, two improvements will make your plotting life much easier while in the debugger. +First, if you use the inline backend, the Process execute events while debugging option in Preferences > IPython console > Debugger (on by defaults) enables plotting after each command.`,Ge,He,ot='Debugger plots
    Debugger plots
    ',De,Me,it=`If you would rather use an interactive backend, Spyder 4.2 will allow you to do that too! +The event loop will be running while waiting for a Pdb input, which will bring Matplotlib figures to life!`,ze,Pe,nt='Debugger interactive plots
    Debugger interactive plots
    ',A,te,at="For example, interactive figures are great to zoom and pan.",Qe,Le,lt="Spyder Editor integration",Je,Ee,et=`By clicking next to the line number in the Editor, you can set a breakpoint to stop the debugger upon reaching that line. +With a Shift-click, you can set a conditional breakpoint that will only pause execution if an expression you write evaluates to True. +This is very useful if you are debugging a loop and want to go to a specific iteration, for example! +While debugging, the Editor will show you the line on which execution is stopped. +If you move around in the Editor, you can always go back to the current line by using the Pdb (w)here command.`,h,E,st='Editor breakpoints
    Editor breakpoints
    ',ut,Ke,rt=`Here, you can see the Spyder debugger is stopped at the breakpoint on line 385, which is highlighted. +The next line has a conditional breakpoint.`,F,le,dt="Other Spyder panes",$,y,he=`Several other Spyder panes are useful while debugging. +Breakpoints gives you a list of all the breakpoints you have set throughout your code.`,_t,Lt,At='Debugger breakpoint
    Debugger breakpoint
    ',Ct,Ft,Gt="The Variable Explorer pane allows you to browse and modify the local namespace wherever the debugger is stopped.",Tt,It,zt='Variable Explorer
    Variable Explorer
    ',St,jt,qt="The future",Pt,$t,I=`I’m excited for the new Frames Explorer pane, which is currently almost ready for Spyder 5. +Usually while debugging, it can be hard to tell from where the current function was invoked, and one must often step up a long chain of calls to figure it out. +With the Frames Explorer, you have direct access to all the relevant call information, and you can jump around the stack easily!`,ae,Et,Qt='Frames Explorer
    Frames Explorer
    ',Ot,Ut,j="I can see where the current function was called from!",re,Dt,Bt=`The next challenge I will be tackling is to enable the debugger to stop in threads. +This is a bit difficult to implement because if two threads reach a breakpoint at the same time, only one of them can take control of the shell, leading to skipped breakpoints. +This might be okay, but I’m still figuring that out.`,Vt,Rt,Tn="Try out the new improvements in the Spyder debugger and let us know if they make your debugging easier!";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.textContent=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),b=o("figure"),b.innerHTML=ce,C=s(),x=o("p"),x.textContent=ke,oe=s(),T=o("p"),T.innerHTML=fe,ie=s(),_=o("figure"),_.innerHTML=se,G=s(),S=o("p"),S.textContent=Te,O=s(),M=o("p"),M.textContent=Se,P=s(),m=o("figure"),m.innerHTML=be,me=s(),B=o("p"),B.innerHTML=Ie,pe=s(),K=o("p"),K.innerHTML=je,W=s(),z=o("figure"),z.innerHTML=Ae,R=s(),D=o("h2"),D.textContent=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("figure"),X.innerHTML=Re,_e=s(),Z=o("p"),Z.innerHTML=We,g=s(),L=o("figure"),L.innerHTML=Ve,U=s(),J=o("p"),J.innerHTML=Ze,N=s(),Y=o("p"),Y.innerHTML=Ye,Fe=s(),we=o("figure"),we.innerHTML=Xe,$e=s(),ve=o("h2"),ve.textContent=Be,q=s(),ee=o("p"),ee.innerHTML=tt,Ge=s(),He=o("figure"),He.innerHTML=ot,De=s(),Me=o("p"),Me.textContent=it,ze=s(),Pe=o("figure"),Pe.innerHTML=nt,A=s(),te=o("p"),te.textContent=at,Qe=s(),Le=o("h2"),Le.textContent=lt,Je=s(),Ee=o("p"),Ee.innerHTML=et,h=s(),E=o("figure"),E.innerHTML=st,ut=s(),Ke=o("p"),Ke.textContent=rt,F=s(),le=o("h2"),le.textContent=dt,$=s(),y=o("p"),y.textContent=he,_t=s(),Lt=o("figure"),Lt.innerHTML=At,Ct=s(),Ft=o("p"),Ft.textContent=Gt,Tt=s(),It=o("figure"),It.innerHTML=zt,St=s(),jt=o("h2"),jt.textContent=qt,Pt=s(),$t=o("p"),$t.textContent=I,ae=s(),Et=o("figure"),Et.innerHTML=Qt,Ot=s(),Ut=o("p"),Ut.textContent=j,re=s(),Dt=o("p"),Dt.textContent=Bt,Vt=s(),Rt=o("p"),Rt.textContent=Tn,this.h()},l(H){n=i(H,"P",{"data-svelte-h":!0}),l(n)!=="svelte-eq6djb"&&(n.innerHTML=f),p=r(H),d=i(H,"P",{"data-svelte-h":!0}),l(d)!=="svelte-14iqtkk"&&(d.textContent=a),u=r(H),c=i(H,"H2",{class:!0,"data-svelte-h":!0}),l(c)!=="svelte-1hhjgz9"&&(c.textContent=de),Q=r(H),w=i(H,"P",{"data-svelte-h":!0}),l(w)!=="svelte-1kytrz5"&&(w.textContent=ye),V=r(H),b=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(b)!=="svelte-16jywvj"&&(b.innerHTML=ce),C=r(H),x=i(H,"P",{"data-svelte-h":!0}),l(x)!=="svelte-17zug5m"&&(x.textContent=ke),oe=r(H),T=i(H,"P",{"data-svelte-h":!0}),l(T)!=="svelte-y5a8wy"&&(T.innerHTML=fe),ie=r(H),_=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(_)!=="svelte-e4jv08"&&(_.innerHTML=se),G=r(H),S=i(H,"P",{"data-svelte-h":!0}),l(S)!=="svelte-1mhhocy"&&(S.textContent=Te),O=r(H),M=i(H,"P",{"data-svelte-h":!0}),l(M)!=="svelte-u84fw"&&(M.textContent=Se),P=r(H),m=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(m)!=="svelte-mn5yfx"&&(m.innerHTML=be),me=r(H),B=i(H,"P",{"data-svelte-h":!0}),l(B)!=="svelte-hcqh6c"&&(B.innerHTML=Ie),pe=r(H),K=i(H,"P",{"data-svelte-h":!0}),l(K)!=="svelte-xkeuem"&&(K.innerHTML=je),W=r(H),z=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(z)!=="svelte-vndve6"&&(z.innerHTML=Ae),R=r(H),D=i(H,"H2",{class:!0,"data-svelte-h":!0}),l(D)!=="svelte-1glm3mm"&&(D.textContent=Ue),ge=r(H),ne=i(H,"P",{"data-svelte-h":!0}),l(ne)!=="svelte-1wye7ed"&&(ne.innerHTML=Ne),xe=r(H),X=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(X)!=="svelte-vi1pa"&&(X.innerHTML=Re),_e=r(H),Z=i(H,"P",{"data-svelte-h":!0}),l(Z)!=="svelte-1jix07i"&&(Z.innerHTML=We),g=r(H),L=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(L)!=="svelte-pvreuq"&&(L.innerHTML=Ve),U=r(H),J=i(H,"P",{"data-svelte-h":!0}),l(J)!=="svelte-1ycdd4o"&&(J.innerHTML=Ze),N=r(H),Y=i(H,"P",{"data-svelte-h":!0}),l(Y)!=="svelte-1bo8rlr"&&(Y.innerHTML=Ye),Fe=r(H),we=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(we)!=="svelte-77jn1n"&&(we.innerHTML=Xe),$e=r(H),ve=i(H,"H2",{class:!0,"data-svelte-h":!0}),l(ve)!=="svelte-iagrp5"&&(ve.textContent=Be),q=r(H),ee=i(H,"P",{"data-svelte-h":!0}),l(ee)!=="svelte-1y3or5c"&&(ee.innerHTML=tt),Ge=r(H),He=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(He)!=="svelte-1489gk4"&&(He.innerHTML=ot),De=r(H),Me=i(H,"P",{"data-svelte-h":!0}),l(Me)!=="svelte-za37fn"&&(Me.textContent=it),ze=r(H),Pe=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Pe)!=="svelte-14g4vkv"&&(Pe.innerHTML=nt),A=r(H),te=i(H,"P",{"data-svelte-h":!0}),l(te)!=="svelte-1ue0ftz"&&(te.textContent=at),Qe=r(H),Le=i(H,"H2",{class:!0,"data-svelte-h":!0}),l(Le)!=="svelte-1tog8pa"&&(Le.textContent=lt),Je=r(H),Ee=i(H,"P",{"data-svelte-h":!0}),l(Ee)!=="svelte-164gu6o"&&(Ee.innerHTML=et),h=r(H),E=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(E)!=="svelte-9ilhhe"&&(E.innerHTML=st),ut=r(H),Ke=i(H,"P",{"data-svelte-h":!0}),l(Ke)!=="svelte-1qwhc92"&&(Ke.textContent=rt),F=r(H),le=i(H,"H2",{class:!0,"data-svelte-h":!0}),l(le)!=="svelte-1x5u0ly"&&(le.textContent=dt),$=r(H),y=i(H,"P",{"data-svelte-h":!0}),l(y)!=="svelte-9vkyuo"&&(y.textContent=he),_t=r(H),Lt=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Lt)!=="svelte-qkoum7"&&(Lt.innerHTML=At),Ct=r(H),Ft=i(H,"P",{"data-svelte-h":!0}),l(Ft)!=="svelte-10y0bh"&&(Ft.textContent=Gt),Tt=r(H),It=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(It)!=="svelte-1ki3qww"&&(It.innerHTML=zt),St=r(H),jt=i(H,"H2",{class:!0,"data-svelte-h":!0}),l(jt)!=="svelte-1wpdo9o"&&(jt.textContent=qt),Pt=r(H),$t=i(H,"P",{"data-svelte-h":!0}),l($t)!=="svelte-12unpsb"&&($t.textContent=I),ae=r(H),Et=i(H,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Et)!=="svelte-1ub6uq"&&(Et.innerHTML=Qt),Ot=r(H),Ut=i(H,"P",{"data-svelte-h":!0}),l(Ut)!=="svelte-146oq1y"&&(Ut.textContent=j),re=r(H),Dt=i(H,"P",{"data-svelte-h":!0}),l(Dt)!=="svelte-e80c8v"&&(Dt.textContent=Bt),Vt=r(H),Rt=i(H,"P",{"data-svelte-h":!0}),l(Rt)!=="svelte-193jkga"&&(Rt.textContent=Tn),this.h()},h(){k(c,"class","section"),k(b,"class","figure text-center"),k(_,"class","figure text-center"),k(m,"class","figure text-center"),k(z,"class","figure text-center"),k(D,"class","section"),k(X,"class","figure text-center"),k(L,"class","figure text-center"),k(we,"class","figure text-center"),k(ve,"class","section"),k(He,"class","figure text-center"),k(Pe,"class","figure text-center"),k(Le,"class","section"),k(E,"class","figure text-center"),k(le,"class","section"),k(Lt,"class","figure text-center"),k(It,"class","figure text-center"),k(jt,"class","section"),k(Et,"class","figure text-center")},m(H,ue){t(H,n,ue),t(H,p,ue),t(H,d,ue),t(H,u,ue),t(H,c,ue),t(H,Q,ue),t(H,w,ue),t(H,V,ue),t(H,b,ue),t(H,C,ue),t(H,x,ue),t(H,oe,ue),t(H,T,ue),t(H,ie,ue),t(H,_,ue),t(H,G,ue),t(H,S,ue),t(H,O,ue),t(H,M,ue),t(H,P,ue),t(H,m,ue),t(H,me,ue),t(H,B,ue),t(H,pe,ue),t(H,K,ue),t(H,W,ue),t(H,z,ue),t(H,R,ue),t(H,D,ue),t(H,ge,ue),t(H,ne,ue),t(H,xe,ue),t(H,X,ue),t(H,_e,ue),t(H,Z,ue),t(H,g,ue),t(H,L,ue),t(H,U,ue),t(H,J,ue),t(H,N,ue),t(H,Y,ue),t(H,Fe,ue),t(H,we,ue),t(H,$e,ue),t(H,ve,ue),t(H,q,ue),t(H,ee,ue),t(H,Ge,ue),t(H,He,ue),t(H,De,ue),t(H,Me,ue),t(H,ze,ue),t(H,Pe,ue),t(H,A,ue),t(H,te,ue),t(H,Qe,ue),t(H,Le,ue),t(H,Je,ue),t(H,Ee,ue),t(H,h,ue),t(H,E,ue),t(H,ut,ue),t(H,Ke,ue),t(H,F,ue),t(H,le,ue),t(H,$,ue),t(H,y,ue),t(H,_t,ue),t(H,Lt,ue),t(H,Ct,ue),t(H,Ft,ue),t(H,Tt,ue),t(H,It,ue),t(H,St,ue),t(H,jt,ue),t(H,Pt,ue),t(H,$t,ue),t(H,ae,ue),t(H,Et,ue),t(H,Ot,ue),t(H,Ut,ue),t(H,re,ue),t(H,Dt,ue),t(H,Vt,ue),t(H,Rt,ue)},p:yt,d(H){H&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(Fe),e(we),e($e),e(ve),e(q),e(ee),e(Ge),e(He),e(De),e(Me),e(ze),e(Pe),e(A),e(te),e(Qe),e(Le),e(Je),e(Ee),e(h),e(E),e(ut),e(Ke),e(F),e(le),e($),e(y),e(_t),e(Lt),e(Ct),e(Ft),e(Tt),e(It),e(St),e(jt),e(Pt),e($t),e(ae),e(Et),e(Ot),e(Ut),e(re),e(Dt),e(Vt),e(Rt))}}}function Bo(v){let n,f;const p=[v[0],cn];let d={$$slots:{default:[Vo]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Ko=class extends ht{constructor(n){super(),ct(this,n,Jo,Bo,pt,{})}};const Zo=Object.freeze(Object.defineProperty({__proto__:null,default:Ko,metadata:cn},Symbol.toStringTag,{value:"Module"}));function Yo(v){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a='Version 4.0 of Spyder is almost ready! It has been in the making for well over two years, and it contains lots of interesting new features. We will focus on the Files pane in this post, where we’ve made several improvements to the interface and file management tools.',u,c,de="Simplified interface",Q,w,ye="In order to simplify the Files pane’s interface, the columns corresponding to size and kind are hidden by default. To change which columns are shown, use the top-right pane menu or right-click the header directly.",V,b,ce='Pane Menu
    Pane Menu
    ',C,x,ke='Header Menu
    Header Menu
    ',oe,T,fe="Custom file associations",ie,_,se="First, we added the ability to associate different external applications with specific file extensions they can open. Under the File associations tab of the Files preferences pane, you can add file types and set the external program used to open each of them by default.",G,S,Te='File associations
    File associations
    ',O,M,Se="Once you’ve set this up, files will automatically launch in the associated application when opened from the Files pane in Spyder. Additionally, when you right-click a file you will find an Open with... option that will show the application associated with this extension.",P,m,be='Open With
    Open With
    ',me,B,Ie="Single click open option",pe,K,je="We’ve added a new option to open files and directories with a single-click instead of a double-click, to suit different user preferences. To enable this option, go to the General tab of the Files preferences pane and check the option Single click to open files. With this setting, only a single click is needed to open a file in the Files pane either externally or in Spyder.",W,z,Ae='Single click
    Single click
    ',R,D,Ue="Bear in mind that changing this configuration option will also affect the behaviour of the Project Explorer pane.",ge,ne,Ne="Open files externally",xe,X,Re="We added the option to open files with the operating system’s default program for the file type to the Files pane’s context menu. To use this feature, right-click any file in the Files pane and click Open externally",_e,Z,We='Open Externally
    Open Externally
    ',g,L,Ve=`Moreover, it is now possible to select more than one file on which to perform a context menu action, thanks to the Files pane’s new multi-select functionality. For this, press Ctrl (Cmd on macOS) or Shift while clicking on the files to select, just as you would in your operating system’s file manager (Windows Explorer, macOS Finder, etc). As you’d expect, Ctrl (Cmd) selects individual files one by one, while Shift selects all the files between the one you click and the one previously selected. +Once you’ve selected multiple files, it is now possible to execute many of the actions available in the context menu on all the selected files, including delete, rename, move, copy and open externally.`,U,J,Ze='Select Files
    Select Files
    ',N,Y,Ye="Absolute and relative path handling",Fe,we,Xe="Spyder 4 now allows you to easily copy the absolute or relative paths of one or more files in the Files pane and pasting them as well-formatted text anywhere else in Spyder. Just right-clicking any file or files in the Files or Project panes and select the desired option.",$e,ve,Be='Copy Path
    Copy Path
    ',q,ee,tt="Beyond just copying a single path, when pasting more than one Spyder will intelligently format it into a comma-separated collection of quoted strings, one path per line, that can be pasted directly into a list with no additional formatting needed.",Ge,He,ot='Multiple Paths
    Multiple Paths
    ',De,Me,it="The Copy Absolute Path option gets us the complete path of each selected file, starting from the drive root.",ze,Pe,nt='Absolute Path
    Absolute Path
    ',A,te,at="Alternatively, Copy Relative Path gets us the path of the file relative to the current working (displayed in the top right of the Spyder window).",Qe,Le,lt='Relative Path
    Relative Path
    ',Je,Ee,et="File type icons",h,E,st="Finally, files in the Files pane are now displayed with icons depending on their type. There are custom icons for the source files of a variety of common programming languages including C C++, C Sharp, Java, Python, R, and Swift; for media types like JPEG, MP3, and M4A; and for other common extensions such as .txt and .tex. This allows you to identify file types with just a glance and select the appropriate application accordingly.",ut,Ke,rt='File Extensions
    File Extensions
    ',F,le,dt='With these new features and UI options in Spyder’s Files pane, we hope you will enjoy the improved file management experience coming in Spyder 4! We would like to thank Quansight, our donors, and most of all our dedicated users and contributors from around the world for making these features possible. The final version will be released very soon, but if you’d like to try it out now and share your feedback, follow the instructions on our Github. Happy Spydering!';return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),b=o("figure"),b.innerHTML=ce,C=s(),x=o("figure"),x.innerHTML=ke,oe=s(),T=o("h2"),T.textContent=fe,ie=s(),_=o("p"),_.textContent=se,G=s(),S=o("figure"),S.innerHTML=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("figure"),m.innerHTML=be,me=s(),B=o("h2"),B.textContent=Ie,pe=s(),K=o("p"),K.innerHTML=je,W=s(),z=o("figure"),z.innerHTML=Ae,R=s(),D=o("p"),D.textContent=Ue,ge=s(),ne=o("h2"),ne.textContent=Ne,xe=s(),X=o("p"),X.innerHTML=Re,_e=s(),Z=o("figure"),Z.innerHTML=We,g=s(),L=o("p"),L.innerHTML=Ve,U=s(),J=o("figure"),J.innerHTML=Ze,N=s(),Y=o("h2"),Y.textContent=Ye,Fe=s(),we=o("p"),we.innerHTML=Xe,$e=s(),ve=o("figure"),ve.innerHTML=Be,q=s(),ee=o("p"),ee.textContent=tt,Ge=s(),He=o("figure"),He.innerHTML=ot,De=s(),Me=o("p"),Me.innerHTML=it,ze=s(),Pe=o("figure"),Pe.innerHTML=nt,A=s(),te=o("p"),te.innerHTML=at,Qe=s(),Le=o("figure"),Le.innerHTML=lt,Je=s(),Ee=o("h2"),Ee.textContent=et,h=s(),E=o("p"),E.innerHTML=st,ut=s(),Ke=o("figure"),Ke.innerHTML=rt,F=s(),le=o("p"),le.innerHTML=dt,this.h()},l($){n=i($,"P",{"data-svelte-h":!0}),l(n)!=="svelte-azjo9p"&&(n.innerHTML=f),p=r($),d=i($,"P",{"data-svelte-h":!0}),l(d)!=="svelte-1vzrev8"&&(d.innerHTML=a),u=r($),c=i($,"H2",{class:!0,"data-svelte-h":!0}),l(c)!=="svelte-64n2sn"&&(c.textContent=de),Q=r($),w=i($,"P",{"data-svelte-h":!0}),l(w)!=="svelte-1qns2hr"&&(w.textContent=ye),V=r($),b=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(b)!=="svelte-z35lie"&&(b.innerHTML=ce),C=r($),x=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(x)!=="svelte-rripy9"&&(x.innerHTML=ke),oe=r($),T=i($,"H2",{class:!0,"data-svelte-h":!0}),l(T)!=="svelte-bw5n4z"&&(T.textContent=fe),ie=r($),_=i($,"P",{"data-svelte-h":!0}),l(_)!=="svelte-qnj996"&&(_.textContent=se),G=r($),S=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(S)!=="svelte-19qu3y3"&&(S.innerHTML=Te),O=r($),M=i($,"P",{"data-svelte-h":!0}),l(M)!=="svelte-sbs8mx"&&(M.innerHTML=Se),P=r($),m=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(m)!=="svelte-1ev8dvl"&&(m.innerHTML=be),me=r($),B=i($,"H2",{class:!0,"data-svelte-h":!0}),l(B)!=="svelte-r9kw23"&&(B.textContent=Ie),pe=r($),K=i($,"P",{"data-svelte-h":!0}),l(K)!=="svelte-1slqqwg"&&(K.innerHTML=je),W=r($),z=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(z)!=="svelte-d9qt15"&&(z.innerHTML=Ae),R=r($),D=i($,"P",{"data-svelte-h":!0}),l(D)!=="svelte-7e0gg6"&&(D.textContent=Ue),ge=r($),ne=i($,"H2",{class:!0,"data-svelte-h":!0}),l(ne)!=="svelte-897z0l"&&(ne.textContent=Ne),xe=r($),X=i($,"P",{"data-svelte-h":!0}),l(X)!=="svelte-14zm4mn"&&(X.innerHTML=Re),_e=r($),Z=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Z)!=="svelte-1ior8al"&&(Z.innerHTML=We),g=r($),L=i($,"P",{"data-svelte-h":!0}),l(L)!=="svelte-bhjge1"&&(L.innerHTML=Ve),U=r($),J=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(J)!=="svelte-1ehajz0"&&(J.innerHTML=Ze),N=r($),Y=i($,"H2",{class:!0,"data-svelte-h":!0}),l(Y)!=="svelte-1em1ffi"&&(Y.textContent=Ye),Fe=r($),we=i($,"P",{"data-svelte-h":!0}),l(we)!=="svelte-1vpx8f9"&&(we.innerHTML=Xe),$e=r($),ve=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(ve)!=="svelte-vz7kdp"&&(ve.innerHTML=Be),q=r($),ee=i($,"P",{"data-svelte-h":!0}),l(ee)!=="svelte-12somj2"&&(ee.textContent=tt),Ge=r($),He=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(He)!=="svelte-1whvxrh"&&(He.innerHTML=ot),De=r($),Me=i($,"P",{"data-svelte-h":!0}),l(Me)!=="svelte-1ngtco8"&&(Me.innerHTML=it),ze=r($),Pe=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Pe)!=="svelte-1n6k7ip"&&(Pe.innerHTML=nt),A=r($),te=i($,"P",{"data-svelte-h":!0}),l(te)!=="svelte-d0kivk"&&(te.innerHTML=at),Qe=r($),Le=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Le)!=="svelte-14ay3zk"&&(Le.innerHTML=lt),Je=r($),Ee=i($,"H2",{class:!0,"data-svelte-h":!0}),l(Ee)!=="svelte-1pwpvz6"&&(Ee.textContent=et),h=r($),E=i($,"P",{"data-svelte-h":!0}),l(E)!=="svelte-uw20bn"&&(E.innerHTML=st),ut=r($),Ke=i($,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Ke)!=="svelte-1vd02p"&&(Ke.innerHTML=rt),F=r($),le=i($,"P",{"data-svelte-h":!0}),l(le)!=="svelte-z72452"&&(le.innerHTML=dt),this.h()},h(){k(c,"class","section"),k(b,"class","figure text-center"),k(x,"class","figure text-center"),k(T,"class","section"),k(S,"class","figure text-center"),k(m,"class","figure text-center"),k(B,"class","section"),k(z,"class","figure text-center"),k(ne,"class","section"),k(Z,"class","figure text-center"),k(J,"class","figure text-center"),k(Y,"class","section"),k(ve,"class","figure text-center"),k(He,"class","figure text-center"),k(Pe,"class","figure text-center"),k(Le,"class","figure text-center"),k(Ee,"class","section"),k(Ke,"class","figure text-center")},m($,y){t($,n,y),t($,p,y),t($,d,y),t($,u,y),t($,c,y),t($,Q,y),t($,w,y),t($,V,y),t($,b,y),t($,C,y),t($,x,y),t($,oe,y),t($,T,y),t($,ie,y),t($,_,y),t($,G,y),t($,S,y),t($,O,y),t($,M,y),t($,P,y),t($,m,y),t($,me,y),t($,B,y),t($,pe,y),t($,K,y),t($,W,y),t($,z,y),t($,R,y),t($,D,y),t($,ge,y),t($,ne,y),t($,xe,y),t($,X,y),t($,_e,y),t($,Z,y),t($,g,y),t($,L,y),t($,U,y),t($,J,y),t($,N,y),t($,Y,y),t($,Fe,y),t($,we,y),t($,$e,y),t($,ve,y),t($,q,y),t($,ee,y),t($,Ge,y),t($,He,y),t($,De,y),t($,Me,y),t($,ze,y),t($,Pe,y),t($,A,y),t($,te,y),t($,Qe,y),t($,Le,y),t($,Je,y),t($,Ee,y),t($,h,y),t($,E,y),t($,ut,y),t($,Ke,y),t($,F,y),t($,le,y)},p:yt,d($){$&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(Fe),e(we),e($e),e(ve),e(q),e(ee),e(Ge),e(He),e(De),e(Me),e(ze),e(Pe),e(A),e(te),e(Qe),e(Le),e(Je),e(Ee),e(h),e(E),e(ut),e(Ke),e(F),e(le))}}}function Xo(v){let n,f;const p=[v[0],fn];let d={$$slots:{default:[Yo]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let ti=class extends ht{constructor(n){super(),ct(this,n,ei,Xo,pt,{})}};const ni=Object.freeze(Object.defineProperty({__proto__:null,default:ti,metadata:fn},Symbol.toStringTag,{value:"Module"}));function oi(v){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a='Note: Kite is sponsoring the work discussed in this blog post, and in addition supports Spyder 4.0 development through a Quansight Labs Community Work Order.',u,c,de='As part of our next release, we are proud to announce an additional completion client for Spyder, Kite. Kite is a novel completion client that uses Machine Learning techniques to find and predict the best autocompletion for a given text. Additionally, it collects improved documentation for compiled packages, e.g. Matplotlib, NumPy and SciPy, that cannot be obtained easily by using traditional code analysis packages such as Jedi. Although Kite is not open source like Spyder, you can download it without charge at the Kite website.',Q,w,ye='Completions with Kite
    Completions with Kite
    ',V,b,ce="By incorporating Kite into Spyder, we will improve and provide the ultimate autocompletion and signature retrieval experience for most of the scientific Python stack and beyond. For instance, let’s take a look at the following PyTorch completion. While the Language Server Protocol server would not complete some of the functions, e.g. torch.linspace, Kite is able to return it successfully:",C,x,ke='Completions with Kite
    Completions with Kite
    ',oe,T,fe="Another benefit of using Kite is that of personalized completions, due to incremental ML analysis performed by the analysis engine, which keeps track of the keypresses and text writing style, alongside common usage patterns, this way users will get a personalized experience that improves over time.",ie,_,se="We are working in collaboration with the Kite team to improve our autocompletion experience for the upcoming 4.0 release of Spyder. We plan to have all Kite features tested and ready to be used; that includes adding on-the-fly completions and code snippets for autocompletions.",G,S,Te="To start using Kite, you just need to install the Kite client from their web page. They offer client packages for Windows, Linux and MacOS that are easy to install. Once Kite is installed on the system, Spyder is able to detect it and start the Kite client automatically.",O,M,Se='Our new Kite client will work alongside the new Language Server Protocol and the usual fallback tokenizer for files that cannot be analyzed by either the LSP or Kite. Thus, Spyder will be able to provide an optimal autocompletion experience for Python and other languages. Besides that, it is possible to define the priority between different completion plugins to show a completion source result first over the other completion plugins.',P,m,be="Last but not least, as part of this novel client, we are introducing a new completion API that enables to write third-party completion clients for Spyder that require integration with the code editor and project manager. We offer calls to perform autocompletion, hover requests, signature hints, among others without any hassle. By leveraging this API, it should be possible to add completions and documentation suitable for domain-specific applications developed using Spyder.",me,B,Ie="The function calls and constants of the new completion API will be added to the Spyder documentation and should be available in the next release of Spyder. Additionally, we will provide code snippets support for both LSP and Kite for the next release - please stay tuned!",pe,K,je="We, the Spyder development team, hope that these new improvements accelerate your productivity, and we invite you to beta-test them to improve them even more. As always, we are open to your questions, issue reports and contributions on all of our communication channels and our Github repository.";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("figure"),w.innerHTML=ye,V=s(),b=o("p"),b.innerHTML=ce,C=s(),x=o("figure"),x.innerHTML=ke,oe=s(),T=o("p"),T.textContent=fe,ie=s(),_=o("p"),_.textContent=se,G=s(),S=o("p"),S.textContent=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("p"),m.textContent=be,me=s(),B=o("p"),B.textContent=Ie,pe=s(),K=o("p"),K.textContent=je,this.h()},l(W){n=i(W,"P",{"data-svelte-h":!0}),l(n)!=="svelte-eotn7j"&&(n.innerHTML=f),p=r(W),d=i(W,"P",{"data-svelte-h":!0}),l(d)!=="svelte-1pywkh7"&&(d.innerHTML=a),u=r(W),c=i(W,"P",{"data-svelte-h":!0}),l(c)!=="svelte-1fbgn4i"&&(c.innerHTML=de),Q=r(W),w=i(W,"FIGURE",{class:!0,"data-svelte-h":!0}),l(w)!=="svelte-zxuyqm"&&(w.innerHTML=ye),V=r(W),b=i(W,"P",{"data-svelte-h":!0}),l(b)!=="svelte-y2k5fd"&&(b.innerHTML=ce),C=r(W),x=i(W,"FIGURE",{class:!0,"data-svelte-h":!0}),l(x)!=="svelte-m5qlba"&&(x.innerHTML=ke),oe=r(W),T=i(W,"P",{"data-svelte-h":!0}),l(T)!=="svelte-1pqgtfu"&&(T.textContent=fe),ie=r(W),_=i(W,"P",{"data-svelte-h":!0}),l(_)!=="svelte-f9uqef"&&(_.textContent=se),G=r(W),S=i(W,"P",{"data-svelte-h":!0}),l(S)!=="svelte-lthd3c"&&(S.textContent=Te),O=r(W),M=i(W,"P",{"data-svelte-h":!0}),l(M)!=="svelte-1rbdp3d"&&(M.innerHTML=Se),P=r(W),m=i(W,"P",{"data-svelte-h":!0}),l(m)!=="svelte-1jtibkh"&&(m.textContent=be),me=r(W),B=i(W,"P",{"data-svelte-h":!0}),l(B)!=="svelte-1duftot"&&(B.textContent=Ie),pe=r(W),K=i(W,"P",{"data-svelte-h":!0}),l(K)!=="svelte-6g4d07"&&(K.textContent=je),this.h()},h(){k(w,"class","figure text-center"),k(x,"class","figure text-center")},m(W,z){t(W,n,z),t(W,p,z),t(W,d,z),t(W,u,z),t(W,c,z),t(W,Q,z),t(W,w,z),t(W,V,z),t(W,b,z),t(W,C,z),t(W,x,z),t(W,oe,z),t(W,T,z),t(W,ie,z),t(W,_,z),t(W,G,z),t(W,S,z),t(W,O,z),t(W,M,z),t(W,P,z),t(W,m,z),t(W,me,z),t(W,B,z),t(W,pe,z),t(W,K,z)},p:yt,d(W){W&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K))}}}function ii(v){let n,f;const p=[v[0],mn];let d={$$slots:{default:[oi]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let ai=class extends ht{constructor(n){super(),ct(this,n,li,ii,pt,{})}};const si=Object.freeze(Object.defineProperty({__proto__:null,default:ai,metadata:mn},Symbol.toStringTag,{value:"Module"}));function ri(v){let n,f=`For the last couple of months, the Spyder team has been working on defining a new roadmap and submitting grant proposals to fund more features and improvements. +We are pleased to announce our roadmap for the rest of 2022, and that two proposals were funded!`,p,d,a="The roadmap",u,c,de=`Considering the importance of sharing a clear perspective of where the Spyder project is going and where we will be focusing our efforts over the coming months, the team has created an initial roadmap for the rest of 2022. +We prioritized the highlighted features and enhancements based on input from issues, face-to-face and virtual discussions, Stack Overflow, social media and other feedback, to try to best capture the interests of our users and community.`,Q,w,ye="The proposals",V,b,ce=`To help make our roadmap achievable, we wrote and submitted proposals to several different venues and organizations in the last couple of months. +While we have yet to hear back from some of them, two have already been funded!`,C,x,ke=`The first was for the Google Season of Docs (GSoD) 2022). +This grant will be focused mainly on improving and updating our user documentation for Spyder 5’s Editor features. +It also will help enhance our developer documentation and add tutorials and detailed information covering our new plugin API. +For more details, check out the Spyder wiki page for the proposal.`,oe,T,fe=`The second proposal accepted was a Small Development Grant from NumFOCUS. +For this grant, we will be working on improving the installation experience for Windows users by making the standalone installers auto-updatable and providing a simpler way to install custom packages not bundled with the installers. +With this grant, we were able to hire a new developer—Juan Sebastian Bautista, a recent graduate in systems and computing engineering from Universidad de los Andes in Bogotá, Colombia—who will implement these features over the next six months. +For more details, see the Spyder wiki page for the proposal.`,ie,_,se="Next steps",G,S,Te=`We will be focusing our efforts as a project on moving forward with the accepted proposals and submitting new ones. +On top of that, we will gather more feedback about what volunteers, users and the community at large want to see for Spyder 6, and share the progress of the proposals in the relaunched Spyder Community calls.`,O,M,Se="We would like to thank NumFOCUS and Google Season of Docs for granting us the funds to be able to work on these projects and making our roadmap possible!";return{c(){n=o("p"),n.textContent=f,p=s(),d=o("h2"),d.textContent=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("h2"),w.textContent=ye,V=s(),b=o("p"),b.textContent=ce,C=s(),x=o("p"),x.innerHTML=ke,oe=s(),T=o("p"),T.innerHTML=fe,ie=s(),_=o("h2"),_.textContent=se,G=s(),S=o("p"),S.innerHTML=Te,O=s(),M=o("p"),M.textContent=Se,this.h()},l(P){n=i(P,"P",{"data-svelte-h":!0}),l(n)!=="svelte-176zl42"&&(n.textContent=f),p=r(P),d=i(P,"H2",{class:!0,"data-svelte-h":!0}),l(d)!=="svelte-4fbp7v"&&(d.textContent=a),u=r(P),c=i(P,"P",{"data-svelte-h":!0}),l(c)!=="svelte-z5sir4"&&(c.innerHTML=de),Q=r(P),w=i(P,"H2",{class:!0,"data-svelte-h":!0}),l(w)!=="svelte-go9hhu"&&(w.textContent=ye),V=r(P),b=i(P,"P",{"data-svelte-h":!0}),l(b)!=="svelte-1v42iy0"&&(b.textContent=ce),C=r(P),x=i(P,"P",{"data-svelte-h":!0}),l(x)!=="svelte-blo2qp"&&(x.innerHTML=ke),oe=r(P),T=i(P,"P",{"data-svelte-h":!0}),l(T)!=="svelte-3yzhgt"&&(T.innerHTML=fe),ie=r(P),_=i(P,"H2",{class:!0,"data-svelte-h":!0}),l(_)!=="svelte-18hazx0"&&(_.textContent=se),G=r(P),S=i(P,"P",{"data-svelte-h":!0}),l(S)!=="svelte-ryn14r"&&(S.innerHTML=Te),O=r(P),M=i(P,"P",{"data-svelte-h":!0}),l(M)!=="svelte-tw6p7q"&&(M.textContent=Se),this.h()},h(){k(d,"class","section"),k(w,"class","section"),k(_,"class","section")},m(P,m){t(P,n,m),t(P,p,m),t(P,d,m),t(P,u,m),t(P,c,m),t(P,Q,m),t(P,w,m),t(P,V,m),t(P,b,m),t(P,C,m),t(P,x,m),t(P,oe,m),t(P,T,m),t(P,ie,m),t(P,_,m),t(P,G,m),t(P,S,m),t(P,O,m),t(P,M,m)},p:yt,d(P){P&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M))}}}function ui(v){let n,f;const p=[v[0],yn];let d={$$slots:{default:[ri]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let pi=class extends ht{constructor(n){super(),ct(this,n,di,ui,pt,{})}};const hi=Object.freeze(Object.defineProperty({__proto__:null,default:pi,metadata:yn},Symbol.toStringTag,{value:"Module"}));function ci(v){let n,f=`As we approach some major development milestones, now is as good a time as ever to share with you some perspective on where we’ve been, what’s happening now, and where we’re going in the world of Spyder. +In this post, part one of a three part series, we’ll take a look back over the past six months at some of the key events, accomplishments and challenges for Spyder and its community, and how that all leads up to where we are now.`,p,d,a=`Stay tuned right here, since part two will share several exciting announcements that affect the project (in a good way, we promise!) and its immediate future. +Even better, part three will formally announce the next Spyder 3 release and—what I’m sure you are all looking forward to—the plan for the first official Spyder 4 beta, plus our schedule and feature roadmap for Spyder 4 and beyond!`,u,c,de="A Call Answered",Q,w,ye=`Starting off, as we announced back in mid-November, our funding from Anaconda, Inc was discontinued, leaving Spyder without formal institutional financial support. +As Spyder was, is and always will be a community-developed and supported IDE, this was far from a mortal blow to the project, but it did impact the pace and breadth of development. +Developer effort previously spent on our Spyder plugins, like spyder-notebook, spyder-reports, and spyder-terminal, among others, was refocused on the Spyder core, and the development and release of Spyder 4 was put mostly on hold. +To help make up for the loss of funding, we appealed to the community for support, asking users who found Spyder valuable to back our project on OpenCollective, in order to accelerate development and fund more features for Spyder 4.`,V,b,ce='Spyder OpenCollective, showing many donations and backers
    Spyder OpenCollective, showing many donations and backers
    ',C,x,ke=`To our unending gratitude, you responded! In the few months since then, we’ve gone from zero to a budget of well over $4500 per year and rising at an increasing pace, thanks to the continuing contributions of over 80 (and counting!) individual and institutional backers. +We also had several new core team members and community contributors pitch in to help carry the load, and we’ve got some more great news in the very next post on the funding front. +While we’ve got a ways to go to match the level of funding we’ve received under Anaconda, your support has helped make possible several of the new features we’ve planned for Spyder 4, and allow us to commit to releasing it much sooner than we would be able to otherwise. +Your generous donations go directly toward funding the Spyder community’s most-requested new and improved features for Spyder 4, so keep them coming! +Stay tuned; we are considering rolling out new donation tiers and rewards at some point soon so you won’t want to miss that.`,oe,T,fe="Development by the Numbers",ie,_,se=`On the development side of the project, while our overall pace is modestly lower than its peak under our Anaconda funding, we’ve been quite active fixing bugs and adding new features and enhancements over the past six months. +By the numbers, since mid-November, we’ve pushed approximately 1200 commits to master (Spyder 4), comprising over 37 000 lines added and 16 000 removed, and 900 commits to 3.x (Spyder 3), with over 16 500 additions and 10 000 deletions. +Users have opened over 1375 issues (bugs, feature requests and other feedback), of which we’ve managed to resolve more than 1330, or nearly 97%.`,G,S,Te='Github commit timeseries for Spyder, with high activity over the past few years
    Github commit timeseries for Spyder, with high activity over the past few years
    ',O,M,Se=`Further, over 250 pull requests from almost two dozen unique contributors, some old, some new, have been submitted since that time—fixing bugs, adding new or enhanced functionality, or making other improvements—of which 226 have been merged to the main Spyder codebase. +This work has coalesced into four separate official releases during that period, with another only days away. +Finally, we’ve recently blown past the 3000 Github stars milestone a few weeks ago (we’re now at more than 3200), with almost 700 unique forks to date.`,P,m,be="Key Spyder Improvements",me,B,Ie=`All those numbers are nice, but what matters most are the tangible improvements that you all get to use every day in your favorite IDE. +Over those same past six months, alongside hundreds of bugfixes and minor enhancements, we’ve made multiple significant improvements to the Spyder 3 Editor, IPython Console, Variable Explorer, and Find in Files tool, along with a number of others under the hood and to the application as a whole. +Even better, the majority of these were suggested by you, our users, and some of you even pitched in to help implement them.`,pe,K,je=`Especially since you will probably be spending most of your time in it, we added a several new commands and functions to the Editor that will hopefully make your life easier, each with corresponding customizable shortcuts for easier access. +You can now insert a new line below the current one regardless of the cursor’s current position with Ctrl-Shift-Enter, and you can now use Shift-Delete to cut selected text, and Shift-Insert to paste it. +Ctrl-PageUp, Ctrl-PageDown, and Ctrl-Tab shortcuts are all now fully configurable. +Finally, you can now easily Tab from the Find to the Replace box when open, and better yet your Find text is automatically copied to the Replace box to make modifications easier.`,W,z,Ae=`Second only to the Editor in terms of them most critical Spyder components, the IPython Console also got a lot of love in recent releases. +We’ve made several improvements to significantly improve the startup time, and added an optional feature to show the elapsed time each kernel has been running. +You can now remove all user-defined variables with a GUI command, and changes in imported modules now take effect instantly and automatically in the console, without even a re-import needed. +Cloudpickle is now used to serialize objects from the Console to the Variable Explorer, greatly improving the latter’s capabilities (as discussed below). +Finally, Cython files are now automatically run in dedicated Cython consoles, and you can now use the edit magic command from the Console to open any file right inside Spyder’s Editor.`,R,D,Ue='Variable Explorer, with a variety of array types displayed
    Variable Explorer, with a variety of array types displayed
    ',ge,ne,Ne=`The Variable Explorer, which many of you cite as Spyder’s “killer feature”, has greatly improved as well. +Most notably, thanks to the aforementioned cloudpickle change, you now have access to rich, deep exploration of nearly any object, builtin or custom, and can traverse, view, and when possible even edit complex hierarchies of nested types with ease. +The Variable Explorer now fully supports Timedelta objects, both built-in and Pandas variants, allowing you to easily view and edit them just like datetime and Timestamp. +It also now uses a “pretty”, more human-readable format for dates, times, timedeltas and the like, and also now supports displaying a much wider range of Numpy array types. +As a quality of life change, it has much better handling of immutable types, like tuples, clearly showing they can’t be edited upfront and avoiding bothersome errors when trying to do so.`,xe,X,Re=`Rounding out the major changes, the Find in Files tool now allows you to remove items from the Search In list by hovering over them and pressing Delete, and there’s also a new option to clear all recent directories. +Under the hood, we’ve made PyQt5 a dependency for easier, one-command installation and added many more tests and better project infrastructure to help catch errors. +To make things easier on you if something does go wrong, we’ve greatly improved the error reporting system, the UI/UX and the explanatory text to be more up to date, informative, and user friendly.`,_e,Z,We='New Spyder error report dialog, with more helpful UI text
    New Spyder error report dialog, with more helpful UI text
    ',g,L,Ve=`All of the mentioned additions are included in the latest released version of Spyder, 3.2.8, which you can update to with conda update spyder (if using Anaconda), with your package manager/distribution (if installed that way) or with pip update spyder (otherwise). +Even more are already implemented for our next release, due out in a week’s time, and we’ll have a preview of what to expect right here on the blog even sooner.`,U,J,Ze="Affiliated Project Progress",N,Y,Ye=`Outside the core Spyder IDE, while most plugins have been paused until the Spyder 4 release, work on other affiliated projects has continued. The new spyder-unittest plugin has seen particularly active development, and lead developer and Spyder team member Jitse Niesen recently published a tutorial on its use. +Since November, it has gotten improved pytest support with realtime test results and click-to-open, better UI/UX, a robust communications backend (ZeroMQ), and numerous bug fixes and minor improvements. +QtPy, another affiliated project which Spyder uses as its Qt GUI abstraction layer, has had three releases including one major, with new Qt classes, early support for PySide2, better performance, and a number of bugfixes.`,Fe,we,Xe='Spyder-unittest dialog, displaying test results
    Spyder-unittest dialog, displaying test results
    ',$e,ve,Be=`Other projects under the Spyder umbrella are also making major progress. The pywinpty pseudo-terminal library has seen six official releases (three major), with a new rich high level interface to create and track processes, new process wrappers, Python 2.7 support, major performance, stability and security improvements, and many bug fixes. +Most importantly, we are proud to report that since this January Jupyter Notebook (in 5.3.0) and JupyterLab have both adopted it to create and manage system terminals on Windows! +The qtsass SASS to Qt stylesheet compiler has a new maintainer, with development including new dev infrastructure, refactoring work, a PyPI release, and new features, with more on the way. +Finally, our loghub automatic changelog generator has seen significant internal and external developer interest, as well as three releases, bug fixes, additional examples, and the ability to group issues and PRs together if desired. +The common thread between all five of these projects has been a substantially increased development pace in recent weeks, so expect to see even more good news soon if that trend continues.`,q,ee,tt="Beyond the Code",Ge,He,ot=`The team has made progress on a number of fronts outside core program development. +We’ve been joined by several new team members from around the world, who have each contributed new skillsets to the project. +Further, we’ve created, developed and deployed a brand new, modern and responsive website and blog, to provide an accessible, central source for Spyder news and information for both newcomers and old hands alike, as you might have noticed :)`,De,Me,it=`Our new, comprehensive Troubleshooting Guide and FAQ will help users easily resolve common issues without having to wait for a response from us, and we’ve revised and improved our Github issue tracking workflow to do an even better job at quickly responding to users’ needs. +On top of that, our Readme, contributing guide, install docs, and developer wiki have all been thoroughly overhauled to make them more up to date, informative and accessible. +Finally, we’ve deepened our relationship with NumFOCUS, integrating us more closely with the broader PyData community, as well as leading to some exciting news…but that will have to wait for our next post!`,ze,Pe,nt="Until then, thanks for all you do for us and the community, and happy Spydering!";return{c(){n=o("p"),n.textContent=f,p=s(),d=o("p"),d.textContent=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),b=o("figure"),b.innerHTML=ce,C=s(),x=o("p"),x.textContent=ke,oe=s(),T=o("h2"),T.textContent=fe,ie=s(),_=o("p"),_.innerHTML=se,G=s(),S=o("figure"),S.innerHTML=Te,O=s(),M=o("p"),M.textContent=Se,P=s(),m=o("h2"),m.textContent=be,me=s(),B=o("p"),B.textContent=Ie,pe=s(),K=o("p"),K.innerHTML=je,W=s(),z=o("p"),z.innerHTML=Ae,R=s(),D=o("figure"),D.innerHTML=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("p"),X.innerHTML=Re,_e=s(),Z=o("figure"),Z.innerHTML=We,g=s(),L=o("p"),L.innerHTML=Ve,U=s(),J=o("h2"),J.textContent=Ze,N=s(),Y=o("p"),Y.innerHTML=Ye,Fe=s(),we=o("figure"),we.innerHTML=Xe,$e=s(),ve=o("p"),ve.innerHTML=Be,q=s(),ee=o("h2"),ee.textContent=tt,Ge=s(),He=o("p"),He.textContent=ot,De=s(),Me=o("p"),Me.innerHTML=it,ze=s(),Pe=o("p"),Pe.textContent=nt,this.h()},l(A){n=i(A,"P",{"data-svelte-h":!0}),l(n)!=="svelte-pz772z"&&(n.textContent=f),p=r(A),d=i(A,"P",{"data-svelte-h":!0}),l(d)!=="svelte-181muck"&&(d.textContent=a),u=r(A),c=i(A,"H2",{class:!0,"data-svelte-h":!0}),l(c)!=="svelte-1725v2a"&&(c.textContent=de),Q=r(A),w=i(A,"P",{"data-svelte-h":!0}),l(w)!=="svelte-c9xudx"&&(w.innerHTML=ye),V=r(A),b=i(A,"FIGURE",{class:!0,"data-svelte-h":!0}),l(b)!=="svelte-17mgxhc"&&(b.innerHTML=ce),C=r(A),x=i(A,"P",{"data-svelte-h":!0}),l(x)!=="svelte-47g8gm"&&(x.textContent=ke),oe=r(A),T=i(A,"H2",{class:!0,"data-svelte-h":!0}),l(T)!=="svelte-1iyzcs1"&&(T.textContent=fe),ie=r(A),_=i(A,"P",{"data-svelte-h":!0}),l(_)!=="svelte-8k5uw4"&&(_.innerHTML=se),G=r(A),S=i(A,"FIGURE",{class:!0,"data-svelte-h":!0}),l(S)!=="svelte-1sdfwk0"&&(S.innerHTML=Te),O=r(A),M=i(A,"P",{"data-svelte-h":!0}),l(M)!=="svelte-ryx303"&&(M.textContent=Se),P=r(A),m=i(A,"H2",{class:!0,"data-svelte-h":!0}),l(m)!=="svelte-phh6l5"&&(m.textContent=be),me=r(A),B=i(A,"P",{"data-svelte-h":!0}),l(B)!=="svelte-raeu8r"&&(B.textContent=Ie),pe=r(A),K=i(A,"P",{"data-svelte-h":!0}),l(K)!=="svelte-1pzgygh"&&(K.innerHTML=je),W=r(A),z=i(A,"P",{"data-svelte-h":!0}),l(z)!=="svelte-mdkheq"&&(z.innerHTML=Ae),R=r(A),D=i(A,"FIGURE",{class:!0,"data-svelte-h":!0}),l(D)!=="svelte-1f4phjz"&&(D.innerHTML=Ue),ge=r(A),ne=i(A,"P",{"data-svelte-h":!0}),l(ne)!=="svelte-179t22p"&&(ne.innerHTML=Ne),xe=r(A),X=i(A,"P",{"data-svelte-h":!0}),l(X)!=="svelte-1i3k1yp"&&(X.innerHTML=Re),_e=r(A),Z=i(A,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Z)!=="svelte-1thqois"&&(Z.innerHTML=We),g=r(A),L=i(A,"P",{"data-svelte-h":!0}),l(L)!=="svelte-599c63"&&(L.innerHTML=Ve),U=r(A),J=i(A,"H2",{class:!0,"data-svelte-h":!0}),l(J)!=="svelte-19sfrxz"&&(J.textContent=Ze),N=r(A),Y=i(A,"P",{"data-svelte-h":!0}),l(Y)!=="svelte-1wt5kgk"&&(Y.innerHTML=Ye),Fe=r(A),we=i(A,"FIGURE",{class:!0,"data-svelte-h":!0}),l(we)!=="svelte-yb5tpy"&&(we.innerHTML=Xe),$e=r(A),ve=i(A,"P",{"data-svelte-h":!0}),l(ve)!=="svelte-159zybe"&&(ve.innerHTML=Be),q=r(A),ee=i(A,"H2",{class:!0,"data-svelte-h":!0}),l(ee)!=="svelte-1o8ccqd"&&(ee.textContent=tt),Ge=r(A),He=i(A,"P",{"data-svelte-h":!0}),l(He)!=="svelte-1m7652o"&&(He.textContent=ot),De=r(A),Me=i(A,"P",{"data-svelte-h":!0}),l(Me)!=="svelte-4w5n7c"&&(Me.innerHTML=it),ze=r(A),Pe=i(A,"P",{"data-svelte-h":!0}),l(Pe)!=="svelte-ia2mbp"&&(Pe.textContent=nt),this.h()},h(){k(c,"class","section"),k(b,"class","figure text-center"),k(T,"class","section"),k(S,"class","figure text-center"),k(m,"class","section"),k(D,"class","figure text-center"),k(Z,"class","figure text-center"),k(J,"class","section"),k(we,"class","figure text-center"),k(ee,"class","section")},m(A,te){t(A,n,te),t(A,p,te),t(A,d,te),t(A,u,te),t(A,c,te),t(A,Q,te),t(A,w,te),t(A,V,te),t(A,b,te),t(A,C,te),t(A,x,te),t(A,oe,te),t(A,T,te),t(A,ie,te),t(A,_,te),t(A,G,te),t(A,S,te),t(A,O,te),t(A,M,te),t(A,P,te),t(A,m,te),t(A,me,te),t(A,B,te),t(A,pe,te),t(A,K,te),t(A,W,te),t(A,z,te),t(A,R,te),t(A,D,te),t(A,ge,te),t(A,ne,te),t(A,xe,te),t(A,X,te),t(A,_e,te),t(A,Z,te),t(A,g,te),t(A,L,te),t(A,U,te),t(A,J,te),t(A,N,te),t(A,Y,te),t(A,Fe,te),t(A,we,te),t(A,$e,te),t(A,ve,te),t(A,q,te),t(A,ee,te),t(A,Ge,te),t(A,He,te),t(A,De,te),t(A,Me,te),t(A,ze,te),t(A,Pe,te)},p:yt,d(A){A&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(Fe),e(we),e($e),e(ve),e(q),e(ee),e(Ge),e(He),e(De),e(Me),e(ze),e(Pe))}}}function fi(v){let n,f;const p=[v[0],gn];let d={$$slots:{default:[ci]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let yi=class extends ht{constructor(n){super(),ct(this,n,mi,fi,pt,{})}};const gi=Object.freeze(Object.defineProperty({__proto__:null,default:yi,metadata:gn},Symbol.toStringTag,{value:"Module"}));function wi(v){let n,f=`After sharing some major milestones, development progress, and other tidbits from the past six months in Part 1 of this series (check that one out first if you haven’t already), we now have some amazing news to share with you all here in Part 2, along with other status updates. +That’s not all, though—Part 3 will look ahead toward Spyder 4 and beyond, unveiling and explaining our full roadmap and going over the future possibilities even further afield.`,p,d,a="Spyder Wins NumFOCUS Development Grant",u,c,de=`First up, we’re thrilled to announce a major part of what’s making that plan possible (along with your support, of course!). +This May, Spyder was awarded a $3000 development grant from NumFOCUS, an organization promoting better science through open code, to help with finishing Spyder 4! +NumFOCUS is a nonprofit dedicated to supporting key scientific computing projects; promoting sustainability in the open source ecosystem; educating the next generation of scientists, engineers, developers and data analysts through their flagship PyData program; and enabling and inspiring the next generation through their grants, scholarships and fellowships, diversity and inclusion program, and involvement in the Google Summer of Code.`,Q,w,ye=`We applied for the funding back in March of this year, along with many other scientific Python projects, and were one of the fortunate projects selected after the review process. +The award runs from May through this November, and will enable multiple betas with new features to be released throughout 2018, with the first feature-complete release candidate of Spyder 4 planned by the year’s end (we’ll have more detail on all that in Part 3). +Check out our bio and the other projects that were funded over on the NumFOCUS announcement, and make sure to thank and support them if you get the chance.`,V,b,ce="Quansight Hires Spyder Maintainer; Helps Fund Development",C,x,ke=`Equally exciting, Spyder’s maintainer, Carlos Cordoba, was recently hired by Quansight, the brand-new company headed by scientific Python luminary Travis Oliphant! +The father of much of the modern PyData ecosystem including NumPy, SciPy and Numba, Travis has been instrumental in the dramatic growth of open-source data analysis with Python through founding or helping lead Enthought, Continuum/Anaconda, NumFOCUS, and more. +Quansight, Travis’ newest venture, focuses on scaling up the PyData ecosystem to solve even larger and more integrated problems, connecting companies with the open-source tools that can benefit their business, and helping build a more robust ecosystem for open-source scientific development.`,oe,T,fe=`As part of that mission, Carlos was hired through at least the end of 2018 to help make several open-source projects more sustainable in the long run, and I’m sure you all will be happy to hear that one of them will be our very own Spyder! +After previously helping support the project over at Anaconda, Travis and Quansight will fund Carlos to work part-time on Spyder development, helping the project continue to grow and evolve, and keeping Spyder 4 moving along at a faster pace. +Congratulations Carlos, and thanks to Travis and Quansight!`,ie,_,se=`Aside from those two, we also have several other potential long-term funding opportunities in the pipeline. +Stay tuned to hear more about those in the coming months.`,G,S,Te="Spyder 3.3.0 Ready to Go",O,M,Se=`Meanwhile, on the development side of things, we’ve just finished the rollout of the next update in the stable Spyder 3 line, 3.3.0, and will have a full post shortly going over the changes and enhancements in detail. +In brief, it has some significant under the hood revisions, cleaning house of some old end of life dependencies and legacy support (Python 3.3 and PyQt4 below 5.5), and separates the IPython Console kernel code into a new spyder-kernels package to make it easier for you to work with different Python environments and remote sessions, and easier for us to add exciting new features down the road. +Additionally, it adds new preferences options for console plotting and autocompletion, improves the usability and performance of Variable Explorer object viewers, includes a new, fully automated error reporting feature to make submitting reports faster, easier and more helpful, and contains a number of other minor improvements and usability enhancements, along with numerous bug fixes.`,P,m,be='A remote kernel running in a system console alongside Spyder's connect to kernel dialog
    A remote kernel running in a system console alongside Spyder's connect to kernel dialog
    ',me,B,Ie="Spyder 4 Public Beta 1 on Deck",pe,K,je=`We’ll also be releasing the first public beta of Spyder 4 in the very near future, to allow users and developers to get their hands on the next generation of the IDE and start using and testing it as soon as possible. +There are far too many significant new features to list here, and they are more than worthy of their own full-length post, as there are many substantial changes to the Editor, Console, Variable Explorer, File Explorer, Outline Explorer, API and more.`,W,z,Ae='Preview of the new Spyder 4 Editor, showing several of the mentioned features
    Preview of the new Spyder 4 Editor, showing several of the mentioned features
    ',R,D,Ue=`Some of the major highlights in the Editor include code folding, indentation guides, multiple line length indicators, a live class/method/function panel (a la Visual Studio), many more shortcut commands, better comment/uncomment, and more. +The IPython Console gains the ability to start specialized Pylab, SymPy, and Cython consoles, and the Variable Explorer gets MultiIndex support, now natively handles all Pandas indexers, and can display sets in a dedicated GUI editor. +Meanwhile, the File Explorer now has multi-select functionality and can open any file with the user’s OS-configured external default program, while the outline explorer can now group items by cell, and in multiple levels. +Finally, Spyder 4 exposes a public API for external plugins, offers more language translations, features several global UI improvements and has numerous under the hood and refactoring changes, and countless other enhancements big and small. +It’s the future of Spyder, so if you’d like to get a taste of the cutting edge, we’d love for you to try it when it drops and let us know what you think!`,ge,ne,Ne="Spyder Documentation, Reborn",xe,X,Re=`Aside from Spyder 3 and 4, we’ve got another big ticket item for you all in the next few days: our brand new docs! +We’ve been working on a major overhaul of our documentation, which will saw its first official release with Spyder 3.3.0. +Our old docs were hosted on PyPI/PythonHosted and, with the freezing of that service, couldn’t be updated. +Therefore, we’ve now moved to maintain them in a new dedicated repo, build, deploy and host them ourselves with Sphinx, doctr and Github Pages on a subdomain of our new site making them more convenient, responsive and accessible.`,_e,Z,We='Preview of new Spyder documentation website, displaying a modern theme/layout and better screenshots
    Preview of new Spyder documentation website, displaying a modern theme/layout and better screenshots
    ',g,L,Ve=`Furthermore, we’ve taken the opportunity to perform a comprehensive overhaul from top to bottom, dramatically improving their usefulness to users. +We’ve greatly expanded many pages and sections and adding new ones, updated outdated references, performed an exhaustive copyedit over nearly every line of the text, developed and implemented a consistent style guide, transitioned to a modern theme with our own custom CSS extensions, added or replaced many dozens of high-resolution screenshots, modified the source code and infrastructure to be easier to develop, build and maintain, and much more. +Even better, you can expect even more improvements in the coming months, as we further expand them toward the standard you’d expect for a feature-rich, multifaceted application like Spyder. +If you find an issue with them, see a section that could use expansion or improvement or even just have general actionable feedback feel free to open an issue or send us a pull request on our new repo. +We’ll have more information about what’s new and our future plans when we officially release them shortly.`,U,J,Ze="More News and Notes",N,Y,Ye="Finally, we want to make sure you all can stay better informed of Spyder-related happenings going forward, as well as get the chance to interact directly with the Spyder team.",Fe,we,Xe=`We’re planning on much more frequent announcements, status reports, news, and tutorials right here on our blog, as well as more timely updates on our social media, including our Facebook page and Twitter account. +Make sure to subscribe/follow if you’d like to stay up to date or want to get in touch; we only post important happenings, so we won’t inundate your feeds with trivialities. +You can also reach us on our Google Groups discussion board, our Gitter live chat, or post a comment right here below this post.`,$e,ve,Be=`Thanks again for all you do to make Spyder possible, and keep a look out for the next post in this series on the future of Spyder, along with our three major releases (3.3.0, 4.0b1, and the new docs) over the next few weeks. +Happy Spydering!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("h2"),d.textContent=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),b=o("h2"),b.textContent=ce,C=s(),x=o("p"),x.innerHTML=ke,oe=s(),T=o("p"),T.textContent=fe,ie=s(),_=o("p"),_.textContent=se,G=s(),S=o("h2"),S.textContent=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("figure"),m.innerHTML=be,me=s(),B=o("h2"),B.textContent=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),z=o("figure"),z.innerHTML=Ae,R=s(),D=o("p"),D.innerHTML=Ue,ge=s(),ne=o("h2"),ne.textContent=Ne,xe=s(),X=o("p"),X.innerHTML=Re,_e=s(),Z=o("figure"),Z.innerHTML=We,g=s(),L=o("p"),L.innerHTML=Ve,U=s(),J=o("h2"),J.textContent=Ze,N=s(),Y=o("p"),Y.textContent=Ye,Fe=s(),we=o("p"),we.innerHTML=Xe,$e=s(),ve=o("p"),ve.textContent=Be,this.h()},l(q){n=i(q,"P",{"data-svelte-h":!0}),l(n)!=="svelte-1hxqb5i"&&(n.innerHTML=f),p=r(q),d=i(q,"H2",{class:!0,"data-svelte-h":!0}),l(d)!=="svelte-19bcwx5"&&(d.textContent=a),u=r(q),c=i(q,"P",{"data-svelte-h":!0}),l(c)!=="svelte-1vujq9i"&&(c.innerHTML=de),Q=r(q),w=i(q,"P",{"data-svelte-h":!0}),l(w)!=="svelte-12ox8lz"&&(w.innerHTML=ye),V=r(q),b=i(q,"H2",{class:!0,"data-svelte-h":!0}),l(b)!=="svelte-1nbjcvl"&&(b.textContent=ce),C=r(q),x=i(q,"P",{"data-svelte-h":!0}),l(x)!=="svelte-100rehe"&&(x.innerHTML=ke),oe=r(q),T=i(q,"P",{"data-svelte-h":!0}),l(T)!=="svelte-gxtm8m"&&(T.textContent=fe),ie=r(q),_=i(q,"P",{"data-svelte-h":!0}),l(_)!=="svelte-12rmlke"&&(_.textContent=se),G=r(q),S=i(q,"H2",{class:!0,"data-svelte-h":!0}),l(S)!=="svelte-1r0pzr9"&&(S.textContent=Te),O=r(q),M=i(q,"P",{"data-svelte-h":!0}),l(M)!=="svelte-aswwh3"&&(M.innerHTML=Se),P=r(q),m=i(q,"FIGURE",{class:!0,"data-svelte-h":!0}),l(m)!=="svelte-lew4h2"&&(m.innerHTML=be),me=r(q),B=i(q,"H2",{class:!0,"data-svelte-h":!0}),l(B)!=="svelte-1n46y8r"&&(B.textContent=Ie),pe=r(q),K=i(q,"P",{"data-svelte-h":!0}),l(K)!=="svelte-1vjcv3q"&&(K.textContent=je),W=r(q),z=i(q,"FIGURE",{class:!0,"data-svelte-h":!0}),l(z)!=="svelte-1sr06j4"&&(z.innerHTML=Ae),R=r(q),D=i(q,"P",{"data-svelte-h":!0}),l(D)!=="svelte-14d4ii3"&&(D.innerHTML=Ue),ge=r(q),ne=i(q,"H2",{class:!0,"data-svelte-h":!0}),l(ne)!=="svelte-14w6993"&&(ne.textContent=Ne),xe=r(q),X=i(q,"P",{"data-svelte-h":!0}),l(X)!=="svelte-n233qz"&&(X.innerHTML=Re),_e=r(q),Z=i(q,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Z)!=="svelte-1lc8yo2"&&(Z.innerHTML=We),g=r(q),L=i(q,"P",{"data-svelte-h":!0}),l(L)!=="svelte-15wekgt"&&(L.innerHTML=Ve),U=r(q),J=i(q,"H2",{class:!0,"data-svelte-h":!0}),l(J)!=="svelte-1bc20bm"&&(J.textContent=Ze),N=r(q),Y=i(q,"P",{"data-svelte-h":!0}),l(Y)!=="svelte-1xq67kh"&&(Y.textContent=Ye),Fe=r(q),we=i(q,"P",{"data-svelte-h":!0}),l(we)!=="svelte-1o5j99t"&&(we.innerHTML=Xe),$e=r(q),ve=i(q,"P",{"data-svelte-h":!0}),l(ve)!=="svelte-1mo5pro"&&(ve.textContent=Be),this.h()},h(){k(d,"class","section"),k(b,"class","section"),k(S,"class","section"),k(m,"class","figure text-center"),k(B,"class","section"),k(z,"class","figure text-center"),k(ne,"class","section"),k(Z,"class","figure text-center"),k(J,"class","section")},m(q,ee){t(q,n,ee),t(q,p,ee),t(q,d,ee),t(q,u,ee),t(q,c,ee),t(q,Q,ee),t(q,w,ee),t(q,V,ee),t(q,b,ee),t(q,C,ee),t(q,x,ee),t(q,oe,ee),t(q,T,ee),t(q,ie,ee),t(q,_,ee),t(q,G,ee),t(q,S,ee),t(q,O,ee),t(q,M,ee),t(q,P,ee),t(q,m,ee),t(q,me,ee),t(q,B,ee),t(q,pe,ee),t(q,K,ee),t(q,W,ee),t(q,z,ee),t(q,R,ee),t(q,D,ee),t(q,ge,ee),t(q,ne,ee),t(q,xe,ee),t(q,X,ee),t(q,_e,ee),t(q,Z,ee),t(q,g,ee),t(q,L,ee),t(q,U,ee),t(q,J,ee),t(q,N,ee),t(q,Y,ee),t(q,Fe,ee),t(q,we,ee),t(q,$e,ee),t(q,ve,ee)},p:yt,d(q){q&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(Fe),e(we),e($e),e(ve))}}}function vi(v){let n,f;const p=[v[0],wn];let d={$$slots:{default:[wi]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let xi=class extends ht{constructor(n){super(),ct(this,n,bi,vi,pt,{})}};const ki=Object.freeze(Object.defineProperty({__proto__:null,default:xi,metadata:wn},Symbol.toStringTag,{value:"Module"}));function _i(v){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a='The Spyder-Terminal project is revitalized! The new 0.3.0 version adds numerous features that improve the user experience, and enhances compatibility with the latest Spyder 4 release, in part thanks to the improvements made in the xterm.js project.',u,c,de='Screenshot of the new spyder-terminal
    Screenshot of the new spyder-terminal
    ',Q,w,ye="Upgrade to ES6/JSX syntax",V,b,ce="First, we were able to update all the old JavaScript files to use ES6/JSX syntax and the tests for the client terminal. This change simplified the code base and maintenance and allows us to easily extend the project to new functionalities that the xterm.js API offers. In order to compile this code and run it inside Spyder, we migrated our deployment to Webpack.",C,x,ke="Multiple shells per operating system",oe,T,fe="In the new release, you now have the ability to configure which shell to use in the terminal. On Linux and UNIX systems, bash, sh, ksh, zsh, csh, pwsh, tcsh, screen, tmux, dash and rbash are supported, while cmd and powershell are the available options on Windows. To select your preferred command processor, simply choose it from the menu in the Terminal pane of Spyder’s preferences and restart the IDE.",ie,_,se='UNIX shell options for starting the terminal
    UNIX shell options for starting the terminal
    ',G,S,Te="This is a great feature because it allows the user to determine their shell interpreter among the ones that are installed in their systems. In this way, Spyder-Terminal can be configured with any of the existing shells as long as it is available on their machine.",O,M,Se="Theme support and new UI options",P,m,be="Another big change in the new version is built-in support for all Spyder’s light and dark themes. When you change your Spyder theme or display options, the Terminal automatically adapt its UI, colors and fonts accordingly.",me,B,Ie='Spyder-Terminal new themes
    Spyder-Terminal new themes
    ',pe,K,je="Building on the look and feel of the plugin, we also added configurable options for the terminal sounds and the cursor style. In this way, you can choose whether the terminal uses a bell sound and can select from one of three cursors.",W,z,Ae='Cursor options for Spyder-Terminal
    Cursor options for Spyder-Terminal
    ',R,D,Ue="Shortcut configuration",ge,ne,Ne="Lastly, the shortcuts on the terminal are configurable within the keyboard shortcuts in Spyder 4. The terminal’s shortcuts for Copy, Paste, Clean and New terminal are now no longer hardcoded.",xe,X,Re='Configurable shortcuts for the Terminal inside Spyder 4
    Configurable shortcuts for the Terminal inside Spyder 4
    ',_e,Z,We='We’re excited for you to try out Spyder-Terminal 0.3.0 and experiment with the new features available; we’d like to thank NumFOCUS and Quansight for providing the funding and support that made all this work possible. Check back soon for more Spyder updates, and until then, happy coding!';return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("figure"),c.innerHTML=de,Q=s(),w=o("h2"),w.textContent=ye,V=s(),b=o("p"),b.textContent=ce,C=s(),x=o("h2"),x.textContent=ke,oe=s(),T=o("p"),T.innerHTML=fe,ie=s(),_=o("figure"),_.innerHTML=se,G=s(),S=o("p"),S.textContent=Te,O=s(),M=o("h2"),M.textContent=Se,P=s(),m=o("p"),m.textContent=be,me=s(),B=o("figure"),B.innerHTML=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),z=o("figure"),z.innerHTML=Ae,R=s(),D=o("h2"),D.textContent=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("figure"),X.innerHTML=Re,_e=s(),Z=o("p"),Z.innerHTML=We,this.h()},l(g){n=i(g,"P",{"data-svelte-h":!0}),l(n)!=="svelte-aa2x2f"&&(n.innerHTML=f),p=r(g),d=i(g,"P",{"data-svelte-h":!0}),l(d)!=="svelte-cihbgh"&&(d.innerHTML=a),u=r(g),c=i(g,"FIGURE",{class:!0,"data-svelte-h":!0}),l(c)!=="svelte-1vos7wm"&&(c.innerHTML=de),Q=r(g),w=i(g,"H2",{class:!0,"data-svelte-h":!0}),l(w)!=="svelte-1hn7hbe"&&(w.textContent=ye),V=r(g),b=i(g,"P",{"data-svelte-h":!0}),l(b)!=="svelte-7hqbeh"&&(b.textContent=ce),C=r(g),x=i(g,"H2",{class:!0,"data-svelte-h":!0}),l(x)!=="svelte-1npuvda"&&(x.textContent=ke),oe=r(g),T=i(g,"P",{"data-svelte-h":!0}),l(T)!=="svelte-qibysk"&&(T.innerHTML=fe),ie=r(g),_=i(g,"FIGURE",{class:!0,"data-svelte-h":!0}),l(_)!=="svelte-74gj0j"&&(_.innerHTML=se),G=r(g),S=i(g,"P",{"data-svelte-h":!0}),l(S)!=="svelte-np7xai"&&(S.textContent=Te),O=r(g),M=i(g,"H2",{class:!0,"data-svelte-h":!0}),l(M)!=="svelte-go4upt"&&(M.textContent=Se),P=r(g),m=i(g,"P",{"data-svelte-h":!0}),l(m)!=="svelte-1skopxh"&&(m.textContent=be),me=r(g),B=i(g,"FIGURE",{class:!0,"data-svelte-h":!0}),l(B)!=="svelte-10lwetc"&&(B.innerHTML=Ie),pe=r(g),K=i(g,"P",{"data-svelte-h":!0}),l(K)!=="svelte-1togysm"&&(K.textContent=je),W=r(g),z=i(g,"FIGURE",{class:!0,"data-svelte-h":!0}),l(z)!=="svelte-splsmw"&&(z.innerHTML=Ae),R=r(g),D=i(g,"H2",{class:!0,"data-svelte-h":!0}),l(D)!=="svelte-h3anlu"&&(D.textContent=Ue),ge=r(g),ne=i(g,"P",{"data-svelte-h":!0}),l(ne)!=="svelte-syy71z"&&(ne.innerHTML=Ne),xe=r(g),X=i(g,"FIGURE",{class:!0,"data-svelte-h":!0}),l(X)!=="svelte-1y1adq1"&&(X.innerHTML=Re),_e=r(g),Z=i(g,"P",{"data-svelte-h":!0}),l(Z)!=="svelte-1vjlw91"&&(Z.innerHTML=We),this.h()},h(){k(c,"class","figure text-center"),k(w,"class","section"),k(x,"class","section"),k(_,"class","figure text-center"),k(M,"class","section"),k(B,"class","figure text-center"),k(z,"class","figure text-center"),k(D,"class","section"),k(X,"class","figure text-center")},m(g,L){t(g,n,L),t(g,p,L),t(g,d,L),t(g,u,L),t(g,c,L),t(g,Q,L),t(g,w,L),t(g,V,L),t(g,b,L),t(g,C,L),t(g,x,L),t(g,oe,L),t(g,T,L),t(g,ie,L),t(g,_,L),t(g,G,L),t(g,S,L),t(g,O,L),t(g,M,L),t(g,P,L),t(g,m,L),t(g,me,L),t(g,B,L),t(g,pe,L),t(g,K,L),t(g,W,L),t(g,z,L),t(g,R,L),t(g,D,L),t(g,ge,L),t(g,ne,L),t(g,xe,L),t(g,X,L),t(g,_e,L),t(g,Z,L)},p:yt,d(g){g&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z))}}}function Ci(v){let n,f;const p=[v[0],vn];let d={$$slots:{default:[_i]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Si=class extends ht{constructor(n){super(),ct(this,n,Ti,Ci,pt,{})}};const Pi=Object.freeze(Object.defineProperty({__proto__:null,default:Si,metadata:vn},Symbol.toStringTag,{value:"Module"}));function Hi(v){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a='Spyder 4 will be released very soon with lots of interesting new features that you’ll want to check out, reflecting years of effort by the team to improve the user experience. In this post, we will be talking about the improvements made to the Variable Explorer.',u,c,de="These include the brand new Object Explorer for inspecting arbitrary Python variables, full support for MultiIndex dataframes with multiple dimensions, and the ability to filter and search for variables by name and type, and much more.",Q,w,ye='It is important to mention that several of the above improvements were made possible through integrating the work of two other projects. Code from gtabview was used to implement the multi-dimensional Pandas indexes, while objbrowser was the foundation of the new Object Explorer.',V,b,ce="New viewer for arbitrary Python objects",C,x,ke="For Spyder 4 we added a long-requested feature: full support for inspecting any kind of Python object through the Variable Explorer. For many years, Spyder has been able to view and edit a small subset of Python variables: NumPy arrays, Pandas DataFrames and Series, and builtin collections (lists, dictionaries and tuples). Other objects were displayed as dictionaries of their attributes, inspecting any of which required showing a new table. This made it rather cumbersome to use this functionality, and was the reason arbitrary Python objects were hidden by default from the Variable Explorer view.",oe,T,fe='Python Viewer
    Python Viewer
    ',ie,_,se='For the forthcoming Spyder release, we’ve integrated the excellent objbrowser project by Pepijn Kenter (@titusjan), which provides a tree-like view of Python objects, to offer a much simpler and more user-friendly way to inspect them.',G,S,Te='Python Viewer Metadata
    Python Viewer Metadata
    ',O,M,Se=`As can be seen above, this viewer will also allow users to browse extra metadata about the inspected object, such as its documentation, source code and the file that holds it. +It is very important to note that this work was accomplished thanks to the generosity of Pepijn, who kindly changed the license of objbrowser to allow us to integrate it with Spyder. +To expose this new functionality, we decided to set the option to hide arbitrary Python objects in the Variable Explorer to disabled by default, and introduced a new one called Exclude callables and modules. With this enabled by default, Spyder will now display a much larger fraction of objects that can be inspected, while still excluding most “uninteresting” variables.`,P,m,be='Exclude callables modules
    Exclude callables modules
    ',me,B,Ie="Finally, we added a context-menu action to open any object using the new Object Explorer even if they already have a builtin viewer (DataFrames, arrays, etc), allowing for deeper inspection of the inner workings of these datatypes.",pe,K,je='View object explorer
    View object explorer
    ',W,z,Ae="Multi-index support in the dataframe viewer",R,D,Ue="One of the first features we added to the Variable Explorer in Spyder 4 was MultiIndex support in its DataFrame inspector, including for multi-level and multi-dimensional indices. Spyder 3 had basic support for such, but it was very rudimentary, making inspecting such DataFrames a less than user-friendly experience.",ge,ne,Ne='Multi-index support
    Multi-index support
    ',xe,X,Re='For Spyder 4, we took advantage of the work done by Scott Hansen (@firecat53) and Yuri D’Elia (@wavexx) in their gtabview project, particularly its improved management of column and table headings, which allows the new version of Spyder to display the index shown above in a much nicer way.',_e,Z,We='Table headings
    Table headings
    ',g,L,Ve="Fuzzy filtering of variables",U,J,Ze=`Spyder 4 also includes the ability to filter the variables shown down to only those of interest. This employs fuzzy matching between the text entered in the search field and the name and type of all available variables. +To access this functionality, click the search icon in the Variable Explorer toolbar, or press Ctrl+F (Cmd-F on macOS) when the Variable Explorer has focus.`,N,Y,Ye='Filter variables
    Filter variables
    ',Fe,we,Xe="To remove the current filter, simply click the search icon again, or press Esc or Ctrl+F (Cmd-F) while the Variable Explorer is focused.",$e,ve,Be="Refresh while code is running",q,ee,tt='We added back the ability to refresh the Variable Explorer while code is running in the console. This feature was dropped in Spyder 3.2, when we removed the old and unmaintained Python console. However, this functionality will return in Spyder 4, thanks to the fantastic work done by Quentin Peter (@impact27) to completely re-architect the way Spyder talks to the Jupyter kernels that run the code in our IPython console, integrating support for Jupyter Comms.',Ge,He,ot='Refresh
    Refresh
    ',De,Me,it="To trigger a refresh, simply click the reload button on the Variable Explorer toolbar, or press the shortcut Ctrl+R (Cmd-R) when it has focus.",ze,Pe,nt="Full support for sets",A,te,at="In Spyder 3, the Variable Explorer could only show builtin Python sets as arbitrary objects, making it very difficult for users to browse and interact with them. In Spyder 4, you can now view sets just like lists, as well as perform various operations on them.",Qe,Le,lt='Screenshot of Spyder Variable Explorer UI, showing a Python set displayed in a native viewer
    Screenshot of Spyder Variable Explorer UI, showing a Python set displayed in a native viewer
    ',Je,Ee,et="UI enhancements and more",h,E,st="Finally, beyond the headline features, we’ve added numerous smaller improvements to make the Variable Explorer easier and more efficient to use. These include support for custom index names, better and more efficient automatic resizing of column widths, support for displaying Pandas Indices, tooltips for truncated column headers, and more.",ut,Ke,rt='Spyder’s Variable Explorer is what many of you consider to be one of its standout features, so we can’t wait for you all to get your hands on the even better version in Spyder 4. Thanks again to Quansight, our generous community donors, and as always all of you! Spyder 4.0.0 final is planned to be released within approximately one more week, but if you’d like to test it out immediately, follow the instructions on our GitHub to install the pre-release version (which won’t touch your existing Spyder install or settings). As always, happy Spydering!';return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.textContent=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),b=o("h2"),b.textContent=ce,C=s(),x=o("p"),x.textContent=ke,oe=s(),T=o("figure"),T.innerHTML=fe,ie=s(),_=o("p"),_.innerHTML=se,G=s(),S=o("figure"),S.innerHTML=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("figure"),m.innerHTML=be,me=s(),B=o("p"),B.textContent=Ie,pe=s(),K=o("figure"),K.innerHTML=je,W=s(),z=o("h2"),z.textContent=Ae,R=s(),D=o("p"),D.textContent=Ue,ge=s(),ne=o("figure"),ne.innerHTML=Ne,xe=s(),X=o("p"),X.innerHTML=Re,_e=s(),Z=o("figure"),Z.innerHTML=We,g=s(),L=o("h2"),L.textContent=Ve,U=s(),J=o("p"),J.innerHTML=Ze,N=s(),Y=o("figure"),Y.innerHTML=Ye,Fe=s(),we=o("p"),we.innerHTML=Xe,$e=s(),ve=o("h2"),ve.textContent=Be,q=s(),ee=o("p"),ee.innerHTML=tt,Ge=s(),He=o("figure"),He.innerHTML=ot,De=s(),Me=o("p"),Me.innerHTML=it,ze=s(),Pe=o("h2"),Pe.textContent=nt,A=s(),te=o("p"),te.textContent=at,Qe=s(),Le=o("figure"),Le.innerHTML=lt,Je=s(),Ee=o("h2"),Ee.textContent=et,h=s(),E=o("p"),E.textContent=st,ut=s(),Ke=o("p"),Ke.innerHTML=rt,this.h()},l(F){n=i(F,"P",{"data-svelte-h":!0}),l(n)!=="svelte-1pjt8pm"&&(n.innerHTML=f),p=r(F),d=i(F,"P",{"data-svelte-h":!0}),l(d)!=="svelte-zhmrie"&&(d.innerHTML=a),u=r(F),c=i(F,"P",{"data-svelte-h":!0}),l(c)!=="svelte-lb2uj8"&&(c.textContent=de),Q=r(F),w=i(F,"P",{"data-svelte-h":!0}),l(w)!=="svelte-5six4x"&&(w.innerHTML=ye),V=r(F),b=i(F,"H2",{class:!0,"data-svelte-h":!0}),l(b)!=="svelte-ol1fod"&&(b.textContent=ce),C=r(F),x=i(F,"P",{"data-svelte-h":!0}),l(x)!=="svelte-1bmrtq0"&&(x.textContent=ke),oe=r(F),T=i(F,"FIGURE",{class:!0,"data-svelte-h":!0}),l(T)!=="svelte-y8rbtl"&&(T.innerHTML=fe),ie=r(F),_=i(F,"P",{"data-svelte-h":!0}),l(_)!=="svelte-yih7m7"&&(_.innerHTML=se),G=r(F),S=i(F,"FIGURE",{class:!0,"data-svelte-h":!0}),l(S)!=="svelte-aa3oqn"&&(S.innerHTML=Te),O=r(F),M=i(F,"P",{"data-svelte-h":!0}),l(M)!=="svelte-fqkl9c"&&(M.innerHTML=Se),P=r(F),m=i(F,"FIGURE",{class:!0,"data-svelte-h":!0}),l(m)!=="svelte-19soass"&&(m.innerHTML=be),me=r(F),B=i(F,"P",{"data-svelte-h":!0}),l(B)!=="svelte-qhf1bg"&&(B.textContent=Ie),pe=r(F),K=i(F,"FIGURE",{class:!0,"data-svelte-h":!0}),l(K)!=="svelte-zwd83l"&&(K.innerHTML=je),W=r(F),z=i(F,"H2",{class:!0,"data-svelte-h":!0}),l(z)!=="svelte-11ey9cw"&&(z.textContent=Ae),R=r(F),D=i(F,"P",{"data-svelte-h":!0}),l(D)!=="svelte-ode07s"&&(D.textContent=Ue),ge=r(F),ne=i(F,"FIGURE",{class:!0,"data-svelte-h":!0}),l(ne)!=="svelte-1rb1x26"&&(ne.innerHTML=Ne),xe=r(F),X=i(F,"P",{"data-svelte-h":!0}),l(X)!=="svelte-wh7ow1"&&(X.innerHTML=Re),_e=r(F),Z=i(F,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Z)!=="svelte-1q7bkjy"&&(Z.innerHTML=We),g=r(F),L=i(F,"H2",{class:!0,"data-svelte-h":!0}),l(L)!=="svelte-kawc40"&&(L.textContent=Ve),U=r(F),J=i(F,"P",{"data-svelte-h":!0}),l(J)!=="svelte-1odmreo"&&(J.innerHTML=Ze),N=r(F),Y=i(F,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Y)!=="svelte-19lslqg"&&(Y.innerHTML=Ye),Fe=r(F),we=i(F,"P",{"data-svelte-h":!0}),l(we)!=="svelte-1ymg8ko"&&(we.innerHTML=Xe),$e=r(F),ve=i(F,"H2",{class:!0,"data-svelte-h":!0}),l(ve)!=="svelte-yoz7vc"&&(ve.textContent=Be),q=r(F),ee=i(F,"P",{"data-svelte-h":!0}),l(ee)!=="svelte-1et6vii"&&(ee.innerHTML=tt),Ge=r(F),He=i(F,"FIGURE",{class:!0,"data-svelte-h":!0}),l(He)!=="svelte-12fble7"&&(He.innerHTML=ot),De=r(F),Me=i(F,"P",{"data-svelte-h":!0}),l(Me)!=="svelte-xrhmm5"&&(Me.innerHTML=it),ze=r(F),Pe=i(F,"H2",{class:!0,"data-svelte-h":!0}),l(Pe)!=="svelte-6yqknk"&&(Pe.textContent=nt),A=r(F),te=i(F,"P",{"data-svelte-h":!0}),l(te)!=="svelte-1tntgzw"&&(te.textContent=at),Qe=r(F),Le=i(F,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Le)!=="svelte-1jic646"&&(Le.innerHTML=lt),Je=r(F),Ee=i(F,"H2",{class:!0,"data-svelte-h":!0}),l(Ee)!=="svelte-wy0pt7"&&(Ee.textContent=et),h=r(F),E=i(F,"P",{"data-svelte-h":!0}),l(E)!=="svelte-wc8yz6"&&(E.textContent=st),ut=r(F),Ke=i(F,"P",{"data-svelte-h":!0}),l(Ke)!=="svelte-v5m03a"&&(Ke.innerHTML=rt),this.h()},h(){k(b,"class","section"),k(T,"class","figure text-center"),k(S,"class","figure text-center"),k(m,"class","figure text-center"),k(K,"class","figure text-center"),k(z,"class","section"),k(ne,"class","figure text-center"),k(Z,"class","figure text-center"),k(L,"class","section"),k(Y,"class","figure text-center"),k(ve,"class","section"),k(He,"class","figure text-center"),k(Pe,"class","section"),k(Le,"class","figure text-center"),k(Ee,"class","section")},m(F,le){t(F,n,le),t(F,p,le),t(F,d,le),t(F,u,le),t(F,c,le),t(F,Q,le),t(F,w,le),t(F,V,le),t(F,b,le),t(F,C,le),t(F,x,le),t(F,oe,le),t(F,T,le),t(F,ie,le),t(F,_,le),t(F,G,le),t(F,S,le),t(F,O,le),t(F,M,le),t(F,P,le),t(F,m,le),t(F,me,le),t(F,B,le),t(F,pe,le),t(F,K,le),t(F,W,le),t(F,z,le),t(F,R,le),t(F,D,le),t(F,ge,le),t(F,ne,le),t(F,xe,le),t(F,X,le),t(F,_e,le),t(F,Z,le),t(F,g,le),t(F,L,le),t(F,U,le),t(F,J,le),t(F,N,le),t(F,Y,le),t(F,Fe,le),t(F,we,le),t(F,$e,le),t(F,ve,le),t(F,q,le),t(F,ee,le),t(F,Ge,le),t(F,He,le),t(F,De,le),t(F,Me,le),t(F,ze,le),t(F,Pe,le),t(F,A,le),t(F,te,le),t(F,Qe,le),t(F,Le,le),t(F,Je,le),t(F,Ee,le),t(F,h,le),t(F,E,le),t(F,ut,le),t(F,Ke,le)},p:yt,d(F){F&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(Fe),e(we),e($e),e(ve),e(q),e(ee),e(Ge),e(He),e(De),e(Me),e(ze),e(Pe),e(A),e(te),e(Qe),e(Le),e(Je),e(Ee),e(h),e(E),e(ut),e(Ke))}}}function Mi(v){let n,f;const p=[v[0],bn];let d={$$slots:{default:[Hi]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Ii=class extends ht{constructor(n){super(),ct(this,n,Li,Mi,pt,{})}};const ji=Object.freeze(Object.defineProperty({__proto__:null,default:Ii,metadata:bn},Symbol.toStringTag,{value:"Module"}));function Ei(v){let n,f='This blogpost was originally published on the Quansight Labs website',p,d,a=`TDK-Micronas is sponsoring Spyder development efforts through Quansight Labs. +This will enable the development of some features that have been requested by +our users, as well as new features that will help TDK develop custom Spyder +plugins in order to complement their Automatic Test Equipment (ATE’s) in the +development of their Application Specific Integrated Circuits (ASIC’s).`,u,c,de=`At this point it may be useful to clarify the relationship the role of +Quansight Labs in Spyder’s development and the relationship with TDK. To quote +Ralf Gommers (director of Quansight Labs):`,Q,w,ye=`

    “We’re an R&D lab for open source development of core technologies around data +science and scientific computing in Python. And focused on growing communities +around those technologies. That’s how I see it for Spyder as well: Quansight +Labs enables developers to be employed to work on Spyder, and helps with +connecting them to developers of other projects in similar situations. Labs +should be an enabler to let the Spyder project, its community and individual +developers grow. And Labs provides mechanisms to attract and coordinate +funding. Of course the project is still independent. If there are other +funding sources, e.g. donations from individuals to Spyder via OpenCollective, +all the better.”

    `,V,b,ce="Multiple Projects aka Workspaces",C,x,ke=`In its current state Spyder can only handle one active project at a time. +Although in the past we had basic support for workspaces, it was never a fully +functional feature, so to ease development and simplify the user experience, +we decided to remove it in the 3.x series.`,oe,T,fe=`For TDK-Micronas, as well as for a large part of the Spyder user base, the use +of multiple simultaneous projects is a common pattern, so this enhancement +will:`,ie,_,se=`
  • Move from a single to a multiple active projects concept
  • Change the name Project Explorer to WorkSpace Explorer.
  • Copying from one project to another is done in the ‘Explorer’ by means of +context menus.
  • `,G,S,Te=`It is worth mentioning that projects are considered an “advanced feature”, +so it will not be forced on users that just want to get some work done. +Projects usage is, and will remain, an optional feature.`,O,M,Se="Project Types",P,m,be=`Since the revamp of Spyder Projects with the 3.x series, the new dialog hinted +at the possibility of creating different types of projects. Currently Spyder +provides an “empty project” project type.`,me,B,Ie='Project creation
    Project creation
    ',pe,K,je="This feature will:",W,z,Ae=`
  • Expand the (current) Project Explorer API to handle Project Types.
  • Define and implement the minimal aspects that should be extensible by a +Project Type
  • `,R,D,Ue="File Associations",ge,ne,Ne=`Spyder currently supports opening files on the Project and File Explorer +using the (default) Operating System defined applications. We will enhance +this by adding Global file associations as part of the Preferences +and Project Specific associations as part of the Project Preferences. +This will give users more power to select the tool or set of tools that they +prefer to use for specific projects and tasks directly on the File and Project +Explorer pane.`,xe,X,Re="URL Awareness",_e,Z,We=`Working with projects requires access to documentation, located within the +computer as other files or links located over the internet. We will now +include integration for URI detection within the editor so users can +Ctrl+Click on these items. This will work similarly as module +inspection works, but generalized to external and internal links.`,g,L,Ve="Git version control enhancements",U,J,Ze=`The revision system of choice by our user base, including TDK, is Git. +The purpose of this enhancement is to enable basic Git integration from +within the File and Project Explorer and to extend the current plugin +API so context menus can be customized with specific Git features and +commands.`,N,Y,Ye=`Initial work has already started to display Git relevant information +on the status bar`,Fe,we,Xe='Status bar git
    Status bar git
    ',$e,ve,Be="Git status is now displayed in the status bar (on the left)",q,ee,tt="Editor alternative views",Ge,He,ot=`There are many circumstances where a user would like to edit a file that might +be rendered using a parsing tool into another type of view. One example of +this is Markdown, the markup language in which this blog post is written and +that can be rendered to HTML. At the moment the only way to achieve this within +Spyder is via the use of a dedicated plugin that would create a new type of +Pane. An example of such a plugin is spyder-reports +(See image below and the Reports pane). The reason why plugins are developed +this way is because the Editor Plugin on Spyder can only contain Code Editor +widgets, which prevents us and other developers to use the Editor to hold +these alternate views of a given file.`,De,Me,it='Spyder Reports
    Spyder Reports
    ',ze,Pe,nt=`The new alternative views feature will remove this limitation and enable the +inclusion of generic widgets (views) of different types of files and provide +an API for plugin extensions.`,A,te,at="Closing Remarks",Qe,Le,lt=`I would like to thank TDK-Micronas and Quansight for the opportunity to +work in open source development on an awesome product such as Spyder.`,Je,Ee,et=`I would also like to thank the users, +contributors +and core developers for helping +make Spyder an awesome tool!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.textContent=a,u=s(),c=o("p"),c.textContent=de,Q=s(),w=o("blockquote"),w.innerHTML=ye,V=s(),b=o("h2"),b.textContent=ce,C=s(),x=o("p"),x.textContent=ke,oe=s(),T=o("p"),T.textContent=fe,ie=s(),_=o("ul"),_.innerHTML=se,G=s(),S=o("p"),S.textContent=Te,O=s(),M=o("h2"),M.textContent=Se,P=s(),m=o("p"),m.textContent=be,me=s(),B=o("figure"),B.innerHTML=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),z=o("ul"),z.innerHTML=Ae,R=s(),D=o("h2"),D.textContent=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("h2"),X.textContent=Re,_e=s(),Z=o("p"),Z.innerHTML=We,g=s(),L=o("h2"),L.textContent=Ve,U=s(),J=o("p"),J.textContent=Ze,N=s(),Y=o("p"),Y.textContent=Ye,Fe=s(),we=o("figure"),we.innerHTML=Xe,$e=s(),ve=o("small"),ve.textContent=Be,q=s(),ee=o("h2"),ee.textContent=tt,Ge=s(),He=o("p"),He.innerHTML=ot,De=s(),Me=o("figure"),Me.innerHTML=it,ze=s(),Pe=o("p"),Pe.textContent=nt,A=s(),te=o("h2"),te.textContent=at,Qe=s(),Le=o("p"),Le.textContent=lt,Je=s(),Ee=o("p"),Ee.innerHTML=et,this.h()},l(h){n=i(h,"P",{"data-svelte-h":!0}),l(n)!=="svelte-1wz2w3n"&&(n.innerHTML=f),p=r(h),d=i(h,"P",{"data-svelte-h":!0}),l(d)!=="svelte-89nr4s"&&(d.textContent=a),u=r(h),c=i(h,"P",{"data-svelte-h":!0}),l(c)!=="svelte-hirzgk"&&(c.textContent=de),Q=r(h),w=i(h,"BLOCKQUOTE",{"data-svelte-h":!0}),l(w)!=="svelte-194ra0z"&&(w.innerHTML=ye),V=r(h),b=i(h,"H2",{class:!0,"data-svelte-h":!0}),l(b)!=="svelte-39xyj3"&&(b.textContent=ce),C=r(h),x=i(h,"P",{"data-svelte-h":!0}),l(x)!=="svelte-vy7895"&&(x.textContent=ke),oe=r(h),T=i(h,"P",{"data-svelte-h":!0}),l(T)!=="svelte-7p7tjc"&&(T.textContent=fe),ie=r(h),_=i(h,"UL",{"data-svelte-h":!0}),l(_)!=="svelte-1w77dxh"&&(_.innerHTML=se),G=r(h),S=i(h,"P",{"data-svelte-h":!0}),l(S)!=="svelte-1dm11il"&&(S.textContent=Te),O=r(h),M=i(h,"H2",{class:!0,"data-svelte-h":!0}),l(M)!=="svelte-tffyri"&&(M.textContent=Se),P=r(h),m=i(h,"P",{"data-svelte-h":!0}),l(m)!=="svelte-d46gag"&&(m.textContent=be),me=r(h),B=i(h,"FIGURE",{class:!0,"data-svelte-h":!0}),l(B)!=="svelte-fk18az"&&(B.innerHTML=Ie),pe=r(h),K=i(h,"P",{"data-svelte-h":!0}),l(K)!=="svelte-1jp4yz4"&&(K.textContent=je),W=r(h),z=i(h,"UL",{"data-svelte-h":!0}),l(z)!=="svelte-bodz6j"&&(z.innerHTML=Ae),R=r(h),D=i(h,"H2",{class:!0,"data-svelte-h":!0}),l(D)!=="svelte-a5agc"&&(D.textContent=Ue),ge=r(h),ne=i(h,"P",{"data-svelte-h":!0}),l(ne)!=="svelte-r42ead"&&(ne.innerHTML=Ne),xe=r(h),X=i(h,"H2",{class:!0,"data-svelte-h":!0}),l(X)!=="svelte-1wpheau"&&(X.textContent=Re),_e=r(h),Z=i(h,"P",{"data-svelte-h":!0}),l(Z)!=="svelte-pnkj4r"&&(Z.innerHTML=We),g=r(h),L=i(h,"H2",{class:!0,"data-svelte-h":!0}),l(L)!=="svelte-c0fzzy"&&(L.textContent=Ve),U=r(h),J=i(h,"P",{"data-svelte-h":!0}),l(J)!=="svelte-1vxpn4r"&&(J.textContent=Ze),N=r(h),Y=i(h,"P",{"data-svelte-h":!0}),l(Y)!=="svelte-11f51nv"&&(Y.textContent=Ye),Fe=r(h),we=i(h,"FIGURE",{class:!0,"data-svelte-h":!0}),l(we)!=="svelte-1dtuykr"&&(we.innerHTML=Xe),$e=r(h),ve=i(h,"SMALL",{"data-svelte-h":!0}),l(ve)!=="svelte-1d84hxu"&&(ve.textContent=Be),q=r(h),ee=i(h,"H2",{class:!0,"data-svelte-h":!0}),l(ee)!=="svelte-121xd8m"&&(ee.textContent=tt),Ge=r(h),He=i(h,"P",{"data-svelte-h":!0}),l(He)!=="svelte-1w1g9e1"&&(He.innerHTML=ot),De=r(h),Me=i(h,"FIGURE",{class:!0,"data-svelte-h":!0}),l(Me)!=="svelte-1adnzoj"&&(Me.innerHTML=it),ze=r(h),Pe=i(h,"P",{"data-svelte-h":!0}),l(Pe)!=="svelte-zs1sj3"&&(Pe.textContent=nt),A=r(h),te=i(h,"H2",{class:!0,"data-svelte-h":!0}),l(te)!=="svelte-19du5tw"&&(te.textContent=at),Qe=r(h),Le=i(h,"P",{"data-svelte-h":!0}),l(Le)!=="svelte-1xw2w4l"&&(Le.textContent=lt),Je=r(h),Ee=i(h,"P",{"data-svelte-h":!0}),l(Ee)!=="svelte-19xo1zm"&&(Ee.innerHTML=et),this.h()},h(){k(b,"class","section"),k(M,"class","section"),k(B,"class","figure text-center"),k(D,"class","section"),k(X,"class","section"),k(L,"class","section"),k(we,"class","figure text-center"),k(ee,"class","section"),k(Me,"class","figure text-center"),k(te,"class","section")},m(h,E){t(h,n,E),t(h,p,E),t(h,d,E),t(h,u,E),t(h,c,E),t(h,Q,E),t(h,w,E),t(h,V,E),t(h,b,E),t(h,C,E),t(h,x,E),t(h,oe,E),t(h,T,E),t(h,ie,E),t(h,_,E),t(h,G,E),t(h,S,E),t(h,O,E),t(h,M,E),t(h,P,E),t(h,m,E),t(h,me,E),t(h,B,E),t(h,pe,E),t(h,K,E),t(h,W,E),t(h,z,E),t(h,R,E),t(h,D,E),t(h,ge,E),t(h,ne,E),t(h,xe,E),t(h,X,E),t(h,_e,E),t(h,Z,E),t(h,g,E),t(h,L,E),t(h,U,E),t(h,J,E),t(h,N,E),t(h,Y,E),t(h,Fe,E),t(h,we,E),t(h,$e,E),t(h,ve,E),t(h,q,E),t(h,ee,E),t(h,Ge,E),t(h,He,E),t(h,De,E),t(h,Me,E),t(h,ze,E),t(h,Pe,E),t(h,A,E),t(h,te,E),t(h,Qe,E),t(h,Le,E),t(h,Je,E),t(h,Ee,E)},p:yt,d(h){h&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(Fe),e(we),e($e),e(ve),e(q),e(ee),e(Ge),e(He),e(De),e(Me),e(ze),e(Pe),e(A),e(te),e(Qe),e(Le),e(Je),e(Ee))}}}function Fi(v){let n,f;const p=[v[0],xn];let d={$$slots:{default:[Ei]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Ai=class extends ht{constructor(n){super(),ct(this,n,$i,Fi,pt,{})}};const Gi=Object.freeze(Object.defineProperty({__proto__:null,default:Ai,metadata:xn},Symbol.toStringTag,{value:"Module"}));function zi(v){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a=`I joined the Spyder team almost two years ago, and I never thought I was going to end up working on docs. +Six months ago I started a project with CAM Gerlach and Carlos Cordoba to improve Spyder’s documentation. +At first, I didn’t actually understand how important docs are for software, especially for open source projects. +However, during all this time I’ve learned how documentation has a huge impact on the open-source community and I’ve been thankful to have been able to do this. +But, from the beginning, I asked myself “why am I the ‘right person’ for this?”`,u,c,de=`Improving Spyder’s documentation started as part of a NumFOCUS Small Development Grant awarded at the end of last year. +The goal of the project was not only to update the documentation for Spyder 4, but also to make it more user-friendly, so users can understand Spyder’s key concepts and get started with it more easily.`,Q,w,ye="One of the main ideas for this project was to create a series of short video tutorials, explaining the basic functionality of Spyder and its most important panes, allowing users to learn how to use Spyder faster and easier.",V,b,ce="Carlos Cordoba, our lead maintainer, thought I was the perfect person for this project because of my “good communication and organization skills”, my “clear and fluent English” (his words) and my previous experience at video editing and recording, which I actually gained by recording singing videos during my “YouTuber” phase.",C,x,ke=`I’ve always been interested in education and worked as a tutor for several years learning different tools, gaining experience on how to teach and questioning the effectiveness of current educational methods. +This was the first reason why I got interested in this project. +For me, documentation is just a fancy way of saying “educating people on using software”. +The challenge here was not recording and editing the videos (which was actually a pretty arduous task), or planning the content for them; the real challenge was to make an impact in such a way that users could find documentation actually useful.`,oe,T,fe=`When users start to use a new IDE, or any new software, they usually refer to its documentation, which sometimes doesn’t give enough tools for them to start from zero. +This was, then, the whole purpose of the tutorial videos. +Spyder’s documentation was already very complete in terms of explaining all the features and cool things you can do with each of its panes. +However, if I’m a completely new user and I don’t even know how to open it, where do I start?`,ie,_,se=`I planned these videos as a series of progressive steps that can get users from zero experience to actually working with Spyder. +Hence, I divided the videos into three sections, “First Steps with Spyder”, “Working with Spyder”, and “Building Projects with Spyder”. +Each section builds on the one before in a way that they are clear enough so that users can find their way through Spyder without knowing anything about it.`,G,S,Te=`The “First Steps with Spyder” section, live now on our YouTube channel, has three videos that provide a starting point for new users before they even open Spyder for the first time. +The first tutorial covers different ways of opening Spyder, the basics of using its interface and an introduction to its four main panes, along with a quick look at the others so that users can get familiar with how Spyder is organized.`,O,M,Se=`In the second video, users can learn the basics of using Spyder’s four main panes. +The goal is that after this video, users are able to open and edit a file in the Editor, run a script and find the output in Spyder’s IPython Console and execute basic Python commands. +They should be able to interact with the Variable Explorer to browse and edit the objects in the console, and use the Help pane to get documentation in two different ways.`,P,m,be=`The third video is meant to show users how to customize Spyder’s interface to start working with it in the way they feel more comfortable according to their preferences. +It teaches users how to change the font and the theme of Spyder and rearrange its panes to display only the ones that they want such that it is easier for them to work.`,me,B,Ie=`After these three videos, I learned that one of the most important things for writing documentation, more than having a lot of experience with the software, is empathy. +Usually being a developer makes it hard to put yourself in the position of a user and understand exactly what a user needs. +Now, I realize that this is what actually makes me the “perfect person” for the project. +As a junior developer, without as much experience with Spyder, I was able to think more like new users and develop content in a way that they feel closer to us developers. +In the end, as Melissa said in her blog post, I learned writing documentation is also a way of building community.`,pe,K,je="I hope these videos are really useful, and I look forward to continue finding ways of making the open source community better.",W,z,Ae="Happy Spydering!";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),b=o("p"),b.textContent=ce,C=s(),x=o("p"),x.textContent=ke,oe=s(),T=o("p"),T.textContent=fe,ie=s(),_=o("p"),_.textContent=se,G=s(),S=o("p"),S.innerHTML=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("p"),m.innerHTML=be,me=s(),B=o("p"),B.innerHTML=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),z=o("p"),z.textContent=Ae},l(R){n=i(R,"P",{"data-svelte-h":!0}),l(n)!=="svelte-1c3xat3"&&(n.innerHTML=f),p=r(R),d=i(R,"P",{"data-svelte-h":!0}),l(d)!=="svelte-1ekmroj"&&(d.innerHTML=a),u=r(R),c=i(R,"P",{"data-svelte-h":!0}),l(c)!=="svelte-3uobbg"&&(c.innerHTML=de),Q=r(R),w=i(R,"P",{"data-svelte-h":!0}),l(w)!=="svelte-1nsl4ig"&&(w.textContent=ye),V=r(R),b=i(R,"P",{"data-svelte-h":!0}),l(b)!=="svelte-13wakb2"&&(b.textContent=ce),C=r(R),x=i(R,"P",{"data-svelte-h":!0}),l(x)!=="svelte-8i2tyt"&&(x.textContent=ke),oe=r(R),T=i(R,"P",{"data-svelte-h":!0}),l(T)!=="svelte-1taoegn"&&(T.textContent=fe),ie=r(R),_=i(R,"P",{"data-svelte-h":!0}),l(_)!=="svelte-ovfvik"&&(_.textContent=se),G=r(R),S=i(R,"P",{"data-svelte-h":!0}),l(S)!=="svelte-uwjnw4"&&(S.innerHTML=Te),O=r(R),M=i(R,"P",{"data-svelte-h":!0}),l(M)!=="svelte-q2p4uz"&&(M.innerHTML=Se),P=r(R),m=i(R,"P",{"data-svelte-h":!0}),l(m)!=="svelte-4qc8rx"&&(m.innerHTML=be),me=r(R),B=i(R,"P",{"data-svelte-h":!0}),l(B)!=="svelte-ixkqq3"&&(B.innerHTML=Ie),pe=r(R),K=i(R,"P",{"data-svelte-h":!0}),l(K)!=="svelte-aq4wil"&&(K.textContent=je),W=r(R),z=i(R,"P",{"data-svelte-h":!0}),l(z)!=="svelte-11fpu20"&&(z.textContent=Ae)},m(R,D){t(R,n,D),t(R,p,D),t(R,d,D),t(R,u,D),t(R,c,D),t(R,Q,D),t(R,w,D),t(R,V,D),t(R,b,D),t(R,C,D),t(R,x,D),t(R,oe,D),t(R,T,D),t(R,ie,D),t(R,_,D),t(R,G,D),t(R,S,D),t(R,O,D),t(R,M,D),t(R,P,D),t(R,m,D),t(R,me,D),t(R,B,D),t(R,pe,D),t(R,K,D),t(R,W,D),t(R,z,D)},p:yt,d(R){R&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b),e(C),e(x),e(oe),e(T),e(ie),e(_),e(G),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(z))}}}function qi(v){let n,f;const p=[v[0],kn];let d={$$slots:{default:[zi]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Ui=class extends ht{constructor(n){super(),ct(this,n,Oi,qi,pt,{})}};const Di=Object.freeze(Object.defineProperty({__proto__:null,default:Ui,metadata:kn},Symbol.toStringTag,{value:"Module"}));function Ri(v){let n,f=`Quansight, the company recently founded by NumPy, SciPy and Anaconda creator Travis Oliphant to help connect companies with open source communities built around data science and machine learning, just released Episode 1 of its live webcast series, and it was all about Spyder! +Spyder maintainer Carlos Córdoba, recently hired by Quansight and funded part-time to work on Spyder development as we announced a few weeks ago, was the featured guest on the show.`,p,d,a=`Carlos first shared his perspective on some of the key moments in Spyder’s nearly 10-year development history, from its original creation by Pierre Raybaut and Carlos’ initial involvement in the project to its more recent challenges and successes. +He also demonstrated basic usage of Spyder, as well as some of its standout features, in a live on-screen demo. +Carlos then went on to outline the current roadmap for Spyder 4 in the near future, and explained some of the key new features planned for it. +Finally, he took the time to answer a variety of Spyder-related questions asked live by viewers, ranging from specific current and planned Spyder features to suggestions on keeping a good work-life balance. +While technical difficulties (since identified and resolved) interrupted some of his commentary, particularly in the roadmap section, a full account of the latter will be published here shortly.`,u,c,de=`If you missed the webcast, Quansight recorded it and uploaded it to their new Youtube channel, so you can watch it on-demand right here if you’re curious about any of the above. +Give it a like if you enjoy it to show Quansight some love for helping support Spyder’s further development!`,Q,w,ye,V,b,ce=`We’ll have a new post on the release of Spyder 3.3.1 (and 3.3.0) in a few days time, plus articles on our new docs, Spyder 4 beta 1, and our full roadmap all in the next week or so; there’s plenty going on that you won’t want to miss. +Keep it right here to catch all that—and in the meantime, happy Spydering!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("iframe"),V=s(),b=o("p"),b.textContent=ce,this.h()},l(C){n=i(C,"P",{"data-svelte-h":!0}),l(n)!=="svelte-1ekiaxh"&&(n.innerHTML=f),p=r(C),d=i(C,"P",{"data-svelte-h":!0}),l(d)!=="svelte-4osmhr"&&(d.innerHTML=a),u=r(C),c=i(C,"P",{"data-svelte-h":!0}),l(c)!=="svelte-8641gl"&&(c.innerHTML=de),Q=r(C),w=i(C,"IFRAME",{title:!0,width:!0,height:!0,src:!0,frameborder:!0,allow:!0}),Ht(w).forEach(e),V=r(C),b=i(C,"P",{"data-svelte-h":!0}),l(b)!=="svelte-319fyz"&&(b.textContent=ce),this.h()},h(){k(w,"title","Episode 1"),k(w,"width","640"),k(w,"height","360"),Kt(w.src,ye="https://www.youtube-nocookie.com/embed/vtLdH4VbACA")||k(w,"src",ye),k(w,"frameborder","0"),k(w,"allow","autoplay; encrypted-media"),w.allowFullscreen=!0},m(C,x){t(C,n,x),t(C,p,x),t(C,d,x),t(C,u,x),t(C,c,x),t(C,Q,x),t(C,w,x),t(C,V,x),t(C,b,x)},p:yt,d(C){C&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(b))}}}function Wi(v){let n,f;const p=[v[0],_n];let d={$$slots:{default:[Ri]},$$scope:{ctx:v}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}class Qi extends ht{constructor(n){super(),ct(this,n,Ni,Wi,pt,{})}}const Vi=Object.freeze(Object.defineProperty({__proto__:null,default:Qi,metadata:_n},Symbol.toStringTag,{value:"Module"})),Ll=async(v,n)=>{const d=Object.entries(Object.assign({"/src/routes/blog/STX-interview/+page.md":Wn,"/src/routes/blog/cbi-installers/+page.md":Jn,"/src/routes/blog/czi-grant/+page.md":eo,"/src/routes/blog/installer-improvements/+page.md":lo,"/src/routes/blog/introducing-unittest-plugin/+page.md":po,"/src/routes/blog/introducing-watchlist-plugin/+page.md":yo,"/src/routes/blog/release-qtconsole-440/+page.md":xo,"/src/routes/blog/release-spyder-330/+page.md":So,"/src/routes/blog/release-spyder-4/+page.md":Io,"/src/routes/blog/release-spyder-4beta2/+page.md":Ao,"/src/routes/blog/reusable-research-bof-scipy-2023-part-2/+page.md":Uo,"/src/routes/blog/reusable-research-bof-scipy-2023/+page.md":Qo,"/src/routes/blog/spyder-debugger/+page.md":Zo,"/src/routes/blog/spyder-files-improvements/+page.md":ni,"/src/routes/blog/spyder-kite-funding/+page.md":si,"/src/routes/blog/spyder-roadmap-proposals-2022/+page.md":hi,"/src/routes/blog/spyder-status-2018-past/+page.md":gi,"/src/routes/blog/spyder-status-2018-present/+page.md":ki,"/src/routes/blog/spyder-terminal-030/+page.md":Pi,"/src/routes/blog/spyder-variable-explorer/+page.md":ji,"/src/routes/blog/tdk-micronas-partners-with-quansight-labs/+page.md":Gi,"/src/routes/blog/tutorial-docs/+page.md":Di,"/src/routes/blog/webcast-quansight-ep1/+page.md":Vi})).map(([w,ye])=>{const{metadata:V}=ye,b=w.split("/");b.pop();const ce=b.slice(-1).join("/");return{meta:V,path:ce}}),a=Ji(d),u=(v-1)*n,c=u+n,de=a.slice(u,c),Q=Math.ceil(a.length/n);return{posts:de,pageNum:v,totalPages:Q}};function Sn(v){const n={year:"numeric",month:"long",day:"numeric"};return new Date(v).toLocaleDateString("en-US",n)}async function Bi(v){try{const n=await fetch(`/assets/authors/${v}/metadata.json`);if(!n.ok)throw new Error("Failed to load author metadata");const f=await n.json();return{src:`/assets/authors/${v}/${f.image}`,name:f.name}}catch(n){return console.error("Failed to load author metadata:",n),null}}const Ji=v=>v.sort((n,f)=>new Date(f.meta.pub_date)-new Date(n.meta.pub_date)),Il=v=>Math.random().toString(24).replace(/[^a-z]+/g,""),Ki=()=>{{const v=navigator.userAgent.toLowerCase(),n={mac:["mac"],windows:["win"],linux:["linux"]};for(const f in n)if(n[f].some(p=>v.includes(p)))return f}},Zi=(v,n)=>{let f=[{}],p="";return n==="windows"?p="for Windows 10+":n==="linux"?p="for Linux":n==="mac"&&(p="for macOS",f=[{highlight:!0,icon:`${n}`,text:`Download ${p} (M1)`,href:`${v}/download?os=${n}&arch=arm64`},{highlight:!0,icon:`${n}`,text:`Download ${p} (Intel)`,href:`${v}/download?os=${n}&arch=x64`}]),(n==="windows"||n==="linux")&&(f=[{highlight:!0,icon:`${n}`,text:`Download ${p}`,href:`${v}/download?os=${n}&arch=x64`}]),f};async function jl(v){try{return(await Gn(()=>import("./index.D7Jwt5yH.js"),[],import.meta.url))[v]}catch(n){return console.error(`Failed to load icon: ${v}`,n),null}}const Yi=localStorage.getItem("colourScheme")||"light",Xi=Cn(Yi);Xi.subscribe(v=>{localStorage.setItem("colourScheme",v),console.log("Colour scheme set to",v)});function el(){const{subscribe:v,set:n,update:f}=Cn({title:"",author:"",description:"",keywords:""});return{subscribe:v,setMetadata:p=>n(p),reset:()=>n({title:"",author:"",description:"",keywords:""})}}const Pn=el(),tl=Cn({loading:!0});setTimeout(()=>{const v=Ki(),n=Zi(Hn,v);tl.set({loading:!1,os:v,osButtons:n})},0);export{Ii as A,Ai as B,Ui as C,Qi as D,Rn as P,Bi as a,Sn as b,Xi as c,Bn as d,Xn as e,Ll as f,jl as g,io as h,uo as i,mo as j,bo as k,To as l,Pn as m,Lo as n,tl as o,$o as p,No as q,Il as r,Oo as s,Ko as t,ti as u,ai as v,pi as w,yi as x,xi as y,Si as z}; diff --git a/_app/immutable/chunks/28.D5QBwc6E.js b/_app/immutable/chunks/28.D5QBwc6E.js deleted file mode 100644 index 14e6877a..00000000 --- a/_app/immutable/chunks/28.D5QBwc6E.js +++ /dev/null @@ -1,445 +0,0 @@ -import{s as pt,z as Pn,b as Kt,A as Hn,B as Mn,C as Ln,o as In,a as jn,g as Ce,H as qe,n as yt}from"./scheduler.CZFVEtgY.js";import{S as ht,i as ct,e as o,s,u as Zt,F as En,c as l,d as e,h as r,f as Ht,v as Yt,a as x,j as Mt,b as t,w as Xt,l as ft,t as mt,o as gt,p as wt,q as vt,r as bt,g as i,A as Jt,H as Wt,D as Nt}from"./index.DjvOVdNM.js";import{t as zn,g as xt,e as Oe}from"./index.CXB4hq09.js";import{b as Fn}from"./paths.CQpuyKeJ.js";import{m as Tn}from"./index.Ch6n4Zkw.js";import{_ as $n}from"./preload-helper.D6kgxu3v.js";function An(k){let n,f,p,d,a,u,c,de,Q,w,ye,V,v,ce,C,b=Sn(k[3])+"",ke,oe,T,fe;const le=k[11].default,_=Pn(le,k,k[10],null);return{c(){n=o("link"),f=s(),p=o("article"),d=o("div"),a=o("h1"),u=Zt(k[2]),c=s(),de=o("div"),Q=o("img"),ye=s(),V=o("div"),v=Zt(k[1]),ce=s(),C=o("div"),ke=Zt(b),oe=s(),T=o("div"),_&&_.c(),this.h()},l(se){const A=En("svelte-1feejup",document.head);n=l(A,"LINK",{rel:!0,href:!0}),A.forEach(e),f=r(se),p=l(se,"ARTICLE",{class:!0});var S=Ht(p);d=l(S,"DIV",{class:!0});var Te=Ht(d);a=l(Te,"H1",{class:!0});var O=Ht(a);u=Yt(O,k[2]),O.forEach(e),c=r(Te),de=l(Te,"DIV",{class:!0});var M=Ht(de);Q=l(M,"IMG",{class:!0,src:!0,alt:!0}),ye=r(M),V=l(M,"DIV",{class:!0});var Se=Ht(V);v=Yt(Se,k[1]),ce=r(Se),C=l(Se,"DIV",{class:!0});var P=Ht(C);ke=Yt(P,b),P.forEach(e),Se.forEach(e),M.forEach(e),Te.forEach(e),oe=r(S),T=l(S,"DIV",{class:!0});var m=Ht(T);_&&_.l(m),m.forEach(e),S.forEach(e),this.h()},h(){x(n,"rel","stylesheet"),x(n,"href",Fn+"/assets/vendor/prism/prism-nord.css"),x(a,"class","text-2xl xl:tracking-tight xl:text-6xl text-center font-extralight tracking-tight text-mine-shaft-600 dark:text-mine-shaft-200"),x(Q,"class","w-24 h-24 rounded-full object-cover"),Kt(Q.src,w=k[0])||x(Q,"src",w),x(Q,"alt",k[4]),x(C,"class","text-neutral-500 text-xs font-medium"),x(V,"class","font-light text-center"),x(de,"class","max-w-[72ch] mx-auto flex flex-col items-center gap-4 my-10 xl:my-32"),x(d,"class","my-10 xl:my-32"),x(T,"class","prose prose-lg dark:prose-invert prose-headings:font-medium prose-p:font-light max-w-[72ch] mx-auto"),x(p,"class","container")},m(se,A){Mt(document.head,n),t(se,f,A),t(se,p,A),Mt(p,d),Mt(d,a),Mt(a,u),Mt(d,c),Mt(d,de),Mt(de,Q),Mt(de,ye),Mt(de,V),Mt(V,v),Mt(V,ce),Mt(V,C),Mt(C,ke),Mt(p,oe),Mt(p,T),_&&_.m(T,null),fe=!0},p(se,[A]){(!fe||A&4)&&Xt(u,se[2]),(!fe||A&1&&!Kt(Q.src,w=se[0]))&&x(Q,"src",w),(!fe||A&16)&&x(Q,"alt",se[4]),(!fe||A&2)&&Xt(v,se[1]),(!fe||A&8)&&b!==(b=Sn(se[3])+"")&&Xt(ke,b),_&&_.p&&(!fe||A&1024)&&Hn(_,le,se,se[10],fe?Ln(le,se[10],A,null):Mn(se[10]),null)},i(se){fe||(ft(_,se),fe=!0)},o(se){mt(_,se),fe=!1},d(se){se&&(e(f),e(p)),e(n),_&&_.d(se)}}}function Gn(k,n,f){let{$$slots:p={},$$scope:d}=n,{data:a}=n,{form:u}=n,{title:c}=n,{pub_date:de}=n,{author:Q}=n,{tags:w}=n,{category:ye}=n,{summary:V}=n,{src:v=""}=n,{name:ce=""}=n;return In(async()=>{const C=await Vl(Q);Tn.setMetadata({title:`${zn} | ${c}`,description:V,keywords:`${w}, ${ye}`,author:C?C.name:""}),f(0,v=C.src),f(1,ce=C.name)}),jn(()=>{Tn.reset()}),k.$$set=C=>{"data"in C&&f(5,a=C.data),"form"in C&&f(6,u=C.form),"title"in C&&f(2,c=C.title),"pub_date"in C&&f(3,de=C.pub_date),"author"in C&&f(4,Q=C.author),"tags"in C&&f(7,w=C.tags),"category"in C&&f(8,ye=C.category),"summary"in C&&f(9,V=C.summary),"src"in C&&f(0,v=C.src),"name"in C&&f(1,ce=C.name),"$$scope"in C&&f(10,d=C.$$scope)},[v,ce,c,de,Q,a,u,w,ye,V,d,p]}class kt extends ht{constructor(n){super(),ct(this,n,Gn,An,pt,{data:5,form:6,title:2,pub_date:3,author:4,tags:7,category:8,summary:9,src:0,name:1})}}function qn(k){let n,f=`STX Next, one of Europe’s largest Python development companies, has shared with us how Spyder has been a powerful tool for them when performing data analysis. -It is a pleasure for us on the Spyder team to work every day to improve the workflow of developers, scientists, engineers and data analysts. -We are very glad to receive and share a STX Next testimonial about Spyder, along with an interview with one of their developers, Michael Wiśniewski, who has found Spyder very useful in his job.`,p,d,a='Company Picture
    Company Picture
    ',u,c,de="What Michael Wiśniewski says about Spyder",Q,w,ye=`In an era of a continuously growing demand for analysis of vast amounts of data, we are facing increasingly complex tasks to perform. -Sure, we are not alone—there are many great tools designed for scientists and data analysts. -We have NumPy, SciPy, Matplotlib, Pandas, and others. -But, wouldn’t it be nice to have one extra tool that could combine all the required packages into one compact working environment? Asking this question is precisely how my journey with Spyder began.`,V,v,ce=`In my opinion, Spyder is the go-to-solution that helps to speed up the data analysis processes. -For me, the biggest strength of this IDE is that it has all the benefits of Matlab/RStudio and makes them available to the Pythonista community. -It provides us with an easy-to-organize workspace that accommodates code, visualizations and shell in just one window. -Besides, the pane called variable explorer allows direct access to all data placed in the memory.`,C,b,ke=`Another cool feature is the tool’s integration with Jupyter notebooks. -Just open and browse different notebooks without thinking about server-side and file paths. -Want to run a single line of code or quickly check a chart update? IPython is on board and ready by default.`,oe,T,fe="Michael Wiśniewski’s interview",le,_,se,A,S,Te=`I’m Michael Wiśniewski and I’ve been working at STX Next as a full-stack developer for over a year. -During this time, I was involved in various projects from many different areas—from typical web applications where I used Python and JavaScript to implementing ML solutions for image recognition on the nVidia Jetson platform. -After hours, my colleagues and I run a machine learning community of practice. Today, I’d like to share my thoughts on using Spyder.`,O,M,Se="How long have you been using Spyder?",P,m,be="I discovered Spyder around a year ago, at the time it was transitioning from version 3 to the current one.",me,B,Ie="How many people in your company use Spyder?",pe,K,je=`In my department, three of my colleagues use Spyder on a daily basis. -Some of them use it for commercial projects, while others use it for personal research. -The number is growing, since most people try Spyder out after their first contact with it.`,W,G,$e="What kind of projects have you done using Spyder?",R,D,Ue=`I’ve found applications for Spyder in many different areas. -One time, I used it for a project that relied on machine learning algorithms to assess risk based on documents provided by a user. -Since Spyder aggregates out-of-the-box the most popular scientific Python packages, it was used during the whole development process, from data pre-processing and visualization to assessment of the final solution.`,ge,ne,Ne=`Another time, Spyder proved to be very helpful in a project involving the analysis of ancient religious texts. -The task was to create a script that would check file integrity and the correctness of the texts themselves. -Because of the large size of the data sets, the script had to be efficient and able to handle a lot of edge cases. -A built-in ipdb debugger and script profiler (together with the Spyder-memory-profiler plugin) was very helpful in achieving this goal.`,xe,X,Re=`To me, this IDE is also a great tool for conducting workshops. -The ability to discuss algorithms while visualizing their results in a separate plot panel, without the need to switch windows, greatly facilitates presentations.`,_e,Z,We="What are the Spyder features that you like the most?",g,L,Ve=`One of my personal favorites is the Variable Explorer and its integration withJupyter notebooks through the Spyder-notebook plugin. -I also greatly appreciate the way that plugin automatically handles Jupyter server management.`,U,J,Ze="Integration with Kite is also a great feature that makes it easier to use dozens of packages without the need to memorize all their methods and dependencies.",N,Y,Ye="I also highly enjoy the ability to manage Spyder’s window layouts, especially when using large/many displays.",ze,we,Xe="How does Spyder make your workflow better?",Fe,ve,Be=`The possibility to work on code, track its performance, debug it, and analyze visualized data at the same time is invaluable. -It saves time and helps me to stay focused longer.`,q,ee,tt=`The great thing about Spyder is that it allows you to compare several solutions side by side. -We can easily test several sets of given parameter values and examine how that affects a given function by observing charts.`,Ae,He,ot=`Interactive window tools often simplify and speed up code analysis. -For example, checking class inheritance via the new object explorer is clearer and immediately gives more information than when doing it through the editor.`,De,Me,lt="What features would you like to see in the future in Spyder?",Ge,Pe,nt=`Possibly further integration with Git services would be a good idea. -Personally, I like to use Git directly from the Spyder-terminal plugin together with the Gitk repository browser. -However, many users prefer to have some features like comparing file versions, conflict solving, and auto update changes to the repository built into the IDE.`,$,te,at="Closing remarks",Qe,Le,it=`We would like to thank Michael Wiśniewski, Milosz Galganek and all the STX Next team for sharing their experiences with Spyder. -It is very important for us to provide a scientific tool that can make a positive impact on the amazing work our users are doing, and Michael’s testimony gives us great insight on how Spyder is making a difference in the real world and how to make it better for the future.`,Je,Ee,et=`If you have your own stories about how Spyder is helping you with a cool programming project, conduct critical scientific research, or use data to improve your community, we’d love to feature it here! -Feel free to reach out to us on Github, Gitter, Twitter, Facebook or our other platforms linked below if you’re interested. -We’re looking forward to hearing about what Spyder means to you! Happy Spydering!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("figure"),d.innerHTML=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),v=o("p"),v.textContent=ce,C=s(),b=o("p"),b.textContent=ke,oe=s(),T=o("h2"),T.textContent=fe,le=s(),_=o("img"),A=s(),S=o("p"),S.innerHTML=Te,O=s(),M=o("h3"),M.innerHTML=Se,P=s(),m=o("p"),m.textContent=be,me=s(),B=o("h3"),B.innerHTML=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),G=o("h3"),G.innerHTML=$e,R=s(),D=o("p"),D.innerHTML=Ue,ge=s(),ne=o("p"),ne.textContent=Ne,xe=s(),X=o("p"),X.textContent=Re,_e=s(),Z=o("h3"),Z.innerHTML=We,g=s(),L=o("p"),L.textContent=Ve,U=s(),J=o("p"),J.textContent=Ze,N=s(),Y=o("p"),Y.textContent=Ye,ze=s(),we=o("h3"),we.innerHTML=Xe,Fe=s(),ve=o("p"),ve.textContent=Be,q=s(),ee=o("p"),ee.textContent=tt,Ae=s(),He=o("p"),He.textContent=ot,De=s(),Me=o("h3"),Me.innerHTML=lt,Ge=s(),Pe=o("p"),Pe.textContent=nt,$=s(),te=o("h2"),te.textContent=at,Qe=s(),Le=o("p"),Le.textContent=it,Je=s(),Ee=o("p"),Ee.innerHTML=et,this.h()},l(h){n=l(h,"P",{"data-svelte-h":!0}),i(n)!=="svelte-kews3d"&&(n.innerHTML=f),p=r(h),d=l(h,"FIGURE",{class:!0,"data-svelte-h":!0}),i(d)!=="svelte-1xkp4l5"&&(d.innerHTML=a),u=r(h),c=l(h,"H2",{class:!0,"data-svelte-h":!0}),i(c)!=="svelte-fds9bo"&&(c.textContent=de),Q=r(h),w=l(h,"P",{"data-svelte-h":!0}),i(w)!=="svelte-tls944"&&(w.textContent=ye),V=r(h),v=l(h,"P",{"data-svelte-h":!0}),i(v)!=="svelte-11gdkg3"&&(v.textContent=ce),C=r(h),b=l(h,"P",{"data-svelte-h":!0}),i(b)!=="svelte-f7p1p0"&&(b.textContent=ke),oe=r(h),T=l(h,"H2",{class:!0,"data-svelte-h":!0}),i(T)!=="svelte-tyqqpr"&&(T.textContent=fe),le=r(h),_=l(h,"IMG",{src:!0,alt:!0,style:!0}),A=r(h),S=l(h,"P",{"data-svelte-h":!0}),i(S)!=="svelte-r3tlcv"&&(S.innerHTML=Te),O=r(h),M=l(h,"H3",{class:!0,"data-svelte-h":!0}),i(M)!=="svelte-1u0qnka"&&(M.innerHTML=Se),P=r(h),m=l(h,"P",{"data-svelte-h":!0}),i(m)!=="svelte-kb9g40"&&(m.textContent=be),me=r(h),B=l(h,"H3",{class:!0,"data-svelte-h":!0}),i(B)!=="svelte-3h0xdv"&&(B.innerHTML=Ie),pe=r(h),K=l(h,"P",{"data-svelte-h":!0}),i(K)!=="svelte-1ftru3t"&&(K.textContent=je),W=r(h),G=l(h,"H3",{class:!0,"data-svelte-h":!0}),i(G)!=="svelte-qx6ucj"&&(G.innerHTML=$e),R=r(h),D=l(h,"P",{"data-svelte-h":!0}),i(D)!=="svelte-fxaik2"&&(D.innerHTML=Ue),ge=r(h),ne=l(h,"P",{"data-svelte-h":!0}),i(ne)!=="svelte-1nrra0"&&(ne.textContent=Ne),xe=r(h),X=l(h,"P",{"data-svelte-h":!0}),i(X)!=="svelte-zabeqe"&&(X.textContent=Re),_e=r(h),Z=l(h,"H3",{class:!0,"data-svelte-h":!0}),i(Z)!=="svelte-15n1h4"&&(Z.innerHTML=We),g=r(h),L=l(h,"P",{"data-svelte-h":!0}),i(L)!=="svelte-18chqp3"&&(L.textContent=Ve),U=r(h),J=l(h,"P",{"data-svelte-h":!0}),i(J)!=="svelte-1govvtq"&&(J.textContent=Ze),N=r(h),Y=l(h,"P",{"data-svelte-h":!0}),i(Y)!=="svelte-1gpnatq"&&(Y.textContent=Ye),ze=r(h),we=l(h,"H3",{class:!0,"data-svelte-h":!0}),i(we)!=="svelte-t88324"&&(we.innerHTML=Xe),Fe=r(h),ve=l(h,"P",{"data-svelte-h":!0}),i(ve)!=="svelte-ql0rbr"&&(ve.textContent=Be),q=r(h),ee=l(h,"P",{"data-svelte-h":!0}),i(ee)!=="svelte-1g3s3gx"&&(ee.textContent=tt),Ae=r(h),He=l(h,"P",{"data-svelte-h":!0}),i(He)!=="svelte-xt4eh4"&&(He.textContent=ot),De=r(h),Me=l(h,"H3",{class:!0,"data-svelte-h":!0}),i(Me)!=="svelte-of4y7"&&(Me.innerHTML=lt),Ge=r(h),Pe=l(h,"P",{"data-svelte-h":!0}),i(Pe)!=="svelte-yme7yj"&&(Pe.textContent=nt),$=r(h),te=l(h,"H2",{class:!0,"data-svelte-h":!0}),i(te)!=="svelte-1mvchr8"&&(te.textContent=at),Qe=r(h),Le=l(h,"P",{"data-svelte-h":!0}),i(Le)!=="svelte-p7lgn8"&&(Le.textContent=it),Je=r(h),Ee=l(h,"P",{"data-svelte-h":!0}),i(Ee)!=="svelte-iukeoi"&&(Ee.innerHTML=et),this.h()},h(){x(d,"class","figure text-center"),x(c,"class","section"),x(T,"class","section"),Kt(_.src,se="profile.png")||x(_,"src",se),x(_,"alt","Michael Wiśniewski"),Jt(_,"margin-top","0.5em"),Jt(_,"width","200px"),Jt(_,"margin-right","1em"),Jt(_,"float","left"),x(M,"class","subsection"),x(B,"class","subsection"),x(G,"class","subsection"),x(Z,"class","subsection"),x(we,"class","subsection"),x(Me,"class","subsection"),x(te,"class","section")},m(h,E){t(h,n,E),t(h,p,E),t(h,d,E),t(h,u,E),t(h,c,E),t(h,Q,E),t(h,w,E),t(h,V,E),t(h,v,E),t(h,C,E),t(h,b,E),t(h,oe,E),t(h,T,E),t(h,le,E),t(h,_,E),t(h,A,E),t(h,S,E),t(h,O,E),t(h,M,E),t(h,P,E),t(h,m,E),t(h,me,E),t(h,B,E),t(h,pe,E),t(h,K,E),t(h,W,E),t(h,G,E),t(h,R,E),t(h,D,E),t(h,ge,E),t(h,ne,E),t(h,xe,E),t(h,X,E),t(h,_e,E),t(h,Z,E),t(h,g,E),t(h,L,E),t(h,U,E),t(h,J,E),t(h,N,E),t(h,Y,E),t(h,ze,E),t(h,we,E),t(h,Fe,E),t(h,ve,E),t(h,q,E),t(h,ee,E),t(h,Ae,E),t(h,He,E),t(h,De,E),t(h,Me,E),t(h,Ge,E),t(h,Pe,E),t(h,$,E),t(h,te,E),t(h,Qe,E),t(h,Le,E),t(h,Je,E),t(h,Ee,E)},p:yt,d(h){h&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(ze),e(we),e(Fe),e(ve),e(q),e(ee),e(Ae),e(He),e(De),e(Me),e(Ge),e(Pe),e($),e(te),e(Qe),e(Le),e(Je),e(Ee))}}}function On(k){let n,f;const p=[k[0],en];let d={$$slots:{default:[qn]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Dn=class extends ht{constructor(n){super(),ct(this,n,Un,On,pt,{})}};const Rn=Object.freeze(Object.defineProperty({__proto__:null,default:Dn,metadata:en},Symbol.toStringTag,{value:"Module"}));function Wn(k){let n,f=`For the last several years, Spyder has offered standalone installers for Windows and macOS which isolate Spyder’s runtime environment from users’ development environments. -This provides a more stable user experience than traditional conda or pip installation methods. -However, these standalone installers did not allow implementing desirable features, such as automatic incremental updates or installing external Spyder plugins like Spyder-Notebook and Spyder-Unittest. -Additionally, these standalone applications were limited to Windows and macOS.`,p,d,a=`Our new installers will provide a more consistent experience for users across all platforms, including Linux, while maintaining the benefits of an isolated runtime environment for Spyder. -Additionally, they are fully compatible with incremental updates and external plugin management. -Look for future announcements about these and other features!`,u,c,de=`So, what will you see with these new installers? -If you are a Windows user, you will continue to have a graphical interface guiding you through the installation process, and will likely not notice any difference from the previous experience.`,Q,w,ye='Windows installer
    Windows installer
    ',V,v,ce=`If you are a macOS user, you will now have a .pkg package installer instead of a .dmg disk image. -Rather than drag-and-drop the application to the Applications folder, the .pkg installer provides a graphical interface that will guide you through the installation process with more flexibility.`,C,b,ke='macOS installer
    macOS installer
    ',oe,T,fe=`If you are a Linux user, you will have an interactive shell script guiding you through the installation process. -This ensures it is compatible with as many distributions and desktop environments as possible.`,le,_,se='Linux installer
    Linux installer
    ',A,S,Te=`In all cases, you will not need to have Anaconda installed, nor do you need an existing Python environment; in fact, you don’t even need a preexisting Python installation! -These installers are completely self-contained. -Spyder will continue to include popular packages such as NumPy, SciPy, Pandas and Matplotlib so you can start coding out-of-the-box. -However, you will still be able to use Spyder with your existing conda, venv, Python.org, and other Python installers and environments as before. -Furthermore, only Spyder and its critical dependencies will be updated on each new release, which will make getting the latest version a lean and frictionless process.`,O,M,Se="The Spyder team is really excited about these new installers and the new features they will make possible, and we hope you enjoy them too!";return{c(){n=o("p"),n.textContent=f,p=s(),d=o("p"),d.textContent=a,u=s(),c=o("p"),c.textContent=de,Q=s(),w=o("figure"),w.innerHTML=ye,V=s(),v=o("p"),v.innerHTML=ce,C=s(),b=o("figure"),b.innerHTML=ke,oe=s(),T=o("p"),T.textContent=fe,le=s(),_=o("figure"),_.innerHTML=se,A=s(),S=o("p"),S.textContent=Te,O=s(),M=o("p"),M.textContent=Se,this.h()},l(P){n=l(P,"P",{"data-svelte-h":!0}),i(n)!=="svelte-17k8m9n"&&(n.textContent=f),p=r(P),d=l(P,"P",{"data-svelte-h":!0}),i(d)!=="svelte-1xb2iod"&&(d.textContent=a),u=r(P),c=l(P,"P",{"data-svelte-h":!0}),i(c)!=="svelte-1hp8xla"&&(c.textContent=de),Q=r(P),w=l(P,"FIGURE",{class:!0,"data-svelte-h":!0}),i(w)!=="svelte-13gh860"&&(w.innerHTML=ye),V=r(P),v=l(P,"P",{"data-svelte-h":!0}),i(v)!=="svelte-1gj7hcv"&&(v.innerHTML=ce),C=r(P),b=l(P,"FIGURE",{class:!0,"data-svelte-h":!0}),i(b)!=="svelte-1mh7l9c"&&(b.innerHTML=ke),oe=r(P),T=l(P,"P",{"data-svelte-h":!0}),i(T)!=="svelte-1rk3wa0"&&(T.textContent=fe),le=r(P),_=l(P,"FIGURE",{class:!0,"data-svelte-h":!0}),i(_)!=="svelte-qg20xv"&&(_.innerHTML=se),A=r(P),S=l(P,"P",{"data-svelte-h":!0}),i(S)!=="svelte-d1uzh2"&&(S.textContent=Te),O=r(P),M=l(P,"P",{"data-svelte-h":!0}),i(M)!=="svelte-6951fz"&&(M.textContent=Se),this.h()},h(){x(w,"class","figure text-center"),x(b,"class","figure text-center"),x(_,"class","figure text-center")},m(P,m){t(P,n,m),t(P,p,m),t(P,d,m),t(P,u,m),t(P,c,m),t(P,Q,m),t(P,w,m),t(P,V,m),t(P,v,m),t(P,C,m),t(P,b,m),t(P,oe,m),t(P,T,m),t(P,le,m),t(P,_,m),t(P,A,m),t(P,S,m),t(P,O,m),t(P,M,m)},p:yt,d(P){P&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M))}}}function Nn(k){let n,f;const p=[k[0],tn];let d={$$slots:{default:[Wn]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Vn=class extends ht{constructor(n){super(),ct(this,n,Qn,Nn,pt,{})}};const Bn=Object.freeze(Object.defineProperty({__proto__:null,default:Vn,metadata:tn},Symbol.toStringTag,{value:"Module"}));function Jn(k){let n,f=`During the last few years, Spyder has positioned itself as a popular data science IDE by combining interactive computing and ease of use with robust programming tools. -However, limited remote development support compared to some other IDEs has hindered adoption, as many users would like to work with data and code on high performance computing (HPC) clusters or cloud providers like AWS, GCP or DigitalOcean while developing on their personal computers. Adding such features would open up many new research possibilities by enabling the scientific community to tackle data and compute-intensive programming tasks from the ease and efficiency of their local development environments. Thanks to a two-year grant from the Chan Zuckerberg Initiative, we will be now able to address this shortcoming.`,p,d,a=`Right now, users have two main options to work remotely using a local IDE (aside from a purely web browser-based approach, which is sometimes not available or desirable): -They can either edit and execute their files in a terminal, which is not user-friendly; or start their IDE on the server and display it locally, which is typically slow, resource-intensive and difficult to set up. Furthermore, scientists typically find it difficult to sync remote files to the local machine and version control their code on the remote one, so remote changes are often lost, out of sync or difficult to integrate with code developed locally.`,u,c,de=`To address this situation, we will add and enhance support for local Spyder installations to run code and sync files on remote servers and clusters. -The first step in that direction is to enhance the existing remote code execution features in Spyder, as the current workflow is error-prone and quite cumbersome. -It requires users to install the Spyder-Kernels package on the remote machine, manually start a kernel on it and provide the kernel connection file to the local machine.`,Q,w,ye='Dialog to create a connection to a remote kernel
    Dialog to create a connection to a remote kernel
    ',V,v,ce="Since Spyder does not currently have a way to identify and store state changes, users currently have to repeat this costly setup process if there are any configuration modifications on the remote machine. Our plan is to fully automate this procedure so that Spyder can start and connect to a remote kernel automatically, with the user only needing to provide their SSH credentials and specify the Python environment they want to use.",C,b,ke='After that is implemented, we will add support to create and manage remote Python environments, explore the remote filesystem in the Files pane, and edit remote files in the Editor. This will make most of the core Spyder functionality work when developing code remotely. In addition, users will be able to easily start system shells connected to the server once we implement that capability in Spyder-Terminal. This will allow the remote execution of any operating system-level command or program, such as Git commit and push instructions.',oe,T,fe='Finally, we want to announce that we’re hiring for this project! We are looking for a Python developer with solid networking knowledge to help us implement the backend infrastructure that will power the features described above. This is a part time position to work as a contractor through NumFOCUS; it does not require experience with PyQt (although some would be beneficial) and it lasts until the end of the year, with the possibility to renew the contract for the next. Interested? Contact me to talk more about it!',le,_,se="We hope you will be as thrilled as we are by this fantastic news, and are looking forward to sharing more with you on this project in the near future!";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.textContent=a,u=s(),c=o("p"),c.textContent=de,Q=s(),w=o("figure"),w.innerHTML=ye,V=s(),v=o("p"),v.textContent=ce,C=s(),b=o("p"),b.innerHTML=ke,oe=s(),T=o("p"),T.innerHTML=fe,le=s(),_=o("p"),_.textContent=se,this.h()},l(A){n=l(A,"P",{"data-svelte-h":!0}),i(n)!=="svelte-1g1hb0u"&&(n.innerHTML=f),p=r(A),d=l(A,"P",{"data-svelte-h":!0}),i(d)!=="svelte-17bxxnw"&&(d.textContent=a),u=r(A),c=l(A,"P",{"data-svelte-h":!0}),i(c)!=="svelte-5icbhl"&&(c.textContent=de),Q=r(A),w=l(A,"FIGURE",{class:!0,"data-svelte-h":!0}),i(w)!=="svelte-aheqt6"&&(w.innerHTML=ye),V=r(A),v=l(A,"P",{"data-svelte-h":!0}),i(v)!=="svelte-11hbk73"&&(v.textContent=ce),C=r(A),b=l(A,"P",{"data-svelte-h":!0}),i(b)!=="svelte-16qirh4"&&(b.innerHTML=ke),oe=r(A),T=l(A,"P",{"data-svelte-h":!0}),i(T)!=="svelte-dehezw"&&(T.innerHTML=fe),le=r(A),_=l(A,"P",{"data-svelte-h":!0}),i(_)!=="svelte-17tyvcv"&&(_.textContent=se),this.h()},h(){x(w,"class","figure text-center")},m(A,S){t(A,n,S),t(A,p,S),t(A,d,S),t(A,u,S),t(A,c,S),t(A,Q,S),t(A,w,S),t(A,V,S),t(A,v,S),t(A,C,S),t(A,b,S),t(A,oe,S),t(A,T,S),t(A,le,S),t(A,_,S)},p:yt,d(A){A&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_))}}}function Kn(k){let n,f;const p=[k[0],nn];let d={$$slots:{default:[Jn]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Yn=class extends ht{constructor(n){super(),ct(this,n,Zn,Kn,pt,{})}};const Xn=Object.freeze(Object.defineProperty({__proto__:null,default:Yn,metadata:nn},Symbol.toStringTag,{value:"Module"}));function eo(k){let n,f='Juan Sebastian Bautista, C.A.M. Gerlach and Carlos Cordoba also contributed to this post.',p,d,a=`Spyder 5.4.0 was released recently, featuring some major enhancements to its Windows and macOS standalone installers. -You’ll now get more detailed feedback when new versions are available, and you can download and start the update to them from right within Spyder, instead of having to install them manually. -In this post, we’ll go over how these new update features work and how you can start using them!`,u,c,de='Before proceeding, we want to acknowledge that this work was made possible by a Small Development Grant awarded to Spyder by NumFOCUS, which has enabled us to hire a new developer (Juan Sebastian Bautista Rojas) to be in charge of all the implementation details.',Q,w,ye=`Before these improvements, Spyder already had a mechanism to detect more recent versions, but that functionality was very simple. -There was a pop-up dialog warning that a new version was available, but users had to follow a link to manually download the installer and then run it themselves:`,V,v,ce='Update available dialog from Spyder version 5.3.3 to 5.4.0 - Old update available dialog
    Update available dialog from Spyder version 5.3.3 to 5.4.0 - Old update available dialog
    ',C,b,ke="Once you upgrade to Spyder 5.4.0 or above, you’ll get this message on future Spyder updates:",oe,T,fe='Update available dialog from Spyder version 5.4.0 to 5.4.1 - New update available dialog
    Update available dialog from Spyder version 5.4.0 to 5.4.1 - New update available dialog
    ',le,_,se="Spyder will now be able to automatically download and install a new version for you, much like many other popular applications.",A,S,Te="After clicking “Yes” on that dialog, Spyder will display another with the status and percent completion of the download.",O,M,Se='Dialog downloading Spyder 5.4.1 installer
    Dialog downloading Spyder 5.4.1 installer
    ',P,m,be="If it is closed, the download will continue in the background, with its progress shown in a new status bar widget.",me,B,Ie='User clicking the update status in the taskbar to monitor the download status
    User clicking the update status in the taskbar to monitor the download status
    ',pe,K,je="After the download completes, Spyder will ask if you want to update immediately, cancel the update or defer it to when you close Spyder, to avoid interrupting your current workflow.",W,G,$e='Options available to run installer, run installer after Spyder closes or not run it at all
    Options available to run installer, run installer after Spyder closes or not run it at all
    ',R,D,Ue=`If you chose to update immediately, or once you close Spyder if you deferred the update, our installer will be started automatically. -On Windows, the installer has a series of automated prompts to close the current instance, uninstall the previous version and finally install the new one:`,ge,ne,Ne='Series of screenshots of installation steps, with arrows between: Yes/no dialog to close spyder, confirm close dialog, uninstall old version dialog, uninstalling status and finally installation wizard
    Series of screenshots of installation steps, with arrows between: Yes/no dialog to close spyder, confirm close dialog, uninstall old version dialog, uninstalling status and finally installation wizard
    ',xe,X,Re="On macOS, Spyder will automatically mount the new version’s DMG, so you can simply drag and drop it in the Applications folder",_e,Z,We='macOS new version's DMG mounted with a drag and drop dialog to move new Spyder version into the Application folder
    macOS new version's DMG mounted with a drag and drop dialog to move new Spyder version into the Application folder
    ',g,L,Ve="We hope these improvements will make updating to future Spyder versions smoother and more straightforward, so we can bring you new features and enhancements more easily in the future!";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),v=o("figure"),v.innerHTML=ce,C=s(),b=o("p"),b.textContent=ke,oe=s(),T=o("figure"),T.innerHTML=fe,le=s(),_=o("p"),_.textContent=se,A=s(),S=o("p"),S.textContent=Te,O=s(),M=o("figure"),M.innerHTML=Se,P=s(),m=o("p"),m.textContent=be,me=s(),B=o("figure"),B.innerHTML=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),G=o("figure"),G.innerHTML=$e,R=s(),D=o("p"),D.textContent=Ue,ge=s(),ne=o("figure"),ne.innerHTML=Ne,xe=s(),X=o("p"),X.textContent=Re,_e=s(),Z=o("figure"),Z.innerHTML=We,g=s(),L=o("p"),L.textContent=Ve,this.h()},l(U){n=l(U,"P",{"data-svelte-h":!0}),i(n)!=="svelte-1ftrv0b"&&(n.innerHTML=f),p=r(U),d=l(U,"P",{"data-svelte-h":!0}),i(d)!=="svelte-17vnzk9"&&(d.innerHTML=a),u=r(U),c=l(U,"P",{"data-svelte-h":!0}),i(c)!=="svelte-ioyfa7"&&(c.innerHTML=de),Q=r(U),w=l(U,"P",{"data-svelte-h":!0}),i(w)!=="svelte-16nh17h"&&(w.textContent=ye),V=r(U),v=l(U,"FIGURE",{class:!0,"data-svelte-h":!0}),i(v)!=="svelte-1safhda"&&(v.innerHTML=ce),C=r(U),b=l(U,"P",{"data-svelte-h":!0}),i(b)!=="svelte-v1njoz"&&(b.textContent=ke),oe=r(U),T=l(U,"FIGURE",{class:!0,"data-svelte-h":!0}),i(T)!=="svelte-g32z8f"&&(T.innerHTML=fe),le=r(U),_=l(U,"P",{"data-svelte-h":!0}),i(_)!=="svelte-1vp66pc"&&(_.textContent=se),A=r(U),S=l(U,"P",{"data-svelte-h":!0}),i(S)!=="svelte-ibvyz7"&&(S.textContent=Te),O=r(U),M=l(U,"FIGURE",{class:!0,"data-svelte-h":!0}),i(M)!=="svelte-8wnvxk"&&(M.innerHTML=Se),P=r(U),m=l(U,"P",{"data-svelte-h":!0}),i(m)!=="svelte-poq8kp"&&(m.textContent=be),me=r(U),B=l(U,"FIGURE",{class:!0,"data-svelte-h":!0}),i(B)!=="svelte-k7qkyq"&&(B.innerHTML=Ie),pe=r(U),K=l(U,"P",{"data-svelte-h":!0}),i(K)!=="svelte-12d0ric"&&(K.textContent=je),W=r(U),G=l(U,"FIGURE",{class:!0,"data-svelte-h":!0}),i(G)!=="svelte-emzd0y"&&(G.innerHTML=$e),R=r(U),D=l(U,"P",{"data-svelte-h":!0}),i(D)!=="svelte-pnhb8r"&&(D.textContent=Ue),ge=r(U),ne=l(U,"FIGURE",{class:!0,"data-svelte-h":!0}),i(ne)!=="svelte-1ctclnu"&&(ne.innerHTML=Ne),xe=r(U),X=l(U,"P",{"data-svelte-h":!0}),i(X)!=="svelte-7cjgq9"&&(X.textContent=Re),_e=r(U),Z=l(U,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Z)!=="svelte-17j5x5x"&&(Z.innerHTML=We),g=r(U),L=l(U,"P",{"data-svelte-h":!0}),i(L)!=="svelte-1443q5a"&&(L.textContent=Ve),this.h()},h(){x(v,"class","figure text-center"),x(T,"class","figure text-center"),x(M,"class","figure text-center"),x(B,"class","figure text-center"),x(G,"class","figure text-center"),x(ne,"class","figure text-center"),x(Z,"class","figure text-center")},m(U,J){t(U,n,J),t(U,p,J),t(U,d,J),t(U,u,J),t(U,c,J),t(U,Q,J),t(U,w,J),t(U,V,J),t(U,v,J),t(U,C,J),t(U,b,J),t(U,oe,J),t(U,T,J),t(U,le,J),t(U,_,J),t(U,A,J),t(U,S,J),t(U,O,J),t(U,M,J),t(U,P,J),t(U,m,J),t(U,me,J),t(U,B,J),t(U,pe,J),t(U,K,J),t(U,W,J),t(U,G,J),t(U,R,J),t(U,D,J),t(U,ge,J),t(U,ne,J),t(U,xe,J),t(U,X,J),t(U,_e,J),t(U,Z,J),t(U,g,J),t(U,L,J)},p:yt,d(U){U&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L))}}}function to(k){let n,f;const p=[k[0],on];let d={$$slots:{default:[eo]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let oo=class extends ht{constructor(n){super(),ct(this,n,no,to,pt,{})}};const lo=Object.freeze(Object.defineProperty({__proto__:null,default:oo,metadata:on},Symbol.toStringTag,{value:"Module"}));function io(k){let n,f='Automatic testing can increase the quality of your code. This is especially true of dynamic languages like Python, where a typo may only be noticed when that particular code path is executed. The new Spyder unittest plugin lets you run tests and view the results, all within the IDE. Here, I’ll demonstrate what it can do by way of a real-world example.',p,d,a='There are numerous unit testing frameworks available for Python, of which the plugin supports several of the most prominent. However, I’m using my favorite here, pytest. I prefer to write the tests in a separate file from the code, so that’s what I’ll do here.',u,c,de="Installing the plugin",Q,w,ye="If you use the Anaconda distribution (as we recommend), then you can install the Spyder unittest plugin with the command",V,v,ce,C='conda install -c spyder-ide spyder-unittest',b,ke,oe="This will also grab all its mandatory dependencies (including Spyder itself if necessary). The -c option instructs conda to use the custom channel spyder-ide run by the Spyder developers, since the plugin isn’t part of the default channel.",T,fe,le="Since we will be using the pytest framework, you also need to install it:",_,se,A,S='conda install pytest',Te,O,M="We’ll be running Python 3.6.4, Spyder 3.2.6, spyder-unittest 0.3.0 and pytest 3.3.2 for this example.",Se,P,m="Creating a project",be,me,B="I’ll be using separate files for the tests and the code to be tested, so let’s start by creating a project which will contain these files. In the Projects menu, click on New Project .... Enter a name for the project (in my example, prime_example), and under Location, select the directory in which to store it. Click Create.",Ie,pe,K=''Create new project' window
    'Create new project' window
    ',je,W,G="Writing code to be tested",$e,R,D="Create a Python file primes.py with the following function, which checks whether a number is prime:",Ue,ge,ne,Ne=`def is_prime(number): - """Return True if `number` is prime.""" - for element in range(2, number): - if number % element == 0: - return False - return True`,xe,X,Re='This example is taken from the blog post Improve Your Python: Understanding Unit Testing by Jeff Knupp.',_e,Z,We="Writing the tests",g,L,Ve="To test our is_prime function, we will write two tests: one to check that 5 is considered a prime, and one to ensure 4 is not. They can be implemented as follows:",U,J,Ze,N=`from primes import is_prime - -def test_five_is_prime(): - assert is_prime(5) == True - -def test_four_is_not_prime(): - assert is_prime(4) == False`,Y,Ye,ze="One of the cool things about pytest is that it can find the tests automatically, so you don’t need to mark them in any way. By default pytest uses a naming convention: all functions starting with test_ in files starting with test_ are considered test functions. We’ll save the code in the file test_primes.py which follows this naming convention.",we,Xe,Fe="In Spyder, the project now looks as follows:",ve,Be,q='Spyder window with code
    Spyder window with code
    ',ee,tt,Ae="Running the tests",He,ot,De="Now comes the fun part, where we actually get to use the plugin. In the Run menu, select Run unit tests. If you do not see this menu item, then the plugin is not installed; refer to the installation instructions above.",Me,lt,Ge="A window appears in which to configure the test run. One of the advantages of using a project is that it is automatically selected as the directory in which to find tests (another advantage is that Spyder will remember the testing configuration). So the only thing we need to do is select the test framework, which is pytest.",Pe,nt,$=''Configure tests' window
    'Configure tests' window
    ',te,at,Qe="Press the OK button to run the tests, and lo and behold, the results appear in a new pane called “Unit testing”:",Le,it,Je='Test results in Spyder windows
    Test results in Spyder windows
    ',Ee,et,h="As you can see, both tests pass. This means that our function correctly identifies 5 as prime and 4 as not prime.",E,st,ut="A failing test",Ke,rt,z="Unfortunately, our function is_prime has a bug. The number 1 is not considered a prime, but is_prime(1) in fact returns True. Therefore, to test for this, we add the following code to test_primes.py:",ie,dt,F,y=`def test_one_is_not_prime(): - assert is_prime(1) == False`,he,_t,Lt="Now, run the tests again by clicking on Run unit tests in the Run menu. Spyder remembers the configuration so you are not asked for it again. This time, the results are:",$t,Ct,zt='Test results in Spyder windows
    Test results in Spyder windows
    ',At,Tt,It="Our new test fails. The details clarify that is_prime(1) returns True, while the assert in the test function claims that it should return False.",Gt,St,jt="Where to go from here",qt,Pt,Ft="With this demonstration under your belt, you should be able to write tests for your code and run them with the plugin. For example, try fixing the bug so that 1 is correctly identified as non-prime, and run the tests again to check verify it.",I,ae,Et='Spyder-unittest supports not only the pytest framework, but also the nose framework and the unittest module in the Python standard library. It is still fairly new (as its version number suggests), so I look forward to your comments. Please send your ideas, bug reports and pull requests to the spyder-unittest repo on Github.',Qt,Ot,Ut="Happy Spydering with automatic tests!";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),v=o("pre"),ce=new Wt(!1),b=s(),ke=o("p"),ke.innerHTML=oe,T=s(),fe=o("p"),fe.innerHTML=le,_=s(),se=o("pre"),A=new Wt(!1),Te=s(),O=o("p"),O.innerHTML=M,Se=s(),P=o("h2"),P.textContent=m,be=s(),me=o("p"),me.innerHTML=B,Ie=s(),pe=o("figure"),pe.innerHTML=K,je=s(),W=o("h2"),W.textContent=G,$e=s(),R=o("p"),R.innerHTML=D,Ue=s(),ge=o("pre"),ne=new Wt(!1),xe=s(),X=o("p"),X.innerHTML=Re,_e=s(),Z=o("h2"),Z.textContent=We,g=s(),L=o("p"),L.innerHTML=Ve,U=s(),J=o("pre"),Ze=new Wt(!1),Y=s(),Ye=o("p"),Ye.innerHTML=ze,we=s(),Xe=o("p"),Xe.textContent=Fe,ve=s(),Be=o("figure"),Be.innerHTML=q,ee=s(),tt=o("h2"),tt.textContent=Ae,He=s(),ot=o("p"),ot.innerHTML=De,Me=s(),lt=o("p"),lt.innerHTML=Ge,Pe=s(),nt=o("figure"),nt.innerHTML=$,te=s(),at=o("p"),at.innerHTML=Qe,Le=s(),it=o("figure"),it.innerHTML=Je,Ee=s(),et=o("p"),et.innerHTML=h,E=s(),st=o("h2"),st.textContent=ut,Ke=s(),rt=o("p"),rt.innerHTML=z,ie=s(),dt=o("pre"),F=new Wt(!1),he=s(),_t=o("p"),_t.innerHTML=Lt,$t=s(),Ct=o("figure"),Ct.innerHTML=zt,At=s(),Tt=o("p"),Tt.innerHTML=It,Gt=s(),St=o("h2"),St.textContent=jt,qt=s(),Pt=o("p"),Pt.innerHTML=Ft,I=s(),ae=o("p"),ae.innerHTML=Et,Qt=s(),Ot=o("p"),Ot.textContent=Ut,this.h()},l(j){n=l(j,"P",{"data-svelte-h":!0}),i(n)!=="svelte-10px6oi"&&(n.innerHTML=f),p=r(j),d=l(j,"P",{"data-svelte-h":!0}),i(d)!=="svelte-k0bcfd"&&(d.innerHTML=a),u=r(j),c=l(j,"H2",{class:!0,"data-svelte-h":!0}),i(c)!=="svelte-kfy64d"&&(c.textContent=de),Q=r(j),w=l(j,"P",{"data-svelte-h":!0}),i(w)!=="svelte-16t9tw8"&&(w.textContent=ye),V=r(j),v=l(j,"PRE",{class:!0});var re=Ht(v);ce=Nt(re,!1),re.forEach(e),b=r(j),ke=l(j,"P",{"data-svelte-h":!0}),i(ke)!=="svelte-njy31v"&&(ke.innerHTML=oe),T=r(j),fe=l(j,"P",{"data-svelte-h":!0}),i(fe)!=="svelte-1sexflf"&&(fe.innerHTML=le),_=r(j),se=l(j,"PRE",{class:!0});var Dt=Ht(se);A=Nt(Dt,!1),Dt.forEach(e),Te=r(j),O=l(j,"P",{"data-svelte-h":!0}),i(O)!=="svelte-1xrf77s"&&(O.innerHTML=M),Se=r(j),P=l(j,"H2",{class:!0,"data-svelte-h":!0}),i(P)!=="svelte-txs3l7"&&(P.textContent=m),be=r(j),me=l(j,"P",{"data-svelte-h":!0}),i(me)!=="svelte-1245yxu"&&(me.innerHTML=B),Ie=r(j),pe=l(j,"FIGURE",{class:!0,"data-svelte-h":!0}),i(pe)!=="svelte-2xy4iv"&&(pe.innerHTML=K),je=r(j),W=l(j,"H2",{class:!0,"data-svelte-h":!0}),i(W)!=="svelte-1v4ahdm"&&(W.textContent=G),$e=r(j),R=l(j,"P",{"data-svelte-h":!0}),i(R)!=="svelte-1xjia97"&&(R.innerHTML=D),Ue=r(j),ge=l(j,"PRE",{class:!0});var Bt=Ht(ge);ne=Nt(Bt,!1),Bt.forEach(e),xe=r(j),X=l(j,"P",{"data-svelte-h":!0}),i(X)!=="svelte-16e9nmo"&&(X.innerHTML=Re),_e=r(j),Z=l(j,"H2",{class:!0,"data-svelte-h":!0}),i(Z)!=="svelte-16ooc6o"&&(Z.textContent=We),g=r(j),L=l(j,"P",{"data-svelte-h":!0}),i(L)!=="svelte-f8jn7"&&(L.innerHTML=Ve),U=r(j),J=l(j,"PRE",{class:!0});var Vt=Ht(J);Ze=Nt(Vt,!1),Vt.forEach(e),Y=r(j),Ye=l(j,"P",{"data-svelte-h":!0}),i(Ye)!=="svelte-eb8p40"&&(Ye.innerHTML=ze),we=r(j),Xe=l(j,"P",{"data-svelte-h":!0}),i(Xe)!=="svelte-1yiixpi"&&(Xe.textContent=Fe),ve=r(j),Be=l(j,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Be)!=="svelte-1ez7ois"&&(Be.innerHTML=q),ee=r(j),tt=l(j,"H2",{class:!0,"data-svelte-h":!0}),i(tt)!=="svelte-1h4aoe5"&&(tt.textContent=Ae),He=r(j),ot=l(j,"P",{"data-svelte-h":!0}),i(ot)!=="svelte-23q0zs"&&(ot.innerHTML=De),Me=r(j),lt=l(j,"P",{"data-svelte-h":!0}),i(lt)!=="svelte-109famq"&&(lt.innerHTML=Ge),Pe=r(j),nt=l(j,"FIGURE",{class:!0,"data-svelte-h":!0}),i(nt)!=="svelte-1a6vuog"&&(nt.innerHTML=$),te=r(j),at=l(j,"P",{"data-svelte-h":!0}),i(at)!=="svelte-ksdppo"&&(at.innerHTML=Qe),Le=r(j),it=l(j,"FIGURE",{class:!0,"data-svelte-h":!0}),i(it)!=="svelte-t6hiai"&&(it.innerHTML=Je),Ee=r(j),et=l(j,"P",{"data-svelte-h":!0}),i(et)!=="svelte-j36jai"&&(et.innerHTML=h),E=r(j),st=l(j,"H2",{class:!0,"data-svelte-h":!0}),i(st)!=="svelte-btgw7r"&&(st.textContent=ut),Ke=r(j),rt=l(j,"P",{"data-svelte-h":!0}),i(rt)!=="svelte-16ntxvs"&&(rt.innerHTML=z),ie=r(j),dt=l(j,"PRE",{class:!0});var Rt=Ht(dt);F=Nt(Rt,!1),Rt.forEach(e),he=r(j),_t=l(j,"P",{"data-svelte-h":!0}),i(_t)!=="svelte-uptah"&&(_t.innerHTML=Lt),$t=r(j),Ct=l(j,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Ct)!=="svelte-1qh21he"&&(Ct.innerHTML=zt),At=r(j),Tt=l(j,"P",{"data-svelte-h":!0}),i(Tt)!=="svelte-15ajb52"&&(Tt.innerHTML=It),Gt=r(j),St=l(j,"H2",{class:!0,"data-svelte-h":!0}),i(St)!=="svelte-1u9atu6"&&(St.textContent=jt),qt=r(j),Pt=l(j,"P",{"data-svelte-h":!0}),i(Pt)!=="svelte-rz1utf"&&(Pt.innerHTML=Ft),I=r(j),ae=l(j,"P",{"data-svelte-h":!0}),i(ae)!=="svelte-1e7smp0"&&(ae.innerHTML=Et),Qt=r(j),Ot=l(j,"P",{"data-svelte-h":!0}),i(Ot)!=="svelte-uewclk"&&(Ot.textContent=Ut),this.h()},h(){x(c,"class","section"),ce.a=null,x(v,"class","language-bash"),A.a=null,x(se,"class","language-bash"),x(P,"class","section"),x(pe,"class","figure text-center"),x(W,"class","section"),ne.a=null,x(ge,"class","language-python"),x(Z,"class","section"),Ze.a=null,x(J,"class","language-python"),x(Be,"class","figure text-center"),x(tt,"class","section"),x(nt,"class","figure text-center"),x(it,"class","figure text-center"),x(st,"class","section"),F.a=null,x(dt,"class","language-python"),x(Ct,"class","figure text-center"),x(St,"class","section")},m(j,re){t(j,n,re),t(j,p,re),t(j,d,re),t(j,u,re),t(j,c,re),t(j,Q,re),t(j,w,re),t(j,V,re),t(j,v,re),ce.m(C,v),t(j,b,re),t(j,ke,re),t(j,T,re),t(j,fe,re),t(j,_,re),t(j,se,re),A.m(S,se),t(j,Te,re),t(j,O,re),t(j,Se,re),t(j,P,re),t(j,be,re),t(j,me,re),t(j,Ie,re),t(j,pe,re),t(j,je,re),t(j,W,re),t(j,$e,re),t(j,R,re),t(j,Ue,re),t(j,ge,re),ne.m(Ne,ge),t(j,xe,re),t(j,X,re),t(j,_e,re),t(j,Z,re),t(j,g,re),t(j,L,re),t(j,U,re),t(j,J,re),Ze.m(N,J),t(j,Y,re),t(j,Ye,re),t(j,we,re),t(j,Xe,re),t(j,ve,re),t(j,Be,re),t(j,ee,re),t(j,tt,re),t(j,He,re),t(j,ot,re),t(j,Me,re),t(j,lt,re),t(j,Pe,re),t(j,nt,re),t(j,te,re),t(j,at,re),t(j,Le,re),t(j,it,re),t(j,Ee,re),t(j,et,re),t(j,E,re),t(j,st,re),t(j,Ke,re),t(j,rt,re),t(j,ie,re),t(j,dt,re),F.m(y,dt),t(j,he,re),t(j,_t,re),t(j,$t,re),t(j,Ct,re),t(j,At,re),t(j,Tt,re),t(j,Gt,re),t(j,St,re),t(j,qt,re),t(j,Pt,re),t(j,I,re),t(j,ae,re),t(j,Qt,re),t(j,Ot,re)},p:yt,d(j){j&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(b),e(ke),e(T),e(fe),e(_),e(se),e(Te),e(O),e(Se),e(P),e(be),e(me),e(Ie),e(pe),e(je),e(W),e($e),e(R),e(Ue),e(ge),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(Y),e(Ye),e(we),e(Xe),e(ve),e(Be),e(ee),e(tt),e(He),e(ot),e(Me),e(lt),e(Pe),e(nt),e(te),e(at),e(Le),e(it),e(Ee),e(et),e(E),e(st),e(Ke),e(rt),e(ie),e(dt),e(he),e(_t),e($t),e(Ct),e(At),e(Tt),e(Gt),e(St),e(qt),e(Pt),e(I),e(ae),e(Qt),e(Ot))}}}function ao(k){let n,f;const p=[k[0],ln];let d={$$slots:{default:[io]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let ro=class extends ht{constructor(n){super(),ct(this,n,so,ao,pt,{})}};const uo=Object.freeze(Object.defineProperty({__proto__:null,default:ro,metadata:ln},Symbol.toStringTag,{value:"Module"}));function po(k){let n,f=`Spyder’s Variable Explorer is a great tool which aids the development and debugging of Python code by displaying all variables from the current scope. -One thing the Variable Explorer is missing is the ability to display the value of arbitrary, user-definable expressions while debugging. -For example, it might be useful to see the value of a specific attribute of an object, or the value of an array at some index. -Such a feature is known as a “watchlist” or “watches” in other Integrated Development Environments (IDEs). -This blog post introduces the Watchlist plugin developed for Spyder.`,p,d,a="Features",u,c,de=`The watchlist consists of a user-definable list of expressions. -They are evaluated after each debugger step, and the result of the evaluation is displayed as a string. -This means that value = str(eval(expression)) is performed behind the scenes, and the result is shown in the plugin. -The watchlist is a very powerful tool, but this comes at a cost: Any side effect of an expression will affect the execution environment.`,Q,w,ye=`Expressions can be added, removed and modified at any time. -The value of an invalid expression is shown as <exception name>. -You can hover the mouse over the value to show the full exception message in a tooltip. -Values which have changed with the most recent debugger step are shown with a bold font, so you can recognise them more easily.`,V,v,ce="A picture is worth a thousand words, as they say, so here is a whole screencast of the Watchlist plugin in action:",C,b,ke=` - Sorry, your browser doesn’t support HTML5 video. Download the MP4 file`,oe,T,fe="Installation and going forwards",le,_,se="For conda or pip-installed Spyder, the plugin can be installed by running the following with your Spyder environment activated:",A,S,Te,O='pip install spyder-watchlist',M,Se,P='Feel free to send your ideas, bug reports and pull requests to the spyder-watchlist repository on GitHub.';return{c(){n=o("p"),n.textContent=f,p=s(),d=o("h2"),d.textContent=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),v=o("p"),v.textContent=ce,C=s(),b=o("video"),b.innerHTML=ke,oe=s(),T=o("h2"),T.textContent=fe,le=s(),_=o("p"),_.innerHTML=se,A=s(),S=o("pre"),Te=new Wt(!1),M=s(),Se=o("p"),Se.innerHTML=P,this.h()},l(m){n=l(m,"P",{"data-svelte-h":!0}),i(n)!=="svelte-do3eua"&&(n.textContent=f),p=r(m),d=l(m,"H2",{class:!0,"data-svelte-h":!0}),i(d)!=="svelte-6uqxh"&&(d.textContent=a),u=r(m),c=l(m,"P",{"data-svelte-h":!0}),i(c)!=="svelte-1tlqj16"&&(c.innerHTML=de),Q=r(m),w=l(m,"P",{"data-svelte-h":!0}),i(w)!=="svelte-1jwwz49"&&(w.innerHTML=ye),V=r(m),v=l(m,"P",{"data-svelte-h":!0}),i(v)!=="svelte-pztoku"&&(v.textContent=ce),C=r(m),b=l(m,"VIDEO",{"data-svelte-h":!0}),i(b)!=="svelte-18vyys8"&&(b.innerHTML=ke),oe=r(m),T=l(m,"H2",{class:!0,"data-svelte-h":!0}),i(T)!=="svelte-1ujtgcf"&&(T.textContent=fe),le=r(m),_=l(m,"P",{"data-svelte-h":!0}),i(_)!=="svelte-1fx19nf"&&(_.innerHTML=se),A=r(m),S=l(m,"PRE",{class:!0});var be=Ht(S);Te=Nt(be,!1),be.forEach(e),M=r(m),Se=l(m,"P",{"data-svelte-h":!0}),i(Se)!=="svelte-1sbgnrp"&&(Se.innerHTML=P),this.h()},h(){x(d,"class","section"),b.controls=!0,x(T,"class","section"),Te.a=null,x(S,"class","language-bash")},m(m,be){t(m,n,be),t(m,p,be),t(m,d,be),t(m,u,be),t(m,c,be),t(m,Q,be),t(m,w,be),t(m,V,be),t(m,v,be),t(m,C,be),t(m,b,be),t(m,oe,be),t(m,T,be),t(m,le,be),t(m,_,be),t(m,A,be),t(m,S,be),Te.m(O,S),t(m,M,be),t(m,Se,be)},p:yt,d(m){m&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(M),e(Se))}}}function ho(k){let n,f;const p=[k[0],an];let d={$$slots:{default:[po]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let fo=class extends ht{constructor(n){super(),ct(this,n,co,ho,pt,{})}};const mo=Object.freeze(Object.defineProperty({__proto__:null,default:fo,metadata:an},Symbol.toStringTag,{value:"Module"}));function yo(k){let n,f=`We’re excited to announce a significant update to QtConsole—the package that powers Spyder’s IPython Console interface—which the Spyder team maintains in collaboration with Project Jupyter. -Two of the biggest changes—user-selectable syntax highlighting themes, and enhanced external editor/IDE integration—are already built right into Spyder, so they’ll likely be of more interest if you use QtConsole standalone or with another editor/IDE. -However, most of the other changes should prove quite useful within Spyder as well, and many were in fact suggested and even implemented by users of our IDE. -Particular highlights include a block indent/unindent feature, Select-All (Ctrl-Shift-A) being made cell-specific, Ctrl-Backspace and Ctrl-Delete behaving more intelligently across whitespace and line boundaries, Ctrl-D allowing you to easily exit ipdb, input() and the like, and numerous smaller enhancements and bug fixes. -If you’d like to learn more about what’s new, please check out our article over on the Jupyter blog, where we go over the major changes in more detail, with plenty of screenshots and GIFs to illustrate each feature and how to use it.`,p,d,a='Screenshot of the QtConsole main window, with a new syntax highlighting theme applied
    Screenshot of the QtConsole main window, with a new syntax highlighting theme applied
    ',u,c,de=`To update to the newest version with your existing Spyder install, open an Anaconda Prompt (Windows), Terminal (macOS) or command line (Linux), activate the conda environment or virtualenv/venv of the Spyder install you are using, and run conda update qtconsole (or pip install --upgrade qtconsole, if not using Anaconda). -If you’d like to try QtConsole out separate from Spyder or integrate it in with your own editor or IDE, it is also available as a standalone GUI by running jupyter qtconsole from the Python environment where it or Spyder is installed.`,Q,w,ye=`If you have any questions, problems or feedback, we’d love to hear from you. Report issues, request features or participate in QtConsole’s development at its Github site, and check out its documentation for help using it. -For the latest Spyder news, releases, previews and tips, you can follow our Facebook and Twitter, and help support the development on Spyder and its sister projects like QtConsole on OpenCollective.`,V,v,ce=`Our new documentation and Spyder 4 beta 1 have been fully live for some time now; given the dramatic scale of the changes in both, their respective blog posts are still in the works. -We’ll also have an upcoming article on our official Spyder 4 feature roadmap and more, and Spyder 3.3.2 is due out soon, so keep in right here for your Spyder fix! -Until then, happy Spydering and enjoy QtConsole 4.4!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("figure"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),v=o("p"),v.textContent=ce,this.h()},l(C){n=l(C,"P",{"data-svelte-h":!0}),i(n)!=="svelte-tpudl9"&&(n.innerHTML=f),p=r(C),d=l(C,"FIGURE",{class:!0,"data-svelte-h":!0}),i(d)!=="svelte-122dptk"&&(d.innerHTML=a),u=r(C),c=l(C,"P",{"data-svelte-h":!0}),i(c)!=="svelte-1mdc2k8"&&(c.innerHTML=de),Q=r(C),w=l(C,"P",{"data-svelte-h":!0}),i(w)!=="svelte-stzk5x"&&(w.innerHTML=ye),V=r(C),v=l(C,"P",{"data-svelte-h":!0}),i(v)!=="svelte-18gepk8"&&(v.textContent=ce),this.h()},h(){x(d,"class","figure text-center")},m(C,b){t(C,n,b),t(C,p,b),t(C,d,b),t(C,u,b),t(C,c,b),t(C,Q,b),t(C,w,b),t(C,V,b),t(C,v,b)},p:yt,d(C){C&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v))}}}function go(k){let n,f;const p=[k[0],sn];let d={$$slots:{default:[yo]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let vo=class extends ht{constructor(n){super(),ct(this,n,wo,go,pt,{})}};const bo=Object.freeze(Object.defineProperty({__proto__:null,default:vo,metadata:sn},Symbol.toStringTag,{value:"Module"}));function xo(k){let n,f=`We’re pleased to release the next significant update in the stable Spyder 3 line, 3.3.0, along with its follow-on bugfix point release, 3.3.1, which is now live on PyPI and conda. -As always, you can update with conda update spyder in the Anaconda Prompt/Terminal/command line (on Windows/macOS/Linux, respectively) if on Anaconda (recommended), or pip update spyder otherwise. -If you run into any trouble, please carefully read our new installation documentation and consult our Troubleshooting Guide, which contains straightforward solutions to the vast majority of install-related issues users have reported.`,p,d,a=`As a new minor version (3.3), it makes several substantial changes to Spyder’s underpinnings that deserve some explanation, particularly the newly modular and portable console system that’s now separated into its own spyder-kernels package, opening up several new options for users running Spyder in different environments. -There’s also a brand-new error reporting process, new options in the IPython console, usability and performance improvements for the Variable Explorer, multiple new and changed dependency requirements and more, so there’s plenty to go over. -Finally, we’d like to briefly share a few final notes on this release and the latest on our plans going forward.`,u,c,de="Modular, flexible Console architecture",Q,w,ye=`The biggest single change with version 3.3.0/3.3.1 is a major overhaul of how IPython Consoles are started and managed in Spyder. -More precisely, we’ve moved all the kernel-related code from the Spyder core into a new modular package, spyder-kernels, available on the same distribution channels as Spyder itself (and installed automatically when updating to >=3.3.0). -While the most dramatic differences are under the hood, there’s plenty for everyone to like (and a few things to be aware of).`,V,v,ce=`Most importantly, for our everyday users, this makes Spyder much more flexible and powerful when working with multiple Python environments. -With the changes, Spyder itself does not need to be present in every environment you’d like to launch a kernel in; you can install the full IDE in whatever manner you prefer, and then set it to run code and consoles in any Anaconda environment, virtualenv/venv, or even a totally separate Python installation, so long as it has spyder-kernels package available. -Just set the path under Tools -> Preferences -> Python interpreter -> Use the following Python interpreter to the desired Python executable, and any new Console you open will start in the selected environment. -Check out our new wiki page on using environments with Spyder, for more details and tips on the subject, and keep an eye out for the further improvements coming in Spyder 4, which will greatly simplify the process and include full GUI-based project, package and environment management functionality built right in.`,C,b,ke='Python interpreter pane of the Spyder preferences dialog, with the 'Use the following Python interpreter' option highlighted
    Python interpreter pane of the Spyder preferences dialog, with the 'Use the following Python interpreter' option highlighted
    ',oe,T,fe=`Furthermore, the new package allows you to independently launch a kernel from anywhere (on your local computer, or a remote machine, server or even supercomputing cluster), connect to it with Spyder, and use it just like a “natively” started one. -After installing spyder-kernels on the host environment, you can start one with python -m spyder_kernels.console, and then enter the kernel’s 4-digit ID (and SSH connection details, if a remote machine) in the Spyder Connect to an existing kernel dialog under the IPython Console pane context- or “gear”-menu). -For more information on the process, see the Connecting to a Console section in our new documentation.`,le,_,se='A remote kernel running in a system console alongside Spyder's connect to kernel dialog
    A remote kernel running in a system console alongside Spyder's connect to kernel dialog
    ',A,S,Te=`Best of all, no matter how or where a kernel is started, every console now supports the full suite of Spyder’s features, including completion, the Variable Explorer, interactive Help and more, unlike before. -You can even mix and match internal, external and remote kernels in different environments, all in the same Spyder session, by either changing the Python interpreter preferences setting between starting a console, or starting and connecting to multiple consoles externally—or both! -Finally, for those of us (and those of you!) who help develop Spyder, the changes also make it easier to maintain and improve the code, and opens the door to one of the biggest features coming in Spyder 4: a new, full-featured debugging kernel that many of you have been asking for.`,O,M,Se=`The one key thing to remember: make sure you install the appropriate version of spyder-kernels for your version of Spyder. For most users, that will be spyder-kernels 0.x (currently 0.2.6) to match Spyder 3 on our stable 3.x branch; if testing a Spyder 4 beta or Github clone of the master branch, you’ll want the latest 1.x version of spyder-kernels (currently 1.1.0). -To install the correct build, you can use the following conda command,`,P,m,be,me='conda install spyder-kernels=<0 or 1>.*',B,Ie,pe="or with pip,",K,je,W,G='pip install spyder-kernels==<0 or 1>.*',$e,R,D=`replacing <0 or 1> with the major version number (0 or 1) to match your Spyder version. -Further details specific to installing a development build can be found in our Contributing Guide or our install documentation.`,Ue,ge,ne="New IPython Console completion and plotting features",Ne,xe,X='Advanced tab of the IPython console pane of Spyder's preferences, with the new Jedi completion section highlighted
    Advanced tab of the IPython console pane of Spyder's preferences, with the new Jedi completion section highlighted
    ',Re,_e,Z=`Spyder’s IPython Consoles can now use an advanced jedi-based completion engine that, similar to the Editor, analyzes your code without actually having to run it first. -This allows for advanced completion functionality on objects not yet assigned to a variable, similar to the existing “greedy” completion option, but without the need for dynamic evaluation. -It can be slow if working with very large Pandas DataFrames so it is disabled by default, but you can activate it under Tools -> Preferences -> IPython console -> Advanced Settings -> Jedi completion. -The descriptive text for the “greedy” completion option (also off by default) was also clarified, particularly to explain an IPython bug (not present in the jedi completer) with the feature and a consequent workaround.`,We,g,L='Graphics tab of the IPython console pane of Spyder's preferences, with the new 'Use a tight layout for inline plots' option highlighted
    Graphics tab of the IPython console pane of Spyder's preferences, with the new 'Use a tight layout for inline plots' option highlighted
    ',Ve,U,J=`We’ve also added a new plotting setting, Use a tight layout for inline plots, for the Inline Matplotlib graphics backend. -The default behavior (as in previous Spyder versions) sets bbox_inches to "tight" in Matplotlib calls when drawing to the inline backend. -However, if you prefer your own bbox_inches argument be respected even when plots are rendered in the Console, you can now do so by unchecking this option under Tools -> Preferences -> IPython console -> Graphics -> Inline backend.`,Ze,N,Y='Comparison of inline plots in Spyder's IPython Console with and without the 'tight layout' option set
    Comparison of inline plots in Spyder's IPython Console with and without the 'tight layout' option set
    ',Ye,ze,we="Better Variable Explorer usability and performance",Xe,Fe,ve=`We’ve made several changes and optimizations to greatly improve performance and efficiency in the Variable Explorer, to make it much faster and use less memory when opening and editing large objects. -In particular, we’ve fixed several major memory leaks when saving edited objects and closing the Variable Explorer dialogs through better length validation and garbage collection, and now skip the whole saving process entirely if the object was not modified (or cannot be modified). -We’ve also changed the names and functions of the Cancel and Ok buttons in Variable Explorer dialogs to be easier to understand and use. -They now feature a Close button which exits the dialog without saving any edits to the object’s contents, and a Save and Close button—automatically enabled once modifications are made—that commits the changes back to the kernel.`,Be,q,ee='A Variable Explorer DataFrame editor dialog, showing the new 'Close' and 'Save and Close' buttons
    A Variable Explorer DataFrame editor dialog, showing the new 'Close' and 'Save and Close' buttons
    ',tt,Ae,He="Streamlined error reporting experience",ot,De,Me=`While we hope you never need to use it, Spyder 3.3.0 includes a brand-new error handling backend that can submit bug reports directly through the Github API. -Based off Colin Duquesnoy’s excellent QCrash framework, this is a major improvement in speed, functionality, reliability and user convenience over the old approach (essentially just opening a link in a web browser). -Just as before, we won’t send anything without your explicit consent, you need a Github account (or create one for free), and you can view and edit the report on Github at any time.`,lt,Ge,Pe='The new authentication dialogs for submitting a Github report, with a username/password and a token option
    The new authentication dialogs for submitting a Github report, with a username/password and a token option
    ',nt,$,te=`You will need to enter your Github credentials the first time you submit a report. -For this, you can create an app token which only grants the very limited permissions needed to create a public issue report, can be easily revoked and re-created, and works with two-factor authentication (which you should be using); however, if you have not yet enabled 2FA, it also offers the option to enter your Github username and password. -Either way, Spyder can securely remember your login using the keyring package, so you only have to do this once on any given machine (if you select the “remember” option).`,at,Qe,Le='The new error reporting interface, with a title field, more descriptive text, and a polished UI
    The new error reporting interface, with a title field, more descriptive text, and a polished UI
    ',it,Je,Ee=`The dialog itself has also been made more functional and user-friendly, designed to help encourage high-quality, useful reports, and with more accessible, descriptive text. -The reports themselves also contain more useful data about the problem, and there is now a --safe-mode command-line option for Spyder to start in a clean, temporary config directly, so you can test to see if the problem reoccurs without the hassle of a spyder --reset, and play around with other settings without impacting your main configuration. Finally, we’ve fixed over 40 bugs in this release and further improved our documentation and troubleshooting material, so hopefully you’ll see this less often.`,et,h,E="Cleaner under the hood and more",st,ut,Ke=`Alongside the aforementioned internal changes, we’ve also made a number of other under-the-hood changes to clean out old cruft and improve maintainability, readability and performance of our codebase. -In particular, we’ve officially dropped support for Python 3.3, PyQt4, and PyQt5 under 5.5, all versions which have been end-of-life for years, and (aside from PyQt4) have minimal or no remaining Spyder users. -Furthermore, dropping PyQt4 in particular allows us to avoid or resolve a number of unfixable bugs specific to that version that have been causing problems for users, and opens the door to easier development in the future. -Finally, we moved our legacy documentation (and its many associated images) from the main Spyder codebase to its own repo, executed a major overhaul to greatly modernize and expand the text, images, style, and presentation, and now deploy them onto their own subdomain of our site, all of which we will discuss in a separate post coming soon.`,rt,z,ie="Even more fixes and refinements with Spyder 3.3.1",dt,F,y=`As a quick follow-on to the 3.3.0 release, Spyder 3.3.1 fixed a handful of bugs and minor issues with the new functionality and cleaned up several other existing ones, as well made a number of lower-level maintenance and development-oriented changes—over two dozen in all. -Furthermore, several user-visible enhancements made it into the release, primary aimed at improving usability. -To make it easier for users to manage multiple environments, the selection UI under Preferences > Python interpreter > Use the following Python interpreter remembers the executables you’ve previously selected and allows quick switching between them.`,he,_t,Lt='Python interpreter pane of Spyder's preferences, showing the new environment selection UI
    Python interpreter pane of Spyder's preferences, showing the new environment selection UI
    ',$t,Ct,zt=`In the Console, mundane ipdb commands are automatically filtered from the history, and the Editor now supports syntax highlighting for the new numeric literal syntax introduced in Python 3.6. -Spyder’s tutorial has been re-written for modern Spyder as well as to be clearer and more understandable, and overhauled for better and more consistent formatting and visuals with the rest of our documentation. -Finally, our update checker now consults the Anaconda defaults channel rather than PyPI to determine if an update is available, so it doesn’t bug the majority of our users on Anaconda until they can actually acquire the package.`,At,Tt,It="What to know and what’s next",Gt,St,jt=`If you have any questions, problems or feedback, we’d love to hear from you (just make sure you read our documentation, Troubleshooting Guide and the other previously-mentioned resources first)! -For general questions or install issues that aren’t addressed by the above, our Google Group and Gitter live chat are a good place to ask, while our Github is the place to report bugs, request features, or help develop Spyder itself (though make sure to search our issues list to ensure it hasn’t already been submitted). -Finally, you can follow our Facebook and Twitter for the latest Spyder news, releases, previews and tips, and help support Spyder development on OpenCollective.`,qt,Pt,Ft=`There’s plenty to look forward to in the coming days, with the official release of our all-new documentation (that’s already live now), Spyder 4 beta 1 having just been released on PyPI, conda-forge and our own spyder-ide channel (with a blog post coming soon), an upcoming article on our official Spyder 4 feature roadmap and more, so stay tuned! -In the meantime, happy Spydering and enjoy the new 3.3.1!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),v=o("p"),v.innerHTML=ce,C=s(),b=o("figure"),b.innerHTML=ke,oe=s(),T=o("p"),T.innerHTML=fe,le=s(),_=o("figure"),_.innerHTML=se,A=s(),S=o("p"),S.textContent=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("pre"),be=new Wt(!1),B=s(),Ie=o("p"),Ie.innerHTML=pe,K=s(),je=o("pre"),W=new Wt(!1),$e=s(),R=o("p"),R.innerHTML=D,Ue=s(),ge=o("h2"),ge.textContent=ne,Ne=s(),xe=o("figure"),xe.innerHTML=X,Re=s(),_e=o("p"),_e.innerHTML=Z,We=s(),g=o("figure"),g.innerHTML=L,Ve=s(),U=o("p"),U.innerHTML=J,Ze=s(),N=o("figure"),N.innerHTML=Y,Ye=s(),ze=o("h2"),ze.textContent=we,Xe=s(),Fe=o("p"),Fe.innerHTML=ve,Be=s(),q=o("figure"),q.innerHTML=ee,tt=s(),Ae=o("h2"),Ae.textContent=He,ot=s(),De=o("p"),De.innerHTML=Me,lt=s(),Ge=o("figure"),Ge.innerHTML=Pe,nt=s(),$=o("p"),$.innerHTML=te,at=s(),Qe=o("figure"),Qe.innerHTML=Le,it=s(),Je=o("p"),Je.innerHTML=Ee,et=s(),h=o("h2"),h.textContent=E,st=s(),ut=o("p"),ut.innerHTML=Ke,rt=s(),z=o("h2"),z.textContent=ie,dt=s(),F=o("p"),F.innerHTML=y,he=s(),_t=o("figure"),_t.innerHTML=Lt,$t=s(),Ct=o("p"),Ct.innerHTML=zt,At=s(),Tt=o("h2"),Tt.textContent=It,Gt=s(),St=o("p"),St.innerHTML=jt,qt=s(),Pt=o("p"),Pt.innerHTML=Ft,this.h()},l(I){n=l(I,"P",{"data-svelte-h":!0}),i(n)!=="svelte-mg9z24"&&(n.innerHTML=f),p=r(I),d=l(I,"P",{"data-svelte-h":!0}),i(d)!=="svelte-1ykc4ml"&&(d.innerHTML=a),u=r(I),c=l(I,"H2",{class:!0,"data-svelte-h":!0}),i(c)!=="svelte-1wmevih"&&(c.textContent=de),Q=r(I),w=l(I,"P",{"data-svelte-h":!0}),i(w)!=="svelte-4zemt9"&&(w.innerHTML=ye),V=r(I),v=l(I,"P",{"data-svelte-h":!0}),i(v)!=="svelte-nnkqp3"&&(v.innerHTML=ce),C=r(I),b=l(I,"FIGURE",{class:!0,"data-svelte-h":!0}),i(b)!=="svelte-194if7y"&&(b.innerHTML=ke),oe=r(I),T=l(I,"P",{"data-svelte-h":!0}),i(T)!=="svelte-19rgc6"&&(T.innerHTML=fe),le=r(I),_=l(I,"FIGURE",{class:!0,"data-svelte-h":!0}),i(_)!=="svelte-1nvsdud"&&(_.innerHTML=se),A=r(I),S=l(I,"P",{"data-svelte-h":!0}),i(S)!=="svelte-szwtzd"&&(S.textContent=Te),O=r(I),M=l(I,"P",{"data-svelte-h":!0}),i(M)!=="svelte-1g7rkrc"&&(M.innerHTML=Se),P=r(I),m=l(I,"PRE",{class:!0});var ae=Ht(m);be=Nt(ae,!1),ae.forEach(e),B=r(I),Ie=l(I,"P",{"data-svelte-h":!0}),i(Ie)!=="svelte-152yfdn"&&(Ie.innerHTML=pe),K=r(I),je=l(I,"PRE",{class:!0});var Et=Ht(je);W=Nt(Et,!1),Et.forEach(e),$e=r(I),R=l(I,"P",{"data-svelte-h":!0}),i(R)!=="svelte-1gxhmsj"&&(R.innerHTML=D),Ue=r(I),ge=l(I,"H2",{class:!0,"data-svelte-h":!0}),i(ge)!=="svelte-1fdwxup"&&(ge.textContent=ne),Ne=r(I),xe=l(I,"FIGURE",{class:!0,"data-svelte-h":!0}),i(xe)!=="svelte-5wb3bk"&&(xe.innerHTML=X),Re=r(I),_e=l(I,"P",{"data-svelte-h":!0}),i(_e)!=="svelte-1xagtyr"&&(_e.innerHTML=Z),We=r(I),g=l(I,"FIGURE",{class:!0,"data-svelte-h":!0}),i(g)!=="svelte-1kd2es5"&&(g.innerHTML=L),Ve=r(I),U=l(I,"P",{"data-svelte-h":!0}),i(U)!=="svelte-2p22vt"&&(U.innerHTML=J),Ze=r(I),N=l(I,"FIGURE",{class:!0,"data-svelte-h":!0}),i(N)!=="svelte-daoptk"&&(N.innerHTML=Y),Ye=r(I),ze=l(I,"H2",{class:!0,"data-svelte-h":!0}),i(ze)!=="svelte-ik1l0a"&&(ze.textContent=we),Xe=r(I),Fe=l(I,"P",{"data-svelte-h":!0}),i(Fe)!=="svelte-at3942"&&(Fe.innerHTML=ve),Be=r(I),q=l(I,"FIGURE",{class:!0,"data-svelte-h":!0}),i(q)!=="svelte-kwuqnj"&&(q.innerHTML=ee),tt=r(I),Ae=l(I,"H2",{class:!0,"data-svelte-h":!0}),i(Ae)!=="svelte-1pxsziw"&&(Ae.textContent=He),ot=r(I),De=l(I,"P",{"data-svelte-h":!0}),i(De)!=="svelte-y6otfj"&&(De.innerHTML=Me),lt=r(I),Ge=l(I,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Ge)!=="svelte-1uxbb4k"&&(Ge.innerHTML=Pe),nt=r(I),$=l(I,"P",{"data-svelte-h":!0}),i($)!=="svelte-2g04g9"&&($.innerHTML=te),at=r(I),Qe=l(I,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Qe)!=="svelte-1et96u3"&&(Qe.innerHTML=Le),it=r(I),Je=l(I,"P",{"data-svelte-h":!0}),i(Je)!=="svelte-nkjzz9"&&(Je.innerHTML=Ee),et=r(I),h=l(I,"H2",{class:!0,"data-svelte-h":!0}),i(h)!=="svelte-1ola6uf"&&(h.textContent=E),st=r(I),ut=l(I,"P",{"data-svelte-h":!0}),i(ut)!=="svelte-16df67"&&(ut.innerHTML=Ke),rt=r(I),z=l(I,"H2",{class:!0,"data-svelte-h":!0}),i(z)!=="svelte-i2ag27"&&(z.textContent=ie),dt=r(I),F=l(I,"P",{"data-svelte-h":!0}),i(F)!=="svelte-18tidt1"&&(F.innerHTML=y),he=r(I),_t=l(I,"FIGURE",{class:!0,"data-svelte-h":!0}),i(_t)!=="svelte-2erp4k"&&(_t.innerHTML=Lt),$t=r(I),Ct=l(I,"P",{"data-svelte-h":!0}),i(Ct)!=="svelte-26y4pa"&&(Ct.innerHTML=zt),At=r(I),Tt=l(I,"H2",{class:!0,"data-svelte-h":!0}),i(Tt)!=="svelte-e0owd2"&&(Tt.textContent=It),Gt=r(I),St=l(I,"P",{"data-svelte-h":!0}),i(St)!=="svelte-1a467wt"&&(St.innerHTML=jt),qt=r(I),Pt=l(I,"P",{"data-svelte-h":!0}),i(Pt)!=="svelte-18p7ian"&&(Pt.innerHTML=Ft),this.h()},h(){x(c,"class","section"),x(b,"class","figure text-center"),x(_,"class","figure text-center"),be.a=null,x(m,"class","language-bash"),W.a=null,x(je,"class","language-bash"),x(ge,"class","section"),x(xe,"class","figure text-center"),x(g,"class","figure text-center"),x(N,"class","figure text-center"),x(ze,"class","section"),x(q,"class","figure text-center"),x(Ae,"class","section"),x(Ge,"class","figure text-center"),x(Qe,"class","figure text-center"),x(h,"class","section"),x(z,"class","section"),x(_t,"class","figure text-center"),x(Tt,"class","section")},m(I,ae){t(I,n,ae),t(I,p,ae),t(I,d,ae),t(I,u,ae),t(I,c,ae),t(I,Q,ae),t(I,w,ae),t(I,V,ae),t(I,v,ae),t(I,C,ae),t(I,b,ae),t(I,oe,ae),t(I,T,ae),t(I,le,ae),t(I,_,ae),t(I,A,ae),t(I,S,ae),t(I,O,ae),t(I,M,ae),t(I,P,ae),t(I,m,ae),be.m(me,m),t(I,B,ae),t(I,Ie,ae),t(I,K,ae),t(I,je,ae),W.m(G,je),t(I,$e,ae),t(I,R,ae),t(I,Ue,ae),t(I,ge,ae),t(I,Ne,ae),t(I,xe,ae),t(I,Re,ae),t(I,_e,ae),t(I,We,ae),t(I,g,ae),t(I,Ve,ae),t(I,U,ae),t(I,Ze,ae),t(I,N,ae),t(I,Ye,ae),t(I,ze,ae),t(I,Xe,ae),t(I,Fe,ae),t(I,Be,ae),t(I,q,ae),t(I,tt,ae),t(I,Ae,ae),t(I,ot,ae),t(I,De,ae),t(I,lt,ae),t(I,Ge,ae),t(I,nt,ae),t(I,$,ae),t(I,at,ae),t(I,Qe,ae),t(I,it,ae),t(I,Je,ae),t(I,et,ae),t(I,h,ae),t(I,st,ae),t(I,ut,ae),t(I,rt,ae),t(I,z,ae),t(I,dt,ae),t(I,F,ae),t(I,he,ae),t(I,_t,ae),t(I,$t,ae),t(I,Ct,ae),t(I,At,ae),t(I,Tt,ae),t(I,Gt,ae),t(I,St,ae),t(I,qt,ae),t(I,Pt,ae)},p:yt,d(I){I&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(B),e(Ie),e(K),e(je),e($e),e(R),e(Ue),e(ge),e(Ne),e(xe),e(Re),e(_e),e(We),e(g),e(Ve),e(U),e(Ze),e(N),e(Ye),e(ze),e(Xe),e(Fe),e(Be),e(q),e(tt),e(Ae),e(ot),e(De),e(lt),e(Ge),e(nt),e($),e(at),e(Qe),e(it),e(Je),e(et),e(h),e(st),e(ut),e(rt),e(z),e(dt),e(F),e(he),e(_t),e($t),e(Ct),e(At),e(Tt),e(Gt),e(St),e(qt),e(Pt))}}}function ko(k){let n,f;const p=[k[0],rn];let d={$$slots:{default:[xo]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Co=class extends ht{constructor(n){super(),ct(this,n,_o,ko,pt,{})}};const To=Object.freeze(Object.defineProperty({__proto__:null,default:Co,metadata:rn},Symbol.toStringTag,{value:"Module"}));function So(k){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a=`After more than three years in development and more than 5000 commits from 60 authors around the world, Spyder 4 finally saw the light on December 5, 2019! -I decided to wait until now to write a blogpost about it because shortly after the initial release, we found several critical performance issues and some regressions with respect to Spyder 3, most of which are fixed now in version 4.1.3, released on May 8th 2020.`,u,c,de=`This new release comes with a lengthy list of user-requested features aimed at providing an enhanced development experience at the level of top general-purpose editors and IDEs, while strengthening Spyder’s specialized focus on scientific programming in Python. -The interested reader can take a look at some of them in previous blog posts, and in detail in our Changelog. -However, this post is not meant to describe those improvements, but to acknowledge all people that contributed to making Spyder 4 possible.`,Q,w,ye=`Spyder 4 is the first version developed with financial support from multiple companies and organizations, as well as donations by the international user community. -However, as a project, we couldn’t have been able to reach the level of maturity needed to receive and handle that support without the pivotal opportunities Travis Oliphant, former CEO of Anaconda and current leader of Quansight, gave me to work in Scientific Python. -Thanks to him, I became part of Anaconda Inc. in 2015; I was able to hire a small small team to improve Spyder within Anaconda in late 2016; and I was hired by Quansight to work solely on Spyder in 2018. -As with other projects in our ecosystem, such as Bokeh, Dask and Numba, Spyder benefited immensely from Travis’ trust in the role these efforts and ours could play in the future. -He certainly believed in the vision their maintainers worked so hard to make a reality, even if their beginnings were humble and their chances of survival uncertain. -Therefore, my first big acknowledgment is to Travis: thanks for giving us a chance!`,V,v,ce=`I also want to thank our community for its continued support. -As I’ve witnessed during my years as Spyder’s lead developer, many newbies and veterans alike keep choosing Spyder as their primary tool for scientific programming in Python. -It’s really you, the members of this fantastic community, which keep Spyder relevant in a highly competitive field by using and contributing back to it. -Furthermore, when the future looked grim, after my team and I were let go from Anaconda at the end of 2017 (not by Travis’ decision), a lot of users came to our rescue by making donations through our Open Collective page. -That, and a NumFOCUS development grant we received the next year, filled us with confidence and allowed us to continue with Spyder’s development in 2018, even after losing part of our team in the process.`,C,b,ke=`Last year it was also a pleasant surprise to learn that several companies were interested in seeing Spyder prosper and thrive. -Through Quansight Labs and its Community Work Order concept, we were able to sign contracts with two of them: TDK-Micronas and Kite. -Their support was critical to finish Spyder 4 because it allowed me to hire most of my old Anaconda team back, plus two new additions, to work full-time on the project. -Therefore, I can’t thank them enough for showing up just at the right time!`,oe,T,fe=`And finally, even when I am often seen as the public face of Spyder, due to my presence in our issue tracker and Stack Overflow, it’s really the Spyder team that is in charge of implementing new features and fixing most bugs. -So my last round of acknowledgments goes to them. -I was fortunate enough to convince some of the most talented Colombian software developers to work for the project, and to attract the interest of several other equally accomplished developers from around the world. -All of them did a hell of a job in this release!`,le,_,se=`Jean-Sébastien Gosselin contributed our new Plots pane in its entirety; Quentin Peter did a complete re-architecting of our IPython console, which enabled numerous improvements to our debugger; Jitse Niesen added auto-saving functionality to our editor; Brian Olsen contributed the initial implementation of the runcell command; and CAM Gerlach made significant improvements to our documentation. -Gonzalo Peña-Castellanos helped us to greatly improve the user experience of code completion and linting in the editor, implemented most of the enhancements to the Files pane, and refactored and improved our configuration system; Edgar Margffoy single-handedly created a client to support the same protocol used by VSCode to provide completion and linting for lots of programming languages, added code snippet completions and vastly improved code folding in the editor; Daniel Althviz developed the necessary infrastructure to install and use Kite smoothly within Spyder, and added the new object viewer to the Variable Explorer. -Finally, our junior developers, Stephannie Jimenez and Juanita Gomez, although still finding their way around our complex codebase, managed to make important contributions, such as improving the icons we use per file type in Files (Juanita), and allowing users to run code in an external system terminal on macOS (Stephannie).`,A,S,Te=`I hope you all enjoy the results of this massive effort! -And happy Spydering!!!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),v=o("p"),v.innerHTML=ce,C=s(),b=o("p"),b.innerHTML=ke,oe=s(),T=o("p"),T.innerHTML=fe,le=s(),_=o("p"),_.innerHTML=se,A=s(),S=o("p"),S.textContent=Te},l(O){n=l(O,"P",{"data-svelte-h":!0}),i(n)!=="svelte-9f6r3h"&&(n.innerHTML=f),p=r(O),d=l(O,"P",{"data-svelte-h":!0}),i(d)!=="svelte-118umf4"&&(d.innerHTML=a),u=r(O),c=l(O,"P",{"data-svelte-h":!0}),i(c)!=="svelte-19d7044"&&(c.innerHTML=de),Q=r(O),w=l(O,"P",{"data-svelte-h":!0}),i(w)!=="svelte-1t3rmts"&&(w.innerHTML=ye),V=r(O),v=l(O,"P",{"data-svelte-h":!0}),i(v)!=="svelte-q3u02e"&&(v.innerHTML=ce),C=r(O),b=l(O,"P",{"data-svelte-h":!0}),i(b)!=="svelte-ma1pu9"&&(b.innerHTML=ke),oe=r(O),T=l(O,"P",{"data-svelte-h":!0}),i(T)!=="svelte-epmo9k"&&(T.innerHTML=fe),le=r(O),_=l(O,"P",{"data-svelte-h":!0}),i(_)!=="svelte-wwph68"&&(_.innerHTML=se),A=r(O),S=l(O,"P",{"data-svelte-h":!0}),i(S)!=="svelte-1nf22io"&&(S.textContent=Te)},m(O,M){t(O,n,M),t(O,p,M),t(O,d,M),t(O,u,M),t(O,c,M),t(O,Q,M),t(O,w,M),t(O,V,M),t(O,v,M),t(O,C,M),t(O,b,M),t(O,oe,M),t(O,T,M),t(O,le,M),t(O,_,M),t(O,A,M),t(O,S,M)},p:yt,d(O){O&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S))}}}function Po(k){let n,f;const p=[k[0],un];let d={$$slots:{default:[So]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Mo=class extends ht{constructor(n){super(),ct(this,n,Ho,Po,pt,{})}};const Lo=Object.freeze(Object.defineProperty({__proto__:null,default:Mo,metadata:un},Symbol.toStringTag,{value:"Module"}));function Io(k){let n,f='This blogpost was originally published on the Quansight Labs website',p,d,a=`It has been almost two months since I joined Quansight in April, to start -working on Spyder maintenance and -development. So far, it has been a very exciting and rewarding journey under -the guidance of long time Spyder maintainer -Carlos Córdoba. -This is the first of a series of blog posts we will be writing to showcase -updates on the development of Spyder, new planned features and news on the -road to Spyder 4.0 and beyond.`,u,c,de=`First off, I would like to give a warm welcome to -Edgar Margffoy, -who recently joined Quansight and will be working with the Spyder team to -take its development even further. Edgar has been a core Spyder developer -for more than two years now, and we are very excited to have his (almost) -full-time commitment to the project.`,Q,w,ye="Spyder 4.0 Beta 2 released!",V,v,ce=`Since August 2018, when the first beta of the 4.x series was released, the -Spyder development team has been working hard on our next release. -Over the past year, we’ve implemented the long awaited full-interface dark theme; -overhauled our entire code completion and linting architecture to use the -Language Server Protocol, -opening the door to supporting many other languages in the future; -added a new Plots pane to view and manage the figures generated by your code; -and numerous other feature enhancements, bug fixes and internal improvements.`,C,b,ke="Dark theme",oe,T,fe=`A full-interface dark theme has been a -long awaited feature, -and is enabled by default in Spyder 4. You can still select the -light theme under Preferences > Appearance by either choosing a light-background -syntax-highlighting scheme, or changing Interface theme to Light.`,le,_,se='Screenshot of the Spyder main window with default panes, with the dark theme applied across the entire interface
    Screenshot of the Spyder main window with default panes, with the dark theme applied across the entire interface
    ',A,S,Te="Pretty, right :-) ?",O,M,Se=`This enhancement was made possible by the work of -Colin Duquesnoy, -Daniel Pizzeta -and their QDarkStyle -package. The Spyder team is now actively collaborating with Colin and Daniel -to pursue the release of QDarkStyle 3.x, which will be using Spyder’s -QtSASS -package to harness the power of SASS/SCSS and allow users to fully customize -the theme dynamically.`,P,m,be="Language Server Protocol architecture",me,B,Ie=`The Language Server Protocol (LSP) was created by Microsoft for Visual Studio Code to standardize how -development tools (e.g. editors and IDEs) communicate with -servers that provide code completion, linting and related facilities for -different programming languages. With LSP, as -they describe it:`,pe,K,je=`

    A single Language Server can be reused in multiple development tools, -which in turn can support multiple languages with minimal effort. -LSP is a win for both language providers and tooling vendors!

    `,W,G,$e=`As of Spyder 4 Beta 2, Spyder is now one of those tools! -We developed our own client to communicate with any server that implements -LSP v3.0 through a transport layer that uses ZeroMQ sockets. Code completion, -help generation, calltips, and real-time code/style analysis were rewritten to take advantage of this -architecture, and hover hints and docstring style analysis were added. -Further LSP features, such as workspace functionality and on the fly completion, will come in future betas.`,R,D,Ue='Hover hint and calltips
    Hover hint and calltips
    ',ge,ne,Ne=`Our current support is geared towards Python, using the great -Python-Language-Server -package. This has allowed us to provide fine-grained configurability for -Pycodestyle and -Pydocstyle options, and in future -betas we’ll also add the ability to use and configure code formatters like -YAPF and autopep8.`,xe,X,Re='Docstring style preferences
    Docstring style preferences
    ',_e,Z,We=`We support configuring LSP servers for additional, non-Python programming languages. -In the future, we hope to include out-of-the-box LSP integration for -some of the most popular languages in the scientific computing space, -including Fortran, Julia and C/C++.`,g,L,Ve='Spyder Completion and Linting preferences pane, showing example PyLS servers configured for Go and Julia
    Spyder Completion and Linting preferences pane, showing example PyLS servers configured for Go and Julia
    ',U,J,Ze="Plots pane",N,Y,Ye=`Similar to RStudio and other data science IDEs, -Spyder now includes a Plots pane, allowing you to browse all figures created during a -session. Beyond just viewing plots, you can also zoom, save/export, copy and remove -them.`,ze,we,Xe='Spyder main window, showing a figure displayed in the plots pane
    Spyder main window, showing a figure displayed in the plots pane
    ',Fe,ve,Be="But wait, there’s more!",q,ee,tt=`There are numerous additional features we’ve added in the previous 10 -months! These include:`,Ae,He,ot=`
  • Autosave and File Recovery in the editor, so Spyder can restore your -unsaved files in case it crashes or something else goes wrong.
  • Dedicated Sympy, Cython and Pylab consoles, making it -very simple to quickly explore and create code for these libraries.
  • OS level window pane undocking, allowing you to easily -organize panes across different monitors.
  • Support for multi-indexes -in our Dataframe viewer, making working with complex datasets much easier.
  • `,De,Me,lt=`We will describe all of these additional enhancements in greater detail in -future blog posts.`,Ge,Pe,nt="You can help!",$,te,at=`If would like to help us test this beta release and try out the new features it offers, -you can! You can install it with conda (if using Anaconda/Miniconda, as we recommend), -or with pip; we suggest doing so in a new Conda env or virtualenv/venv -so you can easily switch between your existing Spyder install and the Spyder 4 beta. -For example, to do so with conda, enter the following at the Terminal/Anaconda prompt:`,Qe,Le,it,Je=`$ conda create --channel spyder-ide --name spyder-beta spyder=4.0.0b2 -$ conda activate spyder-beta -$ spyder`,Ee,et,h=`This is a safe process because Spyder now uses a different configuration -directory for its development versions, so you can easily switch between our stable -and beta releases without worrying about one affecting the other.`,E,st,ut=`If you find any bugs, you can report them on our -issue tracker; -make sure to search for your error message or behavior before making a new one.`,Ke,rt,z="Closing remarks",ie,dt,F=`I would like to thank Quansight for the opportunity of working in open source -development on an awesome project like Spyder. I am also grateful to our -users, contributors -and core developers for helping -making Spyder amazing!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("h1"),w.textContent=ye,V=s(),v=o("p"),v.innerHTML=ce,C=s(),b=o("h2"),b.textContent=ke,oe=s(),T=o("p"),T.innerHTML=fe,le=s(),_=o("figure"),_.innerHTML=se,A=s(),S=o("p"),S.textContent=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("h2"),m.textContent=be,me=s(),B=o("p"),B.innerHTML=Ie,pe=s(),K=o("blockquote"),K.innerHTML=je,W=s(),G=o("p"),G.textContent=$e,R=s(),D=o("figure"),D.innerHTML=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("figure"),X.innerHTML=Re,_e=s(),Z=o("p"),Z.textContent=We,g=s(),L=o("figure"),L.innerHTML=Ve,U=s(),J=o("h2"),J.textContent=Ze,N=s(),Y=o("p"),Y.innerHTML=Ye,ze=s(),we=o("figure"),we.innerHTML=Xe,Fe=s(),ve=o("h2"),ve.textContent=Be,q=s(),ee=o("p"),ee.textContent=tt,Ae=s(),He=o("ul"),He.innerHTML=ot,De=s(),Me=o("p"),Me.textContent=lt,Ge=s(),Pe=o("h2"),Pe.textContent=nt,$=s(),te=o("p"),te.innerHTML=at,Qe=s(),Le=o("pre"),it=new Wt(!1),Ee=s(),et=o("p"),et.textContent=h,E=s(),st=o("p"),st.innerHTML=ut,Ke=s(),rt=o("h2"),rt.textContent=z,ie=s(),dt=o("p"),dt.innerHTML=F,this.h()},l(y){n=l(y,"P",{"data-svelte-h":!0}),i(n)!=="svelte-1wz2w3n"&&(n.innerHTML=f),p=r(y),d=l(y,"P",{"data-svelte-h":!0}),i(d)!=="svelte-1eabgyx"&&(d.innerHTML=a),u=r(y),c=l(y,"P",{"data-svelte-h":!0}),i(c)!=="svelte-1ihfkr1"&&(c.innerHTML=de),Q=r(y),w=l(y,"H1",{"data-svelte-h":!0}),i(w)!=="svelte-7kmlv3"&&(w.textContent=ye),V=r(y),v=l(y,"P",{"data-svelte-h":!0}),i(v)!=="svelte-4cvjwe"&&(v.innerHTML=ce),C=r(y),b=l(y,"H2",{class:!0,"data-svelte-h":!0}),i(b)!=="svelte-1a2hh4r"&&(b.textContent=ke),oe=r(y),T=l(y,"P",{"data-svelte-h":!0}),i(T)!=="svelte-gf6243"&&(T.innerHTML=fe),le=r(y),_=l(y,"FIGURE",{class:!0,"data-svelte-h":!0}),i(_)!=="svelte-1oivk0d"&&(_.innerHTML=se),A=r(y),S=l(y,"P",{"data-svelte-h":!0}),i(S)!=="svelte-1yijxxv"&&(S.textContent=Te),O=r(y),M=l(y,"P",{"data-svelte-h":!0}),i(M)!=="svelte-q9vdms"&&(M.innerHTML=Se),P=r(y),m=l(y,"H2",{class:!0,"data-svelte-h":!0}),i(m)!=="svelte-11mywl0"&&(m.textContent=be),me=r(y),B=l(y,"P",{"data-svelte-h":!0}),i(B)!=="svelte-1bk4269"&&(B.innerHTML=Ie),pe=r(y),K=l(y,"BLOCKQUOTE",{"data-svelte-h":!0}),i(K)!=="svelte-1j0l5ju"&&(K.innerHTML=je),W=r(y),G=l(y,"P",{"data-svelte-h":!0}),i(G)!=="svelte-awzqvi"&&(G.textContent=$e),R=r(y),D=l(y,"FIGURE",{class:!0,"data-svelte-h":!0}),i(D)!=="svelte-py4nbf"&&(D.innerHTML=Ue),ge=r(y),ne=l(y,"P",{"data-svelte-h":!0}),i(ne)!=="svelte-1cdnc4"&&(ne.innerHTML=Ne),xe=r(y),X=l(y,"FIGURE",{class:!0,"data-svelte-h":!0}),i(X)!=="svelte-10vkrym"&&(X.innerHTML=Re),_e=r(y),Z=l(y,"P",{"data-svelte-h":!0}),i(Z)!=="svelte-1yzljlb"&&(Z.textContent=We),g=r(y),L=l(y,"FIGURE",{class:!0,"data-svelte-h":!0}),i(L)!=="svelte-lnahf"&&(L.innerHTML=Ve),U=r(y),J=l(y,"H2",{class:!0,"data-svelte-h":!0}),i(J)!=="svelte-1jbtxpk"&&(J.textContent=Ze),N=r(y),Y=l(y,"P",{"data-svelte-h":!0}),i(Y)!=="svelte-r6n6cd"&&(Y.innerHTML=Ye),ze=r(y),we=l(y,"FIGURE",{class:!0,"data-svelte-h":!0}),i(we)!=="svelte-w19hjr"&&(we.innerHTML=Xe),Fe=r(y),ve=l(y,"H2",{class:!0,"data-svelte-h":!0}),i(ve)!=="svelte-66qyz8"&&(ve.textContent=Be),q=r(y),ee=l(y,"P",{"data-svelte-h":!0}),i(ee)!=="svelte-11dz64v"&&(ee.textContent=tt),Ae=r(y),He=l(y,"UL",{"data-svelte-h":!0}),i(He)!=="svelte-1u30ia1"&&(He.innerHTML=ot),De=r(y),Me=l(y,"P",{"data-svelte-h":!0}),i(Me)!=="svelte-r8brsp"&&(Me.textContent=lt),Ge=r(y),Pe=l(y,"H2",{class:!0,"data-svelte-h":!0}),i(Pe)!=="svelte-vp73cb"&&(Pe.textContent=nt),$=r(y),te=l(y,"P",{"data-svelte-h":!0}),i(te)!=="svelte-ye9ycf"&&(te.innerHTML=at),Qe=r(y),Le=l(y,"PRE",{class:!0});var he=Ht(Le);it=Nt(he,!1),he.forEach(e),Ee=r(y),et=l(y,"P",{"data-svelte-h":!0}),i(et)!=="svelte-1w248v4"&&(et.textContent=h),E=r(y),st=l(y,"P",{"data-svelte-h":!0}),i(st)!=="svelte-1mi7edq"&&(st.innerHTML=ut),Ke=r(y),rt=l(y,"H2",{class:!0,"data-svelte-h":!0}),i(rt)!=="svelte-1mvchr8"&&(rt.textContent=z),ie=r(y),dt=l(y,"P",{"data-svelte-h":!0}),i(dt)!=="svelte-19r1btb"&&(dt.innerHTML=F),this.h()},h(){x(b,"class","section"),x(_,"class","figure text-center"),x(m,"class","section"),x(D,"class","figure text-center"),x(X,"class","figure text-center"),x(L,"class","figure text-center"),x(J,"class","section"),x(we,"class","figure text-center"),x(ve,"class","section"),x(Pe,"class","section"),it.a=null,x(Le,"class","language-bash"),x(rt,"class","section")},m(y,he){t(y,n,he),t(y,p,he),t(y,d,he),t(y,u,he),t(y,c,he),t(y,Q,he),t(y,w,he),t(y,V,he),t(y,v,he),t(y,C,he),t(y,b,he),t(y,oe,he),t(y,T,he),t(y,le,he),t(y,_,he),t(y,A,he),t(y,S,he),t(y,O,he),t(y,M,he),t(y,P,he),t(y,m,he),t(y,me,he),t(y,B,he),t(y,pe,he),t(y,K,he),t(y,W,he),t(y,G,he),t(y,R,he),t(y,D,he),t(y,ge,he),t(y,ne,he),t(y,xe,he),t(y,X,he),t(y,_e,he),t(y,Z,he),t(y,g,he),t(y,L,he),t(y,U,he),t(y,J,he),t(y,N,he),t(y,Y,he),t(y,ze,he),t(y,we,he),t(y,Fe,he),t(y,ve,he),t(y,q,he),t(y,ee,he),t(y,Ae,he),t(y,He,he),t(y,De,he),t(y,Me,he),t(y,Ge,he),t(y,Pe,he),t(y,$,he),t(y,te,he),t(y,Qe,he),t(y,Le,he),it.m(Je,Le),t(y,Ee,he),t(y,et,he),t(y,E,he),t(y,st,he),t(y,Ke,he),t(y,rt,he),t(y,ie,he),t(y,dt,he)},p:yt,d(y){y&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(ze),e(we),e(Fe),e(ve),e(q),e(ee),e(Ae),e(He),e(De),e(Me),e(Ge),e(Pe),e($),e(te),e(Qe),e(Le),e(Ee),e(et),e(E),e(st),e(Ke),e(rt),e(ie),e(dt))}}}function jo(k){let n,f;const p=[k[0],dn];let d={$$slots:{default:[Io]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let zo=class extends ht{constructor(n){super(),ct(this,n,Eo,jo,pt,{})}};const Fo=Object.freeze(Object.defineProperty({__proto__:null,default:zo,metadata:dn},Symbol.toStringTag,{value:"Module"}));function $o(k){let n,f=`The Spyder team and collaborators hosted a Birds of a Feather (BoF) session at SciPy 2023, focused on moving beyond just scripts and notebooks toward truly reproducible, reusable research. -In Part 1 of this two-part series, we went over our motivation and goals for the session and the challenges that attendees brought up. -Now, we’ll review the tips, strategies, tools and platforms (including Spyder!) that participants shared as ways to address these obstacles. -We’d again like to thank Juanita Gomez for helping organize the BoF, Hari for his hard work compiling a summary of the outcomes, and everyone for attending and sharing such great ideas and insights!`,p,d,a="Making notebooks more reusable",u,c,de=`As far as reproducibility is concerned, it was brought up that it can be difficult to easily compare outputs between notebooks created by different researchers. -In response, one participant mentioned that VSCode recently made an improvement to the notebook diff viewers to more easily show just the code changes. -However, users stressed that it was critical to be able to diff the actual notebook output, not just its contents, and expressed a desire for a tool to cover that aspect.`,Q,w,ye=`In response to these concerns, others responded that notebooks should not be considered a unit of reproducible research, which should instead be a complete software project, including notebooks or scripts, an environment/requirements file and a record of commands to run there. -They recommended the 8-levels of Reproducibility and Conda Project to help guide and implement this.`,V,v,ce=`Additionally, attendees recommended Papermill, describing it as a very useful tool for parameterizing and executing notebooks programmatically. -Others suggested Devcontainers, to allow collaborating with a lab group or team in a shared environment and seeing everything on their screen, as well as Live Share in VSCode.`,C,b,ke=`Participants also expressed frustration that despite notebooks being intended to make programming more literate, this often does not happen in practice. -Beginners like the interactivity in notebooks because they don’t know how to use more advanced programming tools, but they don’t always take advantage of their readability features. -To address this, attendees stressed the importance of getting users accustomed to best practices that can also be helpful for reproducibility. -A participant mentioned a nbflake8 tool to lint notebooks, though it could not be easily found online, and others wished for a Ruff implementation (which at the time of this writing is now complete).`,oe,T,fe="Migrating notebooks to modules",le,_,se=`As one participant put it, “I love notebooks, and also love modules, and love the flow of code from notebooks into modules once it approaches that point.” -They went on to describe modules as a key unit of documented, tested code, but which doesn’t mean a lot on its own, whereas combined with a notebook, it gives them context and meaning. -For communities that may be afraid of modules, the participant recommended trying to make creating and transitioning to them easier, so users have fully importable, reusable Python code. -For students, notebooks often turn into a fancy scratch pad or script file, and once they get stuff that works, they can move that stuff out into modules, and then the notebooks start to morph into examples and the history of what the work was about that can be interpreted by other researchers.`,A,S,Te=`Other attendees chimed in with similar stories, with a NIST researcher mentioning this is an area they’d been working on for 10 years, with their approach being putting the stuff they want to be modular in a regular Python module, and then have a Jupyter notebook that shows an example using the code, such as in their IPRPy project. -To aid this process, participants suggested tools like the Autodocstring extension in VSCode and the docstring generator built into Spyder’s editor as great ways to reduce the friction for students when writing documentation, as they just add the triple quotes and the IDE generates a pre-filled docstring for them.`,O,M,Se=`An important reproducibility and reusability tool many cited for this was nbdev, which can allow users to develop their code and let it grow, and then eventually export the parts as modules at the end. -According to attendees, its documentation mostly talks about everything as packages, but it can also be used for individual notebooks and modules. -Some participants were initially hesitant to show it to their students since they’re early Python programmers, but it was actually quite easy for them, only requiring as little as one line of code at the end. -(Unfortunately as of this writing, it seems ndbdev development has stalled due to its expected commercial opportunities not materializing.) -Others asked for more documentation resources for this, since they were still learning Python themselves and would like to learn more about this and teach it to their students. -In addition to this very blog post and guide, one attendee brought up that they did a tutorial on that topic at SciPy, adding that the documentation is pretty intimidating but it would be great to have something more focused on smaller-scale usage.`,P,m,be=`As additional approaches, attendees mentioned they have their students use Jupytext, which helps the student to convert notebooks to Python files that can be committed to a Git repository. -This allows the code to be committed as a Python file, while allowing Jupyter to open it as a notebook and continue working on it. -Others brought up nb-convert, a command line tool that can convert notebooks to many different formats including a Python script, which is integrated into IDEs like Spyder, and that there is also a similar VSCode feature.`,me,B,Ie="Enabling reusable Python packages",pe,K,je=`When it comes to overall workflow, all agreed that going from a script or notebook to a reusable, installable Python package could be a major challenge, especially for students and non-programmers. -Attendees from NASA mentioned that for their projects everything has to be documented, and one of the things they’ve struggled with was converting a notebook to the type of report NASA is typically looking for. -Others described their workflow being as simple and “old school” as writing a aaa_readme.txt file where they record a diary of what they were doing on that project so if they have a break working on it, they can go back to those notes and remind themselves.`,W,G,$e=`To help address this, participants recommended a “really cool” tool called “Show Your Work” that comes out of the astrophysics community, which is primarily aimed at producing a paper at the end but also a Python package, and includes all the steps that show users’ work along the way. -It is built around a tool called Snakemake, which then sets up a template for both the Python package and the paper. -Additionally, attendees described it as having a “really helpful” guide for getting started and ensuring all of a user’s projects have the same structure. -It was brought up that Azel Donath, maintainer of Gammapy and speaker at SciPy 2023, published their Gammapy paper by using this tool.`,R,D,Ue=`As a followup, participants asked how this differed from Quarto, to which the response was that Quarto is much more general, whereas Show Your Work was specifically built to allow users to produce a PDF in LaTeX at the end. -Others mentioned Duecredit, a related tool for citing open source authors which looks at code and finds the authors (via Git commits) that wrote it.`,ge,ne,Ne=`Additionally, users expressed particular appreciation for the Cookiecutter template that Henry Schreiner III has for packaging. -They mentioned that a lot of their workflows are just messing around with their data, and having something like a package structure from the get go helps make it easier to not miss things. -As a followup, a nuclear engineer mentioned they often have two week projects leveraging Jupyter at their center, with a cookiecutter template that has Sphinx, and a directory structure, and metadata that looks familiar and has everything set up by default. -They described how this particularly helps ensure that different colleagues and team members are on the same page with doing things. -Finally, others suggested the data-driven Cookiecutter template, which provides an ordered structure for where things go, what they are named and how they are run.`,xe,X,Re="Next steps",_e,Z,We=`Now that we’ve gathered a wealth of community feedback, ideas and resources, we’re currently working to further translate these insights into an actionable guide (or series of such) on a community platform, to make it easier for everyone to apply them. -Keep an eye out for that, and until then, happy Spydering!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("h2"),d.textContent=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),v=o("p"),v.innerHTML=ce,C=s(),b=o("p"),b.innerHTML=ke,oe=s(),T=o("h2"),T.textContent=fe,le=s(),_=o("p"),_.textContent=se,A=s(),S=o("p"),S.innerHTML=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("p"),m.innerHTML=be,me=s(),B=o("h2"),B.textContent=Ie,pe=s(),K=o("p"),K.innerHTML=je,W=s(),G=o("p"),G.innerHTML=$e,R=s(),D=o("p"),D.innerHTML=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("h2"),X.textContent=Re,_e=s(),Z=o("p"),Z.textContent=We,this.h()},l(g){n=l(g,"P",{"data-svelte-h":!0}),i(n)!=="svelte-1rsron7"&&(n.innerHTML=f),p=r(g),d=l(g,"H2",{class:!0,"data-svelte-h":!0}),i(d)!=="svelte-1oivyqz"&&(d.textContent=a),u=r(g),c=l(g,"P",{"data-svelte-h":!0}),i(c)!=="svelte-usjxwz"&&(c.innerHTML=de),Q=r(g),w=l(g,"P",{"data-svelte-h":!0}),i(w)!=="svelte-hx5j5j"&&(w.innerHTML=ye),V=r(g),v=l(g,"P",{"data-svelte-h":!0}),i(v)!=="svelte-1089bxp"&&(v.innerHTML=ce),C=r(g),b=l(g,"P",{"data-svelte-h":!0}),i(b)!=="svelte-1ms9red"&&(b.innerHTML=ke),oe=r(g),T=l(g,"H2",{class:!0,"data-svelte-h":!0}),i(T)!=="svelte-paakq"&&(T.textContent=fe),le=r(g),_=l(g,"P",{"data-svelte-h":!0}),i(_)!=="svelte-173yon5"&&(_.textContent=se),A=r(g),S=l(g,"P",{"data-svelte-h":!0}),i(S)!=="svelte-1799m22"&&(S.innerHTML=Te),O=r(g),M=l(g,"P",{"data-svelte-h":!0}),i(M)!=="svelte-1upcstj"&&(M.innerHTML=Se),P=r(g),m=l(g,"P",{"data-svelte-h":!0}),i(m)!=="svelte-1x1q5a2"&&(m.innerHTML=be),me=r(g),B=l(g,"H2",{class:!0,"data-svelte-h":!0}),i(B)!=="svelte-18hhit8"&&(B.textContent=Ie),pe=r(g),K=l(g,"P",{"data-svelte-h":!0}),i(K)!=="svelte-m81akp"&&(K.innerHTML=je),W=r(g),G=l(g,"P",{"data-svelte-h":!0}),i(G)!=="svelte-eee2gu"&&(G.innerHTML=$e),R=r(g),D=l(g,"P",{"data-svelte-h":!0}),i(D)!=="svelte-185l8gx"&&(D.innerHTML=Ue),ge=r(g),ne=l(g,"P",{"data-svelte-h":!0}),i(ne)!=="svelte-1y8nhb4"&&(ne.innerHTML=Ne),xe=r(g),X=l(g,"H2",{class:!0,"data-svelte-h":!0}),i(X)!=="svelte-18hazx0"&&(X.textContent=Re),_e=r(g),Z=l(g,"P",{"data-svelte-h":!0}),i(Z)!=="svelte-w2m65z"&&(Z.textContent=We),this.h()},h(){x(d,"class","section"),x(T,"class","section"),x(B,"class","section"),x(X,"class","section")},m(g,L){t(g,n,L),t(g,p,L),t(g,d,L),t(g,u,L),t(g,c,L),t(g,Q,L),t(g,w,L),t(g,V,L),t(g,v,L),t(g,C,L),t(g,b,L),t(g,oe,L),t(g,T,L),t(g,le,L),t(g,_,L),t(g,A,L),t(g,S,L),t(g,O,L),t(g,M,L),t(g,P,L),t(g,m,L),t(g,me,L),t(g,B,L),t(g,pe,L),t(g,K,L),t(g,W,L),t(g,G,L),t(g,R,L),t(g,D,L),t(g,ge,L),t(g,ne,L),t(g,xe,L),t(g,X,L),t(g,_e,L),t(g,Z,L)},p:yt,d(g){g&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z))}}}function Ao(k){let n,f;const p=[k[0],pn];let d={$$slots:{default:[$o]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let qo=class extends ht{constructor(n){super(),ct(this,n,Go,Ao,pt,{})}};const Oo=Object.freeze(Object.defineProperty({__proto__:null,default:qo,metadata:pn},Symbol.toStringTag,{value:"Module"}));function Uo(k){let n,f=`The Spyder team and collaborators hosted a Birds of a Feather (BoF) session at SciPy 2023, focused on moving beyond just scripts and notebooks toward truly reproducible, reusable research. -Here, we’ll recap the motivation and goals of the BoF and share the common challenges that participants brought up with notebooks and moving toward reproducible, reusable research. -In our next post, we’ll follow up with some of the tips, tools, platforms and strategies attendees brought up as ways to address them, including using Spyder! -We’d like to thank Juanita Gomez for helping organize the BoF, Hari for his hard work compiling a summary of the outcomes, and everyone for attending and sharing such great ideas and insights!`,p,d,a="The trouble with notebooks",u,c,de=`The overwhelming majority of current scientific code is siloed away into one-off scripts and notebooks, where the only real mechanism for reusing and building upon them is good old copy and paste. -In order to keep “building upon the shoulders of giants”, we need to achieve not only reproducibility of individual results but also true reusability of research methods, that can be shared, built upon, and deployed by researchers across the world.`,Q,w,ye="In particular, scripts and notebooks are not typically very reproducible or reusable, as users generally cannot easily import them, specify dependencies, extend them or use them for another project (without copy/paste and managing multiple code versions by hand). Additionally, for notebooks specifically, authors and readers alike cannot easily track them in Git (with clean diffs), lint, type check, test or format them with standard Python tools, or interoperate with most other non-notebook-specific ecosystems.",V,v,ce=`To address these pressing issues, the Spyder team and interested community members convened a Birds of a Feather (BoF) session, “Beyond Notebooks: From reproducible to reusable research”, at the SciPy 2023 conference in Austin, TX, where we invited attendees to share their tools and workflows for reusable science, and explored how we can encourage users to expand beyond the current notebook-centric monoculture and toward more holistic, modular and interoperable approaches to conducting research and developing scientific code. -The goal was to not only share and discuss ideas and insights on the topic among BoF participants, which numbered over ≈50 interested community members, but also to help inform future guides and resources on this topic, to be hosted on central platforms like the Scientific Python organization, as is currently in progress.`,C,b,ke="Goals and themes",oe,T,fe="The BoF was motivated by the following key questions:",le,_,se="
  • What is reusable research and why is it important?
  • What tools and techniques do people have to share for effective reusable research?
  • How can we integrate reusable research into existing workflows?
  • How do we teach students and researchers about reusable research, and encourage them to practice it?
  • ",A,S,Te="While the resulting community ideas and insights centered around three related themes:",O,M,Se="
  • How can we make existing notebooks more readable, reproducible and reusable?
  • How can notebooks be progressively migrated to Python modules for basic reusability?
  • How can the community simplify and advocate the process of creating fully reusable Python packages?
  • ",P,m,be="Common challenges",me,B,Ie=`Participants commented that students mostly get introduced to notebooks through classes in contexts that are very different from how they would use them for their research, and they don’t have a good resource for that to hand to them if they have a question or are confused about that. -Others responded that they think that should be part of the curriculum, questioning why are people learning machine learning using Jupyter notebooks without actually learning how to use Jupyter notebooks themselves, and that many folks don’t come from a traditional computer science background and may not know about all these tools.`,pe,K,je='It was also remarked that some feel the fact that students are only exposed to notebooks really makes them not necessarily want to reach for other tools even when they would be more appropriate down the line, which participants suggested addressing by encouraging students to use IDEs like Spyder and JupyterLab that offer many features for reusability and reproducibility, but while also allowing them to take advantage of notebooks.',W,G,$e=`In particular, one former Spyder developer commented that they feel that we should show students how to use tools like debugging and make it easier for them to do that, but give them the choice whether they want to use those tools, and that the right approach is not necessarily telling them what tool to use, but having documentation and exposure to those tools so students can pick the best option for them. -Others remarked in response that we do want to give students options, though many might not need a full debugger.`,R,D,Ue=`One library worker mentioned that they often only have an hour to introduce users to Python, and use Google Collab notebooks because it makes it a lot easier for students to get started with Python over having to download and install an IDE, but then students tend to be familiar with that tool and continue to use it. -Another participant mentioned they are a big fan of using videos to help reach students over reading the documentation, as they feel students are much more likely to watch them.`,ge,ne,Ne="The discussion shifted to tools in larger organizations, with a participant commenting “It’s one thing when it’s students, but how do you do that when it’s your whole organizational culture that needs to change?” One participant responded saying she’s a student herself, and no one ever really talked to her about IDEs and explained what they were and why you’d want to use one, remarking that it’s important for teachers to actually train them to use the proper tools, but they have no idea when it comes to coworkers using these things.",xe,X,Re=`Another participant suggested “nerd sniping” as an effective way to handle that in larger organizations, which involves figuring out what is the biggest pain point for the team, usually something that should be automated, and then getting them to follow better practices by showing them how these tools can fix that problem. -Others agreed that it’s really about awareness, and if you show someone a cool tool most people will make the decision to adopt them on their own, but there will always be some who might not want that.`,_e,Z,We="Finally, it was brought up that students might have familiarity with Python or R, but Git is a completely different animal and is quite challenging to factor that into education; people like writers would really benefit from Git but it’s really hard to get them to use it, and people might not be aware of how inefficient the workflows they use are, because that’s all they know.",g,L,Ve="Next up",U,J,Ze=`Now that we’ve surfaced the reproducibility and reusability challenges that participants brought up at the BoF, check out our next blog post, where we share all the helpful tips, cool tools, awesome platforms and useful strategies attendees suggested to help address them. -Until then, happy Spydering!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("h2"),d.textContent=a,u=s(),c=o("p"),c.textContent=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),v=o("p"),v.innerHTML=ce,C=s(),b=o("h2"),b.textContent=ke,oe=s(),T=o("p"),T.textContent=fe,le=s(),_=o("ul"),_.innerHTML=se,A=s(),S=o("p"),S.textContent=Te,O=s(),M=o("ul"),M.innerHTML=Se,P=s(),m=o("h2"),m.textContent=be,me=s(),B=o("p"),B.textContent=Ie,pe=s(),K=o("p"),K.innerHTML=je,W=s(),G=o("p"),G.textContent=$e,R=s(),D=o("p"),D.innerHTML=Ue,ge=s(),ne=o("p"),ne.textContent=Ne,xe=s(),X=o("p"),X.textContent=Re,_e=s(),Z=o("p"),Z.textContent=We,g=s(),L=o("h2"),L.textContent=Ve,U=s(),J=o("p"),J.innerHTML=Ze,this.h()},l(N){n=l(N,"P",{"data-svelte-h":!0}),i(n)!=="svelte-1ph6npe"&&(n.innerHTML=f),p=r(N),d=l(N,"H2",{class:!0,"data-svelte-h":!0}),i(d)!=="svelte-1yzon88"&&(d.textContent=a),u=r(N),c=l(N,"P",{"data-svelte-h":!0}),i(c)!=="svelte-1tnobeu"&&(c.textContent=de),Q=r(N),w=l(N,"P",{"data-svelte-h":!0}),i(w)!=="svelte-hnmsep"&&(w.textContent=ye),V=r(N),v=l(N,"P",{"data-svelte-h":!0}),i(v)!=="svelte-165q07j"&&(v.innerHTML=ce),C=r(N),b=l(N,"H2",{class:!0,"data-svelte-h":!0}),i(b)!=="svelte-32889v"&&(b.textContent=ke),oe=r(N),T=l(N,"P",{"data-svelte-h":!0}),i(T)!=="svelte-17px8a5"&&(T.textContent=fe),le=r(N),_=l(N,"UL",{"data-svelte-h":!0}),i(_)!=="svelte-vf89vd"&&(_.innerHTML=se),A=r(N),S=l(N,"P",{"data-svelte-h":!0}),i(S)!=="svelte-1bfog1w"&&(S.textContent=Te),O=r(N),M=l(N,"UL",{"data-svelte-h":!0}),i(M)!=="svelte-1oppegz"&&(M.innerHTML=Se),P=r(N),m=l(N,"H2",{class:!0,"data-svelte-h":!0}),i(m)!=="svelte-1uxg9mh"&&(m.textContent=be),me=r(N),B=l(N,"P",{"data-svelte-h":!0}),i(B)!=="svelte-spy2hy"&&(B.textContent=Ie),pe=r(N),K=l(N,"P",{"data-svelte-h":!0}),i(K)!=="svelte-10m97u6"&&(K.innerHTML=je),W=r(N),G=l(N,"P",{"data-svelte-h":!0}),i(G)!=="svelte-47otnf"&&(G.textContent=$e),R=r(N),D=l(N,"P",{"data-svelte-h":!0}),i(D)!=="svelte-1uq8h27"&&(D.innerHTML=Ue),ge=r(N),ne=l(N,"P",{"data-svelte-h":!0}),i(ne)!=="svelte-1am33iv"&&(ne.textContent=Ne),xe=r(N),X=l(N,"P",{"data-svelte-h":!0}),i(X)!=="svelte-jbmlzp"&&(X.textContent=Re),_e=r(N),Z=l(N,"P",{"data-svelte-h":!0}),i(Z)!=="svelte-qfjoan"&&(Z.textContent=We),g=r(N),L=l(N,"H2",{class:!0,"data-svelte-h":!0}),i(L)!=="svelte-1yo5tes"&&(L.textContent=Ve),U=r(N),J=l(N,"P",{"data-svelte-h":!0}),i(J)!=="svelte-11j93d7"&&(J.innerHTML=Ze),this.h()},h(){x(d,"class","section"),x(b,"class","section"),x(m,"class","section"),x(L,"class","section")},m(N,Y){t(N,n,Y),t(N,p,Y),t(N,d,Y),t(N,u,Y),t(N,c,Y),t(N,Q,Y),t(N,w,Y),t(N,V,Y),t(N,v,Y),t(N,C,Y),t(N,b,Y),t(N,oe,Y),t(N,T,Y),t(N,le,Y),t(N,_,Y),t(N,A,Y),t(N,S,Y),t(N,O,Y),t(N,M,Y),t(N,P,Y),t(N,m,Y),t(N,me,Y),t(N,B,Y),t(N,pe,Y),t(N,K,Y),t(N,W,Y),t(N,G,Y),t(N,R,Y),t(N,D,Y),t(N,ge,Y),t(N,ne,Y),t(N,xe,Y),t(N,X,Y),t(N,_e,Y),t(N,Z,Y),t(N,g,Y),t(N,L,Y),t(N,U,Y),t(N,J,Y)},p:yt,d(N){N&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J))}}}function Do(k){let n,f;const p=[k[0],hn];let d={$$slots:{default:[Uo]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Wo=class extends ht{constructor(n){super(),ct(this,n,Ro,Do,pt,{})}};const No=Object.freeze(Object.defineProperty({__proto__:null,default:Wo,metadata:hn},Symbol.toStringTag,{value:"Module"}));function Qo(k){let n,f='IPython is a great improvement over the standard Python interpreter, bringing many enhancements such as autocompletion and “magic” commands. When debugging, however, many of these features become inaccessible. With Spyder, we aim to bring back these capabilities and more for a truly premium debugging experience! (And believe me, I use this debugger a lot, and not only because I write code that might contain bugs :p).',p,d,a="In this post, I will describe the debugger improvements we’ve already made in Spyder 4, as well as those that are already implemented or under review for Spyder 4.2 and beyond.",u,c,de="Make the debugger more like IPython",Q,w,ye=`IPython improves on the stock Python interpreter by adding syntax highlighting, completion, and history. -We have done the same for the debugger!`,V,v,ce='Debugger ipdb
    Debugger ipdb
    ',C,b,ke="The output is prettier (and easier to read) than plain black text, as it was in Spyder 3!",oe,T,fe=`Code completion and history for the debugger use the same functionality as the IPython console, so you should not notice any difference in behaviour. -Just press Tab to trigger autocomplete suggestions, and use the up and down arrows to recall previous commands.`,le,_,se='Debugger-autocomplete
    Debugger-autocomplete
    ',A,S,Te="This can result useful if you don’t know every library’s documentation by heart!",O,M,Se="Another improvement that we added is the ability to write multiline statements.",P,m,be='Debugger-multiline
    Debugger-multiline
    ',me,B,Ie="This is better than getting SyntaxError: unexpected EOF while parsing, as was the case in Spyder 3.",pe,K,je=`Finally, IPython has a lot of nice magic functions you can take advantage of. -I personally often use %matplotlib to switch between the qt5 and inline plotting backends, and %timeit to check how fast a given snippet of code is. -Now, these can be used in the debugger as well!`,W,G,$e='Debugger timeit
    Debugger timeit
    ',R,D,Ue="Core improvements",ge,ne,Ne=`When debugging code, a lot of time can be lost stepping through other Python packages. -To avoid that, enable the new Ignore Python libraries while debugging option in Spyder’s preferences under IPython Console > Debugger > Debug. -This will skip all the built-in and third-party Python modules and help you focus on your own code.`,xe,X,Re='Debugger preferences
    Debugger preferences
    ',_e,Z,We=`Another pain point for me is the mix of Pdb commands and Python statements when using the interactive prompt. -While debugging a script with a variable named step, for example, typing step in the Pdb prompt will not display the value of step, but will instead step through the code. -To avoid this, the Spyder 4.2 debugger will give precedence to Python expressions over Pdb commands; prefixing an expression with an exclamation mark will explicitly run it as a Pdb command. -This matches how the IPython Console handles clashes between magic functions and Python expressions, and contrasts with the previous behavior, where Pdb commands took precedence. -You can toggle this under IPython Console > Debugger > Debug in Spyder’s preferences.`,g,L,Ve='Debugger
    Debugger
    ',U,J,Ze="Here, you can see I can have a variable named step, and use it just as I would in the IPython console!",N,Y,Ye=`While debugging, the context changes constantly, which can be annoying if you need to use a certain module in each frame. -To address this, Spyder 4.2 will allow you to execute a snippet of code before any Pdb command. -I personally use import matplotlib.pyplot as plt so I can use Matplotlib anywhere with no extra commands! -You’ll be able to set this up for yourself under Preferences > IPython Console > Debugger > Run code while debugging.`,ze,we,Xe='Debugger modules
    Debugger modules
    ',Fe,ve,Be="Matplotlib support",q,ee,tt=`Speaking of using Matplotlib, two improvements will make your plotting life much easier while in the debugger. -First, if you use the inline backend, the Process execute events while debugging option in Preferences > IPython console > Debugger (on by defaults) enables plotting after each command.`,Ae,He,ot='Debugger plots
    Debugger plots
    ',De,Me,lt=`If you would rather use an interactive backend, Spyder 4.2 will allow you to do that too! -The event loop will be running while waiting for a Pdb input, which will bring Matplotlib figures to life!`,Ge,Pe,nt='Debugger interactive plots
    Debugger interactive plots
    ',$,te,at="For example, interactive figures are great to zoom and pan.",Qe,Le,it="Spyder Editor integration",Je,Ee,et=`By clicking next to the line number in the Editor, you can set a breakpoint to stop the debugger upon reaching that line. -With a Shift-click, you can set a conditional breakpoint that will only pause execution if an expression you write evaluates to True. -This is very useful if you are debugging a loop and want to go to a specific iteration, for example! -While debugging, the Editor will show you the line on which execution is stopped. -If you move around in the Editor, you can always go back to the current line by using the Pdb (w)here command.`,h,E,st='Editor breakpoints
    Editor breakpoints
    ',ut,Ke,rt=`Here, you can see the Spyder debugger is stopped at the breakpoint on line 385, which is highlighted. -The next line has a conditional breakpoint.`,z,ie,dt="Other Spyder panes",F,y,he=`Several other Spyder panes are useful while debugging. -Breakpoints gives you a list of all the breakpoints you have set throughout your code.`,_t,Lt,$t='Debugger breakpoint
    Debugger breakpoint
    ',Ct,zt,At="The Variable Explorer pane allows you to browse and modify the local namespace wherever the debugger is stopped.",Tt,It,Gt='Variable Explorer
    Variable Explorer
    ',St,jt,qt="The future",Pt,Ft,I=`I’m excited for the new Frames Explorer pane, which is currently almost ready for Spyder 5. -Usually while debugging, it can be hard to tell from where the current function was invoked, and one must often step up a long chain of calls to figure it out. -With the Frames Explorer, you have direct access to all the relevant call information, and you can jump around the stack easily!`,ae,Et,Qt='Frames Explorer
    Frames Explorer
    ',Ot,Ut,j="I can see where the current function was called from!",re,Dt,Bt=`The next challenge I will be tackling is to enable the debugger to stop in threads. -This is a bit difficult to implement because if two threads reach a breakpoint at the same time, only one of them can take control of the shell, leading to skipped breakpoints. -This might be okay, but I’m still figuring that out.`,Vt,Rt,Cn="Try out the new improvements in the Spyder debugger and let us know if they make your debugging easier!";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.textContent=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),v=o("figure"),v.innerHTML=ce,C=s(),b=o("p"),b.textContent=ke,oe=s(),T=o("p"),T.innerHTML=fe,le=s(),_=o("figure"),_.innerHTML=se,A=s(),S=o("p"),S.textContent=Te,O=s(),M=o("p"),M.textContent=Se,P=s(),m=o("figure"),m.innerHTML=be,me=s(),B=o("p"),B.innerHTML=Ie,pe=s(),K=o("p"),K.innerHTML=je,W=s(),G=o("figure"),G.innerHTML=$e,R=s(),D=o("h2"),D.textContent=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("figure"),X.innerHTML=Re,_e=s(),Z=o("p"),Z.innerHTML=We,g=s(),L=o("figure"),L.innerHTML=Ve,U=s(),J=o("p"),J.innerHTML=Ze,N=s(),Y=o("p"),Y.innerHTML=Ye,ze=s(),we=o("figure"),we.innerHTML=Xe,Fe=s(),ve=o("h2"),ve.textContent=Be,q=s(),ee=o("p"),ee.innerHTML=tt,Ae=s(),He=o("figure"),He.innerHTML=ot,De=s(),Me=o("p"),Me.textContent=lt,Ge=s(),Pe=o("figure"),Pe.innerHTML=nt,$=s(),te=o("p"),te.textContent=at,Qe=s(),Le=o("h2"),Le.textContent=it,Je=s(),Ee=o("p"),Ee.innerHTML=et,h=s(),E=o("figure"),E.innerHTML=st,ut=s(),Ke=o("p"),Ke.textContent=rt,z=s(),ie=o("h2"),ie.textContent=dt,F=s(),y=o("p"),y.textContent=he,_t=s(),Lt=o("figure"),Lt.innerHTML=$t,Ct=s(),zt=o("p"),zt.textContent=At,Tt=s(),It=o("figure"),It.innerHTML=Gt,St=s(),jt=o("h2"),jt.textContent=qt,Pt=s(),Ft=o("p"),Ft.textContent=I,ae=s(),Et=o("figure"),Et.innerHTML=Qt,Ot=s(),Ut=o("p"),Ut.textContent=j,re=s(),Dt=o("p"),Dt.textContent=Bt,Vt=s(),Rt=o("p"),Rt.textContent=Cn,this.h()},l(H){n=l(H,"P",{"data-svelte-h":!0}),i(n)!=="svelte-eq6djb"&&(n.innerHTML=f),p=r(H),d=l(H,"P",{"data-svelte-h":!0}),i(d)!=="svelte-14iqtkk"&&(d.textContent=a),u=r(H),c=l(H,"H2",{class:!0,"data-svelte-h":!0}),i(c)!=="svelte-1hhjgz9"&&(c.textContent=de),Q=r(H),w=l(H,"P",{"data-svelte-h":!0}),i(w)!=="svelte-1kytrz5"&&(w.textContent=ye),V=r(H),v=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(v)!=="svelte-19djdsg"&&(v.innerHTML=ce),C=r(H),b=l(H,"P",{"data-svelte-h":!0}),i(b)!=="svelte-17zug5m"&&(b.textContent=ke),oe=r(H),T=l(H,"P",{"data-svelte-h":!0}),i(T)!=="svelte-y5a8wy"&&(T.innerHTML=fe),le=r(H),_=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(_)!=="svelte-tgddrz"&&(_.innerHTML=se),A=r(H),S=l(H,"P",{"data-svelte-h":!0}),i(S)!=="svelte-1mhhocy"&&(S.textContent=Te),O=r(H),M=l(H,"P",{"data-svelte-h":!0}),i(M)!=="svelte-u84fw"&&(M.textContent=Se),P=r(H),m=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(m)!=="svelte-1tulz98"&&(m.innerHTML=be),me=r(H),B=l(H,"P",{"data-svelte-h":!0}),i(B)!=="svelte-hcqh6c"&&(B.innerHTML=Ie),pe=r(H),K=l(H,"P",{"data-svelte-h":!0}),i(K)!=="svelte-xkeuem"&&(K.innerHTML=je),W=r(H),G=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(G)!=="svelte-1yp66bv"&&(G.innerHTML=$e),R=r(H),D=l(H,"H2",{class:!0,"data-svelte-h":!0}),i(D)!=="svelte-1glm3mm"&&(D.textContent=Ue),ge=r(H),ne=l(H,"P",{"data-svelte-h":!0}),i(ne)!=="svelte-1wye7ed"&&(ne.innerHTML=Ne),xe=r(H),X=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(X)!=="svelte-dlhn8v"&&(X.innerHTML=Re),_e=r(H),Z=l(H,"P",{"data-svelte-h":!0}),i(Z)!=="svelte-1jix07i"&&(Z.innerHTML=We),g=r(H),L=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(L)!=="svelte-ubj6gh"&&(L.innerHTML=Ve),U=r(H),J=l(H,"P",{"data-svelte-h":!0}),i(J)!=="svelte-1ycdd4o"&&(J.innerHTML=Ze),N=r(H),Y=l(H,"P",{"data-svelte-h":!0}),i(Y)!=="svelte-1bo8rlr"&&(Y.innerHTML=Ye),ze=r(H),we=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(we)!=="svelte-1550t4g"&&(we.innerHTML=Xe),Fe=r(H),ve=l(H,"H2",{class:!0,"data-svelte-h":!0}),i(ve)!=="svelte-iagrp5"&&(ve.textContent=Be),q=r(H),ee=l(H,"P",{"data-svelte-h":!0}),i(ee)!=="svelte-1y3or5c"&&(ee.innerHTML=tt),Ae=r(H),He=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(He)!=="svelte-1ocqs61"&&(He.innerHTML=ot),De=r(H),Me=l(H,"P",{"data-svelte-h":!0}),i(Me)!=="svelte-za37fn"&&(Me.textContent=lt),Ge=r(H),Pe=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Pe)!=="svelte-18rxnju"&&(Pe.innerHTML=nt),$=r(H),te=l(H,"P",{"data-svelte-h":!0}),i(te)!=="svelte-1ue0ftz"&&(te.textContent=at),Qe=r(H),Le=l(H,"H2",{class:!0,"data-svelte-h":!0}),i(Le)!=="svelte-1tog8pa"&&(Le.textContent=it),Je=r(H),Ee=l(H,"P",{"data-svelte-h":!0}),i(Ee)!=="svelte-164gu6o"&&(Ee.innerHTML=et),h=r(H),E=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(E)!=="svelte-17nt143"&&(E.innerHTML=st),ut=r(H),Ke=l(H,"P",{"data-svelte-h":!0}),i(Ke)!=="svelte-1qwhc92"&&(Ke.textContent=rt),z=r(H),ie=l(H,"H2",{class:!0,"data-svelte-h":!0}),i(ie)!=="svelte-1x5u0ly"&&(ie.textContent=dt),F=r(H),y=l(H,"P",{"data-svelte-h":!0}),i(y)!=="svelte-9vkyuo"&&(y.textContent=he),_t=r(H),Lt=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Lt)!=="svelte-hnlrso"&&(Lt.innerHTML=$t),Ct=r(H),zt=l(H,"P",{"data-svelte-h":!0}),i(zt)!=="svelte-10y0bh"&&(zt.textContent=At),Tt=r(H),It=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(It)!=="svelte-lotakh"&&(It.innerHTML=Gt),St=r(H),jt=l(H,"H2",{class:!0,"data-svelte-h":!0}),i(jt)!=="svelte-1wpdo9o"&&(jt.textContent=qt),Pt=r(H),Ft=l(H,"P",{"data-svelte-h":!0}),i(Ft)!=="svelte-12unpsb"&&(Ft.textContent=I),ae=r(H),Et=l(H,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Et)!=="svelte-1d762if"&&(Et.innerHTML=Qt),Ot=r(H),Ut=l(H,"P",{"data-svelte-h":!0}),i(Ut)!=="svelte-146oq1y"&&(Ut.textContent=j),re=r(H),Dt=l(H,"P",{"data-svelte-h":!0}),i(Dt)!=="svelte-e80c8v"&&(Dt.textContent=Bt),Vt=r(H),Rt=l(H,"P",{"data-svelte-h":!0}),i(Rt)!=="svelte-193jkga"&&(Rt.textContent=Cn),this.h()},h(){x(c,"class","section"),x(v,"class","figure text-center"),x(_,"class","figure text-center"),x(m,"class","figure text-center"),x(G,"class","figure text-center"),x(D,"class","section"),x(X,"class","figure text-center"),x(L,"class","figure text-center"),x(we,"class","figure text-center"),x(ve,"class","section"),x(He,"class","figure text-center"),x(Pe,"class","figure text-center"),x(Le,"class","section"),x(E,"class","figure text-center"),x(ie,"class","section"),x(Lt,"class","figure text-center"),x(It,"class","figure text-center"),x(jt,"class","section"),x(Et,"class","figure text-center")},m(H,ue){t(H,n,ue),t(H,p,ue),t(H,d,ue),t(H,u,ue),t(H,c,ue),t(H,Q,ue),t(H,w,ue),t(H,V,ue),t(H,v,ue),t(H,C,ue),t(H,b,ue),t(H,oe,ue),t(H,T,ue),t(H,le,ue),t(H,_,ue),t(H,A,ue),t(H,S,ue),t(H,O,ue),t(H,M,ue),t(H,P,ue),t(H,m,ue),t(H,me,ue),t(H,B,ue),t(H,pe,ue),t(H,K,ue),t(H,W,ue),t(H,G,ue),t(H,R,ue),t(H,D,ue),t(H,ge,ue),t(H,ne,ue),t(H,xe,ue),t(H,X,ue),t(H,_e,ue),t(H,Z,ue),t(H,g,ue),t(H,L,ue),t(H,U,ue),t(H,J,ue),t(H,N,ue),t(H,Y,ue),t(H,ze,ue),t(H,we,ue),t(H,Fe,ue),t(H,ve,ue),t(H,q,ue),t(H,ee,ue),t(H,Ae,ue),t(H,He,ue),t(H,De,ue),t(H,Me,ue),t(H,Ge,ue),t(H,Pe,ue),t(H,$,ue),t(H,te,ue),t(H,Qe,ue),t(H,Le,ue),t(H,Je,ue),t(H,Ee,ue),t(H,h,ue),t(H,E,ue),t(H,ut,ue),t(H,Ke,ue),t(H,z,ue),t(H,ie,ue),t(H,F,ue),t(H,y,ue),t(H,_t,ue),t(H,Lt,ue),t(H,Ct,ue),t(H,zt,ue),t(H,Tt,ue),t(H,It,ue),t(H,St,ue),t(H,jt,ue),t(H,Pt,ue),t(H,Ft,ue),t(H,ae,ue),t(H,Et,ue),t(H,Ot,ue),t(H,Ut,ue),t(H,re,ue),t(H,Dt,ue),t(H,Vt,ue),t(H,Rt,ue)},p:yt,d(H){H&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(ze),e(we),e(Fe),e(ve),e(q),e(ee),e(Ae),e(He),e(De),e(Me),e(Ge),e(Pe),e($),e(te),e(Qe),e(Le),e(Je),e(Ee),e(h),e(E),e(ut),e(Ke),e(z),e(ie),e(F),e(y),e(_t),e(Lt),e(Ct),e(zt),e(Tt),e(It),e(St),e(jt),e(Pt),e(Ft),e(ae),e(Et),e(Ot),e(Ut),e(re),e(Dt),e(Vt),e(Rt))}}}function Vo(k){let n,f;const p=[k[0],cn];let d={$$slots:{default:[Qo]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Jo=class extends ht{constructor(n){super(),ct(this,n,Bo,Vo,pt,{})}};const Ko=Object.freeze(Object.defineProperty({__proto__:null,default:Jo,metadata:cn},Symbol.toStringTag,{value:"Module"}));function Zo(k){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a='Version 4.0 of Spyder is almost ready! It has been in the making for well over two years, and it contains lots of interesting new features. We will focus on the Files pane in this post, where we’ve made several improvements to the interface and file management tools.',u,c,de="Simplified interface",Q,w,ye="In order to simplify the Files pane’s interface, the columns corresponding to size and kind are hidden by default. To change which columns are shown, use the top-right pane menu or right-click the header directly.",V,v,ce='Pane Menu
    Pane Menu
    ',C,b,ke='Header Menu
    Header Menu
    ',oe,T,fe="Custom file associations",le,_,se="First, we added the ability to associate different external applications with specific file extensions they can open. Under the File associations tab of the Files preferences pane, you can add file types and set the external program used to open each of them by default.",A,S,Te='File associations
    File associations
    ',O,M,Se="Once you’ve set this up, files will automatically launch in the associated application when opened from the Files pane in Spyder. Additionally, when you right-click a file you will find an Open with... option that will show the application associated with this extension.",P,m,be='Open With
    Open With
    ',me,B,Ie="Single click open option",pe,K,je="We’ve added a new option to open files and directories with a single-click instead of a double-click, to suit different user preferences. To enable this option, go to the General tab of the Files preferences pane and check the option Single click to open files. With this setting, only a single click is needed to open a file in the Files pane either externally or in Spyder.",W,G,$e='Single click
    Single click
    ',R,D,Ue="Bear in mind that changing this configuration option will also affect the behaviour of the Project Explorer pane.",ge,ne,Ne="Open files externally",xe,X,Re="We added the option to open files with the operating system’s default program for the file type to the Files pane’s context menu. To use this feature, right-click any file in the Files pane and click Open externally",_e,Z,We='Open Externally
    Open Externally
    ',g,L,Ve=`Moreover, it is now possible to select more than one file on which to perform a context menu action, thanks to the Files pane’s new multi-select functionality. For this, press Ctrl (Cmd on macOS) or Shift while clicking on the files to select, just as you would in your operating system’s file manager (Windows Explorer, macOS Finder, etc). As you’d expect, Ctrl (Cmd) selects individual files one by one, while Shift selects all the files between the one you click and the one previously selected. -Once you’ve selected multiple files, it is now possible to execute many of the actions available in the context menu on all the selected files, including delete, rename, move, copy and open externally.`,U,J,Ze='Select Files
    Select Files
    ',N,Y,Ye="Absolute and relative path handling",ze,we,Xe="Spyder 4 now allows you to easily copy the absolute or relative paths of one or more files in the Files pane and pasting them as well-formatted text anywhere else in Spyder. Just right-clicking any file or files in the Files or Project panes and select the desired option.",Fe,ve,Be='Copy Path
    Copy Path
    ',q,ee,tt="Beyond just copying a single path, when pasting more than one Spyder will intelligently format it into a comma-separated collection of quoted strings, one path per line, that can be pasted directly into a list with no additional formatting needed.",Ae,He,ot='Multiple Paths
    Multiple Paths
    ',De,Me,lt="The Copy Absolute Path option gets us the complete path of each selected file, starting from the drive root.",Ge,Pe,nt='Absolute Path
    Absolute Path
    ',$,te,at="Alternatively, Copy Relative Path gets us the path of the file relative to the current working (displayed in the top right of the Spyder window).",Qe,Le,it='Relative Path
    Relative Path
    ',Je,Ee,et="File type icons",h,E,st="Finally, files in the Files pane are now displayed with icons depending on their type. There are custom icons for the source files of a variety of common programming languages including C C++, C Sharp, Java, Python, R, and Swift; for media types like JPEG, MP3, and M4A; and for other common extensions such as .txt and .tex. This allows you to identify file types with just a glance and select the appropriate application accordingly.",ut,Ke,rt='File Extensions
    File Extensions
    ',z,ie,dt='With these new features and UI options in Spyder’s Files pane, we hope you will enjoy the improved file management experience coming in Spyder 4! We would like to thank Quansight, our donors, and most of all our dedicated users and contributors from around the world for making these features possible. The final version will be released very soon, but if you’d like to try it out now and share your feedback, follow the instructions on our Github. Happy Spydering!';return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),v=o("figure"),v.innerHTML=ce,C=s(),b=o("figure"),b.innerHTML=ke,oe=s(),T=o("h2"),T.textContent=fe,le=s(),_=o("p"),_.textContent=se,A=s(),S=o("figure"),S.innerHTML=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("figure"),m.innerHTML=be,me=s(),B=o("h2"),B.textContent=Ie,pe=s(),K=o("p"),K.innerHTML=je,W=s(),G=o("figure"),G.innerHTML=$e,R=s(),D=o("p"),D.textContent=Ue,ge=s(),ne=o("h2"),ne.textContent=Ne,xe=s(),X=o("p"),X.innerHTML=Re,_e=s(),Z=o("figure"),Z.innerHTML=We,g=s(),L=o("p"),L.innerHTML=Ve,U=s(),J=o("figure"),J.innerHTML=Ze,N=s(),Y=o("h2"),Y.textContent=Ye,ze=s(),we=o("p"),we.innerHTML=Xe,Fe=s(),ve=o("figure"),ve.innerHTML=Be,q=s(),ee=o("p"),ee.textContent=tt,Ae=s(),He=o("figure"),He.innerHTML=ot,De=s(),Me=o("p"),Me.innerHTML=lt,Ge=s(),Pe=o("figure"),Pe.innerHTML=nt,$=s(),te=o("p"),te.innerHTML=at,Qe=s(),Le=o("figure"),Le.innerHTML=it,Je=s(),Ee=o("h2"),Ee.textContent=et,h=s(),E=o("p"),E.innerHTML=st,ut=s(),Ke=o("figure"),Ke.innerHTML=rt,z=s(),ie=o("p"),ie.innerHTML=dt,this.h()},l(F){n=l(F,"P",{"data-svelte-h":!0}),i(n)!=="svelte-azjo9p"&&(n.innerHTML=f),p=r(F),d=l(F,"P",{"data-svelte-h":!0}),i(d)!=="svelte-1vzrev8"&&(d.innerHTML=a),u=r(F),c=l(F,"H2",{class:!0,"data-svelte-h":!0}),i(c)!=="svelte-64n2sn"&&(c.textContent=de),Q=r(F),w=l(F,"P",{"data-svelte-h":!0}),i(w)!=="svelte-1qns2hr"&&(w.textContent=ye),V=r(F),v=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(v)!=="svelte-9wuqj"&&(v.innerHTML=ce),C=r(F),b=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(b)!=="svelte-wdgb7y"&&(b.innerHTML=ke),oe=r(F),T=l(F,"H2",{class:!0,"data-svelte-h":!0}),i(T)!=="svelte-bw5n4z"&&(T.textContent=fe),le=r(F),_=l(F,"P",{"data-svelte-h":!0}),i(_)!=="svelte-qnj996"&&(_.textContent=se),A=r(F),S=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(S)!=="svelte-s10rsk"&&(S.innerHTML=Te),O=r(F),M=l(F,"P",{"data-svelte-h":!0}),i(M)!=="svelte-sbs8mx"&&(M.innerHTML=Se),P=r(F),m=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(m)!=="svelte-xw38xi"&&(m.innerHTML=be),me=r(F),B=l(F,"H2",{class:!0,"data-svelte-h":!0}),i(B)!=="svelte-r9kw23"&&(B.textContent=Ie),pe=r(F),K=l(F,"P",{"data-svelte-h":!0}),i(K)!=="svelte-1slqqwg"&&(K.innerHTML=je),W=r(F),G=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(G)!=="svelte-1wsjq56"&&(G.innerHTML=$e),R=r(F),D=l(F,"P",{"data-svelte-h":!0}),i(D)!=="svelte-7e0gg6"&&(D.textContent=Ue),ge=r(F),ne=l(F,"H2",{class:!0,"data-svelte-h":!0}),i(ne)!=="svelte-897z0l"&&(ne.textContent=Ne),xe=r(F),X=l(F,"P",{"data-svelte-h":!0}),i(X)!=="svelte-14zm4mn"&&(X.innerHTML=Re),_e=r(F),Z=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Z)!=="svelte-16joah6"&&(Z.innerHTML=We),g=r(F),L=l(F,"P",{"data-svelte-h":!0}),i(L)!=="svelte-bhjge1"&&(L.innerHTML=Ve),U=r(F),J=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(J)!=="svelte-yxx0rl"&&(J.innerHTML=Ze),N=r(F),Y=l(F,"H2",{class:!0,"data-svelte-h":!0}),i(Y)!=="svelte-1em1ffi"&&(Y.textContent=Ye),ze=r(F),we=l(F,"P",{"data-svelte-h":!0}),i(we)!=="svelte-1vpx8f9"&&(we.innerHTML=Xe),Fe=r(F),ve=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(ve)!=="svelte-14lxbzm"&&(ve.innerHTML=Be),q=r(F),ee=l(F,"P",{"data-svelte-h":!0}),i(ee)!=="svelte-12somj2"&&(ee.textContent=tt),Ae=r(F),He=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(He)!=="svelte-15azole"&&(He.innerHTML=ot),De=r(F),Me=l(F,"P",{"data-svelte-h":!0}),i(Me)!=="svelte-1ngtco8"&&(Me.innerHTML=lt),Ge=r(F),Pe=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Pe)!=="svelte-1342mfq"&&(Pe.innerHTML=nt),$=r(F),te=l(F,"P",{"data-svelte-h":!0}),i(te)!=="svelte-d0kivk"&&(te.innerHTML=at),Qe=r(F),Le=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Le)!=="svelte-1tbenc9"&&(Le.innerHTML=it),Je=r(F),Ee=l(F,"H2",{class:!0,"data-svelte-h":!0}),i(Ee)!=="svelte-1pwpvz6"&&(Ee.textContent=et),h=r(F),E=l(F,"P",{"data-svelte-h":!0}),i(E)!=="svelte-uw20bn"&&(E.innerHTML=st),ut=r(F),Ke=l(F,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Ke)!=="svelte-ihi6la"&&(Ke.innerHTML=rt),z=r(F),ie=l(F,"P",{"data-svelte-h":!0}),i(ie)!=="svelte-z72452"&&(ie.innerHTML=dt),this.h()},h(){x(c,"class","section"),x(v,"class","figure text-center"),x(b,"class","figure text-center"),x(T,"class","section"),x(S,"class","figure text-center"),x(m,"class","figure text-center"),x(B,"class","section"),x(G,"class","figure text-center"),x(ne,"class","section"),x(Z,"class","figure text-center"),x(J,"class","figure text-center"),x(Y,"class","section"),x(ve,"class","figure text-center"),x(He,"class","figure text-center"),x(Pe,"class","figure text-center"),x(Le,"class","figure text-center"),x(Ee,"class","section"),x(Ke,"class","figure text-center")},m(F,y){t(F,n,y),t(F,p,y),t(F,d,y),t(F,u,y),t(F,c,y),t(F,Q,y),t(F,w,y),t(F,V,y),t(F,v,y),t(F,C,y),t(F,b,y),t(F,oe,y),t(F,T,y),t(F,le,y),t(F,_,y),t(F,A,y),t(F,S,y),t(F,O,y),t(F,M,y),t(F,P,y),t(F,m,y),t(F,me,y),t(F,B,y),t(F,pe,y),t(F,K,y),t(F,W,y),t(F,G,y),t(F,R,y),t(F,D,y),t(F,ge,y),t(F,ne,y),t(F,xe,y),t(F,X,y),t(F,_e,y),t(F,Z,y),t(F,g,y),t(F,L,y),t(F,U,y),t(F,J,y),t(F,N,y),t(F,Y,y),t(F,ze,y),t(F,we,y),t(F,Fe,y),t(F,ve,y),t(F,q,y),t(F,ee,y),t(F,Ae,y),t(F,He,y),t(F,De,y),t(F,Me,y),t(F,Ge,y),t(F,Pe,y),t(F,$,y),t(F,te,y),t(F,Qe,y),t(F,Le,y),t(F,Je,y),t(F,Ee,y),t(F,h,y),t(F,E,y),t(F,ut,y),t(F,Ke,y),t(F,z,y),t(F,ie,y)},p:yt,d(F){F&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(ze),e(we),e(Fe),e(ve),e(q),e(ee),e(Ae),e(He),e(De),e(Me),e(Ge),e(Pe),e($),e(te),e(Qe),e(Le),e(Je),e(Ee),e(h),e(E),e(ut),e(Ke),e(z),e(ie))}}}function Yo(k){let n,f;const p=[k[0],fn];let d={$$slots:{default:[Zo]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let el=class extends ht{constructor(n){super(),ct(this,n,Xo,Yo,pt,{})}};const tl=Object.freeze(Object.defineProperty({__proto__:null,default:el,metadata:fn},Symbol.toStringTag,{value:"Module"}));function nl(k){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a='Note: Kite is sponsoring the work discussed in this blog post, and in addition supports Spyder 4.0 development through a Quansight Labs Community Work Order.',u,c,de='As part of our next release, we are proud to announce an additional completion client for Spyder, Kite. Kite is a novel completion client that uses Machine Learning techniques to find and predict the best autocompletion for a given text. Additionally, it collects improved documentation for compiled packages, e.g. Matplotlib, NumPy and SciPy, that cannot be obtained easily by using traditional code analysis packages such as Jedi. Although Kite is not open source like Spyder, you can download it without charge at the Kite website.',Q,w,ye='Completions with Kite
    Completions with Kite
    ',V,v,ce="By incorporating Kite into Spyder, we will improve and provide the ultimate autocompletion and signature retrieval experience for most of the scientific Python stack and beyond. For instance, let’s take a look at the following PyTorch completion. While the Language Server Protocol server would not complete some of the functions, e.g. torch.linspace, Kite is able to return it successfully:",C,b,ke='Completions with Kite
    Completions with Kite
    ',oe,T,fe="Another benefit of using Kite is that of personalized completions, due to incremental ML analysis performed by the analysis engine, which keeps track of the keypresses and text writing style, alongside common usage patterns, this way users will get a personalized experience that improves over time.",le,_,se="We are working in collaboration with the Kite team to improve our autocompletion experience for the upcoming 4.0 release of Spyder. We plan to have all Kite features tested and ready to be used; that includes adding on-the-fly completions and code snippets for autocompletions.",A,S,Te="To start using Kite, you just need to install the Kite client from their web page. They offer client packages for Windows, Linux and MacOS that are easy to install. Once Kite is installed on the system, Spyder is able to detect it and start the Kite client automatically.",O,M,Se='Our new Kite client will work alongside the new Language Server Protocol and the usual fallback tokenizer for files that cannot be analyzed by either the LSP or Kite. Thus, Spyder will be able to provide an optimal autocompletion experience for Python and other languages. Besides that, it is possible to define the priority between different completion plugins to show a completion source result first over the other completion plugins.',P,m,be="Last but not least, as part of this novel client, we are introducing a new completion API that enables to write third-party completion clients for Spyder that require integration with the code editor and project manager. We offer calls to perform autocompletion, hover requests, signature hints, among others without any hassle. By leveraging this API, it should be possible to add completions and documentation suitable for domain-specific applications developed using Spyder.",me,B,Ie="The function calls and constants of the new completion API will be added to the Spyder documentation and should be available in the next release of Spyder. Additionally, we will provide code snippets support for both LSP and Kite for the next release - please stay tuned!",pe,K,je="We, the Spyder development team, hope that these new improvements accelerate your productivity, and we invite you to beta-test them to improve them even more. As always, we are open to your questions, issue reports and contributions on all of our communication channels and our Github repository.";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("figure"),w.innerHTML=ye,V=s(),v=o("p"),v.innerHTML=ce,C=s(),b=o("figure"),b.innerHTML=ke,oe=s(),T=o("p"),T.textContent=fe,le=s(),_=o("p"),_.textContent=se,A=s(),S=o("p"),S.textContent=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("p"),m.textContent=be,me=s(),B=o("p"),B.textContent=Ie,pe=s(),K=o("p"),K.textContent=je,this.h()},l(W){n=l(W,"P",{"data-svelte-h":!0}),i(n)!=="svelte-eotn7j"&&(n.innerHTML=f),p=r(W),d=l(W,"P",{"data-svelte-h":!0}),i(d)!=="svelte-1pywkh7"&&(d.innerHTML=a),u=r(W),c=l(W,"P",{"data-svelte-h":!0}),i(c)!=="svelte-1fbgn4i"&&(c.innerHTML=de),Q=r(W),w=l(W,"FIGURE",{class:!0,"data-svelte-h":!0}),i(w)!=="svelte-1lbfxp1"&&(w.innerHTML=ye),V=r(W),v=l(W,"P",{"data-svelte-h":!0}),i(v)!=="svelte-y2k5fd"&&(v.innerHTML=ce),C=r(W),b=l(W,"FIGURE",{class:!0,"data-svelte-h":!0}),i(b)!=="svelte-1vc6ltj"&&(b.innerHTML=ke),oe=r(W),T=l(W,"P",{"data-svelte-h":!0}),i(T)!=="svelte-1pqgtfu"&&(T.textContent=fe),le=r(W),_=l(W,"P",{"data-svelte-h":!0}),i(_)!=="svelte-f9uqef"&&(_.textContent=se),A=r(W),S=l(W,"P",{"data-svelte-h":!0}),i(S)!=="svelte-lthd3c"&&(S.textContent=Te),O=r(W),M=l(W,"P",{"data-svelte-h":!0}),i(M)!=="svelte-1rbdp3d"&&(M.innerHTML=Se),P=r(W),m=l(W,"P",{"data-svelte-h":!0}),i(m)!=="svelte-1jtibkh"&&(m.textContent=be),me=r(W),B=l(W,"P",{"data-svelte-h":!0}),i(B)!=="svelte-1duftot"&&(B.textContent=Ie),pe=r(W),K=l(W,"P",{"data-svelte-h":!0}),i(K)!=="svelte-6g4d07"&&(K.textContent=je),this.h()},h(){x(w,"class","figure text-center"),x(b,"class","figure text-center")},m(W,G){t(W,n,G),t(W,p,G),t(W,d,G),t(W,u,G),t(W,c,G),t(W,Q,G),t(W,w,G),t(W,V,G),t(W,v,G),t(W,C,G),t(W,b,G),t(W,oe,G),t(W,T,G),t(W,le,G),t(W,_,G),t(W,A,G),t(W,S,G),t(W,O,G),t(W,M,G),t(W,P,G),t(W,m,G),t(W,me,G),t(W,B,G),t(W,pe,G),t(W,K,G)},p:yt,d(W){W&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K))}}}function ol(k){let n,f;const p=[k[0],mn];let d={$$slots:{default:[nl]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let il=class extends ht{constructor(n){super(),ct(this,n,ll,ol,pt,{})}};const al=Object.freeze(Object.defineProperty({__proto__:null,default:il,metadata:mn},Symbol.toStringTag,{value:"Module"}));function sl(k){let n,f=`For the last couple of months, the Spyder team has been working on defining a new roadmap and submitting grant proposals to fund more features and improvements. -We are pleased to announce our roadmap for the rest of 2022, and that two proposals were funded!`,p,d,a="The roadmap",u,c,de=`Considering the importance of sharing a clear perspective of where the Spyder project is going and where we will be focusing our efforts over the coming months, the team has created an initial roadmap for the rest of 2022. -We prioritized the highlighted features and enhancements based on input from issues, face-to-face and virtual discussions, Stack Overflow, social media and other feedback, to try to best capture the interests of our users and community.`,Q,w,ye="The proposals",V,v,ce=`To help make our roadmap achievable, we wrote and submitted proposals to several different venues and organizations in the last couple of months. -While we have yet to hear back from some of them, two have already been funded!`,C,b,ke=`The first was for the Google Season of Docs (GSoD) 2022). -This grant will be focused mainly on improving and updating our user documentation for Spyder 5’s Editor features. -It also will help enhance our developer documentation and add tutorials and detailed information covering our new plugin API. -For more details, check out the Spyder wiki page for the proposal.`,oe,T,fe=`The second proposal accepted was a Small Development Grant from NumFOCUS. -For this grant, we will be working on improving the installation experience for Windows users by making the standalone installers auto-updatable and providing a simpler way to install custom packages not bundled with the installers. -With this grant, we were able to hire a new developer—Juan Sebastian Bautista, a recent graduate in systems and computing engineering from Universidad de los Andes in Bogotá, Colombia—who will implement these features over the next six months. -For more details, see the Spyder wiki page for the proposal.`,le,_,se="Next steps",A,S,Te=`We will be focusing our efforts as a project on moving forward with the accepted proposals and submitting new ones. -On top of that, we will gather more feedback about what volunteers, users and the community at large want to see for Spyder 6, and share the progress of the proposals in the relaunched Spyder Community calls.`,O,M,Se="We would like to thank NumFOCUS and Google Season of Docs for granting us the funds to be able to work on these projects and making our roadmap possible!";return{c(){n=o("p"),n.textContent=f,p=s(),d=o("h2"),d.textContent=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("h2"),w.textContent=ye,V=s(),v=o("p"),v.textContent=ce,C=s(),b=o("p"),b.innerHTML=ke,oe=s(),T=o("p"),T.innerHTML=fe,le=s(),_=o("h2"),_.textContent=se,A=s(),S=o("p"),S.innerHTML=Te,O=s(),M=o("p"),M.textContent=Se,this.h()},l(P){n=l(P,"P",{"data-svelte-h":!0}),i(n)!=="svelte-176zl42"&&(n.textContent=f),p=r(P),d=l(P,"H2",{class:!0,"data-svelte-h":!0}),i(d)!=="svelte-4fbp7v"&&(d.textContent=a),u=r(P),c=l(P,"P",{"data-svelte-h":!0}),i(c)!=="svelte-z5sir4"&&(c.innerHTML=de),Q=r(P),w=l(P,"H2",{class:!0,"data-svelte-h":!0}),i(w)!=="svelte-go9hhu"&&(w.textContent=ye),V=r(P),v=l(P,"P",{"data-svelte-h":!0}),i(v)!=="svelte-1v42iy0"&&(v.textContent=ce),C=r(P),b=l(P,"P",{"data-svelte-h":!0}),i(b)!=="svelte-blo2qp"&&(b.innerHTML=ke),oe=r(P),T=l(P,"P",{"data-svelte-h":!0}),i(T)!=="svelte-3yzhgt"&&(T.innerHTML=fe),le=r(P),_=l(P,"H2",{class:!0,"data-svelte-h":!0}),i(_)!=="svelte-18hazx0"&&(_.textContent=se),A=r(P),S=l(P,"P",{"data-svelte-h":!0}),i(S)!=="svelte-ryn14r"&&(S.innerHTML=Te),O=r(P),M=l(P,"P",{"data-svelte-h":!0}),i(M)!=="svelte-tw6p7q"&&(M.textContent=Se),this.h()},h(){x(d,"class","section"),x(w,"class","section"),x(_,"class","section")},m(P,m){t(P,n,m),t(P,p,m),t(P,d,m),t(P,u,m),t(P,c,m),t(P,Q,m),t(P,w,m),t(P,V,m),t(P,v,m),t(P,C,m),t(P,b,m),t(P,oe,m),t(P,T,m),t(P,le,m),t(P,_,m),t(P,A,m),t(P,S,m),t(P,O,m),t(P,M,m)},p:yt,d(P){P&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M))}}}function rl(k){let n,f;const p=[k[0],yn];let d={$$slots:{default:[sl]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let dl=class extends ht{constructor(n){super(),ct(this,n,ul,rl,pt,{})}};const pl=Object.freeze(Object.defineProperty({__proto__:null,default:dl,metadata:yn},Symbol.toStringTag,{value:"Module"}));function hl(k){let n,f=`As we approach some major development milestones, now is as good a time as ever to share with you some perspective on where we’ve been, what’s happening now, and where we’re going in the world of Spyder. -In this post, part one of a three part series, we’ll take a look back over the past six months at some of the key events, accomplishments and challenges for Spyder and its community, and how that all leads up to where we are now.`,p,d,a=`Stay tuned right here, since part two will share several exciting announcements that affect the project (in a good way, we promise!) and its immediate future. -Even better, part three will formally announce the next Spyder 3 release and—what I’m sure you are all looking forward to—the plan for the first official Spyder 4 beta, plus our schedule and feature roadmap for Spyder 4 and beyond!`,u,c,de="A Call Answered",Q,w,ye=`Starting off, as we announced back in mid-November, our funding from Anaconda, Inc was discontinued, leaving Spyder without formal institutional financial support. -As Spyder was, is and always will be a community-developed and supported IDE, this was far from a mortal blow to the project, but it did impact the pace and breadth of development. -Developer effort previously spent on our Spyder plugins, like spyder-notebook, spyder-reports, and spyder-terminal, among others, was refocused on the Spyder core, and the development and release of Spyder 4 was put mostly on hold. -To help make up for the loss of funding, we appealed to the community for support, asking users who found Spyder valuable to back our project on OpenCollective, in order to accelerate development and fund more features for Spyder 4.`,V,v,ce='Spyder OpenCollective, showing many donations and backers
    Spyder OpenCollective, showing many donations and backers
    ',C,b,ke=`To our unending gratitude, you responded! In the few months since then, we’ve gone from zero to a budget of well over $4500 per year and rising at an increasing pace, thanks to the continuing contributions of over 80 (and counting!) individual and institutional backers. -We also had several new core team members and community contributors pitch in to help carry the load, and we’ve got some more great news in the very next post on the funding front. -While we’ve got a ways to go to match the level of funding we’ve received under Anaconda, your support has helped make possible several of the new features we’ve planned for Spyder 4, and allow us to commit to releasing it much sooner than we would be able to otherwise. -Your generous donations go directly toward funding the Spyder community’s most-requested new and improved features for Spyder 4, so keep them coming! -Stay tuned; we are considering rolling out new donation tiers and rewards at some point soon so you won’t want to miss that.`,oe,T,fe="Development by the Numbers",le,_,se=`On the development side of the project, while our overall pace is modestly lower than its peak under our Anaconda funding, we’ve been quite active fixing bugs and adding new features and enhancements over the past six months. -By the numbers, since mid-November, we’ve pushed approximately 1200 commits to master (Spyder 4), comprising over 37 000 lines added and 16 000 removed, and 900 commits to 3.x (Spyder 3), with over 16 500 additions and 10 000 deletions. -Users have opened over 1375 issues (bugs, feature requests and other feedback), of which we’ve managed to resolve more than 1330, or nearly 97%.`,A,S,Te='Github commit timeseries for Spyder, with high activity over the past few years
    Github commit timeseries for Spyder, with high activity over the past few years
    ',O,M,Se=`Further, over 250 pull requests from almost two dozen unique contributors, some old, some new, have been submitted since that time—fixing bugs, adding new or enhanced functionality, or making other improvements—of which 226 have been merged to the main Spyder codebase. -This work has coalesced into four separate official releases during that period, with another only days away. -Finally, we’ve recently blown past the 3000 Github stars milestone a few weeks ago (we’re now at more than 3200), with almost 700 unique forks to date.`,P,m,be="Key Spyder Improvements",me,B,Ie=`All those numbers are nice, but what matters most are the tangible improvements that you all get to use every day in your favorite IDE. -Over those same past six months, alongside hundreds of bugfixes and minor enhancements, we’ve made multiple significant improvements to the Spyder 3 Editor, IPython Console, Variable Explorer, and Find in Files tool, along with a number of others under the hood and to the application as a whole. -Even better, the majority of these were suggested by you, our users, and some of you even pitched in to help implement them.`,pe,K,je=`Especially since you will probably be spending most of your time in it, we added a several new commands and functions to the Editor that will hopefully make your life easier, each with corresponding customizable shortcuts for easier access. -You can now insert a new line below the current one regardless of the cursor’s current position with Ctrl-Shift-Enter, and you can now use Shift-Delete to cut selected text, and Shift-Insert to paste it. -Ctrl-PageUp, Ctrl-PageDown, and Ctrl-Tab shortcuts are all now fully configurable. -Finally, you can now easily Tab from the Find to the Replace box when open, and better yet your Find text is automatically copied to the Replace box to make modifications easier.`,W,G,$e=`Second only to the Editor in terms of them most critical Spyder components, the IPython Console also got a lot of love in recent releases. -We’ve made several improvements to significantly improve the startup time, and added an optional feature to show the elapsed time each kernel has been running. -You can now remove all user-defined variables with a GUI command, and changes in imported modules now take effect instantly and automatically in the console, without even a re-import needed. -Cloudpickle is now used to serialize objects from the Console to the Variable Explorer, greatly improving the latter’s capabilities (as discussed below). -Finally, Cython files are now automatically run in dedicated Cython consoles, and you can now use the edit magic command from the Console to open any file right inside Spyder’s Editor.`,R,D,Ue='Variable Explorer, with a variety of array types displayed
    Variable Explorer, with a variety of array types displayed
    ',ge,ne,Ne=`The Variable Explorer, which many of you cite as Spyder’s “killer feature”, has greatly improved as well. -Most notably, thanks to the aforementioned cloudpickle change, you now have access to rich, deep exploration of nearly any object, builtin or custom, and can traverse, view, and when possible even edit complex hierarchies of nested types with ease. -The Variable Explorer now fully supports Timedelta objects, both built-in and Pandas variants, allowing you to easily view and edit them just like datetime and Timestamp. -It also now uses a “pretty”, more human-readable format for dates, times, timedeltas and the like, and also now supports displaying a much wider range of Numpy array types. -As a quality of life change, it has much better handling of immutable types, like tuples, clearly showing they can’t be edited upfront and avoiding bothersome errors when trying to do so.`,xe,X,Re=`Rounding out the major changes, the Find in Files tool now allows you to remove items from the Search In list by hovering over them and pressing Delete, and there’s also a new option to clear all recent directories. -Under the hood, we’ve made PyQt5 a dependency for easier, one-command installation and added many more tests and better project infrastructure to help catch errors. -To make things easier on you if something does go wrong, we’ve greatly improved the error reporting system, the UI/UX and the explanatory text to be more up to date, informative, and user friendly.`,_e,Z,We='New Spyder error report dialog, with more helpful UI text
    New Spyder error report dialog, with more helpful UI text
    ',g,L,Ve=`All of the mentioned additions are included in the latest released version of Spyder, 3.2.8, which you can update to with conda update spyder (if using Anaconda), with your package manager/distribution (if installed that way) or with pip update spyder (otherwise). -Even more are already implemented for our next release, due out in a week’s time, and we’ll have a preview of what to expect right here on the blog even sooner.`,U,J,Ze="Affiliated Project Progress",N,Y,Ye=`Outside the core Spyder IDE, while most plugins have been paused until the Spyder 4 release, work on other affiliated projects has continued. The new spyder-unittest plugin has seen particularly active development, and lead developer and Spyder team member Jitse Niesen recently published a tutorial on its use. -Since November, it has gotten improved pytest support with realtime test results and click-to-open, better UI/UX, a robust communications backend (ZeroMQ), and numerous bug fixes and minor improvements. -QtPy, another affiliated project which Spyder uses as its Qt GUI abstraction layer, has had three releases including one major, with new Qt classes, early support for PySide2, better performance, and a number of bugfixes.`,ze,we,Xe='Spyder-unittest dialog, displaying test results
    Spyder-unittest dialog, displaying test results
    ',Fe,ve,Be=`Other projects under the Spyder umbrella are also making major progress. The pywinpty pseudo-terminal library has seen six official releases (three major), with a new rich high level interface to create and track processes, new process wrappers, Python 2.7 support, major performance, stability and security improvements, and many bug fixes. -Most importantly, we are proud to report that since this January Jupyter Notebook (in 5.3.0) and JupyterLab have both adopted it to create and manage system terminals on Windows! -The qtsass SASS to Qt stylesheet compiler has a new maintainer, with development including new dev infrastructure, refactoring work, a PyPI release, and new features, with more on the way. -Finally, our loghub automatic changelog generator has seen significant internal and external developer interest, as well as three releases, bug fixes, additional examples, and the ability to group issues and PRs together if desired. -The common thread between all five of these projects has been a substantially increased development pace in recent weeks, so expect to see even more good news soon if that trend continues.`,q,ee,tt="Beyond the Code",Ae,He,ot=`The team has made progress on a number of fronts outside core program development. -We’ve been joined by several new team members from around the world, who have each contributed new skillsets to the project. -Further, we’ve created, developed and deployed a brand new, modern and responsive website and blog, to provide an accessible, central source for Spyder news and information for both newcomers and old hands alike, as you might have noticed :)`,De,Me,lt=`Our new, comprehensive Troubleshooting Guide and FAQ will help users easily resolve common issues without having to wait for a response from us, and we’ve revised and improved our Github issue tracking workflow to do an even better job at quickly responding to users’ needs. -On top of that, our Readme, contributing guide, install docs, and developer wiki have all been thoroughly overhauled to make them more up to date, informative and accessible. -Finally, we’ve deepened our relationship with NumFOCUS, integrating us more closely with the broader PyData community, as well as leading to some exciting news…but that will have to wait for our next post!`,Ge,Pe,nt="Until then, thanks for all you do for us and the community, and happy Spydering!";return{c(){n=o("p"),n.textContent=f,p=s(),d=o("p"),d.textContent=a,u=s(),c=o("h2"),c.textContent=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),v=o("figure"),v.innerHTML=ce,C=s(),b=o("p"),b.textContent=ke,oe=s(),T=o("h2"),T.textContent=fe,le=s(),_=o("p"),_.innerHTML=se,A=s(),S=o("figure"),S.innerHTML=Te,O=s(),M=o("p"),M.textContent=Se,P=s(),m=o("h2"),m.textContent=be,me=s(),B=o("p"),B.textContent=Ie,pe=s(),K=o("p"),K.innerHTML=je,W=s(),G=o("p"),G.innerHTML=$e,R=s(),D=o("figure"),D.innerHTML=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("p"),X.innerHTML=Re,_e=s(),Z=o("figure"),Z.innerHTML=We,g=s(),L=o("p"),L.innerHTML=Ve,U=s(),J=o("h2"),J.textContent=Ze,N=s(),Y=o("p"),Y.innerHTML=Ye,ze=s(),we=o("figure"),we.innerHTML=Xe,Fe=s(),ve=o("p"),ve.innerHTML=Be,q=s(),ee=o("h2"),ee.textContent=tt,Ae=s(),He=o("p"),He.textContent=ot,De=s(),Me=o("p"),Me.innerHTML=lt,Ge=s(),Pe=o("p"),Pe.textContent=nt,this.h()},l($){n=l($,"P",{"data-svelte-h":!0}),i(n)!=="svelte-pz772z"&&(n.textContent=f),p=r($),d=l($,"P",{"data-svelte-h":!0}),i(d)!=="svelte-181muck"&&(d.textContent=a),u=r($),c=l($,"H2",{class:!0,"data-svelte-h":!0}),i(c)!=="svelte-1725v2a"&&(c.textContent=de),Q=r($),w=l($,"P",{"data-svelte-h":!0}),i(w)!=="svelte-c9xudx"&&(w.innerHTML=ye),V=r($),v=l($,"FIGURE",{class:!0,"data-svelte-h":!0}),i(v)!=="svelte-wg8fc1"&&(v.innerHTML=ce),C=r($),b=l($,"P",{"data-svelte-h":!0}),i(b)!=="svelte-47g8gm"&&(b.textContent=ke),oe=r($),T=l($,"H2",{class:!0,"data-svelte-h":!0}),i(T)!=="svelte-1iyzcs1"&&(T.textContent=fe),le=r($),_=l($,"P",{"data-svelte-h":!0}),i(_)!=="svelte-8k5uw4"&&(_.innerHTML=se),A=r($),S=l($,"FIGURE",{class:!0,"data-svelte-h":!0}),i(S)!=="svelte-kh9pi5"&&(S.innerHTML=Te),O=r($),M=l($,"P",{"data-svelte-h":!0}),i(M)!=="svelte-ryx303"&&(M.textContent=Se),P=r($),m=l($,"H2",{class:!0,"data-svelte-h":!0}),i(m)!=="svelte-phh6l5"&&(m.textContent=be),me=r($),B=l($,"P",{"data-svelte-h":!0}),i(B)!=="svelte-raeu8r"&&(B.textContent=Ie),pe=r($),K=l($,"P",{"data-svelte-h":!0}),i(K)!=="svelte-1pzgygh"&&(K.innerHTML=je),W=r($),G=l($,"P",{"data-svelte-h":!0}),i(G)!=="svelte-mdkheq"&&(G.innerHTML=$e),R=r($),D=l($,"FIGURE",{class:!0,"data-svelte-h":!0}),i(D)!=="svelte-il6r42"&&(D.innerHTML=Ue),ge=r($),ne=l($,"P",{"data-svelte-h":!0}),i(ne)!=="svelte-179t22p"&&(ne.innerHTML=Ne),xe=r($),X=l($,"P",{"data-svelte-h":!0}),i(X)!=="svelte-1i3k1yp"&&(X.innerHTML=Re),_e=r($),Z=l($,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Z)!=="svelte-1vwlxyb"&&(Z.innerHTML=We),g=r($),L=l($,"P",{"data-svelte-h":!0}),i(L)!=="svelte-599c63"&&(L.innerHTML=Ve),U=r($),J=l($,"H2",{class:!0,"data-svelte-h":!0}),i(J)!=="svelte-19sfrxz"&&(J.textContent=Ze),N=r($),Y=l($,"P",{"data-svelte-h":!0}),i(Y)!=="svelte-1wt5kgk"&&(Y.innerHTML=Ye),ze=r($),we=l($,"FIGURE",{class:!0,"data-svelte-h":!0}),i(we)!=="svelte-1nvocpn"&&(we.innerHTML=Xe),Fe=r($),ve=l($,"P",{"data-svelte-h":!0}),i(ve)!=="svelte-159zybe"&&(ve.innerHTML=Be),q=r($),ee=l($,"H2",{class:!0,"data-svelte-h":!0}),i(ee)!=="svelte-1o8ccqd"&&(ee.textContent=tt),Ae=r($),He=l($,"P",{"data-svelte-h":!0}),i(He)!=="svelte-1m7652o"&&(He.textContent=ot),De=r($),Me=l($,"P",{"data-svelte-h":!0}),i(Me)!=="svelte-4w5n7c"&&(Me.innerHTML=lt),Ge=r($),Pe=l($,"P",{"data-svelte-h":!0}),i(Pe)!=="svelte-ia2mbp"&&(Pe.textContent=nt),this.h()},h(){x(c,"class","section"),x(v,"class","figure text-center"),x(T,"class","section"),x(S,"class","figure text-center"),x(m,"class","section"),x(D,"class","figure text-center"),x(Z,"class","figure text-center"),x(J,"class","section"),x(we,"class","figure text-center"),x(ee,"class","section")},m($,te){t($,n,te),t($,p,te),t($,d,te),t($,u,te),t($,c,te),t($,Q,te),t($,w,te),t($,V,te),t($,v,te),t($,C,te),t($,b,te),t($,oe,te),t($,T,te),t($,le,te),t($,_,te),t($,A,te),t($,S,te),t($,O,te),t($,M,te),t($,P,te),t($,m,te),t($,me,te),t($,B,te),t($,pe,te),t($,K,te),t($,W,te),t($,G,te),t($,R,te),t($,D,te),t($,ge,te),t($,ne,te),t($,xe,te),t($,X,te),t($,_e,te),t($,Z,te),t($,g,te),t($,L,te),t($,U,te),t($,J,te),t($,N,te),t($,Y,te),t($,ze,te),t($,we,te),t($,Fe,te),t($,ve,te),t($,q,te),t($,ee,te),t($,Ae,te),t($,He,te),t($,De,te),t($,Me,te),t($,Ge,te),t($,Pe,te)},p:yt,d($){$&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(ze),e(we),e(Fe),e(ve),e(q),e(ee),e(Ae),e(He),e(De),e(Me),e(Ge),e(Pe))}}}function cl(k){let n,f;const p=[k[0],gn];let d={$$slots:{default:[hl]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let ml=class extends ht{constructor(n){super(),ct(this,n,fl,cl,pt,{})}};const yl=Object.freeze(Object.defineProperty({__proto__:null,default:ml,metadata:gn},Symbol.toStringTag,{value:"Module"}));function gl(k){let n,f=`After sharing some major milestones, development progress, and other tidbits from the past six months in Part 1 of this series (check that one out first if you haven’t already), we now have some amazing news to share with you all here in Part 2, along with other status updates. -That’s not all, though—Part 3 will look ahead toward Spyder 4 and beyond, unveiling and explaining our full roadmap and going over the future possibilities even further afield.`,p,d,a="Spyder Wins NumFOCUS Development Grant",u,c,de=`First up, we’re thrilled to announce a major part of what’s making that plan possible (along with your support, of course!). -This May, Spyder was awarded a $3000 development grant from NumFOCUS, an organization promoting better science through open code, to help with finishing Spyder 4! -NumFOCUS is a nonprofit dedicated to supporting key scientific computing projects; promoting sustainability in the open source ecosystem; educating the next generation of scientists, engineers, developers and data analysts through their flagship PyData program; and enabling and inspiring the next generation through their grants, scholarships and fellowships, diversity and inclusion program, and involvement in the Google Summer of Code.`,Q,w,ye=`We applied for the funding back in March of this year, along with many other scientific Python projects, and were one of the fortunate projects selected after the review process. -The award runs from May through this November, and will enable multiple betas with new features to be released throughout 2018, with the first feature-complete release candidate of Spyder 4 planned by the year’s end (we’ll have more detail on all that in Part 3). -Check out our bio and the other projects that were funded over on the NumFOCUS announcement, and make sure to thank and support them if you get the chance.`,V,v,ce="Quansight Hires Spyder Maintainer; Helps Fund Development",C,b,ke=`Equally exciting, Spyder’s maintainer, Carlos Cordoba, was recently hired by Quansight, the brand-new company headed by scientific Python luminary Travis Oliphant! -The father of much of the modern PyData ecosystem including NumPy, SciPy and Numba, Travis has been instrumental in the dramatic growth of open-source data analysis with Python through founding or helping lead Enthought, Continuum/Anaconda, NumFOCUS, and more. -Quansight, Travis’ newest venture, focuses on scaling up the PyData ecosystem to solve even larger and more integrated problems, connecting companies with the open-source tools that can benefit their business, and helping build a more robust ecosystem for open-source scientific development.`,oe,T,fe=`As part of that mission, Carlos was hired through at least the end of 2018 to help make several open-source projects more sustainable in the long run, and I’m sure you all will be happy to hear that one of them will be our very own Spyder! -After previously helping support the project over at Anaconda, Travis and Quansight will fund Carlos to work part-time on Spyder development, helping the project continue to grow and evolve, and keeping Spyder 4 moving along at a faster pace. -Congratulations Carlos, and thanks to Travis and Quansight!`,le,_,se=`Aside from those two, we also have several other potential long-term funding opportunities in the pipeline. -Stay tuned to hear more about those in the coming months.`,A,S,Te="Spyder 3.3.0 Ready to Go",O,M,Se=`Meanwhile, on the development side of things, we’ve just finished the rollout of the next update in the stable Spyder 3 line, 3.3.0, and will have a full post shortly going over the changes and enhancements in detail. -In brief, it has some significant under the hood revisions, cleaning house of some old end of life dependencies and legacy support (Python 3.3 and PyQt4 below 5.5), and separates the IPython Console kernel code into a new spyder-kernels package to make it easier for you to work with different Python environments and remote sessions, and easier for us to add exciting new features down the road. -Additionally, it adds new preferences options for console plotting and autocompletion, improves the usability and performance of Variable Explorer object viewers, includes a new, fully automated error reporting feature to make submitting reports faster, easier and more helpful, and contains a number of other minor improvements and usability enhancements, along with numerous bug fixes.`,P,m,be='A remote kernel running in a system console alongside Spyder's connect to kernel dialog
    A remote kernel running in a system console alongside Spyder's connect to kernel dialog
    ',me,B,Ie="Spyder 4 Public Beta 1 on Deck",pe,K,je=`We’ll also be releasing the first public beta of Spyder 4 in the very near future, to allow users and developers to get their hands on the next generation of the IDE and start using and testing it as soon as possible. -There are far too many significant new features to list here, and they are more than worthy of their own full-length post, as there are many substantial changes to the Editor, Console, Variable Explorer, File Explorer, Outline Explorer, API and more.`,W,G,$e='Preview of the new Spyder 4 Editor, showing several of the mentioned features
    Preview of the new Spyder 4 Editor, showing several of the mentioned features
    ',R,D,Ue=`Some of the major highlights in the Editor include code folding, indentation guides, multiple line length indicators, a live class/method/function panel (a la Visual Studio), many more shortcut commands, better comment/uncomment, and more. -The IPython Console gains the ability to start specialized Pylab, SymPy, and Cython consoles, and the Variable Explorer gets MultiIndex support, now natively handles all Pandas indexers, and can display sets in a dedicated GUI editor. -Meanwhile, the File Explorer now has multi-select functionality and can open any file with the user’s OS-configured external default program, while the outline explorer can now group items by cell, and in multiple levels. -Finally, Spyder 4 exposes a public API for external plugins, offers more language translations, features several global UI improvements and has numerous under the hood and refactoring changes, and countless other enhancements big and small. -It’s the future of Spyder, so if you’d like to get a taste of the cutting edge, we’d love for you to try it when it drops and let us know what you think!`,ge,ne,Ne="Spyder Documentation, Reborn",xe,X,Re=`Aside from Spyder 3 and 4, we’ve got another big ticket item for you all in the next few days: our brand new docs! -We’ve been working on a major overhaul of our documentation, which will saw its first official release with Spyder 3.3.0. -Our old docs were hosted on PyPI/PythonHosted and, with the freezing of that service, couldn’t be updated. -Therefore, we’ve now moved to maintain them in a new dedicated repo, build, deploy and host them ourselves with Sphinx, doctr and Github Pages on a subdomain of our new site making them more convenient, responsive and accessible.`,_e,Z,We='Preview of new Spyder documentation website, displaying a modern theme/layout and better screenshots
    Preview of new Spyder documentation website, displaying a modern theme/layout and better screenshots
    ',g,L,Ve=`Furthermore, we’ve taken the opportunity to perform a comprehensive overhaul from top to bottom, dramatically improving their usefulness to users. -We’ve greatly expanded many pages and sections and adding new ones, updated outdated references, performed an exhaustive copyedit over nearly every line of the text, developed and implemented a consistent style guide, transitioned to a modern theme with our own custom CSS extensions, added or replaced many dozens of high-resolution screenshots, modified the source code and infrastructure to be easier to develop, build and maintain, and much more. -Even better, you can expect even more improvements in the coming months, as we further expand them toward the standard you’d expect for a feature-rich, multifaceted application like Spyder. -If you find an issue with them, see a section that could use expansion or improvement or even just have general actionable feedback feel free to open an issue or send us a pull request on our new repo. -We’ll have more information about what’s new and our future plans when we officially release them shortly.`,U,J,Ze="More News and Notes",N,Y,Ye="Finally, we want to make sure you all can stay better informed of Spyder-related happenings going forward, as well as get the chance to interact directly with the Spyder team.",ze,we,Xe=`We’re planning on much more frequent announcements, status reports, news, and tutorials right here on our blog, as well as more timely updates on our social media, including our Facebook page and Twitter account. -Make sure to subscribe/follow if you’d like to stay up to date or want to get in touch; we only post important happenings, so we won’t inundate your feeds with trivialities. -You can also reach us on our Google Groups discussion board, our Gitter live chat, or post a comment right here below this post.`,Fe,ve,Be=`Thanks again for all you do to make Spyder possible, and keep a look out for the next post in this series on the future of Spyder, along with our three major releases (3.3.0, 4.0b1, and the new docs) over the next few weeks. -Happy Spydering!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("h2"),d.textContent=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),v=o("h2"),v.textContent=ce,C=s(),b=o("p"),b.innerHTML=ke,oe=s(),T=o("p"),T.textContent=fe,le=s(),_=o("p"),_.textContent=se,A=s(),S=o("h2"),S.textContent=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("figure"),m.innerHTML=be,me=s(),B=o("h2"),B.textContent=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),G=o("figure"),G.innerHTML=$e,R=s(),D=o("p"),D.innerHTML=Ue,ge=s(),ne=o("h2"),ne.textContent=Ne,xe=s(),X=o("p"),X.innerHTML=Re,_e=s(),Z=o("figure"),Z.innerHTML=We,g=s(),L=o("p"),L.innerHTML=Ve,U=s(),J=o("h2"),J.textContent=Ze,N=s(),Y=o("p"),Y.textContent=Ye,ze=s(),we=o("p"),we.innerHTML=Xe,Fe=s(),ve=o("p"),ve.textContent=Be,this.h()},l(q){n=l(q,"P",{"data-svelte-h":!0}),i(n)!=="svelte-1hxqb5i"&&(n.innerHTML=f),p=r(q),d=l(q,"H2",{class:!0,"data-svelte-h":!0}),i(d)!=="svelte-19bcwx5"&&(d.textContent=a),u=r(q),c=l(q,"P",{"data-svelte-h":!0}),i(c)!=="svelte-1vujq9i"&&(c.innerHTML=de),Q=r(q),w=l(q,"P",{"data-svelte-h":!0}),i(w)!=="svelte-12ox8lz"&&(w.innerHTML=ye),V=r(q),v=l(q,"H2",{class:!0,"data-svelte-h":!0}),i(v)!=="svelte-1nbjcvl"&&(v.textContent=ce),C=r(q),b=l(q,"P",{"data-svelte-h":!0}),i(b)!=="svelte-100rehe"&&(b.innerHTML=ke),oe=r(q),T=l(q,"P",{"data-svelte-h":!0}),i(T)!=="svelte-gxtm8m"&&(T.textContent=fe),le=r(q),_=l(q,"P",{"data-svelte-h":!0}),i(_)!=="svelte-12rmlke"&&(_.textContent=se),A=r(q),S=l(q,"H2",{class:!0,"data-svelte-h":!0}),i(S)!=="svelte-1r0pzr9"&&(S.textContent=Te),O=r(q),M=l(q,"P",{"data-svelte-h":!0}),i(M)!=="svelte-aswwh3"&&(M.innerHTML=Se),P=r(q),m=l(q,"FIGURE",{class:!0,"data-svelte-h":!0}),i(m)!=="svelte-1nvsdud"&&(m.innerHTML=be),me=r(q),B=l(q,"H2",{class:!0,"data-svelte-h":!0}),i(B)!=="svelte-1n46y8r"&&(B.textContent=Ie),pe=r(q),K=l(q,"P",{"data-svelte-h":!0}),i(K)!=="svelte-1vjcv3q"&&(K.textContent=je),W=r(q),G=l(q,"FIGURE",{class:!0,"data-svelte-h":!0}),i(G)!=="svelte-1ofrylr"&&(G.innerHTML=$e),R=r(q),D=l(q,"P",{"data-svelte-h":!0}),i(D)!=="svelte-14d4ii3"&&(D.innerHTML=Ue),ge=r(q),ne=l(q,"H2",{class:!0,"data-svelte-h":!0}),i(ne)!=="svelte-14w6993"&&(ne.textContent=Ne),xe=r(q),X=l(q,"P",{"data-svelte-h":!0}),i(X)!=="svelte-n233qz"&&(X.innerHTML=Re),_e=r(q),Z=l(q,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Z)!=="svelte-sh333b"&&(Z.innerHTML=We),g=r(q),L=l(q,"P",{"data-svelte-h":!0}),i(L)!=="svelte-15wekgt"&&(L.innerHTML=Ve),U=r(q),J=l(q,"H2",{class:!0,"data-svelte-h":!0}),i(J)!=="svelte-1bc20bm"&&(J.textContent=Ze),N=r(q),Y=l(q,"P",{"data-svelte-h":!0}),i(Y)!=="svelte-1xq67kh"&&(Y.textContent=Ye),ze=r(q),we=l(q,"P",{"data-svelte-h":!0}),i(we)!=="svelte-1o5j99t"&&(we.innerHTML=Xe),Fe=r(q),ve=l(q,"P",{"data-svelte-h":!0}),i(ve)!=="svelte-1mo5pro"&&(ve.textContent=Be),this.h()},h(){x(d,"class","section"),x(v,"class","section"),x(S,"class","section"),x(m,"class","figure text-center"),x(B,"class","section"),x(G,"class","figure text-center"),x(ne,"class","section"),x(Z,"class","figure text-center"),x(J,"class","section")},m(q,ee){t(q,n,ee),t(q,p,ee),t(q,d,ee),t(q,u,ee),t(q,c,ee),t(q,Q,ee),t(q,w,ee),t(q,V,ee),t(q,v,ee),t(q,C,ee),t(q,b,ee),t(q,oe,ee),t(q,T,ee),t(q,le,ee),t(q,_,ee),t(q,A,ee),t(q,S,ee),t(q,O,ee),t(q,M,ee),t(q,P,ee),t(q,m,ee),t(q,me,ee),t(q,B,ee),t(q,pe,ee),t(q,K,ee),t(q,W,ee),t(q,G,ee),t(q,R,ee),t(q,D,ee),t(q,ge,ee),t(q,ne,ee),t(q,xe,ee),t(q,X,ee),t(q,_e,ee),t(q,Z,ee),t(q,g,ee),t(q,L,ee),t(q,U,ee),t(q,J,ee),t(q,N,ee),t(q,Y,ee),t(q,ze,ee),t(q,we,ee),t(q,Fe,ee),t(q,ve,ee)},p:yt,d(q){q&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(ze),e(we),e(Fe),e(ve))}}}function wl(k){let n,f;const p=[k[0],wn];let d={$$slots:{default:[gl]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let bl=class extends ht{constructor(n){super(),ct(this,n,vl,wl,pt,{})}};const xl=Object.freeze(Object.defineProperty({__proto__:null,default:bl,metadata:wn},Symbol.toStringTag,{value:"Module"}));function kl(k){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a='The Spyder-Terminal project is revitalized! The new 0.3.0 version adds numerous features that improve the user experience, and enhances compatibility with the latest Spyder 4 release, in part thanks to the improvements made in the xterm.js project.',u,c,de='Screenshot of the new spyder-terminal
    Screenshot of the new spyder-terminal
    ',Q,w,ye="Upgrade to ES6/JSX syntax",V,v,ce="First, we were able to update all the old JavaScript files to use ES6/JSX syntax and the tests for the client terminal. This change simplified the code base and maintenance and allows us to easily extend the project to new functionalities that the xterm.js API offers. In order to compile this code and run it inside Spyder, we migrated our deployment to Webpack.",C,b,ke="Multiple shells per operating system",oe,T,fe="In the new release, you now have the ability to configure which shell to use in the terminal. On Linux and UNIX systems, bash, sh, ksh, zsh, csh, pwsh, tcsh, screen, tmux, dash and rbash are supported, while cmd and powershell are the available options on Windows. To select your preferred command processor, simply choose it from the menu in the Terminal pane of Spyder’s preferences and restart the IDE.",le,_,se='UNIX shell options for starting the terminal
    UNIX shell options for starting the terminal
    ',A,S,Te="This is a great feature because it allows the user to determine their shell interpreter among the ones that are installed in their systems. In this way, Spyder-Terminal can be configured with any of the existing shells as long as it is available on their machine.",O,M,Se="Theme support and new UI options",P,m,be="Another big change in the new version is built-in support for all Spyder’s light and dark themes. When you change your Spyder theme or display options, the Terminal automatically adapt its UI, colors and fonts accordingly.",me,B,Ie='Spyder-Terminal new themes
    Spyder-Terminal new themes
    ',pe,K,je="Building on the look and feel of the plugin, we also added configurable options for the terminal sounds and the cursor style. In this way, you can choose whether the terminal uses a bell sound and can select from one of three cursors.",W,G,$e='Cursor options for Spyder-Terminal
    Cursor options for Spyder-Terminal
    ',R,D,Ue="Shortcut configuration",ge,ne,Ne="Lastly, the shortcuts on the terminal are configurable within the keyboard shortcuts in Spyder 4. The terminal’s shortcuts for Copy, Paste, Clean and New terminal are now no longer hardcoded.",xe,X,Re='Configurable shortcuts for the Terminal inside Spyder 4
    Configurable shortcuts for the Terminal inside Spyder 4
    ',_e,Z,We='We’re excited for you to try out Spyder-Terminal 0.3.0 and experiment with the new features available; we’d like to thank NumFOCUS and Quansight for providing the funding and support that made all this work possible. Check back soon for more Spyder updates, and until then, happy coding!';return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("figure"),c.innerHTML=de,Q=s(),w=o("h2"),w.textContent=ye,V=s(),v=o("p"),v.textContent=ce,C=s(),b=o("h2"),b.textContent=ke,oe=s(),T=o("p"),T.innerHTML=fe,le=s(),_=o("figure"),_.innerHTML=se,A=s(),S=o("p"),S.textContent=Te,O=s(),M=o("h2"),M.textContent=Se,P=s(),m=o("p"),m.textContent=be,me=s(),B=o("figure"),B.innerHTML=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),G=o("figure"),G.innerHTML=$e,R=s(),D=o("h2"),D.textContent=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("figure"),X.innerHTML=Re,_e=s(),Z=o("p"),Z.innerHTML=We,this.h()},l(g){n=l(g,"P",{"data-svelte-h":!0}),i(n)!=="svelte-aa2x2f"&&(n.innerHTML=f),p=r(g),d=l(g,"P",{"data-svelte-h":!0}),i(d)!=="svelte-cihbgh"&&(d.innerHTML=a),u=r(g),c=l(g,"FIGURE",{class:!0,"data-svelte-h":!0}),i(c)!=="svelte-r6xs9h"&&(c.innerHTML=de),Q=r(g),w=l(g,"H2",{class:!0,"data-svelte-h":!0}),i(w)!=="svelte-1hn7hbe"&&(w.textContent=ye),V=r(g),v=l(g,"P",{"data-svelte-h":!0}),i(v)!=="svelte-7hqbeh"&&(v.textContent=ce),C=r(g),b=l(g,"H2",{class:!0,"data-svelte-h":!0}),i(b)!=="svelte-1npuvda"&&(b.textContent=ke),oe=r(g),T=l(g,"P",{"data-svelte-h":!0}),i(T)!=="svelte-qibysk"&&(T.innerHTML=fe),le=r(g),_=l(g,"FIGURE",{class:!0,"data-svelte-h":!0}),i(_)!=="svelte-dluplq"&&(_.innerHTML=se),A=r(g),S=l(g,"P",{"data-svelte-h":!0}),i(S)!=="svelte-np7xai"&&(S.textContent=Te),O=r(g),M=l(g,"H2",{class:!0,"data-svelte-h":!0}),i(M)!=="svelte-go4upt"&&(M.textContent=Se),P=r(g),m=l(g,"P",{"data-svelte-h":!0}),i(m)!=="svelte-1skopxh"&&(m.textContent=be),me=r(g),B=l(g,"FIGURE",{class:!0,"data-svelte-h":!0}),i(B)!=="svelte-10lck8x"&&(B.innerHTML=Ie),pe=r(g),K=l(g,"P",{"data-svelte-h":!0}),i(K)!=="svelte-1togysm"&&(K.textContent=je),W=r(g),G=l(g,"FIGURE",{class:!0,"data-svelte-h":!0}),i(G)!=="svelte-wjaj7d"&&(G.innerHTML=$e),R=r(g),D=l(g,"H2",{class:!0,"data-svelte-h":!0}),i(D)!=="svelte-h3anlu"&&(D.textContent=Ue),ge=r(g),ne=l(g,"P",{"data-svelte-h":!0}),i(ne)!=="svelte-syy71z"&&(ne.innerHTML=Ne),xe=r(g),X=l(g,"FIGURE",{class:!0,"data-svelte-h":!0}),i(X)!=="svelte-vir4h6"&&(X.innerHTML=Re),_e=r(g),Z=l(g,"P",{"data-svelte-h":!0}),i(Z)!=="svelte-1vjlw91"&&(Z.innerHTML=We),this.h()},h(){x(c,"class","figure text-center"),x(w,"class","section"),x(b,"class","section"),x(_,"class","figure text-center"),x(M,"class","section"),x(B,"class","figure text-center"),x(G,"class","figure text-center"),x(D,"class","section"),x(X,"class","figure text-center")},m(g,L){t(g,n,L),t(g,p,L),t(g,d,L),t(g,u,L),t(g,c,L),t(g,Q,L),t(g,w,L),t(g,V,L),t(g,v,L),t(g,C,L),t(g,b,L),t(g,oe,L),t(g,T,L),t(g,le,L),t(g,_,L),t(g,A,L),t(g,S,L),t(g,O,L),t(g,M,L),t(g,P,L),t(g,m,L),t(g,me,L),t(g,B,L),t(g,pe,L),t(g,K,L),t(g,W,L),t(g,G,L),t(g,R,L),t(g,D,L),t(g,ge,L),t(g,ne,L),t(g,xe,L),t(g,X,L),t(g,_e,L),t(g,Z,L)},p:yt,d(g){g&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z))}}}function _l(k){let n,f;const p=[k[0],vn];let d={$$slots:{default:[kl]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Tl=class extends ht{constructor(n){super(),ct(this,n,Cl,_l,pt,{})}};const Sl=Object.freeze(Object.defineProperty({__proto__:null,default:Tl,metadata:vn},Symbol.toStringTag,{value:"Module"}));function Pl(k){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a='Spyder 4 will be released very soon with lots of interesting new features that you’ll want to check out, reflecting years of effort by the team to improve the user experience. In this post, we will be talking about the improvements made to the Variable Explorer.',u,c,de="These include the brand new Object Explorer for inspecting arbitrary Python variables, full support for MultiIndex dataframes with multiple dimensions, and the ability to filter and search for variables by name and type, and much more.",Q,w,ye='It is important to mention that several of the above improvements were made possible through integrating the work of two other projects. Code from gtabview was used to implement the multi-dimensional Pandas indexes, while objbrowser was the foundation of the new Object Explorer.',V,v,ce="New viewer for arbitrary Python objects",C,b,ke="For Spyder 4 we added a long-requested feature: full support for inspecting any kind of Python object through the Variable Explorer. For many years, Spyder has been able to view and edit a small subset of Python variables: NumPy arrays, Pandas DataFrames and Series, and builtin collections (lists, dictionaries and tuples). Other objects were displayed as dictionaries of their attributes, inspecting any of which required showing a new table. This made it rather cumbersome to use this functionality, and was the reason arbitrary Python objects were hidden by default from the Variable Explorer view.",oe,T,fe='Python Viewer
    Python Viewer
    ',le,_,se='For the forthcoming Spyder release, we’ve integrated the excellent objbrowser project by Pepijn Kenter (@titusjan), which provides a tree-like view of Python objects, to offer a much simpler and more user-friendly way to inspect them.',A,S,Te='Python Viewer Metadata
    Python Viewer Metadata
    ',O,M,Se=`As can be seen above, this viewer will also allow users to browse extra metadata about the inspected object, such as its documentation, source code and the file that holds it. -It is very important to note that this work was accomplished thanks to the generosity of Pepijn, who kindly changed the license of objbrowser to allow us to integrate it with Spyder. -To expose this new functionality, we decided to set the option to hide arbitrary Python objects in the Variable Explorer to disabled by default, and introduced a new one called Exclude callables and modules. With this enabled by default, Spyder will now display a much larger fraction of objects that can be inspected, while still excluding most “uninteresting” variables.`,P,m,be='Exclude callables modules
    Exclude callables modules
    ',me,B,Ie="Finally, we added a context-menu action to open any object using the new Object Explorer even if they already have a builtin viewer (DataFrames, arrays, etc), allowing for deeper inspection of the inner workings of these datatypes.",pe,K,je='View object explorer
    View object explorer
    ',W,G,$e="Multi-index support in the dataframe viewer",R,D,Ue="One of the first features we added to the Variable Explorer in Spyder 4 was MultiIndex support in its DataFrame inspector, including for multi-level and multi-dimensional indices. Spyder 3 had basic support for such, but it was very rudimentary, making inspecting such DataFrames a less than user-friendly experience.",ge,ne,Ne='Multi-index support
    Multi-index support
    ',xe,X,Re='For Spyder 4, we took advantage of the work done by Scott Hansen (@firecat53) and Yuri D’Elia (@wavexx) in their gtabview project, particularly its improved management of column and table headings, which allows the new version of Spyder to display the index shown above in a much nicer way.',_e,Z,We='Table headings
    Table headings
    ',g,L,Ve="Fuzzy filtering of variables",U,J,Ze=`Spyder 4 also includes the ability to filter the variables shown down to only those of interest. This employs fuzzy matching between the text entered in the search field and the name and type of all available variables. -To access this functionality, click the search icon in the Variable Explorer toolbar, or press Ctrl+F (Cmd-F on macOS) when the Variable Explorer has focus.`,N,Y,Ye='Filter variables
    Filter variables
    ',ze,we,Xe="To remove the current filter, simply click the search icon again, or press Esc or Ctrl+F (Cmd-F) while the Variable Explorer is focused.",Fe,ve,Be="Refresh while code is running",q,ee,tt='We added back the ability to refresh the Variable Explorer while code is running in the console. This feature was dropped in Spyder 3.2, when we removed the old and unmaintained Python console. However, this functionality will return in Spyder 4, thanks to the fantastic work done by Quentin Peter (@impact27) to completely re-architect the way Spyder talks to the Jupyter kernels that run the code in our IPython console, integrating support for Jupyter Comms.',Ae,He,ot='Refresh
    Refresh
    ',De,Me,lt="To trigger a refresh, simply click the reload button on the Variable Explorer toolbar, or press the shortcut Ctrl+R (Cmd-R) when it has focus.",Ge,Pe,nt="Full support for sets",$,te,at="In Spyder 3, the Variable Explorer could only show builtin Python sets as arbitrary objects, making it very difficult for users to browse and interact with them. In Spyder 4, you can now view sets just like lists, as well as perform various operations on them.",Qe,Le,it='Screenshot of Spyder Variable Explorer UI, showing a Python set displayed in a native viewer
    Screenshot of Spyder Variable Explorer UI, showing a Python set displayed in a native viewer
    ',Je,Ee,et="UI enhancements and more",h,E,st="Finally, beyond the headline features, we’ve added numerous smaller improvements to make the Variable Explorer easier and more efficient to use. These include support for custom index names, better and more efficient automatic resizing of column widths, support for displaying Pandas Indices, tooltips for truncated column headers, and more.",ut,Ke,rt='Spyder’s Variable Explorer is what many of you consider to be one of its standout features, so we can’t wait for you all to get your hands on the even better version in Spyder 4. Thanks again to Quansight, our generous community donors, and as always all of you! Spyder 4.0.0 final is planned to be released within approximately one more week, but if you’d like to test it out immediately, follow the instructions on our GitHub to install the pre-release version (which won’t touch your existing Spyder install or settings). As always, happy Spydering!';return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.textContent=de,Q=s(),w=o("p"),w.innerHTML=ye,V=s(),v=o("h2"),v.textContent=ce,C=s(),b=o("p"),b.textContent=ke,oe=s(),T=o("figure"),T.innerHTML=fe,le=s(),_=o("p"),_.innerHTML=se,A=s(),S=o("figure"),S.innerHTML=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("figure"),m.innerHTML=be,me=s(),B=o("p"),B.textContent=Ie,pe=s(),K=o("figure"),K.innerHTML=je,W=s(),G=o("h2"),G.textContent=$e,R=s(),D=o("p"),D.textContent=Ue,ge=s(),ne=o("figure"),ne.innerHTML=Ne,xe=s(),X=o("p"),X.innerHTML=Re,_e=s(),Z=o("figure"),Z.innerHTML=We,g=s(),L=o("h2"),L.textContent=Ve,U=s(),J=o("p"),J.innerHTML=Ze,N=s(),Y=o("figure"),Y.innerHTML=Ye,ze=s(),we=o("p"),we.innerHTML=Xe,Fe=s(),ve=o("h2"),ve.textContent=Be,q=s(),ee=o("p"),ee.innerHTML=tt,Ae=s(),He=o("figure"),He.innerHTML=ot,De=s(),Me=o("p"),Me.innerHTML=lt,Ge=s(),Pe=o("h2"),Pe.textContent=nt,$=s(),te=o("p"),te.textContent=at,Qe=s(),Le=o("figure"),Le.innerHTML=it,Je=s(),Ee=o("h2"),Ee.textContent=et,h=s(),E=o("p"),E.textContent=st,ut=s(),Ke=o("p"),Ke.innerHTML=rt,this.h()},l(z){n=l(z,"P",{"data-svelte-h":!0}),i(n)!=="svelte-1pjt8pm"&&(n.innerHTML=f),p=r(z),d=l(z,"P",{"data-svelte-h":!0}),i(d)!=="svelte-zhmrie"&&(d.innerHTML=a),u=r(z),c=l(z,"P",{"data-svelte-h":!0}),i(c)!=="svelte-lb2uj8"&&(c.textContent=de),Q=r(z),w=l(z,"P",{"data-svelte-h":!0}),i(w)!=="svelte-5six4x"&&(w.innerHTML=ye),V=r(z),v=l(z,"H2",{class:!0,"data-svelte-h":!0}),i(v)!=="svelte-ol1fod"&&(v.textContent=ce),C=r(z),b=l(z,"P",{"data-svelte-h":!0}),i(b)!=="svelte-1bmrtq0"&&(b.textContent=ke),oe=r(z),T=l(z,"FIGURE",{class:!0,"data-svelte-h":!0}),i(T)!=="svelte-16dz6vi"&&(T.innerHTML=fe),le=r(z),_=l(z,"P",{"data-svelte-h":!0}),i(_)!=="svelte-yih7m7"&&(_.innerHTML=se),A=r(z),S=l(z,"FIGURE",{class:!0,"data-svelte-h":!0}),i(S)!=="svelte-11my24m"&&(S.innerHTML=Te),O=r(z),M=l(z,"P",{"data-svelte-h":!0}),i(M)!=="svelte-fqkl9c"&&(M.innerHTML=Se),P=r(z),m=l(z,"FIGURE",{class:!0,"data-svelte-h":!0}),i(m)!=="svelte-1vrve7d"&&(m.innerHTML=be),me=r(z),B=l(z,"P",{"data-svelte-h":!0}),i(B)!=="svelte-qhf1bg"&&(B.textContent=Ie),pe=r(z),K=l(z,"FIGURE",{class:!0,"data-svelte-h":!0}),i(K)!=="svelte-sfupvs"&&(K.innerHTML=je),W=r(z),G=l(z,"H2",{class:!0,"data-svelte-h":!0}),i(G)!=="svelte-11ey9cw"&&(G.textContent=$e),R=r(z),D=l(z,"P",{"data-svelte-h":!0}),i(D)!=="svelte-ode07s"&&(D.textContent=Ue),ge=r(z),ne=l(z,"FIGURE",{class:!0,"data-svelte-h":!0}),i(ne)!=="svelte-1c7t0b7"&&(ne.innerHTML=Ne),xe=r(z),X=l(z,"P",{"data-svelte-h":!0}),i(X)!=="svelte-wh7ow1"&&(X.innerHTML=Re),_e=r(z),Z=l(z,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Z)!=="svelte-1grzy8v"&&(Z.innerHTML=We),g=r(z),L=l(z,"H2",{class:!0,"data-svelte-h":!0}),i(L)!=="svelte-kawc40"&&(L.textContent=Ve),U=r(z),J=l(z,"P",{"data-svelte-h":!0}),i(J)!=="svelte-1odmreo"&&(J.innerHTML=Ze),N=r(z),Y=l(z,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Y)!=="svelte-p657hp"&&(Y.innerHTML=Ye),ze=r(z),we=l(z,"P",{"data-svelte-h":!0}),i(we)!=="svelte-1ymg8ko"&&(we.innerHTML=Xe),Fe=r(z),ve=l(z,"H2",{class:!0,"data-svelte-h":!0}),i(ve)!=="svelte-yoz7vc"&&(ve.textContent=Be),q=r(z),ee=l(z,"P",{"data-svelte-h":!0}),i(ee)!=="svelte-1et6vii"&&(ee.innerHTML=tt),Ae=r(z),He=l(z,"FIGURE",{class:!0,"data-svelte-h":!0}),i(He)!=="svelte-19glf1m"&&(He.innerHTML=ot),De=r(z),Me=l(z,"P",{"data-svelte-h":!0}),i(Me)!=="svelte-xrhmm5"&&(Me.innerHTML=lt),Ge=r(z),Pe=l(z,"H2",{class:!0,"data-svelte-h":!0}),i(Pe)!=="svelte-6yqknk"&&(Pe.textContent=nt),$=r(z),te=l(z,"P",{"data-svelte-h":!0}),i(te)!=="svelte-1tntgzw"&&(te.textContent=at),Qe=r(z),Le=l(z,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Le)!=="svelte-11ysa4v"&&(Le.innerHTML=it),Je=r(z),Ee=l(z,"H2",{class:!0,"data-svelte-h":!0}),i(Ee)!=="svelte-wy0pt7"&&(Ee.textContent=et),h=r(z),E=l(z,"P",{"data-svelte-h":!0}),i(E)!=="svelte-wc8yz6"&&(E.textContent=st),ut=r(z),Ke=l(z,"P",{"data-svelte-h":!0}),i(Ke)!=="svelte-v5m03a"&&(Ke.innerHTML=rt),this.h()},h(){x(v,"class","section"),x(T,"class","figure text-center"),x(S,"class","figure text-center"),x(m,"class","figure text-center"),x(K,"class","figure text-center"),x(G,"class","section"),x(ne,"class","figure text-center"),x(Z,"class","figure text-center"),x(L,"class","section"),x(Y,"class","figure text-center"),x(ve,"class","section"),x(He,"class","figure text-center"),x(Pe,"class","section"),x(Le,"class","figure text-center"),x(Ee,"class","section")},m(z,ie){t(z,n,ie),t(z,p,ie),t(z,d,ie),t(z,u,ie),t(z,c,ie),t(z,Q,ie),t(z,w,ie),t(z,V,ie),t(z,v,ie),t(z,C,ie),t(z,b,ie),t(z,oe,ie),t(z,T,ie),t(z,le,ie),t(z,_,ie),t(z,A,ie),t(z,S,ie),t(z,O,ie),t(z,M,ie),t(z,P,ie),t(z,m,ie),t(z,me,ie),t(z,B,ie),t(z,pe,ie),t(z,K,ie),t(z,W,ie),t(z,G,ie),t(z,R,ie),t(z,D,ie),t(z,ge,ie),t(z,ne,ie),t(z,xe,ie),t(z,X,ie),t(z,_e,ie),t(z,Z,ie),t(z,g,ie),t(z,L,ie),t(z,U,ie),t(z,J,ie),t(z,N,ie),t(z,Y,ie),t(z,ze,ie),t(z,we,ie),t(z,Fe,ie),t(z,ve,ie),t(z,q,ie),t(z,ee,ie),t(z,Ae,ie),t(z,He,ie),t(z,De,ie),t(z,Me,ie),t(z,Ge,ie),t(z,Pe,ie),t(z,$,ie),t(z,te,ie),t(z,Qe,ie),t(z,Le,ie),t(z,Je,ie),t(z,Ee,ie),t(z,h,ie),t(z,E,ie),t(z,ut,ie),t(z,Ke,ie)},p:yt,d(z){z&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(ze),e(we),e(Fe),e(ve),e(q),e(ee),e(Ae),e(He),e(De),e(Me),e(Ge),e(Pe),e($),e(te),e(Qe),e(Le),e(Je),e(Ee),e(h),e(E),e(ut),e(Ke))}}}function Hl(k){let n,f;const p=[k[0],bn];let d={$$slots:{default:[Pl]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Ll=class extends ht{constructor(n){super(),ct(this,n,Ml,Hl,pt,{})}};const Il=Object.freeze(Object.defineProperty({__proto__:null,default:Ll,metadata:bn},Symbol.toStringTag,{value:"Module"}));function jl(k){let n,f='This blogpost was originally published on the Quansight Labs website',p,d,a=`TDK-Micronas is sponsoring Spyder development efforts through Quansight Labs. -This will enable the development of some features that have been requested by -our users, as well as new features that will help TDK develop custom Spyder -plugins in order to complement their Automatic Test Equipment (ATE’s) in the -development of their Application Specific Integrated Circuits (ASIC’s).`,u,c,de=`At this point it may be useful to clarify the relationship the role of -Quansight Labs in Spyder’s development and the relationship with TDK. To quote -Ralf Gommers (director of Quansight Labs):`,Q,w,ye=`

    “We’re an R&D lab for open source development of core technologies around data -science and scientific computing in Python. And focused on growing communities -around those technologies. That’s how I see it for Spyder as well: Quansight -Labs enables developers to be employed to work on Spyder, and helps with -connecting them to developers of other projects in similar situations. Labs -should be an enabler to let the Spyder project, its community and individual -developers grow. And Labs provides mechanisms to attract and coordinate -funding. Of course the project is still independent. If there are other -funding sources, e.g. donations from individuals to Spyder via OpenCollective, -all the better.”

    `,V,v,ce="Multiple Projects aka Workspaces",C,b,ke=`In its current state Spyder can only handle one active project at a time. -Although in the past we had basic support for workspaces, it was never a fully -functional feature, so to ease development and simplify the user experience, -we decided to remove it in the 3.x series.`,oe,T,fe=`For TDK-Micronas, as well as for a large part of the Spyder user base, the use -of multiple simultaneous projects is a common pattern, so this enhancement -will:`,le,_,se=`
  • Move from a single to a multiple active projects concept
  • Change the name Project Explorer to WorkSpace Explorer.
  • Copying from one project to another is done in the ‘Explorer’ by means of -context menus.
  • `,A,S,Te=`It is worth mentioning that projects are considered an “advanced feature”, -so it will not be forced on users that just want to get some work done. -Projects usage is, and will remain, an optional feature.`,O,M,Se="Project Types",P,m,be=`Since the revamp of Spyder Projects with the 3.x series, the new dialog hinted -at the possibility of creating different types of projects. Currently Spyder -provides an “empty project” project type.`,me,B,Ie='Project creation
    Project creation
    ',pe,K,je="This feature will:",W,G,$e=`
  • Expand the (current) Project Explorer API to handle Project Types.
  • Define and implement the minimal aspects that should be extensible by a -Project Type
  • `,R,D,Ue="File Associations",ge,ne,Ne=`Spyder currently supports opening files on the Project and File Explorer -using the (default) Operating System defined applications. We will enhance -this by adding Global file associations as part of the Preferences -and Project Specific associations as part of the Project Preferences. -This will give users more power to select the tool or set of tools that they -prefer to use for specific projects and tasks directly on the File and Project -Explorer pane.`,xe,X,Re="URL Awareness",_e,Z,We=`Working with projects requires access to documentation, located within the -computer as other files or links located over the internet. We will now -include integration for URI detection within the editor so users can -Ctrl+Click on these items. This will work similarly as module -inspection works, but generalized to external and internal links.`,g,L,Ve="Git version control enhancements",U,J,Ze=`The revision system of choice by our user base, including TDK, is Git. -The purpose of this enhancement is to enable basic Git integration from -within the File and Project Explorer and to extend the current plugin -API so context menus can be customized with specific Git features and -commands.`,N,Y,Ye=`Initial work has already started to display Git relevant information -on the status bar`,ze,we,Xe='Status bar git
    Status bar git
    ',Fe,ve,Be="Git status is now displayed in the status bar (on the left)",q,ee,tt="Editor alternative views",Ae,He,ot=`There are many circumstances where a user would like to edit a file that might -be rendered using a parsing tool into another type of view. One example of -this is Markdown, the markup language in which this blog post is written and -that can be rendered to HTML. At the moment the only way to achieve this within -Spyder is via the use of a dedicated plugin that would create a new type of -Pane. An example of such a plugin is spyder-reports -(See image below and the Reports pane). The reason why plugins are developed -this way is because the Editor Plugin on Spyder can only contain Code Editor -widgets, which prevents us and other developers to use the Editor to hold -these alternate views of a given file.`,De,Me,lt='Spyder Reports
    Spyder Reports
    ',Ge,Pe,nt=`The new alternative views feature will remove this limitation and enable the -inclusion of generic widgets (views) of different types of files and provide -an API for plugin extensions.`,$,te,at="Closing Remarks",Qe,Le,it=`I would like to thank TDK-Micronas and Quansight for the opportunity to -work in open source development on an awesome product such as Spyder.`,Je,Ee,et=`I would also like to thank the users, -contributors -and core developers for helping -make Spyder an awesome tool!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.textContent=a,u=s(),c=o("p"),c.textContent=de,Q=s(),w=o("blockquote"),w.innerHTML=ye,V=s(),v=o("h2"),v.textContent=ce,C=s(),b=o("p"),b.textContent=ke,oe=s(),T=o("p"),T.textContent=fe,le=s(),_=o("ul"),_.innerHTML=se,A=s(),S=o("p"),S.textContent=Te,O=s(),M=o("h2"),M.textContent=Se,P=s(),m=o("p"),m.textContent=be,me=s(),B=o("figure"),B.innerHTML=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),G=o("ul"),G.innerHTML=$e,R=s(),D=o("h2"),D.textContent=Ue,ge=s(),ne=o("p"),ne.innerHTML=Ne,xe=s(),X=o("h2"),X.textContent=Re,_e=s(),Z=o("p"),Z.innerHTML=We,g=s(),L=o("h2"),L.textContent=Ve,U=s(),J=o("p"),J.textContent=Ze,N=s(),Y=o("p"),Y.textContent=Ye,ze=s(),we=o("figure"),we.innerHTML=Xe,Fe=s(),ve=o("small"),ve.textContent=Be,q=s(),ee=o("h2"),ee.textContent=tt,Ae=s(),He=o("p"),He.innerHTML=ot,De=s(),Me=o("figure"),Me.innerHTML=lt,Ge=s(),Pe=o("p"),Pe.textContent=nt,$=s(),te=o("h2"),te.textContent=at,Qe=s(),Le=o("p"),Le.textContent=it,Je=s(),Ee=o("p"),Ee.innerHTML=et,this.h()},l(h){n=l(h,"P",{"data-svelte-h":!0}),i(n)!=="svelte-1wz2w3n"&&(n.innerHTML=f),p=r(h),d=l(h,"P",{"data-svelte-h":!0}),i(d)!=="svelte-89nr4s"&&(d.textContent=a),u=r(h),c=l(h,"P",{"data-svelte-h":!0}),i(c)!=="svelte-hirzgk"&&(c.textContent=de),Q=r(h),w=l(h,"BLOCKQUOTE",{"data-svelte-h":!0}),i(w)!=="svelte-194ra0z"&&(w.innerHTML=ye),V=r(h),v=l(h,"H2",{class:!0,"data-svelte-h":!0}),i(v)!=="svelte-39xyj3"&&(v.textContent=ce),C=r(h),b=l(h,"P",{"data-svelte-h":!0}),i(b)!=="svelte-vy7895"&&(b.textContent=ke),oe=r(h),T=l(h,"P",{"data-svelte-h":!0}),i(T)!=="svelte-7p7tjc"&&(T.textContent=fe),le=r(h),_=l(h,"UL",{"data-svelte-h":!0}),i(_)!=="svelte-1w77dxh"&&(_.innerHTML=se),A=r(h),S=l(h,"P",{"data-svelte-h":!0}),i(S)!=="svelte-1dm11il"&&(S.textContent=Te),O=r(h),M=l(h,"H2",{class:!0,"data-svelte-h":!0}),i(M)!=="svelte-tffyri"&&(M.textContent=Se),P=r(h),m=l(h,"P",{"data-svelte-h":!0}),i(m)!=="svelte-d46gag"&&(m.textContent=be),me=r(h),B=l(h,"FIGURE",{class:!0,"data-svelte-h":!0}),i(B)!=="svelte-18zied2"&&(B.innerHTML=Ie),pe=r(h),K=l(h,"P",{"data-svelte-h":!0}),i(K)!=="svelte-1jp4yz4"&&(K.textContent=je),W=r(h),G=l(h,"UL",{"data-svelte-h":!0}),i(G)!=="svelte-bodz6j"&&(G.innerHTML=$e),R=r(h),D=l(h,"H2",{class:!0,"data-svelte-h":!0}),i(D)!=="svelte-a5agc"&&(D.textContent=Ue),ge=r(h),ne=l(h,"P",{"data-svelte-h":!0}),i(ne)!=="svelte-r42ead"&&(ne.innerHTML=Ne),xe=r(h),X=l(h,"H2",{class:!0,"data-svelte-h":!0}),i(X)!=="svelte-1wpheau"&&(X.textContent=Re),_e=r(h),Z=l(h,"P",{"data-svelte-h":!0}),i(Z)!=="svelte-pnkj4r"&&(Z.innerHTML=We),g=r(h),L=l(h,"H2",{class:!0,"data-svelte-h":!0}),i(L)!=="svelte-c0fzzy"&&(L.textContent=Ve),U=r(h),J=l(h,"P",{"data-svelte-h":!0}),i(J)!=="svelte-1vxpn4r"&&(J.textContent=Ze),N=r(h),Y=l(h,"P",{"data-svelte-h":!0}),i(Y)!=="svelte-11f51nv"&&(Y.textContent=Ye),ze=r(h),we=l(h,"FIGURE",{class:!0,"data-svelte-h":!0}),i(we)!=="svelte-1gilcv0"&&(we.innerHTML=Xe),Fe=r(h),ve=l(h,"SMALL",{"data-svelte-h":!0}),i(ve)!=="svelte-1d84hxu"&&(ve.textContent=Be),q=r(h),ee=l(h,"H2",{class:!0,"data-svelte-h":!0}),i(ee)!=="svelte-121xd8m"&&(ee.textContent=tt),Ae=r(h),He=l(h,"P",{"data-svelte-h":!0}),i(He)!=="svelte-1w1g9e1"&&(He.innerHTML=ot),De=r(h),Me=l(h,"FIGURE",{class:!0,"data-svelte-h":!0}),i(Me)!=="svelte-1iodvog"&&(Me.innerHTML=lt),Ge=r(h),Pe=l(h,"P",{"data-svelte-h":!0}),i(Pe)!=="svelte-zs1sj3"&&(Pe.textContent=nt),$=r(h),te=l(h,"H2",{class:!0,"data-svelte-h":!0}),i(te)!=="svelte-19du5tw"&&(te.textContent=at),Qe=r(h),Le=l(h,"P",{"data-svelte-h":!0}),i(Le)!=="svelte-1xw2w4l"&&(Le.textContent=it),Je=r(h),Ee=l(h,"P",{"data-svelte-h":!0}),i(Ee)!=="svelte-19xo1zm"&&(Ee.innerHTML=et),this.h()},h(){x(v,"class","section"),x(M,"class","section"),x(B,"class","figure text-center"),x(D,"class","section"),x(X,"class","section"),x(L,"class","section"),x(we,"class","figure text-center"),x(ee,"class","section"),x(Me,"class","figure text-center"),x(te,"class","section")},m(h,E){t(h,n,E),t(h,p,E),t(h,d,E),t(h,u,E),t(h,c,E),t(h,Q,E),t(h,w,E),t(h,V,E),t(h,v,E),t(h,C,E),t(h,b,E),t(h,oe,E),t(h,T,E),t(h,le,E),t(h,_,E),t(h,A,E),t(h,S,E),t(h,O,E),t(h,M,E),t(h,P,E),t(h,m,E),t(h,me,E),t(h,B,E),t(h,pe,E),t(h,K,E),t(h,W,E),t(h,G,E),t(h,R,E),t(h,D,E),t(h,ge,E),t(h,ne,E),t(h,xe,E),t(h,X,E),t(h,_e,E),t(h,Z,E),t(h,g,E),t(h,L,E),t(h,U,E),t(h,J,E),t(h,N,E),t(h,Y,E),t(h,ze,E),t(h,we,E),t(h,Fe,E),t(h,ve,E),t(h,q,E),t(h,ee,E),t(h,Ae,E),t(h,He,E),t(h,De,E),t(h,Me,E),t(h,Ge,E),t(h,Pe,E),t(h,$,E),t(h,te,E),t(h,Qe,E),t(h,Le,E),t(h,Je,E),t(h,Ee,E)},p:yt,d(h){h&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G),e(R),e(D),e(ge),e(ne),e(xe),e(X),e(_e),e(Z),e(g),e(L),e(U),e(J),e(N),e(Y),e(ze),e(we),e(Fe),e(ve),e(q),e(ee),e(Ae),e(He),e(De),e(Me),e(Ge),e(Pe),e($),e(te),e(Qe),e(Le),e(Je),e(Ee))}}}function El(k){let n,f;const p=[k[0],xn];let d={$$slots:{default:[jl]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Fl=class extends ht{constructor(n){super(),ct(this,n,zl,El,pt,{})}};const $l=Object.freeze(Object.defineProperty({__proto__:null,default:Fl,metadata:xn},Symbol.toStringTag,{value:"Module"}));function Al(k){let n,f='This blogpost was originally published on the Quansight Labs website.',p,d,a=`I joined the Spyder team almost two years ago, and I never thought I was going to end up working on docs. -Six months ago I started a project with CAM Gerlach and Carlos Cordoba to improve Spyder’s documentation. -At first, I didn’t actually understand how important docs are for software, especially for open source projects. -However, during all this time I’ve learned how documentation has a huge impact on the open-source community and I’ve been thankful to have been able to do this. -But, from the beginning, I asked myself “why am I the ‘right person’ for this?”`,u,c,de=`Improving Spyder’s documentation started as part of a NumFOCUS Small Development Grant awarded at the end of last year. -The goal of the project was not only to update the documentation for Spyder 4, but also to make it more user-friendly, so users can understand Spyder’s key concepts and get started with it more easily.`,Q,w,ye="One of the main ideas for this project was to create a series of short video tutorials, explaining the basic functionality of Spyder and its most important panes, allowing users to learn how to use Spyder faster and easier.",V,v,ce="Carlos Cordoba, our lead maintainer, thought I was the perfect person for this project because of my “good communication and organization skills”, my “clear and fluent English” (his words) and my previous experience at video editing and recording, which I actually gained by recording singing videos during my “YouTuber” phase.",C,b,ke=`I’ve always been interested in education and worked as a tutor for several years learning different tools, gaining experience on how to teach and questioning the effectiveness of current educational methods. -This was the first reason why I got interested in this project. -For me, documentation is just a fancy way of saying “educating people on using software”. -The challenge here was not recording and editing the videos (which was actually a pretty arduous task), or planning the content for them; the real challenge was to make an impact in such a way that users could find documentation actually useful.`,oe,T,fe=`When users start to use a new IDE, or any new software, they usually refer to its documentation, which sometimes doesn’t give enough tools for them to start from zero. -This was, then, the whole purpose of the tutorial videos. -Spyder’s documentation was already very complete in terms of explaining all the features and cool things you can do with each of its panes. -However, if I’m a completely new user and I don’t even know how to open it, where do I start?`,le,_,se=`I planned these videos as a series of progressive steps that can get users from zero experience to actually working with Spyder. -Hence, I divided the videos into three sections, “First Steps with Spyder”, “Working with Spyder”, and “Building Projects with Spyder”. -Each section builds on the one before in a way that they are clear enough so that users can find their way through Spyder without knowing anything about it.`,A,S,Te=`The “First Steps with Spyder” section, live now on our YouTube channel, has three videos that provide a starting point for new users before they even open Spyder for the first time. -The first tutorial covers different ways of opening Spyder, the basics of using its interface and an introduction to its four main panes, along with a quick look at the others so that users can get familiar with how Spyder is organized.`,O,M,Se=`In the second video, users can learn the basics of using Spyder’s four main panes. -The goal is that after this video, users are able to open and edit a file in the Editor, run a script and find the output in Spyder’s IPython Console and execute basic Python commands. -They should be able to interact with the Variable Explorer to browse and edit the objects in the console, and use the Help pane to get documentation in two different ways.`,P,m,be=`The third video is meant to show users how to customize Spyder’s interface to start working with it in the way they feel more comfortable according to their preferences. -It teaches users how to change the font and the theme of Spyder and rearrange its panes to display only the ones that they want such that it is easier for them to work.`,me,B,Ie=`After these three videos, I learned that one of the most important things for writing documentation, more than having a lot of experience with the software, is empathy. -Usually being a developer makes it hard to put yourself in the position of a user and understand exactly what a user needs. -Now, I realize that this is what actually makes me the “perfect person” for the project. -As a junior developer, without as much experience with Spyder, I was able to think more like new users and develop content in a way that they feel closer to us developers. -In the end, as Melissa said in her blog post, I learned writing documentation is also a way of building community.`,pe,K,je="I hope these videos are really useful, and I look forward to continue finding ways of making the open source community better.",W,G,$e="Happy Spydering!";return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("p"),w.textContent=ye,V=s(),v=o("p"),v.textContent=ce,C=s(),b=o("p"),b.textContent=ke,oe=s(),T=o("p"),T.textContent=fe,le=s(),_=o("p"),_.textContent=se,A=s(),S=o("p"),S.innerHTML=Te,O=s(),M=o("p"),M.innerHTML=Se,P=s(),m=o("p"),m.innerHTML=be,me=s(),B=o("p"),B.innerHTML=Ie,pe=s(),K=o("p"),K.textContent=je,W=s(),G=o("p"),G.textContent=$e},l(R){n=l(R,"P",{"data-svelte-h":!0}),i(n)!=="svelte-1c3xat3"&&(n.innerHTML=f),p=r(R),d=l(R,"P",{"data-svelte-h":!0}),i(d)!=="svelte-1ekmroj"&&(d.innerHTML=a),u=r(R),c=l(R,"P",{"data-svelte-h":!0}),i(c)!=="svelte-3uobbg"&&(c.innerHTML=de),Q=r(R),w=l(R,"P",{"data-svelte-h":!0}),i(w)!=="svelte-1nsl4ig"&&(w.textContent=ye),V=r(R),v=l(R,"P",{"data-svelte-h":!0}),i(v)!=="svelte-13wakb2"&&(v.textContent=ce),C=r(R),b=l(R,"P",{"data-svelte-h":!0}),i(b)!=="svelte-8i2tyt"&&(b.textContent=ke),oe=r(R),T=l(R,"P",{"data-svelte-h":!0}),i(T)!=="svelte-1taoegn"&&(T.textContent=fe),le=r(R),_=l(R,"P",{"data-svelte-h":!0}),i(_)!=="svelte-ovfvik"&&(_.textContent=se),A=r(R),S=l(R,"P",{"data-svelte-h":!0}),i(S)!=="svelte-uwjnw4"&&(S.innerHTML=Te),O=r(R),M=l(R,"P",{"data-svelte-h":!0}),i(M)!=="svelte-q2p4uz"&&(M.innerHTML=Se),P=r(R),m=l(R,"P",{"data-svelte-h":!0}),i(m)!=="svelte-4qc8rx"&&(m.innerHTML=be),me=r(R),B=l(R,"P",{"data-svelte-h":!0}),i(B)!=="svelte-ixkqq3"&&(B.innerHTML=Ie),pe=r(R),K=l(R,"P",{"data-svelte-h":!0}),i(K)!=="svelte-aq4wil"&&(K.textContent=je),W=r(R),G=l(R,"P",{"data-svelte-h":!0}),i(G)!=="svelte-11fpu20"&&(G.textContent=$e)},m(R,D){t(R,n,D),t(R,p,D),t(R,d,D),t(R,u,D),t(R,c,D),t(R,Q,D),t(R,w,D),t(R,V,D),t(R,v,D),t(R,C,D),t(R,b,D),t(R,oe,D),t(R,T,D),t(R,le,D),t(R,_,D),t(R,A,D),t(R,S,D),t(R,O,D),t(R,M,D),t(R,P,D),t(R,m,D),t(R,me,D),t(R,B,D),t(R,pe,D),t(R,K,D),t(R,W,D),t(R,G,D)},p:yt,d(R){R&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v),e(C),e(b),e(oe),e(T),e(le),e(_),e(A),e(S),e(O),e(M),e(P),e(m),e(me),e(B),e(pe),e(K),e(W),e(G))}}}function Gl(k){let n,f;const p=[k[0],kn];let d={$$slots:{default:[Al]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}let Ol=class extends ht{constructor(n){super(),ct(this,n,ql,Gl,pt,{})}};const Ul=Object.freeze(Object.defineProperty({__proto__:null,default:Ol,metadata:kn},Symbol.toStringTag,{value:"Module"}));function Dl(k){let n,f=`Quansight, the company recently founded by NumPy, SciPy and Anaconda creator Travis Oliphant to help connect companies with open source communities built around data science and machine learning, just released Episode 1 of its live webcast series, and it was all about Spyder! -Spyder maintainer Carlos Córdoba, recently hired by Quansight and funded part-time to work on Spyder development as we announced a few weeks ago, was the featured guest on the show.`,p,d,a=`Carlos first shared his perspective on some of the key moments in Spyder’s nearly 10-year development history, from its original creation by Pierre Raybaut and Carlos’ initial involvement in the project to its more recent challenges and successes. -He also demonstrated basic usage of Spyder, as well as some of its standout features, in a live on-screen demo. -Carlos then went on to outline the current roadmap for Spyder 4 in the near future, and explained some of the key new features planned for it. -Finally, he took the time to answer a variety of Spyder-related questions asked live by viewers, ranging from specific current and planned Spyder features to suggestions on keeping a good work-life balance. -While technical difficulties (since identified and resolved) interrupted some of his commentary, particularly in the roadmap section, a full account of the latter will be published here shortly.`,u,c,de=`If you missed the webcast, Quansight recorded it and uploaded it to their new Youtube channel, so you can watch it on-demand right here if you’re curious about any of the above. -Give it a like if you enjoy it to show Quansight some love for helping support Spyder’s further development!`,Q,w,ye,V,v,ce=`We’ll have a new post on the release of Spyder 3.3.1 (and 3.3.0) in a few days time, plus articles on our new docs, Spyder 4 beta 1, and our full roadmap all in the next week or so; there’s plenty going on that you won’t want to miss. -Keep it right here to catch all that—and in the meantime, happy Spydering!`;return{c(){n=o("p"),n.innerHTML=f,p=s(),d=o("p"),d.innerHTML=a,u=s(),c=o("p"),c.innerHTML=de,Q=s(),w=o("iframe"),V=s(),v=o("p"),v.textContent=ce,this.h()},l(C){n=l(C,"P",{"data-svelte-h":!0}),i(n)!=="svelte-1ekiaxh"&&(n.innerHTML=f),p=r(C),d=l(C,"P",{"data-svelte-h":!0}),i(d)!=="svelte-4osmhr"&&(d.innerHTML=a),u=r(C),c=l(C,"P",{"data-svelte-h":!0}),i(c)!=="svelte-8641gl"&&(c.innerHTML=de),Q=r(C),w=l(C,"IFRAME",{title:!0,width:!0,height:!0,src:!0,frameborder:!0,allow:!0}),Ht(w).forEach(e),V=r(C),v=l(C,"P",{"data-svelte-h":!0}),i(v)!=="svelte-319fyz"&&(v.textContent=ce),this.h()},h(){x(w,"title","Episode 1"),x(w,"width","640"),x(w,"height","360"),Kt(w.src,ye="https://www.youtube-nocookie.com/embed/vtLdH4VbACA")||x(w,"src",ye),x(w,"frameborder","0"),x(w,"allow","autoplay; encrypted-media"),w.allowFullscreen=!0},m(C,b){t(C,n,b),t(C,p,b),t(C,d,b),t(C,u,b),t(C,c,b),t(C,Q,b),t(C,w,b),t(C,V,b),t(C,v,b)},p:yt,d(C){C&&(e(n),e(p),e(d),e(u),e(c),e(Q),e(w),e(V),e(v))}}}function Rl(k){let n,f;const p=[k[0],_n];let d={$$slots:{default:[Dl]},$$scope:{ctx:k}};for(let a=0;a{f(0,n=Ce(Ce({},n),qe(p)))},n=qe(n),[n]}class Nl extends ht{constructor(n){super(),ct(this,n,Wl,Rl,pt,{})}}const Ql=Object.freeze(Object.defineProperty({__proto__:null,default:Nl,metadata:_n},Symbol.toStringTag,{value:"Module"})),_i=async(k,n)=>{const d=Object.entries(Object.assign({"/src/routes/blog/STX-interview/+page.md":Rn,"/src/routes/blog/cbi-installers/+page.md":Bn,"/src/routes/blog/czi-grant/+page.md":Xn,"/src/routes/blog/installer-improvements/+page.md":lo,"/src/routes/blog/introducing-unittest-plugin/+page.md":uo,"/src/routes/blog/introducing-watchlist-plugin/+page.md":mo,"/src/routes/blog/release-qtconsole-440/+page.md":bo,"/src/routes/blog/release-spyder-330/+page.md":To,"/src/routes/blog/release-spyder-4/+page.md":Lo,"/src/routes/blog/release-spyder-4beta2/+page.md":Fo,"/src/routes/blog/reusable-research-bof-scipy-2023-part-2/+page.md":Oo,"/src/routes/blog/reusable-research-bof-scipy-2023/+page.md":No,"/src/routes/blog/spyder-debugger/+page.md":Ko,"/src/routes/blog/spyder-files-improvements/+page.md":tl,"/src/routes/blog/spyder-kite-funding/+page.md":al,"/src/routes/blog/spyder-roadmap-proposals-2022/+page.md":pl,"/src/routes/blog/spyder-status-2018-past/+page.md":yl,"/src/routes/blog/spyder-status-2018-present/+page.md":xl,"/src/routes/blog/spyder-terminal-030/+page.md":Sl,"/src/routes/blog/spyder-variable-explorer/+page.md":Il,"/src/routes/blog/tdk-micronas-partners-with-quansight-labs/+page.md":$l,"/src/routes/blog/tutorial-docs/+page.md":Ul,"/src/routes/blog/webcast-quansight-ep1/+page.md":Ql})).map(([w,ye])=>{const{metadata:V}=ye,v=w.split("/");v.pop();const ce=v.slice(-1).join("/");return{meta:V,path:ce}}),a=Bl(d),u=(k-1)*n,c=u+n,de=a.slice(u,c),Q=Math.ceil(a.length/n);return{posts:de,pageNum:k,totalPages:Q}};function Sn(k){const n={year:"numeric",month:"long",day:"numeric"};return new Date(k).toLocaleDateString("en-US",n)}async function Vl(k){try{const n=await fetch(`/assets/authors/${k}/metadata.json`);if(!n.ok)throw new Error("Failed to load author metadata");const f=await n.json();return{src:`/assets/authors/${k}/${f.image}`,name:f.name}}catch(n){return console.error("Failed to load author metadata:",n),null}}const Bl=k=>k.sort((n,f)=>new Date(f.meta.pub_date)-new Date(n.meta.pub_date)),Ci=k=>Math.random().toString(24).replace(/[^a-z]+/g,""),Ti=()=>{{const k=navigator.userAgent.toLowerCase(),n={mac:["mac"],windows:["win"],linux:["linux"]};for(const f in n)if(n[f].some(p=>k.includes(p)))return f}},Si=(k,n)=>{let f=[{}],p="";return n==="windows"?p="for Windows 10+":n==="linux"?p="for Ubuntu 18.04+":n==="mac"&&(p="for macOS",f=[{highlight:!0,icon:`${n}`,text:`Download ${p} (M1)`,href:`${k}/download?os=${n}&arch=arm64`},{highlight:!0,icon:`${n}`,text:`Download ${p} (Intel)`,href:`${k}/download?os=${n}&arch=x64`}]),(n==="windows"||n==="linux")&&(f=[{highlight:!0,icon:`${n}`,text:`Download ${p}`,href:`${k}/download?os=${n}&arch=x64`}]),f};async function Pi(k){try{return(await $n(()=>import("./index.D7Jwt5yH.js"),[],import.meta.url))[k]}catch(n){return console.error(`Failed to load icon: ${k}`,n),null}}export{Fl as A,Ol as B,Nl as C,Dn as P,Vl as a,Sn as b,Si as c,Pi as d,Vn as e,_i as f,Ti as g,Yn as h,oo as i,ro as j,fo as k,vo as l,Co as m,Mo as n,zo as o,Wo as p,qo as q,Ci as r,Jo as s,el as t,il as u,dl as v,ml as w,bl as x,Tl as y,Ll as z}; diff --git a/_app/immutable/chunks/Blog.Ok4J1JLa.js b/_app/immutable/chunks/Blog.Ok4J1JLa.js deleted file mode 100644 index b7db3dcb..00000000 --- a/_app/immutable/chunks/Blog.Ok4J1JLa.js +++ /dev/null @@ -1 +0,0 @@ -import{s as re,o as oe,a as fe,n as ue,b as W}from"./scheduler.CZFVEtgY.js";import{S as se,i as ie,e as E,s as L,c as M,f as N,h as y,d as p,a as _,b as S,j as c,l as I,m as O,t as A,k as z,o as T,p as $,q as H,r as G,u as j,v as B,n as ce,w as C}from"./index.DjvOVdNM.js";import{B as ne,e as X}from"./Button.Bc5NNSmk.js";import{b as V}from"./paths.CQpuyKeJ.js";import{m as Y}from"./index.Ch6n4Zkw.js";import{a as he,b as Z}from"./28.D5QBwc6E.js";import{b as F,t as me,d as _e,k as ge,a as de}from"./index.CXB4hq09.js";import{L as pe}from"./Loader.CgdetROw.js";function x(n){let e,r;return e=new ne({props:{icon:"chevronLeft",href:V+"/"+n[2]+"/"+(n[0]-1),text:"Previous",iconPosition:"left",highlight:!0}}),{c(){T(e.$$.fragment)},l(t){$(e.$$.fragment,t)},m(t,s){H(e,t,s),r=!0},p(t,s){const i={};s&5&&(i.href=V+"/"+t[2]+"/"+(t[0]-1)),e.$set(i)},i(t){r||(I(e.$$.fragment,t),r=!0)},o(t){A(e.$$.fragment,t),r=!1},d(t){G(e,t)}}}function ee(n){let e,r;return e=new ne({props:{icon:"chevronRight",href:V+"/"+n[2]+"/"+(n[0]+1),text:"Next",iconPosition:"right",highlight:!0}}),{c(){T(e.$$.fragment)},l(t){$(e.$$.fragment,t)},m(t,s){H(e,t,s),r=!0},p(t,s){const i={};s&5&&(i.href=V+"/"+t[2]+"/"+(t[0]+1)),e.$set(i)},i(t){r||(I(e.$$.fragment,t),r=!0)},o(t){A(e.$$.fragment,t),r=!1},d(t){G(e,t)}}}function ve(n){let e,r,t,s=n[0]>1&&x(n),i=n[0]1?s?(s.p(a,l),l&1&&I(s,1)):(s=x(a),s.c(),I(s,1),s.m(e,r)):s&&(O(),A(s,1,1,()=>{s=null}),z()),a[0]{i=null}),z())},i(a){t||(I(s),I(i),t=!0)},o(a){A(s),A(i),t=!1},d(a){a&&p(e),s&&s.d(),i&&i.d()}}}function be(n,e,r){let{pageNum:t}=e,{totalPages:s}=e,{route:i}=e;return n.$$set=a=>{"pageNum"in a&&r(0,t=a.pageNum),"totalPages"in a&&r(1,s=a.totalPages),"route"in a&&r(2,i=a.route)},[t,s,i]}class ke extends se{constructor(e){super(),ie(this,e,be,ve,re,{pageNum:0,totalPages:1,route:2})}}function te(n,e,r){const t=n.slice();return t[5]=e[r],t}function Pe(n){let e,r;return e=new pe({props:{classes:"fill-black dark:fill-white"}}),{c(){T(e.$$.fragment)},l(t){$(e.$$.fragment,t)},m(t,s){H(e,t,s),r=!0},p:ue,i(t){r||(I(e.$$.fragment,t),r=!0)},o(t){A(e.$$.fragment,t),r=!1},d(t){G(e,t)}}}function we(n){let e,r,t,s,i=X(n[2]),a=[];for(let l=0;l{f[m]=null}),z(),l=f[a],l?l.p(h,g):(l=f[a]=u[a](h),l.c()),I(l,1),l.m(i,null))},i(h){o||(I(l),o=!0)},o(h){A(l),o=!1},d(h){h&&p(e),f[a].d()}}}let q="blog";function Me(n,e,r){let{data:t={}}=e,{pageNum:s=0}=e,{totalPages:i=1}=e,a=[];async function l(){const o=t.props.posts.map(async u=>{let f={};return typeof window<"u"&&(f=await he(u.meta.author)),{...u,authorMetadata:f}});r(2,a=await Promise.all(o)),r(0,s=t.props.pageNum),r(1,i=t.props.totalPages)}return oe(()=>{Y.setMetadata({title:`${me} | ${F}`,description:_e,keywords:ge.join(", "),author:de})}),fe(()=>{Y.reset()}),n.$$set=o=>{"data"in o&&r(3,t=o.data),"pageNum"in o&&r(0,s=o.pageNum),"totalPages"in o&&r(1,i=o.totalPages)},n.$$.update=()=>{n.$$.dirty&1&&s&&l()},[s,i,a,t]}class Be extends se{constructor(e){super(),ie(this,e,Me,Ee,re,{data:3,pageNum:0,totalPages:1})}}export{Be as B}; diff --git a/_app/immutable/chunks/Blog.Sphi6VKa.js b/_app/immutable/chunks/Blog.Sphi6VKa.js new file mode 100644 index 00000000..b1fa3b86 --- /dev/null +++ b/_app/immutable/chunks/Blog.Sphi6VKa.js @@ -0,0 +1 @@ +import{s as re,o as oe,a as fe,n as ue,b as W}from"./scheduler.CZFVEtgY.js";import{S as se,i as ie,e as E,s as D,c as M,f as N,h as L,d as p,a as m,b as S,j as c,l as y,m as O,t as I,k as z,o as T,p as $,q as H,r as G,u as j,v as B,n as ce,w as C}from"./index.CNd5CZrX.js";import{B as ne,e as X}from"./Button.Bg-1Yv3Z.js";import{b as V}from"./paths.BCdhk5uV.js";import{m as Y,a as he,b as Z}from"./28.BXboE3l1.js";import{b as F,t as me,d as _e,k as ge,a as de}from"./index.BMEkiqFO.js";import{L as pe}from"./Loader.lmq2X6M7.js";function x(n){let e,r;return e=new ne({props:{icon:"chevronLeft",href:V+"/"+n[2]+"/"+(n[0]-1),text:"Previous",iconPosition:"left",highlight:!0}}),{c(){T(e.$$.fragment)},l(t){$(e.$$.fragment,t)},m(t,s){H(e,t,s),r=!0},p(t,s){const i={};s&5&&(i.href=V+"/"+t[2]+"/"+(t[0]-1)),e.$set(i)},i(t){r||(y(e.$$.fragment,t),r=!0)},o(t){I(e.$$.fragment,t),r=!1},d(t){G(e,t)}}}function ee(n){let e,r;return e=new ne({props:{icon:"chevronRight",href:V+"/"+n[2]+"/"+(n[0]+1),text:"Next",iconPosition:"right",highlight:!0}}),{c(){T(e.$$.fragment)},l(t){$(e.$$.fragment,t)},m(t,s){H(e,t,s),r=!0},p(t,s){const i={};s&5&&(i.href=V+"/"+t[2]+"/"+(t[0]+1)),e.$set(i)},i(t){r||(y(e.$$.fragment,t),r=!0)},o(t){I(e.$$.fragment,t),r=!1},d(t){G(e,t)}}}function ve(n){let e,r,t,s=n[0]>1&&x(n),i=n[0]1?s?(s.p(a,l),l&1&&y(s,1)):(s=x(a),s.c(),y(s,1),s.m(e,r)):s&&(O(),I(s,1,1,()=>{s=null}),z()),a[0]{i=null}),z())},i(a){t||(y(s),y(i),t=!0)},o(a){I(s),I(i),t=!1},d(a){a&&p(e),s&&s.d(),i&&i.d()}}}function be(n,e,r){let{pageNum:t}=e,{totalPages:s}=e,{route:i}=e;return n.$$set=a=>{"pageNum"in a&&r(0,t=a.pageNum),"totalPages"in a&&r(1,s=a.totalPages),"route"in a&&r(2,i=a.route)},[t,s,i]}class ke extends se{constructor(e){super(),ie(this,e,be,ve,re,{pageNum:0,totalPages:1,route:2})}}function te(n,e,r){const t=n.slice();return t[5]=e[r],t}function Pe(n){let e,r;return e=new pe({props:{classes:"fill-black dark:fill-white"}}),{c(){T(e.$$.fragment)},l(t){$(e.$$.fragment,t)},m(t,s){H(e,t,s),r=!0},p:ue,i(t){r||(y(e.$$.fragment,t),r=!0)},o(t){I(e.$$.fragment,t),r=!1},d(t){G(e,t)}}}function we(n){let e,r,t,s,i=X(n[2]),a=[];for(let l=0;l{f[_]=null}),z(),l=f[a],l?l.p(h,g):(l=f[a]=u[a](h),l.c()),y(l,1),l.m(i,null))},i(h){o||(y(l),o=!0)},o(h){I(l),o=!1},d(h){h&&p(e),f[a].d()}}}let q="blog";function Me(n,e,r){let{data:t={}}=e,{pageNum:s=0}=e,{totalPages:i=1}=e,a=[];async function l(){const o=t.props.posts.map(async u=>{let f={};return typeof window<"u"&&(f=await he(u.meta.author)),{...u,authorMetadata:f}});r(2,a=await Promise.all(o)),r(0,s=t.props.pageNum),r(1,i=t.props.totalPages)}return oe(()=>{Y.setMetadata({title:`${me} | ${F}`,description:_e,keywords:ge.join(", "),author:de})}),fe(()=>{Y.reset()}),n.$$set=o=>{"data"in o&&r(3,t=o.data),"pageNum"in o&&r(0,s=o.pageNum),"totalPages"in o&&r(1,i=o.totalPages)},n.$$.update=()=>{n.$$.dirty&1&&s&&l()},[s,i,a,t]}class je extends se{constructor(e){super(),ie(this,e,Me,Ee,re,{data:3,pageNum:0,totalPages:1})}}export{je as B}; diff --git a/_app/immutable/chunks/Button.Bc5NNSmk.js b/_app/immutable/chunks/Button.Bc5NNSmk.js deleted file mode 100644 index 7ae5edfc..00000000 --- a/_app/immutable/chunks/Button.Bc5NNSmk.js +++ /dev/null @@ -1 +0,0 @@ -import{t as z,l as A,S as W,i as X,x as Z,H as x,y as p,f as C,D as $,d as k,E as G,b as E,e as H,s as L,c as M,h as Q,a as _,C as u,j as q,o as y,p as J,q as K,r as O,u as ee,v as te,w as ne}from"./index.DjvOVdNM.js";import{r as le,s as V,g as ie,n as R}from"./scheduler.CZFVEtgY.js";import{g as se}from"./index.CXB4hq09.js";import{BsFacebook as fe,BsGithub as ae,BsInstagram as oe,BsMastodon as re,BsTwitterX as he,BsWindows as ue,BsUbuntu as ce,BsApple as ge,BsQuestionCircleFill as me,BsDownload as we}from"./index.D7Jwt5yH.js";function Ae(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function Ce(t,e){z(t,1,1,()=>{e.delete(t.key)})}function Ee(t,e,l,a,n,s,i,o,f,r,w,g){let m=t.length,b=s.length,d=m;const N={};for(;d--;)N[t[d].key]=d;const P=[],S=new Map,h=new Map,D=[];for(d=b;d--;){const c=g(n,s,d),v=l(c);let B=i.get(v);B?D.push(()=>B.p(c,e)):(B=r(v,c),B.c()),S.set(v,P[d]=B),v in N&&h.set(v,Math.abs(d-N[v]))}const F=new Set,T=new Set;function j(c){A(c,1),c.m(o,w),i.set(c.key,c),w=c.first,b--}for(;m&&b;){const c=P[b-1],v=t[m-1],B=c.key,I=v.key;c===v?(w=c.first,m--,b--):S.has(I)?!i.has(B)||F.has(B)?j(c):T.has(I)?m--:h.get(B)>h.get(I)?(T.add(B),j(c)):(F.add(I),m--):(f(v,i),m--)}for(;m--;){const c=t[m];S.has(c.key)||f(c,i)}for(;b;)j(P[b-1]);return le(D),P}function _e(t){let e,l,a,n=[{width:t[1]},{height:t[1]},{viewBox:t[2]},{style:a=t[3]?"color: "+t[3]+";":""},{"stroke-width":"0"},{class:t[4]},t[0].a,t[6],{xmlns:"http://www.w3.org/2000/svg"}],s={};for(let i=0;i{"src"in g&&l(0,a=g.src),"size"in g&&l(1,n=g.size),"viewBox"in g&&l(2,s=g.viewBox),"color"in g&&l(3,i=g.color),"title"in g&&l(7,o=g.title),"className"in g&&l(4,f=g.className)},t.$$.update=()=>{t.$$.dirty&9&&(l(6,w={}),i&&(a.a.stroke!=="none"&&l(6,w.stroke="currentColor",w),a.a.fill!=="none"&&l(6,w.fill="currentColor",w))),t.$$.dirty&129&&l(5,r=(o?`${o}`:"")+a.c)},[a,n,s,i,f,r,w,o]}class Y extends W{constructor(e){super(),X(this,e,de,_e,V,{src:0,size:1,viewBox:2,color:3,title:7,className:4})}}function be(t){let e,l,a;return l=new Y({props:{src:t[9],size:20}}),{c(){e=H("span"),y(l.$$.fragment),this.h()},l(n){e=M(n,"SPAN",{class:!0});var s=C(e);J(l.$$.fragment,s),s.forEach(k),this.h()},h(){_(e,"class","flex svelte-13pwg5b"),u(e,"icon-left",t[7]==="left")},m(n,s){E(n,e,s),K(l,e,null),a=!0},p(n,s){(!a||s&128)&&u(e,"icon-left",n[7]==="left")},i(n){a||(A(l.$$.fragment,n),a=!0)},o(n){z(l.$$.fragment,n),a=!1},d(n){n&&k(e),O(l)}}}function U(t){let e,l;return{c(){e=H("span"),l=ee(t[4]),this.h()},l(a){e=M(a,"SPAN",{class:!0});var n=C(e);l=te(n,t[4]),n.forEach(k),this.h()},h(){_(e,"class","flex")},m(a,n){E(a,e,n),q(e,l)},p(a,n){n&16&&ne(l,a[4])},d(a){a&&k(e)}}}function ve(t){let e,l,a;return l=new Y({props:{src:t[9],size:20}}),{c(){e=H("span"),y(l.$$.fragment),this.h()},l(n){e=M(n,"SPAN",{class:!0});var s=C(e);J(l.$$.fragment,s),s.forEach(k),this.h()},h(){_(e,"class","flex svelte-13pwg5b"),u(e,"icon-right",t[7]==="right")},m(n,s){E(n,e,s),K(l,e,null),a=!0},p(n,s){(!a||s&128)&&u(e,"icon-right",n[7]==="right")},i(n){a||(A(l.$$.fragment,n),a=!0)},o(n){z(l.$$.fragment,n),a=!1},d(n){n&&k(e),O(l)}}}function Be(t){let e,l,a,n,s=t[10]&&be(t),i=t[4]&&U(t),o=t[11]&&ve(t);return{c(){e=H("a"),s&&s.c(),l=L(),i&&i.c(),a=L(),o&&o.c(),this.h()},l(f){e=M(f,"A",{rel:!0,href:!0,title:!0,target:!0,class:!0});var r=C(e);s&&s.l(r),l=Q(r),i&&i.l(r),a=Q(r),o&&o.l(r),r.forEach(k),this.h()},h(){_(e,"rel",t[3]),_(e,"href",t[2]),_(e,"title",t[5]),_(e,"target",t[6]),_(e,"class","inline-flex items-center justify-center gap-3 text-sm svelte-13pwg5b"),u(e,"button",t[0]),u(e,"w-full",t[8]),u(e,"icon-link",!t[0]),u(e,"hover:text-red-berry-950",!t[0]),u(e,"dark:hover:text-neutral-100",!t[0]),u(e,"highlight",t[0]&&t[1]),u(e,"py-3",t[0]),u(e,"px-5",t[0]),u(e,"rounded",t[0]),u(e,"regular",!t[1])},m(f,r){E(f,e,r),s&&s.m(e,null),q(e,l),i&&i.m(e,null),q(e,a),o&&o.m(e,null),n=!0},p(f,[r]){f[10]&&s.p(f,r),f[4]?i?i.p(f,r):(i=U(f),i.c(),i.m(e,a)):i&&(i.d(1),i=null),f[11]&&o.p(f,r),(!n||r&8)&&_(e,"rel",f[3]),(!n||r&4)&&_(e,"href",f[2]),(!n||r&32)&&_(e,"title",f[5]),(!n||r&64)&&_(e,"target",f[6]),(!n||r&1)&&u(e,"button",f[0]),(!n||r&256)&&u(e,"w-full",f[8]),(!n||r&1)&&u(e,"icon-link",!f[0]),(!n||r&1)&&u(e,"hover:text-red-berry-950",!f[0]),(!n||r&1)&&u(e,"dark:hover:text-neutral-100",!f[0]),(!n||r&3)&&u(e,"highlight",f[0]&&f[1]),(!n||r&1)&&u(e,"py-3",f[0]),(!n||r&1)&&u(e,"px-5",f[0]),(!n||r&1)&&u(e,"rounded",f[0]),(!n||r&2)&&u(e,"regular",!f[1])},i(f){n||(A(s),A(o),n=!0)},o(f){z(s),z(o),n=!1},d(f){f&&k(e),s&&s.d(),i&&i.d(),o&&o.d()}}}function ke(t,e,l){let a={facebook:fe,github:ae,instagram:oe,mastodon:re,twitter:he,windows:ue,linux:ce,mac:ge,unknown:me,download:we},{button:n=!0}=e,{highlight:s=!1}=e,{icon:i=""}=e,{href:o=""}=e,{rel:f=""}=e,{text:r=""}=e,{title:w=r}=e,{target:g="_parent"}=e,{iconPosition:m="right"}=e,{fullwidth:b=!1}=e,d=a[i],N=i!==""&&d!==void 0,P=!!(N&&m==="left"),S=!!(N&&m==="right");return t.$$set=h=>{"button"in h&&l(0,n=h.button),"highlight"in h&&l(1,s=h.highlight),"icon"in h&&l(12,i=h.icon),"href"in h&&l(2,o=h.href),"rel"in h&&l(3,f=h.rel),"text"in h&&l(4,r=h.text),"title"in h&&l(5,w=h.title),"target"in h&&l(6,g=h.target),"iconPosition"in h&&l(7,m=h.iconPosition),"fullwidth"in h&&l(8,b=h.fullwidth)},[n,s,o,f,r,w,g,m,b,d,P,S,i]}class Ie extends W{constructor(e){super(),X(this,e,ke,Be,V,{button:0,highlight:1,icon:12,href:2,rel:3,text:4,title:5,target:6,iconPosition:7,fullwidth:8})}}export{Ie as B,Y as I,Ae as e,Ce as o,Ee as u}; diff --git a/_app/immutable/chunks/Button.Bg-1Yv3Z.js b/_app/immutable/chunks/Button.Bg-1Yv3Z.js new file mode 100644 index 00000000..51e6cfd6 --- /dev/null +++ b/_app/immutable/chunks/Button.Bg-1Yv3Z.js @@ -0,0 +1 @@ +import{t as P,l as A,S as V,i as W,x as Z,H as x,y as p,f as E,D as $,d as k,E as F,b as M,e as H,s as y,c as L,h as G,a as d,C as r,j,o as X,p as J,q as K,r as O,u as e0,v as t0,w as n0}from"./index.CNd5CZrX.js";import{r as i0,s as U,g as l0,n as Q}from"./scheduler.CZFVEtgY.js";import{g as a0}from"./index.BMEkiqFO.js";import{BsFacebook as s0,BsGithub as f0,BsInstagram as c0,BsMastodon as o0,BsTwitterX as h0,BsWindows as r0,BsApple as u0,BsQuestionCircleFill as g0,BsDownload as m0}from"./index.D7Jwt5yH.js";function P0(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function A0(t,e){P(t,1,1,()=>{e.delete(t.key)})}function E0(t,e,i,f,n,a,l,c,s,o,m,g){let w=t.length,_=a.length,v=w;const S={};for(;v--;)S[t[v].key]=v;const z=[],C=new Map,N=new Map,h=[];for(v=_;v--;){const u=g(n,a,v),b=i(u);let B=l.get(b);B?h.push(()=>B.p(u,e)):(B=o(b,u),B.c()),C.set(b,z[v]=B),b in S&&N.set(b,Math.abs(v-S[b]))}const q=new Set,D=new Set;function T(u){A(u,1),u.m(c,m),l.set(u.key,u),m=u.first,_--}for(;w&&_;){const u=z[_-1],b=t[w-1],B=u.key,I=b.key;u===b?(m=u.first,w--,_--):C.has(I)?!l.has(B)||q.has(B)?T(u):D.has(I)?w--:N.get(B)>N.get(I)?(D.add(B),T(u)):(q.add(I),w--):(s(b,l),w--)}for(;w--;){const u=t[w];C.has(u.key)||s(u,l)}for(;_;)T(z[_-1]);return i0(h),z}function w0(t){let e,i,f,n=[{width:t[1]},{height:t[1]},{viewBox:t[2]},{style:f=t[3]?"color: "+t[3]+";":""},{"stroke-width":"0"},{class:t[4]},t[0].a,t[6],{xmlns:"http://www.w3.org/2000/svg"}],a={};for(let l=0;l{"src"in g&&i(0,f=g.src),"size"in g&&i(1,n=g.size),"viewBox"in g&&i(2,a=g.viewBox),"color"in g&&i(3,l=g.color),"title"in g&&i(7,c=g.title),"className"in g&&i(4,s=g.className)},t.$$.update=()=>{t.$$.dirty&9&&(i(6,m={}),l&&(f.a.stroke!=="none"&&i(6,m.stroke="currentColor",m),f.a.fill!=="none"&&i(6,m.fill="currentColor",m))),t.$$.dirty&129&&i(5,o=(c?`${c}`:"")+f.c)},[f,n,a,l,s,o,m,c]}class Y extends V{constructor(e){super(),W(this,e,_0,w0,U,{src:0,size:1,viewBox:2,color:3,title:7,className:4})}}const d0={a:{viewBox:"0 0 16 16",fill:"currentColor"},c:''};function v0(t){let e,i,f;return i=new Y({props:{src:t[10],size:t[2]}}),{c(){e=H("span"),X(i.$$.fragment),this.h()},l(n){e=L(n,"SPAN",{class:!0});var a=E(e);J(i.$$.fragment,a),a.forEach(k),this.h()},h(){d(e,"class","flex svelte-856y4r"),r(e,"icon-left",t[8]==="left")},m(n,a){M(n,e,a),K(i,e,null),f=!0},p(n,a){const l={};a&4&&(l.size=n[2]),i.$set(l),(!f||a&256)&&r(e,"icon-left",n[8]==="left")},i(n){f||(A(i.$$.fragment,n),f=!0)},o(n){P(i.$$.fragment,n),f=!1},d(n){n&&k(e),O(i)}}}function R(t){let e,i;return{c(){e=H("span"),i=e0(t[5]),this.h()},l(f){e=L(f,"SPAN",{class:!0});var n=E(e);i=t0(n,t[5]),n.forEach(k),this.h()},h(){d(e,"class","flex")},m(f,n){M(f,e,n),j(e,i)},p(f,n){n&32&&n0(i,f[5])},d(f){f&&k(e)}}}function b0(t){let e,i,f;return i=new Y({props:{src:t[10],size:t[2]}}),{c(){e=H("span"),X(i.$$.fragment),this.h()},l(n){e=L(n,"SPAN",{class:!0});var a=E(e);J(i.$$.fragment,a),a.forEach(k),this.h()},h(){d(e,"class","flex svelte-856y4r"),r(e,"icon-right",t[8]==="right")},m(n,a){M(n,e,a),K(i,e,null),f=!0},p(n,a){const l={};a&4&&(l.size=n[2]),i.$set(l),(!f||a&256)&&r(e,"icon-right",n[8]==="right")},i(n){f||(A(i.$$.fragment,n),f=!0)},o(n){P(i.$$.fragment,n),f=!1},d(n){n&&k(e),O(i)}}}function B0(t){let e,i,f,n,a=t[11]&&v0(t),l=t[5]&&R(t),c=t[12]&&b0(t);return{c(){e=H("a"),a&&a.c(),i=y(),l&&l.c(),f=y(),c&&c.c(),this.h()},l(s){e=L(s,"A",{rel:!0,href:!0,title:!0,target:!0,class:!0});var o=E(e);a&&a.l(o),i=G(o),l&&l.l(o),f=G(o),c&&c.l(o),o.forEach(k),this.h()},h(){d(e,"rel",t[4]),d(e,"href",t[3]),d(e,"title",t[6]),d(e,"target",t[7]),d(e,"class","inline-flex items-center justify-center gap-2 text-sm svelte-856y4r"),r(e,"button",t[0]),r(e,"w-full",t[9]),r(e,"icon-link",!t[0]),r(e,"hover:text-red-berry-950",!t[0]),r(e,"dark:hover:text-neutral-100",!t[0]),r(e,"highlight",t[0]&&t[1]),r(e,"py-3",t[0]),r(e,"px-5",t[0]),r(e,"rounded",t[0]),r(e,"regular",!t[1])},m(s,o){M(s,e,o),a&&a.m(e,null),j(e,i),l&&l.m(e,null),j(e,f),c&&c.m(e,null),n=!0},p(s,[o]){s[11]&&a.p(s,o),s[5]?l?l.p(s,o):(l=R(s),l.c(),l.m(e,f)):l&&(l.d(1),l=null),s[12]&&c.p(s,o),(!n||o&16)&&d(e,"rel",s[4]),(!n||o&8)&&d(e,"href",s[3]),(!n||o&64)&&d(e,"title",s[6]),(!n||o&128)&&d(e,"target",s[7]),(!n||o&1)&&r(e,"button",s[0]),(!n||o&512)&&r(e,"w-full",s[9]),(!n||o&1)&&r(e,"icon-link",!s[0]),(!n||o&1)&&r(e,"hover:text-red-berry-950",!s[0]),(!n||o&1)&&r(e,"dark:hover:text-neutral-100",!s[0]),(!n||o&3)&&r(e,"highlight",s[0]&&s[1]),(!n||o&1)&&r(e,"py-3",s[0]),(!n||o&1)&&r(e,"px-5",s[0]),(!n||o&1)&&r(e,"rounded",s[0]),(!n||o&2)&&r(e,"regular",!s[1])},i(s){n||(A(a),A(c),n=!0)},o(s){P(a),P(c),n=!1},d(s){s&&k(e),a&&a.d(),l&&l.d(),c&&c.d()}}}function k0(t,e,i){let f={facebook:s0,github:f0,instagram:c0,mastodon:o0,twitter:h0,windows:r0,linux:d0,mac:u0,unknown:g0,download:m0},{button:n=!0}=e,{highlight:a=!1}=e,{icon:l=""}=e,{iconSize:c=20}=e,{href:s=""}=e,{rel:o=""}=e,{text:m=""}=e,{title:g=m}=e,{target:w="_parent"}=e,{iconPosition:_="right"}=e,{fullwidth:v=!1}=e,S=f[l],z=l!==""&&S!==void 0,C=!!(z&&_==="left"),N=!!(z&&_==="right");return t.$$set=h=>{"button"in h&&i(0,n=h.button),"highlight"in h&&i(1,a=h.highlight),"icon"in h&&i(13,l=h.icon),"iconSize"in h&&i(2,c=h.iconSize),"href"in h&&i(3,s=h.href),"rel"in h&&i(4,o=h.rel),"text"in h&&i(5,m=h.text),"title"in h&&i(6,g=h.title),"target"in h&&i(7,w=h.target),"iconPosition"in h&&i(8,_=h.iconPosition),"fullwidth"in h&&i(9,v=h.fullwidth)},[n,a,c,s,o,m,g,w,_,v,S,C,N,l]}class M0 extends V{constructor(e){super(),W(this,e,k0,B0,U,{button:0,highlight:1,icon:13,iconSize:2,href:3,rel:4,text:5,title:6,target:7,iconPosition:8,fullwidth:9})}}export{M0 as B,Y as I,P0 as e,A0 as o,E0 as u}; diff --git a/_app/immutable/chunks/Divider.DkyJmbrB.js b/_app/immutable/chunks/Divider.BQLjv_0p.js similarity index 95% rename from _app/immutable/chunks/Divider.DkyJmbrB.js rename to _app/immutable/chunks/Divider.BQLjv_0p.js index 5aaedbd5..d9f87d8c 100644 --- a/_app/immutable/chunks/Divider.DkyJmbrB.js +++ b/_app/immutable/chunks/Divider.BQLjv_0p.js @@ -1 +1 @@ -import{s as w,f as m,n as v}from"./scheduler.CZFVEtgY.js";import{S as g,i as b,e as y,x as u,c as x,f as d,y as p,d as c,a,C as _,b as f,j as C}from"./index.DjvOVdNM.js";const R=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global,S={a:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},c:''},A={a:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},c:''},T={a:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},c:''},q={a:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},c:''};function L(n){let e;return{c(){e=u("path"),this.h()},l(t){e=p(t,"path",{d:!0,class:!0}),d(e).forEach(c),this.h()},h(){a(e,"d","M1200 0L0 0 598.97 114.72 1200 0z"),a(e,"class","fill-spring-wood-50 dark:fill-mine-shaft-950")},m(t,o){f(t,e,o)},d(t){t&&c(e)}}}function M(n){let e;return{c(){e=u("path"),this.h()},l(t){e=p(t,"path",{d:!0,"stroke-width":!0,class:!0}),d(e).forEach(c),this.h()},h(){a(e,"d","m0 0 598.97 114.72L1200 0"),a(e,"stroke-width","2"),a(e,"class","dark:stroke-mine-shaft-900 stroke-mine-shaft-200 fill-none")},m(t,o){f(t,e,o)},d(t){t&&c(e)}}}function B(n){let e,t,o;function h(s,i){return s[1]?M:L}let r=h(n),l=r(n);return{c(){e=y("div"),t=u("svg"),l.c(),this.h()},l(s){e=x(s,"DIV",{class:!0});var i=d(e);t=p(i,"svg",{xmlns:!0,viewBox:!0,preserveAspectRatio:!0,class:!0});var k=d(t);l.l(k),k.forEach(c),i.forEach(c),this.h()},h(){a(t,"xmlns","http://www.w3.org/2000/svg"),a(t,"viewBox","0 0 1200 120"),a(t,"preserveAspectRatio","none"),a(t,"class",o=m(n[0])+" svelte-1llp4ni"),a(e,"class","full overflow-hidden block h-14"),_(e,"mt-14",n[1])},m(s,i){f(s,e,i),C(e,t),l.m(t,null)},p(s,[i]){r!==(r=h(s))&&(l.d(1),l=r(s),l&&(l.c(),l.m(t,null))),i&1&&o!==(o=m(s[0])+" svelte-1llp4ni")&&a(t,"class",o),i&2&&_(e,"mt-14",s[1])},i:v,o:v,d(s){s&&c(e),l.d()}}}function j(n,e,t){let{classes:o=""}=e,{stroke:h=!1}=e;return n.$$set=r=>{"classes"in r&&t(0,o=r.classes),"stroke"in r&&t(1,h=r.stroke)},[o,h]}class z extends g{constructor(e){super(),b(this,e,j,B,w,{classes:0,stroke:1})}}export{z as D,q as L,A as a,T as b,S as c,R as g}; +import{s as w,f as m,n as v}from"./scheduler.CZFVEtgY.js";import{S as g,i as b,e as y,x as u,c as x,f as d,y as p,d as c,a,C as _,b as f,j as C}from"./index.CNd5CZrX.js";const R=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global,S={a:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},c:''},A={a:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},c:''},T={a:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},c:''},q={a:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},c:''};function L(n){let e;return{c(){e=u("path"),this.h()},l(t){e=p(t,"path",{d:!0,class:!0}),d(e).forEach(c),this.h()},h(){a(e,"d","M1200 0L0 0 598.97 114.72 1200 0z"),a(e,"class","fill-spring-wood-50 dark:fill-mine-shaft-950")},m(t,o){f(t,e,o)},d(t){t&&c(e)}}}function M(n){let e;return{c(){e=u("path"),this.h()},l(t){e=p(t,"path",{d:!0,"stroke-width":!0,class:!0}),d(e).forEach(c),this.h()},h(){a(e,"d","m0 0 598.97 114.72L1200 0"),a(e,"stroke-width","2"),a(e,"class","dark:stroke-mine-shaft-700 stroke-mine-shaft-200 fill-none")},m(t,o){f(t,e,o)},d(t){t&&c(e)}}}function B(n){let e,t,o;function h(s,i){return s[1]?M:L}let r=h(n),l=r(n);return{c(){e=y("div"),t=u("svg"),l.c(),this.h()},l(s){e=x(s,"DIV",{class:!0});var i=d(e);t=p(i,"svg",{xmlns:!0,viewBox:!0,preserveAspectRatio:!0,class:!0});var k=d(t);l.l(k),k.forEach(c),i.forEach(c),this.h()},h(){a(t,"xmlns","http://www.w3.org/2000/svg"),a(t,"viewBox","0 0 1200 120"),a(t,"preserveAspectRatio","none"),a(t,"class",o=m(n[0])+" svelte-1llp4ni"),a(e,"class","full overflow-hidden block h-14"),_(e,"mt-14",n[1])},m(s,i){f(s,e,i),C(e,t),l.m(t,null)},p(s,[i]){r!==(r=h(s))&&(l.d(1),l=r(s),l&&(l.c(),l.m(t,null))),i&1&&o!==(o=m(s[0])+" svelte-1llp4ni")&&a(t,"class",o),i&2&&_(e,"mt-14",s[1])},i:v,o:v,d(s){s&&c(e),l.d()}}}function j(n,e,t){let{classes:o=""}=e,{stroke:h=!1}=e;return n.$$set=r=>{"classes"in r&&t(0,o=r.classes),"stroke"in r&&t(1,h=r.stroke)},[o,h]}class z extends g{constructor(e){super(),b(this,e,j,B,w,{classes:0,stroke:1})}}export{z as D,q as L,A as a,T as b,S as c,R as g}; diff --git a/_app/immutable/chunks/Loader.CgdetROw.js b/_app/immutable/chunks/Loader.lmq2X6M7.js similarity index 94% rename from _app/immutable/chunks/Loader.CgdetROw.js rename to _app/immutable/chunks/Loader.lmq2X6M7.js index ea6a28a2..313783da 100644 --- a/_app/immutable/chunks/Loader.CgdetROw.js +++ b/_app/immutable/chunks/Loader.lmq2X6M7.js @@ -1 +1 @@ -import{s as d,n as u}from"./scheduler.CZFVEtgY.js";import{S as g,i as _,e as w,x as h,c as x,f,y as m,d as n,a as i,b as p,j as v}from"./index.DjvOVdNM.js";function y(c){let t,l,e,a;return{c(){t=w("div"),l=h("svg"),e=h("circle"),this.h()},l(s){t=x(s,"DIV",{class:!0});var r=f(t);l=m(r,"svg",{width:!0,height:!0,viewBox:!0,xmlns:!0});var o=f(l);e=m(o,"circle",{class:!0,cx:!0,cy:!0,r:!0,fill:!0}),f(e).forEach(n),o.forEach(n),r.forEach(n),this.h()},h(){i(e,"class",a="spinner "+c[1]+" svelte-b85mx3"),i(e,"cx","12"),i(e,"cy","12"),i(e,"r","0"),i(e,"fill",c[0]),i(l,"width","24"),i(l,"height","24"),i(l,"viewBox","0 0 24 24"),i(l,"xmlns","http://www.w3.org/2000/svg"),i(t,"class","w-full h-full grid items-center justify-center m-auto bg-spring-wood-50")},m(s,r){p(s,t,r),v(t,l),v(l,e)},p(s,[r]){r&2&&a!==(a="spinner "+s[1]+" svelte-b85mx3")&&i(e,"class",a),r&1&&i(e,"fill",s[0])},i:u,o:u,d(s){s&&n(t)}}}function b(c,t,l){let{fill:e="#000"}=t,{classes:a=""}=t;return c.$$set=s=>{"fill"in s&&l(0,e=s.fill),"classes"in s&&l(1,a=s.classes)},[e,a]}class B extends g{constructor(t){super(),_(this,t,b,y,d,{fill:0,classes:1})}}export{B as L}; +import{s as d,n as u}from"./scheduler.CZFVEtgY.js";import{S as g,i as _,e as w,x as h,c as x,f,y as m,d as n,a as i,b as p,j as v}from"./index.CNd5CZrX.js";function y(c){let t,l,e,a;return{c(){t=w("div"),l=h("svg"),e=h("circle"),this.h()},l(s){t=x(s,"DIV",{class:!0});var r=f(t);l=m(r,"svg",{width:!0,height:!0,viewBox:!0,xmlns:!0});var o=f(l);e=m(o,"circle",{class:!0,cx:!0,cy:!0,r:!0,fill:!0}),f(e).forEach(n),o.forEach(n),r.forEach(n),this.h()},h(){i(e,"class",a="spinner "+c[1]+" svelte-b85mx3"),i(e,"cx","12"),i(e,"cy","12"),i(e,"r","0"),i(e,"fill",c[0]),i(l,"width","24"),i(l,"height","24"),i(l,"viewBox","0 0 24 24"),i(l,"xmlns","http://www.w3.org/2000/svg"),i(t,"class","w-full h-full grid items-center justify-center m-auto bg-spring-wood-50")},m(s,r){p(s,t,r),v(t,l),v(l,e)},p(s,[r]){r&2&&a!==(a="spinner "+s[1]+" svelte-b85mx3")&&i(e,"class",a),r&1&&i(e,"fill",s[0])},i:u,o:u,d(s){s&&n(t)}}}function b(c,t,l){let{fill:e="#000"}=t,{classes:a=""}=t;return c.$$set=s=>{"fill"in s&&l(0,e=s.fill),"classes"in s&&l(1,a=s.classes)},[e,a]}class B extends g{constructor(t){super(),_(this,t,b,y,d,{fill:0,classes:1})}}export{B as L}; diff --git a/_app/immutable/chunks/entry.BmaD9OfL.js b/_app/immutable/chunks/entry.DlRyyYa4.js similarity index 99% rename from _app/immutable/chunks/entry.BmaD9OfL.js rename to _app/immutable/chunks/entry.DlRyyYa4.js index 33a7bb1c..6e47bf5a 100644 --- a/_app/immutable/chunks/entry.BmaD9OfL.js +++ b/_app/immutable/chunks/entry.DlRyyYa4.js @@ -1,3 +1,3 @@ -import{t as oe}from"./scheduler.CZFVEtgY.js";import{w as pt}from"./index.Ba7-f4DY.js";import{a as se,b as P}from"./paths.CQpuyKeJ.js";new URL("sveltekit-internal://");function ie(t,n){return t==="/"||n==="ignore"?t:n==="never"?t.endsWith("/")?t.slice(0,-1):t:n==="always"&&!t.endsWith("/")?t+"/":t}function ce(t){return t.split("%25").map(decodeURI).join("%25")}function le(t){for(const n in t)t[n]=decodeURIComponent(t[n]);return t}function ct({href:t}){return t.split("#")[0]}const fe=["href","pathname","search","toString","toJSON"];function ue(t,n,e){const a=new URL(t);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(r,o){if(o==="get"||o==="getAll"||o==="has")return s=>(e(s),r[o](s));n();const i=Reflect.get(r,o);return typeof i=="function"?i.bind(r):i}}),enumerable:!0,configurable:!0});for(const r of fe)Object.defineProperty(a,r,{get(){return n(),t[r]},enumerable:!0,configurable:!0});return a}const de="/__data.json",he=".html__data.json";function pe(t){return t.endsWith(".html")?t.replace(/\.html$/,he):t.replace(/\/$/,"")+de}function ge(...t){let n=5381;for(const e of t)if(typeof e=="string"){let a=e.length;for(;a;)n=n*33^e.charCodeAt(--a)}else if(ArrayBuffer.isView(e)){const a=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);let r=a.length;for(;r;)n=n*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(n>>>0).toString(36)}function me(t){const n=atob(t),e=new Uint8Array(n.length);for(let a=0;a((t instanceof Request?t.method:(n==null?void 0:n.method)||"GET")!=="GET"&&q.delete(gt(t)),jt(t,n));const q=new Map;function _e(t,n){const e=gt(t,n),a=document.querySelector(e);if(a!=null&&a.textContent){let{body:r,...o}=JSON.parse(a.textContent);const i=a.getAttribute("data-ttl");return i&&q.set(e,{body:r,init:o,ttl:1e3*Number(i)}),a.getAttribute("data-b64")!==null&&(r=me(r)),Promise.resolve(new Response(r,o))}return window.fetch(t,n)}function ye(t,n,e){if(q.size>0){const a=gt(t,e),r=q.get(a);if(r){if(performance.now(){const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return n.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(o)return n.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const i=a.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,f)=>{if(f%2){if(c.startsWith("x+"))return lt(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return lt(String.fromCharCode(...c.slice(2).split("-").map(l=>parseInt(l,16))));const u=we.exec(c),[,h,g,d,_]=u;return n.push({name:d,matcher:_,optional:!!h,rest:!!g,chained:g?f===1&&i[0]==="":!1}),g?"(.*?)":h?"([^/]*)?":"([^/]+?)"}return lt(c)}).join("")}).join("")}/?$`),params:n}}function be(t){return!/^\([^)]+\)$/.test(t)}function Ee(t){return t.slice(1).split("/").filter(be)}function ke(t,n,e){const a={},r=t.slice(1),o=r.filter(s=>s!==void 0);let i=0;for(let s=0;su).join("/"),i=0),f===void 0){c.rest&&(a[c.name]="");continue}if(!c.matcher||e[c.matcher](f)){a[c.name]=f;const u=n[s+1],h=r[s+1];u&&!u.rest&&u.optional&&h&&c.chained&&(i=0),!u&&!h&&Object.keys(a).length===o.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return a}function lt(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Se({nodes:t,server_loads:n,dictionary:e,matchers:a}){const r=new Set(n);return Object.entries(e).map(([s,[c,f,u]])=>{const{pattern:h,params:g}=ve(s),d={id:s,exec:_=>{const l=h.exec(_);if(l)return ke(l,g,a)},errors:[1,...u||[]].map(_=>t[_]),layouts:[0,...f||[]].map(i),leaf:o(c)};return d.errors.length=d.layouts.length=Math.max(d.errors.length,d.layouts.length),d});function o(s){const c=s<0;return c&&(s=~s),[c,t[s]]}function i(s){return s===void 0?s:[r.has(s),t[s]]}}function Dt(t,n=JSON.parse){try{return n(sessionStorage[t])}catch{}}function It(t,n,e=JSON.stringify){const a=e(n);try{sessionStorage[t]=a}catch{}}const Ae="1723080923855",$t="sveltekit:snapshot",Ct="sveltekit:scroll",Vt="sveltekit:states",Re="sveltekit:pageurl",D="sveltekit:history",M="sveltekit:navigation",J={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},K=location.origin;function Ft(t){if(t instanceof URL)return t;let n=document.baseURI;if(!n){const e=document.getElementsByTagName("base");n=e.length?e[0].href:document.URL}return new URL(t,n)}function mt(){return{x:pageXOffset,y:pageYOffset}}function O(t,n){return t.getAttribute(`data-sveltekit-${n}`)}const Lt={...J,"":J.hover};function qt(t){let n=t.assignedSlot??t.parentNode;return(n==null?void 0:n.nodeType)===11&&(n=n.host),n}function Gt(t,n){for(;t&&t!==n;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=qt(t)}}function ut(t,n){let e;try{e=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI)}catch{}const a=t instanceof SVGAElement?t.target.baseVal:t.target,r=!e||!!a||nt(e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),o=(e==null?void 0:e.origin)===K&&t.hasAttribute("download");return{url:e,external:r,target:a,download:o}}function W(t){let n=null,e=null,a=null,r=null,o=null,i=null,s=t;for(;s&&s!==document.documentElement;)a===null&&(a=O(s,"preload-code")),r===null&&(r=O(s,"preload-data")),n===null&&(n=O(s,"keepfocus")),e===null&&(e=O(s,"noscroll")),o===null&&(o=O(s,"reload")),i===null&&(i=O(s,"replacestate")),s=qt(s);function c(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Lt[a??"off"],preload_data:Lt[r??"off"],keepfocus:c(n),noscroll:c(e),reload:c(o),replace_state:c(i)}}function Pt(t){const n=pt(t);let e=!0;function a(){e=!0,n.update(i=>i)}function r(i){e=!1,n.set(i)}function o(i){let s;return n.subscribe(c=>{(s===void 0||e&&c!==s)&&i(s=c)})}return{notify:a,set:r,subscribe:o}}function Ie(){const{set:t,subscribe:n}=pt(!1);let e;async function a(){clearTimeout(e);try{const r=await fetch(`${se}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const i=(await r.json()).version!==Ae;return i&&(t(!0),clearTimeout(e)),i}catch{return!1}}return{subscribe:n,check:a}}function nt(t,n){return t.origin!==K||!t.pathname.startsWith(n)}const Le=-1,Pe=-2,Te=-3,Ue=-4,xe=-5,Ne=-6;function Oe(t,n){if(typeof t=="number")return r(t,!0);if(!Array.isArray(t)||t.length===0)throw new Error("Invalid input");const e=t,a=Array(e.length);function r(o,i=!1){if(o===Le)return;if(o===Te)return NaN;if(o===Ue)return 1/0;if(o===xe)return-1/0;if(o===Ne)return-0;if(i)throw new Error("Invalid input");if(o in a)return a[o];const s=e[o];if(!s||typeof s!="object")a[o]=s;else if(Array.isArray(s))if(typeof s[0]=="string"){const c=s[0],f=n==null?void 0:n[c];if(f)return a[o]=f(r(s[1]));switch(c){case"Date":a[o]=new Date(s[1]);break;case"Set":const u=new Set;a[o]=u;for(let d=1;dn!=null)}class at{constructor(n,e){this.status=n,typeof e=="string"?this.body={message:e}:e?this.body=e:this.body={message:`Error: ${n}`}}toString(){return JSON.stringify(this.body)}}class Ht{constructor(n,e){this.status=n,this.location=e}}class _t extends Error{constructor(n,e,a){super(a),this.status=n,this.text=e}}const $e="x-sveltekit-invalidated",Ce="x-sveltekit-trailing-slash";function z(t){return t instanceof at||t instanceof _t?t.status:500}function Ve(t){return t instanceof _t?t.text:"Internal Error"}const N=Dt(Ct)??{},H=Dt($t)??{},U={url:Pt({}),page:Pt({}),navigating:pt(null),updated:Ie()};function yt(t){N[t]=mt()}function Fe(t,n){let e=t+1;for(;N[e];)delete N[e],e+=1;for(e=n+1;H[e];)delete H[e],e+=1}function C(t){return location.href=t.href,new Promise(()=>{})}function Tt(){}let rt,dt,X,T,ht,V;const Bt=[],Z=[];let R=null;const Kt=[],qe=[];let j=[],y={branch:[],error:null,url:null},wt=!1,Q=!1,Ut=!0,B=!1,F=!1,Yt=!1,vt=!1,bt,S,L,I,tt;const G=new Set;async function tn(t,n,e){var r,o;document.URL!==location.href&&(location.href=location.href),V=t,rt=Se(t),T=document.documentElement,ht=n,dt=t.nodes[0],X=t.nodes[1],dt(),X(),S=(r=history.state)==null?void 0:r[D],L=(o=history.state)==null?void 0:o[M],S||(S=L=Date.now(),history.replaceState({...history.state,[D]:S,[M]:L},""));const a=N[S];a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y)),e?await We(ht,e):Ye(location.href,{replaceState:!0}),Je()}function Ge(){Bt.length=0,vt=!1}function Jt(t){Z.some(n=>n==null?void 0:n.snapshot)&&(H[t]=Z.map(n=>{var e;return(e=n==null?void 0:n.snapshot)==null?void 0:e.capture()}))}function Wt(t){var n;(n=H[t])==null||n.forEach((e,a)=>{var r,o;(o=(r=Z[a])==null?void 0:r.snapshot)==null||o.restore(e)})}function xt(){yt(S),It(Ct,N),Jt(L),It($t,H)}async function zt(t,n,e,a){return Y({type:"goto",url:Ft(t),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:e,nav_token:a,accept:()=>{n.invalidateAll&&(vt=!0)}})}async function Me(t){if(t.id!==(R==null?void 0:R.id)){const n={};G.add(n),R={id:t.id,token:n,promise:Zt({...t,preload:n}).then(e=>(G.delete(n),e.type==="loaded"&&e.state.error&&(R=null),e))}}return R.promise}async function ft(t){const n=rt.find(e=>e.exec(Qt(t)));n&&await Promise.all([...n.layouts,n.leaf].map(e=>e==null?void 0:e[1]()))}function Xt(t,n,e){var o;y=t.state;const a=document.querySelector("style[data-sveltekit]");a&&a.remove(),I=t.props.page,bt=new V.root({target:n,props:{...t.props,stores:U,components:Z},hydrate:e}),Wt(L);const r={from:null,to:{params:y.params,route:{id:((o=y.route)==null?void 0:o.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};j.forEach(i=>i(r)),Q=!0}async function et({url:t,params:n,branch:e,status:a,error:r,route:o,form:i}){let s="never";if(P&&(t.pathname===P||t.pathname===P+"/"))s="always";else for(const d of e)(d==null?void 0:d.slash)!==void 0&&(s=d.slash);t.pathname=ie(t.pathname,s),t.search=t.search;const c={type:"loaded",state:{url:t,params:n,branch:e,error:r,route:o},props:{constructors:De(e).map(d=>d.node.component),page:I}};i!==void 0&&(c.props.form=i);let f={},u=!I,h=0;for(let d=0;d(s&&(c.route=!0),l[m])}),params:new Proxy(a,{get:(l,m)=>(s&&c.params.add(m),l[m])}),data:(o==null?void 0:o.data)??null,url:ue(e,()=>{s&&(c.url=!0)},l=>{s&&c.search_params.add(l)}),async fetch(l,m){let b;l instanceof Request?(b=l.url,m={body:l.method==="GET"||l.method==="HEAD"?void 0:await l.blob(),cache:l.cache,credentials:l.credentials,headers:l.headers,integrity:l.integrity,keepalive:l.keepalive,method:l.method,mode:l.mode,redirect:l.redirect,referrer:l.referrer,referrerPolicy:l.referrerPolicy,signal:l.signal,...m}):b=l;const A=new URL(b,e);return s&&d(A.href),A.origin===e.origin&&(b=A.href.slice(e.origin.length)),Q?ye(b,A.href,m):_e(b,m)},setHeaders:()=>{},depends:d,parent(){return s&&(c.parent=!0),n()},untrack(l){s=!1;try{return l()}finally{s=!0}}};i=await f.universal.load.call(null,_)??null}return{node:f,loader:t,server:o,universal:(h=f.universal)!=null&&h.load?{type:"data",data:i,uses:c}:null,data:i??(o==null?void 0:o.data)??null,slash:((g=f.universal)==null?void 0:g.trailingSlash)??(o==null?void 0:o.slash)}}function Nt(t,n,e,a,r,o){if(vt)return!0;if(!r)return!1;if(r.parent&&t||r.route&&n||r.url&&e)return!0;for(const i of r.search_params)if(a.has(i))return!0;for(const i of r.params)if(o[i]!==y.params[i])return!0;for(const i of r.dependencies)if(Bt.some(s=>s(new URL(i))))return!0;return!1}function kt(t,n){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?n??null:null}function He(t,n){if(!t)return new Set(n.searchParams.keys());const e=new Set([...t.searchParams.keys(),...n.searchParams.keys()]);for(const a of e){const r=t.searchParams.getAll(a),o=n.searchParams.getAll(a);r.every(i=>o.includes(i))&&o.every(i=>r.includes(i))&&e.delete(a)}return e}function Ot({error:t,url:n,route:e,params:a}){return{type:"loaded",state:{error:t,url:n,route:e,params:a,branch:[]},props:{page:I,constructors:[]}}}async function Zt({id:t,invalidating:n,url:e,params:a,route:r,preload:o}){if((R==null?void 0:R.id)===t)return G.delete(R.token),R.promise;const{errors:i,layouts:s,leaf:c}=r,f=[...s,c];i.forEach(p=>p==null?void 0:p().catch(()=>{})),f.forEach(p=>p==null?void 0:p[1]().catch(()=>{}));let u=null;const h=y.url?t!==y.url.pathname+y.url.search:!1,g=y.route?r.id!==y.route.id:!1,d=He(y.url,e);let _=!1;const l=f.map((p,v)=>{var x;const E=y.branch[v],k=!!(p!=null&&p[0])&&((E==null?void 0:E.loader)!==p[1]||Nt(_,g,h,d,(x=E.server)==null?void 0:x.uses,a));return k&&(_=!0),k});if(l.some(Boolean)){try{u=await ne(e,l)}catch(p){const v=await $(p,{url:e,params:a,route:{id:t}});return G.has(o)?Ot({error:v,url:e,params:a,route:r}):ot({status:z(p),error:v,url:e,route:r})}if(u.type==="redirect")return u}const m=u==null?void 0:u.nodes;let b=!1;const A=f.map(async(p,v)=>{var st;if(!p)return;const E=y.branch[v],k=m==null?void 0:m[v];if((!k||k.type==="skip")&&p[1]===(E==null?void 0:E.loader)&&!Nt(b,g,h,d,(st=E.universal)==null?void 0:st.uses,a))return E;if(b=!0,(k==null?void 0:k.type)==="error")throw k;return Et({loader:p[1],url:e,params:a,route:r,parent:async()=>{var Rt;const At={};for(let it=0;it{});const w=[];for(let p=0;pPromise.resolve({}),server_data_node:kt(o)}),c={node:await X(),loader:X,universal:null,server:null,data:null};return await et({url:e,params:r,branch:[s,c],status:t,error:n,route:null})}function St(t,n){if(!t||nt(t,P))return;let e;try{e=V.hooks.reroute({url:new URL(t)})??t.pathname}catch{return}const a=Qt(e);for(const r of rt){const o=r.exec(a);if(o)return{id:t.pathname+t.search,invalidating:n,route:r,params:le(o),url:t}}}function Qt(t){return ce(t.slice(P.length)||"/")}function te({url:t,type:n,intent:e,delta:a}){let r=!1;const o=re(y,e,t,n);a!==void 0&&(o.navigation.delta=a);const i={...o.navigation,cancel:()=>{r=!0,o.reject(new Error("navigation cancelled"))}};return B||Kt.forEach(s=>s(i)),r?null:o}async function Y({type:t,url:n,popped:e,keepfocus:a,noscroll:r,replace_state:o,state:i={},redirect_count:s=0,nav_token:c={},accept:f=Tt,block:u=Tt}){const h=St(n,!1),g=te({url:n,type:t,delta:e==null?void 0:e.delta,intent:h});if(!g){u();return}const d=S,_=L;f(),B=!0,Q&&U.navigating.set(g.navigation),tt=c;let l=h&&await Zt(h);if(!l){if(nt(n,P))return await C(n);l=await ee(n,{id:null},await $(new _t(404,"Not Found",`Not found: ${n.pathname}`),{url:n,params:{},route:{id:null}}),404)}if(n=(h==null?void 0:h.url)||n,tt!==c)return g.reject(new Error("navigation aborted")),!1;if(l.type==="redirect")if(s>=20)l=await ot({status:500,error:await $(new Error("Redirect loop"),{url:n,params:{},route:{id:null}}),url:n,route:{id:null}});else return zt(new URL(l.location,n).href,{},s+1,c),!1;else l.props.page.status>=400&&await U.updated.check()&&await C(n);if(Ge(),yt(d),Jt(_),l.props.page.url.pathname!==n.pathname&&(n.pathname=l.props.page.url.pathname),i=e?e.state:i,!e){const w=o?0:1,p={[D]:S+=w,[M]:L+=w,[Vt]:i};(o?history.replaceState:history.pushState).call(history,p,"",n),o||Fe(S,L)}if(R=null,l.props.page.state=i,Q){y=l.state,l.props.page&&(l.props.page.url=n);const w=(await Promise.all(qe.map(p=>p(g.navigation)))).filter(p=>typeof p=="function");if(w.length>0){let p=function(){j=j.filter(v=>!w.includes(v))};w.push(p),j.push(...w)}bt.$set(l.props),Yt=!0}else Xt(l,ht,!1);const{activeElement:m}=document;await oe();const b=e?e.scroll:r?mt():null;if(Ut){const w=n.hash&&document.getElementById(decodeURIComponent(n.hash.slice(1)));b?scrollTo(b.x,b.y):w?w.scrollIntoView():scrollTo(0,0)}const A=document.activeElement!==m&&document.activeElement!==document.body;!a&&!A&&ze(),Ut=!0,l.props.page&&(I=l.props.page),B=!1,t==="popstate"&&Wt(L),g.fulfil(void 0),j.forEach(w=>w(g.navigation)),U.navigating.set(null)}async function ee(t,n,e,a){return t.origin===K&&t.pathname===location.pathname&&!wt?await ot({status:a,error:e,url:t,route:n}):await C(t)}function Ke(){let t;T.addEventListener("mousemove",o=>{const i=o.target;clearTimeout(t),t=setTimeout(()=>{a(i,2)},20)});function n(o){a(o.composedPath()[0],1)}T.addEventListener("mousedown",n),T.addEventListener("touchstart",n,{passive:!0});const e=new IntersectionObserver(o=>{for(const i of o)i.isIntersecting&&(ft(i.target.href),e.unobserve(i.target))},{threshold:0});function a(o,i){const s=Gt(o,T);if(!s)return;const{url:c,external:f,download:u}=ut(s,P);if(f||u)return;const h=W(s);if(!h.reload)if(i<=h.preload_data){const g=St(c,!1);g&&Me(g)}else i<=h.preload_code&&ft(c.pathname)}function r(){e.disconnect();for(const o of T.querySelectorAll("a")){const{url:i,external:s,download:c}=ut(o,P);if(s||c)continue;const f=W(o);f.reload||(f.preload_code===J.viewport&&e.observe(o),f.preload_code===J.eager&&ft(i.pathname))}}j.push(r),r()}function $(t,n){if(t instanceof at)return t.body;const e=z(t),a=Ve(t);return V.hooks.handleError({error:t,event:n,status:e,message:a})??{message:a}}function Ye(t,n={}){return t=Ft(t),t.origin!==K?Promise.reject(new Error("goto: invalid URL")):zt(t,n,0)}function Je(){var n;history.scrollRestoration="manual",addEventListener("beforeunload",e=>{let a=!1;if(xt(),!B){const r=re(y,void 0,null,"leave"),o={...r.navigation,cancel:()=>{a=!0,r.reject(new Error("navigation cancelled"))}};Kt.forEach(i=>i(o))}a?(e.preventDefault(),e.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&xt()}),(n=navigator.connection)!=null&&n.saveData||Ke(),T.addEventListener("click",async e=>{var g;if(e.button||e.which!==1||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.defaultPrevented)return;const a=Gt(e.composedPath()[0],T);if(!a)return;const{url:r,external:o,target:i,download:s}=ut(a,P);if(!r)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const c=W(a);if(!(a instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||s)return;if(o||c.reload){te({url:r,type:"link"})?B=!0:e.preventDefault();return}const[u,h]=r.href.split("#");if(h!==void 0&&u===ct(location)){const[,d]=y.url.href.split("#");if(d===h){e.preventDefault(),h===""||h==="top"&&a.ownerDocument.getElementById("top")===null?window.scrollTo({top:0}):(g=a.ownerDocument.getElementById(h))==null||g.scrollIntoView();return}if(F=!0,yt(S),t(r),!c.replace_state)return;F=!1}e.preventDefault(),await new Promise(d=>{requestAnimationFrame(()=>{setTimeout(d,0)}),setTimeout(d,100)}),Y({type:"link",url:r,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??r.href===location.href})}),T.addEventListener("submit",e=>{if(e.defaultPrevented)return;const a=HTMLFormElement.prototype.cloneNode.call(e.target),r=e.submitter;if(((r==null?void 0:r.formMethod)||a.method)!=="get")return;const i=new URL((r==null?void 0:r.hasAttribute("formaction"))&&(r==null?void 0:r.formAction)||a.action);if(nt(i,P))return;const s=e.target,c=W(s);if(c.reload)return;e.preventDefault(),e.stopPropagation();const f=new FormData(s),u=r==null?void 0:r.getAttribute("name");u&&f.append(u,(r==null?void 0:r.getAttribute("value"))??""),i.search=new URLSearchParams(f).toString(),Y({type:"form",url:i,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??i.href===location.href})}),addEventListener("popstate",async e=>{var a;if((a=e.state)!=null&&a[D]){const r=e.state[D];if(tt={},r===S)return;const o=N[r],i=e.state[Vt]??{},s=new URL(e.state[Re]??location.href),c=e.state[M],f=ct(location)===ct(y.url);if(c===L&&(Yt||f)){t(s),N[S]=mt(),o&&scrollTo(o.x,o.y),i!==I.state&&(I={...I,state:i},bt.$set({page:I})),S=r;return}const h=r-S;await Y({type:"popstate",url:s,popped:{state:i,scroll:o,delta:h},accept:()=>{S=r,L=c},block:()=>{history.go(-h)},nav_token:tt})}else if(!F){const r=new URL(location.href);t(r)}}),addEventListener("hashchange",()=>{F&&(F=!1,history.replaceState({...history.state,[D]:++S,[M]:L},"",location.href))});for(const e of document.querySelectorAll("link"))e.rel==="icon"&&(e.href=e.href);addEventListener("pageshow",e=>{e.persisted&&U.navigating.set(null)});function t(e){y.url=e,U.page.set({...I,url:e}),U.page.notify()}}async function We(t,{status:n=200,error:e,node_ids:a,params:r,route:o,data:i,form:s}){wt=!0;const c=new URL(location.href);({params:r={},route:o={id:null}}=St(c,!1)||{});let f;try{const u=a.map(async(d,_)=>{const l=i[_];return l!=null&&l.uses&&(l.uses=ae(l.uses)),Et({loader:V.nodes[d],url:c,params:r,route:o,parent:async()=>{const m={};for(let b=0;b<_;b+=1)Object.assign(m,(await u[b]).data);return m},server_data_node:kt(l)})}),h=await Promise.all(u),g=rt.find(({id:d})=>d===o.id);if(g){const d=g.layouts;for(let _=0;_o?"1":"0").join(""));const a=await jt(e.href);if(!a.ok){let o;throw(r=a.headers.get("content-type"))!=null&&r.includes("application/json")?o=await a.json():a.status===404?o="Not Found":a.status===500&&(o="Internal Error"),new at(a.status,o)}return new Promise(async o=>{var h;const i=new Map,s=a.body.getReader(),c=new TextDecoder;function f(g){return Oe(g,{Promise:d=>new Promise((_,l)=>{i.set(d,{fulfil:_,reject:l})})})}let u="";for(;;){const{done:g,value:d}=await s.read();if(g&&!u)break;for(u+=!d&&u?` +import{t as oe}from"./scheduler.CZFVEtgY.js";import{w as pt}from"./index.Ba7-f4DY.js";import{a as se,b as P}from"./paths.BCdhk5uV.js";new URL("sveltekit-internal://");function ie(t,n){return t==="/"||n==="ignore"?t:n==="never"?t.endsWith("/")?t.slice(0,-1):t:n==="always"&&!t.endsWith("/")?t+"/":t}function ce(t){return t.split("%25").map(decodeURI).join("%25")}function le(t){for(const n in t)t[n]=decodeURIComponent(t[n]);return t}function ct({href:t}){return t.split("#")[0]}const fe=["href","pathname","search","toString","toJSON"];function ue(t,n,e){const a=new URL(t);Object.defineProperty(a,"searchParams",{value:new Proxy(a.searchParams,{get(r,o){if(o==="get"||o==="getAll"||o==="has")return s=>(e(s),r[o](s));n();const i=Reflect.get(r,o);return typeof i=="function"?i.bind(r):i}}),enumerable:!0,configurable:!0});for(const r of fe)Object.defineProperty(a,r,{get(){return n(),t[r]},enumerable:!0,configurable:!0});return a}const de="/__data.json",he=".html__data.json";function pe(t){return t.endsWith(".html")?t.replace(/\.html$/,he):t.replace(/\/$/,"")+de}function ge(...t){let n=5381;for(const e of t)if(typeof e=="string"){let a=e.length;for(;a;)n=n*33^e.charCodeAt(--a)}else if(ArrayBuffer.isView(e)){const a=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);let r=a.length;for(;r;)n=n*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(n>>>0).toString(36)}function me(t){const n=atob(t),e=new Uint8Array(n.length);for(let a=0;a((t instanceof Request?t.method:(n==null?void 0:n.method)||"GET")!=="GET"&&q.delete(gt(t)),jt(t,n));const q=new Map;function _e(t,n){const e=gt(t,n),a=document.querySelector(e);if(a!=null&&a.textContent){let{body:r,...o}=JSON.parse(a.textContent);const i=a.getAttribute("data-ttl");return i&&q.set(e,{body:r,init:o,ttl:1e3*Number(i)}),a.getAttribute("data-b64")!==null&&(r=me(r)),Promise.resolve(new Response(r,o))}return window.fetch(t,n)}function ye(t,n,e){if(q.size>0){const a=gt(t,e),r=q.get(a);if(r){if(performance.now(){const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return n.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(o)return n.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const i=a.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,f)=>{if(f%2){if(c.startsWith("x+"))return lt(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return lt(String.fromCharCode(...c.slice(2).split("-").map(l=>parseInt(l,16))));const u=we.exec(c),[,h,g,d,_]=u;return n.push({name:d,matcher:_,optional:!!h,rest:!!g,chained:g?f===1&&i[0]==="":!1}),g?"(.*?)":h?"([^/]*)?":"([^/]+?)"}return lt(c)}).join("")}).join("")}/?$`),params:n}}function be(t){return!/^\([^)]+\)$/.test(t)}function Ee(t){return t.slice(1).split("/").filter(be)}function ke(t,n,e){const a={},r=t.slice(1),o=r.filter(s=>s!==void 0);let i=0;for(let s=0;su).join("/"),i=0),f===void 0){c.rest&&(a[c.name]="");continue}if(!c.matcher||e[c.matcher](f)){a[c.name]=f;const u=n[s+1],h=r[s+1];u&&!u.rest&&u.optional&&h&&c.chained&&(i=0),!u&&!h&&Object.keys(a).length===o.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return a}function lt(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Se({nodes:t,server_loads:n,dictionary:e,matchers:a}){const r=new Set(n);return Object.entries(e).map(([s,[c,f,u]])=>{const{pattern:h,params:g}=ve(s),d={id:s,exec:_=>{const l=h.exec(_);if(l)return ke(l,g,a)},errors:[1,...u||[]].map(_=>t[_]),layouts:[0,...f||[]].map(i),leaf:o(c)};return d.errors.length=d.layouts.length=Math.max(d.errors.length,d.layouts.length),d});function o(s){const c=s<0;return c&&(s=~s),[c,t[s]]}function i(s){return s===void 0?s:[r.has(s),t[s]]}}function Dt(t,n=JSON.parse){try{return n(sessionStorage[t])}catch{}}function It(t,n,e=JSON.stringify){const a=e(n);try{sessionStorage[t]=a}catch{}}const Ae="1724818045104",$t="sveltekit:snapshot",Ct="sveltekit:scroll",Vt="sveltekit:states",Re="sveltekit:pageurl",D="sveltekit:history",M="sveltekit:navigation",J={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},K=location.origin;function Ft(t){if(t instanceof URL)return t;let n=document.baseURI;if(!n){const e=document.getElementsByTagName("base");n=e.length?e[0].href:document.URL}return new URL(t,n)}function mt(){return{x:pageXOffset,y:pageYOffset}}function O(t,n){return t.getAttribute(`data-sveltekit-${n}`)}const Lt={...J,"":J.hover};function qt(t){let n=t.assignedSlot??t.parentNode;return(n==null?void 0:n.nodeType)===11&&(n=n.host),n}function Gt(t,n){for(;t&&t!==n;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=qt(t)}}function ut(t,n){let e;try{e=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI)}catch{}const a=t instanceof SVGAElement?t.target.baseVal:t.target,r=!e||!!a||nt(e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),o=(e==null?void 0:e.origin)===K&&t.hasAttribute("download");return{url:e,external:r,target:a,download:o}}function W(t){let n=null,e=null,a=null,r=null,o=null,i=null,s=t;for(;s&&s!==document.documentElement;)a===null&&(a=O(s,"preload-code")),r===null&&(r=O(s,"preload-data")),n===null&&(n=O(s,"keepfocus")),e===null&&(e=O(s,"noscroll")),o===null&&(o=O(s,"reload")),i===null&&(i=O(s,"replacestate")),s=qt(s);function c(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Lt[a??"off"],preload_data:Lt[r??"off"],keepfocus:c(n),noscroll:c(e),reload:c(o),replace_state:c(i)}}function Pt(t){const n=pt(t);let e=!0;function a(){e=!0,n.update(i=>i)}function r(i){e=!1,n.set(i)}function o(i){let s;return n.subscribe(c=>{(s===void 0||e&&c!==s)&&i(s=c)})}return{notify:a,set:r,subscribe:o}}function Ie(){const{set:t,subscribe:n}=pt(!1);let e;async function a(){clearTimeout(e);try{const r=await fetch(`${se}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const i=(await r.json()).version!==Ae;return i&&(t(!0),clearTimeout(e)),i}catch{return!1}}return{subscribe:n,check:a}}function nt(t,n){return t.origin!==K||!t.pathname.startsWith(n)}const Le=-1,Pe=-2,Te=-3,Ue=-4,xe=-5,Ne=-6;function Oe(t,n){if(typeof t=="number")return r(t,!0);if(!Array.isArray(t)||t.length===0)throw new Error("Invalid input");const e=t,a=Array(e.length);function r(o,i=!1){if(o===Le)return;if(o===Te)return NaN;if(o===Ue)return 1/0;if(o===xe)return-1/0;if(o===Ne)return-0;if(i)throw new Error("Invalid input");if(o in a)return a[o];const s=e[o];if(!s||typeof s!="object")a[o]=s;else if(Array.isArray(s))if(typeof s[0]=="string"){const c=s[0],f=n==null?void 0:n[c];if(f)return a[o]=f(r(s[1]));switch(c){case"Date":a[o]=new Date(s[1]);break;case"Set":const u=new Set;a[o]=u;for(let d=1;dn!=null)}class at{constructor(n,e){this.status=n,typeof e=="string"?this.body={message:e}:e?this.body=e:this.body={message:`Error: ${n}`}}toString(){return JSON.stringify(this.body)}}class Ht{constructor(n,e){this.status=n,this.location=e}}class _t extends Error{constructor(n,e,a){super(a),this.status=n,this.text=e}}const $e="x-sveltekit-invalidated",Ce="x-sveltekit-trailing-slash";function z(t){return t instanceof at||t instanceof _t?t.status:500}function Ve(t){return t instanceof _t?t.text:"Internal Error"}const N=Dt(Ct)??{},H=Dt($t)??{},U={url:Pt({}),page:Pt({}),navigating:pt(null),updated:Ie()};function yt(t){N[t]=mt()}function Fe(t,n){let e=t+1;for(;N[e];)delete N[e],e+=1;for(e=n+1;H[e];)delete H[e],e+=1}function C(t){return location.href=t.href,new Promise(()=>{})}function Tt(){}let rt,dt,X,T,ht,V;const Bt=[],Z=[];let R=null;const Kt=[],qe=[];let j=[],y={branch:[],error:null,url:null},wt=!1,Q=!1,Ut=!0,B=!1,F=!1,Yt=!1,vt=!1,bt,S,L,I,tt;const G=new Set;async function tn(t,n,e){var r,o;document.URL!==location.href&&(location.href=location.href),V=t,rt=Se(t),T=document.documentElement,ht=n,dt=t.nodes[0],X=t.nodes[1],dt(),X(),S=(r=history.state)==null?void 0:r[D],L=(o=history.state)==null?void 0:o[M],S||(S=L=Date.now(),history.replaceState({...history.state,[D]:S,[M]:L},""));const a=N[S];a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y)),e?await We(ht,e):Ye(location.href,{replaceState:!0}),Je()}function Ge(){Bt.length=0,vt=!1}function Jt(t){Z.some(n=>n==null?void 0:n.snapshot)&&(H[t]=Z.map(n=>{var e;return(e=n==null?void 0:n.snapshot)==null?void 0:e.capture()}))}function Wt(t){var n;(n=H[t])==null||n.forEach((e,a)=>{var r,o;(o=(r=Z[a])==null?void 0:r.snapshot)==null||o.restore(e)})}function xt(){yt(S),It(Ct,N),Jt(L),It($t,H)}async function zt(t,n,e,a){return Y({type:"goto",url:Ft(t),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:e,nav_token:a,accept:()=>{n.invalidateAll&&(vt=!0)}})}async function Me(t){if(t.id!==(R==null?void 0:R.id)){const n={};G.add(n),R={id:t.id,token:n,promise:Zt({...t,preload:n}).then(e=>(G.delete(n),e.type==="loaded"&&e.state.error&&(R=null),e))}}return R.promise}async function ft(t){const n=rt.find(e=>e.exec(Qt(t)));n&&await Promise.all([...n.layouts,n.leaf].map(e=>e==null?void 0:e[1]()))}function Xt(t,n,e){var o;y=t.state;const a=document.querySelector("style[data-sveltekit]");a&&a.remove(),I=t.props.page,bt=new V.root({target:n,props:{...t.props,stores:U,components:Z},hydrate:e}),Wt(L);const r={from:null,to:{params:y.params,route:{id:((o=y.route)==null?void 0:o.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};j.forEach(i=>i(r)),Q=!0}async function et({url:t,params:n,branch:e,status:a,error:r,route:o,form:i}){let s="never";if(P&&(t.pathname===P||t.pathname===P+"/"))s="always";else for(const d of e)(d==null?void 0:d.slash)!==void 0&&(s=d.slash);t.pathname=ie(t.pathname,s),t.search=t.search;const c={type:"loaded",state:{url:t,params:n,branch:e,error:r,route:o},props:{constructors:De(e).map(d=>d.node.component),page:I}};i!==void 0&&(c.props.form=i);let f={},u=!I,h=0;for(let d=0;d(s&&(c.route=!0),l[m])}),params:new Proxy(a,{get:(l,m)=>(s&&c.params.add(m),l[m])}),data:(o==null?void 0:o.data)??null,url:ue(e,()=>{s&&(c.url=!0)},l=>{s&&c.search_params.add(l)}),async fetch(l,m){let b;l instanceof Request?(b=l.url,m={body:l.method==="GET"||l.method==="HEAD"?void 0:await l.blob(),cache:l.cache,credentials:l.credentials,headers:l.headers,integrity:l.integrity,keepalive:l.keepalive,method:l.method,mode:l.mode,redirect:l.redirect,referrer:l.referrer,referrerPolicy:l.referrerPolicy,signal:l.signal,...m}):b=l;const A=new URL(b,e);return s&&d(A.href),A.origin===e.origin&&(b=A.href.slice(e.origin.length)),Q?ye(b,A.href,m):_e(b,m)},setHeaders:()=>{},depends:d,parent(){return s&&(c.parent=!0),n()},untrack(l){s=!1;try{return l()}finally{s=!0}}};i=await f.universal.load.call(null,_)??null}return{node:f,loader:t,server:o,universal:(h=f.universal)!=null&&h.load?{type:"data",data:i,uses:c}:null,data:i??(o==null?void 0:o.data)??null,slash:((g=f.universal)==null?void 0:g.trailingSlash)??(o==null?void 0:o.slash)}}function Nt(t,n,e,a,r,o){if(vt)return!0;if(!r)return!1;if(r.parent&&t||r.route&&n||r.url&&e)return!0;for(const i of r.search_params)if(a.has(i))return!0;for(const i of r.params)if(o[i]!==y.params[i])return!0;for(const i of r.dependencies)if(Bt.some(s=>s(new URL(i))))return!0;return!1}function kt(t,n){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?n??null:null}function He(t,n){if(!t)return new Set(n.searchParams.keys());const e=new Set([...t.searchParams.keys(),...n.searchParams.keys()]);for(const a of e){const r=t.searchParams.getAll(a),o=n.searchParams.getAll(a);r.every(i=>o.includes(i))&&o.every(i=>r.includes(i))&&e.delete(a)}return e}function Ot({error:t,url:n,route:e,params:a}){return{type:"loaded",state:{error:t,url:n,route:e,params:a,branch:[]},props:{page:I,constructors:[]}}}async function Zt({id:t,invalidating:n,url:e,params:a,route:r,preload:o}){if((R==null?void 0:R.id)===t)return G.delete(R.token),R.promise;const{errors:i,layouts:s,leaf:c}=r,f=[...s,c];i.forEach(p=>p==null?void 0:p().catch(()=>{})),f.forEach(p=>p==null?void 0:p[1]().catch(()=>{}));let u=null;const h=y.url?t!==y.url.pathname+y.url.search:!1,g=y.route?r.id!==y.route.id:!1,d=He(y.url,e);let _=!1;const l=f.map((p,v)=>{var x;const E=y.branch[v],k=!!(p!=null&&p[0])&&((E==null?void 0:E.loader)!==p[1]||Nt(_,g,h,d,(x=E.server)==null?void 0:x.uses,a));return k&&(_=!0),k});if(l.some(Boolean)){try{u=await ne(e,l)}catch(p){const v=await $(p,{url:e,params:a,route:{id:t}});return G.has(o)?Ot({error:v,url:e,params:a,route:r}):ot({status:z(p),error:v,url:e,route:r})}if(u.type==="redirect")return u}const m=u==null?void 0:u.nodes;let b=!1;const A=f.map(async(p,v)=>{var st;if(!p)return;const E=y.branch[v],k=m==null?void 0:m[v];if((!k||k.type==="skip")&&p[1]===(E==null?void 0:E.loader)&&!Nt(b,g,h,d,(st=E.universal)==null?void 0:st.uses,a))return E;if(b=!0,(k==null?void 0:k.type)==="error")throw k;return Et({loader:p[1],url:e,params:a,route:r,parent:async()=>{var Rt;const At={};for(let it=0;it{});const w=[];for(let p=0;pPromise.resolve({}),server_data_node:kt(o)}),c={node:await X(),loader:X,universal:null,server:null,data:null};return await et({url:e,params:r,branch:[s,c],status:t,error:n,route:null})}function St(t,n){if(!t||nt(t,P))return;let e;try{e=V.hooks.reroute({url:new URL(t)})??t.pathname}catch{return}const a=Qt(e);for(const r of rt){const o=r.exec(a);if(o)return{id:t.pathname+t.search,invalidating:n,route:r,params:le(o),url:t}}}function Qt(t){return ce(t.slice(P.length)||"/")}function te({url:t,type:n,intent:e,delta:a}){let r=!1;const o=re(y,e,t,n);a!==void 0&&(o.navigation.delta=a);const i={...o.navigation,cancel:()=>{r=!0,o.reject(new Error("navigation cancelled"))}};return B||Kt.forEach(s=>s(i)),r?null:o}async function Y({type:t,url:n,popped:e,keepfocus:a,noscroll:r,replace_state:o,state:i={},redirect_count:s=0,nav_token:c={},accept:f=Tt,block:u=Tt}){const h=St(n,!1),g=te({url:n,type:t,delta:e==null?void 0:e.delta,intent:h});if(!g){u();return}const d=S,_=L;f(),B=!0,Q&&U.navigating.set(g.navigation),tt=c;let l=h&&await Zt(h);if(!l){if(nt(n,P))return await C(n);l=await ee(n,{id:null},await $(new _t(404,"Not Found",`Not found: ${n.pathname}`),{url:n,params:{},route:{id:null}}),404)}if(n=(h==null?void 0:h.url)||n,tt!==c)return g.reject(new Error("navigation aborted")),!1;if(l.type==="redirect")if(s>=20)l=await ot({status:500,error:await $(new Error("Redirect loop"),{url:n,params:{},route:{id:null}}),url:n,route:{id:null}});else return zt(new URL(l.location,n).href,{},s+1,c),!1;else l.props.page.status>=400&&await U.updated.check()&&await C(n);if(Ge(),yt(d),Jt(_),l.props.page.url.pathname!==n.pathname&&(n.pathname=l.props.page.url.pathname),i=e?e.state:i,!e){const w=o?0:1,p={[D]:S+=w,[M]:L+=w,[Vt]:i};(o?history.replaceState:history.pushState).call(history,p,"",n),o||Fe(S,L)}if(R=null,l.props.page.state=i,Q){y=l.state,l.props.page&&(l.props.page.url=n);const w=(await Promise.all(qe.map(p=>p(g.navigation)))).filter(p=>typeof p=="function");if(w.length>0){let p=function(){j=j.filter(v=>!w.includes(v))};w.push(p),j.push(...w)}bt.$set(l.props),Yt=!0}else Xt(l,ht,!1);const{activeElement:m}=document;await oe();const b=e?e.scroll:r?mt():null;if(Ut){const w=n.hash&&document.getElementById(decodeURIComponent(n.hash.slice(1)));b?scrollTo(b.x,b.y):w?w.scrollIntoView():scrollTo(0,0)}const A=document.activeElement!==m&&document.activeElement!==document.body;!a&&!A&&ze(),Ut=!0,l.props.page&&(I=l.props.page),B=!1,t==="popstate"&&Wt(L),g.fulfil(void 0),j.forEach(w=>w(g.navigation)),U.navigating.set(null)}async function ee(t,n,e,a){return t.origin===K&&t.pathname===location.pathname&&!wt?await ot({status:a,error:e,url:t,route:n}):await C(t)}function Ke(){let t;T.addEventListener("mousemove",o=>{const i=o.target;clearTimeout(t),t=setTimeout(()=>{a(i,2)},20)});function n(o){a(o.composedPath()[0],1)}T.addEventListener("mousedown",n),T.addEventListener("touchstart",n,{passive:!0});const e=new IntersectionObserver(o=>{for(const i of o)i.isIntersecting&&(ft(i.target.href),e.unobserve(i.target))},{threshold:0});function a(o,i){const s=Gt(o,T);if(!s)return;const{url:c,external:f,download:u}=ut(s,P);if(f||u)return;const h=W(s);if(!h.reload)if(i<=h.preload_data){const g=St(c,!1);g&&Me(g)}else i<=h.preload_code&&ft(c.pathname)}function r(){e.disconnect();for(const o of T.querySelectorAll("a")){const{url:i,external:s,download:c}=ut(o,P);if(s||c)continue;const f=W(o);f.reload||(f.preload_code===J.viewport&&e.observe(o),f.preload_code===J.eager&&ft(i.pathname))}}j.push(r),r()}function $(t,n){if(t instanceof at)return t.body;const e=z(t),a=Ve(t);return V.hooks.handleError({error:t,event:n,status:e,message:a})??{message:a}}function Ye(t,n={}){return t=Ft(t),t.origin!==K?Promise.reject(new Error("goto: invalid URL")):zt(t,n,0)}function Je(){var n;history.scrollRestoration="manual",addEventListener("beforeunload",e=>{let a=!1;if(xt(),!B){const r=re(y,void 0,null,"leave"),o={...r.navigation,cancel:()=>{a=!0,r.reject(new Error("navigation cancelled"))}};Kt.forEach(i=>i(o))}a?(e.preventDefault(),e.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&xt()}),(n=navigator.connection)!=null&&n.saveData||Ke(),T.addEventListener("click",async e=>{var g;if(e.button||e.which!==1||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.defaultPrevented)return;const a=Gt(e.composedPath()[0],T);if(!a)return;const{url:r,external:o,target:i,download:s}=ut(a,P);if(!r)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const c=W(a);if(!(a instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||s)return;if(o||c.reload){te({url:r,type:"link"})?B=!0:e.preventDefault();return}const[u,h]=r.href.split("#");if(h!==void 0&&u===ct(location)){const[,d]=y.url.href.split("#");if(d===h){e.preventDefault(),h===""||h==="top"&&a.ownerDocument.getElementById("top")===null?window.scrollTo({top:0}):(g=a.ownerDocument.getElementById(h))==null||g.scrollIntoView();return}if(F=!0,yt(S),t(r),!c.replace_state)return;F=!1}e.preventDefault(),await new Promise(d=>{requestAnimationFrame(()=>{setTimeout(d,0)}),setTimeout(d,100)}),Y({type:"link",url:r,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??r.href===location.href})}),T.addEventListener("submit",e=>{if(e.defaultPrevented)return;const a=HTMLFormElement.prototype.cloneNode.call(e.target),r=e.submitter;if(((r==null?void 0:r.formMethod)||a.method)!=="get")return;const i=new URL((r==null?void 0:r.hasAttribute("formaction"))&&(r==null?void 0:r.formAction)||a.action);if(nt(i,P))return;const s=e.target,c=W(s);if(c.reload)return;e.preventDefault(),e.stopPropagation();const f=new FormData(s),u=r==null?void 0:r.getAttribute("name");u&&f.append(u,(r==null?void 0:r.getAttribute("value"))??""),i.search=new URLSearchParams(f).toString(),Y({type:"form",url:i,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??i.href===location.href})}),addEventListener("popstate",async e=>{var a;if((a=e.state)!=null&&a[D]){const r=e.state[D];if(tt={},r===S)return;const o=N[r],i=e.state[Vt]??{},s=new URL(e.state[Re]??location.href),c=e.state[M],f=ct(location)===ct(y.url);if(c===L&&(Yt||f)){t(s),N[S]=mt(),o&&scrollTo(o.x,o.y),i!==I.state&&(I={...I,state:i},bt.$set({page:I})),S=r;return}const h=r-S;await Y({type:"popstate",url:s,popped:{state:i,scroll:o,delta:h},accept:()=>{S=r,L=c},block:()=>{history.go(-h)},nav_token:tt})}else if(!F){const r=new URL(location.href);t(r)}}),addEventListener("hashchange",()=>{F&&(F=!1,history.replaceState({...history.state,[D]:++S,[M]:L},"",location.href))});for(const e of document.querySelectorAll("link"))e.rel==="icon"&&(e.href=e.href);addEventListener("pageshow",e=>{e.persisted&&U.navigating.set(null)});function t(e){y.url=e,U.page.set({...I,url:e}),U.page.notify()}}async function We(t,{status:n=200,error:e,node_ids:a,params:r,route:o,data:i,form:s}){wt=!0;const c=new URL(location.href);({params:r={},route:o={id:null}}=St(c,!1)||{});let f;try{const u=a.map(async(d,_)=>{const l=i[_];return l!=null&&l.uses&&(l.uses=ae(l.uses)),Et({loader:V.nodes[d],url:c,params:r,route:o,parent:async()=>{const m={};for(let b=0;b<_;b+=1)Object.assign(m,(await u[b]).data);return m},server_data_node:kt(l)})}),h=await Promise.all(u),g=rt.find(({id:d})=>d===o.id);if(g){const d=g.layouts;for(let _=0;_o?"1":"0").join(""));const a=await jt(e.href);if(!a.ok){let o;throw(r=a.headers.get("content-type"))!=null&&r.includes("application/json")?o=await a.json():a.status===404?o="Not Found":a.status===500&&(o="Internal Error"),new at(a.status,o)}return new Promise(async o=>{var h;const i=new Map,s=a.body.getReader(),c=new TextDecoder;function f(g){return Oe(g,{Promise:d=>new Promise((_,l)=>{i.set(d,{fulfil:_,reject:l})})})}let u="";for(;;){const{done:g,value:d}=await s.read();if(g&&!u)break;for(u+=!d&&u?` `:c.decode(d,{stream:!0});;){const _=u.indexOf(` `);if(_===-1)break;const l=JSON.parse(u.slice(0,_));if(u=u.slice(_+1),l.type==="redirect")return o(l);if(l.type==="data")(h=l.nodes)==null||h.forEach(m=>{(m==null?void 0:m.type)==="data"&&(m.uses=ae(m.uses),m.data=f(m.data))}),o(l);else if(l.type==="chunk"){const{id:m,data:b,error:A}=l,w=i.get(m);i.delete(m),A?w.reject(f(A)):w.fulfil(f(b))}}}})}function ae(t){return{dependencies:new Set((t==null?void 0:t.dependencies)??[]),params:new Set((t==null?void 0:t.params)??[]),parent:!!(t!=null&&t.parent),route:!!(t!=null&&t.route),url:!!(t!=null&&t.url),search_params:new Set((t==null?void 0:t.search_params)??[])}}function ze(){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const n=document.body,e=n.getAttribute("tabindex");n.tabIndex=-1,n.focus({preventScroll:!0,focusVisible:!1}),e!==null?n.setAttribute("tabindex",e):n.removeAttribute("tabindex");const a=getSelection();if(a&&a.type!=="None"){const r=[];for(let o=0;o{if(a.rangeCount===r.length){for(let o=0;o{r=u,o=h});return i.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url},to:e&&{params:(n==null?void 0:n.params)??null,route:{id:((f=n==null?void 0:n.route)==null?void 0:f.id)??null},url:e},willUnload:!n,type:a,complete:i},fulfil:r,reject:o}}export{tn as a,U as s}; diff --git a/_app/immutable/chunks/index.BMEkiqFO.js b/_app/immutable/chunks/index.BMEkiqFO.js new file mode 100644 index 00000000..d37b4cd6 --- /dev/null +++ b/_app/immutable/chunks/index.BMEkiqFO.js @@ -0,0 +1 @@ +import{b as a}from"./paths.BCdhk5uV.js";function y(e,h){const n={},d={},r={$$scope:1};let i=e.length;for(;i--;){const s=e[i],o=h[i];if(o){for(const t in s)t in o||(d[t]=1);for(const t in o)r[t]||(n[t]=o[t],r[t]=1);e[i]=o}else for(const t in s)r[t]=1}for(const s in d)s in n||(n[s]=void 0);return n}function m(e){return typeof e=="object"&&e!==null?e:{}}const g="Spyder IDE",c="The Python IDE that scientists and data analysts deserve",l="Designed by the community, for the community",u="Spyder Website Contributors",b=`${c}. ${l}`,f=["Python","IDE","Spyder","Matplotlib","iPython","Jupyter","Science","Data-Science","Data-Analytics","Programming"],w="Welcome to Spyder's Blog",k=[[{text:"Download",href:`${a}/download/`,target:"_self"}],[{text:"Blog",href:`${a}/blog/`,target:"_self"},{text:"Docs",href:"https://docs.spyder-ide.org/",target:"_blank"}]],_={github:"https://github.com/spyder-ide/spyder",twitter:"https://twitter.com/spyder_ide",facebook:"https://www.facebook.com/SpyderIDE/",mastodon:"https://fosstodon.org/@Spyder",instagram:"https://instagram.com/spyderide"},S={title:c,description:l},x={dark:`${a}/assets/media/screenshot_dark.webp`,light:`${a}/assets/media/screenshot_light.webp`},D={highlight:!1,icon:"github",text:"Checkout on GitHub",href:"https://github.com/spyder-ide/spyder/"},$={linux:{x64:{name:"Linux",link:"https://github.com/spyder-ide/spyder/releases/latest/download/Spyder-Linux-x86_64.sh"}},windows:{x64:{name:"Windows 10+",link:"https://github.com/spyder-ide/spyder/releases/latest/download/Spyder_64bit_full.exe"}},mac:{arm64:{name:"macOS (M1)",link:"https://github.com/spyder-ide/spyder/releases/latest/download/Spyder_arm64.dmg"},x64:{name:"macOS (Intel)",link:"https://github.com/spyder-ide/spyder/releases/latest/download/Spyder.dmg"}}},I="Connect with us on";export{u as a,w as b,D as c,b as d,S as e,I as f,y as g,x as h,m as i,f as k,k as n,$ as r,_ as s,g as t}; diff --git a/_app/immutable/chunks/index.CNd5CZrX.js b/_app/immutable/chunks/index.CNd5CZrX.js new file mode 100644 index 00000000..52ddf795 --- /dev/null +++ b/_app/immutable/chunks/index.CNd5CZrX.js @@ -0,0 +1,4 @@ +var nt=Object.defineProperty;var it=(t,e,n)=>e in t?nt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var y=(t,e,n)=>(it(t,typeof e!="symbol"?e+"":e,n),n);import{n as w,r as N,i as L,h as b,j as G,k as O,l as st,m as rt,p as lt,q as at,u as q,v as ot,w as ct,x as ft}from"./scheduler.CZFVEtgY.js";const F=typeof window<"u";let J=F?()=>window.performance.now():()=>Date.now(),R=F?t=>requestAnimationFrame(t):w;const x=new Set;function K(t){x.forEach(e=>{e.c(t)||(x.delete(e),e.f())}),x.size!==0&&R(K)}function U(t){let e;return x.size===0&&R(K),{promise:new Promise(n=>{x.add(e={c:t,f:n})}),abort(){x.delete(e)}}}let D=!1;function ut(){D=!0}function _t(){D=!1}function dt(t,e,n,i){for(;t>1);n(s)<=i?t=s+1:e=s}return t}function ht(t){if(t.hydrate_init)return;t.hydrate_init=!0;let e=t.childNodes;if(t.nodeName==="HEAD"){const a=[];for(let o=0;o0&&e[n[s]].claim_order<=o?s+1:dt(1,s,_=>e[n[_]].claim_order,o))-1;i[a]=n[u]+1;const f=u+1;n[f]=a,s=Math.max(f,s)}const r=[],l=[];let c=e.length-1;for(let a=n[s]+1;a!=0;a=i[a-1]){for(r.push(e[a-1]);c>=a;c--)l.push(e[c]);c--}for(;c>=0;c--)l.push(e[c]);r.reverse(),l.sort((a,o)=>a.claim_order-o.claim_order);for(let a=0,o=0;a=r[o].claim_order;)o++;const u=ot.removeEventListener(e,n,i)}function Ot(t){return function(e){return e.preventDefault(),t.call(this,e)}}function wt(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function qt(t,e){for(const n in e)wt(t,n,e[n])}function zt(t){return t.dataset.svelteH}function vt(t){return Array.from(t.childNodes)}function Q(t){t.claim_info===void 0&&(t.claim_info={last_index:0,total_claimed:0})}function X(t,e,n,i,s=!1){Q(t);const r=(()=>{for(let l=t.claim_info.last_index;l=0;l--){const c=t[l];if(e(c)){const a=n(c);return a===void 0?t.splice(l,1):t[l]=a,s?a===void 0&&t.claim_info.last_index--:t.claim_info.last_index=l,c}}return i()})();return r.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1,r}function Y(t,e,n,i){return X(t,s=>s.nodeName===e,s=>{const r=[];for(let l=0;ls.removeAttribute(l))},()=>i(e))}function Gt(t,e,n){return Y(t,e,n,j)}function Ft(t,e,n){return Y(t,e,n,W)}function Et(t,e){return X(t,n=>n.nodeType===3,n=>{const i=""+e;if(n.data.startsWith(i)){if(n.data.length!==i.length)return n.splitText(i.length)}else n.data=i},()=>B(e),!0)}function Jt(t){return Et(t," ")}function z(t,e,n){for(let i=n;i0&&n.push(s);return n}class Tt{constructor(e=!1){y(this,"is_svg",!1);y(this,"e");y(this,"n");y(this,"t");y(this,"a");this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,n,i=null){this.e||(this.is_svg?this.e=W(n.nodeName):this.e=j(n.nodeType===11?"TEMPLATE":n.nodeName),this.t=n.tagName!=="TEMPLATE"?n:n.content,this.c(e)),this.i(i)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(e){for(let n=0;n>>0}function bt(t,e){const n={stylesheet:pt(e),rules:{}};return S.set(t,n),n}function Z(t,e,n,i,s,r,l,c=0){const a=16.666/i;let o=`{ +`;for(let $=0;$<=1;$+=a){const p=e+(n-e)*r($);o+=$*100+`%{${l(p,1-p)}} +`}const u=o+`100% {${l(n,1-n)}} +}`,f=`__svelte_${At(u)}_${c}`,_=V(t),{stylesheet:d,rules:h}=S.get(_)||bt(_,t);h[f]||(h[f]=!0,d.insertRule(`@keyframes ${f} ${u}`,d.cssRules.length));const m=t.style.animation||"";return t.style.animation=`${m?`${m}, `:""}${f} ${i}ms linear ${s}ms 1 both`,C+=1,f}function k(t,e){const n=(t.style.animation||"").split(", "),i=n.filter(e?r=>r.indexOf(e)<0:r=>r.indexOf("__svelte")===-1),s=n.length-i.length;s&&(t.style.animation=i.join(", "),C-=s,C||St())}function St(){R(()=>{C||(S.forEach(t=>{const{ownerNode:e}=t.stylesheet;e&&E(e)}),S.clear())})}let v;function tt(){return v||(v=Promise.resolve(),v.then(()=>{v=null})),v}function H(t,e,n){t.dispatchEvent(Nt(`${e?"intro":"outro"}${n}`))}const A=new Set;let g;function Yt(){g={r:0,c:[],p:g}}function Zt(){g.r||N(g.c),g=g.p}function Ct(t,e){t&&t.i&&(A.delete(t),t.i(e))}function te(t,e,n,i){if(t&&t.o){if(A.has(t))return;A.add(t),g.c.push(()=>{A.delete(t),i&&(n&&t.d(1),i())}),t.o(e)}else i&&i()}const et={duration:0};function ee(t,e,n){const i={direction:"in"};let s=e(t,n,i),r=!1,l,c,a=0;function o(){l&&k(t,l)}function u(){const{delay:_=0,duration:d=300,easing:h=G,tick:m=w,css:$}=s||et;$&&(l=Z(t,0,1,d,_,h,$,a++)),m(0,1);const p=J()+_,T=p+d;c&&c.abort(),r=!0,b(()=>H(t,!0,"start")),c=U(M=>{if(r){if(M>=T)return m(1,0),H(t,!0,"end"),o(),r=!1;if(M>=p){const I=h((M-p)/d);m(I,1-I)}}return r})}let f=!1;return{start(){f||(f=!0,k(t),L(s)?(s=s(i),tt().then(u)):u())},invalidate(){f=!1},end(){r&&(o(),r=!1)}}}function ne(t,e,n){const i={direction:"out"};let s=e(t,n,i),r=!0,l;const c=g;c.r+=1;let a;function o(){const{delay:u=0,duration:f=300,easing:_=G,tick:d=w,css:h}=s||et;h&&(l=Z(t,1,0,f,u,_,h));const m=J()+u,$=m+f;b(()=>H(t,!1,"start")),"inert"in t&&(a=t.inert,t.inert=!0),U(p=>{if(r){if(p>=$)return d(0,1),H(t,!1,"end"),--c.r||N(c.c),!1;if(p>=m){const T=_((p-m)/f);d(1-T,T)}}return r})}return L(s)?tt().then(()=>{s=s(i),o()}):o(),{end(u){u&&"inert"in t&&(t.inert=a),u&&s.tick&&s.tick(1,0),r&&(l&&k(t,l),r=!1)}}}function ie(t){t&&t.c()}function se(t,e){t&&t.l(e)}function Ht(t,e,n){const{fragment:i,after_update:s}=t.$$;i&&i.m(e,n),b(()=>{const r=t.$$.on_mount.map(ot).filter(L);t.$$.on_destroy?t.$$.on_destroy.push(...r):N(r),t.$$.on_mount=[]}),s.forEach(b)}function Lt(t,e){const n=t.$$;n.fragment!==null&&(lt(n.after_update),N(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Dt(t,e){t.$$.dirty[0]===-1&&(ct.push(t),ft(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const h=d.length?d[0]:_;return o.ctx&&s(o.ctx[f],o.ctx[f]=h)&&(!o.skip_bound&&o.bound[f]&&o.bound[f](h),u&&Dt(t,f)),_}):[],o.update(),u=!0,N(o.before_update),o.fragment=i?i(o.ctx):!1,e.target){if(e.hydrate){ut();const f=vt(e.target);o.fragment&&o.fragment.l(f),f.forEach(E)}else o.fragment&&o.fragment.c();e.intro&&Ct(t.$$.fragment),Ht(t,e.target,e.anchor),_t(),st()}q(a)}class le{constructor(){y(this,"$$");y(this,"$$set")}$destroy(){Lt(this,1),this.$destroy=w}$on(e,n){if(!L(n))return w;const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(n),()=>{const s=i.indexOf(n);s!==-1&&i.splice(s,1)}}$set(e){this.$$set&&!rt(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Mt="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Mt);export{Vt as A,Xt as B,Wt as C,Kt as D,qt as E,Qt as F,It as G,P as H,Ot as I,ee as J,ne as K,R as L,le as S,wt as a,xt as b,Gt as c,E as d,j as e,vt as f,zt as g,Jt as h,re as i,yt as j,Zt as k,Ct as l,Yt as m,Rt as n,ie as o,se as p,Ht as q,Lt as r,jt as s,te as t,B as u,Et as v,Ut as w,W as x,Ft as y,Bt as z}; diff --git a/_app/immutable/chunks/index.CXB4hq09.js b/_app/immutable/chunks/index.CXB4hq09.js deleted file mode 100644 index a139d26f..00000000 --- a/_app/immutable/chunks/index.CXB4hq09.js +++ /dev/null @@ -1 +0,0 @@ -import{b as i}from"./paths.CQpuyKeJ.js";function h(e,p){const n={},d={},r={$$scope:1};let a=e.length;for(;a--;){const s=e[a],o=p[a];if(o){for(const t in s)t in o||(d[t]=1);for(const t in o)r[t]||(n[t]=o[t],r[t]=1);e[a]=o}else for(const t in s)r[t]=1}for(const s in d)s in n||(n[s]=void 0);return n}function m(e){return typeof e=="object"&&e!==null?e:{}}const g="Spyder IDE",c="The Python IDE that scientists and data analysts deserve",l="Carefully designed by a dedicated team of scientists to meet our needs",u="Spyder Website Contributors",f=`${c}. ${l}`,b=["Python","IDE","Spyder","Matplotlib","iPython","Jupyter","Science","Data-Science","Data-Analytics","Programming"],w="Welcome to Spyder's Blog",k=[[{text:"Download",href:`${i}/download/`,target:"_self"}],[{text:"Blog",href:`${i}/blog/`,target:"_self"},{text:"Docs",href:"https://docs.spyder-ide.org/",target:"_blank"}]],_={github:"https://github.com/spyder-ide/spyder",twitter:"https://twitter.com/spyder_ide",facebook:"https://www.facebook.com/SpyderIDE/",mastodon:"https://fosstodon.org/@Spyder",instagram:"https://instagram.com/spyderide"},S={title:c,description:l},x={dark:`${i}/assets/media/screenshot_dark.webp`,light:`${i}/assets/media/screenshot_light.webp`},D={linux:{x64:{name:"Ubuntu 18.04+",link:"https://github.com/spyder-ide/spyder/releases/download/v5.5.5/EXPERIMENTAL-Spyder-5.5.5-Linux-x86_64.sh"}},windows:{x64:{name:"Windows 10+",link:"https://github.com/spyder-ide/spyder/releases/download/v5.5.5/Spyder_64bit_full.exe"}},mac:{x64:{name:"MacOS (Intel)",link:"https://github.com/spyder-ide/spyder/releases/download/v5.5.5/Spyder.dmg"},arm64:{name:"MacOS (M1)",link:"https://github.com/spyder-ide/spyder/releases/download/v5.5.5/Spyder_arm64.dmg"}}},$="Connect with us on";export{u as a,w as b,S as c,f as d,m as e,$ as f,h as g,x as h,b as k,k as n,D as r,_ as s,g as t}; diff --git a/_app/immutable/chunks/index.Ch6n4Zkw.js b/_app/immutable/chunks/index.Ch6n4Zkw.js deleted file mode 100644 index 51008338..00000000 --- a/_app/immutable/chunks/index.Ch6n4Zkw.js +++ /dev/null @@ -1 +0,0 @@ -import{w as o}from"./index.Ba7-f4DY.js";const a=localStorage.getItem("colourScheme")||"light",c=o(a);c.subscribe(e=>{localStorage.setItem("colourScheme",e)});function s(){const{subscribe:e,set:t,update:i}=o({title:"",author:"",description:"",keywords:""});return{subscribe:e,setMetadata:r=>t(r),reset:()=>t({title:"",author:"",description:"",keywords:""})}}const u=s();export{c,u as m}; diff --git a/_app/immutable/chunks/index.DjvOVdNM.js b/_app/immutable/chunks/index.DjvOVdNM.js deleted file mode 100644 index 495b862e..00000000 --- a/_app/immutable/chunks/index.DjvOVdNM.js +++ /dev/null @@ -1,4 +0,0 @@ -var Q=Object.defineProperty;var X=(t,e,n)=>e in t?Q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var h=(t,e,n)=>(X(t,typeof e!="symbol"?e+"":e,n),n);import{n as v,r as b,i as L,h as D,j as Y,k as B,l as Z,m as tt,p as et,q as nt,u as k,v as it,w as st,x as rt}from"./scheduler.CZFVEtgY.js";const z=typeof window<"u";let lt=z?()=>window.performance.now():()=>Date.now(),M=z?t=>requestAnimationFrame(t):v;const x=new Set;function G(t){x.forEach(e=>{e.c(t)||(x.delete(e),e.f())}),x.size!==0&&M(G)}function at(t){let e;return x.size===0&&M(G),{promise:new Promise(n=>{x.add(e={c:t,f:n})}),abort(){x.delete(e)}}}let S=!1;function ot(){S=!0}function ct(){S=!1}function ft(t,e,n,i){for(;t>1);n(s)<=i?t=s+1:e=s}return t}function ut(t){if(t.hydrate_init)return;t.hydrate_init=!0;let e=t.childNodes;if(t.nodeName==="HEAD"){const a=[];for(let o=0;o0&&e[n[s]].claim_order<=o?s+1:ft(1,s,d=>e[n[d]].claim_order,o))-1;i[a]=n[u]+1;const f=u+1;n[f]=a,s=Math.max(f,s)}const l=[],r=[];let c=e.length-1;for(let a=n[s]+1;a!=0;a=i[a-1]){for(l.push(e[a-1]);c>=a;c--)r.push(e[c]);c--}for(;c>=0;c--)r.push(e[c]);l.reverse(),r.sort((a,o)=>a.claim_order-o.claim_order);for(let a=0,o=0;a=l[o].claim_order;)o++;const u=ot.removeEventListener(e,n,i)}function Ot(t){return function(e){return e.preventDefault(),t.call(this,e)}}function yt(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function qt(t,e){for(const n in e)yt(t,n,e[n])}function zt(t){return t.dataset.svelteH}function gt(t){return Array.from(t.childNodes)}function K(t){t.claim_info===void 0&&(t.claim_info={last_index:0,total_claimed:0})}function U(t,e,n,i,s=!1){K(t);const l=(()=>{for(let r=t.claim_info.last_index;r=0;r--){const c=t[r];if(e(c)){const a=n(c);return a===void 0?t.splice(r,1):t[r]=a,s?a===void 0&&t.claim_info.last_index--:t.claim_info.last_index=r,c}}return i()})();return l.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1,l}function V(t,e,n,i){return U(t,s=>s.nodeName===e,s=>{const l=[];for(let r=0;rs.removeAttribute(r))},()=>i(e))}function Gt(t,e,n){return V(t,e,n,P)}function Ft(t,e,n){return V(t,e,n,J)}function xt(t,e){return U(t,n=>n.nodeType===3,n=>{const i=""+e;if(n.data.startsWith(i)){if(n.data.length!==i.length)return n.splitText(i.length)}else n.data=i},()=>R(e),!0)}function Jt(t){return xt(t," ")}function I(t,e,n){for(let i=n;i0&&n.push(s);return n}class vt{constructor(e=!1){h(this,"is_svg",!1);h(this,"e");h(this,"n");h(this,"t");h(this,"a");this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,n,i=null){this.e||(this.is_svg?this.e=J(n.nodeName):this.e=P(n.nodeType===11?"TEMPLATE":n.nodeName),this.t=n.tagName!=="TEMPLATE"?n:n.content,this.c(e)),this.i(i)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(e){for(let n=0;n>>0}function Nt(t,e){const n={stylesheet:_t(e),rules:{}};return T.set(t,n),n}function Tt(t,e,n,i,s,l,r,c=0){const a=16.666/i;let o=`{ -`;for(let p=0;p<=1;p+=a){const g=e+(n-e)*l(p);o+=p*100+`%{${r(g,1-g)}} -`}const u=o+`100% {${r(n,1-n)}} -}`,f=`__svelte_${Et(u)}_${c}`,d=F(t),{stylesheet:_,rules:m}=T.get(d)||Nt(d,t);m[f]||(m[f]=!0,_.insertRule(`@keyframes ${f} ${u}`,_.cssRules.length));const y=t.style.animation||"";return t.style.animation=`${y?`${y}, `:""}${f} ${i}ms linear ${s}ms 1 both`,A+=1,f}function O(t,e){const n=(t.style.animation||"").split(", "),i=n.filter(e?l=>l.indexOf(e)<0:l=>l.indexOf("__svelte")===-1),s=n.length-i.length;s&&(t.style.animation=i.join(", "),A-=s,A||At())}function At(){M(()=>{A||(T.forEach(t=>{const{ownerNode:e}=t.stylesheet;e&&E(e)}),T.clear())})}let w;function bt(){return w||(w=Promise.resolve(),w.then(()=>{w=null})),w}function q(t,e,n){t.dispatchEvent(wt(`intro${n}`))}const N=new Set;let $;function Yt(){$={r:0,c:[],p:$}}function Zt(){$.r||b($.c),$=$.p}function St(t,e){t&&t.i&&(N.delete(t),t.i(e))}function te(t,e,n,i){if(t&&t.o){if(N.has(t))return;N.add(t),$.c.push(()=>{N.delete(t),i&&(n&&t.d(1),i())}),t.o(e)}else i&&i()}const Ct={duration:0};function ee(t,e,n){const i={direction:"in"};let s=e(t,n,i),l=!1,r,c,a=0;function o(){r&&O(t,r)}function u(){const{delay:d=0,duration:_=300,easing:m=Y,tick:y=v,css:p}=s||Ct;p&&(r=Tt(t,0,1,_,d,m,p,a++)),y(0,1);const g=lt()+d,W=g+_;c&&c.abort(),l=!0,D(()=>q(t,!0,"start")),c=at(C=>{if(l){if(C>=W)return y(1,0),q(t,!0,"end"),o(),l=!1;if(C>=g){const j=m((C-g)/_);y(j,1-j)}}return l})}let f=!1;return{start(){f||(f=!0,O(t),L(s)?(s=s(i),bt().then(u)):u())},invalidate(){f=!1},end(){l&&(o(),l=!1)}}}function ne(t){t&&t.c()}function ie(t,e){t&&t.l(e)}function Ht(t,e,n){const{fragment:i,after_update:s}=t.$$;i&&i.m(e,n),D(()=>{const l=t.$$.on_mount.map(it).filter(L);t.$$.on_destroy?t.$$.on_destroy.push(...l):b(l),t.$$.on_mount=[]}),s.forEach(D)}function Dt(t,e){const n=t.$$;n.fragment!==null&&(et(n.after_update),b(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Lt(t,e){t.$$.dirty[0]===-1&&(st.push(t),rt(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const m=_.length?_[0]:d;return o.ctx&&s(o.ctx[f],o.ctx[f]=m)&&(!o.skip_bound&&o.bound[f]&&o.bound[f](m),u&&Lt(t,f)),d}):[],o.update(),u=!0,b(o.before_update),o.fragment=i?i(o.ctx):!1,e.target){if(e.hydrate){ot();const f=gt(e.target);o.fragment&&o.fragment.l(f),f.forEach(E)}else o.fragment&&o.fragment.c();e.intro&&St(t.$$.fragment),Ht(t,e.target,e.anchor),ct(),Z()}k(a)}class re{constructor(){h(this,"$$");h(this,"$$set")}$destroy(){Dt(this,1),this.$destroy=v}$on(e,n){if(!L(n))return v;const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(n),()=>{const s=i.indexOf(n);s!==-1&&i.splice(s,1)}}$set(e){this.$$set&&!tt(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Mt="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Mt);export{Vt as A,Xt as B,Wt as C,Kt as D,qt as E,Qt as F,It as G,H,Ot as I,ee as J,M as K,re as S,yt as a,$t as b,Gt as c,E as d,P as e,gt as f,zt as g,Jt as h,se as i,mt as j,Zt as k,St as l,Yt as m,jt as n,ne as o,ie as p,Ht as q,Dt as r,Bt as s,te as t,R as u,xt as v,Ut as w,J as x,Ft as y,kt as z}; diff --git a/_app/immutable/chunks/paths.BCdhk5uV.js b/_app/immutable/chunks/paths.BCdhk5uV.js new file mode 100644 index 00000000..f5d88e44 --- /dev/null +++ b/_app/immutable/chunks/paths.BCdhk5uV.js @@ -0,0 +1 @@ +var s;const e=((s=globalThis.__sveltekit_jrc4vk)==null?void 0:s.base)??"";var a;const t=((a=globalThis.__sveltekit_jrc4vk)==null?void 0:a.assets)??e;export{t as a,e as b}; diff --git a/_app/immutable/chunks/paths.CQpuyKeJ.js b/_app/immutable/chunks/paths.CQpuyKeJ.js deleted file mode 100644 index a72a9c5a..00000000 --- a/_app/immutable/chunks/paths.CQpuyKeJ.js +++ /dev/null @@ -1 +0,0 @@ -var s;const a=((s=globalThis.__sveltekit_attt16)==null?void 0:s.base)??"";var t;const e=((t=globalThis.__sveltekit_attt16)==null?void 0:t.assets)??a;export{e as a,a as b}; diff --git a/_app/immutable/entry/app.Pj71VunT.js b/_app/immutable/entry/app.Pj71VunT.js new file mode 100644 index 00000000..903b8538 --- /dev/null +++ b/_app/immutable/entry/app.Pj71VunT.js @@ -0,0 +1,2 @@ +const __vite__fileDeps=["../nodes/0.CSmdKsAW.js","../chunks/scheduler.CZFVEtgY.js","../chunks/index.CNd5CZrX.js","../chunks/28.BXboE3l1.js","../chunks/index.BMEkiqFO.js","../chunks/paths.BCdhk5uV.js","../chunks/index.Ba7-f4DY.js","../chunks/preload-helper.D6kgxu3v.js","../chunks/Button.Bg-1Yv3Z.js","../chunks/index.D7Jwt5yH.js","../assets/Button.C8SB3FfM.css","../chunks/Divider.BQLjv_0p.js","../assets/Divider.D1tZzeMU.css","../assets/0.BultMj2y.css","../nodes/1.Bg0ugIg7.js","../chunks/entry.DlRyyYa4.js","../nodes/2.C9Bf-2g4.js","../chunks/Loader.lmq2X6M7.js","../assets/Loader.BCLqNT-k.css","../assets/2.JhICGo_n.css","../nodes/3.CtwBHwWF.js","../nodes/4.DuQyjg-5.js","../chunks/Blog.Sphi6VKa.js","../nodes/5.D4ge11wY.js","../nodes/6.ZUhNexrD.js","../nodes/7.B2r3wU7E.js","../nodes/8.CKuYnlDs.js","../nodes/9.FcUVz71X.js","../nodes/10.CVIBc15s.js","../nodes/11.1Q5Bw8DN.js","../nodes/12.DkNM-cyR.js","../nodes/13.FBAjejiw.js","../nodes/14.I8ScdxfY.js","../nodes/15.Cli1CEbw.js","../nodes/16.HnMTK0Qz.js","../nodes/17.CjhexHgP.js","../nodes/18.3TE2CvJq.js","../nodes/19.Cu7n3Bx_.js","../nodes/20.Bc_msup8.js","../nodes/21.DecIwDkG.js","../nodes/22.BVqEWefF.js","../nodes/23.BiIHyvVm.js","../nodes/24.DtLtXIr-.js","../nodes/25.CSNUowDE.js","../nodes/26.CxVeZHYL.js","../nodes/27.DXApBUaA.js","../nodes/28.BBIYXl3t.js","../nodes/29.DVDykO3x.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); +import{_ as s}from"../chunks/preload-helper.D6kgxu3v.js";import{s as S,d as z,o as B,e as T,t as C}from"../chunks/scheduler.CZFVEtgY.js";import{S as M,i as U,s as X,z as d,h as j,b as h,t as g,k as P,l as E,d as b,e as F,c as G,f as H,a as V,A as p,u as J,v as K,w as Q,m as R,B as w,o as A,p as L,q as D,r as I}from"../chunks/index.CNd5CZrX.js";const it={};function W(n){let t,r,i;var o=n[1][0];function f(e,_){return{props:{data:e[3],form:e[2]}}}return o&&(t=w(o,f(n)),n[12](t)),{c(){t&&A(t.$$.fragment),r=d()},l(e){t&&L(t.$$.fragment,e),r=d()},m(e,_){t&&D(t,e,_),h(e,r,_),i=!0},p(e,_){if(_&2&&o!==(o=e[1][0])){if(t){R();const a=t;g(a.$$.fragment,1,0,()=>{I(a,1)}),P()}o?(t=w(o,f(e)),e[12](t),A(t.$$.fragment),E(t.$$.fragment,1),D(t,r.parentNode,r)):t=null}else if(o){const a={};_&8&&(a.data=e[3]),_&4&&(a.form=e[2]),t.$set(a)}},i(e){i||(t&&E(t.$$.fragment,e),i=!0)},o(e){t&&g(t.$$.fragment,e),i=!1},d(e){e&&b(r),n[12](null),t&&I(t,e)}}}function Y(n){let t,r,i;var o=n[1][0];function f(e,_){return{props:{data:e[3],$$slots:{default:[Z]},$$scope:{ctx:e}}}}return o&&(t=w(o,f(n)),n[11](t)),{c(){t&&A(t.$$.fragment),r=d()},l(e){t&&L(t.$$.fragment,e),r=d()},m(e,_){t&&D(t,e,_),h(e,r,_),i=!0},p(e,_){if(_&2&&o!==(o=e[1][0])){if(t){R();const a=t;g(a.$$.fragment,1,0,()=>{I(a,1)}),P()}o?(t=w(o,f(e)),e[11](t),A(t.$$.fragment),E(t.$$.fragment,1),D(t,r.parentNode,r)):t=null}else if(o){const a={};_&8&&(a.data=e[3]),_&8215&&(a.$$scope={dirty:_,ctx:e}),t.$set(a)}},i(e){i||(t&&E(t.$$.fragment,e),i=!0)},o(e){t&&g(t.$$.fragment,e),i=!1},d(e){e&&b(r),n[11](null),t&&I(t,e)}}}function Z(n){let t,r,i;var o=n[1][1];function f(e,_){return{props:{data:e[4],form:e[2]}}}return o&&(t=w(o,f(n)),n[10](t)),{c(){t&&A(t.$$.fragment),r=d()},l(e){t&&L(t.$$.fragment,e),r=d()},m(e,_){t&&D(t,e,_),h(e,r,_),i=!0},p(e,_){if(_&2&&o!==(o=e[1][1])){if(t){R();const a=t;g(a.$$.fragment,1,0,()=>{I(a,1)}),P()}o?(t=w(o,f(e)),e[10](t),A(t.$$.fragment),E(t.$$.fragment,1),D(t,r.parentNode,r)):t=null}else if(o){const a={};_&16&&(a.data=e[4]),_&4&&(a.form=e[2]),t.$set(a)}},i(e){i||(t&&E(t.$$.fragment,e),i=!0)},o(e){t&&g(t.$$.fragment,e),i=!1},d(e){e&&b(r),n[10](null),t&&I(t,e)}}}function O(n){let t,r=n[6]&&k(n);return{c(){t=F("div"),r&&r.c(),this.h()},l(i){t=G(i,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var o=H(t);r&&r.l(o),o.forEach(b),this.h()},h(){V(t,"id","svelte-announcer"),V(t,"aria-live","assertive"),V(t,"aria-atomic","true"),p(t,"position","absolute"),p(t,"left","0"),p(t,"top","0"),p(t,"clip","rect(0 0 0 0)"),p(t,"clip-path","inset(50%)"),p(t,"overflow","hidden"),p(t,"white-space","nowrap"),p(t,"width","1px"),p(t,"height","1px")},m(i,o){h(i,t,o),r&&r.m(t,null)},p(i,o){i[6]?r?r.p(i,o):(r=k(i),r.c(),r.m(t,null)):r&&(r.d(1),r=null)},d(i){i&&b(t),r&&r.d()}}}function k(n){let t;return{c(){t=J(n[7])},l(r){t=K(r,n[7])},m(r,i){h(r,t,i)},p(r,i){i&128&&Q(t,r[7])},d(r){r&&b(t)}}}function $(n){let t,r,i,o,f;const e=[Y,W],_=[];function a(l,c){return l[1][1]?0:1}t=a(n),r=_[t]=e[t](n);let m=n[5]&&O(n);return{c(){r.c(),i=X(),m&&m.c(),o=d()},l(l){r.l(l),i=j(l),m&&m.l(l),o=d()},m(l,c){_[t].m(l,c),h(l,i,c),m&&m.m(l,c),h(l,o,c),f=!0},p(l,[c]){let v=t;t=a(l),t===v?_[t].p(l,c):(R(),g(_[v],1,1,()=>{_[v]=null}),P(),r=_[t],r?r.p(l,c):(r=_[t]=e[t](l),r.c()),E(r,1),r.m(i.parentNode,i)),l[5]?m?m.p(l,c):(m=O(l),m.c(),m.m(o.parentNode,o)):m&&(m.d(1),m=null)},i(l){f||(E(r),f=!0)},o(l){g(r),f=!1},d(l){l&&(b(i),b(o)),_[t].d(l),m&&m.d(l)}}}function x(n,t,r){let{stores:i}=t,{page:o}=t,{constructors:f}=t,{components:e=[]}=t,{form:_}=t,{data_0:a=null}=t,{data_1:m=null}=t;z(i.page.notify);let l=!1,c=!1,v=null;B(()=>{const u=i.page.subscribe(()=>{l&&(r(6,c=!0),C().then(()=>{r(7,v=document.title||"untitled page")}))});return r(5,l=!0),u});function y(u){T[u?"unshift":"push"](()=>{e[1]=u,r(0,e)})}function q(u){T[u?"unshift":"push"](()=>{e[0]=u,r(0,e)})}function N(u){T[u?"unshift":"push"](()=>{e[0]=u,r(0,e)})}return n.$$set=u=>{"stores"in u&&r(8,i=u.stores),"page"in u&&r(9,o=u.page),"constructors"in u&&r(1,f=u.constructors),"components"in u&&r(0,e=u.components),"form"in u&&r(2,_=u.form),"data_0"in u&&r(3,a=u.data_0),"data_1"in u&&r(4,m=u.data_1)},n.$$.update=()=>{n.$$.dirty&768&&i.page.set(o)},[e,f,_,a,m,l,c,v,i,o,y,q,N]}class ot extends M{constructor(t){super(),U(this,t,x,$,S,{stores:8,page:9,constructors:1,components:0,form:2,data_0:3,data_1:4})}}const _t=[()=>s(()=>import("../nodes/0.CSmdKsAW.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13]),import.meta.url),()=>s(()=>import("../nodes/1.Bg0ugIg7.js"),__vite__mapDeps([14,1,2,15,6,5]),import.meta.url),()=>s(()=>import("../nodes/2.C9Bf-2g4.js"),__vite__mapDeps([16,1,2,8,4,5,9,10,3,6,7,11,12,17,18,19]),import.meta.url),()=>s(()=>import("../nodes/3.CtwBHwWF.js"),__vite__mapDeps([20,1,2]),import.meta.url),()=>s(()=>import("../nodes/4.DuQyjg-5.js"),__vite__mapDeps([21,3,1,2,4,5,6,7,22,8,9,10,17,18]),import.meta.url),()=>s(()=>import("../nodes/5.D4ge11wY.js"),__vite__mapDeps([23,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/6.ZUhNexrD.js"),__vite__mapDeps([24,3,1,2,4,5,6,7,22,8,9,10,17,18]),import.meta.url),()=>s(()=>import("../nodes/7.B2r3wU7E.js"),__vite__mapDeps([25,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/8.CKuYnlDs.js"),__vite__mapDeps([26,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/9.FcUVz71X.js"),__vite__mapDeps([27,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/10.CVIBc15s.js"),__vite__mapDeps([28,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/11.1Q5Bw8DN.js"),__vite__mapDeps([29,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/12.DkNM-cyR.js"),__vite__mapDeps([30,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/13.FBAjejiw.js"),__vite__mapDeps([31,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/14.I8ScdxfY.js"),__vite__mapDeps([32,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/15.Cli1CEbw.js"),__vite__mapDeps([33,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/16.HnMTK0Qz.js"),__vite__mapDeps([34,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/17.CjhexHgP.js"),__vite__mapDeps([35,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/18.3TE2CvJq.js"),__vite__mapDeps([36,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/19.Cu7n3Bx_.js"),__vite__mapDeps([37,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/20.Bc_msup8.js"),__vite__mapDeps([38,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/21.DecIwDkG.js"),__vite__mapDeps([39,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/22.BVqEWefF.js"),__vite__mapDeps([40,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/23.BiIHyvVm.js"),__vite__mapDeps([41,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/24.DtLtXIr-.js"),__vite__mapDeps([42,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/25.CSNUowDE.js"),__vite__mapDeps([43,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/26.CxVeZHYL.js"),__vite__mapDeps([44,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/27.DXApBUaA.js"),__vite__mapDeps([45,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/28.BBIYXl3t.js"),__vite__mapDeps([46,3,1,2,4,5,6,7]),import.meta.url),()=>s(()=>import("../nodes/29.DVDykO3x.js"),__vite__mapDeps([47,1,2,8,4,5,9,10,17,18]),import.meta.url)],nt=[],st={"/":[2],"/about":[3],"/blog":[4],"/blog/STX-interview":[5],"/blog/cbi-installers":[7],"/blog/czi-grant":[8],"/blog/installer-improvements":[9],"/blog/introducing-unittest-plugin":[10],"/blog/introducing-watchlist-plugin":[11],"/blog/release-qtconsole-440":[12],"/blog/release-spyder-330":[13],"/blog/release-spyder-4beta2":[15],"/blog/release-spyder-4":[14],"/blog/reusable-research-bof-scipy-2023-part-2":[17],"/blog/reusable-research-bof-scipy-2023":[16],"/blog/spyder-debugger":[18],"/blog/spyder-files-improvements":[19],"/blog/spyder-kite-funding":[20],"/blog/spyder-roadmap-proposals-2022":[21],"/blog/spyder-status-2018-past":[22],"/blog/spyder-status-2018-present":[23],"/blog/spyder-terminal-030":[24],"/blog/spyder-variable-explorer":[25],"/blog/tdk-micronas-partners-with-quansight-labs":[26],"/blog/tutorial-docs":[27],"/blog/webcast-quansight-ep1":[28],"/blog/[page]":[6],"/download":[29]},at={handleError:({error:n})=>{console.error(n)},reroute:()=>{}};export{st as dictionary,at as hooks,it as matchers,_t as nodes,ot as root,nt as server_loads}; diff --git a/_app/immutable/entry/app.u1YdZlIS.js b/_app/immutable/entry/app.u1YdZlIS.js deleted file mode 100644 index 1fee2f2c..00000000 --- a/_app/immutable/entry/app.u1YdZlIS.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__fileDeps=["../nodes/0.kNY_3weG.js","../chunks/scheduler.CZFVEtgY.js","../chunks/index.DjvOVdNM.js","../chunks/index.Ch6n4Zkw.js","../chunks/index.Ba7-f4DY.js","../chunks/index.CXB4hq09.js","../chunks/paths.CQpuyKeJ.js","../chunks/Button.Bc5NNSmk.js","../chunks/index.D7Jwt5yH.js","../assets/Button.CH7FK0tB.css","../chunks/Divider.DkyJmbrB.js","../assets/Divider.D1tZzeMU.css","../assets/0.CE92UdaT.css","../nodes/1.C0YpDV2r.js","../chunks/entry.BmaD9OfL.js","../nodes/2.BMF7pCz9.js","../chunks/28.D5QBwc6E.js","../chunks/preload-helper.D6kgxu3v.js","../chunks/Loader.CgdetROw.js","../assets/Loader.BCLqNT-k.css","../assets/2.DA1N_58T.css","../nodes/3.CCMn4aAO.js","../nodes/4.C3AAa8uA.js","../chunks/Blog.Ok4J1JLa.js","../nodes/5.BP5UJ69h.js","../nodes/6.BR8RjYzT.js","../nodes/7.CogwfLtn.js","../nodes/8.BOy55Jow.js","../nodes/9.09u8HEQO.js","../nodes/10.BP4esORN.js","../nodes/11.BgEq8n9f.js","../nodes/12.CrK6FaVq.js","../nodes/13.0bWQumfu.js","../nodes/14.C21SKQFf.js","../nodes/15.DBviWFJq.js","../nodes/16.-j9j-41P.js","../nodes/17.BHEWaUws.js","../nodes/18.W1MqEQCq.js","../nodes/19.D1WqYe5_.js","../nodes/20.CDwgYxgm.js","../nodes/21.CYWNATs-.js","../nodes/22.DuKzqYrJ.js","../nodes/23.BdXNThUZ.js","../nodes/24.DsGOjT-K.js","../nodes/25.DPEas6BZ.js","../nodes/26.Cv4DYfmK.js","../nodes/27.F91EPrph.js","../nodes/28.XF0Vbiun.js","../nodes/29.DHAFXepX.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]); -import{_ as s}from"../chunks/preload-helper.D6kgxu3v.js";import{s as S,d as z,o as B,e as T,t as C}from"../chunks/scheduler.CZFVEtgY.js";import{S as M,i as U,s as X,z as d,h as j,b as h,t as g,k as P,l as E,d as b,e as F,c as G,f as H,a as V,A as p,u as J,v as K,w as Q,m as R,B as w,o as A,p as L,q as D,r as I}from"../chunks/index.DjvOVdNM.js";const it={};function W(n){let t,r,i;var o=n[1][0];function f(e,_){return{props:{data:e[3],form:e[2]}}}return o&&(t=w(o,f(n)),n[12](t)),{c(){t&&A(t.$$.fragment),r=d()},l(e){t&&L(t.$$.fragment,e),r=d()},m(e,_){t&&D(t,e,_),h(e,r,_),i=!0},p(e,_){if(_&2&&o!==(o=e[1][0])){if(t){R();const a=t;g(a.$$.fragment,1,0,()=>{I(a,1)}),P()}o?(t=w(o,f(e)),e[12](t),A(t.$$.fragment),E(t.$$.fragment,1),D(t,r.parentNode,r)):t=null}else if(o){const a={};_&8&&(a.data=e[3]),_&4&&(a.form=e[2]),t.$set(a)}},i(e){i||(t&&E(t.$$.fragment,e),i=!0)},o(e){t&&g(t.$$.fragment,e),i=!1},d(e){e&&b(r),n[12](null),t&&I(t,e)}}}function Y(n){let t,r,i;var o=n[1][0];function f(e,_){return{props:{data:e[3],$$slots:{default:[Z]},$$scope:{ctx:e}}}}return o&&(t=w(o,f(n)),n[11](t)),{c(){t&&A(t.$$.fragment),r=d()},l(e){t&&L(t.$$.fragment,e),r=d()},m(e,_){t&&D(t,e,_),h(e,r,_),i=!0},p(e,_){if(_&2&&o!==(o=e[1][0])){if(t){R();const a=t;g(a.$$.fragment,1,0,()=>{I(a,1)}),P()}o?(t=w(o,f(e)),e[11](t),A(t.$$.fragment),E(t.$$.fragment,1),D(t,r.parentNode,r)):t=null}else if(o){const a={};_&8&&(a.data=e[3]),_&8215&&(a.$$scope={dirty:_,ctx:e}),t.$set(a)}},i(e){i||(t&&E(t.$$.fragment,e),i=!0)},o(e){t&&g(t.$$.fragment,e),i=!1},d(e){e&&b(r),n[11](null),t&&I(t,e)}}}function Z(n){let t,r,i;var o=n[1][1];function f(e,_){return{props:{data:e[4],form:e[2]}}}return o&&(t=w(o,f(n)),n[10](t)),{c(){t&&A(t.$$.fragment),r=d()},l(e){t&&L(t.$$.fragment,e),r=d()},m(e,_){t&&D(t,e,_),h(e,r,_),i=!0},p(e,_){if(_&2&&o!==(o=e[1][1])){if(t){R();const a=t;g(a.$$.fragment,1,0,()=>{I(a,1)}),P()}o?(t=w(o,f(e)),e[10](t),A(t.$$.fragment),E(t.$$.fragment,1),D(t,r.parentNode,r)):t=null}else if(o){const a={};_&16&&(a.data=e[4]),_&4&&(a.form=e[2]),t.$set(a)}},i(e){i||(t&&E(t.$$.fragment,e),i=!0)},o(e){t&&g(t.$$.fragment,e),i=!1},d(e){e&&b(r),n[10](null),t&&I(t,e)}}}function O(n){let t,r=n[6]&&k(n);return{c(){t=F("div"),r&&r.c(),this.h()},l(i){t=G(i,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var o=H(t);r&&r.l(o),o.forEach(b),this.h()},h(){V(t,"id","svelte-announcer"),V(t,"aria-live","assertive"),V(t,"aria-atomic","true"),p(t,"position","absolute"),p(t,"left","0"),p(t,"top","0"),p(t,"clip","rect(0 0 0 0)"),p(t,"clip-path","inset(50%)"),p(t,"overflow","hidden"),p(t,"white-space","nowrap"),p(t,"width","1px"),p(t,"height","1px")},m(i,o){h(i,t,o),r&&r.m(t,null)},p(i,o){i[6]?r?r.p(i,o):(r=k(i),r.c(),r.m(t,null)):r&&(r.d(1),r=null)},d(i){i&&b(t),r&&r.d()}}}function k(n){let t;return{c(){t=J(n[7])},l(r){t=K(r,n[7])},m(r,i){h(r,t,i)},p(r,i){i&128&&Q(t,r[7])},d(r){r&&b(t)}}}function $(n){let t,r,i,o,f;const e=[Y,W],_=[];function a(l,c){return l[1][1]?0:1}t=a(n),r=_[t]=e[t](n);let m=n[5]&&O(n);return{c(){r.c(),i=X(),m&&m.c(),o=d()},l(l){r.l(l),i=j(l),m&&m.l(l),o=d()},m(l,c){_[t].m(l,c),h(l,i,c),m&&m.m(l,c),h(l,o,c),f=!0},p(l,[c]){let v=t;t=a(l),t===v?_[t].p(l,c):(R(),g(_[v],1,1,()=>{_[v]=null}),P(),r=_[t],r?r.p(l,c):(r=_[t]=e[t](l),r.c()),E(r,1),r.m(i.parentNode,i)),l[5]?m?m.p(l,c):(m=O(l),m.c(),m.m(o.parentNode,o)):m&&(m.d(1),m=null)},i(l){f||(E(r),f=!0)},o(l){g(r),f=!1},d(l){l&&(b(i),b(o)),_[t].d(l),m&&m.d(l)}}}function x(n,t,r){let{stores:i}=t,{page:o}=t,{constructors:f}=t,{components:e=[]}=t,{form:_}=t,{data_0:a=null}=t,{data_1:m=null}=t;z(i.page.notify);let l=!1,c=!1,v=null;B(()=>{const u=i.page.subscribe(()=>{l&&(r(6,c=!0),C().then(()=>{r(7,v=document.title||"untitled page")}))});return r(5,l=!0),u});function y(u){T[u?"unshift":"push"](()=>{e[1]=u,r(0,e)})}function q(u){T[u?"unshift":"push"](()=>{e[0]=u,r(0,e)})}function N(u){T[u?"unshift":"push"](()=>{e[0]=u,r(0,e)})}return n.$$set=u=>{"stores"in u&&r(8,i=u.stores),"page"in u&&r(9,o=u.page),"constructors"in u&&r(1,f=u.constructors),"components"in u&&r(0,e=u.components),"form"in u&&r(2,_=u.form),"data_0"in u&&r(3,a=u.data_0),"data_1"in u&&r(4,m=u.data_1)},n.$$.update=()=>{n.$$.dirty&768&&i.page.set(o)},[e,f,_,a,m,l,c,v,i,o,y,q,N]}class ot extends M{constructor(t){super(),U(this,t,x,$,S,{stores:8,page:9,constructors:1,components:0,form:2,data_0:3,data_1:4})}}const _t=[()=>s(()=>import("../nodes/0.kNY_3weG.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]),import.meta.url),()=>s(()=>import("../nodes/1.C0YpDV2r.js"),__vite__mapDeps([13,1,2,14,4,6]),import.meta.url),()=>s(()=>import("../nodes/2.BMF7pCz9.js"),__vite__mapDeps([15,6,16,1,2,5,3,4,17,7,8,9,10,11,18,19,20]),import.meta.url),()=>s(()=>import("../nodes/3.CCMn4aAO.js"),__vite__mapDeps([21,1,2]),import.meta.url),()=>s(()=>import("../nodes/4.C3AAa8uA.js"),__vite__mapDeps([22,16,1,2,5,6,3,4,17,23,7,8,9,18,19]),import.meta.url),()=>s(()=>import("../nodes/5.BP5UJ69h.js"),__vite__mapDeps([24,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/6.BR8RjYzT.js"),__vite__mapDeps([25,16,1,2,5,6,3,4,17,23,7,8,9,18,19]),import.meta.url),()=>s(()=>import("../nodes/7.CogwfLtn.js"),__vite__mapDeps([26,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/8.BOy55Jow.js"),__vite__mapDeps([27,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/9.09u8HEQO.js"),__vite__mapDeps([28,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/10.BP4esORN.js"),__vite__mapDeps([29,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/11.BgEq8n9f.js"),__vite__mapDeps([30,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/12.CrK6FaVq.js"),__vite__mapDeps([31,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/13.0bWQumfu.js"),__vite__mapDeps([32,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/14.C21SKQFf.js"),__vite__mapDeps([33,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/15.DBviWFJq.js"),__vite__mapDeps([34,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/16.-j9j-41P.js"),__vite__mapDeps([35,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/17.BHEWaUws.js"),__vite__mapDeps([36,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/18.W1MqEQCq.js"),__vite__mapDeps([37,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/19.D1WqYe5_.js"),__vite__mapDeps([38,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/20.CDwgYxgm.js"),__vite__mapDeps([39,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/21.CYWNATs-.js"),__vite__mapDeps([40,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/22.DuKzqYrJ.js"),__vite__mapDeps([41,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/23.BdXNThUZ.js"),__vite__mapDeps([42,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/24.DsGOjT-K.js"),__vite__mapDeps([43,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/25.DPEas6BZ.js"),__vite__mapDeps([44,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/26.Cv4DYfmK.js"),__vite__mapDeps([45,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/27.F91EPrph.js"),__vite__mapDeps([46,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/28.XF0Vbiun.js"),__vite__mapDeps([47,16,1,2,5,6,3,4,17]),import.meta.url),()=>s(()=>import("../nodes/29.DHAFXepX.js"),__vite__mapDeps([48,1,2,7,5,6,8,9,18,19]),import.meta.url)],nt=[],st={"/":[2],"/about":[3],"/blog":[4],"/blog/STX-interview":[5],"/blog/cbi-installers":[7],"/blog/czi-grant":[8],"/blog/installer-improvements":[9],"/blog/introducing-unittest-plugin":[10],"/blog/introducing-watchlist-plugin":[11],"/blog/release-qtconsole-440":[12],"/blog/release-spyder-330":[13],"/blog/release-spyder-4beta2":[15],"/blog/release-spyder-4":[14],"/blog/reusable-research-bof-scipy-2023-part-2":[17],"/blog/reusable-research-bof-scipy-2023":[16],"/blog/spyder-debugger":[18],"/blog/spyder-files-improvements":[19],"/blog/spyder-kite-funding":[20],"/blog/spyder-roadmap-proposals-2022":[21],"/blog/spyder-status-2018-past":[22],"/blog/spyder-status-2018-present":[23],"/blog/spyder-terminal-030":[24],"/blog/spyder-variable-explorer":[25],"/blog/tdk-micronas-partners-with-quansight-labs":[26],"/blog/tutorial-docs":[27],"/blog/webcast-quansight-ep1":[28],"/blog/[page]":[6],"/download":[29]},at={handleError:({error:n})=>{console.error(n)},reroute:()=>{}};export{st as dictionary,at as hooks,it as matchers,_t as nodes,ot as root,nt as server_loads}; diff --git a/_app/immutable/entry/start.5cYTButu.js b/_app/immutable/entry/start.5cYTButu.js deleted file mode 100644 index 30a462b4..00000000 --- a/_app/immutable/entry/start.5cYTButu.js +++ /dev/null @@ -1 +0,0 @@ -import{a as t}from"../chunks/entry.BmaD9OfL.js";export{t as start}; diff --git a/_app/immutable/entry/start.BKJrtzwY.js b/_app/immutable/entry/start.BKJrtzwY.js new file mode 100644 index 00000000..efd1f989 --- /dev/null +++ b/_app/immutable/entry/start.BKJrtzwY.js @@ -0,0 +1 @@ +import{a as t}from"../chunks/entry.DlRyyYa4.js";export{t as start}; diff --git a/_app/immutable/nodes/0.CSmdKsAW.js b/_app/immutable/nodes/0.CSmdKsAW.js new file mode 100644 index 00000000..40358a5e --- /dev/null +++ b/_app/immutable/nodes/0.CSmdKsAW.js @@ -0,0 +1,5 @@ +import{s as K,y as Ie,n as P,z as Te,A as Ae,B as Ve,C as He,c as Ce,o as De,a as je}from"../chunks/scheduler.CZFVEtgY.js";import{S as W,i as J,e as k,s as S,o as C,u as R,F as Le,c as w,g as ae,d as u,h as z,f as x,p as D,v as G,a as f,j as d,b as I,q as j,G as re,l as T,t as A,r as B,x as te,y as le,z as pe,m as Se,k as ze,n as X}from"../chunks/index.CNd5CZrX.js";import{c as Q,m as oe}from"../chunks/28.BXboE3l1.js";import{n as ie,t as fe,d as se,f as _e,s as Be,k as Ne,a as Oe}from"../chunks/index.BMEkiqFO.js";import{I as ue,e as F,B as Ze}from"../chunks/Button.Bg-1Yv3Z.js";import{b as Pe}from"../chunks/paths.BCdhk5uV.js";import{L as ge,a as ve,g as Fe,D as Ue}from"../chunks/Divider.BQLjv_0p.js";const qe=!0,Re="always",wt=Object.freeze(Object.defineProperty({__proto__:null,prerender:qe,trailingSlash:Re},Symbol.toStringTag,{value:"Module"})),Ge={a:{viewBox:"0 0 24 24"},c:''},Ke={a:{viewBox:"0 0 1024 1024",fill:"currentColor","fill-rule":"evenodd"},c:''},{document:$e}=Fe;function We(o){let e,a=`localStorage.colourScheme === "dark" || + (!("colourScheme" in localStorage) && + window.matchMedia("(prefers-color-scheme: dark)").matches) + ? document.documentElement.classList.add("dark") + : document.documentElement.classList.remove("dark");`,l,t,s,r,n,v,g,$,_,p,M,c;return v=new ue({props:{src:o[0]?ge:ve,size:24,title:ce}}),{c(){e=k("script"),e.textContent=a,l=S(),t=k("div"),s=k("input"),r=S(),n=k("label"),C(v.$$.fragment),g=S(),$=k("span"),_=R(ce),this.h()},l(b){const h=Le("svelte-3b3w8r",$e.head);e=w(h,"SCRIPT",{"data-svelte-h":!0}),ae(e)!=="svelte-nzfwqp"&&(e.textContent=a),h.forEach(u),l=z(b),t=w(b,"DIV",{class:!0});var m=x(t);s=w(m,"INPUT",{class:!0,type:!0,id:!0}),r=z(m),n=w(m,"LABEL",{class:!0,for:!0});var i=x(n);D(v.$$.fragment,i),g=z(i),$=w(i,"SPAN",{class:!0});var y=x($);_=G(y,ce),y.forEach(u),i.forEach(u),m.forEach(u),this.h()},h(){s.checked=o[0],f(s,"class","sr-only"),f(s,"type","checkbox"),f(s,"id","colourScheme-switch"),f($,"class","sr-only"),f(n,"class","relative cursor-pointer p-2"),f(n,"for","colourScheme-switch"),f(t,"class","inline-flex justify-center items-center")},m(b,h){d($e.head,e),I(b,l,h),I(b,t,h),d(t,s),d(t,r),d(t,n),j(v,n,null),d(n,g),d(n,$),d($,_),p=!0,M||(c=re(s,"click",o[1]),M=!0)},p(b,[h]){(!p||h&1)&&(s.checked=b[0]);const m={};h&1&&(m.src=b[0]?ge:ve),v.$set(m)},i(b){p||(T(v.$$.fragment,b),p=!0)},o(b){A(v.$$.fragment,b),p=!1},d(b){b&&(u(l),u(t)),u(e),B(v),M=!1,c()}}}let ce="Switch to light / dark version";function Je(o,e,a){let l=Ie(Q)==="dark";const t=()=>{a(0,l=!l),Q.set(l?"dark":"light")};{const s=localStorage.getItem("colourScheme");s==="dark"||!s&&window.matchMedia("(prefers-color-scheme: dark)").matches?(Q.set("dark"),l=!0):(Q.set("light"),l=!1),Q.subscribe(r=>{r==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"),a(0,l=r==="dark")})}return[l,t]}class Qe extends W{constructor(e){super(),J(this,e,Je,We,K,{})}}function Xe(o){let e,a,l,t;return{c(){e=te("svg"),a=te("path"),l=te("path"),t=te("path"),this.h()},l(s){e=le(s,"svg",{xmlns:!0,width:!0,height:!0,class:!0});var r=x(e);a=le(r,"path",{class:!0,d:!0}),x(a).forEach(u),l=le(r,"path",{class:!0,d:!0}),x(l).forEach(u),t=le(r,"path",{class:!0,d:!0}),x(t).forEach(u),r.forEach(u),this.h()},h(){f(a,"class","fill-mine-shaft-950 dark:fill-white"),f(a,"d","M124.9 14.564c.341.103.512.24.512.58v1.436a.44.44 0 0 1-.546.478h-2.98c-2.357 0-2.972.376-2.972 1.917v13.57a.454.454 0 0 1-.512.512h-2.22a.454.454 0 0 1-.517-.512v-14.35c0-3.86 3.417-3.996 5.402-3.996.82-.01 3.15.123 3.833.365zm-12.92 8.64v.99c0 .684-.172.96-1.23.96H99.877c.103 4.169.892 5.194 4.547 5.194h5.607a.454.454 0 0 1 .512.512v1.507a.506.506 0 0 1-.478.547 42.302 42.302 0 0 1-5.709.307c-6.426 0-7.793-1.882-7.793-9.504s1.367-9.536 7.793-9.536c6.119.007 7.554 1.818 7.622 9.023zm-12.136-.717h8.855c-.068-4.343-.785-5.436-4.342-5.436-3.69.004-4.445 1.1-4.513 5.443zM91.918 7.215a.454.454 0 0 1 .512.513v24.359c0 .376-.204.512-.546.546a38.506 38.506 0 0 1-7.11.581c-6.634 0-7.967-1.882-7.967-9.47 0-7.588 1.333-9.566 7.793-9.566a36.525 36.525 0 0 1 4.547.24v-6.69a.454.454 0 0 1 .513-.513Zm-7.113 9.84c-4.236 0-4.715 1.298-4.715 6.665 0 5.265.445 6.631 4.684 6.631a38.038 38.038 0 0 0 4.373-.273V17.055Zm-12.678-2.696a.454.454 0 0 1 .512.513v16.473c-.034 6.703-1.332 8.65-7.895 8.65a34.355 34.355 0 0 1-5.162-.307.506.506 0 0 1-.478-.546v-1.473a.454.454 0 0 1 .512-.512h5.06c3.826 0 4.684-.923 4.684-3.998v-.204a26.948 26.948 0 0 1-4.513.273c-6.46 0-7.827-1.95-7.827-9.334v-9.022a.454.454 0 0 1 .512-.513h2.22a.454.454 0 0 1 .513.513v8.817c0 5.333.547 6.666 4.783 6.666a36.863 36.863 0 0 0 4.308-.24V14.872a.454.454 0 0 1 .513-.513zm-19.074 9.33c0 7.622-1.366 9.539-7.827 9.539a37.498 37.498 0 0 1-4.513-.205v6.29a.454.454 0 0 1-.512.512h-2.255a.454.454 0 0 1-.513-.513V15.346c0-.375.205-.512.547-.58a38.134 38.134 0 0 1 7.075-.581c6.632.003 7.998 1.95 7.998 9.504zm-12.34-6.634v13.023a36.979 36.979 0 0 0 4.308.273c4.24 0 4.752-1.298 4.752-6.631s-.478-6.665-4.683-6.665z"),f(l,"class","fill-mine-shaft-950 dark:fill-white"),f(l,"d","M32.514 14.496a.506.506 0 0 1 .478.546v1.47a.454.454 0 0 1-.512.512h-6.358c-1.575 0-2.498.547-2.498 1.776v.448c0 .957.445 1.776 2.122 2.391l4.544 1.811c3.146 1.196 3.416 2.942 3.416 4.82v.376c0 3.83-2.292 4.582-6.904 4.582-2.976 0-5.675-.24-6.256-.308-.41-.034-.512-.239-.512-.512V30.9a.454.454 0 0 1 .512-.512h6.324c2.733 0 3.587-.308 3.587-1.777v-.41c0-.99-.41-1.64-1.981-2.289l-4.855-1.848c-2.63-1.025-3.28-3.006-3.28-4.885v-.721c0-3.758 3.28-4.27 6.939-4.27a43.3 43.3 0 0 1 5.234.307z"),f(t,"class","fill-red-berry-900 dark:fill-white"),f(t,"d","M30.857 1.27A5.65 5.65 0 0 0 27.283 0H5.678a5.63 5.63 0 0 0-2.644.656A5.73 5.73 0 0 0 .738 2.88a5.04 5.04 0 0 0-.28.56c-.048.13-.106.257-.15.383a5.234 5.234 0 0 0-.205.796A5.466 5.466 0 0 0 0 5.681v21.606a5.593 5.593 0 0 0 .56 2.46 5.678 5.678 0 0 0 5.125 3.21h11.523a.304.304 0 0 0 .308-.303v-1.367a.307.307 0 0 0-.308-.307h-1.496l-4.465-9.06L21.445 8.415a1.141 1.141 0 0 0 .188-.397l9.337 1.428v2.101a.31.31 0 0 0 .307.308h1.387a.307.307 0 0 0 .304-.308V5.678a5.647 5.647 0 0 0-2.111-4.407zm-11.76.725.482 3.847-7.546-1.155-.342-2.692Zm-13.419 0H9.83l.297 2.392-5.504-.827-1.742-.27a3.662 3.662 0 0 1 2.798-1.295Zm4.202 4.23-3.85 5.124-3.034-6.183Zm-7.885 1.09 2.467 4.998-2.467.304Zm0 7.174 3.324-.42 3.444 6.973-6.768.85zm11.667 16.49H5.986a4 4 0 0 1-3.99-4.017V23.72l7.621-.957Zm-3.324-10.89-3.416-6.895 5.005-6.628 7.714 1.182Zm20.625-12.49-9.498-1.477-.516-4.137h6.027a4 4 0 0 1 3.987 4z"),f(e,"xmlns","http://www.w3.org/2000/svg"),f(e,"width",126),f(e,"height",40),f(e,"class",o[0])},m(s,r){I(s,e,r),d(e,a),d(e,l),d(e,t)},p(s,[r]){r&1&&f(e,"class",s[0])},i:P,o:P,d(s){s&&u(e)}}}function Ye(o,e,a){let{classes:l=""}=e;return o.$$set=t=>{"classes"in t&&a(0,l=t.classes)},[l]}class et extends W{constructor(e){super(),J(this,e,Ye,Xe,K,{classes:0})}}function be(o,e,a){const l=o.slice();return l[2]=e[a],l}function ke(o,e,a){const l=o.slice();return l[5]=e[a],l}function tt(o,e,a){const l=o.slice();return l[2]=e[a],l}function lt(o,e,a){const l=o.slice();return l[5]=e[a],l}function at(o){let e,a,l=o[5].text+"",t;return{c(){e=k("li"),a=k("a"),t=R(l),this.h()},l(s){e=w(s,"LI",{class:!0});var r=x(e);a=w(r,"A",{class:!0,href:!0,target:!0});var n=x(a);t=G(n,l),n.forEach(u),r.forEach(u),this.h()},h(){f(a,"class","menu-link h-20 grid items-center uppercase text-sm tracking-wider before:h-1 before:hover:bg-red-berry-900 svelte-6klv6f"),f(a,"href",o[5].href),f(a,"target",o[5].target),f(e,"class","menu-item")},m(s,r){I(s,e,r),d(e,a),d(a,t)},p:P,d(s){s&&u(e)}}}function st(o){let e,a,l=F(o[2]),t=[];for(let s=0;s{L=null}),ze())},i(E){V||(T(t.$$.fragment,E),T(c.$$.fragment,E),T(m.$$.fragment,E),T(L),V=!0)},o(E){A(t.$$.fragment,E),A(c.$$.fragment,E),A(m.$$.fragment,E),A(L),V=!1},d(E){E&&(u(e),u(i),u(y)),B(t),X(O,E),B(c),B(m),L&&L.d(E),N=!1,U()}}}function nt(o,e,a){let l=!1;function t(){a(0,l=!l)}return[l,t]}class ot extends W{constructor(e){super(),J(this,e,nt,rt,K,{})}}function ct(o){let e,a='© 2024 Spyder Website Contributors | MIT License',l,t,s='Made by @conradolandia with 🖤 using SvelteKit',r,n,v='Feature icons by sip | Markdown processed using mdsvex';return{c(){e=k("p"),e.innerHTML=a,l=S(),t=k("p"),t.innerHTML=s,r=S(),n=k("p"),n.innerHTML=v},l(g){e=w(g,"P",{"data-svelte-h":!0}),ae(e)!=="svelte-1apbcci"&&(e.innerHTML=a),l=z(g),t=w(g,"P",{"data-svelte-h":!0}),ae(t)!=="svelte-44yd0j"&&(t.innerHTML=s),r=z(g),n=w(g,"P",{"data-svelte-h":!0}),ae(n)!=="svelte-8b9p"&&(n.innerHTML=v)},m(g,$){I(g,e,$),I(g,l,$),I(g,t,$),I(g,r,$),I(g,n,$)},p:P,i:P,o:P,d(g){g&&(u(e),u(l),u(t),u(r),u(n))}}}class it extends W{constructor(e){super(),J(this,e,null,ct,K,{})}}function ye(o,e,a){const l=o.slice();return l[1]=e[a][0],l[2]=e[a][1],l}function Me(o){let e,a;return e=new Ze({props:{icon:o[1],href:o[2],button:!1,target:"_blank",iconSize:24}}),{c(){C(e.$$.fragment)},l(l){D(e.$$.fragment,l)},m(l,t){j(e,l,t),a=!0},p:P,i(l){a||(T(e.$$.fragment,l),a=!0)},o(l){A(e.$$.fragment,l),a=!1},d(l){B(e,l)}}}function ft(o){let e,a,l,t,s,r,n,v,g,$,_,p;a=new Ue({});let M=F(o[0]),c=[];for(let h=0;hA(c[h],1,1,()=>{c[h]=null});return _=new it({}),{c(){e=k("footer"),C(a.$$.fragment),l=S(),t=k("div"),s=k("h2"),r=R(_e),n=S(),v=k("div");for(let h=0;ha(0,l=r));let{$$slots:t={},$$scope:s}=e;return De(()=>{oe.setMetadata({title:`${fe} | ${se}`,description:se,keywords:Ne.join(", "),author:Oe})}),je(()=>{oe.reset()}),o.$$set=r=>{"$$scope"in r&&a(1,s=r.$$scope)},[l,s,t]}class Et extends W{constructor(e){super(),J(this,e,dt,mt,K,{})}}export{Et as component,wt as universal}; diff --git a/_app/immutable/nodes/0.kNY_3weG.js b/_app/immutable/nodes/0.kNY_3weG.js deleted file mode 100644 index f4a51482..00000000 --- a/_app/immutable/nodes/0.kNY_3weG.js +++ /dev/null @@ -1,5 +0,0 @@ -import{s as Z,y as fe,n as C,o as ce,z as ue,A as he,B as me,C as de,c as pe,a as _e}from"../chunks/scheduler.CZFVEtgY.js";import{S as N,i as O,e as E,s as L,o as V,u as q,F as ie,c as y,g as F,d as h,h as S,f as x,p as D,v as R,a as u,j as _,b as M,q as j,G as ve,l as z,t as I,r as P,x as U,y as W,n as ee,m as ge,k as $e}from"../chunks/index.DjvOVdNM.js";import{c as B,m as Q}from"../chunks/index.Ch6n4Zkw.js";import{n as we,t as Y,d as G,f as te,s as ke,k as be,a as Ee}from"../chunks/index.CXB4hq09.js";import{I as ye,e as K,B as xe}from"../chunks/Button.Bc5NNSmk.js";import{b as Me}from"../chunks/paths.CQpuyKeJ.js";import{L as ae,a as se,g as Le,D as Se}from"../chunks/Divider.DkyJmbrB.js";const Te=!0,ze="always",lt=Object.freeze(Object.defineProperty({__proto__:null,prerender:Te,trailingSlash:ze},Symbol.toStringTag,{value:"Module"})),{document:le}=Le;function Ie(c){let e,t=`localStorage.colourScheme === "dark" || - (!("colourScheme" in localStorage) && - window.matchMedia("(prefers-color-scheme: dark)").matches) - ? document.documentElement.classList.add("dark") - : document.documentElement.classList.remove("dark");`,a,s,l,o,i,w,k,v,b,d,g,m;return w=new ye({props:{src:c[0]?ae:se,size:24,title:X}}),{c(){e=E("script"),e.textContent=t,a=L(),s=E("div"),l=E("input"),o=L(),i=E("label"),V(w.$$.fragment),k=L(),v=E("span"),b=q(X),this.h()},l($){const f=ie("svelte-3b3w8r",le.head);e=y(f,"SCRIPT",{"data-svelte-h":!0}),F(e)!=="svelte-nzfwqp"&&(e.textContent=t),f.forEach(h),a=S($),s=y($,"DIV",{class:!0});var r=x(s);l=y(r,"INPUT",{class:!0,type:!0,id:!0}),o=S(r),i=y(r,"LABEL",{class:!0,for:!0});var n=x(i);D(w.$$.fragment,n),k=S(n),v=y(n,"SPAN",{class:!0});var p=x(v);b=R(p,X),p.forEach(h),n.forEach(h),r.forEach(h),this.h()},h(){l.checked=c[0],u(l,"class","sr-only"),u(l,"type","checkbox"),u(l,"id","colourScheme-switch"),u(v,"class","sr-only"),u(i,"class","relative cursor-pointer p-2"),u(i,"for","colourScheme-switch"),u(s,"class","inline-flex justify-center items-center")},m($,f){_(le.head,e),M($,a,f),M($,s,f),_(s,l),_(s,o),_(s,i),j(w,i,null),_(i,k),_(i,v),_(v,b),d=!0,g||(m=ve(l,"click",c[1]),g=!0)},p($,[f]){(!d||f&1)&&(l.checked=$[0]);const r={};f&1&&(r.src=$[0]?ae:se),w.$set(r)},i($){d||(z(w.$$.fragment,$),d=!0)},o($){I(w.$$.fragment,$),d=!1},d($){$&&(h(a),h(s)),h(e),P(w),g=!1,m()}}}let X="Switch to light / dark version";function Ae(c,e,t){let a=fe(B)==="dark";const s=()=>{t(0,a=!a),B.set(a?"dark":"light")};{const l=localStorage.getItem("colourScheme");l==="dark"||!l&&window.matchMedia("(prefers-color-scheme: dark)").matches?(B.set("dark"),a=!0):(B.set("light"),a=!1),B.subscribe(o=>{o==="dark"?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"),t(0,a=o==="dark")})}return[a,s]}class He extends N{constructor(e){super(),O(this,e,Ae,Ie,Z,{})}}function ne(c){let e;return{c(){e=U("path"),this.h()},l(t){e=W(t,"path",{class:!0,d:!0}),x(e).forEach(h),this.h()},h(){u(e,"class","fill-mine-shaft-950 dark:fill-white"),u(e,"d","M124.9 14.564c.341.103.512.24.512.58v1.436a.44.44 0 0 1-.546.478h-2.98c-2.357 0-2.972.376-2.972 1.917v13.57a.454.454 0 0 1-.512.512h-2.22a.454.454 0 0 1-.517-.512v-14.35c0-3.86 3.417-3.996 5.402-3.996.82-.01 3.15.123 3.833.365zm-12.92 8.64v.99c0 .684-.172.96-1.23.96H99.877c.103 4.169.892 5.194 4.547 5.194h5.607a.454.454 0 0 1 .512.512v1.507a.506.506 0 0 1-.478.547 42.302 42.302 0 0 1-5.709.307c-6.426 0-7.793-1.882-7.793-9.504s1.367-9.536 7.793-9.536c6.119.007 7.554 1.818 7.622 9.023zm-12.136-.717h8.855c-.068-4.343-.785-5.436-4.342-5.436-3.69.004-4.445 1.1-4.513 5.443zM91.918 7.215a.454.454 0 0 1 .512.513v24.359c0 .376-.204.512-.546.546a38.506 38.506 0 0 1-7.11.581c-6.634 0-7.967-1.882-7.967-9.47 0-7.588 1.333-9.566 7.793-9.566a36.525 36.525 0 0 1 4.547.24v-6.69a.454.454 0 0 1 .513-.513Zm-7.113 9.84c-4.236 0-4.715 1.298-4.715 6.665 0 5.265.445 6.631 4.684 6.631a38.038 38.038 0 0 0 4.373-.273V17.055Zm-12.678-2.696a.454.454 0 0 1 .512.513v16.473c-.034 6.703-1.332 8.65-7.895 8.65a34.355 34.355 0 0 1-5.162-.307.506.506 0 0 1-.478-.546v-1.473a.454.454 0 0 1 .512-.512h5.06c3.826 0 4.684-.923 4.684-3.998v-.204a26.948 26.948 0 0 1-4.513.273c-6.46 0-7.827-1.95-7.827-9.334v-9.022a.454.454 0 0 1 .512-.513h2.22a.454.454 0 0 1 .513.513v8.817c0 5.333.547 6.666 4.783 6.666a36.863 36.863 0 0 0 4.308-.24V14.872a.454.454 0 0 1 .513-.513zm-19.074 9.33c0 7.622-1.366 9.539-7.827 9.539a37.498 37.498 0 0 1-4.513-.205v6.29a.454.454 0 0 1-.512.512h-2.255a.454.454 0 0 1-.513-.513V15.346c0-.375.205-.512.547-.58a38.134 38.134 0 0 1 7.075-.581c6.632.003 7.998 1.95 7.998 9.504zm-12.34-6.634v13.023a36.979 36.979 0 0 0 4.308.273c4.24 0 4.752-1.298 4.752-6.631s-.478-6.665-4.683-6.665z")},m(t,a){M(t,e,a)},d(t){t&&h(e)}}}function Ce(c){let e,t,a,s,l=!c[0]&&ne();return{c(){e=U("svg"),l&&l.c(),t=U("path"),a=U("path"),this.h()},l(o){e=W(o,"svg",{xmlns:!0,width:!0,height:!0,class:!0});var i=x(e);l&&l.l(i),t=W(i,"path",{class:!0,d:!0}),x(t).forEach(h),a=W(i,"path",{class:!0,d:!0}),x(a).forEach(h),i.forEach(h),this.h()},h(){u(t,"class","fill-mine-shaft-950 dark:fill-white"),u(t,"d","M32.514 14.496a.506.506 0 0 1 .478.546v1.47a.454.454 0 0 1-.512.512h-6.358c-1.575 0-2.498.547-2.498 1.776v.448c0 .957.445 1.776 2.122 2.391l4.544 1.811c3.146 1.196 3.416 2.942 3.416 4.82v.376c0 3.83-2.292 4.582-6.904 4.582-2.976 0-5.675-.24-6.256-.308-.41-.034-.512-.239-.512-.512V30.9a.454.454 0 0 1 .512-.512h6.324c2.733 0 3.587-.308 3.587-1.777v-.41c0-.99-.41-1.64-1.981-2.289l-4.855-1.848c-2.63-1.025-3.28-3.006-3.28-4.885v-.721c0-3.758 3.28-4.27 6.939-4.27a43.3 43.3 0 0 1 5.234.307z"),u(a,"class","fill-red-berry-900"),u(a,"d","M30.857 1.27A5.65 5.65 0 0 0 27.283 0H5.678a5.63 5.63 0 0 0-2.644.656A5.73 5.73 0 0 0 .738 2.88a5.04 5.04 0 0 0-.28.56c-.048.13-.106.257-.15.383a5.234 5.234 0 0 0-.205.796A5.466 5.466 0 0 0 0 5.681v21.606a5.593 5.593 0 0 0 .56 2.46 5.678 5.678 0 0 0 5.125 3.21h11.523a.304.304 0 0 0 .308-.303v-1.367a.307.307 0 0 0-.308-.307h-1.496l-4.465-9.06L21.445 8.415a1.141 1.141 0 0 0 .188-.397l9.337 1.428v2.101a.31.31 0 0 0 .307.308h1.387a.307.307 0 0 0 .304-.308V5.678a5.647 5.647 0 0 0-2.111-4.407zm-11.76.725.482 3.847-7.546-1.155-.342-2.692Zm-13.419 0H9.83l.297 2.392-5.504-.827-1.742-.27a3.662 3.662 0 0 1 2.798-1.295Zm4.202 4.23-3.85 5.124-3.034-6.183Zm-7.885 1.09 2.467 4.998-2.467.304Zm0 7.174 3.324-.42 3.444 6.973-6.768.85zm11.667 16.49H5.986a4 4 0 0 1-3.99-4.017V23.72l7.621-.957Zm-3.324-10.89-3.416-6.895 5.005-6.628 7.714 1.182Zm20.625-12.49-9.498-1.477-.516-4.137h6.027a4 4 0 0 1 3.987 4z"),u(e,"xmlns","http://www.w3.org/2000/svg"),u(e,"width",s=c[0]?40:126),u(e,"height","40"),u(e,"class",c[1])},m(o,i){M(o,e,i),l&&l.m(e,null),_(e,t),_(e,a)},p(o,[i]){o[0]?l&&(l.d(1),l=null):l||(l=ne(),l.c(),l.m(e,t)),i&1&&s!==(s=o[0]?40:126)&&u(e,"width",s),i&2&&u(e,"class",o[1])},i:C,o:C,d(o){o&&h(e),l&&l.d()}}}function Ve(c,e,t){let{compact:a=!1}=e,{classes:s=""}=e;return c.$$set=l=>{"compact"in l&&t(0,a=l.compact),"classes"in l&&t(1,s=l.classes)},[a,s]}class De extends N{constructor(e){super(),O(this,e,Ve,Ce,Z,{compact:0,classes:1})}}function je(c,e,t){const a=c.slice();return a[1]=e[t],a}function Pe(c,e,t){const a=c.slice();return a[4]=e[t],a}function Ze(c){let e,t,a=c[4].text+"",s;return{c(){e=E("li"),t=E("a"),s=q(a),this.h()},l(l){e=y(l,"LI",{class:!0});var o=x(e);t=y(o,"A",{class:!0,href:!0,target:!0});var i=x(t);s=R(i,a),i.forEach(h),o.forEach(h),this.h()},h(){u(t,"class","menu-link h-20 grid items-center uppercase text-sm tracking-wider before:h-1 before:hover:bg-red-berry-900 svelte-vo5t57"),u(t,"href",c[4].href),u(t,"target",c[4].target),u(e,"class","menu-item")},m(l,o){M(l,e,o),_(e,t),_(t,s)},p:C,d(l){l&&h(e)}}}function Ne(c){let e,t,a=K(c[1]),s=[];for(let l=0;l{const s=()=>{t(0,a=window.innerWidth<1280)};return window.addEventListener("resize",s),s(),()=>{window.removeEventListener("resize",s)}}),[a]}class Fe extends N{constructor(e){super(),O(this,e,Be,Oe,Z,{})}}function qe(c){let e,t='© 2024 Spyder Website Contributors | Licensed MIT and others',a,s,l='Made by @conradolandia with 🖤 using SvelteKit',o,i,w='Feature icons by sip | Markdown processed using mdsvex',k,v,b='Maintained by Spyder IDE';return{c(){e=E("p"),e.innerHTML=t,a=L(),s=E("p"),s.innerHTML=l,o=L(),i=E("p"),i.innerHTML=w,k=L(),v=E("p"),v.innerHTML=b},l(d){e=y(d,"P",{"data-svelte-h":!0}),F(e)!=="svelte-1uf5kvg"&&(e.innerHTML=t),a=S(d),s=y(d,"P",{"data-svelte-h":!0}),F(s)!=="svelte-44yd0j"&&(s.innerHTML=l),o=S(d),i=y(d,"P",{"data-svelte-h":!0}),F(i)!=="svelte-8b9p"&&(i.innerHTML=w),k=S(d),v=y(d,"P",{"data-svelte-h":!0}),F(v)!=="svelte-1ail9hx"&&(v.innerHTML=b)},m(d,g){M(d,e,g),M(d,a,g),M(d,s,g),M(d,o,g),M(d,i,g),M(d,k,g),M(d,v,g)},p:C,i:C,o:C,d(d){d&&(h(e),h(a),h(s),h(o),h(i),h(k),h(v))}}}class Re extends N{constructor(e){super(),O(this,e,null,qe,Z,{})}}function re(c,e,t){const a=c.slice();return a[1]=e[t][0],a[2]=e[t][1],a}function oe(c){let e,t;return e=new xe({props:{icon:c[1],href:c[2],button:!1,target:"_blank"}}),{c(){V(e.$$.fragment)},l(a){D(e.$$.fragment,a)},m(a,s){j(e,a,s),t=!0},p:C,i(a){t||(z(e.$$.fragment,a),t=!0)},o(a){I(e.$$.fragment,a),t=!1},d(a){P(e,a)}}}function Ue(c){let e,t,a,s,l,o,i,w,k,v,b,d;t=new Se({});let g=K(c[0]),m=[];for(let f=0;fI(m[f],1,1,()=>{m[f]=null});return b=new Re({}),{c(){e=E("footer"),V(t.$$.fragment),a=L(),s=E("div"),l=E("h2"),o=q(te),i=L(),w=E("div");for(let f=0;ft(0,a=o));let{$$slots:s={},$$scope:l}=e;return ce(()=>{Q.setMetadata({title:`${Y} | ${G}`,description:G,keywords:be.join(", "),author:Ee})}),_e(()=>{Q.reset()}),c.$$set=o=>{"$$scope"in o&&t(1,l=o.$$scope)},[a,l,s]}class nt extends N{constructor(e){super(),O(this,e,Je,Ke,Z,{})}}export{nt as component,lt as universal}; diff --git a/_app/immutable/nodes/1.C0YpDV2r.js b/_app/immutable/nodes/1.Bg0ugIg7.js similarity index 87% rename from _app/immutable/nodes/1.C0YpDV2r.js rename to _app/immutable/nodes/1.Bg0ugIg7.js index 080755d9..bbe2e86b 100644 --- a/_app/immutable/nodes/1.C0YpDV2r.js +++ b/_app/immutable/nodes/1.Bg0ugIg7.js @@ -1 +1 @@ -import{s as S,n as _,c as x}from"../chunks/scheduler.CZFVEtgY.js";import{S as j,i as q,e as f,u as d,s as w,c as g,f as h,v,d as u,h as y,b as m,j as $,w as E}from"../chunks/index.DjvOVdNM.js";import{s as C}from"../chunks/entry.BmaD9OfL.js";const H=()=>{const s=C;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},P={subscribe(s){return H().page.subscribe(s)}};function k(s){var b;let t,r=s[0].status+"",o,n,i,c=((b=s[0].error)==null?void 0:b.message)+"",l;return{c(){t=f("h1"),o=d(r),n=w(),i=f("p"),l=d(c)},l(e){t=g(e,"H1",{});var a=h(t);o=v(a,r),a.forEach(u),n=y(e),i=g(e,"P",{});var p=h(i);l=v(p,c),p.forEach(u)},m(e,a){m(e,t,a),$(t,o),m(e,n,a),m(e,i,a),$(i,l)},p(e,[a]){var p;a&1&&r!==(r=e[0].status+"")&&E(o,r),a&1&&c!==(c=((p=e[0].error)==null?void 0:p.message)+"")&&E(l,c)},i:_,o:_,d(e){e&&(u(t),u(n),u(i))}}}function z(s,t,r){let o;return x(s,P,n=>r(0,o=n)),[o]}let F=class extends j{constructor(t){super(),q(this,t,z,k,S,{})}};export{F as component}; +import{s as S,n as _,c as x}from"../chunks/scheduler.CZFVEtgY.js";import{S as j,i as q,e as f,u as d,s as w,c as g,f as h,v,d as u,h as y,b as m,j as $,w as E}from"../chunks/index.CNd5CZrX.js";import{s as C}from"../chunks/entry.DlRyyYa4.js";const H=()=>{const s=C;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},P={subscribe(s){return H().page.subscribe(s)}};function k(s){var b;let t,r=s[0].status+"",o,n,i,c=((b=s[0].error)==null?void 0:b.message)+"",l;return{c(){t=f("h1"),o=d(r),n=w(),i=f("p"),l=d(c)},l(e){t=g(e,"H1",{});var a=h(t);o=v(a,r),a.forEach(u),n=y(e),i=g(e,"P",{});var p=h(i);l=v(p,c),p.forEach(u)},m(e,a){m(e,t,a),$(t,o),m(e,n,a),m(e,i,a),$(i,l)},p(e,[a]){var p;a&1&&r!==(r=e[0].status+"")&&E(o,r),a&1&&c!==(c=((p=e[0].error)==null?void 0:p.message)+"")&&E(l,c)},i:_,o:_,d(e){e&&(u(t),u(n),u(i))}}}function z(s,t,r){let o;return x(s,P,n=>r(0,o=n)),[o]}let F=class extends j{constructor(t){super(),q(this,t,z,k,S,{})}};export{F as component}; diff --git a/_app/immutable/nodes/10.BP4esORN.js b/_app/immutable/nodes/10.BP4esORN.js deleted file mode 100644 index 579e1c0d..00000000 --- a/_app/immutable/nodes/10.BP4esORN.js +++ /dev/null @@ -1 +0,0 @@ -import{j as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/10.CVIBc15s.js b/_app/immutable/nodes/10.CVIBc15s.js new file mode 100644 index 00000000..b1ab7a0e --- /dev/null +++ b/_app/immutable/nodes/10.CVIBc15s.js @@ -0,0 +1 @@ +import{i as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/11.1Q5Bw8DN.js b/_app/immutable/nodes/11.1Q5Bw8DN.js new file mode 100644 index 00000000..9775b7b8 --- /dev/null +++ b/_app/immutable/nodes/11.1Q5Bw8DN.js @@ -0,0 +1 @@ +import{j as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/11.BgEq8n9f.js b/_app/immutable/nodes/11.BgEq8n9f.js deleted file mode 100644 index 4ef75ce2..00000000 --- a/_app/immutable/nodes/11.BgEq8n9f.js +++ /dev/null @@ -1 +0,0 @@ -import{k as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/12.CrK6FaVq.js b/_app/immutable/nodes/12.CrK6FaVq.js deleted file mode 100644 index 97ece6eb..00000000 --- a/_app/immutable/nodes/12.CrK6FaVq.js +++ /dev/null @@ -1 +0,0 @@ -import{l as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/12.DkNM-cyR.js b/_app/immutable/nodes/12.DkNM-cyR.js new file mode 100644 index 00000000..21ff6638 --- /dev/null +++ b/_app/immutable/nodes/12.DkNM-cyR.js @@ -0,0 +1 @@ +import{k as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/13.0bWQumfu.js b/_app/immutable/nodes/13.0bWQumfu.js deleted file mode 100644 index f6a9ef9b..00000000 --- a/_app/immutable/nodes/13.0bWQumfu.js +++ /dev/null @@ -1 +0,0 @@ -import{m as e}from"../chunks/28.D5QBwc6E.js";export{e as component}; diff --git a/_app/immutable/nodes/13.FBAjejiw.js b/_app/immutable/nodes/13.FBAjejiw.js new file mode 100644 index 00000000..a8b5208f --- /dev/null +++ b/_app/immutable/nodes/13.FBAjejiw.js @@ -0,0 +1 @@ +import{l as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/14.C21SKQFf.js b/_app/immutable/nodes/14.C21SKQFf.js deleted file mode 100644 index 400e272f..00000000 --- a/_app/immutable/nodes/14.C21SKQFf.js +++ /dev/null @@ -1 +0,0 @@ -import{n as e}from"../chunks/28.D5QBwc6E.js";export{e as component}; diff --git a/_app/immutable/nodes/14.I8ScdxfY.js b/_app/immutable/nodes/14.I8ScdxfY.js new file mode 100644 index 00000000..4263f895 --- /dev/null +++ b/_app/immutable/nodes/14.I8ScdxfY.js @@ -0,0 +1 @@ +import{n as e}from"../chunks/28.BXboE3l1.js";export{e as component}; diff --git a/_app/immutable/nodes/15.Cli1CEbw.js b/_app/immutable/nodes/15.Cli1CEbw.js new file mode 100644 index 00000000..212d2583 --- /dev/null +++ b/_app/immutable/nodes/15.Cli1CEbw.js @@ -0,0 +1 @@ +import{p as e}from"../chunks/28.BXboE3l1.js";export{e as component}; diff --git a/_app/immutable/nodes/15.DBviWFJq.js b/_app/immutable/nodes/15.DBviWFJq.js deleted file mode 100644 index 040e0887..00000000 --- a/_app/immutable/nodes/15.DBviWFJq.js +++ /dev/null @@ -1 +0,0 @@ -import{o as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/16.-j9j-41P.js b/_app/immutable/nodes/16.-j9j-41P.js deleted file mode 100644 index 7a88855f..00000000 --- a/_app/immutable/nodes/16.-j9j-41P.js +++ /dev/null @@ -1 +0,0 @@ -import{p as e}from"../chunks/28.D5QBwc6E.js";export{e as component}; diff --git a/_app/immutable/nodes/16.HnMTK0Qz.js b/_app/immutable/nodes/16.HnMTK0Qz.js new file mode 100644 index 00000000..f3f241a1 --- /dev/null +++ b/_app/immutable/nodes/16.HnMTK0Qz.js @@ -0,0 +1 @@ +import{q as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/17.BHEWaUws.js b/_app/immutable/nodes/17.BHEWaUws.js deleted file mode 100644 index 66605ef7..00000000 --- a/_app/immutable/nodes/17.BHEWaUws.js +++ /dev/null @@ -1 +0,0 @@ -import{q as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/17.CjhexHgP.js b/_app/immutable/nodes/17.CjhexHgP.js new file mode 100644 index 00000000..a085c68b --- /dev/null +++ b/_app/immutable/nodes/17.CjhexHgP.js @@ -0,0 +1 @@ +import{s as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/18.3TE2CvJq.js b/_app/immutable/nodes/18.3TE2CvJq.js new file mode 100644 index 00000000..5bc4b713 --- /dev/null +++ b/_app/immutable/nodes/18.3TE2CvJq.js @@ -0,0 +1 @@ +import{t as e}from"../chunks/28.BXboE3l1.js";export{e as component}; diff --git a/_app/immutable/nodes/18.W1MqEQCq.js b/_app/immutable/nodes/18.W1MqEQCq.js deleted file mode 100644 index 16280972..00000000 --- a/_app/immutable/nodes/18.W1MqEQCq.js +++ /dev/null @@ -1 +0,0 @@ -import{s as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/19.Cu7n3Bx_.js b/_app/immutable/nodes/19.Cu7n3Bx_.js new file mode 100644 index 00000000..b6757304 --- /dev/null +++ b/_app/immutable/nodes/19.Cu7n3Bx_.js @@ -0,0 +1 @@ +import{u as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/19.D1WqYe5_.js b/_app/immutable/nodes/19.D1WqYe5_.js deleted file mode 100644 index 2c72d383..00000000 --- a/_app/immutable/nodes/19.D1WqYe5_.js +++ /dev/null @@ -1 +0,0 @@ -import{t as e}from"../chunks/28.D5QBwc6E.js";export{e as component}; diff --git a/_app/immutable/nodes/2.BMF7pCz9.js b/_app/immutable/nodes/2.BMF7pCz9.js deleted file mode 100644 index cedc9d27..00000000 --- a/_app/immutable/nodes/2.BMF7pCz9.js +++ /dev/null @@ -1,29 +0,0 @@ -import{b as Ht}from"../chunks/paths.CQpuyKeJ.js";import{g as zt,c as Vt,d as Nt,r as Bt}from"../chunks/28.D5QBwc6E.js";import{D as At,E as Gt,u as be,l as Ot,s as W,n as C,b as le,y as Rt,o as ce,e as pe,r as Te,F as Me,z as ue,A as me,B as he,C as de,j as qt,h as ke,G as pt,a as Ft,g as vt}from"../chunks/scheduler.CZFVEtgY.js";import{m as F,t as g,k as U,l as _,S as J,i as K,e as v,s as O,c as k,g as x,h as R,a as u,b as p,d as m,F as Ut,f as D,j as L,o as B,p as q,A as re,q as A,G as Q,I as Ie,r as G,u as ee,v as te,n as _e,z as X,J as Pe,w as se,C as Z,H as kt,D as wt,B as oe,K as Wt}from"../chunks/index.DjvOVdNM.js";import{I as ve,e as ne,B as yt,u as Yt,o as Xt}from"../chunks/Button.Bc5NNSmk.js";import{h as De,c as He,g as Ct,e as It}from"../chunks/index.CXB4hq09.js";import{c as ze}from"../chunks/index.Ch6n4Zkw.js";import{b as Jt,c as Kt,g as Zt,D as Qt}from"../chunks/Divider.DkyJmbrB.js";import{L as we}from"../chunks/Loader.CgdetROw.js";import{_ as xt}from"../chunks/preload-helper.D6kgxu3v.js";import{BsPlayCircleFill as Ve,BsPauseCircleFill as Ne}from"../chunks/index.D7Jwt5yH.js";const $t=!0;function el(i,e){const l=e.token={};function t(n,r,s,a){if(e.token!==l)return;e.resolved=a;let o=e.ctx;s!==void 0&&(o=o.slice(),o[s]=a);const c=n&&(e.current=n)(o);let f=!1;e.block&&(e.blocks?e.blocks.forEach((h,b)=>{b!==r&&h&&(F(),g(h,1,1,()=>{e.blocks[b]===h&&(e.blocks[b]=null)}),U())}):e.block.d(1),c.c(),_(c,1),c.m(e.mount(),e.anchor),f=!0),e.block=c,e.blocks&&(e.blocks[r]=c),f&&Ot()}if(At(i)){const n=Gt();if(i.then(r=>{be(n),t(e.then,1,e.value,r),be(null)},r=>{if(be(n),t(e.catch,2,e.error,r),be(null),!e.hasCatch)throw r}),e.current!==e.pending)return t(e.pending,0),!0}else{if(e.current!==e.then)return t(e.then,1,e.value,i),!0;e.resolved=i}}function tl(i,e,l){const t=e.slice(),{resolved:n}=i;i.current===i.then&&(t[i.value]=n),i.current===i.catch&&(t[i.error]=n),i.block.p(t,l)}const ll=$t;function nl(i){let e,l="The way scientists do programming, the main one we support",t,n,r="Data analysts, scientists and engineers require a lot of experimentation, quick feedback and short iteration cycles while programming. And Spyder was built from the ground up around that workflow.";return{c(){e=v("h2"),e.textContent=l,t=O(),n=v("p"),n.textContent=r,this.h()},l(s){e=k(s,"H2",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-14jraqq"&&(e.textContent=l),t=R(s),n=k(s,"P",{"data-svelte-h":!0}),x(n)!=="svelte-xup7lf"&&(n.textContent=r),this.h()},h(){u(e,"class","section")},m(s,a){p(s,e,a),p(s,t,a),p(s,n,a)},p:C,i:C,o:C,d(s){s&&(m(e),m(t),m(n))}}}class rl extends J{constructor(e){super(),K(this,e,null,nl,W,{})}}function il(i){let e,l="The perfect fit to work with the most important libraries for scientific programming",t,n,r='Spyder comes with out-of-the-box integration with Matplotlib, Pandas and many other libraries to provide a pleasant experience when using them.';return{c(){e=v("h2"),e.textContent=l,t=O(),n=v("p"),n.innerHTML=r,this.h()},l(s){e=k(s,"H2",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-w7pi61"&&(e.textContent=l),t=R(s),n=k(s,"P",{"data-svelte-h":!0}),x(n)!=="svelte-jzvc0j"&&(n.innerHTML=r),this.h()},h(){u(e,"class","section")},m(s,a){p(s,e,a),p(s,t,a),p(s,n,a)},p:C,i:C,o:C,d(s){s&&(m(e),m(t),m(n))}}}class sl extends J{constructor(e){super(),K(this,e,null,il,W,{})}}function ol(i){let e,l="Get the ease of use of Jupyter along with many advanced features found in PyCharm and VSCode in a single programming environment";return{c(){e=v("h2"),e.textContent=l,this.h()},l(t){e=k(t,"H2",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-1y4mkqa"&&(e.textContent=l),this.h()},h(){u(e,"class","section")},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class al extends J{constructor(e){super(),K(this,e,null,ol,W,{})}}function cl(i){let e,l="The better you’re at programming, the more impactful your research will be",t,n,r="New scientific discoveries critically depend on software these days. Spyder helps you to move swiftly from simple scripts to structured programming endeavors without losing interactivity. It also allows you to use professional software development tools when you’re ready for them.";return{c(){e=v("h2"),e.textContent=l,t=O(),n=v("p"),n.textContent=r,this.h()},l(s){e=k(s,"H2",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-1lgbyz0"&&(e.textContent=l),t=R(s),n=k(s,"P",{"data-svelte-h":!0}),x(n)!=="svelte-1pokddc"&&(n.textContent=r),this.h()},h(){u(e,"class","section")},m(s,a){p(s,e,a),p(s,t,a),p(s,n,a)},p:C,i:C,o:C,d(s){s&&(m(e),m(t),m(n))}}}class fl extends J{constructor(e){super(),K(this,e,null,cl,W,{})}}function ul(i){let e,l="Install with a single click and be productive right away",t,n,r="The PyData ecosystem is known for being quite difficult to setup and easy to break. Spyder comes with its own set of installers to minimize the risk of facing those issues as much as possible.";return{c(){e=v("h2"),e.textContent=l,t=O(),n=v("p"),n.textContent=r,this.h()},l(s){e=k(s,"H2",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-1xbw40j"&&(e.textContent=l),t=R(s),n=k(s,"P",{"data-svelte-h":!0}),x(n)!=="svelte-1t5v6d5"&&(n.textContent=r),this.h()},h(){u(e,"class","section")},m(s,a){p(s,e,a),p(s,t,a),p(s,n,a)},p:C,i:C,o:C,d(s){s&&(m(e),m(t),m(n))}}}class ml extends J{constructor(e){super(),K(this,e,null,ul,W,{})}}function hl(i){let e,l='View all your plots per console in a single place
    View all your plots per console in a single place
    ';return{c(){e=v("figure"),e.innerHTML=l,this.h()},l(t){e=k(t,"FIGURE",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-m7on9y"&&(e.innerHTML=l),this.h()},h(){u(e,"class","figure text-center")},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class dl extends J{constructor(e){super(),K(this,e,null,hl,W,{})}}function _l(i){let e,l='Explore the contents of your dataframes
    Explore the contents of your dataframes
    ';return{c(){e=v("figure"),e.innerHTML=l,this.h()},l(t){e=k(t,"FIGURE",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-tpv971"&&(e.innerHTML=l),this.h()},h(){u(e,"class","figure text-center")},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class gl extends J{constructor(e){super(),K(this,e,null,_l,W,{})}}function bl(i){let e,l='Work with multiple environments at once
    Work with multiple environments at once
    ';return{c(){e=v("figure"),e.innerHTML=l,this.h()},l(t){e=k(t,"FIGURE",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-x98967"&&(e.innerHTML=l),this.h()},h(){u(e,"class","figure text-center")},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class pl extends J{constructor(e){super(),K(this,e,null,bl,W,{})}}function vl(i){let e,l='Work with symbolic expressions and get results formatted in Latex
    Work with symbolic expressions and get results formatted in Latex
    ';return{c(){e=v("figure"),e.innerHTML=l,this.h()},l(t){e=k(t,"FIGURE",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-1x0sq3q"&&(e.innerHTML=l),this.h()},h(){u(e,"class","figure text-center")},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class kl extends J{constructor(e){super(),K(this,e,null,vl,W,{})}}function wl(i){let e,l='Explore the contents of two and three dimensional arrays
    Explore the contents of two and three dimensional arrays
    ';return{c(){e=v("figure"),e.innerHTML=l,this.h()},l(t){e=k(t,"FIGURE",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-15luq1r"&&(e.innerHTML=l),this.h()},h(){u(e,"class","figure text-center")},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class yl extends J{constructor(e){super(),K(this,e,null,wl,W,{})}}function Cl(i){let e,l='Make use of advanced developer tools (e.g. Black) to write better code
    Make use of advanced developer tools (e.g. Black) to write better code
    ';return{c(){e=v("figure"),e.innerHTML=l,this.h()},l(t){e=k(t,"FIGURE",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-sr90eq"&&(e.innerHTML=l),this.h()},h(){u(e,"class","figure text-center")},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class Il extends J{constructor(e){super(),K(this,e,null,Cl,W,{})}}function El(i){let e,l='Work on several coding endeavors at the same time
    Work on several coding endeavors at the same time
    ';return{c(){e=v("figure"),e.innerHTML=l,this.h()},l(t){e=k(t,"FIGURE",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-1nmesyg"&&(e.innerHTML=l),this.h()},h(){u(e,"class","figure text-center")},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class Sl extends J{constructor(e){super(),K(this,e,null,El,W,{})}}function Tl(i){let e,l='Get in-depth analysis of your code thanks to Pylint
    Get in-depth analysis of your code thanks to Pylint
    ';return{c(){e=v("figure"),e.innerHTML=l,this.h()},l(t){e=k(t,"FIGURE",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-vboye"&&(e.innerHTML=l),this.h()},h(){u(e,"class","figure text-center")},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class Pl extends J{constructor(e){super(),K(this,e,null,Tl,W,{})}}function Ll(i){let e,l='Quickly find the code you need to look at in big projects
    Quickly find the code you need to look at in big projects
    ';return{c(){e=v("figure"),e.innerHTML=l,this.h()},l(t){e=k(t,"FIGURE",{class:!0,"data-svelte-h":!0}),x(e)!=="svelte-1qq1wbe"&&(e.innerHTML=l),this.h()},h(){u(e,"class","figure text-center")},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class jl extends J{constructor(e){super(),K(this,e,null,Ll,W,{})}}function Ml(i){let e,l="Spyder is funded thanks to the generous support of";return{c(){e=v("p"),e.textContent=l},l(t){e=k(t,"P",{"data-svelte-h":!0}),x(e)!=="svelte-cpvhtk"&&(e.textContent=l)},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class Dl extends J{constructor(e){super(),K(this,e,null,Ml,W,{})}}function Hl(i){let e,l=`and the donations we have received from our users
    -around the world through Open Collective:`;return{c(){e=v("p"),e.innerHTML=l},l(t){e=k(t,"P",{"data-svelte-h":!0}),x(e)!=="svelte-1oqomlw"&&(e.innerHTML=l)},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}class zl extends J{constructor(e){super(),K(this,e,null,Hl,W,{})}}let Et={},Ee="linux",Se=[];Ee=zt(),Se=Vt(Ht,Ee);Et={props:{buttons:[{highlight:!1,icon:"github",text:"Checkout on GitHub",href:"https://github.com/"},...Se],blocks:[{id:"what-is-spyder-section",imgSrc:"/assets/media/banner.svg",background:"/assets/media/bg.svg",columns:!1,divider:!0,extraContent:al},{id:"interactive-section",title:"Interactive programming everywhere",divider:!0,border:!1,content:rl,tabs:[{title:"Variable Explorer",isVideo:!0,content:{videoSources:[{src:"/assets/media/variable_explorer.mp4"}],videoCaption:"Explore variables after execution"}},{title:"Editor",isVideo:!0,content:{videoSources:[{src:"/assets/media/editor.mp4"}],videoCaption:'Run code in sections called "cells"'}}]},{id:"pydata-section",title:"Seamless integration with the PyData ecosystem",divider:!0,content:sl,tabs:[{title:"Matplotlib",content:dl},{title:"Pandas",content:gl},{title:"Numpy",content:yl},{title:"Conda",content:pl},{title:"Sympy",content:kl}]},{id:"growth-section",title:"It grows with you",divider:!0,content:fl,tabs:[{title:"Developer tools",content:Il},{title:"Projects",content:Sl},{title:"Code analysis",content:Pl},{title:"Search code",content:jl}]},{id:"setup-section",title:"Zero setup process",content:ml,divider:!0,imgSrc:`/assets/media/${Ee}.webp`,buttons:Se},{id:"sponsors-section",title:"Sponsors",content:Dl,divider:!0,columns:!1,boxed:!0,extraContent:zl,extraImage:"/assets/media/sponsors.svg",extraImageAlt:"Donate to our project",extraImageLink:"https://opencollective.com/spyder#support",innerColumnsClasses:"flex flex-col xl:flex-row items-center gap-8 xl:gap-16 max-w-xl mx-auto",innerColumns:[{imgSrc:"/assets/media/Chan_Zuckerberg_Initiative.svg",link:"https://chanzuckerberg.com/"},{imgSrc:"/assets/media/numfocus_lrg.png",link:"https://numfocus.org/"}]},{id:"learn-more-section",columns:!1,boxed:!0,background:"/assets/media/bg_more.svg",innerColumns:[{title:"YouTube Channel",content:"Learn more about Spyder",icon:"BsYoutube",link:"https://www.youtube.com/c/spyderide",aspect:"xl:aspect-square"},{title:"Documentation",content:"Read the docs",icon:"BsBookHalf",link:"https://docs.spyder-ide.org",aspect:"xl:aspect-square"},{title:"GitHub",content:"Check out the source",icon:"BsGithub",link:"https://github.com/spyder-ide/spyder",aspect:"xl:aspect-square"},{title:"Donations",content:"Show your support",icon:"BsHeartFill",link:"https://opencollective.com/spyder",aspect:"xl:aspect-square"}]}]}};function Vl(){return Et}const Ir=Object.freeze(Object.defineProperty({__proto__:null,load:Vl},Symbol.toStringTag,{value:"Module"}));function Nl(i){let e,l="",t,n,r="",s,a,o;return{c(){e=v("script"),e.innerHTML=l,n=v("script"),n.innerHTML=r,a=O(),o=v("div"),this.h()},l(c){const f=Ut("svelte-1y7qmwh",document.head);e=k(f,"SCRIPT",{src:!0,"data-svelte-h":!0}),x(e)!=="svelte-cey8i"&&(e.innerHTML=l),n=k(f,"SCRIPT",{src:!0,"data-svelte-h":!0}),x(n)!=="svelte-bb4i8z"&&(n.innerHTML=r),f.forEach(m),a=R(c),o=k(c,"DIV",{class:!0}),D(o).forEach(m),this.h()},h(){le(e.src,t="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js")||u(e,"src",t),le(n.src,s="https://cdn.jsdelivr.net/npm/vanta/dist/vanta.dots.min.js")||u(n,"src",s),u(o,"class","vanta-container absolute inset-0 -z-10")},m(c,f){L(document.head,e),L(document.head,n),p(c,a,f),p(c,o,f),i[1](o)},p:C,i:C,o:C,d(c){c&&(m(a),m(o)),m(e),m(n),i[1](null)}}}function Bl(i,e,l){let t,n;const r=c=>s[c]||s.light,s={light:16250866,dark:3158064},a={color:9175040,backgroundColor:r(Rt(ze)),mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1,showLines:!1};ce(()=>{if(n&&ll)try{t=window.VANTA.DOTS({...a,el:n}),console.log("Vanta initialized successfully")}catch(f){console.error("Vanta initialization error:",f)}else console.error("vantaContainer is not defined or the browser environment is not supported");const c=ze.subscribe(f=>{t&&t.setOptions({backgroundColor:r(f)})});return()=>{t&&t.destroy(),c()}});function o(c){pe[c?"unshift":"push"](()=>{n=c,l(0,n)})}return[n,o]}class Al extends J{constructor(e){super(),K(this,e,Bl,Nl,W,{})}}function Gl(i){let e,l;return e=new we({}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p:C,i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function Ol(i){let e,l,t,n;return{c(){e=v("img"),this.h()},l(r){e=k(r,"IMG",{alt:!0,src:!0,class:!0}),this.h()},h(){u(e,"alt",i[3]),le(e.src,l=i[2])||u(e,"src",l),u(e,"class","block absolute inset-0 z-20 object-cover select-none w-full h-full")},m(r,s){p(r,e,s),i[14](e),t||(n=Q(e,"load",i[8]),t=!0)},p(r,s){s&8&&u(e,"alt",r[3]),s&4&&!le(e.src,l=r[2])&&u(e,"src",l)},i:C,o:C,d(r){r&&m(e),i[14](null),t=!1,n()}}}function Rl(i){let e,l;return e=new we({}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p:C,i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function ql(i){let e,l;return{c(){e=v("img"),this.h()},l(t){e=k(t,"IMG",{alt:!0,src:!0,class:!0,style:!0}),this.h()},h(){u(e,"alt",i[3]),le(e.src,l=i[1])||u(e,"src",l),u(e,"class","block absolute inset-0 z-20 object-cover select-none w-full h-full"),re(e,"clip","rect(0, "+i[6]+"px, "+i[7]+"px, 0)")},m(t,n){p(t,e,n),i[15](e)},p(t,n){n&8&&u(e,"alt",t[3]),n&2&&!le(e.src,l=t[1])&&u(e,"src",l),n&192&&re(e,"clip","rect(0, "+t[6]+"px, "+t[7]+"px, 0)")},i:C,o:C,d(t){t&&m(e),i[15](null)}}}function Fl(i){let e,l,t,n,r,s,a,o,c,f,h,b,d,I,y,w;const E=[Ol,Gl],T=[];function H(M,N){return M[2]?0:1}t=H(i),n=T[t]=E[t](i);const z=[ql,Rl],S=[];function P(M,N){return M[1]?0:1}return a=P(i),o=S[a]=z[a](i),h=new ve({props:{src:Jt}}),d=new ve({props:{src:Kt}}),{c(){e=v("div"),l=v("button"),n.c(),r=O(),s=v("button"),o.c(),c=O(),f=v("div"),B(h.$$.fragment),b=O(),B(d.$$.fragment),this.h()},l(M){e=k(M,"DIV",{role:!0,tabindex:!0,class:!0});var N=D(e);l=k(N,"BUTTON",{class:!0});var Y=D(l);n.l(Y),Y.forEach(m),r=R(N),s=k(N,"BUTTON",{class:!0});var $=D(s);o.l($),$.forEach(m),c=R(N),f=k(N,"DIV",{class:!0,style:!0});var V=D(f);q(h.$$.fragment,V),b=R(V),q(d.$$.fragment,V),V.forEach(m),N.forEach(m),this.h()},h(){u(l,"class","svelte-1fjjdj2"),u(s,"class","svelte-1fjjdj2"),u(f,"class","handle absolute z-30 w-10 h-10 cursor-pointer select-none rounded-full flex items-center justify-center gap-0 bg-spring-wood-50 dark:bg-mine-shaft-900 svelte-1fjjdj2"),re(f,"left","calc("+i[0]*100+"% - 20px)"),u(e,"role","button"),u(e,"tabindex","0"),u(e,"class","overflow-hidden relative box-content h-full rounded-lg shadow-2xl")},m(M,N){p(M,e,N),L(e,l),T[t].m(l,null),L(e,r),L(e,s),S[a].m(s,null),L(e,c),L(e,f),A(h,f,null),L(f,b),A(d,f,null),I=!0,y||(w=[Q(window,"touchmove",i[9]),Q(window,"touchend",i[11]),Q(window,"mousemove",i[9]),Q(window,"mouseup",i[11]),Q(window,"resize",i[8]),Q(l,"mousedown",Ie(i[10])),Q(s,"mousedown",Ie(i[10])),Q(e,"touchstart",i[10]),Q(e,"mousedown",i[10])],y=!0)},p(M,[N]){let Y=t;t=H(M),t===Y?T[t].p(M,N):(F(),g(T[Y],1,1,()=>{T[Y]=null}),U(),n=T[t],n?n.p(M,N):(n=T[t]=E[t](M),n.c()),_(n,1),n.m(l,null));let $=a;a=P(M),a===$?S[a].p(M,N):(F(),g(S[$],1,1,()=>{S[$]=null}),U(),o=S[a],o?o.p(M,N):(o=S[a]=z[a](M),o.c()),_(o,1),o.m(s,null)),(!I||N&1)&&re(f,"left","calc("+M[0]*100+"% - 20px)")},i(M){I||(_(n),_(o),_(h.$$.fragment,M),_(d.$$.fragment,M),I=!0)},o(M){g(n),g(o),g(h.$$.fragment,M),g(d.$$.fragment,M),I=!1},d(M){M&&m(e),T[t].d(),S[a].d(),G(h),G(d),y=!1,Te(w)}}}function Ul(i,e,l){let t,n,r,s,a,o,c=!1,{offset:f=.5}=e,{before:h=""}=e,{after:b=""}=e,{alt:d=""}=e;const I=S=>{!a||!a.complete||l(12,s=(S.type==="load"?S.target:a).getBoundingClientRect())},y=S=>{if(c&&s){let P=(S.touches?S.touches[0].pageX:S.pageX)-s.left;P=P<0?0:P>t?t:P,l(0,f=P/t)}},w=S=>{c=!0,y(S)},E=()=>{c=!1},T=S=>{S&&S.addEventListener("load",I)};ce(()=>{a&&(T(a),a.complete&&I({target:a})),o&&o.complete&&I({target:o})});function H(S){pe[S?"unshift":"push"](()=>{a=S,l(4,a)})}function z(S){pe[S?"unshift":"push"](()=>{o=S,l(5,o)})}return i.$$set=S=>{"offset"in S&&l(0,f=S.offset),"before"in S&&l(1,h=S.before),"after"in S&&l(2,b=S.after),"alt"in S&&l(3,d=S.alt)},i.$$.update=()=>{i.$$.dirty&4096&&l(13,t=s&&s.width),i.$$.dirty&4096&&l(7,n=s&&s.height),i.$$.dirty&8193&&l(6,r=t*f)},[f,h,b,d,a,o,r,n,I,y,w,E,s,t,H,z]}class Wl extends J{constructor(e){super(),K(this,e,Ul,Fl,W,{offset:0,before:1,after:2,alt:3})}}function Be(i,e,l){const t=i.slice();return t[3]=e[l],t}function Ae(i){let e,l,t=ne(i[2]),n=[];for(let s=0;sg(n[s],1,1,()=>{n[s]=null});return{c(){e=v("div");for(let s=0;s0&&Ae(i);return y=new Wl({props:{before:De.dark,after:De.light}}),{c(){e=v("section"),B(l.$$.fragment),t=O(),n=v("div"),r=v("h1"),a=ee(s),o=O(),c=v("p"),h=ee(f),b=O(),T&&T.c(),d=O(),I=v("div"),B(y.$$.fragment),this.h()},l(H){e=k(H,"SECTION",{id:!0,class:!0});var z=D(e);q(l.$$.fragment,z),t=R(z),n=k(z,"DIV",{class:!0});var S=D(n);r=k(S,"H1",{class:!0});var P=D(r);a=te(P,s),P.forEach(m),o=R(S),c=k(S,"P",{class:!0});var M=D(c);h=te(M,f),M.forEach(m),b=R(S),T&&T.l(S),S.forEach(m),d=R(z),I=k(z,"DIV",{class:!0});var N=D(I);q(y.$$.fragment,N),N.forEach(m),z.forEach(m),this.h()},h(){u(r,"class","tracking-tight text-4xl md:text-5xl xl:text-7xl font-extralight text-mine-shaft-400 text-center"),u(c,"class","font-light md:text-lg xl:text-xl text-center"),u(n,"class","relative flex flex-col items-center gap-8 px-8 xl:max-w-4xl mx-auto hero-content-container svelte-pi8at7"),u(I,"class","container aspect-video hero-image py-5 svelte-pi8at7"),u(e,"id",i[0]),u(e,"class",w="mt-20 "+i[1]+" svelte-pi8at7")},m(H,z){p(H,e,z),A(l,e,null),L(e,t),L(e,n),L(n,r),L(r,a),L(n,o),L(n,c),L(c,h),L(n,b),T&&T.m(n,null),L(e,d),L(e,I),A(y,I,null),E=!0},p(H,[z]){H[2].length>0?T?(T.p(H,z),z&4&&_(T,1)):(T=Ae(H),T.c(),_(T,1),T.m(n,null)):T&&(F(),g(T,1,1,()=>{T=null}),U()),(!E||z&1)&&u(e,"id",H[0]),(!E||z&2&&w!==(w="mt-20 "+H[1]+" svelte-pi8at7"))&&u(e,"class",w)},i(H){E||(_(l.$$.fragment,H),_(T),_(y.$$.fragment,H),E=!0)},o(H){g(l.$$.fragment,H),g(T),g(y.$$.fragment,H),E=!1},d(H){H&&m(e),G(l),T&&T.d(),G(y)}}}function Xl(i,e,l){let{id:t=""}=e,{classes:n=""}=e,{buttons:r=[]}=e;return i.$$set=s=>{"id"in s&&l(0,t=s.id),"classes"in s&&l(1,n=s.classes),"buttons"in s&&l(2,r=s.buttons)},[t,n,r]}class Jl extends J{constructor(e){super(),K(this,e,Xl,Yl,W,{id:0,classes:1,buttons:2})}}function Kl(i){let e,l='',t,n;return{c(){e=v("button"),e.innerHTML=l,this.h()},l(r){e=k(r,"BUTTON",{class:!0,"aria-label":!0,"data-svelte-h":!0}),x(e)!=="svelte-1rbdl3"&&(e.innerHTML=l),this.h()},h(){u(e,"class","play__btn svelte-1srk8gt"),u(e,"aria-label","Play YouTube video")},m(r,s){p(r,e,s),t||(n=Q(e,"click",i[4]),t=!0)},p:C,i:C,o:C,d(r){r&&m(e),t=!1,n()}}}function Zl(i){let e,l,t,n;const r=i[2].default,s=ue(r,i,i[1],null);return{c(){e=v("button"),s&&s.c(),this.h()},l(a){e=k(a,"BUTTON",{class:!0,"aria-label":!0});var o=D(e);s&&s.l(o),o.forEach(m),this.h()},h(){u(e,"class","custom__play__btn svelte-1srk8gt"),u(e,"aria-label","Play YouTube video")},m(a,o){p(a,e,o),s&&s.m(e,null),l=!0,t||(n=Q(e,"click",i[3]),t=!0)},p(a,o){s&&s.p&&(!l||o&2)&&me(s,r,a,a[1],l?de(r,a[1],o,null):he(a[1]),null)},i(a){l||(_(s,a),l=!0)},o(a){g(s,a),l=!1},d(a){a&&m(e),s&&s.d(a),t=!1,n()}}}function Ql(i){let e,l,t,n;const r=[Zl,Kl],s=[];function a(o,c){return o[0]?0:1}return e=a(i),l=s[e]=r[e](i),{c(){l.c(),t=X()},l(o){l.l(o),t=X()},m(o,c){s[e].m(o,c),p(o,t,c),n=!0},p(o,[c]){let f=e;e=a(o),e===f?s[e].p(o,c):(F(),g(s[f],1,1,()=>{s[f]=null}),U(),l=s[e],l?l.p(o,c):(l=s[e]=r[e](o),l.c()),_(l,1),l.m(t.parentNode,t))},i(o){n||(_(l),n=!0)},o(o){g(l),n=!1},d(o){o&&m(t),s[e].d(o)}}}function xl(i,e,l){let{$$slots:t={},$$scope:n}=e,{isCustomPlayButton:r}=e;function s(o){Me.call(this,i,o)}function a(o){Me.call(this,i,o)}return i.$$set=o=>{"isCustomPlayButton"in o&&l(0,r=o.isCustomPlayButton),"$$scope"in o&&l(1,n=o.$$scope)},[r,n,t,s,a]}class $l extends J{constructor(e){super(),K(this,e,xl,Ql,W,{isCustomPlayButton:0})}}function en(i){const e=i-1;return e*e*e+1}function St(i,{delay:e=0,duration:l=400,easing:t=qt}={}){const n=+getComputedStyle(i).opacity;return{delay:e,duration:l,easing:t,css:r=>`opacity: ${r*n}`}}function tn(i,{delay:e=0,duration:l=400,easing:t=en,start:n=0,opacity:r=0}={}){const s=getComputedStyle(i),a=+s.opacity,o=s.transform==="none"?"":s.transform,c=1-n,f=a*(1-r);return{delay:e,duration:l,easing:t,css:(h,b)=>` - transform: ${o} scale(${1-c*b}); - opacity: ${a-f*b} - `}}function ln(i){let e,l,t;return{c(){e=v("iframe"),this.h()},l(n){e=k(n,"IFRAME",{src:!0,title:!0,frameborder:!0,allow:!0,class:!0}),D(e).forEach(m),this.h()},h(){le(e.src,l="https://www.youtube.com/embed/"+i[1]+"?autoplay=1&rel=0")||u(e,"src",l),u(e,"title",i[0]),u(e,"frameborder","0"),u(e,"allow","autoplay; picture-in-picture; clipboard-write"),e.allowFullscreen=!0,u(e,"class","svelte-11gebsu")},m(n,r){p(n,e,r)},p(n,[r]){i=n,r&2&&!le(e.src,l="https://www.youtube.com/embed/"+i[1]+"?autoplay=1&rel=0")&&u(e,"src",l),r&1&&u(e,"title",i[0])},i(n){n&&(t||ke(()=>{t=Pe(e,tn,i[2]?{delay:500,duration:800}:{}),t.start()}))},o:C,d(n){n&&m(e)}}}function nn(i,e,l){let{title:t=""}=e,{id:n=""}=e,{animations:r}=e;return i.$$set=s=>{"title"in s&&l(0,t=s.title),"id"in s&&l(1,n=s.id),"animations"in s&&l(2,r=s.animations)},[t,n,r]}class rn extends J{constructor(e){super(),K(this,e,nn,ln,W,{title:0,id:1,animations:2})}}function Oe(i){let e,l,t;return{c(){e=v("img"),this.h()},l(n){e=k(n,"IMG",{src:!0,title:!0,alt:!0,referrerpolicy:!0,class:!0}),this.h()},h(){le(e.src,l="https://i.ytimg.com/vi/"+i[0]+"/"+(i[2]?"hqdefault":"maxresdefault")+".jpg")||u(e,"src",l),u(e,"title",i[1]),u(e,"alt",t="Youtube video: "+i[1]),u(e,"referrerpolicy","no-referrer"),u(e,"class","svelte-hw9fhp")},m(n,r){p(n,e,r)},p(n,r){r&5&&!le(e.src,l="https://i.ytimg.com/vi/"+n[0]+"/"+(n[2]?"hqdefault":"maxresdefault")+".jpg")&&u(e,"src",l),r&2&&u(e,"title",n[1]),r&2&&t!==(t="Youtube video: "+n[1])&&u(e,"alt",t)},d(n){n&&m(e)}}}function sn(i){let e=i[3],l,t=Oe(i);return{c(){t.c(),l=X()},l(n){t.l(n),l=X()},m(n,r){t.m(n,r),p(n,l,r)},p(n,[r]){r&8&&W(e,e=n[3])?(t.d(1),t=Oe(n),t.c(),t.m(l.parentNode,l)):t.p(n,r)},i:C,o:C,d(n){n&&m(l),t.d(n)}}}function on(i,e,l){let{id:t=""}=e,{title:n=""}=e,{altThumb:r=""}=e,{play:s=!1}=e;return i.$$set=a=>{"id"in a&&l(0,t=a.id),"title"in a&&l(1,n=a.title),"altThumb"in a&&l(2,r=a.altThumb),"play"in a&&l(3,s=a.play)},[t,n,r,s]}let an=class extends J{constructor(e){super(),K(this,e,on,sn,W,{id:0,title:1,altThumb:2,play:3})}};const cn=i=>({}),Re=i=>({});function fn(i){let e,l,t,n,r,s,a,o,c,f,h;const b=[hn,mn],d=[];function I(y,w){return y[8]?0:1}return e=I(i),l=d[e]=b[e](i),{c(){l.c(),t=O(),n=v("div"),r=O(),s=v("div"),a=v("h3"),o=ee(i[3]),this.h()},l(y){l.l(y),t=R(y),n=k(y,"DIV",{class:!0}),D(n).forEach(m),r=R(y),s=k(y,"DIV",{class:!0});var w=D(s);a=k(w,"H3",{class:!0});var E=D(a);o=te(E,i[3]),E.forEach(m),w.forEach(m),this.h()},h(){u(n,"class","b__overlay svelte-w0t24e"),u(a,"class","svelte-w0t24e"),u(s,"class","v__title svelte-w0t24e")},m(y,w){d[e].m(y,w),p(y,t,w),p(y,n,w),p(y,r,w),p(y,s,w),L(s,a),L(a,o),c=!0,f||(h=[Q(n,"click",i[10]),Q(n,"keypress",i[11])],f=!0)},p(y,w){l.p(y,w),(!c||w&8)&&se(o,y[3])},i(y){c||(_(l),c=!0)},o(y){g(l),c=!1},d(y){y&&(m(t),m(n),m(r),m(s)),d[e].d(y),f=!1,Te(h)}}}function un(i){let e,l;return e=new rn({props:{id:i[0],title:i[3],animations:i[2]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p(t,n){const r={};n&1&&(r.id=t[0]),n&8&&(r.title=t[3]),n&4&&(r.animations=t[2]),e.$set(r)},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function mn(i){let e,l;return e=new an({props:{id:i[0],title:i[3],altThumb:i[1],play:i[6]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p(t,n){const r={};n&1&&(r.id=t[0]),n&8&&(r.title=t[3]),n&2&&(r.altThumb=t[1]),n&64&&(r.play=t[6]),e.$set(r)},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function hn(i){let e;const l=i[9].thumbnail,t=ue(l,i,i[13],Re);return{c(){t&&t.c()},l(n){t&&t.l(n)},m(n,r){t&&t.m(n,r),e=!0},p(n,r){t&&t.p&&(!e||r&8192)&&me(t,l,n,n[13],e?de(l,n[13],r,cn):he(n[13]),Re)},i(n){e||(_(t,n),e=!0)},o(n){g(t,n),e=!1},d(n){t&&t.d(n)}}}function qe(i){let e,l;return e=new $l({props:{isCustomPlayButton:i[7],$$slots:{default:[dn]},$$scope:{ctx:i}}}),e.$on("click",i[12]),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p(t,n){const r={};n&8192&&(r.$$scope={dirty:n,ctx:t}),e.$set(r)},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function dn(i){let e;const l=i[9].default,t=ue(l,i,i[13],null);return{c(){t&&t.c()},l(n){t&&t.l(n)},m(n,r){t&&t.m(n,r),e=!0},p(n,r){t&&t.p&&(!e||r&8192)&&me(t,l,n,n[13],e?de(l,n[13],r,null):he(n[13]),null)},i(n){e||(_(t,n),e=!0)},o(n){g(t,n),e=!1},d(n){t&&t.d(n)}}}function _n(i){let e,l,t,n,r;const s=[un,fn],a=[];function o(f,h){return f[6]?0:1}l=o(i),t=a[l]=s[l](i);let c=!i[6]&&qe(i);return{c(){e=v("div"),t.c(),n=O(),c&&c.c(),this.h()},l(f){e=k(f,"DIV",{class:!0,style:!0,title:!0});var h=D(e);t.l(h),n=R(h),c&&c.l(h),h.forEach(m),this.h()},h(){u(e,"class","you__tube svelte-w0t24e"),re(e,"--aspect-ratio",i[4]/i[5]||"16/9"),u(e,"title",i[3])},m(f,h){p(f,e,h),a[l].m(e,null),L(e,n),c&&c.m(e,null),r=!0},p(f,[h]){let b=l;l=o(f),l===b?a[l].p(f,h):(F(),g(a[b],1,1,()=>{a[b]=null}),U(),t=a[l],t?t.p(f,h):(t=a[l]=s[l](f),t.c()),_(t,1),t.m(e,n)),f[6]?c&&(F(),g(c,1,1,()=>{c=null}),U()):c?(c.p(f,h),h&64&&_(c,1)):(c=qe(f),c.c(),_(c,1),c.m(e,null)),(!r||h&48)&&re(e,"--aspect-ratio",f[4]/f[5]||"16/9"),(!r||h&8)&&u(e,"title",f[3])},i(f){r||(_(t),_(c),r=!0)},o(f){g(t),g(c),r=!1},d(f){f&&m(e),a[l].d(),c&&c.d()}}}function gn(i,e,l){let{$$slots:t={},$$scope:n}=e;const r=pt(t);let{id:s=null}=e,{altThumb:a=!1}=e,{animations:o=!0}=e,c="",f=0,h=0,b={};ce(async()=>{b=await(await fetch(`//www.youtube.com/oembed?url=https://www.youtube.com/watch?v=${s}&format=json`)).json(),l(3,c=b==null?void 0:b.title),l(4,f=b==null?void 0:b.width),l(5,h=b==null?void 0:b.height)});let d=!1;const I=r.default,y=r.thumbnail,w=()=>l(6,d=!0),E=()=>l(6,d=!0),T=()=>l(6,d=!0);return i.$$set=H=>{"id"in H&&l(0,s=H.id),"altThumb"in H&&l(1,a=H.altThumb),"animations"in H&&l(2,o=H.animations),"$$scope"in H&&l(13,n=H.$$scope)},[s,a,o,c,f,h,d,I,y,t,w,E,T,n]}class bn extends J{constructor(e){super(),K(this,e,gn,_n,W,{id:0,altThumb:1,animations:2})}}function pn(i){let e,l,t=i[4]+"",n;return{c(){e=v("small"),l=ee("Error loading icon: "),n=ee(t)},l(r){e=k(r,"SMALL",{});var s=D(e);l=te(s,"Error loading icon: "),n=te(s,t),s.forEach(m)},m(r,s){p(r,e,s),L(e,l),L(e,n)},p:C,i:C,o:C,d(r){r&&m(e)}}}function vn(i){let e,l,t,n;const r=[wn,kn],s=[];function a(o,c){return o[3]?0:1}return e=a(i),l=s[e]=r[e](i),{c(){l.c(),t=X()},l(o){l.l(o),t=X()},m(o,c){s[e].m(o,c),p(o,t,c),n=!0},p(o,c){l.p(o,c)},i(o){n||(_(l),n=!0)},o(o){g(l),n=!1},d(o){o&&m(t),s[e].d(o)}}}function kn(i){let e,l="Icon not found";return{c(){e=v("small"),e.textContent=l},l(t){e=k(t,"SMALL",{"data-svelte-h":!0}),x(e)!=="svelte-e1arbw"&&(e.textContent=l)},m(t,n){p(t,e,n)},p:C,i:C,o:C,d(t){t&&m(e)}}}function wn(i){let e,l;return e=new ve({props:{src:i[3],size:i[0]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p(t,n){const r={};n&1&&(r.size=t[0]),e.$set(r)},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function yn(i){let e,l;return e=new we({}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p:C,i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function Cn(i){let e,l,t={ctx:i,current:null,token:null,hasCatch:!0,pending:yn,then:vn,catch:pn,value:3,error:4,blocks:[,,,]};return el(i[1],t),{c(){e=X(),t.block.c()},l(n){e=X(),t.block.l(n)},m(n,r){p(n,e,r),t.block.m(n,t.anchor=r),t.mount=()=>e.parentNode,t.anchor=e,l=!0},p(n,[r]){i=n,tl(t,i,r)},i(n){l||(_(t.block),l=!0)},o(n){for(let r=0;r<3;r+=1){const s=t.blocks[r];g(s)}l=!1},d(n){n&&m(e),t.block.d(n),t.token=null,t=null}}}function In(i,e,l){let{icon:t}=e,{size:n="4rem"}=e,r=Nt(t);return i.$$set=s=>{"icon"in s&&l(2,t=s.icon),"size"in s&&l(0,n=s.size)},[n,r,t]}class En extends J{constructor(e){super(),K(this,e,In,Cn,W,{icon:2,size:0})}}function Sn(i){let e,l;return e=new we({}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p:C,i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function Tn(i){let e;function l(r,s){return r[7]?Ln:Pn}let t=l(i),n=t(i);return{c(){n.c(),e=X()},l(r){n.l(r),e=X()},m(r,s){n.m(r,s),p(r,e,s)},p(r,s){t===(t=l(r))&&n?n.p(r,s):(n.d(1),n=t(r),n&&(n.c(),n.m(e.parentNode,e)))},i:C,o:C,d(r){r&&m(e),n.d(r)}}}function Pn(i){let e,l,t;return{c(){e=v("img"),this.h()},l(n){e=k(n,"IMG",{src:!0,class:!0,alt:!0,loading:!0}),this.h()},h(){le(e.src,l=i[0])||u(e,"src",l),u(e,"class",i[8]),u(e,"alt",t=i[1]||i[2]||""),u(e,"loading","lazy"),Z(e,"rounded-md",i[5]),Z(e,"shadow-lg",i[4]),Z(e,"blur-md",i[3]),Z(e,"shadow-md",i[4]),Z(e,"object-contain",i[6]),Z(e,"object-center",i[6])},m(n,r){p(n,e,r)},p(n,r){r&1&&!le(e.src,l=n[0])&&u(e,"src",l),r&256&&u(e,"class",n[8]),r&6&&t!==(t=n[1]||n[2]||"")&&u(e,"alt",t),r&288&&Z(e,"rounded-md",n[5]),r&272&&Z(e,"shadow-lg",n[4]),r&264&&Z(e,"blur-md",n[3]),r&272&&Z(e,"shadow-md",n[4]),r&320&&Z(e,"object-contain",n[6]),r&320&&Z(e,"object-center",n[6])},d(n){n&&m(e)}}}function Ln(i){let e,l,t,n,r,s=i[9]&&Fe(i);return{c(){e=v("figure"),l=v("img"),r=O(),s&&s.c(),this.h()},l(a){e=k(a,"FIGURE",{class:!0});var o=D(e);l=k(o,"IMG",{src:!0,class:!0,alt:!0,loading:!0}),r=R(o),s&&s.l(o),o.forEach(m),this.h()},h(){le(l.src,t=i[0])||u(l,"src",t),u(l,"class",i[8]),u(l,"alt",n=i[1]||i[2]||""),u(l,"loading","lazy"),Z(l,"rounded-md",i[5]),Z(l,"shadow-lg",i[4]),Z(l,"blur-md",i[3]),Z(l,"shadow-md",i[4]),Z(l,"object-contain",i[6]),Z(l,"object-center",i[6]),u(e,"class","grid grid-flow-col justify-center items-center")},m(a,o){p(a,e,o),L(e,l),L(e,r),s&&s.m(e,null)},p(a,o){o&1&&!le(l.src,t=a[0])&&u(l,"src",t),o&256&&u(l,"class",a[8]),o&6&&n!==(n=a[1]||a[2]||"")&&u(l,"alt",n),o&288&&Z(l,"rounded-md",a[5]),o&272&&Z(l,"shadow-lg",a[4]),o&264&&Z(l,"blur-md",a[3]),o&272&&Z(l,"shadow-md",a[4]),o&320&&Z(l,"object-contain",a[6]),o&320&&Z(l,"object-center",a[6]),a[9]?s?s.p(a,o):(s=Fe(a),s.c(),s.m(e,null)):s&&(s.d(1),s=null)},d(a){a&&m(e),s&&s.d()}}}function Fe(i){let e,l;return{c(){e=v("figcaption"),l=ee(i[9])},l(t){e=k(t,"FIGCAPTION",{});var n=D(e);l=te(n,i[9]),n.forEach(m)},m(t,n){p(t,e,n),L(e,l)},p(t,n){n&512&&se(l,t[9])},d(t){t&&m(e)}}}function jn(i){let e,l,t,n;const r=[Tn,Sn],s=[];function a(o,c){return o[0]?0:1}return e=a(i),l=s[e]=r[e](i),{c(){l.c(),t=X()},l(o){l.l(o),t=X()},m(o,c){s[e].m(o,c),p(o,t,c),n=!0},p(o,[c]){let f=e;e=a(o),e===f?s[e].p(o,c):(F(),g(s[f],1,1,()=>{s[f]=null}),U(),l=s[e],l?l.p(o,c):(l=s[e]=r[e](o),l.c()),_(l,1),l.m(t.parentNode,t))},i(o){n||(_(l),n=!0)},o(o){g(l),n=!1},d(o){o&&m(t),s[e].d(o)}}}function Mn(i,e,l){let{imgSrc:t=""}=e,{imgAlt:n=""}=e,{title:r=""}=e,{blur:s=!1}=e,{shadow:a=!1}=e,{rounded:o=!0}=e,{contain:c=!1}=e,{figure:f=!0}=e,{classes:h=""}=e,{caption:b=""}=e;return i.$$set=d=>{"imgSrc"in d&&l(0,t=d.imgSrc),"imgAlt"in d&&l(1,n=d.imgAlt),"title"in d&&l(2,r=d.title),"blur"in d&&l(3,s=d.blur),"shadow"in d&&l(4,a=d.shadow),"rounded"in d&&l(5,o=d.rounded),"contain"in d&&l(6,c=d.contain),"figure"in d&&l(7,f=d.figure),"classes"in d&&l(8,h=d.classes),"caption"in d&&l(9,b=d.caption)},[t,n,r,s,a,o,c,f,h,b]}class ge extends J{constructor(e){super(),K(this,e,Mn,jn,W,{imgSrc:0,imgAlt:1,title:2,blur:3,shadow:4,rounded:5,contain:6,figure:7,classes:8,caption:9})}}function Dn(i){let e,l;return e=new ge({props:{figure:!1,imgSrc:i[1].imgSrc,contain:!0,classes:i[2]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p(t,n){const r={};n&2&&(r.imgSrc=t[1].imgSrc),n&4&&(r.classes=t[2]),e.$set(r)},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function Hn(i){let e,l;return e=new En({props:{icon:i[1].icon,size:"48"}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p(t,n){const r={};n&2&&(r.icon=t[1].icon),e.$set(r)},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function Ue(i){let e,l=i[1].title+"",t;return{c(){e=v("h2"),t=ee(l),this.h()},l(n){e=k(n,"H2",{class:!0});var r=D(e);t=te(r,l),r.forEach(m),this.h()},h(){u(e,"class","text-3xl mt-4")},m(n,r){p(n,e,r),L(e,t)},p(n,r){r&2&&l!==(l=n[1].title+"")&&se(t,l)},d(n){n&&m(e)}}}function We(i){let e,l,t=i[1].content+"";return{c(){e=v("p"),l=new kt(!1),this.h()},l(n){e=k(n,"P",{class:!0});var r=D(e);l=wt(r,!1),r.forEach(m),this.h()},h(){l.a=null,u(e,"class","text-neutral-500")},m(n,r){p(n,e,r),l.m(t,e)},p(n,r){r&2&&t!==(t=n[1].content+"")&&l.p(t)},d(n){n&&m(e)}}}function zn(i){let e,l,t,n,r,s,a;const o=[Hn,Dn],c=[];function f(d,I){return d[1].icon?0:d[1].imgSrc?1:-1}~(l=f(i))&&(t=c[l]=o[l](i));let h=i[1].title&&Ue(i),b=i[1].content&&We(i);return{c(){e=v("div"),t&&t.c(),n=O(),h&&h.c(),r=O(),b&&b.c(),this.h()},l(d){e=k(d,"DIV",{class:!0});var I=D(e);t&&t.l(I),n=R(I),h&&h.l(I),r=R(I),b&&b.l(I),I.forEach(m),this.h()},h(){u(e,"class",s="text-red-berry-900 dark:text-neutral-300 flex flex-col items-center justify-center text-center "+i[0])},m(d,I){p(d,e,I),~l&&c[l].m(e,null),L(e,n),h&&h.m(e,null),L(e,r),b&&b.m(e,null),a=!0},p(d,[I]){let y=l;l=f(d),l===y?~l&&c[l].p(d,I):(t&&(F(),g(c[y],1,1,()=>{c[y]=null}),U()),~l?(t=c[l],t?t.p(d,I):(t=c[l]=o[l](d),t.c()),_(t,1),t.m(e,n)):t=null),d[1].title?h?h.p(d,I):(h=Ue(d),h.c(),h.m(e,r)):h&&(h.d(1),h=null),d[1].content?b?b.p(d,I):(b=We(d),b.c(),b.m(e,null)):b&&(b.d(1),b=null),(!a||I&1&&s!==(s="text-red-berry-900 dark:text-neutral-300 flex flex-col items-center justify-center text-center "+d[0]))&&u(e,"class",s)},i(d){a||(_(t),a=!0)},o(d){g(t),a=!1},d(d){d&&m(e),~l&&c[l].d(),h&&h.d(),b&&b.d()}}}function Vn(i,e,l){let{aspect:t=""}=e,{innerColumn:n}=e,{classes:r=""}=e;return i.$$set=s=>{"aspect"in s&&l(0,t=s.aspect),"innerColumn"in s&&l(1,n=s.innerColumn),"classes"in s&&l(2,r=s.classes)},[t,n,r]}class Tt extends J{constructor(e){super(),K(this,e,Vn,zn,W,{aspect:0,innerColumn:1,classes:2})}}function Ye(i,e,l){const t=i.slice();return t[5]=e[l],t}function Xe(i){let e,l=i[5].title+"",t,n,r,s;function a(){return i[4](i[5])}return{c(){e=v("button"),t=ee(l),n=O(),this.h()},l(o){e=k(o,"BUTTON",{class:!0});var c=D(e);t=te(c,l),n=R(c),c.forEach(m),this.h()},h(){u(e,"class","pb-2 border-b-2 border-neutral-500 text-neutral-500 text-xs xl:text-base svelte-1r7x3ba"),Z(e,"selected",i[1]===i[5])},m(o,c){p(o,e,c),L(e,t),L(e,n),r||(s=Q(e,"click",a),r=!0)},p(o,c){i=o,c&1&&l!==(l=i[5].title+"")&&se(t,l),c&3&&Z(e,"selected",i[1]===i[5])},d(o){o&&m(e),r=!1,s()}}}function Nn(i){let e,l,t,n;var r=i[1].content;function s(a,o){return{}}return r&&(l=oe(r,s())),{c(){e=v("div"),l&&B(l.$$.fragment),this.h()},l(a){e=k(a,"DIV",{class:!0});var o=D(e);l&&q(l.$$.fragment,o),o.forEach(m),this.h()},h(){u(e,"class","tab-content svelte-1r7x3ba")},m(a,o){p(a,e,o),l&&A(l,e,null),n=!0},p(a,o){if(o&2&&r!==(r=a[1].content)){if(l){F();const c=l;g(c.$$.fragment,1,0,()=>{G(c,1)}),U()}r?(l=oe(r,s()),B(l.$$.fragment),_(l.$$.fragment,1),A(l,e,null)):l=null}},i(a){n||(l&&_(l.$$.fragment,a),a&&(t||ke(()=>{t=Pe(e,St,{duration:200}),t.start()})),n=!0)},o(a){l&&g(l.$$.fragment,a),n=!1},d(a){a&&m(e),l&&G(l)}}}function Bn(i){let e,l,t,n=i[2]&&Je(i);return{c(){e=v("div"),n&&n.c(),this.h()},l(r){e=k(r,"DIV",{class:!0});var s=D(e);n&&n.l(s),s.forEach(m),this.h()},h(){u(e,"class","tab-content svelte-1r7x3ba")},m(r,s){p(r,e,s),n&&n.m(e,null),t=!0},p(r,s){r[2]?n?(n.p(r,s),s&4&&_(n,1)):(n=Je(r),n.c(),_(n,1),n.m(e,null)):n&&(F(),g(n,1,1,()=>{n=null}),U())},i(r){t||(_(n),r&&(l||ke(()=>{l=Pe(e,St,{duration:200}),l.start()})),t=!0)},o(r){g(n),t=!1},d(r){r&&m(e),n&&n.d()}}}function Je(i){let e,l,t,n;var r=i[2];function s(o,c){return{props:{videoSources:o[1].content.videoSources,videoPoster:o[1].content.videoPoster,info:!1}}}r&&(e=oe(r,s(i)));let a=i[1].content.videoCaption&&Ke(i);return{c(){e&&B(e.$$.fragment),l=O(),a&&a.c(),t=X()},l(o){e&&q(e.$$.fragment,o),l=R(o),a&&a.l(o),t=X()},m(o,c){e&&A(e,o,c),p(o,l,c),a&&a.m(o,c),p(o,t,c),n=!0},p(o,c){if(c&4&&r!==(r=o[2])){if(e){F();const f=e;g(f.$$.fragment,1,0,()=>{G(f,1)}),U()}r?(e=oe(r,s(o)),B(e.$$.fragment),_(e.$$.fragment,1),A(e,l.parentNode,l)):e=null}else if(r){const f={};c&2&&(f.videoSources=o[1].content.videoSources),c&2&&(f.videoPoster=o[1].content.videoPoster),e.$set(f)}o[1].content.videoCaption?a?a.p(o,c):(a=Ke(o),a.c(),a.m(t.parentNode,t)):a&&(a.d(1),a=null)},i(o){n||(e&&_(e.$$.fragment,o),n=!0)},o(o){e&&g(e.$$.fragment,o),n=!1},d(o){o&&(m(l),m(t)),e&&G(e,o),a&&a.d(o)}}}function Ke(i){let e,l=i[1].content.videoCaption+"",t;return{c(){e=v("p"),t=ee(l),this.h()},l(n){e=k(n,"P",{class:!0});var r=D(e);t=te(r,l),r.forEach(m),this.h()},h(){u(e,"class","text-neutral-600 dark:text-neutral-300 text-xs mt-3 text-center")},m(n,r){p(n,e,r),L(e,t)},p(n,r){r&2&&l!==(l=n[1].content.videoCaption+"")&&se(t,l)},d(n){n&&m(e)}}}function Ze(i){let e,l,t,n;const r=[Bn,Nn],s=[];function a(o,c){return o[1].isVideo===!0?0:1}return e=a(i),l=s[e]=r[e](i),{c(){l.c(),t=X()},l(o){l.l(o),t=X()},m(o,c){s[e].m(o,c),p(o,t,c),n=!0},p(o,c){let f=e;e=a(o),e===f?s[e].p(o,c):(F(),g(s[f],1,1,()=>{s[f]=null}),U(),l=s[e],l?l.p(o,c):(l=s[e]=r[e](o),l.c()),_(l,1),l.m(t.parentNode,t))},i(o){n||(_(l),n=!0)},o(o){g(l),n=!1},d(o){o&&m(t),s[e].d(o)}}}function An(i){let e,l,t=i[3],n,r,s=ne(i[0]),a=[];for(let c=0;c{const o=await xt(()=>Promise.resolve().then(()=>Wn),void 0,import.meta.url);l(2,s=o.default)});const a=o=>l(1,r=o);return i.$$set=o=>{"tabs"in o&&l(0,n=o.tabs)},i.$$.update=()=>{i.$$.dirty&2&&l(3,t=r.isVideo?JSON.stringify(r.content):r.content)},[n,r,s,t,a]}class On extends J{constructor(e){super(),K(this,e,Gn,An,W,{tabs:0})}}const{isNaN:Rn}=Zt;function Qe(i,e,l){const t=i.slice();return t[24]=e[l],t}function xe(i){let e,l,t;return{c(){e=v("source"),this.h()},l(n){e=k(n,"SOURCE",{src:!0,type:!0}),this.h()},h(){le(e.src,l=i[24].src)||u(e,"src",l),u(e,"type",t=i[24].type||"video/mp4")},m(n,r){p(n,e,r)},p(n,r){r&1&&!le(e.src,l=n[24].src)&&u(e,"src",l),r&1&&t!==(t=n[24].type||"video/mp4")&&u(e,"type",t)},d(n){n&&m(e)}}}function $e(i){let e,l=i[24].src!==void 0&&xe(i);return{c(){l&&l.c(),e=X()},l(t){l&&l.l(t),e=X()},m(t,n){l&&l.m(t,n),p(t,e,n)},p(t,n){t[24].src!==void 0?l?l.p(t,n):(l=xe(t),l.c(),l.m(e.parentNode,e)):l&&(l.d(1),l=null)},d(t){t&&m(e),l&&l.d(t)}}}function et(i){let e,l,t,n,r;return{c(){e=ee(`Your browser does not support the video tag. Download the - `),l=v("a"),t=ee("video file"),r=ee(" instead."),this.h()},l(s){e=te(s,`Your browser does not support the video tag. Download the - `),l=k(s,"A",{href:!0,download:!0});var a=D(l);t=te(a,"video file"),a.forEach(m),r=te(s," instead."),this.h()},h(){u(l,"href",n=i[0][0].src),u(l,"download","")},m(s,a){p(s,e,a),p(s,l,a),L(l,t),p(s,r,a)},p(s,a){a&1&&n!==(n=s[0][0].src)&&u(l,"href",n)},d(s){s&&(m(e),m(l),m(r))}}}function tt(i){let e,l,t,n=i[6]?"play":"pause",r,s,a,o,c,f=i[13](i[4])+"",h,b,d,I="/",y,w,E=i[13](i[7])+"",T;return{c(){e=v("div"),l=v("span"),t=ee("click anywhere to "),r=ee(n),s=ee(" / drag to seek"),a=O(),o=v("div"),c=v("span"),h=ee(f),b=O(),d=v("span"),d.textContent=I,y=O(),w=v("span"),T=ee(E),this.h()},l(H){e=k(H,"DIV",{class:!0});var z=D(e);l=k(z,"SPAN",{class:!0});var S=D(l);t=te(S,"click anywhere to "),r=te(S,n),s=te(S," / drag to seek"),S.forEach(m),a=R(z),o=k(z,"DIV",{});var P=D(o);c=k(P,"SPAN",{class:!0});var M=D(c);h=te(M,f),M.forEach(m),b=R(P),d=k(P,"SPAN",{class:!0,"data-svelte-h":!0}),x(d)!=="svelte-ocknwt"&&(d.textContent=I),y=R(P),w=k(P,"SPAN",{class:!0});var N=D(w);T=te(N,E),N.forEach(m),P.forEach(m),z.forEach(m),this.h()},h(){u(l,"class","svelte-1avzpyw"),u(c,"class","time svelte-1avzpyw"),u(d,"class","svelte-1avzpyw"),u(w,"class","time svelte-1avzpyw"),u(e,"class","info flex justify-between")},m(H,z){p(H,e,z),L(e,l),L(l,t),L(l,r),L(l,s),L(e,a),L(e,o),L(o,c),L(c,h),L(o,b),L(o,d),L(o,y),L(o,w),L(w,T)},p(H,z){z&64&&n!==(n=H[6]?"play":"pause")&&se(r,n),z&16&&f!==(f=H[13](H[4])+"")&&se(h,f),z&128&&E!==(E=H[13](H[7])+"")&&se(T,E)},d(H){H&&m(e)}}}function lt(i){let e,l;return{c(){e=v("progress"),this.h()},l(t){e=k(t,"PROGRESS",{class:!0}),D(e).forEach(m),this.h()},h(){e.value=l=i[4]/i[7]||0,u(e,"class","svelte-1avzpyw")},m(t,n){p(t,e,n)},p(t,n){n&144&&l!==(l=t[4]/t[7]||0)&&(e.value=l)},d(t){t&&m(e)}}}function qn(i){let e,l,t,n=!1,r,s=!0,a,o,c,f,h,b,d,I,y,w=ne(i[0]),E=[];for(let P=0;Pi[17].call(l)),u(c,"class","p-4"),u(o,"class","controls svelte-1avzpyw"),re(o,"opacity",i[7]&&i[8]?1:0),u(e,"class","video-container relative")},m(P,M){p(P,e,M),L(e,l);for(let N=0;N{const[ie]=V;ie.isIntersecting?d&&c&&!o&&d.play():d&&!c&&d.pause()};function E(V){if(clearTimeout(b),b=setTimeout(()=>l(8,h=!1),2e3),l(8,h=!0),!f||V.type!=="touchmove"&&!(V.buttons&1))return;const ie=V.type==="touchmove"?V.touches[0].clientX:V.clientX,{left:ae,right:fe}=this.getBoundingClientRect();l(4,a=f*(ie-ae)/(fe-ae))}const T=V=>{y=new Date},H=V=>{new Date-y<300&&(c?(V.target.play(),l(5,o=!1)):(V.target.pause(),l(5,o=!0)))},z=V=>{if(isNaN(V))return"...";const ie=Math.floor(V/60);return V=Math.floor(V%60),V<10&&(V="0"+V),`${ie}:${V}`};ce(()=>{I=new IntersectionObserver(w,{root:null,rootMargin:"0px",threshold:.5}),d&&I.observe(d)}),Ft(()=>{I&&I.disconnect()});function S(V){pe[V?"unshift":"push"](()=>{d=V,l(9,d)})}const P=()=>{l(5,o=!1)};function M(){a=this.currentTime,l(4,a)}function N(){f=this.duration,l(7,f)}function Y(){c=this.paused,l(6,c)}const $=()=>{l(6,c=!c),l(5,o=c)};return i.$$set=V=>{"videoSources"in V&&l(0,t=V.videoSources),"videoPoster"in V&&l(1,n=V.videoPoster),"progress"in V&&l(2,r=V.progress),"info"in V&&l(3,s=V.info)},[t,n,r,s,a,o,c,f,h,d,E,T,H,z,S,P,M,N,Y,$]}class Pt extends J{constructor(e){super(),K(this,e,Un,qn,W,{videoSources:0,videoPoster:1,progress:2,info:3})}}const Wn=Object.freeze(Object.defineProperty({__proto__:null,default:Pt},Symbol.toStringTag,{value:"Module"})),Yn=i=>({}),nt=i=>({});function rt(i,e,l){const t=i.slice();return t[32]=e[l],t}function it(i,e,l){const t=i.slice();return t[35]=e[l],t}function st(i){let e,l,t;return{c(){e=v("h1"),l=new kt(!1),this.h()},l(n){e=k(n,"H1",{class:!0});var r=D(e);l=wt(r,!1),r.forEach(m),this.h()},h(){l.a=null,u(e,"class",t=`text-4xl font-semibold tracking-tight max-w-2xl mx-auto text-center text-red-berry-900 dark:text-neutral-400 - ${i[13]?"":"xl:mb-24"}`)},m(n,r){p(n,e,r),l.m(i[15],e)},p(n,r){r[0]&32768&&l.p(n[15]),r[0]&8192&&t!==(t=`text-4xl font-semibold tracking-tight max-w-2xl mx-auto text-center text-red-berry-900 dark:text-neutral-400 - ${n[13]?"":"xl:mb-24"}`)&&u(e,"class",t)},d(n){n&&m(e)}}}function ot(i){let e,l,t,n,r=i[17]&&at(i),s=i[12]&&ct(i);return{c(){e=v("div"),r&&r.c(),l=O(),s&&s.c(),this.h()},l(a){e=k(a,"DIV",{class:!0});var o=D(e);r&&r.l(o),l=R(o),s&&s.l(o),o.forEach(m),this.h()},h(){u(e,"class",t=i[2]?"xl:col-span-4":"")},m(a,o){p(a,e,o),r&&r.m(e,null),L(e,l),s&&s.m(e,null),n=!0},p(a,o){a[17]?r?(r.p(a,o),o[0]&131072&&_(r,1)):(r=at(a),r.c(),_(r,1),r.m(e,l)):r&&(F(),g(r,1,1,()=>{r=null}),U()),a[12]?s?(s.p(a,o),o[0]&4096&&_(s,1)):(s=ct(a),s.c(),_(s,1),s.m(e,null)):s&&(F(),g(s,1,1,()=>{s=null}),U()),(!n||o[0]&4&&t!==(t=a[2]?"xl:col-span-4":""))&&u(e,"class",t)},i(a){n||(_(r),_(s),n=!0)},o(a){g(r),g(s),n=!1},d(a){a&&m(e),r&&r.d(),s&&s.d()}}}function at(i){let e,l,t;const n=i[29].default,r=ue(n,i,i[28],null);return{c(){e=v("div"),r&&r.c(),this.h()},l(s){e=k(s,"DIV",{class:!0});var a=D(e);r&&r.l(a),a.forEach(m),this.h()},h(){u(e,"class",l=`prose prose-headings:font-light prose-headings:tracking-tight - prose-p:font-light prose-a:no-underline prose-p:text-neutral-500 prose-p:dark:text-neutral-400 - prose-headings:text-neutral-500 prose-headings:dark:text-neutral-300 - ${i[2]?"max-w-full":"mt-4 text-center max-w-2xl mx-auto"}`)},m(s,a){p(s,e,a),r&&r.m(e,null),t=!0},p(s,a){r&&r.p&&(!t||a[0]&268435456)&&me(r,n,s,s[28],t?de(n,s[28],a,null):he(s[28]),null),(!t||a[0]&4&&l!==(l=`prose prose-headings:font-light prose-headings:tracking-tight - prose-p:font-light prose-a:no-underline prose-p:text-neutral-500 prose-p:dark:text-neutral-400 - prose-headings:text-neutral-500 prose-headings:dark:text-neutral-300 - ${s[2]?"max-w-full":"mt-4 text-center max-w-2xl mx-auto"}`))&&u(e,"class",l)},i(s){t||(_(r,s),t=!0)},o(s){g(r,s),t=!1},d(s){s&&m(e),r&&r.d(s)}}}function ct(i){let e,l,t,n=ne(i[12]),r=[];for(let a=0;ag(r[a],1,1,()=>{r[a]=null});return{c(){e=v("div");for(let a=0;a{a[h]=null}),U()),~l?(t=a[l],t?t.p(c,f):(t=a[l]=s[l](c),t.c()),_(t,1),t.m(e,null)):t=null),(!r||f[0]&4&&n!==(n=c[2]?"xl:col-span-6":""))&&u(e,"class",n)},i(c){r||(_(t),r=!0)},o(c){g(t),r=!1},d(c){c&&m(e),~l&&a[l].d()}}}function Xn(i){let e,l,t=ne(i[22]),n=[];for(let s=0;sg(n[s],1,1,()=>{n[s]=null});return{c(){e=v("div");for(let s=0;s{s[f]=null}),U(),l=s[e],l?l.p(o,c):(l=s[e]=r[e](o),l.c()),_(l,1),l.m(t.parentNode,t))},i(o){n||(_(l),n=!0)},o(o){g(l),n=!1},d(o){o&&m(t),s[e].d(o)}}}function Zn(i){let e,l;return e=new Pt({props:{videoSources:i[5],videoPoster:i[6]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p(t,n){const r={};n[0]&32&&(r.videoSources=t[5]),n[0]&64&&(r.videoPoster=t[6]),e.$set(r)},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function Qn(i){let e,l,t;return e=new bn({props:{id:i[4],altThumb:!0}}),{c(){l=v("div"),B(e.$$.fragment),this.h()},l(n){l=k(n,"DIV",{style:!0});var r=D(l);q(e.$$.fragment,r),this.h()},h(){re(l,"display","contents"),re(l,"--title-font-family","Silka")},m(n,r){p(n,l,r),A(e,l,null),t=!0},p(n,r){const s={};r[0]&16&&(s.id=n[4]),e.$set(s)},i(n){t||(_(e.$$.fragment,n),t=!0)},o(n){g(e.$$.fragment,n),t=!1},d(n){n&&e&&m(l),G(e,n)}}}function xn(i){let e,l;return e=new Tt({props:{innerColumn:i[32],aspect:i[32].aspect,classes:"w-48 h-48 xl:h-24"}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p(t,n){const r={};n[0]&4194304&&(r.innerColumn=t[32]),n[0]&4194304&&(r.aspect=t[32].aspect),e.$set(r)},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function $n(i){let e,l,t,n,r;return l=new Tt({props:{innerColumn:i[32],aspect:i[32].aspect,classes:"w-48 h-48 xl:h-24"}}),{c(){e=v("a"),B(l.$$.fragment),t=O(),this.h()},l(s){e=k(s,"A",{href:!0,target:!0,rel:!0,class:!0});var a=D(e);q(l.$$.fragment,a),t=R(a),a.forEach(m),this.h()},h(){u(e,"href",n=i[32].link),u(e,"target","_blank"),u(e,"rel","noopener noreferrer"),u(e,"class","grid w-full h-full items-center")},m(s,a){p(s,e,a),A(l,e,null),L(e,t),r=!0},p(s,a){const o={};a[0]&4194304&&(o.innerColumn=s[32]),a[0]&4194304&&(o.aspect=s[32].aspect),l.$set(o),(!r||a[0]&4194304&&n!==(n=s[32].link))&&u(e,"href",n)},i(s){r||(_(l.$$.fragment,s),r=!0)},o(s){g(l.$$.fragment,s),r=!1},d(s){s&&m(e),G(l)}}}function mt(i){let e,l,t,n;const r=[$n,xn],s=[];function a(o,c){return o[32].link?0:1}return e=a(i),l=s[e]=r[e](i),{c(){l.c(),t=X()},l(o){l.l(o),t=X()},m(o,c){s[e].m(o,c),p(o,t,c),n=!0},p(o,c){let f=e;e=a(o),e===f?s[e].p(o,c):(F(),g(s[f],1,1,()=>{s[f]=null}),U(),l=s[e],l?l.p(o,c):(l=s[e]=r[e](o),l.c()),_(l,1),l.m(t.parentNode,t))},i(o){n||(_(l),n=!0)},o(o){g(l),n=!1},d(o){o&&m(t),s[e].d(o)}}}function er(i){let e,l;return e=new ge({props:{imgSrc:i[7],caption:i[10],classes:i[9]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p(t,n){const r={};n[0]&128&&(r.imgSrc=t[7]),n[0]&1024&&(r.caption=t[10]),n[0]&512&&(r.classes=t[9]),e.$set(r)},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function tr(i){let e,l,t;return l=new ge({props:{imgSrc:i[7],caption:i[10],classes:i[9]}}),{c(){e=v("a"),B(l.$$.fragment),this.h()},l(n){e=k(n,"A",{href:!0,target:!0,rel:!0});var r=D(e);q(l.$$.fragment,r),r.forEach(m),this.h()},h(){u(e,"href",i[8]),u(e,"target","_blank"),u(e,"rel","noopener noreferrer")},m(n,r){p(n,e,r),A(l,e,null),t=!0},p(n,r){const s={};r[0]&128&&(s.imgSrc=n[7]),r[0]&1024&&(s.caption=n[10]),r[0]&512&&(s.classes=n[9]),l.$set(s),(!t||r[0]&256)&&u(e,"href",n[8])},i(n){t||(_(l.$$.fragment,n),t=!0)},o(n){g(l.$$.fragment,n),t=!1},d(n){n&&m(e),G(l)}}}function ht(i){let e,l,t,n,r;const s=[nr,lr],a=[];function o(c,f){return c[24].extraContent?0:1}return l=o(i),t=a[l]=s[l](i),{c(){e=v("div"),t.c(),this.h()},l(c){e=k(c,"DIV",{class:!0});var f=D(e);t.l(f),f.forEach(m),this.h()},h(){u(e,"class",n=`mt-8 prose prose-headings:font-light prose-headings:tracking-tight - prose-p:font-light prose-p:text-neutral-500 prose-p:dark:text-neutral-400 - prose-headings:text-neutral-500 prose-headings:dark:text-neutral-400 - ${i[2]?"":"order-first text-center max-w-2xl mx-auto"}`)},m(c,f){p(c,e,f),a[l].m(e,null),r=!0},p(c,f){let h=l;l=o(c),l===h?a[l].p(c,f):(F(),g(a[h],1,1,()=>{a[h]=null}),U(),t=a[l],t?t.p(c,f):(t=a[l]=s[l](c),t.c()),_(t,1),t.m(e,null)),(!r||f[0]&4&&n!==(n=`mt-8 prose prose-headings:font-light prose-headings:tracking-tight - prose-p:font-light prose-p:text-neutral-500 prose-p:dark:text-neutral-400 - prose-headings:text-neutral-500 prose-headings:dark:text-neutral-400 - ${c[2]?"":"order-first text-center max-w-2xl mx-auto"}`))&&u(e,"class",n)},i(c){r||(_(t),r=!0)},o(c){g(t),r=!1},d(c){c&&m(e),a[l].d()}}}function lr(i){let e,l,t;var n=i[18];function r(s,a){return{}}return n&&(e=oe(n,r())),{c(){e&&B(e.$$.fragment),l=X()},l(s){e&&q(e.$$.fragment,s),l=X()},m(s,a){e&&A(e,s,a),p(s,l,a),t=!0},p(s,a){if(a[0]&262144&&n!==(n=s[18])){if(e){F();const o=e;g(o.$$.fragment,1,0,()=>{G(o,1)}),U()}n?(e=oe(n,r()),B(e.$$.fragment),_(e.$$.fragment,1),A(e,l.parentNode,l)):e=null}},i(s){t||(e&&_(e.$$.fragment,s),t=!0)},o(s){e&&g(e.$$.fragment,s),t=!1},d(s){s&&m(l),e&&G(e,s)}}}function nr(i){let e;const l=i[29].extraContent,t=ue(l,i,i[28],nt);return{c(){t&&t.c()},l(n){t&&t.l(n)},m(n,r){t&&t.m(n,r),e=!0},p(n,r){t&&t.p&&(!e||r[0]&268435456)&&me(t,l,n,n[28],e?de(l,n[28],r,Yn):he(n[28]),nt)},i(n){e||(_(t,n),e=!0)},o(n){g(t,n),e=!1},d(n){t&&t.d(n)}}}function dt(i){let e,l,t,n,r;const s=[ir,rr],a=[];function o(c,f){return c[21]?0:1}return l=o(i),t=a[l]=s[l](i),{c(){e=v("div"),t.c(),this.h()},l(c){e=k(c,"DIV",{class:!0});var f=D(e);t.l(f),f.forEach(m),this.h()},h(){u(e,"class",n=`col-span-10 text-center my-8 ${i[2]?"max-w-full":"max-w-2xl mx-auto"}`)},m(c,f){p(c,e,f),a[l].m(e,null),r=!0},p(c,f){let h=l;l=o(c),l===h?a[l].p(c,f):(F(),g(a[h],1,1,()=>{a[h]=null}),U(),t=a[l],t?t.p(c,f):(t=a[l]=s[l](c),t.c()),_(t,1),t.m(e,null)),(!r||f[0]&4&&n!==(n=`col-span-10 text-center my-8 ${c[2]?"max-w-full":"max-w-2xl mx-auto"}`))&&u(e,"class",n)},i(c){r||(_(t),r=!0)},o(c){g(t),r=!1},d(c){c&&m(e),a[l].d()}}}function rr(i){let e,l;return e=new ge({props:{figure:!1,imgSrc:i[19],imgAlt:i[20]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},p(t,n){const r={};n[0]&524288&&(r.imgSrc=t[19]),n[0]&1048576&&(r.imgAlt=t[20]),e.$set(r)},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function ir(i){let e,l,t;return l=new ge({props:{figure:!1,imgSrc:i[19],imgAlt:i[20]}}),{c(){e=v("a"),B(l.$$.fragment),this.h()},l(n){e=k(n,"A",{href:!0,target:!0,rel:!0});var r=D(e);q(l.$$.fragment,r),r.forEach(m),this.h()},h(){u(e,"href",i[21]),u(e,"target","_blank"),u(e,"rel","noopener noreferrer")},m(n,r){p(n,e,r),A(l,e,null),t=!0},p(n,r){const s={};r[0]&524288&&(s.imgSrc=n[19]),r[0]&1048576&&(s.imgAlt=n[20]),l.$set(s),(!t||r[0]&2097152)&&u(e,"href",n[21])},i(n){t||(_(l.$$.fragment,n),t=!0)},o(n){g(l.$$.fragment,n),t=!1},d(n){n&&m(e),G(l)}}}function _t(i){let e,l;return e=new Qt({props:{stroke:!0}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){A(e,t,n),l=!0},i(t){l||(_(e.$$.fragment,t),l=!0)},o(t){g(e.$$.fragment,t),l=!1},d(t){G(e,t)}}}function sr(i){let e,l,t,n,r,s,a,o,c,f=i[15]&&st(i),h=(i[17]||i[12])&&ot(i),b=(i[4]||i[5]||i[11]||i[7]||i[22])&&ut(i),d=(i[24].extraContent||i[18])&&ht(i),I=i[19]&&dt(i),y=i[14]&&_t();return{c(){e=v("section"),f&&f.c(),l=O(),t=v("div"),h&&h.c(),n=O(),b&&b.c(),s=O(),d&&d.c(),a=O(),I&&I.c(),o=O(),y&&y.c(),this.h()},l(w){e=k(w,"SECTION",{class:!0,id:!0,style:!0});var E=D(e);f&&f.l(E),l=R(E),t=k(E,"DIV",{class:!0});var T=D(t);h&&h.l(T),n=R(T),b&&b.l(T),T.forEach(m),s=R(E),d&&d.l(E),a=R(E),I&&I.l(E),o=R(E),y&&y.l(E),E.forEach(m),this.h()},h(){u(t,"class",r=`mx-auto grid gap-8 px-8 ${i[16]} - ${i[13]?"max-w-screen-sm":"py-8 2xl:max-w-screen-xl"} - ${i[2]?"gap-x-8 xl:gap-x-32 xl:grid-cols-10":""} - ${i[3]?"border border-mine-shaft-200 dark:border-mine-shaft-800":""}`),u(e,"class","xl:bg-contain xl:bg-no-repeat xl:bg-origin-center xl:bg-center"),u(e,"id",i[1]),u(e,"style",i[23])},m(w,E){p(w,e,E),f&&f.m(e,null),L(e,l),L(e,t),h&&h.m(t,null),L(t,n),b&&b.m(t,null),L(e,s),d&&d.m(e,null),L(e,a),I&&I.m(e,null),L(e,o),y&&y.m(e,null),c=!0},p(w,E){w[15]?f?f.p(w,E):(f=st(w),f.c(),f.m(e,l)):f&&(f.d(1),f=null),w[17]||w[12]?h?(h.p(w,E),E[0]&135168&&_(h,1)):(h=ot(w),h.c(),_(h,1),h.m(t,n)):h&&(F(),g(h,1,1,()=>{h=null}),U()),w[4]||w[5]||w[11]||w[7]||w[22]?b?(b.p(w,E),E[0]&4196528&&_(b,1)):(b=ut(w),b.c(),_(b,1),b.m(t,null)):b&&(F(),g(b,1,1,()=>{b=null}),U()),(!c||E[0]&73740&&r!==(r=`mx-auto grid gap-8 px-8 ${w[16]} - ${w[13]?"max-w-screen-sm":"py-8 2xl:max-w-screen-xl"} - ${w[2]?"gap-x-8 xl:gap-x-32 xl:grid-cols-10":""} - ${w[3]?"border border-mine-shaft-200 dark:border-mine-shaft-800":""}`))&&u(t,"class",r),w[24].extraContent||w[18]?d?(d.p(w,E),E[0]&17039360&&_(d,1)):(d=ht(w),d.c(),_(d,1),d.m(e,a)):d&&(F(),g(d,1,1,()=>{d=null}),U()),w[19]?I?(I.p(w,E),E[0]&524288&&_(I,1)):(I=dt(w),I.c(),_(I,1),I.m(e,o)):I&&(F(),g(I,1,1,()=>{I=null}),U()),w[14]?y?E[0]&16384&&_(y,1):(y=_t(),y.c(),_(y,1),y.m(e,null)):y&&(F(),g(y,1,1,()=>{y=null}),U()),(!c||E[0]&2)&&u(e,"id",w[1]),(!c||E[0]&8388608)&&u(e,"style",w[23])},i(w){c||(_(h),_(b),_(d),_(I),_(y),c=!0)},o(w){g(h),g(b),g(d),g(I),g(y),c=!1},d(w){w&&m(e),f&&f.d(),h&&h.d(),b&&b.d(),d&&d.d(),I&&I.d(),y&&y.d()}}}function or(i,e,l){let{$$slots:t={},$$scope:n}=e;const r=pt(t);let{id:s=Bt()}=e,{columns:a=!0}=e,{border:o=!1}=e,{videoId:c=""}=e,{videoSources:f=void 0}=e,{videoPoster:h=void 0}=e,{imgSrc:b=void 0}=e,{imgLink:d=""}=e,{imgClasses:I=""}=e,{caption:y=""}=e,{tabs:w=void 0}=e,{buttons:E=!1}=e,{boxed:T=!1}=e,{divider:H=!1}=e,{title:z=""}=e,{classes:S=""}=e,{background:P=""}=e,{content:M=""}=e,{extraContent:N=""}=e,{extraImage:Y=""}=e,{extraImageAlt:$=""}=e,{extraImageLink:V=""}=e,{innerColumns:ie=!1}=e,{innerColumnCount:ae=2}=e,{innerColumnGap:fe=16}=e,{innerColumnsClasses:ye=""}=e,Le="",je=!1;ye=`grid xl:grid-flow-row xl:grid-cols-${ae} gap-${fe}`;const Lt=(j,jt)=>{let Ce;return function(...Mt){const Dt=()=>{clearTimeout(Ce),j(...Mt)};clearTimeout(Ce),Ce=setTimeout(Dt,jt)}};return ce(()=>{const j=Lt(()=>{je=window.innerWidth<1280,l(23,Le=je?"":P?`background-image: url(${P});`:"")},250);return window.addEventListener("resize",j),j(),()=>window.removeEventListener("resize",j)}),i.$$set=j=>{"id"in j&&l(1,s=j.id),"columns"in j&&l(2,a=j.columns),"border"in j&&l(3,o=j.border),"videoId"in j&&l(4,c=j.videoId),"videoSources"in j&&l(5,f=j.videoSources),"videoPoster"in j&&l(6,h=j.videoPoster),"imgSrc"in j&&l(7,b=j.imgSrc),"imgLink"in j&&l(8,d=j.imgLink),"imgClasses"in j&&l(9,I=j.imgClasses),"caption"in j&&l(10,y=j.caption),"tabs"in j&&l(11,w=j.tabs),"buttons"in j&&l(12,E=j.buttons),"boxed"in j&&l(13,T=j.boxed),"divider"in j&&l(14,H=j.divider),"title"in j&&l(15,z=j.title),"classes"in j&&l(16,S=j.classes),"background"in j&&l(25,P=j.background),"content"in j&&l(17,M=j.content),"extraContent"in j&&l(18,N=j.extraContent),"extraImage"in j&&l(19,Y=j.extraImage),"extraImageAlt"in j&&l(20,$=j.extraImageAlt),"extraImageLink"in j&&l(21,V=j.extraImageLink),"innerColumns"in j&&l(22,ie=j.innerColumns),"innerColumnCount"in j&&l(26,ae=j.innerColumnCount),"innerColumnGap"in j&&l(27,fe=j.innerColumnGap),"innerColumnsClasses"in j&&l(0,ye=j.innerColumnsClasses),"$$scope"in j&&l(28,n=j.$$scope)},[ye,s,a,o,c,f,h,b,d,I,y,w,E,T,H,z,S,M,N,Y,$,V,ie,Le,r,P,ae,fe,n,t]}class ar extends J{constructor(e){super(),K(this,e,or,sr,W,{id:1,columns:2,border:3,videoId:4,videoSources:5,videoPoster:6,imgSrc:7,imgLink:8,imgClasses:9,caption:10,tabs:11,buttons:12,boxed:13,divider:14,title:15,classes:16,background:25,content:17,extraContent:18,extraImage:19,extraImageAlt:20,extraImageLink:21,innerColumns:22,innerColumnCount:26,innerColumnGap:27,innerColumnsClasses:0},null,[-1,-1])}}function gt(i,e,l){const t=i.slice();return t[3]=e[l],t}function cr(i){let e,l,t;var n=i[3].content;function r(s,a){return{}}return n&&(e=oe(n,r())),{c(){e&&B(e.$$.fragment),l=O()},l(s){e&&q(e.$$.fragment,s),l=R(s)},m(s,a){e&&A(e,s,a),p(s,l,a),t=!0},p(s,a){if(n!==(n=s[3].content)){if(e){F();const o=e;g(o.$$.fragment,1,0,()=>{G(o,1)}),U()}n?(e=oe(n,r()),B(e.$$.fragment),_(e.$$.fragment,1),A(e,l.parentNode,l)):e=null}},i(s){t||(e&&_(e.$$.fragment,s),t=!0)},o(s){e&&g(e.$$.fragment,s),t=!1},d(s){s&&m(l),e&&G(e,s)}}}function bt(i,e){let l,t,n;const r=[e[3]];let s={$$slots:{default:[cr]},$$scope:{ctx:e}};for(let a=0;ac[3].id;for(let c=0;c{"data"in s&&l(2,t=s.data)},[n,r,t]}class Sr extends J{constructor(e){super(),K(this,e,ur,fr,W,{data:2})}}export{Sr as component,Ir as universal}; diff --git a/_app/immutable/nodes/2.C9Bf-2g4.js b/_app/immutable/nodes/2.C9Bf-2g4.js new file mode 100644 index 00000000..92397405 --- /dev/null +++ b/_app/immutable/nodes/2.C9Bf-2g4.js @@ -0,0 +1,26 @@ +import{D as jt,E as Ht,u as ke,l as Bt,s as X,n as S,c as Le,o as ae,d as Nt,e as ve,r as Pe,b as te,F as je,z as fe,A as ue,B as me,C as de,j as zt,h as he,G as kt,a as At,g as vt}from"../chunks/scheduler.CZFVEtgY.js";import{m as F,t as p,k as U,l as b,S as Y,i as J,e as y,s as A,c as C,g as Z,h as G,a as m,b as w,d as u,f as j,o as B,p as q,A as re,j as V,q as N,G as Q,I as De,r as z,u as $,v as ee,n as _e,z as W,J as Ce,w as se,C as K,H as wt,D as yt,K as Gt,B as oe,L as Ot}from"../chunks/index.CNd5CZrX.js";import{I as we,e as le,B as Ct,u as Rt,o as Ft}from"../chunks/Button.Bg-1Yv3Z.js";import{h as He,c as Ut,e as Be,g as St,i as It}from"../chunks/index.BMEkiqFO.js";import{c as Ve,o as Se,g as qt,r as Wt}from"../chunks/28.BXboE3l1.js";import{b as Xt,c as Yt,g as Jt,D as Kt}from"../chunks/Divider.BQLjv_0p.js";import{L as Ie}from"../chunks/Loader.lmq2X6M7.js";import{_ as Qt}from"../chunks/preload-helper.D6kgxu3v.js";import{BsPlayCircleFill as Ne,BsPauseCircleFill as ze}from"../chunks/index.D7Jwt5yH.js";const Zt=!0;function xt(i,e){const l=e.token={};function t(n,r,s,a){if(e.token!==l)return;e.resolved=a;let o=e.ctx;s!==void 0&&(o=o.slice(),o[s]=a);const c=n&&(e.current=n)(o);let f=!1;e.block&&(e.blocks?e.blocks.forEach((d,h)=>{h!==r&&d&&(F(),p(d,1,1,()=>{e.blocks[h]===d&&(e.blocks[h]=null)}),U())}):e.block.d(1),c.c(),b(c,1),c.m(e.mount(),e.anchor),f=!0),e.block=c,e.blocks&&(e.blocks[r]=c),f&&Bt()}if(jt(i)){const n=Ht();if(i.then(r=>{ke(n),t(e.then,1,e.value,r),ke(null)},r=>{if(ke(n),t(e.catch,2,e.error,r),ke(null),!e.hasCatch)throw r}),e.current!==e.pending)return t(e.pending,0),!0}else{if(e.current!==e.then)return t(e.then,1,e.value,i),!0;e.resolved=i}}function $t(i,e,l){const t=e.slice(),{resolved:n}=i;i.current===i.then&&(t[i.value]=n),i.current===i.catch&&(t[i.error]=n),i.block.p(t,l)}const el=Zt;function tl(i){let e,l="Works the way scientists do",t,n,r="Data analysts, scientists and engineers require a lot of experimentation, quick feedback and short iteration cycles while programming. Spyder was built from the ground up around that workflow.";return{c(){e=y("h2"),e.textContent=l,t=A(),n=y("p"),n.textContent=r,this.h()},l(s){e=C(s,"H2",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-1orvp9o"&&(e.textContent=l),t=G(s),n=C(s,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-170cb4w"&&(n.textContent=r),this.h()},h(){m(e,"class","section")},m(s,a){w(s,e,a),w(s,t,a),w(s,n,a)},p:S,i:S,o:S,d(s){s&&(u(e),u(t),u(n))}}}class ll extends Y{constructor(e){super(),J(this,e,null,tl,X,{})}}function nl(i){let e,l="A perfect fit with the most popular scientific libraries",t,n,r='Spyder includes out of the box integration with Matplotlib, Pandas and many other libraries to help you work more efficiently with them.';return{c(){e=y("h2"),e.textContent=l,t=A(),n=y("p"),n.innerHTML=r,this.h()},l(s){e=C(s,"H2",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-5oxt2y"&&(e.textContent=l),t=G(s),n=C(s,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-1wt0ml8"&&(n.innerHTML=r),this.h()},h(){m(e,"class","section")},m(s,a){w(s,e,a),w(s,t,a),w(s,n,a)},p:S,i:S,o:S,d(s){s&&(u(e),u(t),u(n))}}}class rl extends Y{constructor(e){super(),J(this,e,null,nl,X,{})}}function il(i){let e,l="Get the ease of use of Jupyter along with many advanced features found in PyCharm and VSCode in a single programming environment";return{c(){e=y("h3"),e.textContent=l,this.h()},l(t){e=C(t,"H3",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-puhbdg"&&(e.textContent=l),this.h()},h(){m(e,"class","subsection")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class sl extends Y{constructor(e){super(),J(this,e,null,il,X,{})}}function ol(i){let e,l="Make a bigger impact with reusable research",t,n,r="The software you write is critical for new scientific discoveries and engineering solutions. Spyder helps you move from single scripts to structured, reusable modules and packages without losing interactivity. It also includes powerful software development tools whenever you’re ready for them.";return{c(){e=y("h2"),e.textContent=l,t=A(),n=y("p"),n.textContent=r,this.h()},l(s){e=C(s,"H2",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-1xr8kp3"&&(e.textContent=l),t=G(s),n=C(s,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-b2fwve"&&(n.textContent=r),this.h()},h(){m(e,"class","section")},m(s,a){w(s,e,a),w(s,t,a),w(s,n,a)},p:S,i:S,o:S,d(s){s&&(u(e),u(t),u(n))}}}class al extends Y{constructor(e){super(),J(this,e,null,ol,X,{})}}function cl(i){let e,l="Install with a single click and be productive right away",t,n,r="Spyder offers standalone installers to make it as easy and reliable as possible to get started and keep it up to date.";return{c(){e=y("h2"),e.textContent=l,t=A(),n=y("p"),n.textContent=r,this.h()},l(s){e=C(s,"H2",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-1xbw40j"&&(e.textContent=l),t=G(s),n=C(s,"P",{"data-svelte-h":!0}),Z(n)!=="svelte-bdiao3"&&(n.textContent=r),this.h()},h(){m(e,"class","section")},m(s,a){w(s,e,a),w(s,t,a),w(s,n,a)},p:S,i:S,o:S,d(s){s&&(u(e),u(t),u(n))}}}class fl extends Y{constructor(e){super(),J(this,e,null,cl,X,{})}}function ul(i){let e,l='Browse all your plots in a single place
    Browse all your plots in a single place
    ';return{c(){e=y("figure"),e.innerHTML=l,this.h()},l(t){e=C(t,"FIGURE",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-35ggf"&&(e.innerHTML=l),this.h()},h(){m(e,"class","figure text-center")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class ml extends Y{constructor(e){super(),J(this,e,null,ul,X,{})}}function dl(i){let e,l='Interact with the contents of your dataframes
    Interact with the contents of your dataframes
    ';return{c(){e=y("figure"),e.innerHTML=l,this.h()},l(t){e=C(t,"FIGURE",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-binmo"&&(e.innerHTML=l),this.h()},h(){m(e,"class","figure text-center")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class hl extends Y{constructor(e){super(),J(this,e,null,dl,X,{})}}function _l(i){let e,l='Work with multiple environments at once
    Work with multiple environments at once
    ';return{c(){e=y("figure"),e.innerHTML=l,this.h()},l(t){e=C(t,"FIGURE",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-bnytsi"&&(e.innerHTML=l),this.h()},h(){m(e,"class","figure text-center")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class gl extends Y{constructor(e){super(),J(this,e,null,_l,X,{})}}function bl(i){let e,l='View rich symbolic expressions rendered with LaTeX
    View rich symbolic expressions rendered with LaTeX
    ';return{c(){e=y("figure"),e.innerHTML=l,this.h()},l(t){e=C(t,"FIGURE",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-1mk53xj"&&(e.innerHTML=l),this.h()},h(){m(e,"class","figure text-center")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class pl extends Y{constructor(e){super(),J(this,e,null,bl,X,{})}}function kl(i){let e,l='Explore and edit multi-dimensional arrays
    Explore and edit multi-dimensional arrays
    ';return{c(){e=y("figure"),e.innerHTML=l,this.h()},l(t){e=C(t,"FIGURE",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-hchhu2"&&(e.innerHTML=l),this.h()},h(){m(e,"class","figure text-center")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class vl extends Y{constructor(e){super(),J(this,e,null,kl,X,{})}}function wl(i){let e,l='Take advantage of real-time hints and help to improve your code
    Take advantage of real-time hints and help to improve your code
    ';return{c(){e=y("figure"),e.innerHTML=l,this.h()},l(t){e=C(t,"FIGURE",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-1ffdc93"&&(e.innerHTML=l),this.h()},h(){m(e,"class","figure text-center")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class yl extends Y{constructor(e){super(),J(this,e,null,wl,X,{})}}function Cl(i){let e,l='Easily switch between projects and browse their files
    Easily switch between projects and browse their files
    ';return{c(){e=y("figure"),e.innerHTML=l,this.h()},l(t){e=C(t,"FIGURE",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-s5yzip"&&(e.innerHTML=l),this.h()},h(){m(e,"class","figure text-center")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class Sl extends Y{constructor(e){super(),J(this,e,null,Cl,X,{})}}function Il(i){let e,l='Get in-depth insight on issues and improvements with your code
    Get in-depth insight on issues and improvements with your code
    ';return{c(){e=y("figure"),e.innerHTML=l,this.h()},l(t){e=C(t,"FIGURE",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-125fqe5"&&(e.innerHTML=l),this.h()},h(){m(e,"class","figure text-center")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class El extends Y{constructor(e){super(),J(this,e,null,Il,X,{})}}function Tl(i){let e,l='Quickly find uses of a variable or word across files
    Quickly find uses of a variable or word across files
    ';return{c(){e=y("figure"),e.innerHTML=l,this.h()},l(t){e=C(t,"FIGURE",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-15y736f"&&(e.innerHTML=l),this.h()},h(){m(e,"class","figure text-center")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class Dl extends Y{constructor(e){super(),J(this,e,null,Tl,X,{})}}function Ll(i){let e,l="Spyder is funded thanks to the generous support of";return{c(){e=y("h1"),e.textContent=l},l(t){e=C(t,"H1",{"data-svelte-h":!0}),Z(e)!=="svelte-2ufh9o"&&(e.textContent=l)},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class Pl extends Y{constructor(e){super(),J(this,e,null,Ll,X,{})}}function Vl(i){let e,l="and the donations we have received from our users around the world through Open Collective:";return{c(){e=y("h2"),e.textContent=l,this.h()},l(t){e=C(t,"H2",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-1rx1kf9"&&(e.textContent=l),this.h()},h(){m(e,"class","section")},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}class Ml extends Y{constructor(e){super(),J(this,e,null,Vl,X,{})}}let Et={},jl="linux",Hl=[];Et={props:{buttons:[],blocks:[{id:"what-is-spyder-section",imgSrc:"/assets/media/banner.svg",background:"/assets/media/bg.svg",columns:!1,divider:!0,extraContent:sl},{id:"interactive-section",title:"Interactive programming built in",divider:!0,border:!1,content:ll,tabs:[{title:"Variable Explorer",isVideo:!0,content:{videoSources:[{src:"/assets/media/variable_explorer.mp4"}],videoCaption:"Explore variables after execution"}},{title:"Help",isVideo:!0,content:{videoSources:[{src:"/assets/media/help.mp4"}],videoCaption:"Get help for code you're working on with one click"}},{title:"Editor",isVideo:!0,content:{videoSources:[{src:"/assets/media/editor.mp4"}],videoCaption:'Run code in line by line or in sections called "cells"'}}]},{id:"pydata-section",title:"Seamless integration with the PyData ecosystem",divider:!0,content:rl,tabs:[{title:"Matplotlib",content:ml},{title:"Pandas",content:hl},{title:"Numpy",content:vl},{title:"Conda",content:gl},{title:"Sympy",content:pl}]},{id:"growth-section",title:"Ready to take you to the next level",divider:!0,content:al,tabs:[{title:"Developer tools",content:yl},{title:"Projects",content:Sl},{title:"Code analysis",content:El},{title:"Code search",content:Dl}]},{id:"setup-section",title:"Simple install and update process",content:fl,divider:!0,imgSrc:`/assets/media/${jl}.webp`,buttons:Hl},{id:"sponsors-section",title:"Sponsors",content:Pl,divider:!0,columns:!1,boxed:!0,extraContent:Ml,extraImage:"/assets/media/sponsors.svg",extraImageAlt:"Donate to our project",extraImageLink:"https://opencollective.com/spyder#support",innerColumns:[{imgSrc:"/assets/media/czi_light.svg",imgSrcDark:"/assets/media/czi_dark.svg",link:"https://chanzuckerberg.com/"},{imgSrc:"/assets/media/numfocus_lrg.png",link:"https://numfocus.org/"}]},{id:"learn-more-section",columns:!1,boxed:!0,background:"/assets/media/bg_more.svg",backgroundDark:"/assets/media/bg_more_dark.svg",innerColumns:[{title:"YouTube",content:"Learn more",icon:"BsYoutube",link:"https://www.youtube.com/c/spyderide",aspect:"xl:aspect-square"},{title:"Documentation",content:"Read the docs",icon:"BsBookHalf",link:"https://docs.spyder-ide.org",aspect:"xl:aspect-square"},{title:"GitHub",content:"Check out the source",icon:"BsGithub",link:"https://github.com/spyder-ide/spyder",aspect:"xl:aspect-square"},{title:"Donations",content:"Show your support",icon:"BsHeartFill",link:"https://opencollective.com/spyder",aspect:"xl:aspect-square"}]}]}};function Bl(){return Et}const Cr=Object.freeze(Object.defineProperty({__proto__:null,load:Bl},Symbol.toStringTag,{value:"Module"}));function Nl(i){let e;return{c(){e=y("div"),this.h()},l(l){e=C(l,"DIV",{class:!0}),j(e).forEach(u),this.h()},h(){m(e,"class","vanta-container absolute inset-0 -z-10")},m(l,t){w(l,e,t),i[4](e)},p:S,i:S,o:S,d(l){l&&u(e),i[4](null)}}}function zl(i,e,l){let t,n;Le(i,Ve,_=>l(3,n=_));let r,s,a;const o=(_,v)=>_[v]||_.light,c={light:16250866,dark:3158064},f={light:9175040,dark:10722156},d=()=>{if(s&&el&&window.VANTA){r&&r.destroy();try{l(1,r=window.VANTA.DOTS({...t,el:s})),l(2,a=n),console.log("Vanta initialized successfully with scheme:",a)}catch(_){console.error("Vanta initialization error:",_)}}else console.error("Cannot initialize Vanta")};ae(()=>{d()}),Nt(()=>{r&&n!==a&&(console.log("After update: Color scheme changed, reinitializing Vanta"),d())});function h(_){ve[_?"unshift":"push"](()=>{s=_,l(0,s)})}return i.$$.update=()=>{i.$$.dirty&8&&(t={color:o(f,n),backgroundColor:o(c,n),mouseControls:!0,touchControls:!0,gyroControls:!1,minHeight:200,minWidth:200,scale:1,scaleMobile:1,showLines:!1}),i.$$.dirty&14&&r&&n!==a&&(console.log("Color scheme changed, reinitializing Vanta"),d())},[s,r,a,n,h]}class Al extends Y{constructor(e){super(),J(this,e,zl,Nl,X,{})}}function Gl(i){let e,l;return e=new Ie({}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p:S,i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function Ol(i){let e,l,t,n;return{c(){e=y("img"),this.h()},l(r){e=C(r,"IMG",{alt:!0,src:!0,class:!0}),this.h()},h(){m(e,"alt",i[3]),te(e.src,l=i[2])||m(e,"src",l),m(e,"class","block absolute inset-0 z-20 object-cover select-none w-full h-full")},m(r,s){w(r,e,s),i[14](e),t||(n=Q(e,"load",i[8]),t=!0)},p(r,s){s&8&&m(e,"alt",r[3]),s&4&&!te(e.src,l=r[2])&&m(e,"src",l)},i:S,o:S,d(r){r&&u(e),i[14](null),t=!1,n()}}}function Rl(i){let e,l;return e=new Ie({}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p:S,i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function Fl(i){let e,l;return{c(){e=y("img"),this.h()},l(t){e=C(t,"IMG",{alt:!0,src:!0,class:!0,style:!0}),this.h()},h(){m(e,"alt",i[3]),te(e.src,l=i[1])||m(e,"src",l),m(e,"class","block absolute inset-0 z-20 object-cover select-none w-full h-full"),re(e,"clip","rect(0, "+i[6]+"px, "+i[7]+"px, 0)")},m(t,n){w(t,e,n),i[15](e)},p(t,n){n&8&&m(e,"alt",t[3]),n&2&&!te(e.src,l=t[1])&&m(e,"src",l),n&192&&re(e,"clip","rect(0, "+t[6]+"px, "+t[7]+"px, 0)")},i:S,o:S,d(t){t&&u(e),i[15](null)}}}function Ul(i){let e,l,t,n,r,s,a,o,c,f,d,h,_,v,k,g;const P=[Ol,Gl],D=[];function T(M,R){return M[2]?0:1}t=T(i),n=D[t]=P[t](i);const I=[Fl,Rl],E=[];function O(M,R){return M[1]?0:1}return a=O(i),o=E[a]=I[a](i),d=new we({props:{src:Xt}}),_=new we({props:{src:Yt}}),{c(){e=y("div"),l=y("button"),n.c(),r=A(),s=y("button"),o.c(),c=A(),f=y("div"),B(d.$$.fragment),h=A(),B(_.$$.fragment),this.h()},l(M){e=C(M,"DIV",{role:!0,tabindex:!0,class:!0});var R=j(e);l=C(R,"BUTTON",{class:!0});var x=j(l);n.l(x),x.forEach(u),r=G(R),s=C(R,"BUTTON",{class:!0});var ne=j(s);o.l(ne),ne.forEach(u),c=G(R),f=C(R,"DIV",{class:!0,style:!0});var H=j(f);q(d.$$.fragment,H),h=G(H),q(_.$$.fragment,H),H.forEach(u),R.forEach(u),this.h()},h(){m(l,"class","svelte-1fjjdj2"),m(s,"class","svelte-1fjjdj2"),m(f,"class","handle absolute z-30 w-10 h-10 cursor-pointer select-none rounded-full flex items-center justify-center gap-0 bg-spring-wood-50 dark:bg-mine-shaft-900 svelte-1fjjdj2"),re(f,"left","calc("+i[0]*100+"% - 20px)"),m(e,"role","button"),m(e,"tabindex","0"),m(e,"class","overflow-hidden relative box-content h-full rounded-lg shadow-2xl")},m(M,R){w(M,e,R),V(e,l),D[t].m(l,null),V(e,r),V(e,s),E[a].m(s,null),V(e,c),V(e,f),N(d,f,null),V(f,h),N(_,f,null),v=!0,k||(g=[Q(window,"touchmove",i[9]),Q(window,"touchend",i[11]),Q(window,"mousemove",i[9]),Q(window,"mouseup",i[11]),Q(window,"resize",i[8]),Q(l,"mousedown",De(i[10])),Q(s,"mousedown",De(i[10])),Q(e,"touchstart",i[10]),Q(e,"mousedown",i[10])],k=!0)},p(M,[R]){let x=t;t=T(M),t===x?D[t].p(M,R):(F(),p(D[x],1,1,()=>{D[x]=null}),U(),n=D[t],n?n.p(M,R):(n=D[t]=P[t](M),n.c()),b(n,1),n.m(l,null));let ne=a;a=O(M),a===ne?E[a].p(M,R):(F(),p(E[ne],1,1,()=>{E[ne]=null}),U(),o=E[a],o?o.p(M,R):(o=E[a]=I[a](M),o.c()),b(o,1),o.m(s,null)),(!v||R&1)&&re(f,"left","calc("+M[0]*100+"% - 20px)")},i(M){v||(b(n),b(o),b(d.$$.fragment,M),b(_.$$.fragment,M),v=!0)},o(M){p(n),p(o),p(d.$$.fragment,M),p(_.$$.fragment,M),v=!1},d(M){M&&u(e),D[t].d(),E[a].d(),z(d),z(_),k=!1,Pe(g)}}}function ql(i,e,l){let t,n,r,s,a,o,c=!1,{offset:f=.5}=e,{before:d=""}=e,{after:h=""}=e,{alt:_=""}=e;const v=E=>{!a||!a.complete||l(12,s=(E.type==="load"?E.target:a).getBoundingClientRect())},k=E=>{if(c&&s){let O=(E.touches?E.touches[0].pageX:E.pageX)-s.left;O=O<0?0:O>t?t:O,l(0,f=O/t)}},g=E=>{c=!0,k(E)},P=()=>{c=!1},D=E=>{E&&E.addEventListener("load",v)};ae(()=>{a&&(D(a),a.complete&&v({target:a})),o&&o.complete&&v({target:o})});function T(E){ve[E?"unshift":"push"](()=>{a=E,l(4,a)})}function I(E){ve[E?"unshift":"push"](()=>{o=E,l(5,o)})}return i.$$set=E=>{"offset"in E&&l(0,f=E.offset),"before"in E&&l(1,d=E.before),"after"in E&&l(2,h=E.after),"alt"in E&&l(3,_=E.alt)},i.$$.update=()=>{i.$$.dirty&4096&&l(13,t=s&&s.width),i.$$.dirty&4096&&l(7,n=s&&s.height),i.$$.dirty&8193&&l(6,r=t*f)},[f,d,h,_,a,o,r,n,v,k,g,P,s,t,T,I]}class Wl extends Y{constructor(e){super(),J(this,e,ql,Ul,X,{offset:0,before:1,after:2,alt:3})}}function Ae(i,e,l){const t=i.slice();return t[3]=e[l],t}function Ge(i){let e,l,t=le(i[0]),n=[];for(let s=0;sp(n[s],1,1,()=>{n[s]=null});return{c(){e=y("div");for(let s=0;s0&&Ge(i);return k=new Wl({props:{before:He.dark,after:He.light}}),{c(){e=y("section"),B(l.$$.fragment),t=A(),n=y("div"),r=y("h1"),a=$(s),o=A(),c=y("p"),d=$(f),h=A(),D&&D.c(),_=A(),v=y("div"),B(k.$$.fragment),this.h()},l(T){e=C(T,"SECTION",{id:!0,class:!0});var I=j(e);q(l.$$.fragment,I),t=G(I),n=C(I,"DIV",{class:!0});var E=j(n);r=C(E,"H1",{class:!0});var O=j(r);a=ee(O,s),O.forEach(u),o=G(E),c=C(E,"P",{class:!0});var M=j(c);d=ee(M,f),M.forEach(u),h=G(E),D&&D.l(E),E.forEach(u),_=G(I),v=C(I,"DIV",{class:!0});var R=j(v);q(k.$$.fragment,R),R.forEach(u),I.forEach(u),this.h()},h(){m(r,"class","tracking-tight text-4xl md:text-5xl xl:text-7xl font-extralight text-gray-500 dark:text-mine-shaft-300 text-center"),m(c,"class","font-light md:text-lg xl:text-xl text-center"),m(n,"class","relative flex flex-col items-center gap-8 px-8 xl:max-w-6xl mx-auto hero-content-container"),m(v,"class","container aspect-video hero-image py-5 svelte-14gclcs"),m(e,"id",i[1]),m(e,"class",g="mt-20 "+i[2]+" svelte-14gclcs")},m(T,I){w(T,e,I),N(l,e,null),V(e,t),V(e,n),V(n,r),V(r,a),V(n,o),V(n,c),V(c,d),V(n,h),D&&D.m(n,null),V(e,_),V(e,v),N(k,v,null),P=!0},p(T,[I]){T[0].length>0?D?(D.p(T,I),I&1&&b(D,1)):(D=Ge(T),D.c(),b(D,1),D.m(n,null)):D&&(F(),p(D,1,1,()=>{D=null}),U()),(!P||I&2)&&m(e,"id",T[1]),(!P||I&4&&g!==(g="mt-20 "+T[2]+" svelte-14gclcs"))&&m(e,"class",g)},i(T){P||(b(l.$$.fragment,T),b(D),b(k.$$.fragment,T),P=!0)},o(T){p(l.$$.fragment,T),p(D),p(k.$$.fragment,T),P=!1},d(T){T&&u(e),z(l),D&&D.d(),z(k)}}}function Yl(i,e,l){let{id:t=""}=e,{classes:n=""}=e,{buttons:r=[]}=e;return Se.subscribe(s=>{s.loading||l(0,r=[...s.osButtons,Ut])}),i.$$set=s=>{"id"in s&&l(1,t=s.id),"classes"in s&&l(2,n=s.classes),"buttons"in s&&l(0,r=s.buttons)},[r,t,n]}class Jl extends Y{constructor(e){super(),J(this,e,Yl,Xl,X,{id:1,classes:2,buttons:0})}}function Kl(i){let e,l='',t,n;return{c(){e=y("button"),e.innerHTML=l,this.h()},l(r){e=C(r,"BUTTON",{class:!0,"aria-label":!0,"data-svelte-h":!0}),Z(e)!=="svelte-1rbdl3"&&(e.innerHTML=l),this.h()},h(){m(e,"class","play__btn svelte-1srk8gt"),m(e,"aria-label","Play YouTube video")},m(r,s){w(r,e,s),t||(n=Q(e,"click",i[4]),t=!0)},p:S,i:S,o:S,d(r){r&&u(e),t=!1,n()}}}function Ql(i){let e,l,t,n;const r=i[2].default,s=fe(r,i,i[1],null);return{c(){e=y("button"),s&&s.c(),this.h()},l(a){e=C(a,"BUTTON",{class:!0,"aria-label":!0});var o=j(e);s&&s.l(o),o.forEach(u),this.h()},h(){m(e,"class","custom__play__btn svelte-1srk8gt"),m(e,"aria-label","Play YouTube video")},m(a,o){w(a,e,o),s&&s.m(e,null),l=!0,t||(n=Q(e,"click",i[3]),t=!0)},p(a,o){s&&s.p&&(!l||o&2)&&ue(s,r,a,a[1],l?de(r,a[1],o,null):me(a[1]),null)},i(a){l||(b(s,a),l=!0)},o(a){p(s,a),l=!1},d(a){a&&u(e),s&&s.d(a),t=!1,n()}}}function Zl(i){let e,l,t,n;const r=[Ql,Kl],s=[];function a(o,c){return o[0]?0:1}return e=a(i),l=s[e]=r[e](i),{c(){l.c(),t=W()},l(o){l.l(o),t=W()},m(o,c){s[e].m(o,c),w(o,t,c),n=!0},p(o,[c]){let f=e;e=a(o),e===f?s[e].p(o,c):(F(),p(s[f],1,1,()=>{s[f]=null}),U(),l=s[e],l?l.p(o,c):(l=s[e]=r[e](o),l.c()),b(l,1),l.m(t.parentNode,t))},i(o){n||(b(l),n=!0)},o(o){p(l),n=!1},d(o){o&&u(t),s[e].d(o)}}}function xl(i,e,l){let{$$slots:t={},$$scope:n}=e,{isCustomPlayButton:r}=e;function s(o){je.call(this,i,o)}function a(o){je.call(this,i,o)}return i.$$set=o=>{"isCustomPlayButton"in o&&l(0,r=o.isCustomPlayButton),"$$scope"in o&&l(1,n=o.$$scope)},[r,n,t,s,a]}class $l extends Y{constructor(e){super(),J(this,e,xl,Zl,X,{isCustomPlayButton:0})}}function en(i){const e=i-1;return e*e*e+1}function ye(i,{delay:e=0,duration:l=400,easing:t=zt}={}){const n=+getComputedStyle(i).opacity;return{delay:e,duration:l,easing:t,css:r=>`opacity: ${r*n}`}}function tn(i,{delay:e=0,duration:l=400,easing:t=en,start:n=0,opacity:r=0}={}){const s=getComputedStyle(i),a=+s.opacity,o=s.transform==="none"?"":s.transform,c=1-n,f=a*(1-r);return{delay:e,duration:l,easing:t,css:(d,h)=>` + transform: ${o} scale(${1-c*h}); + opacity: ${a-f*h} + `}}function ln(i){let e,l,t;return{c(){e=y("iframe"),this.h()},l(n){e=C(n,"IFRAME",{src:!0,title:!0,frameborder:!0,allow:!0,class:!0}),j(e).forEach(u),this.h()},h(){te(e.src,l="https://www.youtube.com/embed/"+i[1]+"?autoplay=1&rel=0")||m(e,"src",l),m(e,"title",i[0]),m(e,"frameborder","0"),m(e,"allow","autoplay; picture-in-picture; clipboard-write"),e.allowFullscreen=!0,m(e,"class","svelte-11gebsu")},m(n,r){w(n,e,r)},p(n,[r]){i=n,r&2&&!te(e.src,l="https://www.youtube.com/embed/"+i[1]+"?autoplay=1&rel=0")&&m(e,"src",l),r&1&&m(e,"title",i[0])},i(n){n&&(t||he(()=>{t=Ce(e,tn,i[2]?{delay:500,duration:800}:{}),t.start()}))},o:S,d(n){n&&u(e)}}}function nn(i,e,l){let{title:t=""}=e,{id:n=""}=e,{animations:r}=e;return i.$$set=s=>{"title"in s&&l(0,t=s.title),"id"in s&&l(1,n=s.id),"animations"in s&&l(2,r=s.animations)},[t,n,r]}class rn extends Y{constructor(e){super(),J(this,e,nn,ln,X,{title:0,id:1,animations:2})}}function Re(i){let e,l,t;return{c(){e=y("img"),this.h()},l(n){e=C(n,"IMG",{src:!0,title:!0,alt:!0,referrerpolicy:!0,class:!0}),this.h()},h(){te(e.src,l="https://i.ytimg.com/vi/"+i[0]+"/"+(i[2]?"hqdefault":"maxresdefault")+".jpg")||m(e,"src",l),m(e,"title",i[1]),m(e,"alt",t="Youtube video: "+i[1]),m(e,"referrerpolicy","no-referrer"),m(e,"class","svelte-hw9fhp")},m(n,r){w(n,e,r)},p(n,r){r&5&&!te(e.src,l="https://i.ytimg.com/vi/"+n[0]+"/"+(n[2]?"hqdefault":"maxresdefault")+".jpg")&&m(e,"src",l),r&2&&m(e,"title",n[1]),r&2&&t!==(t="Youtube video: "+n[1])&&m(e,"alt",t)},d(n){n&&u(e)}}}function sn(i){let e=i[3],l,t=Re(i);return{c(){t.c(),l=W()},l(n){t.l(n),l=W()},m(n,r){t.m(n,r),w(n,l,r)},p(n,[r]){r&8&&X(e,e=n[3])?(t.d(1),t=Re(n),t.c(),t.m(l.parentNode,l)):t.p(n,r)},i:S,o:S,d(n){n&&u(l),t.d(n)}}}function on(i,e,l){let{id:t=""}=e,{title:n=""}=e,{altThumb:r=""}=e,{play:s=!1}=e;return i.$$set=a=>{"id"in a&&l(0,t=a.id),"title"in a&&l(1,n=a.title),"altThumb"in a&&l(2,r=a.altThumb),"play"in a&&l(3,s=a.play)},[t,n,r,s]}let an=class extends Y{constructor(e){super(),J(this,e,on,sn,X,{id:0,title:1,altThumb:2,play:3})}};const cn=i=>({}),Fe=i=>({});function fn(i){let e,l,t,n,r,s,a,o,c,f,d;const h=[dn,mn],_=[];function v(k,g){return k[8]?0:1}return e=v(i),l=_[e]=h[e](i),{c(){l.c(),t=A(),n=y("div"),r=A(),s=y("div"),a=y("h3"),o=$(i[3]),this.h()},l(k){l.l(k),t=G(k),n=C(k,"DIV",{class:!0}),j(n).forEach(u),r=G(k),s=C(k,"DIV",{class:!0});var g=j(s);a=C(g,"H3",{class:!0});var P=j(a);o=ee(P,i[3]),P.forEach(u),g.forEach(u),this.h()},h(){m(n,"class","b__overlay svelte-w0t24e"),m(a,"class","svelte-w0t24e"),m(s,"class","v__title svelte-w0t24e")},m(k,g){_[e].m(k,g),w(k,t,g),w(k,n,g),w(k,r,g),w(k,s,g),V(s,a),V(a,o),c=!0,f||(d=[Q(n,"click",i[10]),Q(n,"keypress",i[11])],f=!0)},p(k,g){l.p(k,g),(!c||g&8)&&se(o,k[3])},i(k){c||(b(l),c=!0)},o(k){p(l),c=!1},d(k){k&&(u(t),u(n),u(r),u(s)),_[e].d(k),f=!1,Pe(d)}}}function un(i){let e,l;return e=new rn({props:{id:i[0],title:i[3],animations:i[2]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p(t,n){const r={};n&1&&(r.id=t[0]),n&8&&(r.title=t[3]),n&4&&(r.animations=t[2]),e.$set(r)},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function mn(i){let e,l;return e=new an({props:{id:i[0],title:i[3],altThumb:i[1],play:i[6]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p(t,n){const r={};n&1&&(r.id=t[0]),n&8&&(r.title=t[3]),n&2&&(r.altThumb=t[1]),n&64&&(r.play=t[6]),e.$set(r)},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function dn(i){let e;const l=i[9].thumbnail,t=fe(l,i,i[13],Fe);return{c(){t&&t.c()},l(n){t&&t.l(n)},m(n,r){t&&t.m(n,r),e=!0},p(n,r){t&&t.p&&(!e||r&8192)&&ue(t,l,n,n[13],e?de(l,n[13],r,cn):me(n[13]),Fe)},i(n){e||(b(t,n),e=!0)},o(n){p(t,n),e=!1},d(n){t&&t.d(n)}}}function Ue(i){let e,l;return e=new $l({props:{isCustomPlayButton:i[7],$$slots:{default:[hn]},$$scope:{ctx:i}}}),e.$on("click",i[12]),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p(t,n){const r={};n&8192&&(r.$$scope={dirty:n,ctx:t}),e.$set(r)},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function hn(i){let e;const l=i[9].default,t=fe(l,i,i[13],null);return{c(){t&&t.c()},l(n){t&&t.l(n)},m(n,r){t&&t.m(n,r),e=!0},p(n,r){t&&t.p&&(!e||r&8192)&&ue(t,l,n,n[13],e?de(l,n[13],r,null):me(n[13]),null)},i(n){e||(b(t,n),e=!0)},o(n){p(t,n),e=!1},d(n){t&&t.d(n)}}}function _n(i){let e,l,t,n,r;const s=[un,fn],a=[];function o(f,d){return f[6]?0:1}l=o(i),t=a[l]=s[l](i);let c=!i[6]&&Ue(i);return{c(){e=y("div"),t.c(),n=A(),c&&c.c(),this.h()},l(f){e=C(f,"DIV",{class:!0,style:!0,title:!0});var d=j(e);t.l(d),n=G(d),c&&c.l(d),d.forEach(u),this.h()},h(){m(e,"class","you__tube svelte-w0t24e"),re(e,"--aspect-ratio",i[4]/i[5]||"16/9"),m(e,"title",i[3])},m(f,d){w(f,e,d),a[l].m(e,null),V(e,n),c&&c.m(e,null),r=!0},p(f,[d]){let h=l;l=o(f),l===h?a[l].p(f,d):(F(),p(a[h],1,1,()=>{a[h]=null}),U(),t=a[l],t?t.p(f,d):(t=a[l]=s[l](f),t.c()),b(t,1),t.m(e,n)),f[6]?c&&(F(),p(c,1,1,()=>{c=null}),U()):c?(c.p(f,d),d&64&&b(c,1)):(c=Ue(f),c.c(),b(c,1),c.m(e,null)),(!r||d&48)&&re(e,"--aspect-ratio",f[4]/f[5]||"16/9"),(!r||d&8)&&m(e,"title",f[3])},i(f){r||(b(t),b(c),r=!0)},o(f){p(t),p(c),r=!1},d(f){f&&u(e),a[l].d(),c&&c.d()}}}function gn(i,e,l){let{$$slots:t={},$$scope:n}=e;const r=kt(t);let{id:s=null}=e,{altThumb:a=!1}=e,{animations:o=!0}=e,c="",f=0,d=0,h={};ae(async()=>{h=await(await fetch(`//www.youtube.com/oembed?url=https://www.youtube.com/watch?v=${s}&format=json`)).json(),l(3,c=h==null?void 0:h.title),l(4,f=h==null?void 0:h.width),l(5,d=h==null?void 0:h.height)});let _=!1;const v=r.default,k=r.thumbnail,g=()=>l(6,_=!0),P=()=>l(6,_=!0),D=()=>l(6,_=!0);return i.$$set=T=>{"id"in T&&l(0,s=T.id),"altThumb"in T&&l(1,a=T.altThumb),"animations"in T&&l(2,o=T.animations),"$$scope"in T&&l(13,n=T.$$scope)},[s,a,o,c,f,d,_,v,k,t,g,P,D,n]}class bn extends Y{constructor(e){super(),J(this,e,gn,_n,X,{id:0,altThumb:1,animations:2})}}function pn(i){let e,l,t=i[4]+"",n;return{c(){e=y("small"),l=$("Error loading icon: "),n=$(t)},l(r){e=C(r,"SMALL",{});var s=j(e);l=ee(s,"Error loading icon: "),n=ee(s,t),s.forEach(u)},m(r,s){w(r,e,s),V(e,l),V(e,n)},p:S,i:S,o:S,d(r){r&&u(e)}}}function kn(i){let e,l,t,n;const r=[wn,vn],s=[];function a(o,c){return o[3]?0:1}return e=a(i),l=s[e]=r[e](i),{c(){l.c(),t=W()},l(o){l.l(o),t=W()},m(o,c){s[e].m(o,c),w(o,t,c),n=!0},p(o,c){l.p(o,c)},i(o){n||(b(l),n=!0)},o(o){p(l),n=!1},d(o){o&&u(t),s[e].d(o)}}}function vn(i){let e,l="Icon not found";return{c(){e=y("small"),e.textContent=l},l(t){e=C(t,"SMALL",{"data-svelte-h":!0}),Z(e)!=="svelte-e1arbw"&&(e.textContent=l)},m(t,n){w(t,e,n)},p:S,i:S,o:S,d(t){t&&u(e)}}}function wn(i){let e,l;return e=new we({props:{src:i[3],size:i[0]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p(t,n){const r={};n&1&&(r.size=t[0]),e.$set(r)},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function yn(i){let e,l;return e=new Ie({}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p:S,i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function Cn(i){let e,l,t={ctx:i,current:null,token:null,hasCatch:!0,pending:yn,then:kn,catch:pn,value:3,error:4,blocks:[,,,]};return xt(i[1],t),{c(){e=W(),t.block.c()},l(n){e=W(),t.block.l(n)},m(n,r){w(n,e,r),t.block.m(n,t.anchor=r),t.mount=()=>e.parentNode,t.anchor=e,l=!0},p(n,[r]){i=n,$t(t,i,r)},i(n){l||(b(t.block),l=!0)},o(n){for(let r=0;r<3;r+=1){const s=t.blocks[r];p(s)}l=!1},d(n){n&&u(e),t.block.d(n),t.token=null,t=null}}}function Sn(i,e,l){let{icon:t}=e,{size:n="4rem"}=e,r=qt(t);return i.$$set=s=>{"icon"in s&&l(2,t=s.icon),"size"in s&&l(0,n=s.size)},[n,r,t]}class In extends Y{constructor(e){super(),J(this,e,Sn,Cn,X,{icon:2,size:0})}}function En(i){let e,l;return e=new Ie({}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p:S,i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function Tn(i){let e;function l(r,s){return r[6]?Ln:Dn}let t=l(i),n=t(i);return{c(){n.c(),e=W()},l(r){n.l(r),e=W()},m(r,s){n.m(r,s),w(r,e,s)},p(r,s){t===(t=l(r))&&n?n.p(r,s):(n.d(1),n=t(r),n&&(n.c(),n.m(e.parentNode,e)))},i:S,o:S,d(r){r&&u(e),n.d(r)}}}function Dn(i){let e,l,t;return{c(){e=y("img"),this.h()},l(n){e=C(n,"IMG",{src:!0,class:!0,alt:!0,loading:!0}),this.h()},h(){te(e.src,l=i[9])||m(e,"src",l),m(e,"class",i[7]),m(e,"alt",t=i[0]||i[1]||""),m(e,"loading","lazy"),K(e,"rounded-md",i[4]),K(e,"shadow-lg",i[3]),K(e,"blur-md",i[2]),K(e,"shadow-md",i[3]),K(e,"object-contain",i[5]),K(e,"object-center",i[5])},m(n,r){w(n,e,r)},p(n,r){r&512&&!te(e.src,l=n[9])&&m(e,"src",l),r&128&&m(e,"class",n[7]),r&3&&t!==(t=n[0]||n[1]||"")&&m(e,"alt",t),r&144&&K(e,"rounded-md",n[4]),r&136&&K(e,"shadow-lg",n[3]),r&132&&K(e,"blur-md",n[2]),r&136&&K(e,"shadow-md",n[3]),r&160&&K(e,"object-contain",n[5]),r&160&&K(e,"object-center",n[5])},d(n){n&&u(e)}}}function Ln(i){let e,l,t,n,r,s=i[8]&&qe(i);return{c(){e=y("figure"),l=y("img"),r=A(),s&&s.c(),this.h()},l(a){e=C(a,"FIGURE",{class:!0});var o=j(e);l=C(o,"IMG",{src:!0,class:!0,alt:!0,loading:!0}),r=G(o),s&&s.l(o),o.forEach(u),this.h()},h(){te(l.src,t=i[9])||m(l,"src",t),m(l,"class",i[7]),m(l,"alt",n=i[0]||i[1]||""),m(l,"loading","lazy"),K(l,"rounded-md",i[4]),K(l,"shadow-lg",i[3]),K(l,"blur-md",i[2]),K(l,"shadow-md",i[3]),K(l,"object-contain",i[5]),K(l,"object-center",i[5]),m(e,"class","grid grid-flow-col justify-center items-center")},m(a,o){w(a,e,o),V(e,l),V(e,r),s&&s.m(e,null)},p(a,o){o&512&&!te(l.src,t=a[9])&&m(l,"src",t),o&128&&m(l,"class",a[7]),o&3&&n!==(n=a[0]||a[1]||"")&&m(l,"alt",n),o&144&&K(l,"rounded-md",a[4]),o&136&&K(l,"shadow-lg",a[3]),o&132&&K(l,"blur-md",a[2]),o&136&&K(l,"shadow-md",a[3]),o&160&&K(l,"object-contain",a[5]),o&160&&K(l,"object-center",a[5]),a[8]?s?s.p(a,o):(s=qe(a),s.c(),s.m(e,null)):s&&(s.d(1),s=null)},d(a){a&&u(e),s&&s.d()}}}function qe(i){let e,l;return{c(){e=y("figcaption"),l=$(i[8])},l(t){e=C(t,"FIGCAPTION",{});var n=j(e);l=ee(n,i[8]),n.forEach(u)},m(t,n){w(t,e,n),V(e,l)},p(t,n){n&256&&se(l,t[8])},d(t){t&&u(e)}}}function Pn(i){let e,l,t,n;const r=[Tn,En],s=[];function a(o,c){return o[9]?0:1}return e=a(i),l=s[e]=r[e](i),{c(){l.c(),t=W()},l(o){l.l(o),t=W()},m(o,c){s[e].m(o,c),w(o,t,c),n=!0},p(o,[c]){let f=e;e=a(o),e===f?s[e].p(o,c):(F(),p(s[f],1,1,()=>{s[f]=null}),U(),l=s[e],l?l.p(o,c):(l=s[e]=r[e](o),l.c()),b(l,1),l.m(t.parentNode,t))},i(o){n||(b(l),n=!0)},o(o){p(l),n=!1},d(o){o&&u(t),s[e].d(o)}}}function Vn(i,e,l){let t,n;Le(i,Ve,g=>l(12,n=g));let{imgSrc:r=""}=e,{imgSrcDark:s=""}=e,{imgAlt:a=""}=e,{title:o=""}=e,{blur:c=!1}=e,{shadow:f=!1}=e,{rounded:d=!0}=e,{contain:h=!1}=e,{figure:_=!0}=e,{classes:v=""}=e,{caption:k=""}=e;return i.$$set=g=>{"imgSrc"in g&&l(10,r=g.imgSrc),"imgSrcDark"in g&&l(11,s=g.imgSrcDark),"imgAlt"in g&&l(0,a=g.imgAlt),"title"in g&&l(1,o=g.title),"blur"in g&&l(2,c=g.blur),"shadow"in g&&l(3,f=g.shadow),"rounded"in g&&l(4,d=g.rounded),"contain"in g&&l(5,h=g.contain),"figure"in g&&l(6,_=g.figure),"classes"in g&&l(7,v=g.classes),"caption"in g&&l(8,k=g.caption)},i.$$.update=()=>{i.$$.dirty&7168&&l(9,t=n==="dark"&&s?s:r)},[a,o,c,f,d,h,_,v,k,t,r,s,n]}class ge extends Y{constructor(e){super(),J(this,e,Vn,Pn,X,{imgSrc:10,imgSrcDark:11,imgAlt:0,title:1,blur:2,shadow:3,rounded:4,contain:5,figure:6,classes:7,caption:8})}}function Mn(i){let e,l;return e=new ge({props:{figure:!1,imgSrc:i[1].imgSrc,imgSrcDark:i[1].imgSrcDark,contain:!0,classes:i[2]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p(t,n){const r={};n&2&&(r.imgSrc=t[1].imgSrc),n&2&&(r.imgSrcDark=t[1].imgSrcDark),n&4&&(r.classes=t[2]),e.$set(r)},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function jn(i){let e,l;return e=new In({props:{icon:i[1].icon,size:"48"}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p(t,n){const r={};n&2&&(r.icon=t[1].icon),e.$set(r)},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function We(i){let e,l=i[1].title+"",t;return{c(){e=y("h2"),t=$(l),this.h()},l(n){e=C(n,"H2",{class:!0});var r=j(e);t=ee(r,l),r.forEach(u),this.h()},h(){m(e,"class","text-3xl mt-4")},m(n,r){w(n,e,r),V(e,t)},p(n,r){r&2&&l!==(l=n[1].title+"")&&se(t,l)},d(n){n&&u(e)}}}function Xe(i){let e,l,t=i[1].content+"";return{c(){e=y("p"),l=new wt(!1),this.h()},l(n){e=C(n,"P",{class:!0});var r=j(e);l=yt(r,!1),r.forEach(u),this.h()},h(){l.a=null,m(e,"class","text-neutral-500 text-lg")},m(n,r){w(n,e,r),l.m(t,e)},p(n,r){r&2&&t!==(t=n[1].content+"")&&l.p(t)},d(n){n&&u(e)}}}function Hn(i){let e,l,t,n,r,s,a;const o=[jn,Mn],c=[];function f(_,v){return _[1].icon?0:_[1].imgSrc?1:-1}~(l=f(i))&&(t=c[l]=o[l](i));let d=i[1].title&&We(i),h=i[1].content&&Xe(i);return{c(){e=y("div"),t&&t.c(),n=A(),d&&d.c(),r=A(),h&&h.c(),this.h()},l(_){e=C(_,"DIV",{class:!0});var v=j(e);t&&t.l(v),n=G(v),d&&d.l(v),r=G(v),h&&h.l(v),v.forEach(u),this.h()},h(){m(e,"class",s="text-red-berry-900 dark:text-neutral-300 flex flex-col items-center justify-center text-center "+i[0])},m(_,v){w(_,e,v),~l&&c[l].m(e,null),V(e,n),d&&d.m(e,null),V(e,r),h&&h.m(e,null),a=!0},p(_,[v]){let k=l;l=f(_),l===k?~l&&c[l].p(_,v):(t&&(F(),p(c[k],1,1,()=>{c[k]=null}),U()),~l?(t=c[l],t?t.p(_,v):(t=c[l]=o[l](_),t.c()),b(t,1),t.m(e,n)):t=null),_[1].title?d?d.p(_,v):(d=We(_),d.c(),d.m(e,r)):d&&(d.d(1),d=null),_[1].content?h?h.p(_,v):(h=Xe(_),h.c(),h.m(e,null)):h&&(h.d(1),h=null),(!a||v&1&&s!==(s="text-red-berry-900 dark:text-neutral-300 flex flex-col items-center justify-center text-center "+_[0]))&&m(e,"class",s)},i(_){a||(b(t),a=!0)},o(_){p(t),a=!1},d(_){_&&u(e),~l&&c[l].d(),d&&d.d(),h&&h.d()}}}function Bn(i,e,l){let{aspect:t=""}=e,{innerColumn:n}=e,{classes:r=""}=e;return i.$$set=s=>{"aspect"in s&&l(0,t=s.aspect),"innerColumn"in s&&l(1,n=s.innerColumn),"classes"in s&&l(2,r=s.classes)},[t,n,r]}class Tt extends Y{constructor(e){super(),J(this,e,Bn,Hn,X,{aspect:0,innerColumn:1,classes:2})}}function Ye(i,e,l){const t=i.slice();return t[7]=e[l],t}function Je(i){let e,l=i[7].title+"",t,n,r,s;function a(){return i[6](i[7])}return{c(){e=y("button"),t=$(l),n=A(),this.h()},l(o){e=C(o,"BUTTON",{class:!0});var c=j(e);t=ee(c,l),n=G(c),c.forEach(u),this.h()},h(){m(e,"class","pb-2 border-b-2 border-neutral-500 text-gray-500 text-xs sm:text-sm lg:text-base font-light svelte-wk0a0w"),K(e,"selected",i[1]===i[7])},m(o,c){w(o,e,c),V(e,t),V(e,n),r||(s=Q(e,"click",a),r=!0)},p(o,c){i=o,c&1&&l!==(l=i[7].title+"")&&se(t,l),c&3&&K(e,"selected",i[1]===i[7])},d(o){o&&u(e),r=!1,s()}}}function Nn(i){let e=i[4],l,t,n=Ze(i);return{c(){n.c(),l=W()},l(r){n.l(r),l=W()},m(r,s){n.m(r,s),w(r,l,s),t=!0},p(r,s){s&16&&X(e,e=r[4])?(F(),p(n,1,1,S),U(),n=Ze(r),n.c(),b(n,1),n.m(l.parentNode,l)):n.p(r,s)},i(r){t||(b(n),t=!0)},o(r){p(n),t=!1},d(r){r&&u(l),n.d(r)}}}function zn(i){let e,l='
    ',t,n,r;return{c(){e=y("div"),e.innerHTML=l,this.h()},l(s){e=C(s,"DIV",{class:!0,"data-svelte-h":!0}),Z(e)!=="svelte-1sa5uzo"&&(e.innerHTML=l),this.h()},h(){m(e,"class","skeleton-loader svelte-wk0a0w")},m(s,a){w(s,e,a),r=!0},p:S,i(s){r||(s&&he(()=>{r&&(n&&n.end(1),t=Ce(e,ye,{duration:200}),t.start())}),r=!0)},o(s){t&&t.invalidate(),s&&(n=Gt(e,ye,{duration:200})),r=!1},d(s){s&&u(e),s&&n&&n.end()}}}function An(i){let e,l,t,n;var r=i[1].content;function s(a,o){return{}}return r&&(l=oe(r,s())),{c(){e=y("div"),l&&B(l.$$.fragment)},l(a){e=C(a,"DIV",{});var o=j(e);l&&q(l.$$.fragment,o),o.forEach(u)},m(a,o){w(a,e,o),l&&N(l,e,null),n=!0},p(a,o){if(o&2&&r!==(r=a[1].content)){if(l){F();const c=l;p(c.$$.fragment,1,0,()=>{z(c,1)}),U()}r?(l=oe(r,s()),B(l.$$.fragment),b(l.$$.fragment,1),N(l,e,null)):l=null}},i(a){n||(l&&b(l.$$.fragment,a),a&&(t||he(()=>{t=Ce(e,ye,{duration:200}),t.start()})),n=!0)},o(a){l&&p(l.$$.fragment,a),n=!1},d(a){a&&u(e),l&&z(l)}}}function Gn(i){let e,l,t,n=i[2]&&Ke(i);return{c(){e=y("div"),n&&n.c()},l(r){e=C(r,"DIV",{});var s=j(e);n&&n.l(s),s.forEach(u)},m(r,s){w(r,e,s),n&&n.m(e,null),t=!0},p(r,s){r[2]?n?(n.p(r,s),s&4&&b(n,1)):(n=Ke(r),n.c(),b(n,1),n.m(e,null)):n&&(F(),p(n,1,1,()=>{n=null}),U())},i(r){t||(b(n),r&&(l||he(()=>{l=Ce(e,ye,{duration:200}),l.start()})),t=!0)},o(r){p(n),t=!1},d(r){r&&u(e),n&&n.d()}}}function Ke(i){let e,l,t,n;var r=i[2];function s(o,c){return{props:{videoSources:o[1].content.videoSources,videoPoster:o[1].content.videoPoster,info:!1}}}r&&(e=oe(r,s(i)));let a=i[1].content.videoCaption&&Qe(i);return{c(){e&&B(e.$$.fragment),l=A(),a&&a.c(),t=W()},l(o){e&&q(e.$$.fragment,o),l=G(o),a&&a.l(o),t=W()},m(o,c){e&&N(e,o,c),w(o,l,c),a&&a.m(o,c),w(o,t,c),n=!0},p(o,c){if(c&4&&r!==(r=o[2])){if(e){F();const f=e;p(f.$$.fragment,1,0,()=>{z(f,1)}),U()}r?(e=oe(r,s(o)),B(e.$$.fragment),b(e.$$.fragment,1),N(e,l.parentNode,l)):e=null}else if(r){const f={};c&2&&(f.videoSources=o[1].content.videoSources),c&2&&(f.videoPoster=o[1].content.videoPoster),e.$set(f)}o[1].content.videoCaption?a?a.p(o,c):(a=Qe(o),a.c(),a.m(t.parentNode,t)):a&&(a.d(1),a=null)},i(o){n||(e&&b(e.$$.fragment,o),n=!0)},o(o){e&&p(e.$$.fragment,o),n=!1},d(o){o&&(u(l),u(t)),e&&z(e,o),a&&a.d(o)}}}function Qe(i){let e,l=i[1].content.videoCaption+"",t;return{c(){e=y("p"),t=$(l),this.h()},l(n){e=C(n,"P",{class:!0});var r=j(e);t=ee(r,l),r.forEach(u),this.h()},h(){m(e,"class","text-gray-700 dark:text-neutral-300 text-[0.95rem] mt-3 text-center")},m(n,r){w(n,e,r),V(e,t)},p(n,r){r&2&&l!==(l=n[1].content.videoCaption+"")&&se(t,l)},d(n){n&&u(e)}}}function Ze(i){let e,l,t,n;const r=[Gn,An],s=[];function a(o,c){return o[1].isVideo===!0?0:1}return e=a(i),l=s[e]=r[e](i),{c(){l.c(),t=W()},l(o){l.l(o),t=W()},m(o,c){s[e].m(o,c),w(o,t,c),n=!0},p(o,c){let f=e;e=a(o),e===f?s[e].p(o,c):(F(),p(s[f],1,1,()=>{s[f]=null}),U(),l=s[e],l?l.p(o,c):(l=s[e]=r[e](o),l.c()),b(l,1),l.m(t.parentNode,t))},i(o){n||(b(l),n=!0)},o(o){p(l),n=!1},d(o){o&&u(t),s[e].d(o)}}}function On(i){let e,l,t,n,r,s,a=le(i[0]),o=[];for(let h=0;h{f[v]=null}),U(),r=f[n],r?r.p(h,_):(r=f[n]=c[n](h),r.c()),b(r,1),r.m(t,null))},i(h){s||(b(r),s=!0)},o(h){p(r),s=!1},d(h){h&&(u(e),u(l),u(t)),_e(o,h),f[n].d()}}}function Rn(i,e,l){let t,{tabs:n=[]}=e,r=n[0],s,a=!0;ae(async()=>{const f=await Qt(()=>Promise.resolve().then(()=>Yn),void 0,import.meta.url);l(2,s=f.default),n.forEach(d=>{d.isVideo&&d.content.videoSources&&d.content.videoSources.forEach(h=>{const _=document.createElement("link");_.rel="preload",_.as="video",_.href=h.src,document.head.appendChild(_)})}),l(3,a=!1)});function o(f){l(3,a=!0),l(1,r=f),setTimeout(()=>{l(3,a=!1)},200)}const c=f=>o(f);return i.$$set=f=>{"tabs"in f&&l(0,n=f.tabs)},i.$$.update=()=>{i.$$.dirty&2&&l(4,t=r.isVideo?JSON.stringify(r.content):r.content)},[n,r,s,a,t,o,c]}class Fn extends Y{constructor(e){super(),J(this,e,Rn,On,X,{tabs:0})}}const{isNaN:Un}=Jt;function xe(i,e,l){const t=i.slice();return t[24]=e[l],t}function $e(i){let e,l,t=!1,n,r=!0,s,a,o,c,f,d,h,_,v,k=le(i[0]),g=[];for(let I=0;Ii[18].call(l)),m(o,"class","p-4"),m(a,"class","controls svelte-1avzpyw"),re(a,"opacity",i[7]&&i[8]?1:0),m(e,"class","video-container relative")},m(I,E){w(I,e,E),V(e,l);for(let O=0;O0&&$e(i);return{c(){t&&t.c(),e=W()},l(n){t&&t.l(n),e=W()},m(n,r){t&&t.m(n,r),w(n,e,r),l=!0},p(n,[r]){n[0].length>0?t?(t.p(n,r),r&1&&b(t,1)):(t=$e(n),t.c(),b(t,1),t.m(e.parentNode,e)):t&&(F(),p(t,1,1,()=>{t=null}),U())},i(n){l||(b(t),l=!0)},o(n){p(t),l=!1},d(n){n&&u(e),t&&t.d(n)}}}let Wn=!1;function Xn(i,e,l){let{videoSources:t=[]}=e,{videoPoster:n=""}=e,{progress:r=!0}=e,{info:s=!0}=e,a=0,o=!1,c=!0,f,d=!1,h,_,v,k;const g=H=>{const[ie]=H;ie.isIntersecting?_&&c&&!o&&_.play():_&&!c&&_.pause()};function P(H){if(l(8,d=!0),c||(clearTimeout(h),l(14,h=setTimeout(()=>l(8,d=!1),2e3))),!f||H.type!=="touchmove"&&!(H.buttons&1))return;const ie=H.type==="touchmove"?H.touches[0].clientX:H.clientX,{left:ce,right:be}=this.getBoundingClientRect();l(5,a=f*(ie-ce)/(be-ce))}const D=H=>{k=new Date},T=H=>{new Date-k<300&&(c?(H.target.play(),l(6,o=!1)):(H.target.pause(),l(6,o=!0)))},I=H=>{if(isNaN(H))return"...";const ie=Math.floor(H/60);return H=Math.floor(H%60),H<10&&(H="0"+H),`${ie}:${H}`};ae(()=>{v=new IntersectionObserver(g,{root:null,rootMargin:"0px",threshold:.5}),_&&v.observe(_)}),At(()=>{v&&v.disconnect()});function E(H){ve[H?"unshift":"push"](()=>{_=H,l(9,_)})}const O=()=>{l(6,o=!1)};function M(){a=this.currentTime,l(5,a)}function R(){f=this.duration,l(7,f)}function x(){c=this.paused,l(4,c)}const ne=()=>{l(4,c=!c),l(6,o=c),l(8,d=!0)};return i.$$set=H=>{"videoSources"in H&&l(0,t=H.videoSources),"videoPoster"in H&&l(1,n=H.videoPoster),"progress"in H&&l(2,r=H.progress),"info"in H&&l(3,s=H.info)},i.$$.update=()=>{i.$$.dirty&16400&&c&&(l(8,d=!0),clearTimeout(h))},[t,n,r,s,c,a,o,f,d,_,P,D,T,I,h,E,O,M,R,x,ne]}class Dt extends Y{constructor(e){super(),J(this,e,Xn,qn,X,{videoSources:0,videoPoster:1,progress:2,info:3})}}const Yn=Object.freeze(Object.defineProperty({__proto__:null,default:Dt},Symbol.toStringTag,{value:"Module"})),Jn=i=>({}),rt=i=>({});function it(i,e,l){const t=i.slice();return t[32]=e[l],t}function st(i,e,l){const t=i.slice();return t[35]=e[l],t}function ot(i){let e,l,t;return{c(){e=y("h1"),l=new wt(!1),this.h()},l(n){e=C(n,"H1",{class:!0});var r=j(e);l=yt(r,!1),r.forEach(u),this.h()},h(){l.a=null,m(e,"class",t=`text-4xl font-semibold tracking-tight max-w-2xl px-8 mx-auto text-center text-red-berry-900 dark:text-neutral-400 + ${i[12]?"":"lg:mb-24"}`)},m(n,r){w(n,e,r),l.m(i[14],e)},p(n,r){r[0]&16384&&l.p(n[14]),r[0]&4096&&t!==(t=`text-4xl font-semibold tracking-tight max-w-2xl px-8 mx-auto text-center text-red-berry-900 dark:text-neutral-400 + ${n[12]?"":"lg:mb-24"}`)&&m(e,"class",t)},d(n){n&&u(e)}}}function at(i){let e,l,t,n,r=i[16]&&ct(i),s=i[1]&&ft(i);return{c(){e=y("div"),r&&r.c(),l=A(),s&&s.c(),this.h()},l(a){e=C(a,"DIV",{class:!0});var o=j(e);r&&r.l(o),l=G(o),s&&s.l(o),o.forEach(u),this.h()},h(){m(e,"class",t=i[3]?"col-span-full lg:col-span-4":"col-span-full")},m(a,o){w(a,e,o),r&&r.m(e,null),V(e,l),s&&s.m(e,null),n=!0},p(a,o){a[16]?r?(r.p(a,o),o[0]&65536&&b(r,1)):(r=ct(a),r.c(),b(r,1),r.m(e,l)):r&&(F(),p(r,1,1,()=>{r=null}),U()),a[1]?s?(s.p(a,o),o[0]&2&&b(s,1)):(s=ft(a),s.c(),b(s,1),s.m(e,null)):s&&(F(),p(s,1,1,()=>{s=null}),U()),(!n||o[0]&8&&t!==(t=a[3]?"col-span-full lg:col-span-4":"col-span-full"))&&m(e,"class",t)},i(a){n||(b(r),b(s),n=!0)},o(a){p(r),p(s),n=!1},d(a){a&&u(e),r&&r.d(),s&&s.d()}}}function ct(i){let e,l,t;const n=i[30].default,r=fe(n,i,i[29],null);return{c(){e=y("div"),r&&r.c(),this.h()},l(s){e=C(s,"DIV",{class:!0});var a=j(e);r&&r.l(a),a.forEach(u),this.h()},h(){m(e,"class",l=`prose prose-h2:text-lg prose-h1:text-xl prose-headings:font-light prose-headings:tracking-tight + prose-headings:text-gray-700 prose-headings:dark:text-neutral-300 + prose-p:font-light prose-p:text-base prose-p:text-gray-700 prose-p:dark:text-gray-300 + ${i[3]?"max-w-full":"mt-8 md:mt-24 text-center max-w-2xl mx-auto"}`)},m(s,a){w(s,e,a),r&&r.m(e,null),t=!0},p(s,a){r&&r.p&&(!t||a[0]&536870912)&&ue(r,n,s,s[29],t?de(n,s[29],a,null):me(s[29]),null),(!t||a[0]&8&&l!==(l=`prose prose-h2:text-lg prose-h1:text-xl prose-headings:font-light prose-headings:tracking-tight + prose-headings:text-gray-700 prose-headings:dark:text-neutral-300 + prose-p:font-light prose-p:text-base prose-p:text-gray-700 prose-p:dark:text-gray-300 + ${s[3]?"max-w-full":"mt-8 md:mt-24 text-center max-w-2xl mx-auto"}`))&&m(e,"class",l)},i(s){t||(b(r,s),t=!0)},o(s){p(r,s),t=!1},d(s){s&&u(e),r&&r.d(s)}}}function ft(i){let e,l,t,n=le(i[1]),r=[];for(let a=0;ap(r[a],1,1,()=>{r[a]=null});return{c(){e=y("div");for(let a=0;a{a[d]=null}),U()),~l?(t=a[l],t?t.p(c,f):(t=a[l]=s[l](c),t.c()),b(t,1),t.m(e,null)):t=null),(!r||f[0]&8&&n!==(n=c[3]?"col-span-full lg:col-span-6":"col-span-full"))&&m(e,"class",n)},i(c){r||(b(t),r=!0)},o(c){p(t),r=!1},d(c){c&&u(e),~l&&a[l].d()}}}function Kn(i){let e,l,t=le(i[21]),n=[];for(let s=0;sp(n[s],1,1,()=>{n[s]=null});return{c(){e=y("div");for(let s=0;s{s[f]=null}),U(),l=s[e],l?l.p(o,c):(l=s[e]=r[e](o),l.c()),b(l,1),l.m(t.parentNode,t))},i(o){n||(b(l),n=!0)},o(o){p(l),n=!1},d(o){o&&u(t),s[e].d(o)}}}function xn(i){let e,l;return e=new Dt({props:{videoSources:i[6],videoPoster:i[7]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p(t,n){const r={};n[0]&64&&(r.videoSources=t[6]),n[0]&128&&(r.videoPoster=t[7]),e.$set(r)},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function $n(i){let e,l,t;return e=new bn({props:{id:i[5],altThumb:!0}}),{c(){l=y("div"),B(e.$$.fragment),this.h()},l(n){l=C(n,"DIV",{style:!0});var r=j(l);q(e.$$.fragment,r),this.h()},h(){re(l,"display","contents"),re(l,"--title-font-family","Silka")},m(n,r){w(n,l,r),N(e,l,null),t=!0},p(n,r){const s={};r[0]&32&&(s.id=n[5]),e.$set(s)},i(n){t||(b(e.$$.fragment,n),t=!0)},o(n){p(e.$$.fragment,n),t=!1},d(n){n&&e&&u(l),z(e,n)}}}function er(i){let e,l;return e=new Tt({props:{innerColumn:i[32],aspect:i[32].aspect,classes:"w-52 md:h-32"}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p(t,n){const r={};n[0]&2097152&&(r.innerColumn=t[32]),n[0]&2097152&&(r.aspect=t[32].aspect),e.$set(r)},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function tr(i){let e,l,t,n,r;return l=new Tt({props:{innerColumn:i[32],aspect:i[32].aspect,classes:"w-52 md:h-32"}}),{c(){e=y("a"),B(l.$$.fragment),t=A(),this.h()},l(s){e=C(s,"A",{href:!0,target:!0,rel:!0,class:!0});var a=j(e);q(l.$$.fragment,a),t=G(a),a.forEach(u),this.h()},h(){m(e,"href",n=i[32].link),m(e,"target","_blank"),m(e,"rel","noopener noreferrer"),m(e,"class","card-link md:grid w-full h-full items-center")},m(s,a){w(s,e,a),N(l,e,null),V(e,t),r=!0},p(s,a){const o={};a[0]&2097152&&(o.innerColumn=s[32]),a[0]&2097152&&(o.aspect=s[32].aspect),l.$set(o),(!r||a[0]&2097152&&n!==(n=s[32].link))&&m(e,"href",n)},i(s){r||(b(l.$$.fragment,s),r=!0)},o(s){p(l.$$.fragment,s),r=!1},d(s){s&&u(e),z(l)}}}function dt(i){let e,l,t,n;const r=[tr,er],s=[];function a(o,c){return o[32].link?0:1}return e=a(i),l=s[e]=r[e](i),{c(){l.c(),t=W()},l(o){l.l(o),t=W()},m(o,c){s[e].m(o,c),w(o,t,c),n=!0},p(o,c){let f=e;e=a(o),e===f?s[e].p(o,c):(F(),p(s[f],1,1,()=>{s[f]=null}),U(),l=s[e],l?l.p(o,c):(l=s[e]=r[e](o),l.c()),b(l,1),l.m(t.parentNode,t))},i(o){n||(b(l),n=!0)},o(o){p(l),n=!1},d(o){o&&u(t),s[e].d(o)}}}function lr(i){let e,l;return e=new ge({props:{imgSrc:i[0],caption:i[10],classes:i[9]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p(t,n){const r={};n[0]&1&&(r.imgSrc=t[0]),n[0]&1024&&(r.caption=t[10]),n[0]&512&&(r.classes=t[9]),e.$set(r)},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function nr(i){let e,l,t;return l=new ge({props:{imgSrc:i[0],caption:i[10],classes:i[9]}}),{c(){e=y("a"),B(l.$$.fragment),this.h()},l(n){e=C(n,"A",{href:!0,target:!0,rel:!0});var r=j(e);q(l.$$.fragment,r),r.forEach(u),this.h()},h(){m(e,"href",i[8]),m(e,"target","_blank"),m(e,"rel","noopener noreferrer")},m(n,r){w(n,e,r),N(l,e,null),t=!0},p(n,r){const s={};r[0]&1&&(s.imgSrc=n[0]),r[0]&1024&&(s.caption=n[10]),r[0]&512&&(s.classes=n[9]),l.$set(s),(!t||r[0]&256)&&m(e,"href",n[8])},i(n){t||(b(l.$$.fragment,n),t=!0)},o(n){p(l.$$.fragment,n),t=!1},d(n){n&&u(e),z(l)}}}function ht(i){let e,l,t,n,r;const s=[ir,rr],a=[];function o(c,f){return c[23].extraContent?0:1}return l=o(i),t=a[l]=s[l](i),{c(){e=y("div"),t.c(),this.h()},l(c){e=C(c,"DIV",{class:!0});var f=j(e);t.l(f),f.forEach(u),this.h()},h(){m(e,"class",n=`text-center max-w-2xl mx-auto px-8 mt-8 prose prose-h2:text-xl prose-headings:font-light prose-headings:tracking-tight + prose-headings:text-neutral-700 prose-headings:dark:text-neutral-300 + prose-p:font-light prose-p:text-base prose-p:text-gray-700 prose-p:dark:text-gray-300 + ${i[3]?"order-first":""}`)},m(c,f){w(c,e,f),a[l].m(e,null),r=!0},p(c,f){let d=l;l=o(c),l===d?a[l].p(c,f):(F(),p(a[d],1,1,()=>{a[d]=null}),U(),t=a[l],t?t.p(c,f):(t=a[l]=s[l](c),t.c()),b(t,1),t.m(e,null)),(!r||f[0]&8&&n!==(n=`text-center max-w-2xl mx-auto px-8 mt-8 prose prose-h2:text-xl prose-headings:font-light prose-headings:tracking-tight + prose-headings:text-neutral-700 prose-headings:dark:text-neutral-300 + prose-p:font-light prose-p:text-base prose-p:text-gray-700 prose-p:dark:text-gray-300 + ${c[3]?"order-first":""}`))&&m(e,"class",n)},i(c){r||(b(t),r=!0)},o(c){p(t),r=!1},d(c){c&&u(e),a[l].d()}}}function rr(i){let e,l,t;var n=i[17];function r(s,a){return{}}return n&&(e=oe(n,r())),{c(){e&&B(e.$$.fragment),l=W()},l(s){e&&q(e.$$.fragment,s),l=W()},m(s,a){e&&N(e,s,a),w(s,l,a),t=!0},p(s,a){if(a[0]&131072&&n!==(n=s[17])){if(e){F();const o=e;p(o.$$.fragment,1,0,()=>{z(o,1)}),U()}n?(e=oe(n,r()),B(e.$$.fragment),b(e.$$.fragment,1),N(e,l.parentNode,l)):e=null}},i(s){t||(e&&b(e.$$.fragment,s),t=!0)},o(s){e&&p(e.$$.fragment,s),t=!1},d(s){s&&u(l),e&&z(e,s)}}}function ir(i){let e;const l=i[30].extraContent,t=fe(l,i,i[29],rt);return{c(){t&&t.c()},l(n){t&&t.l(n)},m(n,r){t&&t.m(n,r),e=!0},p(n,r){t&&t.p&&(!e||r[0]&536870912)&&ue(t,l,n,n[29],e?de(l,n[29],r,Jn):me(n[29]),rt)},i(n){e||(b(t,n),e=!0)},o(n){p(t,n),e=!1},d(n){t&&t.d(n)}}}function _t(i){let e,l,t,n,r;const s=[or,sr],a=[];function o(c,f){return c[20]?0:1}return l=o(i),t=a[l]=s[l](i),{c(){e=y("div"),t.c(),this.h()},l(c){e=C(c,"DIV",{class:!0});var f=j(e);t.l(f),f.forEach(u),this.h()},h(){m(e,"class",n=`col-span-10 text-center px-8 mt-8 mb-16 ${i[3]?"max-w-full":"max-w-2xl mx-auto"}`)},m(c,f){w(c,e,f),a[l].m(e,null),r=!0},p(c,f){let d=l;l=o(c),l===d?a[l].p(c,f):(F(),p(a[d],1,1,()=>{a[d]=null}),U(),t=a[l],t?t.p(c,f):(t=a[l]=s[l](c),t.c()),b(t,1),t.m(e,null)),(!r||f[0]&8&&n!==(n=`col-span-10 text-center px-8 mt-8 mb-16 ${c[3]?"max-w-full":"max-w-2xl mx-auto"}`))&&m(e,"class",n)},i(c){r||(b(t),r=!0)},o(c){p(t),r=!1},d(c){c&&u(e),a[l].d()}}}function sr(i){let e,l;return e=new ge({props:{figure:!1,imgSrc:i[18],imgAlt:i[19]}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},p(t,n){const r={};n[0]&262144&&(r.imgSrc=t[18]),n[0]&524288&&(r.imgAlt=t[19]),e.$set(r)},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function or(i){let e,l,t;return l=new ge({props:{figure:!1,imgSrc:i[18],imgAlt:i[19]}}),{c(){e=y("a"),B(l.$$.fragment),this.h()},l(n){e=C(n,"A",{href:!0,target:!0,rel:!0});var r=j(e);q(l.$$.fragment,r),r.forEach(u),this.h()},h(){m(e,"href",i[20]),m(e,"target","_blank"),m(e,"rel","noopener noreferrer")},m(n,r){w(n,e,r),N(l,e,null),t=!0},p(n,r){const s={};r[0]&262144&&(s.imgSrc=n[18]),r[0]&524288&&(s.imgAlt=n[19]),l.$set(s),(!t||r[0]&1048576)&&m(e,"href",n[20])},i(n){t||(b(l.$$.fragment,n),t=!0)},o(n){p(l.$$.fragment,n),t=!1},d(n){n&&u(e),z(l)}}}function gt(i){let e,l;return e=new Kt({props:{stroke:!0}}),{c(){B(e.$$.fragment)},l(t){q(e.$$.fragment,t)},m(t,n){N(e,t,n),l=!0},i(t){l||(b(e.$$.fragment,t),l=!0)},o(t){p(e.$$.fragment,t),l=!1},d(t){z(e,t)}}}function ar(i){let e,l,t,n,r,s,a,o,c,f=i[14]&&ot(i),d=(i[16]||i[1])&&at(i),h=(i[5]||i[6]||i[11]||i[0]||i[21])&&mt(i),_=(i[23].extraContent||i[17])&&ht(i),v=i[18]&&_t(i),k=i[13]&>();return{c(){e=y("section"),f&&f.c(),l=A(),t=y("div"),d&&d.c(),n=A(),h&&h.c(),s=A(),_&&_.c(),a=A(),v&&v.c(),o=A(),k&&k.c(),this.h()},l(g){e=C(g,"SECTION",{class:!0,id:!0,style:!0});var P=j(e);f&&f.l(P),l=G(P),t=C(P,"DIV",{class:!0});var D=j(t);d&&d.l(D),n=G(D),h&&h.l(D),D.forEach(u),s=G(P),_&&_.l(P),a=G(P),v&&v.l(P),o=G(P),k&&k.l(P),P.forEach(u),this.h()},h(){m(t,"class",r=`mx-auto grid gap-8 px-8 ${i[15]} + ${i[12]?"max-w-screen-md":"py-8 max-w-screen-lg 2xl:max-w-screen-xl"} + ${i[3]?"gap-x-8 lg:gap-x-16 xl:gap-x-32 lg:grid-cols-10":""} + ${i[4]?"border border-mine-shaft-200 dark:border-mine-shaft-800":""}`),m(e,"class","md:bg-contain md:bg-no-repeat md:bg-origin-center md:bg-center"),m(e,"id",i[2]),m(e,"style",i[22])},m(g,P){w(g,e,P),f&&f.m(e,null),V(e,l),V(e,t),d&&d.m(t,null),V(t,n),h&&h.m(t,null),V(e,s),_&&_.m(e,null),V(e,a),v&&v.m(e,null),V(e,o),k&&k.m(e,null),c=!0},p(g,P){g[14]?f?f.p(g,P):(f=ot(g),f.c(),f.m(e,l)):f&&(f.d(1),f=null),g[16]||g[1]?d?(d.p(g,P),P[0]&65538&&b(d,1)):(d=at(g),d.c(),b(d,1),d.m(t,n)):d&&(F(),p(d,1,1,()=>{d=null}),U()),g[5]||g[6]||g[11]||g[0]||g[21]?h?(h.p(g,P),P[0]&2099297&&b(h,1)):(h=mt(g),h.c(),b(h,1),h.m(t,null)):h&&(F(),p(h,1,1,()=>{h=null}),U()),(!c||P[0]&36888&&r!==(r=`mx-auto grid gap-8 px-8 ${g[15]} + ${g[12]?"max-w-screen-md":"py-8 max-w-screen-lg 2xl:max-w-screen-xl"} + ${g[3]?"gap-x-8 lg:gap-x-16 xl:gap-x-32 lg:grid-cols-10":""} + ${g[4]?"border border-mine-shaft-200 dark:border-mine-shaft-800":""}`))&&m(t,"class",r),g[23].extraContent||g[17]?_?(_.p(g,P),P[0]&8519680&&b(_,1)):(_=ht(g),_.c(),b(_,1),_.m(e,a)):_&&(F(),p(_,1,1,()=>{_=null}),U()),g[18]?v?(v.p(g,P),P[0]&262144&&b(v,1)):(v=_t(g),v.c(),b(v,1),v.m(e,o)):v&&(F(),p(v,1,1,()=>{v=null}),U()),g[13]?k?P[0]&8192&&b(k,1):(k=gt(),k.c(),b(k,1),k.m(e,null)):k&&(F(),p(k,1,1,()=>{k=null}),U()),(!c||P[0]&4)&&m(e,"id",g[2]),(!c||P[0]&4194304)&&m(e,"style",g[22])},i(g){c||(b(d),b(h),b(_),b(v),b(k),c=!0)},o(g){p(d),p(h),p(_),p(v),p(k),c=!1},d(g){g&&u(e),f&&f.d(),d&&d.d(),h&&h.d(),_&&_.d(),v&&v.d(),k&&k.d()}}}function cr(i,e,l){let t,n;Le(i,Ve,L=>l(28,n=L));let{$$slots:r={},$$scope:s}=e;const a=kt(r);let{id:o=Wt()}=e,{columns:c=!0}=e,{border:f=!1}=e,{videoId:d=""}=e,{videoSources:h=void 0}=e,{videoPoster:_=void 0}=e,{imgSrc:v=void 0}=e,{imgLink:k=""}=e,{imgClasses:g=""}=e,{caption:P=""}=e,{tabs:D=void 0}=e,{buttons:T=void 0}=e,{boxed:I=!1}=e,{divider:E=!1}=e,{title:O=""}=e,{classes:M=""}=e,{background:R=""}=e,{backgroundDark:x=""}=e,{content:ne=""}=e,{extraContent:H=""}=e,{extraImage:ie=""}=e,{extraImageAlt:ce=""}=e,{extraImageLink:be=""}=e,{innerColumns:Me=!1}=e,Ee="",pe=!1;const Lt=(L,Pt)=>{let Te;return function(...Vt){const Mt=()=>{clearTimeout(Te),L(...Vt)};clearTimeout(Te),Te=setTimeout(Mt,Pt)}};return ae(()=>{const L=Lt(()=>{l(26,pe=window.innerWidth<768),l(22,Ee=pe?"":t?`background-image: url(${t});`:"")},250);return window.addEventListener("resize",L),L(),()=>window.removeEventListener("resize",L)}),Se.subscribe(L=>{!L.loading&&T&&v&&(l(1,T=[...L.osButtons]),l(0,v=`/assets/media/${L.os}.webp`))}),i.$$set=L=>{"id"in L&&l(2,o=L.id),"columns"in L&&l(3,c=L.columns),"border"in L&&l(4,f=L.border),"videoId"in L&&l(5,d=L.videoId),"videoSources"in L&&l(6,h=L.videoSources),"videoPoster"in L&&l(7,_=L.videoPoster),"imgSrc"in L&&l(0,v=L.imgSrc),"imgLink"in L&&l(8,k=L.imgLink),"imgClasses"in L&&l(9,g=L.imgClasses),"caption"in L&&l(10,P=L.caption),"tabs"in L&&l(11,D=L.tabs),"buttons"in L&&l(1,T=L.buttons),"boxed"in L&&l(12,I=L.boxed),"divider"in L&&l(13,E=L.divider),"title"in L&&l(14,O=L.title),"classes"in L&&l(15,M=L.classes),"background"in L&&l(24,R=L.background),"backgroundDark"in L&&l(25,x=L.backgroundDark),"content"in L&&l(16,ne=L.content),"extraContent"in L&&l(17,H=L.extraContent),"extraImage"in L&&l(18,ie=L.extraImage),"extraImageAlt"in L&&l(19,ce=L.extraImageAlt),"extraImageLink"in L&&l(20,be=L.extraImageLink),"innerColumns"in L&&l(21,Me=L.innerColumns),"$$scope"in L&&l(29,s=L.$$scope)},i.$$.update=()=>{i.$$.dirty[0]&318767104&&l(27,t=n==="dark"&&x?x:R),i.$$.dirty[0]&201326592&&l(22,Ee=pe?"":t?`background-image: url(${t});`:"")},[v,T,o,c,f,d,h,_,k,g,P,D,I,E,O,M,ne,H,ie,ce,be,Me,Ee,a,R,x,pe,t,n,s,r]}class fr extends Y{constructor(e){super(),J(this,e,cr,ar,X,{id:2,columns:3,border:4,videoId:5,videoSources:6,videoPoster:7,imgSrc:0,imgLink:8,imgClasses:9,caption:10,tabs:11,buttons:1,boxed:12,divider:13,title:14,classes:15,background:24,backgroundDark:25,content:16,extraContent:17,extraImage:18,extraImageAlt:19,extraImageLink:20,innerColumns:21},null,[-1,-1])}}function bt(i,e,l){const t=i.slice();return t[2]=e[l],t}function ur(i){let e,l,t;var n=i[2].content;function r(s,a){return{}}return n&&(e=oe(n,r())),{c(){e&&B(e.$$.fragment),l=A()},l(s){e&&q(e.$$.fragment,s),l=G(s)},m(s,a){e&&N(e,s,a),w(s,l,a),t=!0},p(s,a){if(n!==(n=s[2].content)){if(e){F();const o=e;p(o.$$.fragment,1,0,()=>{z(o,1)}),U()}n?(e=oe(n,r()),B(e.$$.fragment),b(e.$$.fragment,1),N(e,l.parentNode,l)):e=null}},i(s){t||(e&&b(e.$$.fragment,s),t=!0)},o(s){e&&p(e.$$.fragment,s),t=!1},d(s){s&&u(l),e&&z(e,s)}}}function pt(i,e){let l,t,n;const r=[e[2],{osStore:Se}];let s={$$slots:{default:[ur]},$$scope:{ctx:e}};for(let a=0;ac[2].id;for(let c=0;c{"data"in r&&l(1,t=r.data)},[n,t]}class Ir extends Y{constructor(e){super(),J(this,e,dr,mr,X,{data:1})}}export{Ir as component,Cr as universal}; diff --git a/_app/immutable/nodes/20.Bc_msup8.js b/_app/immutable/nodes/20.Bc_msup8.js new file mode 100644 index 00000000..c579bf36 --- /dev/null +++ b/_app/immutable/nodes/20.Bc_msup8.js @@ -0,0 +1 @@ +import{v as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/20.CDwgYxgm.js b/_app/immutable/nodes/20.CDwgYxgm.js deleted file mode 100644 index 948c62d4..00000000 --- a/_app/immutable/nodes/20.CDwgYxgm.js +++ /dev/null @@ -1 +0,0 @@ -import{u as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/21.CYWNATs-.js b/_app/immutable/nodes/21.CYWNATs-.js deleted file mode 100644 index b2501d78..00000000 --- a/_app/immutable/nodes/21.CYWNATs-.js +++ /dev/null @@ -1 +0,0 @@ -import{v as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/21.DecIwDkG.js b/_app/immutable/nodes/21.DecIwDkG.js new file mode 100644 index 00000000..b71148b5 --- /dev/null +++ b/_app/immutable/nodes/21.DecIwDkG.js @@ -0,0 +1 @@ +import{w as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/22.BVqEWefF.js b/_app/immutable/nodes/22.BVqEWefF.js new file mode 100644 index 00000000..1f18b693 --- /dev/null +++ b/_app/immutable/nodes/22.BVqEWefF.js @@ -0,0 +1 @@ +import{x as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/22.DuKzqYrJ.js b/_app/immutable/nodes/22.DuKzqYrJ.js deleted file mode 100644 index 09661106..00000000 --- a/_app/immutable/nodes/22.DuKzqYrJ.js +++ /dev/null @@ -1 +0,0 @@ -import{w as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/23.BdXNThUZ.js b/_app/immutable/nodes/23.BdXNThUZ.js deleted file mode 100644 index f6cd09ca..00000000 --- a/_app/immutable/nodes/23.BdXNThUZ.js +++ /dev/null @@ -1 +0,0 @@ -import{x as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/23.BiIHyvVm.js b/_app/immutable/nodes/23.BiIHyvVm.js new file mode 100644 index 00000000..70c48e46 --- /dev/null +++ b/_app/immutable/nodes/23.BiIHyvVm.js @@ -0,0 +1 @@ +import{y as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/24.DsGOjT-K.js b/_app/immutable/nodes/24.DsGOjT-K.js deleted file mode 100644 index fed8f7cd..00000000 --- a/_app/immutable/nodes/24.DsGOjT-K.js +++ /dev/null @@ -1 +0,0 @@ -import{y as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/24.DtLtXIr-.js b/_app/immutable/nodes/24.DtLtXIr-.js new file mode 100644 index 00000000..6a58a72c --- /dev/null +++ b/_app/immutable/nodes/24.DtLtXIr-.js @@ -0,0 +1 @@ +import{z as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/25.CSNUowDE.js b/_app/immutable/nodes/25.CSNUowDE.js new file mode 100644 index 00000000..ff8f464a --- /dev/null +++ b/_app/immutable/nodes/25.CSNUowDE.js @@ -0,0 +1 @@ +import{A as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/25.DPEas6BZ.js b/_app/immutable/nodes/25.DPEas6BZ.js deleted file mode 100644 index ba7051d4..00000000 --- a/_app/immutable/nodes/25.DPEas6BZ.js +++ /dev/null @@ -1 +0,0 @@ -import{z as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/26.Cv4DYfmK.js b/_app/immutable/nodes/26.Cv4DYfmK.js deleted file mode 100644 index 92bc29fb..00000000 --- a/_app/immutable/nodes/26.Cv4DYfmK.js +++ /dev/null @@ -1 +0,0 @@ -import{A as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/26.CxVeZHYL.js b/_app/immutable/nodes/26.CxVeZHYL.js new file mode 100644 index 00000000..bc4c67f8 --- /dev/null +++ b/_app/immutable/nodes/26.CxVeZHYL.js @@ -0,0 +1 @@ +import{B as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/27.DXApBUaA.js b/_app/immutable/nodes/27.DXApBUaA.js new file mode 100644 index 00000000..6ed47524 --- /dev/null +++ b/_app/immutable/nodes/27.DXApBUaA.js @@ -0,0 +1 @@ +import{C as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/27.F91EPrph.js b/_app/immutable/nodes/27.F91EPrph.js deleted file mode 100644 index 4de0f869..00000000 --- a/_app/immutable/nodes/27.F91EPrph.js +++ /dev/null @@ -1 +0,0 @@ -import{B as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/28.BBIYXl3t.js b/_app/immutable/nodes/28.BBIYXl3t.js new file mode 100644 index 00000000..9c2f7e1f --- /dev/null +++ b/_app/immutable/nodes/28.BBIYXl3t.js @@ -0,0 +1 @@ +import{D as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/28.XF0Vbiun.js b/_app/immutable/nodes/28.XF0Vbiun.js deleted file mode 100644 index 7576832c..00000000 --- a/_app/immutable/nodes/28.XF0Vbiun.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/29.DHAFXepX.js b/_app/immutable/nodes/29.DHAFXepX.js deleted file mode 100644 index 3f6a6bc0..00000000 --- a/_app/immutable/nodes/29.DHAFXepX.js +++ /dev/null @@ -1,3 +0,0 @@ -import{s as W,o as X,n as q}from"../chunks/scheduler.CZFVEtgY.js";import{S as Y,i as Z,e as b,s as L,c as x,f as B,h as P,d as _,a as v,b as g,j as y,t as w,k as T,l as k,g as E,m as j,n as tt,o as A,p as z,q as G,r as N,u as M,v as S,w as et}from"../chunks/index.DjvOVdNM.js";import{e as R,B as Q}from"../chunks/Button.Bc5NNSmk.js";import{r as H}from"../chunks/index.CXB4hq09.js";import{L as lt}from"../chunks/Loader.CgdetROw.js";function F(m,e,n){const l=m.slice();return l[7]=e[n],l}function nt(m){let e,n;return e=new lt({}),{c(){A(e.$$.fragment)},l(l){z(e.$$.fragment,l)},m(l,r){G(e,l,r),n=!0},p:q,i(l){n||(k(e.$$.fragment,l),n=!0)},o(l){w(e.$$.fragment,l),n=!1},d(l){N(e,l)}}}function rt(m){let e,n="Download started…",l,r,c,i,h,a,u,t,o=`If the download does not start automatically, please click the button - below`,s,d,$,V,C,O=`Alternatively, you can manually select the package you want from the links - below, or visit our releases page on GitHub.`,I;return $=new Q({props:{highlight:!0,text:"Download for "+m[1],icon:m[0],href:m[2],target:"_blank",rel:"noopener noreferrer"}}),{c(){e=b("h1"),e.textContent=n,l=L(),r=b("h2"),c=M("Detected "),i=b("span"),h=M(m[1]),a=M(" or compatible"),u=L(),t=b("p"),t.textContent=o,s=L(),d=b("div"),A($.$$.fragment),V=L(),C=b("p"),C.innerHTML=O,this.h()},l(f){e=x(f,"H1",{class:!0,"data-svelte-h":!0}),E(e)!=="svelte-idj4d1"&&(e.textContent=n),l=P(f),r=x(f,"H2",{class:!0});var p=B(r);c=S(p,"Detected "),i=x(p,"SPAN",{class:!0});var D=B(i);h=S(D,m[1]),D.forEach(_),a=S(p," or compatible"),p.forEach(_),u=P(f),t=x(f,"P",{class:!0,"data-svelte-h":!0}),E(t)!=="svelte-azqad0"&&(t.textContent=o),s=P(f),d=x(f,"DIV",{class:!0});var U=B(d);z($.$$.fragment,U),U.forEach(_),V=P(f),C=x(f,"P",{class:!0,"data-svelte-h":!0}),E(C)!=="svelte-9ofbyu"&&(C.innerHTML=O),this.h()},h(){v(e,"class","text-center text-4xl font-extralight mb-16"),v(i,"class","text-red-berry-900"),v(r,"class","text-center text-2xl font-light mb-4"),v(t,"class","text-sm text-neutral-500 text-center"),v(d,"class","block my-6 text-center"),v(C,"class","text-sm text-neutral-500 text-center")},m(f,p){g(f,e,p),g(f,l,p),g(f,r,p),y(r,c),y(r,i),y(i,h),y(r,a),g(f,u,p),g(f,t,p),g(f,s,p),g(f,d,p),G($,d,null),g(f,V,p),g(f,C,p),I=!0},p(f,p){(!I||p&2)&&et(h,f[1]);const D={};p&2&&(D.text="Download for "+f[1]),p&1&&(D.icon=f[0]),p&4&&(D.href=f[2]),$.$set(D)},i(f){I||(k($.$$.fragment,f),I=!0)},o(f){w($.$$.fragment,f),I=!1},d(f){f&&(_(e),_(l),_(r),_(u),_(t),_(s),_(d),_(V),_(C)),N($)}}}function st(m){let e,n="Please select the package you want from the links below",l,r,c='Or visit our releases page on GitHub.';return{c(){e=b("h1"),e.textContent=n,l=L(),r=b("p"),r.innerHTML=c,this.h()},l(i){e=x(i,"H1",{class:!0,"data-svelte-h":!0}),E(e)!=="svelte-1ccltz"&&(e.textContent=n),l=P(i),r=x(i,"P",{class:!0,"data-svelte-h":!0}),E(r)!=="svelte-1bqlxwu"&&(r.innerHTML=c),this.h()},h(){v(e,"class","text-4xl font-extralight text-center"),v(r,"class","text-sm text-neutral-500 text-center mt-4")},m(i,h){g(i,e,h),g(i,l,h),g(i,r,h)},p:q,i:q,o:q,d(i){i&&(_(e),_(l),_(r))}}}function J(m){let e,n,l="Available for",r,c,i,h=R(m[3]),a=[];for(let t=0;tw(a[t],1,1,()=>{a[t]=null});return{c(){e=b("div"),n=b("div"),n.textContent=l,r=L(),c=b("div");for(let t=0;t{h[s]=null}),T(),l=h[n],l?l.p(t,o):(l=h[n]=i[n](t),l.c()),k(l,1),l.m(e,r)),t[3]?u?(u.p(t,o),o&8&&k(u,1)):(u=J(t),u.c(),k(u,1),u.m(e,null)):u&&(j(),w(u,1,1,()=>{u=null}),T())},i(t){c||(k(l),k(u),c=!0)},o(t){w(l),w(u),c=!1},d(t){t&&_(e),h[n].d(),u&&u.d()}}}function at(m,e,n){let l,r,c,i,h,a=t=>{const o=[];for(let s in t)for(let d in t[s])t[s][d]&&(n(1,c=t[s][d].name),n(2,i=t[s][d].link),o.push({highlight:!0,icon:s,text:c,href:i}));return o},u=()=>{const t=new URLSearchParams(window.location.search);t&&(n(0,r=t.get("os")),l=t.get("arch"),!(!r||!H[r]||!H[r][l])&&(H[r][l]&&(n(1,c=H[r][l].name),n(2,i=H[r][l].link)),i&&(window.location=i)))};return X(()=>{u(),n(3,h=a(H))}),[r,c,i,h]}class mt extends Y{constructor(e){super(),Z(this,e,at,ot,W,{})}}export{mt as component}; diff --git a/_app/immutable/nodes/29.DVDykO3x.js b/_app/immutable/nodes/29.DVDykO3x.js new file mode 100644 index 00000000..aa169dc9 --- /dev/null +++ b/_app/immutable/nodes/29.DVDykO3x.js @@ -0,0 +1,5 @@ +import{s as W,o as X,n as B}from"../chunks/scheduler.CZFVEtgY.js";import{S as Y,i as Z,e as b,s as H,c as x,f as P,h as L,d as p,a as k,b as g,j as y,t as C,k as T,l as w,g as E,m as j,n as tt,o as A,p as O,q as U,r as z,u as M,v as q,w as et}from"../chunks/index.CNd5CZrX.js";import{e as R,B as Q}from"../chunks/Button.Bg-1Yv3Z.js";import{r as S}from"../chunks/index.BMEkiqFO.js";import{L as nt}from"../chunks/Loader.lmq2X6M7.js";function F(m,t,r){const e=m.slice();return e[8]=t[r],e}function lt(m){let t,r;return t=new nt({}),{c(){A(t.$$.fragment)},l(e){O(t.$$.fragment,e)},m(e,s){U(t,e,s),r=!0},p:B,i(e){r||(w(t.$$.fragment,e),r=!0)},o(e){C(t.$$.fragment,e),r=!1},d(e){z(t,e)}}}function rt(m){let t,r="Download started…",e,s,c,i,f,a,h,n,l=`If the download does not start automatically, please click the button + below`,o,_,v,V,$,G=`Alternatively, you can manually select the package you want from the links + below, or visit our releases page on GitHub.`,I;return v=new Q({props:{highlight:!0,text:"Download for "+m[1],icon:m[0],href:m[2],target:"_blank",rel:"noopener noreferrer"}}),{c(){t=b("h1"),t.textContent=r,e=H(),s=b("h2"),c=M("Selected "),i=b("span"),f=M(m[1]),a=M(` + or compatible`),h=H(),n=b("p"),n.textContent=l,o=H(),_=b("div"),A(v.$$.fragment),V=H(),$=b("p"),$.innerHTML=G,this.h()},l(u){t=x(u,"H1",{class:!0,"data-svelte-h":!0}),E(t)!=="svelte-idj4d1"&&(t.textContent=r),e=L(u),s=x(u,"H2",{class:!0});var d=P(s);c=q(d,"Selected "),i=x(d,"SPAN",{class:!0});var D=P(i);f=q(D,m[1]),D.forEach(p),a=q(d,` + or compatible`),d.forEach(p),h=L(u),n=x(u,"P",{class:!0,"data-svelte-h":!0}),E(n)!=="svelte-azqad0"&&(n.textContent=l),o=L(u),_=x(u,"DIV",{class:!0});var N=P(_);O(v.$$.fragment,N),N.forEach(p),V=L(u),$=x(u,"P",{class:!0,"data-svelte-h":!0}),E($)!=="svelte-ciqt58"&&($.innerHTML=G),this.h()},h(){k(t,"class","text-center text-4xl font-extralight mb-16"),k(i,"class","text-red-berry-900 dark:text-white font-semibold"),k(s,"class","text-center dark:text-neutral-200 text-2xl font-light mb-4"),k(n,"class","text-sm text-neutral-500 text-center"),k(_,"class","block my-6 text-center"),k($,"class","text-neutral-500 text-center")},m(u,d){g(u,t,d),g(u,e,d),g(u,s,d),y(s,c),y(s,i),y(i,f),y(s,a),g(u,h,d),g(u,n,d),g(u,o,d),g(u,_,d),U(v,_,null),g(u,V,d),g(u,$,d),I=!0},p(u,d){(!I||d&2)&&et(f,u[1]);const D={};d&2&&(D.text="Download for "+u[1]),d&1&&(D.icon=u[0]),d&4&&(D.href=u[2]),v.$set(D)},i(u){I||(w(v.$$.fragment,u),I=!0)},o(u){C(v.$$.fragment,u),I=!1},d(u){u&&(p(t),p(e),p(s),p(h),p(n),p(o),p(_),p(V),p($)),z(v)}}}function ot(m){let t,r="Please select the package you want from the links below",e,s,c='Or visit our releases page on GitHub.';return{c(){t=b("h1"),t.textContent=r,e=H(),s=b("p"),s.innerHTML=c,this.h()},l(i){t=x(i,"H1",{class:!0,"data-svelte-h":!0}),E(t)!=="svelte-1ccltz"&&(t.textContent=r),e=L(i),s=x(i,"P",{class:!0,"data-svelte-h":!0}),E(s)!=="svelte-14mxf5g"&&(s.innerHTML=c),this.h()},h(){k(t,"class","text-4xl font-extralight text-center"),k(s,"class","text-neutral-500 text-center mt-4")},m(i,f){g(i,t,f),g(i,e,f),g(i,s,f)},p:B,i:B,o:B,d(i){i&&(p(t),p(e),p(s))}}}function J(m){let t,r,e="Available for",s,c,i,f=R(m[3]),a=[];for(let n=0;nC(a[n],1,1,()=>{a[n]=null});return{c(){t=b("div"),r=b("div"),r.textContent=e,s=H(),c=b("div");for(let n=0;n{f[o]=null}),T(),e=f[r],e?e.p(n,l):(e=f[r]=i[r](n),e.c()),w(e,1),e.m(t,s)),n[3]?h?(h.p(n,l),l&8&&w(h,1)):(h=J(n),h.c(),w(h,1),h.m(t,null)):h&&(j(),C(h,1,1,()=>{h=null}),T())},i(n){c||(w(e),w(h),c=!0)},o(n){C(e),C(h),c=!1},d(n){n&&p(t),f[r].d(),h&&h.d()}}}function at(m,t,r){let e="unknown",s="unknown",c="unknown",i="",f=[],a=l=>{for(let o in l)for(let _ in l[o])l[o][_]&&(r(1,c=l[o][_].name),r(2,i=l[o][_].link),f.push({highlight:!0,icon:o,text:c,href:i}));return f};const h=()=>{let l,o;const _=new URLSearchParams(window.location.search);return l=_.get("os"),o=_.get("arch"),!l||!o?!1:{os:l,arch:o}};let n=()=>{const l=h();l&&(r(0,s=l.os),r(4,e=l.arch),S[s][e]&&(r(1,c=S[s][e].name),r(2,i=S[s][e].link)),i&&(window.location=i))};return X(()=>{n(),r(3,f=a(S))}),m.$$.update=()=>{var l,o,_,v;m.$$.dirty&17&&r(1,c=((o=(l=S[s])==null?void 0:l[e])==null?void 0:o.name)??""),m.$$.dirty&17&&r(2,i=((v=(_=S[s])==null?void 0:_[e])==null?void 0:v.link)??"")},[s,c,i,f,e]}class mt extends Y{constructor(t){super(),Z(this,t,at,st,W,{})}}export{mt as component}; diff --git a/_app/immutable/nodes/3.CCMn4aAO.js b/_app/immutable/nodes/3.CtwBHwWF.js similarity index 87% rename from _app/immutable/nodes/3.CCMn4aAO.js rename to _app/immutable/nodes/3.CtwBHwWF.js index c0ea0d42..499181ed 100644 --- a/_app/immutable/nodes/3.CCMn4aAO.js +++ b/_app/immutable/nodes/3.CtwBHwWF.js @@ -1 +1 @@ -import{s as r,n as a}from"../chunks/scheduler.CZFVEtgY.js";import{S as i,i as l,e as c,c as m,g as h,a as d,b as p,d as u}from"../chunks/index.DjvOVdNM.js";function f(n){let t,s="About page";return{c(){t=c("div"),t.textContent=s,this.h()},l(e){t=m(e,"DIV",{class:!0,"data-svelte-h":!0}),h(t)!=="svelte-1rqhm7o"&&(t.textContent=s),this.h()},h(){d(t,"class","container")},m(e,o){p(e,t,o)},p:a,i:a,o:a,d(e){e&&u(t)}}}class x extends i{constructor(t){super(),l(this,t,null,f,r,{})}}export{x as component}; +import{s as r,n as a}from"../chunks/scheduler.CZFVEtgY.js";import{S as i,i as l,e as c,c as m,g as h,a as d,b as p,d as u}from"../chunks/index.CNd5CZrX.js";function f(n){let t,s="About page";return{c(){t=c("div"),t.textContent=s,this.h()},l(e){t=m(e,"DIV",{class:!0,"data-svelte-h":!0}),h(t)!=="svelte-1rqhm7o"&&(t.textContent=s),this.h()},h(){d(t,"class","container")},m(e,o){p(e,t,o)},p:a,i:a,o:a,d(e){e&&u(t)}}}class x extends i{constructor(t){super(),l(this,t,null,f,r,{})}}export{x as component}; diff --git a/_app/immutable/nodes/4.C3AAa8uA.js b/_app/immutable/nodes/4.DuQyjg-5.js similarity index 82% rename from _app/immutable/nodes/4.C3AAa8uA.js rename to _app/immutable/nodes/4.DuQyjg-5.js index 9972abee..86d2dbf3 100644 --- a/_app/immutable/nodes/4.C3AAa8uA.js +++ b/_app/immutable/nodes/4.DuQyjg-5.js @@ -1 +1 @@ -import{f as i}from"../chunks/28.D5QBwc6E.js";import{s as m}from"../chunks/scheduler.CZFVEtgY.js";import{S as u,i as c,o as g,p as f,q as l,l as _,t as d,r as P}from"../chunks/index.DjvOVdNM.js";import{B as b}from"../chunks/Blog.Ok4J1JLa.js";const p=1,N=10;async function S(){const{posts:a,totalPages:e}=await i(p,N);return{props:{posts:a,pageNum:p,totalPages:e}}}const $=!0,B=Object.freeze(Object.defineProperty({__proto__:null,load:S,prerender:$},Symbol.toStringTag,{value:"Module"}));function y(a){let e,o;return e=new b({props:{data:a[0],pageNum:a[1],totalPages:a[2]}}),{c(){g(e.$$.fragment)},l(t){f(e.$$.fragment,t)},m(t,n){l(e,t,n),o=!0},p(t,[n]){const r={};n&1&&(r.data=t[0]),n&2&&(r.pageNum=t[1]),n&4&&(r.totalPages=t[2]),e.$set(r)},i(t){o||(_(e.$$.fragment,t),o=!0)},o(t){d(e.$$.fragment,t),o=!1},d(t){P(e,t)}}}function h(a,e,o){let{data:t}=e,n,r;return a.$$set=s=>{"data"in s&&o(0,t=s.data)},a.$$.update=()=>{a.$$.dirty&1&&o(1,n=t.props.pageNum),a.$$.dirty&1&&o(2,r=t.props.totalPages)},[t,n,r]}class M extends u{constructor(e){super(),c(this,e,h,y,m,{data:0})}}export{M as component,B as universal}; +import{f as i}from"../chunks/28.BXboE3l1.js";import{s as m}from"../chunks/scheduler.CZFVEtgY.js";import{S as u,i as c,o as g,p as f,q as l,l as _,t as d,r as P}from"../chunks/index.CNd5CZrX.js";import{B as b}from"../chunks/Blog.Sphi6VKa.js";const p=1,N=10;async function S(){const{posts:a,totalPages:e}=await i(p,N);return{props:{posts:a,pageNum:p,totalPages:e}}}const $=!0,B=Object.freeze(Object.defineProperty({__proto__:null,load:S,prerender:$},Symbol.toStringTag,{value:"Module"}));function y(a){let e,o;return e=new b({props:{data:a[0],pageNum:a[1],totalPages:a[2]}}),{c(){g(e.$$.fragment)},l(t){f(e.$$.fragment,t)},m(t,n){l(e,t,n),o=!0},p(t,[n]){const r={};n&1&&(r.data=t[0]),n&2&&(r.pageNum=t[1]),n&4&&(r.totalPages=t[2]),e.$set(r)},i(t){o||(_(e.$$.fragment,t),o=!0)},o(t){d(e.$$.fragment,t),o=!1},d(t){P(e,t)}}}function h(a,e,o){let{data:t}=e,n,r;return a.$$set=s=>{"data"in s&&o(0,t=s.data)},a.$$.update=()=>{a.$$.dirty&1&&o(1,n=t.props.pageNum),a.$$.dirty&1&&o(2,r=t.props.totalPages)},[t,n,r]}class M extends u{constructor(e){super(),c(this,e,h,y,m,{data:0})}}export{M as component,B as universal}; diff --git a/_app/immutable/nodes/5.BP5UJ69h.js b/_app/immutable/nodes/5.BP5UJ69h.js deleted file mode 100644 index 14148700..00000000 --- a/_app/immutable/nodes/5.BP5UJ69h.js +++ /dev/null @@ -1 +0,0 @@ -import{P as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/5.D4ge11wY.js b/_app/immutable/nodes/5.D4ge11wY.js new file mode 100644 index 00000000..e5a6e617 --- /dev/null +++ b/_app/immutable/nodes/5.D4ge11wY.js @@ -0,0 +1 @@ +import{P as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/6.BR8RjYzT.js b/_app/immutable/nodes/6.ZUhNexrD.js similarity index 84% rename from _app/immutable/nodes/6.BR8RjYzT.js rename to _app/immutable/nodes/6.ZUhNexrD.js index 95858bab..a6d0bc12 100644 --- a/_app/immutable/nodes/6.BR8RjYzT.js +++ b/_app/immutable/nodes/6.ZUhNexrD.js @@ -1 +1 @@ -import{f as i}from"../chunks/28.D5QBwc6E.js";import{s as m}from"../chunks/scheduler.CZFVEtgY.js";import{S as g,i as u,o as c,p as f,q as l,l as _,t as d,r as P}from"../chunks/index.DjvOVdNM.js";import{B as y}from"../chunks/Blog.Ok4J1JLa.js";let s=10;async function $({params:a}){const e=parseInt(a.page,s)||1,{posts:o,totalPages:t}=await i(e,s);return{props:{posts:o,pageNum:e,totalPages:t}}}async function b(){const{_:a,totalPages:e}=await i(1,s);return Array.from({length:e},(t,n)=>({page:`${n+1}`}))}const N=!0,B=Object.freeze(Object.defineProperty({__proto__:null,entries:b,load:$,prerender:N},Symbol.toStringTag,{value:"Module"}));function S(a){let e,o;return e=new y({props:{data:a[0],pageNum:a[1],totalPages:a[2]}}),{c(){c(e.$$.fragment)},l(t){f(e.$$.fragment,t)},m(t,n){l(e,t,n),o=!0},p(t,[n]){const r={};n&1&&(r.data=t[0]),n&2&&(r.pageNum=t[1]),n&4&&(r.totalPages=t[2]),e.$set(r)},i(t){o||(_(e.$$.fragment,t),o=!0)},o(t){d(e.$$.fragment,t),o=!1},d(t){P(e,t)}}}function h(a,e,o){let{data:t}=e,n,r;return a.$$set=p=>{"data"in p&&o(0,t=p.data)},a.$$.update=()=>{a.$$.dirty&1&&o(1,n=t.props.pageNum),a.$$.dirty&1&&o(2,r=t.props.totalPages)},[t,n,r]}class M extends g{constructor(e){super(),u(this,e,h,S,m,{data:0})}}export{M as component,B as universal}; +import{f as i}from"../chunks/28.BXboE3l1.js";import{s as m}from"../chunks/scheduler.CZFVEtgY.js";import{S as g,i as u,o as c,p as f,q as l,l as _,t as d,r as P}from"../chunks/index.CNd5CZrX.js";import{B as y}from"../chunks/Blog.Sphi6VKa.js";let s=10;async function $({params:a}){const e=parseInt(a.page,s)||1,{posts:o,totalPages:t}=await i(e,s);return{props:{posts:o,pageNum:e,totalPages:t}}}async function b(){const{_:a,totalPages:e}=await i(1,s);return Array.from({length:e},(t,n)=>({page:`${n+1}`}))}const N=!0,B=Object.freeze(Object.defineProperty({__proto__:null,entries:b,load:$,prerender:N},Symbol.toStringTag,{value:"Module"}));function S(a){let e,o;return e=new y({props:{data:a[0],pageNum:a[1],totalPages:a[2]}}),{c(){c(e.$$.fragment)},l(t){f(e.$$.fragment,t)},m(t,n){l(e,t,n),o=!0},p(t,[n]){const r={};n&1&&(r.data=t[0]),n&2&&(r.pageNum=t[1]),n&4&&(r.totalPages=t[2]),e.$set(r)},i(t){o||(_(e.$$.fragment,t),o=!0)},o(t){d(e.$$.fragment,t),o=!1},d(t){P(e,t)}}}function h(a,e,o){let{data:t}=e,n,r;return a.$$set=p=>{"data"in p&&o(0,t=p.data)},a.$$.update=()=>{a.$$.dirty&1&&o(1,n=t.props.pageNum),a.$$.dirty&1&&o(2,r=t.props.totalPages)},[t,n,r]}class M extends g{constructor(e){super(),u(this,e,h,S,m,{data:0})}}export{M as component,B as universal}; diff --git a/_app/immutable/nodes/7.B2r3wU7E.js b/_app/immutable/nodes/7.B2r3wU7E.js new file mode 100644 index 00000000..2df53707 --- /dev/null +++ b/_app/immutable/nodes/7.B2r3wU7E.js @@ -0,0 +1 @@ +import{d as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/7.CogwfLtn.js b/_app/immutable/nodes/7.CogwfLtn.js deleted file mode 100644 index 9a5d523c..00000000 --- a/_app/immutable/nodes/7.CogwfLtn.js +++ /dev/null @@ -1 +0,0 @@ -import{e as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/8.BOy55Jow.js b/_app/immutable/nodes/8.BOy55Jow.js deleted file mode 100644 index de192cd8..00000000 --- a/_app/immutable/nodes/8.BOy55Jow.js +++ /dev/null @@ -1 +0,0 @@ -import{h as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/8.CKuYnlDs.js b/_app/immutable/nodes/8.CKuYnlDs.js new file mode 100644 index 00000000..405d2ca0 --- /dev/null +++ b/_app/immutable/nodes/8.CKuYnlDs.js @@ -0,0 +1 @@ +import{e as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/immutable/nodes/9.09u8HEQO.js b/_app/immutable/nodes/9.09u8HEQO.js deleted file mode 100644 index 4dd56464..00000000 --- a/_app/immutable/nodes/9.09u8HEQO.js +++ /dev/null @@ -1 +0,0 @@ -import{i as m}from"../chunks/28.D5QBwc6E.js";export{m as component}; diff --git a/_app/immutable/nodes/9.FcUVz71X.js b/_app/immutable/nodes/9.FcUVz71X.js new file mode 100644 index 00000000..c6536a8f --- /dev/null +++ b/_app/immutable/nodes/9.FcUVz71X.js @@ -0,0 +1 @@ +import{h as m}from"../chunks/28.BXboE3l1.js";export{m as component}; diff --git a/_app/version.json b/_app/version.json index 049da3d4..2988104e 100644 --- a/_app/version.json +++ b/_app/version.json @@ -1 +1 @@ -{"version":"1723080923855"} \ No newline at end of file +{"version":"1724818045104"} \ No newline at end of file diff --git a/about/index.html b/about/index.html index 4cd405c5..c3dbab6d 100644 --- a/about/index.html +++ b/about/index.html @@ -3,25 +3,26 @@ + + - - + + - - + + - - + + - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - - - - - + - - + + - - + + - - + + - - - - - + + + + + + + - - - + - - + + - + - - + + - - + + - - - - - + + + + + + + - - - - + : document.documentElement.classList.remove("dark"); -

    The Python IDE that scientists and data analysts deserve

    Carefully designed by a dedicated team of scientists to meet our needs

    The Python IDE that scientists and data analysts deserve

    Designed by the community, for the community

    Get the ease of use of Jupyter along with many advanced features found in PyCharm and VSCode in a single programming environment

    Interactive programming everywhere

    The way scientists do programming, the main one we support

    Data analysts, scientists and engineers require a lot of experimentation, quick feedback and short iteration cycles while programming. And Spyder was built from the ground up around that workflow.

    Seamless integration with the PyData ecosystem

    The perfect fit to work with the most important libraries for scientific programming

    Spyder comes with out-of-the-box integration with Matplotlib, Pandas and many other libraries to provide a pleasant experience when using them.

    View all your plots per console in a single place
    View all your plots per console in a single place

    It grows with you

    The better you’re at programming, the more impactful your research will be

    New scientific discoveries critically depend on software these days. Spyder helps you to move swiftly from simple scripts to structured programming endeavors without losing interactivity. It also allows you to use professional software development tools when you’re ready for them.

    Make use of advanced developer tools (e.g. Black) to write better code
    Make use of advanced developer tools (e.g. Black) to write better code

    Zero setup process

    Install with a single click and be productive right away

    The PyData ecosystem is known for being quite difficult to setup and easy to break. Spyder comes with its own set of installers to minimize the risk of facing those issues as much as possible.

    Get the ease of use of Jupyter along with many advanced features found in PyCharm and VSCode in a single programming environment

    Interactive programming built in

    Works the way scientists do

    Data analysts, scientists and engineers require a lot of experimentation, quick feedback and short iteration cycles while programming. Spyder was built from the ground up around that workflow.

    Seamless integration with the PyData ecosystem

    A perfect fit with the most popular scientific libraries

    Spyder includes out of the box integration with Matplotlib, Pandas and many other libraries to help you work more efficiently with them.

    Ready to take you to the next level

    Make a bigger impact with reusable research

    The software you write is critical for new scientific discoveries and engineering solutions. Spyder helps you move from single scripts to structured, reusable modules and packages without losing interactivity. It also includes powerful software development tools whenever you’re ready for them.

    Simple install and update process

    Install with a single click and be productive right away

    Spyder offers standalone installers to make it as easy and reliable as possible to get started and keep it up to date.

    Sponsors

    Spyder is funded thanks to the generous support of

    and the donations we have received from our users
    -around the world through Open Collective:

    Donate to our project

    Spyder is funded thanks to the generous support of

    and the donations we have received from our users around the world through Open Collective:

    Donate to our project
    + ">