Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
677b453
feat(dashboard): checkpoint Rail redesign
lorenzocorallo Oct 7, 2026
c729915
fix(dashboard): resolve Rail review findings
lorenzocorallo Oct 7, 2026
61e3cdf
fix(dashboard): improve responsive layouts and save flows
lorenzocorallo Oct 7, 2026
1771a88
fix(group-labels): align row actions and mobile menus
lorenzocorallo Oct 7, 2026
8db8549
feat(groups): add tinted colors to row actions
lorenzocorallo Oct 7, 2026
fc8fd2f
fix(primitives): soften tinted icon button states
lorenzocorallo Oct 7, 2026
ad9ffe8
fix(shell): use the dashboard-icons WhatsApp logo
lorenzocorallo Oct 7, 2026
dc71f4c
fix(ui): keep the checked checkbox filled in dark mode
lorenzocorallo Oct 7, 2026
6e796a9
fix(faqs): separate questions from answers in the editor
lorenzocorallo Oct 7, 2026
4537ba7
feat(primitives): restore inline-edit shortcut hint and icon actions
lorenzocorallo Oct 7, 2026
129ad99
refactor(shell): integrate the header bar into the content
lorenzocorallo Oct 7, 2026
17cd055
feat(projects): list projects in a single column
lorenzocorallo Oct 7, 2026
56cde90
fix(guides): size the PDF download button for table rows
lorenzocorallo Oct 7, 2026
38d8fc7
feat(shell): open tooltips after 100ms, keep 400ms on the rail
lorenzocorallo Oct 7, 2026
463d037
fix(shell): follow the rendered route instead of the pending location
lorenzocorallo Oct 7, 2026
71ff2b3
feat(shell): slide the section panel in and out
lorenzocorallo Oct 7, 2026
b52ff97
fix(telegram): give usernames their own column and mark rows as openable
lorenzocorallo Oct 7, 2026
89b6680
fix(shell): reserve the scrollbar gutter in the page scroller
lorenzocorallo Oct 7, 2026
8c7c483
fix(tables): keep group-list column widths stable while filtering
lorenzocorallo Oct 7, 2026
9b80c20
fix(associations): give cards in a row the same height
lorenzocorallo Oct 7, 2026
a2322ec
feat(web): show bilingual descriptions in translation panels
lorenzocorallo Oct 7, 2026
b645f3e
fix(web): edit translations in place without a nested field box
lorenzocorallo Oct 7, 2026
0937f0d
fix(web): drop the focus box inside translation panels
lorenzocorallo Oct 7, 2026
d2debdf
fix(primitives): make the inline-edit save shortcut never a silent no-op
lorenzocorallo Oct 7, 2026
2482a43
feat(shell): reveal the new theme as a bubble from the toggle
lorenzocorallo Oct 7, 2026
772d539
fix(shell): align the header bar with the content edges
lorenzocorallo Oct 7, 2026
e4d357c
fix(shell): make the PoliNetwork logo a static mark
lorenzocorallo Oct 7, 2026
ea667d3
fix(shell): don't refocus the palette trigger after running an entry
lorenzocorallo Oct 7, 2026
b89f106
feat(faqs): group the category picker and its actions in one surface
lorenzocorallo Oct 7, 2026
1353c37
fix(telegram): give the users table equal column widths
lorenzocorallo Oct 7, 2026
fe2aef7
feat(primitives): give segmented control segments equal widths
lorenzocorallo Oct 7, 2026
379412e
fix(shell): don't open the trigger's tooltip when the palette is dism…
lorenzocorallo Oct 7, 2026
fd8a8c1
feat(shell): drop the section panel for single-section services
lorenzocorallo Oct 7, 2026
7e9ab67
feat(faqs): edit and show FAQ translations in translation panels
lorenzocorallo Oct 7, 2026
ffe4004
feat(faqs): enter category titles in translation panels
lorenzocorallo Oct 7, 2026
cba5373
feat(shell): switch themes like a light bulb at the toggle
lorenzocorallo Oct 7, 2026
ac9a73c
docs(design): describe the light-bulb theme reveal
lorenzocorallo Oct 7, 2026
50df0fd
fix(shell): stop the light flash at the end of the dark reveal
lorenzocorallo Oct 7, 2026
7995638
fix(shell): keep theme reveals from leaking into the next switch
lorenzocorallo Oct 7, 2026
83f5d2a
feat(shell): let the theme reveal be reversed mid-way
lorenzocorallo Oct 7, 2026
9e46682
fix(shell): stop text selection in the navigation chrome
lorenzocorallo Oct 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,23 @@ always verify that normal behavior still works with `AGENT_MODE=false`.
> Do not run destructive actions across multiple rows, unless specific prompt indication or
> ask for user confirmation ALWAYS.

