@rubrion/agent-kit-react 0.0.0-stage → 0.1.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.
@@ -0,0 +1,60 @@
1
+ /* agent-kit: the few styles Tailwind utilities can't express (markdown, mascot,
2
+ motion). Colors come from the shadcn/ui tokens (--primary, --muted, --border…). */
3
+
4
+ @keyframes ak-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
5
+ .ak-rise { animation: ak-rise 0.32s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
6
+
7
+ /* The corner button jumping for attention: falls fast, rises slow, so the top of the arc hangs. */
8
+ @keyframes ak-jump {
9
+ 0%, 100% { transform: translateY(-22%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); }
10
+ 50% { transform: translateY(0); animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }
11
+ }
12
+ .ak-jump { animation: ak-jump 1.8s infinite; }
13
+
14
+ /* Mascot */
15
+ .ak-mascot { display: block; flex: 0 0 auto; overflow: visible; color: var(--primary, #555); }
16
+ .ak-mascot__edge { stroke: color-mix(in oklab, var(--foreground, #222) 70%, transparent); }
17
+ .ak-mascot__ring { stroke: currentColor; transform-box: view-box; transform-origin: 32px 32px; }
18
+ .ak-mascot__ring--1 { opacity: 0.85; }
19
+ .ak-mascot__ring--2 { opacity: 0.6; }
20
+ .ak-mascot__ring--3 { opacity: 0.45; }
21
+ .ak-mascot__core { fill: currentColor; transform-box: view-box; transform-origin: 32.5px 32.5px; }
22
+
23
+ @keyframes ak-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.035); } }
24
+ .ak-mascot--idle .ak-mascot__ring--3 { animation: ak-breathe 4.2s ease-in-out infinite; }
25
+
26
+ @keyframes ak-pulse { 0%, 70%, 100% { opacity: 0.25; } 35% { opacity: 1; } }
27
+ .ak-mascot--thinking .ak-mascot__ring { animation: ak-pulse 1.2s ease-in-out infinite; }
28
+ .ak-mascot--thinking .ak-mascot__ring--2 { animation-delay: 0.16s; }
29
+ .ak-mascot--thinking .ak-mascot__ring--3 { animation-delay: 0.32s; }
30
+
31
+ @keyframes ak-turn { to { transform: rotate(360deg); } }
32
+ .ak-mascot--tool .ak-mascot__ring--3 { animation: ak-turn 1.4s linear infinite; opacity: 0.9; }
33
+
34
+ @keyframes ak-beat { 0%, 100% { transform: scale(1); } 40% { transform: scale(1.5); } }
35
+ .ak-mascot--speaking .ak-mascot__core { animation: ak-beat 0.48s ease-in-out infinite; }
36
+
37
+ @media (prefers-reduced-motion: reduce) {
38
+ .ak-rise, .ak-jump, .ak-mascot__ring, .ak-mascot__core { animation: none !important; }
39
+ }
40
+
41
+ /* Markdown answers */
42
+ .ak-md { font-size: 0.875rem; line-height: 1.6; overflow-wrap: anywhere; }
43
+ .ak-md > * + * { margin-top: 0.6em; }
44
+ .ak-md h1, .ak-md h2, .ak-md h3 { font-weight: 600; line-height: 1.3; margin-top: 1em; }
45
+ .ak-md h1 { font-size: 1.15em; } .ak-md h2 { font-size: 1.07em; } .ak-md h3 { font-size: 1em; }
46
+ .ak-md ul, .ak-md ol { padding-left: 1.3em; }
47
+ .ak-md ul { list-style: disc; } .ak-md ol { list-style: decimal; }
48
+ .ak-md li + li { margin-top: 0.2em; }
49
+ .ak-md a { color: var(--primary); text-decoration: underline; text-underline-offset: 2px; }
50
+ .ak-md strong { font-weight: 600; }
51
+ .ak-md code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.85em; background: var(--muted); border-radius: 4px; padding: 0.1em 0.35em; }
52
+ .ak-md pre { position: relative; background: var(--muted); border-radius: 8px; padding: 0.75em; overflow-x: auto; }
53
+ .ak-md pre code { background: none; padding: 0; }
54
+ .ak-md blockquote { border-left: 3px solid var(--border); padding-left: 0.8em; color: var(--muted-foreground); }
55
+ .ak-md table { width: 100%; border-collapse: collapse; font-size: 0.95em; display: block; overflow-x: auto; }
56
+ .ak-md th, .ak-md td { border: 1px solid var(--border); padding: 0.3em 0.55em; text-align: left; }
57
+ .ak-md th { background: var(--muted); font-weight: 600; }
58
+ .ak-md hr { border: 0; border-top: 1px solid var(--border); }
59
+ .ak-copy { position: absolute; top: 0.4em; right: 0.4em; font-size: 11px; padding: 0.1em 0.5em; border-radius: 4px; border: 1px solid var(--border); background: var(--card); color: var(--muted-foreground); opacity: 0; transition: opacity 0.15s; }
60
+ .ak-md pre:hover .ak-copy, .ak-copy:focus-visible { opacity: 1; }
package/package.json CHANGED
@@ -1,6 +1,53 @@
1
1
  {
2
2
  "name": "@rubrion/agent-kit-react",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "React chat UI for the agent kit: floating chat box, full assistant screen, streamed steps (thinking, tool calls, text).",
5
+ "license": "MIT",
6
+ "author": "Rubrion",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ },
15
+ "./styles.css": "./dist/styles.css"
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "README.md"
20
+ ],
21
+ "sideEffects": [
22
+ "*.css"
23
+ ],
24
+ "scripts": {
25
+ "build": "rm -rf dist && tsc -p tsconfig.json && cp src/styles.css dist/styles.css",
26
+ "test": "vitest run",
27
+ "prepublishOnly": "npm run build"
28
+ },
29
+ "dependencies": {
30
+ "dompurify": "^3.4.17",
31
+ "marked": "^18.1.2"
32
+ },
33
+ "peerDependencies": {
34
+ "lucide-react": ">=0.400.0",
35
+ "react": ">=18",
36
+ "react-dom": ">=18"
37
+ },
38
+ "devDependencies": {
39
+ "@types/react": "^19.1.0",
40
+ "@types/react-dom": "^19.1.0",
41
+ "lucide-react": "^1.65.0",
42
+ "react": "^19.3.1",
43
+ "react-dom": "^19.3.1",
44
+ "typescript": "^5.9.3",
45
+ "vitest": "^5.0.5"
46
+ },
47
+ "publishConfig": {
48
+ "access": "public"
49
+ },
50
+ "engines": {
51
+ "node": ">=20"
52
+ }
53
+ }
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.