From 2e0279c47e65d3f3d14484f843c6f32ffcd37856 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 4 Oct 2022 13:36:36 +0100 Subject: [PATCH 1/5] tweaks --- src/textual/app.py | 2 +- src/textual/widgets/_input.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/textual/app.py b/src/textual/app.py index 188a49791..303027fa0 100644 --- a/src/textual/app.py +++ b/src/textual/app.py @@ -931,7 +931,7 @@ class App(Generic[ReturnType], DOMNode): widget (Widget): Widget to focus. scroll_visible (bool, optional): Scroll widget in to view. """ - if widget == self.focused: + if widget is self.focused: # Widget is already focused return diff --git a/src/textual/widgets/_input.py b/src/textual/widgets/_input.py index 695288d58..0bb1fb3c9 100644 --- a/src/textual/widgets/_input.py +++ b/src/textual/widgets/_input.py @@ -10,7 +10,7 @@ from .. import events from .._segment_tools import line_crop from ..binding import Binding from ..geometry import Size -from ..message import Message, MessageTarget +from ..message import Message from ..reactive import reactive from ..widget import Widget From f6e3cc65177b96f5fdaad027020729320f8edb00 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 4 Oct 2022 17:48:25 +0100 Subject: [PATCH 2/5] screens api --- docs/examples/guide/screens/modal01.css | 16 ++ docs/examples/guide/screens/modal01.py | 37 +++++ docs/examples/guide/screens/screen01.css | 18 ++ docs/examples/guide/screens/screen01.py | 34 ++++ docs/examples/guide/screens/screen02.css | 18 ++ docs/examples/guide/screens/screen02.py | 36 ++++ docs/guide/actions.md | 16 ++ docs/guide/screens.md | 157 +++++++++++++++++- docs/images/screens/pop_screen.excalidraw.svg | 16 ++ .../images/screens/push_screen.excalidraw.svg | 16 ++ .../screens/switch_screen.excalidraw.svg | 16 ++ src/textual/app.py | 18 +- src/textual/screen.py | 9 +- 13 files changed, 383 insertions(+), 24 deletions(-) create mode 100644 docs/examples/guide/screens/modal01.css create mode 100644 docs/examples/guide/screens/modal01.py create mode 100644 docs/examples/guide/screens/screen01.css create mode 100644 docs/examples/guide/screens/screen01.py create mode 100644 docs/examples/guide/screens/screen02.css create mode 100644 docs/examples/guide/screens/screen02.py create mode 100644 docs/images/screens/pop_screen.excalidraw.svg create mode 100644 docs/images/screens/push_screen.excalidraw.svg create mode 100644 docs/images/screens/switch_screen.excalidraw.svg diff --git a/docs/examples/guide/screens/modal01.css b/docs/examples/guide/screens/modal01.css new file mode 100644 index 000000000..8c7bea071 --- /dev/null +++ b/docs/examples/guide/screens/modal01.css @@ -0,0 +1,16 @@ +#dialog { + grid-size: 2; + grid-gutter: 1 2; + margin: 1 2; +} + +#question { + column-span: 2; + content-align: center bottom; + width: 100%; + height: 100%; +} + +Button { + width: 100%; +} diff --git a/docs/examples/guide/screens/modal01.py b/docs/examples/guide/screens/modal01.py new file mode 100644 index 000000000..2ae1dd990 --- /dev/null +++ b/docs/examples/guide/screens/modal01.py @@ -0,0 +1,37 @@ +from textual.app import App, ComposeResult +from textual.containers import Grid +from textual.screen import Screen +from textual.widgets import Static, Header, Footer, Button + + +class QuitScreen(Screen): + def compose(self) -> ComposeResult: + yield Grid( + Static("Are you sure you want to quit?", id="question"), + Button("Quit", variant="error", id="quit"), + Button("Cancel", variant="primary", id="cancel"), + id="dialog", + ) + + def on_button_pressed(self, event: Button.Pressed) -> None: + if event.button.id == "quit": + self.app.exit() + else: + self.app.pop_screen() + + +class ModalApp(App): + CSS_PATH = "modal01.css" + BINDINGS = [("q", "request_quit", "Quit")] + + def compose(self) -> ComposeResult: + yield Header() + yield Footer() + + def action_request_quit(self) -> None: + self.push_screen(QuitScreen()) + + +if __name__ == "__main__": + app = ModalApp() + app.run() diff --git a/docs/examples/guide/screens/screen01.css b/docs/examples/guide/screens/screen01.css new file mode 100644 index 000000000..0ee028ebe --- /dev/null +++ b/docs/examples/guide/screens/screen01.css @@ -0,0 +1,18 @@ +BSOD { + align: center middle; + background: blue; + color: white; +} + +BSOD>Static { + width: 70; +} + +#title { + content-align-horizontal: center; + text-style: reverse; +} + +#any-key { + content-align-horizontal: center; +} diff --git a/docs/examples/guide/screens/screen01.py b/docs/examples/guide/screens/screen01.py new file mode 100644 index 000000000..63a24fd4e --- /dev/null +++ b/docs/examples/guide/screens/screen01.py @@ -0,0 +1,34 @@ +from textual.app import App, Screen, ComposeResult +from textual.widgets import Static + + +ERROR_TEXT = """ +An error has occurred. To continue: + +Press Enter to return to Windows, or + +Press CTRL+ALT+DEL to restart your computer. If you do this, +you will lose any unsaved information in all open applications. + +Error: 0E : 016F : BFF9B3D4 +""" + + +class BSOD(Screen): + BINDINGS = [("escape", "app.pop_screen", "Pop screen")] + + def compose(self) -> ComposeResult: + yield Static(" Windows ", id="title") + yield Static(ERROR_TEXT) + yield Static("Press any key to continue [blink]_[/]", id="any-key") + + +class BSODApp(App): + CSS_PATH = "screen01.css" + SCREENS = {"bsod": BSOD()} + BINDINGS = [("b", "push_screen('bsod')", "BSOD")] + + +if __name__ == "__main__": + app = BSODApp() + app.run() diff --git a/docs/examples/guide/screens/screen02.css b/docs/examples/guide/screens/screen02.css new file mode 100644 index 000000000..0ee028ebe --- /dev/null +++ b/docs/examples/guide/screens/screen02.css @@ -0,0 +1,18 @@ +BSOD { + align: center middle; + background: blue; + color: white; +} + +BSOD>Static { + width: 70; +} + +#title { + content-align-horizontal: center; + text-style: reverse; +} + +#any-key { + content-align-horizontal: center; +} diff --git a/docs/examples/guide/screens/screen02.py b/docs/examples/guide/screens/screen02.py new file mode 100644 index 000000000..0d5d01e46 --- /dev/null +++ b/docs/examples/guide/screens/screen02.py @@ -0,0 +1,36 @@ +from textual.app import App, Screen, ComposeResult +from textual.widgets import Static + + +ERROR_TEXT = """ +An error has occurred. To continue: + +Press Enter to return to Windows, or + +Press CTRL+ALT+DEL to restart your computer. If you do this, +you will lose any unsaved information in all open applications. + +Error: 0E : 016F : BFF9B3D4 +""" + + +class BSOD(Screen): + BINDINGS = [("escape", "app.pop_screen", "Pop screen")] + + def compose(self) -> ComposeResult: + yield Static(" Windows ", id="title") + yield Static(ERROR_TEXT) + yield Static("Press any key to continue [blink]_[/]", id="any-key") + + +class BSODApp(App): + CSS_PATH = "screen02.css" + BINDINGS = [("b", "push_screen('bsod')", "BSOD")] + + def on_mount(self) -> None: + self.install_screen(BSOD(), name="bsod") + + +if __name__ == "__main__": + app = BSODApp() + app.run() diff --git a/docs/guide/actions.md b/docs/guide/actions.md index 1d6fec643..517751450 100644 --- a/docs/guide/actions.md +++ b/docs/guide/actions.md @@ -131,10 +131,26 @@ Textual supports the following builtin actions which are defined on the app. options: show_root_heading: false +### Push screen + +::: textual.app.App.action_push_screen + + +### Pop screen + +::: textual.app.App.action_pop_screen + + ### Screenshot ::: textual.app.App.action_screenshot + +### Switch screen + +::: textual.app.App.action_switch_screen + + ### Toggle_dark ::: textual.app.App.action_toggle_dark diff --git a/docs/guide/screens.md b/docs/guide/screens.md index 688684a43..131b6f0cb 100644 --- a/docs/guide/screens.md +++ b/docs/guide/screens.md @@ -1,12 +1,151 @@ # Screens -TODO: Screens docs +This chapter covers Textual's screen API. We will discuss how to create screens and switch between them. -- Explanation of screens -- Screens API - - Install screen - - Uninstall screen - - Push screen - - Pop screen - - Switch Screen -- Screens example +## What is a screen? + +Screens are containers for widgets that occupy the dimensions of your terminal. There can be many screens in a given app, but only one screen is visible at a time. + +Textual requires that there be at least one screen object and will create one implicitly in the App class. If you don't change the screen, any widgets you [mount][textual.widget.Widget.mount] or [compose][textual.widget.Widget.compose] will be added to this default screen. + +!!! tip + + Try printing `widget.parent` to see what object your widget is connected to. + +
+--8<-- "docs/images/dom1.excalidraw.svg" +
+ +## Creating a screen + +You can create a screen by extending the [Screen][textual.screen.Screen] class which you can import from `textual.screen`. The screen may be styled in the same way as other widgets, with the exception that you can't modify the screen's dimensions (as these will always be the size of your terminal). + +Let's look at a simple example of writing a screen class to simulate Window's [blue screen of death](https://en.wikipedia.org/wiki/Blue_screen_of_death). + +=== "screen01.py" + + ```python title="screen01.py" hl_lines="17-23 28" + --8<-- "docs/examples/guide/screens/screen01.py" + ``` + +=== "screen01.css" + + ```sass title="screen01.css" + --8<-- "docs/examples/guide/screens/screen01.css" + ``` + +=== "Output" + + ```{.textual path="docs/examples/guide/screens/screen01.py" press="b,_"} + ``` + +If you run this you will see an empty screen. Hit the ++b++ screen to show a blue screen of death. Hit ++escape++ to return to the default screen. + +The `BSOD` class above defines a screen with a key binding and compose method. These should be familiar as they work in the same way as apps. + +The app class has a new `SCREENS` class variable. Textual uses this class variable to associated a name with screen object (the name is used to reference screens in the screen API). Also in the app is a key binding associated with the action `"push_screen('bsod')"`. The screen class has a similar action `"pop_screen"` bound to the ++escape++ key. We will cover these actions below. + +## Named screens + +Named screens can be defined with the apps `SCREENS` class variables. This is typically used for screens that exists for the lifetime of your app. The name of the screen may be used interchangeably with screen objects in much of the screen API. + +You can also _install_ new named screens dynamically with the [install_screen][textual.app.App.install_screen] method. The following example installs the `BSOD` screen in a mount handler rather than from the `SCREENS` variable. + +=== "screen02.py" + + ```python title="screen02.py" hl_lines="30-31" + --8<-- "docs/examples/guide/screens/screen02.py" + ``` + +=== "screen02.css" + + ```sass title="screen02.css" + --8<-- "docs/examples/guide/screens/screen02.css" + ``` + +=== "Output" + + ```{.textual path="docs/examples/guide/screens/screen02.py" press="b,_"} + ``` + +Although both do the same thing, we recommend the `SCREENS` for screens that exist for the lifetime of your app. + +### Uninstalling screens + +Screens defined in `SCREENS` or added with [install_screen][textual.app.App.install_screen] are _installed_ screens. Textual will keep these screens in memory for the lifetime of your app. + +If you have installed a screen, but you later want it to be removed and cleaned up, you can call [uninstall_screen][textual.app.App.uninstall_screen]. + +## Screen stack + +Textual keeps track of a _stack_ of screens. You can think of the screen stack as a stack of paper, where only the very top sheet is visible. If you remove the top sheet the paper underneath becomes visible. Screens work in a similar way. + +The active screen (top of the stack) will render the screen and receive input events. The following API methods on the App class can manipulate this stack, and let you decide which screen the user can interact with. + +### Push screen + +The [push_screen][textual.app.App.push_screen] method puts a screen on top of the stack and makes that screen active. You can call this method with the name of an installed screen, or a screen object. + +
+--8<-- "docs/images/screens/push_screen.excalidraw.svg" +
+ +#### Action + +You can also push screens with the `"app.push_screen"` action, which requires the name of an installed screen. + +### Pop screen + +The [pop_screen][textual.app.App.pop_screen] method removes the top-most screen from the stack, and makes the new top screen active. + +!!! note + + The screen stack must always have at least one screen. If you attempt to remove the last screen, Textual will raise a [ScreenStackError][textual.app.ScreenStackError] exception. + +
+--8<-- "docs/images/screens/pop_screen.excalidraw.svg" +
+ + +When you pop a screen it will be removed and deleted unless it has been installed or there is another copy of the screen on the stack. + +#### Action + +You can also pop screens with the `"app.pop_screen"` action. + +### Switch screen + +The [switch_screen][textual.app.App.switch_screen] method replaces the top of the stack with a new screen. + +
+--8<-- "docs/images/screens/switch_screen.excalidraw.svg" +
+ +Like [pop_screen](#pop-screen), if the screen being replaced is not installed it will be removed and deleted. + +#### Action + +You can also switch screens with the `"app.switch_screen"` action which accepts the name of the screen to switch to. + +## Modal screens + +Screens can be used to implement modal dialogs. The following example pushes a screen when you hit the ++q++ key to ask you if you really want to quit. + +=== "modal01.py" + + ```python title="modal01.py" hl_lines="18 20 32" + --8<-- "docs/examples/guide/screens/modal01.py" + ``` + +=== "modal01.css" + + ```sass title="modal01.css" + --8<-- "docs/examples/guide/screens/modal01.css" + ``` + +=== "Output" + + ```{.textual path="docs/examples/guide/screens/modal01.py" press="q,_"} + ``` + +Note the `request_quit` action in the app which pushes a new instance of `QuitScreen`. This makes the quit screen active. if you click cancel, the quit screen calls `pop_screen` to return the default screen. This also removes and deletes the `QuitScreen` object. diff --git a/docs/images/screens/pop_screen.excalidraw.svg b/docs/images/screens/pop_screen.excalidraw.svg new file mode 100644 index 000000000..e6ae74b60 --- /dev/null +++ b/docs/images/screens/pop_screen.excalidraw.svg @@ -0,0 +1,16 @@ + + + eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nN1cXFlv20hcdTAwMTJ+z68wvC+zQNTTVX1cdTAwMGawWNhOnDiOj4kzObw7XGJoiZa41lx1MDAxNZGyLFx1MDAwZvLft1pxTFI0XHUwMDE5XdYo0YNlsalmsfurqq9cdTAwMGXqrydbW9vJuFx1MDAxZm7/trVcdTAwMWTe1IN21Fx1MDAxOFx1MDAwNKPtp/74dTiIo16XhnDyOe5cclx1MDAwN/XJma0k6ce//fprJ1x1MDAxOFxchUm/XHUwMDFk1EN2XHUwMDFkxcOgXHUwMDFkJ8NG1GP1XufXKFx0O/G//d/joFx1MDAxM/6r3+s0klx1MDAwMUsvUlx1MDAwYlx1MDAxYlHSXHUwMDFifL1W2Fx1MDAwZTthN4lp9v/Q562tvyZ/M9I1oqDT6zYmp09cdTAwMDYy4mkxffS4152IXG5aaKm0lfcnRPEzulhcdTAwMTI2aPSSXHUwMDA0XHUwMDBl01x1MDAxMX9oW1x1MDAwZcaJNvCcd64+7uuzY3t0PjxLr3pcdTAwMTm122fJuD2RKe7RraRjcTLoXYXvo0bS8peeOl72rUFv2Gx1wzjOfafXXHUwMDBm6lEypmOK31x1MDAxZlxmus3JXHUwMDE06ZFcdTAwMWL6VEPOmTHaglRcXFx1MDAwMt2tulx1MDAxZv86gWDGXHUwMDFho0BII6RcdTAwMDA1Jdler037QJL9g09eqWxcdTAwMTdB/apJXHUwMDAydlx1MDAxYuk5oILg4jI9Z3R3v9IpJq1cdTAwMTQmnb5cdTAwMTVGzVbid8hqZlxycJdcdTAwMWSNw8kmOFDSSS3TLfJX7Fx1MDAxZjQmYPhzelx1MDAxNVvBoH+3Wtux/5CR1lx1MDAwYvp8XHUwMDFhSVk0ZfZZvIKL/Vx1MDAxMGCvcbj7+fnZkfy9t9O9nytcdTAwMDe9YDDojbbvR77c/ZeKNuw3gq+IXHUwMDAyraW1xmmJJlx1MDAwNWU76l7RYHfYbqfHevWrXHUwMDE0hJOjX57OXHJ9ukxcdTAwMTn00XFHaFB6ZuiHw7G9OuxcdTAwMWNyPrx8OWpcdTAwMWVEI/3C/Z3QXHUwMDA3/l3sg9NMXHUwMDE5I1FzXHUwMDBlXHUwMDAyjLI57EuBXGalQYKeddo4vlx1MDAxY/Yvg1x1MDAwYs7VXG6xj0IqcJavXHUwMDE3+53OJVx1MDAxZu3w5Nlx1Fx1MDAwZsM/Xp7svjqKV4R9XHUwMDBiXFxwblaF/SS8SVx1MDAxZVx1MDAwMr5FXVx1MDAwNnxcdTAwMTDWceTS4czIf3fZNtc3/euX487Oh97wY//0hdjfbOQjKqa0QVx1MDAwNHRGelx1MDAwYppcdTAwMDO+5cDIXHUwMDA0SXJcYtYhZKzAXCK4N07xSyziXHUwMDFluC1cdTAwMDLewDTMtUDpfdNPZOKdXHUwMDA1Jew8ME/R1OsmZ9HtxEbb3NH9oFx1MDAxM7XHOUhM8E9cdTAwMDKe1Vx1MDAwN2HY3YL/dn9pRY1G2P1ndsfikK7vJ9T5b+60o6bXlu12eJlXoyRcIlx1MDAxZXY/nPQya1xcJ0lcdTAwMDKabnDQmL6j3iBqRt2g/bZcXKpKbf66zFx1MDAwZqgzUVx1MDAxM5w+nNFnIHojxOz6XFy983PoM05j8/H02ThmJIA03NK7zauzcZKB5lx1MDAwZVxySnSk8Y+izlx1MDAwZVx1MDAxOVdEmKUxliNq94ByO6aRXHUwMDFjnZSogGudXHUwMDAy+JtLk8Lfwlx1MDAwMqo+XHUwMDExskLVXHUwMDFmRVx1MDAxOeMkXHUwMDE4JLtRt1x1MDAxMXWbNJhakW8hycFcZlx1MDAwZWKivvWhl5IzhVxcS8FpI5UgL1x1MDAwNJmTmkHfLyFcdTAwMDMgTqLJZKNVTti7XHUwMDEzvtxcdTAwMGJcdTAwMTV2XHUwMDFi31x1MDAxN6k6UMmIVONcZml5nPV7pjhqilx1MDAxM1xuQkmmXHUwMDA1SFx1MDAwN5yE4k5Zp1xuUrWDONnrdTpRQmt/2ou6yfRcdTAwMWFPXHUwMDE2c8freCtcZlxuxoPuKjs2bVxm+n7GvE1P/9tKtWXy4f7/P58+eHatXHUwMDE0ypPRXHUwMDAyitP5nmTfXHUwMDE3YOTCllx1MDAxYTK0pFx1MDAxYURcXFLF/y4jv1x1MDAxOGDjILhcclx1MDAwZp/tXHUwMDFjPX/R1TaGYLN5iXCOOTJVINB4y61TS/A1XHUwMDE4tYxcdTAwMGJcdTAwMDDniPuSmVx1MDAxMGJKskWCUa1XR8mJKiFFXHUwMDExnD9cdTAwMDJZqbBggFxucVx1MDAxZFx1MDAxMSNcdTAwMDXbpY5cdTAwMTbJcFx1MDAwYuBqdkd7vNc66r84ebffO71cdTAwMWS44+RkeNlcdTAwMTebXHJQyVx1MDAwNVx1MDAxMz5cdTAwMTOiLOmqVPlkiVx1MDAxNJpxx40lhEpccrhcdTAwMWM8V1x1MDAxZC+SPEJxMml29eCsYtKvL5Q9+Fx1MDAxON+0+sPhh53o/E1yNZCrXG5cdTAwMThcdG+Q4XaPXHUwMDA3fStUXHUwMDE59J1cdTAwMDCliHTNbprfj4/fNDvu8ORQff40fvZpt3UsT1aK/EZcdTAwMTC3wlx1MDAxNUPfMaJcdTAwMWWCXHUwMDEzjVx1MDAwNGKRLlx1MDAwN32hkFx1MDAxMSmRXHUwMDA2OXAwXFwvRzIt1lx1MDAxZIRqlegnXHUwMDEzaUk0vuZ0iVxyw5fD17e37Ytz/elSJJFcdTAwMTif89nQ/7Rq3lhcdTAwMWSOb+Pd09Hg6Pzg1bH49MfYXqxg3sv++9Hb2ujUvr/txOdX9fAjto9WMC9cdTAwMWaa/3XO3mLypr57XHUwMDEz1T/uv1x1MDAxMfVoVfE0J+S5lTnAsrSRrkpcdTAwMWKRWjiKvOzMNuBcIlx1MDAxZeOeONlcdTAwMDfV3G1ccuqN98fq9nyzw0xpXHUwMDFks0pLzTmZXjWVLlx1MDAwNUGjTnKyhESdyVx1MDAxN05cdTAwMGI2n1x0IHW9XGJcdTAwMWbgZlwiU9O413xZ1HchLdFcdTAwMTXDXHUwMDFmwdtVINGA1HpcdTAwMWUkplx1MDAxYp5mdlx1MDAwNEV5k8DDc2CbiaRzeZ70Kt/yPEG/z/q9/qd4kln55eEsj9C57z12lqcgU6XqleZ4dHlkROxXXHUwMDEz71Zydt2rNp6r0L1H8L8gmERUXHUwMDE0ZiOZOzFVq7CGIVx1MDAxN9pcYqPJXHUwMDE3w3Ip2zLd40RvXHUwMDAxkVgwXHUwMDAx06E1Qlx1MDAxNnVcdTAwMTG48YKaXHTfXHUwMDA0MlxirqibhGpSmEySfVx1MDAxZIlcdTAwMWXgtDiPmeippnVbuayKo1hcdTAwMWVcdTAwMWPZUImaVjOTYrhLqiimKFx1MDAwNlZcdTAwMWPpXHUwMDA0tN/N9ORv40fKtlSAajJexFM65ZPs+9xGxWSKXG7TRoXgXHUwMDAy5EHmyFx1MDAxYlczp800Ko5LZi1ZXGZDsaySZtqoXGJmXHUwMDA0V4pWnlxmXHUwMDBiTEdcdTAwMWKrMipoOWghfSmfLpIpRmVsimWSglx1MDAwZetcdTAwMWNcdTAwMTiCXG5cdTAwMTbKRKCNlc5zk/XaXHUwMDE0oJhcIl21v9GmXHUwMDAwo1x1MDAxZKDlUU5TVEw8pJg8XHUwMDA2zohNWKnJhVxiw7k0P6lNKYeUf9WKaFqVRcnlv6YzuFxcWyl9OXNmk1KdOtlMk6KVYUZyzSVKkCbTyeK/r1x1MDAwNTDy+8RjvGPDJVsqykxcbumCM0aS0ZK06qRcdTAwMTPp/d+bXHUwMDE0p1x1MDAxOErtlOWCXHUwMDFiVJldubMo6Oi7XG71XHUwMDAyXHUwMDAxxFIkhSuXyrK4QZlWvp9ArWvl+zpcdTAwMTkubOmcal3VK6XLqVx1MDAwMif/XHRcdTAwMWH17FRBP1P4Kno5um6++3Clm7fnJ7/Hf2uf4PfVmsgzMFxuPpBMJq2vmWpcdTAwMTlRQCRNKW5cdTAwMWRRJpctyG9GZUZ5M6/Wm1xmWF8nn1x1MDAxNuVeXHUwMDA3hHC+TWz26Lh2czi0n1x1MDAxYuF16+zjtVxix69cdTAwMWRcdTAwMWXtbTw6NfPxgyDsXHUwMDE5XHUwMDE0Nl84JLfLyFx1MDAxN1x1MDAxMXKFVsKgW1xunSsvzDghkKibWSBcdTAwMWNeJjVdi0d7e4jtSDbFh8bwj9N4dLWqlKyVllvga8C+zTjoQlx1MDAwMzcgXHQjZydcXHF3f3DQuXr+WowxfC9cdTAwMWHNVv+osdnQr4G1XGasXCJm6bRzmkNcdTAwMGX6QkpcIsPKXCK36Lt6l0L+17LMKkuSxFx1MDAxMYFcdTAwMDT7SYoyXHUwMDE3O88v31x1MDAwNzv8uPnu8O1R/bZcdTAwMTck8XBlvbEoLa5Mo0pDmIpCJyhf3ZbazN5cdTAwMTZeXfbZ3FxihkJpIYHURoCe0idcIjpkVnz8omk/lqtzllx1MDAwNzBGUVx1MDAwNOUoeiXiYslnXHUwMDE1XHUwMDE1i3gn81lcdTAwMTmlyKs5X+4oqFx1MDAxN4X6Mlx1MDAxZtusJ4QhdV+oXHUwMDA2suqcXGJnXHUwMDFjuKRcdTAwMThOKaNcdTAwMTFcdTAwMWPn5sHuNd/bpilapbiUXGbS3Vx0P1tSpFZcdTAwMGWqr8NcdTAwMDU8pTM+yb7PWzeVXG6mj96zU41cdTAwMWPdPM+Z3LxcdTAwMGXl4Kxbe97VNe1cdTAwMGVcdTAwMWLHr1TLllx1MDAxOJRWUG9cclx1MDAwN+FcdTAwMDb4aMJcdTAwMTcz4LsnXHSO/lx1MDAxOYd8otU4wYij+3KAUNbypao3ySDoxv1gQOrygGHJZE4rmu6lQOWsXHUwMDExa2akj/lsic9cdTAwMTZcdTAwMTi39qZ73Mime1xcvumeu/JuXGKyXHUwMDFklvzjXHUwMDFjT05W7/xcXGq9vn6IXHUwMDFhXHUwMDA1lFxmlLFGUrAvnNVTjfdcdTAwMTZcdTAwMTl5Q02noTOZ4srKtVx1MDAxYVx1MDAxNFx1MDAxM1x1MDAwMFJcdTAwMTA9I9vi3EMlXHUwMDE0XHUwMDA0Jn1cdTAwMWGEW1xumUBlO7Tu6IJ3XHUwMDBmXHUwMDBlYZEsyTJ0gTyzcovo5Yx0odplbOWb3cn3XHUwMDE58pFGTuroxbIscEaLJITl3JdR9Ldi5JxccvjVj0vmKFxmXGKQxtLO+VxmgZJGXHUwMDE3ZDJcZmlAXHUwMDEyvXFk41xmYkGmXHUwMDFmiaeUg9m/akVcdTAwMWOviqaI0kRcdTAwMDKCzzdTqDo7T1x1MDAxMVx1MDAxZq5k41a+vH7x7PhNYzxyYVeVlW42h6eA4MxcdTAwMTC0kdih77PHvEFD1L6CaFx1MDAxNFx1MDAxMJexUqml0lx03yEqXHUwMDBmtHlcdTAwMTWJXG5ZXHUwMDBlqYSQ6sdhKk+r5n3MXGZcdTAwMDJZWq3Xz4BcdTAwMDRxjesoji7a4SZRoJxYi3EghaWBXHI4S6gkrj97U3j11m8qXHUwMDA18o88XGIllTdcdTAwMGJolJhqXHUwMDBiXHUwMDA3ZIJYhUVhiFx1MDAxZS33wE6lvUBHjlx1MDAxMsljk9OwXFzK9Er31kN79y59MkBcdTAwMDJtXGZcdTAwMTbzJb50QFx1MDAxMem6e0hcdTAwMTZWy1x1MDAxOVx0ULUvylx1MDAxMyBcdTAwMTDa80CKQsFcIjm8TI7gXHUwMDFiXHUwMDAzkkz6rVx1MDAwNFSCgzGLPoNYnWvPS8WlMJZcdTAwMWOSMkZcdTAwMWLtMj/4cS+WZUZcdTAwMTM3oK11jisjZEGqXHUwMDFmiVx1MDAwNJXC2b9cbkBeXHUwMDExXHUwMDAzXHUwMDEyvPRcdTAwMDdBNFjQfJ7HqM9ur1+pcXwyPnlcdTAwMTH3Rlx1MDAxZneum6dcdTAwMDefNp1cdTAwMDBcdTAwMDGniI6W1i89xbCgpoopxP65tsTGtZBcdTAwMTThPmJEN1ueXHUwMDA2iIQ5yMRcdTAwMDQ/fuXQgeFcbpZtoV8oT7OBLFx1MDAwNZdnKTrzwEQhUaNROG3maJ2v3vpccmUp5MeQoX+iXHUwMDFlgU9+1iuv1tb3XHUwMDAzki+j+Ma3UJrHy78qzVx1MDAxY3Iy3II7bkE8UDDViknwlIp8K5mYzCrd6TxcdTAwMDeuXHUwMDFj2jX/TMLiajkjS6l2XHUwMDE4W7mUiCZCQOxEXHUwMDAyl+C0Klx1MDAxNnV8yzhcYqs1kueyRFxiXHUwMDE24yjVrTA5mYh6SGNcdEpGW83BXHUwMDE2XHUwMDE5XG4qZsFJiqr9Uz1cdTAwMWOgSJx+JIpSXG5l/5pcdTAwMDZxXHUwMDE5Q3lyN71/TugsIcTdb1x1MDAwNoE6atxZ8/RcdTAwMWW3r6NwtPtQU87k5U3kZDW9IVxu/Z3+9eXJl/9cdTAwMDPsXHUwMDE1ldMifQ== + + + + Screen 1(hidden)app.pop_screen()Screen 2(hidden)Screen 3(visible)Screen 2(visible) \ No newline at end of file diff --git a/docs/images/screens/push_screen.excalidraw.svg b/docs/images/screens/push_screen.excalidraw.svg new file mode 100644 index 000000000..1dd37ede5 --- /dev/null +++ b/docs/images/screens/push_screen.excalidraw.svg @@ -0,0 +1,16 @@ + + + eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nN1ba1PbSFx1MDAxNv2eX0ExX7JVsdJ9+/Zrqra2Ylx1MDAxOFx1MDAwMslcdTAwMTBCgFx1MDAxMNidooQljFx1MDAwNtsyllxmmKn8972tXHUwMDEwS37I8Vx1MDAwYo8zrkqM1e3WVfc55z66/deLjY3NtNdcdTAwMGU3f93YXGZcdTAwMWZqfiNcbjr+/eYrd/0u7CRR3KImyD4ncbdTy3pep2k7+fX166bfuVx003bDr4XeXZR0/UaSdoMo9mpx83WUhs3kP+7/XHUwMDBmfjP8dztuXHUwMDA2acfLb1JcdIMojTvf7lx1MDAxNTbCZthKXHUwMDEzXHUwMDFh/b/0eWPjr+z/gnVB5DfjVpB1z1x1MDAxYVxu5ilcdTAwMTi++iFuZaZyjVx1MDAxNpVVTPV7RMk23S1cclx1MDAwM2q+XCKLw7zFXdqUjXP1+OVLJag+9v6sXHUwMDFjXZnGyWee3/YqajSO0l4jMyqJ6VnytiTtxDfhaVx1MDAxNKTX7t5D18u+1Ym79etWmCRcdTAwMDPfidt+LUp7dE2y/kW/Vc+GyK880CfkymOWaWk4l1x1MDAwNk0+iPs6oPFcdTAwMTi3aEFcIijkoIfs2opcdTAwMWK0XGZk1y8se+WWXfq1mzqZ11xu8j5cXPr+5VXe5/7padFKXHUwMDBmXHJcbi37TddhVL9OnVx0RnlGc2aLrUmYLVx1MDAwMUernO08b3G3bO9cdTAwMDVcdTAwMTlcdTAwMTj+XHUwMDE4nsRrv9N+mqzNxH0omOss/W1cdTAwMThJRTRcdTAwMTWWOdxcdTAwMGLOzo6O8XHv06f36UlcdTAwMTjYi62H/lhcdTAwMDPQ8zud+H6z3/L16a/ctG478L9cdTAwMDGKK4XGaG00szkoXHUwMDFiUeuGXHUwMDFhW91GI79cdTAwMTbXbnJcZmZXv76aXHUwMDE5+lxiWFxufcZAKY5cdTAwMDKnhv69vD68Oagnh+/bp4adw/3l9vvu31x0fXqGXHUwMDFmYVx1MDAxZphcdTAwMDeWcaRHNcrowtNmXHUwMDAzaOWhNlZcdTAwMDI3aLXmi4H/yr9kTC5cdTAwMTH8SjKQ1ii+WvAn6iw6qj7Ut6o75qHaaV8oe/dpWeA3XFxIYMtcdTAwMDJ/XHUwMDFhPqTjkC9VOfKtQc6JhDA18kXrKFFh03w8qneqe2danFx1MDAxY8DfKvo/Rr5cdTAwMTHKXHUwMDAzY7XgQJhEXHUwMDFjVH2J1jO0IMpcdTAwMWFygFx1MDAwNVbMXHUwMDAze20lu4JR2HNmRvGu+Vxiysn3MCGQiX+OxFsuSGxmQXlcdTAwMGWmuJVcdTAwMWVFj2GmXHJcdTAwMDNXd/xm1OhcciBcIoM/XHUwMDE5eFTrhGFrg/+v9fI6XG6CsPWv4pIlId3fXHKoXHUwMDA2v/mmXHUwMDEx1Vx1MDAxZFk2XHUwMDFi4dUgi9KI4rB+c1x1MDAxYVx1MDAxN+a4Rpb4NFxcZy9cdTAwMTh+orhcdTAwMTPVo5bfOC63ai4yXHUwMDE347NhMlx1MDAxYs5cdTAwMDA4KfzUZD4/2bn321x1MDAwN59cdTAwMWVud+Vx8/KsXCLimzUnM/koXHUwMDBmXHUwMDExOICUUlx1MDAxN5mSkVx1MDAxOTxBcyBccvFdXG5jmFx1MDAxYzJsOXRcdTAwMDaRr0KfzoVrT3RWTFx1MDAxOKeuuSv96X2W5VxigPlcdTAwMDOtiM2w8ZLSpuiyXHUwMDExjmczyIFvrojNRasmsvnbNI+hM6d0o4zPRjqUWza9b5688DPQXHUwMDE5hqH5bHSWXHUwMDAyPIpcdNFyzaRcdTAwMTJi0DeTmHlEcYr9XHUwMDE4sYhS1GHDlkNnXG59XHUwMDE5V5qhkIyCXHUwMDA1OYbcXHUwMDFhPaWAKUPSXCLAgFx1MDAxZHHdIFx1MDAwNVOWhpid7JmZXHUwMDEzyP4sdExSv5NWo1ZcdTAwMTC16tSY68j3XHUwMDEyw95cdTAwMTQuXCIjcK3rrGSeZpRbXHUwMDFiRclcdTAwMTSlXHUwMDE5XHUwMDEyRaFT3W87m4XHXGZ3a23cP0q5nnp87VtcdTAwMTW2glx1MDAxZts0OftcdTAwMWGwiVbUgqBcdTAwMTCYKbDIc+/ZN0owj1x1MDAxYlx1MDAwNtpaTuG4VjhqVMNP0q242YxSmvuPcdRKh+c4m8w3juXXoT9cIlx1MDAxZvRQxbZhOWi7XHUwMDExXHUwMDA3VT3/ayMnTPah//dcdTAwMWavxvYuxXLWOIzifLRcdTAwMTfF95l1zFx1MDAxNNKYYVx1MDAxOVx1MDAxM1oriWp6XHUwMDE5m1x1MDAxY42upYxcdTAwMTnNPEqrtSTga2V5fucsKlx1MDAxMdpcdTAwMTM071ZcdTAwMWFKMiyaIbuWo2KGebSigjCMZFx1MDAwMVFwVMUoPLLIJGjnWlTRtTypmLBcdTAwMTRAUmC1WlxymztBmFLDJuesXHUwMDAzeoEkXHUwMDEyaFx1MDAwNFjNSMhoKkdFjFx1MDAxY5ZEqYW15LBoqcV8XCI2uXo6YFx1MDAxNFMogZGHXHUwMDA0UMxcdTAwMThhR42yXHUwMDFlXG5aPIGaVl+hXHUwMDFkNepnXHUwMDEysUoplrPWXHUwMDExXHUwMDE4zyhjXHUwMDEzyoTClFxuXHUwMDE5V8LdXHJcdTAwMGJV5lx1MDAxZimZ/+7wbe/N7+fb76PzXu/iovXYOGTrnV9RyCVcdOAk2CxjpsqDoaxGTnOvLTlcdTAwMThcdTAwMDRhpLV2yLB5SuRKLbFOyMg4KSQ8Q5F8goRcdTAwMTE7bSHye74ytixcdTAwMDR7I46WXCJobXD6XHKcRKrTi2pPJ/u3XHUwMDA3VWzvXt339P66w9OVsVx1MDAxOVxiZpCCXHUwMDE4yYaq2IZ7ICmpYJQyXGLF16yKTTmClEzJZyhiTywzXHUwMDEzXWfJXHUwMDEx5lx1MDAwNqexZeDU5CeNlTPUpraCVpxuXexcdTAwMWXYZOvxJjzjaT1qrDs4KZlQpED0olx1MDAwMFtcZm2xVJT2uKL4QmpcdTAwMTeA6zxDmlx1MDAwYpxcdTAwMDZqlodLlE5cdTAwMTc8UFx1MDAwMsdWvL9ownC3+/vjY+PyXFxdXFyJNFx1MDAxMr1zVlxihEbyj37L11eTxj1IXHUwMDBlPsH9TSdt31U+Xu3ffH54XHUwMDBiXHUwMDFmljBuoG9vw3fqg4wjflx1MDAxMu/s3+5XfjtZwri31Y9cdTAwMDdcdTAwMDGenjZcdTAwMWa+7GzXZEe+fVx1MDAxM/aWVbYjXHUwMDA3hXkw+1xcW03F+s2wXHUwMDAwUFohkFx1MDAwYjG1XHUwMDAwXFz4v5392bu/+pRsXHUwMDFmnO7e3aSXR/u7651cdTAwMDZSXHUwMDBm40lFnthlUcCGXHUwMDA1gCN4IFxcXG6u3Vx1MDAxNqy1i+02XHUwMDAxmMtwTPAkXHUwMDBie9196uNcYuHR7XpTmLfSUEm7XHUwMDFjueAn5isgU0LtijagKELlRtmBPv1yco617+Vkv9322t3k+lwiySq4L7+9ifFF5UJBf1x1MDAxNUXlUtsmUrG0JEP+tjSToXybUGhnOPAwWfSWQcbAT67DZbtjJIerXHUwMDA1XG4jXHUwMDE0YzhYlTHoaWUpiUSBzilcdTAwMGbHXHTL4VwiXHUwMDEx3kjBpbuBXHUwMDE13IypynBOZmpcdTAwMDCkqIFcdTAwMTkobNd/98xcdTAwMWPJLVx1MDAwM8M5toVcdTAwMTeoyzBlOJ+LqVPWZSaHeFx1MDAxYsVcdTAwMTKINUqAsIhAWalcdTAwMTWjZVxc6UnNhWRAqlx1MDAwNsZcdTAwMTj+1KGkKjP4XHUwMDE0P1FppFx1MDAxNE/uNYKkfLRcdTAwMTfF95nFhFx1MDAxOFImJmho0im+mD7tnFx1MDAxY+isqZZIUFx1MDAxZSGQnLZcdTAwMDJLWpI7zUxLrIcuXHUwMDE5VVJcdFxyXHUwMDA2XHUwMDE3SzvLtIR7XHUwMDEyLbhcdTAwMDNaSpDJqMeJXHSzXHUwMDFlKVx1MDAxZGogiLgseEycr7mWcq6jVHOriUv9XHUwMDEw+CwlkmdTk1xu92hcdGhcdTAwMGVorSzjXFxbXej1VFDlXHUwMDFlWmNcdTAwMDRcdTAwMTimKJND+b3G+E/Tk3JMZa0jaFqWoqAoP8jCtGLCXHUwMDFkx5paUibnemsqKaApXHUwMDAyIa2gZEBcdTAwMDDKwjGRrNIqwFx1MDAxM07qhVx1MDAxMFx1MDAwNpmyi1x1MDAxZGUp11x1MDAxNEWpIflMyv6VQDsmc+BMeZS8XHUwMDE5d4BOo9Bq5NyaJmfEyNA8WFiNotjn3fueIT5h5Fx1MDAxYZSmXHUwMDE4zdXGXHUwMDE56DFcdTAwMWLNXHUwMDFjPC0tJ+dsXHUwMDE4Usz5nUr/PEUpQVTWOIKlXHUwMDE5XHUwMDA1ZdJcdTAwMTHvXHRcdTAwMDddmVx1MDAxMpIrmGFcdTAwMTf6w1x1MDAxN4TTuFo5PD22j6c6OGZnn6/mkZRcdTAwMTXWXHUwMDFmiVx1MDAxNlx1MDAxZVx0iVGIjJFzXHUwMDFiXGZSKFv2lHHVXHRcblFIXlx1MDAxNjzr+lxmmzfkZ1x1MDAxMCn1WHFFwrqt01x1MDAxOXRkXoCq8vJcdTAwMThcdTAwMDX00lU0Zlx1MDAwMOj1baXVOdw6fnt6XHUwMDEzX1xcJM1qXHUwMDE3t9+vO0Cl8IBRpsatorVcdTAwMWX+XHKCZZ5wZ4OsVExcdTAwMTFIXHUwMDE2O+619N8gcGDk6ayew80tsn1cdTAwMDNE5VVs31x1MDAxNFx1MDAxZPvIXHUwMDBmXHUwMDA1XHUwMDFjSZyCTlxyz4/vztrs896X7puz+pdeLejetntzVYxWXG5PIE9O+ZtQijyUXHUwMDFhLFx1MDAxOHGGnnRuXHUwMDBiOOXgkmZkIXguff9cdTAwMDbc5rexK/7twHNt32BcdTAwMTJvP+zvn/D0+DCs/r5b0/rkYGm/vFx1MDAwMYlsliNHXHUwMDEzOVW2XHUwMDFkXHUwMDAyXFyUXHUwMDEziqEhfzdDjlNLd3eSy7vIPFThMd5pJLdHXHUwMDFkue45XHUwMDBlTbXn9kEoKLFKMTlcdTAwMTiRVID4JrVAkFx1MDAxYSjPVIvVTcpcdTAwMThcdTAwMDViXGaVRo/rcyZJaIWGXHUwMDE1M+hcdTAwMTmRTkmS4lx1MDAxYWbZ+MtcdTAwMDG1wHl9sZbn9cXC5/UlL3WRYMGV/vT0hJ687mtKaKuYXHUwMDA3XHUwMDFhpCBYyWK54FuG4XFrKURiXHUwMDE2iO36eVx1MDAxY6TQnmGU5CiUQtCd8nCsT25lPC6YXHUwMDEx3Fx1MDAxYVxy5Fx1MDAxNEe5XHUwMDBlUlwihf5sjt/mLFKymJuNU5YsJjuJjWLJwu0gKIpnNVx1MDAxM8ZwZU2hV79iXHUwMDAxUlx1MDAxOeaMp17I5jzqOjlcdTAwMTQsXHUwMDE4VSFsSUBDXHUwMDA2SWCUpqrRMlxuuPP6klx1MDAxY4aQRrjfgI3Y9DNcdTAwMTVLKqVgdq9cdTAwMTFcdTAwMTjnw70ovjs/kN3AbVwiXHUwMDFmpYS5/mpcdTAwMTCso+BJxvOn3LyLwvvquJwpezl1zObTiVDonvWvry++/lx1MDAxZipcdTAwMDVGaSJ9 + + + + Screen 1(hidden)Screen 2 (visible)app.push_screen(screen3)Screen 3 (visible) \ No newline at end of file diff --git a/docs/images/screens/switch_screen.excalidraw.svg b/docs/images/screens/switch_screen.excalidraw.svg new file mode 100644 index 000000000..8af9e556e --- /dev/null +++ b/docs/images/screens/switch_screen.excalidraw.svg @@ -0,0 +1,16 @@ + + + eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nOVba1NcdTAwMWI7XHUwMDEy/Z5fQbFfslVBkVpqPW7V1lx1MDAxNlx1MDAwMZJcdTAwMDBcdFx1MDAxMFxiz91b1GCP8Vx1MDAwNDM2njFcdTAwMDZS+e/bXHUwMDFhiGf8XHUwMDE487AhTnaqXHUwMDEy45Es90inT/dpyd9fzc3Np9etcP6vufnwqlx1MDAxMjSiajvozr/x9y/Ddlx1MDAxMjVjaoLsfdLstCtZz3qatpK/3r49XHUwMDBm2mdh2mpcdTAwMDSVkF1GSSdoJGmnXHUwMDFhNVmlef42SsPz5N/+/43gPPxXq3leTdss/5KFsFx1MDAxYaXN9u13hY3wPIzThEb/XHUwMDBmvZ+b+579X7CuXHUwMDFhXHUwMDA15824mnXPXHUwMDFhXG7mXHUwMDE5XHUwMDE4vLvRjDNTpVx1MDAxMUpJwLxDlCzTl6VhlVprZHCYt/hb89dcdTAwMDeNw+TTxeHlUmdhVVxcVNxNlFbyb61FjcZOet3IbEqa9Ch5W5K2m2fhflRN69QqXHUwMDA27pd9qt3snNbjMEn6PtNsXHUwMDA1lSi9pnvIezeD+DRcdTAwMWJcIr9zRe9cdTAwMTYkXG5mjLZCIVdcdTAwMDK1xV67XHUwMDFmQGnJjDVcdTAwMDaFVEYqKXDAsqVmg9aBLPtcdTAwMDfPrty2k6BydkpcdTAwMDbG1byPwCA4qeV9unfPq1x1MDAxYzJllTT58PUwOq2nfoWsZtZcYu6KrUmYLVx1MDAwMoDi0klle1xy/lx1MDAxYlur1VxmXGZ/XHUwMDBmzmI9aLfuZms+8W9cbtZ6Q1dcdTAwMDaRVERTYZ3DdCNcbjvru9KuXHUwMDFmLTh92TiG+FNvrD7oXHUwMDA17XazO99r+XH3V25ap1Vccm5cdTAwMTEltFbWOqek1PliNqL4jFx1MDAxYeNOo5Hfa1bOclx1MDAxMGZ3f7x5NPSVVGXQR6dpZoXiXHUwMDBmhv6XcFx1MDAxYpbV1fHG592P+92bo5VgbXX7V0Jf8Puxr1xmQ2NcdTAwMTRozoVcdTAwMTRG90FfOmCgXGZcdTAwMTDyrNPG8cmgX1x1MDAwYk44xylCn4NcdTAwMTSO1umFsb+9g5uHp9vx8UJncW9lbediiZ9cdTAwMDezif00vEpHXHUwMDAxXHUwMDFmVSnnI82pMkqpXHUwMDA3XHUwMDAzP+hsv1s+/tZcXN6K9/avXHUwMDBlPi5tiL3dXHUwMDE5XHUwMDA3vlLArECrXHUwMDE1zbbRXFz2XHUwMDAx31xiy5ym1Vx1MDAxMEpcdTAwMGJcblx0MFx1MDAxMe6NQ16DYdxcdTAwMGJuh1x1MDAwMW/EIMxccqK0kjt4WZTPXHUwMDE2w+doasbpTnRcdTAwMTNm3NB3931wXHUwMDFlNa77IJHBn1xm3Km0wzCeXHUwMDEz/41f16NqNYz/WVxcsSSk7/dcdTAwMDPq/k8uNqJT7yzzjbDW70VpRGlYrzltXHUwMDE25rhCllx1MDAwNDRcXHu1OvhEzXZ0XHUwMDFhxUHja7lVT3Jm5UyZM1x1MDAwYkPA4cLmM3WfM++ag1x1MDAwYv15ZbfTalx1MDAxZK2o5U+VXHUwMDBmW5t7M+7M0jkmkFx1MDAxMlWwQnNTyGezKFx1MDAwNsBcdTAwMTCEsshcdHbK2Vx1MDAwMcOm48wg89jZc+bCvTtndlx1MDAwNqRRWEgr/lx1MDAwZkPWVJxcdTAwMTnmXpNoik5cdTAwMWHhaGdcdTAwMDbs++RcdTAwMGI5c9Gqsc58O80jvNlpPXi3581cYsgpWYOHu/P4hX+EO1x1MDAwZobA53Rn0MyR7lx1MDAxNFx1MDAxNH3RkPzMU5HMn41gmoMjyWYlglVmwLSpRWeGTkpnrEVcIpdcdTAwMTHujYpJUoacUmMkW6RcdTAwMWLOUK213Gl8QuzOzFx1MDAxY+Pu9zkkPMUhkzRop++iuFx1MDAxYcWn1JgzXHQ5ZaXjv5czwymkWFpcdTAwMDFNkYUmJmeR+dOg5a2QjJOadsJY/09cdTAwMGJV6HJXqlhcdTAwMWRcdTAwMTNs7jr/6FlcdTAwMTXG1XtsksTtIFErrsEpwfWQUZIzYTlcdTAwMTjnhJBotCo1arSOXHUwMDFiMqpcdTAwMTEk6VLz/DxKae63mlGcXHUwMDBlznE2mYvez+thMEQg9FDFtkFCaPlcdTAwMTH7eT3/ay53mexN7++/34zsXYplf1xyoThcdTAwMWbtVfH10UymXHUwMDFkXHUwMDBl3u0xmVx1MDAxMIQgXSxb3Mdk4/PRWWUyL6+VIf2MXHUwMDBlNGB/acmgZlx1MDAxY9BcdTAwMDCl+DQhz6MyrGJIvsq1sFx1MDAwZUHjXGKRrSUjvlBoiK5oXHUwMDE4M5y2gCGa5cblXHK/P4/RXHUwMDEzg1TEXHUwMDFjxnGFeW2jR1x1MDAxOYaBXCL1R21AKbYpdugjjNH691x0LCa4XHUwMDAwy5VcdTAwMDVcdTAwMDeCwrxcdTAwMTlmMeFcdTAwMThpc1oo4jIhKfaVstjoQuxvzWKlSPbXwjCIXHUwMDFmyWNj6oSyIKBcdTAwMDaYXGa4Rq1BP6JecnB00trcOIg/dLpcdTAwMTfRQrVcdTAwMTUt7p/VZ1tiga9cdTAwMTNailx1MDAxZVx1MDAxNoyQpLL6UzKlLeOUrzlHUZhbctuJqOy2Rq719EqFTkvKXHKszc2emuyaJn89XHUwMDE1n1qV4pNcdTAwMTIwS4KhKE/vw+fidW03WPu8XHUwMDE4n2yskm7oxiuwcjFVfFaDpFx1MDAxZU5cdTAwMTegXGLMXHUwMDE3sI2jYFx1MDAwYsBcdTAwMDdrXHUwMDAwXHUwMDBlXHUwMDE46SZBIViDlcXM5OmVbJxiLVsoonOff/2hXGJcdTAwMTU8XHUwMDE3XG5DXHUwMDEwVUI7oo1HyNqDj8dfN/e29o9rrV25X22ok+ZFOuNcdTAwMTSqXHSh3PmJ0FZgPz6Fk0yTTtRcdTAwMDDSoXIwWZHKQsWJcJo7LY7SVI4vvctow/Bj59PNTePkSFx1MDAxZtdkXHUwMDFhyeuj/NH7sDdYtnozbtx3162jk9O9s3W3ebPabS9H0fpRbVxu41x1MDAxZVxc2lgnu+vdbuv06KbWrkaVxS9TXHUwMDE4N1x1MDAxMYu7a7p73a0uimBccqOFq6MkfNi4P1OfcVx1MDAxY2CLuz3PtOMknSv1fytcdGB+XHUwMDBm8sH+v6c/R5fuILzYSJaXv8mNr8tcdTAwMWaa+Fx1MDAxNP9/OTFIXHUwMDExmJHKI1x1MDAwZjdotFXYv9cqODFcdTAwMDCJcJLiXHUwMDE2XHJKnKyqRSH/JFx1MDAxY5FAoTbDrq9GhCNaXHUwMDEyXHUwMDEypfZcdTAwMTnq1OOgiMaBe1x1MDAwNFx1MDAxNPNcdTAwMTXPK8nSZJVcdTAwMWXQPlG12vX16dWV82j0s65cdTAwMWO0WizpkkqqXHUwMDFmJ1kx9/Xti1x1MDAxY11fLiRUL1FfXHUwMDFlY91YfyyvM2N5zsgpXHUwMDE3cVx1MDAxMlx1MDAxZrFtNJ75puGQz5AzaoqGpFhILlrl5UH/JrBUyFx1MDAxYyl/LbRUjlx1MDAxN4A0TYdcdTAwMTRMKVx1MDAwM9qbwL3TjdhcdTAwMTK2wCygr1mSm4As5lx1MDAwNnfeKj2DW8mfXHUwMDEwnicpz6AssthUyjN9NYzxWd5cXLF04sjRXHSwSKvosyhX6HRbOaG1XHUwMDE0tMLcSFoqv4ty16GkPtP/XHUwMDE0v1GRpFx1MDAxNE/+XHUwMDFhQlI+2qvi66PJRHBRvlx1MDAwNy0tXHUwMDAy6TJ8uFx1MDAwMlx1MDAxZJ/vzCabUFRnVqLkQlx1MDAxOF82XHUwMDFjOEqFnFH+7LfiXHUwMDE1IdVcZuqO6ZBcdIlcXI1cXDiiK1/u1zmh5WSiSVxia0NiS1x1MDAwMknOQpefZFwifGFeSnzhWq8hXHSfz+gvJJNcdTAwMDXBOFx1MDAwN6X9Pr0vzXMwhV53dVjBJKfV5Fx1MDAxNq2gXHUwMDBi8Vx1MDAwZqWThVJI+WtcYkzT4lx1MDAxM/q6UjpcdTAwMDGabqD85OF0Ml7uzSadoOBcZik7MZrASIl4Plx1MDAxZlnB1UqGPkcznJxcdTAwMDcmPNNSTifCgKRcXNBcdTAwMThQhq5hOnGaXHUwMDE5yzVooD66uCi93MQ4KUjuvPBcdTAwMTY48WwhUfqVdELET5RqlSBcdTAwMTcyXHUwMDBlXHUwMDE1SDu8sVx1MDAwM5SeSG39XHUwMDA2trBEJ+pPzU9cdTAwMTZKQeWvITg9klDGnfU25Vx1MDAwNUjnOGWzSj9cXO+8e9+RJ1u1/dXDPX2o7OaOW4vWZ7tcdTAwMDBpLTGKXHUwMDEz4M9kcFxubv1cdFxuLVx1MDAwNVOI3FJWXHUwMDBmTqrJNqOnv4OjXHUwMDFjpZDS8Vx1MDAxNy5IvFR93I7ZwaEpsVx1MDAwNkE8/Fc4a0tcdTAwMWPW97pf4WN6utGtXWx+a698mHV0KkbLTlx1MDAxNEi5XHUwMDA2gFx1MDAxNP3o5JxZolHjiCAp6eJqXCJ4Trs+TvxOXGaCz1Et61x1MDAxMeBcdTAwMGKWx5dcdTAwMGU+qVxij2pfzO714spm6sT7z2dTPS06NZcqP1x1MDAxM81L/YlcIq3V1j7iV20gXHUwMDBmK9u4I1dWW1xi+1x1MDAxZuqmvlWd9Vx1MDAwNNJcdTAwMWHHSMWhXHUwMDA3LGVfgz/tIYeSVlxuJVx1MDAwNak9RD3ZhmiZQ4FcdTAwMWPhScPHi4TTmMmMXHUwMDE3/o3DbFx1MDAwMT3H01x1MDAwNMei5UxcdTAwMWWLllx1MDAxM1x1MDAxZosm2Vfu0UYryUWRf+/z6PErP5NcdTAwMWJIlKQy58/hWe6Esqb/LKFUlmlJoKNETpBUn/C3emVcdTAwMGUtNeNcdTAwMTJ96ddcdTAwMTOLtaMqTI5p64CYXHUwMDA30Vxuy4fL1UBcboe74n7f73+aUCik9MRcdTAwMWY/o1lcdTAwMTHaXHUwMDE16q4/a0bAgPJcdTAwMWLuzaFeilx1MDAxN09O92nL0eHmrvPDXHUwMDBmXHUwMDE0kvJcdTAwMDRcdTAwMDRlpY91nJOgXHUwMDFhoTv9sWhcdTAwMDQ0XHUwMDEyLYVcdTAwMDE0ZTaNTimHbPqdpGgplv01hOJ8tFfFV1x1MDAxZlxisvH9XHUwMDBl3U5KkOstXHUwMDA2oTqq3vF4/pDzl1HYfTfqUFF2+SnNptNzUOhcdTAwMWb1+49XP/5cdTAwMDf9rKKHIn0= + + + + Screen 1(hidden)Screen 2 (visible)app.switch_screen(screen3)Screen 3 (visible) \ No newline at end of file diff --git a/src/textual/app.py b/src/textual/app.py index 303027fa0..241e385fe 100644 --- a/src/textual/app.py +++ b/src/textual/app.py @@ -26,20 +26,11 @@ import nanoid import rich import rich.repr from rich.console import Console, RenderableType -from rich.measure import Measurement from rich.protocol import is_renderable from rich.segment import Segment, Segments from rich.traceback import Traceback -from . import ( - Logger, - LogGroup, - LogVerbosity, - actions, - events, - log, - messages, -) +from . import Logger, LogGroup, LogVerbosity, actions, events, log, messages from ._animator import Animator from ._callback import invoke from ._context import active_app @@ -113,7 +104,7 @@ class ScreenError(Exception): class ScreenStackError(ScreenError): - pass + """Raised when attempting to pop the last screen from the stack.""" ReturnType = TypeVar("ReturnType") @@ -223,6 +214,7 @@ class App(Generic[ReturnType], DOMNode): self._installed_screens: WeakValueDictionary[ str, Screen ] = WeakValueDictionary() + self._installed_screens.update(**self.SCREENS) self.devtools = DevtoolsClient() self._return_value: ReturnType | None = None @@ -801,7 +793,7 @@ class App(Generic[ReturnType], DOMNode): try: next_screen = self._installed_screens[screen] except KeyError: - raise KeyError("No screen called {screen!r} installed") from None + raise KeyError(f"No screen called {screen!r} installed") from None else: next_screen = screen if not next_screen.is_running: @@ -829,7 +821,7 @@ class App(Generic[ReturnType], DOMNode): """Push a new screen on the screen stack. Args: - screen (Screen | str): A Screen instance or an id. + screen (Screen | str): A Screen instance or the name of an installed screen. """ next_screen = self.get_screen(screen) diff --git a/src/textual/screen.py b/src/textual/screen.py index 284bdd283..e3c1787cb 100644 --- a/src/textual/screen.py +++ b/src/textual/screen.py @@ -40,8 +40,13 @@ class Screen(Widget): dark: Reactive[bool] = Reactive(False) - def __init__(self, name: str | None = None, id: str | None = None) -> None: - super().__init__(name=name, id=id) + def __init__( + self, + name: str | None = None, + id: str | None = None, + classes: str | None = None, + ) -> None: + super().__init__(name=name, id=id, classes=classes) self._compositor = Compositor() self._dirty_widgets: set[Widget] = set() self._update_timer: Timer | None = None From f0bf4147310e392021a3308620151f8c5aef3434 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 4 Oct 2022 18:09:36 +0100 Subject: [PATCH 3/5] updated svgs --- docs/images/screens/pop_screen.excalidraw.svg | 4 ++-- docs/images/screens/push_screen.excalidraw.svg | 6 +++--- docs/images/screens/switch_screen.excalidraw.svg | 6 +++--- docs/reference/app.md | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/images/screens/pop_screen.excalidraw.svg b/docs/images/screens/pop_screen.excalidraw.svg index e6ae74b60..b87957f6a 100644 --- a/docs/images/screens/pop_screen.excalidraw.svg +++ b/docs/images/screens/pop_screen.excalidraw.svg @@ -1,6 +1,6 @@ - eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nN1cXFlv20hcdTAwMTJ+z68wvC+zQNTTVX1cdTAwMGawWNhOnDiOj4kzObw7XGJoiZa41lx1MDAxNZGyLFx1MDAwZvLft1pxTFI0XHUwMDE5XdYo0YNlsalmsfurqq9cdTAwMGXqrydbW9vJuFx1MDAxZm7/trVcdTAwMWTe1IN21Fx1MDAxOFx1MDAwNKPtp/74dTiIo16XhnDyOe5cclx1MDAwN/XJma0k6ce//fprJ1x1MDAxOFxchUm/XHUwMDFk1EN2XHUwMDFkxcOgXHUwMDFkJ8NG1GP1XufXKFx0O/G//d/joFx1MDAxM/6r3+s0klx1MDAwMUsvUlx1MDAwYlx1MDAxYlHSXHUwMDFifL1W2Fx1MDAwZTthN4lp9v/Q562tvyZ/M9I1oqDT6zYmp09cdTAwMDYy4mkxffS4152IXG5aaKm0lfcnRPEzulhcdTAwMTI2aPSSXHUwMDA0XHUwMDBl01x1MDAxMX9oW1x1MDAwZcaJNvCcd64+7uuzY3t0PjxLr3pcdTAwMTm122fJuD2RKe7RraRjcTLoXYXvo0bS8peeOl72rUFv2Gx1wzjOfafXXHUwMDBm6lEypmOK31x1MDAxZlxmus3JXHUwMDE06ZFcdTAwMWL6VEPOmTHaglRcXFx1MDAwMt2tulx1MDAxZv86gWDGXHUwMDFho0BII6RcdTAwMDA1Jdler037QJL9g09eqWxcdTAwMTdB/apJXHUwMDAydlx1MDAxYuk5oILg4jI9Z3R3v9IpJq1cdTAwMTQmnb5cdTAwMTVGzVbid8hqZlxycJdcdTAwMWSNw8kmOFDSSS3TLfJX7Fx1MDAxZjQmYPhzelx1MDAxNVvBoH+3Wtux/5CR1lx1MDAwYvp8XHUwMDFhSVk0ZfZZvIKL/Vx1MDAxMGCvcbj7+fnZkfy9t9O9nytcdTAwMDe9YDDojbbvR77c/ZeKNuw3gq+IXHUwMDAyraW1xmmJJlx1MDAwNWU76l7RYHfYbqfHevWrXHUwMDE0hJOjX57OXHJ9ukxcdTAwMTn00XFHaFB6ZuiHw7G9OuxcdTAwMWNyPrx8OWpcdTAwMWVEI/3C/Z3QXHUwMDA3/l3sg9NMXHUwMDE5I1FzXHUwMDBlXHUwMDAyjLI57EuBXGalQYKeddo4vlx1MDAxY/Yvg1x1MDAwYs7VXG6xj0IqcJavXHUwMDE3+53OJVx1MDAxZu3w5Nlx1Fx1MDAwZsM/Xp7svjqKV4R9XHUwMDBiXFxwblaF/SS8SVx1MDAxZVx1MDAwMr5FXVx1MDAwNnxcdTAwMTDWceTS4czIf3fZNtc3/euX487Oh97wY//0hdjfbOQjKqa0QVx1MDAwNHRGelx1MDAwYppcdTAwMDO+5cDIXHUwMDA0SXJcYtYhZKzAXCK4N07xSyziXHUwMDFluC1cdTAwMDLewDTMtUDpfdNPZOKdXHUwMDA1Jew8ME/R1OsmZ9HtxEbb3NH9oFx1MDAxM7XHOUhM8E9cdTAwMDKe1Vx1MDAwN2HY3YL/dn9pRY1G2P1ndsfikK7vJ9T5b+60o6bXlu12eJlXoyRcIlx1MDAxZXY/nPQya1xcJ0lcdTAwMDKabnDQmL6j3iBqRt2g/bZcXKpKbf66zFx1MDAwZqgzUVx1MDAxM5w+nNFnIHojxOz6XFy983PoM05j8/H02ThmJIA03NK7zauzcZKB5lx1MDAwZVxySnSk8Y+izlx1MDAwZVx1MDAxOVdEmKUxliNq94ByO6aRXHUwMDFjnZSogGudXHUwMDAy+JtLk8Lfwlx1MDAwMqo+XHUwMDExskLVXHUwMDFmRVx1MDAxOeMkXHUwMDE4JLtRt1x1MDAxMXWbNJhakW8hycFcZlx1MDAwZWKivvWhl5IzhVxcS8FpI5UgL1x1MDAwNJmTmkHfLyFcdTAwMDMgTqLJZKNVTti7XHUwMDEzvtxcdTAwMGJcdTAwMTV2XHUwMDFi31x1MDAxN6k6UMmIVONcZml5nPV7pjhqilx1MDAxM1xuQkmmXHUwMDA1SFx1MDAwN5yE4k5Zp1xuUrWDONnrdTpRQmt/2ou6yfRcdTAwMWFPXHUwMDE2c8freCtcZlxuxoPuKjs2bVxm+n7GvE1P/9tKtWXy4f7/P58+eHatXHUwMDE0ypPRXHUwMDAyitP5nmTfXHUwMDE3YOTCllx1MDAxYTK0pFx1MDAxYURcXFLF/y4jv1x1MDAxOGDjILhcclx1MDAwZp/tXHUwMDFjPX/R1TaGYLN5iXCOOTJVINB4y61TS/A1XHUwMDE4tYxcdTAwMGJcdTAwMDDniPuSmVx1MDAxMGJKskWCUa1XR8mJKiFFXHUwMDExnD9cdTAwMDJZqbBggFxucVx1MDAxZFx1MDAxMSNcdTAwMDXbpY5cdTAwMTbJcFx1MDAwYuBqdkd7vNc66r84ebffO71cdTAwMWS44+RkeNlcdTAwMTebXHJQyVx1MDAwNVx1MDAxMz5cdTAwMTOiLOmqVPlkiVx1MDAxNJpxx40lhEpccrhcdTAwMWM8V1x1MDAxZC+SPEJxMml29eCsYtKvL5Q9+Fx1MDAxON+0+sPhh53o/E1yNZCrXG5cdTAwMThcdG+Q4XaPXHUwMDA3fStUXHUwMDE59J1cdTAwMDCliHTNbprfj4/fNDvu8ORQff40fvZpt3UsT1aK/EZcdTAwMTC3wlx1MDAxNUPfMaJcdTAwMWWCXHUwMDEzjVx1MDAwNGKRLlx1MDAwN32hkFx1MDAxMSmRXHUwMDA2OXAwXFwvRzIt1lx1MDAxZIRqlegnXHUwMDEzaUk0vuZ0iVxyw5fD17e37Ytz/elSJJFcdTAwMTif89nQ/7Rq3lhcdTAwMWSOb+Pd09Hg6Pzg1bH49MfYXqxg3sv++9Hb2ujUvr/txOdX9fAjto9WMC9cdTAwMWaa/3XO3mLypr57XHUwMDEz1T/uv1x1MDAxMfVoVfE0J+S5lTnAsrSRrkpcdTAwMWKRWjiKvOzMNuBcIlx1MDAxZeOeONlcdTAwMDfV3G1ccuqN98fq9nyzw0xpXHUwMDFks0pLzTmZXjWVLlx1MDAwNUGjTnKyhESdyVx1MDAxN05cdTAwMGI2n1x0IHW9XGJcdTAwMWbgZlwiU9O413xZ1HchLdFcdTAwMTXDXHUwMDFmwdtVINGA1HpcdTAwMWUkplx1MDAxYp5mdlx1MDAwNEV5k8DDc2CbiaRzeZ70Kt/yPEG/z/q9/qd4kln55eEsj9C57z12lqcgU6XqleZ4dHlkROxXXHUwMDEz71Zydt2rNp6r0L1H8L8gmERUXHUwMDE0ZiOZOzFVq7CGIVx1MDAxN9pcYqPJXHUwMDE3w3Ip2zLd40RvXHUwMDAxkVgwXHUwMDAx06E1Qlx1MDAxNnVcdTAwMTG48YKaXHTfXHUwMDA0MlxirqibhGpSmEySfVx1MDAxZIlcdTAwMWXgtDiPmeippnVbuayKo1hcdTAwMWVcdTAwMWPZUImaVjOTYrhLqiimKFx1MDAwNlZcdTAwMWPpXHUwMDA0tN/N9ORv40fKtlSAajJexFM65ZPs+9xGxWSKXG7TRoXgXHUwMDAy5EHmyFx1MDAxYlczp800Ko5LZi1ZXGZDsaySZtqoXGJmXHUwMDA0V4pWnlxmXHUwMDBiTEdcdTAwMWKrMipoOWghfSmfLpIpRmVsimWSglx1MDAwZetcdTAwMWNcdTAwMTiCXG5cdTAwMTbKRKCNlc5zk/XaXHUwMDE0oJhcIl21v9GmXHUwMDAwo1x1MDAxZKDlUU5TVEw8pJg8XHUwMDA2zohNWKnJhVxiw7k0P6lNKYeUf9WKaFqVRcnlv6YzuFxcWyl9OXNmk1KdOtlMk6KVYUZyzSVKkCbTyeK/r1x1MDAwNTDy+8RjvGPDJVsqykxcbumCM0aS0ZK06qRcdTAwMTPp/d+bXHUwMDE0p1x1MDAxOErtlOWCXHUwMDFiVJldubMo6Oi7XG71XHUwMDAyXHUwMDAxxFIkhSuXyrK4QZlWvp9ArWvl+zpcdTAwMTkubOmcal3VK6XLqVx1MDAwMif/XHRcdTAwMWH17FRBP1P4Kno5um6++3Clm7fnJ7/Hf2uf4PfVmsgzMFxuPpBMJq2vmWpcdTAwMTlRQCRNKW5cdTAwMWRRJpctyG9GZUZ5M6/Wm1xmWF8nn1x1MDAxNuVeXHUwMDA3hHC+TWz26Lh2czi0n1x1MDAxYuF16+zjtVxix69cdTAwMWRcdTAwMWXtbTw6NfPxgyDsXHUwMDE5XHUwMDE0Nl84JLfLyFx1MDAxN1x1MDAxMXKFVsKgW1xunSsvzDghkKibWSBcdTAwMWNeJjVdi0d7e4jtSDbFh8bwj9N4dLWqlKyVllvga8C+zTjoQlx1MDAwMzcgXHQjZydcXHF3f3DQuXr+WowxfC9cdTAwMWHNVv+osdnQr4G1XGasXCJm6bRzmkNcdTAwMGX6QkpcIsPKXCK36Lt6l0L+17LMKkuSxFx1MDAxMYFcdTAwMDT7SYoyXHUwMDE3O88v31x1MDAwNzv8uPnu8O1R/bZcdTAwMTck8XBlvbEoLa5Mo0pDmIpCJyhf3ZbazN5cdTAwMTZeXfbZ3FxihkJpIYHURoCe0idcIjpkVnz8omk/lqtzllx1MDAwNzBGUVx1MDAwNOUoeiXiYslnXHUwMDE1XHUwMDE1i3gn81lcdTAwMTmlyKs5X+4oqFx1MDAxN4X6Mlx1MDAxZtusJ4QhdV+oXHUwMDA2suqcXGJnXHUwMDFjuKRcdTAwMThOKaNcdTAwMTFcdTAwMWPn5sHuNd/bpilapbiUXGbS3Vx0P1tSpFZcdTAwMGWqr8NcdTAwMDU8pTM+yb7PWzeVXG6mj96zU41cdTAwMWPdPM+Z3LxcdTAwMGXl4Kxbe97VNe1cdTAwMGVcdTAwMWLHr1TLllx1MDAxOJRWUG9cclx1MDAwN+FcdTAwMDb4aMJcdTAwMTcz4LsnXHSO/lx1MDAxOYd8otU4wYij+3KAUNbypao3ySDoxv1gQOrygGHJZE4rmu6lQOWsXHUwMDExa2akj/lsic9cdTAwMTZcdTAwMTi39qZ73Mime1xcvumeu/JuXGKyXHUwMDFklvzjXHUwMDFjT05W7/xcXGq9vn6IXHUwMDFhXHUwMDA1lFxmlLFGUrAvnNVTjfdcdTAwMTZcdTAwMTl5Q02noTOZ4srKtVx1MDAxYVx1MDAxNFx1MDAxM1x1MDAwMFJcdTAwMTA9I9vi3EMlXHUwMDE0XHUwMDA0Jn1cdTAwMWGEW1xumUBlO7Tu6IJ3XHUwMDBmXHUwMDBlYZEsyTJ0gTyzcovo5Yx0odplbOWb3cn3XHUwMDE58pFGTuroxbIscEaLJITl3JdR9Ldi5JxccvjVj0vmKFxmXGKQxtLO+VxmgZJGXHUwMDE3ZDJcZmlAXHUwMDEyvXFk41xmYkGmXHUwMDFmiaeUg9m/akVcdTAwMWOviqaI0kRcdTAwMDKCzzdTqDo7T1x1MDAxMVx1MDAxZq5k41a+vH7x7PhNYzxyYVeVlW42h6eA4MxcdTAwMTC0kdih77PHvEFD1L6CaFx1MDAxNFx1MDAxMJexUqml0lx03yEqXHUwMDBmtHlcdTAwMTWJXG5ZXHUwMDBlqYSQ6sdhKk+r5n3MXGZcdTAwMDJZWq3Xz4BcdTAwMDRxjesoji7a4SZRoJxYi3EghaWBXHI4S6gkrj97U3j11m8qXHUwMDA18o88XGIllTdcdTAwMGJolJhqXHUwMDBiXHUwMDA3ZIJYhUVhiFx1MDAxZS33wE6lvUBHjlx1MDAxMsljk9OwXFzK9Er31kN79y59MkBcdTAwMDJtXGZcdTAwMTbzJb50QFx1MDAxMem6e0hcdTAwMTZWy1x1MDAxOVx0ULUvylx1MDAxMyBcdTAwMTDa80CKQsFcIjm8TI7gXHUwMDFiXHUwMDAzkkz6rVx1MDAwNFSCgzGLPoNYnWvPS8WlMJZcdTAwMWOSMkZcdTAwMWLtMj/4cS+WZUZcdTAwMTM3oK11jisjZEGqXHUwMDFmiVx1MDAwNJXC2b9cbkBeXHUwMDExXHUwMDAzXHUwMDEyvPRcdTAwMDdBNFjQfJ7HqM9ur1+pcXwyPnlcdTAwMTH3Rlx1MDAxZneum6dcdTAwMDefNp1cdTAwMDBcdTAwMDGniI6W1i89xbCgpoopxP65tsTGtZBcdTAwMTThPmJEN1ueXHUwMDA2iIQ5yMRcdTAwMDQ/fuXQgeFcbpZtoV8oT7OBLFx1MDAwNZdnKTrzwEQhUaNROG3maJ2v3vpccmUp5MeQoX+iXHUwMDFlgU9+1iuv1tb3XHUwMDAzki+j+Ma3UJrHy78qzVx1MDAxY3Iy3II7bkE8UDDViknwlIp8K5mYzCrd6TxcdTAwMDeuXHUwMDFj2jX/TMLiajkjS6l2XHUwMDE4W7mUiCZCQOxEXHUwMDAyl+C0Klx1MDAxNnV8yzhcYqs1kueyRFxiXHUwMDE24yjVrTA5mYh6SGNcdEpGW83BXHUwMDE2XHUwMDE5XG4qZsFJiqr9Uz1cdTAwMWOgSJx+JIpSXG5l/5pcdTAwMDZxXHUwMDE5Q3lyN71/TugsIcTdb1x1MDAwNoE6atxZ8/RcdTAwMWW3r6NwtPtQU87k5U3kZDW9IVxu/Z3+9eXJl/9cdTAwMDPsXHUwMDE1ldMifQ== + eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nN1cXOtT20hcdTAwMTL/nr+C4r7sVcWz0z3vrbq6XHUwMDAyXHUwMDEyXHUwMDEyQnhsyObB3VZK2MLW4ddaMsZs5X+/XHUwMDFlhSDJQorBxnHiXHUwMDBmXHUwMDE4a+RRa+bX3b9+yH8/2djYTKbDcPO3jc3wqlx1MDAxOXSj1iiYbD71xy/DUVx1MDAxY1xy+jSE6ed4MFx1MDAxZTXTMztJMox/+/XXXjC6XGKTYTdohuwyisdBN07GrWjAmoPer1FcdTAwMTL24n/7v4dBL/zXcNBrJSOWXaRcdTAwMTG2omQw+nKtsFx1MDAxYvbCflx1MDAxMtPs/6HPXHUwMDFiXHUwMDFif6d/c9K1oqA36LfS09OBnHhazFx1MDAxZT1cdTAwMWP0U1FBXHUwMDBiLZW28vaEKH5GXHUwMDE3S8JcdTAwMTaNnpPAYTbiXHUwMDBmbcrRNNFcdTAwMDae897Fx119cmhcdTAwMGZOxyfZVc+jbvckmXZTmeJcdTAwMDHdSjZcdTAwMTYno8FF+D5qJVx1MDAxZH/pmeNV31x1MDAxYVxyxu1OP4zjwndcdTAwMDbDoFx1MDAxOSVTOqb47cGg306nyI5cXNGnXHUwMDA2cs6M0Vx1MDAxNqTiXHUwMDEy6G7V7fiXXHRcdTAwMDQz1lx1MDAxOFx1MDAwNUJcdTAwMWEhXHUwMDA1qFx1MDAxOcl2XHUwMDA2XdpcdTAwMDeS7Fx1MDAxZjx9ZbKdXHUwMDA1zYs2XHTYb2XngFxugrPz7JzJzf1Kp5i0Uphs+k5cdTAwMTi1O4nfIauZNcBdfjRcdTAwMGXTTXCgpJNaZlvkrzjca6Vg+HN2XHUwMDE1O8FoeLNam7H/kJPWXHUwMDBi+nxcdTAwMTZJeTTl9lm8grPdXHUwMDEwYKe1v/3X85NcdTAwMDP5+2CrfztXXHUwMDAxesFoNJhs3o58vvkvXHUwMDEzbTxsXHUwMDA1X1x1MDAxMFx1MDAwNVpLa43TXHUwMDEyTVx1MDAwNspu1L+gwf64282OXHKaXHUwMDE3XHUwMDE5XGLTo5+f3lx1MDAxYvp0mSroo+OO0KD03NBcdTAwMGbHU3ux39vnfHz+ctLeiyb6hfue0Fx1MDAwN/5N7IPTTFx1MDAxOSNRc1x1MDAwZVx1MDAwMoyyXHUwMDA17EuBXGalQYKeddo4vlx1MDAxOPbPgzPO1Vx1MDAxMrGPQipwlq9cdTAwMTb7vd45n2zx5NlhNFxmwz9eXHUwMDFlbb86iJeEfVx1MDAwYlxccG6Whf0kvEruXHUwMDAyvkVdXHUwMDA1fFx1MDAxMNZx5NLh3Mh/d941l1fDy5fT3taHwfjj8PiF2F1v5CMqprRBXHUwMDA0dEZ6XHUwMDBiWlx1MDAwML7lwMhcdTAwMDRJclxi1iHkrMBDcG+c4udYxj1wW1x1MDAwNryBWZhrgdL7pp/IxDtcdTAwMGJK2PvAPEPToJ+cRNepjbaFo7tBL+pOXHUwMDBikEjxT1x1MDAwMp40R2HY34D/9n/pRK1W2P9nfsfikK7vJ9TFb251o7bXls1ueF5UoyRcIlx1MDAxZXY7nFxmcmvcJElcdTAwMDKabrTXmr2jwShqR/2g+7Zaqlpt/rLMd6gzUVx1MDAxM5w9nNNnIHojxPz6XFy/8/fQZ5zF5uPps3HMSFx1MDAwMGm4pXdbVGfjJFx1MDAwM81cdTAwMWRcdTAwMWGU6EjjXHUwMDFmRZ1cdTAwMWQyrogwS2MsR9TuXHUwMDBl5XZMIzk6KVFcdTAwMDHXOlx1MDAwM/BXlyaFv4VcdTAwMDeoeipkjao/ijLGSTBKtqN+K+q3aTCzXCJfQ5K9OVx1MDAxY0Sqvs2xl5IzhVxcS8FpI5UgL1x1MDAwNLmT2sHQLyFcdTAwMDMgTqLJZKNVTtibXHUwMDEzPt9cblx1MDAxNfZb31x1MDAxNqk+UMmJ1OBcZml5nPV7pjhqilx1MDAxM0pCSaZcdTAwMDVIXHUwMDA3nITiTlmnSlJ1gzjZXHUwMDE59HpRQmt/PIj6yexcdTAwMWGni7nldbxcdTAwMTNcdTAwMDYl40F3lVx1MDAxZps1XHUwMDA2Qz9j0aZn/21k2pJ+uP3/z6d3nt2ohHI6WkJxNt+T/PtcdTAwMDNcdTAwMTi5sJWGXGYtqVx1MDAwNlx1MDAxMZdM8b/JyM9G2NpcdTAwMGKuw/1nW1x1MDAwN89f9LWNIVhvXlwinGOOTFx1MDAxNVxiNN5y68xcdTAwMTJ8XHRGLeNcdTAwMDLAOeK+ZCaEmJHsIcGo1suj5ESVkKJcYs5cdTAwMWaBrNRYMECFuIqIkYLtSkeLZLhcdTAwMDVwNb+jPdzpXHUwMDFjXGZfXHUwMDFjvdtcdTAwMWRcdTAwMWNfj9xhcjQ+XHUwMDFmivVcdTAwMDao5IJcdJ9cdFGWdFWqYrJEXG7NuOPGXHUwMDEyQqVcdTAwMDZcXFxmnsuOXHUwMDE3SVx1MDAxZaE4mTS7fHDWMenXZ8rufYyvOsPx+MNWdPomuVx1MDAxOMllXHUwMDA1jIQ3yHG7x4O+XHUwMDE1qlxu+k6AUkS65jfN76eHb9o9t3+0r/76NH32abtzKI+WivxWXHUwMDEwd8IlQ98xolx1MDAxZYJcdTAwMTONXHUwMDA0YpGuXHUwMDAwfaGQXHUwMDExKZFcdTAwMDY5cDBcXC9GMi02XHUwMDFkhGqZ6CdcdTAwMTNpSTS+4nSJXHLDl+PX19fds1P96VxcJJGYnvL50P+0bt5Y7U+v4+3jyejgdO/Vofj0x9SeLWHe8+H7ydvG5Ni+v+7Fp1x1MDAxN83wI3ZcdTAwMGaWMC9cdTAwMWab//VO3mLyprl9XHUwMDE1NT/uvlx1MDAxMc1oWfE0J+S5pTnAqrSRrktcdTAwMWKRWjiKvOzcNuAsnuKOONpcdTAwMDXV3u6Mmq33h+r6dL3DTGlcdTAwMWSzSkvNOZleNZMuXHUwMDA1QaNOcrKERJ3JXHUwMDE3zlxudj9cdTAwMTNA6npcdTAwMTbewc1ErqZxq/myrO9CWqIrhj+Ct6tBolx1MDAwMan1fZCYbXiW2Vx1MDAxMVx1MDAxNOWlgYfnwDZcdTAwMTdJXHUwMDE38jzZVb7meYLhkFxyXHUwMDA3w09xmln55e4sj9CF7z12lqckU63qVeZ4dHVkROxXXHUwMDEz71Zyft2rN57L0L1H8L8gmERUXHUwMDE0ZiOZOzFTq7CGIVx1MDAxN9pcYqPJXHUwMDE3w2Ip2yrd40RvXHUwMDAxkVgwXHUwMDAx06E1QpZ1XHUwMDExuPGCmpRvXHUwMDAyXHUwMDE5XHUwMDA0V9ZNQjUpTC7JvopEXHUwMDBmcFqcx0z01NO6jUJWxVEsXHUwMDBmjmyoRE2rmUsx3CRVXHUwMDE0U1x1MDAxNFx1MDAwMyuOdFx1MDAwMtpvZnqKt/EjZVtqQJWOl/GUTfkk/35vo2JyRYVZo0JwXHUwMDAx8iD3yFx1MDAxYtczp/U0Ko5LZi1ZXGZDsaySZtaoXGJmXHUwMDA0V4pWnlxmXHUwMDBizEZcdTAwMWLLMipoOWghfSmfLpIrRuVsimWSglx1MDAwZetcdTAwMWNcdTAwMTiCXG6WykSgjZXOc5PV2lx1MDAxNKCYXCJbte9oU4DRXHUwMDBl0PIopykqJlx1MDAxZVJOXHUwMDFlXHUwMDAzZ8QmrNTkQoThXFyan9SmVEPKv1x1MDAxYWU0LcuiXHUwMDE08l+zXHUwMDE5XFyurZS+nDm3SalPnaynSdHKMCO55lx1MDAxMiVIk+tk8d/XXHUwMDAyXHUwMDE4+X3iMd6x4YItXHUwMDE1VSaFdMFcdTAwMTkjyWhJWnXSiez+b02KU1xmpXbKcsFccqrcrtxYXHUwMDE0dPRdhfpcdTAwMDFcdTAwMDHEQiSFK5fJ8nCDMqt8P4FaN6r3NVx1MDAxZC5t6T3Vuq5XSldTXHUwMDA1Tv5cdTAwMTM06vmpgn6m8FX0cnLZfvfhQrevT49+j79rn+C31ZrIMzBcbj6QTCatr5lpXHUwMDE5UUAkTSluXHUwMDFkUSaXL8ivR2VGeTOvVptcZlhdJ59cdTAwMTbVXlx1MDAwN4Rwvk1s/ui4cbU/tn+1wsvOycdLXHUwMDExTl87PNhZe3Rq5uNcdTAwMDdB2DMobLFwSG6XkS9cIuRcbq2EQbdcdTAwMTA6l16YcUIgUTfzgHB4kdR0I57s7CB2I9lcdTAwMTZcdTAwMWZa4z+O48nFslKyVlpuga9cdTAwMDD7NuegS1xy3IAkjJyfcMX93dFe7+L5azHF8L1otTvDg9Z6Q79cdTAwMDHWMrCKmKXTzmlcdTAwMGVcdTAwMDXoXHUwMDBiKYlcZiuL3KLv6l1cYvlfyjLLLElcdTAwMTJHXHUwMDA0XHUwMDEy7CcpypxtPT9/XHUwMDFmbPHD9rv9t1x1MDAwN83rQZDE46X1xqK0uDSNqlxmYWpcbp2gfHVbajN/W3h92Wd9I1x1MDAxOFxupYVcdTAwMDRSXHUwMDFiXHUwMDAxekafiOiQWfHxi6b9WKzOWVx1MDAxZMBcdTAwMThFXHUwMDExlKPolYiLJZ9VVizincxnZZRcIq/mfLmjpF5cdTAwMTTqy2Jss5pcdTAwMTCG1P1BNZBl50Q448AlxXBKXHUwMDE5jeA4N3d2r/neNk3RKsWlZJBuTvjZklwijWpQfVx1MDAxOS7hKZvxSf79vnVTqWD26C071cjR3ec5k6vXoVx1MDAxY530XHUwMDFiz/u6od1+6/CV6thcboPSXHSanfEoXFxcdTAwMDNcdTAwMWZN+GJcdTAwMDZ89yTB0T/jUEy0XHUwMDFhJ1x1MDAxOHF0X1x1MDAwZVx1MDAxMMpavlD1Jlx1MDAxOVx1MDAwNf14XHUwMDE4jEhd7jAsucxpTdO9XHUwMDE0qJw1YsWM9DGfLfHZXHUwMDAy41bedI9r2XSPizfdc1fdXHJBtsOSf7zHk5P1O38vtV5dP0SDXHUwMDAySlx1MDAwNspYIynYXHUwMDE3zuqZxnuLjLyhptPQmVxccWXpWlxyilx0XHUwMDAwKYiekW1x7q5cdTAwMTJcblx1MDAwMpM+XHLCLYVMoPJcdTAwMWRaN3TBu1x1MDAwN4fwkCzJXCJ0gTyzclx1MDAwZtHLOelCvcvYKDa7k+8z5CONTOvo5bIscEaLJITl3JdR9Ndi5D1cdTAwMWLw61x1MDAxZpcsUFx1MDAxOFx1MDAxMCCNpZ3zXHUwMDE5XHUwMDAyJY0uyWRcdTAwMTjSgCR648jGXHUwMDE5xJJMP1x1MDAxMk+pXHUwMDA2s381yjheXHUwMDE2TVx1MDAxMZWJXHUwMDA0XHUwMDA0n2+mUHV+nlwiPlxcyNa1fHn54tnhm9Z04sK+qirdrFx1MDAwZk9cdTAwMDHBmSFoI7FD32ePRYOGqH1cdTAwMDXRKCAuY6VSXHUwMDBipVx1MDAxM75BVO5o8ypcdTAwMTNcdTAwMTWyXHUwMDFjUlx0IdWPw1Se1s37mFx1MDAxOVx1MDAwNLK0Wq+eXHUwMDAxXHTiXHUwMDFhl1FcdTAwMWOddcN1okBcdTAwMDWxXHUwMDFlxoFcdTAwMTRWXHUwMDA2NuAsoZK4/vxN4fVbv65cdTAwMTTIP/IglFTeLKBRYqYtXHUwMDFjkFx0Ylx1MDAxNVx1MDAxNoUherTYXHUwMDAzO7X2XHUwMDAyXHUwMDFkOUokj01Ow3IpsyvdWlx1MDAwZu3du/TJXHUwMDAwXHS0MVjOl/jSXHUwMDAxRaSr7iF5sFrOSYDqfVGRXHUwMDAwgdCeXHUwMDA3Ulx1MDAxNFxuXHUwMDE2yeHlclx1MDAwNF9cdTAwMTmQZNJvJaBcdTAwMTJcdTAwMWOMeegziPW59qJUXFxcbmPJISljtNEu94NcdTAwMWa3YllmNHFcdTAwMDPaWue4MkKWpPqRSFAlnP2rXHUwMDA05CUxIFGdqCFhUEtcdTAwMGbXue3ZyfXlKzWNj6ZHL+LB5OPWZft479O6MyCK1ohcdTAwMDGh4MSCjK9ZXHUwMDE0XHUwMDEzNUJcdTAwMThGXHUwMDExgnRElFxibvlfUPlOmVx1MDAxYSBcdTAwMWHmIFx1MDAxN1x1MDAxNfzotUPHXHUwMDA1t8LlbmiFmZo15Cm4OE8xrlqvwVx1MDAxN1xyrTXzN6/Ub/2a8lx1MDAxNFxuKsH/mFx1MDAwZjk3w41cdTAwMTC5eCFtXHUwMDEwXHUwMDAwzdAnckxcdTAwMWHai8VcdTAwMWXdrNVr7dtotPDP9/tcdTAwMDdcdTAwMDfhXHUwMDBlLdeGOeu7XHUwMDE2NddWlVx1MDAxYdP8U2zKoV3l7yQspJVz0pR6h7FRKOs4RS9OXHUwMDFiXHUwMDA1WphcXGfyRpZcdTAwMTORXGLCao1cdTAwMWH8XHUwMDEzYuWfJJiLpNT3wszIRFxcSCvyyEJq8lx1MDAxZqIkXHUwMDEzkmfx7Wv+4XY0d7X0/0hcdTAwMTSlXHUwMDEyyOlgXHUwMDExwlVcdTAwMDTlyc3s/jGhk4TwdrtcdTAwMTVcdTAwMDTpqHVjyrNb3LyMwsn2XT056cvbx3QxvVx1MDAxNVxu/Y3+/fnJ5/9cdTAwMDPV4pXXIn0= - Screen 1(hidden)app.pop_screen()Screen 2(hidden)Screen 3(visible)Screen 2(visible) \ No newline at end of file + Screen 1(hidden)app.pop_screen()Screen 2(hidden)Screen 3(visible)Screen 2(visible) \ No newline at end of file diff --git a/docs/images/screens/push_screen.excalidraw.svg b/docs/images/screens/push_screen.excalidraw.svg index 1dd37ede5..5c2dc2dd0 100644 --- a/docs/images/screens/push_screen.excalidraw.svg +++ b/docs/images/screens/push_screen.excalidraw.svg @@ -1,6 +1,6 @@ - + - eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nN1ba1PbSFx1MDAxNv2eX0ExX7JVsdJ9+/Zrqra2Ylx1MDAxOFx1MDAwMslcdTAwMTBCgFx1MDAxMNidooQljFx1MDAwNtsyllxmmKn8972tXHUwMDEwS37I8Vx1MDAwYo8zrkqM1e3WVfc55z66/deLjY3NtNdcdTAwMGU3f93YXGZcdTAwMWZqfiNcbjr+/eYrd/0u7CRR3KImyD4ncbdTy3pep2k7+fX166bfuVx003bDr4XeXZR0/UaSdoMo9mpx83WUhs3kP+7/XHUwMDBmfjP8dztuXHUwMDA2acfLb1JcdIMojTvf7lx1MDAxNTbCZthKXHUwMDEzXHUwMDFh/b/0eWPjr+z/gnVB5DfjVpB1z1x1MDAxYVxu5ilcdTAwMTi++iFuZaZyjVx1MDAxNpVVTPV7RMk23S1cclx1MDAwM2q+XCKLw7zFXdqUjXP1+OVLJag+9v6sXHUwMDFjXZnGyWee3/YqajSO0l4jMyqJ6VnytiTtxDfhaVx1MDAxNKTX7t5D18u+1Ym79etWmCRcdTAwMDPfidt+LUp7dE2y/kW/Vc+GyK880CfkymOWaWk4l1x1MDAwNk0+iPs6oPFcdTAwMTi3aEFcIijkoIfs2opcdTAwMWK0XGZk1y8se+WWXfq1mzqZ11xu8j5cXPr+5VXe5/7padFKXHUwMDBmXHJcbi37TddhVL9OnVx0RnlGc2aLrUmYLVx1MDAwMUernO08b3G3bO9cdTAwMDVcdTAwMTlcdTAwMTj+XHUwMDE4nsRrv9N+mqzNxH0omOss/W1cdTAwMThJRTRcdTAwMTWWOdxcdTAwMGLOzo6O8XHv06f36UlcdTAwMTjYi62H/lhcdTAwMDPQ8zud+H6z3/L16a/ctG478L9cdTAwMDGKK4XGaG00szkoXHUwMDFiUeuGXHUwMDFhW91GI79cdTAwMTbXbnJcZmZXv76aXHUwMDE5+lxiWFxufcZAKY5cdTAwMDKnhv69vD68Oagnh+/bp4adw/3l9vvu31x0fXqGXHUwMDFmYVx1MDAxZphcdTAwMDeWcaRHNcrowtNmXHUwMDAzaOWhNlZcdTAwMDI3aLXmi4H/yr9kTC5cdTAwMTH8SjKQ1ii+WvAn6iw6qj7Ut6o75qHaaV8oe/dpWeA3XFxIYMtcdTAwMDJ/XHUwMDFhPqTjkC9VOfKtQc6JhDA18kXrKFFh03w8qneqe2danFx1MDAxY8DfKvo/Rr5cdTAwMTHKXHUwMDAzY7XgQJhEXHUwMDFjVH2J1jO0IMpcdTAwMWFygFx1MDAwNVbMXHUwMDAze20lu4JR2HNmRvGu+Vxiysn3MCGQiX+OxFsuSGxmQXlcdTAwMGWmuJVcdTAwMWVFj2GmXHJcdTAwMDNXd/xm1OhcciBcIoM/XHUwMDE5eFTrhGFrg/+v9fI6XG6CsPWv4pIlId3fXHKoXHUwMDA2v/mmXHUwMDEx1Vx1MDAxZFk2XHUwMDFi4dUgi9KI4rB+c1x1MDAxYVx1MDAxN+a4Rpb4NFxcZy9cdTAwMTh+orhcdTAwMTPVo5bfOC63ai4yXHUwMDE347NhMlx1MDAxYs5cdTAwMDA4KfzUZD4/2bn321x1MDAwN59cdTAwMWVud+Vx8/KsXCLimzUnM/koXHUwMDBmXHUwMDExOICUUlx1MDAxN5mSkVx1MDAxOTxBcyBccvFdXG5jmFx1MDAxYzJsOXRcdTAwMDaRr0KfzoVrT3RWTFx1MDAxOKeuuSv96X2W5VxigPlcdTAwMDOtiM2w8ZLSpuiyXHUwMDExjmczyIFvrojNRasmsvnbNI+hM6d0o4zPRjqUWza9b5688DPQXHUwMDE5hqH5bHSWXHUwMDAyPIpcdNFyzaRcdTAwMTJi0DeTmHlEcYr9XHUwMDE4sYhS1GHDlkNnXG59XHUwMDE5V5qhkIyCXHUwMDA1OYbcXHUwMDFhPaWAKUPSXCLAgFx1MDAxZHHdIFx1MDAwNVOWhpid7JmZXHUwMDEzyP4sdExSv5NWo1ZcdTAwMTC16tSY68j3XHUwMDEyw95cdTAwMTQuXCIjcK3rrGSeZpRbXHUwMDFiRclcdTAwMTSlXHUwMDE5XHUwMDEyRaFT3W87m4XHXGZ3a23cP0q5nnp87VtcdTAwMTW2glx1MDAxZts0OftcdTAwMWGwiVbUgqBcdTAwMTCYKbDIc+/ZN0owj1x1MDAxYlx1MDAwNtpaTuG4VjhqVMNP0q242YxSmvuPcdRKh+c4m8w3juXXoT9cIlx1MDAxZvRQxbZhOWi7XHUwMDExXHUwMDA3VT3/ayMnTPah//dcdTAwMWavxvYuxXLWOIzifLRcdTAwMTfF95l1zFx1MDAxNNKYYVx1MDAxOVx1MDAxM1oriWp6XHUwMDE5m1x1MDAxY42upYxcdTAwMTnNPEqrtSTga2V5fucsKlx1MDAxMdpcdTAwMTM071ZcdTAwMWFKMiyaIbuWo2KGebSigjCMZFx1MDAwMVFwVMUoPLLIJGjnWlTRtTypmLBcdTAwMTRAUmC1WlxymztBmFLDJuesXHUwMDAzeoEkXHUwMDEyaFx1MDAwNFjNSMhoKkdFjFx1MDAxY5ZEqYW15LBoqcV8XCI2uXo6YFx1MDAxNFMogZGHXHUwMDA0UMxcdTAwMThhR42yXHUwMDFlXG5aPIGaVl+hXHUwMDFkNepnXHUwMDEysUoplrPWXHUwMDExXHUwMDE4zyhjXHUwMDEzyoTClFxuXHUwMDE5V8LdXHJcdTAwMGJV5lx1MDAxZimZ/+7wbe/N7+fb76PzXu/iovXYOGTrnV9RyCVcdOAk2CxjpsqDoaxGTnOvLTlcdTAwMThcdTAwMDRhpLV2yLB5SuRKLbFOyMg4KSQ8Q5F8goRcdTAwMTE7bSHye74ytixcdTAwMDR7I46WXCJobXD6XHKcRKrTi2pPJ/u3XHUwMDA3VWzvXt339P66w9OVsVx1MDAxOVxiZpCCXHUwMDE4yYaq2IZ7ICmpYJQyXGLF16yKTTmClEzJZyhiTywzXHUwMDEzXWfJXHUwMDEx5lx1MDAwNqexZeDU5CeNlTPUpraCVpxuXexcdTAwMWXYZOvxJjzjaT1qrDs4KZlQpED0olx1MDAwMFtcZm2xVJT2uKL4QmpcdTAwMTeA6zxDmlx1MDAwYpxcdTAwMDZqlodLlE5cdTAwMTc8UFx1MDAwMsdWvL9ownC3+/vjY+PyXFxdXFyJNFx1MDAxMr1zVlxihEbyj37L11eTxj1IXHUwMDBlPsH9TSdt31U+Xu3ffH54XHUwMDBiXHUwMDFmljBuoG9vw3fqg4wjflx1MDAxMu/s3+5XfjtZwri31Y9cdTAwMDdcdTAwMDGenjZcdTAwMWa+7GzXZEe+fVx1MDAxM/aWVbYjXHUwMDA3hXkw+1xcW03F+s2wXHUwMDAwUFohkFx1MDAwYjG1XHUwMDAwXFz4v5392bu/+pRsXHUwMDFmnO7e3aSXR/u7651cdTAwMDZSXHUwMDBm40lFnthlUcCGXHUwMDA1gCN4IFxcXG6u3Vx1MDAxNqy1i+02XHUwMDAxmMtwTPAkXHUwMDBie9196uNcYuHR7XpTmLfSUEm7XHUwMDFjueAn5isgU0LtijagKELlRtmBPv1yco617+Vkv9322t3k+lwiySq4L7+9ifFF5UJBf1x1MDAxNUXlUtsmUrG0JEP+tjSToXybUGhnOPAwWfSWQcbAT67DZbtjJIerXHUwMDA1XG4jXHUwMDE0YzhYlTHoaWUpiUSBzilcdTAwMGbHXHTL4VwiXHUwMDEx3kjBpbuBXHUwMDE13IypynBOZmpcdTAwMDCkqIFcdTAwMTkobNd/98xcdTAwMWPJLVx1MDAwM8M5toVcdTAwMTeoyzBlOJ+LqVPWZSaHeFx1MDAxYsVcdTAwMTKINUqAsIhAWalcdTAwMTWjZVxc6UnNhWRAqlx1MDAwNsZcdTAwMTj+1KGkKjP4XHUwMDE0P1FppFx1MDAxNE/uNYKkfLRcdTAwMTfF95nFhFx1MDAxOFImJmho0im+mD7tnFx1MDAxY+isqZZIUFx1MDAxZSGQnLZcdTAwMDJLWpI7zUxLrIcuXHUwMDE5VVJcdFxyXHUwMDA2XHUwMDE3SzvLtIR7XHUwMDEyLbhcdTAwMDNaSpDJqMeJXHSzXHUwMDFlKVx1MDAxZGogiLgseEycr7mWcq6jVHOriUv9XHUwMDEw+CwlkmdTk1xu92hcdGhcdTAwMGVorSzjXFxbXej1VFDlXHUwMDFlWmNcdTAwMDRcdTAwMTimKJND+b3G+E/Tk3JMZa0jaFqWoqAoP8jCtGLCXHUwMDFkx5paUibnemsqKaApXHUwMDAyIa2gZEBcdTAwMDDKwjGRrNIqwFx1MDAxM07qhVx1MDAxMFx1MDAwNpmyi1x1MDAxZGUp11x1MDAxNEWpIflMyv6VQDsmc+BMeZS8XHUwMDE5d4BOo9Bq5NyaJmfEyNA8WFiNotjn3fueIT5h5Fx1MDAxYZSmXHUwMDE4zdXGXHUwMDE56DFcdTAwMWLNXHUwMDFjPC0tJ+dsXHUwMDE4Usz5nUr/PEUpQVTWOIKlXHUwMDE5XHUwMDA1ZdJcdTAwMTHvXHRcdTAwMDddmVx1MDAxMpIrmGFcdTAwMTf6w1x1MDAxN4TTuFo5PD22j6c6OGZnn6/mkZRcdTAwMTXWXHUwMDFmiVx1MDAxNlx1MDAxZVx0iVGIjJFzXHUwMDFiXGZSKFv2lHHVXHRcblFIXlx1MDAxNjzr+lxmmzfkZ1x1MDAxMCn1WHFFwrqt01x1MDAxOXRkXoCq8vJcdTAwMThcdTAwMDX00lU0Zlx1MDAwMOj1baXVOdw6fnt6XHUwMDEzX1xcJM1qXHUwMDE3t9+vO0Cl8IBRpsatorVcdTAwMWX+XHKCZZ5wZ4OsVExcdTAwMTFIXHUwMDE2O+619N8gcGDk6ayew80tsn1cdTAwMDNE5VVs31x1MDAxNFx1MDAxZPvIXHUwMDBmXHUwMDA1XHUwMDFjSZyCTlxyz4/vztrs896X7puz+pdeLejetntzVYxWXG5PIE9O+ZtQijyUXHUwMDFhLFx1MDAxOHGGnnRuXHUwMDBiOOXgkmZkIXguff9cdTAwMDbc5rexK/7twHNt32BcdTAwMTJvP+zvn/D0+DCs/r5b0/rkYGm/vFx1MDAwMYlsliNHXHUwMDEzOVW2XHUwMDFkXHUwMDAyXFyUXHUwMDEziqEhfzdDjlNLd3eSy7vIPFThMd5pJLdHXHUwMDFkue45XHUwMDBlTbXn9kEoKLFKMTlcdTAwMTiRVID4JrVAkFx1MDAxYSjPVIvVTcpcdTAwMThcdTAwMDViXGaVRo/rcyZJaIWGXHUwMDE1M+hcdTAwMTmRTkmS4lx1MDAxYWbZ+MtcdTAwMDG1wHl9sZbn9cXC5/UlL3WRYMGV/vT0hJ687mtKaKuYXHUwMDA3XHUwMDFhpCBYyWK54FuG4XFrKURiXHUwMDE2iO36eVx1MDAxY6TQnmGU5CiUQtCd8nCsT25lPC6YXHUwMDEx3Fx1MDAxYVxy5Fx1MDAxNEe5XHUwMDBlUlwihf5sjt/mLFKymJuNU5YsJjuJjWLJwu0gKIpnNVx1MDAxM8ZwZU2hV79iXHUwMDAxUlx1MDAxOeaMp17I5jzqOjlcdTAwMTQsXHUwMDE4VSFsSUBDXHUwMDA2SWCUpqrRMlxuuPP6klx1MDAxY4aQRrjfgI3Y9DNcdTAwMTVLKqVgdq9cdTAwMTFcdTAwMTjnw70ovjs/kN3AbVwiXHUwMDFmpYS5/mpcdTAwMTCso+BJxvOn3LyLwvvquJwpezl1zObTiVDonvWvry++/lx1MDAxZipcdTAwMDVGaSJ9 + eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nOVba1PbSlx1MDAxMv2eX0GxX+5Wxcq8elx1MDAxZbdqayuGXHUwMDEwSEJcYlx1MDAxOMJj91x1MDAxNiUs2dbFtowlXHUwMDAzJpX/vj2CWLJlXHUwMDE5v3CcrKtcdTAwMTKDRoxaM6dPn+6Z+fZqY2Mz7nf8zT83Nv37qttcZryue7f52l6/9btRXHUwMDEwtrGJJb9HYa9bTe5sxHEn+vPNm5bbvfbjTtOt+s5tXHUwMDEw9dxmXHUwMDE097wgdKph601cdTAwMTD7rejf9v/Pbsv/VydseXHXSVx1MDAxZlLyvSBcdTAwMGW7j8/ym37Lb8dcdTAwMTH2/lx1MDAxZvx9Y+Nb8n/GOi9wW2HbS25PXHUwMDFhMuZJNnr1c9hOTKVKXHUwMDE4IY0kcnBHXHUwMDEwbePTYt/D5lx1MDAxYVrspy320iY0L+TD2VnJKz/0/y5Varp58pWmj61cdTAwMDXNZiXuN1x1MDAxM6OiXHUwMDEw3yVti+JueO2fXHUwMDA2Xtywz1x1MDAxZble9FfdsFdvtP0oXHUwMDFh+puw41aDuI/XgFxmLrrtetJFeuVcdTAwMWV/XHUwMDEzVDrEXHUwMDEwXHUwMDA1mlLQQqed2D9nQjuEXHUwMDFhYVx1MDAxOFxiJlx1MDAwNWVqxK6tsInTgHb9gySf1LIrt3pdR/PaXnpcdTAwMGZcdTAwMDXXvaql99w9va0w4FxiLbiCQVPDXHUwMDBm6o3YmqClo1x1MDAxNSUm21x1MDAxYfnJXHUwMDE0UGGktZ2mLfaRnT0vXHUwMDAxw1+jg9hwu52nwdqM7C9cdTAwMTlzraXvRpGURVNmmv097/y8cixcdTAwMWX2jo4+xie+Zy637lx1MDAwN31cckHP7XbDu81By/enn1LTelx1MDAxZM99XHUwMDA0XHUwMDE0lVJorZRWxKSgbFx1MDAwNu1rbGz3ms30Wli9TjGYXFz9/npm6Fx1MDAwYiZcbqFPXGKTklxuLqaG/lx1MDAxZDRcdTAwMGWvXHUwMDBm6tHhx86pJlx1MDAxN+zuavtj72dCXHUwMDFm3+E57DPiMEOowFfVUqvM2yZcdTAwMWQo6VxipVxyMKqFUYouXHUwMDA2/pp7RVxiLFx1MDAxMfxcdTAwMTJcYlx1MDAwM6MlXS34I3lcdTAwMWVUyvf1rfKOvi93O5fS3Fx1MDAxZS1cdTAwMGL8mnJgZFngj/37eFx1MDAxY/JBQiHytVx1MDAxNlxifsTD1Mjn7Uok/Zb+Uql3y3vnip9cdTAwMWOwn0r6zyNfc3C05ExqXHUwMDEw6ORghoBcdTAwMGZAXHUwMDFjwlx1MDAwNOWa4T9cdLBcdTAwMTDulVx1MDAwMVJjedxTovOAVzRcdTAwMDdzXGY+hHNB+O/C8Vx1MDAwNrnVXGLGYVx1MDAwNpinaFxu23ElePBcdTAwMTNyXHUwMDE4urrjtoJmf1xiXHUwMDEyXHT+0cBKtev77Vxy+t/2XHUwMDFmjcDz/PY/s1NcdTAwMTb5+HzboVx1MDAxY/7Lt82gbr1ls+nXht0oXHUwMDBlUIhccprjMDPGVbTExe66e97oXHUwMDFihd2gXHUwMDFltN3mcbFVc3mzZHz06lx1MDAwZm/mXHUwMDA2w5hcdTAwMDE6fVx1MDAxOLs42blzO1x1MDAwN0f3N7tw3Lo6L/Hwes2dWSjlSKlcdTAwMTlXXGb1KmrWdDhsXHUwMDA3kjtcdTAwMDIkurFk6M+GZuTsMt2Z8bTfgTtnrj25syRcXFOrcX6XoGVcYidEXHUwMDEyNUvQWoo3s40/MG9cbq6a/nhvZjD0lyvy5qxVXHUwMDEzvflxmMe4M0VJVuTPiFx1MDAxZYHeTFJ5/Jw/T574XHUwMDE5/JmNQvPF/Fx1MDAxOThDj1x1MDAxNVx1MDAwNnlLSnTq4ZSMUuZcdTAwMDDHXHUwMDAwrlx1MDAwNFVcdTAwMWNl6ahhy3FnaVBcdTAwMWFjPshcdTAwMTmSXG5BWZZ3bqNcdTAwMWSlXHUwMDA0Q96xSVx1MDAwYqq3XFzoZsBcdIY6Pkd6lpg5wdlfxFx1MDAxZKPY7cbloO1cdTAwMDXtOjamPPKjxrA3RYxIXHUwMDFjuNqzVlx1MDAxMkdcdTAwMDKlXFwpg9lcdTAwMDXq9TRPtUPhdqzN3MHRXHUwMDE1hmKigf8w53q64/vAKr/tPW/T5PRryCaCXHUwMDAyl1wicFx1MDAxNEo/Q1x1MDAwNTM5o9AmyZOUh1x1MDAxMsbR9JxNTTeKt8JWK4hx6L+EQTtcdTAwMWVcdTAwMWTiZCzfWidv+G6OPfCdsm2jbNCxPVx1MDAwZZN6+tNG6i/JL4Of/3o99u5CKNtPXHUwMDBlxGlvr7LfM9NcdTAwMTjK61wiXHUwMDE2M9xohFx1MDAwNJs+xZgsRteSxbRcIo5ALrdFI+RcdTAwMTiRskOSYnDlXHUwMDAwKjMpMNViLDNWyyQxTOBcdTAwMTHsmlNNjObGpG+SJlx1MDAxY2glZjrWO1x1MDAxNXA0Z5TEUEJSXHUwMDAysFJcbmNcdTAwMDZzXHUwMDFlOld+MCWFTc5Zh+iCXHUwMDAzQc3GkCfsN5JZnsOSeFx1MDAwNVx1MDAxOI1wQpFSfvjQjFx1MDAxNDa5eJqxqYRGUVxmkFx1MDAxMozWKHwz+evAJukoKSix0yqIxFx1MDAxY1x1MDAxNn5pXHUwMDBlK1x1MDAxNUL5sXVcdTAwMTTFM7LYhCoh14VqjEpObSqbKTI/R2Tuh8P3/befLrY/XHUwMDA2XHUwMDE3/f7lZfuheUjWO71CXHUwMDEwXHUwMDAx4lx1MDAxYoQkXHUwMDE4ormWKW0nJXJgjjJUYlx1MDAxMOFcdTAwMWGMMSOGzVMhl3KJZUKCxlx1MDAwMVx1MDAwN/ZcdTAwMDI18uJCnuUvM1OFY158QiayjOBTYEJsjZk+zkYgTy/LfVx1MDAxNe3fXHUwMDFjlEVnt3bXV/trXHUwMDBmT+NcYs7AVi1cclx1MDAwMFx1MDAxYlx1MDAwZbRcdTAwMThdXHUwMDFkQrCdo5YzXGLQxdKFZVx1MDAxN7ExQ1x1MDAwMCCojFdcdTAwMDdOXHUwMDFiXlx1MDAwNepcdTAwMTGzXHUwMDAycE4oTVx1MDAwMedSUqL01ODc8tphvHW5e2CirYdr/5zG9aC57uBkzKE2XcVgjemsXHUwMDE5zmVLXHUwMDEyw7SmXHUwMDEyXHUwMDE1XHUwMDE2UVxiXHUwMDFlJVx1MDAxNlx1MDAwMqdmVUP9JVInXHUwMDE3mLpcdTAwMTFNVry8qH1/t/fp4aF5dSEvazxcdTAwMGV4/4JkhFAu/Vx1MDAxOLR8fz2p34Po4IjdXXfjzm3pS23/+uv9e/Z5XHT9eurmxv8gP0NcdTAwMTjQk3Bn/2a/9O5kXHT93pS/XHUwMDFjeOL0tHV/trNdhS68f+v3l1WC11KB4cvigKLaNOe0iFx1MDAwMFx1MDAxNGZcdTAwMTVcdTAwMWNFXHUwMDFin5pcdTAwMDAu3Xfnf/fvakfR9sHp7u11fFXZ313vLFx1MDAxMO/QmOhpTmxcdTAwMTLFyMhcdTAwMTJriVxu5jAkQoZEKDEpNosxXHUwMDAwY/rKXHUwMDFmI54gs9Q9cH2Rc3hhXHUwMDE3vVHmrVQqKVx1MDAwNYTOXHUwMDE0jdJcdTAwMTlPy8eYT2NqgJk0KlSqpVx1MDAxObpnUExOsfajmOx2Ok6nXHUwMDE3NS6jpH77x+NcdTAwMTdcdTAwMWZfUs6U81dRUi60baIrXHUwMDE2VmT4XHUwMDA0pSgpxTRmeqE4mfKW4YqeXHUwMDFiNfxlXHUwMDA3Y+lgqOVcdTAwMThoNVGEXHUwMDBlXHUwMDA3Y1xyXHUwMDBlUGJcdTAwMTN8gm6o9WKrvkWeSFx1MDAxZGZdXGZzcy2ofcpcdTAwMTjHpJQjKVx1MDAxOJA4I4YoxnKrSDhbXHUwMDE4llx1MDAxOVx1MDAxMXMsXG4vUpZcdTAwMTG2pjCPp05Zlpks8TayZVx1MDAxOaNcdTAwMDVhQjBMtZA/0iHa+FFcdTAwMDFcdTAwMDFHcibsjFKkP1x1MDAxY8SnXHUwMDFiXG6qMsNv8Vx1MDAwYpVGilx1MDAxMZW05rCU9vcq+z0znWT3yuV2XHUwMDBl2lwijGYziPvJWmdNXHRcdTAwMDUoOJhSctBcdTAwMWNcdTAwMDSq/HRRNyFcdTAwMTSBylopXHUwMDA2ICkg4yxW4y1cIlx1MDAxNOZcdTAwMDDm+VowdFx1MDAwN8qlXHUwMDFlo/EppY6yXHUwMDFiuYTBl0KSy4iMXHUwMDFmSl/hnMFcXHupXHUwMDE24Vx1MDAxM1x1MDAxY7bM3oSfyCclJFx1MDAxNMOI3Vx1MDAxMmRcdTAwMTmDS5Mv82LwYKDsTdJITYT5TVx0pVx1MDAxMFH2k8fSsvhcdTAwMDSzgUI+XHUwMDExXHUwMDA0XGJndIZC6+RcXG9N+YRJ5SghtJSYXHUwMDE4gVx1MDAxY6ZcdTAwMTPGjGP381xiiVx1MDAxM6MlXHUwMDExi1Wyilx1MDAwNYohhOLjMVshPLtbJuVcdTAwMTNCXHUwMDFjVFHYg13Hs6u3o3yiXHUwMDA0XCJcdTAwMDNTu7RhJXSiMHVJQ85PlScozrix21x1MDAxMyQgVeCk5ujEOFx1MDAxNFx1MDAwN1x1MDAxME3G4IGzqp5ZNfpl6aRcdTAwMTBQSWNcdTAwMGVKM9LJpP3dxbtcXJHdXHUwMDE0iqZcdTAwMTkq45/PXHUwMDA0O1xyy6XD02PzcKq8Y3L+tTZcdTAwMGafrLD4iFx1MDAxMsxcdTAwMTGgtVx1MDAxNFx1MDAwMkdemXQ4XHUwMDEyPpHUwVx1MDAxMdBcdTAwMWNVoWac8cVKXHUwMDBmL7Byg1FIiKFMbCXlx8rFwdvmfsU/6XWgfOR9Pt27+lx1MDAxMi6r7KasvFjF6Vx1MDAwNslcdTAwMGLDqeBgpFx1MDAwMjn9LrLGTandPdw6fn96XHUwMDFkXl5GrXJPbH9cXHf0XHUwMDAzZj5cdTAwMDRcdTAwMTSl+LJMjFx1MDAxZW4wxOF2z1x1MDAxMaZGROKsrNe6XHUwMDEwpYxgXHUwMDEwNWqOXGK6wMKQMsjEs1xi8nnRqYqPnVx1MDAxOSYkavFcdTAwMTm4+cuH81x1MDAwZfm6d9Z7e14/61e93k2nP1cxaqXoZKhcdTAwMTFwsLmUitPMcDx2IFx1MDAxY6BMXHSGXHUwMDFhXHUwMDAxQJnFcselL1xmMbuqrs2KjyQssC70LDFz1ChEL42Yi9ZDXHUwMDE4LU5yXGZcdTAwMTEogJSZfrN+Nd7dia5uXHUwMDAzfV9mXHUwMDBm4U4zuql0Yd2TXHUwMDFjrbRjXHUwMDE3QlCYXHUwMDE4KVx0XGarklx1MDAxMkO/XHUwMDAwxUWSalx1MDAwYiZcdTAwMTc7dFaE/Ozpk1x0u/UpXHUwMDAxrlx1MDAxNFdsxUhcdTAwMTdRuH2/v39C4+NDv/xpt6rUycFSkK7trmqq2FxcVZdFtuvztdyuz1x1MDAxN96uXHUwMDBmqrhcZmpZnjMyQyibPPHrucRpJHGYYsBcdTAwMTFWIMywzmLSocagkiH2KFx1MDAxMlEvXHUwMDEzyDjHp0jBXHUwMDE0t1x1MDAxOVxyjDuKY4SjXHUwMDE5pkR2JzRViuR9nVx1MDAwMVxijS1zXHUwMDFjzVlot/6McSdjx1RFi8lBYiNbtMBcdTAwMDRdMkNRLNuahMjssUx3ujKQmljbXHUwMDE1sYdcdTAwMTKf7vjdilx1MDAxNqVCRNlPXHUwMDBlS2l3r7LfM6tcdTAwMDNeqIo1p5ihKzp9XHUwMDA19Pjwfa+kjk53vn76VL+rX57+LVXRVtOGW230uv466GJlXHUwMDBiQsCMJlx1MDAwMoRcdTAwMWPJ2lx1MDAwMFWzYYBcdTAwMTKCc4Pq9WXEgVx1MDAxZbNPfow2XHUwMDAwTOSp9eDVaoNaXHUwMDE3WbRzXHUwMDA2x+9cdTAwMWE7R19cdTAwMGZZ7eid35lOXHUwMDFivJ7U74uWPYyxXHUwMDBiZCvTXHUwMDFjj+dp10FnPFkyn7ZQ6dmkXFyWLOyeITrDXG7rZNzMxFx1MDAwNytcdTAwMTRcdTAwMTfSKFx1MDAwN6HD8FXtcX0zcoxGMFx1MDAwN6RcdTAwMDBqV00wj12siFOYLIBDsXNNKcdsnPBx8oJK7YBSWnLDmULQZ4TO05qIXbshKjNjqzlJM6/jTSkvJoeZjeFTK0YrkFx1MDAxY1x1MDAwN9DuXHUwMDEwgDGbNijeJClPjlx1MDAxYVx1MDAxMNBcdTAwMDC/q8AoxpT9lPJwmlFiXHUwMDE0cookhZxcdTAwMDLSbkbmfHqNMTlmrCunqGTw7bE2wqRVVSOcYlCB2GNGWlx1MDAwYsVeaE+2XHUwMDE2jk1ccpU0XHUwMDA0s1x1MDAwZVx1MDAxY/Y8paBcdTAwMWR2p1x1MDAxYUpQpDeU3Cxfh8OEylx1MDAxZXvK5Fx1MDAwZv9/nMJwXHUwMDFhja1cdTAwMThpXHUwMDFjXHUwMDBiSfOcwlx1MDAxZLvJVGFcdTAwMTIqlNRcZvXjZE4psmryXHUwMDEy4IhVhFxizYlcdTAwMTFUIZVcdTAwMTk+hulcdTAwMWNbXHSTmFx1MDAxY2NcXDCYTfzaXHUwMDA39Fxu8Ww/pTyUi+js1dNcdTAwMTPs5tdKjLhcdTAwMWJMXGJCO/CelGD6mpu3gX9XXHUwMDFlt1wik3ys8EpcdTAwMDbUcpFvX/bb91ff/1x1MDAwN+81ULcifQ== - Screen 1(hidden)Screen 2 (visible)app.push_screen(screen3)Screen 3 (visible) \ No newline at end of file + Screen 1(hidden)Screen 2 (visible)app.push_screen(screen3)Screen 3 (visible)hidden \ No newline at end of file diff --git a/docs/images/screens/switch_screen.excalidraw.svg b/docs/images/screens/switch_screen.excalidraw.svg index 8af9e556e..aa3638a0b 100644 --- a/docs/images/screens/switch_screen.excalidraw.svg +++ b/docs/images/screens/switch_screen.excalidraw.svg @@ -1,6 +1,6 @@ - + - eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nOVba1NcdTAwMWI7XHUwMDEy/Z5fQbFfslVBkVpqPW7V1lx1MDAxNlx1MDAwMZJcdTAwMDBcdFx1MDAxMFxiz91b1GCP8Vx1MDAwNDM2njFcdTAwMDZS+e/bXHUwMDFhiGf8XHUwMDE487AhTnaqXHUwMDEy45Es90inT/dpyd9fzc3Np9etcP6vufnwqlx1MDAxMjSiajvozr/x9y/Ddlx1MDAxMjVjaoLsfdLstCtZz3qatpK/3r49XHUwMDBm2mdh2mpcdTAwMDSVkF1GSSdoJGmnXHUwMDFhNVmlef42SsPz5N/+/43gPPxXq3leTdss/5KFsFx1MDAxYaXN9u13hY3wPIzThEb/XHUwMDBmvZ+b+579X7CuXHUwMDFhXHUwMDA15824mnXPXHUwMDFhXG7mXHUwMDE5XHUwMDE4vLvRjDNTpVx1MDAxMUpJwLxDlCzTl6VhlVprZHCYt/hb89dcdTAwMDeNw+TTxeHlUmdhVVxcVNxNlFbyb61FjcZOet3IbEqa9Ch5W5K2m2fhflRN69QqXHUwMDA27pd9qt3snNbjMEn6PtNsXHUwMDA1lSi9pnvIezeD+DRcdTAwMWJcIr9zRe9cdTAwMTYkXG5mjLZCIVdcdTAwMDK1xV67XHUwMDFmQGnJjDVcdTAwMDaFVEYqKXDAsqVmg9aBLPtcdTAwMDfPrty2k6BydkpcdTAwMDbG1byPwCA4qeV9unfPq1x1MDAxYzJllTT58PUwOq2nfoWsZtZcYu6KrUmYLVx1MDAwMoDi0klle1xy/lx1MDAxYlur1VxmXGZ/XHUwMDBmzmI9aLfuZms+8W9cbtZ6Q1dcdTAwMDaRVERTYZ3DdCNcbjvru9KuXHUwMDFmLTh92TiG+FNvrD7oXHUwMDA17XazO99r+XH3V25ap1Vccm5cdTAwMTEltFbWOqek1PliNqL4jFx1MDAxYeNOo5Hfa1bOclx1MDAxMGZ3f7x5NPSVVGXQR6dpZoXiXHUwMDBmhv6XcFx1MDAxYpbV1fHG592P+92bo5VgbXX7V0Jf8Puxr1xmQ2NcdTAwMTRozoVcdTAwMTRG90FfOmCgXGZcdTAwMTDyrNPG8cmgX1x1MDAwYk44xylCn4NcdTAwMTSO1umFsb+9g5uHp9vx8UJncW9lbediiZ9cdTAwMDezif00vEpHXHUwMDAxXHUwMDFmVSnnI82pMkqpXHUwMDA3XHUwMDAzP+hsv1s+/tZcXN6K9/avXHUwMDBlPi5tiL3dXHUwMDE5XHUwMDA3vlLArECrXHUwMDE1zbbRXFz2XHUwMDAx31xiy5ym1Vx1MDAxMEpcdTAwMGJcblx0MFx1MDAxMe6NQ16DYdxcdTAwMGJuh1x1MDAwMW/EIMxccqK0kjt4WZTPXHUwMDE2w+doasbpTnRcdTAwMTNm3NB3931wXHUwMDFlNa77IJHBn1xm3Km0wzCeXHUwMDEz/41f16NqNYz/WVxcsSSk7/dcdTAwMDPq/k8uNqJT7yzzjbDW70VpRGlYrzltXHUwMDE25rhCllx1MDAwNDRcXHu1OvhEzXZ0XHUwMDFhxUHja7lVT3Jm5UyZM1x1MDAwYkPA4cLmM3WfM++ag1x1MDAwYv15ZbfTalx1MDAxZK2o5U+VXHUwMDBmW5t7M+7M0jkmkFx1MDAxMlWwQnNTyGezKFx1MDAwNsBcdTAwMTCEsshcdHbK2Vx1MDAwMcOm48wg89jZc+bCvTtndlx1MDAwNqRRWEgr/lx1MDAwZkPWVJxcdTAwMTnmXpNoik5cdTAwMWHhaGdcdTAwMDbs++RcdTAwMGI5c9Gqsc58O80jvNlpPXi3581cYsgpWYOHu/P4hX+EO1x1MDAwZobA53Rn0MyR7lx1MDAxNFx1MDAxNH3RkPzMU5HMn41gmoMjyWYlglVmwLSpRWeGTkpnrEVcIpdcdTAwMTHujYpJUoacUmMkW6RcdTAwMWLOUK213Gl8QuzOzFx1MDAxY+Pu9zkkPMUhkzRop++iuFx1MDAxYcWn1JgzXHQ5ZaXjv5czwymkWFpcdTAwMDFNkYUmJmeR+dOg5a2QjJOadsJY/09cdTAwMGJV6HJXqlhcdTAwMWRcdTAwMTNs7jr/6FlcdTAwMTXG1XtsksTtIFErrsEpwfWQUZIzYTlcdTAwMTjnhJBotCo1arSOXHUwMDFiMqpcdTAwMTEk6VLz/DxKae63mlGcXHUwMDBlznE2mYvez+thMEQg9FDFtkFCaPlcdTAwMTH7eT3/ay53mexN7++/34zsXYplf1xyoThcdTAwMWbtVfH10UymXHUwMDFkXHUwMDBl3u0xmVx1MDAxMIQgXSxb3Mdk4/PRWWUyL6+VIf2MXHUwMDBlNGB/acmgZlx1MDAxY9BcdTAwMDCl+DQhz6MyrGJIvsq1sFx1MDAwZUHjXGKRrSUjvlBoiK5oXHUwMDE4M5y2gCGa5cblXHK/P4/RXHUwMDEzg1TEXHUwMDFjxnGFeW2jR1x1MDAxOYaBXCL1R21AKbYpdugjjNH691x0LCa4XHUwMDAwy5VcdTAwMDVcdTAwMDeCwrxcdTAwMTlmMeFcdTAwMThpc1oo4jIhKfaVstjoQuxvzWKlSPbXwjCIXHUwMDFmyWNj6oSyIKBcdTAwMDaYXGa4Rq1BP6JecnB00trcOIg/dLpcdTAwMTfRQrVcdTAwMTUt7p/VZ1tiga9cdTAwMTNailx1MDAxZVx1MDAxNoyQpLL6UzKlLeOUrzlHUZhbctuJqOy2Rq719EqFTkvKXHKszc2emuyaJn89XHUwMDE1n1qV4pNcdTAwMTIwS4KhKE/vw+fidW03WPu8XHUwMDE4n2yskm7oxiuwcjFVfFaDpFx1MDAxZU5cdTAwMTegXGLMXHUwMDE3sI2jYFx1MDAwYsBcdTAwMDdrXHUwMDAwXHUwMDBlXHUwMDE46SZBIViDlcXM5OmVbJxiLVsoonOff/2hXGJcdTAwMTU8XHUwMDE3XG5DXHUwMDEwVUI7oo1HyNqDj8dfN/e29o9rrV25X22ok+ZFOuNcdTAwMTSqXHSh3PmJ0FZgPz6Fk0yTTtRcdTAwMDDSoXIwWZHKQsWJcJo7LY7SVI4vvctow/Bj59PNTePkSFx1MDAxZtdkXHUwMDFhyeuj/NH7sDdYtnozbtx3162jk9O9s3W3ebPabS9H0fpRbVxu41x1MDAxZVxc2lgnu+vdbuv06KbWrkaVxS9TXHUwMDE4N1x1MDAxMYu7a7p73a0uimBccqOFq6MkfNi4P1OfcVx1MDAxY2CLuz3PtOMknSv1fytcdGB+XHUwMDBm8sH+v6c/R5fuILzYSJaXv8mNr8tcdTAwMWaa+Fx1MDAxNP9/OTFIXHUwMDExmJHKI1x1MDAwZjdotFXYv9cqODFcdTAwMDCJcJLiXHUwMDE2XHJKnKyqRSH/JFx1MDAxY5FAoTbDrq9GhCNaXHUwMDEyXHUwMDEypfZcdTAwMTnq1OOgiMaBe1x1MDAwNFx1MDAxNPNcdTAwMTXPK8nSZJVcdTAwMWXQPlG12vX16dWV82j0s65cdTAwMWO0WizpkkqqXHUwMDFmJ1kx9/Xti1x1MDAxY11fLiRUL1FfXHUwMDFlY91YfyyvM2N5zsgpXHUwMDE3cVx1MDAxMlx1MDAxZrFtNJ75puGQz5AzaoqGpFhILlrl5UH/JrBUyFx1MDAxYyl/LbRUjlx1MDAxN4A0TYdcdTAwMTRMKVx1MDAwM9qbwL3TjdhcdTAwMTK2wCygr1mSm4As5lx1MDAwNnfeKj2DW8mfXHUwMDEwnicpz6AssthUyjN9NYzxWd5cXLF04sjRXHSwSKvosyhX6HRbOaG1XHUwMDE0tMLcSFoqv4ty16GkPtP/XHUwMDE0v1GRpFx1MDAxNE/+XHUwMDFhQlI+2qvi66PJRHBRvlx1MDAwNy0tXHUwMDAy6TJ8uFx1MDAwMlx1MDAxZJ/vzCabUFRnVqLkQlx1MDAxOF82XHUwMDFjOEqFnFH+7LfiXHUwMDE1IdVcZuqO6ZBcdIlcXI1cXDiiK1/u1zmh5WSiSVxia0NiS1x1MDAwMknOQpefZFwifGFeSnzhWq8hXHSfz+gvJJNcdTAwMDXBOFx1MDAwN6X9Pr0vzXMwhV53dVjBJKfV5Fx1MDAxNq2gXHUwMDBi8Vx1MDAwZqWThVJI+WtcYkzT4lx1MDAxM/q6UjpcdTAwMDGabqD85OF0Ml7uzSadoOBcZik7MZrASIl4Plx1MDAxZlnB1UqGPkcznJxcdTAwMDcmPNNSTifCgKRcXNBcdTAwMThQhq5hOnGaXHUwMDE5yzVooD66uCi93MQ4KUjuvPBcdTAwMTY48WwhUfqVdELET5RqlSBcdTAwMTcyXHUwMDBlXHUwMDE1SDu8sVx1MDAwM5SeSG39XHUwMDA2trBEJ+pPzU9cdTAwMTZKQeWvITg9klDGnfU25Vx1MDAwNUjnOGWzSj9cXO+8e9+RJ1u1/dXDPX2o7OaOW4vWZ7tcdTAwMDBpLTGKXHUwMDEz4M9kcFxubv1cdFxuLVx1MDAwNVOI3FJWXHUwMDBmTqrJNqOnv4OjXHUwMDFjpZDS8Vx1MDAxNy5IvFR93I7ZwaEpsVx1MDAwNkE8/Fc4a0tcdTAwMWPW97pf4WN6utGtXWx+a698mHV0KkbLTlx1MDAxNEi5XHUwMDA2gFx1MDAxNP3o5JxZolHjiCAp6eJqXCJ4Trs+TvxOXGaCz1Et61x1MDAxMeBcdTAwMGKWx5dcdTAwMGU+qVxij2pfzO714spm6sT7z2dTPS06NZcqP1x1MDAxM81L/YlcIq3V1j7iV20gXHUwMDBmK9u4I1dWW1xi+1x1MDAxZuqmvlWd9Vx1MDAwNNJcdTAwMWHHSMWhXHUwMDA3LGVfgz/tIYeSVlxuJVx1MDAwNak9RD3ZhmiZQ4FcdTAwMWPhScPHi4TTmMmMXHUwMDE3/o3DbFx1MDAwMT3H01x1MDAwNMei5UxcdTAwMWWLllx1MDAxM1x1MDAxZosm2Vfu0UYryUWRf+/z6PErP5NcdTAwMWJIlKQy58/hWe6Esqb/LKFUlmlJoKNETpBUn/C3emVcdTAwMGUtNeNcdTAwMTJ96ddcdTAwMTOLtaMqTI5p64CYXHUwMDA30Vxuy4fL1UBcboe74n7f73+aUCik9MRcdTAwMWY/o1lcdTAwMTHaXHUwMDE16q4/a0bAgPJcdTAwMWLuzaFeilx1MDAxN09O92nL0eHmrvPDXHUwMDBmXHUwMDE0kvJcdTAwMDRcdTAwMDRlpY91nJOgXHUwMDFhoTv9sWhcdTAwMDQ0XHUwMDEyLYVcdTAwMDE0ZTaNTimHbPqdpGgplv01hOJ8tFfFV1x1MDAxZlxisvH9XHUwMDBl3U5KkOstXHUwMDA2oTqq3vF4/pDzl1HYfTfqUFF2+SnNptNzUOhcdTAwMWb1+49XP/5cdTAwMDf9rKKHIn0= + eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nN1ba1PbSlx1MDAxMv2eX0GxX7JVQZmenp7HrdraXCJAXHUwMDEyIIEkhEfYvUVcdFvGulx1MDAxONlYMlx1MDAwNlL579ujXHUwMDEwS35iwHidq6rEWCOPWjOnT/fpXHUwMDE5fX+xtLSc3bSi5T+WlqPrStiIq+2wu/zKn7+K2mncTLhJ5t/TZqddya+sZ1kr/eP164uwfVx1MDAxZWWtRliJgqs47YSNNOtU42ZQaV68jrPoXCL9t/9/J7yI/tVqXlSzdlDcZCWqxlmz/fNeUSO6iJIs5d7/w9+Xlr7n/5esq8bhRTOp5pfnXHIl84xcdTAwMWM8u9NMclPRgFIoqbggTtf5ZllU5dZcdTAwMWFcdTAwMWJcdTAwMWNcdTAwMTUt/tTyzVHjW/rh8tvVWmdlXHUwMDEzLivuNs4qxV1rcaOxl900cpvSJj9K0ZZm7eZ5dFx1MDAxOFezOrfCwPlxv2o3O2f1JErTvt80W2Elzm74XHUwMDFjid7JMDnLuyjOXFzzt1x1MDAxNSRcYozRXHUwMDE2XHUwMDE0XHRcdTAwMDWkLfXafVx1MDAwN0pjYKwxXHUwMDA0qFxmKlx1MDAwNFx1MDAxYbBsrdngeWDL/iHyo7DtNKycn7GBSbW4XHUwMDA2KFxmT2vFNd2751WOXHUwMDAyZVx1MDAxNZqi+3pcdTAwMTSf1TM/Q1ZcdTAwMDfWgHDl1jTKJ0FKJdChsr1cdTAwMDZ/x9ZmNVx1MDAwN8Ofg6NYXHUwMDBm26270VpO/ZeStd7QjUEkldFUmuco24mjzvY+2u3jXHUwMDE1p69cdTAwMWEnMvnQ66tcdTAwMGZ6Ybvd7C73Wn7c/VWY1mlVw5+IXHUwMDAyrZW1zilEXUxmI07OuTHpNFx1MDAxYcW5ZuW8XHUwMDAwYX72x6tcdTAwMDdDXyGNgz5cdTAwMTiwwlxiQzg19j9HX+S6uj7Z+bj//rB7e7xcdTAwMTFubX75f2JcdTAwMWbE/eBXJiBjlNRCXHUwMDAwgtF92EcnXHUwMDAztEJIxpfTxomnYb9cdTAwMTaeXG5BM8Q+XHUwMDFiXHUwMDA2zmk5Z/B/2aPdb2dfkpOVzurBxtbe5Zq4XGJnXHUwMDAyfidcdTAwMTCEdsrMXG78WXSdjUI+WT1cdTAwMGX5RjlcdTAwMTRcdTAwMGXE9MBcdTAwMGY7X96sn/zVXFz/lFx1MDAxY1x1MDAxY15cdTAwMWa9X9uBg/1FXHUwMDA3vjOBXHUwMDE10iBIYay1/cA3QFx1MDAwMbLzXHUwMDAzWCT2XHL5JNxcdTAwMWJHoiaHcVx1MDAwZsJcdTAwMGVcdTAwMDPewCDMXHJcdTAwMTFanlx1MDAxMjlflD9cdTAwMWbFe5QrIzU+XHUwMDAw5Vx1MDAwNZqaSbZcdTAwMTffRjk39J19XHUwMDFiXsSNmz5I5PBnXHUwMDAz9yrtKEqW4L/Jy3pcXK1GyT/LM5ZGfH/foe7/5WojPvPOstyIav1elMWch/Was2ZpjCtsScjdtTerg0/UbMdncVx1MDAxMja+jrfqcc4scfBsL4xJwVx1MDAxMVx1MDAxNTRO78375uhSf9zY77Rax1x1MDAxYmr9Q+Xdp92DRfdm61x1MDAwMs7c0Fx1MDAxMoJcdTAwMTamlNHmYVxmIVx1MDAwMD6pXHSdJkVmwLDZeLPEgkN63lxcOnfnzc5INIpU8Vx1MDAwNH+DmEXAMWPe3iyXXrJsik9cdTAwMWLRaG+W1PfLOXlz2aqJ3vxzmEe4M0hcdTAwMTiryEByIOC4Zd3U/jx55lx1MDAxZuDPg0HwXHUwMDE5/VlcdTAwMWFcdTAwMTegI63IXHUwMDAyXG7NwqvfobVcclBrw1x1MDAwZS9cZnu1XHUwMDFksGw2XHUwMDBlTcwpYCxY4lx1MDAxYilLati9rVxy2Fx1MDAwMK1cdTAwMDWRs5pMMSu9XHUwMDE0lXNcdTAwMGLBrPOI4J2bOcHdn8Uh0yxsZ2/ipFx1MDAxYSdn3Fgwya9cIsPmXHUwMDE0QVwid+FKx1spXHUwMDAyICdcdTAwMTWRIe2MoFwii/dDXHUwMDExtrzNXHUwMDAxWEdgXHUwMDE1XHUwMDAwZ0T8z9xd8aNnVZRU77dpsv4q2bRcIlx1MDAwMqktXHUwMDA3RkmsXHUwMDAwWVtcdTAwMTRT2zNKXHUwMDA1bKzjPEUgkVx1MDAwNlx1MDAxYTKpXHUwMDExptla8+JcIs545D814yRcdTAwMWJcdTAwMWPhfChXvZfXo3CIPviRym2DdNDyPfazevHXUuEv+Zfe33++XHUwMDFhefVYJPtjXGLDRW8vyp9cdTAwMGbmMSvV4NlCXZOQnsumT0smp6NcdTAwMGJKY1ZcdTAwMDZcbnlMNYNcdJ1cdTAwMTgoLVx1MDAxOWVcdTAwMDNOXHUwMDA2LFx1MDAwMiBKqfSAZbOhMe1cdTAwMDJLjkW+MMIyOVx1MDAxNNlPj8ZcdTAwMThcdTAwMWZSa9RSgTSWgIayXHUwMDE2Pq24XHUwMDAzVzTMhcZcdTAwMWWtXHUwMDEypqSxycq1j8a0sJxAslx1MDAxZZQkrChCTo8xjFx1MDAwZknA6aWQylx1MDAxOTPMXHUwMDE4U5HY5Fx1MDAwMmqfRUI58JmkYeJ0XG6HXGaC35qzxsLWXHUwMDFmK8OIfSBrTahcbqK1g2d/8ZZcdTAwMTSatJZaXHUwMDE1zHZcdTAwMWZvXHUwMDFkXHUwMDFkn7Z2d46Sd53uZbxSbcWrh+f1xZZT0lx1MDAxN1x1MDAwNa2vikhcdTAwMDPI6rF42p9cdTAwMTVxjlx1MDAxOMxZzjlmcKtK2vLxXHUwMDE1ca1nV1x1MDAxN3RcZlxmxYlXYfbMJNZ9VetcIrg8X9Vaq7H45CBvJUedkuy8XHUwMDBmn6s3tf1w6+NqcrqzyVx1MDAxMqGbbMiNy5nis1x1MDAxYab1aLZcdTAwMDAlXHUwMDE5+Gq14YzSSSlcdTAwMDb1vuOwKyVoSVpa1G5cdTAwMTZla5ph4Vx1MDAxYVx1MDAxNKB09LdFKKfwXHUwMDEzIOqs4ZS6NCn3Uuj7k6+7XHUwMDA3n1x1MDAwZU9qrX08rDbUafMyW3BcbiVcYiSwwPD5XHUwMDAwsc6wfVxiZXVcdTAwMTZYNJphoHkspHqagrWy4iCa5cKKk8Qp67xXXHUwMDE1bVx1MDAxNL3vfLi9bZxcdTAwMWXrk1x1MDAxYWYx3lx1MDAxY4tS8jOkOnotP15N6vfNTev49OzgfNvt3m522+txvH1cXJtBv0dXNtHp/na32zo7vq21q3Fl9fNcZvpNYXV/S3dvutVVXGK3KF65Pk6j6fr9lfxMSKpBkXOzYoFxNWks3WKQXHUwMDAxOIdcdTAwMTbOLzlOzVx1MDAwMFx1MDAwN/pjfOWOosuddH39L9z5uv6uSY9hgPmJP47BLLo5XHUwMDA2ScP6zyrqX2FcdTAwMDKBXHUwMDAxq0KNnGeRIXxiUZqD/mk0XCKFXCI9Qu6pXHUwMDExXHUwMDAxiaeEWN08Q1V6UkBcIuPkQ6BYzHhRN0ZcdTAwMTOw3VJqn6pa7fqu6VWRi1x1MDAxY/VXXHUwMDE1OWy1grTL6qp+kual25c/P3B0NbmUUs2jmjzBuon+OL6qLKRcdTAwMTnnkVx1MDAwZbyqsVxiUzvkZOabhUM+R9ZIQb7yXCJcdTAwMTh+7JdcdTAwMGX6PFx1MDAxMpVcdTAwMGWMVNJcbrCGR2QwWZiNQ8rAd65IaiMtII4qx1hcYtCh9oVtRCjLqztvRauUsihcdTAwMWVcdTAwMTGen1KNkYJF32O8dcpqzOQ8b6lcXPtw1i/PWyRnlFCmVFx1MDAxY7grflDgQPiLkKeKhFF3XHUwMDE3jCnH9D/Fb1QmXHUwMDE5jyd/XGZcIqno7UX58+FkXHUwMDAyOJZMkHNapUlOv0I1Od1ZTDLJa7esZNgvmEos9pdIULmAc2tcdTAwMGVK6FxmQmnpaJZcXMJcdTAwMTKDlPGb/zhX11xuzCguMYFcdTAwMTRaI0sySWxrSWjckVx0aM5CXHUwMDEwac6lXdJWPGdpd2oyWYFAXGJcdTAwMDOagHNcdTAwMTKWYkZccq9cdTAwMDZcdTAwMDFcdTAwMDSkUYBcdTAwMDSmXTBa3lPd/W3pZGU8pvwxhKaZXHUwMDExilBj97BIXHUwMDAw6YgjXlx1MDAwMe/7XHUwMDE4ZbLgW0xGUc7x4Fx1MDAxMvD4c0TTtj87YWhcdTAwMDZCXHUwMDBiqYDVXHUwMDA0S/bnYVx1MDAxNFx1MDAxOUiFTlxuScBcdTAwMTiQUMxJj1D4QVx1MDAwMrRcdTAwMTZ81d1cbjIwLCaQf1x1MDAwYqx45rzmLVxyZ26LwChcImCmUFx1MDAxY3ZcdTAwMDWLXHUwMDEyckppXHUwMDFjucDsl1x1MDAwNFx1MDAxZFx1MDAwZiA6nvt7XHUwMDE2vX9bRlx1MDAxOVx1MDAwYil/XGaD6YGEMmlzt1x1MDAxOb8rzvHAM6WUouG9jPK2g6efaoeb31x1MDAwZfQ3ZXf33Fa8vdg1SGtFQI65k4dXoFH9XHUwMDA1XGJOmlx1MDAwM0UkrCOUzPdP2+I6+0VcdTAwMWPlXGanTk7MuVwiMa9cdTAwMTK5nbCIw0NiXHKVd4Hdh86tNSG3XHUwMDBmul/l++xsp1u73P2rvfFu0dGpXHUwMDAynnZtNTglJVx1MDAwZYQ7Jlx1MDAwNlx1MDAxNuLaOMVRz5J4WrybdYGcc2ZmXHUwMDEweo5yWY9cdTAwMDDnWFx1MDAxZl87+qBiOq59Nvs3q1x1MDAxYruZg7dcdTAwMWbPZ/o2z8xcXGrsXHUwMDFl6PFvsbFcdTAwMGUjxYB8QHlL4rfKXHUwMDE32sONzVx1MDAxNsnDd3VT/1Rd9PzRKr9cdTAwMDea/FZcdTAwMTDk5N30rzixalx0UDtgb/Jh1j2PP0lcdTAwMWPhSMN7oMFvw9YkYM6vNDxcdTAwMWbOff6JVsHcX2nAhdxcdTAwMDSNT99cdTAwMDSt5Ng3lMDvpuO8xU6/e3DyzC/kXHUwMDAyktOatThnZiz6hHZyYI+DpkBzs3/ZXHUwMDAxbPlcdTAwMTW4WfqzNlx1MDAwMaHhXFxFaSWFXHUwMDFk9b6Sdax2jJBSOp/iXHUwMDBm+7q0QMKVV/vmolx1MDAwNlx1MDAxZu2NU6rBySGiT1xygmVJbDjHUY5cdTAwMTNaXHUwMDFjsVOPRZKvh3nbjeBcdTAwMTn/Vah94ObByWngUt9cdTAwMGVokFJZ0qAt+o1cYsVcdTAwMGJwPatkoLXlXHUwMDFjxzp/pVx1MDAxMlZcdTAwMGZZ9TtcdNGxWPbHIIqLzl6UP31cdTAwMTjIu/frc3tcdTAwMTlDrjdcdTAwMWKM6rh6x+LFMy5fxVH3zahNRfnhyTFcdTAwMWZNz0CRf9LvP178+Fx1MDAxZmL2nUwifQ== - Screen 1(hidden)Screen 2 (visible)app.switch_screen(screen3)Screen 3 (visible) \ No newline at end of file + Screen 1(hidden)Screen 2 (visible)app.switch_screen(screen3)Screen 3 (visible) \ No newline at end of file diff --git a/docs/reference/app.md b/docs/reference/app.md index 0321acaaf..3a797ce06 100644 --- a/docs/reference/app.md +++ b/docs/reference/app.md @@ -1 +1 @@ -::: textual.app.App +::: textual.app From 62f36b581d75991247cc657be02a64cb4fb5dcd1 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Tue, 4 Oct 2022 18:29:43 +0100 Subject: [PATCH 4/5] docs --- docs/images/screens/push_screen.excalidraw.svg | 6 +++--- docs/images/screens/switch_screen.excalidraw.svg | 4 ++-- src/textual/geometry.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/images/screens/push_screen.excalidraw.svg b/docs/images/screens/push_screen.excalidraw.svg index 5c2dc2dd0..7bfde1748 100644 --- a/docs/images/screens/push_screen.excalidraw.svg +++ b/docs/images/screens/push_screen.excalidraw.svg @@ -1,6 +1,6 @@ - + - eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nOVba1PbSlx1MDAxMv2eX0GxX+5Wxcq8elx1MDAxZbdqayuGXHUwMDEwSEJcYlx1MDAxOMJj91x1MDAxNiUs2dbFtowlXHUwMDAzJpX/vj2CWLJlXHUwMDE5v3CcrKtcdTAwMTKDRoxaM6dPn+6Z+fZqY2Mz7nf8zT83Nv37qttcZryue7f52l6/9btRXHUwMDEwtrGJJb9HYa9bTe5sxHEn+vPNm5bbvfbjTtOt+s5tXHUwMDEw9dxmXHUwMDE097wgdKph601cdTAwMTD7rejf9v/Pbsv/VydseXHXSVx1MDAxZlLyvSBcdTAwMGW7j8/ym37Lb8dcdTAwMTH2/lx1MDAxZvx9Y+Nb8n/GOi9wW2HbS25PXHUwMDFhMuZJNnr1c9hOTKVKXHUwMDE4IY0kcnBHXHUwMDEwbePTYt/D5lx1MDAxYVrspy320iY0L+TD2VnJKz/0/y5Varp58pWmj61cdTAwMDXNZiXuN1x1MDAxM6OiXHUwMDEw3yVti+JueO2fXHUwMDA2Xtywz1x1MDAxZble9FfdsFdvtP0oXHUwMDFh+puw41aDuI/XgFxmLrrtetJFeuVcdTAwMWV/XHUwMDEzVDrEXHUwMDEwXHUwMDA1mlLQQqed2D9nQjuEXHUwMDFhYVx1MDAxOFxiJlx1MDAwNWVqxK6tsInTgHb9gySf1LIrt3pdR/PaXnpcdTAwMGZcdTAwMDXXvaql99w9va0w4FxiLbiCQVPDXHUwMDBm6o3YmqClo1x1MDAxNSUm21x1MDAxYfnJXHUwMDE0UGGktZ2mLfaRnT0vXHUwMDAxw1+jg9hwu52nwdqM7C9cdTAwMTlzraXvRpGURVNmmv097/y8cixcdTAwMWX2jo4+xie+Zy637lx1MDAwN31cckHP7XbDu81By/enn1LTelx1MDAxZM99XHUwMDA0XHUwMDE0lVJorZRWxKSgbFx1MDAwNu1rbGz3ms30Wli9TjGYXFz9/npm6Fx1MDAwYiZcbqFPXGKTklxuLqaG/lx1MDAxZDRcdTAwMGWvXHUwMDBm6tHhx86pJlx1MDAxN+zuavtj72dCXHUwMDFm3+E57DPiMEOowFfVUqvM2yZcdTAwMWQo6VxipVxyMKqFUYouXHUwMDA2/pp7RVxiLFx1MDAxMfxcdTAwMTJcYlx1MDAwM6MlXS34I3lcdTAwMWVUyvf1rfKOvi93O5fS3Fx1MDAxZS1cdTAwMGL8mnJgZFngj/37eFx1MDAxY/JBQiHytVx1MDAxNlxifsTD1Mjn7Uok/Zb+Uql3y3vnip9cdTAwMWOwn0r6zyNfc3C05ExqXHUwMDEw6ORghoBcdTAwMGZAXHUwMDFjwlx1MDAwNOWa4T9cdLBcdTAwMTDulVx1MDAwMVJjedxTovOAVzRcdTAwMDdzXGY+hHNB+O/C8Vx1MDAwNrnVXGLGYVx1MDAwNpinaFxu23ElePBcdTAwMTNyXHUwMDE4urrjtoJmf1xiXHUwMDEyXHT+0cBKtev77Vxy+t/2XHUwMDFmjcDz/PY/s1NcdTAwMTb5+HzboVx1MDAxY/7Lt82gbr1ls+nXht0oXHUwMDBlUIhccprjMDPGVbTExe66e97oXHUwMDFihd2gXHUwMDFltN3mcbFVc3mzZHz06lx1MDAwZm/mXHUwMDA2w5hcdTAwMDE6fVx1MDAxOLs42blzO1x1MDAwN0f3N7tw3Lo6L/Hwes2dWSjlSKlcdTAwMTlXXGb1KmrWdDhsXHUwMDA3kjtcdTAwMDIkurFk6M+GZuTsMt2Z8bTfgTtnrj25syRcXFOrcX6XoGVcYidEXHUwMDEyNUvQWoo3s40/MG9cbq6a/nhvZjD0lyvy5qxVXHUwMDEzvflxmMe4M0VJVuTPiFx1MDAxZYHeTFJ5/Jw/T574XHUwMDE5/JmNQvPF/Fx1MDAxOThDj1x1MDAxNVx1MDAwNnlLSnTq4ZSMUuZcdTAwMDDHXHUwMDAwrlx1MDAwNFVcdTAwMWNl6ahhy3FnaVBcdTAwMWFjPshcdTAwMTmSXG5BWZZ3bqNcdTAwMWSlXHUwMDA0Q96xSVx1MDAwYqq3XFzoZsBcdIY6Pkd6lpg5wdlfxFx1MDAxZKPY7cbloO1cdTAwMDXtOjamPPKjxrA3RYxIXHUwMDFjuNqzVlx1MDAxMkdcdTAwMDKlXFwpg9lcdTAwMDXq9TRPtUPhdqzN3MHRXHUwMDE1hmKigf8w53q64/vAKr/tPW/T5PRryCaCXHUwMDAyl1wicFx1MDAxNEo/Q1x1MDAwNTM5o9AmyZOUh1x1MDAxMsbR9JxNTTeKt8JWK4hx6L+EQTtcdTAwMWVcdTAwMWTiZCzfWidv+G6OPfCdsm2jbNCxPVx1MDAwZZN6+tNG6i/JL4Of/3o99u5CKNtPXHUwMDBlxGlvr7LfM9NcdTAwMTjK61wiXHUwMDE2M9xohFx1MDAwNJs+xZgsRteSxbRcIo5ALrdFI+RcdTAwMTiRskOSYnDlXHUwMDAwKjMpMNViLDNWyyQxTOBcdTAwMTHsmlNNjObGpG+SJlx1MDAxY2glZjrWO1x1MDAxNXA0Z5TEUEJSXHUwMDAysFJcbmNcdTAwMDZzXHUwMDFlOld+MCWFTc5Zh+iCXHUwMDAzQc3GkCfsN5JZnsOSeFx1MDAwNVx1MDAxOI1wQpFSfvjQjFx1MDAxNDa5eJqxqYRGUVxmkFx1MDAxMozWKHwz+evAJukoKSix0yqIxFx1MDAxY1x1MDAxNn5pXHUwMDBlK1x1MDAxNUL5sXVcdTAwMTTFM7LYhCoh14VqjEpObSqbKTI/R2Tuh8P3/befLrY/XHUwMDA2XHUwMDE3/f7lZfuheUjWO71CXHUwMDEwXHUwMDAx4lx1MDAxYoQkXHUwMDE4ormWKW0nJXJgjjJUYlx1MDAxMOFcdTAwMWGMMSOGzVMhl3KJZUKCxlx1MDAwMVx1MDAwN/ZcdTAwMDI18uJCnuUvM1OFY158QiayjOBTYEJsjZk+zkYgTy/LfVx1MDAxNe3fXHUwMDFjlEVnt3bXV/trXHUwMDBmT+NcYs7AVi1cclx1MDAwMFx1MDAxYlx1MDAwZbRcdTAwMThdXHUwMDFkQrCdo5YzXGLQxdKFZVx1MDAxN7ExQ1x1MDAwMCCojFdcdTAwMDdOXHUwMDFiXlx1MDAwNepcdTAwMTGzXHUwMDAycE4oTVx1MDAwMedSUqL01ODc8tphvHW5e2CirYdr/5zG9aC57uBkzKE2XcVgjemsXHUwMDE5zmVLXHUwMDEyw7SmXHUwMDEyXHUwMDE1XHUwMDE2UVxiXHUwMDFlJVx1MDAxNlx1MDAwMqdmVUP9JVInXHUwMDE3mLpcdTAwMTFNVry8qH1/t/fp4aF5dSEvazxcdTAwMGV4/4JkhFAu/Vx1MDAxOLR8fz2p34Po4IjdXXfjzm3pS23/+uv9e/Z5XHT9eurmxv8gP0NcdTAwMTjQk3Bn/2a/9O5kXHT93pS/XHUwMDFjeOL0tHV/trNdhS68f+v3l1WC11KB4cvigKLaNOe0iFx1MDAwMFx1MDAxNGZcdTAwMTVcdTAwMWNFXHUwMDFin5pcdTAwMDAu3Xfnf/fvakfR9sHp7u11fFXZ313vLFx1MDAxMO/QmOhpTmxcdTAwMTLFyMhcdTAwMTJriVxu5jAkQoZEKDEpNosxXHUwMDAwY/rKXHUwMDFmI54gs9Q9cH2Rc3hhXHUwMDE3vVHmrVQqKVx1MDAwNYTOXHUwMDE0jdJcdTAwMTlPy8eYT2NqgJk0KlSqpVx1MDAxObpnUExOsfajmOx2Ok6nXHUwMDE3NS6jpH77x+NcdTAwMTdcdTAwMWZfUs6U81dRUi60baIrXHUwMDE2VmT4XHUwMDA0pSgpxTRmeqE4mfKW4YqeXHUwMDFiNfxlXHUwMDA3Y+lgqOVcdTAwMThoNVGEXHUwMDBlXHUwMDA3Y1xyXHUwMDBlUGJcdTAwMTN8gm6o9WKrvkWeSFx1MDAxZGZdXGZzcy2ofcpcdTAwMTjHpJQjKVx1MDAxOJA4I4YoxnKrSDhbXHUwMDE4llx1MDAxOVx1MDAxMXMsXG4vUpZcdTAwMTG2pjCPp05Zlpks8TayZVx1MDAxOaNcdTAwMDVhQjBMtZA/0iHa+FFcdTAwMDFcdTAwMDFHcibsjFKkP1x1MDAxY8SnXHUwMDFiXG6qMsNv8Vx1MDAwYpVGilx1MDAxMZW05rCU9vcq+z0znWT3yuV2XHUwMDBl2lwijGYziPvJWmdNXHRcdTAwMDUoOJhSctBcdTAwMWNcdTAwMDSq/HRRNyFcdTAwMTSBylopXHUwMDA2ICkg4yxW4y1cIlx1MDAxNOZcdTAwMDDm+VowdFx1MDAwN8qlXHUwMDFlo/EppY6yXHUwMDFiuYTBl0KSy4iMXHUwMDFmSl/hnMFcXHupXHUwMDE24Vx1MDAxM1x1MDAxY7bM3oSfyCclJFx1MDAxNMOI3Vx1MDAxMmRcdTAwMTmDS5Mv82LwYKDsTdJITYT5TVx0pVx1MDAxMFH2k8fSsvhcdTAwMDSzgUI+XHUwMDExXHUwMDA0XGJndIZC6+RcXG9N+YRJ5SghtJSYXHUwMDE4gVx1MDAxY6ZcdTAwMTPGjGP381xiiVx1MDAxM6MlXHUwMDExi1Wyilx1MDAwNYohhOLjMVshPLtbJuVcdTAwMTNCXHUwMDFjVFHYg13Hs6u3o3yiXHUwMDA0XCJcdTAwMDNTu7RhJXSiMHVJQ85PlScozrix21x1MDAxMyQgVeCk5ujEOFx1MDAxNFx1MDAwN1x1MDAxME3G4IGzqp5ZNfpl6aRcdTAwMTBQSWNcdTAwMGVKM9LJpP3dxbtcXJHdXHUwMDE0iqZcdTAwMTkq45/PXHUwMDA0O1xyy6XD02PzcKq8Y3L+tTZcdTAwMGafrLD4iFx1MDAxMsxcdTAwMTGgtVx1MDAxNFx1MDAwMkdemXQ4XHUwMDEyPpHUwVx1MDAxMdBcdTAwMWNVoWac8cVKXHUwMDBmL7Byg1FIiKFMbCXlx8rFwdvmfsU/6XWgfOR9Pt27+lx1MDAxMi6r7KasvFjF6Vx1MDAwNslcdTAwMGLDqeBgpFx1MDAwMjn9LrLGTandPdw6fn96XHUwMDFkXl5GrXJPbH9cXHf0XHUwMDAzZj5cdTAwMDRcdTAwMTSl+LJMjFx1MDAxZW4wxOF2z1x1MDAxMaZGROKsrNe6XHUwMDEwpYxgXHUwMDEwNWqOXGK6wMKQMsjEs1xi8nnRqYqPnVx1MDAxOSYkavFcdTAwMTm4+cuH81x1MDAwZfm6d9Z7e14/61e93k2nP1cxaqXoZKhcdTAwMTFwsLmUitPMcDx2IFx1MDAxY6BMXHSGXHUwMDFhXHUwMDAxQJnFcselL1xmMbuqrs2KjyQssC70LDFz1ChEL42Yi9ZDXHUwMDE4LU5yXGZcdTAwMTEogJSZfrN+Nd7dia5uXHUwMDAzfV9mXHUwMDBm4U4zuql0Yd2TXHUwMDFjrbRjXHUwMDE3QlCYXHUwMDE4KVx0XGarklx1MDAxMkO/XHUwMDAwxUWSalx1MDAwYiZcdTAwMTc7dFaE/Ozpk1x0u/UpXHUwMDAxrlx1MDAxNFdsxUhcdTAwMTdRuH2/v39C4+NDv/xpt6rUycFSkK7trmqq2FxcVZdFtuvztdyuz1x1MDAxN96uXHUwMDBmqrhcZmpZnjMyQyibPPHrucRpJHGYYsBcdTAwMTFWIMywzmLSocagkiH2KFx1MDAxMlEvXHUwMDEzyDjHp0jBXHUwMDE0t1x1MDAxOVxyjDuKY4SjXHUwMDE5pkR2JzRViuR9nVx1MDAwMVxijS1zXHUwMDFjzVlot/6McSdjx1RFi8lBYiNbtMBcdTAwMDRdMkNRLNuahMjssUx3ujKQmljbXHUwMDE1sYdcdTAwMTKf7vjdilx1MDAxNqVCRNlPXHUwMDBlS2l3r7LfM6tcdTAwMDNeqIo1p5ihKzp9XHUwMDA19Pjwfa+kjk53vn76VL+rX57+LVXRVtOGW230uv466GJlXHUwMDBiQsCMJlx1MDAwMoRcdTAwMWPJ2lx1MDAwMFWzYYBcdTAwMTKCc4Pq9WXEgVx1MDAxZbNPfow2XHUwMDAwTOSp9eDVaoNaXHUwMDE3WbRzXHUwMDA2x+9cdTAwMWE7R19cdTAwMGZZ7eid35lOXHUwMDFivJ7U74uWPYyxXHUwMDBiZCvTXHUwMDFjj+dp10FnPFkyn7ZQ6dmkXFyWLOyeITrDXG7rZNzMxFx1MDAwNytcdTAwMTRcdTAwMTfSKFx1MDAwN6HD8FXtcX0zcoxGMFx1MDAwN6RcdTAwMDBqV00wj12siFOYLIBDsXNNKcdsnPBx8oJK7YBSWnLDmULQZ4TO05qIXbshKjNjqzlJM6/jTSkvJoeZjeFTK0YrkFx1MDAxY1x1MDAwN9DuXHUwMDEwgDGbNijeJClPjlx1MDAxYVx1MDAxMNBcdTAwMDC/q8AoxpT9lPJwmlFiXHUwMDE0cookhZxcdTAwMDLSbkbmfHqNMTlmrCunqGTw7bE2wqRVVSOcYlCB2GNGWlx1MDAwYsVeaE+2XHUwMDE2jk1ccpU0XHUwMDA0s1x1MDAwZVx1MDAxY/Y8paBcdTAwMWR2p1x1MDAxYUpQpDeU3Cxfh8OEylx1MDAxZXvK5Fx1MDAwZv9/nMJwXHUwMDFhja1cdTAwMThpXHUwMDFjXHUwMDBiSfOcwlx1MDAxZLvJVGFcdTAwMTIqlNRcZvXjZE4psmryXHUwMDEy4IhVhFxizYlcdTAwMTFUIZVcdTAwMTk+hulcdTAwMWNbXHSTmFx1MDAxY2NcXDCYTfzaXHUwMDA39Fxu8Ww/pTyUi+js1dNcdTAwMTPs5tdKjLhcdTAwMWJMXGJCO/CelGD6mpu3gX9XXHUwMDFlt1wik3ys8EpcdTAwMDbUcpFvX/bb91ff/1x1MDAwN+81ULcifQ== + eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nOVcXG1z2khcdTAwMTL+nl/h8n3Zq1xu2nnr6Zmturpcbk5cdTAwMWN7XHUwMDEzx/Fb/HK35ZJBgNaAMFx1MDAxMrbxVv779chcdTAwMGVcdTAwMTIvXCJgMEtyVGyMRkitmaeffrpnJn+92tjYTPqdYPO3jc3gvuI3w2rXv9t87Y7fXHUwMDA23TiM2tQk0s9x1OtW0jNcdTAwMWJJ0ol/+/XXlt+9XHUwMDBlkk7Tr1x1MDAwNN5tXHUwMDE49/xmnPSqYeRVotavYVx1MDAxMrTif7vfn/xW8K9O1KomXS+7SSmohknUfbxX0FxmWkE7ienq/6HPXHUwMDFiXHUwMDFif6W/c9ZVQ79cdTAwMTW1q+npaUPOPLSjRz9F7dRUY5hgWqFcdTAwMWGcXHUwMDEwxm/pZklQpdZcdTAwMWFcdTAwMTlcdTAwMWNkLe7QJjQv9MPZWalafuj/WTqqmebJXHUwMDE3nt21XHUwMDE2NptHSb+Z2lx1MDAxNEf0KFlbnHSj6+A0rCZccmrlI8eLvtWNevVGO4jjoe9EXHUwMDFkv1x1MDAxMiZ9d4yxwVG/XU+vkVx1MDAxZLmnT4prjzFccmgtN1x1MDAwMCx7WPd9oYzHuFVWgFx1MDAxMlpxgSOGbUVNXHUwMDFhXHUwMDA2MuxcdTAwMWYsfWWmXfmV6zrZ165m53Dw/aua1tlZd09cdTAwMGasLHjKKIkwaGpcdTAwMDRhvZE4I4z2XGZyZvOtcZCOXHUwMDAyV1ZbhsCzXHUwMDE2d9PObjWFw1x1MDAxZqP92PC7naf+2ozdh5zBztZ3o1jK4yk30sFu9fz86Fg97Fx1MDAxZVx1MDAxZX5IToKqvdy6XHUwMDFmXFxrXGJ8frdcdTAwMWLdbVx1MDAwZVq+Pv2VmdbrVP1HTHGtlWVcdTAwMTJcZkeW9XQzbF9TY7vXbGbHosp1XHUwMDA2w/To19dzg19cdFVcdTAwMDR+Qo7Qmis5O/rvoHFwvV+PXHUwMDBmPnROXHK7XHUwMDEwd1dvP/TWXHUwMDFj/YJ5wjKu6FGNNiiH4c9Re1xujVx1MDAwNcGNsoh8MfjX/CvGYIng18BcdTAwMDRYo/lqwVx1MDAxZuvz8Kh8X98qb5v7crdzqe3t4VLAb1xmXHUwMDFhLkGwZYE/XHTuk0nIXHUwMDA3XHKFyDdGXHUwMDEx+Fx0XHUwMDBmMyNfto9iXHUwMDFktMzno3q3vHuO8mRfrDnvXHUwMDFiXHSe0VJoXHUwMDAzipxcdTAwMWPsXHUwMDEw8ClcdTAwMTB4TCgujaBcdTAwMWZccrBcdTAwMTDu0Vx1MDAwMquJcdxzZsZcdTAwMDGPfFxm5lx1MDAxNH6YlIrJn4fjhbZKSJhcdTAwMDPmXHUwMDE5mqJ2clx1MDAxND5cdTAwMDQpOVxmXHUwMDFk3fZbYbM/XHUwMDA0iVx1MDAxNP9k4FGlXHUwMDFiXHUwMDA07Vxy/t/2L42wWlxy2v/MXHUwMDBmWVx1MDAxY9D93Vx1MDAwNfXwN980w7rzls1mUFx1MDAxYnajJCQpNmhOolxcXHUwMDFmV8hcdTAwMTKfLtfdrY4+UdRccuth229cdTAwMWVcdTAwMTdb9Sxv1kZcdTAwMTR7M1xigUTgXHUwMDE5/L/nzVx1MDAxNyfbd35n//D+Zlx1MDAwN45bV+clXHUwMDE5Xa+5Nyu0XHUwMDFlSoZWUawg+squ4r5P4cVcdTAwMTDgkFx0ozSSWHpcdTAwMTFvXHUwMDE2MiPMgTfnjj15s2aS5FxymiyU/uAxy1x0Nupblj3pipxZbPxCiVN41VxmJjuzgKFvrsiZ81ZNdebHbp7gzVxc5eLCqDtTTFKkj0Xm8N9z5+kjP4c7i1Fsvpg7g9RcdTAwMWVcdTAwMThtKTZLhZSaXHKrUqU8y8iVXHUwMDA1Q2lAczli2HL8XHUwMDE50JOcXiR/XHUwMDE13Vx1MDAwYsxcdTAwMDT3RuY5cVxmkqhF0082bt9it6A2inXyXHUwMDE5+Vlq51x1MDAxNHf/nkPOk0Hl7PC7STlsV8N2nVx1MDAxYTMm+VZm2J0hRqQuXFzpOSuZp4FzSYNI6Vx1MDAwNVx09ixRdV3hd5zN0mOGRFx1MDAwZadMg34o6Xo64+vAqqBd/b5N0/OvIZtcdTAwMTgpXFxOXHRccpL2s1xcXHQ7Zlx1MDAxNNmkZZrzcCYkmT5mU9OPk62o1VxuXHUwMDEz6vrPUdhORrs47cs3zs1cdTAwMWKBP8ZcdTAwMWb0TPm2UT7ouCtcdTAwMGXTevbXRuYw6YfB33+8nnh2MZbda1xmxdnlXuXf52Yyul0hkZGsZsRcdTAwMDSQucz3iGy6XHUwMDFlXUtcIjPUtYpcdTAwMGLrKkdEMyp72DTLkOhRzoeugEN5iFUjdi2HxzR6hmv6p4GowfKMTFx1MDAwNzRmXGJcdTAwMDCaXHUwMDEyaVdH4qBzicZcdTAwMTONSUtcdTAwMDJcdTAwMTJgxSSGXCLPqMsnselp61x1MDAxMGFI5ViCXHUwMDEzYl1HWZM76YnEhCdcdTAwMTEoWilwWog/l8Sml1BzNpXIKGlpXFy4pZtcdTAwMDGiVuNGecagdIqBMkgk++GHZrFSIZTT1jFcdTAwMTTPSWNTXG6F0rDRo1x1MDAwM1wi05K7bFx1MDAxNmZPsPzfXHUwMDBm3vfffLx4+yG86PcvL9tcdTAwMGbNXHUwMDAztt5cdFx1MDAxNiFcdTAwMWY8XHUwMDA1oDSjIE3cnYmhtE5cdTAwMGXCQ8s1UlJPRJZcdTAwMTNsa1ImJ7BokCBeoExeXFzLI6fjdq5cIsdz8Vx0qjBjUOT3zpjZq3kx6NPLclx1MDAxZuO9m/2y6uzU7vq4t/bwtJ6SXHUwMDAyXFzh0lx1MDAwMojhQMuN8Fx1MDAxOKN2XHUwMDEyQYyyXG47qlx1MDAwMP7eOjblXGJcdTAwMDBMw1x1MDAwYpSxp1TgrFwiPWJXXHUwMDAwTi1kXHUwMDExOEFKrTnD2UXgVrVcdTAwMWQlW5c7+zbeerhcdTAwMGXOeVJcdTAwMGab61x1MDAwZU4hPFLXRlJ4XHUwMDAyru1wdaqktYdcdTAwMTTTSGExJPDgYjLQiIrlwVx1MDAxMqkzzcCZYSueYTRBsNP7+PDQvLrQlzWZhLJ/wXJCaCz/XHUwMDE4tHx9Pe26+/H+obi77iad29Ln2t71l/v34tNcdTAwMTKuW8Wbm+B3/Vx0opCfRNt7N3uldydLuO5N+fN+VZ2etu7Ptt9WoFx1MDAwYu/fXHUwMDA0/WVV4Y1GsHJZXHUwMDFjUFSelpJcdTAwMTdcdTAwMTFcdTAwMDBSVkHaWsqZXHTg0n93/mf/rnZcdTAwMTi/3T/dub1Oro72dtY7XHUwMDBipDOMR1x1MDAxOZ5kLolcdTAwMTJsZJa1RKmFJ4hcYkmju0lYu2BcIkhZ01UwQTxBbrZ74PpqzOGVm/cmmbdSqYRcYozPXHUwMDE1jbJcdTAwMTHPSsiUT3NDbKtJoXKj7dA5g4JyhrVvXHUwMDA1Zb/T8Tq9uHFcdTAwMTmnNdxfXHUwMDFl3+TksnKupL+KsnKhbVNdsbAkI6coRZe1XHUwMDAym10oTqe8Zbhi1Y9cdTAwMWLBsoOx9ijUSlxutIYh48PB2IBcdTAwMDecXHUwMDE5amTkhsYsNvFb5IncXHUwMDEzzsW04kZxd5dcdI7JuSRSsKBpRCwl72JsJom7iVx1MDAwMiZI187vqc8vy5BuJLvnWaCQs2Omssx0ibeRL8tYo5hQSlCqRfwhclXNp1xuXGJ4Wlxu5UaUXHUwMDEz/VEnPp1QUJVcdTAwMTl+ilx1MDAxZqg0UoyotHVcZkvZ9V7l3+emXHUwMDEzZVxuQztHkETtYlx1MDAwZXE/XeusKaFcdTAwMDBcdTAwMDePUkpcdEaCXCKVn027pISiSFkjXG5cdTAwMDDNgVx1MDAxOGexuapcIkJcdTAwMTFcdTAwMWVQnm+UIHfgUptcdFx1MDAxYZ9z7qFby6WsK7vz3ErHgdJHXHUwMDFhM3jWcqpF+IS6jWfG/I18UlwiQrGCuVVBjjGktpg765FQKHhcYkB3krbaMGV/UkIpRJR7jWNpWXxC2UAhnyhcdTAwMDZMXG4+R6F1eq63pnxcIjR6qJTRmlx1MDAxMiPQw3RcIoT1pFx1MDAxNVppXHUwMDFhXHUwMDE4o5larJJVLFAsY5xuT9lcbpOcTZj6pifxSEXRXHUwMDE1LKUsbv52lE9QXHUwMDExMii1y1x1MDAxYVZCJ0ipy0vOXHUwMDFhzSFPSJxJKy2iXHUwMDA2olxuXHUwMDFh1DE6sVx1MDAxZadcdTAwMGUkkyl40Kjit6nXn41OXG5cdTAwMDGVNo5BaU46mbbEu3ihK7FcdTAwMWKSaJqjMv7pTInTqFxcOjg9tlx1MDAwZqdYPWbnX2prXnwkXHTmKTBGK0U9j7lcdTAwMTn5lE8096hcdTAwMDeMJFVohFx1MDAxNHKx0sNLbHBAXHUwMDEy+EOZ2ErKj0dcdTAwMTf7b5p7R8FJr1x1MDAwM+XD6qfT3avP0bLKbujkRcbcL1h6l4XhVEmwXHUwMDFhQc++kKxxU2p3XHUwMDBmto7fn15Hl5dxq9xTbz+sO/qBMlx1MDAxZlx1MDAwNsg5PaxQo/tcdTAwMWIs86RbdUSpXHUwMDEx0zQq6zUvxLlgXHUwMDE0RC0+I4IuMDGElph4XHUwMDFlQf5cXHSiLlxctmyF0qTF5+Dmz7+fd9iX3bPem/P6Wb9S7d10+s8qRq1cdTAwMTSdgjRcdTAwMDJ1ttRcdTAwMWElz3XH41x1MDAwNZRcdTAwMDdcXKBcdTAwMTKkXHUwMDExXHUwMDAw0C6WOy59Yki4WXVjV7wrYYF5oe9cdTAwMTKzJI3CzNKIuWg+RPDiJMcyRVx1MDAwMlxi7ezbzirJznZ8dVx1MDAxYpr7sniItpvxzVFcdTAwMTfWPckxaDw3XHUwMDExQsLEas1gWJWUXHUwMDA0+Vx1MDAwNaBUaaqthF5s31lcdTAwMTHy81x1MDAxYlCmrNjnXGYkokSxYqSrOHp7v7d3wpPjg6D8caeCeLK/XHUwMDE0pFPmzjVH8ayqy1wiS/blWi7Zl1x1MDAwYi/ZXHUwMDA3LC6DOpaXgs1cdTAwMTHKplx1MDAwZvx6TnFazTyBXHUwMDAyJMFcbpRcdTAwMWTZRq09bi0pXHUwMDE5Zlx1MDAwNXk7vkwgk5LuopVA6TJcdTAwMWGYtFx1MDAxZMcqz1xiSomsUW5cdTAwMTNcdTAwMGVcdTAwMWL3dVx1MDAwMaBcZua3XHUwMDFmr2Kp69xxJ2fHTEWL6UFiI1+0oFx1MDAwNF1cdTAwMGLLSSy7moTiuZNcdTAwMDZLXVx1MDAwNWjDnO3I3L7EpzN+tqJFqVx1MDAxMFHuNYal7HKv8u9zq1x1MDAwM1moio3klKHjXHUwMDFje/mOXHUwMDBm3vdKeHi6/eXjx/pd/fL0T41FS01cdTAwMWJ+pdHrXHUwMDA266CL0Vx1MDAxNYRAWMNcdTAwMTQoPZK1XHUwMDAxqWYrgCSElJbU68uIg9zE1jRtXHUwMDAwlMhz58Gr1Vx1MDAwNrUusWjnXGaO3zW2XHUwMDBmv1x1MDAxY4ja4bugM5s2eD3tui9a9rDWTZCtTHM8bqldXHUwMDA3nfFkyfO0XHUwMDA1isL/ocWme+D4XHUwMDFjM6zTcTNcdTAwMTdcdTAwMWasUFxcaItcdTAwMWVBR9Cjulx1MDAxZPt2ZFx1MDAxYo1cdTAwMTJcdTAwMWVoXHUwMDA13M2aUFx1MDAxZbtYXHUwMDExpzBZXHUwMDAwj9PFXHLnkrJxJifJXHUwMDBiro1cdTAwMDeIRksrXHUwMDA1XHUwMDEy6Mc20qCbu2GYXHUwMDFisZXMiTzb8WaUXHUwMDE308PMxvCuXHUwMDE1t0NDS+pAt0JcdTAwMDAmLNrgdJLmMt1qwMBcdTAwMDD8rFx1MDAwMqNcdTAwMThT7lVcdTAwMWGH05xcdTAwMTKjkFM0K+RcdTAwMTTQbjGylLNrjOkxY105XHUwMDA1085329qY0E5VjXCKJVx1MDAwNWKYNcYoXHUwMDE0L7Qm2yjPpYaoLaOsg7p9nFLIXHUwMDBlt1KNJCjRXHUwMDFiSW4xXoejhEpxQlHWef9/nFwiaFx1MDAxOK2rXHUwMDE4XHUwMDE56lx1MDAwYs3HOUW6rXCIlIQq1EaQfpzOKUVWTZ9cdTAwMDJcdTAwMWOxijFlJLOKI1GZlVx1MDAxM5jOc5UwTckxxVx1MDAwNUvZxI+9Qa9cdTAwMTDP7lVcdTAwMWGHclx1MDAxMZ29erqDW/x6lFx1MDAxMO5cdTAwMDZcdTAwMDNC0Fx1MDAwZatPSjB7zM3bMLgrT5qRSV9OeKVcdTAwMWTquChwXHUwMDBm+9fXV1//XHUwMDA3mNhRliJ9 - Screen 1(hidden)Screen 2 (visible)app.push_screen(screen3)Screen 3 (visible)hidden \ No newline at end of file + Screen 1(hidden)Screen 2 (visible)app.push_screen(screen3)Screen 3 (visible)hidden \ No newline at end of file diff --git a/docs/images/screens/switch_screen.excalidraw.svg b/docs/images/screens/switch_screen.excalidraw.svg index aa3638a0b..02340e556 100644 --- a/docs/images/screens/switch_screen.excalidraw.svg +++ b/docs/images/screens/switch_screen.excalidraw.svg @@ -1,6 +1,6 @@ - eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nN1ba1PbSlx1MDAxMv2eX0GxX7JVQZmenp7HrdraXCJAXHUwMDEyIIEkhEfYvUVcdFvGulx1MDAxONlYMlx1MDAwNlL579ujXHUwMDEwS35iwHidq6rEWCOPWjOnT/fpXHUwMDE5fX+xtLSc3bSi5T+WlqPrStiIq+2wu/zKn7+K2mncTLhJ5t/TZqddya+sZ1kr/eP164uwfVx1MDAxZWWtRliJgqs47YSNNOtU42ZQaV68jrPoXCL9t/9/J7yI/tVqXlSzdlDcZCWqxlmz/fNeUSO6iJIs5d7/w9+Xlr7n/5esq8bhRTOp5pfnXHIl84xcdTAwMWM8u9NMclPRgFIoqbggTtf5ZllU5dZcdTAwMWFcdTAwMWJcdTAwMWNcdTAwMTUt/tTyzVHjW/rh8tvVWmdlXHUwMDEzLivuNs4qxV1rcaOxl900cpvSJj9K0ZZm7eZ5dFx1MDAxOFezOrfCwPlxv2o3O2f1JErTvt80W2Elzm74XHUwMDFjid7JMDnLuyjOXFzzt1x1MDAxNSRcYozRXHUwMDE2XHUwMDE0XHRcdTAwMDWkLfXafVx1MDAwN0pjYKwxXHUwMDA0qFxmKlx1MDAwNFx1MDAxYbBsrdngeWDL/iHyo7DtNKycn7GBSbW4XHUwMDA2KFxmT2vFNd2751WOXHUwMDAyZVx1MDAxNZqi+3pcdTAwMTSf1TM/Q1ZcdTAwMDfWgHDl1jTKJ0FKJdChsr1cdTAwMDZ/x9ZmNVx1MDAwN8Ofg6NYXHUwMDBm26270VpO/ZeStd7QjUEkldFUmuco24mjzvY+2u3jXHUwMDE1p69cdTAwMWEnMvnQ66tcdTAwMGZ6Ybvd7C73Wn7c/VWY1mlVw5+IXHUwMDAyrZW1zilEXUxmI07OuTHpNFx1MDAxYcW5ZuW8XHUwMDAwYX72x6tcdTAwMDdDXyGNgz5cdTAwMTiwwlxiQzg19j9HX+S6uj7Z+bj//rB7e7xcdTAwMTFubX75f2JcdTAwMWbE/eBXJiBjlNRCXHUwMDAwgtF92EcnXHUwMDAztEJIxpfTxomnYb9cdTAwMTaeXG5BM8Q+XHUwMDFiXHUwMDA2zmk5Z/B/2aPdb2dfkpOVzurBxtbe5Zq4XGJnXHUwMDAyfidcdTAwMTCEdsrMXG78WXSdjUI+WT1cdTAwMGX5RjlcdTAwMTRcdTAwMGXE9MBcdTAwMGY7X96sn/zVXFz/lFx1MDAxY1x1MDAxY15cdTAwMWa9X9uBg/1FXHUwMDA3vjOBXHUwMDE10iBIYay1/cA3QFx1MDAwMbLzXHUwMDAzWCT2XHL5JNxcdTAwMWJHoiaHcVx1MDAwZsJcdTAwMGVcdTAwMDPewCDMXHJcdTAwMTFanlx1MDAxMjlflD9cdTAwMWbFe5QrIzU+XHUwMDAw5Vx1MDAwNZqaSbZcdTAwMTffRjk39J19XHUwMDFiXsSNmz5I5PBnXHUwMDAz9yrtKEqW4L/Jy3pcXK1GyT/LM5ZGfH/foe7/5WojPvPOstyIav1elMWch/Was2ZpjCtsScjdtTerg0/UbMdncVx1MDAxMja+jrfqcc4scfBsL4xJwVx1MDAxMVx1MDAxNTRO78375uhSf9zY77Rax1x1MDAxYmr9Q+Xdp92DRfdm61x1MDAwMs7c0Fx1MDAxMoJcdTAwMTamlNHmYVxmIVx1MDAwMD6pXHSdJkVmwLDZeLPEgkN63lxcOnfnzc5INIpU8Vx1MDAwNH+DmEXAMWPe3iyXXrJsik9cdTAwMWLRaG+W1PfLOXlz2aqJ3vxzmEe4M0hcdTAwMTiryEByIOC4Zd3U/jx55lx1MDAxZuDPg0HwXHUwMDE5/VlcdTAwMWFcdTAwMTegI63IXHUwMDAyXG7NwqvfobVcclBrw1x1MDAwZS9cZnu1XHUwMDFksGw2XHUwMDBlTcwpYCxY4lx1MDAxYilLati9rVxy2Fx1MDAwMK1cdTAwMDWRs5pMMSu9XHUwMDE0lXNcdTAwMGLBrPOI4J2bOcHdn8Uh0yxsZ2/ipFx1MDAxYSdn3Fgwya9cIsPmXHUwMDE0QVwid+FKx1spXHUwMDAyICdcdTAwMTWRIe2MoFwii/dDXHUwMDExtrzNXHUwMDAxWEdgXHUwMDE1XHUwMDAwZ0T8z9xd8aNnVZRU77dpsv4q2bRcIlx1MDAwMqktXHUwMDA3RkmsXHUwMDAwWVtcdTAwMTRT2zNKXHUwMDA1bKzjPEUgkVx1MDAwNlx1MDAxYTKpXHUwMDExptla8+JcIs545D814yRcdTAwMWJcdTAwMWPhfChXvZfXo3CIPviRym2DdNDyPfazevHXUuEv+Zfe33++XHUwMDFhefVYJPtjXGLDRW8vyp9cdTAwMGbmMSvV4NlCXZOQnsumT0smp6NcdTAwMGJKY1ZcdTAwMDZcbnlMNYNcdJ1cdTAwMTgoLVx1MDAxOWVcdTAwMDNOXHUwMDA2LFx1MDAwMiBKqfSAZbOhMe1cdTAwMDJLjkW+MMIyOVx1MDAxNNlPj8ZcdTAwMThcdTAwMWZSa9RSgTSWgIayXHUwMDE2Pq24XHUwMDAzVzTMhcZcdTAwMWWtXHUwMDEypqSxycq1j8a0sJxAslx1MDAxZZQkrChCTo8xjFx1MDAwZknA6aWQylx1MDAxOTPMXHUwMDE4U5HY5Fx1MDAwMmqfRUI58JmkYeJ0XG6HXGaC35qzxsLWXHUwMDFmK8OIfSBrTahcbqK1g2d/8ZZcdTAwMTSatJZaXHUwMDE1zHZcdTAwMWZvXHUwMDFkXHUwMDFkn7Z2d46Sd53uZbxSbcWrh+f1xZZT0lx1MDAxN1x1MDAwNa2vikhcdTAwMDPI6rF42p9cdTAwMTVxjlx1MDAxOMxZzjlmcKtK2vLxXHUwMDE1ca1nV1x1MDAxN3RcZlxmxYlXYfbMJNZ9VetcIrg8X9Vaq7H45CBvJUedkuy8XHUwMDBmn6s3tf1w6+NqcrqzyVx1MDAxMqGbbMiNy5nis1x1MDAxYab1aLZcdTAwMDAlXHUwMDE5+Gq14YzSSSlcdTAwMDb1vuOwKyVoSVpa1G5cdTAwMTZla5ph4Vx1MDAxYVx1MDAxNKB09LdFKKfwXHUwMDEzIOqs4ZS6NCn3Uuj7k6+7XHUwMDA3n1x1MDAwZU9qrX08rDbUafMyW3BcbiVcYiSwwPD5XHUwMDAwsc6wfVxiZXVcdTAwMTZYNJphoHkspHqagrWy4iCa5cKKk8Qp67xXXHUwMDE1bVx1MDAxNL3vfLi9bZxcdTAwMWXrk1x1MDAxYWYx3lx1MDAxY4tS8jOkOnotP15N6vfNTev49OzgfNvt3m522+txvH1cXJtBv0dXNtHp/na32zo7vq21q3Fl9fNcZvpNYXV/S3dvutVVXGK3KF65Pk6j6fr9lfxMSKpBkXOzYoFxNWks3WKQXHUwMDAxOIdcdTAwMTbOLzlOzVx1MDAwMFx1MDAwN/pjfOWOosuddH39L9z5uv6uSY9hgPmJP47BLLo5XHUwMDA2ScP6zyrqX2FcdTAwMDKBXHUwMDAxq0KNnGeRIXxiUZqD/mk0XCKFXCI9Qu6pXHUwMDExXHUwMDAxiaeEWN08Q1V6UkBcIuPkQ6BYzHhRN0ZcdTAwMTOw3VJqn6pa7fqu6VWRi1x1MDAxY/VXXHUwMDE1OWy1grTL6qp+kual25c/P3B0NbmUUs2jmjzBuon+OL6qLKRcdTAwMTnnkVx1MDAwZbyqsVxiUzvkZOabhUM+R9ZIQb7yXCJcdTAwMTh+7JdcdTAwMGX6PFx1MDAxMpVcdTAwMGWMVNJcbrCGR2QwWZiNQ8rAd65IaiMtII4qx1hcYtCh9oVtRCjLqztvRauUsihcdTAwMWVcdTAwMTGen1KNkYJF32O8dcpqzOQ8b6lcXPtw1i/PWyRnlFCmVFx1MDAxY7grflDgQPiLkKeKhFF3XHUwMDE3jCnH9D/Fb1QmXHUwMDE5jyd/XGZcIqno7UX58+FkXHUwMDAyOJZMkHNapUlOv0I1Od1ZTDLJa7esZNgvmEos9pdIULmAc2tcdTAwMGVK6FxmQmnpaJZcXMJcdTAwMTKDlPGb/zhX11xuzCguMYFcdTAwMTRaI0sySWxrSWjckVx0aM5CXHUwMDEwac6lXdJWPGdpd2oyWYFAXGJcdTAwMDOagHNcdTAwMTKWYkZccq9cdTAwMDZcdTAwMDFcdTAwMDSkUYBcdTAwMDSmXTBa3lPd/W3pZGU8pvwxhKaZXHUwMDExilBj97BIXHUwMDAw6YgjXlx1MDAwMe/7XHUwMDE4ZbLgW0xGUc7x4Fx1MDAxMvD4c0TTtj87YWhcdTAwMDZCXHUwMDBiqYDVXHUwMDA0S/bnYVx1MDAxNFx1MDAxOUiFTlxuScBcdTAwMTiQUMxJj1D4QVx1MDAwMrRcdTAwMTZ81d1cbjIwLCaQf1x1MDAwYqx45rzmLVxyZ26LwChcImCmUFx1MDAxY3ZcdTAwMDWLXHUwMDEyckppXHUwMDFjucDsl1x1MDAwNFx1MDAxZFx1MDAwZiA6nvt7XHUwMDE2vX9bRlx1MDAxOVx1MDAwYil/XGaD6YGEMmlzt1x1MDAxOb8rzvHAM6WUouG9jPK2g6efaoeb31x1MDAwZfQ3ZXf33Fa8vdg1SGtFQI65k4dXoFH9XHUwMDA1XGJOmlx1MDAwM0UkrCOUzPdP2+I6+0VcdTAwMWPlXGanTk7MuVwiMa9cdTAwMTK5nbCIw0NiXHKVd4Hdh86tNSG3XHUwMDBmul/l++xsp1u73P2rvfFu0dGpXHUwMDAynnZtNTglJVx1MDAwZYQ7Jlx1MDAwNlx1MDAxNuLaOMVRz5J4WrybdYGcc2ZmXHUwMDEweo5yWY9cdTAwMDDnWFx1MDAxZl87+qBiOq59Nvs3q1x1MDAxYruZg7dcdTAwMWbPZ/o2z8xcXGrsXHUwMDFl6PFvsbFcdTAwMGUjxYB8QHlL4rfKXHUwMDE32sONzVx1MDAxNsnDd3VT/1Rd9PzRKr9cdTAwMDea/FZcdTAwMTDk5N30rzixalx0UDtgb/Jh1j2PP0lcdTAwMWPhSMN7oMFvw9YkYM6vNDxcdTAwMWbOff6JVsHcX2nAhdxcdTAwMDSNT99cdTAwMDSt5Ng3lMDvpuO8xU6/e3DyzC/kXHUwMDAyktOatThnZiz6hHZyYI+DpkBzs3/ZXHUwMDAxbPlcdTAwMTW4WfqzNlx1MDAwMaHhXFxFaSWFXHUwMDFk9b6Sdax2jJBSOp/iXHUwMDBm+7q0QMKVV/vmolx1MDAwNlx1MDAxZu2NU6rBySGiT1xygmVJbDjHUY5cdTAwMTNaXHUwMDFjsVOPRZKvh3nbjeBcdTAwMTn/Vah94ObByWngUt9cdTAwMGVokFJZ0qAt+o1cYsVcdTAwMGJwPatkoLXlXHUwMDFjxzp/pVx1MDAxMlZcdTAwMGZZ9TtcdNGxWPbHIIqLzl6UP31cdTAwMTjIu/frc3tcdTAwMTlDrjdcdTAwMWKM6rh6x+LFMy5fxVH3zahNRfnhyTFcdTAwMWZNz0CRf9LvP178+Fx1MDAxZmL2nUwifQ== + eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nN1ba1PbSlx1MDAxMv2eX0Fxv2SrwmSme563amuLXHUwMDAwSYBcdTAwMDRcYoTn7i1K2DLWxcjGljGQ4r9vjyCW/MRcdTAwMDbh60SpirFGXHUwMDFltWZOnz7dM/rxZmFhMblthIt/LiyGN6WgXHUwMDE2lZtBZ/GdP39cdTAwMWQ2W1E9piZIv7fq7WYpvbKaJI3Wn+/fX1x1MDAwNs2LMGnUglLIrqNWO6i1knY5qrNS/fJ9lISXrf/4/7eCy/DfjfplOWmy7CZLYTlK6s2He4W18DKMk1x1MDAxNvX+X/q+sPAj/T9nXTlcbi7rcTm9PG3ImWeg/+xWPU5NRSOkRFDZXHUwMDA1UWuVbpaEZWqtkMFh1uJPLd5cdTAwMWXVjltfro6vV9pL6+Kq5O6ipJTdtVx1MDAxMtVqe8ltLbWpVadHydpaSbN+XHUwMDExXHUwMDFlRuWkSq2i7/yoXzXr7fNqXHUwMDFjtlo9v6k3glKU3NI5xbsng/g87VwiO3ND35ZQXHRmjLZCKi6F0lZ1231cdTAwMDdSIzPWXHUwMDE4JVBcdTAwMWGUKFSfZSv1XHUwMDFhzVx1MDAwM1n2XHUwMDA3T4/MtrOgdHFOXHUwMDA2xuXsXHUwMDFhoYLgrJJd03l8XulcdTAwMTSTVqLJuq+G0Xk18TNkNbNGcJdvbYXpJFx1MDAwMEiOXHUwMDBlpe02+Ds21sspXHUwMDE4/upcdTAwMWbFatBsPI7WYst/yVnrXHJd60dSXHUwMDFlTbl5XHUwMDBlk60obG/uo908WXL6unZcbvGXbl890Fx1MDAwYprNemex23L/+FdmWrtRXHUwMDBlXHUwMDFlXHUwMDEwJbSW1jonXHUwMDExdTaZtSi+oMa4Xatl5+qli1xmhOnZ+3dTQ1+iXHUwMDFhXHUwMDA1fWGE5YZcdTAwMWKFXHUwMDEzY/9buFx1MDAwYqvy5nTr6/7nw87dyVqwsb77T2Jf8KfBL1xyU8ZI0JxcdTAwMGJcdTAwMTRG92BcdTAwMWZcdTAwMWQwtJxcdTAwMDPhy2nj+MuwX1x0zjhXXHUwMDA1Yp9cZlx1MDAxM85pmDH4d/fU9vH5bny61F4+WNvYu1rhl0Eh4HdcdTAwMWNcdTAwMDXXTpqiwJ+EN8kw5CurRyHfSIfcXHQ+OfCD9u6H1dO/66s78cHhzdHnlS1xsD/vwHeGWVx1MDAwZVx1MDAwNlx1MDAwNXBjre1cdTAwMDW+XHUwMDExiiE5v1x1MDAxMFx1MDAxNlx1MDAxNflcdTAwMDa8XGL3xilegUHcXHUwMDBiblx1MDAwN1x1MDAwMW9EP8yNUmhpSmC2KH89ivcol1x1MDAwNjROgfJcZk31ONmL7sKUXHUwMDFies5+XGYuo9ptXHUwMDBmJFL4k4F7pWZcdTAwMTjGXHUwMDBi4n/x22pULofxv/Iz1lxu6f6+Q937y+VadO6dZbFcdTAwMTZWer0oiUiHdZuTem6MS2RJQN0118v9T1RvRudRXHUwMDFj1L6Ptup5zlxm2H+2XHUwMDFixoBTRFx1MDAxNVx1MDAxYSf35n1zdKW/ru23XHUwMDFijZM1ufql9Gln+2Devdk6Rspccq1CobnJKdo0jKFggk5qhU4rqUyfYcV4M2DGIV1vzp179GZnXHUwMDAwjVQye4LfIGYpQTFj1t5cZlx1MDAwYm8pbYrOauFwb1x1MDAwNtXzy1x1MDAxOXlz3qqx3vwwzEPcWVDAXHUwMDE56c9cdTAwMWEoLmmXXHUwMDEzQ0/58/iZn8Kf+4PgK/ozXHUwMDE4x9ApLZVcdTAwMTXINSVevVx1MDAwZa2tbzZCgKNLQeg+04rxaE20IYSSXHUwMDAwNCXW8Yw3uv7tOLOAVlx1MDAxYnJcdTAwMDTuzDCNSuKCXHUwMDEz7TwjeqdmjvH3MVx1MDAxZamUdWJcdTAwMWFcdTAwMTWZsyNoJlx1MDAxZqK4XHUwMDFjxefUmFHJzyrD+lx1MDAwNFFcIvXhUttbyZlQTkmfOGvCrVWZsPRjXHUwMDExNLzRXGaElTTZpOWl9v9cdTAwMWWvuO+aXHUwMDE1xuWnjVx1MDAxYZ+B5Yxa4lxmXGbnVqRZPyX/w2xSXHUwMDE0Oo2VwklHc2/NgE21oJWs1C8vo4TGfqdcdTAwMWXFSf9cdTAwMTing7nsXHUwMDFkvVx1MDAxYVx1MDAwNlx1MDAwM1xmQs+Ub+tnhIbvsZfYs79cdTAwMTYyl0m/dP/+693Qq0di2Vx1MDAxZlx1MDAwMyjOenuT/5yayizI0Vx0tuJkXHUwMDBiTpFnjFekc8pkXHUwMDE2mEStjDac5Fx1MDAwN++rLlx1MDAxOWlcdTAwMTnpXHUwMDAxi0IgXHUwMDAygf91iMwxS05oXGY33MqhRKZcdTAwMWNcdTAwMDOtkfxPXHUwMDAwOSk561x1MDAwMJORL1BcdTAwMDcua5hcdTAwMDWRPT9RmJDIxievPUSmuSVcckkpIShuOdrcRVx1MDAwZpxhXHUwMDE4ak1ORsiWOTeaksXG11B7LOKSWJ7EpJGCaGpcYon92pw1XG62/lhcdTAwMWFE7JSsNaYwiNb2n/3JW8A1XHUwMDA1MtAyY7aneOvo5KyxvXVcdTAwMTR/aneuoqVyI1o+vKjOd0ZcdTAwMDW+Lmh9YVx1MDAwNIxASiCzp30oiltGvimcc8TgVubSy+dcdTAwMTfFtS6uNOhcYlx1MDAxOJKkV2Z2YVnWU4XrLLi8XuFay5H4XHUwMDE0NGlAUSeXeT6Fz+Xbyn6w8XU5PttapyyhXHUwMDEzr8HaVaH4LFx1MDAwN61qWCxAXHUwMDE1MF+wNs5wXHUwMDA3wPtTfkdhl7SOXHUwMDA2pcGidkVUrlWBtWshXHUwMDA1glO/LUJcdTAwMDUp5tFcdTAwMTB11iiVn5QnKfTz6fftg53D00pjXHUwMDFmXHUwMDBmyzV5Vr9K5pxCVZrWgPJ6QIHKuWzagUNm0WiCgaaxgFxc83NcdTAwMTBqoeREWOTailx1MDAwM0WSddZcdTAwMGKLNlxmP7e/3N3Vzk70aVx1MDAwNZNcYm9PeE78XGZkXHUwMDFk3Zb7d+P6/XDbODk7P7jYdNt3653malx1MDAxNG2eVFxu6Pfo2sa6tb/Z6TTOT+4qzXJUWv5WQL8tsby/oTu3nfKyXGI2VLR0c9Jcbifr96f4XHUwMDE5I6op63WuKFx1MDAxNlx1MDAxOFWWxtwt+lx1MDAxOYA0NHcyX+h6ilx1MDAwMVx1MDAwZfTX6NpcdTAwMWSFV1ut1dW/cev76qe6elx1MDAwZVx1MDAwM8wu+aNcdTAwMTjMlKBcdTAwMThcdTAwMDSG8j8rVe9cIpPgyCgr1Eg6S1x1MDAxOYUvrEtT0D9cdTAwMGKHSCilh6R7ckhAoilRlN28QmF6XFxAUsbBNFDMZjwrXHUwMDFko2FkN4D2UtVq13NNt5CcadSfheSg0WCtXHUwMDBlZVfV01ZavX378IHDXHUwMDBiyjlJNYuC8lx1MDAxOOvG+uPowjJcdTAwMDczyiOdL8+RUlx1MDAxMlx1MDAxMzvkeOYrwiFfQzUqli6+cIJcdTAwMWb5pVx1MDAxMz1cdTAwMWWJUjNcdTAwMDNcdTAwMTIsXHUwMDE31tCI9IuFYlx1MDAxY1x1MDAxMpjvXFwq0Fx1MDAwNqxAXHUwMDFjVo6xgqFDrf3KL4p8evXorWillFx1MDAxNvkzwvNLqjHAKel7jrdOWI1cdTAwMTmv81x1MDAxNvK1XHUwMDBmZ/1cbr1F5Yzk0uSKXHUwMDAzj8VcdTAwMGbFnOD+XCKkqVLcyMdcdTAwMGJGlGN6n+JcdTAwMTcqk4zGkz/6kZT19ib/+YxVqpx7XGaEd1x1MDAwZSQsXHUwMDA1n1xc4I/XO/PJJkZcdTAwMWHm90ZppMdFxL5FKlx0TKVcdTAwMDOhTH5jVZFUwpklia5IO5BzgsYhXCLfOlx1MDAwNqBQUlhcdTAwMTTGXHUwMDFhmVx1MDAxYp9HKlx1MDAxMZo0XGKimm1h1y9cdOlnrVx1MDAxOVx1MDAxN00lS4JRPCAxXCI5ZWJcblx1MDAxMHJcdTAwMTc9UIlkpM80SkEjrX014TelkqWRgPLHXHUwMDAwlFxu41x1MDAxMu5GXHUwMDE3XHUwMDBiiNqk8W40MZeMz/Xmk0uko8HliljVXHUwMDA3M217hVx0XHI545pcdTAwMDNcdTAwMDHQaMrWZZ9hRbFcdFLfaISWipCuzbCigeNMe1qjtFx1MDAwMoBSmiHSxDhcdTAwMTSU7cx4xVx1MDAxYvKe+89KXHUwMDEzolx1MDAxMyBx5pcuKOpqv7d8OKU47lxmjbRfYVx1MDAxZVxcXv49KGVcZqj8MVx1MDAwMKcpOWXc7m4zeluco5F3SuqMdp4klY9tPNupXHUwMDFjrlx1MDAxZlx1MDAxZuhjabf33Ea0Od9cdTAwMTVIazlTToBna45G9pZcdTAwMWZIMjNiem6dQnAoX7bHtfglXHUwMDFj6Ywz5CEzrkfMqkBuxyzh0JCQalx1MDAwNDH5ezdcdTAwMWIrXHUwMDFjNlx1MDAwZjrf4XNyvtWpXFxt/91cXPs07+iUjKZdWy2cXHUwMDA0wL6Ix71cdTAwMTRcdTAwMTHaOFJl3Cr+spBXdHmcNDMxiHqNYlmXXHUwMDAwZ1hcdTAwMWRfOfpcIiN1Uvlm9m+X17ZcdTAwMTMnPn69KPR1nsJcXGrkJujRr7FcdFxuL5JcdTAwMDA5RXFcdTAwMGLwuLSr9nBtvaHg8FPVVHfK8y4hrfSboJXfXGKC1uTX39J0VPjdKU6QN1E+qtzr+Fx1MDAxM1xmS0FcdTAwMDc3QVx1MDAwYr9cdTAwMGZbKy5m/E7D6+HcXHUwMDE3x9BKMfN3XHUwMDFhcC53QePLd0FLXHUwMDE4+YqS8HvpSLfYyfdcdTAwMGWOn/m5XFw+clozUKTMKO/j2kHfXHUwMDBlXHUwMDA3rZimZv+2g7D5d+CK9GdtXHUwMDE4aXfSKlJL4HbYXHUwMDBiS9YxTlx1MDAxM1x1MDAwMlx1MDAwMFx1MDAwZVRPoevR18FcbsVdfq1vJqXqZ3vjhPng+Fx1MDAxMNGTXHUwMDBmXG5LSTHlNyhcdTAwMWRcdFpcdTAwMWOyT1x1MDAwZmimtdc7Wlx1MDAxYU4z/jNccppy6+B4XHUwMDE5uNCzXHUwMDAxWlC+ZZVcdTAwMTbaot+GkL1cdTAwMDHXtVxuXHUwMDE4pa6kcazzV0puXHUwMDA3t2X/SpnoSCz7o1x1MDAxZsVZZ2/ynz5cZqTd+9W5vYQg151cckJ1VH5k8excdTAwMTlcdTAwMTevo7DzYdiWovTw5JiOpmeg0D/pj/s39/9cdTAwMDdcIjOdrCJ9 - Screen 1(hidden)Screen 2 (visible)app.switch_screen(screen3)Screen 3 (visible) \ No newline at end of file + Screen 1(hidden)Screen 2 (visible)app.switch_screen(screen3)Screen 3 (visible) \ No newline at end of file diff --git a/src/textual/geometry.py b/src/textual/geometry.py index 7c22c1a92..be87975ec 100644 --- a/src/textual/geometry.py +++ b/src/textual/geometry.py @@ -223,7 +223,7 @@ class Size(NamedTuple): class Region(NamedTuple): """Defines a rectangular region. - A Region consists a coordinate (x and y) and dimensions (width and height). + A Region consists of a coordinate (x and y) and dimensions (width and height). ``` (x, y) From d93b9c7a66f0cb232faf31d369b1440cf07dd38c Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Wed, 5 Oct 2022 10:54:52 +0100 Subject: [PATCH 5/5] wording --- docs/guide/screens.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guide/screens.md b/docs/guide/screens.md index 131b6f0cb..94c61794e 100644 --- a/docs/guide/screens.md +++ b/docs/guide/screens.md @@ -47,7 +47,7 @@ The app class has a new `SCREENS` class variable. Textual uses this class variab ## Named screens -Named screens can be defined with the apps `SCREENS` class variables. This is typically used for screens that exists for the lifetime of your app. The name of the screen may be used interchangeably with screen objects in much of the screen API. +You can associate a screen with a name by defining a `SCREENS` class variable in your app, which should be dict that maps names on to Screen objects. The name of the screen may be used interchangeably with screen objects in much of the screen API. You can also _install_ new named screens dynamically with the [install_screen][textual.app.App.install_screen] method. The following example installs the `BSOD` screen in a mount handler rather than from the `SCREENS` variable.