@squadbase/vantage-template 0.1.1-dev1.2be5c44 → 0.1.1-dev1.3f269fd
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/base-template/.squadbase/skills/vantage-design/SKILL.md +3 -1
- package/base-template/.squadbase/skills/vantage-design/references/format.md +1 -1
- package/base-template/AGENTS.md +89 -0
- package/base-template/DESIGN.md +1 -1
- package/base-template/agents/api.md +29 -0
- package/base-template/agents/page.md +2 -2
- package/base-template/agents/slide.md +13 -1
- package/base-template/bun.lock +76 -66
- package/base-template/package.json +6 -6
- package/base-template/src/index.tsx +8 -3
- package/base-template/src/styles.css +9 -0
- package/package.json +1 -1
- package/ui-templates/kpi-chart-simple/pages/index.tsx +3 -3
- package/ui-templates/kpi-chart-simple-ja/pages/index.tsx +3 -3
|
@@ -77,7 +77,7 @@ Vantage アプリの見た目は 2 つのファイルで決まる。
|
|
|
77
77
|
|
|
78
78
|
```css
|
|
79
79
|
body {
|
|
80
|
-
font-family: "<Font>", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
80
|
+
font-family: "<Font>", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;
|
|
81
81
|
}
|
|
82
82
|
:root {
|
|
83
83
|
--slide-font-display: "<Font>", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
|
|
@@ -85,6 +85,8 @@ Vantage アプリの見た目は 2 つのファイルで決まる。
|
|
|
85
85
|
}
|
|
86
86
|
```
|
|
87
87
|
|
|
88
|
+
欧文の Web フォントだけを先頭に足すときも、日本語の system face(`"Hiragino Sans"` 〜 `Meiryo`)は
|
|
89
|
+
必ず残す。消すとカナ・漢字がブラウザ任せのフォールバックになり、細く表示される。
|
|
88
90
|
日本語の Web フォントは face が 100 を超えるので原則使わない(pptx 書き出しも壊れる。
|
|
89
91
|
`vantage-slide` の `references/tokens.md` 参照)。
|
|
90
92
|
|
|
@@ -119,7 +119,7 @@ DESIGN.md — このアプリの「見た目の意図」を書くファイルで
|
|
|
119
119
|
|
|
120
120
|
| 用途 | 指定 | 備考 |
|
|
121
121
|
| --- | --- | --- |
|
|
122
|
-
| 見出し・本文 |
|
|
122
|
+
| 見出し・本文 | 日本語を含むシステムフォント(`body` の `font-family`) | Web フォントは使わない |
|
|
123
123
|
| 数字 | 同上 + `tabular-nums` | 桁がそろうように必ず付ける |
|
|
124
124
|
| スライドの見出し | `--slide-font-display` | 既定は日本語を含むシステムフォント |
|
|
125
125
|
| スライドの本文 | `--slide-font-body` | 既定は見出しと同じ |
|
package/base-template/AGENTS.md
CHANGED
|
@@ -302,6 +302,34 @@ const res = await fetch(`${baseUrl}/queries/${QUERY_ID}?since=2026-01-01`, {
|
|
|
302
302
|
})
|
|
303
303
|
```
|
|
304
304
|
|
|
305
|
+
### 生の応答から行を取り出す(`noUncheckedIndexedAccess`)
|
|
306
|
+
|
|
307
|
+
テンプレートの `tsconfig.json` は `noUncheckedIndexedAccess: true`。**配列の添字はすべて
|
|
308
|
+
`T | undefined`** なので、HTTP Query が通す上流の生の応答(GA4 の `rows[].metricValues[]` など)を
|
|
309
|
+
`row.metricValues[0].value` と書くと `Object is possibly 'undefined'.` で落ちる。書く前に添字
|
|
310
|
+
アクセスを頭の中で型検査し、応答の型と行の変換関数を先に決めて `?.` と `??` で取り出す:
|
|
311
|
+
|
|
312
|
+
```ts
|
|
313
|
+
type Ga4Row = {
|
|
314
|
+
dimensionValues?: { value?: string }[]
|
|
315
|
+
metricValues?: { value?: string }[]
|
|
316
|
+
}
|
|
317
|
+
type SessionsDaily = { date: string; sessions: number; pageViews: number }
|
|
318
|
+
|
|
319
|
+
const toSessionsDaily = (row: Ga4Row): SessionsDaily => ({
|
|
320
|
+
date: row.dimensionValues?.[0]?.value ?? "",
|
|
321
|
+
sessions: Number(row.metricValues?.[0]?.value ?? "0"),
|
|
322
|
+
pageViews: Number(row.metricValues?.[1]?.value ?? "0"),
|
|
323
|
+
})
|
|
324
|
+
|
|
325
|
+
const report = (await res.json()) as { rows?: Ga4Row[] }
|
|
326
|
+
return Response.json((report.rows ?? []).map(toSessionsDaily))
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
- 値が欠けた行を落としたいときは `if (!date) throw new HttpError(502, …)` ではなく、変換後に
|
|
330
|
+
`.filter((r) => r.date !== "")` で除く。`date!` のような非 null 断言で黙らせない。
|
|
331
|
+
- SQL Query の `rows` も同じ。`rows[0]` を使うなら `const first = rows[0]; if (!first) …` で先に絞る。
|
|
332
|
+
|
|
305
333
|
## 構築中の一時的なエラーを「進行中」に見せる(`components/build-recovery.tsx`)
|
|
306
334
|
|
|
307
335
|
ページを書いている途中は、ファイルが書き終わる順番の都合で一瞬だけページが throw する
|
|
@@ -349,3 +377,64 @@ lockfile は `bun.lock`)。Squadbase のサンドボックスは bun と依存
|
|
|
349
377
|
`bun install` を一度走らせて `bun.lock` を追従させ、両方を同じコミットに入れる。
|
|
350
378
|
- スクリプトは `bun run <script>`(`bun run dev` / `bun run build` / `bun run check` /
|
|
351
379
|
`bun run routes`)。`npm run <script>` でも動くが、install に npm を使わないこと。
|
|
380
|
+
|
|
381
|
+
## このアプリで作れるもの
|
|
382
|
+
|
|
383
|
+
ユーザーの目的に合わせて、どの形にするかを選ぶ。ここに書かれていない形は約束しない。
|
|
384
|
+
|
|
385
|
+
- **ダッシュボード** — 数字を繰り返し見に来て、変化に気づきたいとき。指標と推移・内訳を 1 画面に
|
|
386
|
+
置き、`server/api/` で実データを取る。
|
|
387
|
+
- 書き込む場所: `src/<slug>.tsx`, `server/api/<slug>/**`
|
|
388
|
+
- ページ: あり
|
|
389
|
+
- 作り方: `src/` にページ(`.tsx`)を置く。書く前に `agents/page.md`(API は `agents/api.md`)を読む。
|
|
390
|
+
- **スライド** — 分析の示唆をまとめて誰かに伝えるとき(調査結果の報告、会議資料、施策の提案)。
|
|
391
|
+
結論 → 根拠 → 次の一手の順にまとめる。
|
|
392
|
+
- 書き込む場所: `src/<slug>.slide.tsx`, `vantage-slide/**`
|
|
393
|
+
- ページ: あり
|
|
394
|
+
- 作り方: `src/<slug>.slide.tsx` に `<SlideDeck>` を返すページを置く(`@squadbase/vantage/slide`)。
|
|
395
|
+
書く前に `agents/slide.md` を読み、`vantage-slide` Skill が未配置なら
|
|
396
|
+
`vantage add skill vantage-slide` で置いてから読む。
|
|
397
|
+
- **ドキュメント** — 報告書・調査のまとめ・説明資料のように、文章と図表を上から読む形で残し
|
|
398
|
+
共有したいとき。
|
|
399
|
+
- 書き込む場所: `src/<slug>.doc.tsx`
|
|
400
|
+
- ページ: あり
|
|
401
|
+
- 作り方: `src/<slug>.doc.tsx` に `<Document>` を返すページを置く(`@squadbase/vantage/doc`。
|
|
402
|
+
ルートは `.doc` を除いた `/<slug>`)。数値はコードに直接書き、チャートは `EChart` を文中に置く。
|
|
403
|
+
書く前に `agents/doc.md` を読む。
|
|
404
|
+
- **オートメーション** — 決まった時刻に集計・通知・定期レポートを回したいとき、しきい値で
|
|
405
|
+
アラートしたいとき。
|
|
406
|
+
- 書き込む場所: `automations/<slug>/**`, `pipelines/**`
|
|
407
|
+
- ページ: なし
|
|
408
|
+
- 作り方: `automations/<名前>/automation.yml` に定義し、処理のコードは `pipelines/` に置く。
|
|
409
|
+
書く前に Automation のガイド(`readAutomationGuide`)を読む。
|
|
410
|
+
|
|
411
|
+
## 表示領域に安定 ID を付ける(`data-sq-ref`)
|
|
412
|
+
|
|
413
|
+
Squadbase のチャットは、回答の根拠になったグラフ・表・KPI カードを
|
|
414
|
+
`squadbase://page/<path>#<ref>`(スライド内なら `?p=<N>#<ref>`)のリンクで指し、その領域を開く。
|
|
415
|
+
`<ref>` はページのソースに書かれた `data-sq-ref` の値で、過去の回答のリンクもこの値で今の画面を開く。
|
|
416
|
+
|
|
417
|
+
```tsx
|
|
418
|
+
<DashboardCardPreset data-sq-ref="revenue-trend" title="売上の推移">
|
|
419
|
+
<EChart option={trendOption(data)} height="320px" />
|
|
420
|
+
</DashboardCardPreset>
|
|
421
|
+
|
|
422
|
+
{kpis.map((kpi) => (
|
|
423
|
+
<DashboardCard key={kpi.id} data-sq-ref={kpi.id}>...</DashboardCard>
|
|
424
|
+
))}
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### 追加の不変条件
|
|
428
|
+
|
|
429
|
+
- **意味のまとまった表示領域(グラフ・表・KPI カードなど)のルート要素に付ける。** 通常は
|
|
430
|
+
`DashboardCard` / `DashboardCardPreset` のように props を DOM に流す部品。`EChart` / `DataTable` /
|
|
431
|
+
`SectionHeader` は付けた属性を DOM に流さないので、それらを包むカード(または `div`)に付ける。
|
|
432
|
+
- **値の形式は `^[A-Za-z0-9][A-Za-z0-9_-]{0,99}$`**(ASCII の英数字・ハイフン・アンダースコア、先頭は英数字、
|
|
433
|
+
100 文字以内)。これ以外の値はリンクから開けない。推奨は意味を表す小文字 kebab-case の名前
|
|
434
|
+
(例: `revenue-trend`, `churn-by-segment`)。表示順・ソース上の位置・index・連番から作らない。
|
|
435
|
+
- **`.map` で描く領域は、データの安定したキー(`kpi.id` など)がこの形式を満たすときだけ `data-sq-ref={kpi.id}`
|
|
436
|
+
のように使う。** 日本語や空白を含むキーはそのまま使わず、変換もしない(変換規則が変わると値が変わる)。
|
|
437
|
+
その場合は静的な意味名を付けるか、付けない。
|
|
438
|
+
- **ページ内で一意にする。**
|
|
439
|
+
- **新しく作った・直した画面では付ける。更新では既存の値を変えない** — 領域の意味が変わったときだけ変える
|
|
440
|
+
(値を変えると、それを指していた過去のリンクが開けなくなる)。触っていない画面へ遡って付けることはしない。
|
package/base-template/DESIGN.md
CHANGED
|
@@ -56,7 +56,7 @@ DESIGN.md — このアプリの「見た目の意図」を書くファイルで
|
|
|
56
56
|
|
|
57
57
|
| 用途 | 指定 | 備考 |
|
|
58
58
|
| --- | --- | --- |
|
|
59
|
-
| 見出し・本文 |
|
|
59
|
+
| 見出し・本文 | 日本語を含むシステムフォント(`body` の `font-family`) | Web フォントは使わない |
|
|
60
60
|
| 数字 | 同上 + `tabular-nums` | 桁がそろうように必ず付ける |
|
|
61
61
|
| スライドの見出し | `--slide-font-display` | 既定は日本語を含むシステムフォント |
|
|
62
62
|
| スライドの本文 | `--slide-font-body` | 既定は見出しと同じ |
|
|
@@ -25,6 +25,11 @@ export async function GET({ params, env }: ApiContext) {
|
|
|
25
25
|
エクスポートする。それ以外の名前は `INVALID_API_EXPORT` エラー。
|
|
26
26
|
- 動的 API も `[id].ts` 記法: `server/api/customers/[id].ts` → `GET /api/customers/:id`。
|
|
27
27
|
`params.id` で取り出す(`noUncheckedIndexedAccess` が効くので narrowing が要る)。
|
|
28
|
+
- **`noUncheckedIndexedAccess` は配列・レコードの添字すべてに効く。** `arr[0]` も `obj[key]` も
|
|
29
|
+
`T | undefined` になる。最初に書く前に、添字アクセスと `useApiQuery` の `data` が
|
|
30
|
+
undefined を扱っているかを頭の中で型検査してから書く。上流の生の応答の値は
|
|
31
|
+
`Number(row.metricValues?.[0]?.value ?? "0")` のように `?.` と `??` で取り出す
|
|
32
|
+
(`!` で黙らせない)。
|
|
28
33
|
- **クライアントに見せたいエラーは `HttpError(status, msg)` を throw する。** それ以外の throw は
|
|
29
34
|
ログに記録され汎用の 500 に丸められる。
|
|
30
35
|
- **シークレットは `ApiContext.env` にだけ届く**(クライアントには決して届かない)。
|
|
@@ -34,9 +39,12 @@ export async function GET({ params, env }: ApiContext) {
|
|
|
34
39
|
|
|
35
40
|
```tsx
|
|
36
41
|
import { useApiQuery, useApiMutation } from "@squadbase/vantage/query"
|
|
42
|
+
import { Loading, ErrorState } from "@squadbase/vantage/ui"
|
|
37
43
|
|
|
38
44
|
const q = useApiQuery<Customer>(`/api/customers/${customerId}`)
|
|
45
|
+
if (q.isPending) return <Loading />
|
|
39
46
|
if (q.isError) return <ErrorState message={q.error.message} /> // HttpError のメッセージ
|
|
47
|
+
q.data // ここで初めて Customer(undefined ではない)
|
|
40
48
|
|
|
41
49
|
// クエリ文字列は search で。undefined の項目は落ちる
|
|
42
50
|
const rows = useApiQuery<Row[]>("/api/customers", { search: { segment } })
|
|
@@ -45,5 +53,26 @@ const rows = useApiQuery<Row[]>("/api/customers", { search: { segment } })
|
|
|
45
53
|
const save = useApiMutation<Customer, Payload>("/api/customers", { method: "POST" })
|
|
46
54
|
```
|
|
47
55
|
|
|
56
|
+
**`data` は、同じ結果オブジェクトで `isPending` と `isError` を判定したあとでしか
|
|
57
|
+
narrowing されない。** 判定前や、配列の `.find` などでまとめた判定のあとでは `T | undefined` のまま。
|
|
58
|
+
複数のクエリは 1 本ずつ判定してから `data` を使う(`data!` で黙らせない):
|
|
59
|
+
|
|
60
|
+
```tsx
|
|
61
|
+
const sessions = useApiQuery<SessionsDaily[]>("/api/sessions-daily")
|
|
62
|
+
const metrics = useApiQuery<MetricsDaily[]>("/api/metrics-daily")
|
|
63
|
+
|
|
64
|
+
if (sessions.isPending || metrics.isPending) return <Loading />
|
|
65
|
+
if (sessions.isError) return <ErrorState message={sessions.error.message} />
|
|
66
|
+
if (metrics.isError) return <ErrorState message={metrics.error.message} />
|
|
67
|
+
// ここから sessions.data: SessionsDaily[] / metrics.data: MetricsDaily[]
|
|
68
|
+
return <Chart sessions={sessions.data} metrics={metrics.data} />
|
|
69
|
+
|
|
70
|
+
// NG: const failed = [sessions, metrics].find((q) => q.isError) のように配列でまとめて判定すると
|
|
71
|
+
// 各 q.data は narrowing されず、`T[] | undefined` を T[] の props に渡して型エラーになる
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
カードごとに別々に読み込み中・エラーを出すなら、`data` を渡す側で `q.data ?? []` にするか、
|
|
75
|
+
カードのコンポーネントの中で上と同じ判定をする。
|
|
76
|
+
|
|
48
77
|
`ApiError` は `message`・`status`・`body`・`requestId` を持つ。hook が使えない場所では
|
|
49
78
|
`apiJson(path, init)`、生の `Response` が要るときは `apiFetch`。
|
|
@@ -11,6 +11,13 @@
|
|
|
11
11
|
`src/monthly-report.slide.tsx` → `/monthly-report`。中身は `<SlideDeck>` を返す普通の React
|
|
12
12
|
コンポーネントで、`definePage` もナビも通常のページと同じように効きます。
|
|
13
13
|
|
|
14
|
+
**ファイル名の決め方:**
|
|
15
|
+
|
|
16
|
+
- **ルート `/` がすでに他のページ(`index.tsx`など)で使われている場合は、スライドのタイトルから slug を作ってファイル名にする。** `index.slide.tsx` は `index.tsx` と同じ `/` に解決するので `ROUTE_CONFLICT` になる。
|
|
17
|
+
- 例: "Label check" というスライド → `src/label-check.slide.tsx` → `/label-check`
|
|
18
|
+
- 例: "Monthly Report" というスライド → `src/monthly-report.slide.tsx` → `/monthly-report`
|
|
19
|
+
- 新規プロジェクトでまだ `/` が空いている場合のみ、`index.slide.tsx` を使ってよい。
|
|
20
|
+
|
|
14
21
|
```tsx
|
|
15
22
|
import { Slide, SlideDeck } from "@squadbase/vantage/slide"
|
|
16
23
|
|
|
@@ -34,7 +41,12 @@ export default function Deck() {
|
|
|
34
41
|
送れ、左のスライド一覧(サムネイル列)は `L` で開閉、`F` で全画面、ツールバーから pptx を
|
|
35
42
|
書き出せます。**書き方の作法は同梱 Skill の
|
|
36
43
|
`vantage-slide`** にあります(キャンバスの縦方向の予算、段階表示、トランジション、モーフ、
|
|
37
|
-
pptx
|
|
44
|
+
pptx が壊れる条件、説明と図表のデータ時点の揃え方)。
|
|
45
|
+
|
|
46
|
+
**分析を共有するデッキでは、本文・数値・図表を同じ対象期間と同じ取得時点の結果に揃え、その期間と
|
|
47
|
+
時点を短く表示する。** 説明文を固定したまま図表だけが最新値へ変わる構成にしない(ライブ更新を
|
|
48
|
+
意図するなら本文も同じ取得結果から導く)。同一時点の結果を保持できない場合は、スナップショットとして
|
|
49
|
+
保存できたとは報告せず、必要な保持の仕組みと保証できない範囲を伝える。
|
|
38
50
|
|
|
39
51
|
`.slide` を付けられるのはルートになるページモジュールだけで、`_layout.slide.tsx` などは
|
|
40
52
|
`INVALID_PAGE_VARIANT` エラーになります。`june.slide.tsx` と `june.tsx` は同じ URL に解決するので
|
package/base-template/bun.lock
CHANGED
|
@@ -6,17 +6,17 @@
|
|
|
6
6
|
"name": "vibe-app",
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@squadbase/react": "^0.1.0",
|
|
9
|
-
"@squadbase/vantage": "0.6.2-dev1.
|
|
10
|
-
"@squadbase/vantage-sdk": "0.1.1-dev1.
|
|
9
|
+
"@squadbase/vantage": "0.6.2-dev1.b332e5a",
|
|
10
|
+
"@squadbase/vantage-sdk": "0.1.1-dev1.28afad5",
|
|
11
11
|
"date-fns": "^4.1.0",
|
|
12
12
|
"lucide-react": "^0.468.0",
|
|
13
|
-
"react": "^19.
|
|
14
|
-
"react-dom": "^19.
|
|
13
|
+
"react": "^19.3.1",
|
|
14
|
+
"react-dom": "^19.3.1",
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@types/node": "^22.15.0",
|
|
18
|
-
"@types/react": "^19.
|
|
19
|
-
"@types/react-dom": "^19.
|
|
18
|
+
"@types/react": "^19.3.0",
|
|
19
|
+
"@types/react-dom": "^19.3.0",
|
|
20
20
|
"typescript": "~5.7.0",
|
|
21
21
|
},
|
|
22
22
|
},
|
|
@@ -36,12 +36,6 @@
|
|
|
36
36
|
|
|
37
37
|
"@date-fns/tz": ["@date-fns/tz@1.5.0", "", {}, "sha512-lwYN/vDPeNRULcepoE/LO2Pgx+7/RV+S9ARfbc9lr2DtGkOD7pAiruHvbR1RX3Qyf6ja47EWJDMsNK5vK08DJg=="],
|
|
38
38
|
|
|
39
|
-
"@emnapi/core": ["@emnapi/core@1.11.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.2", "tslib": "^2.4.0" } }, "sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ=="],
|
|
40
|
-
|
|
41
|
-
"@emnapi/runtime": ["@emnapi/runtime@1.11.1", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw=="],
|
|
42
|
-
|
|
43
|
-
"@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="],
|
|
44
|
-
|
|
45
39
|
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.28.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ=="],
|
|
46
40
|
|
|
47
41
|
"@esbuild/android-arm": ["@esbuild/android-arm@0.28.1", "", { "os": "android", "cpu": "arm" }, "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ=="],
|
|
@@ -102,7 +96,7 @@
|
|
|
102
96
|
|
|
103
97
|
"@floating-ui/utils": ["@floating-ui/utils@0.2.12", "", {}, "sha512-HpCo8tmWzLVad5s2d19EhAz5zqrrQ6s69qd6moPMQvkOuSwDT1YgRfWSVuc4ennqrgv3OHppiOGMQ7oC13yIww=="],
|
|
104
98
|
|
|
105
|
-
"@hono/node-server": ["@hono/node-server@2.
|
|
99
|
+
"@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="],
|
|
106
100
|
|
|
107
101
|
"@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="],
|
|
108
102
|
|
|
@@ -120,9 +114,7 @@
|
|
|
120
114
|
|
|
121
115
|
"@mermaid-js/parser": ["@mermaid-js/parser@1.2.1", "", { "dependencies": { "@chevrotain/types": "~11.1.2" } }, "sha512-n12NohV3mrUyUL2o93IgG/ifeW9FTyeJn3zDxkhwa8MJ9Fxg3HQMlA3RiGmD/3UnJvheztkjjQAjA2T4LmUcpw=="],
|
|
122
116
|
|
|
123
|
-
"@
|
|
124
|
-
|
|
125
|
-
"@oxc-project/types": ["@oxc-project/types@0.139.0", "", {}, "sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw=="],
|
|
117
|
+
"@oxc-project/types": ["@oxc-project/types@0.154.0", "", {}, "sha512-KYOUGQFlLWR+s4QMV2Q9ko38TZm7EdO87Qm7rvZLqk/webse/cDjtyxKhg/47l0byCbs/k46LT8qc4PKjAikzA=="],
|
|
126
118
|
|
|
127
119
|
"@radix-ui/primitive": ["@radix-ui/primitive@1.1.7", "", {}, "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q=="],
|
|
128
120
|
|
|
@@ -156,35 +148,35 @@
|
|
|
156
148
|
|
|
157
149
|
"@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-rDiah9wvtqihWtWz02XreeRKIxt2EJF8y5D9rtY9l5A2zxePAtcPiOMpDugNRw5bFHz+1/8viVoc7ZVKiJknCw=="],
|
|
158
150
|
|
|
159
|
-
"@rolldown/binding-android-
|
|
151
|
+
"@rolldown/binding-android-arm-eabi": ["@rolldown/binding-android-arm-eabi@1.2.14", "", { "os": "android", "cpu": "arm" }, "sha512-aWR+XKH9+rW7m5fWq/5360J3mHycrx/o6xZM2DQFdJnTMdyP7/WzxPjhtLbVWdKo2y612/4U1bWqb3HQhiF7vg=="],
|
|
160
152
|
|
|
161
|
-
"@rolldown/binding-
|
|
153
|
+
"@rolldown/binding-android-arm64": ["@rolldown/binding-android-arm64@1.2.14", "", { "os": "android", "cpu": "arm64" }, "sha512-QiVxHofl6A8lQU7WAtOUY4QMVZXohxwz7WJJoeh8NBEUyKfIkMRKhYyq8az/1RypNiIXzNTtiS6KwHz0erxYRQ=="],
|
|
162
154
|
|
|
163
|
-
"@rolldown/binding-darwin-
|
|
155
|
+
"@rolldown/binding-darwin-arm64": ["@rolldown/binding-darwin-arm64@1.2.14", "", { "os": "darwin", "cpu": "arm64" }, "sha512-lTQOzHuBIooh3jIr5XINQkjPGEuGy+Dsy0meXDr6Sjty0b99kYgGh4uBC/8mJX1T0kC8d6S0aPP1Y+bHkh6aBw=="],
|
|
164
156
|
|
|
165
|
-
"@rolldown/binding-
|
|
157
|
+
"@rolldown/binding-darwin-x64": ["@rolldown/binding-darwin-x64@1.2.14", "", { "os": "darwin", "cpu": "x64" }, "sha512-hyMKEGatjmBYCs/Q4sbIcL/GqpFEqsX3wc+HYVQ/85A4rxc1o7rPm4DUI4GV4k/h0ITddwFSGpqQunI14GXjTA=="],
|
|
166
158
|
|
|
167
|
-
"@rolldown/binding-
|
|
159
|
+
"@rolldown/binding-freebsd-x64": ["@rolldown/binding-freebsd-x64@1.2.14", "", { "os": "freebsd", "cpu": "x64" }, "sha512-u371GbXoVXrEgP20PwzoGNOdAOqAMhzo19JzzY+V4YmmnC+DTOoqdbMu+O+54emM59Mik/UdrtWgcuEDKWRPKA=="],
|
|
168
160
|
|
|
169
|
-
"@rolldown/binding-linux-
|
|
161
|
+
"@rolldown/binding-linux-arm-gnueabihf": ["@rolldown/binding-linux-arm-gnueabihf@1.2.14", "", { "os": "linux", "cpu": "arm" }, "sha512-BqwKsdZQf6EqVWr8fv2MrDYzAvOZ7+NYFSJESRGs87fkseEhs0TU9TXgRJTkZoRRkxTizyEg1LKUXfU3/78uqg=="],
|
|
170
162
|
|
|
171
|
-
"@rolldown/binding-linux-arm64-
|
|
163
|
+
"@rolldown/binding-linux-arm64-gnu": ["@rolldown/binding-linux-arm64-gnu@1.2.14", "", { "os": "linux", "cpu": "arm64" }, "sha512-SD9kY8M009x/7s57Z1dgUVlP5+uYBgKQK0Tkr1WIWngrtUJmRCW1RJFMY7QDla2khXhmg2i5Io7MUjcmZNZ/KQ=="],
|
|
172
164
|
|
|
173
|
-
"@rolldown/binding-linux-
|
|
165
|
+
"@rolldown/binding-linux-arm64-musl": ["@rolldown/binding-linux-arm64-musl@1.2.14", "", { "os": "linux", "cpu": "arm64" }, "sha512-BJ2CL19M6uuWesMgnqJzgxoI+N+eV7b0A9O9vLV42y+gitC41fNa8KElau1tHVzuLWX5GzEuxMPhAO0tQXQMkg=="],
|
|
174
166
|
|
|
175
|
-
"@rolldown/binding-linux-
|
|
167
|
+
"@rolldown/binding-linux-ppc64-gnu": ["@rolldown/binding-linux-ppc64-gnu@1.2.14", "", { "os": "linux", "cpu": "ppc64" }, "sha512-4+Kl8daPV8NDHaD7mfCcc1pRM+Qg7ab8DyMm5FG5WoZgv4h2i3KFN1CybYBNbQqmuYm7ftJLvmMI1eHYJ22S/Q=="],
|
|
176
168
|
|
|
177
|
-
"@rolldown/binding-linux-
|
|
169
|
+
"@rolldown/binding-linux-s390x-gnu": ["@rolldown/binding-linux-s390x-gnu@1.2.14", "", { "os": "linux", "cpu": "s390x" }, "sha512-V/h8ePq1fKDrmtFMz6xcCN3DKvuvMRrwwD1q0PkBeeo4DpK64biaKvqWGVxqCeYKqeRk7gE7/iKPxLCn08O97A=="],
|
|
178
170
|
|
|
179
|
-
"@rolldown/binding-linux-x64-
|
|
171
|
+
"@rolldown/binding-linux-x64-gnu": ["@rolldown/binding-linux-x64-gnu@1.2.14", "", { "os": "linux", "cpu": "x64" }, "sha512-WxalXzgrLVpKC93xfpaJ3gCXUWzeCr+FRCbDVD2mUAy4L6Vo3lNVz0epUEUpxPWJkLNYUwM4OSIikv36OJ9mLg=="],
|
|
180
172
|
|
|
181
|
-
"@rolldown/binding-
|
|
173
|
+
"@rolldown/binding-linux-x64-musl": ["@rolldown/binding-linux-x64-musl@1.2.14", "", { "os": "linux", "cpu": "x64" }, "sha512-3G3tnAmTpdk9jO3GQtyHXqeFD2SlecfTws/Y3M2mmj9nMBwwuLT4kur8sZKeu7ENUHSpVO3cIsm5A52LEWWwlg=="],
|
|
182
174
|
|
|
183
|
-
"@rolldown/binding-
|
|
175
|
+
"@rolldown/binding-openharmony-arm64": ["@rolldown/binding-openharmony-arm64@1.2.14", "", { "os": "none", "cpu": "arm64" }, "sha512-qyr5XiNGxm2ytx17vvtcJ9nXn6v1gENETi503bJx3OGwZ1tSonj7BosxbMa/xeAfSl5iS9X6KjEWYXLu6v1L7Q=="],
|
|
184
176
|
|
|
185
|
-
"@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.
|
|
177
|
+
"@rolldown/binding-win32-arm64-msvc": ["@rolldown/binding-win32-arm64-msvc@1.2.14", "", { "os": "win32", "cpu": "arm64" }, "sha512-oA4o5o0S2yB199YyYXDzKUv1Z56Rc+mgOjwm7Z/vJ9Z8igiDPYvoOuDyo6g7AK/ZaF09nPhDKVnGBcYHO11GXA=="],
|
|
186
178
|
|
|
187
|
-
"@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.
|
|
179
|
+
"@rolldown/binding-win32-x64-msvc": ["@rolldown/binding-win32-x64-msvc@1.2.14", "", { "os": "win32", "cpu": "x64" }, "sha512-9mE94bf2GZUaR/fUSXCMpBoWkctu421Mi0ORpm4zqfbkjKep7RxzPFa5etcGs5h+2KApoWBOA/hAJa/7saGgEQ=="],
|
|
188
180
|
|
|
189
181
|
"@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.1", "", {}, "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw=="],
|
|
190
182
|
|
|
@@ -204,9 +196,9 @@
|
|
|
204
196
|
|
|
205
197
|
"@squadbase/react": ["@squadbase/react@0.1.0", "", { "dependencies": { "zod": "^4.3.6" }, "peerDependencies": { "@types/react": "17.x || 18.x || 19.x", "react": "17.x || 18.x || 19.x" }, "optionalPeers": ["@types/react"] }, "sha512-k+Dpyj7eH+Yjydw54iEluCjYDae086d12hWgBjNMpw4wLbQGz3CrJ6Yipodg8n1cKUt7zvwddlcTHd79bgKsXg=="],
|
|
206
198
|
|
|
207
|
-
"@squadbase/vantage": ["@squadbase/vantage@0.6.2-dev1.
|
|
199
|
+
"@squadbase/vantage": ["@squadbase/vantage@0.6.2-dev1.b332e5a", "", { "dependencies": { "@base-ui/react": "^1.6.0", "@hono/node-server": "^2.1.5", "@streamdown/code": "^1.1.1", "@tailwindcss/vite": "^4.3.3", "@tanstack/react-query": "^5.101.2", "@tanstack/react-router": "^1.170.17", "@tanstack/react-table": "^8.21.3", "@vitejs/plugin-react": "^6.1.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "date-fns": "^4.1.0", "echarts": "^6.0.0", "esbuild": "^0.28.1", "fflate": "^0.8.3", "hono": "^4.13.13", "html-to-image": "^1.11.13", "lucide-react": "^0.468.0", "papaparse": "^5.7.0", "picocolors": "^1.1.1", "react-day-picker": "^10.0.1", "read-excel-file": "^9.3.10", "streamdown": "^2.5.0", "tailwind-merge": "^3.0.0", "tailwindcss": "^4.3.3", "tw-animate-css": "^1.0.0", "vite": "^8.3.4" }, "peerDependencies": { "react": ">=18.2.0", "react-dom": ">=18.2.0" }, "bin": { "vantage": "dist/cli.js" } }, "sha512-ZOXkt4dW8OVdWHC5x7j2osRmBpQw0g8StEQ7hSO760TCx/wdqSGgQo7SpUKFqKOkFPO5C6udh9YWog5x43UgAQ=="],
|
|
208
200
|
|
|
209
|
-
"@squadbase/vantage-sdk": ["@squadbase/vantage-sdk@0.1.1-dev1.
|
|
201
|
+
"@squadbase/vantage-sdk": ["@squadbase/vantage-sdk@0.1.1-dev1.28afad5", "", {}, "sha512-Y2d40uYKTARweiy1lslrmTkA35WyhMnco0e7eGSBYs/HVN+CjRBZQbuhZ4ebPw0L0JG+7B2nTQMzZmUdmyeG9w=="],
|
|
210
202
|
|
|
211
203
|
"@streamdown/code": ["@streamdown/code@1.1.1", "", { "dependencies": { "shiki": "^3.19.0" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0" } }, "sha512-i7HTNuDgZWb+VdrNVOam9gQhIc5MSSDXKWXgbUrn/4vSRaSMM+Rtl10MQj4wLWPNpF7p80waJsAqFP8HZfb0Jg=="],
|
|
212
204
|
|
|
@@ -258,8 +250,6 @@
|
|
|
258
250
|
|
|
259
251
|
"@tanstack/table-core": ["@tanstack/table-core@8.21.3", "", {}, "sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg=="],
|
|
260
252
|
|
|
261
|
-
"@tybys/wasm-util": ["@tybys/wasm-util@0.10.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg=="],
|
|
262
|
-
|
|
263
253
|
"@types/d3": ["@types/d3@7.4.3", "", { "dependencies": { "@types/d3-array": "*", "@types/d3-axis": "*", "@types/d3-brush": "*", "@types/d3-chord": "*", "@types/d3-color": "*", "@types/d3-contour": "*", "@types/d3-delaunay": "*", "@types/d3-dispatch": "*", "@types/d3-drag": "*", "@types/d3-dsv": "*", "@types/d3-ease": "*", "@types/d3-fetch": "*", "@types/d3-force": "*", "@types/d3-format": "*", "@types/d3-geo": "*", "@types/d3-hierarchy": "*", "@types/d3-interpolate": "*", "@types/d3-path": "*", "@types/d3-polygon": "*", "@types/d3-quadtree": "*", "@types/d3-random": "*", "@types/d3-scale": "*", "@types/d3-scale-chromatic": "*", "@types/d3-selection": "*", "@types/d3-shape": "*", "@types/d3-time": "*", "@types/d3-time-format": "*", "@types/d3-timer": "*", "@types/d3-transition": "*", "@types/d3-zoom": "*" } }, "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww=="],
|
|
264
254
|
|
|
265
255
|
"@types/d3-array": ["@types/d3-array@3.2.2", "", {}, "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw=="],
|
|
@@ -338,9 +328,9 @@
|
|
|
338
328
|
|
|
339
329
|
"@types/node": ["@types/node@22.20.1", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q=="],
|
|
340
330
|
|
|
341
|
-
"@types/react": ["@types/react@19.
|
|
331
|
+
"@types/react": ["@types/react@19.3.0", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg=="],
|
|
342
332
|
|
|
343
|
-
"@types/react-dom": ["@types/react-dom@19.
|
|
333
|
+
"@types/react-dom": ["@types/react-dom@19.3.0", "", { "peerDependencies": { "@types/react": "^19.3.0" } }, "sha512-ZI7bU42mZXXKHn/qNLEw2IrbiINU7X5+vfgdixBHkCNpYWXjKgfQ/P+uyGb5CjOLB9UcnTeg3rylQtV2hym44Q=="],
|
|
344
334
|
|
|
345
335
|
"@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="],
|
|
346
336
|
|
|
@@ -350,7 +340,7 @@
|
|
|
350
340
|
|
|
351
341
|
"@upsetjs/venn.js": ["@upsetjs/venn.js@2.0.0", "", { "optionalDependencies": { "d3-selection": "^3.0.0", "d3-transition": "^3.0.1" } }, "sha512-WbBhLrooyePuQ1VZxrJjtLvTc4NVfpOyKx0sKqioq9bX1C1m7Jgykkn8gLrtwumBioXIqam8DLxp88Adbue6Hw=="],
|
|
352
342
|
|
|
353
|
-
"@vitejs/plugin-react": ["@vitejs/plugin-react@6.
|
|
343
|
+
"@vitejs/plugin-react": ["@vitejs/plugin-react@6.1.2", "", { "dependencies": { "@rolldown/pluginutils": "^1.0.1" }, "peerDependencies": { "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", "babel-plugin-react-compiler": "^1.0.0", "oxc-transform-react": "^0.152.0", "vite": "^8.0.0" }, "optionalPeers": ["@rolldown/plugin-babel", "babel-plugin-react-compiler", "oxc-transform-react"] }, "sha512-fhJNGUdscQa4HkI0xFxwonWyhnVReCPDbXI7FH7jmzpnVCrFQI7PRrhWecO263610vOrs9tr2Y4xcf8uAdFxbw=="],
|
|
354
344
|
|
|
355
345
|
"aria-hidden": ["aria-hidden@1.2.6", "", { "dependencies": { "tslib": "^2.0.0" } }, "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA=="],
|
|
356
346
|
|
|
@@ -522,7 +512,7 @@
|
|
|
522
512
|
|
|
523
513
|
"hastscript": ["hastscript@9.0.1", "", { "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" } }, "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w=="],
|
|
524
514
|
|
|
525
|
-
"hono": ["hono@4.13.
|
|
515
|
+
"hono": ["hono@4.13.13", "", {}, "sha512-CQ46U0ZkAGmbT/4UxdzzGJpacP2IeKgY4a5/tOI9AABbpOMfK739wfDXmv1usCk+3RkKj1hQy4/fjhiwa2xlrA=="],
|
|
526
516
|
|
|
527
517
|
"html-to-image": ["html-to-image@1.11.13", "", {}, "sha512-cuOPoI7WApyhBElTTb9oqsawRvZ0rHhaHwghRLlTuffoD1B2aDemlCruLeZrUIIdvG7gs9xeELEPm6PhuASqrg=="],
|
|
528
518
|
|
|
@@ -558,29 +548,29 @@
|
|
|
558
548
|
|
|
559
549
|
"layout-base": ["layout-base@1.0.2", "", {}, "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg=="],
|
|
560
550
|
|
|
561
|
-
"lightningcss": ["lightningcss@1.
|
|
551
|
+
"lightningcss": ["lightningcss@1.33.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.33.0", "lightningcss-darwin-arm64": "1.33.0", "lightningcss-darwin-x64": "1.33.0", "lightningcss-freebsd-x64": "1.33.0", "lightningcss-linux-arm-gnueabihf": "1.33.0", "lightningcss-linux-arm64-gnu": "1.33.0", "lightningcss-linux-arm64-musl": "1.33.0", "lightningcss-linux-x64-gnu": "1.33.0", "lightningcss-linux-x64-musl": "1.33.0", "lightningcss-win32-arm64-msvc": "1.33.0", "lightningcss-win32-x64-msvc": "1.33.0" } }, "sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA=="],
|
|
562
552
|
|
|
563
|
-
"lightningcss-android-arm64": ["lightningcss-android-arm64@1.
|
|
553
|
+
"lightningcss-android-arm64": ["lightningcss-android-arm64@1.33.0", "", { "os": "android", "cpu": "arm64" }, "sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg=="],
|
|
564
554
|
|
|
565
|
-
"lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.
|
|
555
|
+
"lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.33.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg=="],
|
|
566
556
|
|
|
567
|
-
"lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.
|
|
557
|
+
"lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.33.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ=="],
|
|
568
558
|
|
|
569
|
-
"lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.
|
|
559
|
+
"lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.33.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg=="],
|
|
570
560
|
|
|
571
|
-
"lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.
|
|
561
|
+
"lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.33.0", "", { "os": "linux", "cpu": "arm" }, "sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ=="],
|
|
572
562
|
|
|
573
|
-
"lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.
|
|
563
|
+
"lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg=="],
|
|
574
564
|
|
|
575
|
-
"lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.
|
|
565
|
+
"lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.33.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ=="],
|
|
576
566
|
|
|
577
|
-
"lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.
|
|
567
|
+
"lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg=="],
|
|
578
568
|
|
|
579
|
-
"lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.
|
|
569
|
+
"lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.33.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw=="],
|
|
580
570
|
|
|
581
|
-
"lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.
|
|
571
|
+
"lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.33.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA=="],
|
|
582
572
|
|
|
583
|
-
"lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.
|
|
573
|
+
"lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.33.0", "", { "os": "win32", "cpu": "x64" }, "sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA=="],
|
|
584
574
|
|
|
585
575
|
"lodash-es": ["lodash-es@4.18.1", "", {}, "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A=="],
|
|
586
576
|
|
|
@@ -684,7 +674,7 @@
|
|
|
684
674
|
|
|
685
675
|
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
|
686
676
|
|
|
687
|
-
"nanoid": ["nanoid@3.3.
|
|
677
|
+
"nanoid": ["nanoid@3.3.20", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-uKdg2G3GNCKQn9byYOpxbGqrT2fGO5KRt5J/8b3pok8rT6qxGWF6hxMyJiEYtAf+FVyYuD9hRaDqX5uPFYJ4ZQ=="],
|
|
688
678
|
|
|
689
679
|
"node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="],
|
|
690
680
|
|
|
@@ -704,21 +694,21 @@
|
|
|
704
694
|
|
|
705
695
|
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
|
706
696
|
|
|
707
|
-
"picomatch": ["picomatch@4.0.
|
|
697
|
+
"picomatch": ["picomatch@4.0.7", "", {}, "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA=="],
|
|
708
698
|
|
|
709
699
|
"points-on-curve": ["points-on-curve@0.2.0", "", {}, "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A=="],
|
|
710
700
|
|
|
711
701
|
"points-on-path": ["points-on-path@0.2.1", "", { "dependencies": { "path-data-parser": "0.1.0", "points-on-curve": "0.2.0" } }, "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g=="],
|
|
712
702
|
|
|
713
|
-
"postcss": ["postcss@8.5.
|
|
703
|
+
"postcss": ["postcss@8.5.31", "", { "dependencies": { "nanoid": "^3.3.20", "picocolors": "^1.1.1", "source-map-js": "^1.2.2" } }, "sha512-YUbWYCgErwnMAVkjUnYa+KlMBzGpHwiIt/DE7f0G33AuX2LH9UcTk6KgWxd3zRU+pN3u/C+Xl3EnMLM4Hea7Sg=="],
|
|
714
704
|
|
|
715
705
|
"property-information": ["property-information@7.2.0", "", {}, "sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg=="],
|
|
716
706
|
|
|
717
|
-
"react": ["react@19.
|
|
707
|
+
"react": ["react@19.3.1", "", {}, "sha512-QNhWdt7nrgVWWQG58QuGsAR3jv3Hbe4mb4vz7w2csnHavciZJgda1CPNaldF6eVxv90ud3jUXpKlHL69gO38yw=="],
|
|
718
708
|
|
|
719
709
|
"react-day-picker": ["react-day-picker@10.0.1", "", { "dependencies": { "@date-fns/tz": "^1.4.1", "date-fns": "^4.1.0" }, "peerDependencies": { "@types/react": ">=16.8.0", "react": ">=16.8.0" }, "optionalPeers": ["@types/react"] }, "sha512-eNh6BlwcYInWaJtRv18mXQ06Ys/H6rdTZAnTaSdOYJuTpwP1JMCHNd1FDRadA+gbeinq+psdULN5Xnowy9mV8w=="],
|
|
720
710
|
|
|
721
|
-
"react-dom": ["react-dom@19.
|
|
711
|
+
"react-dom": ["react-dom@19.3.1", "", { "dependencies": { "scheduler": "^0.28.0" }, "peerDependencies": { "react": "^19.3.1" } }, "sha512-Y0bARz53lhEC1NMCASs0/j+faB/zqt3R8hpvg1e8+61ZVJ4UL0UdC4cBbXfZMcIuhrfgeILTLe+ZeBCavQPtKQ=="],
|
|
722
712
|
|
|
723
713
|
"react-remove-scroll": ["react-remove-scroll@2.7.2", "", { "dependencies": { "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.3", "tslib": "^2.1.0", "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q=="],
|
|
724
714
|
|
|
@@ -754,7 +744,7 @@
|
|
|
754
744
|
|
|
755
745
|
"robust-predicates": ["robust-predicates@3.0.3", "", {}, "sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA=="],
|
|
756
746
|
|
|
757
|
-
"rolldown": ["rolldown@1.
|
|
747
|
+
"rolldown": ["rolldown@1.2.14", "", { "dependencies": { "@oxc-project/types": "=0.154.0", "@rolldown/pluginutils": "^1.0.0" }, "optionalDependencies": { "@rolldown/binding-android-arm-eabi": "1.2.14", "@rolldown/binding-android-arm64": "1.2.14", "@rolldown/binding-darwin-arm64": "1.2.14", "@rolldown/binding-darwin-x64": "1.2.14", "@rolldown/binding-freebsd-x64": "1.2.14", "@rolldown/binding-linux-arm-gnueabihf": "1.2.14", "@rolldown/binding-linux-arm64-gnu": "1.2.14", "@rolldown/binding-linux-arm64-musl": "1.2.14", "@rolldown/binding-linux-ppc64-gnu": "1.2.14", "@rolldown/binding-linux-s390x-gnu": "1.2.14", "@rolldown/binding-linux-x64-gnu": "1.2.14", "@rolldown/binding-linux-x64-musl": "1.2.14", "@rolldown/binding-openharmony-arm64": "1.2.14", "@rolldown/binding-win32-arm64-msvc": "1.2.14", "@rolldown/binding-win32-x64-msvc": "1.2.14" }, "bin": { "rolldown": "./bin/cli.mjs" } }, "sha512-eTBTTqMR6uHKLgcUqpJP8ntzDI6V4LYA8negAMBEI7gkgVvOdrx6VsvS2Ym+83KhOPdLCHWJu0w7UQFJZhHKNw=="],
|
|
758
748
|
|
|
759
749
|
"roughjs": ["roughjs@4.6.6", "", { "dependencies": { "hachure-fill": "^0.5.2", "path-data-parser": "^0.1.0", "points-on-curve": "^0.2.0", "points-on-path": "^0.2.1" } }, "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ=="],
|
|
760
750
|
|
|
@@ -764,7 +754,7 @@
|
|
|
764
754
|
|
|
765
755
|
"saxen": ["saxen@11.1.1", "", {}, "sha512-J4BkmJFaM7VgE7pgkFGsNEcqqM3h7+Mz80vfLWFhx7uNOCOXIu6LLjQHYWNejdst3pf/3JUaBIG9+pkk1umlow=="],
|
|
766
756
|
|
|
767
|
-
"scheduler": ["scheduler@0.
|
|
757
|
+
"scheduler": ["scheduler@0.28.0", "", {}, "sha512-juorfCmIkIw8tT+p5BXSm6PJjQF/ycEYmKyzURCIt/RaZIhL+PulbQ9Yu2z1HdOJDdqDTlxA1+xKBmHXJsczAw=="],
|
|
768
758
|
|
|
769
759
|
"seroval": ["seroval@1.5.6", "", {}, "sha512-rVQVWjjSvlINzaQPZH5JFqsqEsIWdTxY3iJZCnTL/5gQbXIRooVZKI60tVCkOVfzcRPejboxO2t0P89dg5mQaA=="],
|
|
770
760
|
|
|
@@ -840,7 +830,7 @@
|
|
|
840
830
|
|
|
841
831
|
"vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="],
|
|
842
832
|
|
|
843
|
-
"vite": ["vite@8.
|
|
833
|
+
"vite": ["vite@8.3.4", "", { "dependencies": { "lightningcss": "^1.33.0", "picomatch": "^4.0.7", "postcss": "^8.5.29", "rolldown": "~1.2.12", "tinyglobby": "^0.2.17" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "@vitejs/devtools": "^0.7.1", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "@vitejs/devtools", "esbuild", "jiti", "less", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-IftLE8phJhdNRIGNEV4JCCvfNScoZQVfcXaN8TQropWGJtOHcu+iAB9pHcuGvmEb/kddw0LBe/jS8ztdC6xdiQ=="],
|
|
844
834
|
|
|
845
835
|
"web-namespaces": ["web-namespaces@2.0.1", "", {}, "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ=="],
|
|
846
836
|
|
|
@@ -852,11 +842,7 @@
|
|
|
852
842
|
|
|
853
843
|
"zwitch": ["zwitch@2.0.4", "", {}, "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A=="],
|
|
854
844
|
|
|
855
|
-
"@
|
|
856
|
-
|
|
857
|
-
"@emnapi/runtime/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
858
|
-
|
|
859
|
-
"@emnapi/wasi-threads/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
845
|
+
"@tailwindcss/node/lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.32.0", "lightningcss-darwin-arm64": "1.32.0", "lightningcss-darwin-x64": "1.32.0", "lightningcss-freebsd-x64": "1.32.0", "lightningcss-linux-arm-gnueabihf": "1.32.0", "lightningcss-linux-arm64-gnu": "1.32.0", "lightningcss-linux-arm64-musl": "1.32.0", "lightningcss-linux-x64-gnu": "1.32.0", "lightningcss-linux-x64-musl": "1.32.0", "lightningcss-win32-arm64-msvc": "1.32.0", "lightningcss-win32-x64-msvc": "1.32.0" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="],
|
|
860
846
|
|
|
861
847
|
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.11.3", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.3", "tslib": "^2.4.0" }, "bundled": true }, "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg=="],
|
|
862
848
|
|
|
@@ -870,8 +856,6 @@
|
|
|
870
856
|
|
|
871
857
|
"@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
872
858
|
|
|
873
|
-
"@tybys/wasm-util/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
874
|
-
|
|
875
859
|
"aria-hidden/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
876
860
|
|
|
877
861
|
"cytoscape-fcose/cose-base": ["cose-base@2.2.0", "", { "dependencies": { "layout-base": "^2.0.0" } }, "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g=="],
|
|
@@ -886,16 +870,42 @@
|
|
|
886
870
|
|
|
887
871
|
"parse-entities/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="],
|
|
888
872
|
|
|
873
|
+
"postcss/source-map-js": ["source-map-js@1.2.2", "", {}, "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw=="],
|
|
874
|
+
|
|
889
875
|
"react-remove-scroll/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
890
876
|
|
|
891
877
|
"react-remove-scroll-bar/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
892
878
|
|
|
893
879
|
"react-style-singleton/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
894
880
|
|
|
881
|
+
"tinyglobby/picomatch": ["picomatch@4.0.5", "", {}, "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A=="],
|
|
882
|
+
|
|
895
883
|
"use-callback-ref/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
896
884
|
|
|
897
885
|
"use-sidecar/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
898
886
|
|
|
887
|
+
"@tailwindcss/node/lightningcss/lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="],
|
|
888
|
+
|
|
889
|
+
"@tailwindcss/node/lightningcss/lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="],
|
|
890
|
+
|
|
891
|
+
"@tailwindcss/node/lightningcss/lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="],
|
|
892
|
+
|
|
893
|
+
"@tailwindcss/node/lightningcss/lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="],
|
|
894
|
+
|
|
895
|
+
"@tailwindcss/node/lightningcss/lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="],
|
|
896
|
+
|
|
897
|
+
"@tailwindcss/node/lightningcss/lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="],
|
|
898
|
+
|
|
899
|
+
"@tailwindcss/node/lightningcss/lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="],
|
|
900
|
+
|
|
901
|
+
"@tailwindcss/node/lightningcss/lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="],
|
|
902
|
+
|
|
903
|
+
"@tailwindcss/node/lightningcss/lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="],
|
|
904
|
+
|
|
905
|
+
"@tailwindcss/node/lightningcss/lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="],
|
|
906
|
+
|
|
907
|
+
"@tailwindcss/node/lightningcss/lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="],
|
|
908
|
+
|
|
899
909
|
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g=="],
|
|
900
910
|
|
|
901
911
|
"cytoscape-fcose/cose-base/layout-base": ["layout-base@2.0.1", "", {}, "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg=="],
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@squadbase/react": "^0.1.0",
|
|
15
|
-
"@squadbase/vantage": "0.6.2-dev1.
|
|
16
|
-
"@squadbase/vantage-sdk": "0.1.1-dev1.
|
|
15
|
+
"@squadbase/vantage": "0.6.2-dev1.b332e5a",
|
|
16
|
+
"@squadbase/vantage-sdk": "0.1.1-dev1.28afad5",
|
|
17
17
|
"date-fns": "^4.1.0",
|
|
18
18
|
"lucide-react": "^0.468.0",
|
|
19
|
-
"react": "^19.
|
|
20
|
-
"react-dom": "^19.
|
|
19
|
+
"react": "^19.3.1",
|
|
20
|
+
"react-dom": "^19.3.1"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/node": "^22.15.0",
|
|
24
|
-
"@types/react": "^19.
|
|
25
|
-
"@types/react-dom": "^19.
|
|
24
|
+
"@types/react": "^19.3.0",
|
|
25
|
+
"@types/react-dom": "^19.3.0",
|
|
26
26
|
"typescript": "~5.7.0"
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -17,6 +17,7 @@ export const page = definePage({
|
|
|
17
17
|
title: "Dashboard",
|
|
18
18
|
description: "Sample data — replace with your own to get started.",
|
|
19
19
|
navLabel: "Home",
|
|
20
|
+
placeholder: true,
|
|
20
21
|
})
|
|
21
22
|
|
|
22
23
|
const METRICS = [
|
|
@@ -65,14 +66,18 @@ const CHARTS = [
|
|
|
65
66
|
]
|
|
66
67
|
|
|
67
68
|
export default function HomePage() {
|
|
69
|
+
// `data-vantage-sample` marks this page as the untouched template sample (the coding
|
|
70
|
+
// agent looks for it). Remove it together with the sample content.
|
|
71
|
+
const sampleNote = navigator.language.startsWith("ja")
|
|
72
|
+
? "サンプルデータです。お手元のデータに置き換えて始めましょう。"
|
|
73
|
+
: "Sample data — replace with your own to get started."
|
|
74
|
+
|
|
68
75
|
return (
|
|
69
76
|
<PageShell>
|
|
70
77
|
<PageShellHeader>
|
|
71
78
|
<PageShellHeading>
|
|
72
79
|
<PageShellTitle>Dashboard</PageShellTitle>
|
|
73
|
-
<PageShellDescription>
|
|
74
|
-
Sample data — replace with your own to get started.
|
|
75
|
-
</PageShellDescription>
|
|
80
|
+
<PageShellDescription data-vantage-sample="home">{sampleNote}</PageShellDescription>
|
|
76
81
|
</PageShellHeading>
|
|
77
82
|
</PageShellHeader>
|
|
78
83
|
|
|
@@ -17,6 +17,15 @@
|
|
|
17
17
|
/* --radius: 0.625rem; */
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
/* Page typeface. Latin system faces first, then Japanese system faces so kana and
|
|
21
|
+
kanji do not fall back to a thin locale default. Put a Latin webfont in front if
|
|
22
|
+
you add one, but keep the Japanese families. */
|
|
23
|
+
body {
|
|
24
|
+
font-family:
|
|
25
|
+
ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Sans",
|
|
26
|
+
"Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", Meiryo, sans-serif;
|
|
27
|
+
}
|
|
28
|
+
|
|
20
29
|
/* vantage-template:chart-preset — regenerated by `chart`; edits here are lost */
|
|
21
30
|
:root {
|
|
22
31
|
--chart-1: var(--color-blue-600);
|
package/package.json
CHANGED
|
@@ -111,7 +111,7 @@ function DashboardBody({ data }: { data: KpiSummary }) {
|
|
|
111
111
|
{data.kpis.map((kpi) => {
|
|
112
112
|
const { label, icon: Icon, format } = KPI_META[kpi.id]
|
|
113
113
|
return (
|
|
114
|
-
<DashboardCard key={kpi.id}>
|
|
114
|
+
<DashboardCard key={kpi.id} data-sq-ref={kpi.id}>
|
|
115
115
|
<DashboardCardHeader>
|
|
116
116
|
<DashboardCardTitle className="text-muted-foreground">
|
|
117
117
|
{label}
|
|
@@ -141,11 +141,11 @@ function DashboardBody({ data }: { data: KpiSummary }) {
|
|
|
141
141
|
})}
|
|
142
142
|
</div>
|
|
143
143
|
|
|
144
|
-
<DashboardCardPreset title="Trend" description="Values over the selected period">
|
|
144
|
+
<DashboardCardPreset data-sq-ref="trend" title="Trend" description="Values over the selected period">
|
|
145
145
|
<EChart option={trendOption(data.trend)} height="320px" />
|
|
146
146
|
</DashboardCardPreset>
|
|
147
147
|
|
|
148
|
-
<DashboardCardPreset title="Top items" description="Ranked by value">
|
|
148
|
+
<DashboardCardPreset data-sq-ref="top-items" title="Top items" description="Ranked by value">
|
|
149
149
|
<TopItemsTable data={data.topItems} />
|
|
150
150
|
</DashboardCardPreset>
|
|
151
151
|
</>
|
|
@@ -111,7 +111,7 @@ function DashboardBody({ data }: { data: KpiSummary }) {
|
|
|
111
111
|
{data.kpis.map((kpi) => {
|
|
112
112
|
const { label, icon: Icon, format } = KPI_META[kpi.id]
|
|
113
113
|
return (
|
|
114
|
-
<DashboardCard key={kpi.id}>
|
|
114
|
+
<DashboardCard key={kpi.id} data-sq-ref={kpi.id}>
|
|
115
115
|
<DashboardCardHeader>
|
|
116
116
|
<DashboardCardTitle className="text-muted-foreground">
|
|
117
117
|
{label}
|
|
@@ -141,11 +141,11 @@ function DashboardBody({ data }: { data: KpiSummary }) {
|
|
|
141
141
|
})}
|
|
142
142
|
</div>
|
|
143
143
|
|
|
144
|
-
<DashboardCardPreset title="トレンド" description="選択期間の値">
|
|
144
|
+
<DashboardCardPreset data-sq-ref="trend" title="トレンド" description="選択期間の値">
|
|
145
145
|
<EChart option={trendOption(data.trend)} height="320px" />
|
|
146
146
|
</DashboardCardPreset>
|
|
147
147
|
|
|
148
|
-
<DashboardCardPreset title="上位項目" description="値で並べ替え">
|
|
148
|
+
<DashboardCardPreset data-sq-ref="top-items" title="上位項目" description="値で並べ替え">
|
|
149
149
|
<TopItemsTable data={data.topItems} />
|
|
150
150
|
</DashboardCardPreset>
|
|
151
151
|
</>
|