@devqubit/ui 0.1.10-beta-1

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.
Files changed (65) hide show
  1. package/README.md +31 -0
  2. package/dist/api/client.d.ts +72 -0
  3. package/dist/api/client.d.ts.map +1 -0
  4. package/dist/api/index.d.ts +8 -0
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/components/GroupsTable/GroupsTable.d.ts +6 -0
  7. package/dist/components/GroupsTable/GroupsTable.d.ts.map +1 -0
  8. package/dist/components/GroupsTable/index.d.ts +3 -0
  9. package/dist/components/GroupsTable/index.d.ts.map +1 -0
  10. package/dist/components/Layout/Layout.d.ts +18 -0
  11. package/dist/components/Layout/Layout.d.ts.map +1 -0
  12. package/dist/components/Layout/index.d.ts +3 -0
  13. package/dist/components/Layout/index.d.ts.map +1 -0
  14. package/dist/components/ProjectsTable/ProjectsTable.d.ts +7 -0
  15. package/dist/components/ProjectsTable/ProjectsTable.d.ts.map +1 -0
  16. package/dist/components/ProjectsTable/index.d.ts +3 -0
  17. package/dist/components/ProjectsTable/index.d.ts.map +1 -0
  18. package/dist/components/RunsTable/RunsTable.d.ts +14 -0
  19. package/dist/components/RunsTable/RunsTable.d.ts.map +1 -0
  20. package/dist/components/RunsTable/index.d.ts +3 -0
  21. package/dist/components/RunsTable/index.d.ts.map +1 -0
  22. package/dist/components/Table/Table.d.ts +16 -0
  23. package/dist/components/Table/Table.d.ts.map +1 -0
  24. package/dist/components/Table/index.d.ts +3 -0
  25. package/dist/components/Table/index.d.ts.map +1 -0
  26. package/dist/components/index.d.ts +16 -0
  27. package/dist/components/index.d.ts.map +1 -0
  28. package/dist/components/ui/forms.d.ts +18 -0
  29. package/dist/components/ui/forms.d.ts.map +1 -0
  30. package/dist/components/ui/index.d.ts +5 -0
  31. package/dist/components/ui/index.d.ts.map +1 -0
  32. package/dist/components/ui/primitives.d.ts +66 -0
  33. package/dist/components/ui/primitives.d.ts.map +1 -0
  34. package/dist/hooks/index.d.ts +109 -0
  35. package/dist/hooks/index.d.ts.map +1 -0
  36. package/dist/index.cjs +14 -0
  37. package/dist/index.d.ts +24 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +2160 -0
  40. package/dist/pages/ArtifactPage.d.ts +5 -0
  41. package/dist/pages/ArtifactPage.d.ts.map +1 -0
  42. package/dist/pages/DiffPage.d.ts +5 -0
  43. package/dist/pages/DiffPage.d.ts.map +1 -0
  44. package/dist/pages/GroupDetailPage.d.ts +5 -0
  45. package/dist/pages/GroupDetailPage.d.ts.map +1 -0
  46. package/dist/pages/GroupsPage.d.ts +5 -0
  47. package/dist/pages/GroupsPage.d.ts.map +1 -0
  48. package/dist/pages/ProjectsPage.d.ts +5 -0
  49. package/dist/pages/ProjectsPage.d.ts.map +1 -0
  50. package/dist/pages/RunDetailPage.d.ts +5 -0
  51. package/dist/pages/RunDetailPage.d.ts.map +1 -0
  52. package/dist/pages/RunsPage.d.ts +5 -0
  53. package/dist/pages/RunsPage.d.ts.map +1 -0
  54. package/dist/pages/SearchPage.d.ts +5 -0
  55. package/dist/pages/SearchPage.d.ts.map +1 -0
  56. package/dist/pages/index.d.ts +9 -0
  57. package/dist/pages/index.d.ts.map +1 -0
  58. package/dist/router/index.d.ts +5 -0
  59. package/dist/router/index.d.ts.map +1 -0
  60. package/dist/style.css +1 -0
  61. package/dist/types/index.d.ts +171 -0
  62. package/dist/types/index.d.ts.map +1 -0
  63. package/dist/utils/index.d.ts +138 -0
  64. package/dist/utils/index.d.ts.map +1 -0
  65. package/package.json +55 -0
