@ag2/weave 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ # [0.3.0](https://github.com/ag2-space/weave/compare/v0.2.0...v0.3.0) (2026-09-14)
2
+
3
+ ### Features
4
+
5
+ - **current:** the Current design-system layer and CurrentReviewCard, ported from the web client ([231ce4c](https://github.com/ag2-space/weave/commit/231ce4c6d471c12ea1045d1f2cd27795263c63c4))
6
+
1
7
  # [0.2.0](https://github.com/ag2-space/weave/compare/v0.1.0...v0.2.0) (2026-09-13)
2
8
 
3
9
  ### Features
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # Weave
2
2
 
3
+ **Storybook:** https://ag2-space.github.io/weave/ — every branch gets its own at `https://ag2-space.github.io/weave/<branch>/`.
4
+
3
5
  The AG2 Space design system. Forked from [folds](https://github.com/cinnyapp/folds) 2.6.2 (Apache-2.0); `@ag2/weave@0.1.0` is folds@2.6.2 under the new name.
4
6
 
5
7
  <!-- original folds README follows -->
@@ -44,3 +44,4 @@ export * from "./compose-icon";
44
44
  export * from "./splash-screen";
45
45
  export * from "./starfield";
46
46
  export * from "./page";
47
+ export * from "./review-card";
@@ -0,0 +1,15 @@
1
+ import type { ReactNode } from "react";
2
+ import { ReviewCardData } from "./types";
3
+ export declare type ReviewMember = {
4
+ id: string;
5
+ name: string;
6
+ isSelf?: boolean;
7
+ };
8
+ /** Presentation only: actions and identity resolution stay with the room adapter. */
9
+ export declare function CurrentReviewCard({ authorLogin, owned, review, actions, members, }: {
10
+ authorLogin?: string;
11
+ owned?: boolean;
12
+ review: ReviewCardData;
13
+ actions?: ReactNode;
14
+ members?: ReviewMember[];
15
+ }): JSX.Element;
@@ -0,0 +1,2 @@
1
+ export * from "./CurrentReviewCard";
2
+ export * from "./types";
@@ -0,0 +1,24 @@
1
+ export declare type ReviewFinding = {
2
+ id: string;
3
+ severity: "high" | "medium" | "low" | "info";
4
+ title: string;
5
+ description: string;
6
+ location?: {
7
+ path: string;
8
+ line: number;
9
+ } | null;
10
+ requested_change?: string | null;
11
+ };
12
+ export declare type ReviewCardData = {
13
+ pr_author?: string;
14
+ repo: string;
15
+ number: number;
16
+ title?: string;
17
+ url?: string;
18
+ publisher: string;
19
+ reviewed_commit: string;
20
+ freshness: "current" | "outdated" | "unknown";
21
+ verdict: "approve" | "request_changes" | "comment";
22
+ summary: string;
23
+ findings: ReviewFinding[];
24
+ };
@@ -0,0 +1,13 @@
1
+ import { IconName } from "./Icon";
2
+ export declare type CurrentAction = {
3
+ id: string;
4
+ label: string;
5
+ title?: string;
6
+ icon: IconName;
7
+ primary?: boolean;
8
+ onClick: () => void;
9
+ };
10
+ export declare function ActionGroup({ actions, hint }: {
11
+ actions: CurrentAction[];
12
+ hint: string;
13
+ }): JSX.Element;
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from "react";
2
+ import { AccentPalette, Appearance } from "./palette";
3
+ /** No DOM or global styles: only opted-in boundaries adopt the new appearance. */
4
+ export declare function CurrentProvider({ mode, accent, children, }: {
5
+ mode: Appearance;
6
+ accent?: AccentPalette;
7
+ children: ReactNode;
8
+ }): JSX.Element;
9
+ /** Future user palette selection supplies one complete light/dark AccentPalette here. */
10
+ export declare function CurrentBoundary({ children, className, }: {
11
+ children: ReactNode;
12
+ className?: string;
13
+ }): JSX.Element;
@@ -0,0 +1,7 @@
1
+ import type { ReactNode } from "react";
2
+ /** Animate from the visible height, including when a user reverses mid-transition. */
3
+ export declare function Disclosure({ open, id, children, }: {
4
+ open: boolean;
5
+ id: string;
6
+ children: ReactNode;
7
+ }): JSX.Element;
@@ -0,0 +1,18 @@
1
+ declare const paths: {
2
+ readonly "comment-bold": "M172,108a12,12,0,0,1-12,12H96a12,12,0,0,1,0-24h64A12,12,0,0,1,172,108Zm-12,28H96a12,12,0,0,0,0,24h64a12,12,0,0,0,0-24Zm76-8A108,108,0,0,1,78.77,224.15L46.34,235A20,20,0,0,1,21,209.66l10.81-32.43A108,108,0,1,1,236,128Zm-24,0A84,84,0,1,0,55.27,170.06a12,12,0,0,1,1,9.81l-9.93,29.79,29.79-9.93a12.1,12.1,0,0,1,3.8-.62,12,12,0,0,1,6,1.62A84,84,0,0,0,212,128Z";
3
+ readonly chevron: "M216.49,104.49l-80,80a12,12,0,0,1-17,0l-80-80a12,12,0,0,1,17-17L128,159l71.51-71.52a12,12,0,0,1,17,17Z";
4
+ readonly check: "M232.49,80.49l-128,128a12,12,0,0,1-17,0l-56-56a12,12,0,1,1,17-17L96,183,215.51,63.51a12,12,0,0,1,17,17Z";
5
+ readonly warning: "M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Zm-12-80V80a12,12,0,0,1,24,0v52a12,12,0,0,1-24,0Zm28,40a16,16,0,1,1-16-16A16,16,0,0,1,144,172Z";
6
+ readonly comment: "M168,112a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,112Zm-8,24H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Zm72-8A104,104,0,0,1,79.12,219.82L45.07,231.17a16,16,0,0,1-20.24-20.24l11.35-34.05A104,104,0,1,1,232,128Zm-16,0A88,88,0,1,0,51.81,172.06a8,8,0,0,1,.66,6.54L40,216,77.4,203.53a7.85,7.85,0,0,1,2.53-.42,8,8,0,0,1,4,1.08A88,88,0,0,0,216,128Z";
7
+ readonly agent: "M200,48H136V16a8,8,0,0,0-16,0V48H56A32,32,0,0,0,24,80V192a32,32,0,0,0,32,32H200a32,32,0,0,0,32-32V80A32,32,0,0,0,200,48Zm16,144a16,16,0,0,1-16,16H56a16,16,0,0,1-16-16V80A16,16,0,0,1,56,64H200a16,16,0,0,1,16,16Zm-52-56H92a28,28,0,0,0,0,56h72a28,28,0,0,0,0-56Zm-24,16v24H116V152ZM80,164a12,12,0,0,1,12-12h8v24H92A12,12,0,0,1,80,164Zm84,12h-8V152h8a12,12,0,0,1,0,24ZM72,108a12,12,0,1,1,12,12A12,12,0,0,1,72,108Zm88,0a12,12,0,1,1,12,12A12,12,0,0,1,160,108Z";
8
+ readonly people: "M117.25,157.92a60,60,0,1,0-66.5,0A95.83,95.83,0,0,0,3.53,195.63a8,8,0,1,0,13.4,8.74,80,80,0,0,1,134.14,0,8,8,0,0,0,13.4-8.74A95.83,95.83,0,0,0,117.25,157.92ZM40,108a44,44,0,1,1,44,44A44.05,44.05,0,0,1,40,108Zm210.14,98.7a8,8,0,0,1-11.07-2.33A79.83,79.83,0,0,0,172,168a8,8,0,0,1,0-16,44,44,0,1,0-16.34-84.87,8,8,0,1,1-5.94-14.85,60,60,0,0,1,55.53,105.64,95.83,95.83,0,0,1,47.22,37.71A8,8,0,0,1,250.14,206.7Z";
9
+ readonly "pull-request": "M104,64A32,32,0,1,0,64,95v66a32,32,0,1,0,16,0V95A32.06,32.06,0,0,0,104,64ZM56,64A16,16,0,1,1,72,80,16,16,0,0,1,56,64ZM88,192a16,16,0,1,1-16-16A16,16,0,0,1,88,192Zm120-31V110.63a23.85,23.85,0,0,0-7-17L163.31,56H192a8,8,0,0,0,0-16H144a8,8,0,0,0-8,8V96a8,8,0,0,0,16,0V67.31L189.66,105a8,8,0,0,1,2.34,5.66V161a32,32,0,1,0,16,0Zm-8,47a16,16,0,1,1,16-16A16,16,0,0,1,200,208Z";
10
+ readonly clock: "M140,80v41.21l34.17,20.5a12,12,0,1,1-12.34,20.58l-40-24A12,12,0,0,1,116,128V80a12,12,0,0,1,24,0ZM128,28A99.38,99.38,0,0,0,57.24,57.34c-4.69,4.74-9,9.37-13.24,14V64a12,12,0,0,0-24,0v40a12,12,0,0,0,12,12H72a12,12,0,0,0,0-24H57.77C63,86,68.37,80.22,74.26,74.26a76,76,0,1,1,1.58,109,12,12,0,0,0-16.48,17.46A100,100,0,1,0,128,28Z";
11
+ };
12
+ export declare type IconName = keyof typeof paths;
13
+ export declare function Icon({ name, size, verdict, }: {
14
+ name: IconName;
15
+ size?: number;
16
+ verdict?: boolean;
17
+ }): JSX.Element;
18
+ export {};
@@ -0,0 +1,6 @@
1
+ export * from "./ActionGroup";
2
+ export * from "./CurrentProvider";
3
+ export * from "./Disclosure";
4
+ export { Icon as CurrentIcon } from "./Icon";
5
+ export type { IconName as CurrentIconName } from "./Icon";
6
+ export * from "./palette";
@@ -0,0 +1,94 @@
1
+ /** Accent palettes never own semantic status colours or neutral surfaces. */
2
+ export declare type Appearance = "light" | "dark";
3
+ export declare type AccentRoles = {
4
+ solid: string;
5
+ onSolid: string;
6
+ hover: string;
7
+ pressed: string;
8
+ secondary: string;
9
+ onSecondary: string;
10
+ secondaryHover: string;
11
+ secondaryPressed: string;
12
+ focus: string;
13
+ mention: string;
14
+ onMention: string;
15
+ };
16
+ export declare type AccentPalette = Record<Appearance, AccentRoles>;
17
+ export declare const blueAccent: AccentPalette;
18
+ export declare const resolveCurrentPalette: (mode: Appearance, accent?: AccentPalette) => {
19
+ accent: AccentRoles;
20
+ surface: string;
21
+ inset: string;
22
+ line: string;
23
+ text: string;
24
+ body: string;
25
+ secondary: string;
26
+ status: {
27
+ success: {
28
+ solid: string;
29
+ onSolid: string;
30
+ soft: string;
31
+ };
32
+ warning: {
33
+ solid: string;
34
+ onSolid: string;
35
+ soft: string;
36
+ };
37
+ info: {
38
+ solid: string;
39
+ onSolid: string;
40
+ soft: string;
41
+ };
42
+ critical: {
43
+ solid: string;
44
+ onSolid: string;
45
+ soft: string;
46
+ };
47
+ neutral: {
48
+ solid: string;
49
+ onSolid: string;
50
+ soft: string;
51
+ };
52
+ };
53
+ } | {
54
+ accent: AccentRoles;
55
+ surface: string;
56
+ inset: string;
57
+ line: string;
58
+ text: string;
59
+ body: string;
60
+ secondary: string;
61
+ status: {
62
+ success: {
63
+ solid: string;
64
+ onSolid: string;
65
+ soft: string;
66
+ };
67
+ warning: {
68
+ solid: string;
69
+ onSolid: string;
70
+ soft: string;
71
+ };
72
+ info: {
73
+ solid: string;
74
+ onSolid: string;
75
+ soft: string;
76
+ };
77
+ critical: {
78
+ solid: string;
79
+ onSolid: string;
80
+ soft: string;
81
+ };
82
+ neutral: {
83
+ solid: string;
84
+ onSolid: string;
85
+ soft: string;
86
+ };
87
+ };
88
+ };
89
+ export declare const motion: {
90
+ open: number;
91
+ close: number;
92
+ openEasing: string;
93
+ closeEasing: string;
94
+ };
@@ -0,0 +1,38 @@
1
+ export declare const author: string;
2
+ export declare const authorName: string;
3
+ export declare const authorMissing: string;
4
+ export declare const prRef: string;
5
+ export declare const boundary: string;
6
+ export declare const card: string;
7
+ export declare const ownedCard: string;
8
+ export declare const verdictIcon: string;
9
+ export declare const tones: Record<"warning" | "success" | "info" | "critical" | "neutral", string>;
10
+ export declare const header: string;
11
+ export declare const identity: string;
12
+ export declare const prLink: string;
13
+ export declare const mono: string;
14
+ export declare const icon: string;
15
+ export declare const typeIcon: string;
16
+ export declare const badge: string;
17
+ export declare const overview: string;
18
+ export declare const summary: string;
19
+ export declare const control: string;
20
+ export declare const chevron: string;
21
+ export declare const details: string;
22
+ export declare const findings: string;
23
+ export declare const finding: string;
24
+ export declare const findingToggle: string;
25
+ export declare const findingTitle: string;
26
+ export declare const severity: string;
27
+ export declare const findingBody: string;
28
+ export declare const paragraph: string;
29
+ export declare const meta: string;
30
+ export declare const actionSection: string;
31
+ export declare const actionGroup: string;
32
+ export declare const action: string;
33
+ export declare const primaryAction: string;
34
+ export declare const hint: string;
35
+ export declare const mentions: string;
36
+ export declare const mentionLabel: string;
37
+ export declare const member: string;
38
+ export declare const ownMention: string;
@@ -0,0 +1,96 @@
1
+ export declare const darkClass: string, current: {
2
+ accent: {
3
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
4
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
5
+ hover: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
6
+ pressed: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
7
+ secondary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
8
+ onSecondary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
9
+ secondaryHover: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
10
+ secondaryPressed: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
11
+ focus: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
12
+ mention: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
13
+ onMention: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
14
+ };
15
+ surface: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
16
+ inset: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
17
+ line: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
18
+ text: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
19
+ body: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
20
+ secondary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
21
+ status: {
22
+ success: {
23
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
24
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
25
+ soft: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
26
+ };
27
+ warning: {
28
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
29
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
30
+ soft: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
31
+ };
32
+ info: {
33
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
34
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
35
+ soft: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
36
+ };
37
+ critical: {
38
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
39
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
40
+ soft: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
41
+ };
42
+ neutral: {
43
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
44
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
45
+ soft: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
46
+ };
47
+ };
48
+ } | {
49
+ accent: {
50
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
51
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
52
+ hover: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
53
+ pressed: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
54
+ secondary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
55
+ onSecondary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
56
+ secondaryHover: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
57
+ secondaryPressed: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
58
+ focus: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
59
+ mention: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
60
+ onMention: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
61
+ };
62
+ surface: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
63
+ inset: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
64
+ line: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
65
+ text: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
66
+ body: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
67
+ secondary: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
68
+ status: {
69
+ success: {
70
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
71
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
72
+ soft: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
73
+ };
74
+ warning: {
75
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
76
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
77
+ soft: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
78
+ };
79
+ info: {
80
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
81
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
82
+ soft: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
83
+ };
84
+ critical: {
85
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
86
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
87
+ soft: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
88
+ };
89
+ neutral: {
90
+ solid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
91
+ onSolid: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
92
+ soft: `var(--${string})` | `var(--${string}, ${string})` | `var(--${string}, ${number})`;
93
+ };
94
+ };
95
+ };
96
+ export declare const lightClass: string;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from "./theme";
2
2
  export * from "./components";
3
3
  export * from "./hooks";
4
+ export * from "./current";