StoreCopilot / src /pages /chartgpt.py
Elie Brosset
Add app
6739f59
import dash
import dash_mantine_components as dmc
from dash import dcc, html
from dash_iconify import DashIconify
dash.register_page(
__name__,
class_icon="fa-solid fa-chart-column",
order=1,
path="/",
name="Store Copilot",
title="ChartGPT",
)
layout = dmc.Stack(
[
dcc.Store(id="history", data=[], storage_type="local"),
dmc.TextInput(
styles={
"input": {
"fontSize": 15,
"boxShadow": "rgba(99, 99, 99, 0.2) 0px 2px 8px 0px",
"border": "none",
},
},
id="prompt",
placeholder="What do you want to know about your business?",
icon=DashIconify(icon="ic:round-search"),
radius="lg",
size="lg",
w="80%",
m="auto",
rightSection=dmc.ActionIcon(
DashIconify(icon="ic:round-send", width=20),
id="button",
radius="md",
size="lg",
mr=17,
),
),
dmc.Grid(
children=[
dmc.Col(
dmc.Card(
dmc.Stack(
[
dmc.Title(
"Generated chart", order=3, mb=4, align="center",
),
html.Div(id="container"),
]
)
),
span=8,
),
dmc.Col(
dmc.Card(
[
dmc.Title("History", order=3, mb=4, align="center"),
dmc.Accordion(
id="history-list",
children=[],
radius="md",
chevron=DashIconify(
icon="ic:round-history",
width=15,
),
chevronPosition="left",
variant="contained",
styles={
"item": {
"backgroundColor": dmc.theme.DEFAULT_COLORS[
"gray"
][0],
"transition": "transform 150ms ease",
"&[data-active]": {
"transform": "scale(1.03)",
"backgroundColor": "",
"boxShadow": 5,
"borderRadius": 5,
},
},
"chevron": {
"&[data-rotate]": {
"transform": "rotate(-180deg)",
},
},
},
),
],
id="history-container",
),
span=4,
),
],
gutter="xl",
),
],
spacing="xl",
)