@actioneer/ads 1.0.7 → 1.0.8

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 (71) hide show
  1. package/DESIGN.md +80 -86
  2. package/README.md +6 -0
  3. package/components/ai-elements/chart.js +20 -20
  4. package/components/ai-elements/inline-citation.js +50 -50
  5. package/components/ai-elements/message.js +1 -1
  6. package/components/ai-elements/tool.js +5 -5
  7. package/components/alert.d.ts +3 -2
  8. package/components/alert.js +25 -25
  9. package/components/answer.js +1 -1
  10. package/components/assistant-ui/action-bar.js +1 -1
  11. package/components/assistant-ui/attachment.js +68 -49
  12. package/components/assistant-ui/composer-add-context.js +1 -1
  13. package/components/assistant-ui/composer-trigger-popover.js +1 -1
  14. package/components/assistant-ui/composer.js +13 -13
  15. package/components/assistant-ui/message-timing.js +6 -6
  16. package/components/assistant-ui/selection-toolbar.js +5 -5
  17. package/components/assistant-ui/sources.js +15 -15
  18. package/components/assistant-ui/tooltip-icon-button.js +18 -14
  19. package/components/audio-waveform.d.ts +21 -8
  20. package/components/audio-waveform.js +371 -94
  21. package/components/autocomplete.js +9 -9
  22. package/components/breadcrumbs.js +32 -38
  23. package/components/button.js +83 -73
  24. package/components/card.js +1 -1
  25. package/components/chart.js +732 -673
  26. package/components/chip.js +37 -35
  27. package/components/command-palette.js +12 -12
  28. package/components/connector-card.d.ts +1 -2
  29. package/components/connector-card.js +17 -17
  30. package/components/date-range-picker.js +1 -2
  31. package/components/drawer.js +9 -10
  32. package/components/dropdown.js +1 -1
  33. package/components/empty-state.d.ts +2 -0
  34. package/components/empty-state.js +17 -15
  35. package/components/field.js +9 -10
  36. package/components/file-dropzone.d.ts +6 -3
  37. package/components/file-dropzone.js +72 -60
  38. package/components/infinite-canvas.js +9 -9
  39. package/components/modal.js +1 -1
  40. package/components/page-body.js +8 -8
  41. package/components/popover.js +11 -11
  42. package/components/progress-circle.d.ts +1 -1
  43. package/components/progress-circle.js +57 -48
  44. package/components/segmented.d.ts +1 -0
  45. package/components/segmented.js +34 -36
  46. package/components/select.js +2 -2
  47. package/components/selection-action-bar.js +32 -31
  48. package/components/setting-row.js +10 -10
  49. package/components/slider.js +5 -5
  50. package/components/stepper.d.ts +1 -1
  51. package/components/stepper.js +1 -1
  52. package/components/switch.js +10 -10
  53. package/components/table.d.ts +2 -2
  54. package/components/table.js +177 -170
  55. package/components/tabs.js +41 -35
  56. package/components/timeline.js +3 -3
  57. package/components/toast.js +53 -56
  58. package/components/ui/button.js +4 -4
  59. package/components/ui/dialog.js +1 -1
  60. package/components/viz-charts.js +263 -221
  61. package/examples/README.md +30 -0
  62. package/examples/agents-screen.tsx +477 -0
  63. package/examples/settings-screen.tsx +90 -0
  64. package/examples/workspace-header.tsx +71 -0
  65. package/lib/icons.d.ts +8 -0
  66. package/lib/icons.js +171 -118
  67. package/llms.txt +14 -14
  68. package/manifest.json +77 -48
  69. package/package.json +1 -1
  70. package/styles.css +55 -68
  71. package/theme.css +50 -59
package/lib/icons.js CHANGED
@@ -1,123 +1,176 @@
1
1
  "use client";
