| | 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 |
| |
|