KQ-1346 · ANALYTICS/CONSOLE

Analytics Console

A complete store analytics screen where every panel reads one query — store, window and filters. Change the period on the composed KPI panel, or brush its chart, and the console moves in one beat: source bars glide to new lengths in cascade on glide while their figures count, the device split re-divides, countries re-rank by gliding to new rows, the hours heatmap re-tints on a diagonal wave, and the composed pages table refetches into its own cascade. The four charts re-arrange per grid and width on glide; filter chips open real menus (arrows, Enter, Escape back to the chip) and below 900px the stores fold into a draggable drawer.

KQ-1346 · ANALYTICS/CONSOLE

Fernworks Supply

fernworks.shop · Last 30 days · Sep 1 – Sep 30 · 30 days

Revenue and orders

Fernworks Supply · Sep 1 – Sep 30

Arrow keys move a day, Page keys a week. Hold Shift with an arrow to mark a stretch, Enter zooms to it, Escape lets go of the mark and then the zoom.

Revenue · daily

$1k$2k$3k$4k$5k
Sep 1Sep 11Sep 20Sep 30

Revenue by

Total$62.03k

Traffic sources

38,605 visitors

Devices

Top countries

Busiest hours

UTC

The busiest hours: Friday 21:00 with 986 visits; Monday 21:00 with 870 visits; Saturday 18:00 with 801 visits.

Top pages

10 pages · $62,031.05

Arrow keys move between cells. Space selects a row, Shift with an arrow extends the selection. Enter sorts a heading or edits a cell. Shift with Left or Right resizes a heading's column, Shift with Enter fits it to its contents. Page Up and Page Down turn the page.

Page
Views
Visitors
Avg. time
Bounce
Revenue
/
29,664
21,377
38s
38.5%
$1,240.62
/shop
22,566
16,470
45s
30.8%
$3,721.86
/shop/linen-apron
11,789
6,789
1m 33s
26.8%
$13,646.83
/shop/field-jacket
11,151
8,192
1m 42s
26.2%
$16,128.08
/shop/enamel-mug
8,344
5,200
1m 06s
38.5%
$7,443.73
/journal/waxed-cotton-care
6,033
3,689
3m 20s
50.5%
$1,240.62

1–6 of 10

fernworks supply · last 30 days · all traffic

Install

One command — the source lands in your repo. Or copy it from the Code tab.

$ pnpm dlx shadcn@latest add @kinetiq/analytics-console

Props

sites
ConsoleSite[]
default defaultConsoleSites
The stores in the sidebar: id, name and host.
site / defaultSite
string
default — / first store
The store on screen.
onSiteChange
(id: string) => void
default —
Fires from the sidebar row or key that chose a store.
views
ConsoleView[]
default defaultConsoleViews
Saved sets of filters in the sidebar; a press applies one at once.
dimensions
ConsoleDimension[]
default defaultConsoleDimensions
What the filters bar can split by: device, channel and country, each with its options and shares.
filters / defaultFilters
ConsoleFilters
default — / {}
A dimension's id to the option chosen for it; absent means all.
onFiltersChange
(filters: ConsoleFilters) => void
default —
Fires from the chip, view or Clear that changed the filters.
range / defaultRange
"7d" | "30d" | "90d" | "1y"
default — / "30d"
The period: the last 7, 30 or 90 days, or the last year.
onRangeChange
(range: ConsoleRange) => void
default —
Fires from the KPI panel's period switch with the new period.
onWindowChange
(window: ConsoleWindow) => void
default —
Fires whenever the window changes: a period, a brush zoom on the chart or its reset.
data
(query: ConsoleQuery) => ConsoleData
default defaultConsoleData
Answers a store, a window of days and filters with the KPI series, the breakdowns, the window's bars and hours, and its top pages.
now
Date | number
default defaultConsoleNow
The last day of data.
grid
"bento" | "even" | "stack"
default "bento"
How the four charts are arranged: one doubled up, evenly, or one under another.
density
"compact" | "regular" | "roomy"
default "regular"
The table's rows (32, 40 or 48px), the panels' padding, the bars and the gaps.
locale
string
default "en-US"
The locale for numbers and money.
currency
string
default "USD"
The currency for money.
status
"ready" | "loading" | "error"
default "ready"
Whether the numbers have arrived: skeletons everywhere, or a message with Try again.
onRetry
() => void
default —
Try again was pressed after the numbers failed to load.
label
string
default "Analytics"
The console's accessible name.
sound
boolean
default false
Play the ticks and swishes; the composed KPI panel and table play their own.
disabled
boolean
default false
Greys the console out and makes it inert.
className
string
default —
Classes for the console's frame.