From f8be762e011834e3a335a3d8a1652eb759397b1f Mon Sep 17 00:00:00 2001 From: naic-bot Date: Sat, 2 Dec 2023 11:54:02 +0000 Subject: [PATCH] generated using sphinx-build --- .nojekyll | 0 _build/doctrees/blender-project1.doctree | Bin 0 -> 2568 bytes _build/doctrees/blender-project2.doctree | Bin 0 -> 2568 bytes _build/doctrees/compression.doctree | Bin 0 -> 3076 bytes _build/doctrees/environment.pickle | Bin 0 -> 334423 bytes _build/doctrees/index.doctree | Bin 0 -> 6011 bytes _build/doctrees/introduction.doctree | Bin 0 -> 6591 bytes _build/doctrees/moving-data.doctree | Bin 0 -> 4298 bytes _build/doctrees/paraview-project1.doctree | Bin 0 -> 2569 bytes _build/doctrees/paraview-project2.doctree | Bin 0 -> 2569 bytes _build/doctrees/paraview-project3.doctree | Bin 0 -> 2569 bytes _build/doctrees/setup.doctree | Bin 0 -> 276061 bytes _build/doctrees/storage.doctree | Bin 0 -> 3090 bytes _build/doctrees/tools.doctree | Bin 0 -> 3084 bytes _build/doctrees/visit-project1.doctree | Bin 0 -> 2566 bytes _build/doctrees/wrangling.doctree | Bin 0 -> 2581 bytes docs/.buildinfo | 4 + docs/.nojekyll | 0 docs/_sources/blender-project1.rst.txt | 4 + docs/_sources/blender-project2.rst.txt | 4 + docs/_sources/compression.rst.txt | 7 + docs/_sources/index.rst.txt | 54 ++ docs/_sources/introduction.rst.txt | 25 + docs/_sources/moving-data.rst.txt | 10 + docs/_sources/paraview-project1.rst.txt | 4 + docs/_sources/paraview-project2.rst.txt | 5 + docs/_sources/paraview-project3.rst.txt | 4 + docs/_sources/setup.rst.txt | 10 + docs/_sources/storage.rst.txt | 7 + docs/_sources/tools.rst.txt | 7 + docs/_sources/visit-project1.rst.txt | 4 + docs/_sources/wrangling.rst.txt | 6 + docs/_static/basic.css | 925 ++++++++++++++++++++ docs/_static/custom.css | 71 ++ docs/_static/debug.css | 69 ++ docs/_static/doctools.js | 156 ++++ docs/_static/documentation_options.js | 13 + docs/_static/file.png | Bin 0 -> 286 bytes docs/_static/language_data.js | 199 +++++ docs/_static/minus.png | Bin 0 -> 90 bytes docs/_static/plus.png | Bin 0 -> 90 bytes docs/_static/pygments.css | 258 ++++++ docs/_static/scripts/furo-extensions.js | 0 docs/_static/scripts/furo.js | 3 + docs/_static/scripts/furo.js.LICENSE.txt | 7 + docs/_static/scripts/furo.js.map | 1 + docs/_static/searchtools.js | 574 ++++++++++++ docs/_static/skeleton.css | 296 +++++++ docs/_static/sphinx_highlight.js | 154 ++++ docs/_static/styles/furo-extensions.css | 2 + docs/_static/styles/furo-extensions.css.map | 1 + docs/_static/styles/furo.css | 2 + docs/_static/styles/furo.css.map | 1 + docs/blender-project1.html | 277 ++++++ docs/blender-project2.html | 277 ++++++ docs/compression.html | 302 +++++++ docs/genindex.html | 257 ++++++ docs/index.html | 320 +++++++ docs/introduction.html | 328 +++++++ docs/moving-data.html | 306 +++++++ docs/objects.inv | Bin 0 -> 461 bytes docs/paraview-project1.html | 277 ++++++ docs/paraview-project2.html | 277 ++++++ docs/paraview-project3.html | 277 ++++++ docs/search.html | 265 ++++++ docs/searchindex.js | 1 + docs/setup.html | 304 +++++++ docs/storage.html | 302 +++++++ docs/tools.html | 302 +++++++ docs/visit-project1.html | 269 ++++++ docs/wrangling.html | 277 ++++++ 71 files changed, 7505 insertions(+) create mode 100644 .nojekyll create mode 100644 _build/doctrees/blender-project1.doctree create mode 100644 _build/doctrees/blender-project2.doctree create mode 100644 _build/doctrees/compression.doctree create mode 100644 _build/doctrees/environment.pickle create mode 100644 _build/doctrees/index.doctree create mode 100644 _build/doctrees/introduction.doctree create mode 100644 _build/doctrees/moving-data.doctree create mode 100644 _build/doctrees/paraview-project1.doctree create mode 100644 _build/doctrees/paraview-project2.doctree create mode 100644 _build/doctrees/paraview-project3.doctree create mode 100644 _build/doctrees/setup.doctree create mode 100644 _build/doctrees/storage.doctree create mode 100644 _build/doctrees/tools.doctree create mode 100644 _build/doctrees/visit-project1.doctree create mode 100644 _build/doctrees/wrangling.doctree create mode 100644 docs/.buildinfo create mode 100644 docs/.nojekyll create mode 100644 docs/_sources/blender-project1.rst.txt create mode 100644 docs/_sources/blender-project2.rst.txt create mode 100644 docs/_sources/compression.rst.txt create mode 100644 docs/_sources/index.rst.txt create mode 100644 docs/_sources/introduction.rst.txt create mode 100644 docs/_sources/moving-data.rst.txt create mode 100644 docs/_sources/paraview-project1.rst.txt create mode 100644 docs/_sources/paraview-project2.rst.txt create mode 100644 docs/_sources/paraview-project3.rst.txt create mode 100644 docs/_sources/setup.rst.txt create mode 100644 docs/_sources/storage.rst.txt create mode 100644 docs/_sources/tools.rst.txt create mode 100644 docs/_sources/visit-project1.rst.txt create mode 100644 docs/_sources/wrangling.rst.txt create mode 100644 docs/_static/basic.css create mode 100644 docs/_static/custom.css create mode 100644 docs/_static/debug.css create mode 100644 docs/_static/doctools.js create mode 100644 docs/_static/documentation_options.js create mode 100644 docs/_static/file.png create mode 100644 docs/_static/language_data.js create mode 100644 docs/_static/minus.png create mode 100644 docs/_static/plus.png create mode 100644 docs/_static/pygments.css create mode 100644 docs/_static/scripts/furo-extensions.js create mode 100644 docs/_static/scripts/furo.js create mode 100644 docs/_static/scripts/furo.js.LICENSE.txt create mode 100644 docs/_static/scripts/furo.js.map create mode 100644 docs/_static/searchtools.js create mode 100644 docs/_static/skeleton.css create mode 100644 docs/_static/sphinx_highlight.js create mode 100644 docs/_static/styles/furo-extensions.css create mode 100644 docs/_static/styles/furo-extensions.css.map create mode 100644 docs/_static/styles/furo.css create mode 100644 docs/_static/styles/furo.css.map create mode 100644 docs/blender-project1.html create mode 100644 docs/blender-project2.html create mode 100644 docs/compression.html create mode 100644 docs/genindex.html create mode 100644 docs/index.html create mode 100644 docs/introduction.html create mode 100644 docs/moving-data.html create mode 100644 docs/objects.inv create mode 100644 docs/paraview-project1.html create mode 100644 docs/paraview-project2.html create mode 100644 docs/paraview-project3.html create mode 100644 docs/search.html create mode 100644 docs/searchindex.js create mode 100644 docs/setup.html create mode 100644 docs/storage.html create mode 100644 docs/tools.html create mode 100644 docs/visit-project1.html create mode 100644 docs/wrangling.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/_build/doctrees/blender-project1.doctree b/_build/doctrees/blender-project1.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9d773a22d8f02149fa5f55bde36d70c5e6548654 GIT binary patch literal 2568 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 literal 0 HcmV?d00001 diff --git a/_build/doctrees/environment.pickle b/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..1ab211b4605de342f4505a0de2b92f2f0d7428f7 GIT binary patch literal 334423 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�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 literal 0 HcmV?d00001 diff --git a/_build/doctrees/introduction.doctree b/_build/doctrees/introduction.doctree new file mode 100644 index 0000000000000000000000000000000000000000..881bd637a78dd68965934be119cdaadc02032a3e GIT binary patch literal 6591 zcmeHM&5s;M6<>S3yPo~twH=6JI~}3mweZYx;D92cV3~uB#Rh>DbHFq;-8EC??e1!- zs&{rQSu%%6tW-jXG)K-zks@*6j1d1sq)3tY3sA&g!0%Om%*@(ePb3f=VtIC_Ust_) zAHVleZ=Wsw;V-W*_8Ain%G>#aKl}$}?MjRNnk``Lx_~9nD5Y6*}Uj zTfmA)$RyT0D<73^la^bVm|neq#qh{Vm9^W&l2{fikIFsKaZ6U(gipP4>-RFNRa{hi zXdRYac)*Y8{8Mi~EGv1IbB5DxDRx{ZY{eCeZn>87z+FgW#><1E&)h1rR?B{2p&eu2}RFD%^40xNis!eKfKG&h{-NCXMXViU2P-}0}IR02N+Y7oTCGLV>U*K%zFJI-aq zl4KkRY)m+QnZO*5wTce8<#8{-IVsD=L9W$fIMoneY5clIY#s+Jh~;1)qav~6KxRSC z^+4%VX2XCV=ZVtHDm|`*U>QrsMw(vmfH>j5)ddf@$$2EbEMSnRN-Q@!I4C2bLRx_Cq!<1RBVUGZYoblO6s33=*!8<4n_kQ*g&YHsS z14N_-DD;q5#y=$;Gl!;E`iOh&D_Ff024BIdjj%5Pt2$L9PwrQF@<3dtY%JbH3Knl6 z%YOr(xAD1w&rPIP@h#C6*TgO4zr`lKA`h-rHE2>qwi|+b^Pw2~DDV+Lp)!+n->b3x z>U9%gzdygQR0H0vmV2R>A#AUe?T2@{Mjjp^^rVRjgUpI5frQA?JmE-t3du-~B31`+ z#*scq1=Nn&G}45q`%ki*XnZig#*KSc8qIx~x{xV5Q_+J5@BiTacY@n7m4*Rll$+x~ zrVM#Vz$&#ut*yi_s~qHBy>TLT|I3TL3bB9jDhU3((XE0aAj@0Gy6Yn`?jr4WGbW=h zyw#masU>Sb?cT&n4^3L>{W`PqJuIEVJxNx#6D^d^!2PAWY81qZP(($PT8Ic-tcgv2Kfg_y2q4@1b{;5A8E_U#y9oX+`LIhq?2-?s;ByIYpY!mU zkRk7!0hucg(KrmbCCG4eAQ>M>+k)mLZzm@D^ZX_v(|j@oo81}MJe$CVp}#Wde|=ui zJf}7`^KIQkMD&EzIjR(W(SF{5Dc8&b@-kY>E+GVf^Oy zIun%S`!hhf_mHk6)#YTIBb}i+M;ms88i9I|H4Zc_PUqh+G3Gz!Hzq;%^C{?lZ3eo3 zoPusvmor>457DgWfFLxXf(|7DQ=}>3mTq3S89^PO5w|U92$CuCTxq(bRw=Vgi>mAVr0=qQ=yE5xG_MeJ_J=!uCXwM7{U~8(eSZ}V=esD5rBTmy#^$d$s zV8zVf<;`_F7!kMJW!y3|llV#+N|L*9t-Nt&$-R0&;;eM z9kQ%96d)GE7I)EbOBozfq@8vwG|+z15tnZH1C|t+vNUrgv31}&L)0QaA;A6)Ji(1c zi;Rc0>X?wC0gtQoW1$l~ZCDkBG@PNgIBp4Y>2c|H2TECLNT*)jKj$`RCY2RwcuY-7 z3CboeH8Kxz_oq>p0n0Zk3L?u>LMkRTOq^?(=1wYOEK>kLmam`Vw&#ySfM#fLFvHg5hta}-?&YgVaO5kEK<}+m9A6R zLHD~|Bk}#}?8}gAt#nvTaWw2qqDHoKTdJ_LT$VhS(p@|C<`j#^-#fRk;5IA16B(M_ zS7%?G+U&MT2O!J{m?(ixrQ5*FVp!k?0E@?XK9Av{yQF!fbR5P!#|Q++NPy$OEn_q` zfSRy~jDb+JD#xW*cAKoQDx8qqc?nQ$#6_BiE%0DiPoS}i#;}PPZh4A_G`W95$_+1K z6&|Mqscj6al;Pp@PLGnvhG^a;hFHWaL@K7S5frJVTxkLV!L<%$3_`$17nX0-%ff-g zt&b*+uhBOgVz{PYhlhz<441EA%Gy2xqB|5-Ku$IU5dHA0{L%Iex0&-igi)xhprytk z>qJ2p&O-_g_jO@yZr<772if%Uu@x%oDLvdT-4$Bt1;EPCa@<7`ahT|W-hKPq-+?_h z^&mRMo+uOc-)z|X@&(8qa@~{M4*VGi`+Z^41c!Aj>m!O{E6V#9-8En`4cqW+6$njE z2sv@vW}I1e911xU2|mE@g+vkb*A2?44S!W2t_=)z$v;<*p&u4jro9$nyvI-%bro;0 zvNs`i9~L=|pjovaK-YQT1n5x_-CQP#VV6>cDf*|@`8E}Yu__vAynI*!Gijg42;nij zD>%0}~FfHfIZY3;-<^6ZGl)b3)HPB?*VTV}CDaM;k& z^bY9>z}bONfR@GR6R?SCDE$-(Z-!b8u0aO3LHn>wA%vMX=qp65zVAKWMUX$El(RuHZ-EI<(psMjD*^^(W%ViTLF~( zKJhHX=Y`vt_PG~gBa+C9qy+@4C=}Ywx=Pz=O0^C)07lZjN?I8CrI$|;+tr;Jj-BRI zziD@dKeDv8R2HtB=2gEzNkrm_R6%K_bZe2qt=9j^0>x+LPEG#^X8N%F34#dsUW6n5 pq+pQqssr2nGecf$$=>s8GK-QTM%b$%Iej&z6j^5zs`f>{_is%nqniK# literal 0 HcmV?d00001 diff --git a/_build/doctrees/moving-data.doctree b/_build/doctrees/moving-data.doctree new file mode 100644 index 0000000000000000000000000000000000000000..05f257715adc3d4fc466301b8a8d6afdc85db502 GIT binary patch literal 4298 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 E1?-UjRsaA1 literal 0 HcmV?d00001 diff --git a/_build/doctrees/setup.doctree b/_build/doctrees/setup.doctree new file mode 100644 index 0000000000000000000000000000000000000000..56799e17f8cbea98dd5a33d2717babd399c55b25 GIT binary patch literal 276061 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 z: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 FKLNPi?I8dF literal 0 HcmV?d00001 diff --git a/_build/doctrees/storage.doctree b/_build/doctrees/storage.doctree new file mode 100644 index 0000000000000000000000000000000000000000..ccafe27fccf30c1382bebcc9cb35f943f9206dfb GIT binary patch literal 3090 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 Dv#|q< literal 0 HcmV?d00001 diff --git a/docs/.buildinfo b/docs/.buildinfo new file mode 100644 index 0000000..a51dfe0 --- /dev/null +++ b/docs/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 6a5b82aad8fd7776cc27a17ede1776fd +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/_sources/blender-project1.rst.txt b/docs/_sources/blender-project1.rst.txt new file mode 100644 index 0000000..1a4285f --- /dev/null +++ b/docs/_sources/blender-project1.rst.txt @@ -0,0 +1,4 @@ +Project 1 +=================== + +text here \ No newline at end of file diff --git a/docs/_sources/blender-project2.rst.txt b/docs/_sources/blender-project2.rst.txt new file mode 100644 index 0000000..e9c3389 --- /dev/null +++ b/docs/_sources/blender-project2.rst.txt @@ -0,0 +1,4 @@ +Project 2 +=================== + +text here \ No newline at end of file diff --git a/docs/_sources/compression.rst.txt b/docs/_sources/compression.rst.txt new file mode 100644 index 0000000..8b47f25 --- /dev/null +++ b/docs/_sources/compression.rst.txt @@ -0,0 +1,7 @@ +Data Compression Techniques +============================= + +Data compression +---------------------------- +.. note:: + TODO: Add information about data compression for visualization purposes. \ No newline at end of file diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt new file mode 100644 index 0000000..41df884 --- /dev/null +++ b/docs/_sources/index.rst.txt @@ -0,0 +1,54 @@ +HPC Visualization +============================== + +This course aims to provide a concise introduction to data visualization by leveraging the power of the NAIC infrastructure. With this training material, we intend to support researchers who wants to perform exploratory data analysis and visualization on large datasets. Here, we will demonstrate the use of sophisticated visualization tools/techniques. The example materials will serve as a reference template the users can adapt in their projects. + +.. note:: + TODO: Add a featured image here. + +.. toctree:: + :maxdepth: 1 + + introduction + setup + tools + +.. toctree:: + :caption: Data Wrangling for Visualization + :hidden: + + moving-data + storage + compression + wrangling + +.. toctree:: + :caption: Visualization Projects: Paraview + :hidden: + + paraview-project1.rst + paraview-project2.rst + paraview-project3.rst + +.. toctree:: + :caption: Visualization Projects: Blender + :hidden: + + blender-project1.rst + blender-project2.rst + +.. toctree:: + :caption: Visualization Projects: VisIt + :hidden: + + visit-project1.rst + +See also +-------- +.. note:: + TODO: Add relevant materials. + +Credits +------- +.. note:: + TODO: Add credits \ No newline at end of file diff --git a/docs/_sources/introduction.rst.txt b/docs/_sources/introduction.rst.txt new file mode 100644 index 0000000..ad03fa6 --- /dev/null +++ b/docs/_sources/introduction.rst.txt @@ -0,0 +1,25 @@ +Introduction +=============== +In the modern research landscape, the volume of data that researchers typically handle has skyrocketed. In many projects, this has introduced a difficulty in performing exploratory data analysis. This is true especially in locally owned resource limited computing infrastructures. With a combination of powerful, shared, and scalable computing infrastructure like NAIC (Norwegian AI Cloud) and using advanced visualization tools, the problem can be solved. We intend this training material for researchers who plan to use the NAIC infrastructure for their large data visualization tasks. + +Why use NAIC for Visualization? +-------------------------------- +Here, we discuss some examples to showcase the need for HPC visualization. + +.. note:: + TODO: Add a featured image here. + +How does this work? +-------------------- +.. note:: + TODO: Add basic information regarding parallel processing and remote visualization. + +Who gets the benefit? +----------------------- +.. note:: + TODO: Add a list/image representing the beneficiary domain/research groups. Connect the same with relevant example list as well. + +What data types are covered in examples? +--------------------------------------------- +.. note:: + TODO: Add an image link map that shows a summary of different types of supported datatypes. It should be linked to examples discussing the selected datatype. \ No newline at end of file diff --git a/docs/_sources/moving-data.rst.txt b/docs/_sources/moving-data.rst.txt new file mode 100644 index 0000000..89436ba --- /dev/null +++ b/docs/_sources/moving-data.rst.txt @@ -0,0 +1,10 @@ +Moving Your Data +=================================== + +Moving Your Data +----------------- +.. warning:: + Please note that there are rules and laws you need to abide to when storing sensitive data. More details on this topic can be read from `this link. `_ + +.. note:: + TODO: Add information about data movement between machines. \ No newline at end of file diff --git a/docs/_sources/paraview-project1.rst.txt b/docs/_sources/paraview-project1.rst.txt new file mode 100644 index 0000000..aa7e1d9 --- /dev/null +++ b/docs/_sources/paraview-project1.rst.txt @@ -0,0 +1,4 @@ +Project 1 +=================== + +text here diff --git a/docs/_sources/paraview-project2.rst.txt b/docs/_sources/paraview-project2.rst.txt new file mode 100644 index 0000000..5d1cbba --- /dev/null +++ b/docs/_sources/paraview-project2.rst.txt @@ -0,0 +1,5 @@ +Project 2 +=================== + +text here + diff --git a/docs/_sources/paraview-project3.rst.txt b/docs/_sources/paraview-project3.rst.txt new file mode 100644 index 0000000..d1d430f --- /dev/null +++ b/docs/_sources/paraview-project3.rst.txt @@ -0,0 +1,4 @@ +Project N +=================== + +text here diff --git a/docs/_sources/setup.rst.txt b/docs/_sources/setup.rst.txt new file mode 100644 index 0000000..058fea2 --- /dev/null +++ b/docs/_sources/setup.rst.txt @@ -0,0 +1,10 @@ +NAIC Visualization Setup +========================================= + +Workflow +------------ +.. raw:: html + :file: images/NAIC-Paraview-Workflow.svg + +.. note:: + TODO: Add textual documentation. diff --git a/docs/_sources/storage.rst.txt b/docs/_sources/storage.rst.txt new file mode 100644 index 0000000..603064f --- /dev/null +++ b/docs/_sources/storage.rst.txt @@ -0,0 +1,7 @@ +Storage for Large Datasets +=========================== + +Data Storage Formats +------------------------- +.. note:: + TODO: Add information about data movement, storage formats, wrangling etc.. \ No newline at end of file diff --git a/docs/_sources/tools.rst.txt b/docs/_sources/tools.rst.txt new file mode 100644 index 0000000..f701bbb --- /dev/null +++ b/docs/_sources/tools.rst.txt @@ -0,0 +1,7 @@ +Summary of Tools +================== + +Tools +------------ +.. note:: + TODO: Add information about different options available for visualizing data. Can discuss options like Paraview, VisIt etc. \ No newline at end of file diff --git a/docs/_sources/visit-project1.rst.txt b/docs/_sources/visit-project1.rst.txt new file mode 100644 index 0000000..1a4285f --- /dev/null +++ b/docs/_sources/visit-project1.rst.txt @@ -0,0 +1,4 @@ +Project 1 +=================== + +text here \ No newline at end of file diff --git a/docs/_sources/wrangling.rst.txt b/docs/_sources/wrangling.rst.txt new file mode 100644 index 0000000..1a861be --- /dev/null +++ b/docs/_sources/wrangling.rst.txt @@ -0,0 +1,6 @@ +Data Wrangling +============================== + + + +text here diff --git a/docs/_static/basic.css b/docs/_static/basic.css new file mode 100644 index 0000000..30fee9d --- /dev/null +++ b/docs/_static/basic.css @@ -0,0 +1,925 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/_static/custom.css b/docs/_static/custom.css new file mode 100644 index 0000000..723b1a2 --- /dev/null +++ b/docs/_static/custom.css @@ -0,0 +1,71 @@ +/* Custom header sizes for Furo theme */ +@import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap'); + +h1 { + font-size: 20px; + font-weight:200; + font-family: 'Rubik', sans-serif; + color:#3b90ca; +} + +h2 { + font-size: 20px; + font-weight:200; + color:#3b90ca; +} + +h3 { + font-size: 20px; + font-weight:200; + color:#3b90ca; +} + +body { + font-family: 'Rubik', sans-serif; + --sidebar-item-spacing-vertical: 0.3rem; + --sidebar-item-spacing-horizontal: .1rem; + --color-sidebar-link-text--top-level:#646776; + --color-sidebar-brand-text: + --sidebar-caption-font-size:100%; + color:#404040; +} + +.sidebar-brand-text{ +color:#c69c65; +} + +p{ +color:#404040; +font-size:90%; +} + +.sidebar-tree .caption{ +font-weight: normal; +color:#637ca2; +background-color: #EAF7FF; /* Yellow color */ +padding: 10px 10px; /* Some padding for better appearance */ +text-transform: none; +border-radius: 5px 0px 0px 5px; +} + +.sidebar-drawer{ +background-color:#f9fdff; +box-shadow: 10px 0 15px -15px rgba(0, 0, 0, 0.3); +} + +.sidebar-tree .reference:hover{ +transform: translateX(5px); +} + +.sidebar-tree .reference{ +transition: transform 0.3s ease; /* Smooth transition effect */ +} + +.sidebar-tree .current-page > .reference{ +color:#3977b9; +font-weight:normal; +} + +.theme-toggle svg { + display: none !important; +} \ No newline at end of file diff --git a/docs/_static/debug.css b/docs/_static/debug.css new file mode 100644 index 0000000..74d4aec --- /dev/null +++ b/docs/_static/debug.css @@ -0,0 +1,69 @@ +/* + This CSS file should be overridden by the theme authors. It's + meant for debugging and developing the skeleton that this theme provides. +*/ +body { + font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, + "Apple Color Emoji", "Segoe UI Emoji"; + background: lavender; +} +.sb-announcement { + background: rgb(131, 131, 131); +} +.sb-announcement__inner { + background: black; + color: white; +} +.sb-header { + background: lightskyblue; +} +.sb-header__inner { + background: royalblue; + color: white; +} +.sb-header-secondary { + background: lightcyan; +} +.sb-header-secondary__inner { + background: cornflowerblue; + color: white; +} +.sb-sidebar-primary { + background: lightgreen; +} +.sb-main { + background: blanchedalmond; +} +.sb-main__inner { + background: antiquewhite; +} +.sb-header-article { + background: lightsteelblue; +} +.sb-article-container { + background: snow; +} +.sb-article-main { + background: white; +} +.sb-footer-article { + background: lightpink; +} +.sb-sidebar-secondary { + background: lightgoldenrodyellow; +} +.sb-footer-content { + background: plum; +} +.sb-footer-content__inner { + background: palevioletred; +} +.sb-footer { + background: pink; +} +.sb-footer__inner { + background: salmon; +} +.sb-article { + background: white; +} diff --git a/docs/_static/doctools.js b/docs/_static/doctools.js new file mode 100644 index 0000000..d06a71d --- /dev/null +++ b/docs/_static/doctools.js @@ -0,0 +1,156 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Base JavaScript utilities for all Sphinx HTML documentation. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js new file mode 100644 index 0000000..e21c068 --- /dev/null +++ b/docs/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '0.1', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/docs/_static/file.png b/docs/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/docs/_static/language_data.js b/docs/_static/language_data.js new file mode 100644 index 0000000..250f566 --- /dev/null +++ b/docs/_static/language_data.js @@ -0,0 +1,199 @@ +/* + * language_data.js + * ~~~~~~~~~~~~~~~~ + * + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, is available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/docs/_static/minus.png b/docs/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..d96755fdaf8bb2214971e0db9c1fd3077d7c419d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu=nj kDsEF_5m^0CR;1wuP-*O&G^0G}KYk!hp00i_>zopr08q^qX#fBK literal 0 HcmV?d00001 diff --git a/docs/_static/plus.png b/docs/_static/plus.png new file mode 100644 index 0000000000000000000000000000000000000000..7107cec93a979b9a5f64843235a16651d563ce2d GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*WBp7;*Yy1LIik>cxAr*|t7R?Mi>2?kWtu>-2 m3q%Vub%g%s<8sJhVPMczOq}xhg9DJoz~JfX=d#Wzp$Pyb1r*Kz literal 0 HcmV?d00001 diff --git a/docs/_static/pygments.css b/docs/_static/pygments.css new file mode 100644 index 0000000..c2e07c7 --- /dev/null +++ b/docs/_static/pygments.css @@ -0,0 +1,258 @@ +.highlight pre { line-height: 125%; } +.highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +.highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +.highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #f8f8f8; } +.highlight .c { color: #8f5902; font-style: italic } /* Comment */ +.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ +.highlight .g { color: #000000 } /* Generic */ +.highlight .k { color: #204a87; font-weight: bold } /* Keyword */ +.highlight .l { color: #000000 } /* Literal */ +.highlight .n { color: #000000 } /* Name */ +.highlight .o { color: #ce5c00; font-weight: bold } /* Operator */ +.highlight .x { color: #000000 } /* Other */ +.highlight .p { color: #000000; font-weight: bold } /* Punctuation */ +.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #8f5902; font-style: italic } /* Comment.Preproc */ +.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #a40000 } /* Generic.Deleted */ +.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ +.highlight .ges { color: #000000; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #ef2929 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #000000; font-style: italic } /* Generic.Output */ +.highlight .gp { color: #8f5902 } /* Generic.Prompt */ +.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ +.highlight .kc { color: #204a87; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #204a87; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #204a87; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #204a87; font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { color: #204a87; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #204a87; font-weight: bold } /* Keyword.Type */ +.highlight .ld { color: #000000 } /* Literal.Date */ +.highlight .m { color: #0000cf; font-weight: bold } /* Literal.Number */ +.highlight .s { color: #4e9a06 } /* Literal.String */ +.highlight .na { color: #c4a000 } /* Name.Attribute */ +.highlight .nb { color: #204a87 } /* Name.Builtin */ +.highlight .nc { color: #000000 } /* Name.Class */ +.highlight .no { color: #000000 } /* Name.Constant */ +.highlight .nd { color: #5c35cc; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #ce5c00 } /* Name.Entity */ +.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #000000 } /* Name.Function */ +.highlight .nl { color: #f57900 } /* Name.Label */ +.highlight .nn { color: #000000 } /* Name.Namespace */ +.highlight .nx { color: #000000 } /* Name.Other */ +.highlight .py { color: #000000 } /* Name.Property */ +.highlight .nt { color: #204a87; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #000000 } /* Name.Variable */ +.highlight .ow { color: #204a87; font-weight: bold } /* Operator.Word */ +.highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ +.highlight .w { color: #f8f8f8 } /* Text.Whitespace */ +.highlight .mb { color: #0000cf; font-weight: bold } /* Literal.Number.Bin */ +.highlight .mf { color: #0000cf; font-weight: bold } /* Literal.Number.Float */ +.highlight .mh { color: #0000cf; font-weight: bold } /* Literal.Number.Hex */ +.highlight .mi { color: #0000cf; font-weight: bold } /* Literal.Number.Integer */ +.highlight .mo { color: #0000cf; font-weight: bold } /* Literal.Number.Oct */ +.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */ +.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ +.highlight .sc { color: #4e9a06 } /* Literal.String.Char */ +.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */ +.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ +.highlight .se { color: #4e9a06 } /* Literal.String.Escape */ +.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ +.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ +.highlight .sx { color: #4e9a06 } /* Literal.String.Other */ +.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ +.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ +.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ +.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #000000 } /* Name.Function.Magic */ +.highlight .vc { color: #000000 } /* Name.Variable.Class */ +.highlight .vg { color: #000000 } /* Name.Variable.Global */ +.highlight .vi { color: #000000 } /* Name.Variable.Instance */ +.highlight .vm { color: #000000 } /* Name.Variable.Magic */ +.highlight .il { color: #0000cf; font-weight: bold } /* Literal.Number.Integer.Long */ +@media not print { +body[data-theme="dark"] .highlight pre { line-height: 125%; } +body[data-theme="dark"] .highlight td.linenos .normal { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight span.linenos { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body[data-theme="dark"] .highlight .hll { background-color: #404040 } +body[data-theme="dark"] .highlight { background: #202020; color: #d0d0d0 } +body[data-theme="dark"] .highlight .c { color: #ababab; font-style: italic } /* Comment */ +body[data-theme="dark"] .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +body[data-theme="dark"] .highlight .esc { color: #d0d0d0 } /* Escape */ +body[data-theme="dark"] .highlight .g { color: #d0d0d0 } /* Generic */ +body[data-theme="dark"] .highlight .k { color: #6ebf26; font-weight: bold } /* Keyword */ +body[data-theme="dark"] .highlight .l { color: #d0d0d0 } /* Literal */ +body[data-theme="dark"] .highlight .n { color: #d0d0d0 } /* Name */ +body[data-theme="dark"] .highlight .o { color: #d0d0d0 } /* Operator */ +body[data-theme="dark"] .highlight .x { color: #d0d0d0 } /* Other */ +body[data-theme="dark"] .highlight .p { color: #d0d0d0 } /* Punctuation */ +body[data-theme="dark"] .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ +body[data-theme="dark"] .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ +body[data-theme="dark"] .highlight .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */ +body[data-theme="dark"] .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ +body[data-theme="dark"] .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ +body[data-theme="dark"] .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ +body[data-theme="dark"] .highlight .gd { color: #d22323 } /* Generic.Deleted */ +body[data-theme="dark"] .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +body[data-theme="dark"] .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +body[data-theme="dark"] .highlight .gr { color: #d22323 } /* Generic.Error */ +body[data-theme="dark"] .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ +body[data-theme="dark"] .highlight .gi { color: #589819 } /* Generic.Inserted */ +body[data-theme="dark"] .highlight .go { color: #cccccc } /* Generic.Output */ +body[data-theme="dark"] .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ +body[data-theme="dark"] .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ +body[data-theme="dark"] .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ +body[data-theme="dark"] .highlight .gt { color: #d22323 } /* Generic.Traceback */ +body[data-theme="dark"] .highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */ +body[data-theme="dark"] .highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */ +body[data-theme="dark"] .highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */ +body[data-theme="dark"] .highlight .kp { color: #6ebf26 } /* Keyword.Pseudo */ +body[data-theme="dark"] .highlight .kr { color: #6ebf26; font-weight: bold } /* Keyword.Reserved */ +body[data-theme="dark"] .highlight .kt { color: #6ebf26; font-weight: bold } /* Keyword.Type */ +body[data-theme="dark"] .highlight .ld { color: #d0d0d0 } /* Literal.Date */ +body[data-theme="dark"] .highlight .m { color: #51b2fd } /* Literal.Number */ +body[data-theme="dark"] .highlight .s { color: #ed9d13 } /* Literal.String */ +body[data-theme="dark"] .highlight .na { color: #bbbbbb } /* Name.Attribute */ +body[data-theme="dark"] .highlight .nb { color: #2fbccd } /* Name.Builtin */ +body[data-theme="dark"] .highlight .nc { color: #71adff; text-decoration: underline } /* Name.Class */ +body[data-theme="dark"] .highlight .no { color: #40ffff } /* Name.Constant */ +body[data-theme="dark"] .highlight .nd { color: #ffa500 } /* Name.Decorator */ +body[data-theme="dark"] .highlight .ni { color: #d0d0d0 } /* Name.Entity */ +body[data-theme="dark"] .highlight .ne { color: #bbbbbb } /* Name.Exception */ +body[data-theme="dark"] .highlight .nf { color: #71adff } /* Name.Function */ +body[data-theme="dark"] .highlight .nl { color: #d0d0d0 } /* Name.Label */ +body[data-theme="dark"] .highlight .nn { color: #71adff; text-decoration: underline } /* Name.Namespace */ +body[data-theme="dark"] .highlight .nx { color: #d0d0d0 } /* Name.Other */ +body[data-theme="dark"] .highlight .py { color: #d0d0d0 } /* Name.Property */ +body[data-theme="dark"] .highlight .nt { color: #6ebf26; font-weight: bold } /* Name.Tag */ +body[data-theme="dark"] .highlight .nv { color: #40ffff } /* Name.Variable */ +body[data-theme="dark"] .highlight .ow { color: #6ebf26; font-weight: bold } /* Operator.Word */ +body[data-theme="dark"] .highlight .pm { color: #d0d0d0 } /* Punctuation.Marker */ +body[data-theme="dark"] .highlight .w { color: #666666 } /* Text.Whitespace */ +body[data-theme="dark"] .highlight .mb { color: #51b2fd } /* Literal.Number.Bin */ +body[data-theme="dark"] .highlight .mf { color: #51b2fd } /* Literal.Number.Float */ +body[data-theme="dark"] .highlight .mh { color: #51b2fd } /* Literal.Number.Hex */ +body[data-theme="dark"] .highlight .mi { color: #51b2fd } /* Literal.Number.Integer */ +body[data-theme="dark"] .highlight .mo { color: #51b2fd } /* Literal.Number.Oct */ +body[data-theme="dark"] .highlight .sa { color: #ed9d13 } /* Literal.String.Affix */ +body[data-theme="dark"] .highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */ +body[data-theme="dark"] .highlight .sc { color: #ed9d13 } /* Literal.String.Char */ +body[data-theme="dark"] .highlight .dl { color: #ed9d13 } /* Literal.String.Delimiter */ +body[data-theme="dark"] .highlight .sd { color: #ed9d13 } /* Literal.String.Doc */ +body[data-theme="dark"] .highlight .s2 { color: #ed9d13 } /* Literal.String.Double */ +body[data-theme="dark"] .highlight .se { color: #ed9d13 } /* Literal.String.Escape */ +body[data-theme="dark"] .highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */ +body[data-theme="dark"] .highlight .si { color: #ed9d13 } /* Literal.String.Interpol */ +body[data-theme="dark"] .highlight .sx { color: #ffa500 } /* Literal.String.Other */ +body[data-theme="dark"] .highlight .sr { color: #ed9d13 } /* Literal.String.Regex */ +body[data-theme="dark"] .highlight .s1 { color: #ed9d13 } /* Literal.String.Single */ +body[data-theme="dark"] .highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */ +body[data-theme="dark"] .highlight .bp { color: #2fbccd } /* Name.Builtin.Pseudo */ +body[data-theme="dark"] .highlight .fm { color: #71adff } /* Name.Function.Magic */ +body[data-theme="dark"] .highlight .vc { color: #40ffff } /* Name.Variable.Class */ +body[data-theme="dark"] .highlight .vg { color: #40ffff } /* Name.Variable.Global */ +body[data-theme="dark"] .highlight .vi { color: #40ffff } /* Name.Variable.Instance */ +body[data-theme="dark"] .highlight .vm { color: #40ffff } /* Name.Variable.Magic */ +body[data-theme="dark"] .highlight .il { color: #51b2fd } /* Literal.Number.Integer.Long */ +@media (prefers-color-scheme: dark) { +body:not([data-theme="light"]) .highlight pre { line-height: 125%; } +body:not([data-theme="light"]) .highlight td.linenos .normal { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight span.linenos { color: #aaaaaa; background-color: transparent; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +body:not([data-theme="light"]) .highlight .hll { background-color: #404040 } +body:not([data-theme="light"]) .highlight { background: #202020; color: #d0d0d0 } +body:not([data-theme="light"]) .highlight .c { color: #ababab; font-style: italic } /* Comment */ +body:not([data-theme="light"]) .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +body:not([data-theme="light"]) .highlight .esc { color: #d0d0d0 } /* Escape */ +body:not([data-theme="light"]) .highlight .g { color: #d0d0d0 } /* Generic */ +body:not([data-theme="light"]) .highlight .k { color: #6ebf26; font-weight: bold } /* Keyword */ +body:not([data-theme="light"]) .highlight .l { color: #d0d0d0 } /* Literal */ +body:not([data-theme="light"]) .highlight .n { color: #d0d0d0 } /* Name */ +body:not([data-theme="light"]) .highlight .o { color: #d0d0d0 } /* Operator */ +body:not([data-theme="light"]) .highlight .x { color: #d0d0d0 } /* Other */ +body:not([data-theme="light"]) .highlight .p { color: #d0d0d0 } /* Punctuation */ +body:not([data-theme="light"]) .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ +body:not([data-theme="light"]) .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ +body:not([data-theme="light"]) .highlight .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */ +body:not([data-theme="light"]) .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ +body:not([data-theme="light"]) .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ +body:not([data-theme="light"]) .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ +body:not([data-theme="light"]) .highlight .gd { color: #d22323 } /* Generic.Deleted */ +body:not([data-theme="light"]) .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +body:not([data-theme="light"]) .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +body:not([data-theme="light"]) .highlight .gr { color: #d22323 } /* Generic.Error */ +body:not([data-theme="light"]) .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ +body:not([data-theme="light"]) .highlight .gi { color: #589819 } /* Generic.Inserted */ +body:not([data-theme="light"]) .highlight .go { color: #cccccc } /* Generic.Output */ +body:not([data-theme="light"]) .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ +body:not([data-theme="light"]) .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ +body:not([data-theme="light"]) .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ +body:not([data-theme="light"]) .highlight .gt { color: #d22323 } /* Generic.Traceback */ +body:not([data-theme="light"]) .highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */ +body:not([data-theme="light"]) .highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */ +body:not([data-theme="light"]) .highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */ +body:not([data-theme="light"]) .highlight .kp { color: #6ebf26 } /* Keyword.Pseudo */ +body:not([data-theme="light"]) .highlight .kr { color: #6ebf26; font-weight: bold } /* Keyword.Reserved */ +body:not([data-theme="light"]) .highlight .kt { color: #6ebf26; font-weight: bold } /* Keyword.Type */ +body:not([data-theme="light"]) .highlight .ld { color: #d0d0d0 } /* Literal.Date */ +body:not([data-theme="light"]) .highlight .m { color: #51b2fd } /* Literal.Number */ +body:not([data-theme="light"]) .highlight .s { color: #ed9d13 } /* Literal.String */ +body:not([data-theme="light"]) .highlight .na { color: #bbbbbb } /* Name.Attribute */ +body:not([data-theme="light"]) .highlight .nb { color: #2fbccd } /* Name.Builtin */ +body:not([data-theme="light"]) .highlight .nc { color: #71adff; text-decoration: underline } /* Name.Class */ +body:not([data-theme="light"]) .highlight .no { color: #40ffff } /* Name.Constant */ +body:not([data-theme="light"]) .highlight .nd { color: #ffa500 } /* Name.Decorator */ +body:not([data-theme="light"]) .highlight .ni { color: #d0d0d0 } /* Name.Entity */ +body:not([data-theme="light"]) .highlight .ne { color: #bbbbbb } /* Name.Exception */ +body:not([data-theme="light"]) .highlight .nf { color: #71adff } /* Name.Function */ +body:not([data-theme="light"]) .highlight .nl { color: #d0d0d0 } /* Name.Label */ +body:not([data-theme="light"]) .highlight .nn { color: #71adff; text-decoration: underline } /* Name.Namespace */ +body:not([data-theme="light"]) .highlight .nx { color: #d0d0d0 } /* Name.Other */ +body:not([data-theme="light"]) .highlight .py { color: #d0d0d0 } /* Name.Property */ +body:not([data-theme="light"]) .highlight .nt { color: #6ebf26; font-weight: bold } /* Name.Tag */ +body:not([data-theme="light"]) .highlight .nv { color: #40ffff } /* Name.Variable */ +body:not([data-theme="light"]) .highlight .ow { color: #6ebf26; font-weight: bold } /* Operator.Word */ +body:not([data-theme="light"]) .highlight .pm { color: #d0d0d0 } /* Punctuation.Marker */ +body:not([data-theme="light"]) .highlight .w { color: #666666 } /* Text.Whitespace */ +body:not([data-theme="light"]) .highlight .mb { color: #51b2fd } /* Literal.Number.Bin */ +body:not([data-theme="light"]) .highlight .mf { color: #51b2fd } /* Literal.Number.Float */ +body:not([data-theme="light"]) .highlight .mh { color: #51b2fd } /* Literal.Number.Hex */ +body:not([data-theme="light"]) .highlight .mi { color: #51b2fd } /* Literal.Number.Integer */ +body:not([data-theme="light"]) .highlight .mo { color: #51b2fd } /* Literal.Number.Oct */ +body:not([data-theme="light"]) .highlight .sa { color: #ed9d13 } /* Literal.String.Affix */ +body:not([data-theme="light"]) .highlight .sb { color: #ed9d13 } /* Literal.String.Backtick */ +body:not([data-theme="light"]) .highlight .sc { color: #ed9d13 } /* Literal.String.Char */ +body:not([data-theme="light"]) .highlight .dl { color: #ed9d13 } /* Literal.String.Delimiter */ +body:not([data-theme="light"]) .highlight .sd { color: #ed9d13 } /* Literal.String.Doc */ +body:not([data-theme="light"]) .highlight .s2 { color: #ed9d13 } /* Literal.String.Double */ +body:not([data-theme="light"]) .highlight .se { color: #ed9d13 } /* Literal.String.Escape */ +body:not([data-theme="light"]) .highlight .sh { color: #ed9d13 } /* Literal.String.Heredoc */ +body:not([data-theme="light"]) .highlight .si { color: #ed9d13 } /* Literal.String.Interpol */ +body:not([data-theme="light"]) .highlight .sx { color: #ffa500 } /* Literal.String.Other */ +body:not([data-theme="light"]) .highlight .sr { color: #ed9d13 } /* Literal.String.Regex */ +body:not([data-theme="light"]) .highlight .s1 { color: #ed9d13 } /* Literal.String.Single */ +body:not([data-theme="light"]) .highlight .ss { color: #ed9d13 } /* Literal.String.Symbol */ +body:not([data-theme="light"]) .highlight .bp { color: #2fbccd } /* Name.Builtin.Pseudo */ +body:not([data-theme="light"]) .highlight .fm { color: #71adff } /* Name.Function.Magic */ +body:not([data-theme="light"]) .highlight .vc { color: #40ffff } /* Name.Variable.Class */ +body:not([data-theme="light"]) .highlight .vg { color: #40ffff } /* Name.Variable.Global */ +body:not([data-theme="light"]) .highlight .vi { color: #40ffff } /* Name.Variable.Instance */ +body:not([data-theme="light"]) .highlight .vm { color: #40ffff } /* Name.Variable.Magic */ +body:not([data-theme="light"]) .highlight .il { color: #51b2fd } /* Literal.Number.Integer.Long */ +} +} \ No newline at end of file diff --git a/docs/_static/scripts/furo-extensions.js b/docs/_static/scripts/furo-extensions.js new file mode 100644 index 0000000..e69de29 diff --git a/docs/_static/scripts/furo.js b/docs/_static/scripts/furo.js new file mode 100644 index 0000000..32e7c05 --- /dev/null +++ b/docs/_static/scripts/furo.js @@ -0,0 +1,3 @@ +/*! For license information please see furo.js.LICENSE.txt */ +(()=>{var t={212:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(212),e=n.n(t),o=null,r=null,c=window.pageYOffset||document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;n=t,0==Math.floor(r.getBoundingClientRect().top)?r.classList.add("scrolled"):r.classList.remove("scrolled"),function(t){tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})(); +//# sourceMappingURL=furo.js.map \ No newline at end of file diff --git a/docs/_static/scripts/furo.js.LICENSE.txt b/docs/_static/scripts/furo.js.LICENSE.txt new file mode 100644 index 0000000..1632189 --- /dev/null +++ b/docs/_static/scripts/furo.js.LICENSE.txt @@ -0,0 +1,7 @@ +/*! + * gumshoejs v5.1.2 (patched by @pradyunsg) + * A simple, framework-agnostic scrollspy script. + * (c) 2019 Chris Ferdinandi + * MIT License + * http://github.com/cferdinandi/gumshoe + */ diff --git a/docs/_static/scripts/furo.js.map b/docs/_static/scripts/furo.js.map new file mode 100644 index 0000000..7b7ddb1 --- /dev/null +++ b/docs/_static/scripts/furo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"scripts/furo.js","mappings":"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","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader() {\n if (Math.floor(header.getBoundingClientRect().top) == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader();\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 0.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","floor","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/_static/searchtools.js b/docs/_static/searchtools.js new file mode 100644 index 0000000..7918c3f --- /dev/null +++ b/docs/_static/searchtools.js @@ -0,0 +1,574 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename] = item; + + let listItem = document.createElement("li"); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = _( + `Search finished, found ${resultCount} page(s) matching the search query.` + ); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent !== undefined) return docContent.textContent; + console.warn( + "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + /** + * execute search (requires search index to be loaded) + */ + query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + // array of [docname, title, anchor, descr, score, filename] + let results = []; + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // lookup as object + objectTerms.forEach((term) => + results.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); + + // now sort the results by score (in opposite order of appearance, since the + // display function below uses pop() to retrieve items) and then + // alphabetically + results.sort((a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; + }); + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + results = results.reverse(); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord) && !terms[word]) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord) && !titleTerms[word]) + arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); + }); + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) + fileMap.get(file).push(word); + else fileMap.set(file, [word]); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/docs/_static/skeleton.css b/docs/_static/skeleton.css new file mode 100644 index 0000000..467c878 --- /dev/null +++ b/docs/_static/skeleton.css @@ -0,0 +1,296 @@ +/* Some sane resets. */ +html { + height: 100%; +} + +body { + margin: 0; + min-height: 100%; +} + +/* All the flexbox magic! */ +body, +.sb-announcement, +.sb-content, +.sb-main, +.sb-container, +.sb-container__inner, +.sb-article-container, +.sb-footer-content, +.sb-header, +.sb-header-secondary, +.sb-footer { + display: flex; +} + +/* These order things vertically */ +body, +.sb-main, +.sb-article-container { + flex-direction: column; +} + +/* Put elements in the center */ +.sb-header, +.sb-header-secondary, +.sb-container, +.sb-content, +.sb-footer, +.sb-footer-content { + justify-content: center; +} +/* Put elements at the ends */ +.sb-article-container { + justify-content: space-between; +} + +/* These elements grow. */ +.sb-main, +.sb-content, +.sb-container, +article { + flex-grow: 1; +} + +/* Because padding making this wider is not fun */ +article { + box-sizing: border-box; +} + +/* The announcements element should never be wider than the page. */ +.sb-announcement { + max-width: 100%; +} + +.sb-sidebar-primary, +.sb-sidebar-secondary { + flex-shrink: 0; + width: 17rem; +} + +.sb-announcement__inner { + justify-content: center; + + box-sizing: border-box; + height: 3rem; + + overflow-x: auto; + white-space: nowrap; +} + +/* Sidebars, with checkbox-based toggle */ +.sb-sidebar-primary, +.sb-sidebar-secondary { + position: fixed; + height: 100%; + top: 0; +} + +.sb-sidebar-primary { + left: -17rem; + transition: left 250ms ease-in-out; +} +.sb-sidebar-secondary { + right: -17rem; + transition: right 250ms ease-in-out; +} + +.sb-sidebar-toggle { + display: none; +} +.sb-sidebar-overlay { + position: fixed; + top: 0; + width: 0; + height: 0; + + transition: width 0ms ease 250ms, height 0ms ease 250ms, opacity 250ms ease; + + opacity: 0; + background-color: rgba(0, 0, 0, 0.54); +} + +#sb-sidebar-toggle--primary:checked + ~ .sb-sidebar-overlay[for="sb-sidebar-toggle--primary"], +#sb-sidebar-toggle--secondary:checked + ~ .sb-sidebar-overlay[for="sb-sidebar-toggle--secondary"] { + width: 100%; + height: 100%; + opacity: 1; + transition: width 0ms ease, height 0ms ease, opacity 250ms ease; +} + +#sb-sidebar-toggle--primary:checked ~ .sb-container .sb-sidebar-primary { + left: 0; +} +#sb-sidebar-toggle--secondary:checked ~ .sb-container .sb-sidebar-secondary { + right: 0; +} + +/* Full-width mode */ +.drop-secondary-sidebar-for-full-width-content + .hide-when-secondary-sidebar-shown { + display: none !important; +} +.drop-secondary-sidebar-for-full-width-content .sb-sidebar-secondary { + display: none !important; +} + +/* Mobile views */ +.sb-page-width { + width: 100%; +} + +.sb-article-container, +.sb-footer-content__inner, +.drop-secondary-sidebar-for-full-width-content .sb-article, +.drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 100vw; +} + +.sb-article, +.match-content-width { + padding: 0 1rem; + box-sizing: border-box; +} + +@media (min-width: 32rem) { + .sb-article, + .match-content-width { + padding: 0 2rem; + } +} + +/* Tablet views */ +@media (min-width: 42rem) { + .sb-article-container { + width: auto; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 42rem; + } + .sb-article, + .match-content-width { + width: 42rem; + } +} +@media (min-width: 46rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 46rem; + } + .sb-article, + .match-content-width { + width: 46rem; + } +} +@media (min-width: 50rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 50rem; + } + .sb-article, + .match-content-width { + width: 50rem; + } +} + +/* Tablet views */ +@media (min-width: 59rem) { + .sb-sidebar-secondary { + position: static; + } + .hide-when-secondary-sidebar-shown { + display: none !important; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 59rem; + } + .sb-article, + .match-content-width { + width: 42rem; + } +} +@media (min-width: 63rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 63rem; + } + .sb-article, + .match-content-width { + width: 46rem; + } +} +@media (min-width: 67rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 67rem; + } + .sb-article, + .match-content-width { + width: 50rem; + } +} + +/* Desktop views */ +@media (min-width: 76rem) { + .sb-sidebar-primary { + position: static; + } + .hide-when-primary-sidebar-shown { + display: none !important; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 59rem; + } + .sb-article, + .match-content-width { + width: 42rem; + } +} + +/* Full desktop views */ +@media (min-width: 80rem) { + .sb-article, + .match-content-width { + width: 46rem; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 63rem; + } +} + +@media (min-width: 84rem) { + .sb-article, + .match-content-width { + width: 50rem; + } + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 67rem; + } +} + +@media (min-width: 88rem) { + .sb-footer-content__inner, + .drop-secondary-sidebar-for-full-width-content .sb-article, + .drop-secondary-sidebar-for-full-width-content .match-content-width { + width: 67rem; + } + .sb-page-width { + width: 88rem; + } +} diff --git a/docs/_static/sphinx_highlight.js b/docs/_static/sphinx_highlight.js new file mode 100644 index 0000000..8a96c69 --- /dev/null +++ b/docs/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/docs/_static/styles/furo-extensions.css b/docs/_static/styles/furo-extensions.css new file mode 100644 index 0000000..bc447f2 --- /dev/null +++ b/docs/_static/styles/furo-extensions.css @@ -0,0 +1,2 @@ +#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;opacity:1;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)} +/*# sourceMappingURL=furo-extensions.css.map*/ \ No newline at end of file diff --git a/docs/_static/styles/furo-extensions.css.map b/docs/_static/styles/furo-extensions.css.map new file mode 100644 index 0000000..9ba5637 --- /dev/null +++ b/docs/_static/styles/furo-extensions.css.map @@ -0,0 +1 @@ +{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAKE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cALA,UASA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UC5CN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Make it visible\n opacity: 1\n\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/docs/_static/styles/furo.css b/docs/_static/styles/furo.css new file mode 100644 index 0000000..3d29a21 --- /dev/null +++ b/docs/_static/styles/furo.css @@ -0,0 +1,2 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#646776;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2962ff;--color-brand-content:#2a5adf;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link--hover:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link-underline--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto,body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link);text-decoration-color:var(--color-link-underline--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{background:var(--color-background-primary);color:var(--color-foreground-primary);height:100%}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{vertical-align:middle}.theme-toggle{background:transparent;border:none;cursor:pointer;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1rem;vertical-align:middle;width:1rem}.theme-toggle-header{float:left;padding:1rem .5rem}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1rem;width:1rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg{color:inherit;height:1rem;width:1rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{fill:currentColor;display:inline-block;height:1rem;width:1rem}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.theme-toggle-header{display:block}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.25rem;width:1.25rem}:target{scroll-margin-top:var(--header-height)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:3.5rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}.versionmodified{font-style:italic}div.deprecated p,div.versionadded p,div.versionchanged p{margin-bottom:.125rem;margin-top:.125rem}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>p,div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='12' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23607D8B' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 0h24v24H0z' stroke='none'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree .reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling.Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} +/*# sourceMappingURL=furo.css.map*/ \ No newline at end of file diff --git a/docs/_static/styles/furo.css.map b/docs/_static/styles/furo.css.map new file mode 100644 index 0000000..d1dfb10 --- /dev/null +++ b/docs/_static/styles/furo.css.map @@ -0,0 +1 @@ +{"version":3,"file":"styles/furo.css","mappings":"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0CACE,CAFF,kBACA,CACE,wEACA,CARA,YACA,CAKF,mBAFF,OAII,eACA,CAJF,iCAJE,cAGJ,CANI,oBAEA,CAKF,SAIE,2BADA,UACA,kBAGF,sCACA,CAFF,WACE,WACA,qCACE,gCACA,2EACA,sDAKJ,aACE,mDAII,CAJJ,6CAII,kEACA,iBACE,iDACA,+CACE,aACA,WADA,+BACA,uEANN,YACE,mDAEE,mBADF,0CACE,CADF,qBACE,0DACA,YACE,4DACA,sEANN,YACE,8CACA,kBADA,UACA,2CACE,2EACA,cACE,kEACA,mEANN,yBACE,4DACA,sBACE,+EAEE,iEACA,qEANN,sCACE,CAGE,iBAHF,gBAGE,qBACE,CAJJ,uBACA,gDACE,wDACA,6DAHF,2CACA,CADA,gBACA,eACE,CAGE,sBANN,8BACE,CAII,iBAFF,4DACA,WACE,YADF,uCACE,6EACA,2BANN,8CACE,kDACA,0CACE,8BACA,yFACE,sBACA,sFALJ,mEACA,sBACE,kEACA,6EACE,uCACA,kEALJ,qGAEE,kEACA,6EACE,uCACA,kEALJ,8CACA,uDACE,sEACA,2EACE,sCACA,iEALJ,mGACA,qCACE,oDACA,0DACE,6GACA,gDAGR,yDCrEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDACA,qCAGA,6BACA,kBACA,qDAKA,oCAEA,+DAGA,2CAGE,oDAIA,oEAEE,qBAGJ,wDAEE,uCAEF,kEAGA,8CAEA,uDAKA,oCAEA,yDAEE,gEAKF,+CC5FA,0EAGE,CACA,qDCLJ,+DAIE,sCAIA,kEACE,yBACA,2FAMA,gBACA,yGCbF,mBAOA,2MAIA,4HAYA,0DACE,8GAYF,8HAQE,mBAEA,6HAOF,YAGA,mIAME,eACA,CAFF,YAEE,4FAMJ,8BAEE,uBAYA,sCAEE,CAJF,oBAEA,CARA,wCAEA,CAHA,8BACA,CAFA,eACA,CAGA,wCAEA,CAEA,mDAIE,kCACE,6BACA,4CAKJ,kDAIA,eACE,aAGF,8BACE,uDACA,sCACA,cAEA,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","sources":["webpack:///./node_modules/normalize.css/normalize.css","webpack:///./src/furo/assets/styles/base/_print.sass","webpack:///./src/furo/assets/styles/base/_screen-readers.sass","webpack:///./src/furo/assets/styles/base/_theme.sass","webpack:///./src/furo/assets/styles/variables/_fonts.scss","webpack:///./src/furo/assets/styles/variables/_spacing.scss","webpack:///./src/furo/assets/styles/variables/_icons.scss","webpack:///./src/furo/assets/styles/variables/_admonitions.scss","webpack:///./src/furo/assets/styles/variables/_colors.scss","webpack:///./src/furo/assets/styles/base/_typography.sass","webpack:///./src/furo/assets/styles/_scaffold.sass","webpack:///./src/furo/assets/styles/content/_admonitions.sass","webpack:///./src/furo/assets/styles/content/_api.sass","webpack:///./src/furo/assets/styles/content/_blocks.sass","webpack:///./src/furo/assets/styles/content/_captions.sass","webpack:///./src/furo/assets/styles/content/_code.sass","webpack:///./src/furo/assets/styles/content/_footnotes.sass","webpack:///./src/furo/assets/styles/content/_images.sass","webpack:///./src/furo/assets/styles/content/_indexes.sass","webpack:///./src/furo/assets/styles/content/_lists.sass","webpack:///./src/furo/assets/styles/content/_math.sass","webpack:///./src/furo/assets/styles/content/_misc.sass","webpack:///./src/furo/assets/styles/content/_rubrics.sass","webpack:///./src/furo/assets/styles/content/_sidebar.sass","webpack:///./src/furo/assets/styles/content/_tables.sass","webpack:///./src/furo/assets/styles/content/_target.sass","webpack:///./src/furo/assets/styles/content/_gui-labels.sass","webpack:///./src/furo/assets/styles/components/_footer.sass","webpack:///./src/furo/assets/styles/components/_sidebar.sass","webpack:///./src/furo/assets/styles/components/_table_of_contents.sass","webpack:///./src/furo/assets/styles/_shame.sass"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file contains styles for managing print media.\n\n////////////////////////////////////////////////////////////////////////////////\n// Hide elements not relevant to print media.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Hide icon container.\n .content-icon-container\n display: none !important\n\n // Hide showing header links if hovering over when printing.\n .headerlink\n display: none !important\n\n // Hide mobile header.\n .mobile-header\n display: none !important\n\n // Hide navigation links.\n .related-pages\n display: none !important\n\n////////////////////////////////////////////////////////////////////////////////\n// Tweaks related to decolorization.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Apply a border around code which no longer have a color background.\n .highlight\n border: 0.1pt solid var(--color-foreground-border)\n\n////////////////////////////////////////////////////////////////////////////////\n// Avoid page break in some relevant cases.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n ul, ol, dl, a, table, pre, blockquote\n page-break-inside: avoid\n\n h1, h2, h3, h4, h5, h6, img, figure, caption\n page-break-inside: avoid\n page-break-after: avoid\n\n ul, ol, dl\n page-break-before: avoid\n",".visually-hidden\n position: absolute !important\n width: 1px !important\n height: 1px !important\n padding: 0 !important\n margin: -1px !important\n overflow: hidden !important\n clip: rect(0,0,0,0) !important\n white-space: nowrap !important\n border: 0 !important\n\n:-moz-focusring\n outline: auto\n","// This file serves as the \"skeleton\" of the theming logic.\n//\n// This contains the bulk of the logic for handling dark mode, color scheme\n// toggling and the handling of color-scheme-specific hiding of elements.\n\nbody\n @include fonts\n @include spacing\n @include icons\n @include admonitions\n @include default-admonition(#651fff, \"abstract\")\n @include default-topic(#14B8A6, \"pencil\")\n\n @include colors\n\n.only-light\n display: block !important\nhtml body .only-dark\n display: none !important\n\n// Ignore dark-mode hints if print media.\n@media not print\n // Enable dark-mode, if requested.\n body[data-theme=\"dark\"]\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n // Enable dark mode, unless explicitly told to avoid.\n @media (prefers-color-scheme: dark)\n body:not([data-theme=\"light\"])\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n//\n// Theme toggle presentation\n//\nbody[data-theme=\"auto\"]\n .theme-toggle svg.theme-icon-when-auto\n display: block\n\nbody[data-theme=\"dark\"]\n .theme-toggle svg.theme-icon-when-dark\n display: block\n\nbody[data-theme=\"light\"]\n .theme-toggle svg.theme-icon-when-light\n display: block\n","// Fonts used by this theme.\n//\n// There are basically two things here -- using the system font stack and\n// defining sizes for various elements in %ages. We could have also used `em`\n// but %age is easier to reason about for me.\n\n@mixin fonts {\n // These are adapted from https://systemfontstack.com/\n --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji;\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, Monaco,\n Liberation Mono, Lucida Console, monospace;\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n //\n // These aren't defined in terms of %ages, since nesting these is permitted.\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n // API\n --api-font-size: var(--font-size--small);\n}\n","// Spacing for various elements on the page\n//\n// If the user wants to tweak things in a certain way, they are permitted to.\n// They also have to deal with the consequences though!\n\n@mixin spacing {\n // Header!\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n --header-padding: 0.5rem;\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n}\n","// Expose theme icons as CSS variables.\n\n$icons: (\n // Adapted from tabler-icons\n // url: https://tablericons.com/\n \"search\":\n url('data:image/svg+xml;charset=utf-8,'),\n // Factored out from mkdocs-material on 24-Aug-2020.\n // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/\n \"pencil\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"abstract\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"info\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"flame\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"question\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"warning\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"failure\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"spark\":\n url('data:image/svg+xml;charset=utf-8,')\n);\n\n@mixin icons {\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n}\n","// Admonitions\n\n// Structure of these is:\n// admonition-class: color \"icon-name\";\n//\n// The colors are translated into CSS variables below. The icons are\n// used directly in the main declarations to set the `mask-image` in\n// the title.\n\n// prettier-ignore\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"tip\": #00c852 \"info\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n@mixin default-admonition($color, $icon-name) {\n --color-admonition-title: #{$color};\n --color-admonition-title-background: #{rgba($color, 0.2)};\n\n --icon-admonition-default: var(--icon-#{$icon-name});\n}\n\n@mixin default-topic($color, $icon-name) {\n --color-topic-title: #{$color};\n --color-topic-title-background: #{rgba($color, 0.2)};\n\n --icon-topic-default: var(--icon-#{$icon-name});\n}\n\n@mixin admonitions {\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(\n nth($values, 1),\n 0.2\n )};\n }\n}\n","// Colors used throughout this theme.\n//\n// The aim is to give the user more control. Thus, instead of hard-coding colors\n// in various parts of the stylesheet, the approach taken is to define all\n// colors as CSS variables and reusing them in all the places.\n//\n// `colors-dark` depends on `colors` being included at a lower specificity.\n\n@mixin colors {\n --color-problematic: #b30000;\n\n // Base Colors\n --color-foreground-primary: black; // for main text and headings\n --color-foreground-secondary: #5a5c63; // for secondary text\n --color-foreground-muted: #646776; // for muted text\n --color-foreground-border: #878787; // for content borders\n\n --color-background-primary: white; // for content\n --color-background-secondary: #f8f9fb; // for navigation + ToC\n --color-background-hover: #efeff4ff; // for navigation-item hover\n --color-background-hover--transparent: #efeff400;\n --color-background-border: #eeebee; // for UI borders\n --color-background-item: #ccc; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #2962ff;\n --color-brand-content: #2a5adf;\n\n // API documentation\n --color-api-background: var(--color-background-hover--transparent);\n --color-api-background-hover: var(--color-background-hover);\n --color-api-overall: var(--color-foreground-secondary);\n --color-api-name: var(--color-problematic);\n --color-api-pre-name: var(--color-problematic);\n --color-api-paren: var(--color-foreground-secondary);\n --color-api-keyword: var(--color-foreground-primary);\n --color-highlight-on-target: #ffffcc;\n\n // Inline code background\n --color-inline-code-background: var(--color-background-secondary);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground-primary);\n\n // GUI Labels\n --color-guilabel-background: #ddeeff80;\n --color-guilabel-border: #bedaf580;\n --color-guilabel-text: var(--color-foreground-primary);\n\n // Admonitions!\n --color-admonition-background: transparent;\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Tables\n --color-table-header-background: var(--color-background-secondary);\n --color-table-border: var(--color-background-border);\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: transparent;\n --color-card-marginals-background: var(--color-background-secondary);\n\n // Header\n --color-header-background: var(--color-background-primary);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground-primary);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-secondary);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground-primary);\n --color-sidebar-caption-text: var(--color-foreground-muted);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-hover--transparent) 0%,\n var(--color-background-hover) var(--sidebar-item-spacing-horizontal),\n var(--color-background-hover) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-hover\n );\n\n --color-sidebar-search-text: var(--color-foreground-primary);\n --color-sidebar-search-background: var(--color-background-secondary);\n --color-sidebar-search-background--focus: var(--color-background-primary);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-muted);\n\n // Table of Contents (right)\n --color-toc-background: var(--color-background-primary);\n --color-toc-title-text: var(--color-foreground-muted);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground-primary);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground-primary);\n --color-content-background: transparent;\n\n // Links\n --color-link: var(--color-brand-content);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link-underline--hover: var(--color-foreground-border);\n}\n\n@mixin colors-dark {\n --color-problematic: #ee5151;\n\n // Base Colors\n --color-foreground-primary: #ffffffcc; // for main text and headings\n --color-foreground-secondary: #9ca0a5; // for secondary text\n --color-foreground-muted: #81868d; // for muted text\n --color-foreground-border: #666666; // for content borders\n\n --color-background-primary: #131416; // for content\n --color-background-secondary: #1a1c1e; // for navigation + ToC\n --color-background-hover: #1e2124ff; // for navigation-item hover\n --color-background-hover--transparent: #1e212400;\n --color-background-border: #303335; // for UI borders\n --color-background-item: #444; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #2b8cee;\n --color-brand-content: #368ce2;\n\n // Highlighted text (search)\n --color-highlighted-background: #083563;\n\n // GUI Labels\n --color-guilabel-background: #08356380;\n --color-guilabel-border: #13395f80;\n\n // API documentation\n --color-api-keyword: var(--color-foreground-secondary);\n --color-highlight-on-target: #333300;\n\n // Admonitions\n --color-admonition-background: #18181a;\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: #18181a;\n --color-card-marginals-background: var(--color-background-hover);\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nbody\n font-family: var(--font-stack)\npre,\ncode,\nkbd,\nsamp\n font-family: var(--font-stack--monospace)\n\n// Make fonts look slightly nicer.\nbody\n -webkit-font-smoothing: antialiased\n -moz-osx-font-smoothing: grayscale\n\n// Line height from Bootstrap 4.1\narticle\n line-height: 1.5\n\n//\n// Headings\n//\nh1,\nh2,\nh3,\nh4,\nh5,\nh6\n line-height: 1.25\n font-weight: bold\n\n border-radius: 0.5rem\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n margin-left: -0.5rem\n margin-right: -0.5rem\n padding-left: 0.5rem\n padding-right: 0.5rem\n\n + p\n margin-top: 0\n\nh1\n font-size: 2.5em\n margin-top: 1.75rem\n margin-bottom: 1rem\nh2\n font-size: 2em\n margin-top: 1.75rem\nh3\n font-size: 1.5em\nh4\n font-size: 1.25em\nh5\n font-size: 1.125em\nh6\n font-size: 1em\n\nsmall\n opacity: 75%\n font-size: 80%\n\n// Paragraph\np\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n\n// Horizontal rules\nhr.docutils\n height: 1px\n padding: 0\n margin: 2rem 0\n background-color: var(--color-background-border)\n border: 0\n\n.centered\n text-align: center\n\n// Links\na\n text-decoration: underline\n\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &.muted-link\n color: inherit\n &:hover\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline--hover)\n","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n// HACK: Not all browsers account for the scrollbar width in media queries.\n// This results in horizontal scrollbars in the breakpoint where we go\n// from displaying everything to hiding the ToC. We accomodate for this by\n// adding a bit of padding to the TOC drawer, disabling the horizontal\n// scrollbar and allowing the scrollbars to cover the padding.\n// https://www.456bereastreet.com/archive/201301/media_query_width_and_vertical_scrollbars/\n\n// HACK: Always having the scrollbar visible, prevents certain browsers from\n// causing the content to stutter horizontally between taller-than-viewport and\n// not-taller-than-viewport pages.\n\nhtml\n overflow-x: hidden\n overflow-y: scroll\n scroll-behavior: smooth\n\n.sidebar-scroll, .toc-scroll, article[role=main] *\n // Override Firefox scrollbar style\n scrollbar-width: thin\n scrollbar-color: var(--color-foreground-border) transparent\n\n // Override Chrome scrollbar styles\n &::-webkit-scrollbar\n width: 0.25rem\n height: 0.25rem\n &::-webkit-scrollbar-thumb\n background-color: var(--color-foreground-border)\n border-radius: 0.125rem\n\n//\n// Overalls\n//\nhtml,\nbody\n height: 100%\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\narticle\n color: var(--color-content-foreground)\n background: var(--color-content-background)\n overflow-wrap: break-word\n\n.page\n display: flex\n // fill the viewport for pages with little content.\n min-height: 100%\n\n.mobile-header\n width: 100%\n height: var(--header-height)\n background-color: var(--color-header-background)\n color: var(--color-header-text)\n border-bottom: 1px solid var(--color-header-border)\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10\n\n // We don't show the header on large screens.\n display: none\n\n // Add shadow when scrolled\n &.scrolled\n border-bottom: none\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2)\n\n .header-center\n a\n color: var(--color-header-text)\n text-decoration: none\n\n.main\n display: flex\n flex: 1\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer\n box-sizing: border-box\n\n border-right: 1px solid var(--color-sidebar-background-border)\n background: var(--color-sidebar-background)\n\n display: flex\n justify-content: flex-end\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width})\n min-width: $sidebar-width\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer\n box-sizing: border-box\n width: $sidebar-width\n\n.toc-drawer\n background: var(--color-toc-background)\n // See HACK described on top of this document\n padding-right: 1rem\n\n.sidebar-sticky,\n.toc-sticky\n position: sticky\n top: 0\n height: min(100%, 100vh)\n height: 100vh\n\n display: flex\n flex-direction: column\n\n.sidebar-scroll,\n.toc-scroll\n flex-grow: 1\n flex-shrink: 1\n\n overflow: auto\n scroll-behavior: smooth\n\n// Central items.\n.content\n padding: 0 $content-padding\n width: $content-width\n\n display: flex\n flex-direction: column\n justify-content: space-between\n\n.icon\n display: inline-block\n height: 1rem\n width: 1rem\n svg\n width: 100%\n height: 100%\n\n//\n// Accommodate announcement banner\n//\n.announcement\n background-color: var(--color-announcement-background)\n color: var(--color-announcement-text)\n\n height: var(--header-height)\n display: flex\n align-items: center\n overflow-x: auto\n & + .page\n min-height: calc(100% - var(--header-height))\n\n.announcement-content\n box-sizing: border-box\n padding: 0.5rem\n min-width: 100%\n white-space: nowrap\n text-align: center\n\n a\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-announcement-text)\n\n &:hover\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-link--hover)\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for theme\n////////////////////////////////////////////////////////////////////////////////\n.no-js .theme-toggle-container // don't show theme toggle if there's no JS\n display: none\n\n.theme-toggle-container\n vertical-align: middle\n\n.theme-toggle\n cursor: pointer\n border: none\n padding: 0\n background: transparent\n\n.theme-toggle svg\n vertical-align: middle\n height: 1rem\n width: 1rem\n color: var(--color-foreground-primary)\n display: none\n\n.theme-toggle-header\n float: left\n padding: 1rem 0.5rem\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon, .nav-overlay-icon\n display: none\n cursor: pointer\n\n .icon\n color: var(--color-foreground-secondary)\n height: 1rem\n width: 1rem\n\n.toc-header-icon, .nav-overlay-icon\n // for when we set display: flex\n justify-content: center\n align-items: center\n\n.toc-content-icon\n height: 1.5rem\n width: 1.5rem\n\n.content-icon-container\n float: right\n display: flex\n margin-top: 1.5rem\n margin-left: 1rem\n margin-bottom: 1rem\n gap: 0.5rem\n\n .edit-this-page svg\n color: inherit\n height: 1rem\n width: 1rem\n\n.sidebar-toggle\n position: absolute\n display: none\n// \n.sidebar-toggle[name=\"__toc\"]\n left: 20px\n.sidebar-toggle:checked\n left: 40px\n// \n\n.overlay\n position: fixed\n top: 0\n width: 0\n height: 0\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out\n\n opacity: 0\n background-color: rgba(0, 0, 0, 0.54)\n.sidebar-overlay\n z-index: 20\n.toc-overlay\n z-index: 40\n\n// Keep things on top and smooth.\n.sidebar-drawer\n z-index: 30\n transition: left 250ms ease-in-out\n.toc-drawer\n z-index: 50\n transition: right 250ms ease-in-out\n\n// Show the Sidebar\n#__navigation:checked\n & ~ .sidebar-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .sidebar-drawer\n top: 0\n left: 0\n // Show the toc sidebar\n#__toc:checked\n & ~ .toc-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .toc-drawer\n top: 0\n right: 0\n\n////////////////////////////////////////////////////////////////////////////////\n// Back to top\n////////////////////////////////////////////////////////////////////////////////\n.back-to-top\n text-decoration: none\n\n display: none\n position: fixed\n left: 0\n top: 1rem\n padding: 0.5rem\n padding-right: 0.75rem\n border-radius: 1rem\n font-size: 0.8125rem\n\n background: var(--color-background-primary)\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), #6b728080 0px 0px 1px 0px\n\n z-index: 10\n\n margin-left: 50%\n transform: translateX(-50%)\n svg\n height: 1rem\n width: 1rem\n fill: currentColor\n display: inline-block\n\n span\n margin-left: 0.25rem\n\n .show-back-to-top &\n display: flex\n align-items: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width)\n html\n font-size: 110%\n\n@media (max-width: $full-width)\n // Collapse \"toc\" into the icon.\n .toc-content-icon\n display: flex\n .toc-drawer\n position: fixed\n height: 100vh\n top: 0\n right: -$sidebar-width\n border-left: 1px solid var(--color-background-muted)\n .toc-tree\n border-left: none\n font-size: var(--toc-font-size--mobile)\n\n // Accomodate for a changed content width.\n .sidebar-drawer\n width: calc((100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width})\n\n@media (max-width: $full-width - $sidebar-width)\n // Collapse \"navigation\".\n .nav-overlay-icon\n display: flex\n .sidebar-drawer\n position: fixed\n height: 100vh\n width: $sidebar-width\n\n top: 0\n left: -$sidebar-width\n\n // Swap which icon is visible.\n .toc-header-icon\n display: flex\n .toc-content-icon, .theme-toggle-content\n display: none\n .theme-toggle-header\n display: block\n\n // Show the header.\n .mobile-header\n position: sticky\n top: 0\n display: flex\n justify-content: space-between\n align-items: center\n\n .header-left,\n .header-right\n display: flex\n height: var(--header-height)\n padding: 0 var(--header-padding)\n label\n height: 100%\n width: 100%\n user-select: none\n\n .nav-overlay-icon .icon,\n .theme-toggle svg\n height: 1.25rem\n width: 1.25rem\n\n // Add a scroll margin for the content\n :target\n scroll-margin-top: var(--header-height)\n\n // Show back-to-top below the header\n .back-to-top\n top: calc(var(--header-height) + 0.5rem)\n\n // Center the page, and accommodate for the header.\n .page\n flex-direction: column\n justify-content: center\n .content\n margin-left: auto\n margin-right: auto\n\n@media (max-width: $content-width + 2* $content-padding)\n // Content should respect window limits.\n .content\n width: 100%\n overflow-x: auto\n\n@media (max-width: $content-width)\n .content\n padding: 0 $content-padding--small\n // Don't float sidebars to the right.\n article aside.sidebar\n float: none\n width: 100%\n margin: 1rem 0\n","//\n// The design here is strongly inspired by mkdocs-material.\n.admonition, .topic\n margin: 1rem auto\n padding: 0 0.5rem 0.5rem 0.5rem\n\n background: var(--color-admonition-background)\n\n border-radius: 0.2rem\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n font-size: var(--admonition-font-size)\n\n overflow: hidden\n page-break-inside: avoid\n\n // First element should have no margin, since the title has it.\n > :nth-child(2)\n margin-top: 0\n\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child\n margin-bottom: 0\n\n.admonition p.admonition-title,\np.topic-title\n position: relative\n margin: 0 -0.5rem 0.5rem\n padding-left: 2rem\n padding-right: .5rem\n padding-top: .4rem\n padding-bottom: .4rem\n\n font-weight: 500\n font-size: var(--admonition-title-font-size)\n line-height: 1.3\n\n // Our fancy icon\n &::before\n content: \"\"\n position: absolute\n left: 0.5rem\n width: 1rem\n height: 1rem\n\n// Default styles\np.admonition-title\n background-color: var(--color-admonition-title-background)\n &::before\n background-color: var(--color-admonition-title)\n mask-image: var(--icon-admonition-default)\n mask-repeat: no-repeat\n\np.topic-title\n background-color: var(--color-topic-title-background)\n &::before\n background-color: var(--color-topic-title)\n mask-image: var(--icon-topic-default)\n mask-repeat: no-repeat\n\n//\n// Variants\n//\n.admonition\n border-left: 0.2rem solid var(--color-admonition-title)\n\n @each $type, $value in $admonitions\n &.#{$type}\n border-left-color: var(--color-admonition-title--#{$type})\n > .admonition-title\n background-color: var(--color-admonition-title-background--#{$type})\n &::before\n background-color: var(--color-admonition-title--#{$type})\n mask-image: var(--icon-#{nth($value, 2)})\n\n.admonition-todo > .admonition-title\n text-transform: uppercase\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n // This is used for the arguments\n .field-list\n margin-bottom: 0.75rem\n\n // \"Headings\" (like \"Parameters\" and \"Return\")\n > dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\n.sig:not(.sig-inline)\n font-weight: bold\n\n font-size: var(--api-font-size)\n font-family: var(--font-stack--monospace)\n\n margin-left: -0.25rem\n margin-right: -0.25rem\n padding-top: 0.25rem\n padding-bottom: 0.25rem\n padding-right: 0.5rem\n\n // These are intentionally em, to properly match the font size.\n padding-left: 3em\n text-indent: -2.5em\n\n border-radius: 0.25rem\n\n background: var(--color-api-background)\n transition: background 100ms ease-out\n\n &:hover\n background: var(--color-api-background-hover)\n\n // adjust the size of the [source] link on the right.\n a.reference\n .viewcode-link\n font-weight: normal\n width: 3.5rem\n\nem.property\n font-style: normal\n &:first-child\n color: var(--color-api-keyword)\n.sig-name\n color: var(--color-api-name)\n.sig-prename\n font-weight: normal\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\n.versionmodified\n font-style: italic\ndiv.versionadded, div.versionchanged, div.deprecated\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\n// Align the [docs] and [source] to the right.\n.viewcode-link, .viewcode-back\n float: right\n text-align: right\n",".line-block\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n .line-block\n margin-top: 0rem\n margin-bottom: 0rem\n padding-left: 1rem\n","// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption\n font-size: var(--font-size--small)\n text-align: center\n\n// Caption above a TOCTree\n.toctree-wrapper.compound\n .caption, :not(.caption) > .caption-text\n font-size: var(--font-size--small)\n text-transform: uppercase\n\n text-align: initial\n margin-bottom: 0\n\n > ul\n margin-top: 0\n margin-bottom: 0\n","// Inline code\ncode.literal, .sig-inline\n background: var(--color-inline-code-background)\n border-radius: 0.2em\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2)\n padding: 0.1em 0.2em\n\n pre.literal-block &\n font-size: inherit\n padding: 0\n\n p &\n border: 1px solid var(--color-background-border)\n\n.sig-inline\n font-family: var(--font-stack--monospace)\n\n// Code and Literal Blocks\n$code-spacing-vertical: 0.625rem\n$code-spacing-horizontal: 0.875rem\n\n// Wraps every literal block + line numbers.\ndiv[class*=\" highlight-\"],\ndiv[class^=\"highlight-\"]\n margin: 1em 0\n display: flex\n\n .table-wrapper\n margin: 0\n padding: 0\n\npre\n margin: 0\n padding: 0\n overflow: auto\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article[role=\"main\"] .highlight &\n line-height: 1.5\n\n &.literal-block,\n .highlight &\n font-size: var(--code-font-size)\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n // Make it look like all the other blocks.\n &.literal-block\n margin-top: 1rem\n margin-bottom: 1rem\n\n border-radius: 0.2rem\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n\n// All code is always contained in this.\n.highlight\n width: 100%\n border-radius: 0.2rem\n\n // Make line numbers and prompts un-selectable.\n .gp, span.linenos\n user-select: none\n pointer-events: none\n\n // Expand the line-highlighting.\n .hll\n display: block\n margin-left: -$code-spacing-horizontal\n margin-right: -$code-spacing-horizontal\n padding-left: $code-spacing-horizontal\n padding-right: $code-spacing-horizontal\n\n/* Make code block captions be nicely integrated */\n.code-block-caption\n display: flex\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n border-radius: 0.25rem\n border-bottom-left-radius: 0\n border-bottom-right-radius: 0\n font-weight: 300\n border-bottom: 1px solid\n\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n border-color: var(--color-background-border)\n\n + div[class]\n margin-top: 0\n pre\n border-top-left-radius: 0\n border-top-right-radius: 0\n\n// When `html_codeblock_linenos_style` is table.\n.highlighttable\n width: 100%\n display: block\n tbody\n display: block\n\n tr\n display: flex\n\n // Line numbers\n td.linenos\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n padding: $code-spacing-vertical $code-spacing-horizontal\n padding-right: 0\n border-top-left-radius: 0.2rem\n border-bottom-left-radius: 0.2rem\n\n .linenodiv\n padding-right: $code-spacing-horizontal\n font-size: var(--code-font-size)\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n\n // Actual code\n td.code\n padding: 0\n display: block\n flex: 1\n overflow: hidden\n\n .highlight\n border-top-left-radius: 0\n border-bottom-left-radius: 0\n\n// When `html_codeblock_linenos_style` is inline.\n.highlight\n span.linenos\n display: inline-block\n padding-left: 0\n padding-right: $code-spacing-horizontal\n margin-right: $code-spacing-horizontal\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n","// Inline Footnote Reference\n.footnote-reference\n font-size: var(--font-size--small--4)\n vertical-align: super\n\n// Definition list, listing the content of each note.\n// docutils <= 0.17\ndl.footnote.brackets\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\n display: grid\n grid-template-columns: max-content auto\n dt\n margin: 0\n > .fn-backref\n margin-left: 0.25rem\n\n &:after\n content: \":\"\n\n .brackets\n &:before\n content: \"[\"\n &:after\n content: \"]\"\n\n dd\n margin: 0\n padding: 0 1rem\n\n// docutils >= 0.18\naside.footnote\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\naside.footnote > span,\ndiv.citation > span\n float: left\n font-weight: 500\n padding-right: 0.25rem\n\naside.footnote > p,\ndiv.citation > p\n margin-left: 2rem\n","//\n// Figures\n//\nimg\n box-sizing: border-box\n max-width: 100%\n height: auto\n\narticle\n figure, .figure\n border-radius: 0.2rem\n\n margin: 0\n :last-child\n margin-bottom: 0\n\n .align-left\n float: left\n clear: left\n margin: 0 1rem 1rem\n\n .align-right\n float: right\n clear: right\n margin: 0 1rem 1rem\n\n .align-default,\n .align-center\n display: block\n text-align: center\n margin-left: auto\n margin-right: auto\n\n // WELL, table needs to be stylised like a table.\n table.align-default\n display: table\n text-align: initial\n",".genindex-jumpbox, .domainindex-jumpbox\n border-top: 1px solid var(--color-background-border)\n border-bottom: 1px solid var(--color-background-border)\n padding: 0.25rem\n\n.genindex-section, .domainindex-section\n h2\n margin-top: 0.75rem\n margin-bottom: 0.5rem\n ul\n margin-top: 0\n margin-bottom: 0\n","ul,\nol\n padding-left: 1.2rem\n\n // Space lists out like paragraphs\n margin-top: 1rem\n margin-bottom: 1rem\n // reduce margins within li.\n li\n > p:first-child\n margin-top: 0.25rem\n margin-bottom: 0.25rem\n\n > p:last-child\n margin-top: 0.25rem\n\n > ul,\n > ol\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n\nol\n &.arabic\n list-style: decimal\n &.loweralpha\n list-style: lower-alpha\n &.upperalpha\n list-style: upper-alpha\n &.lowerroman\n list-style: lower-roman\n &.upperroman\n list-style: upper-roman\n\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper\n li\n > ul,\n > ol\n margin-top: 0\n margin-bottom: 0\n\n// Definition Lists\n.field-list,\n.option-list,\ndl:not([class]),\ndl.simple,\ndl.footnote,\ndl.glossary\n dt\n font-weight: 500\n margin-top: 0.25rem\n + dt\n margin-top: 0\n\n .classifier::before\n content: \":\"\n margin-left: 0.2rem\n margin-right: 0.2rem\n\n dd\n > p:first-child,\n ul\n margin-top: 0.125rem\n\n ul\n margin-bottom: 0.125rem\n",".math-wrapper\n width: 100%\n overflow-x: auto\n\ndiv.math\n position: relative\n text-align: center\n\n .headerlink,\n &:focus .headerlink\n display: none\n\n &:hover .headerlink\n display: inline-block\n\n span.eqno\n position: absolute\n right: 0.5rem\n top: 50%\n transform: translate(0, -50%)\n z-index: 1\n","// Abbreviations\nabbr[title]\n cursor: help\n\n// \"Problematic\" content, as identified by Sphinx\n.problematic\n color: var(--color-problematic)\n\n// Keyboard / Mouse \"instructions\"\nkbd:not(.compound)\n margin: 0 0.2rem\n padding: 0 0.2rem\n border-radius: 0.2rem\n border: 1px solid var(--color-foreground-border)\n color: var(--color-foreground-primary)\n vertical-align: text-bottom\n\n font-size: var(--font-size--small--3)\n display: inline-block\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary)\n\n background-color: var(--color-background-secondary)\n\n// Blockquote\nblockquote\n border-left: 4px solid var(--color-background-border)\n background: var(--color-background-secondary)\n\n margin-left: 0\n margin-right: 0\n padding: 0.5rem 1rem\n\n .attribution\n font-weight: 600\n text-align: right\n\n &.pull-quote,\n &.highlights\n font-size: 1.25em\n\n &.epigraph,\n &.pull-quote\n border-left-width: 0\n border-radius: 0.5rem\n\n &.highlights\n border-left-width: 0\n background: transparent\n\n// Center align embedded-in-text images\np .reference img\n vertical-align: middle\n","p.rubric\n line-height: 1.25\n font-weight: bold\n font-size: 1.125em\n\n // For Numpy-style documentation that's got rubrics within it.\n // https://github.com/pradyunsg/furo/discussions/505\n dd &\n line-height: inherit\n font-weight: inherit\n\n font-size: var(--font-size--small)\n text-transform: uppercase\n","article .sidebar\n float: right\n clear: right\n width: 30%\n\n margin-left: 1rem\n margin-right: 0\n\n border-radius: 0.2rem\n background-color: var(--color-background-secondary)\n border: var(--color-background-border) 1px solid\n\n > *\n padding-left: 1rem\n padding-right: 1rem\n\n > ul, > ol // lists need additional padding, because bullets.\n padding-left: 2.2rem\n\n .sidebar-title\n margin: 0\n padding: 0.5rem 1rem\n border-bottom: var(--color-background-border) 1px solid\n\n font-weight: 500\n\n// TODO: subtitle\n// TODO: dedicated variables?\n",".table-wrapper\n width: 100%\n overflow-x: auto\n margin-top: 1rem\n margin-bottom: 0.5rem\n padding: 0.2rem 0.2rem 0.75rem\n\ntable.docutils\n border-radius: 0.2rem\n border-spacing: 0\n border-collapse: collapse\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n th\n background: var(--color-table-header-background)\n\n td,\n th\n // Space things out properly\n padding: 0 0.25rem\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-table-border)\n border-right: 1px solid var(--color-table-border)\n border-bottom: 1px solid var(--color-table-border)\n\n p\n margin: 0.25rem\n\n &:first-child\n border-left: none\n &:last-child\n border-right: none\n\n // MyST-parser tables set these classes for control of column alignment\n &.text-left\n text-align: left\n &.text-right\n text-align: right\n &.text-center\n text-align: center\n",":target\n scroll-margin-top: 0.5rem\n\n@media (max-width: $full-width - $sidebar-width)\n :target\n scroll-margin-top: calc(0.5rem + var(--header-height))\n\n // When a heading is selected\n section > span:target\n scroll-margin-top: calc(0.8rem + var(--header-height))\n\n// Permalinks\n.headerlink\n font-weight: 100\n user-select: none\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\nfigcaption p,\ntable > caption,\n.code-block-caption\n > .headerlink\n margin-left: 0.5rem\n visibility: hidden\n &:hover > .headerlink\n visibility: visible\n\n // Don't change to link-like, if someone adds the contents directive.\n > .toc-backref\n color: inherit\n text-decoration-line: none\n\n// Figure and table captions are special.\nfigure:hover > figcaption > p > .headerlink,\ntable:hover > caption > .headerlink\n visibility: visible\n\n:target >, // Regular section[id] style anchors\nspan:target ~ // Non-regular span[id] style \"extra\" anchors\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n &:nth-of-type(1)\n background-color: var(--color-highlight-on-target)\n // .headerlink\n // visibility: visible\n code.literal\n background-color: transparent\n\ntable:target > caption,\nfigure:target\n background-color: var(--color-highlight-on-target)\n\n// Inline page contents\n.this-will-duplicate-information-and-it-is-still-useful-here li :target\n background-color: var(--color-highlight-on-target)\n\n// Code block permalinks\n.literal-block-wrapper:target .code-block-caption\n background-color: var(--color-highlight-on-target)\n\n// When a definition list item is selected\n//\n// There isn't really an alternative to !important here, due to the\n// high-specificity of API documentation's selector.\ndt:target\n background-color: var(--color-highlight-on-target) !important\n\n// When a footnote reference is selected\n.footnote > dt:target + dd,\n.footnote-reference:target\n background-color: var(--color-highlight-on-target)\n",".guilabel\n background-color: var(--color-guilabel-background)\n border: 1px solid var(--color-guilabel-border)\n color: var(--color-guilabel-text)\n\n padding: 0 0.3em\n border-radius: 0.5em\n font-size: 0.9em\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter\n font-size: var(--font-size--small)\n display: flex\n flex-direction: column\n\n margin-top: 2rem\n\n// Bottom of page information\n.bottom-of-page\n display: flex\n align-items: center\n justify-content: space-between\n\n margin-top: 1rem\n padding-top: 1rem\n padding-bottom: 1rem\n\n color: var(--color-foreground-secondary)\n border-top: 1px solid var(--color-background-border)\n\n line-height: 1.5\n\n @media (max-width: $content-width)\n text-align: center\n flex-direction: column-reverse\n gap: 0.25rem\n\n .left-details\n font-size: var(--font-size--small)\n\n .right-details\n display: flex\n flex-direction: column\n gap: 0.25rem\n text-align: right\n\n .icons\n display: flex\n justify-content: flex-end\n gap: 0.25rem\n font-size: 1rem\n\n a\n text-decoration: none\n\n svg,\n img\n font-size: 1.125rem\n height: 1em\n width: 1em\n\n// Next/Prev page information\n.related-pages\n a\n display: flex\n align-items: center\n\n text-decoration: none\n &:hover .page-info .title\n text-decoration: underline\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n svg.furo-related-icon,\n svg.furo-related-icon > use\n flex-shrink: 0\n\n color: var(--color-foreground-border)\n\n width: 0.75rem\n height: 0.75rem\n margin: 0 0.5rem\n\n &.next-page\n max-width: 50%\n\n float: right\n clear: right\n text-align: right\n\n &.prev-page\n max-width: 50%\n\n float: left\n clear: left\n\n svg\n transform: rotate(180deg)\n\n.page-info\n display: flex\n flex-direction: column\n overflow-wrap: anywhere\n\n .next-page &\n align-items: flex-end\n\n .context\n display: flex\n align-items: center\n\n padding-bottom: 0.1rem\n\n color: var(--color-foreground-muted)\n font-size: var(--font-size--small)\n text-decoration: none\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand\n display: flex\n flex-direction: column\n flex-shrink: 0\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n text-decoration: none\n\n.sidebar-brand-text\n color: var(--color-sidebar-brand-text)\n overflow-wrap: break-word\n margin: var(--sidebar-item-spacing-vertical) 0\n font-size: 1.5rem\n\n.sidebar-logo-container\n margin: var(--sidebar-item-spacing-vertical) 0\n\n.sidebar-logo\n margin: 0 auto\n display: block\n max-width: 100%\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container\n display: flex\n align-items: center\n margin-top: var(--sidebar-search-space-above)\n\n position: relative\n\n background: var(--color-sidebar-search-background)\n &:hover,\n &:focus-within\n background: var(--color-sidebar-search-background--focus)\n\n &::before\n content: \"\"\n position: absolute\n left: var(--sidebar-item-spacing-horizontal)\n width: var(--sidebar-search-icon-size)\n height: var(--sidebar-search-icon-size)\n\n background-color: var(--color-sidebar-search-icon)\n mask-image: var(--icon-search)\n\n.sidebar-search\n box-sizing: border-box\n\n border: none\n border-top: 1px solid var(--color-sidebar-search-border)\n border-bottom: 1px solid var(--color-sidebar-search-border)\n\n padding-top: var(--sidebar-search-input-spacing-vertical)\n padding-bottom: var(--sidebar-search-input-spacing-vertical)\n padding-right: var(--sidebar-search-input-spacing-horizontal)\n padding-left: calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size))\n\n width: 100%\n\n color: var(--color-sidebar-search-foreground)\n background: transparent\n z-index: 10\n\n &:focus\n outline: none\n\n &::placeholder\n font-size: var(--sidebar-search-input-font-size)\n\n//\n// Hide Search Matches link\n//\n#searchbox .highlight-link\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0\n margin: 0\n text-align: center\n\n a\n color: var(--color-sidebar-search-icon)\n font-size: var(--font-size--small--2)\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree\n font-size: var(--sidebar-item-font-size)\n margin-top: var(--sidebar-tree-space-above)\n margin-bottom: var(--sidebar-item-spacing-vertical)\n\n ul\n padding: 0\n margin-top: 0\n margin-bottom: 0\n\n display: flex\n flex-direction: column\n\n list-style: none\n\n li\n position: relative\n margin: 0\n\n > ul\n margin-left: var(--sidebar-item-spacing-horizontal)\n\n .icon\n color: var(--color-sidebar-link-text)\n\n .reference\n box-sizing: border-box\n color: var(--color-sidebar-link-text)\n\n // Fill the parent.\n display: inline-block\n line-height: var(--sidebar-item-line-height)\n text-decoration: none\n\n // Don't allow long words to cause wrapping.\n overflow-wrap: anywhere\n\n height: 100%\n width: 100%\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n &:hover\n background: var(--color-sidebar-item-background--hover)\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after\n content: url('data:image/svg+xml,')\n margin: 0 0.25rem\n vertical-align: middle\n color: var(--color-sidebar-link-text)\n\n // Make the current page reference bold.\n .current-page > .reference\n font-weight: bold\n\n label\n position: absolute\n top: 0\n right: 0\n height: var(--sidebar-item-height)\n width: var(--sidebar-expander-width)\n\n cursor: pointer\n user-select: none\n\n display: flex\n justify-content: center\n align-items: center\n\n .caption, :not(.caption) > .caption-text\n font-size: var(--sidebar-caption-font-size)\n color: var(--color-sidebar-caption-text)\n\n font-weight: bold\n text-transform: uppercase\n\n margin: var(--sidebar-caption-space-above) 0 0 0\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the