@actioneer/ads 0.3.1 → 0.5.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/lib/icons.js CHANGED
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import { jsx as r } from "react/jsx-runtime";
3
3
  import { HugeiconsIcon as s } from "@hugeicons/react";
4
- import { Tick02Icon as a, Copy01Icon as i, File02Icon as I, Cancel01Icon as l, Upload01Icon as h, ViewOffIcon as C, ViewIcon as g, MinusSignIcon as p, PlusSignIcon as f, ArrowDown01Icon as d, Search01Icon as u, InformationCircleIcon as k, AlertCircleIcon as w, Alert02Icon as A, CheckmarkCircle02Icon as L, ArrowLeft01Icon as m, ArrowRight01Icon as S, DatabaseIcon as M, Maximize01Icon as O, Magnet01Icon as P, ArrowUp01Icon as T, ArrowUpDownIcon as U, InboxIcon as B, ArrowLeft02Icon as D, MoreHorizontalIcon as y, RefreshIcon as F, CancelCircleIcon as R, Attachment01Icon as b, SparklesIcon as x, Clock01Icon as H, QuoteDownIcon as v, BrainIcon as G, Loading03Icon as V, AtIcon as z, BoltIcon as E, Table01Icon as W, File01Icon as N, Download01Icon as Q, Image01Icon as j, BracesIcon as q, MusicNote01Icon as J, Video01Icon as K, ImageNotFound01Icon as X, Activity01Icon as Y, AiChat02Icon as Z, ArrowDown02Icon as _, ArrowRight02Icon as $, ArrowUp02Icon as oo, Route01Icon as no, BlocksIcon as co, BookOpen01Icon as eo, Calendar01Icon as to, Call02Icon as ro, CheckListIcon as so, CircleDashedIcon as ao, CodeIcon as io, ComponentIcon as Io, LinkSquare02Icon as lo, Folder01Icon as ho, FolderOpenIcon as Co, DashboardSpeed01Icon as go, GitBranchIcon as po, HashtagIcon as fo, HistoryIcon as uo, Home01Icon as ko, ImageUploadIcon as wo, GridViewIcon as Ao, Leaf01Icon as Lo, Idea01Icon as mo, Link01Icon as So, Logout01Icon as Mo, Mail01Icon as Oo, Mic01Icon as Po, MicOff01Icon as To, MoreVerticalIcon as Uo, PaintBoardIcon as Bo, SidebarLeftIcon as Do, PencilEdit02Icon as yo, PhoneOff01Icon as Fo, PieChartIcon as Ro, PlugSocketIcon as bo, RocketIcon as xo, Settings01Icon as Ho, ShapesIcon as vo, Share01Icon as Go, StarIcon as Vo, StopIcon as zo, Target01Icon as Eo, Telescope01Icon as Wo, TextFontIcon as No, ToggleOnIcon as Qo, Delete02Icon as jo, UserIcon as qo, UserGroupIcon as Jo, Wrench01Icon as Ko, ArrowUpRight01Icon as Xo } from "@hugeicons/core-free-icons";
4
+ import { Tick02Icon as a, Copy01Icon as i, File02Icon as I, Cancel01Icon as l, Upload01Icon as h, ViewOffIcon as C, ViewIcon as g, MinusSignIcon as p, PlusSignIcon as f, ArrowDown01Icon as d, Search01Icon as u, InformationCircleIcon as k, AlertCircleIcon as w, Alert02Icon as A, CheckmarkCircle02Icon as L, ArrowLeft01Icon as m, ArrowRight01Icon as S, DatabaseIcon as M, Maximize01Icon as O, Magnet01Icon as P, ArrowUp01Icon as T, ArrowUpDownIcon as U, InboxIcon as B, ArrowLeft02Icon as D, MoreHorizontalIcon as y, SparklesIcon as F, Wrench01Icon as R, CancelCircleIcon as b, Clock01Icon as x, CircleDashedIcon as H, RefreshIcon as v, Attachment01Icon as G, QuoteDownIcon as V, BrainIcon as z, Loading03Icon as E, AtIcon as W, BoltIcon as N, Table01Icon as Q, File01Icon as j, Download01Icon as q, Image01Icon as J, BracesIcon as K, MusicNote01Icon as X, Video01Icon as Y, ImageNotFound01Icon as Z, Activity01Icon as _, AiChat02Icon as $, ArrowDown02Icon as oo, ArrowRight02Icon as no, ArrowUp02Icon as co, Route01Icon as eo, BlocksIcon as to, BookOpen01Icon as ro, Calendar01Icon as so, Call02Icon as ao, CheckListIcon as io, CodeIcon as Io, ComponentIcon as lo, LinkSquare02Icon as ho, Folder01Icon as Co, FolderOpenIcon as go, DashboardSpeed01Icon as po, GitBranchIcon as fo, HashtagIcon as uo, HistoryIcon as ko, Home01Icon as wo, ImageUploadIcon as Ao, GridViewIcon as Lo, Leaf01Icon as mo, Idea01Icon as So, Link01Icon as Mo, Logout01Icon as Oo, Mail01Icon as Po, Mic01Icon as To, MicOff01Icon as Uo, MoreVerticalIcon as Bo, PaintBoardIcon as Do, SidebarLeftIcon as yo, PencilEdit02Icon as Fo, PhoneOff01Icon as Ro, PieChartIcon as bo, PlugSocketIcon as xo, RocketIcon as Ho, Settings01Icon as vo, ShapesIcon as Go, Share01Icon as Vo, StarIcon as zo, StopIcon as Eo, Target01Icon as Wo, Telescope01Icon as No, TextFontIcon as Qo, ToggleOnIcon as jo, Delete02Icon as qo, UserIcon as Jo, UserGroupIcon as Ko, ArrowUpRight01Icon as Xo } from "@hugeicons/core-free-icons";
5
5
  function o(c, e) {
6
6
  function n(t) {
7
7
  return /* @__PURE__ */ r(s, { icon: c, size: "1em", ...t });
8
8
  }
9
9
  return n.displayName = e, n;
10
10
  }