2
- import { jsx as h } from "react/jsx-runtime";
3
- import * as C from "react";
4
- import { Code as g, Check as p, Copy as u, FileText as $, X as d, UploadSimple as S, EyeSlash as k, Eye as P, MagnifyingGlass as f, Minus as w, Plus as T, CaretDown as A, Info as L, WarningCircle as m, Warning as y, CheckCircle as B, CaretRight as U, CaretUp as x, ArrowsDownUp as I, ChatCircle as M, ArrowUpRight as D, Clock as O, Database as F, ArrowSquareOut as b, Table as R, CaretLeft as v, CornersOut as H, Magnet as G, Tray as W, ArrowLeft as E, DotsThree as z, User as V, XCircle as N, CircleDashed as Q, ArrowsClockwise as q, Paperclip as X, Quotes as j, At as J, Lightning as K, Sparkle as Y, File as Z, DownloadSimple as _, Image as n, BracketsCurly as ee, MusicNotes as oe, VideoCamera as te, ImageBroken as ne, Pulse as se, Archive as ae, ArrowDown as re, ArrowRight as ce, ArrowUp as le, Scroll as ie, Bell as he, Stack as Ce, BookOpen as ge, Brain as pe, CalendarBlank as ue, Phone as $e, ListChecks as de, Cube as Se, DotsNine as ke, FunnelSimple as Pe, Folder as fe, FolderOpen as we, Gauge as Te, GitBranch as Ae, Hash as Le, ClockCounterClockwise as me, House as ye, SquaresFour as Be, Leaf as Ue, Lightbulb as xe, Link as Ie, CircleNotch as Me, SignOut as De, Envelope as Oe, Microphone as Fe, MicrophoneSlash as be, DotsThreeVertical as Re, Palette as ve, SidebarSimple as He, Pause as Ge, PencilSimple as We, PhoneIncoming as Ee, PhoneSlash as ze, ChartPie as Ve, Play as Ne, Plug as Qe, Presentation as qe, Rocket as Xe, Gear as je, Shapes as Je, ShareNetwork as Ke, Star as Ye, Stop as Ze, ArrowsLeftRight as _e, Target as eo, Binoculars as oo, TextB as to, TextT as no, TextItalic as so, TextStrikethrough as ao, TextUnderline as ro, ToggleRight as co, Trash as lo, Users as io, Wrench as ho } from "@phosphor-icons/react";
5
- function e(s, a) {
6
- const o = C.forwardRef(function({ strokeWidth: t, weight: r, ...c }, l) {
7
- const i = r ?? (t != null && t >= 2 ? "bold" : "regular");
8
- return /* @__PURE__ */ h(s, { ref: l, size: "1em", weight: i, ...c });
2
+ import { jsxs as p, Fragment as d, jsx as a } from "react/jsx-runtime";
3
+ import * as r from "react";
4
+ import { Code as $, Check as k, Copy as S, FileText as f, UploadSimple as P, X as T, EyeSlash as w, Eye as L, MagnifyingGlass as A, Minus as m, Plus as x, CaretDown as B, Info as I, WarningCircle as y, Warning as U, CheckCircle as F, CaretRight as M, CaretUp as D, ArrowsDownUp as O, ChatCircle as b, ArrowUpRight as R, Clock as v, Database as H, ArrowSquareOut as E, Table as G, CaretLeft as W, CornersOut as z, Magnet as V, Tray as N, ArrowLeft as j, DotsThree as X, User as Q, XCircle as q, CircleDashed as _, ArrowsClockwise as J, Paperclip as K, Quotes as Y, At as Z, Lightning as ee, Sparkle as oe, File as te, DownloadSimple as ne, Image as C, BracketsCurly as se, MusicNotes as ae, VideoCamera as re, ImageBroken as ce, Pulse as ie, Archive as le, ArrowDown as he, ArrowRight as Ce, ArrowUp as ge, Scroll as ue, Bell as pe, Stack as de, BookOpen as $e, Brain as ke, CalendarBlank as Se, Phone as fe, ListChecks as Pe, Cube as Te, DotsNine as we, FunnelSimple as Le, Folder as Ae, FolderOpen as me, Gauge as xe, GitBranch as Be, Hash as Ie, ClockCounterClockwise as ye, House as Ue, SquaresFour as Fe, Leaf as Me, Lightbulb as De, Link as Oe, CircleNotch as be, SignOut as Re, Envelope as ve, Microphone as He, MicrophoneSlash as Ee, DotsThreeVertical as Ge, Palette as We, SidebarSimple as ze, Pause as Ve, PencilSimple as Ne, PhoneIncoming as je, PhoneSlash as Xe, ChartPie as Qe, Play as qe, Plug as _e, Presentation as Je, Rocket as Ke, Gear as Ye, Shapes as Ze, ShareNetwork as eo, Star as oo, Stop as to, ArrowsLeftRight as no, Target as so, Binoculars as ao, TextB as ro, TextT as co, TextItalic as io, TextStrikethrough as lo, TextUnderline as ho, ToggleRight as Co, Trash as go, Users as uo, Wrench as po } from "@phosphor-icons/react";
5
+ const $o = r.createContext(!1), ko = /* @__PURE__ */ new Set(["Info"]), So = new Set(
6
+ [
7
+ "FunnelSimple",
8
+ "X",
9
+ "TextT",
10
+ "TextItalic",
11
+ "TextStrikethrough",
12
+ "TextUnderline",
13
+ "Code",
14
+ "Minus",
15
+ "DotsNine",
16
+ "Link",
17
+ "Plus",
18
+ "Check",
19
+ "Pulse",
20
+ "ListChecks",
21
+ "BracketsCurly"
22
+ ].map((o) => `${o}Icon`)
23
+ );
24
+ function e(o, c) {
25
+ const i = r.forwardRef(function({ strokeWidth: l, weight: g, className: t, ...n }, h) {
26
+ const u = r.useContext($o), s = g ?? (l != null && l >= 2 ? "bold" : "regular");
27
+ return u && ko.has(c) && s !== "fill" ? /* @__PURE__ */ p(d, { children: [
28
+ /* @__PURE__ */ a(
29
+ o,
30
+ {
31
+ ref: h,
32
+ size: "1em",
33
+ weight: s,
34
+ className: [t, "ads-icon-rest"].filter(Boolean).join(" "),
35
+ ...n
36
+ }
37
+ ),
38
+ /* @__PURE__ */ a(
39
+ o,
40
+ {
41
+ size: "1em",
42
+ weight: So.has(o.displayName ?? "") ? "bold" : "fill",
43
+ "aria-hidden": !0,
44
+ className: [t, "ads-icon-hover"].filter(Boolean).join(" "),
45
+ ...n
46
+ }
47
+ )
48
+ ] }) : /* @__PURE__ */ a(
49
+ o,
50
+ {
51
+ ref: h,
52
+ size: "1em",
53
+ weight: s,
54
+ className: t,
55
+ ...n
56
+ }
57
+ );
9
58
  });
10
- return o.displayName = a, o;
59
+ return i.displayName = c, i;
11
60
  }
12
- const uo = e(re, "ArrowDown"), $o = e(E, "ArrowLeft"), So = e(ce, "ArrowRight"), ko = e(le, "ArrowUp"), Po = e(D, "ArrowUpRight"), fo = e(A, "ChevronDown"), wo = e(v, "ChevronLeft"), To = e(U, "ChevronRight"), Ao = e(x, "ChevronUp"), Lo = e(I, "SortIcon"), mo = e(_e, "SwapHorizontal"), yo = e(b, "ExternalLink"), Bo = e(He, "PanelLeft"), Uo = e(J, "At"), xo = e($e, "Call"), Io = e(Ee, "PhoneIncoming"), Mo = e(d, "Close"), Do = e(N, "CloseCircle"), Oo = e(u, "Copy"), Fo = e(_, "Download"), bo = e(De, "LogOut"), Ro = e(Fe, "Mic"), vo = e(be, "MicOff"), Ho = e(ze, "PhoneOff"), Go = e(We, "Pencil"), Wo = e(j, "Quote"), Eo = e(P, "Eye"), zo = e(k, "EyeOff"), Vo = e(Le, "Hash"), No = e(n, "ImageUpload"), Qo = e(S, "Upload"), qo = e(no, "TextFont"), Xo = e(to, "TextBold"), jo = e(so, "TextItalicStyle"), Jo = e(ao, "TextStrike"), Ko = e(ro, "TextUnderlineStyle"), Yo = e(co, "ToggleOn"), Zo = e(ue, "Calendar"), _o = e(O, "Clock"), et = e(g, "Code"), ot = e(Ze, "Stop"), tt = e(G, "Magnet"), nt = e(H, "Maximize"), st = e(w, "Minus"), at = e(z, "MoreHorizontal"), rt = e(Re, "MoreVertical"), ct = e(ke, "DragHandle"), lt = e(Ie, "Link"), it = e(T, "Plus"), ht = e(q, "Refresh"), Ct = e(ie, "AuditTrail"), gt = e(f, "Search"), pt = e(Ke, "Share"), ut = e(lo, "Trash"), $t = e(p, "Check"), dt = e(Me, "Loader"), St = e(B, "CheckCircle"), kt = e(L, "Info"), Pt = e(y, "Warning"), ft = e(he, "Bell"), wt = e(m, "WarningCircle"), Tt = e(se, "Activity"), At = e(M, "AgentChat"), Lt = e(K, "Bolt"), mt = e(ge, "BookOpen"), yt = e(pe, "Brain"), Bt = e(de, "CheckList"), Ut = e(Se, "Component"), xt = e(F, "Database"), It = e(R, "Table"), Mt = e(Pe, "Filter"), Dt = e(ae, "Archive"), Ot = e(Z, "File"), Ft = e($, "FileText"), bt = e(fe, "Folder"), Rt = e(n, "Image"), vt = e(ne, "ImageOff"), Ht = e(oe, "Music"), Gt = e(te, "Video"), Wt = e(ee, "Braces"), Et = e(we, "FolderOpen"), zt = e(Te, "Gauge"), Vt = e(Ae, "GitBranch"), Nt = e(me, "HistoryClock"), Qt = e(ye, "Home"), qt = e(Ce, "Blocks"), Xt = e(W, "Inbox"), jt = e(xe, "Lightbulb"), Jt = e(Ue, "Leaf"), Kt = e(Be, "LayoutGrid"), Yt = e(Oe, "Mail"), Zt = e(ve, "Palette"), _t = e(Ve, "PieChart"), en = e(Qe, "Plug"), on = e(Xe, "Rocket"), tn = e(je, "Settings"), nn = e(Je, "Shapes"), sn = e(Y, "Sparkles"), an = e(Ye, "Star"), rn = e(oo, "Telescope"), cn = e(eo, "Target"), ln = e(V, "User"), hn = e(io, "Users"), Cn = e(Ne, "Play"), gn = e(qe, "Presentation"), pn = e(Ge, "Pause"), un = e(X, "Paperclip"), $n = e(Q, "CircleDashed"), dn = e(ho, "Wrench");
61
+ const wo = e(he, "ArrowDown"), Lo = e(j, "ArrowLeft"), Ao = e(Ce, "ArrowRight"), mo = e(ge, "ArrowUp"), xo = e(R, "ArrowUpRight"), Bo = e(B, "ChevronDown"), Io = e(W, "ChevronLeft"), yo = e(M, "ChevronRight"), Uo = e(D, "ChevronUp"), Fo = e(O, "SortIcon"), Mo = e(no, "SwapHorizontal"), Do = e(E, "ExternalLink"), Oo = e(ze, "PanelLeft"), bo = e(Z, "At"), Ro = e(fe, "Call"), vo = e(je, "PhoneIncoming"), Ho = e(T, "Close"), Eo = e(q, "CloseCircle"), Go = e(S, "Copy"), Wo = e(ne, "Download"), zo = e(Re, "LogOut"), Vo = e(He, "Mic"), No = e(Ee, "MicOff"), jo = e(Xe, "PhoneOff"), Xo = e(Ne, "Pencil"), Qo = e(Y, "Quote"), qo = e(L, "Eye"), _o = e(w, "EyeOff"), Jo = e(Ie, "Hash"), Ko = e(C, "ImageUpload"), Yo = e(P, "Upload"), Zo = e(co, "TextFont"), et = e(ro, "TextBold"), ot = e(io, "TextItalicStyle"), tt = e(lo, "TextStrike"), nt = e(
62
+ ho,
63
+ "TextUnderlineStyle"
64
+ ), st = e(Co, "ToggleOn"), at = e(Se, "Calendar"), rt = e(v, "Clock"), ct = e($, "Code"), it = e(to, "Stop"), lt = e(V, "Magnet"), ht = e(z, "Maximize"), Ct = e(m, "Minus"), gt = e(X, "MoreHorizontal"), ut = e(Ge, "MoreVertical"), pt = e(we, "DragHandle"), dt = e(Oe, "Link"), $t = e(x, "Plus"), kt = e(J, "Refresh"), St = e(ue, "AuditTrail"), ft = e(A, "Search"), Pt = e(eo, "Share"), Tt = e(go, "Trash"), wt = e(k, "Check"), Lt = e(be, "Loader"), At = e(F, "CheckCircle"), mt = e(I, "Info"), xt = e(U, "Warning"), Bt = e(pe, "Bell"), It = e(y, "WarningCircle"), yt = e(ie, "Activity"), Ut = e(b, "AgentChat"), Ft = e(ee, "Bolt"), Mt = e($e, "BookOpen"), Dt = e(ke, "Brain"), Ot = e(Pe, "CheckList"), bt = e(Te, "Component"), Rt = e(H, "Database"), vt = e(G, "Table"), Ht = e(Le, "Filter"), Et = e(le, "Archive"), Gt = e(te, "File"), Wt = e(f, "FileText"), zt = e(Ae, "Folder"), Vt = e(C, "Image"), Nt = e(ce, "ImageOff"), jt = e(ae, "Music"), Xt = e(re, "Video"), Qt = e(se, "Braces"), qt = e(me, "FolderOpen"), _t = e(xe, "Gauge"), Jt = e(Be, "GitBranch"), Kt = e(ye, "HistoryClock"), Yt = e(Ue, "Home"), Zt = e(de, "Blocks"), en = e(N, "Inbox"), on = e(De, "Lightbulb"), tn = e(Me, "Leaf"), nn = e(Fe, "LayoutGrid"), sn = e(ve, "Mail"), an = e(We, "Palette"), rn = e(Qe, "PieChart"), cn = e(_e, "Plug"), ln = e(Ke, "Rocket"), hn = e(Ye, "Settings"), Cn = e(Ze, "Shapes"), gn = e(oe, "Sparkles"), un = e(oo, "Star"), pn = e(ao, "Telescope"), dn = e(so, "Target"), $n = e(Q, "User"), kn = e(uo, "Users"), Sn = e(qe, "Play"), fn = e(Je, "Presentation"), Pn = e(Ve, "Pause"), Tn = e(K, "Paperclip"), wn = e(_, "CircleDashed"), Ln = e(po, "Wrench");
13
65
  export {
14
- Tt as Activity,
15
- At as AgentChat,
16
- Dt as Archive,
17
- uo as ArrowDown,
18
- $o as ArrowLeft,
19
- So as ArrowRight,
20
- ko as ArrowUp,
21
- Po as ArrowUpRight,
22
- Uo as At,
23
- Ct as AuditTrail,
24
- ft as Bell,
25
- qt as Blocks,
26
- Lt as Bolt,
27
- mt as BookOpen,
28
- Wt as Braces,
29
- yt as Brain,
30
- Zo as Calendar,
31
- xo as Call,
32
- $t as Check,
33
- St as CheckCircle,
34
- Bt as CheckList,
35
- fo as ChevronDown,
36
- wo as ChevronLeft,
37
- To as ChevronRight,
38
- Ao as ChevronUp,
39
- $n as CircleDashed,
40
- _o as Clock,
41
- Mo as Close,
42
- Do as CloseCircle,
43
- et as Code,
44
- Ut as Component,
45
- Oo as Copy,
46
- xt as Database,
47
- Fo as Download,
48
- ct as DragHandle,
49
- yo as ExternalLink,
50
- Eo as Eye,
51
- zo as EyeOff,
52
- Ot as File,
53
- Ft as FileText,
54
- Mt as Filter,
55
- bt as Folder,
56
- Et as FolderOpen,
57
- zt as Gauge,
58
- Vt as GitBranch,
59
- Vo as Hash,
60
- Nt as HistoryClock,
61
- Qt as Home,
62
- Rt as Image,
63
- vt as ImageOff,
64
- No as ImageUpload,
65
- Xt as Inbox,
66
- kt as Info,
67
- Kt as LayoutGrid,
68
- Jt as Leaf,
69
- jt as Lightbulb,
70
- lt as Link,
71
- dt as Loader,
72
- bo as LogOut,
73
- tt as Magnet,
74
- Yt as Mail,
75
- nt as Maximize,
76
- Ro as Mic,
77
- vo as MicOff,
78
- st as Minus,
79
- at as MoreHorizontal,
80
- rt as MoreVertical,
81
- Ht as Music,
82
- Zt as Palette,
83
- Bo as PanelLeft,
84
- un as Paperclip,
85
- pn as Pause,
86
- Go as Pencil,
87
- Io as PhoneIncoming,
88
- Ho as PhoneOff,
89
- _t as PieChart,
90
- Cn as Play,
91
- en as Plug,
92
- it as Plus,
93
- gn as Presentation,
94
- Wo as Quote,
95
- ht as Refresh,
96
- on as Rocket,
97
- gt as Search,
98
- tn as Settings,
99
- nn as Shapes,
100
- pt as Share,
101
- Lo as SortIcon,
102
- sn as Sparkles,
103
- an as Star,
104
- ot as Stop,
105
- mo as SwapHorizontal,
106
- It as Table,
107
- cn as Target,
108
- rn as Telescope,
109
- Xo as TextBold,
110
- qo as TextFont,
111
- jo as TextItalicStyle,
112
- Jo as TextStrike,
113
- Ko as TextUnderlineStyle,
114
- Yo as ToggleOn,
115
- ut as Trash,
116
- Qo as Upload,
117
- ln as User,
118
- hn as Users,
119
- Gt as Video,
120
- Pt as Warning,
121
- wt as WarningCircle,
122
- dn as Wrench
66
+ yt as Activity,
67
+ Ut as AgentChat,
68
+ Et as Archive,
69
+ wo as ArrowDown,
70
+ Lo as ArrowLeft,
71
+ Ao as ArrowRight,
72
+ mo as ArrowUp,
73
+ xo as ArrowUpRight,
74
+ bo as At,
75
+ St as AuditTrail,
76
+ Bt as Bell,
77
+ Zt as Blocks,
78
+ Ft as Bolt,
79
+ Mt as BookOpen,
80
+ Qt as Braces,
81
+ Dt as Brain,
82
+ at as Calendar,
83
+ Ro as Call,
84
+ wt as Check,
85
+ At as CheckCircle,
86
+ Ot as CheckList,
87
+ Bo as ChevronDown,
88
+ Io as ChevronLeft,
89
+ yo as ChevronRight,
90
+ Uo as ChevronUp,
91
+ wn as CircleDashed,
92
+ rt as Clock,
93
+ Ho as Close,
94
+ Eo as CloseCircle,
95
+ ct as Code,
96
+ bt as Component,
97
+ Go as Copy,
98
+ Rt as Database,
99
+ Wo as Download,
100
+ pt as DragHandle,
101
+ Do as ExternalLink,
102
+ qo as Eye,
103
+ _o as EyeOff,
104
+ Gt as File,
105
+ Wt as FileText,
106
+ Ht as Filter,
107
+ zt as Folder,
108
+ qt as FolderOpen,
109
+ _t as Gauge,
110
+ Jt as GitBranch,
111
+ Jo as Hash,
112
+ Kt as HistoryClock,
113
+ Yt as Home,
114
+ $o as IconHoverFillContext,
115
+ Vt as Image,
116
+ Nt as ImageOff,
117
+ Ko as ImageUpload,
118
+ en as Inbox,
119
+ mt as Info,
120
+ nn as LayoutGrid,
121
+ tn as Leaf,
122
+ on as Lightbulb,
123
+ dt as Link,
124
+ Lt as Loader,
125
+ zo as LogOut,
126
+ lt as Magnet,
127
+ sn as Mail,
128
+ ht as Maximize,
129
+ Vo as Mic,
130
+ No as MicOff,
131
+ Ct as Minus,
132
+ gt as MoreHorizontal,
133
+ ut as MoreVertical,
134
+ jt as Music,
135
+ an as Palette,
136
+ Oo as PanelLeft,
137
+ Tn as Paperclip,
138
+ Pn as Pause,
139
+ Xo as Pencil,
140
+ vo as PhoneIncoming,
141
+ jo as PhoneOff,
142
+ rn as PieChart,
143
+ Sn as Play,
144
+ cn as Plug,
145
+ $t as Plus,
146
+ fn as Presentation,
147
+ Qo as Quote,
148
+ kt as Refresh,
149
+ ln as Rocket,
150
+ ft as Search,
151
+ hn as Settings,
152
+ Cn as Shapes,
153
+ Pt as Share,
154
+ Fo as SortIcon,
155
+ gn as Sparkles,
156
+ un as Star,
157
+ it as Stop,
158
+ Mo as SwapHorizontal,
159
+ vt as Table,
160
+ dn as Target,
161
+ pn as Telescope,
162
+ et as TextBold,
163
+ Zo as TextFont,
164
+ ot as TextItalicStyle,
165
+ tt as TextStrike,
166
+ nt as TextUnderlineStyle,
167
+ st as ToggleOn,
168
+ Tt as Trash,
169
+ Yo as Upload,
170
+ $n as User,
171
+ kn as Users,
172
+ Xt as Video,
173
+ xt as Warning,
174
+ It as WarningCircle,
175
+ Ln as Wrench
123
176
  };
package/llms.txt CHANGED
@@ -70,8 +70,8 @@ Reference semantic roles, never raw color/dimension literals (ads-lint rejects l
70
70
  - `menu-stroke` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
71
71
  - `toast-stroke` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
72
72
  - `tree-stroke` — The neutral stroke ladder: every 1px UI border stays within WG3 to WG5.
73
- - `ring` — Focus ring and scrim, both translucent warm ink.
74
- - `overlay` — Focus ring and scrim, both translucent warm ink.
73
+ - `ring` — Focus ring and scrim, both translucent neutral ink.
74
+ - `overlay` — Focus ring and scrim, both translucent neutral ink.
75
75
 
76
76
  ## Design principles
77
77
 
@@ -89,17 +89,16 @@ Delineate SURFACES (cards, panels, sidebars, page regions) with color contrast,
89
89
  - Don't: Alternate persistent neutral fills inside one panel (for example white Panel → grey item → white child); flatten the item or promote the recess to the container.
90
90
  - Don't: Give a filled control no stroke on the tinted canvas — it disappears; it needs a crisp edge.
91
91
 
92
- ### 2. Shadow only by request [judgment]
92
+ ### 2. Five shadows, floating layers only [judgment]
93
93
 
94
- Every surface defaults to shadow-0. Use the numbered elevation ladder only when the user explicitly requests a shadow for the named surface; the legacy shadow-elevation hook remains flat.
94
+ ADS has five shadow tokens: shadow-0 (flat, the default), shadow-float, shadow-overlay, and the two table scroll-hint smudges. Only a layer that floats above the page may carry float or overlay; everything in the page is flat.
95
95
 
96
- - Do: Keep controls, cards, menus, overlays, panels, and other surfaces at shadow-0 unless the user specifically requests elevation.
97
- - Do: When requested, use shadow-100 for controls, shadow-200 for raised surfaces and pressable cards, shadow-300 for menus, popovers, listboxes, and toasts, and shadow-400 for dialogs and overlay drawers.
98
- - Do: Reserve shadow-500 and shadow-600 for rare higher stacked layers; the legacy shadow-elevation hook resolves to shadow-0.
99
- - Don't: Infer permission to use a shadow from actionability, floating placement, or component type.
100
- - Don't: Use raw shadow values or legacy named shadow utilities.
101
- - Don't: Put a shadow on a non-interactive surface for decoration.
102
- - Don't: Use shadow-500 or shadow-600 as a routine default.
96
+ - Do: Keep cards, panels, chips, buttons, tabs, fields, thumbs, and other in-page surfaces at shadow-0; separate them with fill, border, or spacing.
97
+ - Do: Use shadow-float for floating layers that sit over content: toasts, toolbars, the chat composer dock, and any menu or popover that needs lift beyond its border.
98
+ - Do: Use shadow-overlay for modals, dialogs, and overlay drawers, so a dialog always reads above a menu.
99
+ - Don't: Put a shadow on an in-page surface for decoration or to signal that it is clickable.
100
+ - Don't: Use raw shadow values, inset glows, or the removed numbered levels and elevation hook.
101
+ - Don't: Invent a third floating level; stack order comes from float vs overlay.
103
102
 
104
103
  ### 3. Motion follows the interaction [lint: unbounded-transition, sluggish-easing, zero-scale-entrance, undersized-zoom-entrance, raw-spring-config]
105
104
 
@@ -188,9 +187,9 @@ A page-level Back control sits immediately before the page title in the leading
188
187
 
189
188
  ### 11. Tabs lead; scoped search trails [judgment]
190
189
 
191
- When tabs and a search field control the same content, they share one responsive control row: the tab track hugs its labels at the leading edge and search sits at the trailing edge. Stack only when the container cannot fit both.
190
+ When tabs and a search field control the same content, they share one responsive control row: the tab list leads with its triggers left-aligned at their natural width over a baseline that fades from WG3 to transparent, and search sits at the trailing edge. Stack only when the container cannot fit both.
192
191
 
193
- - Do: Keep the horizontal TabList content-width, then place the scoped search field opposite it in the same toolbar.
192
+ - Do: Keep tab triggers left-aligned at their natural width, then place the scoped search field opposite them in the same toolbar.
194
193
  - Do: On constrained containers, stack tabs first and search second while preserving their relationship.
195
194
  - Don't: Stretch the tab track to fill the space between its labels and the search field.
196
195
  - Don't: Put a scoped search field on a separate row above its tabs when both controls fit side by side.
@@ -254,7 +253,7 @@ Before using any component below, preserve its built-in motion and apply the mot
254
253
  - [Field] — Wrap any form control (Input, Select, NumberField, Textarea, etc.) with a label plus optional description or error footer. [docs](https://ads.actioneer.dev/#/field)
255
254
  - [FieldDescription] — component [docs](https://ads.actioneer.dev/#/field)
256
255
  - [FieldError] — component [docs](https://ads.actioneer.dev/#/field)
257
- - [FileDropzone] — component (variants: isDragging: true|false; isDisabled: true|false) [docs](https://ads.actioneer.dev/#/review/file-dropzone)
256
+ - [FileDropzone] — component (variants: hasFiles: true|false; isDragging: true|false; isDisabled: true|false) [docs](https://ads.actioneer.dev/#/review/file-dropzone)
258
257
  - [Heading] — Use Heading for semantic h1–h4 titles above a page, section, or card, sized by document level via `level` (never a `size` prop). [docs](https://ads.actioneer.dev/#/typography)
259
258
  - [Kbd] — Use to display a keyboard shortcut or key name, inline in text or trailing a label in a shortcut list. [docs](https://ads.actioneer.dev/#/kbd)
260
259
  - [Label] — component [docs](https://ads.actioneer.dev/#/field)
@@ -269,6 +268,7 @@ Before using any component below, preserve its built-in motion and apply the mot
269
268
  - [Stepper] — component (variants: status: complete|current|upcoming|error; size: sm|md) [docs](https://ads.actioneer.dev/#/review/stepper)
270
269
  - [Text] — Use Text for any body copy, caption, or inline run of prose instead of a raw p/span tag. [docs](https://ads.actioneer.dev/#/typography)
271
270
  - [Tooltip] — Use to label a single hover/focus-triggered element (icon-only buttons, avatars, truncated text) with a short informational hint — not for actions or content that needs to stay open. [docs](https://ads.actioneer.dev/#/tooltip)
271
+ - [AudioWaveformLook] — TypeScript type
272
272
  - [AudioWaveformProps] — TypeScript type
273
273
  - [ButtonProps] — TypeScript type
274
274
  - [CodeBlockProps] — TypeScript type
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actioneer/ads",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
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": 742,
19
+ "total": 743,
20
20
  "component": 323,
21
- "type": 311,
21
+ "type": 312,
22
22
  "hook": 10,
23
23
  "util": 98
24
24
  },
@@ -557,7 +557,7 @@
557
557
  "utilities": [
558
558
  "ring-ring"
559
559
  ],
560
- "description": "Focus ring and scrim, both translucent warm ink."
560
+ "description": "Focus ring and scrim, both translucent neutral ink."
561
561
  },
562
562
  {
563
563
  "name": "--color-overlay",
@@ -567,7 +567,7 @@
567
567
  "text-overlay",
568
568
  "border-overlay"
569
569
  ],
570
- "description": "Focus ring and scrim, both translucent warm ink."
570
+ "description": "Focus ring and scrim, both translucent neutral ink."
571
571
  }
572
572
  ],
573
573
  "exports": [
@@ -776,6 +776,7 @@
776
776
  "topLabel",
777
777
  "bottomLabel",
778
778
  "downloadName",
779
+ "look",
779
780
  "className"
780
781
  ]
781
782
  },
@@ -920,6 +921,12 @@
920
921
  "module": "file-dropzone",
921
922
  "showcaseUrl": "https://ads.actioneer.dev/#/review/file-dropzone",
922
923
  "variants": {
924
+ "hasFiles": {
925
+ "values": [
926
+ "true",
927
+ "false"
928
+ ]
929
+ },
923
930
  "isDragging": {
924
931
  "values": [
925
932
  "true",
@@ -1172,6 +1179,13 @@
1172
1179
  "className"
1173
1180
  ]
1174
1181
  },
1182
+ {
1183
+ "name": "AudioWaveformLook",
1184
+ "family": "Foundations",
1185
+ "kind": "type",
1186
+ "importPath": "@actioneer/ads",
1187
+ "module": "audio-waveform"
1188
+ },
1175
1189
  {
1176
1190
  "name": "AudioWaveformProps",
1177
1191
  "family": "Foundations",
@@ -5146,7 +5160,7 @@
5146
5160
  ],
5147
5161
  "default": "default",
5148
5162
  "options": {
5149
- "default": "Neutral heads-up with a warm-grey icon tile and no urgency signaled.",
5163
+ "default": "Neutral heads-up with a neutral icon and no urgency signaled.",
5150
5164
  "success": "Grass green confirms a completed or positive outcome.",
5151
5165
  "warning": "Flags a non-blocking risk or upcoming issue (e.g. scheduled maintenance), amber accent.",
5152
5166
  "danger": "Signals a failure or blocking problem (e.g. connection error) needing attention, red accent.",
@@ -8437,32 +8451,12 @@
8437
8451
  "value": "none"
8438
8452
  },
8439
8453
  {
8440
- "name": "100",
8441
- "value": "0 1px 0 0 rgb(32 32 32 / 0.07)"
8442
- },
8443
- {
8444
- "name": "200",
8445
- "value": "0 3px 1px -1px rgb(32 32 32 / 0.07)"
8446
- },
8447
- {
8448
- "name": "300",
8449
- "value": "0 4px 6px -2px rgb(32 32 32 / 0.2)"
8450
- },
8451
- {
8452
- "name": "400",
8453
- "value": "0 8px 16px -4px rgb(32 32 32 / 0.22)"
8454
- },
8455
- {
8456
- "name": "500",
8457
- "value": "0 12px 20px -8px rgb(32 32 32 / 0.24)"
8458
- },
8459
- {
8460
- "name": "600",
8461
- "value": "0 20px 20px -8px rgb(32 32 32 / 0.28)"
8454
+ "name": "float",
8455
+ "value": "0 0 0 1px rgb(32 32 32 / 0.04), 0 2px 4px rgb(32 32 32 / 0.04), 0 8px 20px -4px rgb(32 32 32 / 0.10)"
8462
8456
  },
8463
8457
  {
8464
- "name": "elevation",
8465
- "value": "none"
8458
+ "name": "overlay",
8459
+ "value": "0 0 0 1px rgb(32 32 32 / 0.04), 0 4px 8px rgb(32 32 32 / 0.04), 0 16px 36px -8px rgb(32 32 32 / 0.14)"
8466
8460
  },
8467
8461
  {
8468
8462
  "name": "table-smudge-left",
@@ -8568,18 +8562,17 @@
8568
8562
  {
8569
8563
  "id": "elevation-is-actionability",
8570
8564
  "number": 2,
8571
- "title": "Shadow only by request",
8572
- "rule": "Every surface defaults to shadow-0. Use the numbered elevation ladder only when the user explicitly requests a shadow for the named surface; the legacy shadow-elevation hook remains flat.",
8565
+ "title": "Five shadows, floating layers only",
8566
+ "rule": "ADS has five shadow tokens: shadow-0 (flat, the default), shadow-float, shadow-overlay, and the two table scroll-hint smudges. Only a layer that floats above the page may carry float or overlay; everything in the page is flat.",
8573
8567
  "do": [
8574
- "Keep controls, cards, menus, overlays, panels, and other surfaces at shadow-0 unless the user specifically requests elevation.",
8575
- "When requested, use shadow-100 for controls, shadow-200 for raised surfaces and pressable cards, shadow-300 for menus, popovers, listboxes, and toasts, and shadow-400 for dialogs and overlay drawers.",
8576
- "Reserve shadow-500 and shadow-600 for rare higher stacked layers; the legacy shadow-elevation hook resolves to shadow-0."
8568
+ "Keep cards, panels, chips, buttons, tabs, fields, thumbs, and other in-page surfaces at shadow-0; separate them with fill, border, or spacing.",
8569
+ "Use shadow-float for floating layers that sit over content: toasts, toolbars, the chat composer dock, and any menu or popover that needs lift beyond its border.",
8570
+ "Use shadow-overlay for modals, dialogs, and overlay drawers, so a dialog always reads above a menu."
8577
8571
  ],
8578
8572
  "dont": [
8579
- "Infer permission to use a shadow from actionability, floating placement, or component type.",
8580
- "Use raw shadow values or legacy named shadow utilities.",
8581
- "Put a shadow on a non-interactive surface for decoration.",
8582
- "Use shadow-500 or shadow-600 as a routine default."
8573
+ "Put a shadow on an in-page surface for decoration or to signal that it is clickable.",
8574
+ "Use raw shadow values, inset glows, or the removed numbered levels and elevation hook.",
8575
+ "Invent a third floating level; stack order comes from float vs overlay."
8583
8576
  ],
8584
8577
  "enforcedByLint": false
8585
8578
  },
@@ -8737,9 +8730,9 @@
8737
8730
  "id": "tabs-search-opposed",
8738
8731
  "number": 11,
8739
8732
  "title": "Tabs lead; scoped search trails",
8740
- "rule": "When tabs and a search field control the same content, they share one responsive control row: the tab track hugs its labels at the leading edge and search sits at the trailing edge. Stack only when the container cannot fit both.",
8733
+ "rule": "When tabs and a search field control the same content, they share one responsive control row: the tab list leads with its triggers left-aligned at their natural width over a baseline that fades from WG3 to transparent, and search sits at the trailing edge. Stack only when the container cannot fit both.",
8741
8734
  "do": [
8742
- "Keep the horizontal TabList content-width, then place the scoped search field opposite it in the same toolbar.",
8735
+ "Keep tab triggers left-aligned at their natural width, then place the scoped search field opposite them in the same toolbar.",
8743
8736
  "On constrained containers, stack tabs first and search second while preserving their relationship."
8744
8737
  ],
8745
8738
  "dont": [
@@ -9667,10 +9660,10 @@
9667
9660
  ]
9668
9661
  },
9669
9662
  "counts": {
9670
- "nodes": 806,
9671
- "edges": 548,
9663
+ "nodes": 808,
9664
+ "edges": 550,
9672
9665
  "component": 323,
9673
- "state": 461,
9666
+ "state": 463,
9674
9667
  "principle": 11,
9675
9668
  "production": 9,
9676
9669
  "layout": 2
@@ -9946,6 +9939,30 @@
9946
9939
  "showcaseUrl": "https://ads.actioneer.dev/#/review/file-dropzone",
9947
9940
  "description": ""
9948
9941
  },
9942
+ {
9943
+ "id": "state:FileDropzone:hasFiles=true",
9944
+ "kind": "state",
9945
+ "label": "hasFiles=true",
9946
+ "component": "FileDropzone",
9947
+ "axis": "hasFiles",
9948
+ "value": "true",
9949
+ "required": false,
9950
+ "derived": true,
9951
+ "isDefault": false,
9952
+ "description": ""
9953
+ },
9954
+ {
9955
+ "id": "state:FileDropzone:hasFiles=false",
9956
+ "kind": "state",
9957
+ "label": "hasFiles=false",
9958
+ "component": "FileDropzone",
9959
+ "axis": "hasFiles",
9960
+ "value": "false",
9961
+ "required": false,
9962
+ "derived": true,
9963
+ "isDefault": false,
9964
+ "description": ""
9965
+ },
9949
9966
  {
9950
9967
  "id": "state:FileDropzone:isDragging=true",
9951
9968
  "kind": "state",
@@ -14558,7 +14575,7 @@
14558
14575
  "required": false,
14559
14576
  "derived": true,
14560
14577
  "isDefault": true,
14561
- "description": "Neutral heads-up with a warm-grey icon tile and no urgency signaled."
14578
+ "description": "Neutral heads-up with a neutral icon and no urgency signaled."
14562
14579
  },
14563
14580
  {
14564
14581
  "id": "state:Alert:variant=success",
@@ -17501,9 +17518,9 @@
17501
17518
  {
17502
17519
  "id": "principle:elevation-is-actionability",
17503
17520
  "kind": "principle",
17504
- "label": "Shadow only by request",
17521
+ "label": "Five shadows, floating layers only",
17505
17522
  "number": 2,
17506
- "rule": "Every surface defaults to shadow-0. Use the numbered elevation ladder only when the user explicitly requests a shadow for the named surface; the legacy shadow-elevation hook remains flat."
17523
+ "rule": "ADS has five shadow tokens: shadow-0 (flat, the default), shadow-float, shadow-overlay, and the two table scroll-hint smudges. Only a layer that floats above the page may carry float or overlay; everything in the page is flat."
17507
17524
  },
17508
17525
  {
17509
17526
  "id": "principle:motion-follows-guide",
@@ -17566,7 +17583,7 @@
17566
17583
  "kind": "principle",
17567
17584
  "label": "Tabs lead; scoped search trails",
17568
17585
  "number": 11,
17569
- "rule": "When tabs and a search field control the same content, they share one responsive control row: the tab track hugs its labels at the leading edge and search sits at the trailing edge. Stack only when the container cannot fit both."
17586
+ "rule": "When tabs and a search field control the same content, they share one responsive control row: the tab list leads with its triggers left-aligned at their natural width over a baseline that fades from WG3 to transparent, and search sits at the trailing edge. Stack only when the container cannot fit both."
17570
17587
  },
17571
17588
  {
17572
17589
  "id": "state:Button:interaction=default",
@@ -18429,6 +18446,18 @@
18429
18446
  "target": "state:CodeBlock:variant=plain",
18430
18447
  "relation": "supports-state"
18431
18448
  },
18449
+ {
18450
+ "id": "component:FileDropzone:supports-state:state:FileDropzone:hasFiles=true:global",
18451
+ "source": "component:FileDropzone",
18452
+ "target": "state:FileDropzone:hasFiles=true",
18453
+ "relation": "supports-state"
18454
+ },
18455
+ {
18456
+ "id": "component:FileDropzone:supports-state:state:FileDropzone:hasFiles=false:global",
18457
+ "source": "component:FileDropzone",
18458
+ "target": "state:FileDropzone:hasFiles=false",
18459
+ "relation": "supports-state"
18460
+ },
18432
18461
  {
18433
18462
  "id": "component:FileDropzone:supports-state:state:FileDropzone:isDragging=true:global",
18434
18463
  "source": "component:FileDropzone",