mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 07:09:11 +02:00
* Archive v3 docs under /v3 and publish v4 as the primary version * Label primary docs version v4.0.0 (alpha 1) * Add What's New in v4 page; fix upgrade-guide phrasing; point banner at What's New * Rewrite What's New around v4's new capabilities, not the sampling deprecation * Lead What's New with the SDK v2 engine swap and the SEPs it brings * State ships now (link Session State); tasks arrive next alpha * Exclude docs/v3 frozen snapshots from doc-example import validation
68 lines
2 KiB
Python
68 lines
2 KiB
Python
from prefab_ui.app import PrefabApp
|
|
from prefab_ui.components import (
|
|
Badge,
|
|
Column,
|
|
DataTable,
|
|
DataTableColumn,
|
|
Row,
|
|
Separator,
|
|
)
|
|
from prefab_ui.components.charts import BarChart, ChartSeries
|
|
from prefab_ui.components.metric import Metric
|
|
|
|
monthly = [
|
|
{"month": "Jan", "revenue": 48200, "costs": 31000},
|
|
{"month": "Feb", "revenue": 52100, "costs": 32500},
|
|
{"month": "Mar", "revenue": 61800, "costs": 34200},
|
|
{"month": "Apr", "revenue": 58400, "costs": 33800},
|
|
]
|
|
|
|
deals = [
|
|
{"account": "Acme Corp", "value": "$84,000", "stage": "Won"},
|
|
{"account": "Globex Inc", "value": "$52,000", "stage": "Negotiation"},
|
|
{"account": "Initech", "value": "$31,500", "stage": "Proposal"},
|
|
{"account": "Wayne Enterprises", "value": "$45,000", "stage": "Lost"},
|
|
]
|
|
|
|
rows = [
|
|
{
|
|
"account": d["account"],
|
|
"value": d["value"],
|
|
"stage": Badge(
|
|
d["stage"],
|
|
variant="success"
|
|
if d["stage"] == "Won"
|
|
else "destructive"
|
|
if d["stage"] == "Lost"
|
|
else "secondary",
|
|
),
|
|
}
|
|
for d in deals
|
|
]
|
|
|
|
total = sum(m["revenue"] for m in monthly)
|
|
|
|
with PrefabApp() as app:
|
|
with Column(gap=4, css_class="p-6"):
|
|
with Row(gap=6):
|
|
Metric(label="Revenue (Q1-Q4)", value=f"${total:,}")
|
|
Metric(label="Deals", value=f"{len(deals)}")
|
|
BarChart(
|
|
data=monthly,
|
|
series=[
|
|
ChartSeries(data_key="revenue", label="Revenue"),
|
|
ChartSeries(data_key="costs", label="Costs"),
|
|
],
|
|
x_axis="month",
|
|
show_legend=True,
|
|
height=200,
|
|
)
|
|
Separator()
|
|
DataTable(
|
|
columns=[
|
|
DataTableColumn(key="account", header="Account", sortable=True),
|
|
DataTableColumn(key="value", header="Value", sortable=True),
|
|
DataTableColumn(key="stage", header="Stage"),
|
|
],
|
|
rows=rows,
|
|
)
|