11
- const $o = o(_, "ArrowDown"), on = o(D, "ArrowLeft"), nn = o($, "ArrowRight"), cn = o(oo, "ArrowUp"), en = o(Xo, "ArrowUpRight"), tn = o(d, "ChevronDown"), rn = o(m, "ChevronLeft"), sn = o(S, "ChevronRight"), an = o(T, "ChevronUp"), In = o(U, "SortIcon"), ln = o(lo, "ExternalLink"), hn = o(Do, "PanelLeft"), Cn = o(z, "At"), gn = o(ro, "Call"), pn = o(l, "Close"), fn = o(R, "CloseCircle"), dn = o(i, "Copy"), un = o(Q, "Download"), kn = o(Mo, "LogOut"), wn = o(Po, "Mic"), An = o(To, "MicOff"), Ln = o(Fo, "PhoneOff"), mn = o(yo, "Pencil"), Sn = o(v, "Quote"), Mn = o(g, "Eye"), On = o(C, "EyeOff"), Pn = o(fo, "Hash"), Tn = o(wo, "ImageUpload"), Un = o(h, "Upload"), Bn = o(No, "TextFont"), Dn = o(Qo, "ToggleOn"), yn = o(to, "Calendar"), Fn = o(H, "Clock"), Rn = o(io, "Code"), bn = o(zo, "Stop"), xn = o(P, "Magnet"), Hn = o(O, "Maximize"), vn = o(p, "Minus"), Gn = o(y, "MoreHorizontal"), Vn = o(Uo, "MoreVertical"), zn = o(So, "Link"), En = o(f, "Plus"), Wn = o(F, "Refresh"), Nn = o(no, "AuditTrail"), Qn = o(u, "Search"), jn = o(Go, "Share"), qn = o(jo, "Trash"), Jn = o(a, "Check"), Kn = o(V, "Loader"), Xn = o(L, "CheckCircle"), Yn = o(k, "Info"), Zn = o(A, "Warning"), _n = o(w, "WarningCircle"), $n = o(Y, "Activity"), oc = o(Z, "AgentChat"), nc = o(E, "Bolt"), cc = o(eo, "BookOpen"), ec = o(G, "Brain"), tc = o(so, "CheckList"), rc = o(Io, "Component"), sc = o(M, "Database"), ac = o(W, "Table"), ic = o(N, "File"), Ic = o(I, "FileText"), lc = o(ho, "Folder"), hc = o(j, "Image"), Cc = o(X, "ImageOff"), gc = o(J, "Music"), pc = o(K, "Video"), fc = o(q, "Braces"), dc = o(Co, "FolderOpen"), uc = o(go, "Gauge"), kc = o(po, "GitBranch"), wc = o(uo, "HistoryClock"), Ac = o(ko, "Home"), Lc = o(co, "Blocks"), mc = o(B, "Inbox"), Sc = o(mo, "Lightbulb"), Mc = o(Lo, "Leaf"), Oc = o(Ao, "LayoutGrid"), Pc = o(Oo, "Mail"), Tc = o(Bo, "Palette"), Uc = o(Ro, "PieChart"), Bc = o(bo, "Plug"), Dc = o(xo, "Rocket"), yc = o(Ho, "Settings"), Fc = o(vo, "Shapes"), Rc = o(x, "Sparkles"), bc = o(Vo, "Star"), xc = o(Wo, "Telescope"), Hc = o(Eo, "Target"), vc = o(qo, "User"), Gc = o(Jo, "Users"), Vc = o(b, "Paperclip"), zc = o(ao, "CircleDashed"), Ec = o(Ko, "Wrench");
11
+ const $o = o(oo, "ArrowDown"), on = o(D, "ArrowLeft"), nn = o(no, "ArrowRight"), cn = o(co, "ArrowUp"), en = o(Xo, "ArrowUpRight"), tn = o(d, "ChevronDown"), rn = o(m, "ChevronLeft"), sn = o(S, "ChevronRight"), an = o(T, "ChevronUp"), In = o(U, "SortIcon"), ln = o(ho, "ExternalLink"), hn = o(yo, "PanelLeft"), Cn = o(W, "At"), gn = o(ao, "Call"), pn = o(l, "Close"), fn = o(b, "CloseCircle"), dn = o(i, "Copy"), un = o(q, "Download"), kn = o(Oo, "LogOut"), wn = o(To, "Mic"), An = o(Uo, "MicOff"), Ln = o(Ro, "PhoneOff"), mn = o(Fo, "Pencil"), Sn = o(V, "Quote"), Mn = o(g, "Eye"), On = o(C, "EyeOff"), Pn = o(uo, "Hash"), Tn = o(Ao, "ImageUpload"), Un = o(h, "Upload"), Bn = o(Qo, "TextFont"), Dn = o(jo, "ToggleOn"), yn = o(so, "Calendar"), Fn = o(x, "Clock"), Rn = o(Io, "Code"), bn = o(Eo, "Stop"), xn = o(P, "Magnet"), Hn = o(O, "Maximize"), vn = o(p, "Minus"), Gn = o(y, "MoreHorizontal"), Vn = o(Bo, "MoreVertical"), zn = o(Mo, "Link"), En = o(f, "Plus"), Wn = o(v, "Refresh"), Nn = o(eo, "AuditTrail"), Qn = o(u, "Search"), jn = o(Vo, "Share"), qn = o(qo, "Trash"), Jn = o(a, "Check"), Kn = o(E, "Loader"), Xn = o(L, "CheckCircle"), Yn = o(k, "Info"), Zn = o(A, "Warning"), _n = o(w, "WarningCircle"), $n = o(_, "Activity"), oc = o($, "AgentChat"), nc = o(N, "Bolt"), cc = o(ro, "BookOpen"), ec = o(z, "Brain"), tc = o(io, "CheckList"), rc = o(lo, "Component"), sc = o(M, "Database"), ac = o(Q, "Table"), ic = o(j, "File"), Ic = o(I, "FileText"), lc = o(Co, "Folder"), hc = o(J, "Image"), Cc = o(Z, "ImageOff"), gc = o(X, "Music"), pc = o(Y, "Video"), fc = o(K, "Braces"), dc = o(go, "FolderOpen"), uc = o(po, "Gauge"), kc = o(fo, "GitBranch"), wc = o(ko, "HistoryClock"), Ac = o(wo, "Home"), Lc = o(to, "Blocks"), mc = o(B, "Inbox"), Sc = o(So, "Lightbulb"), Mc = o(mo, "Leaf"), Oc = o(Lo, "LayoutGrid"), Pc = o(Po, "Mail"), Tc = o(Do, "Palette"), Uc = o(bo, "PieChart"), Bc = o(xo, "Plug"), Dc = o(Ho, "Rocket"), yc = o(vo, "Settings"), Fc = o(Go, "Shapes"), Rc = o(F, "Sparkles"), bc = o(zo, "Star"), xc = o(No, "Telescope"), Hc = o(Wo, "Target"), vc = o(Jo, "User"), Gc = o(Ko, "Users"), Vc = o(G, "Paperclip"), zc = o(H, "CircleDashed"), Ec = o(R, "Wrench");
12
12
  export {
13
13
  $n as Activity,
14
14
  oc as AgentChat,
package/llms.txt CHANGED
@@ -27,9 +27,9 @@ Reference semantic roles, never raw color/dimension literals (ads-lint rejects l
27
27
  - `muted-foreground`
28
28
  - `card`
29
29
  - `card-foreground`
30
- - `brand` — Brand (black) — used for solid fills, not body text
31
- - `brand-foreground` — Brand (black) — used for solid fills, not body text
32
- - `brand-hover` — Brand (black) — used for solid fills, not body text
30
+ - `brand` — Brand (Sage green) — used for solid fills / primary actions, not body text
31
+ - `brand-foreground` — Brand (Sage green) — used for solid fills / primary actions, not body text
32
+ - `brand-hover` — Brand (Sage green) — used for solid fills / primary actions, not body text
33
33
  - `fill` — Quiet fill — secondary buttons, avatars, chips
34
34
  - `fill-foreground` — Quiet fill — secondary buttons, avatars, chips
35
35
  - `accent`
@@ -252,7 +252,7 @@ When tabs and a search field control the same content, they share one responsive
252
252
  ### Overlays
253
253
 
254
254
  - [CommandPalette] — component [docs](https://ads.actioneer.dev/#/command-palette)
255
- - [Drawer] — Use the portaled Drawer for a focused, blocking task (form, details, settings) that slides in over the page with a backdrop and focus trap; use InlineDrawer instead for a contextual panel that must stay in-flow beside content the user still needs. (variants: side: right|left|bottom; size: sm|md|lg|xl) [docs](https://ads.actioneer.dev/#/drawer)
255
+ - [Drawer] — Use the portaled Drawer for a focused, blocking task (form, details, settings) that slides in over the page with a backdrop and focus trap; use InlineDrawer instead for a contextual panel that must stay in-flow beside content the user still needs. The inline Drawer is a flat white panel (bg-card, no shadow, no border) that reads ONLY by fill contrast, so it MUST sit as a sibling of its content inside a bg-surface flex row — on a white (bg-background) parent it is invisible. If it doesn't read, tint the ground; never add a border or shadow to force it. (variants: side: right|left|bottom; size: sm|md|lg|xl) [docs](https://ads.actioneer.dev/#/drawer)
256
256
  - [DrawerBody] — component (variants: side: right|left|bottom; size: sm|md|lg|xl) [docs](https://ads.actioneer.dev/#/drawer)
257
257
  - [DrawerFooter] — component (variants: side: right|left|bottom; size: sm|md|lg|xl) [docs](https://ads.actioneer.dev/#/drawer)
258
258
  - [DrawerHeader] — component (variants: side: right|left|bottom; size: sm|md|lg|xl) [docs](https://ads.actioneer.dev/#/drawer)
@@ -476,6 +476,10 @@ When tabs and a search field control the same content, they share one responsive
476
476
  - [BrandMark] — component [docs](https://ads.actioneer.dev/#/brand-loader)
477
477
  - [BrandTexture] — Place the ambient halftone wash behind a welcome or hero surface inside a relative container; set lifted when real content takes over so the field dissolves upward, and paused a beat later to stop the shader clock. [docs](https://ads.actioneer.dev/#/brand-texture)
478
478
  - [BrandTextureField] — component [docs](https://ads.actioneer.dev/#/brand-texture)
479
+ - [EmptyConnections] — component [docs](https://ads.actioneer.dev/#/empty-state)
480
+ - [EmptyDocuments] — component [docs](https://ads.actioneer.dev/#/empty-state)
481
+ - [EmptyInsights] — component [docs](https://ads.actioneer.dev/#/empty-state)
482
+ - [EmptySearch] — component [docs](https://ads.actioneer.dev/#/empty-state)
479
483
  - [EmptyState] — Use as the centered placeholder inside a list, table, or panel that currently has nothing to show. [docs](https://ads.actioneer.dev/#/empty-state)
480
484
  - [PixelBlastSVG] — component [docs](https://ads.actioneer.dev/#/pixel-blast-svg)
481
485
  - [Progress] — Use for a determinate or indeterminate bar showing task completion, driven by a value/max (default 100). [docs](https://ads.actioneer.dev/#/progress)
@@ -546,6 +550,7 @@ When tabs and a search field control the same content, they share one responsive
546
550
 
547
551
  ### AI Elements
548
552
 
553
+ - [AgentTrace] — component [docs](https://ads.actioneer.dev/#/agent-trace)
549
554
  - [AIChart] — Wrap a source-backed chart produced during agent work so its query, partial-data, rendering, ready, error, and cancelled states stay distinct from the chart specification itself. (variants: status: pending|querying|partial|rendering|ready|error|cancelled) [docs](https://ads.actioneer.dev/#/ai/chart)
550
555
  - [ChainOfThought] — component [docs](https://ads.actioneer.dev/#/ai/chain-of-thought)
551
556
  - [ChainOfThoughtContent] — component [docs](https://ads.actioneer.dev/#/ai/chain-of-thought)
@@ -624,6 +629,10 @@ When tabs and a search field control the same content, they share one responsive
624
629
  - [VoiceDisconnectButton] — component [docs](https://ads.actioneer.dev/#/ai/voice)
625
630
  - [VoiceMuteButton] — component [docs](https://ads.actioneer.dev/#/ai/voice)
626
631
  - [VoiceStatusDot] — component [docs](https://ads.actioneer.dev/#/ai/voice)
632
+ - [AgentTraceCall] — TypeScript type
633
+ - [AgentTraceProps] — TypeScript type
634
+ - [AgentTraceStep] — TypeScript type
635
+ - [AgentTraceStepStatus] — TypeScript type
627
636
  - [AIChartProgress] — TypeScript type
628
637
  - [AIChartProps] — TypeScript type
629
638
  - [AIChartStatus] — TypeScript type
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actioneer/ads",
3
- "version": "0.3.1",
3
+ "version": "0.5.0",
4
4
  "importPath": "@actioneer/ads",
5
5
  "styleImport": "@import \"@actioneer/ads/styles.css\";",
6
6
  "families": [
@@ -16,9 +16,9 @@
16
16
  "Chat"
17
17
  ],
18
18
  "counts": {
19
- "total": 669,
20
- "component": 322,
21
- "type": 284,
19
+ "total": 678,
20
+ "component": 327,
21
+ "type": 288,
22
22
  "hook": 10,
23
23
  "util": 53
24
24
  },
@@ -148,7 +148,7 @@
148
148
  "text-brand",
149
149
  "border-brand"
150
150
  ],
151
- "description": "Brand (black) — used for solid fills, not body text"
151
+ "description": "Brand (Sage green) — used for solid fills / primary actions, not body text"
152
152
  },
153
153
  {
154
154
  "name": "--color-brand-foreground",
@@ -157,7 +157,7 @@
157
157
  "text-brand-foreground",
158
158
  "bg-brand-foreground"
159
159
  ],
160
- "description": "Brand (black) — used for solid fills, not body text"
160
+ "description": "Brand (Sage green) — used for solid fills / primary actions, not body text"
161
161
  },
162
162
  {
163
163
  "name": "--color-brand-hover",
@@ -167,7 +167,7 @@
167
167
  "text-brand-hover",
168
168
  "border-brand-hover"
169
169
  ],
170
- "description": "Brand (black) — used for solid fills, not body text"
170
+ "description": "Brand (Sage green) — used for solid fills / primary actions, not body text"
171
171
  },
172
172
  {
173
173
  "name": "--color-fill",
@@ -1318,7 +1318,7 @@
1318
1318
  "kind": "component",
1319
1319
  "importPath": "@actioneer/ads",
1320
1320
  "module": "drawer",
1321
- "description": "Use the portaled Drawer for a focused, blocking task (form, details, settings) that slides in over the page with a backdrop and focus trap; use InlineDrawer instead for a contextual panel that must stay in-flow beside content the user still needs.",
1321
+ "description": "Use the portaled Drawer for a focused, blocking task (form, details, settings) that slides in over the page with a backdrop and focus trap; use InlineDrawer instead for a contextual panel that must stay in-flow beside content the user still needs. The inline Drawer is a flat white panel (bg-card, no shadow, no border) that reads ONLY by fill contrast, so it MUST sit as a sibling of its content inside a bg-surface flex row — on a white (bg-background) parent it is invisible. If it doesn't read, tint the ground; never add a border or shadow to force it.",
1322
1322
  "showcaseUrl": "https://ads.actioneer.dev/#/drawer",
1323
1323
  "variants": {
1324
1324
  "side": {
@@ -3785,6 +3785,38 @@
3785
3785
  "module": "brand-texture",
3786
3786
  "showcaseUrl": "https://ads.actioneer.dev/#/brand-texture"
3787
3787
  },
3788
+ {
3789
+ "name": "EmptyConnections",
3790
+ "family": "Feedback",
3791
+ "kind": "component",
3792
+ "importPath": "@actioneer/ads",
3793
+ "module": "empty-state",
3794
+ "showcaseUrl": "https://ads.actioneer.dev/#/empty-state"
3795
+ },
3796
+ {
3797
+ "name": "EmptyDocuments",
3798
+ "family": "Feedback",
3799
+ "kind": "component",
3800
+ "importPath": "@actioneer/ads",
3801
+ "module": "empty-state",
3802
+ "showcaseUrl": "https://ads.actioneer.dev/#/empty-state"
3803
+ },
3804
+ {
3805
+ "name": "EmptyInsights",
3806
+ "family": "Feedback",
3807
+ "kind": "component",
3808
+ "importPath": "@actioneer/ads",
3809
+ "module": "empty-state",
3810
+ "showcaseUrl": "https://ads.actioneer.dev/#/empty-state"
3811
+ },
3812
+ {
3813
+ "name": "EmptySearch",
3814
+ "family": "Feedback",
3815
+ "kind": "component",
3816
+ "importPath": "@actioneer/ads",
3817
+ "module": "empty-state",
3818
+ "showcaseUrl": "https://ads.actioneer.dev/#/empty-state"
3819
+ },
3788
3820
  {
3789
3821
  "name": "EmptyState",
3790
3822
  "family": "Feedback",
@@ -3795,6 +3827,7 @@
3795
3827
  "showcaseUrl": "https://ads.actioneer.dev/#/empty-state",
3796
3828
  "props": [
3797
3829
  "icon",
3830
+ "illustration",
3798
3831
  "title",
3799
3832
  "description",
3800
3833
  "action"
@@ -4409,6 +4442,23 @@
4409
4442
  "importPath": "@actioneer/ads",
4410
4443
  "module": "selection-action-bar"
4411
4444
  },
4445
+ {
4446
+ "name": "AgentTrace",
4447
+ "family": "AI Elements",
4448
+ "kind": "component",
4449
+ "importPath": "@actioneer/ads",
4450
+ "module": "agent-trace",
4451
+ "showcaseUrl": "https://ads.actioneer.dev/#/agent-trace",
4452
+ "props": [
4453
+ "steps",
4454
+ "mainAgent",
4455
+ "slowSeconds",
4456
+ "reviewedStepIds",
4457
+ "onSendForReview",
4458
+ "slowMessage",
4459
+ "renderCall"
4460
+ ]
4461
+ },
4412
4462
  {
4413
4463
  "name": "AIChart",
4414
4464
  "family": "AI Elements",
@@ -5363,6 +5413,7 @@
5363
5413
  "volume",
5364
5414
  "palette",
5365
5415
  "seed",
5416
+ "fill",
5366
5417
  "onReady"
5367
5418
  ]
5368
5419
  },
@@ -5436,6 +5487,34 @@
5436
5487
  "className"
5437
5488
  ]
5438
5489
  },
5490
+ {
5491
+ "name": "AgentTraceCall",
5492
+ "family": "AI Elements",
5493
+ "kind": "type",
5494
+ "importPath": "@actioneer/ads",
5495
+ "module": "agent-trace"
5496
+ },
5497
+ {
5498
+ "name": "AgentTraceProps",
5499
+ "family": "AI Elements",
5500
+ "kind": "type",
5501
+ "importPath": "@actioneer/ads",
5502
+ "module": "agent-trace"
5503
+ },
5504
+ {
5505
+ "name": "AgentTraceStep",
5506
+ "family": "AI Elements",
5507
+ "kind": "type",
5508
+ "importPath": "@actioneer/ads",
5509
+ "module": "agent-trace"
5510
+ },
5511
+ {
5512
+ "name": "AgentTraceStepStatus",
5513
+ "family": "AI Elements",
5514
+ "kind": "type",
5515
+ "importPath": "@actioneer/ads",
5516
+ "module": "agent-trace"
5517
+ },
5439
5518
  {
5440
5519
  "name": "AIChartProgress",
5441
5520
  "family": "AI Elements",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actioneer/ads",
3
- "version": "0.3.1",
3
+ "version": "0.5.0",
4
4
  "description": "Actioneer Design System 1.0 — React 19 + Tailwind v4 component library.",
5
5
  "type": "module",
6
6
  "sideEffects": [
package/styles.css CHANGED
@@ -29,7 +29,7 @@
29
29
  /*
30
30
  * ============================================================
31
31
  * ADS 1.0 — Design Tokens
32
- * Brand: BLACK · Typeface: Aribau Grotesk (Regular + Bold)
32
+ * Brand: Sage (green) · Neutrals: warm greige · Typeface: Aribau Grotesk
33
33
  * ============================================================
34
34
  */
35
35
  @theme {
@@ -67,25 +67,44 @@
67
67
  --text-2xl: 1.625rem; /* 26px — display */
68
68
  --text-2xl--line-height: 2rem;
69
69
 
70
- /* ---- Ink scale (the black brand ramp) ---- */
71
- --color-ink-50: #f6f6f7;
72
- --color-ink-100: #ececed;
73
- --color-ink-200: #d9d9dc;
74
- --color-ink-300: #b8b8bd;
75
- --color-ink-400: #8f8f96;
76
- --color-ink-500: #6e6e75;
77
- --color-ink-600: #55555b;
78
- --color-ink-700: #3f3f44;
79
- --color-ink-800: #262629;
80
- --color-ink-900: #161618;
81
- --color-ink-950: #0a0a0b;
70
+ /* ---- Neutral ramp — warm greige (the workhorse: backgrounds, surfaces,
71
+ text, borders). Kept a touch warm so it sits with Sage without turning
72
+ green — one family, not colour plus grey. The `ink` name is retained so
73
+ every existing reference resolves; the values are now greige. ---- */
74
+ --color-ink-50: #f2f2ed;
75
+ --color-ink-100: #e7e7e1;
76
+ --color-ink-200: #d8d7cf;
77
+ --color-ink-300: #c7c6be;
78
+ --color-ink-400: #a8a79e;
79
+ --color-ink-500: #8c8c84;
80
+ --color-ink-600: #6b6b63;
81
+ --color-ink-700: #4a4a44;
82
+ --color-ink-800: #33322e;
83
+ --color-ink-900: #26251f;
84
+ --color-ink-950: #1a1a17;
85
+
86
+ /* ---- Brand ramp — Sage (one green hue: brand, primary actions, focal
87
+ data). 600 is the primary. On a white/greige ground, colour earns its
88
+ place — the eye always knows where to look. ---- */
89
+ --color-sage-50: #eff5ea;
90
+ --color-sage-100: #dde8cf;
91
+ --color-sage-200: #a9ce86;
92
+ --color-sage-300: #8abb6a;
93
+ --color-sage-400: #6da24e;
94
+ --color-sage-500: #548c41;
95
+ --color-sage-600: #3f7a34;
96
+ --color-sage-700: #2c5724;
97
+ --color-sage-800: #254a1d;
98
+ --color-sage-900: #1e3a16;
82
99
 
83
100
  /* ---- Semantic accent ramps ---- */
84
- --color-success-50: #f0fdf4;
85
- --color-success-100: #dcfce7;
86
- --color-success-500: #22c55e;
87
- --color-success-600: #16a34a;
88
- --color-success-700: #15803d;
101
+ /* Success — shifted cooler (emerald/teal) so positive states stay clearly
102
+ distinct from the warm Sage brand green. */
103
+ --color-success-50: #ecfdf5;
104
+ --color-success-100: #d1fae5;
105
+ --color-success-500: #10b981;
106
+ --color-success-600: #059669;
107
+ --color-success-700: #047857;
89
108
 
90
109
  --color-warning-50: #fffaeb;
91
110
  --color-warning-100: #fef0c7;
@@ -105,6 +124,19 @@
105
124
  --color-info-600: #1570ef;
106
125
  --color-info-700: #175cd3;
107
126
 
127
+ /* ---- Data-viz accents ---- three small ramps for charts & illustration.
128
+ deep = text/lines · base = fills · soft = backgrounds. Separate from the
129
+ semantic status ramps above; these are the "focal data" companions to Sage. */
130
+ --color-cyan-soft: #c7efe9; /* Cyan — vivid cool contrast; 2nd series, links */
131
+ --color-cyan-base: #12b5a5;
132
+ --color-cyan-deep: #0a7e82;
133
+ --color-lime-soft: #e4efcf; /* Lichen lime — energetic pop from the mark */
134
+ --color-lime-base: #a3c765;
135
+ --color-lime-deep: #6e8f30;
136
+ --color-amber-soft: #fce6c0; /* Amber — warm pop; highlights, "new" */
137
+ --color-amber-base: #f3a72e;
138
+ --color-amber-deep: #b57414;
139
+
108
140
  /* ---- Radii ---- */
109
141
  --radius-xs: 0.25rem;
110
142
  --radius-sm: 0.375rem;
@@ -122,8 +154,8 @@
122
154
  /* ---- Elevation ---- ONE soft token (Claude-panel style).
123
155
  Delineate surfaces with fill color first; add this to gently lift them. */
124
156
  --shadow-elevation: 0 0 0 1px rgb(10 10 11 / 0.03),
125
- 0 1px 2px 0 rgb(10 10 11 / 0.05),
126
- 0 8px 24px -6px rgb(10 10 11 / 0.12);
157
+ 0 1px 2px 0 rgb(10 10 11 / 0.04),
158
+ 0 8px 28px -8px rgb(10 10 11 / 0.09);
127
159
 
128
160
  /* ---- CTA inner glow ---- luminous inset highlight for primary buttons
129
161
  (adapted from the "AI button" Figma): a crisp top-edge catch plus a soft
@@ -201,12 +233,16 @@
201
233
  * every comparison series survives production builds.
202
234
  */
203
235
  :root {
204
- --color-chart-1: var(--color-ink-950);
205
- --color-chart-2: var(--color-ink-400);
206
- --color-chart-3: var(--color-ink-300);
207
- --color-chart-4: var(--color-info-500);
208
- --color-chart-5: var(--color-warning-500);
209
- --color-chart-6: var(--color-success-500);
236
+ /* Data-series palette — Sage (brand) leads as the focal/primary series,
237
+ then the three data-viz accents and two deep variants for extended
238
+ series. Explicit hexes (not var()) so every series survives @theme
239
+ pruning, since chart colours are referenced from SVG prop strings. */
240
+ --color-chart-1: #3f7a34; /* sage — primary / focal series */
241
+ --color-chart-2: #12b5a5; /* cyan base */
242
+ --color-chart-3: #f3a72e; /* amber base */
243
+ --color-chart-4: #a3c765; /* lichen lime base */
244
+ --color-chart-5: #0a7e82; /* cyan deep */
245
+ --color-chart-6: #b57414; /* amber deep */
210
246
  }
211
247
 
212
248
  /*
@@ -232,7 +268,7 @@
232
268
  --color-card: var(--card);
233
269
  --color-card-foreground: var(--card-foreground);
234
270
 
235
- /* Brand (black) — used for solid fills, not body text */
271
+ /* Brand (Sage green) — used for solid fills / primary actions, not body text */
236
272
  --color-brand: var(--brand);
237
273
  --color-brand-foreground: var(--brand-foreground);
238
274
  --color-brand-hover: var(--brand-hover);
@@ -274,41 +310,41 @@
274
310
 
275
311
  /* ---- Theme (light only) ---- */
276
312
  :root {
277
- --background: #ffffff;
278
- --foreground: #0a0a0b;
313
+ --background: #f7f7f3;
314
+ --foreground: #1a1a17;
279
315
 
280
- /* Text hierarchy — accessible on #ffffff */
281
- --text-primary: #0a0a0b; /* ~20:1 AAA */
282
- --text-secondary: #52525b; /* ~7.6:1 AAA */
283
- --text-tertiary: #6e6e75; /* ~5.2:1 AA */
316
+ /* Text hierarchy — accessible on the warm greige canvas */
317
+ --text-primary: #1a1a17; /* ~17:1 AAA */
318
+ --text-secondary: #4a4a44; /* ~8.5:1 AAA */
319
+ --text-tertiary: #6b6b63; /* ~4.8:1 AA */
284
320
 
285
- --surface: #f6f6f7;
286
- --surface-foreground: #262629;
321
+ --surface: #f2f2ed; /* warm greige — the tinted canvas */
322
+ --surface-foreground: #33322e;
287
323
  --elevated: #ffffff;
288
324
 
289
- --muted: #f6f6f7;
290
- --muted-foreground: #6e6e75;
325
+ --muted: #e7e7e1;
326
+ --muted-foreground: #6b6b63;
291
327
 
292
328
  --card: #ffffff;
293
- --card-foreground: #0a0a0b;
329
+ --card-foreground: #1a1a17;
294
330
 
295
- /* BLACK brand */
296
- --brand: #0a0a0b;
331
+ /* Sage brand (green) — primary actions, focal moments */
332
+ --brand: #3f7a34;
297
333
  --brand-foreground: #ffffff;
298
- --brand-hover: #262629;
334
+ --brand-hover: #2c5724;
299
335
 
300
336
  /* Quiet fill */
301
- --fill: #ececed;
302
- --fill-foreground: #161618;
337
+ --fill: #e7e7e1;
338
+ --fill-foreground: #1a1a17;
303
339
 
304
- --accent: #f6f6f7;
305
- --accent-foreground: #161618;
340
+ --accent: #edece6;
341
+ --accent-foreground: #1a1a17;
306
342
 
307
- --border: #ececed;
308
- --border-strong: #d9d9dc;
309
- --input: #d9d9dc;
310
- --ring: rgb(10 10 11 / 0.35);
311
- --overlay: rgb(10 10 11 / 0.5);
343
+ --border: #e7e7e1;
344
+ --border-strong: #c7c6be;
345
+ --input: #c7c6be;
346
+ --ring: rgb(63 122 52 / 0.5);
347
+ --overlay: rgb(26 26 23 / 0.5);
312
348
  }
313
349
  /* ---- Base, keyframes & component helpers ---- */
314
350
  /* Hide scrollbars app-wide but keep scrollability. The demo UI is filled
@@ -775,7 +811,7 @@
775
811
  position: absolute;
776
812
  inset-block: 0;
777
813
  left: 0;
778
- border-left: 1px solid var(--border);
814
+ border-left: 1px solid var(--border-strong);
779
815
  }
780
816
  .ads-tree-rail:first-child::before,
781
817
  .ads-tree-branch:first-child::before {
@@ -794,8 +830,8 @@
794
830
  top: 0;
795
831
  height: var(--tree-elbow, 1.125rem);
796
832
  width: 1rem;
797
- border-bottom: 1px solid var(--border);
798
- border-left: 1px solid var(--border);
833
+ border-bottom: 1px solid var(--border-strong);
834
+ border-left: 1px solid var(--border-strong);
799
835
  border-bottom-left-radius: 9px;
800
836
  }
801
837
  /* Let the consumer's Tailwind discover the classes ADS components use. */