|
@@ -244,12 +244,17 @@ def create_full() -> None:
|
|
|
''').classes('bold-links arrow-links')
|
|
|
with ui.row():
|
|
|
ui.label('Choose your favorite element from those available and start having fun!').classes('mx-auto my-auto')
|
|
|
- elements_list = ['ui.label', 'ui.checkbox', 'ui.switch', 'ui.input', 'ui.textarea', 'ui.button']
|
|
|
- select_element = ui.select(options=elements_list, value='ui.button', on_change=lambda: elements_ui.refresh()) \
|
|
|
- .props('dense hide-bottom-space')
|
|
|
+ select_element = ui.select({
|
|
|
+ ui.label: 'ui.label',
|
|
|
+ ui.checkbox: 'ui.checkbox',
|
|
|
+ ui.switch: 'ui.switch',
|
|
|
+ ui.input: 'ui.input',
|
|
|
+ ui.textarea: 'ui.textarea',
|
|
|
+ ui.button: 'ui.button',
|
|
|
+ }, value=ui.button, on_change=lambda: live_demo_ui.refresh()).props('dense')
|
|
|
|
|
|
@ui.refreshable
|
|
|
- def elements_ui():
|
|
|
+ def live_demo_ui():
|
|
|
with ui.column().classes('w-full items-stretch gap-8 no-wrap min-[1500px]:flex-row'):
|
|
|
with demo.python_window(classes='w-full max-w-[44rem]'):
|
|
|
with ui.column().classes('w-full gap-4'):
|
|
@@ -257,13 +262,13 @@ def create_full() -> None:
|
|
|
```py
|
|
|
from nicegui import ui
|
|
|
|
|
|
- element = {select_element.value}('element')
|
|
|
+ element = {select_element.options[select_element.value]}('element')
|
|
|
```
|
|
|
''').classes('mb-[-0.25em]')
|
|
|
with ui.row().classes('items-center gap-0 w-full px-2'):
|
|
|
def handle_classes(e: events.ValueChangeEventArguments):
|
|
|
try:
|
|
|
- b.classes(replace=e.value)
|
|
|
+ element.classes(replace=e.value)
|
|
|
except ValueError:
|
|
|
pass
|
|
|
ui.markdown("`element.classes('`")
|
|
@@ -271,32 +276,32 @@ def create_full() -> None:
|
|
|
ui.markdown("`')`")
|
|
|
with ui.row().classes('items-center gap-0 w-full px-2'):
|
|
|
def handle_props(e: events.ValueChangeEventArguments):
|
|
|
- b._props = {'label': 'Button', 'color': 'primary'}
|
|
|
+ element._props = {'label': 'Button', 'color': 'primary'}
|
|
|
try:
|
|
|
- b.props(e.value)
|
|
|
+ element.props(e.value)
|
|
|
except ValueError:
|
|
|
pass
|
|
|
- b.update()
|
|
|
+ element.update()
|
|
|
ui.markdown("`element.props('`")
|
|
|
ui.input(on_change=handle_props).classes('mt-[-0.5em] text-mono grow').props('dense')
|
|
|
ui.markdown("`')`")
|
|
|
with ui.row().classes('items-center gap-0 w-full px-2'):
|
|
|
def handle_style(e: events.ValueChangeEventArguments):
|
|
|
try:
|
|
|
- b.style(replace=e.value)
|
|
|
+ element.style(replace=e.value)
|
|
|
except ValueError:
|
|
|
pass
|
|
|
ui.markdown("`element.style('`")
|
|
|
ui.input(on_change=handle_style).classes('mt-[-0.5em] text-mono grow').props('dense')
|
|
|
ui.markdown("`')`")
|
|
|
ui.markdown('''
|
|
|
- ```py
|
|
|
- ui.run()
|
|
|
- ```
|
|
|
+ ```py
|
|
|
+ ui.run()
|
|
|
+ ```
|
|
|
''')
|
|
|
with demo.browser_window(classes='w-full max-w-[44rem] min-[1500px]:max-w-[20rem] min-h-[10rem] browser-window'):
|
|
|
- b: ui.element = eval(f'{select_element.value}("element")')
|
|
|
- elements_ui()
|
|
|
+ element: ui.element = select_element.value("element")
|
|
|
+ live_demo_ui()
|
|
|
|
|
|
@text_demo('Tailwind CSS', '''
|
|
|
[Tailwind CSS](https://tailwindcss.com/) is a CSS framework for rapidly building custom user interfaces.
|