Skip to content
Snippets Groups Projects
Unverified Commit 7c90e1b6 authored by Alex Yang's avatar Alex Yang Committed by GitHub
Browse files

docs(next): update homepage & init setup toturial (#1386)

parent 21ba0a80
No related branches found
No related tags found
No related merge requests found
Showing
with 1183 additions and 82 deletions
......@@ -16,6 +16,7 @@
"class-variance-authority": "^0.7.0",
"clsx": "2.1.1",
"foxact": "^0.2.39",
"framer-motion": "^11.11.10",
"fumadocs-core": "14.0.2",
"fumadocs-mdx": "11.0.0",
"fumadocs-openapi": "^5.5.3",
......@@ -23,12 +24,15 @@
"hast-util-to-jsx-runtime": "^2.3.2",
"lucide-react": "^0.436.0",
"next": "15.0.0",
"next-themes": "^0.3.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-icons": "^5.3.0",
"react-text-transition": "^3.1.0",
"react-use-measure": "^2.1.1",
"rimraf": "^6.0.1",
"shiki": "^1.22.0",
"shiki-magic-move": "^0.5.0",
"tailwind-merge": "^2.5.2",
"tailwindcss-animate": "^1.0.7"
},
......
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 304 182" style="enable-background:new 0 0 304 182;" xml:space="preserve">
<style type="text/css">
.st0{fill:#252F3E;}
.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FF9900;}
</style>
<g>
<path class="st0" d="M86.4,66.4c0,3.7,0.4,6.7,1.1,8.9c0.8,2.2,1.8,4.6,3.2,7.2c0.5,0.8,0.7,1.6,0.7,2.3c0,1-0.6,2-1.9,3l-6.3,4.2
c-0.9,0.6-1.8,0.9-2.6,0.9c-1,0-2-0.5-3-1.4C76.2,90,75,88.4,74,86.8c-1-1.7-2-3.6-3.1-5.9c-7.8,9.2-17.6,13.8-29.4,13.8
c-8.4,0-15.1-2.4-20-7.2c-4.9-4.8-7.4-11.2-7.4-19.2c0-8.5,3-15.4,9.1-20.6c6.1-5.2,14.2-7.8,24.5-7.8c3.4,0,6.9,0.3,10.6,0.8
c3.7,0.5,7.5,1.3,11.5,2.2v-7.3c0-7.6-1.6-12.9-4.7-16c-3.2-3.1-8.6-4.6-16.3-4.6c-3.5,0-7.1,0.4-10.8,1.3c-3.7,0.9-7.3,2-10.8,3.4
c-1.6,0.7-2.8,1.1-3.5,1.3c-0.7,0.2-1.2,0.3-1.6,0.3c-1.4,0-2.1-1-2.1-3.1v-4.9c0-1.6,0.2-2.8,0.7-3.5c0.5-0.7,1.4-1.4,2.8-2.1
c3.5-1.8,7.7-3.3,12.6-4.5c4.9-1.3,10.1-1.9,15.6-1.9c11.9,0,20.6,2.7,26.2,8.1c5.5,5.4,8.3,13.6,8.3,24.6V66.4z M45.8,81.6
c3.3,0,6.7-0.6,10.3-1.8c3.6-1.2,6.8-3.4,9.5-6.4c1.6-1.9,2.8-4,3.4-6.4c0.6-2.4,1-5.3,1-8.7v-4.2c-2.9-0.7-6-1.3-9.2-1.7
c-3.2-0.4-6.3-0.6-9.4-0.6c-6.7,0-11.6,1.3-14.9,4c-3.3,2.7-4.9,6.5-4.9,11.5c0,4.7,1.2,8.2,3.7,10.6
C37.7,80.4,41.2,81.6,45.8,81.6z M126.1,92.4c-1.8,0-3-0.3-3.8-1c-0.8-0.6-1.5-2-2.1-3.9L96.7,10.2c-0.6-2-0.9-3.3-0.9-4
c0-1.6,0.8-2.5,2.4-2.5h9.8c1.9,0,3.2,0.3,3.9,1c0.8,0.6,1.4,2,2,3.9l16.8,66.2l15.6-66.2c0.5-2,1.1-3.3,1.9-3.9c0.8-0.6,2.2-1,4-1
h8c1.9,0,3.2,0.3,4,1c0.8,0.6,1.5,2,1.9,3.9l15.8,67l17.3-67c0.6-2,1.3-3.3,2-3.9c0.8-0.6,2.1-1,3.9-1h9.3c1.6,0,2.5,0.8,2.5,2.5
c0,0.5-0.1,1-0.2,1.6c-0.1,0.6-0.3,1.4-0.7,2.5l-24.1,77.3c-0.6,2-1.3,3.3-2.1,3.9c-0.8,0.6-2.1,1-3.8,1h-8.6c-1.9,0-3.2-0.3-4-1
c-0.8-0.7-1.5-2-1.9-4L156,23l-15.4,64.4c-0.5,2-1.1,3.3-1.9,4c-0.8,0.7-2.2,1-4,1H126.1z M254.6,95.1c-5.2,0-10.4-0.6-15.4-1.8
c-5-1.2-8.9-2.5-11.5-4c-1.6-0.9-2.7-1.9-3.1-2.8c-0.4-0.9-0.6-1.9-0.6-2.8v-5.1c0-2.1,0.8-3.1,2.3-3.1c0.6,0,1.2,0.1,1.8,0.3
c0.6,0.2,1.5,0.6,2.5,1c3.4,1.5,7.1,2.7,11,3.5c4,0.8,7.9,1.2,11.9,1.2c6.3,0,11.2-1.1,14.6-3.3c3.4-2.2,5.2-5.4,5.2-9.5
c0-2.8-0.9-5.1-2.7-7c-1.8-1.9-5.2-3.6-10.1-5.2L246,52c-7.3-2.3-12.7-5.7-16-10.2c-3.3-4.4-5-9.3-5-14.5c0-4.2,0.9-7.9,2.7-11.1
c1.8-3.2,4.2-6,7.2-8.2c3-2.3,6.4-4,10.4-5.2c4-1.2,8.2-1.7,12.6-1.7c2.2,0,4.5,0.1,6.7,0.4c2.3,0.3,4.4,0.7,6.5,1.1
c2,0.5,3.9,1,5.7,1.6c1.8,0.6,3.2,1.2,4.2,1.8c1.4,0.8,2.4,1.6,3,2.5c0.6,0.8,0.9,1.9,0.9,3.3v4.7c0,2.1-0.8,3.2-2.3,3.2
c-0.8,0-2.1-0.4-3.8-1.2c-5.7-2.6-12.1-3.9-19.2-3.9c-5.7,0-10.2,0.9-13.3,2.8c-3.1,1.9-4.7,4.8-4.7,8.9c0,2.8,1,5.2,3,7.1
c2,1.9,5.7,3.8,11,5.5l14.2,4.5c7.2,2.3,12.4,5.5,15.5,9.6c3.1,4.1,4.6,8.8,4.6,14c0,4.3-0.9,8.2-2.6,11.6
c-1.8,3.4-4.2,6.4-7.3,8.8c-3.1,2.5-6.8,4.3-11.1,5.6C264.4,94.4,259.7,95.1,254.6,95.1z"/>
<g>
<path class="st1" d="M273.5,143.7c-32.9,24.3-80.7,37.2-121.8,37.2c-57.6,0-109.5-21.3-148.7-56.7c-3.1-2.8-0.3-6.6,3.4-4.4
c42.4,24.6,94.7,39.5,148.8,39.5c36.5,0,76.6-7.6,113.5-23.2C274.2,133.6,278.9,139.7,273.5,143.7z"/>
<path class="st1" d="M287.2,128.1c-4.2-5.4-27.8-2.6-38.5-1.3c-3.2,0.4-3.7-2.4-0.8-4.5c18.8-13.2,49.7-9.4,53.3-5
c3.6,4.5-1,35.4-18.6,50.2c-2.7,2.3-5.3,1.1-4.1-1.9C282.5,155.7,291.4,133.4,287.2,128.1z"/>
</g>
</g>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="21" xmlns:v="https://vecta.io/nano"><path d="M87.336 14.686l3.093-3.093a.51.51 0 0 0 .094-.557c-.085-.189-.271-.313-.475-.313a.52.52 0 0 0-.366.154l-3.068 3.078-3.123-3.122c-.1-.099-.229-.153-.364-.153-.205 0-.395.129-.476.32s-.036.411.116.56l3.115 3.126-3.069 3.069a.51.51 0 0 0-.117.563c.081.191.272.319.476.319.134 0 .265-.055.364-.154l3.078-3.078 3.113 2.862c.099.099.229.154.364.154a.52.52 0 0 0 .476-.312c.084-.189.046-.406-.106-.57z"/><path d="M83.172 18.874c-.298 0-.578-.186-.695-.465a.74.74 0 0 1 .169-.821l2.902-2.903-2.95-2.959c-.22-.217-.284-.531-.167-.816s.398-.467.697-.467c.199 0 .389.078.532.222l2.953 2.953 2.899-2.908c.146-.145.336-.224.535-.224a.76.76 0 0 1 .693.453.75.75 0 0 1-.136.814l-2.926 2.925 2.943 2.688c.228.247.284.562.163.84s-.395.455-.694.455a.75.75 0 0 1-.533-.224l-2.937-2.7-2.916 2.915c-.144.145-.333.224-.533.224m-.044-7.957c-.11 0-.212.07-.257.174a.27.27 0 0 0 .063.301l3.283 3.295-3.236 3.236c-.084.084-.11.198-.065.306.07.167.314.223.45.088l3.24-3.24 3.282 3.017c.155.156.383.094.459-.08.045-.103.022-.221-.063-.313l-3.294-3.007 3.268-3.268c.07-.078.09-.192.043-.297-.075-.169-.313-.223-.454-.085l-3.236 3.246-3.291-3.29c-.053-.056-.122-.084-.194-.084"/><path d="M95.973 12.618a2.01 2.01 0 0 0 2.063 1.953c1.111-.027 1.99-.945 1.963-2.05a2.01 2.01 0 0 0-2.061-1.953c-1.112.026-1.992.945-1.965 2.049m-8.228-9.616a2.014 2.014 0 1 0 4.027-.097A2.01 2.01 0 0 0 89.709.953c-1.112.027-1.992.944-1.965 2.048m-4.87-1.415c.021.856.738 1.532 1.597 1.511s1.542-.731 1.521-1.586S85.256-.02 84.397 0s-1.543.731-1.523 1.586m13.068 16.13c.02.783.673 1.403 1.463 1.384s1.413-.67 1.393-1.453-.675-1.404-1.463-1.384-1.412.668-1.393 1.453m-3.149 1.991a.842.842 0 1 0 1.683-.041.842.842 0 1 0-1.683.041M80.159 3.923a.92.92 0 0 0 .948.898c.511-.013.916-.435.904-.942s-.437-.911-.949-.899a.92.92 0 0 0-.903.943m-.107 3.624c.01.399.342.713.741.704s.716-.341.708-.738a.72.72 0 1 0-1.449.035m12.242-.414c.034 1.382 1.189 2.475 2.579 2.442a2.51 2.51 0 0 0 2.455-2.562c-.034-1.379-1.189-2.476-2.579-2.442a2.51 2.51 0 0 0-2.455 2.562" fill="#007a97"/><path d="M6.344 10.702H.892a.65.65 0 0 0-.654.662v6.604a.65.65 0 0 0 .654.66h5.462c.967 0 1.848-.87 1.848-1.826v-4.263c0-.944-.903-1.836-1.858-1.836m.011 6.89l-2.737.005-.242.001-2.105.004v-5.874h5.073a.89.89 0 0 1 .816.822v4.252c0 .399-.399.79-.805.79"/><path d="M6.354 18.864H.893c-.501 0-.893-.395-.893-.898v-6.603c0-.504.392-.899.893-.899h5.451c1.078 0 2.098 1.008 2.098 2.075v4.263c-.001 1.079-.996 2.062-2.087 2.062M.893 10.938c-.237 0-.416.184-.416.425v6.604a.41.41 0 0 0 .416.424h5.461c.843 0 1.61-.757 1.61-1.589v-4.263c0-.808-.802-1.601-1.62-1.601zm.139 6.901V11.49h5.311c.532 0 1.055.525 1.055 1.059v4.252c0 .528-.507 1.027-1.044 1.027l-2.736.006h-.242l-2.105.004zm.477-5.875v5.4l1.866-.004.241-.001 2.738-.005a.62.62 0 0 0 .568-.554v-4.252a.65.65 0 0 0-.579-.584zm17.175-1.262h-4.073c-1.088 0-1.971.83-1.971 1.848v5.611c0 .285.224.509.51.509s.521-.228.521-.509V15.42h5.951v2.741c0 .282.233.509.52.509a.51.51 0 0 0 .511-.509V12.55c.001-1.14-1.023-1.848-1.971-1.848m.939 1.848v1.874H13.67V12.55c0-.507.492-.821.95-.821h4.052c.456 0 .949.314.949.821"/><path d="M20.144 18.906c-.418 0-.76-.334-.76-.745v-2.505H13.91v2.506c0 .411-.341.745-.759.745a.74.74 0 0 1-.749-.745V12.55c0-1.15.992-2.085 2.21-2.085h4.072c1.063 0 2.21.797 2.21 2.085v5.612a.75.75 0 0 1-.75.745m-6.712-3.725h6.429v2.979c0 .15.126.272.282.272.15 0 .272-.122.272-.272v-5.612c0-.996-.9-1.612-1.733-1.612H14.61c-.956 0-1.733.723-1.733 1.612v5.612c0 .155.117.272.272.272s.282-.122.282-.272v-2.979zm6.43-.522h-6.43v-2.111c0-.654.618-1.059 1.189-1.059h4.051c.571 0 1.189.405 1.189 1.059zm-5.952-.474h5.475V12.55c0-.361-.37-.584-.712-.584h-4.051c-.342 0-.712.223-.712.584v1.636zm16.833-3.484H24.88a.513.513 0 1 0 0 1.027h2.421l-.005 3.024-.001.822-.004 2.586a.51.51 0 0 0 .521.509.51.51 0 0 0 .521-.509v-6.433h2.41a.51.51 0 1 0-.001-1.027"/><path d="M27.812 18.906c-.426 0-.76-.328-.76-.746l.004-2.586.003-1.492.004-2.117H24.88c-.424 0-.757-.331-.757-.751s.332-.749.757-.749h5.862c.424 0 .757.329.757.749s-.333.751-.757.751H28.57v6.195c.001.418-.333.746-.759.746m-2.932-7.968c-.159 0-.279.119-.279.277s.12.277.279.277h2.659v.238l-.004 2.354-.003 1.492-.003 2.586c0 .155.122.272.283.272a.27.27 0 0 0 .282-.272V11.49h2.648c.16 0 .28-.119.28-.277s-.12-.277-.28-.277H24.88zm16.37-.236h-4.073c-1.088 0-1.972.83-1.972 1.848v5.611c0 .285.224.509.51.509s.522-.228.522-.509V15.42h5.951v2.741c0 .282.234.509.521.509a.51.51 0 0 0 .511-.509V12.55c0-1.14-1.023-1.848-1.971-1.848m.939 1.848v1.874h-5.951V12.55c0-.507.493-.821.949-.821h4.052c.456 0 .949.314.949.821"/><path d="M42.71 18.906c-.419 0-.76-.334-.76-.745v-2.505h-5.474v2.506c0 .411-.341.745-.76.745a.74.74 0 0 1-.749-.745V12.55c0-1.15.99-2.085 2.21-2.085h4.072c1.063 0 2.21.797 2.21 2.085v5.612a.75.75 0 0 1-.749.745m-6.711-3.725h6.428v2.979c0 .15.127.272.283.272.15 0 .272-.122.272-.272v-5.612c0-.996-.899-1.612-1.733-1.612h-4.072c-.956 0-1.733.723-1.733 1.612v5.612c0 .155.117.272.272.272s.283-.122.283-.272zm6.428-.522h-6.428v-2.111c0-.654.617-1.059 1.187-1.059h4.052c.572 0 1.188.405 1.188 1.059v2.111zm-5.951-.474h5.474V12.55c0-.361-.37-.584-.711-.584h-4.052c-.341 0-.711.223-.711.584zm17.455-.018h-4.463c-.552 0-.803-.641-.803-1.236 0-.58.245-1.204.782-1.204h4.917a.513.513 0 1 0 0-1.026h-4.917c-1.191 0-1.815 1.127-1.815 2.239 0 1.085.577 2.253 1.845 2.253h4.4c.561.005.816.643.814 1.234-.002.566-.247 1.174-.781 1.174h-5.657c-.287 0-.51.226-.51.513s.224.512.51.512h5.646c1.257 0 1.83-1.159 1.83-2.237-.001-1.105-.618-2.223-1.8-2.223"/><path d="M53.9 18.863h-5.646a.749.749 0 1 1 0-1.499h5.657c.396 0 .541-.561.542-.938.001-.398-.151-.993-.578-.996h-4.397c-1.432 0-2.084-1.291-2.084-2.49 0-1.23.705-2.476 2.053-2.476h4.917c.424 0 .756.329.756.749s-.333.751-.756.751h-4.917c-.399 0-.544.579-.544.967 0 .401.15.999.564.999h4.463c1.337 0 2.037 1.237 2.037 2.459.001 1.191-.645 2.473-2.067 2.473m-5.646-1.024c-.155 0-.272.119-.272.276s.117.275.272.275H53.9c1.094 0 1.592-1.037 1.592-2 0-.987-.535-1.986-1.561-1.986h-4.463c-.716 0-1.041-.764-1.041-1.472 0-.694.319-1.442 1.021-1.442h4.917c.159 0 .279-.119.279-.277s-.12-.277-.279-.277h-4.917c-1.035 0-1.577 1.008-1.577 2.003 0 .971.504 2.016 1.608 2.016h4.4c.728.006 1.054.767 1.052 1.472-.002.679-.322 1.41-1.019 1.41h-5.657zm17.552-7.136h-6.377a.51.51 0 0 0-.52.513.51.51 0 0 0 .52.514h2.934l-.006 3.024-.005 3.408a.51.51 0 0 0 .521.509.51.51 0 0 0 .52-.509v-6.433h2.411a.514.514 0 1 0 .001-1.027"/><path d="M62.874 18.906c-.425 0-.76-.328-.76-.746l.006-3.409.005-2.786H59.43c-.426 0-.758-.331-.758-.751s.333-.749.758-.749h6.376c.424 0 .756.329.756.749s-.333.751-.756.751h-2.172v6.195c-.001.418-.335.746-.76.746m-3.445-7.968c-.161 0-.281.119-.281.277s.12.277.281.277h3.173l-.006 3.262-.005 3.408c0 .155.122.272.283.272s.283-.116.283-.272V11.49h2.649c.16 0 .28-.119.28-.277s-.12-.277-.28-.277h-6.377zm16.882-.236h-4.072c-1.088 0-1.971.83-1.971 1.848v5.611c0 .285.225.509.51.509s.522-.228.522-.509V15.42h5.951v2.741c0 .282.234.509.521.509a.51.51 0 0 0 .511-.509V12.55c0-1.14-1.022-1.848-1.971-1.848m.939 1.848v1.874H71.3V12.55c0-.507.492-.821.949-.821h4.053c.456 0 .949.314.949.821"/><path d="M77.772 18.906c-.419 0-.76-.334-.76-.745v-2.505h-5.474v2.506c0 .411-.341.745-.76.745a.74.74 0 0 1-.749-.745v-5.612c0-1.15.991-2.085 2.21-2.085h4.072c1.062 0 2.21.797 2.21 2.085v5.612c0 .411-.336.745-.749.745m-6.712-3.725h6.428v2.979c0 .15.127.272.283.272.15 0 .272-.122.272-.272v-5.612c0-.996-.9-1.612-1.733-1.612h-4.072c-.956 0-1.733.723-1.733 1.612v5.612c0 .155.117.272.272.272s.283-.122.283-.272v-2.979zm6.428-.522h-6.428v-2.111c0-.654.617-1.059 1.188-1.059h4.053c.571 0 1.188.405 1.188 1.059zm-5.951-.474h5.474v-1.636c0-.361-.369-.584-.71-.584h-4.053c-.342 0-.711.223-.711.584v1.636z"/></svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 272 92" width="272" height="92"><path fill="#EA4335" d="M115.75 47.18c0 12.77-9.99 22.18-22.25 22.18s-22.25-9.41-22.25-22.18C71.25 34.32 81.24 25 93.5 25s22.25 9.32 22.25 22.18zm-9.74 0c0-7.98-5.79-13.44-12.51-13.44S80.99 39.2 80.99 47.18c0 7.9 5.79 13.44 12.51 13.44s12.51-5.55 12.51-13.44z"/><path fill="#FBBC05" d="M163.75 47.18c0 12.77-9.99 22.18-22.25 22.18s-22.25-9.41-22.25-22.18c0-12.85 9.99-22.18 22.25-22.18s22.25 9.32 22.25 22.18zm-9.74 0c0-7.98-5.79-13.44-12.51-13.44s-12.51 5.46-12.51 13.44c0 7.9 5.79 13.44 12.51 13.44s12.51-5.55 12.51-13.44z"/><path fill="#4285F4" d="M209.75 26.34v39.82c0 16.38-9.66 23.07-21.08 23.07-10.75 0-17.22-7.19-19.66-13.07l8.48-3.53c1.51 3.61 5.21 7.87 11.17 7.87 7.31 0 11.84-4.51 11.84-13v-3.19h-.34c-2.18 2.69-6.38 5.04-11.68 5.04-11.09 0-21.25-9.66-21.25-22.09 0-12.52 10.16-22.26 21.25-22.26 5.29 0 9.49 2.35 11.68 4.96h.34v-3.61h9.25zm-8.56 20.92c0-7.81-5.21-13.52-11.84-13.52-6.72 0-12.35 5.71-12.35 13.52 0 7.73 5.63 13.36 12.35 13.36 6.63 0 11.84-5.63 11.84-13.36z"/><path fill="#34A853" d="M225 3v65h-9.5V3h9.5z"/><path fill="#EA4335" d="M262.02 54.48l7.56 5.04c-2.44 3.61-8.32 9.83-18.48 9.83-12.6 0-22.01-9.74-22.01-22.18 0-13.19 9.49-22.18 20.92-22.18 11.51 0 17.14 9.16 18.98 14.11l1.01 2.52-29.65 12.28c2.27 4.45 5.8 6.72 10.75 6.72 4.96 0 8.4-2.44 10.92-6.14zm-23.27-7.98l19.82-8.23c-1.09-2.77-4.37-4.7-8.23-4.7-4.95 0-11.84 4.37-11.59 12.93z"/><path fill="#4285F4" d="M35.29 41.41V32H67c.31 1.64.47 3.58.47 5.68 0 7.06-1.93 15.79-8.15 22.01-6.05 6.3-13.78 9.66-24.02 9.66C16.32 69.35.36 53.89.36 34.91.36 15.93 16.32.47 35.3.47c10.5 0 17.98 4.12 23.6 9.49l-6.64 6.64c-4.03-3.78-9.49-6.72-16.97-6.72-13.86 0-24.7 11.17-24.7 25.03 0 13.86 10.84 25.03 24.7 25.03 8.99 0 14.11-3.61 17.39-6.89 2.66-2.66 4.41-6.46 5.1-11.65l-22.49.01z"/></svg>
This diff is collapsed.
<svg width="150" height="150" viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="e399c19f-b68f-429d-b176-18c2117ff73c" x1="-1032.172" x2="-1059.213" y1="145.312" y2="65.426" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#114a8b"/>
<stop offset="1" stop-color="#0669bc"/>
</linearGradient>
<linearGradient id="ac2a6fc2-ca48-4327-9a3c-d4dcc3256e15" x1="-1023.725" x2="-1029.98" y1="108.083" y2="105.968" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-opacity=".3"/>
<stop offset=".071" stop-opacity=".2"/>
<stop offset=".321" stop-opacity=".1"/>
<stop offset=".623" stop-opacity=".05"/>
<stop offset="1" stop-opacity="0"/>
</linearGradient>
<linearGradient id="a7fee970-a784-4bb1-af8d-63d18e5f7db9" x1="-1027.165" x2="-997.482" y1="147.642" y2="68.561" gradientTransform="matrix(1 0 0 -1 1075 158)" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#3ccbf4"/>
<stop offset="1" stop-color="#2892df"/>
</linearGradient>
</defs>
<path fill="url(#e399c19f-b68f-429d-b176-18c2117ff73c)" d="M33.338 6.544h26.038l-27.03 80.087a4.152 4.152 0 0 1-3.933 2.824H8.149a4.145 4.145 0 0 1-3.928-5.47L29.404 9.368a4.152 4.152 0 0 1 3.934-2.825z"/>
<path fill="#0078d4" d="M71.175 60.261h-41.29a1.911 1.911 0 0 0-1.305 3.309l26.532 24.764a4.171 4.171 0 0 0 2.846 1.121h23.38z"/>
<path fill="url(#ac2a6fc2-ca48-4327-9a3c-d4dcc3256e15)" d="M33.338 6.544a4.118 4.118 0 0 0-3.943 2.879L4.252 83.917a4.14 4.14 0 0 0 3.908 5.538h20.787a4.443 4.443 0 0 0 3.41-2.9l5.014-14.777 17.91 16.705a4.237 4.237 0 0 0 2.666.972H81.24L71.024 60.261l-29.781.007L59.47 6.544z"/>
<path fill="url(#a7fee970-a784-4bb1-af8d-63d18e5f7db9)" d="M66.595 9.364a4.145 4.145 0 0 0-3.928-2.82H33.648a4.146 4.146 0 0 1 3.928 2.82l25.184 74.62a4.146 4.146 0 0 1-3.928 5.472h29.02a4.146 4.146 0 0 0 3.927-5.472z"/>
</svg>
\ No newline at end of file
<svg width="209" height="135" viewBox="0 0 209 135" fill="none" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="136.019" cy="67.2304" rx="66.6667" ry="64" fill="#FFDE2D"/>
<ellipse cx="69.352" cy="67.2304" rx="66.6667" ry="64" fill="#327EFF"/>
<path d="M2.68528 67.2304C2.68527 31.8842 32.5329 3.23047 69.3519 3.23047L69.3519 67.2304L2.68528 67.2304Z" fill="#327EFF"/>
<path d="M136.019 67.2305C136.019 102.577 106.171 131.23 69.3519 131.23L69.3519 67.2305L136.019 67.2305Z" fill="#FF6446"/>
<path d="M69.352 67.2304C69.352 31.8842 99.1997 3.23047 136.019 3.23047L136.019 67.2304L69.352 67.2304Z" fill="#FF6446"/>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="120" height="60"><style><![CDATA[.B{stroke-width:.866}.C{stroke:#fff}.D{stroke-linecap:round}.E{stroke-linejoin:round}]]></style><path d="M13.56 43.927H8.34v-5.25h5.504c2.014 0 3.022.9 3.022 2.666 0 1.723-1.102 2.585-3.305 2.585m3.752-5.312c-.715-.64-1.716-.96-3.003-.96l-7.476.04v12.56H8.34l-.014-5.347h5.563c1.395 0 2.493-.32 3.294-.96s1.202-1.53 1.202-2.666-.358-2.026-1.073-2.666zm9.747 9.004a2.56 2.56 0 0 1-.715 1.068c-.675.66-1.704.987-3.1.987-1.25 0-2.2-.32-2.88-.96s-1.005-1.497-1.005-2.57c0-.56.088-1.055.263-1.488a2.92 2.92 0 0 1 .762-1.096c.692-.63 1.646-.947 2.86-.947 2.7 0 4.033 1.177 4.033 3.53 0 .56-.077 1.05-.23 1.474m.273-4.633c-.918-.837-2.277-1.256-4.077-1.256-1.7 0-3.015.428-3.942 1.283-.837.774-1.255 1.818-1.255 3.132 0 1.305.432 2.358 1.296 3.16.477.432 1.033.745 1.667.938s1.38.3 2.234.3c1.8 0 3.154-.414 4.1-1.242.837-.756 1.255-1.804 1.255-3.145 0-1.35-.423-2.403-1.27-3.16zm11.4 4.997c0 1.7-1.515 2.536-4.544 2.536-.926 0-1.706-.06-2.34-.176s-1.148-.313-1.544-.584a2.31 2.31 0 0 1-.728-.8c-.18-.323-.297-.75-.35-1.255l1.4-.013c0 .665.247 1.155.74 1.47.53.378 1.467.567 2.813.567 2.117 0 3.176-.53 3.176-1.592 0-.62-.355-1.047-1.065-1.28-.144-.045-1-.164-2.57-.357s-2.546-.367-2.933-.52c-.836-.333-1.254-.93-1.254-1.794a2.02 2.02 0 0 1 1.12-1.889c.37-.17.83-.303 1.384-.398s1.195-.142 1.924-.142c2.916 0 4.374.915 4.374 2.745h-1.34c0-1.286-1.025-1.93-3.075-1.93-1.043 0-1.82.13-2.333.4s-.77.66-.77 1.2c0 .504.346.868 1.038 1.093.405.117 1.335.252 2.792.405 1.304.117 2.198.283 2.684.5.926.36 1.4.97 1.4 1.834zm5.536 2.3l-.573.08-.358.027c-.918 0-1.58-.133-1.985-.4s-.6-.732-.6-1.4v-5.73h-1.67v-.843h1.66l.013-2.708h1.285v2.708h2.238v.857l-2.238-.014v5.577c0 .415.1.702.33.86s.614.237 1.18.237c.08.01.17.006.27-.01s.247-.05.445-.102l.014.86zm8.887-1.912a3.81 3.81 0 0 1-1.2.661c-.45.153-.966.23-1.55.23-2.688 0-4.03-1.1-4.03-3.33 0-1.033.344-1.842 1.03-2.426s1.656-.876 2.905-.876c1.258 0 2.213.294 2.865.883s.978 1.377.978 2.366c0 1.078-.333 1.9-.998 2.494m2.283-6.36h-1.285l-.014 1.417c-.566-.575-.97-.94-1.214-1.092-.72-.395-1.65-.593-2.792-.593-1.673 0-2.95.382-3.83 1.146-.836.7-1.254 1.717-1.254 3.047 0 .656.106 1.243.317 1.76s.52.955.925 1.314c.883.737 2.13 1.106 3.742 1.106 1.936 0 3.3-.53 4.12-1.6v1.467c0 .935-.295 1.66-.884 2.172s-1.558.77-2.907.77c-1.268 0-2.172-.175-2.7-.524-.405-.268-.684-.734-.836-1.397H45.5c.144.925.535 1.595 1.174 2.008.738.476 1.984.714 3.738.714 3.356 0 5.034-1.247 5.034-3.742v-7.983zm6.95.835a6.72 6.72 0 0 0-1.078-.094c-2.112 0-3.168 1.158-3.168 3.475v4.028h-1.27l-.014-8.243 1.285.013v1.47h.067c.216-.58.557-1.02 1.025-1.318.512-.3 1.276-.435 2.292-.435h.863v1.103zm1.196 2.766c.162-.937.526-1.662 1.092-2.176.37-.297.787-.52 1.254-.67s.994-.223 1.578-.223c1.142 0 2.074.313 2.798.94s1.095 1.336 1.095 2.13h-7.807m7.933-2.543a4.12 4.12 0 0 0-1.674-1.001c-.666-.217-1.444-.325-2.335-.325-1.665 0-2.956.387-3.874 1.16s-1.377 1.827-1.377 3.16.44 2.4 1.322 3.172c.953.864 2.298 1.296 4.035 1.296.692 0 1.333-.08 1.922-.235s1.104-.38 1.545-.665c.774-.556 1.263-1.24 1.47-2.056h-1.4c-.477 1.4-1.663 2.114-3.56 2.114-1.34 0-2.37-.344-3.1-1.034-.62-.6-.93-1.356-.93-2.296h9.16c0-1.398-.4-2.495-1.228-3.3z" fill="#231f20"/><path d="M86.32 46.888c0 2.447-1.974 3.67-5.92 3.67-2.365 0-4.092-.42-5.18-1.265-.9-.693-1.335-1.75-1.335-3.17h1.6c0 2.285 1.64 3.427 4.925 3.427 1.574 0 2.713-.234 3.414-.7.594-.413.9-1.06.9-1.94 0-.872-.405-1.483-1.215-1.834-.46-.2-1.58-.427-3.36-.715-2.24-.342-3.693-.683-4.358-1.024-.962-.503-1.444-1.357-1.444-2.562 0-1.123.4-1.96 1.228-2.508.88-.602 2.393-.903 4.534-.903 3.87 0 5.803 1.285 5.803 3.855H84.3c0-1.925-1.437-2.887-4.3-2.887-1.44 0-2.494.194-3.16.58-.63.414-.945 1.02-.945 1.822 0 .837.405 1.426 1.215 1.768.43.198 1.7.472 3.806.824 1.98.297 3.315.643 4 1.04.945.486 1.417 1.327 1.417 2.524zm12.908 1.25a6.2 6.2 0 0 1-2.012 1.071c-.748.238-1.585.357-2.512.357-1.9 0-3.42-.5-4.586-1.53s-1.75-2.377-1.75-4.074c0-1.77.578-3.147 1.735-4.135s2.7-1.482 4.6-1.482c1.936 0 3.458.516 4.565 1.55.585.503 1.017 1.1 1.297 1.765s.42 1.44.42 2.303c0 1.76-.586 3.152-1.756 4.176m.845.833c.828-.584 1.44-1.3 1.837-2.123s.595-1.8.595-2.878c0-1.95-.648-3.514-1.944-4.7-.693-.647-1.53-1.128-2.5-1.442s-2.1-.472-3.36-.472c-2.447 0-4.368.593-5.763 1.78s-2.092 2.795-2.092 4.826c0 1.977.703 3.572 2.1 4.785s3.33 1.82 5.768 1.82c.953 0 1.785-.065 2.496-.193s1.313-.327 1.808-.594l2.348 1.627.98-.9-2.273-1.542zm14.33 1.283h-10.858V37.68l1.493-.027v11.55h9.38l-.014 1.05z" fill="#367faf"/><path d="M67.415 27.556c.197-1.64.138-1.88 1.36-1.614l.3.027c.94.043 2.167-.15 2.89-.486 1.553-.72 2.474-1.924.943-1.608-3.494.72-3.734-.462-3.734-.462 3.69-5.474 5.23-12.423 3.9-14.123-3.63-4.64-9.916-2.445-10.02-2.388l-.033.006c-.69-.143-1.463-.23-2.33-.243-1.58-.026-2.78.414-3.7 1.105 0 0-11.212-4.62-10.7 5.81.11 2.218 3.18 16.786 6.84 12.386 1.338-1.61 2.63-2.97 2.63-2.97.642.427 1.4.644 2.217.566l.062-.053a2.43 2.43 0 0 0 .025.626c-.943 1.053-.666 1.24-2.55 1.627-1.907.393-.787 1.093-.055 1.276.887.222 2.94.536 4.325-1.405l-.055.222c.37.296.345 2.127.397 3.435s.14 2.53.407 3.25.58 2.574 3.06 2.043c2.07-.444 3.654-1.082 3.798-7.023" fill="#231f20" stroke="#231f20" stroke-width="2.598"/><path d="M72.916 23.875c-3.494.72-3.734-.462-3.734-.462 3.69-5.474 5.23-12.423 3.9-14.124-3.63-4.64-9.916-2.445-10.02-2.388l-.034.006c-.69-.143-1.463-.23-2.33-.243-1.58-.026-2.78.414-3.7 1.105 0 0-11.212-4.62-10.7 5.81.11 2.22 3.18 16.786 6.84 12.386 1.338-1.61 2.63-2.97 2.63-2.97.642.427 1.41.644 2.216.566l.063-.053c-.02.2-.01.395.025.626-.943 1.053-.666 1.24-2.55 1.627-1.907.393-.787 1.093-.055 1.276.887.222 2.94.536 4.325-1.405l-.055.222c.37.296.63 1.925.585 3.4s-.072 2.49.22 3.282.58 2.574 3.06 2.043c2.07-.444 3.144-1.594 3.293-3.512.106-1.364.346-1.162.36-2.38l.192-.577c.222-1.85.035-2.445 1.31-2.167l.3.027c.94.043 2.168-.15 2.89-.486 1.553-.72 2.474-1.924.943-1.608z" fill="#417ba2"/><g fill="none" class="C B"><g class="D"><path d="M59.96 24.935c-.096 3.44.024 6.903.36 7.745s1.057 2.48 3.536 1.948c2.07-.444 2.824-1.303 3.15-3.2l.765-6.063M57 7.692s-11.22-4.586-10.7 5.842c.1 2.22 3.18 16.787 6.84 12.387 1.338-1.6 2.547-2.87 2.547-2.87M63.05 6.855c-.4.122 6.24-2.423 10.008 2.4 1.33 1.7-.2 8.65-3.9 14.124" class="E"/><path d="M69.157 23.37s.24 1.183 3.735.462c1.53-.316.6.887-.943 1.608-1.274.59-4.13.743-4.178-.074-.12-2.11 1.504-1.468 1.386-1.996-.106-.476-.832-.943-1.312-2.107-.42-1.017-5.75-8.812 1.48-7.654.265-.055-1.886-6.877-8.652-6.988s-6.542 8.32-6.542 8.32" stroke-linejoin="bevel"/></g><g class="E"><path d="M58.066 24.09c-.943 1.053-.666 1.24-2.55 1.627-1.907.393-.787 1.093-.055 1.276.887.222 2.94.536 4.325-1.405.422-.59-.002-1.534-.582-1.775-.28-.116-.655-.26-1.136.277z"/><path d="M58.004 24.072c-.095-.62.204-1.356.523-2.22.48-1.294 1.6-2.588.703-6.692-.66-3.058-5.098-.637-5.1-.222s.2 2.102-.074 4.067c-.36 2.564 1.63 4.733 3.923 4.51" class="D"/></g></g><g fill="#fff" class="C"><path d="M56.948 14.877c-.02.142.26.52.623.57s.675-.245.694-.386-.26-.298-.624-.35-.675.023-.694.165z" stroke-width=".289"/><path d="M68.022 14.588c.02.142-.26.52-.623.57s-.675-.245-.695-.386.26-.298.624-.348.675.023.695.165z" stroke-width=".144"/></g><path d="M69.323 13.608c.06 1.11-.24 1.868-.277 3.05-.056 1.72.82 3.687-.5 5.657" fill="none" class="B C D E"/></svg>
\ No newline at end of file
<svg width="167" height="56" viewBox="0 0 167 56" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_4688_32443)">
<path d="M78.6387 42.6243C78.6387 44.6538 76.9936 46.2992 74.9641 46.2992H72.4522V43.4301H72.3626C72.0936 43.8185 71.7349 44.222 71.2866 44.6402C70.8681 45.0289 70.3603 45.3876 69.7624 45.7164C69.1947 46.0449 68.5521 46.3139 67.8348 46.5234C67.1473 46.7325 66.43 46.8368 65.683 46.8368C64.0691 46.8368 62.6048 46.5678 61.2897 46.0299C59.9746 45.4622 58.8391 44.685 57.8827 43.6988C56.9563 42.6827 56.239 41.4874 55.7309 40.1128C55.2227 38.7378 54.9688 37.2286 54.9688 35.585C54.9688 34.0608 55.1929 32.6112 55.6412 31.2362C56.1192 29.8318 56.777 28.5912 57.6137 27.5153C58.4805 26.4396 59.5263 25.5879 60.7517 24.9602C61.9772 24.3028 63.3669 23.974 64.9209 23.974C66.3257 23.974 67.6257 24.1981 68.821 24.6464C70.0465 25.0649 71.0474 25.7971 71.8246 26.8433H71.9143V16.0827C71.9143 14.0533 73.5594 12.4082 75.5888 12.4082H78.6387V42.6243ZM72.4522 35.4053C72.4522 33.7617 71.9742 32.4319 71.0177 31.4155C70.0913 30.3995 68.7762 29.8913 67.0727 29.8913C65.3692 29.8913 64.0394 30.3995 63.0829 31.4155C62.1565 32.4319 61.6932 33.7617 61.6932 35.4053C61.6932 37.0493 62.1565 38.3791 63.0829 39.3951C64.0394 40.4115 65.3692 40.9197 67.0727 40.9197C68.7762 40.9197 70.0913 40.4115 71.0177 39.3951C71.9742 38.3791 72.4522 37.0493 72.4522 35.4053Z" fill="#DC244C"/>
<path d="M82.9893 28.1863C82.9893 26.1571 84.6344 24.512 86.6639 24.512H89.7137V28.0085H89.8034C90.5207 26.6638 91.3724 25.6626 92.3587 25.0051C93.3449 24.3177 94.5851 23.974 96.0795 23.974C96.4679 23.974 96.8563 23.989 97.2451 24.0188C97.6335 24.0487 97.9921 24.1085 98.321 24.1982V30.3398C97.8426 30.1902 97.3645 30.0855 96.8864 30.0256C96.4381 29.9359 95.9597 29.8911 95.4519 29.8911C94.1665 29.8911 93.1505 30.0704 92.4035 30.4291C91.6561 30.7877 91.0733 31.2959 90.6552 31.9533C90.2664 32.5809 90.0125 33.343 89.8931 34.2396C89.7733 35.1365 89.7137 36.1224 89.7137 37.1983V42.6241C89.7137 44.6536 88.0686 46.299 86.0392 46.299H82.9893V28.1863Z" fill="#DC244C"/>
<path d="M114.631 43.565H114.541C113.794 44.7306 112.793 45.5673 111.538 46.0754C110.312 46.5833 109.012 46.8372 107.637 46.8372C106.621 46.8372 105.635 46.688 104.679 46.3893C103.752 46.1203 102.93 45.7017 102.213 45.134C101.496 44.5659 100.928 43.8637 100.51 43.0267C100.091 42.19 99.8819 41.2188 99.8819 40.1131C99.8819 38.8579 100.106 37.7967 100.554 36.9303C101.033 36.0634 101.66 35.3462 102.437 34.7784C103.244 34.2104 104.156 33.7771 105.172 33.4784C106.188 33.1495 107.234 32.9103 108.31 32.7607C109.416 32.6116 110.506 32.5219 111.582 32.4918C112.688 32.462 113.704 32.4473 114.631 32.4473C114.631 31.2516 114.198 30.3102 113.331 29.6227C112.494 28.9054 111.493 28.5468 110.327 28.5468C109.222 28.5468 108.205 28.786 107.279 29.2641C106.382 29.7127 105.575 30.3403 104.858 31.1469L101.272 27.4709C102.527 26.3055 103.992 25.4388 105.665 24.871C107.339 24.2732 109.072 23.9744 110.865 23.9744C112.838 23.9744 114.451 24.2284 115.707 24.7365C116.992 25.2146 118.008 25.9319 118.755 26.8881C119.532 27.8446 120.07 29.0252 120.369 30.4296C120.668 31.8046 120.817 33.4034 120.817 35.2264V42.6251C120.817 44.6541 119.172 46.2996 117.143 46.2996H114.631V43.565ZM112.972 36.7506C112.464 36.7506 111.822 36.7807 111.044 36.8402C110.297 36.8704 109.565 36.9898 108.848 37.1989C108.161 37.4083 107.563 37.7221 107.055 38.1403C106.577 38.5588 106.337 39.1416 106.337 39.889C106.337 40.6959 106.681 41.2934 107.368 41.6818C108.056 42.0706 108.773 42.2646 109.52 42.2646C110.178 42.2646 110.806 42.1749 111.403 41.9956C112.031 41.8163 112.584 41.5624 113.062 41.2335C113.54 40.905 113.914 40.4865 114.183 39.9783C114.482 39.4705 114.631 38.8726 114.631 38.1855V36.7506H112.972Z" fill="#DC244C"/>
<path d="M125.485 28.1863C125.485 26.1571 127.13 24.512 129.16 24.512H131.941V27.4705H132.03C132.24 27.0524 132.538 26.6339 132.927 26.2155C133.315 25.7971 133.779 25.4235 134.317 25.0947C134.855 24.766 135.467 24.497 136.155 24.2878C136.842 24.0786 137.589 23.974 138.396 23.974C140.1 23.974 141.474 24.243 142.521 24.7809C143.566 25.289 144.373 26.0063 144.941 26.9326C145.539 27.8593 145.942 28.9499 146.152 30.2051C146.361 31.4603 146.466 32.8203 146.466 34.2849V42.6243C146.466 44.6538 144.82 46.2992 142.791 46.2992H139.741V35.6295C139.741 35.0019 139.711 34.3595 139.651 33.7018C139.621 33.0147 139.487 32.3871 139.248 31.8193C139.039 31.2512 138.695 30.7879 138.217 30.4293C137.769 30.0706 137.111 29.8913 136.244 29.8913C135.378 29.8913 134.675 30.0559 134.137 30.3844C133.6 30.6835 133.181 31.1017 132.882 31.6397C132.613 32.1478 132.434 32.7306 132.344 33.388C132.255 34.0457 132.21 34.7329 132.21 35.4501V42.6243C132.21 44.6538 130.565 46.2992 128.535 46.2992H125.485V28.1863Z" fill="#DC244C"/>
<path d="M166.515 26.2168C166.515 28.246 164.87 29.8911 162.841 29.8911H160.598V37.1538C160.598 37.7513 160.628 38.3043 160.687 38.8122C160.747 39.2906 160.882 39.7088 161.091 40.0674C161.3 40.426 161.614 40.7101 162.032 40.9195C162.481 41.0988 163.063 41.1881 163.781 41.1881C164.139 41.1881 164.603 41.1584 165.17 41.0985C165.768 41.0088 166.217 40.8299 166.515 40.5609V43.7666C166.515 45.2051 165.614 46.5434 164.184 46.7021C163.377 46.7918 162.585 46.8366 161.808 46.8366C160.673 46.8366 159.627 46.7172 158.67 46.478C157.714 46.2392 156.877 45.8654 156.16 45.3576C155.442 44.8197 154.875 44.1322 154.456 43.2951C154.068 42.4584 153.873 41.4424 153.873 40.2471V29.8911H149.57V28.1861C149.57 26.1569 151.215 24.5118 153.244 24.5118H153.873V21.7309C153.873 19.7015 155.519 18.0563 157.548 18.0563H160.598V24.5118H166.515V26.2168Z" fill="#DC244C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M38.6234 51.4767L37.5067 20.6899L35.4844 12.5732L48.9828 14.0022V51.2437L40.7371 56.0026L38.6234 51.4767Z" fill="#24386C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.9815 14L40.7359 18.7622L23.7198 15.0296L3.80271 23.139L0.484375 14L12.6067 7L24.7327 0L36.8553 7L48.9815 14Z" fill="#7589BE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.484375 13.9994L8.73004 18.7616L13.5099 32.9769L29.6488 45.89L24.733 55.9994L12.6071 48.999L0.484375 41.999V13.9994Z" fill="#B2BFE8"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M30.201 38.4209L24.7344 46.4799V56.0006L32.4913 51.525L36.4881 45.5569" fill="#24386C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.7368 36.9622L16.9766 23.5262L18.6481 19.0731L25.0025 15.9922L32.4904 23.5265L24.7368 36.9622Z" fill="#7589BE"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.9756 23.5254L24.7326 28.001V36.9595L17.5584 37.2682L13.2188 31.727L16.9756 23.5254Z" fill="#B2BFE8"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.7344 27.9996L32.4913 23.5244L37.7705 32.3147L31.382 37.5931L24.7344 36.9585V27.9996Z" fill="#24386C"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.49 51.524L40.7357 56V18.7622L32.7326 14.1433L24.7331 9.52441L16.7299 14.1433L8.73047 18.7622V37.2411L16.7299 41.86L24.7331 46.4793L32.49 41.9996V51.524ZM32.49 32.4789L24.7331 36.9582L16.9761 32.4789V23.524L24.7331 19.0448L32.49 23.524V32.4789Z" fill="#DC244C"/>
<path d="M24.7361 46.4828V36.9606L17.0195 32.5195V42.0259L24.7361 46.4828Z" fill="url(#paint0_linear_4688_32443)"/>
</g>
<defs>
<linearGradient id="paint0_linear_4688_32443" x1="23.3133" y1="38.7809" x2="15.6239" y2="38.7809" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF3364"/>
<stop offset="1" stop-color="#C91540" stop-opacity="0"/>
</linearGradient>
<clipPath id="clip0_4688_32443">
<rect width="166.03" height="56" fill="white" transform="translate(0.484375)"/>
</clipPath>
</defs>
</svg>
This diff is collapsed.
......@@ -2,11 +2,17 @@ import { CodeBlock } from "@/components/code-block";
import { Contributing } from "@/components/contribution";
import { CreateAppAnimation } from "@/components/create-app-animation";
import { Feature } from "@/components/feature";
import {
InfiniteLLMProviders,
InfiniteVectorStoreProviders,
} from "@/components/infinite-providers";
import { MagicMove } from "@/components/magic-move";
import { NpmInstall } from "@/components/npm-install";
import { TextEffect } from "@/components/text-effect";
import { Button } from "@/components/ui/button";
import { DOCUMENT_URL } from "@/lib/const";
import { SiStackblitz } from "@icons-pack/react-simple-icons";
import { Bot, Terminal } from "lucide-react";
import { Blocks, Bot, Footprints, Terminal } from "lucide-react";
import Link from "next/link";
export default function HomePage() {
......@@ -26,7 +32,7 @@ export default function HomePage() {
</div>
<div className="flex flex-wrap justify-center gap-4">
<Link href="/docs/llamaindex">
<Link href={DOCUMENT_URL}>
<Button variant="outline">Get Started</Button>
</Link>
<NpmInstall />
......@@ -43,6 +49,49 @@ export default function HomePage() {
</div>
<div className="mt-4" />
<div className="grid grid-cols-1 border-r md:grid-cols-2">
<Feature
icon={Footprints}
subheading="Progressive"
heading="Adding AI feature from simple to complex"
description="LlamaIndex.TS is designed to be simple to start with and can be extended to build complex AI applications."
>
<MagicMove
code={[
`import { OpenAI } from "llamaindex";
const llm = new OpenAI();
const response = await llm.complete({ prompt: "How are you?" });`,
`import { OpenAI } from "llamaindex";
const llm = new OpenAI();
const response = await llm.chat({
messages: [{ content: "Tell me a joke.", role: "user" }],
});`,
`import { OpenAI, ChatMemoryBuffer } from "llamaindex";
const llm = new OpenAI({ model: 'gpt4o-turbo' });
const buffer = new ChatMemoryBuffer({
tokenLimit: 128_000,
})
buffer.put({ content: "Tell me a joke.", role: "user" })
const response = await llm.chat({
messages: buffer.getMessages(),
stream: true
});`,
`import { OpenAIAgent, ChatMemoryBuffer } from "llamaindex";
const agent = new OpenAIAgent({
llm,
tools: [...myTools]
systemPrompt,
});
const buffer = new ChatMemoryBuffer({
tokenLimit: 128_000,
})
buffer.put({ content: "Analysis the data based on the given data.", role: "user" })
buffer.put({ content: \`\${data}\`, role: "user" })
const response = await agent.chat({
message: buffer.getMessages(),
});`,
]}
/>
</Feature>
<Feature
icon={Bot}
subheading="Agent"
......@@ -50,8 +99,7 @@ export default function HomePage() {
description="Build agents for RAG using LlamaIndex.TS. Agents are the core building blocks of RAG applications."
>
<CodeBlock
code={`
import { FunctionTool } from "llamaindex";
code={`import { FunctionTool } from "llamaindex";
import { OpenAIAgent } from "@llamaindex/openai";
const interpreterTool = FunctionTool.from(...);
......@@ -67,6 +115,27 @@ await agent.chat('...');`}
lang="ts"
/>
</Feature>
<Feature
icon={Blocks}
subheading="Providers"
heading="LLM / Data Loader / Vector Store"
description="LlamaIndex.TS provides various providers to turn your data into valuable insights."
>
<div className="mt-8 flex flex-col gap-8">
<div>
<h3 className="text-lg font-semibold text-fd-muted-foreground mb-2">
LLM
</h3>
<InfiniteLLMProviders />
</div>
<div>
<h3 className="text-lg font-semibold text-fd-muted-foreground mb-2">
Vector Store
</h3>
<InfiniteVectorStoreProviders />
</div>
</div>
</Feature>
<Feature
icon={Terminal}
subheading="Create Llama CLI"
......
import { DOCUMENT_URL } from "@/lib/const";
import { redirect } from "next/navigation";
export default async function Page(props: {
params: Promise<{
any: string[];
}>;
}) {
const path = await props.params.then(({ any }) => any.join("/"));
return redirect(new URL(path, DOCUMENT_URL).toString());
}
import { DOCUMENT_URL } from "@/lib/const";
import type { BaseLayoutProps } from "fumadocs-ui/layouts/shared";
/**
......@@ -11,10 +12,11 @@ export const baseOptions: BaseLayoutProps = {
nav: {
title: "LlamaIndex.TS",
},
githubUrl: "https://github.com/run-llama/LlamaIndexTS",
links: [
{
text: "Documentation",
url: "/docs/llamaindex",
url: DOCUMENT_URL,
active: "nested-url",
},
],
......
import { RootProvider } from "fumadocs-ui/provider";
import { Inter } from "next/font/google";
import type { ReactNode } from "react";
import "shiki-magic-move/dist/style.css";
import "./global.css";
const inter = Inter({
......
import { InfiniteSlider } from "@/components/ui/infinite-slider";
import { SiAnthropic, SiOpenai } from "@icons-pack/react-simple-icons";
import Image from "next/image";
export function InfiniteLLMProviders() {
return (
<InfiniteSlider gap={24} reverse>
<SiOpenai className="h-[60px] w-auto" />
<Image
src="/icons/Google_2015_logo.svg"
alt="Google"
width={60}
height={60}
className="h-[60px] w-auto"
/>
<Image
src="/icons/Microsoft_Azure.svg"
alt="Microsoft Azure"
width={60}
height={60}
className="h-[60px] w-auto"
/>
<SiAnthropic className="h-[60px] w-auto" />
<Image
src="/icons/Amazon_Web_Services_Logo.svg"
alt="Amazon Web Services"
width={60}
height={60}
className="h-[60px] w-auto"
/>
<Image
src="/icons/Groq_Logo.svg"
alt="Groq"
width={60}
height={60}
className="h-[60px] w-auto"
/>
</InfiniteSlider>
);
}
export function InfiniteVectorStoreProviders() {
return (
<InfiniteSlider gap={24}>
<Image
src="/icons/postgresql-ar21.svg"
alt="PostgreSQL"
width={60}
height={60}
className="h-[60px] w-auto"
/>
<Image
src="/icons/Datastax_logo.svg"
alt="Datastax"
width={60}
height={60}
className="h-[60px] w-auto"
/>
<Image
src="/icons/chroma.svg"
alt="Chroma"
width={60}
height={60}
className="h-[60px] w-auto"
/>
<Image
src="/icons/weaviate-nav-logo-light.svg"
alt="Weaviate"
width={60}
height={60}
className="h-[60px] w-auto"
/>
<Image
src="/icons/qdrant-logo.svg"
alt="Qdrant"
width={60}
height={60}
className="h-[60px] w-auto"
/>
</InfiniteSlider>
);
}
"use client";
import { Button } from "@/components/ui/button";
import { cn } from "@/lib/utils";
import { CodeBlock, Pre } from "fumadocs-ui/components/codeblock";
import { RotateCcw } from "lucide-react";
import { useTheme } from "next-themes";
import { useCallback, useEffect, useState } from "react";
import { createHighlighter, type HighlighterCore } from "shiki";
import { ShikiMagicMove } from "shiki-magic-move/react";
const highlighterPromise = createHighlighter({
themes: ["github-light", "github-dark"],
langs: ["js", "ts", "tsx"],
});
export type MagicMoveProps = {
code: string[];
};
export function MagicMove(props: MagicMoveProps) {
const [move, setMove] = useState<number>(0);
const currentCode = props.code[move];
const [highlighter, setHighlighter] = useState<HighlighterCore>();
const { resolvedTheme } = useTheme();
useEffect(() => {
async function initializeHighlighter() {
setHighlighter(await highlighterPromise);
}
initializeHighlighter().catch(console.error);
}, []);
const animate = useCallback(() => {
setMove((move) => (move + 1) % props.code.length);
}, [props.code]);
useEffect(() => {
if (move === props.code.length - 1) {
return;
} else {
const interval = setInterval(animate, 3000);
return () => clearInterval(interval);
}
}, [animate, move, props.code]);
return (
<CodeBlock allowCopy={false}>
{highlighter && (
<Pre>
<ShikiMagicMove
lang="ts"
theme={resolvedTheme === "dark" ? "github-dark" : "github-light"}
highlighter={highlighter}
code={currentCode}
options={{
duration: 800,
stagger: 0.3,
lineNumbers: false,
containerStyle: false,
}}
/>
</Pre>
)}
<Button
className={cn(
"absolute bottom-2 right-2",
move !== props.code.length - 1 ? "hidden" : "",
)}
variant="ghost"
size="icon"
disabled={move !== props.code.length - 1}
onClick={animate}
>
<RotateCcw />
</Button>
</CodeBlock>
);
}
"use client";
import { cn } from "@/lib/utils";
import { animate, motion, useMotionValue } from "framer-motion";
import { useEffect, useState } from "react";
import useMeasure from "react-use-measure";
type InfiniteSliderProps = {
children: React.ReactNode;
gap?: number;
duration?: number;
durationOnHover?: number;
direction?: "horizontal" | "vertical";
reverse?: boolean;
className?: string;
};
export function InfiniteSlider({
children,
gap = 16,
duration = 25,
durationOnHover,
direction = "horizontal",
reverse = false,
className,
}: InfiniteSliderProps) {
const [currentDuration, setCurrentDuration] = useState(duration);
const [ref, { width, height }] = useMeasure();
const translation = useMotionValue(0);
const [isTransitioning, setIsTransitioning] = useState(false);
const [key, setKey] = useState(0);
useEffect(() => {
let controls;
const size = direction === "horizontal" ? width : height;
const contentSize = size + gap;
const from = reverse ? -contentSize / 2 : 0;
const to = reverse ? 0 : -contentSize / 2;
if (isTransitioning) {
controls = animate(translation, [translation.get(), to], {
ease: "linear",
duration:
currentDuration * Math.abs((translation.get() - to) / contentSize),
onComplete: () => {
setIsTransitioning(false);
setKey((prevKey) => prevKey + 1);
},
});
} else {
controls = animate(translation, [from, to], {
ease: "linear",
duration: currentDuration,
repeat: Infinity,
repeatType: "loop",
repeatDelay: 0,
onRepeat: () => {
translation.set(from);
},
});
}
return controls?.stop;
}, [
key,
translation,
currentDuration,
width,
height,
gap,
isTransitioning,
direction,
reverse,
]);
const hoverProps = durationOnHover
? {
onHoverStart: () => {
setIsTransitioning(true);
setCurrentDuration(durationOnHover);
},
onHoverEnd: () => {
setIsTransitioning(true);
setCurrentDuration(duration);
},
}
: {};
return (
<div className={cn("overflow-hidden", className)}>
<motion.div
className="flex w-max items-center"
style={{
...(direction === "horizontal"
? { x: translation }
: { y: translation }),
gap: `${gap}px`,
flexDirection: direction === "horizontal" ? "row" : "column",
}}
ref={ref}
{...hoverProps}
>
{children}
{children}
</motion.div>
</div>
);
}
---
title: What is LlamaIndex?
description: LlamaIndex is a framework for building LLM-powered applications.
title: Getting Started with LlamaIndex.TS
description: Install llamaindex by running a single command.
---
import {
SiGithub,
SiNpm,
SiX,
SiDiscord,
} from "@icons-pack/react-simple-icons";
import { CodeBlock, Pre } from "fumadocs-ui/components/codeblock";
import { Tab, Tabs } from "fumadocs-ui/components/tabs";
LlamaIndex helps you ingest, structure, and access private or domain-specific data. It's available [as a Python package](https://docs.llamaindex.ai/en/stable/) and in TypeScript (this package).
LlamaIndex.TS offers the core features of LlamaIndex for JS Runtime-agnostic (Node.js, Deno, and Bun) applications.
## 🚀 Why LlamaIndex.TS?
LLMs offer a natural language interface between humans and inferred data. Widely available models come pre-trained on huge amounts of publicly available data, from Wikipedia and mailing lists to textbooks and source code.
Applications built on top of LLMs often require augmenting these models with private or domain-specific data. That data is often distributed across siloed applications and data stores. It's behind APIs, in SQL databases, or trapped in PDFs and slide decks.
LlamaIndex.TS helps you unlock that data and then build powerful applications with it.
## 🦙 What is LlamaIndex for?
LlamaIndex.TS handles several major use cases:
- **Structured Data Extraction**: turning complex, unstructured and semi-structured data into uniform, programmatically accessible formats.
- **Retrieval-Augmented Generation (RAG)**: answering queries across your internal data by providing LLMs with up-to-date, semantically relevant context including Question and Answer systems and chat bots.
- **Autonomous Agents**: building software that is capable of intelligently selecting and using tools to accomplish tasks in an interactive, unsupervised manner.
## 👨‍👩‍👧‍👦 Who is LlamaIndex for?
LlamaIndex targets the "AI Engineer": developers building software in any domain that can be enhanced by LLM-powered functionality, without needing to be an expert in machine learning or natural language processing.
Our high-level API allows beginner users to use LlamaIndex.TS to ingest, index, and query their data in just a few lines of code.
For more complex applications, our lower-level APIs allow advanced users to customize and extend any module—data connectors, indices, retrievers, and query engines, to fit their needs.
## Getting Started
<Tabs items={["npm", "yarn", "pnpm"]}>
<Tab value="npm">
<CodeBlock language="shell">
<Pre>npm install llamaindex</Pre>
</CodeBlock>
</Tab>
<Tab value="yarn">
<CodeBlock language="shell">
<Pre>yarn add llamaindex</Pre>
</CodeBlock>
</Tab>
<Tab value="pnpm">
<CodeBlock language="shell">
<Pre>pnpm add llamaindex</Pre>
</CodeBlock>
</Tab>
</Tabs>
```shell tab="npm"
npm install llamaindex
```
Our documentation includes [Installation Instructions](./getting_started/installation.mdx) and a [Starter Tutorial](./getting_started/starter_tutorial/retrieval_augmented_generation.mdx) to build your first application.
```shell tab="yarn"
yarn add llamaindex
```
Once you're up and running, [High-Level Concepts](./getting_started/concepts.md) has an overview of LlamaIndex's modular architecture. For more hands-on practical examples, look through our Examples section on the sidebar.
```shell tab="pnpm"
pnpm add llamaindex
```
## 🗺️ Ecosystem
</Tabs>
To download or contribute, find LlamaIndex on:
## What's next?
<Cards>
<Card
icon={<SiGithub />}
title="GitHub"
href="https://github.com/run-llama/LlamaIndexTS"
title="I'm new to RAG"
description="Learn more about RAG (Retrieval-augmented generation) using LlamaIndex.TS."
href="/docs/llamaindex/starter/what-is-rag"
/>
<Card
icon={<SiNpm />}
title="NPM"
href="https://www.npmjs.com/package/llamaindex"
title="I want to try LlamaIndex.TS"
description="Learn how to use LlamaIndex.TS with different JS runtime and frameworks."
href="/docs/llamaindex/starter"
/>
<Card
title="I want to improve performance when using LlamaIndex.TS"
description="Learn how to improve performance, reduce bundle size, improve accuracy."
href="/docs/llamaindex/performance"
/>
</Cards>
## Community
Need help? Have a feature suggestion? Join the LlamaIndex community:
<Cards>
<Card icon={<SiX />} title="Twitter" href="https://twitter.com/llama_index" />
<Card
icon={<SiDiscord />}
title="Discord"
href="https://discord.gg/dGcwcsnxhU"
title="Show me code examples"
description="Explore code examples using LlamaIndex.TS."
href="https://stackblitz.com/github/run-llama/LlamaIndexTS/tree/main/examples?file=README.md"
/>
</Cards>
......@@ -2,5 +2,5 @@
"title": "LlamaIndex",
"description": "The Data framework for LLM",
"root": true,
"pages": ["---Guide---", "index"]
"pages": ["---Guide---", "index", "starter"]
}
---
title: More
description: More
---
import {
SiGithub,
SiNpm,
SiX,
SiDiscord,
} from "@icons-pack/react-simple-icons";
## 🗺️ Ecosystem
To download or contribute, find LlamaIndex on:
<Cards>
<Card
icon={<SiGithub />}
title="GitHub"
href="https://github.com/run-llama/LlamaIndexTS"
/>
<Card
icon={<SiNpm />}
title="NPM"
href="https://www.npmjs.com/package/llamaindex"
/>
</Cards>
## Community
Need help? Have a feature suggestion? Join the LlamaIndex community:
<Cards>
<Card icon={<SiX />} title="Twitter" href="https://twitter.com/llama_index" />
<Card
icon={<SiDiscord />}
title="Discord"
href="https://discord.gg/dGcwcsnxhU"
/>
</Cards>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment