@agentaily/design-system 0.2.0 → 0.4.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/DESIGN.md +56 -7
- package/README.md +5 -5
- package/dist/components/ai/Confirmation.js +58 -22
- package/dist/components/ai/Confirmation.js.map +1 -1
- package/dist/components/ai/Queue.d.ts +23 -0
- package/dist/components/ai/Queue.js +52 -1
- package/dist/components/ai/Queue.js.map +1 -1
- package/dist/components/ai/ToolCall.js +69 -30
- package/dist/components/ai/ToolCall.js.map +1 -1
- package/dist/components/auth/AccountControl.d.ts +23 -0
- package/dist/components/auth/AccountControl.js +47 -0
- package/dist/components/auth/AccountControl.js.map +1 -0
- package/dist/components/auth/AuthDialog.d.ts +39 -0
- package/dist/components/auth/AuthDialog.js +327 -0
- package/dist/components/auth/AuthDialog.js.map +1 -0
- package/dist/components/auth/SignInPage.d.ts +69 -0
- package/dist/components/auth/SignInPage.js +239 -0
- package/dist/components/auth/SignInPage.js.map +1 -0
- package/dist/components/chat/CodeBlock.js +3 -2
- package/dist/components/chat/CodeBlock.js.map +1 -1
- package/dist/components/chat/ConversationThread.d.ts +67 -0
- package/dist/components/chat/ConversationThread.js +129 -0
- package/dist/components/chat/ConversationThread.js.map +1 -0
- package/dist/components/code/Artifact.js +44 -9
- package/dist/components/code/Artifact.js.map +1 -1
- package/dist/components/code/JSXPreview.js +19 -12
- package/dist/components/code/JSXPreview.js.map +1 -1
- package/dist/components/code/Snippet.js +2 -2
- package/dist/components/code/Snippet.js.map +1 -1
- package/dist/components/code/Terminal.js +24 -10
- package/dist/components/code/Terminal.js.map +1 -1
- package/dist/components/code/WebPreview.js +44 -10
- package/dist/components/code/WebPreview.js.map +1 -1
- package/dist/components/display/Skeleton.js +17 -4
- package/dist/components/display/Skeleton.js.map +1 -1
- package/dist/components/display/StatusPill.d.ts +12 -0
- package/dist/components/display/StatusPill.js +17 -0
- package/dist/components/display/StatusPill.js.map +1 -0
- package/dist/components/inputs/SecretField.d.ts +21 -0
- package/dist/components/inputs/SecretField.js +70 -0
- package/dist/components/inputs/SecretField.js.map +1 -0
- package/dist/components/layout/AppShell.d.ts +30 -0
- package/dist/components/layout/AppShell.js +117 -0
- package/dist/components/layout/AppShell.js.map +1 -0
- package/dist/components/layout/DesignerShell.d.ts +39 -0
- package/dist/components/layout/DesignerShell.js +146 -0
- package/dist/components/layout/DesignerShell.js.map +1 -0
- package/dist/components/layout/DocsLayout.d.ts +24 -0
- package/dist/components/layout/DocsLayout.js +113 -0
- package/dist/components/layout/DocsLayout.js.map +1 -0
- package/dist/components/layout/SettingsPage.d.ts +31 -0
- package/dist/components/layout/SettingsPage.js +92 -0
- package/dist/components/layout/SettingsPage.js.map +1 -0
- package/dist/components/review/MarkupLayer.d.ts +20 -0
- package/dist/components/review/MarkupLayer.js +237 -0
- package/dist/components/review/MarkupLayer.js.map +1 -0
- package/dist/components/settings/HelpSteps.d.ts +20 -0
- package/dist/components/settings/HelpSteps.js +40 -0
- package/dist/components/settings/HelpSteps.js.map +1 -0
- package/dist/components/settings/IntegrationSettings.d.ts +15 -0
- package/dist/components/settings/IntegrationSettings.js +630 -0
- package/dist/components/settings/IntegrationSettings.js.map +1 -0
- package/dist/components/settings/TestRow.d.ts +21 -0
- package/dist/components/settings/TestRow.js +66 -0
- package/dist/components/settings/TestRow.js.map +1 -0
- package/dist/components/utilities/BrandMark.d.ts +17 -0
- package/dist/components/utilities/BrandMark.js +43 -0
- package/dist/components/utilities/BrandMark.js.map +1 -0
- package/dist/components/utilities/Icon.d.ts +28 -0
- package/dist/components/utilities/Icon.js +196 -0
- package/dist/components/utilities/Icon.js.map +1 -0
- package/dist/components/utilities/RotatingTagline.d.ts +30 -0
- package/dist/components/utilities/RotatingTagline.js +90 -0
- package/dist/components/utilities/RotatingTagline.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -1
- package/dist/styles.css +67 -64
- package/package.json +2 -2
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
const AX_RTAG_CSS = `
|
|
4
|
+
.ax-rtag { display: inline; color: var(--text-body); }
|
|
5
|
+
.ax-rtag__prefix { color: var(--text-body); }
|
|
6
|
+
.ax-rtag__verb { color: var(--text-body); }
|
|
7
|
+
.ax-rtag__grad {
|
|
8
|
+
background: linear-gradient(95deg, #F2806B 0%, #E9B24F 18%, #6FB66A 36%, #4DB6AE 54%, #5B8DEF 72%, #9B7BEA 86%, #F2806B 100%);
|
|
9
|
+
background-size: 220% 100%;
|
|
10
|
+
-webkit-background-clip: text; background-clip: text;
|
|
11
|
+
-webkit-text-fill-color: transparent; color: transparent;
|
|
12
|
+
animation: ax-rtag-flow var(--ax-rtag-flow, 1.2s) linear infinite;
|
|
13
|
+
}
|
|
14
|
+
.ax-rtag__cursor {
|
|
15
|
+
display: inline-block; width: 0.5em; height: 0.84em; background: var(--text-body);
|
|
16
|
+
vertical-align: -0.02em; margin-left: 0.04em;
|
|
17
|
+
}
|
|
18
|
+
.ax-rtag__cursor.is-blink { animation: ax-rtag-blink 1.1s steps(1) infinite; }
|
|
19
|
+
@keyframes ax-rtag-flow { to { background-position: 220% 0; } }
|
|
20
|
+
@keyframes ax-rtag-blink { 50% { opacity: 0; } }
|
|
21
|
+
@media (prefers-reduced-motion: reduce) { .ax-rtag__grad { animation: none; } }
|
|
22
|
+
`;
|
|
23
|
+
if (typeof document !== "undefined" && !document.getElementById("ax-rtag-css")) {
|
|
24
|
+
const s = document.createElement("style");
|
|
25
|
+
s.id = "ax-rtag-css";
|
|
26
|
+
s.textContent = AX_RTAG_CSS;
|
|
27
|
+
document.head.appendChild(s);
|
|
28
|
+
}
|
|
29
|
+
function RotatingTagline({
|
|
30
|
+
prefix = "聊天,",
|
|
31
|
+
phrases = ["构建万物", "生成万物", "设计万物", "学习万物"],
|
|
32
|
+
gradient = true,
|
|
33
|
+
cursor = true,
|
|
34
|
+
breakAfterPrefix = false,
|
|
35
|
+
typeSpeed = 140,
|
|
36
|
+
deleteSpeed = 70,
|
|
37
|
+
hold = 1700,
|
|
38
|
+
flowDuration = "1.2s",
|
|
39
|
+
className = "",
|
|
40
|
+
...rest
|
|
41
|
+
}) {
|
|
42
|
+
const list = phrases && phrases.length ? phrases : [""];
|
|
43
|
+
const reduced = typeof window !== "undefined" && window.matchMedia && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
44
|
+
const [wi, setWi] = useState(0);
|
|
45
|
+
const [txt, setTxt] = useState(list[0]);
|
|
46
|
+
const [deleting, setDeleting] = useState(false);
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (reduced) {
|
|
49
|
+
const t2 = setTimeout(() => setWi((w) => (w + 1) % list.length), hold + 700);
|
|
50
|
+
return () => clearTimeout(t2);
|
|
51
|
+
}
|
|
52
|
+
const word = list[wi % list.length];
|
|
53
|
+
let t;
|
|
54
|
+
if (!deleting && txt === word) {
|
|
55
|
+
t = setTimeout(() => setDeleting(true), hold);
|
|
56
|
+
} else if (deleting && txt === "") {
|
|
57
|
+
setDeleting(false);
|
|
58
|
+
setWi((w) => (w + 1) % list.length);
|
|
59
|
+
} else {
|
|
60
|
+
const next = deleting ? word.slice(0, txt.length - 1) : word.slice(0, txt.length + 1);
|
|
61
|
+
t = setTimeout(() => setTxt(next), deleting ? deleteSpeed : typeSpeed);
|
|
62
|
+
}
|
|
63
|
+
return () => clearTimeout(t);
|
|
64
|
+
}, [txt, deleting, wi, reduced, hold, typeSpeed, deleteSpeed]);
|
|
65
|
+
useEffect(() => {
|
|
66
|
+
if (reduced) setTxt(list[wi % list.length]);
|
|
67
|
+
}, [wi, reduced]);
|
|
68
|
+
const atRest = reduced || !deleting && txt === list[wi % list.length];
|
|
69
|
+
const verbCls = ["ax-rtag__verb", gradient ? "ax-rtag__grad" : ""].filter(Boolean).join(" ");
|
|
70
|
+
return /* @__PURE__ */ jsxs(
|
|
71
|
+
"span",
|
|
72
|
+
{
|
|
73
|
+
className: ["ax-rtag", className].filter(Boolean).join(" "),
|
|
74
|
+
style: { "--ax-rtag-flow": flowDuration },
|
|
75
|
+
...rest,
|
|
76
|
+
children: [
|
|
77
|
+
prefix ? /* @__PURE__ */ jsxs("span", { className: "ax-rtag__prefix", children: [
|
|
78
|
+
prefix,
|
|
79
|
+
breakAfterPrefix ? /* @__PURE__ */ jsx("br", {}) : null
|
|
80
|
+
] }) : null,
|
|
81
|
+
/* @__PURE__ */ jsx("span", { className: verbCls, children: txt }),
|
|
82
|
+
cursor ? /* @__PURE__ */ jsx("i", { className: "ax-rtag__cursor" + (atRest ? " is-blink" : ""), "aria-hidden": "true" }) : null
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
export {
|
|
88
|
+
RotatingTagline
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=RotatingTagline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RotatingTagline.js","sources":["../../../src/components/utilities/RotatingTagline.jsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\n\n// RotatingTagline — the brand's signature animated headline: a fixed prefix\n// followed by a phrase that types in, holds, deletes, and advances to the next.\n// The rotating phrase wears the flowing geek-rainbow gradient; a block cursor\n// trails the text and blinks only while at rest. Used in the auth brand panel\n// and the marketing hero. Respects prefers-reduced-motion (whole-phrase swap,\n// no gradient flow). Font size / weight are inherited from the parent — size it\n// by styling the container, not this component.\nconst AX_RTAG_CSS = `\n.ax-rtag { display: inline; color: var(--text-body); }\n.ax-rtag__prefix { color: var(--text-body); }\n.ax-rtag__verb { color: var(--text-body); }\n.ax-rtag__grad {\n background: linear-gradient(95deg, #F2806B 0%, #E9B24F 18%, #6FB66A 36%, #4DB6AE 54%, #5B8DEF 72%, #9B7BEA 86%, #F2806B 100%);\n background-size: 220% 100%;\n -webkit-background-clip: text; background-clip: text;\n -webkit-text-fill-color: transparent; color: transparent;\n animation: ax-rtag-flow var(--ax-rtag-flow, 1.2s) linear infinite;\n}\n.ax-rtag__cursor {\n display: inline-block; width: 0.5em; height: 0.84em; background: var(--text-body);\n vertical-align: -0.02em; margin-left: 0.04em;\n}\n.ax-rtag__cursor.is-blink { animation: ax-rtag-blink 1.1s steps(1) infinite; }\n@keyframes ax-rtag-flow { to { background-position: 220% 0; } }\n@keyframes ax-rtag-blink { 50% { opacity: 0; } }\n@media (prefers-reduced-motion: reduce) { .ax-rtag__grad { animation: none; } }\n`;\n\nif (typeof document !== \"undefined\" && !document.getElementById(\"ax-rtag-css\")) {\n const s = document.createElement(\"style\");\n s.id = \"ax-rtag-css\";\n s.textContent = AX_RTAG_CSS;\n document.head.appendChild(s);\n}\n\nexport function RotatingTagline({\n prefix = \"聊天,\",\n phrases = [\"构建万物\", \"生成万物\", \"设计万物\", \"学习万物\"],\n gradient = true,\n cursor = true,\n breakAfterPrefix = false,\n typeSpeed = 140,\n deleteSpeed = 70,\n hold = 1700,\n flowDuration = \"1.2s\",\n className = \"\",\n ...rest\n}) {\n const list = phrases && phrases.length ? phrases : [\"\"];\n const reduced =\n typeof window !== \"undefined\" &&\n window.matchMedia &&\n window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n const [wi, setWi] = useState(0);\n const [txt, setTxt] = useState(list[0]);\n const [deleting, setDeleting] = useState(false);\n\n useEffect(() => {\n if (reduced) {\n const t = setTimeout(() => setWi((w) => (w + 1) % list.length), hold + 700);\n return () => clearTimeout(t);\n }\n const word = list[wi % list.length];\n let t;\n if (!deleting && txt === word) {\n t = setTimeout(() => setDeleting(true), hold);\n } else if (deleting && txt === \"\") {\n setDeleting(false);\n setWi((w) => (w + 1) % list.length);\n } else {\n const next = deleting ? word.slice(0, txt.length - 1) : word.slice(0, txt.length + 1);\n t = setTimeout(() => setTxt(next), deleting ? deleteSpeed : typeSpeed);\n }\n return () => clearTimeout(t);\n }, [txt, deleting, wi, reduced, hold, typeSpeed, deleteSpeed]);\n\n useEffect(() => {\n if (reduced) setTxt(list[wi % list.length]);\n }, [wi, reduced]);\n\n const atRest = reduced || (!deleting && txt === list[wi % list.length]);\n const verbCls = [\"ax-rtag__verb\", gradient ? \"ax-rtag__grad\" : \"\"].filter(Boolean).join(\" \");\n\n return (\n <span\n className={[\"ax-rtag\", className].filter(Boolean).join(\" \")}\n style={{ \"--ax-rtag-flow\": flowDuration }}\n {...rest}\n >\n {prefix ? (\n <span className=\"ax-rtag__prefix\">\n {prefix}\n {breakAfterPrefix ? <br /> : null}\n </span>\n ) : null}\n <span className={verbCls}>{txt}</span>\n {cursor ? (\n <i className={\"ax-rtag__cursor\" + (atRest ? \" is-blink\" : \"\")} aria-hidden=\"true\"></i>\n ) : null}\n </span>\n );\n}\n"],"names":["t"],"mappings":";;AASA,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBpB,IAAI,OAAO,aAAa,eAAe,CAAC,SAAS,eAAe,aAAa,GAAG;AAC9E,QAAM,IAAI,SAAS,cAAc,OAAO;AACxC,IAAE,KAAK;AACP,IAAE,cAAc;AAChB,WAAS,KAAK,YAAY,CAAC;AAC7B;AAEO,SAAS,gBAAgB;AAAA,EAC9B,SAAS;AAAA,EACT,UAAU,CAAC,QAAQ,QAAQ,QAAQ,MAAM;AAAA,EACzC,WAAW;AAAA,EACX,SAAS;AAAA,EACT,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,OAAO;AAAA,EACP,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,GAAG;AACL,GAAG;AACD,QAAM,OAAO,WAAW,QAAQ,SAAS,UAAU,CAAC,EAAE;AACtD,QAAM,UACJ,OAAO,WAAW,eAClB,OAAO,cACP,OAAO,WAAW,kCAAkC,EAAE;AACxD,QAAM,CAAC,IAAI,KAAK,IAAI,SAAS,CAAC;AAC9B,QAAM,CAAC,KAAK,MAAM,IAAI,SAAS,KAAK,CAAC,CAAC;AACtC,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,YAAU,MAAM;AACd,QAAI,SAAS;AACX,YAAMA,KAAI,WAAW,MAAM,MAAM,CAAC,OAAO,IAAI,KAAK,KAAK,MAAM,GAAG,OAAO,GAAG;AAC1E,aAAO,MAAM,aAAaA,EAAC;AAAA,IAC7B;AACA,UAAM,OAAO,KAAK,KAAK,KAAK,MAAM;AAClC,QAAI;AACJ,QAAI,CAAC,YAAY,QAAQ,MAAM;AAC7B,UAAI,WAAW,MAAM,YAAY,IAAI,GAAG,IAAI;AAAA,IAC9C,WAAW,YAAY,QAAQ,IAAI;AACjC,kBAAY,KAAK;AACjB,YAAM,CAAC,OAAO,IAAI,KAAK,KAAK,MAAM;AAAA,IACpC,OAAO;AACL,YAAM,OAAO,WAAW,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC;AACpF,UAAI,WAAW,MAAM,OAAO,IAAI,GAAG,WAAW,cAAc,SAAS;AAAA,IACvE;AACA,WAAO,MAAM,aAAa,CAAC;AAAA,EAC7B,GAAG,CAAC,KAAK,UAAU,IAAI,SAAS,MAAM,WAAW,WAAW,CAAC;AAE7D,YAAU,MAAM;AACd,QAAI,QAAS,QAAO,KAAK,KAAK,KAAK,MAAM,CAAC;AAAA,EAC5C,GAAG,CAAC,IAAI,OAAO,CAAC;AAEhB,QAAM,SAAS,WAAY,CAAC,YAAY,QAAQ,KAAK,KAAK,KAAK,MAAM;AACrE,QAAM,UAAU,CAAC,iBAAiB,WAAW,kBAAkB,EAAE,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAE3F,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,CAAC,WAAW,SAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MAC1D,OAAO,EAAE,kBAAkB,aAAA;AAAA,MAC1B,GAAG;AAAA,MAEH,UAAA;AAAA,QAAA,SACC,qBAAC,QAAA,EAAK,WAAU,mBACb,UAAA;AAAA,UAAA;AAAA,UACA,mBAAmB,oBAAC,MAAA,CAAA,CAAG,IAAK;AAAA,QAAA,EAAA,CAC/B,IACE;AAAA,QACJ,oBAAC,QAAA,EAAK,WAAW,SAAU,UAAA,KAAI;AAAA,QAC9B,SACC,oBAAC,KAAA,EAAE,WAAW,qBAAqB,SAAS,cAAc,KAAK,eAAY,OAAA,CAAO,IAChF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,11 @@ export * from "./components/ai/Suggestion";
|
|
|
16
16
|
export * from "./components/ai/Task";
|
|
17
17
|
export * from "./components/ai/ToolCall";
|
|
18
18
|
|
|
19
|
+
// auth
|
|
20
|
+
export * from "./components/auth/AccountControl";
|
|
21
|
+
export * from "./components/auth/AuthDialog";
|
|
22
|
+
export * from "./components/auth/SignInPage";
|
|
23
|
+
|
|
19
24
|
// buttons
|
|
20
25
|
export * from "./components/buttons/Button";
|
|
21
26
|
export * from "./components/buttons/ButtonGroup";
|
|
@@ -24,6 +29,7 @@ export * from "./components/buttons/IconButton";
|
|
|
24
29
|
// chat
|
|
25
30
|
export * from "./components/chat/CodeBlock";
|
|
26
31
|
export * from "./components/chat/Composer";
|
|
32
|
+
export * from "./components/chat/ConversationThread";
|
|
27
33
|
export * from "./components/chat/Message";
|
|
28
34
|
|
|
29
35
|
// code
|
|
@@ -59,6 +65,7 @@ export * from "./components/display/Pagination";
|
|
|
59
65
|
export * from "./components/display/Progress";
|
|
60
66
|
export * from "./components/display/Separator";
|
|
61
67
|
export * from "./components/display/Skeleton";
|
|
68
|
+
export * from "./components/display/StatusPill";
|
|
62
69
|
export * from "./components/display/Table";
|
|
63
70
|
export * from "./components/display/Tabs";
|
|
64
71
|
export * from "./components/display/Typography";
|
|
@@ -82,6 +89,7 @@ export * from "./components/inputs/InputGroup";
|
|
|
82
89
|
export * from "./components/inputs/InputOTP";
|
|
83
90
|
export * from "./components/inputs/Label";
|
|
84
91
|
export * from "./components/inputs/RadioGroup";
|
|
92
|
+
export * from "./components/inputs/SecretField";
|
|
85
93
|
export * from "./components/inputs/Select";
|
|
86
94
|
export * from "./components/inputs/Slider";
|
|
87
95
|
export * from "./components/inputs/Switch";
|
|
@@ -89,9 +97,13 @@ export * from "./components/inputs/Textarea";
|
|
|
89
97
|
export * from "./components/inputs/Toggle";
|
|
90
98
|
|
|
91
99
|
// layout
|
|
100
|
+
export * from "./components/layout/AppShell";
|
|
92
101
|
export * from "./components/layout/AspectRatio";
|
|
102
|
+
export * from "./components/layout/DesignerShell";
|
|
103
|
+
export * from "./components/layout/DocsLayout";
|
|
93
104
|
export * from "./components/layout/Resizable";
|
|
94
105
|
export * from "./components/layout/ScrollArea";
|
|
106
|
+
export * from "./components/layout/SettingsPage";
|
|
95
107
|
export * from "./components/layout/Sidebar";
|
|
96
108
|
|
|
97
109
|
// overlay
|
|
@@ -105,9 +117,20 @@ export * from "./components/overlay/NavigationMenu";
|
|
|
105
117
|
export * from "./components/overlay/Popover";
|
|
106
118
|
export * from "./components/overlay/Sheet";
|
|
107
119
|
|
|
120
|
+
// review
|
|
121
|
+
export * from "./components/review/MarkupLayer";
|
|
122
|
+
|
|
123
|
+
// settings
|
|
124
|
+
export * from "./components/settings/HelpSteps";
|
|
125
|
+
export * from "./components/settings/IntegrationSettings";
|
|
126
|
+
export * from "./components/settings/TestRow";
|
|
127
|
+
|
|
108
128
|
// utilities
|
|
129
|
+
export * from "./components/utilities/BrandMark";
|
|
130
|
+
export * from "./components/utilities/Icon";
|
|
109
131
|
export * from "./components/utilities/Image";
|
|
110
132
|
export * from "./components/utilities/OpenInChat";
|
|
133
|
+
export * from "./components/utilities/RotatingTagline";
|
|
111
134
|
|
|
112
135
|
// voice
|
|
113
136
|
export * from "./components/voice/AudioPlayer";
|
package/dist/index.js
CHANGED
|
@@ -12,11 +12,15 @@ import { Citation, Sources } from "./components/ai/Sources.js";
|
|
|
12
12
|
import { Suggestion, Suggestions } from "./components/ai/Suggestion.js";
|
|
13
13
|
import { Task } from "./components/ai/Task.js";
|
|
14
14
|
import { ToolCall } from "./components/ai/ToolCall.js";
|
|
15
|
+
import { AccountControl } from "./components/auth/AccountControl.js";
|
|
16
|
+
import { AuthDialog } from "./components/auth/AuthDialog.js";
|
|
17
|
+
import { SignInPage } from "./components/auth/SignInPage.js";
|
|
15
18
|
import { Button } from "./components/buttons/Button.js";
|
|
16
19
|
import { ButtonGroup } from "./components/buttons/ButtonGroup.js";
|
|
17
20
|
import { IconButton } from "./components/buttons/IconButton.js";
|
|
18
21
|
import { CodeBlock } from "./components/chat/CodeBlock.js";
|
|
19
22
|
import { Composer } from "./components/chat/Composer.js";
|
|
23
|
+
import { ConversationThread } from "./components/chat/ConversationThread.js";
|
|
20
24
|
import { Message } from "./components/chat/Message.js";
|
|
21
25
|
import { Agent } from "./components/code/Agent.js";
|
|
22
26
|
import { Artifact } from "./components/code/Artifact.js";
|
|
@@ -48,6 +52,7 @@ import { Pagination } from "./components/display/Pagination.js";
|
|
|
48
52
|
import { Progress } from "./components/display/Progress.js";
|
|
49
53
|
import { Separator } from "./components/display/Separator.js";
|
|
50
54
|
import { Skeleton } from "./components/display/Skeleton.js";
|
|
55
|
+
import { StatusPill } from "./components/display/StatusPill.js";
|
|
51
56
|
import { Table } from "./components/display/Table.js";
|
|
52
57
|
import { Tabs } from "./components/display/Tabs.js";
|
|
53
58
|
import { Prose, Text, Typography } from "./components/display/Typography.js";
|
|
@@ -67,14 +72,19 @@ import { InputGroup } from "./components/inputs/InputGroup.js";
|
|
|
67
72
|
import { InputOTP } from "./components/inputs/InputOTP.js";
|
|
68
73
|
import { Label } from "./components/inputs/Label.js";
|
|
69
74
|
import { RadioGroup } from "./components/inputs/RadioGroup.js";
|
|
75
|
+
import { SecretField } from "./components/inputs/SecretField.js";
|
|
70
76
|
import { Select } from "./components/inputs/Select.js";
|
|
71
77
|
import { Slider } from "./components/inputs/Slider.js";
|
|
72
78
|
import { Switch } from "./components/inputs/Switch.js";
|
|
73
79
|
import { Textarea } from "./components/inputs/Textarea.js";
|
|
74
80
|
import { Toggle, ToggleGroup } from "./components/inputs/Toggle.js";
|
|
81
|
+
import { AppShell } from "./components/layout/AppShell.js";
|
|
75
82
|
import { AspectRatio } from "./components/layout/AspectRatio.js";
|
|
83
|
+
import { DesignerShell } from "./components/layout/DesignerShell.js";
|
|
84
|
+
import { DocsLayout } from "./components/layout/DocsLayout.js";
|
|
76
85
|
import { Resizable } from "./components/layout/Resizable.js";
|
|
77
86
|
import { ScrollArea } from "./components/layout/ScrollArea.js";
|
|
87
|
+
import { SettingsPage } from "./components/layout/SettingsPage.js";
|
|
78
88
|
import { Sidebar } from "./components/layout/Sidebar.js";
|
|
79
89
|
import { AlertDialog } from "./components/overlay/AlertDialog.js";
|
|
80
90
|
import { Command } from "./components/overlay/Command.js";
|
|
@@ -85,8 +95,15 @@ import { Menubar } from "./components/overlay/Menubar.js";
|
|
|
85
95
|
import { NavigationMenu } from "./components/overlay/NavigationMenu.js";
|
|
86
96
|
import { Popover } from "./components/overlay/Popover.js";
|
|
87
97
|
import { Sheet } from "./components/overlay/Sheet.js";
|
|
98
|
+
import { MarkupLayer } from "./components/review/MarkupLayer.js";
|
|
99
|
+
import { HelpSteps } from "./components/settings/HelpSteps.js";
|
|
100
|
+
import { IntegrationSettings } from "./components/settings/IntegrationSettings.js";
|
|
101
|
+
import { TestRow } from "./components/settings/TestRow.js";
|
|
102
|
+
import { BrandMark } from "./components/utilities/BrandMark.js";
|
|
103
|
+
import { Icon } from "./components/utilities/Icon.js";
|
|
88
104
|
import { Image } from "./components/utilities/Image.js";
|
|
89
105
|
import { OpenInChat } from "./components/utilities/OpenInChat.js";
|
|
106
|
+
import { RotatingTagline } from "./components/utilities/RotatingTagline.js";
|
|
90
107
|
import { AudioPlayer } from "./components/voice/AudioPlayer.js";
|
|
91
108
|
import { MicSelector } from "./components/voice/MicSelector.js";
|
|
92
109
|
import { Persona } from "./components/voice/Persona.js";
|
|
@@ -96,16 +113,20 @@ import { VoiceSelector } from "./components/voice/VoiceSelector.js";
|
|
|
96
113
|
import { Canvas, Connection, Controls, Edge, Flow, Node, Panel, Toolbar } from "./components/workflow/Flow.js";
|
|
97
114
|
export {
|
|
98
115
|
Accordion,
|
|
116
|
+
AccountControl,
|
|
99
117
|
Agent,
|
|
100
118
|
Alert,
|
|
101
119
|
AlertDialog,
|
|
120
|
+
AppShell,
|
|
102
121
|
Artifact,
|
|
103
122
|
AspectRatio,
|
|
104
123
|
Attachments,
|
|
105
124
|
AudioPlayer,
|
|
125
|
+
AuthDialog,
|
|
106
126
|
Avatar,
|
|
107
127
|
Badge,
|
|
108
128
|
BarChart,
|
|
129
|
+
BrandMark,
|
|
109
130
|
Breadcrumb,
|
|
110
131
|
Button,
|
|
111
132
|
ButtonGroup,
|
|
@@ -129,9 +150,12 @@ export {
|
|
|
129
150
|
ContextMenu,
|
|
130
151
|
Controls,
|
|
131
152
|
Conversation,
|
|
153
|
+
ConversationThread,
|
|
132
154
|
DataTable,
|
|
133
155
|
DatePicker,
|
|
156
|
+
DesignerShell,
|
|
134
157
|
Dialog,
|
|
158
|
+
DocsLayout,
|
|
135
159
|
DropdownMenu,
|
|
136
160
|
Edge,
|
|
137
161
|
Empty,
|
|
@@ -142,17 +166,21 @@ export {
|
|
|
142
166
|
Flow,
|
|
143
167
|
Form,
|
|
144
168
|
FormActions,
|
|
169
|
+
HelpSteps,
|
|
145
170
|
HoverCard,
|
|
171
|
+
Icon,
|
|
146
172
|
IconButton,
|
|
147
173
|
Image,
|
|
148
174
|
Input,
|
|
149
175
|
InputGroup,
|
|
150
176
|
InputOTP,
|
|
177
|
+
IntegrationSettings,
|
|
151
178
|
Item,
|
|
152
179
|
JSXPreview,
|
|
153
180
|
Kbd,
|
|
154
181
|
Label,
|
|
155
182
|
LineChart,
|
|
183
|
+
MarkupLayer,
|
|
156
184
|
Menubar,
|
|
157
185
|
Message,
|
|
158
186
|
MicSelector,
|
|
@@ -172,14 +200,18 @@ export {
|
|
|
172
200
|
RadioGroup,
|
|
173
201
|
Reasoning,
|
|
174
202
|
Resizable,
|
|
203
|
+
RotatingTagline,
|
|
175
204
|
Sandbox,
|
|
176
205
|
SchemaDisplay,
|
|
177
206
|
ScrollArea,
|
|
207
|
+
SecretField,
|
|
178
208
|
Select,
|
|
179
209
|
Separator,
|
|
210
|
+
SettingsPage,
|
|
180
211
|
Sheet,
|
|
181
212
|
Shimmer,
|
|
182
213
|
Sidebar,
|
|
214
|
+
SignInPage,
|
|
183
215
|
Skeleton,
|
|
184
216
|
Slider,
|
|
185
217
|
Snippet,
|
|
@@ -187,6 +219,7 @@ export {
|
|
|
187
219
|
SpeechInput,
|
|
188
220
|
Spinner,
|
|
189
221
|
StackTrace,
|
|
222
|
+
StatusPill,
|
|
190
223
|
Suggestion,
|
|
191
224
|
Suggestions,
|
|
192
225
|
Switch,
|
|
@@ -195,6 +228,7 @@ export {
|
|
|
195
228
|
Task,
|
|
196
229
|
Terminal,
|
|
197
230
|
TestResults,
|
|
231
|
+
TestRow,
|
|
198
232
|
Text,
|
|
199
233
|
Textarea,
|
|
200
234
|
Toast,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/styles.css
CHANGED
|
@@ -9,33 +9,33 @@
|
|
|
9
9
|
/* src/tokens/colors.css */
|
|
10
10
|
/* ============================================================
|
|
11
11
|
Agentaily — color system
|
|
12
|
-
Monochrome-first.
|
|
13
|
-
|
|
12
|
+
Monochrome-first. Light is the default theme (:root);
|
|
13
|
+
dark theme is scoped under [data-theme="dark"].
|
|
14
14
|
The "accent" is the inverted foreground — no hue, all contrast.
|
|
15
15
|
============================================================ */
|
|
16
16
|
:root {
|
|
17
|
-
/* ---- base scale:
|
|
18
|
-
--bg-0: #
|
|
19
|
-
--bg-1: #
|
|
20
|
-
--bg-2: #
|
|
21
|
-
--bg-3: #
|
|
22
|
-
--bg-overlay: rgba(
|
|
23
|
-
--fg-1: #
|
|
24
|
-
--fg-2: #
|
|
25
|
-
--fg-3: #
|
|
26
|
-
--line-1: rgba(
|
|
27
|
-
--line-2: rgba(
|
|
17
|
+
/* ---- base scale: paper (light theme) ---- */
|
|
18
|
+
--bg-0: #ffffff; /* page canvas */
|
|
19
|
+
--bg-1: #fafafa; /* raised panels, sidebar */
|
|
20
|
+
--bg-2: #f4f4f5; /* cards, composer */
|
|
21
|
+
--bg-3: #e9e9eb; /* hover fills, code blocks */
|
|
22
|
+
--bg-overlay: rgba(250, 250, 250, 0.72);
|
|
23
|
+
--fg-1: #111113; /* primary text */
|
|
24
|
+
--fg-2: #5d5d66; /* secondary text */
|
|
25
|
+
--fg-3: #9c9ca3; /* faint text, placeholders */
|
|
26
|
+
--line-1: rgba(17, 17, 19, 0.09); /* hairline borders */
|
|
27
|
+
--line-2: rgba(17, 17, 19, 0.16); /* strong borders */
|
|
28
28
|
/* ---- accent: pure mono inversion ---- */
|
|
29
|
-
--accent: #
|
|
30
|
-
--accent-fg: #
|
|
31
|
-
--accent-hover: #
|
|
29
|
+
--accent: #111113; /* filled buttons, active states */
|
|
30
|
+
--accent-fg: #fafafa; /* text on accent */
|
|
31
|
+
--accent-hover: #2a2a2e;
|
|
32
32
|
/* ---- semantic (kept desaturated, used sparingly) ---- */
|
|
33
|
-
--ok: #
|
|
34
|
-
--warn: #
|
|
35
|
-
--danger: #
|
|
36
|
-
--ok-dim: rgba(
|
|
37
|
-
--warn-dim: rgba(
|
|
38
|
-
--danger-dim: rgba(
|
|
33
|
+
--ok: #1c9e68;
|
|
34
|
+
--warn: #b07d14;
|
|
35
|
+
--danger: #d33338;
|
|
36
|
+
--ok-dim: rgba(28, 158, 104, 0.1);
|
|
37
|
+
--warn-dim: rgba(176, 125, 20, 0.12);
|
|
38
|
+
--danger-dim: rgba(211, 51, 56, 0.08);
|
|
39
39
|
/* ---- semantic aliases ---- */
|
|
40
40
|
--surface-page: var(--bg-0);
|
|
41
41
|
--surface-panel: var(--bg-1);
|
|
@@ -46,37 +46,37 @@
|
|
|
46
46
|
--text-faint: var(--fg-3);
|
|
47
47
|
--border-default: var(--line-1);
|
|
48
48
|
--border-strong: var(--line-2);
|
|
49
|
-
--focus-ring: rgba(250, 250, 250, 0.55);
|
|
50
|
-
--focus-soft: rgba(250, 250, 250, 0.13); /* @kind other */ /* glow ring on field focus */
|
|
51
|
-
/* dot-grid motif background */
|
|
52
|
-
--dot-grid: radial-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px); /* @kind other */
|
|
53
|
-
color-scheme: dark;
|
|
54
|
-
}
|
|
55
|
-
[data-theme="light"] {
|
|
56
|
-
--bg-0: #FFFFFF;
|
|
57
|
-
--bg-1: #FAFAFA;
|
|
58
|
-
--bg-2: #F4F4F5;
|
|
59
|
-
--bg-3: #E9E9EB;
|
|
60
|
-
--bg-overlay: rgba(250, 250, 250, 0.72);
|
|
61
|
-
--fg-1: #111113;
|
|
62
|
-
--fg-2: #5D5D66;
|
|
63
|
-
--fg-3: #9C9CA3;
|
|
64
|
-
--line-1: rgba(17, 17, 19, 0.09);
|
|
65
|
-
--line-2: rgba(17, 17, 19, 0.16);
|
|
66
|
-
--accent: #111113;
|
|
67
|
-
--accent-fg: #FAFAFA;
|
|
68
|
-
--accent-hover: #2A2A2E;
|
|
69
|
-
--ok: #1C9E68;
|
|
70
|
-
--warn: #B07D14;
|
|
71
|
-
--danger: #D33338;
|
|
72
|
-
--ok-dim: rgba(28, 158, 104, 0.1);
|
|
73
|
-
--warn-dim: rgba(176, 125, 20, 0.12);
|
|
74
|
-
--danger-dim: rgba(211, 51, 56, 0.08);
|
|
75
49
|
--focus-ring: rgba(17, 17, 19, 0.45);
|
|
76
|
-
--focus-soft: rgba(17, 17, 19, 0.
|
|
50
|
+
--focus-soft: rgba(17, 17, 19, 0.1); /* @kind other */ /* glow ring on field focus */
|
|
51
|
+
/* dot-grid motif background */
|
|
77
52
|
--dot-grid: radial-gradient(rgba(17, 17, 19, 0.1) 1px, transparent 1px); /* @kind other */
|
|
78
53
|
color-scheme: light;
|
|
79
54
|
}
|
|
55
|
+
[data-theme="dark"] {
|
|
56
|
+
--bg-0: #0a0a0b;
|
|
57
|
+
--bg-1: #111113;
|
|
58
|
+
--bg-2: #18181b;
|
|
59
|
+
--bg-3: #212124;
|
|
60
|
+
--bg-overlay: rgba(10, 10, 11, 0.72);
|
|
61
|
+
--fg-1: #f4f4f5;
|
|
62
|
+
--fg-2: #a1a1aa;
|
|
63
|
+
--fg-3: #63636b;
|
|
64
|
+
--line-1: rgba(255, 255, 255, 0.08);
|
|
65
|
+
--line-2: rgba(255, 255, 255, 0.14);
|
|
66
|
+
--accent: #fafafa;
|
|
67
|
+
--accent-fg: #0a0a0b;
|
|
68
|
+
--accent-hover: #e4e4e7;
|
|
69
|
+
--ok: #3ecf8e;
|
|
70
|
+
--warn: #e8b339;
|
|
71
|
+
--danger: #e5484d;
|
|
72
|
+
--ok-dim: rgba(62, 207, 142, 0.12);
|
|
73
|
+
--warn-dim: rgba(232, 179, 57, 0.12);
|
|
74
|
+
--danger-dim: rgba(229, 72, 77, 0.12);
|
|
75
|
+
--focus-ring: rgba(250, 250, 250, 0.55);
|
|
76
|
+
--focus-soft: rgba(250, 250, 250, 0.13); /* @kind other */
|
|
77
|
+
--dot-grid: radial-gradient(rgba(255, 255, 255, 0.07) 1px, transparent 1px); /* @kind other */
|
|
78
|
+
color-scheme: dark;
|
|
79
|
+
}
|
|
80
80
|
/* src/tokens/typography.css */
|
|
81
81
|
/* ============================================================
|
|
82
82
|
Agentaily — typography
|
|
@@ -131,7 +131,9 @@
|
|
|
131
131
|
/* layout */
|
|
132
132
|
--container-max: 1120px;
|
|
133
133
|
--sidebar-w: 272px;
|
|
134
|
-
--thread-max: 760px;
|
|
134
|
+
--thread-max: 760px; /* chat reading column */
|
|
135
|
+
--topbar-h: 52px; /* app top bar (brand / crumb / actions) */
|
|
136
|
+
--bar-h: 48px; /* pane sub-bar (chat header, preview header, toolbars) — keep panes aligned */
|
|
135
137
|
}
|
|
136
138
|
/* src/tokens/effects.css */
|
|
137
139
|
/* ============================================================
|
|
@@ -141,28 +143,29 @@
|
|
|
141
143
|
============================================================ */
|
|
142
144
|
:root {
|
|
143
145
|
/* radii — kept deliberately small */
|
|
144
|
-
--radius-1: 2px;
|
|
145
|
-
--radius-2: 4px;
|
|
146
|
-
--radius-3: 8px;
|
|
146
|
+
--radius-1: 2px; /* chips, kbd, code tags */
|
|
147
|
+
--radius-2: 4px; /* buttons, inputs */
|
|
148
|
+
--radius-3: 8px; /* cards, message bubbles, dialogs */
|
|
147
149
|
--radius-full: 999px;
|
|
148
|
-
/* shadows —
|
|
149
|
-
--shadow-1: 0 1px 2px rgba(
|
|
150
|
-
--shadow-2: 0 4px 16px rgba(
|
|
151
|
-
--shadow-3: 0 16px 48px rgba(
|
|
150
|
+
/* shadows — light theme uses soft ambient shadows */
|
|
151
|
+
--shadow-1: 0 1px 2px rgba(17, 17, 19, 0.06);
|
|
152
|
+
--shadow-2: 0 4px 16px rgba(17, 17, 19, 0.08);
|
|
153
|
+
--shadow-3: 0 16px 48px rgba(17, 17, 19, 0.14);
|
|
152
154
|
/* motion */
|
|
153
155
|
--ease-out: cubic-bezier(0.2, 0, 0, 1); /* @kind other */
|
|
154
|
-
--dur-1: 120ms; /* @kind other */
|
|
155
|
-
--dur-2: 200ms; /* @kind other */
|
|
156
|
-
--dur-3: 320ms; /* @kind other */
|
|
156
|
+
--dur-1: 120ms; /* @kind other */ /* hovers, presses */
|
|
157
|
+
--dur-2: 200ms; /* @kind other */ /* reveals, toggles */
|
|
158
|
+
--dur-3: 320ms; /* @kind other */ /* dialogs, page-level */
|
|
157
159
|
/* focus */
|
|
158
160
|
--ring: 0 0 0 2px var(--surface-page), 0 0 0 4px var(--focus-ring);
|
|
159
161
|
/* blur */
|
|
160
162
|
--blur-overlay: 12px;
|
|
161
163
|
}
|
|
162
|
-
[data-theme="
|
|
163
|
-
|
|
164
|
-
--shadow-
|
|
165
|
-
--shadow-
|
|
164
|
+
[data-theme="dark"] {
|
|
165
|
+
/* dark theme leans on borders, not shadows */
|
|
166
|
+
--shadow-1: 0 1px 2px rgba(0, 0, 0, 0.25);
|
|
167
|
+
--shadow-2: 0 4px 16px rgba(0, 0, 0, 0.35);
|
|
168
|
+
--shadow-3: 0 16px 48px rgba(0, 0, 0, 0.5);
|
|
166
169
|
}
|
|
167
170
|
/* src/tokens/base.css */
|
|
168
171
|
/* ============================================================
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentaily/design-system",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Agentaily design system —
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Agentaily design system — light-first monochrome React component library (113 components) + Storybook.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"author": "Agentaily",
|