@polishd/next 0.2.1-dev.0 → 0.2.1-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +62 -0
- package/README.md +24 -12
- package/dist/ai/profile.d.ts +11 -3
- package/dist/ai/profile.d.ts.map +1 -1
- package/dist/ai/profile.js.map +1 -1
- package/dist/client/design-scan.d.ts.map +1 -1
- package/dist/client/design-scan.js +6 -0
- package/dist/client/design-scan.js.map +1 -1
- package/dist/config.d.ts +12 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +34 -0
- package/dist/config.js.map +1 -1
- package/dist/dashboard/chrome.d.ts +22 -0
- package/dist/dashboard/chrome.d.ts.map +1 -0
- package/dist/dashboard/chrome.js +107 -0
- package/dist/dashboard/chrome.js.map +1 -0
- package/dist/dashboard/design-review-card.d.ts.map +1 -1
- package/dist/dashboard/design-review-card.js +5 -23
- package/dist/dashboard/design-review-card.js.map +1 -1
- package/dist/dashboard/design.d.ts.map +1 -1
- package/dist/dashboard/design.js +57 -25
- package/dist/dashboard/design.js.map +1 -1
- package/dist/dashboard/index.d.ts +11 -1
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +37 -30
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/settings.d.ts +18 -0
- package/dist/dashboard/settings.d.ts.map +1 -0
- package/dist/dashboard/settings.js +309 -0
- package/dist/dashboard/settings.js.map +1 -0
- package/dist/dashboard/show-more.d.ts +17 -0
- package/dist/dashboard/show-more.d.ts.map +1 -0
- package/dist/dashboard/show-more.js +18 -0
- package/dist/dashboard/show-more.js.map +1 -0
- package/dist/dashboard/summary.d.ts.map +1 -1
- package/dist/dashboard/summary.js +32 -316
- package/dist/dashboard/summary.js.map +1 -1
- package/dist/dashboard/ui.d.ts +30 -0
- package/dist/dashboard/ui.d.ts.map +1 -0
- package/dist/dashboard/ui.js +51 -0
- package/dist/dashboard/ui.js.map +1 -0
- package/dist/dashboard.css +136 -0
- package/dist/server/design.d.ts.map +1 -1
- package/dist/server/design.js +2 -27
- package/dist/server/design.js.map +1 -1
- package/dist/server/ingest.d.ts.map +1 -1
- package/dist/server/ingest.js +6 -2
- package/dist/server/ingest.js.map +1 -1
- package/dist/server/queries.d.ts +22 -0
- package/dist/server/queries.d.ts.map +1 -1
- package/dist/server/queries.js +22 -25
- package/dist/server/queries.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,68 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
### Setup moved out of the way, into a Settings tab
|
|
6
|
+
|
|
7
|
+
The first screen of the dashboard was also its setup form. Provider, key, site
|
|
8
|
+
description, codebase profile and GitHub all lived behind a gear on the
|
|
9
|
+
analytics summary card — which pushed the actual analytics down the page, and
|
|
10
|
+
left the Design tab telling people to go and find "the Analytics tab's summary
|
|
11
|
+
card" to configure a model it uses too.
|
|
12
|
+
|
|
13
|
+
All of it now lives in a third sidebar tab, **Settings**, grouped into Model /
|
|
14
|
+
Your site / Codebase / GitHub with one save. First-run onboarding runs there as
|
|
15
|
+
well, and finishing it drops you on Analytics with your first summary. The
|
|
16
|
+
summary card keeps only the story and a gear that jumps to Settings; the one
|
|
17
|
+
piece of setup still worth seeing next to a summary — whether the model has
|
|
18
|
+
actually read your codebase — stays as a one-line nudge.
|
|
19
|
+
|
|
20
|
+
### Switching tabs responds immediately
|
|
21
|
+
|
|
22
|
+
Each tab is a full server render, so clicking "Design" used to do nothing
|
|
23
|
+
visible for a second or two, which reads as a dead button and gets clicked
|
|
24
|
+
again. The tab rail now answers on the click: the tab you picked highlights
|
|
25
|
+
straight away, its icon becomes a spinner, further clicks on it are ignored,
|
|
26
|
+
and the content column shows a skeleton until the render lands. Cross-tab links
|
|
27
|
+
inside a tab behave identically, and the dashboard's own scroll container
|
|
28
|
+
returns to the top rather than dropping you halfway down the new tab.
|
|
29
|
+
|
|
30
|
+
Links are still real anchors — ⌘-click and middle-click open a tab as before,
|
|
31
|
+
and with JavaScript off the rail falls back to ordinary navigation.
|
|
32
|
+
|
|
33
|
+
### A dashboard mounted off `/polishd` no longer reads itself back
|
|
34
|
+
|
|
35
|
+
The read side of the dashboard (its own queries) previously excluded only the
|
|
36
|
+
*default* route, so an app that mounted the dashboard elsewhere — say
|
|
37
|
+
`/polish` — saw its own dashboard traffic ranked among the site's pages, and
|
|
38
|
+
the Design tab could measure the dashboard's design as the site's. The route
|
|
39
|
+
now resolves dynamically everywhere:
|
|
40
|
+
|
|
41
|
+
- `createPolishdPage({ config })` — pass the same config you thread into
|
|
42
|
+
`initPolishd()` and `createPolishdRoute()`; the page registers
|
|
43
|
+
`dashboardRoute` for the queries running in the same runtime.
|
|
44
|
+
- `POLISHD_DASHBOARD_ROUTE` — the no-code channel; ingest and the queries
|
|
45
|
+
both read it.
|
|
46
|
+
- The design scanner also recognizes the dashboard by its `.polishd-root`
|
|
47
|
+
scope element, so it never measures the dashboard regardless of
|
|
48
|
+
configuration.
|
|
49
|
+
|
|
50
|
+
Because the exclusion is applied at read time, dashboard rows captured before
|
|
51
|
+
this fix disappear from the stats without touching the database.
|
|
52
|
+
|
|
53
|
+
### Quieter, truer signals
|
|
54
|
+
|
|
55
|
+
- The "your proxy isn't running" banner no longer fires over a handful of
|
|
56
|
+
cookie-less batches on a site that is otherwise storing events fine (bots,
|
|
57
|
+
a cookie-blocking visitor, someone's curl test). It now requires the drops
|
|
58
|
+
to be recent **and** material relative to stored volume — or a store with
|
|
59
|
+
nothing in it at all, which is the real broken-proxy signature.
|
|
60
|
+
- The Design tab's per-section findings render as one combined note instead
|
|
61
|
+
of a stack of alert boxes.
|
|
62
|
+
- Long lists (type styles, colors, contrast failures, radii, spacing, pages)
|
|
63
|
+
collapse behind "Show more" past 5 rows.
|
|
64
|
+
- Dashboard tabs navigate client-side — switching tabs swaps the content
|
|
65
|
+
without reloading the whole page.
|
|
66
|
+
|
|
5
67
|
### Design review — a new dashboard tab
|
|
6
68
|
|
|
7
69
|
The dashboard now has a sidebar with two tabs: **Analytics** (everything it
|
package/README.md
CHANGED
|
@@ -298,12 +298,13 @@ bar: each must cite the exact page, selector, or component from the data —
|
|
|
298
298
|
citations that don't appear in the analytics are discarded as hallucinations,
|
|
299
299
|
and the rest are matched to your source files so every loss shows the file it
|
|
300
300
|
lives in (or an honest "not matched to source" tag for dynamic content). It's
|
|
301
|
-
**bring-your-own-key
|
|
302
|
-
setup — connect a model (Anthropic, OpenAI, any
|
|
303
|
-
Google), describe your site, scan your codebase,
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
301
|
+
**bring-your-own-key**. The **Settings** tab in the sidebar walks a fresh
|
|
302
|
+
install through a five-step setup — connect a model (Anthropic, OpenAI, any
|
|
303
|
+
OpenAI-compatible endpoint, or Google), describe your site, scan your codebase,
|
|
304
|
+
connect GitHub, pick a refresh cadence — and holds all of it afterwards. The
|
|
305
|
+
card itself is only ever the story: the summary, when it was generated, a
|
|
306
|
+
**refresh** icon to force a regenerate, and a **gear** that jumps to Settings.
|
|
307
|
+
Nothing is sent to a model until you ask.
|
|
307
308
|
|
|
308
309
|
It's built to spend as few tokens as possible:
|
|
309
310
|
|
|
@@ -337,7 +338,7 @@ settings take precedence.
|
|
|
337
338
|
### Project profile — the one-time setup scan
|
|
338
339
|
|
|
339
340
|
To make the summary understand your *code* — not just the numbers — run the
|
|
340
|
-
one-time **Scan codebase** step from
|
|
341
|
+
one-time **Scan codebase** step from Settings → Codebase. Polishd
|
|
341
342
|
reads your app's source from disk (pages and layouts first, then component
|
|
342
343
|
files, under a hard token budget), and asks the model to write a compact
|
|
343
344
|
profile: what the site is for, a map of its routes, and every interactive
|
|
@@ -351,8 +352,8 @@ authoritative context, so:
|
|
|
351
352
|
- **Summaries never re-read source.** One scan, then pure digest + profile.
|
|
352
353
|
- **The codebase is only touched again** when analytics mention a component the
|
|
353
354
|
profile doesn't cover — a tiny targeted read of just the files naming it —
|
|
354
|
-
or when you explicitly re-scan (the
|
|
355
|
-
appear).
|
|
355
|
+
or when you explicitly re-scan (the summary card shows a hint when new
|
|
356
|
+
components appear).
|
|
356
357
|
- On serverless hosts where source isn't on disk, scan in local dev; the saved
|
|
357
358
|
profile keeps serving in production.
|
|
358
359
|
|
|
@@ -383,7 +384,7 @@ colors (`#fefefe` living next to `#ffffff`), contrast failures with the exact
|
|
|
383
384
|
ratio, one-off values that appear on a single page, padding off the 4px grid.
|
|
384
385
|
|
|
385
386
|
The second layer is the **Aesthetic review** card: the same model you
|
|
386
|
-
configured
|
|
387
|
+
configured in Settings reads the measured tokens and findings
|
|
387
388
|
and answers the real question — does this read as one deliberate design, or an
|
|
388
389
|
accumulation of one-off decisions? Issues it raises must cite a token that
|
|
389
390
|
actually appears in the metrics (a hex value, a px size, a page path), and each
|
|
@@ -429,7 +430,17 @@ export default definePolishdConfig({
|
|
|
429
430
|
|
|
430
431
|
The dashboard never measures itself: nothing on `/polishd` (or below it) is
|
|
431
432
|
captured, so reading your analytics can't show up as your site's most-used
|
|
432
|
-
feature. Moved the dashboard elsewhere
|
|
433
|
+
feature. **Moved the dashboard elsewhere?** Set `dashboardRoute` in your
|
|
434
|
+
config, thread the config into the client and route as shown below, and also
|
|
435
|
+
pass it to the page — the dashboard's own queries have no other way to learn
|
|
436
|
+
where they're mounted:
|
|
437
|
+
|
|
438
|
+
```tsx
|
|
439
|
+
export default createPolishdPage({ config: polishdConfig });
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
(`POLISHD_DASHBOARD_ROUTE` is the no-code alternative: ingest and the
|
|
443
|
+
dashboard's queries both read it.)
|
|
433
444
|
|
|
434
445
|
> **Nothing imports this file for you.** It cannot be auto-loaded: the three
|
|
435
446
|
> places that read config run in three different runtimes — the browser, the
|
|
@@ -464,6 +475,7 @@ POLISHD_SESSION_COOKIE=my_session
|
|
|
464
475
|
| `POLISHD_DASHBOARD_TOKEN` | production | Protects `/polishd` with the built-in gate. Generate with `openssl rand -hex 32` |
|
|
465
476
|
| `POLISHD_DASHBOARD_PUBLIC` | production (optional) | `true` — serve the dashboard unguarded on purpose |
|
|
466
477
|
| `POLISHD_SESSION_COOKIE` | optional | Rename the anonymous session cookie. Read by both the proxy and ingest, so they cannot disagree |
|
|
478
|
+
| `POLISHD_DASHBOARD_ROUTE` | optional | Where the dashboard is mounted, if not `/polishd`. Read by ingest and the dashboard's queries so its own traffic is excluded; `createPolishdPage({ config })` is the code-side equivalent |
|
|
467
479
|
| `POLISHD_AI_PROVIDER` | AI (optional) | `anthropic` \| `openai` \| `openai-compatible` \| `google` |
|
|
468
480
|
| `POLISHD_AI_MODEL` | AI (optional) | Model id (defaults per provider, e.g. `claude-opus-4-8`) |
|
|
469
481
|
| `POLISHD_AI_API_KEY` | AI (optional) | Model API key — preset instead of using the dashboard |
|
|
@@ -476,7 +488,7 @@ POLISHD_SESSION_COOKIE=my_session
|
|
|
476
488
|
| `POLISHD_GITHUB_TOKEN` | GitHub (optional) | Fine-grained PAT: Contents (read), Issues & Pull requests (write) |
|
|
477
489
|
| `POLISHD_GITHUB_AUTO_ISSUES` | GitHub (optional) | `true` — file a GitHub issue automatically for each new problem a summary finds |
|
|
478
490
|
|
|
479
|
-
AI settings are optional — the dashboard's Settings
|
|
491
|
+
AI settings are optional — the dashboard's **Settings** tab configures the same
|
|
480
492
|
fields, and what you save there overrides these env defaults.
|
|
481
493
|
|
|
482
494
|
Local dev needs nothing. If no writable store is available the package degrades
|
package/dist/ai/profile.d.ts
CHANGED
|
@@ -2,22 +2,30 @@ import type { PolishdDashboardData } from "../server/queries";
|
|
|
2
2
|
import type { PolishdProjectProfile, GenerateProfileResult } from "./types";
|
|
3
3
|
/** The cached profile, or null. Read-only — never calls a model. */
|
|
4
4
|
export declare function loadProjectProfile(): Promise<PolishdProjectProfile | null>;
|
|
5
|
+
/**
|
|
6
|
+
* The slice of the dashboard data that names components.
|
|
7
|
+
*
|
|
8
|
+
* Narrower than `PolishdDashboardData` on purpose: the Settings tab needs
|
|
9
|
+
* coverage gaps but none of the rest of the analytics, and asking for the
|
|
10
|
+
* whole bundle would mean running the entire query set to render a form.
|
|
11
|
+
*/
|
|
12
|
+
export type PolishdComponentSource = Pick<PolishdDashboardData, "monitored" | "topUsed">;
|
|
5
13
|
/** Component identifiers the analytics currently know about. */
|
|
6
|
-
export declare function componentIdentifiers(data:
|
|
14
|
+
export declare function componentIdentifiers(data: PolishdComponentSource): string[];
|
|
7
15
|
/**
|
|
8
16
|
* Identifiers the analytics talk about that the profile does NOT cover — the
|
|
9
17
|
* trigger for a targeted source read at summary time (and a "re-scan" hint in
|
|
10
18
|
* the UI). An identifier counts as covered if the scan saw it in source or the
|
|
11
19
|
* profile prose mentions it.
|
|
12
20
|
*/
|
|
13
|
-
export declare function coverageGaps(data:
|
|
21
|
+
export declare function coverageGaps(data: PolishdComponentSource, profile: PolishdProjectProfile | null): string[];
|
|
14
22
|
/**
|
|
15
23
|
* Scan the codebase and (re)generate the project profile. Always calls the
|
|
16
24
|
* model — this is an explicit owner action, not something that runs on load.
|
|
17
25
|
*/
|
|
18
26
|
export declare function generateProjectProfile(data?: PolishdDashboardData): Promise<GenerateProfileResult>;
|
|
19
27
|
/** What the dashboard needs on first paint. Reads only — no model, no scan. */
|
|
20
|
-
export declare function loadProfileState(data:
|
|
28
|
+
export declare function loadProfileState(data: PolishdComponentSource): Promise<{
|
|
21
29
|
profile: PolishdProjectProfile | null;
|
|
22
30
|
gaps: string[];
|
|
23
31
|
/** Whether a scan could run here (source tree present on disk). */
|
package/dist/ai/profile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/ai/profile.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAI5E,oEAAoE;AACpE,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAQhF;AAED,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/ai/profile.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAK9D,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAI5E,oEAAoE;AACpE,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAQhF;AAED;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;AAEzF,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,sBAAsB,GAAG,MAAM,EAAE,CAK3E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,sBAAsB,EAC5B,OAAO,EAAE,qBAAqB,GAAG,IAAI,GACpC,MAAM,EAAE,CAOV;AAkBD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,CAAC,EAAE,oBAAoB,GAC1B,OAAO,CAAC,qBAAqB,CAAC,CA2EhC;AAED,+EAA+E;AAC/E,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC;IAC5E,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACtC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,mEAAmE;IACnE,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC,CAaD"}
|
package/dist/ai/profile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/ai/profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAmB,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,WAAW,GAAG,iBAAiB,CAAC;AAEtC,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;IAClD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/ai/profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-scan.d.ts","sourceRoot":"","sources":["../../src/client/design-scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAMV,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AA0BzB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB3D;AAyCD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,OAAuB,GAAG,wBAAwB,GAAG,IAAI,CAqKhG;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAe7E;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EACrD,OAAO,SAAO,GACb,IAAI,
|
|
1
|
+
{"version":3,"file":"design-scan.d.ts","sourceRoot":"","sources":["../../src/client/design-scan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAMV,wBAAwB,EACzB,MAAM,iBAAiB,CAAC;AA0BzB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB3D;AAyCD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,OAAuB,GAAG,wBAAwB,GAAG,IAAI,CAqKhG;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAe7E;AAID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,EACrD,OAAO,SAAO,GACb,IAAI,CA8CN"}
|
|
@@ -283,6 +283,12 @@ export function scheduleDesignScan(path, emit, delayMs = 1500) {
|
|
|
283
283
|
return;
|
|
284
284
|
if (document.visibilityState === "hidden")
|
|
285
285
|
return;
|
|
286
|
+
// The dashboard styles itself; measuring it would report Polishd's design
|
|
287
|
+
// as the site's. The path check upstream normally catches this, but it
|
|
288
|
+
// only knows the configured route — this recognizes the dashboard by its
|
|
289
|
+
// own scope root, so a dashboard mounted anywhere is never scanned.
|
|
290
|
+
if (document.querySelector(".polishd-root"))
|
|
291
|
+
return;
|
|
286
292
|
try {
|
|
287
293
|
const payload = collectDesignScan();
|
|
288
294
|
if (!payload)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-scan.js","sourceRoot":"","sources":["../../src/client/design-scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"design-scan.js","sourceRoot":"","sources":["../../src/client/design-scan.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -79,6 +79,18 @@ export declare function definePolishdConfig(overrides: Partial<PolishdConfig>):
|
|
|
79
79
|
* remember.
|
|
80
80
|
*/
|
|
81
81
|
export declare function resolveSessionCookie(override?: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* Record where the dashboard is actually mounted. Called by
|
|
84
|
+
* `createPolishdPage({ config })` at page-module evaluation, so every query
|
|
85
|
+
* that runs in the same runtime excludes the right route.
|
|
86
|
+
*/
|
|
87
|
+
export declare function registerPolishdDashboardRoute(route: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* The dashboard route as the server currently knows it. An explicit value
|
|
90
|
+
* (from a threaded config) always wins; the env var is the channel for
|
|
91
|
+
* deployments that can't touch code.
|
|
92
|
+
*/
|
|
93
|
+
export declare function resolveDashboardRoute(override?: string): string;
|
|
82
94
|
/**
|
|
83
95
|
* True when `path` is the dashboard route or a page beneath it. The single
|
|
84
96
|
* definition of "this is the dashboard's own traffic", shared by the browser
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,EAAE,aAUlC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAEpF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAIpE"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,EAAE,aAUlC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAEpF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9D;AAeD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAO/D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAIpE"}
|
package/dist/config.js
CHANGED
|
@@ -69,6 +69,40 @@ export function resolveSessionCookie(override) {
|
|
|
69
69
|
return fromEnv;
|
|
70
70
|
return defaultPolishdConfig.sessionCookie;
|
|
71
71
|
}
|
|
72
|
+
// ── Dashboard route resolution (server side) ────────────────────────────────
|
|
73
|
+
// The route the dashboard is mounted at has to be known in more places than
|
|
74
|
+
// the client config can reach. The client learns it from the config threaded
|
|
75
|
+
// into `initPolishd()`; the *server* read side (the dashboard's own queries)
|
|
76
|
+
// is called with no arguments and cannot receive that object. It resolves
|
|
77
|
+
// through here instead: an explicit override, then the route the rendered
|
|
78
|
+
// dashboard page registered about itself, then `POLISHD_DASHBOARD_ROUTE`,
|
|
79
|
+
// then the default. Without this, an app that mounts the dashboard somewhere
|
|
80
|
+
// other than /polishd (say /polish) reads its own dashboard back as a page of
|
|
81
|
+
// the site — its busiest one, since the owner keeps opening it.
|
|
82
|
+
let registeredDashboardRoute = null;
|
|
83
|
+
/**
|
|
84
|
+
* Record where the dashboard is actually mounted. Called by
|
|
85
|
+
* `createPolishdPage({ config })` at page-module evaluation, so every query
|
|
86
|
+
* that runs in the same runtime excludes the right route.
|
|
87
|
+
*/
|
|
88
|
+
export function registerPolishdDashboardRoute(route) {
|
|
89
|
+
registeredDashboardRoute = route;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* The dashboard route as the server currently knows it. An explicit value
|
|
93
|
+
* (from a threaded config) always wins; the env var is the channel for
|
|
94
|
+
* deployments that can't touch code.
|
|
95
|
+
*/
|
|
96
|
+
export function resolveDashboardRoute(override) {
|
|
97
|
+
if (override)
|
|
98
|
+
return override;
|
|
99
|
+
if (registeredDashboardRoute)
|
|
100
|
+
return registeredDashboardRoute;
|
|
101
|
+
const fromEnv = typeof process !== "undefined" ? process.env.POLISHD_DASHBOARD_ROUTE : undefined;
|
|
102
|
+
if (fromEnv && fromEnv.length > 0)
|
|
103
|
+
return fromEnv;
|
|
104
|
+
return defaultPolishdConfig.dashboardRoute;
|
|
105
|
+
}
|
|
72
106
|
/**
|
|
73
107
|
* True when `path` is the dashboard route or a page beneath it. The single
|
|
74
108
|
* definition of "this is the dashboard's own traffic", shared by the browser
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA6BH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,cAAc;IACxB,eAAe,EAAE,MAAM;IACvB,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;IACtC,YAAY,EAAE,uBAAuB;IACrC,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,UAAU;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiC;IACnE,OAAO,EAAE,GAAG,oBAAoB,EAAE,GAAG,SAAS,EAAE,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAiB;IACpD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACnD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAClD,OAAO,oBAAoB,CAAC,aAAa,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA6BH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,cAAc;IACxB,eAAe,EAAE,MAAM;IACvB,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,CAAC;IACb,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE;IACtC,YAAY,EAAE,uBAAuB;IACrC,aAAa,EAAE,iBAAiB;IAChC,cAAc,EAAE,UAAU;CAC3B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiC;IACnE,OAAO,EAAE,GAAG,oBAAoB,EAAE,GAAG,SAAS,EAAE,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAiB;IACpD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IACnD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAClD,OAAO,oBAAoB,CAAC,aAAa,CAAC;AAC5C,CAAC;AAED,+EAA+E;AAC/E,4EAA4E;AAC5E,6EAA6E;AAC7E,6EAA6E;AAC7E,0EAA0E;AAC1E,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,8EAA8E;AAC9E,gEAAgE;AAEhE,IAAI,wBAAwB,GAAkB,IAAI,CAAC;AAEnD;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAAa;IACzD,wBAAwB,GAAG,KAAK,CAAC;AACnC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAiB;IACrD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,wBAAwB;QAAE,OAAO,wBAAwB,CAAC;IAC9D,MAAM,OAAO,GACX,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IAClD,OAAO,oBAAoB,CAAC,cAAc,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrB,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export type PolishdDashboardTab = "analytics" | "design" | "settings";
|
|
3
|
+
/**
|
|
4
|
+
* A link to another dashboard tab that reports for duty immediately — the rail
|
|
5
|
+
* highlights and the skeleton appears on click, not on server response.
|
|
6
|
+
*/
|
|
7
|
+
export declare function TabLink({ tab, className, title, current, busy, "aria-label": ariaLabel, children, }: {
|
|
8
|
+
tab: PolishdDashboardTab;
|
|
9
|
+
className?: string;
|
|
10
|
+
title?: string;
|
|
11
|
+
/** Marks this link as the tab currently being shown. */
|
|
12
|
+
current?: boolean;
|
|
13
|
+
/** Marks it as the tab being navigated to right now. */
|
|
14
|
+
busy?: boolean;
|
|
15
|
+
"aria-label"?: string;
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
}): import("react").JSX.Element;
|
|
18
|
+
export default function DashboardChrome({ active, children, }: {
|
|
19
|
+
active: PolishdDashboardTab;
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
}): import("react").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=chrome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../src/dashboard/chrome.tsx"],"names":[],"mappings":"AA4BA,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAgBtE;;;GAGG;AACH,wBAAgB,OAAO,CAAC,EACtB,GAAG,EACH,SAAS,EACT,KAAK,EACL,OAAe,EACf,IAAY,EACZ,YAAY,EAAE,SAAS,EACvB,QAAQ,GACT,EAAE;IACD,GAAG,EAAE,mBAAmB,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAoBA;AAkBD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,MAAM,EACN,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAkEA"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Polishd — the dashboard's outer frame: brand block, tab rail, content column.
|
|
5
|
+
*
|
|
6
|
+
* Every tab is a full server render of the same route with a different `?tab=`,
|
|
7
|
+
* which is honest but slow enough to feel broken: you click "Design", nothing
|
|
8
|
+
* moves for a second or two, so you click it again. This component takes the
|
|
9
|
+
* tab state into the client and answers the click immediately —
|
|
10
|
+
*
|
|
11
|
+
* • the clicked tab becomes the selected one straight away, before the server
|
|
12
|
+
* has said anything;
|
|
13
|
+
* • its icon turns into a spinner, and it stops accepting clicks, so an
|
|
14
|
+
* impatient second click can't queue a second navigation;
|
|
15
|
+
* • the content column swaps to a skeleton, so the page visibly *becomes*
|
|
16
|
+
* something new rather than sitting there looking ignored.
|
|
17
|
+
*
|
|
18
|
+
* The links are still real `next/link` anchors with real hrefs — only plain
|
|
19
|
+
* left clicks are intercepted, so middle-click and ⌘-click still open a tab,
|
|
20
|
+
* and the whole thing degrades to ordinary navigation without JS.
|
|
21
|
+
*
|
|
22
|
+
* `TabLink` exports the same behaviour to links *inside* a tab (the summary
|
|
23
|
+
* card's gear, the design review's "connect a model"), so a cross-tab link
|
|
24
|
+
* anywhere on the dashboard gets the identical instant response.
|
|
25
|
+
*/
|
|
26
|
+
import Link from "next/link";
|
|
27
|
+
import { useRouter } from "next/navigation";
|
|
28
|
+
import { createContext, useContext, useEffect, useRef, useState, useTransition, } from "react";
|
|
29
|
+
import { ChartIcon, DropletIcon, GearIcon, SpinnerIcon, card, labelCls } from "./ui";
|
|
30
|
+
const TABS = [
|
|
31
|
+
{ id: "analytics", name: "Analytics", icon: _jsx(ChartIcon, {}) },
|
|
32
|
+
{ id: "design", name: "Design", icon: _jsx(DropletIcon, {}) },
|
|
33
|
+
{ id: "settings", name: "Settings", icon: _jsx(GearIcon, {}) },
|
|
34
|
+
];
|
|
35
|
+
/** Set by the chrome; null when a tab's markup is rendered outside it. */
|
|
36
|
+
const TabNavContext = createContext(null);
|
|
37
|
+
/** True for clicks the browser should keep: new tab, new window, middle-click. */
|
|
38
|
+
function isModified(e) {
|
|
39
|
+
return e.metaKey || e.ctrlKey || e.shiftKey || e.altKey || e.button !== 0;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A link to another dashboard tab that reports for duty immediately — the rail
|
|
43
|
+
* highlights and the skeleton appears on click, not on server response.
|
|
44
|
+
*/
|
|
45
|
+
export function TabLink({ tab, className, title, current = false, busy = false, "aria-label": ariaLabel, children, }) {
|
|
46
|
+
const navigate = useContext(TabNavContext);
|
|
47
|
+
return (_jsx(Link, { href: `?tab=${tab}`, prefetch: false, title: title, "aria-label": ariaLabel, "aria-current": current ? "page" : undefined, "aria-busy": busy || undefined, className: className, onClick: (e) => {
|
|
48
|
+
if (isModified(e) || !navigate)
|
|
49
|
+
return;
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
navigate(tab);
|
|
52
|
+
}, children: children }));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The dashboard renders inside its own scroll container (`PolishdShell`), not
|
|
56
|
+
* the document, so Next's scroll-to-top on navigation doesn't reach it — you
|
|
57
|
+
* would land on the new tab already scrolled halfway down it. Find whatever is
|
|
58
|
+
* actually scrolling and reset that too.
|
|
59
|
+
*/
|
|
60
|
+
function scrollTopFrom(node) {
|
|
61
|
+
for (let el = node?.parentElement ?? null; el; el = el.parentElement) {
|
|
62
|
+
const overflowY = getComputedStyle(el).overflowY;
|
|
63
|
+
if ((overflowY === "auto" || overflowY === "scroll") && el.scrollHeight > el.clientHeight) {
|
|
64
|
+
el.scrollTop = 0;
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export default function DashboardChrome({ active, children, }) {
|
|
70
|
+
const router = useRouter();
|
|
71
|
+
const rootRef = useRef(null);
|
|
72
|
+
const [pending, startNav] = useTransition();
|
|
73
|
+
// The tab the owner asked for, held only until the server render arrives.
|
|
74
|
+
const [target, setTarget] = useState(null);
|
|
75
|
+
// The committed render is the truth again — whether it's the tab we asked
|
|
76
|
+
// for, or a back/forward that went somewhere else entirely.
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
setTarget(null);
|
|
79
|
+
}, [active]);
|
|
80
|
+
const selected = target ?? active;
|
|
81
|
+
const loading = pending && target !== null;
|
|
82
|
+
const navigate = (tab) => {
|
|
83
|
+
if (tab === selected)
|
|
84
|
+
return;
|
|
85
|
+
setTarget(tab);
|
|
86
|
+
scrollTopFrom(rootRef.current);
|
|
87
|
+
startNav(() => router.push(`?tab=${tab}`));
|
|
88
|
+
};
|
|
89
|
+
return (_jsx(TabNavContext.Provider, { value: navigate, children: _jsx("div", { ref: rootRef, className: "mx-auto max-w-6xl px-4 py-8 text-white sm:px-6 sm:py-10", children: _jsxs("div", { className: "flex flex-col gap-6 lg:flex-row lg:gap-10", children: [_jsx("aside", { className: "shrink-0 lg:w-44", children: _jsxs("div", { className: "lg:sticky lg:top-8", children: [_jsx("p", { className: labelCls, children: "Polishd" }), _jsx("p", { className: "mt-1 hidden text-[12px] leading-snug text-[#555] lg:block", children: "What gets measured gets improved" }), _jsx("nav", { "aria-label": "Dashboard sections", className: "mt-1 flex gap-1.5 lg:mt-5 lg:flex-col", children: TABS.map((tab) => {
|
|
90
|
+
const isSelected = selected === tab.id;
|
|
91
|
+
return (_jsxs(TabLink, { tab: tab.id, current: isSelected, busy: loading && isSelected, className: `flex items-center gap-2 rounded-md border px-3 py-1.5 text-[13px] transition-colors ${isSelected
|
|
92
|
+
? "border-[#2e2e2e] bg-[#141414] font-medium text-white"
|
|
93
|
+
: "border-transparent text-[#888] hover:bg-[#0f0f0f] hover:text-white"}`, children: [loading && isSelected ? _jsx(SpinnerIcon, {}) : tab.icon, tab.name] }, tab.id));
|
|
94
|
+
}) })] }) }), _jsx("div", { className: "min-w-0 flex-1", children: loading ? _jsx(TabSkeleton, { name: TABS.find((t) => t.id === target).name }) : children })] }) }) }));
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Stand-in for the tab being fetched.
|
|
98
|
+
*
|
|
99
|
+
* Deliberately the *shape* every tab shares — a title block, a wide card, a
|
|
100
|
+
* grid, a list — rather than a per-tab replica. A skeleton that mirrors the
|
|
101
|
+
* real layout too closely reads as a broken render when the real thing lands
|
|
102
|
+
* slightly different; this one reads as "loading" and gets out of the way.
|
|
103
|
+
*/
|
|
104
|
+
function TabSkeleton({ name }) {
|
|
105
|
+
return (_jsxs("div", { className: "animate-pulse text-white", children: [_jsxs("span", { className: "sr-only", role: "status", children: ["Loading ", name] }), _jsxs("div", { className: "mb-8 flex items-start justify-between gap-3 border-b border-[#2e2e2e] pb-6", children: [_jsxs("div", { children: [_jsx("div", { className: "h-[22px] w-40 rounded bg-[#1a1a1a]" }), _jsx("div", { className: "mt-2.5 h-3 w-64 max-w-full rounded bg-[#141414]" })] }), _jsx("div", { className: "h-6 w-28 shrink-0 rounded-full bg-[#141414]" })] }), _jsxs("div", { className: `mb-8 ${card} px-4 py-5 sm:px-5`, children: [_jsx("div", { className: "h-3 w-32 rounded bg-[#1a1a1a]" }), _jsxs("div", { className: "mt-4 space-y-2", children: [_jsx("div", { className: "h-3 w-full rounded bg-[#141414]" }), _jsx("div", { className: "h-3 w-[92%] rounded bg-[#141414]" }), _jsx("div", { className: "h-3 w-[68%] rounded bg-[#141414]" })] })] }), _jsx("div", { className: "mb-8 grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-6", children: Array.from({ length: 6 }, (_, i) => (_jsxs("div", { className: `${card} px-4 py-4`, children: [_jsx("div", { className: "h-6 w-14 rounded bg-[#1a1a1a]" }), _jsx("div", { className: "mt-3 h-2.5 w-16 rounded bg-[#141414]" })] }, i))) }), _jsx("div", { className: `${card} overflow-hidden`, children: Array.from({ length: 4 }, (_, i) => (_jsxs("div", { className: "flex items-center justify-between gap-4 border-t border-[#2e2e2e] px-5 py-3.5 first:border-t-0", children: [_jsx("div", { className: "h-3 flex-1 rounded bg-[#141414]", style: { maxWidth: `${70 - i * 12}%` } }), _jsx("div", { className: "h-3 w-12 shrink-0 rounded bg-[#141414]" })] }, i))) })] }));
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=chrome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/dashboard/chrome.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-review-card.d.ts","sourceRoot":"","sources":["../../src/dashboard/design-review-card.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAsB,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"design-review-card.d.ts","sourceRoot":"","sources":["../../src/dashboard/design-review-card.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAsB,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAI3E,4EAA4E;AAC5E,wBAAgB,oBAAoB,gCAenC;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,gEAAgE;AAChE,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,aAAa,EACb,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,KAAK,EACL,YAAY,GACb,EAAE,qBAAqB,+BAoGvB"}
|
|
@@ -16,26 +16,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
16
16
|
import { useState, useTransition } from "react";
|
|
17
17
|
import { useRouter } from "next/navigation";
|
|
18
18
|
import { generateDesignReviewAction } from "../ai/actions";
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const labelCls = "text-[11px] font-medium uppercase tracking-[0.08em] text-[#666]";
|
|
22
|
-
const iconBtn = "flex h-7 w-7 items-center justify-center rounded-md border border-[#2e2e2e] text-[#aaa] transition-colors hover:border-[#555] hover:text-white disabled:cursor-not-allowed disabled:opacity-40";
|
|
23
|
-
const primaryBtn = "rounded-md bg-white px-3 py-1.5 text-[12px] font-medium text-black transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-40";
|
|
24
|
-
function relTime(ms) {
|
|
25
|
-
const s = Math.max(0, Math.round((Date.now() - ms) / 1000));
|
|
26
|
-
if (s < 60)
|
|
27
|
-
return "just now";
|
|
28
|
-
const m = Math.round(s / 60);
|
|
29
|
-
if (m < 60)
|
|
30
|
-
return `${m}m ago`;
|
|
31
|
-
const h = Math.round(m / 60);
|
|
32
|
-
if (h < 24)
|
|
33
|
-
return `${h}h ago`;
|
|
34
|
-
return `${Math.round(h / 24)}d ago`;
|
|
35
|
-
}
|
|
36
|
-
function RefreshIcon({ spinning }) {
|
|
37
|
-
return (_jsxs("svg", { width: "13", height: "13", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: spinning ? "animate-spin" : undefined, "aria-hidden": true, children: [_jsx("polyline", { points: "23 4 23 10 17 10" }), _jsx("path", { d: "M20.49 15a9 9 0 1 1-2.12-9.36L23 10" })] }));
|
|
38
|
-
}
|
|
19
|
+
import { TabLink } from "./chrome";
|
|
20
|
+
import { RefreshIcon, border, card, iconBtn, labelCls, primaryBtn, relTime } from "./ui";
|
|
39
21
|
/** Re-run the deterministic metrics: refresh the server render in place. */
|
|
40
22
|
export function RefreshMetricsButton() {
|
|
41
23
|
const router = useRouter();
|
|
@@ -63,14 +45,14 @@ export default function DesignReviewCard({ initialReview, initialStale, hasApiKe
|
|
|
63
45
|
};
|
|
64
46
|
const canGenerate = hasApiKey && scannedPages > 0;
|
|
65
47
|
return (_jsxs("section", { className: `mb-8 ${card} overflow-hidden`, children: [_jsxs("div", { className: `flex items-center justify-between gap-3 border-b ${border} px-4 py-3 sm:px-5`, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: labelCls, children: "Aesthetic review" }), hasApiKey && (_jsxs("span", { className: "hidden rounded-full bg-[#1a1a1a] px-2 py-0.5 text-[10px] font-medium text-[#888] sm:inline", children: [provider, " \u00B7 ", model] }))] }), _jsx("button", { type: "button", onClick: () => generate(review !== null), disabled: pending || !canGenerate, title: !hasApiKey
|
|
66
|
-
? "Connect a model first
|
|
48
|
+
? "Connect a model first — Settings tab"
|
|
67
49
|
: scannedPages === 0
|
|
68
50
|
? "No pages scanned yet"
|
|
69
51
|
: "Regenerate the design review now", "aria-label": "Refresh design review", className: iconBtn, children: _jsx(RefreshIcon, { spinning: pending }) })] }), _jsxs("div", { className: "px-4 py-4 sm:px-5 sm:py-5", children: [error && (_jsx("div", { className: "mb-3 rounded-md border border-red-900/50 bg-red-950/30 px-3 py-2 text-[12px] text-red-400", children: error })), review ? (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-[14px] leading-relaxed text-[#e4e4e4]", children: review.text }), _jsx(StrengthsIssues, { strengths: review.strengths, issues: review.issues }), _jsxs("div", { className: "mt-3 flex flex-wrap items-center gap-x-3 gap-y-1 text-[11px] text-[#555]", children: [_jsxs("span", { children: ["Generated ", relTime(review.generatedAt), " \u00B7 ", review.provider, "/", review.model] }), stale && (_jsx("span", { className: "rounded-full bg-amber-950/50 px-2 py-0.5 text-amber-400", children: "Metrics changed since this review \u2014 refresh to update" }))] })] })) : (_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsx("p", { className: "text-[13px] leading-relaxed text-[#888]", children: !hasApiKey
|
|
70
|
-
? "No model connected.
|
|
52
|
+
? "No model connected. The design review uses the same provider and key as the analytics summary — add one in Settings."
|
|
71
53
|
: scannedPages === 0
|
|
72
54
|
? "No pages scanned yet — browse the site and the design metrics will appear here."
|
|
73
|
-
: "No review yet — ask the model how coherent this design system reads, and what would sharpen it." }), _jsx("button", { type: "button", onClick: () => generate(false), disabled: pending || !canGenerate, className: primaryBtn, children: pending ? "Reviewing…" : "Generate review" })] }))] })] }));
|
|
55
|
+
: "No review yet — ask the model how coherent this design system reads, and what would sharpen it." }), hasApiKey ? (_jsx("button", { type: "button", onClick: () => generate(false), disabled: pending || !canGenerate, className: primaryBtn, children: pending ? "Reviewing…" : "Generate review" })) : (_jsx(TabLink, { tab: "settings", className: primaryBtn, children: "Connect a model" }))] }))] })] }));
|
|
74
56
|
}
|
|
75
57
|
function StrengthsIssues({ strengths, issues, }) {
|
|
76
58
|
const hasStrengths = !!strengths?.length;
|