From a0275f91da85ca0de8187bbb164da1b6c0979e53 Mon Sep 17 00:00:00 2001 From: Edvard Rejthar Date: Wed, 29 Jan 2025 17:33:03 +0100 Subject: [PATCH] facet layout --- asset/layout-gui.avif | Bin 0 -> 10992 bytes asset/layout-tui.avif | Bin 0 -> 11646 bytes docs/Changelog.md | 3 ++- docs/Facet.md | 35 ++++++++++++++++++++++++++++++++++- mininterface/facet.py | 8 ++++++-- 5 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 asset/layout-gui.avif create mode 100644 asset/layout-tui.avif diff --git a/asset/layout-gui.avif b/asset/layout-gui.avif new file mode 100644 index 0000000000000000000000000000000000000000..6adbac66940f2bae20d22bbae7394dd8195c3f32 GIT binary patch literal 10992 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