package/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # @devqubit/ui
2
+
3
+ React frontend for devqubit experiment tracking UI (open-core).
4
+
5
+ ## Tech Stack
6
+
7
+ - React 18 + TypeScript
8
+ - Vite (build & dev server)
9
+ - TailwindCSS (styling)
10
+ - React Router (client-side routing)
11
+
12
+ ## Development
13
+
14
+ ```bash
15
+ npm install
16
+ npm run dev # Start dev server (localhost:5173)
17
+ npm run build # Build for production (auto-copies to static/)
18
+ npm run build:lib # Build as npm library
19
+ npm run lint # Run ESLint
20
+ npm run typecheck # TypeScript type check
21
+ ```
22
+
23
+ Dev server proxies `/api` requests to `localhost:8000`.
24
+
25
+ ## Build for Python Package
26
+
27
+ The build process automatically copies production files to `../src/devqubit_ui/static/`:
28
+
29
+ ```bash
30
+ npm run build
31
+ ```
@@ -0,0 +1,72 @@
1
+ import { RunSummary, RunRecord, Project, Group, Capabilities, DiffReport, Artifact } from '../types';
2
+ export declare class ApiError extends Error {
3
+ status: number;
4
+ constructor(status: number, message: string);
5
+ }
6
+ export interface ApiConfig {
7
+ baseUrl?: string;
8
+ headers?: Record<string, string>;
9
+ }
10
+ /**
11
+ * DevQubit API Client.
12
+ *
13
+ * Provides typed methods for all backend API endpoints.
14
+ */
15
+ export declare class ApiClient {
16
+ protected baseUrl: string;
17
+ protected headers: Record<string, string>;
18
+ constructor(config?: ApiConfig);
19
+ protected request<T>(method: string, path: string, options?: {
20
+ body?: unknown;
21
+ params?: Record<string, unknown>;
22
+ }): Promise<T>;
23
+ getCapabilities(): Promise<Capabilities>;
24
+ listRuns(params?: {
25
+ project?: string;
26
+ status?: string;
27
+ q?: string;
28
+ limit?: number;
29
+ workspace?: string;
30
+ }): Promise<{
31
+ runs: RunSummary[];
32
+ count: number;
33
+ }>;
34
+ getRun(runId: string): Promise<{
35
+ run: RunRecord;
36
+ }>;
37
+ deleteRun(runId: string): Promise<void>;
38
+ setBaseline(project: string, runId: string): Promise<{
39
+ status: string;
40
+ }>;
41
+ listProjects(params?: {
42
+ workspace?: string;
43
+ }): Promise<{
44
+ projects: Project[];
45
+ }>;
46
+ listGroups(params?: {
47
+ project?: string;
48
+ workspace?: string;
49
+ }): Promise<{
50
+ groups: Group[];
51
+ }>;
52
+ getGroup(groupId: string): Promise<{
53
+ group_id: string;
54
+ runs: RunSummary[];
55
+ }>;
56
+ getDiff(runIdA: string, runIdB: string): Promise<{
57
+ run_a: RunSummary;
58
+ run_b: RunSummary;
59
+ report: DiffReport;
60
+ }>;
61
+ getArtifact(runId: string, index: number): Promise<{
62
+ artifact: Artifact;
63
+ size: number;
64
+ content?: string;
65
+ content_json?: unknown;
66
+ preview_available: boolean;
67
+ error?: string;
68
+ }>;
69
+ getArtifactDownloadUrl(runId: string, index: number): string;
70
+ }
71
+ export declare const api: ApiClient;
72
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * DevQubit API Module
3
+ *
4
+ * Exports API client and related utilities.
5
+ */
6
+ export { ApiClient, ApiError, api } from './client';
7
+ export type { ApiConfig } from './client';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Group } from '../../types';
2
+ export interface GroupsTableProps {
3
+ groups: Group[];
4
+ }
5
+ export declare function GroupsTable({ groups }: GroupsTableProps): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=GroupsTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupsTable.d.ts","sourceRoot":"","sources":["../../../src/components/GroupsTable/GroupsTable.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,gBAAgB,2CAwCvD"}
@@ -0,0 +1,3 @@
1
+ export { GroupsTable } from './GroupsTable';
2
+ export type { GroupsTableProps } from './GroupsTable';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/GroupsTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { LayoutConfig } from '../../types';
2
+ export declare function LayoutConfigProvider({ config, children }: {
3
+ config: LayoutConfig;
4
+ children: React.ReactNode;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ export declare function useLayoutConfig(): LayoutConfig | null;
7
+ export interface LayoutProps {
8
+ children: React.ReactNode;
9
+ config?: LayoutConfig;
10
+ }
11
+ export declare function Layout({ children, config: localConfig }: LayoutProps): import("react/jsx-runtime").JSX.Element;
12
+ export interface PageHeaderProps {
13
+ title: React.ReactNode;
14
+ subtitle?: React.ReactNode;
15
+ actions?: React.ReactNode;
16
+ }
17
+ export declare function PageHeader({ title, subtitle, actions }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=Layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/Layout.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAW,MAAM,aAAa,CAAC;AAYzD,wBAAgB,oBAAoB,CAAC,EACnC,MAAM,EACN,QAAQ,EACT,EAAE;IACD,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAMA;AAED,wBAAgB,eAAe,IAAI,YAAY,GAAG,IAAI,CAErD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,WAAW,2CA0DpE;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,eAAe,2CAYvE"}
@@ -0,0 +1,3 @@
1
+ export { Layout, PageHeader, LayoutConfigProvider, useLayoutConfig } from './Layout';
2
+ export type { LayoutProps, PageHeaderProps } from './Layout';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACrF,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Project, Workspace } from '../../types';
2
+ export interface ProjectsTableProps {
3
+ projects: Project[];
4
+ currentWorkspace?: Workspace | null;
5
+ }
6
+ export declare function ProjectsTable({ projects, currentWorkspace }: ProjectsTableProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=ProjectsTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProjectsTable.d.ts","sourceRoot":"","sources":["../../../src/components/ProjectsTable/ProjectsTable.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACrC;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,2CA8D/E"}
@@ -0,0 +1,3 @@
1
+ export { ProjectsTable } from './ProjectsTable';
2
+ export type { ProjectsTableProps } from './ProjectsTable';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ProjectsTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { RunSummary, RunStatus } from '../../types';
2
+ export interface RunsTableProps {
3
+ runs: RunSummary[];
4
+ onDelete?: (runId: string) => void;
5
+ loading?: boolean;
6
+ emptyHint?: string;
7
+ baselineRunId?: string;
8
+ }
9
+ declare function StatusBadge({ status }: {
10
+ status: RunStatus;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ export declare function RunsTable({ runs, onDelete, loading, emptyHint, baselineRunId }: RunsTableProps): import("react/jsx-runtime").JSX.Element;
13
+ export { StatusBadge };
14
+ //# sourceMappingURL=RunsTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RunsTable.d.ts","sourceRoot":"","sources":["../../../src/components/RunsTable/RunsTable.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iBAAS,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,2CAQrD;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,cAAc,2CA6F9F;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { RunsTable, StatusBadge } from './RunsTable';
2
+ export type { RunsTableProps } from './RunsTable';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/RunsTable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * DevQubit UI Table Component
3
+ */
4
+ export type TableProps = React.TableHTMLAttributes<HTMLTableElement>;
5
+ export type TableHeadProps = React.HTMLAttributes<HTMLTableSectionElement>;
6
+ export type TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement>;
7
+ export type TableRowProps = React.HTMLAttributes<HTMLTableRowElement>;
8
+ export type TableHeaderProps = React.ThHTMLAttributes<HTMLTableCellElement>;
9
+ export type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>;
10
+ export declare function Table({ className, children, ...props }: TableProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function TableHead({ className, children, ...props }: TableHeadProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function TableBody({ className, children, ...props }: TableBodyProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function TableRow({ className, children, ...props }: TableRowProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function TableHeader({ className, children, ...props }: TableHeaderProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function TableCell({ className, children, ...props }: TableCellProps): import("react/jsx-runtime").JSX.Element;
16
+ //# sourceMappingURL=Table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../src/components/Table/Table.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AACrE,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;AAC3E,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;AAC3E,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AAC5E,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;AAE1E,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAMlE;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAE1E;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAE1E;AAED,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAExE;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAE9E;AAED,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAE1E"}
@@ -0,0 +1,3 @@
1
+ export { Table, TableHead, TableBody, TableRow, TableHeader, TableCell, } from './Table';
2
+ export type { TableProps, TableHeadProps, TableBodyProps, TableRowProps, TableHeaderProps, TableCellProps, } from './Table';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,cAAc,GACf,MAAM,SAAS,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * DevQubit UI Components
3
+ *
4
+ * Main export file for all UI components.
5
+ */
6
+ export { Layout, PageHeader } from './Layout';
7
+ export type { LayoutProps, PageHeaderProps } from './Layout';
8
+ export * from './ui';
9
+ export * from './Table';
10
+ export { RunsTable, StatusBadge } from './RunsTable';
11
+ export type { RunsTableProps } from './RunsTable';
12
+ export { ProjectsTable } from './ProjectsTable';
13
+ export type { ProjectsTableProps } from './ProjectsTable';
14
+ export { GroupsTable } from './GroupsTable';
15
+ export type { GroupsTableProps } from './GroupsTable';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG7D,cAAc,MAAM,CAAC;AAGrB,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { InputHTMLAttributes, SelectHTMLAttributes, LabelHTMLAttributes } from 'react';
2
+ export type LabelProps = LabelHTMLAttributes<HTMLLabelElement>;
3
+ export type InputProps = InputHTMLAttributes<HTMLInputElement>;
4
+ export type SelectProps = SelectHTMLAttributes<HTMLSelectElement>;
5
+ export interface FormGroupProps {
6
+ children: React.ReactNode;
7
+ className?: string;
8
+ }
9
+ export declare function FormGroup({ children, className }: FormGroupProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function Label({ className, children, ...props }: LabelProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare const Input: import('react').ForwardRefExoticComponent<InputProps & import('react').RefAttributes<HTMLInputElement>>;
12
+ export declare const Select: import('react').ForwardRefExoticComponent<SelectProps & import('react').RefAttributes<HTMLSelectElement>>;
13
+ export interface FormRowProps {
14
+ children: React.ReactNode;
15
+ className?: string;
16
+ }
17
+ export declare function FormRow({ children, className }: FormRowProps): import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=forms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.d.ts","sourceRoot":"","sources":["../../../src/components/ui/forms.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAc,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAGlH,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,WAAW,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,2CAEhE;AAED,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAMlE;AAED,eAAO,MAAM,KAAK,yGAIjB,CAAC;AAGF,eAAO,MAAM,MAAM,2GAQlB,CAAC;AAGF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,YAAY,2CAE5D"}
@@ -0,0 +1,5 @@
1
+ export { Badge, Button, Card, CardHeader, CardTitle, Alert, Spinner, EmptyState, KVList, Modal, Toast, Skeleton, TableSkeleton, } from './primitives';
2
+ export type { BadgeVariant, BadgeProps, ButtonVariant, ButtonSize, ButtonProps, CardProps, CardHeaderProps, CardTitleProps, AlertVariant, AlertProps, SpinnerProps, EmptyStateProps, KVListProps, ModalProps, ToastVariant, ToastProps, SkeletonProps, TableSkeletonProps, } from './primitives';
3
+ export { FormGroup, FormRow, Label, Input, Select, } from './forms';
4
+ export type { FormGroupProps, FormRowProps, LabelProps, InputProps, SelectProps, } from './forms';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,EACP,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,SAAS,EACT,eAAe,EACf,cAAc,EACd,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EACL,KAAK,EACL,MAAM,GACP,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { ButtonHTMLAttributes, HTMLAttributes } from 'react';
2
+ export type BadgeVariant = 'success' | 'danger' | 'warning' | 'info' | 'gray' | 'neutral';
3
+ export interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
4
+ variant?: BadgeVariant;
5
+ }
6
+ export declare function Badge({ variant, className, children, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
7
+ export type ButtonVariant = 'primary' | 'secondary' | 'danger' | 'ghost' | 'ghost-danger';
8
+ export type ButtonSize = 'default' | 'sm';
9
+ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
10
+ variant?: ButtonVariant;
11
+ size?: ButtonSize;
12
+ loading?: boolean;
13
+ }
14
+ export declare const Button: import('react').ForwardRefExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
15
+ export type CardProps = HTMLAttributes<HTMLDivElement>;
16
+ export type CardHeaderProps = HTMLAttributes<HTMLDivElement>;
17
+ export type CardTitleProps = HTMLAttributes<HTMLHeadingElement>;
18
+ export declare function Card({ className, children, ...props }: CardProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare function CardHeader({ className, children, ...props }: CardHeaderProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function CardTitle({ className, children, ...props }: CardTitleProps): import("react/jsx-runtime").JSX.Element;
21
+ export type AlertVariant = 'success' | 'danger' | 'warning' | 'info';
22
+ export interface AlertProps extends HTMLAttributes<HTMLDivElement> {
23
+ variant?: AlertVariant;
24
+ }
25
+ export declare function Alert({ variant, className, children, ...props }: AlertProps): import("react/jsx-runtime").JSX.Element;
26
+ export type SpinnerProps = HTMLAttributes<HTMLSpanElement>;
27
+ export declare function Spinner({ className, ...props }: SpinnerProps): import("react/jsx-runtime").JSX.Element;
28
+ export interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {
29
+ message: string;
30
+ hint?: string;
31
+ }
32
+ export declare function EmptyState({ message, hint, className, ...props }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
33
+ export interface KVListProps extends HTMLAttributes<HTMLDListElement> {
34
+ items: Array<{
35
+ label: string;
36
+ value: React.ReactNode;
37
+ }>;
38
+ }
39
+ export declare function KVList({ items, className, ...props }: KVListProps): import("react/jsx-runtime").JSX.Element;
40
+ export interface ModalProps {
41
+ open: boolean;
42
+ onClose: () => void;
43
+ title: string;
44
+ children: React.ReactNode;
45
+ actions?: React.ReactNode;
46
+ }
47
+ export declare function Modal({ open, onClose, title, children, actions }: ModalProps): import("react/jsx-runtime").JSX.Element | null;
48
+ export type ToastVariant = 'success' | 'error' | 'info';
49
+ export interface ToastProps {
50
+ message: string;
51
+ variant?: ToastVariant;
52
+ visible: boolean;
53
+ onClose: () => void;
54
+ }
55
+ export declare function Toast({ message, variant, visible, onClose }: ToastProps): import("react/jsx-runtime").JSX.Element | null;
56
+ export interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
57
+ width?: string | number;
58
+ height?: string | number;
59
+ }
60
+ export declare function Skeleton({ width, height, className, style, ...props }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
61
+ export interface TableSkeletonProps {
62
+ rows?: number;
63
+ cols?: number;
64
+ }
65
+ export declare function TableSkeleton({ rows, cols }: TableSkeletonProps): import("react/jsx-runtime").JSX.Element;
66
+ //# sourceMappingURL=primitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/components/ui/primitives.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { ApiClient, ApiError } from '../api';
2
+ import { Capabilities, Workspace } from '../types';
3
+ /** Async state for data fetching */
4
+ interface AsyncState<T> {
5
+ data: T | null;
6
+ loading: boolean;
7
+ error: ApiError | null;
8
+ }
9
+ /** App context for shared state */
10
+ interface AppContextValue {
11
+ api: ApiClient;
12
+ capabilities: Capabilities | null;
13
+ currentWorkspace: Workspace | null;
14
+ setCurrentWorkspace: (workspace: Workspace | null) => void;
15
+ }
16
+ /**
17
+ * App context provider props
18
+ */
19
+ export interface AppProviderProps {
20
+ children: React.ReactNode;
21
+ api?: ApiClient;
22
+ initialWorkspace?: Workspace | null;
23
+ }
24
+ /**
25
+ * App context provider component.
26
+ *
27
+ * Provides API client and shared state to child components.
28
+ */
29
+ export declare function AppProvider({ children, api, initialWorkspace, }: AppProviderProps): import("react/jsx-runtime").JSX.Element;
30
+ /**
31
+ * Access app context.
32
+ */
33
+ export declare function useApp(): AppContextValue;
34
+ /**
35
+ * Fetch runs list with filters.
36
+ */
37
+ export declare function useRuns(params?: {
38
+ project?: string;
39
+ status?: string;
40
+ q?: string;
41
+ limit?: number;
42
+ }): AsyncState<{
43
+ runs: import('..').RunSummary[];
44
+ count: number;
45
+ }> & {
46
+ refetch: () => void;
47
+ };
48
+ /**
49
+ * Fetch single run by ID.
50
+ */
51
+ export declare function useRun(runId: string): AsyncState<import('..').RunRecord> & {
52
+ refetch: () => void;
53
+ };
54
+ /**
55
+ * Fetch projects list.
56
+ */
57
+ export declare function useProjects(): AsyncState<import('..').Project[]> & {
58
+ refetch: () => void;
59
+ };
60
+ /**
61
+ * Fetch groups list.
62
+ */
63
+ export declare function useGroups(params?: {
64
+ project?: string;
65
+ }): AsyncState<import('..').Group[]> & {
66
+ refetch: () => void;
67
+ };
68
+ /**
69
+ * Fetch group by ID.
70
+ */
71
+ export declare function useGroup(groupId: string): AsyncState<{
72
+ group_id: string;
73
+ runs: import('..').RunSummary[];
74
+ }> & {
75
+ refetch: () => void;
76
+ };
77
+ /**
78
+ * Fetch diff report.
79
+ */
80
+ export declare function useDiff(runIdA: string, runIdB: string): AsyncState<{
81
+ run_a: import('..').RunSummary;
82
+ run_b: import('..').RunSummary;
83
+ report: import('..').DiffReport;
84
+ }> & {
85
+ refetch: () => void;
86
+ };
87
+ /**
88
+ * Fetch artifact metadata.
89
+ */
90
+ export declare function useArtifact(runId: string, index: number): AsyncState<{
91
+ artifact: import('..').Artifact;
92
+ size: number;
93
+ content?: string;
94
+ content_json?: unknown;
95
+ preview_available: boolean;
96
+ error?: string;
97
+ }> & {
98
+ refetch: () => void;
99
+ };
100
+ /**
101
+ * Hook for mutation operations (delete, set baseline, etc.)
102
+ */
103
+ export declare function useMutation<TArgs extends unknown[], TResult>(mutationFn: (...args: TArgs) => Promise<TResult>): {
104
+ mutate: (...args: TArgs) => Promise<TResult>;
105
+ loading: boolean;
106
+ error: ApiError | null;
107
+ };
108
+ export type { AsyncState, AppContextValue, };
109
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAqB,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAExD,oCAAoC;AACpC,UAAU,UAAU,CAAC,CAAC;IACpB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB;AAED,mCAAmC;AACnC,UAAU,eAAe;IACvB,GAAG,EAAE,SAAS,CAAC;IACf,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,gBAAgB,EAAE,SAAS,GAAG,IAAI,CAAC;IACnC,mBAAmB,EAAE,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5D;AAID;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,gBAAgB,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,GAAgB,EAChB,gBAAuB,GACxB,EAAE,gBAAgB,2CAalB;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,eAAe,CAIxC;AA8CD;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,CAAC,EAAE;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;;aA9C6B,MAAM,IAAI;EAoDvC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM;aAzDN,MAAM,IAAI;EAkEvC;AAED;;GAEG;AACH,wBAAgB,WAAW;aAvEG,MAAM,IAAI;EAgFvC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;aArFzB,MAAM,IAAI;EA8FvC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM;;;;aAnGV,MAAM,IAAI;EAyGvC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;aA9GxB,MAAM,IAAI;EAoHvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;;aAzH1B,MAAM,IAAI;EA+HvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,SAAS,OAAO,EAAE,EAAE,OAAO,EAC1D,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,GAC/C;IACD,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;CACxB,CAoBA;AAED,YAAY,EACV,UAAU,EACV,eAAe,GAChB,CAAC"}