generated from john/python-template
67 lines
2.2 KiB
Python
67 lines
2.2 KiB
Python
from nicegui import ui
|
|
|
|
ui.colors(primary="#2563eb")
|
|
|
|
|
|
# ----------------------------------------------------------------------
|
|
# Header
|
|
# ----------------------------------------------------------------------
|
|
|
|
with ui.header(elevated=True).classes("items-center justify-between"):
|
|
ui.label("Document Review").classes("text-xl font-bold")
|
|
|
|
with ui.row().classes("items-center"):
|
|
ui.button(icon="zoom_out")
|
|
ui.button(icon="zoom_in")
|
|
ui.separator().props("vertical")
|
|
ui.input("Search").props("dense outlined")
|
|
ui.button("Export")
|
|
|
|
|
|
# ----------------------------------------------------------------------
|
|
# Main split view
|
|
# ----------------------------------------------------------------------
|
|
|
|
with ui.splitter(value=70).classes("w-full h-[calc(100vh-64px)]") as splitter:
|
|
# ==============================================================
|
|
# Left panel
|
|
# ==============================================================
|
|
|
|
with splitter.before, ui.column().classes("w-full h-full items-center bg-slate-100"):
|
|
# This can later become:
|
|
# - interactive_image
|
|
# - OpenSeadragon
|
|
# - Leaflet
|
|
# - custom HTML component
|
|
|
|
ui.image("https://picsum.photos/900/1200").classes("max-h-full max-w-full object-contain")
|
|
|
|
# ==============================================================
|
|
# Right panel
|
|
# ==============================================================
|
|
|
|
with splitter.after, ui.scroll_area().classes("w-full h-full"), ui.column().classes("w-full p-4 gap-3"):
|
|
with ui.expansion("Summary", icon="description", value=True):
|
|
ui.label("Short description of the document.")
|
|
|
|
with ui.expansion("OCR Text"):
|
|
ui.textarea().props("readonly").classes("w-full")
|
|
|
|
with ui.expansion("Entities", value=True):
|
|
ui.chip("Person")
|
|
ui.chip("Organization")
|
|
ui.chip("Date")
|
|
|
|
with ui.expansion("AI Analysis"):
|
|
ui.markdown("""
|
|
- Confidence: 98%
|
|
- Language: English
|
|
- Contains signature
|
|
""")
|
|
|
|
with ui.expansion("Notes"):
|
|
ui.textarea(placeholder="Add notes...").classes("w-full")
|
|
|
|
|
|
ui.run(port=8081)
|