Converting the website into sveltekit (#3437)
* index page * demos page * guides gallery page * guides * some docs work * changes * changes * docs work * refactor some to ssr * more refactoring * add metatags * add special docs pages and improve nav * fix prev next in combining * add changelog * Site slugs for new website (#3431) * safe slugs for docs * add slugs to guides * changes * add flagging --------- Co-authored-by: aliabd <ali.si3luwa@gmail.com> * make anchor tags visible on hover * add anchor tags to docs * fix @html in codeblocks * fix demos in guides * syntax highlighting code in example usage * fix @html in changelog * fix contributing lin * fix assets in guides * fix broken assets on build * error page * fix meta tags updating * move guides to be /guides/[guide] instead of /[guide] * add headers to sections and make them linkable - freddy feedback * add guides section to docs * tighten width and add second nav bar * styling second nav bar * smooth scrolling in docs and guides * make components clickable in event listener graph * load latest gradio.js * menu bar on docs mobile * scrolling highlight menu and remove base docs page * vercel * refactor guides * fix slugs in docs * fix < and code formatting in guides * added search * redirect all old links * fix bad merge * fix paths * Fix css issue with spaces logo * add status page link to footer * add themes to docs * fix new documentation.py path * add python client docs * make docs faster * add clients ot docs * colors * convert to adapter static * prerender * fix broken paths in guides * fix broken slugs * Aliabd/website sveltekit test (#4572) * fixes to paths * fixes * typechecking * fix * fix * fix * types lib * more type fixes * extends fix * typing fix * typing fix * json typing fix * add jsons * rollup * tweak * fix lockfile * fix maybe * fix maybe * changes * ui functional fix * oops * pnpm version * fix app --------- Co-authored-by: pngwn <hello@pngwn.io> Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
1
.gitignore
vendored
@ -58,6 +58,7 @@ workspace.code-workspace
|
||||
|
||||
# FRP
|
||||
gradio/frpc_*
|
||||
.vercel
|
||||
|
||||
# js
|
||||
node_modules
|
||||
|
@ -48,7 +48,7 @@
|
||||
|
||||
## Breaking Changes:
|
||||
|
||||
[PR 4683](https://github.com/gradio-app/gradio/pull/4683) removes the explict named endpoint "load_examples" from gr.Interface that was introduced in [PR 4456]((https://github.com/gradio-app/gradio/pull/4683)).
|
||||
[PR 4683](https://github.com/gradio-app/gradio/pull/4683) removes the explict named endpoint "load_examples" from gr.Interface that was introduced in [PR 4456](https://github.com/gradio-app/gradio/pull/4456).
|
||||
|
||||
# 3.35.2
|
||||
|
||||
@ -1774,7 +1774,7 @@ No changes to highlight.
|
||||
|
||||
## Testing and Infrastructure Changes:
|
||||
|
||||
- Remove h11 pinning by [@ecederstrand](<[https://github.com/abidlabs](https://github.com/ecederstrand)>) in [PR 2820](<[https://github.com/gradio-app/gradio/pull/2808](https://github.com/gradio-app/gradio/pull/2820)>)
|
||||
- Remove h11 pinning by [@ecederstrand](https://github.com/ecederstrand) in [PR 2820](https://github.com/gradio-app/gradio/pull/2820)
|
||||
|
||||
## Breaking Changes:
|
||||
|
||||
|
@ -35,6 +35,24 @@ No changes to highlight.
|
||||
|
||||
No changes to highlight.
|
||||
|
||||
# 0.2.7
|
||||
|
||||
## New Features:
|
||||
|
||||
- The output directory for files downloaded via the Client can now be set by the `output_dir` parameter in `Client` by [@abidlabs](https://github.com/abidlabs) in [PR 4501](https://github.com/gradio-app/gradio/pull/4501)
|
||||
|
||||
## Bug Fixes:
|
||||
|
||||
- The output directory for files downloaded via the Client are now set to a temporary directory by default (instead of the working directory in some cases) by [@abidlabs](https://github.com/abidlabs) in [PR 4501](https://github.com/gradio-app/gradio/pull/4501)
|
||||
|
||||
## Breaking Changes:
|
||||
|
||||
No changes to highlight.
|
||||
|
||||
## Full Changelog:
|
||||
|
||||
No changes to highlight.
|
||||
|
||||
# 0.2.6
|
||||
|
||||
## New Features:
|
||||
|
@ -53,7 +53,7 @@ There are three arguments in the `Interface` constructor to specify where this c
|
||||
* `description`: which accepts text, markdown or HTML and places it right under the title.
|
||||
* `article`: which also accepts text, markdown or HTML and places it below the interface.
|
||||
|
||||

|
||||

|
||||
|
||||
If you're using the `Blocks` API instead, you can insert text, markdown, or HTML anywhere using the `gr.Markdown(...)` or `gr.HTML(...)` components, with descriptive content inside the `Component` constructor.
|
||||
|
||||
@ -109,7 +109,7 @@ If you wish for the user to provide a reason for flagging, you can pass a list o
|
||||
|
||||
## Preprocessing and Postprocessing
|
||||
|
||||

|
||||

|
||||
|
||||
As you've seen, Gradio includes components that can handle a variety of different data types, such as images, audio, and video. Most components can be used both as inputs or outputs.
|
||||
|
||||
@ -141,7 +141,7 @@ Gradio themes are the easiest way to customize the look and feel of your app. Yo
|
||||
demo = gr.Interface(..., theme=gr.themes.Monochrome())
|
||||
```
|
||||
|
||||
Gradio comes with a set of prebuilt themes which you can load from `gr.themes.*`. You can extend these themes or create your own themes from scratch - see the [Theming guide](https://gradio.app/theming-guide) for more details.
|
||||
Gradio comes with a set of prebuilt themes which you can load from `gr.themes.*`. You can extend these themes or create your own themes from scratch - see the [Theming guide](https://gradio.app/guides/theming-guide) for more details.
|
||||
|
||||
For additional styling ability, you can pass any CSS to your app using the `css=` kwarg.
|
||||
The base class for the Gradio app is `gradio-container`, so here's an example that changes the background color of the Gradio app:
|
||||
@ -295,4 +295,5 @@ Note: using batch functions with Gradio **requires** you to enable queuing in th
|
||||
|
||||
## Colab Notebooks
|
||||
|
||||
Gradio is able to run anywhere you run Python, including local jupyter notebooks as well as collaborative notebooks, such as [Google Colab](https://colab.research.google.com/). In the case of local jupyter notebooks and Google Colab notbooks, Gradio runs on a local server which you can interact with in your browser. (Note: for Google Colab, this is accomplished by [service worker tunneling](https://github.com/tensorflow/tensorboard/blob/master/docs/design/colab_integration.md), which requires cookies to be enabled in your browser.) For other remote notebooks, Gradio will also run on a server, but you will need to use [SSH tunneling](https://coderwall.com/p/ohk6cg/remote-access-to-ipython-notebooks-via-ssh) to view the app in your local browser. Often a simpler options is to use Gradio's built-in public links, [discussed in the next Guide](/sharing-your-app/#sharing-demos).
|
||||
|
||||
Gradio is able to run anywhere you run Python, including local jupyter notebooks as well as collaborative notebooks, such as [Google Colab](https://colab.research.google.com/). In the case of local jupyter notebooks and Google Colab notbooks, Gradio runs on a local server which you can interact with in your browser. (Note: for Google Colab, this is accomplished by [service worker tunneling](https://github.com/tensorflow/tensorboard/blob/master/docs/design/colab_integration.md), which requires cookies to be enabled in your browser.) For other remote notebooks, Gradio will also run on a server, but you will need to use [SSH tunneling](https://coderwall.com/p/ohk6cg/remote-access-to-ipython-notebooks-via-ssh) to view the app in your local browser. Often a simpler options is to use Gradio's built-in public links, [discussed in the next Guide](https://gradio.app/guides/sharing-your-app/#sharing-demos).
|
@ -9,7 +9,7 @@ How to share your Gradio app:
|
||||
5. [Using the API page](#api-page)
|
||||
6. [Adding authentication to the page](#authentication)
|
||||
7. [Accessing Network Requests](#accessing-the-network-request-directly)
|
||||
8. [Mounting within FastAPI](#mounting-within-another-fastapi-app)
|
||||
8. [Mounting within FastAPI](#mounting-within-another-fast-api-app)
|
||||
9. [Security](#security-and-file-access)
|
||||
|
||||
## Sharing Demos
|
||||
@ -24,7 +24,7 @@ This generates a public, shareable link that you can send to anybody! When you s
|
||||
|
||||
Keep in mind, however, that these links are publicly accessible, meaning that anyone can use your model for prediction! Therefore, make sure not to expose any sensitive information through the functions you write, or allow any critical changes to occur on your device. If you set `share=False` (the default, except in colab notebooks), only a local link is created, which can be shared by [port-forwarding](https://www.ssh.com/ssh/tunneling/example) with specific users.
|
||||
|
||||
<img style="width: 40%" src="/assets/guides/sharing.svg">
|
||||

|
||||
|
||||
Share links expire after 72 hours.
|
||||
|
||||
@ -38,7 +38,7 @@ After you have [created a free Hugging Face account](https://huggingface.co/join
|
||||
3. Connect Spaces with your Git repository and Spaces will pull the Gradio app from there. See [this guide how to host on Hugging Face Spaces](https://huggingface.co/blog/gradio-spaces) for more information.
|
||||
|
||||
<video autoplay muted loop>
|
||||
<source src="/assets/guides/hf_demo.mp4" type="video/mp4" />
|
||||
<source src="https://github.com/gradio-app/gradio/blob/main/guides/assets/hf_demo.mp4?raw=true" type="video/mp4" />
|
||||
</video>
|
||||
|
||||
## Embedding Hosted Spaces
|
||||
@ -47,7 +47,7 @@ Once you have hosted your app on Hugging Face Spaces (or on your own server), yo
|
||||
|
||||
There are two ways to embed your Gradio demos. You can find quick links to both options directly on the Hugging Face Space page, in the "Embed this Space" dropdown option:
|
||||
|
||||

|
||||

|
||||
|
||||
### Embedding with Web Components
|
||||
|
||||
@ -57,21 +57,23 @@ To embed with Web Components:
|
||||
|
||||
1. Import the gradio JS library into into your site by adding the script below in your site (replace {GRADIO_VERSION} in the URL with the library version of Gradio you are using).
|
||||
|
||||
```html
|
||||
<script type="module"
|
||||
```html
|
||||
<script type="module"
|
||||
src="https://gradio.s3-us-west-2.amazonaws.com/{GRADIO_VERSION}/gradio.js">
|
||||
</script>
|
||||
```
|
||||
</script>
|
||||
```
|
||||
|
||||
2. Add
|
||||
```html
|
||||
<gradio-app src="https://$your_space_host.hf.space"></gradio-app>
|
||||
```
|
||||
```html
|
||||
<gradio-app src="https://$your_space_host.hf.space"></gradio-app>
|
||||
```
|
||||
|
||||
element where you want to place the app. Set the `src=` attribute to your Space's embed URL, which you can find in the "Embed this Space" button. For example:
|
||||
|
||||
```html
|
||||
<gradio-app src="https://abidlabs-pytorch-image-classifier.hf.space"></gradio-app>
|
||||
```
|
||||
|
||||
```html
|
||||
<gradio-app src="https://abidlabs-pytorch-image-classifier.hf.space"></gradio-app>
|
||||
```
|
||||
|
||||
<script>
|
||||
fetch("https://pypi.org/pypi/gradio/json"
|
||||
@ -100,8 +102,8 @@ You can also customize the appearance and behavior of your web component with at
|
||||
Here's an example of how to use these attributes to create a Gradio app that does not lazy load and has an initial height of 0px.
|
||||
|
||||
```html
|
||||
<gradio-app space="gradio/Echocardiogram-Segmentation" eager="true"
|
||||
initial_height="0px"></gradio-app>
|
||||
<gradio-app space="gradio/Echocardiogram-Segmentation" eager="true"
|
||||
initial_height="0px"></gradio-app>
|
||||
```
|
||||
|
||||
_Note: While Gradio's CSS will never impact the embedding page, the embedding page can affect the style of the embedded Gradio app. Make sure that any CSS in the parent page isn't so general that it could also apply to the embedded Gradio app and cause the styling to break. Element selectors such as `header { ... }` and `footer { ... }` will be the most likely to cause issues._
|
||||
@ -111,7 +113,7 @@ _Note: While Gradio's CSS will never impact the embedding page, the embedding pa
|
||||
To embed with IFrames instead (if you cannot add javascript to your website, for example), add this element:
|
||||
|
||||
```html
|
||||
<iframe src="https://$your_space_host.hf.space"></iframe>
|
||||
<iframe src="https://$your_space_host.hf.space"></iframe>
|
||||
```
|
||||
|
||||
Again, you can find the `src=` attribute to your Space's embed URL, which you can find in the "Embed this Space" button.
|
||||
@ -124,7 +126,7 @@ You can use almost any Gradio app as an API! In the footer of a Gradio app [like
|
||||
|
||||

|
||||
|
||||
This is a page that lists the endpoints that can be used to query the Gradio app, via our supported clients: either [the Python client](/getting-started-with-the-python-client/), or [the JavaScript client](/getting-started-with-the-js-client/). For each endpoint, Gradio automatically generates the parameters and their types, as well as example inputs.
|
||||
This is a page that lists the endpoints that can be used to query the Gradio app, via our supported clients: either [the Python client](https://gradio.app/guides/getting-started-with-the-python-client/), or [the JavaScript client](https://gradio.app/guides/getting-started-with-the-js-client/). For each endpoint, Gradio automatically generates the parameters and their types, as well as example inputs.
|
||||
|
||||
The endpoints are automatically created when you launch a Gradio `Interface`. If you are using Gradio `Blocks`, you can also set up a Gradio API page, though we recommend that you explicitly name each event listener, such as
|
||||
|
||||
@ -134,7 +136,7 @@ btn.click(add, [num1, num2], output, api_name="addition")
|
||||
|
||||
This will add and document the endpoint `/api/addition/` to the automatically generated API page. Otherwise, your API endpoints will appear as "unnamed" endpoints.
|
||||
|
||||
*Note*: For Gradio apps in which [queueing is enabled](https://gradio.app/key-features#queuing), users can bypass the queue if they make a POST request to your API endpoint. To disable this behavior, set `api_open=False` in the `queue()` method. To disable the API page altogether, set `show_api=False` in `.launch()`.
|
||||
*Note*: For Gradio apps in which [queueing is enabled](https://gradio.app/guides/key-features#queuing), users can bypass the queue if they make a POST request to your API endpoint. To disable this behavior, set `api_open=False` in the `queue()` method. To disable the API page altogether, set `show_api=False` in `.launch()`.
|
||||
|
||||
## Authentication
|
||||
|
||||
|
@ -25,4 +25,4 @@ $demo_chatbot_dialogpt
|
||||
|
||||
Notice how the state persists across submits within each page, but if you load this demo in another tab (or refresh the page), the demos will not share chat history.
|
||||
|
||||
The default value of `state` is None. If you pass a default value to the state parameter of the function, it is used as the default value of the state instead. The `Interface` class only supports a single input and outputs state variable, though it can be a list with multiple elements. For more complex use cases, you can use Blocks, [which supports multiple `State` variables](/state_in_blocks/).
|
||||
The default value of `state` is None. If you pass a default value to the state parameter of the function, it is used as the default value of the state instead. The `Interface` class only supports a single input and outputs state variable, though it can be a list with multiple elements. For more complex use cases, you can use Blocks, [which supports multiple `State` variables](/guides/state-in-blocks/).
|
@ -1,10 +1,10 @@
|
||||
# More on Examples
|
||||
|
||||
This guide covers what more you can do with Examples: Loading examples from a directory, providing partial examples, and caching. If Examples is new to you, check out the intro in the [Key Features](../key-features/#example-inputs) guide.
|
||||
This guide covers what more you can do with Examples: Loading examples from a directory, providing partial examples, and caching. If Examples is new to you, check out the intro in the [Key Features](/guides/key-features/#example-inputs) guide.
|
||||
|
||||
## Providing Examples
|
||||
|
||||
As covered in the [Key Features](../key-features/#example-inputs) guide, adding examples to an Interface is as easy as providing a list of lists to the `examples`
|
||||
As covered in the [Key Features](/guides/key-features/#example-inputs) guide, adding examples to an Interface is as easy as providing a list of lists to the `examples`
|
||||
keyword argument.
|
||||
Each sublist is a data sample, where each element corresponds to an input of the prediction function.
|
||||
The inputs must be ordered in the same order as the prediction function expects them.
|
||||
|
@ -41,7 +41,7 @@ If you'd like to reference external files in your css, preface the file path (wh
|
||||
gr.Interface(..., css="body {background-image: url('file=clouds.jpg')}")
|
||||
```
|
||||
|
||||
**Warning**: Custom CSS is *not* guaranteed to work across Gradio versions as the Gradio HTML DOM may change. We recommend using custom CSS sparingly and instead using [Themes](/theming-guide/) whenever possible.
|
||||
**Warning**: Custom CSS is *not* guaranteed to work across Gradio versions as the Gradio HTML DOM may change. We recommend using custom CSS sparingly and instead using [Themes](/guides/theming-guide/) whenever possible.
|
||||
|
||||
## Loading Hugging Face Models and Spaces
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Blocks and Event Listeners
|
||||
|
||||
We took a quick look at Blocks in the [Quickstart](https://gradio.app/quickstart/#blocks-more-flexibility-and-control). Let's dive deeper. This guide will cover the how Blocks are structured, event listeners and their types, running events continuously, updating configurations, and using dictionaries vs lists.
|
||||
We took a quick look at Blocks in the [Quickstart](https://gradio.app/guides/quickstart/#blocks-more-flexibility-and-control). Let's dive deeper. This guide will cover the how Blocks are structured, event listeners and their types, running events continuously, updating configurations, and using dictionaries vs lists.
|
||||
|
||||
## Blocks Structure
|
||||
|
||||
|
@ -13,7 +13,7 @@ with gr.Blocks(theme=gr.themes.Glass()):
|
||||
...
|
||||
```
|
||||
|
||||
Gradio comes with a set of prebuilt themes which you can load from `gr.themes.*`. You can extend these themes or create your own themes from scratch - see the [Theming guide](/theming-guide) for more details.
|
||||
Gradio comes with a set of prebuilt themes which you can load from `gr.themes.*`. You can extend these themes or create your own themes from scratch - see the [Theming guide](/guides/theming-guide) for more details.
|
||||
|
||||
For additional styling ability, you can pass any CSS to your app using the `css=` kwarg.
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
Tags: TRANSLATION, HUB, SPACES
|
||||
|
||||
|
||||
**Prerequisite**: This Guide builds on the Blocks Introduction. Make sure to [read that guide first](https://gradio.app/quickstart/#blocks-more-flexibility-and-control).
|
||||
**Prerequisite**: This Guide builds on the Blocks Introduction. Make sure to [read that guide first](https://gradio.app/guides/quickstart/#blocks-more-flexibility-and-control).
|
||||
|
||||
## Introduction
|
||||
|
||||
|
@ -105,7 +105,7 @@ Here, `create_repo` creates a gradio repo with the target name under a specific
|
||||
|
||||
## Embedding your Space demo on other websites
|
||||
|
||||
Throughout this guide, you've seen many embedded Gradio demos. You can also do this on own website! The first step is to create a Hugging Face Space with the demo you want to showcase. Then, [follow the steps here to embed the Space on your website](/sharing-your-app/#embedding-hosted-spaces).
|
||||
Throughout this guide, you've seen many embedded Gradio demos. You can also do this on own website! The first step is to create a Hugging Face Space with the demo you want to showcase. Then, [follow the steps here to embed the Space on your website](/guides/sharing-your-app/#embedding-hosted-spaces).
|
||||
|
||||
|
||||
## Loading demos from Spaces
|
||||
|
@ -5,7 +5,7 @@ Contributed by the Comet team
|
||||
|
||||
## Introduction
|
||||
|
||||
In this guide we will demonstrate some of the ways you can use Gradio with Comet. We will cover the basics of using Comet with Gradio and show you some of the ways that you can leverage Gradio's advanced features such as [Embedding with iFrames](https://www.gradio.app/sharing-your-app/#embedding-with-iframes) and [State](https://www.gradio.app/docs/#state) to build some amazing model evaluation workflows.
|
||||
In this guide we will demonstrate some of the ways you can use Gradio with Comet. We will cover the basics of using Comet with Gradio and show you some of the ways that you can leverage Gradio's advanced features such as [Embedding with iFrames](https://www.gradio.app/guides/sharing-your-app/#embedding-with-iframes) and [State](https://www.gradio.app/docs/#state) to build some amazing model evaluation workflows.
|
||||
|
||||
Here is a list of the topics covered in this guide.
|
||||
|
||||
|
@ -54,10 +54,10 @@ Let's get started!
|
||||
|
||||
Install Gradio and Wandb at the top:
|
||||
|
||||
```sh
|
||||
```sh
|
||||
|
||||
pip install gradio wandb
|
||||
```
|
||||
pip install gradio wandb
|
||||
```
|
||||
|
||||
3. Finetune StyleGAN and W&B experiment tracking
|
||||
|
||||
@ -139,121 +139,195 @@ Let's get started!
|
||||
wandb.log({"Current Samples": out_table})
|
||||
```
|
||||
|
||||
alpha = 1.0
|
||||
alpha = 1-alpha
|
||||
|
||||
preserve_color = True
|
||||
num_iter = 100
|
||||
log_interval = 50
|
||||
|
||||
|
||||
samples = []
|
||||
column_names = ["Referece (y)", "Style Code(w)", "Real Face Image(x)"]
|
||||
|
||||
wandb.init(project="JoJoGAN")
|
||||
config = wandb.config
|
||||
config.num_iter = num_iter
|
||||
config.preserve_color = preserve_color
|
||||
wandb.log(
|
||||
{"Style reference": [wandb.Image(transforms.ToPILImage()(target_im))]},
|
||||
step=0)
|
||||
|
||||
# load discriminator for perceptual loss
|
||||
discriminator = Discriminator(1024, 2).eval().to(device)
|
||||
ckpt = torch.load('models/stylegan2-ffhq-config-f.pt', map_location=lambda storage, loc: storage)
|
||||
discriminator.load_state_dict(ckpt["d"], strict=False)
|
||||
|
||||
# reset generator
|
||||
del generator
|
||||
generator = deepcopy(original_generator)
|
||||
|
||||
g_optim = optim.Adam(generator.parameters(), lr=2e-3, betas=(0, 0.99))
|
||||
|
||||
# Which layers to swap for generating a family of plausible real images -> fake image
|
||||
if preserve_color:
|
||||
id_swap = [9,11,15,16,17]
|
||||
else:
|
||||
id_swap = list(range(7, generator.n_latent))
|
||||
|
||||
for idx in tqdm(range(num_iter)):
|
||||
mean_w = generator.get_latent(torch.randn([latents.size(0), latent_dim]).to(device)).unsqueeze(1).repeat(1, generator.n_latent, 1)
|
||||
in_latent = latents.clone()
|
||||
in_latent[:, id_swap] = alpha*latents[:, id_swap] + (1-alpha)*mean_w[:, id_swap]
|
||||
|
||||
img = generator(in_latent, input_is_latent=True)
|
||||
|
||||
with torch.no_grad():
|
||||
real_feat = discriminator(targets)
|
||||
fake_feat = discriminator(img)
|
||||
|
||||
loss = sum([F.l1_loss(a, b) for a, b in zip(fake_feat, real_feat)])/len(fake_feat)
|
||||
|
||||
|
||||
wandb.log({"loss": loss}, step=idx)
|
||||
if idx % log_interval == 0:
|
||||
generator.eval()
|
||||
my_sample = generator(my_w, input_is_latent=True)
|
||||
generator.train()
|
||||
my_sample = transforms.ToPILImage()(utils.make_grid(my_sample, normalize=True, range=(-1, 1)))
|
||||
wandb.log(
|
||||
{"Current stylization": [wandb.Image(my_sample)]},
|
||||
step=idx)
|
||||
table_data = [
|
||||
wandb.Image(transforms.ToPILImage()(target_im)),
|
||||
wandb.Image(img),
|
||||
wandb.Image(my_sample),
|
||||
]
|
||||
samples.append(table_data)
|
||||
|
||||
g_optim.zero_grad()
|
||||
loss.backward()
|
||||
g_optim.step()
|
||||
|
||||
out_table = wandb.Table(data=samples, columns=column_names)
|
||||
wandb.log({"Current Samples": out_table})
|
||||
```
|
||||
|
||||
4. Save, Download, and Load Model
|
||||
|
||||
Here's how to save and download your model.
|
||||
|
||||
```python
|
||||
```python
|
||||
|
||||
from PIL import Image
|
||||
import torch
|
||||
torch.backends.cudnn.benchmark = True
|
||||
from torchvision import transforms, utils
|
||||
from util import *
|
||||
import math
|
||||
import random
|
||||
import numpy as np
|
||||
from torch import nn, autograd, optim
|
||||
from torch.nn import functional as F
|
||||
from tqdm import tqdm
|
||||
import lpips
|
||||
from model import *
|
||||
from e4e_projection import projection as e4e_projection
|
||||
from PIL import Image
|
||||
import torch
|
||||
torch.backends.cudnn.benchmark = True
|
||||
from torchvision import transforms, utils
|
||||
from util import *
|
||||
import math
|
||||
import random
|
||||
import numpy as np
|
||||
from torch import nn, autograd, optim
|
||||
from torch.nn import functional as F
|
||||
from tqdm import tqdm
|
||||
import lpips
|
||||
from model import *
|
||||
from e4e_projection import projection as e4e_projection
|
||||
|
||||
from copy import deepcopy
|
||||
import imageio
|
||||
from copy import deepcopy
|
||||
import imageio
|
||||
|
||||
import os
|
||||
import sys
|
||||
import torchvision.transforms as transforms
|
||||
from argparse import Namespace
|
||||
from e4e.models.psp import pSp
|
||||
from util import *
|
||||
from huggingface_hub import hf_hub_download
|
||||
from google.colab import files
|
||||
import os
|
||||
import sys
|
||||
import torchvision.transforms as transforms
|
||||
from argparse import Namespace
|
||||
from e4e.models.psp import pSp
|
||||
from util import *
|
||||
from huggingface_hub import hf_hub_download
|
||||
from google.colab import files
|
||||
|
||||
torch.save({"g": generator.state_dict()}, "your-model-name.pt")
|
||||
torch.save({"g": generator.state_dict()}, "your-model-name.pt")
|
||||
|
||||
files.download('your-model-name.pt')
|
||||
files.download('your-model-name.pt')
|
||||
|
||||
latent_dim = 512
|
||||
device="cuda"
|
||||
model_path_s = hf_hub_download(repo_id="akhaliq/jojogan-stylegan2-ffhq-config-f", filename="stylegan2-ffhq-config-f.pt")
|
||||
original_generator = Generator(1024, latent_dim, 8, 2).to(device)
|
||||
ckpt = torch.load(model_path_s, map_location=lambda storage, loc: storage)
|
||||
original_generator.load_state_dict(ckpt["g_ema"], strict=False)
|
||||
mean_latent = original_generator.mean_latent(10000)
|
||||
latent_dim = 512
|
||||
device="cuda"
|
||||
model_path_s = hf_hub_download(repo_id="akhaliq/jojogan-stylegan2-ffhq-config-f", filename="stylegan2-ffhq-config-f.pt")
|
||||
original_generator = Generator(1024, latent_dim, 8, 2).to(device)
|
||||
ckpt = torch.load(model_path_s, map_location=lambda storage, loc: storage)
|
||||
original_generator.load_state_dict(ckpt["g_ema"], strict=False)
|
||||
mean_latent = original_generator.mean_latent(10000)
|
||||
|
||||
generator = deepcopy(original_generator)
|
||||
generator = deepcopy(original_generator)
|
||||
|
||||
ckpt = torch.load("/content/JoJoGAN/your-model-name.pt", map_location=lambda storage, loc: storage)
|
||||
generator.load_state_dict(ckpt["g"], strict=False)
|
||||
generator.eval()
|
||||
ckpt = torch.load("/content/JoJoGAN/your-model-name.pt", map_location=lambda storage, loc: storage)
|
||||
generator.load_state_dict(ckpt["g"], strict=False)
|
||||
generator.eval()
|
||||
|
||||
plt.rcParams['figure.dpi'] = 150
|
||||
plt.rcParams['figure.dpi'] = 150
|
||||
|
||||
|
||||
|
||||
transform = transforms.Compose(
|
||||
[
|
||||
transforms.Resize((1024, 1024)),
|
||||
transforms.ToTensor(),
|
||||
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
|
||||
]
|
||||
)
|
||||
transform = transforms.Compose(
|
||||
[
|
||||
transforms.Resize((1024, 1024)),
|
||||
transforms.ToTensor(),
|
||||
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)),
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
def inference(img):
|
||||
img.save('out.jpg')
|
||||
aligned_face = align_face('out.jpg')
|
||||
def inference(img):
|
||||
img.save('out.jpg')
|
||||
aligned_face = align_face('out.jpg')
|
||||
|
||||
my_w = e4e_projection(aligned_face, "out.pt", device).unsqueeze(0)
|
||||
with torch.no_grad():
|
||||
my_sample = generator(my_w, input_is_latent=True)
|
||||
|
||||
|
||||
npimage = my_sample[0].cpu().permute(1, 2, 0).detach().numpy()
|
||||
imageio.imwrite('filename.jpeg', npimage)
|
||||
return 'filename.jpeg'
|
||||
```
|
||||
my_w = e4e_projection(aligned_face, "out.pt", device).unsqueeze(0)
|
||||
with torch.no_grad():
|
||||
my_sample = generator(my_w, input_is_latent=True)
|
||||
|
||||
|
||||
npimage = my_sample[0].cpu().permute(1, 2, 0).detach().numpy()
|
||||
imageio.imwrite('filename.jpeg', npimage)
|
||||
return 'filename.jpeg'
|
||||
```
|
||||
|
||||
5. Build a Gradio Demo
|
||||
|
||||
```python
|
||||
```python
|
||||
|
||||
import gradio as gr
|
||||
import gradio as gr
|
||||
|
||||
title = "JoJoGAN"
|
||||
description = "Gradio Demo for JoJoGAN: One Shot Face Stylization. To use it, simply upload your image, or click one of the examples to load them. Read more at the links below."
|
||||
title = "JoJoGAN"
|
||||
description = "Gradio Demo for JoJoGAN: One Shot Face Stylization. To use it, simply upload your image, or click one of the examples to load them. Read more at the links below."
|
||||
|
||||
demo = gr.Interface(
|
||||
inference,
|
||||
gr.Image(type="pil"),
|
||||
gr.Image(type="file"),
|
||||
title=title,
|
||||
description=description
|
||||
)
|
||||
|
||||
demo.launch(share=True)
|
||||
```
|
||||
demo = gr.Interface(
|
||||
inference,
|
||||
gr.Image(type="pil"),
|
||||
gr.Image(type="file"),
|
||||
title=title,
|
||||
description=description
|
||||
)
|
||||
|
||||
demo.launch(share=True)
|
||||
```
|
||||
|
||||
6. Integrate Gradio into your W&B Dashboard
|
||||
|
||||
The last step—integrating your Gradio demo with your W&B dashboard—is just one extra line:
|
||||
|
||||
```python
|
||||
```python
|
||||
|
||||
demo.integrate(wandb=wandb)
|
||||
```
|
||||
demo.integrate(wandb=wandb)
|
||||
```
|
||||
|
||||
Once you call integrate, a demo will be created and you can integrate it into your dashboard or report
|
||||
|
||||
Outside of W&B with Web components, using the gradio-app tags allows anyone can embed Gradio demos on HF spaces directly into their blogs, websites, documentation, etc.:
|
||||
|
||||
```html
|
||||
|
||||
<gradio-app space="akhaliq/JoJoGAN"> <gradio-app>
|
||||
```
|
||||
```html
|
||||
|
||||
<gradio-app space="akhaliq/JoJoGAN"> </gradio-app>
|
||||
```
|
||||
|
||||
|
||||
7. (Optional) Embed W&B plots in your Gradio App
|
||||
@ -262,20 +336,20 @@ Let's get started!
|
||||
embed them within your Gradio app within a `gr.HTML` block.
|
||||
|
||||
The Report will need to be public and you will need to wrap the URL within an iFrame like this:
|
||||
```python
|
||||
|
||||
import gradio as gr
|
||||
|
||||
def wandb_report(url):
|
||||
iframe = f'<iframe src={url} style="border:none;height:1024px;width:100%">'
|
||||
return gr.HTML(iframe)
|
||||
|
||||
with gr.Blocks() as demo:
|
||||
report_url = 'https://wandb.ai/_scott/pytorch-sweeps-demo/reports/loss-22-10-07-16-00-17---VmlldzoyNzU2NzAx'
|
||||
report = wandb_report(report_url)
|
||||
|
||||
demo.launch(share=True)
|
||||
```
|
||||
```python
|
||||
|
||||
import gradio as gr
|
||||
|
||||
def wandb_report(url):
|
||||
iframe = f'<iframe src={url} style="border:none;height:1024px;width:100%">'
|
||||
return gr.HTML(iframe)
|
||||
|
||||
with gr.Blocks() as demo:
|
||||
report_url = 'https://wandb.ai/_scott/pytorch-sweeps-demo/reports/loss-22-10-07-16-00-17---VmlldzoyNzU2NzAx'
|
||||
report = wandb_report(report_url)
|
||||
|
||||
demo.launch(share=True)
|
||||
```
|
||||
|
||||
|
||||
## Conclusion
|
||||
|
@ -141,7 +141,7 @@ Let's deploy our Gradio app to the free HuggingFace Spaces platform.
|
||||
If you haven't used Spaces before, follow the previous guide [here](/using_hugging_face_integrations).
|
||||
You will have to add the `DB_USER`, `DB_PASSWORD`, and `DB_HOST` variables as "Repo Secrets". You can do this in the "Settings" tab.
|
||||
|
||||

|
||||

|
||||
|
||||
## Conclusion
|
||||
Congratulations! You know how to connect your gradio app to a database hosted on the cloud! ☁️
|
||||
|
@ -17,7 +17,7 @@ We'll cover the following steps in this Guide:
|
||||
|
||||
We'll be working with the [New York Times' COVID dataset](https://www.nytimes.com/interactive/2021/us/covid-cases.html) that is available as a public dataset on BigQuery. The dataset, named `covid19_nyt.us_counties` contains the latest information about the number of confirmed cases and deaths from COVID across US counties.
|
||||
|
||||
**Prerequisites**: This Guide uses [Gradio Blocks](../quickstart/#blocks-more-flexibility-and-control), so make your are familiar with the Blocks class.
|
||||
**Prerequisites**: This Guide uses [Gradio Blocks](/guides/quickstart/#blocks-more-flexibility-and-control), so make your are familiar with the Blocks class.
|
||||
|
||||
## Setting up your BigQuery Credentials
|
||||
|
||||
|
@ -8,7 +8,7 @@ Building the dashboard itself will just be 9 lines of Python code using Gradio,
|
||||
|
||||
<gradio-app space="gradio/line-plot"></gradio-app>
|
||||
|
||||
**Prerequisites**: This Guide uses [Gradio Blocks](../quickstart/#blocks-more-flexibility-and-control), so make you are familiar with the Blocks class.
|
||||
**Prerequisites**: This Guide uses [Gradio Blocks](/guides/quickstart/#blocks-more-flexibility-and-control), so make you are familiar with the Blocks class.
|
||||
|
||||
The process is a little different depending on if you are working with a publicly accessible or a private Google Sheet. We'll cover both, so let's get started!
|
||||
|
||||
|
@ -262,5 +262,5 @@ And that's it! Start uploading videos and you'll get some "acapellified" videos
|
||||
|
||||

|
||||
|
||||
If you'd like to learn more about how to use the Gradio Python Client in your projects, [read the dedicated Guide](/getting-started-with-the-python-client/).
|
||||
If you'd like to learn more about how to use the Gradio Python Client in your projects, [read the dedicated Guide](/guides/getting-started-with-the-python-client/).
|
||||
|
||||
|
@ -162,7 +162,7 @@ gr.Interface(
|
||||
|
||||
The `examples` parameter takes a list of lists, where each item in the sublists is ordered in the same order that we've listed the `inputs`. So in our case, `[seed, num_punks]`. Give it a try!
|
||||
|
||||
You can also try adding a `title`, `description`, and `article` to the `gr.Interface`. Each of those parameters accepts a string, so try it out and see what happens 👀 `article` will also accept HTML, as [explored in a previous guide](./key_features/#descriptive-content)!
|
||||
You can also try adding a `title`, `description`, and `article` to the `gr.Interface`. Each of those parameters accepts a string, so try it out and see what happens 👀 `article` will also accept HTML, as [explored in a previous guide](/guides/key-features/#descriptive-content)!
|
||||
|
||||
When you're all done, you may end up with something like this:
|
||||
|
||||
|
@ -46,7 +46,7 @@ You'll notice that when a user submits their message, we now *chain* three event
|
||||
|
||||
1. The first method `user()` updates the chatbot with the user message and clears the input field. This method also makes the input field non interactive so that the user can't send another message while the chatbot is responding. Because we want this to happen instantly, we set `queue=False`, which would skip any queue had it been enabled. The chatbot's history is appended with `(user_message, None)`, the `None` signifying that the bot has not responded.
|
||||
|
||||
2. The second method, `bot()` updates the chatbot history with the bot's response. Instead of creating a new message, we just replace the previously-created `None` message with the bot's response. Finally, we construct the message character by character and `yield` the intermediate outputs as they are being constructed. Gradio automatically turns any function with the `yield` keyword [into a streaming output interface](/key-features/#iterative-outputs).
|
||||
2. The second method, `bot()` updates the chatbot history with the bot's response. Instead of creating a new message, we just replace the previously-created `None` message with the bot's response. Finally, we construct the message character by character and `yield` the intermediate outputs as they are being constructed. Gradio automatically turns any function with the `yield` keyword [into a streaming output interface](/guides/key-features/#iterative-outputs).
|
||||
|
||||
3. The third method makes the input field interactive again so that users can send another message to the bot.
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
Tags: INTERPRETATION, SENTIMENT ANALYSIS
|
||||
|
||||
**Prerequisite**: This Guide requires you to know about Blocks and the interpretation feature of Interfaces.
|
||||
Make sure to [read the Guide to Blocks first](https://gradio.app/quickstart/#blocks-more-flexibility-and-control) as well as the
|
||||
Make sure to [read the Guide to Blocks first](https://gradio.app/guides/quickstart/#blocks-more-flexibility-and-control) as well as the
|
||||
interpretation section of the [Advanced Interface Features Guide](/advanced-interface-features#interpreting-your-predictions).
|
||||
|
||||
## Introduction
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Developing Faster with Auto-Reloading
|
||||
|
||||
**Prerequisite**: This Guide requires you to know about Blocks. Make sure to [read the Guide to Blocks first](https://gradio.app/quickstart/#blocks-more-flexibility-and-control).
|
||||
**Prerequisite**: This Guide requires you to know about Blocks. Make sure to [read the Guide to Blocks first](https://gradio.app/guides/quickstart/#blocks-more-flexibility-and-control).
|
||||
|
||||
This guide covers auto reloading, reloading in a Python IDE, and using gradio with Jupyter Notebooks.
|
||||
|
||||
|
@ -13,7 +13,7 @@ This guide will show you how to build a demo for your 3D image model in a few li
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Make sure you have the `gradio` Python package already [installed](https://gradio.app/quickstart).
|
||||
Make sure you have the `gradio` Python package already [installed](https://gradio.app/guides/quickstart).
|
||||
|
||||
|
||||
## Taking a Look at the Code
|
||||
|
@ -29,7 +29,7 @@ Here's how to build a real time speech recognition (ASR) app:
|
||||
1. [Set up the Transformers ASR Model](#1-set-up-the-transformers-asr-model)
|
||||
2. [Create a Full-Context ASR Demo with Transformers](#2-create-a-full-context-asr-demo-with-transformers)
|
||||
3. [Create a Streaming ASR Demo with Transformers](#3-create-a-streaming-asr-demo-with-transformers)
|
||||
4. [Create a Streaming ASR Demo with DeepSpeech](#4-create-a-streaming-asr-demo-with-deepspeech)
|
||||
4. [Create a Streaming ASR Demo with DeepSpeech](#4-create-a-streaming-asr-demo-with-deep-speech)
|
||||
|
||||
|
||||
## 1. Set up the Transformers ASR Model
|
||||
|
@ -121,7 +121,7 @@ shutil.copyfile("./data/reviews.db", DB_FILE)
|
||||
Note that you'll have to get an access token from the "Settings" tab of your HuggingFace for the above code to work.
|
||||
In the script, the token is securely accessed via an environment variable.
|
||||
|
||||

|
||||

|
||||
|
||||
Now we will create a background task to synch our local database to the dataset hub every 60 seconds.
|
||||
We will use the [AdvancedPythonScheduler](https://apscheduler.readthedocs.io/en/3.x/) to handle the scheduling.
|
||||
|
@ -7,7 +7,7 @@ Let's say that your Gradio demo goes *viral* on social media -- you have lots of
|
||||
|
||||
How can you configure your Gradio demo to handle the most traffic? In this Guide, we dive into some of the parameters of Gradio's `.queue()` method as well as some other related configurations, and discuss how to set these parameters in a way that allows you to serve lots of users simultaneously with minimal latency.
|
||||
|
||||
This is an advanced guide, so make sure you know the basics of Gradio already, such as [how to create and launch a Gradio Interface](https://gradio.app/quickstart/). Most of the information in this Guide is relevant whether you are hosting your demo on [Hugging Face Spaces](https://hf.space) or on your own server.
|
||||
This is an advanced guide, so make sure you know the basics of Gradio already, such as [how to create and launch a Gradio Interface](https://gradio.app/guides/quickstart/). Most of the information in this Guide is relevant whether you are hosting your demo on [Hugging Face Spaces](https://hf.space) or on your own server.
|
||||
|
||||
## Enabling Gradio's Queueing System
|
||||
|
||||
@ -92,7 +92,7 @@ The second function can be used with `batch=True` and an appropriate `max_batch_
|
||||
|
||||
### The `api_open` parameter
|
||||
|
||||
When creating a Gradio demo, you may want to restrict all traffic to happen through the user interface as opposed to the [programmatic API](/sharing_your_app/#api-page) that is automatically created for your Gradio demo. This is important because when people make requests through the programmatic API, they can potentially bypass users who are waiting in the queue and degrade the experience of these users.
|
||||
When creating a Gradio demo, you may want to restrict all traffic to happen through the user interface as opposed to the [programmatic API](/guides/sharing-your-app/#api-page) that is automatically created for your Gradio demo. This is important because when people make requests through the programmatic API, they can potentially bypass users who are waiting in the queue and degrade the experience of these users.
|
||||
|
||||
**Recommendation**: set the `api_open` parameter in `queue()` to `False` in your demo to prevent programmatic requests.
|
||||
|
||||
|
@ -160,7 +160,7 @@ because on Hugging Face Spaces, `allow_flagging` is set to `"never"` by default.
|
||||
|
||||
You can now see all the examples flagged above in this [public Hugging Face dataset](https://huggingface.co/datasets/aliabd/crowdsourced-calculator-demo).
|
||||
|
||||

|
||||

|
||||
|
||||
We created the `gradio.HuggingFaceDatasetSaver` class, but you can pass your own custom class as long as it inherits from `FLaggingCallback` defined in [this file](https://github.com/gradio-app/gradio/blob/master/gradio/flagging.py). If you create a cool callback, contribute it to the repo!
|
||||
|
||||
|
@ -1,25 +1,27 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<style>
|
||||
html {
|
||||
/* background: #111; */
|
||||
/* color: #eee; */
|
||||
font-family: Source Sans Pro;
|
||||
}
|
||||
</style>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<script type="module" src="http://localhost:4321/gradio.js"></script>
|
||||
<!-- <script type="module" src="https://gradio.s3-us-west-2.amazonaws.com/3.18.1b6/gradio.js"></script> -->
|
||||
<!-- <script type="module" src="https://gradio.s3-us-west-2.amazonaws.com/3.18.0/gradio.js"></script> -->
|
||||
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.3.6/iframeResizer.min.js"></script> -->
|
||||
|
||||
<title>Vite App</title>
|
||||
</head>
|
||||
<body>
|
||||
<!-- <h1>Hello title</h1>
|
||||
<head>
|
||||
<style>
|
||||
html {
|
||||
/* background: #111; */
|
||||
/* color: #eee; */
|
||||
font-family: Source Sans Pro;
|
||||
}
|
||||
</style>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="favicon.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<script type="module" src="http://localhost:4321/gradio.js"></script>
|
||||
<!-- <script type="module" src="https://gradio.s3-us-west-2.amazonaws.com/3.18.1b6/gradio.js"></script> -->
|
||||
<!-- <script type="module" src="https://gradio.s3-us-west-2.amazonaws.com/3.18.0/gradio.js"></script> -->
|
||||
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.3.6/iframeResizer.min.js"></script> -->
|
||||
|
||||
<title>Vite App</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- <h1>Hello title</h1>
|
||||
<h2>hello subtitle</h2>
|
||||
<p>
|
||||
Hello text. Hello text. Hello text. Hello text. Hello text. Hello text.
|
||||
@ -158,15 +160,15 @@
|
||||
Hello text. Hello text. Hello text. Hello text. Hello text. Hello text.
|
||||
Hello text. Hello text.
|
||||
</p> -->
|
||||
<!-- https://huggingface.co/spaces/freddyaboulton/blocks-essay -->
|
||||
<!-- <gradio-app
|
||||
<!-- https://huggingface.co/spaces/freddyaboulton/blocks-essay -->
|
||||
<!-- <gradio-app
|
||||
space="freddyaboulton/timeseries-forecasting-with-prophet
|
||||
"
|
||||
></gradio-app> -->
|
||||
<!-- -->
|
||||
<!-- </p> -->
|
||||
<!-- -->
|
||||
<!-- </p> -->
|
||||
|
||||
<!-- <gradio-app space="awacke1/GradioAutoPlotFromCSV" info="false"></gradio-app>
|
||||
<!-- <gradio-app space="awacke1/GradioAutoPlotFromCSV" info="false"></gradio-app>
|
||||
<gradio-app
|
||||
space="gradio/plot_component_main"
|
||||
initial_height="400px"
|
||||
@ -278,42 +280,39 @@
|
||||
<h2>Working</h2>
|
||||
-->
|
||||
|
||||
<gradio-app
|
||||
space="gradio/live_with_vars"
|
||||
initial_height="200px"
|
||||
control_page_title="true"
|
||||
></gradio-app>
|
||||
<!-- <iframe
|
||||
<gradio-app space="gradio/live_with_vars" initial_height="200px" control_page_title="true"></gradio-app>
|
||||
<!-- <iframe
|
||||
id="myIframe"
|
||||
allow="accelerometer; ambient-light-sensor; autoplay; battery; camera; document-domain; encrypted-media; fullscreen; geolocation; gyroscope; layout-animations; legacy-image-formats; magnetometer; microphone; midi; oversized-images; payment; picture-in-picture; publickey-credentials-get; sync-xhr; usb; vr ; wake-lock; xr-spatial-tracking"
|
||||
src="http://127.0.0.1:7860/"
|
||||
frameborder="0"
|
||||
></iframe> -->
|
||||
<button>Toggle Space</button>
|
||||
<script>
|
||||
// iFrameResize(
|
||||
// {
|
||||
// log: false,
|
||||
// checkOrigin: false,
|
||||
// heightCalculationMethod: "lowestElement"
|
||||
// },
|
||||
// "#myIframe"
|
||||
// );
|
||||
<button>Toggle Space</button>
|
||||
<script>
|
||||
// iFrameResize(
|
||||
// {
|
||||
// log: false,
|
||||
// checkOrigin: false,
|
||||
// heightCalculationMethod: "lowestElement"
|
||||
// },
|
||||
// "#myIframe"
|
||||
// );
|
||||
|
||||
let spaces = [
|
||||
"gradio/live_with_vars",
|
||||
"gradio/colorpicker_component_main"
|
||||
];
|
||||
let spaces = [
|
||||
"gradio/live_with_vars",
|
||||
"gradio/colorpicker_component_main"
|
||||
];
|
||||
|
||||
const b = document.getElementsByTagName("button")[0];
|
||||
b.addEventListener("click", update_space);
|
||||
const b = document.getElementsByTagName("button")[0];
|
||||
b.addEventListener("click", update_space);
|
||||
|
||||
function update_space() {
|
||||
const g = document.getElementsByTagName("gradio-app")[0];
|
||||
g.setAttribute("space", spaces[1]);
|
||||
const [_old, _new] = spaces;
|
||||
spaces = [_new, _old];
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
function update_space() {
|
||||
const g = document.getElementsByTagName("gradio-app")[0];
|
||||
g.setAttribute("space", spaces[1]);
|
||||
const [_old, _new] = spaces;
|
||||
spaces = [_new, _old];
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
8
js/_website/.gitignore
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
.DS_Store
|
||||
node_modules
|
||||
/build
|
||||
/.svelte-kit
|
||||
/package
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
1
js/_website/.npmrc
Normal file
@ -0,0 +1 @@
|
||||
engine-strict=true
|
38
js/_website/README.md
Normal file
@ -0,0 +1,38 @@
|
||||
# create-svelte
|
||||
|
||||
Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
|
||||
|
||||
## Creating a project
|
||||
|
||||
If you're seeing this, you've probably already done this step. Congrats!
|
||||
|
||||
```bash
|
||||
# create a new project in the current directory
|
||||
npm create svelte@latest
|
||||
|
||||
# create a new project in my-app
|
||||
npm create svelte@latest my-app
|
||||
```
|
||||
|
||||
## Developing
|
||||
|
||||
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
|
||||
# or start the server and open the app in a new browser tab
|
||||
npm run dev -- --open
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
To create a production version of your app:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
You can preview the production build with `npm run preview`.
|
||||
|
||||
> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
|
21
js/_website/generate_jsons/generate.py
Normal file
@ -0,0 +1,21 @@
|
||||
from src import demos, guides, docs, changelog
|
||||
import os
|
||||
import requests
|
||||
import json
|
||||
|
||||
WEBSITE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
||||
|
||||
def make_dir(root, path):
|
||||
return os.path.abspath(os.path.join(root, path))
|
||||
|
||||
def get_latest_release():
|
||||
with open(make_dir(WEBSITE_DIR, "src/routes/version.json"), "w+") as j:
|
||||
json.dump({
|
||||
"version": requests.get("https://pypi.org/pypi/gradio/json").json()["info"]["version"]
|
||||
}, j)
|
||||
|
||||
demos.generate(make_dir(WEBSITE_DIR, "src/routes/demos/demos.json"))
|
||||
guides.generate(make_dir(WEBSITE_DIR, "src/routes/guides/json/") + "/")
|
||||
docs.generate(make_dir(WEBSITE_DIR, "src/routes/docs/docs.json"))
|
||||
changelog.generate(make_dir(WEBSITE_DIR, "src/routes/changelog/changelog.json"))
|
||||
get_latest_release()
|
29
js/_website/generate_jsons/src/changelog/__init__.py
Normal file
@ -0,0 +1,29 @@
|
||||
import os
|
||||
import json
|
||||
import re
|
||||
|
||||
DIR = os.path.dirname(__file__)
|
||||
CHANGELOG_FILE = os.path.abspath(os.path.join(DIR, "../../../../../CHANGELOG.md"))
|
||||
|
||||
|
||||
def clean():
|
||||
with open(CHANGELOG_FILE, "r") as change_file:
|
||||
content = change_file.read()
|
||||
|
||||
# remove empty/unused sections
|
||||
content = re.sub(r"## [\w^:\n ]*No changes to highlight.", "", content)
|
||||
|
||||
# get versions and their correct href
|
||||
versions = re.findall(r"# Version \d\.\d[^\n ]*", content)
|
||||
versions = [("Upcoming Release", "upcoming-release")] + [("v" + v.strip("# Version "), "version-" + v.strip("# Version ").replace('.','')) for v in versions]
|
||||
|
||||
return content, versions
|
||||
|
||||
|
||||
def generate(json_path):
|
||||
content, versions = clean()
|
||||
with open(json_path, 'w+') as f:
|
||||
json.dump({
|
||||
"content": content,
|
||||
"versions": versions
|
||||
}, f)
|
147
js/_website/generate_jsons/src/demos/__init__.py
Normal file
@ -0,0 +1,147 @@
|
||||
import os
|
||||
import json
|
||||
|
||||
DIR = os.path.dirname(__file__)
|
||||
GRADIO_DEMO_DIR = os.path.abspath(os.path.join(DIR, "../../../../../demo/"))
|
||||
|
||||
def get_code_and_description(demo_name):
|
||||
with open(os.path.join(GRADIO_DEMO_DIR, demo_name, "run.py")) as f:
|
||||
code = f.read()
|
||||
with open(os.path.join(GRADIO_DEMO_DIR, demo_name, "DESCRIPTION.md")) as f:
|
||||
description = f.read()
|
||||
return code, description
|
||||
|
||||
|
||||
demos_by_category = [
|
||||
{
|
||||
"category": "🖊️ Text & Natural Language Processing",
|
||||
"demos": [
|
||||
{
|
||||
"name": "Hello World",
|
||||
"dir": "hello_world",
|
||||
},
|
||||
{
|
||||
"name": "Text Generation",
|
||||
"dir": "text_generation",
|
||||
},
|
||||
{
|
||||
"name": "Autocomplete",
|
||||
"dir": "autocomplete",
|
||||
},
|
||||
{
|
||||
"name": "Sentiment Analysis",
|
||||
"dir": "sentiment_analysis",
|
||||
},
|
||||
{
|
||||
"name": "Named Entity Recognition",
|
||||
"dir": "text_analysis",
|
||||
},
|
||||
{
|
||||
"name": "Multilingual Translation",
|
||||
"dir": "translation",
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"category": "🖼️ Images & Computer Vision",
|
||||
"demos": [
|
||||
{
|
||||
"name": "Image Classification",
|
||||
"dir": "image_classification",
|
||||
},
|
||||
{
|
||||
"name": "Image Segmentation",
|
||||
"dir": "image_segmentation",
|
||||
},
|
||||
{
|
||||
"name": "Image Transformation with AnimeGAN",
|
||||
"dir": "animeganv2",
|
||||
},
|
||||
{
|
||||
"name": "Image Generation (Fake GAN)",
|
||||
"dir": "fake_gan",
|
||||
},
|
||||
{
|
||||
"name": "Iterative Output",
|
||||
"dir": "fake_diffusion",
|
||||
},
|
||||
{
|
||||
"name": "3D Models",
|
||||
"dir": "depth_estimation",
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
"category": "📈 Tabular Data & Plots",
|
||||
"demos": [
|
||||
{
|
||||
"name": "Interactive Dashboard",
|
||||
"dir": "dashboard"
|
||||
},
|
||||
{
|
||||
"name": "Dashboard with Live Updates",
|
||||
"dir": "live_dashboard"
|
||||
},
|
||||
{
|
||||
"name": "Interactive Map of AirBnB Locations",
|
||||
"dir": "map_airbnb"
|
||||
},
|
||||
{
|
||||
"name": "Outbreak Forecast",
|
||||
"dir": "outbreak_forecast",
|
||||
},
|
||||
{
|
||||
"name": "Clustering with Scikit-Learn",
|
||||
"dir": "clustering",
|
||||
},
|
||||
{
|
||||
"name": "Time Series Forecasting",
|
||||
"dir": "timeseries-forecasting-with-prophet",
|
||||
},
|
||||
{
|
||||
"name": "Income Classification with XGBoost",
|
||||
"dir": "xgboost-income-prediction-with-explainability",
|
||||
},
|
||||
{
|
||||
"name": "Leaderboard",
|
||||
"dir": "leaderboard",
|
||||
},
|
||||
{
|
||||
"name": "Tax Calculator",
|
||||
"dir": "tax_calculator",
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
"category": "🎤 Audio & Speech",
|
||||
"demos": [
|
||||
{
|
||||
"name": "Text to Speech",
|
||||
"dir": "neon-tts-plugin-coqui",
|
||||
},
|
||||
{
|
||||
"name": "Speech to Text (ASR)",
|
||||
"dir": "automatic-speech-recognition",
|
||||
},
|
||||
{
|
||||
"name": "Musical Instrument Identification",
|
||||
"dir": "musical_instrument_identification",
|
||||
},
|
||||
{
|
||||
"name": "Speaker Verification",
|
||||
"dir": "same-person-or-different",
|
||||
},
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
for category in demos_by_category:
|
||||
for demo in category["demos"]:
|
||||
code, description = get_code_and_description(demo["dir"])
|
||||
demo["code"] = code
|
||||
demo["text"] = description
|
||||
|
||||
def generate(json_path):
|
||||
with open(json_path, 'w+') as f:
|
||||
json.dump(demos_by_category, f)
|
282
js/_website/generate_jsons/src/docs/__init__.py
Normal file
@ -0,0 +1,282 @@
|
||||
import json
|
||||
import os
|
||||
from gradio_client.documentation import generate_documentation, document_cls
|
||||
from gradio.events import EventListener
|
||||
from ..guides import guides
|
||||
|
||||
DIR = os.path.dirname(__file__)
|
||||
DEMOS_DIR = os.path.abspath(os.path.join(DIR, "../../../../../demo"))
|
||||
JS_CLIENT_README = os.path.abspath(os.path.join(DIR, "../../../../../client/js/README.md"))
|
||||
|
||||
docs = generate_documentation()
|
||||
docs["component"].sort(key=lambda x: x["name"])
|
||||
|
||||
|
||||
def add_component_shortcuts():
|
||||
for component in docs["component"]:
|
||||
if not getattr(component["class"], "allow_string_shortcut", True):
|
||||
continue
|
||||
component["string_shortcuts"] = [
|
||||
(
|
||||
component["class"].__name__,
|
||||
component["name"].lower(),
|
||||
"Uses default values",
|
||||
)
|
||||
]
|
||||
for subcls in component["class"].__subclasses__():
|
||||
if getattr(subcls, "is_template", False):
|
||||
_, tags, _ = document_cls(subcls)
|
||||
component["string_shortcuts"].append(
|
||||
(
|
||||
subcls.__name__,
|
||||
subcls.__name__.lower(),
|
||||
"Uses " + tags.get("sets", "default values"),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
add_component_shortcuts()
|
||||
|
||||
|
||||
def add_demos():
|
||||
for mode in docs:
|
||||
for cls in docs[mode]:
|
||||
if "demos" not in cls["tags"]:
|
||||
continue
|
||||
cls["demos"] = []
|
||||
demos = [demo.strip() for demo in cls["tags"]["demos"].split(",")]
|
||||
for demo in demos:
|
||||
demo_file = os.path.join(DEMOS_DIR, demo, "run.py")
|
||||
with open(demo_file) as run_py:
|
||||
demo_code = run_py.read()
|
||||
cls["demos"].append((demo, demo_code))
|
||||
|
||||
|
||||
add_demos()
|
||||
|
||||
ordered_events = [
|
||||
"Change()",
|
||||
"Click()",
|
||||
"Submit()",
|
||||
"Edit()",
|
||||
"Clear()",
|
||||
"Play()",
|
||||
"Pause()",
|
||||
"Stream()",
|
||||
"Blur()",
|
||||
"Upload()",
|
||||
]
|
||||
|
||||
|
||||
def add_supported_events():
|
||||
for component in docs["component"]:
|
||||
component["events_list"] = []
|
||||
event_listener_props = dir(EventListener)
|
||||
for listener in EventListener.__subclasses__():
|
||||
if not issubclass(component["class"], listener):
|
||||
continue
|
||||
for prop in dir(listener):
|
||||
if prop not in event_listener_props:
|
||||
component["events_list"].append(prop + "()")
|
||||
if component["events_list"]:
|
||||
component["events"] = ", ".join(component["events_list"])
|
||||
|
||||
|
||||
add_supported_events()
|
||||
|
||||
|
||||
def add_guides():
|
||||
for mode in docs:
|
||||
for cls in docs[mode]:
|
||||
if "guides" not in cls["tags"]:
|
||||
continue
|
||||
cls["guides"] = []
|
||||
docstring_guides = [
|
||||
guide.strip() for guide in cls["tags"]["guides"].split(",")
|
||||
]
|
||||
for docstring_guide in docstring_guides:
|
||||
for guide in guides:
|
||||
if docstring_guide == guide["name"]:
|
||||
cls["guides"].append(guide)
|
||||
|
||||
|
||||
add_guides()
|
||||
|
||||
|
||||
def style_types():
|
||||
for mode in docs:
|
||||
for cls in docs[mode]:
|
||||
for tag in [
|
||||
"preprocessing",
|
||||
"postprocessing",
|
||||
"examples-format",
|
||||
"events",
|
||||
]:
|
||||
if tag not in cls["tags"]:
|
||||
continue
|
||||
cls[tag] = (
|
||||
cls["tags"][tag]
|
||||
.replace(
|
||||
"{",
|
||||
"<span class='text-orange-500' style='font-family: monospace; font-size: large;' >",
|
||||
)
|
||||
.replace("}", "</span>")
|
||||
)
|
||||
|
||||
|
||||
style_types()
|
||||
|
||||
|
||||
def override_signature(name, signature):
|
||||
for mode in docs:
|
||||
for cls in docs[mode]:
|
||||
if cls["name"] == name:
|
||||
cls["override_signature"] = signature
|
||||
|
||||
|
||||
override_signature("Blocks", "with gradio.Blocks():")
|
||||
override_signature("Row", "with gradio.Row():")
|
||||
override_signature("Column", "with gradio.Column():")
|
||||
override_signature("Tab", "with gradio.Tab():")
|
||||
override_signature("Group", "with gradio.Group():")
|
||||
override_signature("Box", "with gradio.Box():")
|
||||
override_signature("Dataset", "gr.Dataset(components, samples)")
|
||||
|
||||
|
||||
def find_cls(target_cls):
|
||||
for mode in docs:
|
||||
for cls in docs[mode]:
|
||||
if cls["name"] == target_cls:
|
||||
return cls
|
||||
raise ValueError("Class not found")
|
||||
|
||||
|
||||
def organize_docs(d):
|
||||
organized = {
|
||||
"building": {},
|
||||
"components": {},
|
||||
"helpers": {},
|
||||
"routes": {},
|
||||
"events": {},
|
||||
"py-client": {},
|
||||
}
|
||||
pages = []
|
||||
for mode in d:
|
||||
for c in d[mode]:
|
||||
c["parent"] = "gradio"
|
||||
c["class"] = None
|
||||
if "returns" in c:
|
||||
c["returns"]["annotation"] = None
|
||||
for p in c.get("parameters", []):
|
||||
p["annotation"] = str(p["annotation"])
|
||||
if "default" in p:
|
||||
p["default"] = str(p["default"])
|
||||
for f in c["fns"]:
|
||||
f["fn"] = None
|
||||
f["parent"] = "gradio." + c["name"]
|
||||
for p in f.get("parameters", []):
|
||||
p["annotation"] = str(p["annotation"])
|
||||
if "default" in p:
|
||||
p["default"] = str(p["default"])
|
||||
if mode == "component":
|
||||
organized["components"][c["name"].lower()] = c
|
||||
pages.append(c["name"].lower())
|
||||
elif mode in ["helpers", "routes", "py-client"]:
|
||||
organized[mode][c["name"].lower()] = c
|
||||
pages.append(c["name"].lower())
|
||||
else:
|
||||
# if mode not in organized["building"]:
|
||||
# organized["building"][mode] = {}
|
||||
organized["building"][c["name"].lower()] = c
|
||||
pages.append(c["name"].lower())
|
||||
|
||||
c_keys = list(organized["components"].keys())
|
||||
for i, cls in enumerate(organized["components"]):
|
||||
if not i:
|
||||
organized["components"][cls]["prev_obj"] = "Components"
|
||||
organized["components"][cls]["next_obj"] = organized["components"][
|
||||
c_keys[1]
|
||||
]["name"]
|
||||
elif i == len(c_keys) - 1:
|
||||
organized["components"][cls]["prev_obj"] = organized["components"][
|
||||
c_keys[len(c_keys) - 2]
|
||||
]["name"]
|
||||
organized["components"][cls]["next_obj"] = "Examples"
|
||||
else:
|
||||
organized["components"][cls]["prev_obj"] = organized["components"][
|
||||
c_keys[i - 1]
|
||||
]["name"]
|
||||
organized["components"][cls]["next_obj"] = organized["components"][
|
||||
c_keys[i + 1]
|
||||
]["name"]
|
||||
c_keys = list(organized["helpers"].keys())
|
||||
for i, cls in enumerate(organized["helpers"]):
|
||||
if not i:
|
||||
organized["helpers"][cls]["prev_obj"] = "Video"
|
||||
organized["helpers"][cls]["next_obj"] = organized["helpers"][c_keys[1]][
|
||||
"name"
|
||||
]
|
||||
elif i == len(c_keys) - 1:
|
||||
organized["helpers"][cls]["prev_obj"] = organized["helpers"][
|
||||
c_keys[len(c_keys) - 2]
|
||||
]["name"]
|
||||
organized["helpers"][cls]["next_obj"] = "Request"
|
||||
else:
|
||||
organized["helpers"][cls]["prev_obj"] = organized["helpers"][c_keys[i - 1]][
|
||||
"name"
|
||||
]
|
||||
organized["helpers"][cls]["next_obj"] = organized["helpers"][c_keys[i + 1]][
|
||||
"name"
|
||||
]
|
||||
c_keys = list(organized["routes"].keys())
|
||||
for i, cls in enumerate(organized["routes"]):
|
||||
if not i:
|
||||
organized["routes"][cls]["prev_obj"] = "make_waveform"
|
||||
organized["routes"][cls]["next_obj"] = organized["routes"][c_keys[1]][
|
||||
"name"
|
||||
]
|
||||
elif i == len(c_keys) - 1:
|
||||
organized["routes"][cls]["prev_obj"] = organized["routes"][
|
||||
c_keys[len(c_keys) - 2]
|
||||
]["name"]
|
||||
organized["routes"][cls]["next_obj"] = "Python-Client"
|
||||
else:
|
||||
organized["routes"][cls]["prev_obj"] = organized["routes"][c_keys[i - 1]][
|
||||
"name"
|
||||
]
|
||||
organized["routes"][cls]["next_obj"] = organized["routes"][c_keys[i + 1]][
|
||||
"name"
|
||||
]
|
||||
c_keys = list(organized["py-client"].keys())
|
||||
for i, cls in enumerate(organized["py-client"]):
|
||||
if not i:
|
||||
organized["py-client"][cls]["prev_obj"] = "Python-Client"
|
||||
organized["py-client"][cls]["next_obj"] = organized["py-client"][c_keys[1]][
|
||||
"name"
|
||||
]
|
||||
elif i == len(c_keys) - 1:
|
||||
organized["py-client"][cls]["prev_obj"] = organized["py-client"][
|
||||
c_keys[len(c_keys) - 2]
|
||||
]["name"]
|
||||
organized["py-client"][cls]["next_obj"] = "JS-Client"
|
||||
else:
|
||||
organized["py-client"][cls]["prev_obj"] = organized["py-client"][
|
||||
c_keys[i - 1]
|
||||
]["name"]
|
||||
organized["py-client"][cls]["next_obj"] = organized["py-client"][
|
||||
c_keys[i + 1]
|
||||
]["name"]
|
||||
|
||||
organized["ordered_events"] = ordered_events
|
||||
|
||||
with open(JS_CLIENT_README, "r") as f:
|
||||
readme_content = f.read()
|
||||
return {"docs": organized, "pages": pages, "js_client": readme_content}
|
||||
|
||||
|
||||
docs = organize_docs(docs)
|
||||
|
||||
|
||||
def generate(json_path):
|
||||
with open(json_path, "w+") as f:
|
||||
json.dump(docs, f)
|
162
js/_website/generate_jsons/src/guides/__init__.py
Normal file
@ -0,0 +1,162 @@
|
||||
import os
|
||||
import markdown2
|
||||
import shutil
|
||||
import re
|
||||
import json
|
||||
|
||||
DIR = os.path.dirname(__file__)
|
||||
GUIDES_DIR = os.path.abspath(os.path.join(DIR, "../../../../../guides"))
|
||||
GUIDE_ASSETS_DIR = os.path.join(GUIDES_DIR, "assets")
|
||||
DEMOS_DIR = os.path.abspath(os.path.join(DIR, "../../../../../demo"))
|
||||
|
||||
|
||||
UNDERSCORE_TOKEN = "!UNDERSCORE!"
|
||||
|
||||
demos = {}
|
||||
for demo_folder in os.listdir(DEMOS_DIR):
|
||||
runfile = os.path.join(DEMOS_DIR, demo_folder, "run.py")
|
||||
if not os.path.exists(runfile):
|
||||
continue
|
||||
with open(runfile) as run_py:
|
||||
demos[demo_folder] = run_py.read().replace(
|
||||
'if __name__ == "__main__":\n demo.launch()', "demo.launch()"
|
||||
)
|
||||
|
||||
|
||||
def format_name(guide_name):
|
||||
index = None
|
||||
if re.match("^[0-9]+_", guide_name):
|
||||
index = int(guide_name[: guide_name.index("_")])
|
||||
guide_name = guide_name[guide_name.index("_") + 1 :]
|
||||
if guide_name.lower().endswith(".md"):
|
||||
guide_name = guide_name[:-3]
|
||||
pretty_guide_name = " ".join([word[0].upper() + word[1:] for word in guide_name.split("-")])
|
||||
return index, guide_name, pretty_guide_name
|
||||
|
||||
|
||||
guide_folders = sorted(os.listdir(GUIDES_DIR))
|
||||
guide_folders.remove("CONTRIBUTING.md")
|
||||
guide_folders.remove("assets")
|
||||
|
||||
guides = []
|
||||
guides_by_category = []
|
||||
guide_names = []
|
||||
guide_urls = []
|
||||
absolute_index = 0
|
||||
for guide_folder in guide_folders:
|
||||
guide_list = sorted(os.listdir(os.path.join(GUIDES_DIR, guide_folder)))
|
||||
_, guide_category, pretty_guide_category = format_name(guide_folder)
|
||||
guides_by_category.append({"category": pretty_guide_category, "guides": []})
|
||||
guide_names.append({"category": pretty_guide_category, "guides": []})
|
||||
for guide_file in guide_list:
|
||||
guide_index, guide_name, pretty_guide_name = format_name(guide_file)
|
||||
with open(os.path.join(GUIDES_DIR, guide_folder, guide_file), "r") as f:
|
||||
guide_content = f.read()
|
||||
|
||||
title = guide_content.split("\n")[0]
|
||||
|
||||
metadata_labels = []
|
||||
|
||||
def get_labeled_metadata(label, is_list=True):
|
||||
metadata_labels.append(label)
|
||||
full_label = label + " "
|
||||
metadata = [] if is_list else None
|
||||
if full_label in guide_content:
|
||||
metadata = guide_content.split(full_label)[1].split("\n")[0]
|
||||
if is_list:
|
||||
metadata = metadata.split(", ")
|
||||
return metadata
|
||||
|
||||
tags = get_labeled_metadata("Tags:")
|
||||
spaces = get_labeled_metadata("Related spaces:")
|
||||
contributor = get_labeled_metadata("Contributed by", is_list=False)
|
||||
|
||||
url = f"/guides/{guide_name}/"
|
||||
|
||||
guide_content = re.sub(
|
||||
r"\$code_([a-z _\-0-9]+)",
|
||||
lambda x: f"```python\n{demos[x.group(1)]}\n```",
|
||||
guide_content,
|
||||
)
|
||||
guide_content = re.sub(
|
||||
r"\$demo_([a-z _\-0-9]+)",
|
||||
lambda x: f"<gradio-app space='gradio/{x.group(1)}'></gradio-app>",
|
||||
guide_content,
|
||||
)
|
||||
|
||||
content_no_html = guide_content
|
||||
|
||||
guide_content = "\n".join(
|
||||
[
|
||||
line
|
||||
for i, line in enumerate(guide_content.split("\n"))
|
||||
if not any([line.startswith(label) for label in metadata_labels])
|
||||
]
|
||||
)
|
||||
guide_content = re.sub(
|
||||
r"```([a-z]+)\n",
|
||||
lambda x: f"<div class='codeblock'><pre><code class='lang-{x.group(1)}'>",
|
||||
guide_content,
|
||||
)
|
||||
guide_content = re.sub(r"```", "</code></pre></div>", guide_content)
|
||||
guide_content = re.sub(
|
||||
r"\$code_([a-z _\-0-9]+)",
|
||||
lambda x: f"<div class='codeblock'><pre><code class='lang-python'>{demos[x.group(1)]}</code></pre></div>",
|
||||
guide_content,
|
||||
)
|
||||
guide_content = re.sub(
|
||||
r"\$demo_([a-z _\-0-9]+)",
|
||||
lambda x: f"<gradio-app space='gradio/{x.group(1).replace('_', UNDERSCORE_TOKEN)}' />",
|
||||
guide_content,
|
||||
)
|
||||
guide_html = markdown2.markdown(
|
||||
guide_content,
|
||||
extras=[
|
||||
"target-blank-links",
|
||||
"header-ids",
|
||||
"tables",
|
||||
"fenced-code-blocks",
|
||||
],
|
||||
).replace(UNDERSCORE_TOKEN, "_")
|
||||
|
||||
|
||||
guide_data = {
|
||||
"name": guide_name,
|
||||
"category": guide_category,
|
||||
"pretty_category": pretty_guide_category,
|
||||
"guide_index": guide_index,
|
||||
"absolute_index": absolute_index,
|
||||
"pretty_name": pretty_guide_name,
|
||||
"content": content_no_html,
|
||||
"html": guide_html,
|
||||
"tags": tags,
|
||||
"spaces": spaces,
|
||||
"url": url,
|
||||
"contributor": contributor,
|
||||
}
|
||||
guides.append(guide_data)
|
||||
guides_by_category[-1]["guides"].append(guide_data)
|
||||
guide_names[-1]["guides"].append({"name": guide_name, "pretty_name": pretty_guide_name, "url": url})
|
||||
guide_urls.append(guide_name)
|
||||
absolute_index += 1
|
||||
|
||||
|
||||
def generate(json_path):
|
||||
if not os.path.isdir(json_path):
|
||||
os.mkdir(json_path)
|
||||
with open(json_path + "guides_by_category.json", 'w+') as f:
|
||||
json.dump({
|
||||
"guides_by_category": guides_by_category,
|
||||
}, f)
|
||||
for guide in guides:
|
||||
with open(json_path + guide["name"] + ".json", 'w+') as f:
|
||||
json.dump({
|
||||
"guide": guide
|
||||
}, f)
|
||||
with open(json_path + "guide_names.json", 'w+') as f:
|
||||
json.dump({
|
||||
"guide_names": guide_names,
|
||||
"guide_urls": guide_urls
|
||||
}, f)
|
||||
|
||||
|
36
js/_website/package.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "website",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vite dev",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
||||
"prepare": "svelte-kit sync"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-auto": "^2.0.0",
|
||||
"@sveltejs/adapter-static": "^2.0.2",
|
||||
"@sveltejs/kit": "^1.5.0",
|
||||
"@tailwindcss/forms": "^0.5.0",
|
||||
"@tailwindcss/typography": "^0.5.4",
|
||||
"@types/node": "^20.3.2",
|
||||
"@types/prismjs": "^1.26.0",
|
||||
"prismjs": "1.29.0",
|
||||
"svelte": "^3.59.2",
|
||||
"svelte-check": "^3.0.1",
|
||||
"tailwindcss": "^3.1.6",
|
||||
"tslib": "^2.4.1",
|
||||
"typescript": "^4.9.3",
|
||||
"vite": "^4.3.9"
|
||||
},
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@sindresorhus/slugify": "^2.2.0",
|
||||
"hast-util-to-string": "^2.0.0",
|
||||
"mdsvex": "^0.10.6",
|
||||
"postcss": ">=8.3.3 <9.0.0"
|
||||
}
|
||||
}
|
4
js/_website/postcss.config.cjs
Normal file
@ -0,0 +1,4 @@
|
||||
module.exports = {
|
||||
extract: "themes.css",
|
||||
plugins: [require("tailwindcss/nesting"), require("tailwindcss")]
|
||||
};
|
15
js/_website/src/app.d.ts
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
// See https://kit.svelte.dev/docs/types#app
|
||||
// for information about these interfaces
|
||||
declare global {
|
||||
namespace App {
|
||||
// interface Error {}
|
||||
// interface Locals {}
|
||||
// interface PageData {}
|
||||
// interface Platform {}
|
||||
}
|
||||
}
|
||||
|
||||
declare module "*.json"
|
||||
|
||||
|
||||
export { };
|
13
js/_website/src/app.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
%sveltekit.head%
|
||||
</head>
|
||||
<body data-sveltekit-preload-data="hover">
|
||||
<div style="display: contents">%sveltekit.body%</div>
|
||||
</body>
|
||||
|
||||
</html>
|
4
js/_website/src/assets/copy.js
Normal file
@ -0,0 +1,4 @@
|
||||
export const svgCopy =
|
||||
'<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true"><path fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path><path fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path></svg>';
|
||||
export const svgCheck =
|
||||
'<svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true"><path fill-rule="evenodd" fill="rgb(255, 124, 1)" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>';
|
20
js/_website/src/assets/demo_code.js
Normal file
@ -0,0 +1,20 @@
|
||||
export const sketch = `<pre class="language-python"><code class="language-python"><span class="token keyword">import</span> gradio <span class="token keyword">as</span> gr
|
||||
<span class="token keyword">def</span> <span class="token function">sketch_recognition</span><span class="token punctuation">(</span>img<span class="token punctuation">)</span><span class="token punctuation">:</span>
|
||||
<span class="token keyword">pass</span><span class="token comment"># Implement your sketch recognition model here...</span>
|
||||
|
||||
gr<span class="token punctuation">.</span>Interface<span class="token punctuation">(</span>fn<span class="token operator">=</span>sketch_recognition<span class="token punctuation">,</span> inputs<span class="token operator">=</span><span class="token string">"sketchpad"</span><span class="token punctuation">,</span> outputs<span class="token operator">=</span><span class="token string">"label"</span><span class="token punctuation">).</span>launch<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</code></pre>`;
|
||||
|
||||
export const q_a = `<pre class="language-python"><code class="language-python"><span class="token keyword">import</span> gradio <span class="token keyword">as</span> gr
|
||||
<span class="token keyword">def</span> <span class="token function">question_answer</span><span class="token punctuation">(</span>context<span class="token punctuation">,</span> question<span class="token punctuation">)</span><span class="token punctuation">:</span>
|
||||
<span class="token keyword">pass </span><span class="token comment"> # Implement your question-answering model here...</span>
|
||||
|
||||
gr<span class="token punctuation">.</span>Interface<span class="token punctuation">(</span>fn<span class="token operator">=</span>question_answer<span class="token punctuation">,</span> inputs<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">"text"</span><span class="token punctuation">,</span> <span class="token string">"text"</span><span class="token punctuation">],</span> outputs<span class="token operator">=</span>[</span><span class="token string">"textbox"</span><span class="token punctuation">,</span> <span class="token string">"text"</span><span class="token punctuation">]).</span>launch<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</code></pre>`;
|
||||
|
||||
export const img = `<pre class="language-python"><code class="language-python"><span class="token keyword">import</span> gradio <span class="token keyword">as</span> gr
|
||||
<span class="token keyword">def</span> <span class="token function">segment</span><span class="token punctuation">(</span>image<span class="token punctuation">)</span><span class="token punctuation">:</span>
|
||||
<span class="token keyword">pass </span><span class="token comment"> # Implement your image segmentation model here...</span>
|
||||
|
||||
gr<span class="token punctuation">.</span>Interface<span class="token punctuation">(</span>fn<span class="token operator">=</span>segment<span class="token punctuation">,</span> inputs<span class="token operator">=</span><span class="token string">"image"</span><span class="token punctuation">,</span> outputs<span class="token operator">=</span><span class="token string">"image"</span><span class="token punctuation">).</span>launch<span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||||
</code></pre>`;
|
16
js/_website/src/assets/gradio.svg
Normal file
@ -0,0 +1,16 @@
|
||||
<svg width="90" viewBox="0 0 451 105" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M45.7779 9.7789L91.2031 34.6919V49.2071L45.7779 24.2941V9.7789Z" fill="#FF7C00" fill-opacity="0.75" />
|
||||
<path d="M91.1878 34.6924L45.5957 59.6992V74.3078L91.1878 49.301V34.6924Z" fill="#FF7C00" />
|
||||
<path d="M-0.000525172 34.6924L45.5957 59.6992V74.3079L-0.000525172 49.3011V34.6924Z" fill="#FF7C00" fill-opacity="0.75" />
|
||||
<path d="M45.7731 9.68544L0.00585938 34.6919V49.3006L45.7731 24.2942V9.68544Z" fill="#FF7C00" />
|
||||
<path d="M45.7779 34.9728L91.2031 59.8857V74.4009L45.7779 49.488V34.9728Z" fill="#FF7C00" fill-opacity="0.75" />
|
||||
<path d="M91.1878 59.8853L45.5957 84.8921V99.5007L91.1878 74.4939V59.8853Z" fill="#FF7C00" />
|
||||
<path d="M-0.000525172 59.8853L45.5957 84.8921V99.5008L-0.000525172 74.494V59.8853Z" fill="#FF7C00" fill-opacity="0.75" />
|
||||
<path d="M45.7731 34.8783L0.00585938 59.8848V74.4935L45.7731 49.4871V34.8783Z" fill="#FF7C00" />
|
||||
<path d="M139.727 96.9891L148.148 86.596C152.803 90.8598 157.991 92.9917 163.711 92.9917C167.549 92.9917 170.711 92.4232 173.198 91.2862C175.686 90.1492 176.929 88.5858 176.929 86.596C176.929 83.2205 174.176 81.5327 168.668 81.5327C167.176 81.5327 164.955 81.7104 162.006 82.0657C159.057 82.421 156.836 82.5987 155.344 82.5987C146.176 82.5987 141.593 79.312 141.593 72.7386C141.593 70.8554 142.357 69.0077 143.885 67.1956C145.413 65.3835 147.189 64.0511 149.214 63.1983C142.712 58.97 139.461 52.9829 139.461 45.237C139.461 39.1255 141.699 34.08 146.176 30.1004C150.653 26.0853 156.161 24.0777 162.699 24.0777C167.815 24.0777 172.097 25.0371 175.544 26.9558L180.767 20.8799L189.987 29.2476L183.645 33.8845C185.848 37.2245 186.949 41.1686 186.949 45.7166C186.949 52.219 184.959 57.4244 180.98 61.3329C177.036 65.2058 172.044 67.1423 166.003 67.1423C165.044 67.1423 163.765 67.0535 162.166 66.8758L159.981 66.5561C159.732 66.5561 158.772 66.9469 157.102 67.7286C155.468 68.4748 154.651 69.2565 154.651 70.0737C154.651 71.495 155.877 72.2056 158.328 72.2056C159.43 72.2056 161.277 71.9391 163.871 71.4062C166.465 70.8732 168.686 70.6067 170.534 70.6067C183.503 70.6067 189.987 75.8121 189.987 86.2229C189.987 91.9791 187.393 96.4916 182.206 99.7606C177.018 103.065 170.764 104.717 163.445 104.717C154.704 104.717 146.798 102.141 139.727 96.9891ZM153.052 45.2903C153.052 48.6658 153.976 51.384 155.823 53.4448C157.707 55.4701 160.229 56.4828 163.392 56.4828C166.554 56.4828 168.988 55.4879 170.693 53.4981C172.399 51.5083 173.252 48.7724 173.252 45.2903C173.252 42.4122 172.328 39.9782 170.48 37.9885C168.668 35.9987 166.305 35.0038 163.392 35.0038C160.336 35.0038 157.849 35.9631 155.93 37.8819C154.011 39.8006 153.052 42.27 153.052 45.2903Z" fill="#FF7C00" />
|
||||
<path d="M231.773 37.6687C229.392 36.1053 226.78 35.3236 223.938 35.3236C220.847 35.3236 218.093 36.7271 215.677 39.5341C213.296 42.3411 212.106 45.7699 212.106 49.8206V82.3322H198.781V25.2503H212.106V30.4735C215.837 26.2807 220.793 24.1843 226.976 24.1843C231.524 24.1843 235.006 24.8772 237.422 26.263L231.773 37.6687Z" fill="#FF7C00" />
|
||||
<path d="M277.236 76.6293C276.028 78.6191 273.913 80.2536 270.893 81.5327C267.909 82.7763 264.782 83.3981 261.513 83.3981C255.366 83.3981 250.533 81.8703 247.016 78.8145C243.498 75.7233 241.739 71.3529 241.739 65.7033C241.739 59.0944 244.209 53.9245 249.148 50.1936C254.122 46.4628 261.175 44.5974 270.307 44.5974C271.87 44.5974 273.718 44.8639 275.85 45.3968C275.85 38.6813 271.604 35.3236 263.112 35.3236C258.102 35.3236 253.909 36.1586 250.533 37.8286L247.655 27.4888C252.239 25.2858 257.693 24.1843 264.018 24.1843C272.723 24.1843 279.101 26.1741 283.152 30.1537C287.202 34.0977 289.228 41.5949 289.228 52.6453V64.8505C289.228 72.4543 290.756 77.2334 293.811 79.1876C292.71 81.1063 291.484 82.2789 290.134 82.7053C288.783 83.1672 287.238 83.3981 285.497 83.3981C283.578 83.3981 281.855 82.6875 280.327 81.2662C278.799 79.845 277.769 78.2993 277.236 76.6293ZM275.956 55.4701C273.682 55.0082 271.977 54.7773 270.84 54.7773C260.322 54.7773 255.064 58.2238 255.064 65.117C255.064 70.2336 258.031 72.7919 263.965 72.7919C271.959 72.7919 275.956 68.7946 275.956 60.7999V55.4701Z" fill="#FF7C00" />
|
||||
<path d="M340.393 82.3322V78.8678C339.292 80.0759 337.427 81.1419 334.797 82.0657C332.168 82.954 329.45 83.3981 326.643 83.3981C318.684 83.3981 312.412 80.8754 307.829 75.8299C303.28 70.7843 301.006 63.749 301.006 54.724C301.006 45.6989 303.618 38.3615 308.841 32.712C314.1 27.0269 320.673 24.1843 328.561 24.1843C332.896 24.1843 336.84 25.0726 340.393 26.8492V3.98449L353.718 0.786621V82.3322H340.393ZM340.393 38.8945C337.551 36.6205 334.584 35.4835 331.493 35.4835C326.163 35.4835 322.059 37.1179 319.181 40.3869C316.303 43.6203 314.864 48.2749 314.864 54.3509C314.864 66.2185 320.584 72.1523 332.026 72.1523C333.305 72.1523 334.868 71.7792 336.716 71.0331C338.599 70.2514 339.825 69.4697 340.393 68.688V38.8945Z" fill="#FF7C00" />
|
||||
<path d="M377.542 3.13172C379.674 3.13172 381.486 3.89566 382.978 5.42353C384.506 6.91586 385.27 8.72799 385.27 10.8599C385.27 12.9918 384.506 14.8217 382.978 16.3496C381.486 17.8419 379.674 18.5881 377.542 18.5881C375.41 18.5881 373.58 17.8419 372.052 16.3496C370.56 14.8217 369.814 12.9918 369.814 10.8599C369.814 8.72799 370.56 6.91586 372.052 5.42353C373.58 3.89566 375.41 3.13172 377.542 3.13172ZM370.667 82.3322V36.1763H363.365V25.2503H384.151V82.3322H370.667Z" fill="#FF7C00" />
|
||||
<path d="M395.983 53.658C395.983 44.9527 398.488 37.8641 403.498 32.3922C408.544 26.9203 415.188 24.1843 423.431 24.1843C432.101 24.1843 438.834 26.8137 443.631 32.0724C448.428 37.3311 450.826 44.5263 450.826 53.658C450.826 62.7541 448.375 69.9849 443.471 75.3502C438.603 80.7155 431.924 83.3981 423.431 83.3981C414.762 83.3981 408.011 80.6977 403.178 75.2969C398.381 69.8605 395.983 62.6476 395.983 53.658ZM409.84 53.658C409.84 66.2363 414.371 72.5254 423.431 72.5254C427.589 72.5254 430.875 70.8909 433.291 67.622C435.743 64.3531 436.969 59.6984 436.969 53.658C436.969 41.2574 432.456 35.0571 423.431 35.0571C419.274 35.0571 415.97 36.6915 413.518 39.9605C411.066 43.2294 409.84 47.7952 409.84 53.658Z" fill="#FF7C00" />
|
||||
</svg>
|
After Width: | Height: | Size: 6.0 KiB |
1
js/_website/src/assets/img/anchor.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="#808080" viewBox="0 0 640 512"><!--! Font Awesome Pro 6.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2022 Fonticons, Inc. --><path d="M172.5 131.1C228.1 75.51 320.5 75.51 376.1 131.1C426.1 181.1 433.5 260.8 392.4 318.3L391.3 319.9C381 334.2 361 337.6 346.7 327.3C332.3 317 328.9 297 339.2 282.7L340.3 281.1C363.2 249 359.6 205.1 331.7 177.2C300.3 145.8 249.2 145.8 217.7 177.2L105.5 289.5C73.99 320.1 73.99 372 105.5 403.5C133.3 431.4 177.3 435 209.3 412.1L210.9 410.1C225.3 400.7 245.3 404 255.5 418.4C265.8 432.8 262.5 452.8 248.1 463.1L246.5 464.2C188.1 505.3 110.2 498.7 60.21 448.8C3.741 392.3 3.741 300.7 60.21 244.3L172.5 131.1zM467.5 380C411 436.5 319.5 436.5 263 380C213 330 206.5 251.2 247.6 193.7L248.7 192.1C258.1 177.8 278.1 174.4 293.3 184.7C307.7 194.1 311.1 214.1 300.8 229.3L299.7 230.9C276.8 262.1 280.4 306.9 308.3 334.8C339.7 366.2 390.8 366.2 422.3 334.8L534.5 222.5C566 191 566 139.1 534.5 108.5C506.7 80.63 462.7 76.99 430.7 99.9L429.1 101C414.7 111.3 394.7 107.1 384.5 93.58C374.2 79.2 377.5 59.21 391.9 48.94L393.5 47.82C451 6.731 529.8 13.25 579.8 63.24C636.3 119.7 636.3 211.3 579.8 267.7L467.5 380z"/></svg>
|
After Width: | Height: | Size: 1.2 KiB |
188
js/_website/src/assets/img/dataflow.svg
Normal file
After Width: | Height: | Size: 142 KiB |
1
js/_website/src/assets/img/esc.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><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 122.88 108.95" style="enable-background:new 0 0 122.88 108.95" xml:space="preserve" fill="#6b7280"><g><path class="st0" d="M23.01,0h76.87c6.33,0,12.08,2.59,16.25,6.76c4.17,4.17,6.76,9.92,6.76,16.25v62.93 c0,6.33-2.59,12.08-6.76,16.25c-4.17,4.17-9.92,6.76-16.25,6.76H23.01c-6.33,0-12.08-2.59-16.25-6.76C2.59,98.02,0,92.27,0,85.94 V23.01c0-6.33,2.59-12.08,6.76-16.25C10.92,2.59,16.68,0,23.01,0L23.01,0z M25.17,33.8h22.65v6.19H33.67v4.61h13.12v5.91H33.67v5.7 h14.58v6.55H25.17V33.8L25.17,33.8z M50.96,56.94l7.54-0.73c0.31,0.94,0.75,1.62,1.31,2.02c0.56,0.4,1.31,0.61,2.24,0.61 c1.02,0,1.81-0.23,2.37-0.69c0.44-0.34,0.66-0.77,0.66-1.28c0-0.58-0.29-1.03-0.86-1.35c-0.41-0.22-1.5-0.5-3.26-0.83 c-2.64-0.49-4.47-0.94-5.5-1.36c-1.03-0.41-1.89-1.12-2.59-2.1c-0.7-0.99-1.05-2.12-1.05-3.39c0-1.38,0.38-2.58,1.13-3.57 c0.76-1,1.8-1.75,3.14-2.25c1.33-0.49,3.12-0.74,5.36-0.74c2.36,0,4.11,0.19,5.23,0.57c1.13,0.38,2.07,0.98,2.82,1.78 c0.75,0.81,1.38,1.89,1.87,3.27l-7.19,0.73c-0.19-0.67-0.5-1.16-0.93-1.48c-0.59-0.42-1.31-0.63-2.16-0.63 c-0.85,0-1.48,0.16-1.87,0.49c-0.39,0.32-0.59,0.71-0.59,1.17c0,0.52,0.25,0.9,0.74,1.17c0.49,0.27,1.58,0.51,3.24,0.71 c2.53,0.3,4.41,0.73,5.64,1.27c1.23,0.54,2.17,1.31,2.82,2.31c0.66,1,0.98,2.1,0.98,3.3c0,1.21-0.34,2.39-1.04,3.54 c-0.69,1.15-1.78,2.06-3.26,2.74c-1.49,0.68-3.51,1.02-6.08,1.02c-3.62,0-6.2-0.55-7.74-1.65C52.39,60.52,51.4,58.96,50.96,56.94 L50.96,56.94z M90.48,54.56l7.23,0.85c-0.4,1.6-1.05,2.98-1.96,4.15c-0.91,1.17-2.07,2.08-3.49,2.72 c-1.41,0.65-3.21,0.97-5.39,0.97c-2.11,0-3.86-0.21-5.27-0.62c-1.4-0.42-2.6-1.09-3.62-2.02c-1.01-0.92-1.8-2.02-2.37-3.27 c-0.57-1.25-0.86-2.91-0.86-4.98c0-2.16,0.35-3.96,1.05-5.39c0.51-1.06,1.21-2,2.1-2.84c0.89-0.84,1.79-1.46,2.73-1.87 c1.49-0.65,3.39-0.97,5.7-0.97c3.25,0,5.71,0.61,7.42,1.83c1.7,1.23,2.89,3.01,3.58,5.37l-7.15,1.01c-0.22-0.9-0.63-1.57-1.22-2.03 c-0.59-0.45-1.39-0.68-2.39-0.68c-1.26,0-2.28,0.48-3.06,1.43c-0.78,0.96-1.17,2.4-1.17,4.34c0,1.73,0.39,3.03,1.16,3.93 c0.77,0.9,1.75,1.34,2.95,1.34c0.99,0,1.84-0.27,2.51-0.8C89.63,56.49,90.14,55.67,90.48,54.56L90.48,54.56z M4.95,77.41 c0.86,3.22,2.57,6.11,4.86,8.41c3.38,3.39,8.05,5.49,13.19,5.49h76.87c0.21,0,0.41,0,0.62-0.01l1.29-0.09 c4.33-0.44,8.24-2.38,11.19-5.29l0.09-0.1c2.3-2.3,4-5.19,4.86-8.41v-54.4c0-4.96-2.03-9.47-5.31-12.75 c-3.27-3.27-7.79-5.31-12.75-5.31H23.01c-4.96,0-9.48,2.03-12.75,5.3c-3.27,3.27-5.3,7.79-5.3,12.75V77.41L4.95,77.41z"/></g></svg>
|
After Width: | Height: | Size: 2.5 KiB |
59
js/_website/src/assets/img/github-black.svg
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="438.549px" height="438.549px" viewBox="0 0 438.549 438.549" style="enable-background:new 0 0 438.549 438.549;"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<path d="M409.132,114.573c-19.608-33.596-46.205-60.194-79.798-79.8C295.736,15.166,259.057,5.365,219.271,5.365
|
||||
c-39.781,0-76.472,9.804-110.063,29.408c-33.596,19.605-60.192,46.204-79.8,79.8C9.803,148.168,0,184.854,0,224.63
|
||||
c0,47.78,13.94,90.745,41.827,128.906c27.884,38.164,63.906,64.572,108.063,79.227c5.14,0.954,8.945,0.283,11.419-1.996
|
||||
c2.475-2.282,3.711-5.14,3.711-8.562c0-0.571-0.049-5.708-0.144-15.417c-0.098-9.709-0.144-18.179-0.144-25.406l-6.567,1.136
|
||||
c-4.187,0.767-9.469,1.092-15.846,1c-6.374-0.089-12.991-0.757-19.842-1.999c-6.854-1.231-13.229-4.086-19.13-8.559
|
||||
c-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559
|
||||
c-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-0.951-2.568-2.098-3.711-3.429c-1.142-1.331-1.997-2.663-2.568-3.997
|
||||
c-0.572-1.335-0.098-2.43,1.427-3.289c1.525-0.859,4.281-1.276,8.28-1.276l5.708,0.853c3.807,0.763,8.516,3.042,14.133,6.851
|
||||
c5.614,3.806,10.229,8.754,13.846,14.842c4.38,7.806,9.657,13.754,15.846,17.847c6.184,4.093,12.419,6.136,18.699,6.136
|
||||
c6.28,0,11.704-0.476,16.274-1.423c4.565-0.952,8.848-2.383,12.847-4.285c1.713-12.758,6.377-22.559,13.988-29.41
|
||||
c-10.848-1.14-20.601-2.857-29.264-5.14c-8.658-2.286-17.605-5.996-26.835-11.14c-9.235-5.137-16.896-11.516-22.985-19.126
|
||||
c-6.09-7.614-11.088-17.61-14.987-29.979c-3.901-12.374-5.852-26.648-5.852-42.826c0-23.035,7.52-42.637,22.557-58.817
|
||||
c-7.044-17.318-6.379-36.732,1.997-58.24c5.52-1.715,13.706-0.428,24.554,3.853c10.85,4.283,18.794,7.952,23.84,10.994
|
||||
c5.046,3.041,9.089,5.618,12.135,7.708c17.705-4.947,35.976-7.421,54.818-7.421s37.117,2.474,54.823,7.421l10.849-6.849
|
||||
c7.419-4.57,16.18-8.758,26.262-12.565c10.088-3.805,17.802-4.853,23.134-3.138c8.562,21.509,9.325,40.922,2.279,58.24
|
||||
c15.036,16.18,22.559,35.787,22.559,58.817c0,16.178-1.958,30.497-5.853,42.966c-3.9,12.471-8.941,22.457-15.125,29.979
|
||||
c-6.191,7.521-13.901,13.85-23.131,18.986c-9.232,5.14-18.182,8.85-26.84,11.136c-8.662,2.286-18.415,4.004-29.263,5.146
|
||||
c9.894,8.562,14.842,22.077,14.842,40.539v60.237c0,3.422,1.19,6.279,3.572,8.562c2.379,2.279,6.136,2.95,11.276,1.995
|
||||
c44.163-14.653,80.185-41.062,108.068-79.226c27.88-38.161,41.825-81.126,41.825-128.906
|
||||
C438.536,184.851,428.728,148.168,409.132,114.573z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
59
js/_website/src/assets/img/github.svg
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="438.549px" height="438.549px" viewBox="0 0 438.549 438.549" style="enable-background:new 0 0 438.549 438.549;"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<path fill="gray" d="M409.132,114.573c-19.608-33.596-46.205-60.194-79.798-79.8C295.736,15.166,259.057,5.365,219.271,5.365
|
||||
c-39.781,0-76.472,9.804-110.063,29.408c-33.596,19.605-60.192,46.204-79.8,79.8C9.803,148.168,0,184.854,0,224.63
|
||||
c0,47.78,13.94,90.745,41.827,128.906c27.884,38.164,63.906,64.572,108.063,79.227c5.14,0.954,8.945,0.283,11.419-1.996
|
||||
c2.475-2.282,3.711-5.14,3.711-8.562c0-0.571-0.049-5.708-0.144-15.417c-0.098-9.709-0.144-18.179-0.144-25.406l-6.567,1.136
|
||||
c-4.187,0.767-9.469,1.092-15.846,1c-6.374-0.089-12.991-0.757-19.842-1.999c-6.854-1.231-13.229-4.086-19.13-8.559
|
||||
c-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559
|
||||
c-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-0.951-2.568-2.098-3.711-3.429c-1.142-1.331-1.997-2.663-2.568-3.997
|
||||
c-0.572-1.335-0.098-2.43,1.427-3.289c1.525-0.859,4.281-1.276,8.28-1.276l5.708,0.853c3.807,0.763,8.516,3.042,14.133,6.851
|
||||
c5.614,3.806,10.229,8.754,13.846,14.842c4.38,7.806,9.657,13.754,15.846,17.847c6.184,4.093,12.419,6.136,18.699,6.136
|
||||
c6.28,0,11.704-0.476,16.274-1.423c4.565-0.952,8.848-2.383,12.847-4.285c1.713-12.758,6.377-22.559,13.988-29.41
|
||||
c-10.848-1.14-20.601-2.857-29.264-5.14c-8.658-2.286-17.605-5.996-26.835-11.14c-9.235-5.137-16.896-11.516-22.985-19.126
|
||||
c-6.09-7.614-11.088-17.61-14.987-29.979c-3.901-12.374-5.852-26.648-5.852-42.826c0-23.035,7.52-42.637,22.557-58.817
|
||||
c-7.044-17.318-6.379-36.732,1.997-58.24c5.52-1.715,13.706-0.428,24.554,3.853c10.85,4.283,18.794,7.952,23.84,10.994
|
||||
c5.046,3.041,9.089,5.618,12.135,7.708c17.705-4.947,35.976-7.421,54.818-7.421s37.117,2.474,54.823,7.421l10.849-6.849
|
||||
c7.419-4.57,16.18-8.758,26.262-12.565c10.088-3.805,17.802-4.853,23.134-3.138c8.562,21.509,9.325,40.922,2.279,58.24
|
||||
c15.036,16.18,22.559,35.787,22.559,58.817c0,16.178-1.958,30.497-5.853,42.966c-3.9,12.471-8.941,22.457-15.125,29.979
|
||||
c-6.191,7.521-13.901,13.85-23.131,18.986c-9.232,5.14-18.182,8.85-26.84,11.136c-8.662,2.286-18.415,4.004-29.263,5.146
|
||||
c9.894,8.562,14.842,22.077,14.842,40.539v60.237c0,3.422,1.19,6.279,3.572,8.562c2.379,2.279,6.136,2.95,11.276,1.995
|
||||
c44.163-14.653,80.185-41.062,108.068-79.226c27.88-38.161,41.825-81.126,41.825-128.906
|
||||
C438.536,184.851,428.728,148.168,409.132,114.573z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
BIN
js/_website/src/assets/img/header-faded.jpg
Normal file
After Width: | Height: | Size: 507 KiB |
BIN
js/_website/src/assets/img/header-image.jpg
Normal file
After Width: | Height: | Size: 115 KiB |
BIN
js/_website/src/assets/img/logo-melted.png
Normal file
After Width: | Height: | Size: 142 KiB |
BIN
js/_website/src/assets/img/logo.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
js/_website/src/assets/img/meta-image.png
Normal file
After Width: | Height: | Size: 395 KiB |
1
js/_website/src/assets/img/spaces-logo.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg class="mr-1 text-gray-400" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" viewBox="0 0 32 32"><path d="M7.81 18.746v5.445h5.444v-5.445H7.809Z" fill="#FF3270"/><path d="M18.746 18.746v5.445h5.444v-5.445h-5.444Z" fill="#861FFF"/><path d="M7.81 7.81v5.444h5.444V7.81H7.809Z" fill="#097EFF"/><path fill-rule="evenodd" clip-rule="evenodd" d="M4 6.418A2.418 2.418 0 0 1 6.418 4h8.228c1.117 0 2.057.757 2.334 1.786a6.532 6.532 0 0 1 9.234 9.234A2.419 2.419 0 0 1 28 17.355v8.227A2.418 2.418 0 0 1 25.582 28H6.417A2.418 2.418 0 0 1 4 25.582V6.417ZM7.81 7.81v5.444h5.444V7.81H7.81Zm0 16.38v-5.444h5.444v5.445H7.81Zm10.936 0v-5.444h5.445v5.445h-5.445Zm0-13.658a2.722 2.722 0 1 1 5.445 0 2.722 2.722 0 0 1-5.445 0Z"/><path d="M21.468 7.81a2.722 2.722 0 1 0 0 5.444 2.722 2.722 0 0 0 0-5.444Z" fill="#FFD702"/></svg>
|
After Width: | Height: | Size: 816 B |
1
js/_website/src/assets/img/twitter.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72"><path fill="none" d="M0 0h72v72H0z"/><path class="icon" fill="gray" d="M68.812 15.14c-2.348 1.04-4.87 1.744-7.52 2.06 2.704-1.62 4.78-4.186 5.757-7.243-2.53 1.5-5.33 2.592-8.314 3.176C56.35 10.59 52.948 9 49.182 9c-7.23 0-13.092 5.86-13.092 13.093 0 1.026.118 2.02.338 2.98C25.543 24.527 15.9 19.318 9.44 11.396c-1.125 1.936-1.77 4.184-1.77 6.58 0 4.543 2.312 8.552 5.824 10.9-2.146-.07-4.165-.658-5.93-1.64-.002.056-.002.11-.002.163 0 6.345 4.513 11.638 10.504 12.84-1.1.298-2.256.457-3.45.457-.845 0-1.666-.078-2.464-.23 1.667 5.2 6.5 8.985 12.23 9.09-4.482 3.51-10.13 5.605-16.26 5.605-1.055 0-2.096-.06-3.122-.184 5.794 3.717 12.676 5.882 20.067 5.882 24.083 0 37.25-19.95 37.25-37.25 0-.565-.013-1.133-.038-1.693 2.558-1.847 4.778-4.15 6.532-6.774z"/></svg>
|
After Width: | Height: | Size: 822 B |
55
js/_website/src/assets/index.ts
Normal file
@ -0,0 +1,55 @@
|
||||
export { default as gradio_logo } from "./gradio.svg";
|
||||
export { default as twitter } from "./img/twitter.svg";
|
||||
export { default as github } from "./img/github.svg";
|
||||
export { default as github_black } from "./img/github-black.svg";
|
||||
|
||||
import google from "../assets/logos/google.svg";
|
||||
import amazon from "../assets/logos/amazon.svg";
|
||||
import fb from "./logos/fb.svg";
|
||||
import cisco from "./logos/cisco.svg";
|
||||
import twitter from "./logos/twitter.svg";
|
||||
import vm from "./logos/vmware.svg";
|
||||
import hf from "./logos/huggingface.svg";
|
||||
import siemens from "./logos/siemens.svg";
|
||||
import mit from "./logos/mit-svg-50.png";
|
||||
import stanford from "./logos/stanford.svg";
|
||||
import uipath from "./logos/uipath.svg";
|
||||
import unify from "./logos/unifyid.svg";
|
||||
import humans from "./logos/humaniseai.svg";
|
||||
import factmata from "./logos/factmata.svg";
|
||||
import wns from "./logos/wns.png";
|
||||
|
||||
import _tweets from "./tweets.json";
|
||||
|
||||
export const logos = [
|
||||
{ img: google, contrast: false, description: "Google Logo" },
|
||||
{ img: amazon, contrast: true, description: "Amazon logo" },
|
||||
{ img: fb, contrast: false, description: "Facebook logo" },
|
||||
{ img: cisco, contrast: false, description: "CISCO logo" },
|
||||
{ img: twitter, contrast: false, description: "Twitter logo" },
|
||||
{ img: vm, contrast: false, description: "VMwarelogo" },
|
||||
{ img: hf, contrast: false, description: "Hugging Face logo" },
|
||||
{ img: siemens, contrast: false, description: "Siemens logo" },
|
||||
{ img: mit, contrast: true, description: "MIT logo" },
|
||||
{ img: stanford, contrast: false, description: "Stanford logo" },
|
||||
{ img: uipath, contrast: false, description: "UI Path logo" },
|
||||
{ img: unify, contrast: false, description: "UnifyID logo" },
|
||||
{ img: humans, contrast: true, description: "Humanise AI logo" },
|
||||
{ img: factmata, contrast: true, description: "Factmata logo" },
|
||||
{ img: wns, contrast: true, description: "WNS logo" }
|
||||
];
|
||||
|
||||
export const twitter_pics = (
|
||||
Object.entries(import.meta.glob("./twitter/**", { eager: true })) as [
|
||||
string,
|
||||
{ default: string }
|
||||
][]
|
||||
).reduce((a, [k, mod]) => {
|
||||
a[k.replace("./twitter/", "")] = mod.default;
|
||||
return a;
|
||||
}, {} as Record<string, string>);
|
||||
|
||||
export const tweets = _tweets.map((x) => ({
|
||||
...x,
|
||||
profile_pic: twitter_pics[x.profile_pic]
|
||||
}));
|
20
js/_website/src/assets/logos/amazon.svg
Normal file
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="1e3" height="301.35" version="1.0" viewBox="0 0 1000 301.35401" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<metadata>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<path d="m620.38 235.67c-58.112 42.833-142.34 65.686-214.86 65.686-101.68 0-193.23-37.609-262.48-100.16-5.4412-4.9188-0.5659-11.622 5.9635-7.7918 74.74 43.486 167.15 69.647 262.61 69.647 64.38 0 135.2-13.32 200.32-40.961 9.8376-4.1788 18.065 6.4423 8.4447 13.581" fill="#f90" fill-rule="evenodd"/>
|
||||
<path d="m644.54 208.03c-7.4-9.4894-49.101-4.4835-67.819-2.2635-5.7024 0.69648-6.5729-4.2659-1.4365-7.8353 33.213-23.375 87.712-16.628 94.067-8.7929 6.3553 7.8788-1.6541 62.508-32.865 88.582-4.7882 4.0047-9.3588 1.8718-7.2259-3.4388 7.0082-17.499 22.722-56.719 15.279-66.252" fill="#f90" fill-rule="evenodd"/>
|
||||
<path d="m578.03 32.908v-22.722c0-3.4388 2.6118-5.7459 5.7459-5.7459h101.73c3.2647 0 5.8765 2.3506 5.8765 5.7459v19.458c-0.0435 3.2647-2.7859 7.5306-7.6612 14.278l-52.714 75.262c19.588-0.47879 40.265 2.4376 58.025 12.449 4.0047 2.2635 5.0929 5.5718 5.3976 8.8365v24.246c0 3.3082-3.6565 7.1823-7.487 5.18-31.298-16.411-72.868-18.195-107.47 0.17413-3.5259 1.9153-7.2259-1.9153-7.2259-5.2235v-23.027c0-3.7 0.0435-10.012 3.7435-15.627l61.072-87.581h-53.149c-3.2647 0-5.8765-2.307-5.8765-5.7024" fill-rule="evenodd"/>
|
||||
<path d="m206.94 174.68h-30.949c-2.96-0.21762-5.3106-2.4376-5.5282-5.2671v-158.84c0-3.1776 2.6553-5.7024 5.9635-5.7024h28.86c3.0036 0.1305 5.3976 2.4376 5.6153 5.3106v20.764h0.56588c7.5306-20.067 21.678-29.426 40.743-29.426 19.371 0 31.472 9.3588 40.178 29.426 7.487-20.067 24.507-29.426 42.746-29.426 12.972 0 27.162 5.3541 35.825 17.368 9.7941 13.364 7.7917 32.778 7.7917 49.798l-0.0435 100.25c0 3.1776-2.6553 5.7458-5.9635 5.7458h-30.906c-3.0906-0.21762-5.5717-2.6988-5.5717-5.7458v-84.186c0-6.7035 0.60937-23.419-0.8706-29.774-2.307-10.665-9.2282-13.668-18.195-13.668-7.487 0-15.322 5.0059-18.5 13.015-3.1776 8.0094-2.8729 21.416-2.8729 30.427v84.186c0 3.1776-2.6553 5.7458-5.9635 5.7458h-30.906c-3.1341-0.21762-5.5718-2.6988-5.5718-5.7458l-0.0435-84.186c0-17.716 2.9164-43.791-19.066-43.791-22.244 0-21.373 25.421-21.373 43.791v84.186c0 3.1776-2.6553 5.7458-5.9635 5.7458" fill-rule="evenodd"/>
|
||||
<path d="m778.96 1.5237c45.923 0 70.779 39.438 70.779 89.583 0 48.448-27.467 86.885-70.779 86.885-45.096 0-69.647-39.438-69.647-88.582 0-49.449 24.855-87.886 69.647-87.886m0.26116 32.429c-22.809 0-24.246 31.08-24.246 50.451 0 19.414-0.3047 60.854 23.985 60.854 23.985 0 25.116-33.431 25.116-53.802 0-13.407-0.56589-29.426-4.6141-42.136-3.4824-11.056-10.403-15.366-20.241-15.366" fill-rule="evenodd"/>
|
||||
<path d="m909.28 174.68h-30.819c-3.0906-0.21762-5.5718-2.6988-5.5718-5.7458l-0.0435-158.88c0.26118-2.9165 2.8294-5.18 5.9635-5.18h28.686c2.6988 0.1305 4.9188 1.9588 5.5282 4.44v24.289h0.56585c8.6624-21.721 20.807-32.081 42.18-32.081 13.886 0 27.424 5.0059 36.129 18.718 8.0964 12.711 8.0964 34.084 8.0964 49.449v99.987c-0.34822 2.7858-2.9165 5.0058-5.9635 5.0058h-31.036c-2.8294-0.21762-5.18-2.307-5.4847-5.0058v-86.275c0-17.368 2.0023-42.789-19.371-42.789-7.5306 0-14.452 5.0494-17.891 12.711-4.3529 9.7071-4.9188 19.371-4.9188 30.079v85.535c-0.0435 3.1776-2.7423 5.7458-6.0506 5.7458" fill-rule="evenodd"/>
|
||||
<path d="m496.93 98.812c0 12.058 0.3047 22.113-5.7894 32.821-4.9188 8.7059-12.754 14.06-21.416 14.06-11.884 0-18.848-9.0541-18.848-22.418 0-26.379 23.636-31.167 46.054-31.167v6.7035m31.211 75.436c-2.0459 1.8282-5.0059 1.9588-7.3129 0.74001-10.273-8.5318-12.145-12.493-17.76-20.633-16.976 17.325-29.034 22.505-51.016 22.505-26.074 0-46.315-16.062-46.315-48.23 0-25.116 13.581-42.223 32.995-50.581 16.802-7.4 40.265-8.7059 58.199-10.752v-4.0047c0-7.3565 0.56589-16.062-3.787-22.418-3.7435-5.7024-10.969-8.053-17.368-8.053-11.796 0-22.287 6.0506-24.855 18.587-0.52235 2.7859-2.5682 5.5282-5.3976 5.6588l-29.992-3.2212c-2.5247-0.56585-5.3541-2.6118-4.6141-6.4858 6.8776-36.391 39.786-47.36 69.212-47.36 15.061 0 34.736 4.0047 46.62 15.409 15.061 14.06 13.625 32.821 13.625 53.236v48.231c0 14.495 6.007 20.851 11.666 28.686 1.9588 2.7858 2.3941 6.1376-0.13071 8.227-6.3118 5.2671-17.542 15.061-23.724 20.546l-0.0435-0.0872" fill-rule="evenodd"/>
|
||||
<path d="m91.194 98.812c0 12.058 0.30468 22.113-5.7894 32.821-4.9188 8.7059-12.711 14.06-21.416 14.06-11.884 0-18.805-9.0541-18.805-22.418 0-26.379 23.636-31.167 46.011-31.167v6.7035m31.211 75.436c-2.0459 1.8282-5.0059 1.9588-7.313 0.74001-10.273-8.5318-12.101-12.493-17.76-20.633-16.976 17.325-28.991 22.505-51.016 22.505-26.031 0-46.315-16.062-46.315-48.23 0-25.116 13.625-42.223 32.995-50.581 16.802-7.4 40.265-8.7059 58.199-10.752v-4.0047c0-7.3565 0.56588-16.062-3.7435-22.418-3.7871-5.7024-11.013-8.053-17.368-8.053-11.796 0-22.331 6.0506-24.899 18.587-0.52236 2.7859-2.5682 5.5282-5.3541 5.6588l-30.035-3.2212c-2.5247-0.56585-5.3106-2.6118-4.6141-6.4858 6.9212-36.391 39.786-47.36 69.212-47.36 15.061 0 34.736 4.0047 46.62 15.409 15.061 14.06 13.625 32.821 13.625 53.236v48.231c0 14.495 6.0071 20.851 11.666 28.686 2.0023 2.7858 2.4376 6.1376-0.0871 8.227-6.3118 5.2671-17.542 15.061-23.724 20.546l-0.087-0.0872" fill-rule="evenodd"/>
|
||||
</svg>
|
After Width: | Height: | Size: 5.3 KiB |
1
js/_website/src/assets/logos/cisco.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 220" width="480" height="220"><title>480x220-Cisco-Partner-Cameo-Global</title><rect width="480" height="220" style="fill: none"></rect><g><path d="M364.54,150.09c0,15.51-12.08,27.3-27.91,27.29S308.79,165.55,308.8,150s12.11-27.33,27.91-27.3S364.56,134.59,364.54,150.09Zm-14.12,0A13.76,13.76,0,1,0,336.58,164a13.58,13.58,0,0,0,13.84-13.88Z" style="fill: #059fd8"></path><path d="M205.32,169.92c0-1.6.06-3.2,0-4.77-.06-1.1.18-1.34,1.29-1A40.73,40.73,0,0,0,220,165.67a12.86,12.86,0,0,0,5-1.16c3.2-1.58,3.48-5,.61-7.08a17.25,17.25,0,0,0-5.23-2.26,32.72,32.72,0,0,1-9.39-4.29c-8.58-6.07-7.37-20,1.5-25.13a24.25,24.25,0,0,1,12.59-3,59.31,59.31,0,0,1,11.72,1.41c.8.17,1.08.47,1.06,1.33-.06,3.06-.05,6.13,0,9.2,0,.8-.16,1-1,.78a36.32,36.32,0,0,0-11-1.31,10.47,10.47,0,0,0-4.8,1.29,3.38,3.38,0,0,0-.52,5.78,11.48,11.48,0,0,0,4.15,2,54.68,54.68,0,0,1,7.84,2.82c5.6,2.87,9,7.25,9,13.68,0,6.71-2.92,11.77-9,14.87a27.14,27.14,0,0,1-11.5,2.76,74.33,74.33,0,0,1-14.74-1.2c-.8-.12-1-.42-1-1.2C205.36,173.27,205.32,171.59,205.32,169.92Z" style="fill: #059fd8"></path><path d="M294.74,138.75A24.67,24.67,0,0,0,282.47,136a14,14,0,0,0-.65,28,23.78,23.78,0,0,0,12.06-2.24,1.15,1.15,0,0,1,.86-.24v11.06c0,3,0,3-3,3.67-7.4,1.71-14.72,1.7-21.72-1.57-9.8-4.58-15-12.42-15.5-23.2-.46-9.53,2.88-17.49,10.63-23.3,5.46-4.1,11.76-5.64,18.52-5.46a40.25,40.25,0,0,1,10.11,1.6c.49.14.95.21.95,1C294.72,129.71,294.74,134.15,294.74,138.75Z" style="fill: #059fd8"></path><path d="M155.65,138.75A24.45,24.45,0,0,0,143.37,136a14,14,0,0,0-.6,28,24,24,0,0,0,12.7-2.57c.31.34.17.71.17,1,0,4,0,7.89,0,11.83,0,.83-.17,1.24-1.07,1.49-8,2.12-15.92,2.45-23.6-1.1-10-4.62-15.08-12.62-15.53-23.54-.37-8.78,2.61-16.25,9.38-22a27.24,27.24,0,0,1,15.1-6.25,38.57,38.57,0,0,1,14.65,1.37c.76.21,1.08.49,1.07,1.36C155.62,130,155.65,134.25,155.65,138.75Z" style="fill: #059fd8"></path><path d="M174,79.4v34.4c0,3.55-2.06,6.27-5.2,6.93a6.64,6.64,0,0,1-8.06-6.32V44.89c0-2.66.87-4.85,3.2-6.27a6.27,6.27,0,0,1,6.69-.13,6.49,6.49,0,0,1,3.41,6q0,14.58,0,29.15C174,75.59,174,77.5,174,79.4Z" style="fill: #079fd9"></path><path d="M306.12,79.25V44.6c0-3.63,2.09-6.25,5.4-6.84A6.58,6.58,0,0,1,319.19,43a6.8,6.8,0,0,1,.11,1v69.54a7.73,7.73,0,0,1-1,4.23,6.62,6.62,0,0,1-7.37,2.87,6.52,6.52,0,0,1-4.8-6.4c0-9.56,0-19.11,0-28.67C306.12,83.47,306.12,81.36,306.12,79.25Z" style="fill: #059fd8"></path><path d="M187.34,150q0,12.6,0,25.2c0,1-.29,1.25-1.26,1.23-3.7-.05-7.41,0-11.11,0-.77,0-1-.18-1-1q0-25.4,0-50.78c0-.83.22-1.07,1.06-1.07,3.67,0,7.33.06,11,0,1,0,1.33.24,1.33,1.31C187.32,133.29,187.34,141.65,187.34,150Z" style="fill: #079fd9"></path><path d="M355.64,85.15c0,5.38,0,10.75,0,16.12a6.62,6.62,0,0,1-13,1.74,7.13,7.13,0,0,1-.31-2q0-15.89,0-31.77a6.31,6.31,0,0,1,3.83-6.11,6.64,6.64,0,0,1,9.46,6.13V85.15Z" style="fill: #079fd9"></path><path d="M124.36,85.07c0-5.29,0-10.59,0-15.88a6.62,6.62,0,0,1,12.18-3.66,6.77,6.77,0,0,1,1.08,3.74c0,10.55,0,21.1,0,31.66a6.63,6.63,0,1,1-13.26-.08C124.34,95.59,124.36,90.33,124.36,85.07Z" style="fill: #079fd9"></path><path d="M197,85.13c0-5.3,0-10.6,0-15.89A6.63,6.63,0,0,1,207.82,64a6.23,6.23,0,0,1,2.46,5.09q0,16,0,32a6.6,6.6,0,0,1-6.54,6.66h-.06A6.67,6.67,0,0,1,197,100.9C197,95.64,197,90.38,197,85.13Z" style="fill: #079fd9"></path><path d="M283,85.2c0,5.25,0,10.51,0,15.76a6.44,6.44,0,0,1-3.6,6,6.22,6.22,0,0,1-6.67-.4c-2.18-1.45-3-3.6-3-6.17,0-9,0-18,0-27,0-1.51-.06-3,0-4.53a6.59,6.59,0,1,1,13.18.41C283,74.61,283,79.91,283,85.2Z" style="fill: #059fd8"></path><path d="M88,94.22V87.54a6.63,6.63,0,1,1,13.26-.15q.1,6.8,0,13.6a6.64,6.64,0,0,1-6.61,6.76A6.71,6.71,0,0,1,88,100.91C88,98.68,88,96.45,88,94.22Z" style="fill: #079fd9"></path><path d="M246.6,94.24c0,2.27.05,4.54,0,6.8a6.6,6.6,0,0,1-12.91,2,7.72,7.72,0,0,1-.31-2.24c0-4.46,0-8.92,0-13.38a6.6,6.6,0,0,1,12.44-3.2,7.24,7.24,0,0,1,.78,3.45C246.61,89.86,246.6,92.05,246.6,94.24Z" style="fill: #079fd9"></path><path d="M392,94.27c0,2.31.06,4.62,0,6.93A6.59,6.59,0,0,1,379,102.91a8.53,8.53,0,0,1-.27-2.24c0-4.3,0-8.61,0-12.91,0-3.75,2.22-6.45,5.58-7a6.53,6.53,0,0,1,7.59,6.55C392,89.65,392,92,392,94.27Z" style="fill: #059fd8"></path></g></svg>
|
After Width: | Height: | Size: 4.1 KiB |
18
js/_website/src/assets/logos/factmata.svg
Normal file
@ -0,0 +1,18 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="135.367" height="21.453" viewBox="0 0 135.367 21.453">
|
||||
<g id="Factmata_logo" data-name="Factmata logo" transform="translate(0.002)">
|
||||
<path id="F" d="M.459,12.742S.472,4.362.472,1.761a.894.894,0,0,1,.06-.343A1.91,1.91,0,0,1,1.222.511,1.432,1.432,0,0,1,1.97.282c1.174-.011,6.763,0,6.763,0a.505.505,0,0,1,.506.507V2.336a.505.505,0,0,1-.506.507l-5.67.007V5.638H6.514a.5.5,0,0,1,.5.5v1.5a.5.5,0,0,1-.5.5H3.064v4.6a.514.514,0,0,1-.514.514H.976a.514.514,0,0,1-.517-.512Z" transform="translate(30.783 3.902)" fill="#33375a" fill-rule="evenodd"/>
|
||||
<path id="A1" d="M.084,12.788c.432-1.177,4.08-10.936,4.08-10.936C4.548.831,4.926.36,5.643.371,6.422.4,6.731.993,7.094,1.962v.013c1.09,2.841,4.1,10.813,4.1,10.813a.377.377,0,0,1-.353.509H8.924a.375.375,0,0,1-.353-.249l-.7-1.864H3.387L2.7,13.048a.375.375,0,0,1-.353.249H.437a.377.377,0,0,1-.353-.509Zm6.83-4.1-1.3-3.376c-.035.1-.644,1.7-1.279,3.376Z" transform="translate(41.52 3.826)" fill="#33375a" fill-rule="evenodd"/>
|
||||
<path id="C" d="M10.39,11.666a6.81,6.81,0,0,1-3.827,1.259,6.762,6.762,0,0,1-5.281-2.878A7,7,0,0,1,.192,5.965,6.875,6.875,0,0,1,3.178.894a7.072,7.072,0,0,1,7.085.117l.477.293a.3.3,0,0,1,.1.407L9.8,3.4a.292.292,0,0,1-.4.1,8.976,8.976,0,0,0-1.3-.729,3.915,3.915,0,0,0-4.64,1.406,4.181,4.181,0,0,0,1.116,5.5,3.92,3.92,0,0,0,4.054.058.008.008,0,0,0,.008,0L9.4,9.252a.294.294,0,0,1,.4.1l1.032,1.694a.3.3,0,0,1-.1.407Z" transform="translate(55.139 4.204)" fill="#33375a" fill-rule="evenodd"/>
|
||||
<path id="T1" d="M1,.371H9.948a.5.5,0,0,1,.5.505v.668a1.227,1.227,0,0,1,.013.154.955.955,0,0,1-.013.181v.543a.5.5,0,0,1-.5.505l-3.174.011v9.868a.507.507,0,0,1-.518.492H4.714a.515.515,0,0,1-.513-.505V2.94L1,2.924a.5.5,0,0,1-.5-.505V.876A.5.5,0,0,1,1,.371Z" transform="translate(69.719 3.826)" fill="#33375a" fill-rule="evenodd"/>
|
||||
<path id="M" d="M.213,12.759V1.638A1.318,1.318,0,0,1,1.548.321c.648,0,1.067.627,1.326,1.266L6.11,8.819c.668-1.571,3.438-7.7,3.438-7.7a1.309,1.309,0,0,1,1.3-.8A1.344,1.344,0,0,1,12,1.669v11.09a.5.5,0,0,1-.5.505H9.92a.5.5,0,0,1-.5-.505l.008-5.106c-.745,1.683-1.179,2.8-2.023,4.51-.328.635-.622,1.05-1.217,1.066a1.46,1.46,0,0,1-1.377-1.05L2.788,7.644c0,1.458-.006,5.114-.006,5.114a.5.5,0,0,1-.5.505H.717A.5.5,0,0,1,.213,12.759Z" transform="translate(84.493 3.862)" fill="#33375a" fill-rule="evenodd"/>
|
||||
<path id="A2" d="M.09,12.788C.521,11.611,4.169,1.852,4.169,1.852,4.553.831,4.932.36,5.648.371,6.427.4,6.737.993,7.1,1.962v.013c1.09,2.841,4.1,10.813,4.1,10.813a.377.377,0,0,1-.353.509H8.93a.375.375,0,0,1-.353-.249l-.7-1.864H3.392l-.683,1.864a.375.375,0,0,1-.353.249H.442a.376.376,0,0,1-.352-.509Zm6.83-4.1-1.3-3.376c-.035.1-.644,1.7-1.28,3.376Z" transform="translate(100.246 3.826)" fill="#33375a" fill-rule="evenodd"/>
|
||||
<path id="T2" d="M1,.371H9.948a.5.5,0,0,1,.5.505V2.419a.5.5,0,0,1-.5.505l-3.174.014v9.868a.507.507,0,0,1-.518.492H4.714a.515.515,0,0,1-.513-.505V2.94L1,2.924a.5.5,0,0,1-.5-.505V.876A.5.5,0,0,1,1,.371Z" transform="translate(112.883 3.826)" fill="#33375a" fill-rule="evenodd"/>
|
||||
<path id="A3" d="M.035,12.788C.468,11.611,4.116,1.852,4.116,1.852,4.5.831,4.877.36,5.594.371,6.373.4,6.685.992,7.046,1.962v.013c1.09,2.841,4.1,10.813,4.1,10.813a.377.377,0,0,1-.353.509H8.876a.375.375,0,0,1-.353-.249l-.406-1.1-.291-.764H3.343L2.66,13.045a.375.375,0,0,1-.353.249H.388a.376.376,0,0,1-.353-.506Zm6.831-4.1-1.3-3.376c-.035.1-.644,1.7-1.28,3.376Z" transform="translate(124.198 3.815)" fill="#33375a" fill-rule="evenodd"/>
|
||||
<path id="Green1" d="M7.62,2.279c-2.225,0-1.981,1.033-3.247,1.033H1.616a1.57,1.57,0,0,1,0-3.134h10.2a1.6,1.6,0,0,1,1.5,1.567,1.6,1.6,0,0,1-1.5,1.567h-.955C9.717,3.312,9.842,2.279,7.62,2.279Z" transform="translate(-0.143 5.636)" fill="#3dbf5d" fill-rule="evenodd" opacity="0.6"/>
|
||||
<path id="Red2" d="M5.844,1.565A1.534,1.534,0,0,0,4.311.031H1.555a1.534,1.534,0,0,0,0,3.066H4.311A1.534,1.534,0,0,0,5.844,1.565Z" transform="translate(-0.022 12.84)" fill="#ef2569" fill-rule="evenodd" opacity="0.6"/>
|
||||
<path id="Red3" d="M5.229,1.565A1.534,1.534,0,0,0,3.7.031H1.553a1.534,1.534,0,0,0,0,3.066H3.7A1.534,1.534,0,0,0,5.229,1.565Z" transform="translate(17.446 12.84)" fill="#ef2569" fill-rule="evenodd" opacity="0.6"/>
|
||||
<path id="Green2" d="M13.222-3a1.534,1.534,0,0,1-1.533,1.534H1.58A1.534,1.534,0,0,1,.046-3,1.534,1.534,0,0,1,1.58-4.529H11.689A1.534,1.534,0,0,1,13.222-3Z" transform="translate(4.55 22.915)" fill="#3dbf5d" fill-rule="evenodd" opacity="0.6"/>
|
||||
<path id="Tick" d="M14.924.1A2.131,2.131,0,0,1,16.37,3.687c-2.893,2.733-5.6,5.277-8.525,7.967a2.143,2.143,0,0,1-.265.214,2.865,2.865,0,0,1-3.524-.246C2.936,10.559,1.829,9.475.718,8.4A2.156,2.156,0,0,1,1.61,4.916a2.17,2.17,0,0,1,2.073.5C4.361,6.078,5,6.772,5.7,7.4c.376.331.984-.415,1.528-.925C9.37,4.473,11.3,2.638,13.46.649a1.77,1.77,0,0,1,.387-.28A2.018,2.018,0,0,1,14.924.1Z" transform="translate(5.458 4.384)" fill="#1d9af2" fill-rule="evenodd"/>
|
||||
<path id="Red1" d="M13.222-3a1.534,1.534,0,0,1-1.533,1.534H1.58A1.534,1.534,0,0,1,.046-3,1.534,1.534,0,0,1,1.58-4.529H11.689A1.534,1.534,0,0,1,13.222-3Z" transform="translate(4.55 4.529)" fill="#ef2569" fill-rule="evenodd" opacity="0.6"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.0 KiB |
1
js/_website/src/assets/logos/fb.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 200"><path d="M63.35 190.562H25.669V96.628H0V66.045h25.668V44.283C25.668 18.495 37.021 0 74.6 0c7.948 0 20.426 1.602 20.426 1.602V30H81.92c-13.354 0-18.568 4.062-18.568 15.292v20.753h31.174L91.75 96.628H63.351zm86.46-126.961c-.549 0-1.114.02-1.673.034-34.94 0-50.926 26.282-50.926 63.59 0 46.998 20.736 65.808 51.199 65.808 17.429 0 28.88-7.336 35.84-21.026v18.568h35.84V66.058h-35.84v19.149c-5.683-12.32-17.454-21.46-34.44-21.606zm9.113 29.423c14.675 0 23.483 10.236 23.483 27.647l.034 17.783c0 11.735-7.275 25.464-23.517 25.464-24.97 0-24.303-26.962-24.303-35.942 0-30.207 13.304-34.952 24.303-34.952zm75.641 35.299c0-15.131-.724-64.641 63.78-64.641 25.893 0 36.705 8.233 36.705 8.233l-8.69 26.953s-10.798-5.946-24.868-5.946c-18.021 0-29.52 10.447-29.52 28.828l.02 13.18c0 17.662 11.095 29.452 29.537 29.452 12.818 0 24.632-6.002 24.632-6.002l8.668 26.39s-9.886 8.285-36.303 8.285c-61.418 0-63.96-44.42-63.96-64.732zm310.628-64.688c34.941 0 51.179 26.282 51.179 63.59 0 46.998-20.737 65.808-51.2 65.808-17.429 0-30.313-7.335-37.273-21.026v18.568l-35.389-.014V3.786L510.083.509V83.52c5.423-14.523 23.245-19.885 35.11-19.885zm-10.534 29.389c-14.675 0-24.575 10.236-24.575 27.647l-.035 17.783c-.022 11.735 6.856 25.464 24.61 25.464 24.97 0 24.303-26.962 24.303-35.942 0-30.207-13.303-34.952-24.303-34.952zM400.243 63.738c-39.63 0-60.552 21.607-60.552 60.005v7.134c0 49.837 29.381 62.668 64.409 62.668 34.047 0 49.458-9.523 49.458-9.523l-7.031-25.36s-18.128 7.713-37.922 7.713c-20.52 0-29.345-5.23-31.607-24.95h79.564V121.08c0-41.652-23.481-57.343-56.32-57.343zm.955 25.394c13.718 0 22.607 8.412 22.119 27.921h-46.25c.802-20.533 10.388-27.92 24.131-27.92zm270.094-25.565c-40.697 0-62.122 22.934-62.122 64.033 0 56.39 36.932 65.467 62.19 65.467 36.976 0 61.576-19.907 61.576-64.955 0-46.887-27.66-64.545-61.644-64.545zm-.512 29.559c17.895 0 24.986 13.393 24.986 28.638v13.107c0 18.468-9.922 29.15-25.054 29.15-14.152 0-24.098-9.992-24.098-29.15v-13.107c0-20.432 11.835-28.638 24.166-28.638zm137.01-29.559c-40.697 0-62.122 22.934-62.122 64.033 0 56.39 36.932 65.467 62.19 65.467 36.975 0 61.576-19.907 61.576-64.955 0-46.887-27.661-64.545-61.644-64.545zm-.512 29.559c17.895 0 24.985 13.393 24.985 28.638v13.107c0 18.468-9.922 29.15-25.053 29.15-14.152 0-24.098-9.992-24.098-29.15v-13.107c0-20.432 11.835-28.638 24.166-28.638zm76.355 97.436V3.786L921.316.51v125.189l37.386-59.653h39.796l-39 61.783L1000 190.562h-39.909l-38.775-60.914v60.914z" fill="#1877f2"/></svg>
|
After Width: | Height: | Size: 2.5 KiB |
1
js/_website/src/assets/logos/google.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 596 194.5" width="2500" height="816"><style>.st0{fill:#3780ff}.st1{fill:#38b137}.st2{fill:#fa3913}.st3{fill:#fcbd06}</style><path class="st0" d="M73.4 0h5.3c18.4.4 36.5 7.8 49.5 20.9-4.8 4.9-9.7 9.6-14.4 14.5-7.3-6.6-16.1-11.7-25.7-13.5-14.2-3-29.5-.3-41.4 7.8C33.7 38.2 24.9 52.6 23 68c-2.1 15.2 2.2 31.2 12.1 43 9.5 11.5 24 18.7 39 19.2 14 .8 28.6-3.5 38.8-13.3 8-6.9 11.7-17.4 12.9-27.6-16.6 0-33.2.1-49.8 0V68.7h69.9c3.6 22.1-1.6 47-18.4 62.8-11.2 11.2-26.7 17.8-42.5 19.1-15.3 1.5-31.1-1.4-44.7-8.8C24 133.1 11 118.4 4.6 101.1c-6-15.9-6.1-33.9-.5-49.9C9.2 36.6 19 23.7 31.6 14.7 43.7 5.8 58.4.9 73.4 0z"/><path class="st1" d="M474.4 5.2h21.4V148c-7.1 0-14.3.1-21.4-.1.1-47.5 0-95.1 0-142.7z"/><path class="st2" d="M193.5 54.7c13.2-2.5 27.5.3 38.4 8.2 9.9 7 16.8 18 18.9 30 2.7 13.9-.7 29.1-9.7 40.1-9.7 12.3-25.6 18.9-41.1 17.9-14.2-.8-28-7.9-36.4-19.5-9.5-12.8-11.8-30.4-6.6-45.4 5.2-16.1 19.9-28.4 36.5-31.3m3 19c-5.4 1.4-10.4 4.5-14 8.9-9.7 11.6-9.1 30.5 1.6 41.3 6.1 6.2 15.3 9.1 23.8 7.4 7.9-1.4 14.8-6.7 18.6-13.7 6.6-11.9 4.7-28.3-5.4-37.6-6.5-6-16-8.5-24.6-6.3z"/><path class="st3" d="M299.5 54.7c15.1-2.9 31.6 1.3 42.9 11.9 18.4 16.5 20.4 47.4 4.7 66.4-9.5 12-24.9 18.6-40.1 17.9-14.5-.4-28.8-7.6-37.4-19.5-9.7-13.1-11.8-31.1-6.3-46.4 5.5-15.6 19.9-27.5 36.2-30.3m3 19c-5.4 1.4-10.4 4.5-14 8.8-9.6 11.4-9.2 30 1.1 40.9 6.1 6.5 15.6 9.7 24.4 7.9 7.8-1.5 14.8-6.7 18.6-13.7 6.5-12 4.6-28.4-5.6-37.7-6.5-6-16-8.4-24.5-6.2z"/><path class="st0" d="M389.4 60.5c11.5-7.2 26.8-9.2 39.2-3 3.9 1.7 7.1 4.6 10.2 7.5.1-2.7 0-5.5.1-8.3 6.7.1 13.4 0 20.2.1V145c-.1 13.3-3.5 27.4-13.1 37.1-10.5 10.7-26.6 14-41.1 11.8-15.5-2.3-29-13.6-35-27.9 6-2.9 12.3-5.2 18.5-7.9 3.5 8.2 10.6 15.2 19.5 16.8 8.9 1.6 19.2-.6 25-8 6.2-7.6 6.2-18 5.9-27.3-4.6 4.5-9.9 8.5-16.3 10-13.9 3.9-29.2-.9-39.9-10.3-10.8-9.4-17.2-23.9-16.6-38.3.3-16.3 9.5-32 23.4-40.5m20.7 12.8c-6.1 1-11.8 4.4-15.7 9.1-9.4 11.2-9.4 29.1.1 40.1 5.4 6.5 14.1 10.1 22.5 9.2 7.9-.8 15.2-5.8 19.1-12.7 6.6-11.7 5.5-27.6-3.4-37.8-5.5-6.3-14.3-9.4-22.6-7.9z"/><path class="st2" d="M521.5 65.6c12-11.2 30.5-15 45.9-9.1C582 62 591.3 75.9 596 90.2c-21.7 9-43.3 17.9-65 26.9 3 5.7 7.6 10.9 13.8 13 8.7 3.1 19.1 2 26.4-3.8 2.9-2.2 5.2-5.1 7.4-7.9 5.5 3.7 11 7.3 16.5 11-7.8 11.7-20.9 19.9-35 21.2-15.6 1.9-32.2-4.1-42.3-16.3-16.6-19.2-15-51.4 3.7-68.7m10.7 18.5c-3.4 4.9-4.8 10.9-4.7 16.8 14.5-6 29-12 43.5-18.1-2.4-5.6-8.2-9-14.1-9.9-9.5-1.7-19.4 3.4-24.7 11.2z"/></svg>
|
After Width: | Height: | Size: 2.4 KiB |
23
js/_website/src/assets/logos/gradio.svg
Normal file
@ -0,0 +1,23 @@
|
||||
<svg width="512" height="120" viewBox="0 0 512 120" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_0_3)">
|
||||
<path d="M51.9696 11.1015L103.539 39.3842V55.8626L51.9696 27.58V11.1015Z" fill="#FF7C00" fill-opacity="0.75"/>
|
||||
<path d="M103.521 39.3847L51.7627 67.7738V84.3583L103.521 55.9692V39.3847Z" fill="#FF7C00"/>
|
||||
<path d="M-0.000595093 39.3847L51.7627 67.7738V84.3584L-0.000595093 55.9693V39.3847Z" fill="#FF7C00" fill-opacity="0.75"/>
|
||||
<path d="M51.9641 10.9954L0.00665283 39.3842V55.9688L51.9641 27.5801V10.9954Z" fill="#FF7C00"/>
|
||||
<path d="M51.9696 39.703L103.539 67.9855V84.464L51.9696 56.1815V39.703Z" fill="#FF7C00" fill-opacity="0.75"/>
|
||||
<path d="M103.521 67.9851L51.7627 96.3742V112.959L103.521 84.5696V67.9851Z" fill="#FF7C00"/>
|
||||
<path d="M-0.000595093 67.9851L51.7627 96.3742V112.959L-0.000595093 84.5697V67.9851Z" fill="#FF7C00" fill-opacity="0.75"/>
|
||||
<path d="M51.9641 39.5958L0.00665283 67.9845V84.5691L51.9641 56.1805V39.5958Z" fill="#FF7C00"/>
|
||||
<path d="M158.626 110.107L168.186 98.3085C173.47 103.149 179.36 105.569 185.854 105.569C190.211 105.569 193.801 104.924 196.624 103.633C199.448 102.342 200.86 100.567 200.86 98.3085C200.86 94.4765 197.734 92.5604 191.481 92.5604C189.787 92.5604 187.266 92.7621 183.918 93.1655C180.57 93.5688 178.049 93.7706 176.355 93.7706C165.947 93.7706 160.744 90.0393 160.744 82.5769C160.744 80.4389 161.611 78.3413 163.346 76.2841C165.081 74.2269 167.097 72.7143 169.396 71.7462C162.015 66.946 158.324 60.1491 158.324 51.3555C158.324 44.4174 160.864 38.6895 165.947 34.1716C171.03 29.6135 177.283 27.3343 184.705 27.3343C190.513 27.3343 195.374 28.4235 199.287 30.6017L205.217 23.704L215.684 33.2035L208.484 38.4675C210.985 42.2593 212.235 46.7369 212.235 51.9C212.235 59.2819 209.976 65.1913 205.458 69.6285C200.981 74.0252 195.314 76.2236 188.456 76.2236C187.367 76.2236 185.915 76.1228 184.1 75.9211L181.619 75.5581C181.337 75.5581 180.247 76.0018 178.351 76.8892C176.496 77.7364 175.568 78.6238 175.568 79.5515C175.568 81.1651 176.96 81.9718 179.743 81.9718C180.994 81.9718 183.091 81.6692 186.035 81.0642C188.98 80.4592 191.502 80.1566 193.6 80.1566C208.323 80.1566 215.684 86.0661 215.684 97.885C215.684 104.42 212.739 109.543 206.85 113.254C200.961 117.005 193.861 118.881 185.552 118.881C175.628 118.881 166.653 115.956 158.626 110.107ZM173.753 51.416C173.753 55.2481 174.802 58.3339 176.899 60.6735C179.038 62.9727 181.901 64.1224 185.492 64.1224C189.081 64.1224 191.844 62.9929 193.78 60.734C195.717 58.4751 196.685 55.3691 196.685 51.416C196.685 48.1487 195.636 45.3854 193.538 43.1266C191.481 40.8677 188.799 39.7382 185.492 39.7382C182.022 39.7382 179.199 40.8273 177.02 43.0056C174.842 45.1838 173.753 47.9872 173.753 51.416Z" fill="#FF7C00"/>
|
||||
<path d="M263.121 42.7636C260.418 40.9887 257.453 40.1013 254.227 40.1013C250.718 40.1013 247.591 41.6946 244.848 44.8813C242.145 48.0679 240.794 51.9605 240.794 56.5591V93.468H225.667V28.6655H240.794V34.5952C245.03 29.8353 250.656 27.4553 257.676 27.4553C262.839 27.4553 266.792 28.242 269.535 29.8152L263.121 42.7636Z" fill="#FF7C00"/>
|
||||
<path d="M314.734 86.9938C313.362 89.2527 310.961 91.1083 307.533 92.5604C304.145 93.9722 300.595 94.6781 296.884 94.6781C289.906 94.6781 284.419 92.9437 280.426 89.4746C276.432 85.9653 274.435 81.0037 274.435 74.59C274.435 67.0872 277.239 61.2181 282.846 56.9825C288.493 52.7471 296.5 50.6294 306.867 50.6294C308.642 50.6294 310.74 50.932 313.16 51.5369C313.16 43.9131 308.34 40.1013 298.699 40.1013C293.012 40.1013 288.251 41.0492 284.419 42.9451L281.152 31.2068C286.356 28.7058 292.547 27.4553 299.728 27.4553C309.61 27.4553 316.851 29.7143 321.45 34.2321C326.048 38.7096 328.348 47.2208 328.348 59.7658V73.6219C328.348 82.2541 330.082 87.6796 333.55 89.8981C332.3 92.0763 330.909 93.4075 329.376 93.8916C327.842 94.416 326.088 94.6781 324.112 94.6781C321.933 94.6781 319.977 93.8714 318.243 92.2579C316.508 90.6444 315.339 88.8897 314.734 86.9938ZM313.28 62.9727C310.699 62.4483 308.763 62.1862 307.472 62.1862C295.532 62.1862 289.563 66.0989 289.563 73.9244C289.563 79.733 292.931 82.6374 299.668 82.6374C308.743 82.6374 313.28 78.0994 313.28 69.0234V62.9727Z" fill="#FF7C00"/>
|
||||
<path d="M386.433 93.468V89.5351C385.183 90.9066 383.066 92.1167 380.08 93.1655C377.095 94.1739 374.01 94.6781 370.823 94.6781C361.788 94.6781 354.667 91.8142 349.464 86.0863C344.3 80.3582 341.719 72.3714 341.719 62.1257C341.719 51.8799 344.684 43.5501 350.613 37.1365C356.584 30.6824 364.046 27.4553 373.001 27.4553C377.922 27.4553 382.399 28.4638 386.433 30.4807V4.52341L401.56 0.893017V93.468H386.433ZM386.433 44.1552C383.206 41.5736 379.838 40.2828 376.329 40.2828C370.278 40.2828 365.619 42.1383 362.352 45.8494C359.085 49.5202 357.451 54.8043 357.451 61.7021C357.451 75.1749 363.945 81.9113 376.934 81.9113C378.386 81.9113 380.161 81.4877 382.259 80.6407C384.396 79.7532 385.788 78.8658 386.433 77.9784V44.1552Z" fill="#FF7C00"/>
|
||||
<path d="M428.606 3.5553C431.027 3.5553 433.084 4.42257 434.778 6.15709C436.512 7.85127 437.38 9.9085 437.38 12.3288C437.38 14.749 436.512 16.8264 434.778 18.561C433.084 20.2551 431.027 21.1022 428.606 21.1022C426.186 21.1022 424.109 20.2551 422.374 18.561C420.68 16.8264 419.833 14.749 419.833 12.3288C419.833 9.9085 420.68 7.85127 422.374 6.15709C424.109 4.42257 426.186 3.5553 428.606 3.5553ZM420.802 93.468V41.0693H412.512V28.6655H436.109V93.468H420.802Z" fill="#FF7C00"/>
|
||||
<path d="M449.542 60.9155C449.542 51.0328 452.385 42.9854 458.073 36.7734C463.802 30.5614 471.344 27.4553 480.702 27.4553C490.545 27.4553 498.189 30.4404 503.634 36.4104C509.08 42.3803 511.802 50.5487 511.802 60.9155C511.802 71.2419 509.02 79.4507 503.453 85.5417C497.926 91.6327 490.344 94.6781 480.702 94.6781C470.861 94.6781 463.197 91.6125 457.71 85.4812C452.264 79.3095 449.542 71.121 449.542 60.9155ZM465.273 60.9155C465.273 75.1951 470.417 82.3348 480.702 82.3348C485.423 82.3348 489.153 80.4792 491.896 76.7682C494.679 73.0572 496.071 67.7729 496.071 60.9155C496.071 46.8377 490.948 39.7987 480.702 39.7987C475.983 39.7987 472.232 41.6542 469.448 45.3654C466.665 49.0764 465.273 54.2597 465.273 60.9155Z" fill="#FF7C00"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_0_3">
|
||||
<rect width="512" height="119.202" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 6.1 KiB |
182
js/_website/src/assets/logos/huggingface.svg
Normal file
@ -0,0 +1,182 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="453.2193"
|
||||
height="87.671417"
|
||||
viewBox="0 0 453.2193 87.671417"
|
||||
version="1.1"
|
||||
id="svg47"
|
||||
sodipodi:docname="huggingface.svg"
|
||||
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview49"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="2.1392045"
|
||||
inkscape:cx="285.62019"
|
||||
inkscape:cy="71.755644"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1001"
|
||||
inkscape:window-x="-9"
|
||||
inkscape:window-y="-9"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg47" />
|
||||
<!-- Generator: Sketch 43.2 (39069) - http://www.bohemiancoding.com/sketch -->
|
||||
<title
|
||||
id="title2">icon</title>
|
||||
<desc
|
||||
id="desc4">Created with Sketch.</desc>
|
||||
<defs
|
||||
id="defs7">
|
||||
<path
|
||||
d="m 13,14.789019 c 9.82848,0 13,-8.76296 13,-13.2628439 C 26,-0.81248411 24.427913,-0.0763571 21.909948,1.1702099 19.583022,2.3221996 16.4483,3.9101131 13,3.9101131 5.8202982,3.9101131 0,-2.9737088 0,1.5261751 0,6.026059 3.1715199,14.789019 13,14.789019 Z"
|
||||
id="path-1" />
|
||||
</defs>
|
||||
<g
|
||||
id="Page-1"
|
||||
stroke="none"
|
||||
stroke-width="1"
|
||||
fill="none"
|
||||
fill-rule="evenodd">
|
||||
<g
|
||||
id="g44">
|
||||
<g
|
||||
id="icon">
|
||||
<g
|
||||
id="icon_desktop">
|
||||
<g
|
||||
id="Group-2">
|
||||
<g
|
||||
id="Group">
|
||||
<path
|
||||
d="m 93.79304,70.08 c 0.75,2.16 0.57,4.46 -0.43,6.46 -0.72,1.46 -1.75,2.59 -3.01,3.6 -1.52,1.2 -3.41,2.22 -5.69,3.2 -2.72,1.16 -6.04,2.25 -7.56,2.65 -3.89,1.01 -7.63,1.65 -11.42,1.68 -5.42,0.05 -10.09,-1.23 -13.41,-4.5 -1.72,0.21 -3.46,0.33 -5.21,0.33 -1.66,0 -3.3,-0.1 -4.93,-0.3 -3.33,3.25 -7.98,4.52 -13.38,4.47 -3.79,-0.03 -7.53,-0.67 -11.43,-1.68 -1.51,-0.4 -4.83,-1.49 -7.5499998,-2.65 -2.28,-0.98 -4.17,-2 -5.68,-3.2 -1.27,-1.01 -2.3,-2.14 -3.02,-3.6 -0.99000001,-2 -1.18000001,-4.3 -0.42000001,-6.46 -0.7,-1.65 -0.88,-3.54 -0.33,-5.63 0.25,-0.95 0.66,-1.83 1.18000001,-2.61 -0.11,-0.41 -0.2,-0.83 -0.26,-1.29 -0.38000001,-2.74 0.57,-5.24 2.36,-7.18 0.88,-0.97 1.83,-1.64 2.82,-2.07 -0.73,-3.1 -1.11,-6.29 -1.11,-9.55 C 5.3130402,18.69 24.00304,0 47.06304,0 c 7.92,0 15.33,2.2 21.65,6.04 1.14,0.7 2.26,1.45 3.33,2.25 0.53,0.4 1.06,0.81 1.57,1.24 0.52,0.42 1.03,0.86 1.52,1.31 1.48,1.35 2.87,2.8 4.14,4.35 0.43,0.51 0.84,1.04 1.24,1.58 0.81,1.07 1.56,2.18 2.25,3.33 1.05,1.72 1.97,3.52 2.77,5.39 0.53,1.25 0.99,2.53 1.4,3.84 0.61,1.96 1.08,3.98 1.4,6.06 0.1,0.69 0.19,1.39 0.26,2.09 0.14,1.4 0.22,2.82 0.22,4.27 0,3.22 -0.38,6.38 -1.09,9.43 1.1,0.43 2.14,1.13 3.11,2.19 1.79,1.94 2.74,4.45 2.36,7.19 -0.06,0.45 -0.15,0.87 -0.26,1.28 0.52,0.78 0.93,1.66 1.18,2.61 0.55,2.09 0.37,3.98 -0.32,5.63"
|
||||
id="Fill-1"
|
||||
fill="#ffffff"
|
||||
fill-rule="nonzero" />
|
||||
<circle
|
||||
id="Oval"
|
||||
fill="#ffd21e"
|
||||
fill-rule="nonzero"
|
||||
cx="46.75"
|
||||
cy="41.75"
|
||||
r="34.75" />
|
||||
<path
|
||||
d="M 81.5,41.75 C 81.5,22.558105 65.941895,7 46.75,7 27.558105,7 12,22.558105 12,41.75 12,60.941895 27.558105,76.5 46.75,76.5 65.941895,76.5 81.5,60.941895 81.5,41.75 Z M 8,41.75 C 8,20.348966 25.348966,3 46.75,3 68.151034,3 85.5,20.348966 85.5,41.75 85.5,63.151034 68.151034,80.5 46.75,80.5 25.348966,80.5 8,63.151034 8,41.75 Z"
|
||||
id="path11"
|
||||
fill="#ffac03"
|
||||
fill-rule="nonzero" />
|
||||
<path
|
||||
d="m 57.172355,31.715118 c 0.913958,0.995632 0.131688,3.546978 1.589741,3.546978 2.761423,0 5,-2.238576 5,-5 0,-2.761424 -2.238577,-5 -5,-5 -2.761424,0 -5,2.238576 -5,5 0,1.303371 2.59326,0.563015 3.410259,1.453022 z"
|
||||
id="Oval-2"
|
||||
fill="#3a3b45"
|
||||
fill-rule="nonzero"
|
||||
transform="rotate(-28,58.762096,30.262096)" />
|
||||
<path
|
||||
d="m 32.172355,31.715118 c 0.913959,0.995632 0.131688,3.546978 1.589741,3.546978 2.761424,0 5,-2.238576 5,-5 0,-2.761424 -2.238576,-5 -5,-5 -2.761424,0 -5,2.238576 -5,5 0,1.303371 2.593261,0.563015 3.410259,1.453022 z"
|
||||
id="path14"
|
||||
fill="#3a3b45"
|
||||
fill-rule="nonzero"
|
||||
transform="matrix(-0.88294759,-0.46947156,-0.46947156,0.88294759,77.779451,19.392595)" />
|
||||
<g
|
||||
id="Oval-4"
|
||||
transform="translate(33.5,41.5)">
|
||||
<g
|
||||
id="Mask"
|
||||
fill-rule="nonzero"
|
||||
fill="#3a3b45">
|
||||
<path
|
||||
d="m 13,14.789019 c 9.82848,0 13,-8.76296 13,-13.2628439 C 26,-0.81248411 24.427913,-0.0763571 21.909948,1.1702099 19.583022,2.3221996 16.4483,3.9101131 13,3.9101131 5.8202982,3.9101131 0,-2.9737088 0,1.5261751 0,6.026059 3.1715199,14.789019 13,14.789019 Z"
|
||||
id="path16" />
|
||||
</g>
|
||||
<g
|
||||
id="Clipped">
|
||||
<mask
|
||||
id="mask-2"
|
||||
fill="#ffffff">
|
||||
<use
|
||||
xlink:href="#path-1"
|
||||
id="use19"
|
||||
x="0"
|
||||
y="0"
|
||||
width="100%"
|
||||
height="100%" />
|
||||
</mask>
|
||||
<g
|
||||
id="g22" />
|
||||
<path
|
||||
d="m 13.25,25 c 4.789929,0 8.672934,-3.883005 8.672934,-8.672934 0,-3.730834 -2.355709,-6.9114622 -5.660835,-8.1355948 C 16.140459,8.146419 16.017534,8.104017 15.893392,8.064335 15.059989,7.7979368 14.171788,10.662314 13.25,10.662314 c -0.861312,0 -1.693299,-2.8826276 -2.478657,-2.6488233 C 7.1891627,9.0799194 4.5770662,12.398449 4.5770662,16.327066 4.5770662,21.116995 8.4600709,25 13.25,25 Z"
|
||||
id="Shape"
|
||||
fill="#ef4e4e"
|
||||
fill-rule="nonzero"
|
||||
mask="url(#mask-2)" />
|
||||
</g>
|
||||
</g>
|
||||
<circle
|
||||
id="Oval-3"
|
||||
fill="#ffd21e"
|
||||
fill-rule="nonzero"
|
||||
style="mix-blend-mode:multiply"
|
||||
cx="70.25"
|
||||
cy="33.75"
|
||||
r="3.25" />
|
||||
<circle
|
||||
id="circle28"
|
||||
fill="#ffd21e"
|
||||
fill-rule="nonzero"
|
||||
style="mix-blend-mode:multiply"
|
||||
cx="23.75"
|
||||
cy="33.75"
|
||||
r="3.25" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="Group-4"
|
||||
transform="translate(3,48)"
|
||||
fill-rule="nonzero">
|
||||
<path
|
||||
d="m 14.061945,0 v 0 c -1.619,0 -3.066,0.665 -4.0749997,1.871 -0.624,0.747 -1.276,1.951 -1.329,3.754 -0.679,-0.195 -1.332,-0.304 -1.942,-0.304 -1.55,0 -2.95,0.594 -3.94,1.673 -1.272,1.385 -1.83699995,3.087 -1.591,4.79 0.117,0.811 0.388,1.538 0.793,2.211 -0.854,0.691 -1.48299996,1.653 -1.78699996,2.81 -0.238,0.907 -0.48199999,2.796 0.792,4.742 -0.081,0.127 -0.157,0.259 -0.228,0.394 -0.766,1.454 -0.815,3.097 -0.139,4.627 1.02499996,2.319 3.57199996,4.146 8.51799996,6.107 3.0769997,1.22 5.8919997,2 5.9169997,2.007 4.068,1.055 7.747,1.591 10.932,1.591 5.854,0 10.045,-1.793 12.457,-5.329 3.882,-5.694 3.327,-10.902 -1.696,-15.922 -2.78,-2.778 -4.628,-6.874 -5.013,-7.773 -0.776,-2.662 -2.828,-5.621 -6.239,-5.621 h -0.001 c -0.287,0 -0.577,0.023 -0.863,0.068 -1.494,0.235 -2.8,1.095 -3.733,2.389 -1.007,-1.252 -1.985,-2.248 -2.87,-2.81 -1.334,-0.846 -2.667,-1.275 -3.963,-1.275 m 0,4 c 0.51,0 1.133,0.217 1.82,0.653 2.133,1.353 6.249,8.428 7.756,11.18 0.505,0.922 1.368,1.312 2.145,1.312 1.542,0 2.746,-1.533 0.141,-3.481 -3.917,-2.931 -2.543,-7.722 -0.673,-8.017 0.082,-0.013 0.163,-0.019 0.241,-0.019 1.7,0 2.45,2.93 2.45,2.93 0,0 2.198,5.52 5.974,9.293 3.776,3.774 3.971,6.803 1.219,10.839 -1.877,2.752 -5.47,3.583 -9.152,3.583 -3.819,0 -7.734,-0.894 -9.928,-1.463 -0.108,-0.028 -13.4509997,-3.797 -11.7609997,-7.005 0.284,-0.539 0.752,-0.755 1.341,-0.755 2.38,0 6.7089997,3.542 8.5699997,3.542 0.416,0 0.709,-0.177 0.829,-0.609 0.793,-2.845 -12.0569997,-4.041 -10.9739997,-8.162 0.191,-0.729 0.709,-1.025 1.437,-1.024 3.145,0 10.2009997,5.531 11.6799997,5.531 0.113,0 0.194,-0.033 0.238,-0.103 0.741,-1.196 0.335,-2.031 -4.888,-5.192 -5.2229997,-3.162 -8.8889997,-5.064 -6.8039997,-7.334 0.24,-0.262 0.58,-0.378 0.993,-0.378 3.171,10e-4 10.6629997,6.819 10.6629997,6.819 0,0 2.022,2.103 3.245,2.103 0.281,0 0.52,-0.111 0.682,-0.385 0.867,-1.462 -8.053,-8.222 -8.556,-11.011 -0.341,-1.89 0.239,-2.847 1.312,-2.847"
|
||||
id="path33"
|
||||
fill="#ffac03" />
|
||||
<path
|
||||
d="m 35.1348,28.6899 c 2.752,-4.036 2.557,-7.065 -1.219,-10.839 -3.776,-3.773 -5.974,-9.293 -5.974,-9.293 0,0 -0.821,-3.206 -2.691,-2.911 -1.87,0.295 -3.243,5.086 0.674,8.017 3.917,2.93 -0.78,4.921 -2.287,2.169 -1.507,-2.752 -5.622,-9.827 -7.756,-11.18 -2.133,-1.353 -3.635,-0.595 -3.132,2.194 0.503,2.789 9.424,9.549 8.556,11.012 -0.868,1.462 -3.927,-1.719 -3.927,-1.719 0,0 -9.572,-8.711 -11.656,-6.441 -2.084,2.27 1.581,4.172 6.804,7.334 5.224,3.161 5.629,3.996 4.888,5.192 -0.742,1.196 -12.272,-8.525 -13.355,-4.404 -1.082,4.121 11.767,5.317 10.974,8.162 -0.793,2.846 -9.051,-5.385 -10.74,-2.178 -1.69,3.208 11.653,6.977 11.761,7.005 4.31,1.118 15.256,3.487 19.08,-2.12"
|
||||
id="Fill-4"
|
||||
fill="#ffd21e" />
|
||||
</g>
|
||||
<g
|
||||
id="g41"
|
||||
transform="matrix(-1,0,0,1,91,48)"
|
||||
fill-rule="nonzero">
|
||||
<path
|
||||
d="m 14.061945,0 v 0 c -1.619,0 -3.066,0.665 -4.0749997,1.871 -0.624,0.747 -1.276,1.951 -1.329,3.754 -0.679,-0.195 -1.332,-0.304 -1.942,-0.304 -1.55,0 -2.95,0.594 -3.94,1.673 -1.272,1.385 -1.83699995,3.087 -1.591,4.79 0.117,0.811 0.388,1.538 0.793,2.211 -0.854,0.691 -1.48299996,1.653 -1.78699996,2.81 -0.238,0.907 -0.48199999,2.796 0.792,4.742 -0.081,0.127 -0.157,0.259 -0.228,0.394 -0.766,1.454 -0.815,3.097 -0.139,4.627 1.02499996,2.319 3.57199996,4.146 8.51799996,6.107 3.0769997,1.22 5.8919997,2 5.9169997,2.007 4.068,1.055 7.747,1.591 10.932,1.591 5.854,0 10.045,-1.793 12.457,-5.329 3.882,-5.694 3.327,-10.902 -1.696,-15.922 -2.78,-2.778 -4.628,-6.874 -5.013,-7.773 -0.776,-2.662 -2.828,-5.621 -6.239,-5.621 h -0.001 c -0.287,0 -0.577,0.023 -0.863,0.068 -1.494,0.235 -2.8,1.095 -3.733,2.389 -1.007,-1.252 -1.985,-2.248 -2.87,-2.81 -1.334,-0.846 -2.667,-1.275 -3.963,-1.275 m 0,4 c 0.51,0 1.133,0.217 1.82,0.653 2.133,1.353 6.249,8.428 7.756,11.18 0.505,0.922 1.368,1.312 2.145,1.312 1.542,0 2.746,-1.533 0.141,-3.481 -3.917,-2.931 -2.543,-7.722 -0.673,-8.017 0.082,-0.013 0.163,-0.019 0.241,-0.019 1.7,0 2.45,2.93 2.45,2.93 0,0 2.198,5.52 5.974,9.293 3.776,3.774 3.971,6.803 1.219,10.839 -1.877,2.752 -5.47,3.583 -9.152,3.583 -3.819,0 -7.734,-0.894 -9.928,-1.463 -0.108,-0.028 -13.4509997,-3.797 -11.7609997,-7.005 0.284,-0.539 0.752,-0.755 1.341,-0.755 2.38,0 6.7089997,3.542 8.5699997,3.542 0.416,0 0.709,-0.177 0.829,-0.609 0.793,-2.845 -12.0569997,-4.041 -10.9739997,-8.162 0.191,-0.729 0.709,-1.025 1.437,-1.024 3.145,0 10.2009997,5.531 11.6799997,5.531 0.113,0 0.194,-0.033 0.238,-0.103 0.741,-1.196 0.335,-2.031 -4.888,-5.192 -5.2229997,-3.162 -8.8889997,-5.064 -6.8039997,-7.334 0.24,-0.262 0.58,-0.378 0.993,-0.378 3.171,10e-4 10.6629997,6.819 10.6629997,6.819 0,0 2.022,2.103 3.245,2.103 0.281,0 0.52,-0.111 0.682,-0.385 0.867,-1.462 -8.053,-8.222 -8.556,-11.011 -0.341,-1.89 0.239,-2.847 1.312,-2.847"
|
||||
id="path37"
|
||||
fill="#ffac03" />
|
||||
<path
|
||||
d="m 35.1348,28.6899 c 2.752,-4.036 2.557,-7.065 -1.219,-10.839 -3.776,-3.773 -5.974,-9.293 -5.974,-9.293 0,0 -0.821,-3.206 -2.691,-2.911 -1.87,0.295 -3.243,5.086 0.674,8.017 3.917,2.93 -0.78,4.921 -2.287,2.169 -1.507,-2.752 -5.622,-9.827 -7.756,-11.18 -2.133,-1.353 -3.635,-0.595 -3.132,2.194 0.503,2.789 9.424,9.549 8.556,11.012 -0.868,1.462 -3.927,-1.719 -3.927,-1.719 0,0 -9.572,-8.711 -11.656,-6.441 -2.084,2.27 1.581,4.172 6.804,7.334 5.224,3.161 5.629,3.996 4.888,5.192 -0.742,1.196 -12.272,-8.525 -13.355,-4.404 -1.082,4.121 11.767,5.317 10.974,8.162 -0.793,2.846 -9.051,-5.385 -10.74,-2.178 -1.69,3.208 11.653,6.977 11.761,7.005 4.31,1.118 15.256,3.487 19.08,-2.12"
|
||||
id="path39"
|
||||
fill="#ffd21e" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:46.1554px;line-height:1.25;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.15389"
|
||||
x="103.6733"
|
||||
y="60.135597"
|
||||
id="text3771"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3769"
|
||||
x="103.6733"
|
||||
y="60.135597"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Source Sans Pro,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;-inkscape-font-specification:'sans-serif Bold';stroke-width:1.15389">Hugging Face</tspan></text>
|
||||
</svg>
|
After Width: | Height: | Size: 13 KiB |
1
js/_website/src/assets/logos/humaniseai.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 340 60"><path fill="#ffe700" d="M141 54.1h40v3.3h-40z"></path><path fill="#ff004d" d="M141 .7h40V4h-40z"></path><path fill="#00ebff" d="M227.7 54.1h40v3.3h-40z"></path><path fill="#00ff89" d="M227.7.7h40V4h-40z"></path><g fill-rule="nonzero"><path d="M32.6 46.6h-5V30.5H4.9v16H0V11.2h4.9v15.3h22.7V11h5v35.5zM51 11v21.3c0 6.3 4.2 11 11.5 11 7.2 0 11.3-4.7 11.3-11V11h5v21.4c0 8.8-5.8 15-16.3 15s-16.3-6.2-16.3-15V11.1H51zM92.4 11h7.2L111 38.7c.4 1 .8 2 1 3l1-3L125 11h7.2v35.5h-4.5V18.8c0-1.2 0-2.4.2-3.6h-.2l-1.3 3.6-11.8 27.8h-4.7L98 18.8l-1.1-3.6h-.2c.1 1.2.2 2.4.1 3.6v27.8h-4.4V11zM170.6 37.4h-19l-4 9.2h-5.2L158.6 11h5l16.2 35.5h-5.2l-4-9.2zm-1.8-4.1l-6.5-15-1.2-3h-.1c-.3 1.1-.8 2.2-1.2 3l-6.5 15h15.5zM190 11h6l19.7 26.3c.9 1.2 1.6 2.6 2.2 4h.1V11.1h4.4v35.5h-5.7l-20-26.6c-.9-1.2-1.6-2.5-2.2-3.9h-.1v30.4H190V11.2z"></path></g><path d="M249.7 14.8v28h9v3.8h-22.5v-3.8h8.9v-28h-8.9v-3.7h22.4v3.7h-8.9z" fill-rule="nonzero"></path><g fill-rule="nonzero"><path d="M268.6 35.8l5-.8c1.2 5 5 8.5 12.5 8.5 5.9 0 10-1.7 10-6.2 0-4-2.7-5.5-7.9-6.2l-7.8-1c-6.3-1-10.1-3.8-10.1-9.8 0-6.2 5.4-10.2 14.6-10.2 8.7 0 14.5 3.4 16 10.4l-4.9 1.2c-1.3-5-4.6-7.6-11.3-7.6-5.8 0-9.4 2.1-9.4 5.8 0 3.5 2 5.2 7.1 6l7.6 1c7 1 11.1 3.7 11.1 10s-4.9 10.7-15 10.7c-10.5 0-16.1-4.5-17.5-11.8zM340 42.5v4h-27.2V11.2h26.8v4h-22v11.2h21.1v4.1h-21v12H340z"></path></g></svg>
|
After Width: | Height: | Size: 1.4 KiB |
BIN
js/_website/src/assets/logos/mit-svg-50.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
23
js/_website/src/assets/logos/siemens.svg
Normal file
@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Creator: CorelDRAW -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="210mm" height="50mm" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
|
||||
viewBox="0 0 210 50">
|
||||
<defs>
|
||||
<style type="text/css">
|
||||
<![CDATA[
|
||||
.fil0 {fill:#009999}
|
||||
]]>
|
||||
</style>
|
||||
</defs>
|
||||
<g id="Ebene_x0020_1">
|
||||
<metadata id="CorelCorpID_0Corel-Layer"/>
|
||||
<path class="fil0" d="M200.121 10.3466l0 5.8289c-3.0198,-1.14 -5.7084,-1.7164 -8.0615,-1.7164 -1.3938,0 -2.5037,0.2581 -3.3382,0.7571 -0.8346,0.5033 -1.2605,1.1228 -1.2605,1.8541 0,0.9722 0.9421,1.8368 2.8392,2.6112l5.4805 2.6671c4.4309,2.1122 6.6291,4.9169 6.6291,8.4401 0,2.9295 -1.1658,5.2654 -3.5189,6.9947 -2.3359,1.7466 -5.4805,2.6112 -9.3951,2.6112 -1.8068,0 -3.4285,-0.0774 -4.8696,-0.2409 -1.4411,-0.1548 -3.0973,-0.4732 -4.9342,-0.9292l0 -6.0999c3.3683,1.14 6.4355,1.7164 9.1972,1.7164 3.2952,0 4.9342,-0.955 4.9342,-2.8822 0,-0.9593 -0.6711,-1.7336 -2.0347,-2.3402l-6.0871 -2.594c-2.2455,-1.0152 -3.9146,-2.2455 -5.0073,-3.7038 -1.0754,-1.4712 -1.6218,-3.1575 -1.6218,-5.0847 0,-2.6973 1.1357,-4.8697 3.3812,-6.5216 2.2628,-1.639 5.2655,-2.4606 8.9994,-2.4606 1.2131,0 2.6112,0.1075 4.1599,0.3054 1.5615,0.2108 3.0628,0.4689 4.5082,0.7873z"/>
|
||||
<path class="fil0" d="M27.7222 10.3466l0 5.8289c-3.0199,-1.14 -5.7042,-1.7164 -8.0573,-1.7164 -1.3981,0 -2.5036,0.2581 -3.3382,0.7571 -0.8345,0.5033 -1.2604,1.1228 -1.2604,1.8541 0,0.9722 0.955,1.8368 2.8521,2.6112l5.4805 2.6671c4.4136,2.1122 6.6162,4.9169 6.6162,8.4401 0,2.9295 -1.1701,5.2654 -3.506,6.9947 -2.3531,1.7466 -5.4805,2.6112 -9.408,2.6112 -1.8068,0 -3.4329,-0.0774 -4.874,-0.2409 -1.4411,-0.1548 -3.0801,-0.4732 -4.9298,-0.9292l0 -6.0999c3.3812,1.14 6.4484,1.7164 9.1929,1.7164 3.2952,0 4.9342,-0.955 4.9342,-2.8822 0,-0.9593 -0.6668,-1.7336 -2.0176,-2.3402l-6.087 -2.594c-2.2628,-1.0152 -3.9319,-2.2455 -5.0073,-3.7038 -1.0927,-1.4712 -1.6261,-3.1575 -1.6261,-5.0847 0,-2.6973 1.1271,-4.8697 3.3855,-6.5216 2.2456,-1.639 5.2525,-2.4606 8.9865,-2.4606 1.226,0 2.6069,0.1075 4.1727,0.3054 1.5487,0.2108 3.05,0.4689 4.4911,0.7873z"/>
|
||||
<polygon class="fil0" points="34.0028,9.8002 42.9291,9.8002 42.9291,39.8483 34.0028,39.8483 "/>
|
||||
<polygon class="fil0" points="71.6866,9.8002 71.6866,15.3539 58.4241,15.3539 58.4241,22.0173 69.9272,22.0173 69.9272,27.0246 58.4241,27.0246 58.4241,34.0194 71.9576,34.0194 71.9576,39.8483 49.8335,39.8483 49.8335,9.8002 "/>
|
||||
<polygon class="fil0" points="113.358,9.8002 113.358,39.8483 105.025,39.8483 105.025,20.0299 96.3789,40.1236 91.234,40.1236 82.9186,20.0299 82.9186,39.8483 76.8918,39.8483 76.8918,9.8002 87.7882,9.8002 95.226,28.1947 103.008,9.8002 "/>
|
||||
<polygon class="fil0" points="142.103,9.8002 142.103,15.3539 128.913,15.3539 128.913,22.0173 140.416,22.0173 140.416,27.0246 128.913,27.0246 128.913,34.0194 142.374,34.0194 142.374,39.8483 120.25,39.8483 120.25,9.8002 "/>
|
||||
<polygon class="fil0" points="173.424,9.8002 173.424,39.8483 163.956,39.8483 153.331,20.5762 153.331,39.8483 147.308,39.8483 147.308,9.8002 157.052,9.8002 167.402,28.7411 167.402,9.8002 "/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
8
js/_website/src/assets/logos/stanford.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="248.02pt" width="162pt" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 162 248.022">
|
||||
<g>
|
||||
<path fill="#8c1515" d="m35.872 1.1236-34.558 33.832v90.907l30.041 30.665h13.776c-0.33541 0.92261-0.77516 2.3452 0.18119 3.7375 1.0401 1.5433 2.835 1.5433 3.5228 1.5433 0.80522 0 1.9291-0.10059 3.6571-0.33551h0.02027s0.72132 0.64079-1.4762 1.3621c-1.8117 0.63746-3.3919 1.6909-3.912 3.5025-0.03436 0.13399-0.04703 0.27196-0.08053 0.38918h-45.716l-0.013433 46.465 34.558 33.953h90.887l34.558-33.905v-87.077l-30.047-30.618h-25.478c-0.0172 0-0.0403-0.0134-0.0403-0.0134-1.1239-0.67099-2.2781-1.3789-3.3349-2.0667l-0.38917-0.24828-0.0671-0.04026c-0.57036-0.35214-1.1709-0.78508-1.8251-1.3554-0.57036-0.45294-1.0434-0.90584-1.3957-1.3085l-0.10066-0.10066c-0.67099-0.70459-1.2581-1.3789-1.7111-1.966 3.9756 1.1407 8.3071 1.4292 10.387 1.4963h0.24828c0.13399 0 0.27196 0.02027 0.38918 0.02027l0.18116 0.0134c0.50323 0.03436 0.88907 0.11712 1.1407 0.20129 0.26842 0.10049 0.5066 0.22159 0.72469 0.32208l1.0736 0.40261c0.25165 0.06699 0.52 0.08053 0.80522 0.08053 1.5601 0 3.0195-0.93941 3.6904-2.4156 0.21816-0.50327 0.5536-1.5064 0.30195-2.8316l45.442 0.03367v-50.76l-34.551-33.886h-90.887z"/>
|
||||
<path fill="#fff" d="m157.19 36.804-32.1-31.487h-87.55l-32.108 31.436v87.382l27.628 28.182 17.815 0.0172c-1.9963 1.7949-2.6169 3.6569-2.9357 4.5628-0.68775 1.9962-1.4091 2.5665 4.8479 1.6943 1.9795-0.28515 5.5862-1.5601 7.2803-2.7008 1.6607-1.1407 4.9484-0.21816 4.6633 2.2479-1.5433 3.7743-5.502 6.1397-9.2768 6.6095-8.6893 1.0904-4.9317 4.3279-4.9317 4.3279 0.95619 0.65426 1.644 1.2917 2.1305 1.8621h-4.2273v-0.0172h-42.978l-0.017178 40.478 32.091 31.537h87.567l32.09-31.487v-83.539l-27.628-28.148h-22.327c-1.7781-1.1911-4.177-2.5163-6.3578-3.9421 0-0.01718 0-0.01718-0.0172-0.01718-0.83874-0.48647-1.6607-1.0903-2.4491-1.7781-0.65421-0.52001-1.2413-1.0736-1.7446-1.6272-1.9291-2.013-3.3717-4.1099-3.7576-5.0829-0.72133-1.7781-0.55355-4.026 1.0736-3.1034 4.1267 2.3821 10.904 2.835 13.42 2.9189 0.28515 0 2.3149 0.2349 2.8014 0.38564 0.50322 0.20141 1.2749 0.57034 1.2749 0.57034 1.0233 0.43614 2.8685-0.97294 0.73812-3.5731-0.55359-0.88907-1.3923-1.9124-2.3821-2.9524h47.354v-44.756"/>
|
||||
<path d="m48.988 11.889l-37.05 36.297v104.79l31.537 32.17h29.607c5.053-2.22 6.123-2.03 7.527-4.86 0.21-0.45 0.418-1.75 0.44-3.02 0.063-0.36 0.693-4.18-1.153-3.25-3.166 1.59-9.562-2.61-14.343-0.11-4.781 2.47-1.279-3.27-0.608-4.26 0 0 2.558-3.37 6.416-5.6 0.147-0.08 0.273-0.16 0.377-0.25 0.378-0.21 0.756-0.39 1.155-0.58 2.935-1.37 11.3-6.94 12.81-8.68 0.902-1.01 2.496-3.32 2.559-4.6 0.272-1.11 0.483-2.87-0.586-3.56-1.594-1.05-2.874 1-5.369 2.12-2.496 1.11-4.383 1.57-6.606 1.65-2.138 0.07-4.193-0.75-5.472-0.56-1.28 0.21-2.035-0.76 0.314-3.13 1.069-1.07 1.532-1.55 2.035-1.91 5.578-3.58 10.589-3.62 13.399-9.98 0 0 2.181-5.7-2.034-3.27-2.306 1.34-3.564 3.27-10.17 3.27-6.584 0-9.164 3.13-10.275 4.49 0 0-4.486 6.27-3.375-2.52 1.133-8.76 2.83-13.23 6.961-16.65 3.564-2.93 12.412-6.87 15.6-11.21 1.635-1.62 5.746-6.32 3.355-10.299-1.007-1.678-3.459 2.669-5.996 3.229-2.894 0.76-6.563 1.7-9.373 1.13-3.481-0.69-5.704 0.63-7.004 1.22s-3.754-1.28-0.756-4.698c4.026-4.592 13.757-10.588 20.299-14.174 0.902-0.378 3.102-1.342 5.115-2.621 0.042-0.022 0.084-0.043 0.106-0.043 0.503-0.231 1.237-0.672 1.656-1.238 1.426-1.196 2.412-2.536 2.076-3.899-0.293-1.237-0.903-1.657-2.832-1.867-1.53-0.147-4.066 1.636-6.205 1.469-3.271-0.273-8.074 0.481-6.48-1.846 1.488-2.16 3.899-3.545 4.591-3.922 1.342-0.608 3.146-1.404 5.809-2.6 4.173-1.887 3.585-6.625 1.971-6.792-2.517-0.273-9.31 1.906-4.53-3.545 0 0 2.266-2.285 4.551-3.774 1.803-1.048 3.292-1.447 5.074-2.098 1.112-0.398 4.028-2.977-2.892-3.25 0 0-3.859 0.105-3.125-1.677 0.608-1.174 4.006-3.313 4.006-3.313s2.724-1.867 3.836-2.978c1.069-1.028 1.824-1.845 1.761-2.768-0.042-1.048-2.768-2.348-3.922-3.816-0.817-1.049-0.125-1.425 0.336-1.551 0.252-0.041 0.546-0.084 0.903-0.084 2.809 0.021 3.606-2.789 5.246-10.086 0.48-2.181 0.52-2.641 1.23-2.662 0.07 0 0.11 0.021 0.15 0.021 0 0 0.69 3.69 1.7 7.821 0.86 2.285 1.8 3.25 3.46 3.228 0.33 0 0.63 0.041 0.88 0.084 0.46 0.126 1.17 0.505 0.33 1.553-0.63 0.818-2.51 2.139-2.66 2.936-0.54 2.264 1.62 3.082 3.82 3.25 3.12 0.209 1.82 2.159-1.55 4.654-3.25 2.411 5.07 7.57 5.07 7.57 4.74 3.67 1.36 4.612 0.4 5.137-0.97 0.503-3.63 2.139-0.97 3.187 2.69 1.028 6.38 4.739 6.38 4.739 4.76 5.451-2.02 3.293-4.53 3.545-1.62 0.167-2.2 4.926 1.97 6.793 6.35 2.872 7.76 3.355 10 5.033 4.19 3.103 1.97 5.745-3.27 4.822 0 0-3.35-0.838-5.7-0.377-1.47 0.273-2.48 0.608-3.17 0.965-0.36 0.545-1.19 2.704 6.1 4.947 3.48 1.09 7.8 3.713 11.64 6.711l59.81-0.062-0.01-48.457-37.05-36.338h-105.3zm90.312 118.05c1.72 2.85 2.72 6.58 3.46 12.06 0.02 3.29-4.32 1.69-5.73 0.83-0.98-0.67-2.28-1.29-3.96-1.69-3.17-0.76-10.71-4.07-12.77-4.81-2.1-0.77-3.63 0.78-3.88 1.37h0.02c-0.54 1 0.57 3.02 0.57 3.02 2.96 6.71 8.41 6.35 14.4 10.65 8.24 5.87 3.84 7.11 2.14 6.23-1.67-0.9-4.44-0.34-4.44-0.34-6.65 1.83-8.64-0.94-12.54-1.97-3.88-1.05-0.69 3.78 0.71 5.39 1.49 1.74 9.88 7.32 12.79 8.68 6.36 2.96 9.67 7.76 11.64 13.86 1.87 5.77-0.17 4.51-1.68 3.8-1.51-0.72-1.95-2.27-5.7-2.18-3.77 0.08-5.89-0.19-8.58-2.31-0.71-0.55-1.28-1.18-1.76-1.7-0.04-0.02-0.06-0.04-0.08-0.06-2.58-1.97-2.08 4.57-1.55 5.64 1.86 3.75 3.12 2.22 13.86 7.95 5.09 2.72 6.29 6.37 6.83 7.9 0.86 2.48 1.74 3.19-6.06 2.1-2.49-0.34-6.98-1.93-9.12-3.38-2.05-1.42-6.18-0.27-5.81 2.81 1.93 4.72 6.88 7.68 11.6 8.26 4.13 0.53 6 1.43 6.75 2.35 2.26 2.58-1.93 6.36-1.93 6.36-2.1 2.43 0.17 5.28 1.72 6.12 2.52 1.28 7.4 4.21 9.02 8.41 8.47 21.8 0.27 15.55-3.74 13.06-4.02-2.5-11.68-8.91-18.66-8.35-6.98 0.55-9.31 0.93-13.46-2.37-4.13-3.29-3.73 2.04-3.73 2.04v26.29c0.25 5.89 1.34 11.51 6.02 16.27 3.83 3.93 6.75 3.19 12.16 9.8 2.49 3.04 10.63 6.31 16.06 6.37l10.42 0.02 37.05-36.34v-100.04l-31.51-32.1h-20.53zm-127.34 88.97l-0.021 43.09 37.05 36.36h11.91c11.198-0.55 15.391-9.23 18.788-14.57 2.558-4.05 7.088-7.49 9.961-10.43 3.04-3.08 3.586-10.13 3.669-17.76v-15.93l0.022 0.16v-3.81h0.021v-2.54h0.002v-0.59-6.87c0-1.6-1.845-1.72-5.871 2.64-4.047 4.34-10.819 3.98-14.74 4.34-3.921 0.35-15.202 6.23-18.432 10.44-1.992 2.62-4.823 0.46-3.67-4.7h-0.042c0.545-2.32 1.551-5.45 3.166-9.58 2.222-5.76 10.568-9.14 10.568-9.14s0.86-0.38 1.615-1.11h-53.996z" transform="matrix(.80001 0 0 .80001 -.00065308 0)" fill="#8c1515"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.4 KiB |
64
js/_website/src/assets/logos/twitter.svg
Normal file
@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="171.5054"
|
||||
height="139.37839"
|
||||
id="svg2"
|
||||
version="1.1"
|
||||
inkscape:version="0.48.4 r9939"
|
||||
sodipodi:docname="Twitter_bird_logo_2012.svg">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="3.7200571"
|
||||
inkscape:cx="101.29413"
|
||||
inkscape:cy="50.181142"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="962"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-282.32053,-396.30734)">
|
||||
<path
|
||||
style="fill:#2aa9e0"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5"
|
||||
d="m 453.82593,412.80619 c -6.3097,2.79897 -13.09189,4.68982 -20.20852,5.54049 7.26413,-4.35454 12.84406,-11.24992 15.47067,-19.46675 -6.79934,4.03295 -14.3293,6.96055 -22.34461,8.53841 -6.41775,-6.83879 -15.56243,-11.111 -25.68298,-11.111 -19.43159,0 -35.18696,15.75365 -35.18696,35.18525 0,2.75781 0.31128,5.44359 0.91155,8.01875 -29.24344,-1.46723 -55.16995,-15.47582 -72.52461,-36.76396 -3.02879,5.19662 -4.76443,11.24048 -4.76443,17.6891 0,12.20777 6.21194,22.97747 15.65332,29.28716 -5.76773,-0.18265 -11.19331,-1.76565 -15.93716,-4.40083 -0.004,0.14663 -0.004,0.29412 -0.004,0.44248 0,17.04767 12.12889,31.26806 28.22555,34.50266 -2.95247,0.80436 -6.06101,1.23398 -9.26989,1.23398 -2.2673,0 -4.47114,-0.22124 -6.62011,-0.63114 4.47801,13.97857 17.47214,24.15143 32.86992,24.43441 -12.04227,9.43796 -27.21366,15.06335 -43.69965,15.06335 -2.84014,0 -5.64082,-0.16722 -8.39349,-0.49223 15.57186,9.98421 34.06703,15.8094 53.93768,15.8094 64.72024,0 100.11301,-53.61524 100.11301,-100.11387 0,-1.52554 -0.0343,-3.04251 -0.10204,-4.55261 6.87394,-4.95995 12.83891,-11.15646 17.55618,-18.21305 z" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
9
js/_website/src/assets/logos/uipath.svg
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg width="95px" height="32px" viewBox="0 0 95 32" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<!-- Generator: Sketch 54.1 (76490) - https://sketchapp.com -->
|
||||
<title>UiPath_Logo_full</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<path d="M0,0 L32,0 L32,32 L0,32 L0,0 Z M28.672,28.672 L28.672,3.328 L3.328,3.328 L3.328,28.672 L28.672,28.672 L28.672,28.672 Z M6.208,8.256 L6.208,17.92 C6.208,22.336 8.64,24.96 12.736,24.96 C16.96,24.96 19.392,22.336 19.392,17.92 L19.392,8.256 L16.064,8.256 L16.064,17.92 C16.064,20.416 14.976,21.824 12.8,21.824 C10.496,21.824 9.472,20.352 9.472,17.92 L9.472,8.256 L6.208,8.256 Z M23.68,10.24 C24.832,10.24 25.728,9.408 25.728,8.256 C25.728,7.04 24.896,6.208 23.68,6.208 C22.528,6.208 21.632,7.04 21.632,8.256 C21.632,9.408 22.528,10.24 23.68,10.24 Z M22.016,11.776 L22.016,24.768 L25.344,24.768 L25.344,11.776 L22.016,11.776 Z M41.856,19.456 C45.44,19.456 47.808,17.344 47.808,13.824 C47.808,10.432 45.504,8.256 41.856,8.256 L35.584,8.256 L35.584,24.832 L38.912,24.832 L38.912,19.52 L41.856,19.52 L41.856,19.456 Z M41.472,16.832 L38.848,16.832 L38.848,10.944 L41.472,10.944 C43.392,10.944 44.416,12.032 44.416,13.824 C44.416,15.744 43.392,16.832 41.472,16.832 Z M48.896,18.304 C48.896,22.208 51.392,24.96 54.912,24.96 C57.024,24.96 58.368,24.192 59.136,22.976 L59.136,24.832 L62.464,24.832 L62.464,11.776 L59.136,11.776 L59.136,13.824 C58.304,12.48 56.96,11.648 54.912,11.648 C51.328,11.648 48.896,14.464 48.896,18.304 Z M59.136,18.304 C59.136,20.544 57.728,22.016 55.68,22.016 C53.44,22.016 52.288,20.416 52.288,18.304 C52.288,16 53.568,14.528 55.68,14.528 C57.792,14.528 59.136,16.064 59.136,18.304 Z M70.784,21.952 C69.504,21.952 69.184,21.376 69.184,20.224 L69.184,14.592 L72.064,14.592 L72.064,11.776 L69.184,11.776 L69.184,8.192 L65.856,8.192 L65.856,11.776 L64.32,11.776 L64.32,14.592 L65.856,14.592 L65.856,20.224 C65.856,23.296 67.2,24.768 70.4,24.768 L72.128,24.768 L72.128,21.952 L70.784,21.952 Z M77.248,13.632 L77.248,7.488 L73.92,7.488 L73.92,24.832 L77.248,24.832 L77.248,17.92 C77.248,15.68 78.4,14.336 80.384,14.336 C82.304,14.336 83.328,15.616 83.328,17.6 L83.328,24.768 L86.656,24.768 L86.656,17.28 C86.656,13.888 84.224,11.648 81.152,11.648 C79.232,11.648 78.016,12.352 77.248,13.632 Z M86.4,7.424 L86.4,7.936 L87.488,7.936 L87.488,11.264 L88.128,11.264 L88.128,7.936 L89.152,7.936 L89.152,7.424 C89.152,7.424 86.4,7.424 86.4,7.424 Z M93.312,7.424 L91.968,10.496 L90.688,7.424 L89.92,7.424 L89.92,11.264 L90.496,11.264 L90.496,8.32 L91.776,11.264 L92.224,11.264 L93.44,8.32 L93.44,11.264 L94.016,11.264 L94.016,7.424 L93.312,7.424 L93.312,7.424 Z" id="UiPath_Logo_full" fill="#FA4616" fill-rule="nonzero"></path>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
30
js/_website/src/assets/logos/unifyid.svg
Normal file
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 23.0.4, 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 775.7 166.8" style="enable-background:new 0 0 775.7 166.8;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#74797D;}
|
||||
.st1{fill:#EC0000;}
|
||||
</style>
|
||||
<title>UnifyID</title>
|
||||
<path class="st0" d="M211,51.9h14.9v39.9c0,6.3,0.2,10.4,0.6,12.3c0.6,2.9,2.2,5.5,4.5,7.3c2.4,1.8,5.7,2.7,9.8,2.7
|
||||
c4.2,0,7.3-0.9,9.5-2.6c2-1.5,3.4-3.8,3.9-6.3c0.5-4.1,0.7-8.3,0.6-12.5V51.9h14.9v38.7c0,8.8-0.4,15.1-1.2,18.7
|
||||
c-0.7,3.4-2.2,6.6-4.4,9.2c-2.4,2.7-5.3,4.7-8.6,6c-3.6,1.5-8.4,2.2-14.2,2.2c-7,0-12.3-0.8-15.9-2.5c-3.3-1.4-6.3-3.6-8.6-6.3
|
||||
c-2-2.3-3.4-5.1-4.2-8.1c-1-4.2-1.5-10.5-1.5-18.7L211,51.9z"/>
|
||||
<path class="st0" d="M312,125.5V51.9h14.4l30.1,49.1V51.9h13.8v73.6h-14.9l-29.6-47.9v47.9L312,125.5z"/>
|
||||
<path class="st0" d="M412.8,125.5V51.9h14.8v73.6H412.8z"/>
|
||||
<path class="st0" d="M469.5,125.5V51.9H520v12.5h-35.6v17.4h30.7v12.5h-30.7v31.2H469.5z"/>
|
||||
<path class="st0" d="M580.7,125.5v-31l-26.9-42.6h17.4L588.4,81l17-29.1h17l-27,42.7v30.8L580.7,125.5z"/>
|
||||
<path class="st1" d="M657.3,125.5V51.9h14.9v73.6H657.3z"/>
|
||||
<path class="st1" d="M714.1,51.9h27.1c6.1,0,10.8,0.5,14,1.4c4.2,1.3,8,3.6,11.1,6.8c3.2,3.4,5.6,7.5,7,11.9
|
||||
c1.8,5.6,2.6,11.5,2.5,17.3c0.1,5.3-0.6,10.6-2.2,15.7c-1.6,4.9-4.3,9.3-7.9,13c-3,2.8-6.5,4.8-10.4,5.9c-4.3,1.2-8.7,1.7-13.1,1.5
|
||||
h-28V51.9z M728.9,64.4v48.7H740c3,0.1,6-0.1,9-0.7c2.2-0.5,4.3-1.6,6-3c1.6-1.4,2.9-3.8,3.9-7.1c1.1-4.4,1.7-8.9,1.5-13.5
|
||||
c0-5.7-0.5-10.1-1.5-13.1c-0.8-2.7-2.2-5.1-4.2-7.1c-1.9-1.8-4.3-3-6.9-3.5c-2.1-0.5-6.1-0.7-12.2-0.7H728.9z"/>
|
||||
<path class="st1" d="M83.4,166.8C37.3,166.8,0,129.5,0,83.4S37.3,0,83.4,0c46,0,83.4,37.4,83.4,83.4
|
||||
C166.7,129.4,129.4,166.7,83.4,166.8z M83.4,17.6C47.2,17.7,18,47,18,83.2s29.4,65.4,65.6,65.4S149,119.2,148.9,83
|
||||
c0-26.9-16.6-51.1-41.7-60.9C99.7,19.1,91.6,17.6,83.4,17.6z"/>
|
||||
<path class="st0" d="M64.2,68.4c0.3-10.6,9.2-18.9,19.8-18.6c10.3,0.3,18.5,8.8,18.6,19.1c0,1.1-0.1,2.2-0.3,3.3
|
||||
c-0.9,5.4-4.1,10.1-8.7,13c-1.9,1.2-2.8,3.4-2.4,5.5l5.7,27.1c0.3,1.4-0.6,2.8-2,3.1c-0.2,0-0.4,0.1-0.5,0.1h-22
|
||||
c-1.5,0-2.6-1.2-2.6-2.6c0-0.2,0-0.4,0.1-0.5l5.7-27.1c0.5-2.2-0.5-4.4-2.3-5.5c-4.6-2.9-7.8-7.6-8.7-13
|
||||
C64.3,70.9,64.2,69.7,64.2,68.4L64.2,68.4z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
42
js/_website/src/assets/logos/vmware.svg
Normal file
@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg enable-background="new 0 0 190.25 31" version="1.1" viewBox="-10 -10 210.2 51" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xlink="http://www.w3.org/1999/xlink"><title>VMware logo</title><desc>An information technology company based in Palo Alto, California, United States</desc><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata>
|
||||
|
||||
|
||||
<g transform="matrix(1.25 0 0 -1.25 -375.9 370)">
|
||||
|
||||
|
||||
|
||||
<defs>
|
||||
<rect id="vlpb" x="-193.8" y="-199.5" width="956.2" height="1237"/>
|
||||
</defs>
|
||||
<clipPath id="vlpa">
|
||||
<use width="100%" height="100%" overflow="visible" xlink:href="#vlpb"/>
|
||||
</clipPath>
|
||||
<g clip-path="url(#vlpa)">
|
||||
<g transform="translate(388.3 250.9)">
|
||||
<path d="m-21.72 23.2-6.571 18.3c-0.084 0.253-0.209 0.587-0.209 0.88 0 0.793 0.67 1.546 1.63 1.546 0.838 0 1.384-0.544 1.634-1.337l5.445-15.77 5.484 15.81c0.25 0.75 0.753 1.294 1.586 1.294h0.17c0.881 0 1.425-0.544 1.675-1.294l5.439-15.81 5.531 15.85c0.209 0.673 0.666 1.255 1.548 1.255 0.92 0 1.591-0.708 1.591-1.505 0-0.292-0.127-0.625-0.209-0.88l-6.613-18.34c-0.338-0.958-1.005-1.461-1.76-1.461h-0.125c-0.838 0-1.467 0.503-1.762 1.461l-5.397 15.55-5.444-15.55c-0.293-0.958-0.923-1.461-1.758-1.461h-0.088c-0.793 0-1.46 0.503-1.797 1.461" fill="#696566"/>
|
||||
</g>
|
||||
<g transform="translate(436.2 270)">
|
||||
<path d="m-21.72 23.2c0 0.883 0.712 1.637 1.591 1.637 0.927 0 1.637-0.713 1.637-1.637v-3.713c1.592 3.606 5.123 5.308 7.463 5.308 0.969 0 1.598-0.712 1.598-1.634 0-0.882-0.584-1.508-1.43-1.634-4.195-0.503-7.63-3.65-7.63-9.9v-7.353c0-0.881-0.67-1.634-1.592-1.634-0.923 0-1.636 0.716-1.636 1.634l-1e-3 18.93z" fill="#696566"/>
|
||||
</g>
|
||||
<g transform="translate(458.9 249.2)">
|
||||
<path d="m-21.72 23.2c-5.837 0-10.6 4.527-10.6 11.17v0.086c0 6.183 4.316 11.16 10.19 11.16 6.283 0 9.861-5.184 9.861-10.87 0-0.874-0.705-1.499-1.481-1.499h-15.36c0.448-4.645 3.692-7.259 7.477-7.259 2.631 0 4.556 1.038 6.12 2.491 0.247 0.205 0.534 0.371 0.906 0.371 0.778 0 1.397-0.623 1.397-1.373 0-0.372-0.164-0.747-0.497-1.034-2.011-1.949-4.397-3.24-8.01-3.24m6.286 12.41c-0.33 3.905-2.55 7.305-6.783 7.305-3.698 0-6.492-3.111-6.898-7.305z" fill="#696566"/>
|
||||
</g>
|
||||
<g transform="translate(413.4 255.9)">
|
||||
<path d="m-21.72 23.2v0.084c0 4.556 3.764 6.984 9.239 6.984 2.761 0 4.725-0.376 6.652-0.923v0.756c0 3.885-2.39 5.895-6.441 5.895-2.175 0-3.441-0.277-5.033-0.986-0.206-0.084-0.417-0.127-0.58-0.127-0.753 0-1.425 0.629-1.425 1.38 0 0.667 0.291 1.08 0.88 1.341 2.129 0.924 3.734 1.231 6.492 1.231 3.05 0 5.392-0.792 6.978-2.382 1.466-1.463 2.219-3.553 2.219-6.314v-11.93c0-0.917-0.669-1.588-1.552-1.588-0.916 0-1.537 0.67-1.537 1.505v2.062c-1.508-1.969-4.019-3.722-7.816-3.722-4.016 3e-3 -8.076 2.3-8.076 6.732m15.93 1.673v2.091c-1.592 0.459-3.727 0.92-6.359 0.92-4.05 0-6.311-1.758-6.311-4.473v-0.083c0-2.717 2.506-4.306 5.436-4.306 3.97 0 7.234 2.426 7.234 5.851" fill="#696566"/>
|
||||
</g>
|
||||
<g transform="translate(329.8 270.2)">
|
||||
<path d="m-21.72 23.2c-0.708 1.552-2.458 2.255-4.092 1.529-1.636-0.727-2.238-2.541-1.499-4.094l6.861-14.91c1.079-2.337 2.216-3.562 4.35-3.562 2.28 0 3.274 1.334 4.352 3.562 0 0 5.984 13.03 6.044 13.17 0.061 0.138 0.253 0.559 0.862 0.555 0.515-3e-3 0.948-0.414 0.948-0.966v-12.74c0-1.964 1.089-3.575 3.185-3.575 2.094 0 3.226 1.611 3.226 3.575v10.43c0 2.011 1.441 3.316 3.405 3.316s3.271-1.352 3.271-3.316v-10.43c0-1.964 1.093-3.575 3.185-3.575 2.094 0 3.232 1.611 3.232 3.575v10.43c0 2.011 1.435 3.316 3.4 3.316 1.961 0 3.273-1.352 3.273-3.316v-10.43c0-1.964 1.092-3.575 3.186-3.575 2.093 0 3.229 1.611 3.229 3.575v11.87c0 4.361-3.507 7.416-7.727 7.416-4.215 0-6.855-2.916-6.855-2.916-1.403 1.819-3.337 2.912-6.61 2.912-3.454 0-6.477-2.912-6.477-2.912-1.404 1.819-3.794 2.912-5.773 2.912-3.061 0-5.492-1.346-6.975-4.737l-4.381-10.33z" fill="#696566"/>
|
||||
</g>
|
||||
<g transform="translate(468.6 268.9)">
|
||||
<path d="m-21.72 23.2v0.018c0 1.459 1.184 2.688 2.672 2.688 1.509 0 2.677-1.216 2.677-2.677v-0.011c0-1.464-1.181-2.693-2.677-2.693-1.509 0-2.672 1.212-2.672 2.675m4.835 0.018v7e-3c0 1.2-0.927 2.184-2.163 2.184-1.225 0-2.166-1.001-2.166-2.191v-0.014c0-1.197 0.93-2.181 2.166-2.181 1.221 0 2.163 0.999 2.163 2.195" fill="#696566"/>
|
||||
</g>
|
||||
<g transform="translate(470.3 270)">
|
||||
<path d="m-21.72 23.2c0 0.159 0.127 0.286 0.288 0.286h0.892c0.336 0 0.595-0.095 0.756-0.265 0.147-0.143 0.227-0.35 0.227-0.59v-8e-3c0-0.408-0.206-0.657-0.517-0.788l0.394-0.48c0.055-0.072 0.092-0.131 0.092-0.219 0-0.158-0.134-0.262-0.27-0.262-0.127 0-0.213 0.065-0.28 0.147l-0.555 0.702h-0.455v-0.564c0-0.159-0.123-0.284-0.283-0.284-0.161 0-0.288 0.126-0.288 0.284v2.041zm1.148-0.972c0.278 0 0.431 0.145 0.431 0.366v9e-3c0 0.241-0.164 0.371-0.441 0.371h-0.569v-0.745h0.579z" fill="#696566"/>
|
||||
</g>
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.0 KiB |
BIN
js/_website/src/assets/logos/wns.png
Normal file
After Width: | Height: | Size: 17 KiB |
143
js/_website/src/assets/prism.css
Normal file
@ -0,0 +1,143 @@
|
||||
/* PrismJS 1.20.0
|
||||
https://prismjs.com/download.html#themes=prism&languages=python */
|
||||
/**
|
||||
* prism.js default theme for JavaScript, CSS and HTML
|
||||
* Based on dabblet (http://dabblet.com)
|
||||
* @author Lea Verou
|
||||
*/
|
||||
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
color: black;
|
||||
background: none;
|
||||
text-shadow: 0 1px white;
|
||||
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
||||
font-size: 1em;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
word-spacing: normal;
|
||||
word-break: normal;
|
||||
word-wrap: normal;
|
||||
line-height: 1.5;
|
||||
|
||||
-moz-tab-size: 4;
|
||||
-o-tab-size: 4;
|
||||
tab-size: 4;
|
||||
|
||||
-webkit-hyphens: none;
|
||||
-moz-hyphens: none;
|
||||
-ms-hyphens: none;
|
||||
hyphens: none;
|
||||
}
|
||||
|
||||
pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
|
||||
code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
|
||||
pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
|
||||
code[class*="language-"]::selection, code[class*="language-"] ::selection {
|
||||
text-shadow: none;
|
||||
background: #b3d4fc;
|
||||
}
|
||||
|
||||
@media print {
|
||||
code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Code blocks */
|
||||
pre[class*="language-"] {
|
||||
padding: 1em;
|
||||
margin: .5em 0;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
:not(pre) > code[class*="language-"],
|
||||
pre[class*="language-"] {
|
||||
background: rgb(249,250,251);
|
||||
}
|
||||
|
||||
/* Inline code */
|
||||
:not(pre) > code[class*="language-"] {
|
||||
padding: .1em;
|
||||
border-radius: .3em;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.token.comment,
|
||||
.token.prolog,
|
||||
.token.doctype,
|
||||
.token.cdata {
|
||||
color: slategray;
|
||||
}
|
||||
|
||||
.token.punctuation {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.token.namespace {
|
||||
opacity: .7;
|
||||
}
|
||||
|
||||
.token.property,
|
||||
.token.tag,
|
||||
.token.boolean,
|
||||
.token.number,
|
||||
.token.constant,
|
||||
.token.symbol,
|
||||
.token.deleted {
|
||||
color: #905;
|
||||
}
|
||||
|
||||
.token.selector,
|
||||
.token.attr-name,
|
||||
.token.string,
|
||||
.token.char,
|
||||
.token.builtin,
|
||||
.token.inserted {
|
||||
color: #690;
|
||||
}
|
||||
|
||||
.token.operator,
|
||||
.token.entity,
|
||||
.token.url,
|
||||
.language-css .token.string,
|
||||
.style .token.string {
|
||||
color: #9a6e3a;
|
||||
/* This background color was intended by the author of this theme. */
|
||||
background: hsla(0, 0%, 100%, .5);
|
||||
}
|
||||
|
||||
.token.atrule,
|
||||
.token.attr-value,
|
||||
.token.keyword {
|
||||
color: #07a;
|
||||
}
|
||||
|
||||
.token.function,
|
||||
.token.class-name {
|
||||
color: #DD4A68;
|
||||
}
|
||||
|
||||
.token.regex,
|
||||
.token.important,
|
||||
.token.variable {
|
||||
color: #e90;
|
||||
}
|
||||
|
||||
.token.important,
|
||||
.token.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
.token.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.token.entity {
|
||||
cursor: help;
|
||||
}
|
||||
|
173
js/_website/src/assets/style.css
Normal file
@ -0,0 +1,173 @@
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
.link {
|
||||
@apply font-semibold hover:text-orange-500 transition-colors;
|
||||
}
|
||||
.thin-link {
|
||||
@apply hover:text-orange-500 transition-colors;
|
||||
}
|
||||
.thinner-link {
|
||||
@apply hover:text-orange-500 transition-colors;
|
||||
}
|
||||
|
||||
.prose :where(img):not(:where([class~=not-prose] *)) {
|
||||
margin-bottom: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.group:hover .group-hover\:flex { /* for some reason, group-hover:flex not working on mobile */
|
||||
display: flex;
|
||||
}
|
||||
.group:active .group-active\:flex { /* for some reason, group-active:flex not working on mobile */
|
||||
display: flex;
|
||||
}
|
||||
@media (min-width: 640px) { /* for some reason, sm:block not working */
|
||||
.sm\:block {
|
||||
@apply block;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) { /* for some reason, md:block not working */
|
||||
.md\:block {
|
||||
@apply block;
|
||||
}
|
||||
}
|
||||
|
||||
@layer base {
|
||||
a.text-link {
|
||||
@apply font-semibold text-gray-800 underline decoration-orange-500 underline-offset-2 hover:text-orange-500;
|
||||
}
|
||||
}
|
||||
|
||||
@layer utilities {
|
||||
@variants hover, focus {
|
||||
.filter-none {
|
||||
filter: none;
|
||||
}
|
||||
.filter-grayscale {
|
||||
filter: grayscale(100%);
|
||||
}
|
||||
.shadow-alternate-sm {
|
||||
box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.03), 0px 2px 2px rgba(0, 0, 0, 0.03),
|
||||
0px 0px 1px rgba(0, 0, 0, 0.03);
|
||||
}
|
||||
.shadow-alternate {
|
||||
box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.04), 0px 2px 6px rgba(0, 0, 0, 0.04),
|
||||
0px 0px 1px rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
.shadow-alternate-xl {
|
||||
box-shadow: 0px 24px 32px rgba(0, 0, 0, 0.04), 0px 16px 24px rgba(0, 0, 0, 0.04),
|
||||
0px 4px 8px rgba(0, 0, 0, 0.04), 0px 0px 1px rgba(0, 0, 0, 0.04);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* index */
|
||||
.active-example-tab {
|
||||
@apply border-orange-500 rounded-full text-orange-500 ring-1 bg-orange-50 ring-orange-200 hover:!text-orange-500 cursor-pointer shadow shadow-orange-200;
|
||||
}
|
||||
|
||||
/* guides */
|
||||
.prose > p > img {
|
||||
@apply max-w-full mx-auto my-0 w-4/5;
|
||||
}
|
||||
.prose > p > video {
|
||||
@apply max-w-full mx-auto my-0 w-4/5;
|
||||
}
|
||||
|
||||
.prose code::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.prose code::after {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* docs & guides */
|
||||
.thin-link.current-nav-link {
|
||||
@apply text-orange-500;
|
||||
}
|
||||
.thin-link.current-nav-link:not(.subheading) {
|
||||
@apply border-orange-500 md:border-l-2 pl-4;
|
||||
}
|
||||
.link.current-nav-link {
|
||||
@apply border-orange-500 text-orange-500;
|
||||
}
|
||||
.thinner-link.current-nav-link {
|
||||
@apply border-orange-500 text-orange-500;
|
||||
}
|
||||
.second-nav-link {
|
||||
@apply border-l-2 border-gray-100 px-3;
|
||||
}
|
||||
.current-nav-link {
|
||||
@apply border-orange-500 text-orange-500;
|
||||
}
|
||||
|
||||
/* docs */
|
||||
.selected-demo {
|
||||
@apply font-semibold bg-gray-50 rounded text-orange-500;
|
||||
}
|
||||
code.language-python {
|
||||
@apply !leading-7 !whitespace-pre-wrap !break-all;
|
||||
}
|
||||
code.language-bash {
|
||||
@apply !leading-7 !whitespace-pre-wrap !break-all;
|
||||
}
|
||||
|
||||
.group-hover-visible {
|
||||
@apply group-hover:visible;
|
||||
}
|
||||
.anchor-img {
|
||||
@apply w-7 max-w-full inline-block m-0 ml-2;
|
||||
}
|
||||
.anchor-img-small {
|
||||
@apply w-5 max-w-full inline-block m-0 ml-0.5;
|
||||
}
|
||||
.selected-version {
|
||||
@apply font-semibold text-orange-500;
|
||||
}
|
||||
.selected-version:before {
|
||||
content:"• ";
|
||||
}
|
||||
|
||||
/* copy button */
|
||||
.clipboard-button {
|
||||
@apply absolute right-0 px-1.5 pt-0.5 pb-1 m-4 text-gray-500 text-sm z-[100] opacity-0 duration-100;
|
||||
}
|
||||
.clipboard-button:hover {
|
||||
@apply cursor-pointer;
|
||||
}
|
||||
.clipboard-button:hover > svg {
|
||||
@apply fill-gray-700;
|
||||
}
|
||||
.clipboard-button:focus {
|
||||
@apply outline-0;
|
||||
}
|
||||
.codeblock {
|
||||
@apply relative;
|
||||
}
|
||||
.codeblock:hover > .clipboard-button {
|
||||
@apply opacity-100 duration-200;
|
||||
}
|
||||
|
||||
[type="search"]::-webkit-search-cancel-button {
|
||||
@apply appearance-none h-5 w-5;
|
||||
-webkit-appearance: none;
|
||||
background-image: url("/src/assets/img/esc.svg");
|
||||
background-size: 20px 20px;
|
||||
}
|
||||
|
||||
.view-code {
|
||||
@apply w-16 p-2 mx-auto hover:bg-gray-100;
|
||||
background: rgb(249,250,251);
|
||||
}
|
||||
|
||||
/* demos */
|
||||
.selected-demo-tab {
|
||||
@apply font-semibold text-orange-500 rounded-t-md border-2 border-gray-100 border-b-0 bg-white;
|
||||
}
|
||||
.selected-demo-window {
|
||||
@apply rounded-b-md border-2 border-gray-100 -mt-0.5;
|
||||
}
|
||||
|
83
js/_website/src/assets/tweets.json
Normal file
@ -0,0 +1,83 @@
|
||||
[
|
||||
{
|
||||
"name": "Amar Saini",
|
||||
"handle": "_Epoching_",
|
||||
"link": "https://twitter.com/_Epoching_/status/1471091318482825219",
|
||||
"content": "Just built a ️<span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@Gradio</span> app for a video related deep learning project. <br> I’m astonished by how simple it is to use & how elegant it looks! Lots and lots of great features & flexibility. Thanks for making this ❤ ",
|
||||
"likes": 47,
|
||||
"timestamp": "7:14 AM · Dec 15, 2021",
|
||||
"profile_pic": "pwMrDOBv_400x400.jpeg"
|
||||
},
|
||||
{
|
||||
"name": "Will Rice",
|
||||
"handle": "_Will_Rice",
|
||||
"link": "https://twitter.com/_Will_Rice/status/1430258610131582979",
|
||||
"content": "Just tried out <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@Gradio<\/span> and I am very impressed. Only took like 10mins to put together a <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">#tts</span> demo.",
|
||||
"likes": 11,
|
||||
"timestamp": "4:00 PM · Aug 24, 2021",
|
||||
"profile_pic": "LsCnjnsl_400x400.jpeg"
|
||||
},
|
||||
{
|
||||
"name": "Roxana Daneshjou MD/PhD",
|
||||
"handle": "RoxanaDaneshjou",
|
||||
"link": "https://twitter.com/RoxanaDaneshjou/status/1418399829944721415",
|
||||
"content": "Honestly, without <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@Gradio<\/span>, we would not be doing a real time AI trial. We have many other ideas for algorithms we want to test through clinical trials, and we know it's possible thanks to <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@Gradio</span>.",
|
||||
"likes": 15,
|
||||
"timestamp": "7:37 PM · Jul 22, 2021",
|
||||
"profile_pic": "ITFspAMm_x96.jpg"
|
||||
},
|
||||
{
|
||||
"name": "Vinay Prabhu",
|
||||
"handle": "vinayprabhu",
|
||||
"link": "https://twitter.com/vinayprabhu/status/1324409497641652225",
|
||||
"content": "Dear <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">#MachineLearning<\/span> twitter,<br>If you haven't typed: <br>$ pip install gradio<br>yet, now would be a damn good time.<br>Especially if you are working in computer vision & deploying models in the real world. ",
|
||||
"likes": 19,
|
||||
"timestamp": "12:53 PM · Nov 5, 2020",
|
||||
"profile_pic": "1013607349943058433.jpg"
|
||||
},
|
||||
{
|
||||
"name": "Tanishq Mathew Abraham",
|
||||
"handle": "iScienceLuvr",
|
||||
"link": "https://twitter.com/iScienceLuvr/status/1460716613032837120",
|
||||
"content": "After training an ML model, the BEST way to showcase it to the world is to make a demo for others to try! <br>The easiest way to do so is w/ <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@Gradio<\/span>, hosted on <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@HuggingFace<\/span> Spaces. <br>Read my new blog post to learn how to do this (w/ appearance by <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@fastdotai<\/span>)! <br> <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">https://tmabraham.github...</span>",
|
||||
"likes": 285,
|
||||
"timestamp": "4:09 PM · Nov 16, 2021",
|
||||
"profile_pic": "ksO1TT2P_400x400.jpeg"
|
||||
},
|
||||
{
|
||||
"name": "Dipankar Mazumdar",
|
||||
"handle": "Dipankartnt",
|
||||
"link": "https://twitter.com/Dipankartnt/status/1427750254586253318",
|
||||
"content": "I love low-code ML solutions like <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@Gradio</span> that do not restricts anyone from making ML accessible. <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">#machinelearning</span> <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">#datascience</span>",
|
||||
"likes": 0,
|
||||
"timestamp": "5:52 PM · Aug 17, 2021",
|
||||
"profile_pic": "GDLc7Oe4_400x400.jpeg"
|
||||
},
|
||||
{
|
||||
"name": "Charly Wargnier",
|
||||
"handle": "DataChaz",
|
||||
"link": "https://twitter.com/DataChaz/status/1351290055894179842",
|
||||
"content": "Pretty neat that <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@GradioML<\/span>!\uD83D\uDC0D\uD83D\uDD25 <br>+ Generate an easy-to-use UI for your <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">#ML<\/span> model, function, or <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">#API<\/span> with only a few lines of code!<br>+ Integrate directly into your <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@ProjectJupyter<\/span> notebook<br>+ or share a link with anyone<br><br>h\/t <br> <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@VincentTerrasi<\/span> <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">#MachineLearning<\/span> <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">www.gradio.app</span>",
|
||||
"likes": 18,
|
||||
"timestamp": "5:07 PM · Jan 18, 2021",
|
||||
"profile_pic": "1362781887098454025.jpg"
|
||||
},
|
||||
{
|
||||
"name": "Chua Chin Hon",
|
||||
"handle": "chinhon",
|
||||
"link": "https://twitter.com/chinhon/status/1452510073452859392",
|
||||
"content": "What's exciting about ML in 2021 is how the building blocks r coming together. Built this headline writer using: <br>- AutoNLP to finetune Bart<br>- <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@Gradio</span> for the UI<br>- <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@huggingface</span>'s Spaces for hosting and compute <br>Try it here: <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">https://huggingface.co/spa...</span><br>",
|
||||
"likes": 61,
|
||||
"timestamp": "10:39 PM · Oct 24, 2021",
|
||||
"profile_pic": "R1gj6nb3_x96.jpg"
|
||||
},
|
||||
{
|
||||
"name": "Poonam Ligade @Jarvislabs.ai",
|
||||
"handle": "Poonamligade",
|
||||
"link": "https://twitter.com/Poonamligade/status/1521740054368251905",
|
||||
"content": "My son is fascinated with all things about dinosaurs. I built a \uD83E\uDD96 \uD83E\uDD95 classifier for him as homework for the first week of the fastai cohort. <br> I used <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@Gradio<\/span>, and deployed on <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">@jarvislabsai</span>. <span class=\"font-semibold\" style=\"color: rgb(29, 155, 240);\">http://dinoapp.jarvis..<\/span>",
|
||||
"likes": 305,
|
||||
"timestamp": "2:34 AM · May 4, 2022",
|
||||
"profile_pic": "8vyTl51q_400x400.jpeg"
|
||||
}
|
||||
]
|
BIN
js/_website/src/assets/twitter/0Hxb1ESL_x96.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
js/_website/src/assets/twitter/1013607349943058433.jpg
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
js/_website/src/assets/twitter/1116115321218146304.jpg
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
js/_website/src/assets/twitter/1362781887098454025.jpg
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
js/_website/src/assets/twitter/810912649827364864.jpg
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
js/_website/src/assets/twitter/889312280092999680.jpg
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
js/_website/src/assets/twitter/8vyTl51q_400x400.jpeg
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
js/_website/src/assets/twitter/GDLc7Oe4_400x400.jpeg
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
js/_website/src/assets/twitter/ITFspAMm_x96.jpg
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
js/_website/src/assets/twitter/LsCnjnsl_400x400.jpeg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
js/_website/src/assets/twitter/R1gj6nb3_x96.jpg
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
js/_website/src/assets/twitter/d8qFeBSq_x96.png
Normal file
After Width: | Height: | Size: 16 KiB |
1
js/_website/src/assets/twitter/heart.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path class="icon" fill="#697882" d="M12 21.638h-.014C9.403 21.59 1.95 14.856 1.95 8.478c0-3.064 2.525-5.754 5.403-5.754 2.29 0 3.83 1.58 4.646 2.73.813-1.148 2.353-2.73 4.644-2.73 2.88 0 5.404 2.69 5.404 5.755 0 6.375-7.454 13.11-10.037 13.156H12zM7.354 4.225c-2.08 0-3.903 1.988-3.903 4.255 0 5.74 7.035 11.596 8.55 11.658 1.52-.062 8.55-5.917 8.55-11.658 0-2.267-1.822-4.255-3.902-4.255-2.528 0-3.94 2.936-3.952 2.965-.23.562-1.156.562-1.387 0-.015-.03-1.426-2.965-3.955-2.965z"/></svg>
|
After Width: | Height: | Size: 572 B |
BIN
js/_website/src/assets/twitter/ksO1TT2P_400x400.jpeg
Normal file
After Width: | Height: | Size: 28 KiB |
1
js/_website/src/assets/twitter/logo.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72"><path fill="none" d="M0 0h72v72H0z"/><path class="icon" fill="#1da1f2" d="M68.812 15.14c-2.348 1.04-4.87 1.744-7.52 2.06 2.704-1.62 4.78-4.186 5.757-7.243-2.53 1.5-5.33 2.592-8.314 3.176C56.35 10.59 52.948 9 49.182 9c-7.23 0-13.092 5.86-13.092 13.093 0 1.026.118 2.02.338 2.98C25.543 24.527 15.9 19.318 9.44 11.396c-1.125 1.936-1.77 4.184-1.77 6.58 0 4.543 2.312 8.552 5.824 10.9-2.146-.07-4.165-.658-5.93-1.64-.002.056-.002.11-.002.163 0 6.345 4.513 11.638 10.504 12.84-1.1.298-2.256.457-3.45.457-.845 0-1.666-.078-2.464-.23 1.667 5.2 6.5 8.985 12.23 9.09-4.482 3.51-10.13 5.605-16.26 5.605-1.055 0-2.096-.06-3.122-.184 5.794 3.717 12.676 5.882 20.067 5.882 24.083 0 37.25-19.95 37.25-37.25 0-.565-.013-1.133-.038-1.693 2.558-1.847 4.778-4.15 6.532-6.774z"/></svg>
|
After Width: | Height: | Size: 825 B |
BIN
js/_website/src/assets/twitter/pwMrDOBv_400x400.jpeg
Normal file
After Width: | Height: | Size: 26 KiB |
1
js/_website/src/assets/twitter/redheart.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path class="icon" fill="#E0245E" d="M12 21.638h-.014C9.403 21.59 1.95 14.856 1.95 8.478c0-3.064 2.525-5.754 5.403-5.754 2.29 0 3.83 1.58 4.646 2.73.813-1.148 2.353-2.73 4.644-2.73 2.88 0 5.404 2.69 5.404 5.755 0 6.375-7.454 13.11-10.037 13.156H12zM7.354 4.225c-2.08 0-3.903 1.988-3.903 4.255 0 5.74 7.035 11.596 8.55 11.658 1.52-.062 8.55-5.917 8.55-11.658 0-2.267-1.822-4.255-3.902-4.255-2.528 0-3.94 2.936-3.952 2.965-.23.562-1.156.562-1.387 0-.015-.03-1.426-2.965-3.955-2.965z"/></svg>
|
After Width: | Height: | Size: 572 B |
40
js/_website/src/components/Demos.svelte
Normal file
@ -0,0 +1,40 @@
|
||||
<script lang="ts">
|
||||
import { svgCopy, svgCheck } from "../assets/copy.js";
|
||||
|
||||
export let name: string;
|
||||
export let code: string;
|
||||
export let highlighted_code: string;
|
||||
|
||||
let copied = false;
|
||||
function copy(code: string) {
|
||||
navigator.clipboard.writeText(code);
|
||||
copied = true;
|
||||
setTimeout(() => (copied = false), 2000);
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="codeblock bg-gray-50 mx-auto p-3 my-3" id="{name}_code">
|
||||
<a
|
||||
class="clipboard-button"
|
||||
href="https://colab.research.google.com/github/gradio-app/gradio/blob/main/demo/{name}/run.ipynb"
|
||||
target="_blank"
|
||||
style="right:30px"
|
||||
>
|
||||
<img src="https://colab.research.google.com/assets/colab-badge.svg" />
|
||||
</a>
|
||||
<button class="clipboard-button" type="button" on:click={() => copy(code)}>
|
||||
{#if !copied}
|
||||
{@html svgCopy}
|
||||
{:else}
|
||||
{@html svgCheck}
|
||||
{/if}
|
||||
</button>
|
||||
<pre class=" max-h-80 overflow-auto"><code class="code language-python"
|
||||
>{@html highlighted_code}</code
|
||||
>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
{#key name}
|
||||
<gradio-app space={"gradio/" + name} />
|
||||
{/key}
|
65
js/_website/src/components/DemosLanding.svelte
Normal file
@ -0,0 +1,65 @@
|
||||
<script lang="ts">
|
||||
import { q_a, img, sketch } from "../assets/demo_code";
|
||||
|
||||
let tabs = [
|
||||
{ title: "Sketch Recognition", code: sketch, demo: "gradio/pictionary" },
|
||||
{
|
||||
title: "Question Answering",
|
||||
code: q_a,
|
||||
demo: "gradio/question-answering"
|
||||
},
|
||||
{
|
||||
title: "Image Segmentation",
|
||||
code: img,
|
||||
demo: "gradio/Echocardiogram-Segmentation"
|
||||
},
|
||||
{
|
||||
title: "Time Series Forecasting",
|
||||
code: false,
|
||||
demo: "gradio/timeseries-forecasting-with-prophet"
|
||||
},
|
||||
{
|
||||
title: "XGBoost with Explainability",
|
||||
code: false,
|
||||
demo: "gradio/xgboost-income-prediction-with-explainability"
|
||||
}
|
||||
];
|
||||
|
||||
let current_selection = 0;
|
||||
</script>
|
||||
|
||||
<div class="container mx-auto mb-6 px-4 overflow-hidden">
|
||||
<nav
|
||||
class="flex lg:flex-wrap gap-3 overflow-x-auto py-1 lg:gap-6 whitespace-nowrap text-gray-600 md:text-lg mb-4 md:mb-0 lg:justify-center"
|
||||
>
|
||||
{#each tabs as { title }, i}
|
||||
<div
|
||||
on:click={() => (current_selection = i)}
|
||||
class:active-example-tab={current_selection == i}
|
||||
class="demo-tab hover:text-gray-800 cursor-pointer px-3 py-1"
|
||||
>
|
||||
{title}
|
||||
</div>
|
||||
{/each}
|
||||
</nav>
|
||||
</div>
|
||||
<div class="container mx-auto mb-6 px-4 grid grid-cols-1">
|
||||
{#each tabs as { demo, code }, i (demo)}
|
||||
<div
|
||||
class:hidden={i !== current_selection}
|
||||
class="demo space-y-2 md:col-span-3"
|
||||
>
|
||||
<div
|
||||
class:hidden={!code}
|
||||
class="codeblock rounded-lg bg-gray-50 shadow-inner text-sm md:text-base mx-auto max-w-5xl"
|
||||
>
|
||||
{@html code}
|
||||
</div>
|
||||
<div class="mx-auto max-w-5xl">
|
||||
{#key demo}
|
||||
<gradio-app space={demo} />
|
||||
{/key}
|
||||
</div>
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
182
js/_website/src/components/DocsNav.svelte
Normal file
@ -0,0 +1,182 @@
|
||||
<script lang="ts">
|
||||
// @ts-nocheck
|
||||
import { clickOutside } from "./clickOutside.js";
|
||||
|
||||
export let components: any;
|
||||
export let helpers: any;
|
||||
export let routes: any;
|
||||
export let py_client: any;
|
||||
|
||||
export let current_nav_link = "";
|
||||
|
||||
let show_nav = false;
|
||||
let searchTerm = "";
|
||||
let searchBar: HTMLInputElement;
|
||||
|
||||
const search = () => {
|
||||
console.log(searchTerm);
|
||||
let links = document.querySelectorAll(
|
||||
".navigation a"
|
||||
) as NodeListOf<HTMLAnchorElement>;
|
||||
links.forEach((link) => {
|
||||
let linkText = link.innerText.toLowerCase();
|
||||
if (linkText.includes(searchTerm.toLowerCase())) {
|
||||
link.style.display = "block";
|
||||
} else {
|
||||
link.style.display = "none";
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
function onKeyDown(e: KeyboardEvent) {
|
||||
if (e.key.toLowerCase() === "k" && (e.metaKey || e.ctrlKey)) {
|
||||
e.preventDefault();
|
||||
searchBar.focus();
|
||||
}
|
||||
if (e.key == "Escape") {
|
||||
searchTerm = "";
|
||||
searchBar.blur();
|
||||
search();
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<svelte:window on:keydown={onKeyDown} />
|
||||
|
||||
<section
|
||||
class="top-0 fixed -ml-4 flex items-center p-4 rounded-br-lg backdrop-blur-lg z-50 bg-gray-200/50 lg:hidden"
|
||||
id="menu-bar"
|
||||
>
|
||||
<button
|
||||
on:click={() => (show_nav = !show_nav)}
|
||||
type="button"
|
||||
class="text-slate-500 hover:text-slate-600 dark:text-slate-400 dark:hover:text-slate-300"
|
||||
>
|
||||
<svg width="24" height="24"
|
||||
><path
|
||||
d="M5 6h14M5 12h14M5 18h14"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
/></svg
|
||||
>
|
||||
</button>
|
||||
</section>
|
||||
|
||||
<div
|
||||
use:clickOutside
|
||||
on:click_outside={() => (show_nav = false)}
|
||||
class:hidden={!show_nav}
|
||||
class="navigation mobile-nav overflow-y-auto fixed backdrop-blur-lg z-50 bg-gray-200/50 pr-6 pl-4 py-4 -ml-4 h-full inset-0 w-5/6 lg:inset-auto lg:h-auto lg:ml-0 lg:z-0 lg:backdrop-blur-none lg:navigation lg:p-0 lg:pb-4 lg:h-screen lg:leading-relaxed lg:sticky lg:top-0 lg:text-md lg:block rounded-t-xl lg:bg-gradient-to-r lg:from-white lg:to-gray-50 lg:overflow-x-clip lg:w-2/12 lg:min-w-2/12"
|
||||
id="mobile-nav"
|
||||
>
|
||||
<button
|
||||
on:click={() => (show_nav = !show_nav)}
|
||||
type="button"
|
||||
class="absolute z-10 top-4 right-4 w-2/12 h-4 flex items-center justify-center text-grey-500 hover:text-slate-600 dark:text-slate-400 dark:hover:text-slate-300 p-4 lg:hidden"
|
||||
tabindex="0"
|
||||
>
|
||||
<svg viewBox="0 0 10 10" class="overflow-visible" style="width: 10px"
|
||||
><path
|
||||
d="M0 0L10 10M10 0L0 10"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
/></svg
|
||||
>
|
||||
</button>
|
||||
|
||||
<div
|
||||
class="w-full sticky top-0 bg-gradient-to-r from-white to-gray-50 z-10 hidden lg:block"
|
||||
>
|
||||
<input
|
||||
bind:value={searchTerm}
|
||||
on:input={search}
|
||||
bind:this={searchBar}
|
||||
id="search"
|
||||
type="search"
|
||||
class="w-4/5 m-4 rounded-md border-gray-200 focus:placeholder-transparent focus:shadow-none focus:border-orange-500 focus:ring-0"
|
||||
placeholder="Search ⌘-k / ctrl-k"
|
||||
autocomplete="off"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<a class="link px-4 my-2 block" href="/docs/">Building Demos</a>
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == "interface"}
|
||||
class="thin-link px-4 block"
|
||||
href="/docs/interface/">Interface</a
|
||||
>
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == "flagging"}
|
||||
class="thin-link px-4 block"
|
||||
href="/docs/flagging/">Flagging</a
|
||||
>
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == "combining-interfaces"}
|
||||
class="thin-link px-4 block"
|
||||
href="/docs/combining-interfaces/">Combining Interfaces</a
|
||||
>
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == "blocks"}
|
||||
class="thin-link px-4 block"
|
||||
href="/docs/blocks/">Blocks<sup class="text-orange-500">NEW</sup></a
|
||||
>
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == "block-layouts"}
|
||||
class="thin-link px-4 block"
|
||||
href="/docs/block-layouts/">Block Layouts</a
|
||||
>
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == "themes"}
|
||||
class="thin-link px-4 block"
|
||||
href="/docs/themes/">Themes</a
|
||||
>
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == "components"}
|
||||
class="link px-4 my-2 block"
|
||||
href="/docs/components/">Components</a
|
||||
>
|
||||
{#each Object.entries(components) as [name, obj] (name)}
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == name}
|
||||
class="px-4 block thin-link"
|
||||
href="/docs/{name}/">{obj.name}</a
|
||||
>
|
||||
{/each}
|
||||
<a class="link px-4 my-2 block">Helpers</a>
|
||||
{#each Object.entries(helpers) as [name, obj] (name)}
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == name}
|
||||
class="px-4 block thin-link"
|
||||
href="/docs/{name}/">{obj.name}</a
|
||||
>
|
||||
{/each}
|
||||
<a class="link px-4 my-2 block">Routes</a>
|
||||
{#each Object.entries(routes) as [name, obj] (name)}
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == name}
|
||||
class="px-4 block thin-link"
|
||||
href="/docs/{name}/">{obj.name}</a
|
||||
>
|
||||
{/each}
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == "python-client"}
|
||||
class="link px-4 my-2 block"
|
||||
href="/docs/python-client/">Python Client</a
|
||||
>
|
||||
{#each Object.entries(py_client) as [name, obj] (name)}
|
||||
<a
|
||||
class:current-nav-link={current_nav_link == name}
|
||||
class="px-4 block thin-link"
|
||||
href="/docs/{name}/">{obj.name}</a
|
||||
>
|
||||
{/each}
|
||||
<a
|
||||
class:current_nav_link={current_nav_link == "js-client"}
|
||||
class="link px-4 my-2 block"
|
||||
href="/docs/js-client/">JavaScript Client</a
|
||||
>
|
||||
</div>
|
95
js/_website/src/components/Footer.svelte
Normal file
@ -0,0 +1,95 @@
|
||||
<script lang="ts">
|
||||
import { twitter, github } from "../assets";
|
||||
</script>
|
||||
|
||||
<footer
|
||||
class="container mx-auto flex-row flex items-center px-4 py-6 justify-between"
|
||||
>
|
||||
<a href="/">
|
||||
<svg
|
||||
width="90"
|
||||
viewBox="0 0 451 105"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<path
|
||||
d="M45.7779 9.7789L91.2031 34.6919V49.2071L45.7779 24.2941V9.7789Z"
|
||||
fill="#FF7C00"
|
||||
fill-opacity="0.75"
|
||||
/>
|
||||
<path
|
||||
d="M91.1878 34.6924L45.5957 59.6992V74.3078L91.1878 49.301V34.6924Z"
|
||||
fill="#FF7C00"
|
||||
/>
|
||||
<path
|
||||
d="M-0.000525172 34.6924L45.5957 59.6992V74.3079L-0.000525172 49.3011V34.6924Z"
|
||||
fill="#FF7C00"
|
||||
fill-opacity="0.75"
|
||||
/>
|
||||
<path
|
||||
d="M45.7731 9.68544L0.00585938 34.6919V49.3006L45.7731 24.2942V9.68544Z"
|
||||
fill="#FF7C00"
|
||||
/>
|
||||
<path
|
||||
d="M45.7779 34.9728L91.2031 59.8857V74.4009L45.7779 49.488V34.9728Z"
|
||||
fill="#FF7C00"
|
||||
fill-opacity="0.75"
|
||||
/>
|
||||
<path
|
||||
d="M91.1878 59.8853L45.5957 84.8921V99.5007L91.1878 74.4939V59.8853Z"
|
||||
fill="#FF7C00"
|
||||
/>
|
||||
<path
|
||||
d="M-0.000525172 59.8853L45.5957 84.8921V99.5008L-0.000525172 74.494V59.8853Z"
|
||||
fill="#FF7C00"
|
||||
fill-opacity="0.75"
|
||||
/>
|
||||
<path
|
||||
d="M45.7731 34.8783L0.00585938 59.8848V74.4935L45.7731 49.4871V34.8783Z"
|
||||
fill="#FF7C00"
|
||||
/>
|
||||
<path
|
||||
d="M139.727 96.9891L148.148 86.596C152.803 90.8598 157.991 92.9917 163.711 92.9917C167.549 92.9917 170.711 92.4232 173.198 91.2862C175.686 90.1492 176.929 88.5858 176.929 86.596C176.929 83.2205 174.176 81.5327 168.668 81.5327C167.176 81.5327 164.955 81.7104 162.006 82.0657C159.057 82.421 156.836 82.5987 155.344 82.5987C146.176 82.5987 141.593 79.312 141.593 72.7386C141.593 70.8554 142.357 69.0077 143.885 67.1956C145.413 65.3835 147.189 64.0511 149.214 63.1983C142.712 58.97 139.461 52.9829 139.461 45.237C139.461 39.1255 141.699 34.08 146.176 30.1004C150.653 26.0853 156.161 24.0777 162.699 24.0777C167.815 24.0777 172.097 25.0371 175.544 26.9558L180.767 20.8799L189.987 29.2476L183.645 33.8845C185.848 37.2245 186.949 41.1686 186.949 45.7166C186.949 52.219 184.959 57.4244 180.98 61.3329C177.036 65.2058 172.044 67.1423 166.003 67.1423C165.044 67.1423 163.765 67.0535 162.166 66.8758L159.981 66.5561C159.732 66.5561 158.772 66.9469 157.102 67.7286C155.468 68.4748 154.651 69.2565 154.651 70.0737C154.651 71.495 155.877 72.2056 158.328 72.2056C159.43 72.2056 161.277 71.9391 163.871 71.4062C166.465 70.8732 168.686 70.6067 170.534 70.6067C183.503 70.6067 189.987 75.8121 189.987 86.2229C189.987 91.9791 187.393 96.4916 182.206 99.7606C177.018 103.065 170.764 104.717 163.445 104.717C154.704 104.717 146.798 102.141 139.727 96.9891ZM153.052 45.2903C153.052 48.6658 153.976 51.384 155.823 53.4448C157.707 55.4701 160.229 56.4828 163.392 56.4828C166.554 56.4828 168.988 55.4879 170.693 53.4981C172.399 51.5083 173.252 48.7724 173.252 45.2903C173.252 42.4122 172.328 39.9782 170.48 37.9885C168.668 35.9987 166.305 35.0038 163.392 35.0038C160.336 35.0038 157.849 35.9631 155.93 37.8819C154.011 39.8006 153.052 42.27 153.052 45.2903Z"
|
||||
fill="#FF7C00"
|
||||
/>
|
||||
<path
|
||||
d="M231.773 37.6687C229.392 36.1053 226.78 35.3236 223.938 35.3236C220.847 35.3236 218.093 36.7271 215.677 39.5341C213.296 42.3411 212.106 45.7699 212.106 49.8206V82.3322H198.781V25.2503H212.106V30.4735C215.837 26.2807 220.793 24.1843 226.976 24.1843C231.524 24.1843 235.006 24.8772 237.422 26.263L231.773 37.6687Z"
|
||||
fill="#FF7C00"
|
||||
/>
|
||||
<path
|
||||
d="M277.236 76.6293C276.028 78.6191 273.913 80.2536 270.893 81.5327C267.909 82.7763 264.782 83.3981 261.513 83.3981C255.366 83.3981 250.533 81.8703 247.016 78.8145C243.498 75.7233 241.739 71.3529 241.739 65.7033C241.739 59.0944 244.209 53.9245 249.148 50.1936C254.122 46.4628 261.175 44.5974 270.307 44.5974C271.87 44.5974 273.718 44.8639 275.85 45.3968C275.85 38.6813 271.604 35.3236 263.112 35.3236C258.102 35.3236 253.909 36.1586 250.533 37.8286L247.655 27.4888C252.239 25.2858 257.693 24.1843 264.018 24.1843C272.723 24.1843 279.101 26.1741 283.152 30.1537C287.202 34.0977 289.228 41.5949 289.228 52.6453V64.8505C289.228 72.4543 290.756 77.2334 293.811 79.1876C292.71 81.1063 291.484 82.2789 290.134 82.7053C288.783 83.1672 287.238 83.3981 285.497 83.3981C283.578 83.3981 281.855 82.6875 280.327 81.2662C278.799 79.845 277.769 78.2993 277.236 76.6293ZM275.956 55.4701C273.682 55.0082 271.977 54.7773 270.84 54.7773C260.322 54.7773 255.064 58.2238 255.064 65.117C255.064 70.2336 258.031 72.7919 263.965 72.7919C271.959 72.7919 275.956 68.7946 275.956 60.7999V55.4701Z"
|
||||
fill="#FF7C00"
|
||||
/>
|
||||
<path
|
||||
d="M340.393 82.3322V78.8678C339.292 80.0759 337.427 81.1419 334.797 82.0657C332.168 82.954 329.45 83.3981 326.643 83.3981C318.684 83.3981 312.412 80.8754 307.829 75.8299C303.28 70.7843 301.006 63.749 301.006 54.724C301.006 45.6989 303.618 38.3615 308.841 32.712C314.1 27.0269 320.673 24.1843 328.561 24.1843C332.896 24.1843 336.84 25.0726 340.393 26.8492V3.98449L353.718 0.786621V82.3322H340.393ZM340.393 38.8945C337.551 36.6205 334.584 35.4835 331.493 35.4835C326.163 35.4835 322.059 37.1179 319.181 40.3869C316.303 43.6203 314.864 48.2749 314.864 54.3509C314.864 66.2185 320.584 72.1523 332.026 72.1523C333.305 72.1523 334.868 71.7792 336.716 71.0331C338.599 70.2514 339.825 69.4697 340.393 68.688V38.8945Z"
|
||||
fill="#FF7C00"
|
||||
/>
|
||||
<path
|
||||
d="M377.542 3.13172C379.674 3.13172 381.486 3.89566 382.978 5.42353C384.506 6.91586 385.27 8.72799 385.27 10.8599C385.27 12.9918 384.506 14.8217 382.978 16.3496C381.486 17.8419 379.674 18.5881 377.542 18.5881C375.41 18.5881 373.58 17.8419 372.052 16.3496C370.56 14.8217 369.814 12.9918 369.814 10.8599C369.814 8.72799 370.56 6.91586 372.052 5.42353C373.58 3.89566 375.41 3.13172 377.542 3.13172ZM370.667 82.3322V36.1763H363.365V25.2503H384.151V82.3322H370.667Z"
|
||||
fill="#FF7C00"
|
||||
/>
|
||||
<path
|
||||
d="M395.983 53.658C395.983 44.9527 398.488 37.8641 403.498 32.3922C408.544 26.9203 415.188 24.1843 423.431 24.1843C432.101 24.1843 438.834 26.8137 443.631 32.0724C448.428 37.3311 450.826 44.5263 450.826 53.658C450.826 62.7541 448.375 69.9849 443.471 75.3502C438.603 80.7155 431.924 83.3981 423.431 83.3981C414.762 83.3981 408.011 80.6977 403.178 75.2969C398.381 69.8605 395.983 62.6476 395.983 53.658ZM409.84 53.658C409.84 66.2363 414.371 72.5254 423.431 72.5254C427.589 72.5254 430.875 70.8909 433.291 67.622C435.743 64.3531 436.969 59.6984 436.969 53.658C436.969 41.2574 432.456 35.0571 423.431 35.0571C419.274 35.0571 415.97 36.6915 413.518 39.9605C411.066 43.2294 409.84 47.7952 409.84 53.658Z"
|
||||
fill="#FF7C00"
|
||||
/>
|
||||
</svg>
|
||||
</a>
|
||||
<div class="flex gap-3">
|
||||
<a
|
||||
href="https://status.gradio.app"
|
||||
target="_blank"
|
||||
class="text-gray-400 hover:text-gray-500"
|
||||
>
|
||||
<span>Status</span>
|
||||
</a>
|
||||
<a class="hover:opacity-75 transition" href="https://twitter.com/Gradio">
|
||||
<img src={twitter} class="w-6" alt="Twitter logo" />
|
||||
</a>
|
||||
<a
|
||||
class="hover:opacity-75 transition"
|
||||
href="https://github.com/gradio-app/gradio"
|
||||
>
|
||||
<img src={github} class="w-6" alt="Github logo" />
|
||||
</a>
|
||||
</div>
|
||||
</footer>
|
138
js/_website/src/components/FunctionDoc.svelte
Normal file
@ -0,0 +1,138 @@
|
||||
<script lang="ts">
|
||||
export let fn: any;
|
||||
export let parent;
|
||||
import anchor from "../assets/img/anchor.svg";
|
||||
|
||||
function handleAnchorClick(event: MouseEvent) {
|
||||
event.preventDefault();
|
||||
const link = event.currentTarget as HTMLAnchorElement;
|
||||
console.log(link);
|
||||
const anchorId = new URL(link.href).hash.replace("#", "");
|
||||
const anchor = document.getElementById(anchorId);
|
||||
window.scrollTo({
|
||||
top: anchor?.offsetTop,
|
||||
behavior: "smooth"
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- name, signature, description, params -->
|
||||
|
||||
<div class="obj" id={fn.slug}>
|
||||
<div class="flex flex-row items-center justify-between">
|
||||
<h3 class="group text-3xl font-light py-4">
|
||||
{fn.name}
|
||||
<a
|
||||
href="#{fn.slug}"
|
||||
class="invisible group-hover-visible"
|
||||
on:click={handleAnchorClick}><img class="anchor-img" src={anchor} /></a
|
||||
>
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
{#if fn.override_signature}
|
||||
<div class="codeblock bg-gray-50 mx-auto p-3">
|
||||
<pre><code class="code language-python">{fn.override_signature}</code
|
||||
></pre>
|
||||
</div>
|
||||
{:else}
|
||||
<div class="codeblock bg-gray-50 mx-auto p-3">
|
||||
<pre><code class="code language-python"
|
||||
>{fn.parent}.<span>{fn.name}(</span
|
||||
><!--
|
||||
-->{#each fn.parameters as param}<!--
|
||||
-->{#if !("kwargs" in param) && !("default" in param) && param.name != "self"}<!--
|
||||
-->{param.name}, <!--
|
||||
-->{/if}<!--
|
||||
-->{/each}<!--
|
||||
-->···<span
|
||||
>)</span
|
||||
></code
|
||||
></pre>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<h4
|
||||
class="mt-8 text-xl text-orange-500 font-light group"
|
||||
id="{fn.slug}-description"
|
||||
>
|
||||
Description
|
||||
<a
|
||||
href="#{fn.slug}-description"
|
||||
class="invisible group-hover-visible"
|
||||
on:click={handleAnchorClick}
|
||||
><img class="anchor-img-small" src={anchor} /></a
|
||||
>
|
||||
</h4>
|
||||
<p class="mb-2 text-lg">{@html fn.description}</p>
|
||||
|
||||
{#if fn.example}
|
||||
<h4
|
||||
class="mt-4 text-xl text-orange-500 font-light group"
|
||||
id="{fn.slug}-example-usage"
|
||||
>
|
||||
Example Usage
|
||||
<a
|
||||
href="#{fn.slug}-example-usage"
|
||||
class="invisible group-hover-visible"
|
||||
on:click={handleAnchorClick}
|
||||
><img class="anchor-img-small" src={anchor} /></a
|
||||
>
|
||||
</h4>
|
||||
<div class="mt-2 codeblock bg-gray-50 mx-auto p-3">
|
||||
<pre><code class="code language-python"
|
||||
>{@html fn.highlighted_example}</code
|
||||
></pre>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{#if (fn.parameters.length > 0 && fn.parameters[0].name != "self") || fn.parameters.length > 1}
|
||||
<h4
|
||||
class="mt-6 text-xl text-orange-500 font-light group"
|
||||
id="{fn.slug}-arguments"
|
||||
>
|
||||
Agruments
|
||||
<a
|
||||
href="#{fn.slug}-arguments"
|
||||
class="invisible group-hover-visible"
|
||||
on:click={handleAnchorClick}
|
||||
><img class="anchor-img-small" src={anchor} /></a
|
||||
>
|
||||
</h4>
|
||||
|
||||
<table class="table-fixed w-full leading-loose">
|
||||
<thead class="text-left">
|
||||
<tr>
|
||||
<th class="px-3 pb-3 font-semibold text-gray-700 w-2/5">Parameter</th>
|
||||
<th class="px-3 pb-3 font-semibold text-gray-700">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody
|
||||
class=" rounded-lg bg-gray-50 border border-gray-100 overflow-hidden text-left align-top divide-y"
|
||||
>
|
||||
{#each fn.parameters as param}
|
||||
{#if param["name"] != "self"}
|
||||
<tr class="group hover:bg-gray-200/60 odd:bg-gray-100/80">
|
||||
<td class="p-3 w-2/5 break-words">
|
||||
<code class="block">
|
||||
{param["name"]}
|
||||
</code>
|
||||
<p class="text-gray-500 italic">{param["annotation"]}</p>
|
||||
{#if "default" in param}
|
||||
<p class="text-gray-500 font-semibold">
|
||||
default: {param["default"]}
|
||||
</p>
|
||||
{:else if !("kwargs" in param)}
|
||||
<p class="text-orange-600 font-semibold italic">required</p>
|
||||
{/if}
|
||||
</td>
|
||||
<td class="p-3 text-gray-700 break-words">
|
||||
<p>{param["doc"] || ""}</p>
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
{/each}
|
||||
</tbody>
|
||||
</table>
|
||||
{/if}
|
||||
</div>
|
93
js/_website/src/components/Header.svelte
Normal file
@ -0,0 +1,93 @@
|
||||
<script lang="ts">
|
||||
import { store } from "../routes/+layout.svelte";
|
||||
|
||||
import { gradio_logo, github_black } from "../assets";
|
||||
|
||||
let click_nav = false;
|
||||
let show_help_menu = false;
|
||||
let show_nav = false;
|
||||
$: show_nav = click_nav || $store?.lg;
|
||||
</script>
|
||||
|
||||
<div
|
||||
class="container mx-auto flex flex-wrap justify-between flex-row relative items-center px-4 py-5 gap-6 text-lg z-50"
|
||||
>
|
||||
<a href="/">
|
||||
<img src={gradio_logo} alt="Gradio logo" />
|
||||
</a>
|
||||
<svg
|
||||
class="h-8 w-8 lg:hidden"
|
||||
viewBox="-10 -10 20 20"
|
||||
on:click={() => (click_nav = !click_nav)}
|
||||
>
|
||||
<rect x="-7" y="-6" width="14" height="2" />
|
||||
<rect x="-7" y="-1" width="14" height="2" />
|
||||
<rect x="-7" y="4" width="14" height="2" />
|
||||
</svg>
|
||||
<nav
|
||||
class:hidden={!show_nav}
|
||||
class="w-full flex-col gap-3 lg:flex lg:w-auto lg:flex-row lg:gap-8"
|
||||
>
|
||||
<a class="thin-link flex items-center gap-3" href="/guides/quickstart"
|
||||
><span>⚡</span> <span>Quickstart</span>
|
||||
</a>
|
||||
<a class="thin-link flex items-center gap-3" href="/docs"
|
||||
><span>✍️</span> <span>Docs</span>
|
||||
</a>
|
||||
<a class="thin-link flex items-center gap-3" href="/guides"
|
||||
><span>💡</span> <span>Guides</span></a
|
||||
>
|
||||
<a class="thin-link flex items-center gap-3" href="/demos"
|
||||
><span>🎢</span> <span>Demos</span></a
|
||||
>
|
||||
<div
|
||||
on:mouseenter={() => (show_help_menu = true)}
|
||||
on:mouseleave={() => (show_help_menu = false)}
|
||||
class="group relative flex cursor-pointer items-center gap-3"
|
||||
>
|
||||
<span>🖐</span> <span>Community</span>
|
||||
<svg
|
||||
class="h-4 w-4"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 20 20"
|
||||
>
|
||||
<path
|
||||
d="M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z"
|
||||
/>
|
||||
</svg>
|
||||
{#if show_help_menu}
|
||||
<div
|
||||
class="help-menu absolute top-6 w-52 flex-col bg-white shadow group-hover:flex sm:right-0"
|
||||
>
|
||||
<a
|
||||
class="thin-link inline-block px-4 py-2 hover:bg-gray-100"
|
||||
href="https://github.com/gradio-app/gradio/issues/new/choose"
|
||||
target="_blank">File an Issue</a
|
||||
>
|
||||
<a
|
||||
class="thin-link inline-block px-4 py-2 hover:bg-gray-100"
|
||||
href="https://discuss.huggingface.co/c/gradio/26"
|
||||
target="_blank">Discuss</a
|
||||
>
|
||||
<a
|
||||
class="thin-link inline-block px-4 py-2 hover:bg-gray-100"
|
||||
target="_blank"
|
||||
href="https://discord.gg/feTf9x3ZSB">Discord</a
|
||||
>
|
||||
<a
|
||||
class="thin-link inline-block px-4 py-2 hover:bg-gray-100"
|
||||
target="_blank"
|
||||
href="https://gradio.curated.co/">Newsletter</a
|
||||
>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<a
|
||||
class="thin-link flex items-center gap-3"
|
||||
href="https://github.com/gradio-app/gradio"
|
||||
>
|
||||
<img src={github_black} class="w-6" alt="Github logo" />
|
||||
</a>
|
||||
</nav>
|
||||
</div>
|
27
js/_website/src/components/MetaTags.svelte
Normal file
@ -0,0 +1,27 @@
|
||||
<script lang="ts">
|
||||
import image from "../assets/img/meta-image.png";
|
||||
export let title = "Gradio";
|
||||
export let description = "Build & Share Delightful Machine Learning Apps";
|
||||
export let url: string;
|
||||
export let canonical: string;
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
<title>{title}</title>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="description" content={description} />
|
||||
<meta name="author" content="Gradio Team" />
|
||||
<meta property="og:title" content={title} />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:url" content={url} />
|
||||
<meta property="og:description" content={description} />
|
||||
<meta property="og:image" content={image} />
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:creator" content="@Gradio" />
|
||||
<meta name="twitter:title" content={title} />
|
||||
<meta name="twitter:description" content="{description}." />
|
||||
<meta name="twitter:image" content={image} />
|
||||
|
||||
<link rel="canonical" href={canonical} />
|
||||
</svelte:head>
|
25
js/_website/src/components/clickOutside.ts
Normal file
@ -0,0 +1,25 @@
|
||||
/** Dispatch event on click outside of node */
|
||||
declare namespace svelte.JSX {
|
||||
interface HTMLProps<T> {
|
||||
onclick_outside?: (e: CustomEvent) => void;
|
||||
}
|
||||
}
|
||||
|
||||
export function clickOutside(node: Node) {
|
||||
|
||||
const handleClick = (event: MouseEvent) => {
|
||||
if (node && !node.contains(event.target as Node) && !event.defaultPrevented) {
|
||||
node.dispatchEvent(
|
||||
new CustomEvent('click_outside', node as any)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
document.addEventListener('click', handleClick, true);
|
||||
|
||||
return {
|
||||
destroy() {
|
||||
document.removeEventListener('click', handleClick, true);
|
||||
}
|
||||
}
|
||||
}
|