## Design system

UI work follows [`docs/design.md`](docs/design.md): tokens, shell, page templates, component rules and copy.
Build pages from the shell (`@/components/shell`: `PageBar`, `Toolbar`, `PageContent`, `appToast`,
`useCanWrite`) and the primitives (`@/components/primitives`); use the `--pn-*` tokens, never raw colors.

Data and error conventions (details in `docs/design.md` §9.1):

- Call mutation server functions from event handlers through `useServerFn(fn)`, and add each new POST
server function with its consumer file to the map in `tests/server-security.test.mjs`.
- After a mutation, `await router.invalidate({ sync: true })` so loaders have reloaded before the UI settles.
- Every `catch` block and `.catch(handler)` logs the caught error with `console.error(error)` (enforced by `pnpm test`).
- Toasts go through `appToast`; route errors and not-found states come from the router defaults
(`RouteError`, `RouteNotFound`), so routes do not declare `errorComponent`.

Before handing work back run `pnpm check`, `pnpm typecheck`, `pnpm test` and `pnpm build`.

## Git commits

Use Conventional Commits for every commit message:
Expand Down
1,077 changes: 1,077 additions & 0 deletions docs/design.md

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
"@tanstack/react-router": "1.170.17",
"@tanstack/react-start": "1.168.27",
"@tanstack/react-store": "^0.11.0",
"@tanstack/react-table": "9.0.0-beta.38",
"@trpc/client": "11.5.1",
"better-auth": "^1.5.5",
"class-variance-authority": "^0.7.1",
Expand Down
47 changes: 22 additions & 25 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src/assets/svg/whatsapp.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 8 additions & 33 deletions src/components/app-mark.tsx
Original file line number Diff line number Diff line change
@@ -1,45 +1,20 @@
import { Link } from "@tanstack/react-router"

import logoUrl from "@/assets/logo.png"
import { cn } from "@/lib/utils"

export function AppMark({
compact = false,
sidebarResponsive = false,
className,
onClick,
}: {
compact?: boolean
sidebarResponsive?: boolean
className?: string
onClick?: React.MouseEventHandler<HTMLAnchorElement>
}) {
/** The logo and wordmark on the login and onboarding pages. */
export function AppMark() {
return (
<Link
to="/dashboard"
className={cn(
"flex w-max items-center gap-3 rounded-lg text-inherit outline-none focus-visible:ring-3 focus-visible:ring-current/25",
sidebarResponsive && "group-data-[collapsible=icon]:gap-0",
className
)}
className="flex w-max items-center gap-3 rounded-lg text-inherit outline-none focus-visible:ring-3 focus-visible:ring-current/25"
aria-label="PoliNetwork Admin home"
onClick={onClick}
>
<img
className={cn("size-9 rounded-full", sidebarResponsive && "group-data-[collapsible=icon]:size-8")}
src={logoUrl}
alt=""
width={36}
height={36}
/>
{!compact && (
<span className={cn("block leading-none", sidebarResponsive && "group-data-[collapsible=icon]:hidden")}>
<strong className="block text-sm font-semibold tracking-[-0.025em]">PoliNetwork</strong>
<small className="mt-1.5 block text-[9px] leading-none font-medium tracking-[0.12em] text-current/65 uppercase">
Admin dashboard
</small>
</span>
)}
<img className="size-9 rounded-full" src={logoUrl} alt="" width={36} height={36} />
<span className="block leading-none">
<strong className="block text-sm font-semibold tracking-[-0.025em]">PoliNetwork</strong>
<small className="mt-1.5 block text-[11px] leading-none font-medium text-current/65">Admin dashboard</small>
</span>
</Link>
)
}
80 changes: 0 additions & 80 deletions src/components/dashboard-breadcrumb.tsx

This file was deleted.

Loading
Loading