Upload current progress

This commit is contained in:
2026-01-03 10:23:05 -06:00
commit ec57d94cc0
66 changed files with 4031 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
import reflex as rx
from ..state.auth import AuthState
def sidebar_item(text: str, icon: str, href: str):
return rx.link(
rx.hstack(
rx.icon(icon, size=18),
rx.text(text, size="3", weight="medium"),
spacing="3",
align_items="center",
padding="12px",
border_radius="8px",
_hover={"bg": "var(--gray-3)"},
color="var(--gray-11)"
),
href=href,
width="100%",
text_decoration="none"
)
def dashboard_layout(content: rx.Component):
return rx.flex(
# Sidebar
rx.vstack(
rx.heading("Obsidian Automator", size="4", margin_bottom="6", color="var(--accent-9)"),
sidebar_item("Dashboard", "layout-dashboard", "/"),
sidebar_item("Settings", "settings", "/settings"),
rx.spacer(),
rx.button(
rx.hstack(rx.icon("log-out"), rx.text("Logout")),
on_click=AuthState.logout,
variant="ghost",
width="100%",
justify_content="start"
),
width="250px",
height="100vh",
padding="6",
bg="var(--gray-2)",
border_right="1px solid var(--gray-4)",
),
# Main Content
rx.box(
content,
flex="1",
height="100vh",
bg="var(--gray-1)",
padding="8",
overflow="auto",
),
width="100vw",
height="100vh",
)

View File

@@ -0,0 +1,50 @@
import reflex as rx
def terminal_window(logs: list[str], title="System Output"):
return rx.card(
rx.vstack(
rx.hstack(
rx.icon("terminal", size=18, color="var(--gray-11)"),
rx.text(title, size="2", weight="bold", color="var(--gray-11)"),
rx.spacer(),
# Minimal header controls (visual only for now)
rx.box(width="10px", height="10px", bg="var(--red-9)", border_radius="50%"),
rx.box(width="10px", height="10px", bg="var(--yellow-9)", border_radius="50%"),
rx.box(width="10px", height="10px", bg="var(--green-9)", border_radius="50%"),
align_items="center",
width="100%",
padding_bottom="3",
border_bottom="1px solid var(--gray-4)"
),
rx.scroll_area(
rx.vstack(
rx.foreach(
logs,
lambda log: rx.box(
rx.text(
log,
font_family="JetBrains Mono, monospace",
font_size="13px",
color="var(--gray-12)",
white_space="pre-wrap" # Handle multi-line logs
),
padding_y="1"
)
),
align_items="start",
spacing="0",
),
height="400px", # Fixed height for scroll
type="always",
scrollbars="vertical",
bg="var(--gray-2)",
padding="4",
border_radius="0 0 8px 8px"
),
spacing="0",
width="100%"
),
padding="0",
variant="surface",
width="100%"
)