teleport_documentation.py 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. from nicegui import ui
  2. from . import doc
  3. @doc.demo(ui.teleport)
  4. def main_demo() -> None:
  5. markdown = ui.markdown('Enter your **name**!')
  6. def inject_input():
  7. with ui.teleport(f'#c{markdown.id} strong'):
  8. ui.input('name').classes('inline-flex').props('dense outlined')
  9. ui.button('inject input', on_click=inject_input)
  10. @doc.demo('Radio element with arbitrary content', '''
  11. With the right CSS selector, you can place any content inside a standard radio element.
  12. ''')
  13. def arbitrary_content():
  14. options = ['Star', 'Thump Up', 'Heart']
  15. radio = ui.radio({x: '' for x in options}, value='Star').props('inline')
  16. with ui.teleport(f'#c{radio.id} > div:nth-child(1) .q-radio__label'):
  17. ui.icon('star', size='md')
  18. with ui.teleport(f'#c{radio.id} > div:nth-child(2) .q-radio__label'):
  19. ui.icon('thumb_up', size='md')
  20. with ui.teleport(f'#c{radio.id} > div:nth-child(3) .q-radio__label'):
  21. ui.icon('favorite', size='md')
  22. ui.label().bind_text_from(radio, 'value')
  23. doc.reference(ui.teleport)