Add Bookmarks section to dashboard with Forgejo, Build Site, Newsletter links
This commit is contained in:
parent
dba514e781
commit
6aa67e3fc0
13 changed files with 59 additions and 17 deletions
BIN
.DS_Store
vendored
BIN
.DS_Store
vendored
Binary file not shown.
7
frontend/.svelte-kit/ambient.d.ts
vendored
7
frontend/.svelte-kit/ambient.d.ts
vendored
|
|
@ -56,6 +56,7 @@ declare module '$env/static/private' {
|
|||
export const PATH: string;
|
||||
export const npm_package_json: string;
|
||||
export const _: string;
|
||||
export const LaunchInstanceID: string;
|
||||
export const npm_config_userconfig: string;
|
||||
export const npm_config_init_module: string;
|
||||
export const __CFBundleIdentifier: string;
|
||||
|
|
@ -95,6 +96,7 @@ declare module '$env/static/private' {
|
|||
export const CLAUDECODE: string;
|
||||
export const VSCODE_L10N_BUNDLE_LOCATION: string;
|
||||
export const VSCODE_CWD: string;
|
||||
export const SECURITYSESSIONID: string;
|
||||
export const npm_node_execpath: string;
|
||||
export const npm_config_prefix: string;
|
||||
export const NODE_ENV: string;
|
||||
|
|
@ -110,7 +112,7 @@ declare module '$env/static/private' {
|
|||
* ```
|
||||
*/
|
||||
declare module '$env/static/public' {
|
||||
|
||||
export const PUBLIC_API_URL: string;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -157,6 +159,7 @@ declare module '$env/dynamic/private' {
|
|||
PATH: string;
|
||||
npm_package_json: string;
|
||||
_: string;
|
||||
LaunchInstanceID: string;
|
||||
npm_config_userconfig: string;
|
||||
npm_config_init_module: string;
|
||||
__CFBundleIdentifier: string;
|
||||
|
|
@ -196,6 +199,7 @@ declare module '$env/dynamic/private' {
|
|||
CLAUDECODE: string;
|
||||
VSCODE_L10N_BUNDLE_LOCATION: string;
|
||||
VSCODE_CWD: string;
|
||||
SECURITYSESSIONID: string;
|
||||
npm_node_execpath: string;
|
||||
npm_config_prefix: string;
|
||||
NODE_ENV: string;
|
||||
|
|
@ -216,6 +220,7 @@ declare module '$env/dynamic/private' {
|
|||
*/
|
||||
declare module '$env/dynamic/public' {
|
||||
export const env: {
|
||||
PUBLIC_API_URL: string;
|
||||
[key: `PUBLIC_${string}`]: string | undefined;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,18 +8,26 @@ export const nodes = [
|
|||
() => import('./nodes/4'),
|
||||
() => import('./nodes/5'),
|
||||
() => import('./nodes/6'),
|
||||
() => import('./nodes/7')
|
||||
() => import('./nodes/7'),
|
||||
() => import('./nodes/8'),
|
||||
() => import('./nodes/9'),
|
||||
() => import('./nodes/10'),
|
||||
() => import('./nodes/11')
|
||||
];
|
||||
|
||||
export const server_loads = [];
|
||||
|
||||
export const dictionary = {
|
||||
"/": [2],
|
||||
"/cost-tracker": [3],
|
||||
"/data-audit": [4],
|
||||
"/drift-monitor": [5],
|
||||
"/inference-estimator": [6],
|
||||
"/privacy-scanner": [7]
|
||||
"/auth/callback/google": [3],
|
||||
"/cost-tracker": [4],
|
||||
"/data-audit": [5],
|
||||
"/drift-monitor": [6],
|
||||
"/eda-gapminder": [7],
|
||||
"/house-predictor": [8],
|
||||
"/inference-estimator": [9],
|
||||
"/login": [10],
|
||||
"/privacy-scanner": [11]
|
||||
};
|
||||
|
||||
export const hooks = {
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
export { default as component } from "../../../../src/routes/cost-tracker/+page.svelte";
|
||||
export { default as component } from "../../../../src/routes/auth/callback/google/+page.svelte";
|
||||
|
|
@ -1 +1 @@
|
|||
export { default as component } from "../../../../src/routes/data-audit/+page.svelte";
|
||||
export { default as component } from "../../../../src/routes/cost-tracker/+page.svelte";
|
||||
|
|
@ -1 +1 @@
|
|||
export { default as component } from "../../../../src/routes/drift-monitor/+page.svelte";
|
||||
export { default as component } from "../../../../src/routes/data-audit/+page.svelte";
|
||||
|
|
@ -1 +1 @@
|
|||
export { default as component } from "../../../../src/routes/inference-estimator/+page.svelte";
|
||||
export { default as component } from "../../../../src/routes/drift-monitor/+page.svelte";
|
||||
|
|
@ -1 +1 @@
|
|||
export { default as component } from "../../../../src/routes/privacy-scanner/+page.svelte";
|
||||
export { default as component } from "../../../../src/routes/eda-gapminder/+page.svelte";
|
||||
|
|
@ -24,7 +24,7 @@ export const options = {
|
|||
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n\t\t<title>AI Tools Suite</title>\n\t\t" + head + "\n\t</head>\n\t<body data-sveltekit-preload-data=\"hover\">\n\t\t<div style=\"display: contents\">" + body + "</div>\n\t</body>\n</html>\n",
|
||||
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
|
||||
},
|
||||
version_hash: "fbb2o"
|
||||
version_hash: "whuzp1"
|
||||
};
|
||||
|
||||
export async function get_hooks() {
|
||||
|
|
|
|||
12
frontend/.svelte-kit/non-ambient.d.ts
vendored
12
frontend/.svelte-kit/non-ambient.d.ts
vendored
|
|
@ -27,29 +27,35 @@ export {};
|
|||
|
||||
declare module "$app/types" {
|
||||
export interface AppTypes {
|
||||
RouteId(): "/" | "/bias-checks" | "/content-performance" | "/cost-tracker" | "/data-audit" | "/data-history" | "/drift-monitor" | "/emergency-control" | "/inference-estimator" | "/label-quality" | "/model-comparator" | "/privacy-scanner" | "/profitability" | "/reports" | "/security-tester";
|
||||
RouteId(): "/" | "/auth" | "/auth/callback" | "/auth/callback/google" | "/bias-checks" | "/content-performance" | "/cost-tracker" | "/data-audit" | "/data-history" | "/drift-monitor" | "/eda-gapminder" | "/emergency-control" | "/house-predictor" | "/inference-estimator" | "/label-quality" | "/login" | "/model-comparator" | "/privacy-scanner" | "/profitability" | "/reports" | "/security-tester";
|
||||
RouteParams(): {
|
||||
|
||||
};
|
||||
LayoutParams(): {
|
||||
"/": Record<string, never>;
|
||||
"/auth": Record<string, never>;
|
||||
"/auth/callback": Record<string, never>;
|
||||
"/auth/callback/google": Record<string, never>;
|
||||
"/bias-checks": Record<string, never>;
|
||||
"/content-performance": Record<string, never>;
|
||||
"/cost-tracker": Record<string, never>;
|
||||
"/data-audit": Record<string, never>;
|
||||
"/data-history": Record<string, never>;
|
||||
"/drift-monitor": Record<string, never>;
|
||||
"/eda-gapminder": Record<string, never>;
|
||||
"/emergency-control": Record<string, never>;
|
||||
"/house-predictor": Record<string, never>;
|
||||
"/inference-estimator": Record<string, never>;
|
||||
"/label-quality": Record<string, never>;
|
||||
"/login": Record<string, never>;
|
||||
"/model-comparator": Record<string, never>;
|
||||
"/privacy-scanner": Record<string, never>;
|
||||
"/profitability": Record<string, never>;
|
||||
"/reports": Record<string, never>;
|
||||
"/security-tester": Record<string, never>
|
||||
};
|
||||
Pathname(): "/" | "/bias-checks" | "/bias-checks/" | "/content-performance" | "/content-performance/" | "/cost-tracker" | "/cost-tracker/" | "/data-audit" | "/data-audit/" | "/data-history" | "/data-history/" | "/drift-monitor" | "/drift-monitor/" | "/emergency-control" | "/emergency-control/" | "/inference-estimator" | "/inference-estimator/" | "/label-quality" | "/label-quality/" | "/model-comparator" | "/model-comparator/" | "/privacy-scanner" | "/privacy-scanner/" | "/profitability" | "/profitability/" | "/reports" | "/reports/" | "/security-tester" | "/security-tester/";
|
||||
Pathname(): "/" | "/auth" | "/auth/" | "/auth/callback" | "/auth/callback/" | "/auth/callback/google" | "/auth/callback/google/" | "/bias-checks" | "/bias-checks/" | "/content-performance" | "/content-performance/" | "/cost-tracker" | "/cost-tracker/" | "/data-audit" | "/data-audit/" | "/data-history" | "/data-history/" | "/drift-monitor" | "/drift-monitor/" | "/eda-gapminder" | "/eda-gapminder/" | "/emergency-control" | "/emergency-control/" | "/house-predictor" | "/house-predictor/" | "/inference-estimator" | "/inference-estimator/" | "/label-quality" | "/label-quality/" | "/login" | "/login/" | "/model-comparator" | "/model-comparator/" | "/privacy-scanner" | "/privacy-scanner/" | "/profitability" | "/profitability/" | "/reports" | "/reports/" | "/security-tester" | "/security-tester/";
|
||||
ResolvedPathname(): `${"" | `/${string}`}${ReturnType<AppTypes['Pathname']>}`;
|
||||
Asset(): string & {};
|
||||
Asset(): "/logo.png" | string & {};
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,12 @@
|
|||
{
|
||||
"/": [],
|
||||
"/auth/callback/google": [],
|
||||
"/cost-tracker": [],
|
||||
"/data-audit": [],
|
||||
"/drift-monitor": [],
|
||||
"/eda-gapminder": [],
|
||||
"/house-predictor": [],
|
||||
"/inference-estimator": [],
|
||||
"/login": [],
|
||||
"/privacy-scanner": []
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@ type EnsureDefined<T> = T extends null | undefined ? {} : T;
|
|||
type OptionalUnion<U extends Record<string, any>, A extends keyof U = U extends U ? keyof U : never> = U extends unknown ? { [P in Exclude<A, keyof U>]?: never } & U : never;
|
||||
export type Snapshot<T = any> = Kit.Snapshot<T>;
|
||||
type PageParentData = EnsureDefined<LayoutData>;
|
||||
type LayoutRouteId = RouteId | "/" | "/cost-tracker" | "/data-audit" | "/drift-monitor" | "/inference-estimator" | "/privacy-scanner" | null
|
||||
type LayoutRouteId = RouteId | "/" | "/auth/callback/google" | "/cost-tracker" | "/data-audit" | "/drift-monitor" | "/eda-gapminder" | "/house-predictor" | "/inference-estimator" | "/login" | "/privacy-scanner" | null
|
||||
type LayoutParams = RouteParams & { }
|
||||
type LayoutParentData = EnsureDefined<{}>;
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,25 @@
|
|||
</p>
|
||||
</header>
|
||||
|
||||
<!-- Bookmarks -->
|
||||
<div class="card p-4 mb-8">
|
||||
<h2 class="text-sm font-medium text-surface-700 mb-3">Bookmarks</h2>
|
||||
<div class="flex flex-wrap gap-4">
|
||||
<a href="https://forgejo.valuecurve.co" target="_blank" rel="noopener"
|
||||
class="text-sm text-primary-600 hover:text-primary-700 font-medium">
|
||||
Code Repository | Forgejo →
|
||||
</a>
|
||||
<a href="https://build.valuecurve.co" target="_blank" rel="noopener"
|
||||
class="text-sm text-primary-600 hover:text-primary-700 font-medium">
|
||||
Build Site →
|
||||
</a>
|
||||
<a href="https://www.valuecurve.ai" target="_blank" rel="noopener"
|
||||
class="text-sm text-primary-600 hover:text-primary-700 font-medium">
|
||||
Newsletter →
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Quick Stats -->
|
||||
<div class="grid grid-cols-1 md:grid-cols-4 gap-4 mb-8">
|
||||
<div class="card p-4">
|
||||
|
|
|
|||
Loading…
Reference in a new issue