import json import os import gradio as gr import modelscope_studio as mgr options = ["a", "b", "c"] def resolve_assets(relative_path): return os.path.join(os.path.dirname(__file__), "../../resources", relative_path) with open(resolve_assets("./custom_components/custom_select.js"), 'r') as f: custom_select_js = f.read() def fn(data: gr.EventData): # custom {'index': [0, 1, 0], 'tag': 'custom-select', 'tag_index': 0, 'value': 'option A'} print("custom value", data._data) with gr.Blocks() as demo: md = mgr.Markdown(value=f""" custom tag: """, custom_components={ "custom-select": { "props": ["options"], "js": custom_select_js, } }) md.custom(fn=fn) if __name__ == "__main__": demo.queue().launch()