Spaces:
Running
Running
| import mesop as me | |
| def load(e: me.LoadEvent): | |
| me.set_theme_mode("system") | |
| def app(): | |
| with me.box(style=CONTENT_STYLE): | |
| subtle_chat_input() | |
| elevated_chat_input() | |
| me.textarea( | |
| placeholder="Default chat input", | |
| style=me.Style(width="100%"), | |
| rows=2, | |
| ) | |
| def subtle_chat_input(): | |
| with me.box( | |
| style=me.Style( | |
| border_radius=16, | |
| padding=me.Padding.all(8), | |
| background=BACKGROUND_COLOR, | |
| display="flex", | |
| width="100%", | |
| ) | |
| ): | |
| with me.box( | |
| style=me.Style( | |
| flex_grow=1, | |
| ) | |
| ): | |
| me.native_textarea( | |
| autosize=True, | |
| min_rows=4, | |
| placeholder="Subtle chat input", | |
| style=me.Style( | |
| padding=me.Padding(top=16, left=16), | |
| background=BACKGROUND_COLOR, | |
| outline="none", | |
| width="100%", | |
| overflow_y="auto", | |
| border=me.Border.all( | |
| me.BorderSide(style="none"), | |
| ), | |
| ), | |
| ) | |
| with me.content_button(type="icon"): | |
| me.icon("upload") | |
| with me.content_button(type="icon"): | |
| me.icon("photo") | |
| with me.content_button(type="icon"): | |
| me.icon("send") | |
| def elevated_chat_input(): | |
| with me.box( | |
| style=me.Style( | |
| padding=me.Padding.all(8), | |
| background="white", | |
| display="flex", | |
| width="100%", | |
| border=me.Border.all( | |
| me.BorderSide(width=0, style="solid", color="black") | |
| ), | |
| box_shadow="0 10px 20px #0000000a, 0 2px 6px #0000000a, 0 0 1px #0000000a", | |
| ) | |
| ): | |
| with me.box( | |
| style=me.Style( | |
| flex_grow=1, | |
| ) | |
| ): | |
| me.native_textarea( | |
| autosize=True, | |
| min_rows=4, | |
| placeholder="Elevated chat input", | |
| style=me.Style( | |
| font_family="monospace", | |
| padding=me.Padding(top=16, left=16), | |
| background="white", | |
| outline="none", | |
| width="100%", | |
| overflow_y="auto", | |
| border=me.Border.all( | |
| me.BorderSide(style="none"), | |
| ), | |
| ), | |
| ) | |
| with me.content_button(type="icon"): | |
| me.icon("upload") | |
| with me.content_button(type="icon"): | |
| me.icon("photo") | |
| with me.content_button(type="icon"): | |
| me.icon("send") | |
| BACKGROUND_COLOR = "#e2e8f0" | |
| CONTENT_STYLE = me.Style(padding=me.Padding.all(16), gap=16, display="grid") | |