| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- 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;
- }
- #main, #settings, #extensions, #chat-settings {
- border: 0;
- }
- """
- 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;
- }
- """
- page_js = """
- document.getElementById("main").parentNode.childNodes[0].style = "border: none; background-color: #8080802b; margin-bottom: 40px"
- document.getElementById("main").parentNode.style = "padding: 0; margin: 0"
- document.getElementById("main").parentNode.parentNode.parentNode.style = "padding: 0"
- """
- 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
|