|
import gradio as gr |
|
|
|
refresh_symbol = '\U0001f504' |
|
|
|
css = """ |
|
.tabs.svelte-710i53 { |
|
margin-top: 0 |
|
} |
|
.py-6 { |
|
padding-top: 2.5rem |
|
} |
|
.dark #refresh-button { |
|
background-color: #ffffff1f; |
|
} |
|
#refresh-button { |
|
flex: none; |
|
margin: 0; |
|
padding: 0; |
|
min-width: 50px; |
|
border: none; |
|
box-shadow: none; |
|
border-radius: 10px; |
|
background-color: #0000000d; |
|
} |
|
#download-label, #upload-label { |
|
min-height: 0 |
|
} |
|
#accordion { |
|
} |
|
.dark svg { |
|
fill: white; |
|
} |
|
svg { |
|
display: unset !important; |
|
vertical-align: middle !important; |
|
margin: 5px; |
|
} |
|
ol li p, ul li p { |
|
display: inline-block; |
|
} |
|
""" |
|
|
|
chat_css = """ |
|
.h-\[40vh\], .wrap.svelte-byatnx.svelte-byatnx.svelte-byatnx { |
|
height: 66.67vh |
|
} |
|
.gradio-container { |
|
max-width: 800px !important; |
|
margin-left: auto !important; |
|
margin-right: auto !important; |
|
} |
|
.w-screen { |
|
width: unset |
|
} |
|
div.svelte-362y77>*, div.svelte-362y77>.form>* { |
|
flex-wrap: nowrap |
|
} |
|
/* fixes the API documentation in chat mode */ |
|
.api-docs.svelte-1iguv9h.svelte-1iguv9h.svelte-1iguv9h { |
|
display: grid; |
|
} |
|
.pending.svelte-1ed2p3z { |
|
opacity: 1; |
|
} |
|
""" |
|
|
|
class ToolButton(gr.Button, gr.components.FormComponent): |
|
"""Small button with single emoji as text, fits inside gradio forms""" |
|
|
|
def __init__(self, **kwargs): |
|
super().__init__(variant="tool", **kwargs) |
|
|
|
def get_block_name(self): |
|
return "button" |
|
|
|
def create_refresh_button(refresh_component, refresh_method, refreshed_args, elem_id): |
|
def refresh(): |
|
refresh_method() |
|
args = refreshed_args() if callable(refreshed_args) else refreshed_args |
|
|
|
for k, v in args.items(): |
|
setattr(refresh_component, k, v) |
|
|
|
return gr.update(**(args or {})) |
|
|
|
refresh_button = ToolButton(value=refresh_symbol, elem_id=elem_id) |
|
refresh_button.click( |
|
fn=refresh, |
|
inputs=[], |
|
outputs=[refresh_component] |
|
) |
|
return refresh_button |
|
|